[
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nindent_size = 2\nindent_style = space\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.{xml,sq,sqm,aidl}]\nindent_size = 4\n\n# noinspection EditorConfigKeyCorrectness\n[*.{kt,kts}]\nindent_size = 4\nmax_line_length = 120\n\nij_kotlin_allow_trailing_comma = true\nij_kotlin_allow_trailing_comma_on_call_site = true\nij_kotlin_name_count_to_use_star_import = 2147483647\nij_kotlin_name_count_to_use_star_import_for_members = 2147483647\n\nktlint_code_style = intellij_idea\nktlint_function_naming_ignore_when_annotated_with = Composable\nktlint_standard_class-signature = disabled\nktlint_standard_comment-wrapping = disabled\nktlint_standard_discouraged-comment-location = disabled\nktlint_standard_function-expression-body = disabled\nktlint_standard_function-signature = disabled\nktlint_standard_type-argument-comment = disabled\nktlint_standard_type-parameter-comment = disabled\nktlint_standard_blank-line-between-when-conditions = disabled\n"
  },
  {
    "path": ".gitattributes",
    "content": "* text=auto\n* text eol=lf\n\n# Windows forced line-endings\n/.idea/* text eol=crlf\n\n# Gradle wrapper\n*.jar binary\n\n# Images\n*.webp binary\n*.png binary\n*.jpg binary\n*.jpeg binary\n*.gif binary\n*.ico binary\n*.gz binary\n*.zip binary\n*.7z binary\n*.ttf binary\n*.eot binary\n*.woff binary\n*.pyc binary\n*.swp binary\n"
  },
  {
    "path": ".github/.java-version",
    "content": "21\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "patreon: mihon\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1_request_feature.yml",
    "content": "name: ⭐ Feature request\ndescription: Suggest a feature to improve Mihon\nlabels: [feature request]\nbody:\n  - type: textarea\n    id: feature-description\n    attributes:\n      label: Describe your suggested feature\n      description: How can Mihon be improved?\n      placeholder: |\n        Example:\n          \"It should work like this...\"\n    validations:\n      required: true\n\n  - type: textarea\n    id: other-details\n    attributes:\n      label: Other details\n      placeholder: |\n        Additional details and attachments.\n\n  - type: checkboxes\n    id: acknowledgements\n    attributes:\n      label: Acknowledgements\n      description: Read this carefully, we will close and ignore your issue if you skimmed through this.\n      options:\n        - label: I have searched the existing issues and this is a new ticket, **NOT** a duplicate or related to another open or closed issue.\n          required: true\n        - label: I have written a short but informative title.\n          required: true\n        - label: I have updated the app to version **[0.19.5](https://github.com/mihonapp/mihon/releases/latest)**.\n          required: true\n        - label: I will fill out all of the requested information in this form.\n          required: true\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2_report_issue.yml",
    "content": "name: 🐞 Issue report\ndescription: Report an issue in Mihon\nlabels: [bug]\nbody:\n  - type: textarea\n    id: reproduce-steps\n    attributes:\n      label: Steps to reproduce\n      description: Provide an example of the issue.\n      placeholder: |\n        Example:\n          1. First step\n          2. Second step\n          3. Issue here\n    validations:\n      required: true\n\n  - type: textarea\n    id: expected-behavior\n    attributes:\n      label: Expected behavior\n      description: Explain what you should expect to happen.\n      placeholder: |\n        Example:\n          \"This should happen...\"\n    validations:\n      required: true\n\n  - type: textarea\n    id: actual-behavior\n    attributes:\n      label: Actual behavior\n      description: Explain what actually happens.\n      placeholder: |\n        Example:\n          \"This happened instead...\"\n    validations:\n      required: true\n\n  - type: textarea\n    id: crash-logs\n    attributes:\n      label: Crash logs\n      description: |\n        If you're experiencing crashes, if possible, go to the app's **More → Settings → Advanced** page, press **Dump crash logs** and share the crash logs here.\n      placeholder: |\n        You can upload the crash log file as an attachment, or paste the crash logs in plain text if needed.\n\n  - type: input\n    id: mihon-version\n    attributes:\n      label: Mihon version\n      description: You can find your Mihon version in **More → About**.\n      placeholder: |\n        Example: \"0.19.5\"\n    validations:\n      required: true\n\n  - type: input\n    id: android-version\n    attributes:\n      label: Android version\n      description: You can find this somewhere in your Android settings.\n      placeholder: |\n        Example: \"Android 11\"\n    validations:\n      required: true\n\n  - type: input\n    id: device\n    attributes:\n      label: Device\n      description: List your device and model.\n      placeholder: |\n        Example: \"Google Pixel 5\"\n    validations:\n      required: true\n\n  - type: textarea\n    id: other-details\n    attributes:\n      label: Other details\n      placeholder: |\n        Additional details and attachments.\n\n  - type: checkboxes\n    id: acknowledgements\n    attributes:\n      label: Acknowledgements\n      description: Read this carefully, we will close and ignore your issue if you skimmed through this.\n      options:\n        - label: I have searched the existing issues and this is a new ticket, **NOT** a duplicate or related to another open or closed issue.\n          required: true\n        - label: I have written a short but informative title.\n          required: true\n        - label: I have gone through the [FAQ](https://mihon.app/docs/faq/general) and [troubleshooting guide](https://mihon.app/docs/guides/troubleshooting/).\n          required: true\n        - label: I have updated the app to version **[0.19.5](https://github.com/mihonapp/mihon/releases/latest)**.\n          required: true\n        - label: I have filled out all of the requested information in this form, including specific version numbers.\n          required: true\n        - label: I understand that **Mihon does not have or fix any extensions**, and I **will not receive help** for any issues related to sources or extensions.\n          required: true\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "blank_issues_enabled: false\ncontact_links:\n  - name: ❌ Help with Extensions\n    url: https://mihon.app/docs/faq/browse/extensions\n    about: For extension-related questions/issues\n  - name: 🖥️ Mihon website\n    url: https://mihon.app/\n    about: Guides, troubleshooting, and answers to common questions\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "content": "<!--\n  Please include a summary of the change and which issue is fixed.\n  Also make sure you've tested your code and also done a self-review of it.\n  Don't forget to check all base themes and tablet mode for relevant changes.\n  \n  If your changes are visual, please provide images below:\n\n### Images\n| Image 1 | Image 2 |\n| ------- | ------- |\n| ![](https://github.githubassets.com/images/modules/logos_page/Octocat.png) | ![](https://github.githubassets.com/images/modules/logos_page/Octocat.png) |\n-->\n"
  },
  {
    "path": ".github/renovate.json5",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\"config:recommended\"],\n  \"labels\": [\"Dependencies\"],\n  \"semanticCommits\": \"disabled\",\n  \"packageRules\": [\n    {\n      \"groupName\": \"GitHub Actions\",\n      \"matchManagers\": [\"github-actions\"],\n      \"pinDigests\": true,\n    },\n  ],\n}\n"
  },
  {
    "path": ".github/workflows/build.yml",
    "content": "name: Build & Test\non:\n  pull_request:\n    paths:\n      - '**'\n      - '!**.md'\n      - '!i18n/src/commonMain/moko-resources/**/strings.xml'\n      - '!i18n/src/commonMain/moko-resources/**/plurals.xml'\n      - 'i18n/src/commonMain/moko-resources/base/strings.xml'\n      - 'i18n/src/commonMain/moko-resources/base/plurals.xml'\n  push:\n    branches:\n      - main\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\n\npermissions:\n  contents: read\n\njobs:\n  build:\n    name: Build & Test App\n    runs-on: 'ubuntu-24.04'\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2\n\n      - name: Dependency Review\n        if: github.event_name == 'pull_request'\n        uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0\n\n      - name: Set up JDK\n        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0\n        with:\n          java-version-file: .github/.java-version\n          distribution: temurin\n\n      - name: Set up Gradle\n        uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2\n\n      - name: Check code format\n        run: ./gradlew spotlessCheck\n\n      - name: Build app\n        run: ./gradlew assembleRelease -Pinclude-telemetry -Penable-updater\n\n      - name: Run unit tests\n        id: unit_tests\n        run: ./gradlew testReleaseUnitTest\n\n      - name: Upload test report\n        if: steps.unit_tests.outcome == 'failure'\n        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0\n        with:\n          name: test-report-${{ github.sha }}\n          path: app/build/reports/tests/testReleaseUnitTest\n\n      - name: Upload APK\n        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0\n        with:\n          name: arm64-v8a-${{ github.sha }}\n          path: app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk\n\n      - name: Upload mapping\n        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0\n        with:\n          name: mapping-${{ github.sha }}\n          path: app/build/outputs/mapping/release\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release\non:\n  push:\n    tags:\n      - v*\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progress: true\n\njobs:\n  get_tag:\n    if: github.repository == 'mihonapp/mihon'\n    name: Extract tag name\n    runs-on: 'ubuntu-24.04'\n    outputs:\n      tag: ${{ steps.extract.outputs.tag }}\n\n    steps:\n      - name: Get tag name\n        id: extract\n        run: echo \"tag=${GITHUB_REF/refs\\/tags\\//}\" >> $GITHUB_OUTPUT\n\n  build:\n    if: github.repository == 'mihonapp/mihon'\n    name: Build\n    runs-on: 'ubuntu-24.04'\n    needs: get_tag\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2\n\n      - name: Set up JDK\n        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0\n        with:\n          java-version-file: .github/.java-version\n          distribution: temurin\n\n      - name: Set up Gradle\n        uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2\n\n      - name: Build\n        run: ./gradlew assembleRelease -Pinclude-telemetry -Penable-updater\n\n      - name: Sign APK\n        uses: r0adkll/sign-android-release@f30bdd30588842ac76044ecdbd4b6d0e3e813478\n        with:\n          releaseDirectory: app/build/outputs/apk/release\n          signingKeyBase64: ${{ secrets.SIGNING_KEY }}\n          alias: ${{ secrets.ALIAS }}\n          keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}\n          keyPassword: ${{ secrets.KEY_PASSWORD }}\n        env:\n          BUILD_TOOLS_VERSION: '35.0.1'\n\n      - name: Rename APK\n        run: |\n          set -e\n\n          mv app/build/outputs/apk/release/app-universal-release-unsigned-signed.apk mihon-${{ needs.get_tag.outputs.tag }}.apk\n          mv app/build/outputs/apk/release/app-arm64-v8a-release-unsigned-signed.apk mihon-arm64-v8a-${{ needs.get_tag.outputs.tag }}.apk\n          mv app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned-signed.apk mihon-armeabi-v7a-${{ needs.get_tag.outputs.tag }}.apk\n          mv app/build/outputs/apk/release/app-x86-release-unsigned-signed.apk mihon-x86-${{ needs.get_tag.outputs.tag }}.apk\n          mv app/build/outputs/apk/release/app-x86_64-release-unsigned-signed.apk mihon-x86_64-${{ needs.get_tag.outputs.tag }}.apk\n\n      - name: Upload APK\n        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0\n        with:\n          name: mihon\n          path: |\n            mihon-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-arm64-v8a-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-armeabi-v7a-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-x86-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-x86_64-${{ needs.get_tag.outputs.tag }}.apk\n\n  build_foss:\n    if: github.repository == 'mihonapp/mihon'\n    name: Build (FOSS)\n    runs-on: ubuntu-24.04\n    needs: get_tag\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2\n\n      - name: Set up JDK\n        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0\n        with:\n          java-version-file: .github/.java-version\n          distribution: temurin\n\n      - name: Set up Gradle\n        uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2\n        with:\n          cache-disabled: true\n\n      - name: Build\n        run: ./gradlew assembleFoss -Penable-updater\n\n      - name: Sign APK\n        uses: r0adkll/sign-android-release@f30bdd30588842ac76044ecdbd4b6d0e3e813478\n        with:\n          releaseDirectory: app/build/outputs/apk/foss\n          signingKeyBase64: ${{ secrets.SIGNING_KEY }}\n          alias: ${{ secrets.ALIAS }}\n          keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}\n          keyPassword: ${{ secrets.KEY_PASSWORD }}\n        env:\n          BUILD_TOOLS_VERSION: '35.0.1'\n\n      - name: Rename APK\n        run: |\n          set -e\n\n          mv app/build/outputs/apk/foss/app-universal-foss-unsigned-signed.apk mihon-${{ needs.get_tag.outputs.tag }}-foss.apk\n\n      - name: Upload APK\n        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0\n        with:\n          name: mihon-foss\n          path: mihon-${{ needs.get_tag.outputs.tag }}-foss.apk\n\n  release:\n    if: github.repository == 'mihonapp/mihon'\n    name: Create GitHub Release\n    runs-on: ubuntu-24.04\n    needs: [get_tag, build, build_foss]\n\n    steps:\n      - name: Download all artifacts\n        uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0\n        with:\n          merge-multiple: true\n\n      - name: Delete all artifacts\n        uses: geekyeggo/delete-artifact@f275313e70c08f6120db482d7a6b98377786765b # v5.1.0\n        with:\n          failOnError: false\n          name: |\n            mihon\n            mihon-foss\n\n      - name: Create GitHub Release\n        uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1\n        with:\n          tag_name: ${{ needs.get_tag.outputs.tag }}\n          name: Mihon ${{ needs.get_tag.outputs.tag }}\n          body: |\n            Check out the [past release notes](https://github.com/mihonapp/mihon/releases) if you're upgrading from an earlier version. Consider [becoming a patron](https://www.patreon.com/mihon/membership) to help keep Mihon improving!\n\n            <!-->\n\n\n\n            <!-->\n\n            > [!TIP]\n            >\n            > ### If you are unsure which version to download then go with `mihon-${{ needs.get_tag.outputs.tag }}.apk`\n          files: |\n            mihon-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-${{ needs.get_tag.outputs.tag }}-foss.apk\n            mihon-arm64-v8a-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-armeabi-v7a-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-x86-${{ needs.get_tag.outputs.tag }}.apk\n            mihon-x86_64-${{ needs.get_tag.outputs.tag }}.apk\n          draft: true\n          prerelease: false\n          token: ${{ secrets.MIHON_BOT_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/update_website.yml",
    "content": "name: Update website\n\non:\n  release:\n    types: \n      - published\n      - deleted\n      - edited\n\njobs:\n  update_website:\n    runs-on: 'ubuntu-24.04'\n\n    steps:\n      - name: Update website\n        run: |\n          curl --fail-with-body -L \\\n          -X POST \\\n          -H \"Accept: application/vnd.github+json\" \\\n          -H \"Authorization: Bearer ${{ secrets.MIHON_BOT_TOKEN }}\" \\\n          -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n          https://api.github.com/repos/mihonapp/website/dispatches \\\n          -d '{\"event_type\":\"app_release\"}'\n"
  },
  {
    "path": ".gitignore",
    "content": "# Build files\n.gradle\n.kotlin\nbuild\n\n# IDE files\n*.iml\n.idea/*\n!.idea/icon.svg\n/captures\n\n# Configuration files\nlocal.properties\n\n# macOS specific files\n.DS_Store\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is a modified version of [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n- `Added` - for new features.\n- `Changed ` - for changes in existing functionality.\n- `Improved` - for enhancement or optimization in existing functionality.\n- `Removed` - for now removed features.\n- `Fixed` - for any bug fixes.\n- `Other` - for technical stuff.\n\n## [Unreleased]\n\n## [v0.19.5] - 2026-03-20\n### Changed\n- Retry in reader now redownloads image ([@AntsyLich](https://github.com/AntsyLich)) ([#3089](https://github.com/mihonapp/mihon/pull/3089))\n\n### Fixed\n- Fix performance regression introduced in v0.19.4 ([@AntsyLich](https://github.com/AntsyLich)) ([#3082](https://github.com/mihonapp/mihon/pull/3082))\n- Fix duplicate key crash in duplicate detection ([@leodyversemilla07](https://github.com/leodyversemilla07)) ([#3040](https://github.com/mihonapp/mihon/pull/3040))\n- Fix MangaUpdates HTTP 4XX errors ([@leodyversemilla07](https://github.com/leodyversemilla07)) ([#3021](https://github.com/mihonapp/mihon/pull/3021))\n- Fix WebView JavaScript dialogs popup after screen is closed ([@leodyversemilla07](https://github.com/leodyversemilla07)) ([#3041](https://github.com/mihonapp/mihon/pull/3041))\n- Fix extension actions disappearing after installing and uninstalling in same session ([@leodyversemilla07](https://github.com/leodyversemilla07)) ([#3049](https://github.com/mihonapp/mihon/pull/3049))\n\n## [v0.19.4] - 2026-02-25\n### Added\n- Automatically remove downloads on Suwayomi after reading, configurable via extension settings ([@cpiber](https://github.com/cpiber)) ([#2673](https://github.com/mihonapp/mihon/pull/2673))\n- Display author & artist name in MAL search results ([@MajorTanya](https://github.com/MajorTanya)) ([#2833](https://github.com/mihonapp/mihon/pull/2833))\n- Add filter options to Updates tab ([@MajorTanya](https://github.com/MajorTanya)) ([#2851](https://github.com/mihonapp/mihon/pull/2851))\n- Add bookmarked chapters to chapter download options ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#2891](https://github.com/mihonapp/mihon/pull/2891))\n- Add `src:` prefix to search the library by source ID ([@MajorTanya](https://github.com/MajorTanya)) ([#2927](https://github.com/mihonapp/mihon/pull/2927))\n  - Add `src:local` as a way to search for Local Source entries ([@MajorTanya](https://github.com/MajorTanya)) ([#2928](https://github.com/mihonapp/mihon/pull/2928))\n\n### Improved\n- Minimize memory usage by reducing in-memory cover cache size ([@Lolle2000la](https://github.com/Lolle2000la)) ([#2266](https://github.com/mihonapp/mihon/pull/2266))\n- Optimize MAL search queries ([@MajorTanya](https://github.com/MajorTanya)) ([#2832](https://github.com/mihonapp/mihon/pull/2832))\n- Reword download reindexing message to avoid confusion ([@MajorTanya](https://github.com/MajorTanya)) ([#2874](https://github.com/mihonapp/mihon/pull/2874))\n- Optimize tracked library filter ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#2977](https://github.com/mihonapp/mihon/pull/2977))\n- Utilize tracker for library duplicate detection ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#2978](https://github.com/mihonapp/mihon/pull/2978))\n\n### Changed\n- Update tracker icons ([@AntsyLich](https://github.com/AntsyLich)) ([#2773](https://github.com/mihonapp/mihon/pull/2773))\n- Add a small increment to chapter number before comparison to fix progress sync issues for Suwayomi ([@cpiber](https://github.com/cpiber)) ([#2657](https://github.com/mihonapp/mihon/pull/2675))\n- Add all pages of adjacent chapters in the UI instead of only the first or last three ([@AntsyLich](https://github.com/AntsyLich)) ([#2995](https://github.com/mihonapp/mihon/pull/2995))\n- Going back now first clears search query on browse extension tab ([@cuong-tran](https://github.com/cuong-tran)) ([#2906](https://github.com/mihonapp/mihon/pull/2906))\n- Automatic library updates now run even when connected to a VPN ([@AntsyLich](https://github.com/AntsyLich)) ([#2773](https://github.com/mihonapp/mihon/pull/2773))\n\n### Fixed\n- Fix reader tap zones triggering after scrolling is stopped by tapping ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#2680](https://github.com/mihonapp/mihon/pull/2680))\n- Fix shizuku installer not updating installed extensions ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#2697](https://github.com/mihonapp/mihon/pull/2697))\n- Fix mass migration not using the same search queries as individual migration ([@AntsyLich](https://github.com/AntsyLich)) ([#2736](https://github.com/mihonapp/mihon/pull/2736))\n- Fix reader not saving read duration when changing chapter ([@AntsyLich](https://github.com/AntsyLich), [@KotlinHero](https://github.com/KotlinHero)) ([#2784](https://github.com/mihonapp/mihon/pull/2784))\n- Fix pre-1970 upload date display in chapter list ([@MajorTanya](https://github.com/MajorTanya)) ([#2779](https://github.com/mihonapp/mihon/pull/2779))\n- Fix crash when trying to install/update extensions while shizuku is not running ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#2837](https://github.com/mihonapp/mihon/pull/2837))\n- Fix Add Repo input not taking up the full dialog width ([@cuong-tran](https://github.com/cuong-tran)) ([#2816](https://github.com/mihonapp/mihon/pull/2816))\n- Fix migration's selected sources order not preserved ([@AntsyLich](https://github.com/AntsyLich)) ([#2993](https://github.com/mihonapp/mihon/pull/2993))\n- Fix migration dialog not showing for consecutive prompts from the same screen ([@AntsyLich](https://github.com/AntsyLich)) ([#2994](https://github.com/mihonapp/mihon/pull/2994))\n- Fix extension install/update stuck at pending ([@AntsyLich](https://github.com/AntsyLich)) ([#3000](https://github.com/mihonapp/mihon/pull/3000))\n- Fix crash when downloading multiple chapters with Arabic locale ([@MajorTanya](https://github.com/MajorTanya)) ([#2676](https://github.com/mihonapp/mihon/pull/2676))\n\n### Other\n- Enable logcat logging on stable and debug builds without enabling verbose logging ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#2836](https://github.com/mihonapp/mihon/pull/2836))\n\n## [v0.19.3] - 2025-11-07\n### Improved\n- Improved various aspects of the WebView multi window support ([@TheUnlocked](https://github.com/TheUnlocked)) ([#2662](https://github.com/mihonapp/mihon/pull/2662))\n\n### Removed\n- Revert \"Fix reader tap zones triggering after scrolling was stopped by the user\" due to introduction of regression ([@AntsyLich](https://github.com/AntsyLich)) ([#2670](https://github.com/mihonapp/mihon/pull/2670))\n\n### Fixed\n- Fix WebView crash introduced in 0.19.2 ([@bapeey](https://github.com/bapeey)) ([#2649](https://github.com/mihonapp/mihon/pull/2649))\n- Fix extra padding appearing in reader after user interactions ([@AntsyLich](https://github.com/AntsyLich)) ([#2669](https://github.com/mihonapp/mihon/pull/2669))\n- Fix long strip reader not scrolling on consecutive taps ([@AntsyLich](https://github.com/AntsyLich)) ([#2670](https://github.com/mihonapp/mihon/pull/2670))\n\n## [v0.19.2] - 2025-11-02\n### Added\n- Advanced setting to limit download filenames to ASCII characters. This is provided only as a workaround for OSes that do not properly handle standard Unicode filenames. This setting is generally not recommended and should only be used as a last resort ([@raxod502](https://github.com/radian-software)) ([#2305](https://github.com/mihonapp/mihon/pull/2305))\n- Option to customize the number of concurrent source and page downloads ([@AntsyLich](https://github.com/AntsyLich)) ([#2637](https://github.com/mihonapp/mihon/pull/2637))\n\n### Changed\n- Increased default concurrent page downloads to 5 ([@AntsyLich](https://github.com/AntsyLich)) ([#2637](https://github.com/mihonapp/mihon/pull/2637))\n\n### Improved\n- Spoofing of `X-Requested-With` header to support newer WebView versions ([@Guzmazow](https://github.com/Guzmazow)) ([#2491](https://github.com/mihonapp/mihon/pull/2491))\n- Download support for chapters with the same metadata. Now a hash based on chapter's url is appended to download filename to tell them apart, letting you download both. Existing downloaded chapters will continue to work normally ([@raxod502](https://github.com/radian-software)) ([#2305](https://github.com/mihonapp/mihon/pull/2305))\n- Auto refresh extension list whenever a repository is added or removed ([@c2y5](https://github.com/c2y5)) ([#2483](https://github.com/mihonapp/mihon/pull/2483))\n- Added proper multi window support in WebView instead of treating everything as a redirect ([@TheUnlocked](https://github.com/TheUnlocked)) ([#2584](https://github.com/mihonapp/mihon/pull/2584))\n\n### Fixed\n- Fix height of description not being calculated correctly if images are present ([@Secozzi](https://github.com/Secozzi)) ([#2382](https://github.com/mihonapp/mihon/pull/2382))\n- Fix migration progress not updating after manual search ([@Secozzi](https://github.com/Secozzi)) ([#2484](https://github.com/mihonapp/mihon/pull/2484))\n- Fix category migration flag being ignored due to incorrect check against chapter flag ([@Secozzi](https://github.com/Secozzi)) ([#2484](https://github.com/mihonapp/mihon/pull/2484))\n- Fix disabling incognito mode from notification ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#2512](https://github.com/mihonapp/mihon/pull/2512))\n- Fix mass migration advanced search query building ([@AntsyLich](https://github.com/AntsyLich)) ([#2629](https://github.com/mihonapp/mihon/pull/2629))\n- Fix migration dialog migrating to wrong entry ([@AntsyLich](https://github.com/AntsyLich)) ([#2631](https://github.com/mihonapp/mihon/pull/2631))\n- Fix migration \"Attempt to invoke virtual method\" crash ([@AntsyLich](https://github.com/AntsyLich)) ([#2632](https://github.com/mihonapp/mihon/pull/2632))\n- Fix reader \"Unable to edit key\" error ([@AntsyLich](https://github.com/AntsyLich)) ([#2634](https://github.com/mihonapp/mihon/pull/2634))\n- Fix extension download stuck in pending state in some cases ([@c2y5](https://github.com/c2y5)) ([#2483](https://github.com/mihonapp/mihon/pull/2483))\n- Fix scrollbar not showing when animator duration scale animation is turned off ([@anirudhsnayak](https://github.com/anirudhsnayak)) ([#2398](https://github.com/mihonapp/mihon/pull/2398))\n- Fix date picker not allowing the same start and finish date in negative time zones ([@AntsyLich](https://github.com/AntsyLich), [@kashish-aggarwal21](https://github.com/kashish-aggarwal21)) ([#2617](https://github.com/mihonapp/mihon/pull/2617))\n- Fix reader tap zones triggering after scrolling was stopped by the user ([@Naputt1](https://github.com/Naputt1), [@AntsyLich](https://github.com/AntsyLich)) ([#2518](https://github.com/mihonapp/mihon/pull/2518))\n- Fix reader page indicator being partially visible on some devices ([@AntsyLich](https://github.com/AntsyLich)) ([#1908](https://github.com/mihonapp/mihon/pull/1908))\n- Fix inconsistent system bar and reader app bar background ([@AntsyLich](https://github.com/AntsyLich)) ([#1908](https://github.com/mihonapp/mihon/pull/1908))\n- Fix transparent system bar background in reader on Android 15+ ([@AntsyLich](https://github.com/AntsyLich)) ([#1908](https://github.com/mihonapp/mihon/pull/1908))\n\n### Other\n- Delegate Suwayomi tracker authentication to extension ([@cpiber](https://github.com/cpiber)) ([#2476](https://github.com/mihonapp/mihon/pull/2476))\n- Fix Kitsu tracker to conform to tracker data structure properly ([@cpiber](https://github.com/cpiber)) ([#2609](https://github.com/mihonapp/mihon/pull/2609))\n- Update Suwayomi tracker to use GraphQL API instead of REST API ([@cpiber](https://github.com/cpiber)) ([#2585](https://github.com/mihonapp/mihon/pull/2585))\n\n## [v0.19.1] - 2025-08-07\n### Changed\n- LocalSource now reads ComicInfo.xml file for chapter (if available) to display chapter title, number and scanlator ([@raxod502](https://github.com/radian-software)) ([#2332](https://github.com/mihonapp/mihon/pull/2332))\n\n### Removed\n- Predictive back support ([@AntsyLich](https://github.com/AntsyLich)) ([#2362](https://github.com/mihonapp/mihon/pull/2362))\n\n### Fixed\n- Fix scrollbar sometimes not showing during scroll or not reaching the bottom with few items ([@anirudhsnayak](https://github.com/anirudhsnayak)) ([#2304](https://github.com/mihonapp/mihon/pull/2304))\n- Fix local source EPUB files not loading ([@AntsyLich](https://github.com/AntsyLich)) ([#2369](https://github.com/mihonapp/mihon/pull/2369))\n- Fix title text color in light mode on mass migration list ([@AntsyLich](https://github.com/AntsyLich)) ([#2370](https://github.com/mihonapp/mihon/pull/2370))\n- Fix 'Default' category showing in library with no user-added categories ([@AntsyLich](https://github.com/AntsyLich)) ([#2371](https://github.com/mihonapp/mihon/pull/2371))\n- Fix crash when opening filter sheet with an empty library ([@krysanify](https://github.com/krysanify/)) ([#2355](https://github.com/mihonapp/mihon/pull/2355))\n- Fix mark as read/unread not working for selected library items ([@krysanify](https://github.com/krysanify/)) ([#2355](https://github.com/mihonapp/mihon/pull/2355))\n\n## [v0.19.0] - 2025-08-04\n### Added\n- Add more Kaomoji for empty/error screens ([@ianfhunter](https://github.com/ianfhunter/)) ([#1909](https://github.com/mihonapp/mihon/pull/1909))\n- Add user manga notes ([@imkunet](https://github.com/imkunet), [@AntsyLich](https://github.com/AntsyLich)) ([#428](https://github.com/mihonapp/mihon/pull/428))\n  - Fix user notes not restoring when manga doesn't exist in DB ([@AntsyLich](https://github.com/AntsyLich)) ([#1945](https://github.com/mihonapp/mihon/pull/1945))\n- Add markdown support for manga descriptions ([@Secozzi](https://github.com/Secozzi)) ([#1948](https://github.com/mihonapp/mihon/pull/1948))\n  - Use simpler markdown flavour ([@Secozzi](https://github.com/Secozzi)) ([#2000](https://github.com/mihonapp/mihon/pull/2000))\n  - Use Github markdown flavour for Github releases & fix bullet list alignment ([@Secozzi](https://github.com/Secozzi)) ([#2024](https://github.com/mihonapp/mihon/pull/2024))\n  - Add option to toggle image loading ([@Secozzi](https://github.com/Secozzi)) ([#2076](https://github.com/mihonapp/mihon/pull/2076))\n- Add Nord Theme ([@Riztard](https://github.com/Riztard)) ([#1951](https://github.com/mihonapp/mihon/pull/1951))\n- Option to keep read manga when clearing database ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#1979](https://github.com/mihonapp/mihon/pull/1979))\n- Add advanced option to always update manga title from source ([@FlaminSarge](https://github.com/FlaminSarge)) ([#1182](https://github.com/mihonapp/mihon/pull/1182))\n- Full predictive back support ([@AntsyLich](https://github.com/AntsyLich)) ([#2085](https://github.com/mihonapp/mihon/pull/2085))\n- Add Catppuccin theme (mocha for dark and latte for light, mauve accent) ([@claymorwan](https://github.com/claymorwan/)) ([#2117](https://github.com/mihonapp/mihon/pull/2117))\n- Manga mass migration ([@AntsyLich](https://github.com/AntsyLich), [@jobobby04](https://github.com/jobobby04)) ([#2110](https://github.com/mihonapp/mihon/pull/2110), [#2336](https://github.com/mihonapp/mihon/pull/2336), [#2338](https://github.com/mihonapp/mihon/pull/2338), [`f119386`](https://github.com/mihonapp/mihon/commit/f119386))\n\n### Improved\n- Significantly improve browsing speed (near instantaneous) ([@AntsyLich](https://github.com/AntsyLich)) ([#1946](https://github.com/mihonapp/mihon/pull/1946))\n- Deduplicate entries when browsing ([@AntsyLich](https://github.com/AntsyLich)) ([#1957](https://github.com/mihonapp/mihon/pull/1957))\n- Update non-library manga data when browsing ([@AntsyLich](https://github.com/AntsyLich)) ([#1967](https://github.com/mihonapp/mihon/pull/1967))\n- Surface image loading error in Reader ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#1981](https://github.com/mihonapp/mihon/pull/1981))\n- Include source headers when opening failed images from reader ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2004](https://github.com/mihonapp/mihon/pull/2004))\n- Added autofill support to tracker login dialog ([@AntsyLich](https://github.com/AntsyLich)) ([#2069](https://github.com/mihonapp/mihon/pull/2069))\n- Added option to hide missing chapter count ([@User826](https://github.com/User826), [@AntsyLich](https://github.com/AntsyLich)) ([#2108](https://github.com/mihonapp/mihon/pull/2108))\n- Use median to determine smart update interval, making it more resilient to long hiatuses ([@Kladki](https://github.com/Kladki)) ([#2251](https://github.com/mihonapp/mihon/pull/2251))\n- Optimize library code to potentially better handle big user libraries ([@AntsyLich](https://github.com/AntsyLich)) ([#2329](https://github.com/mihonapp/mihon/pull/2329), [#2341](https://github.com/mihonapp/mihon/pull/2341))\n\n### Changed\n- Display all similarly named duplicates in duplicate manga dialogue ([@NarwhalHorns](https://github.com/NarwhalHorns), [@AntsyLich](https://github.com/AntsyLich)) ([#1861](https://github.com/mihonapp/mihon/pull/1861))\n  - Display chapter count on items in duplicate manga dialogue ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#1963](https://github.com/mihonapp/mihon/pull/1963))\n- Update Facebook and Reddit icons ([@Joehuu](https://github.com/Joehuu)) ([#1994](https://github.com/mihonapp/mihon/pull/1994))\n- Switch default user agent to Android Chrome ([@AntsyLich](https://github.com/AntsyLich)) ([#2048](https://github.com/mihonapp/mihon/pull/2048))\n- Changed log in button text when processing tracker login ([@AntsyLich](https://github.com/AntsyLich)) ([#2069](https://github.com/mihonapp/mihon/pull/2069))\n- Disable reader's 'Keep screen on' setting by default ([@AntsyLich](https://github.com/AntsyLich)) ([#2095](https://github.com/mihonapp/mihon/pull/2095))\n- Update manga without chapters even if restricted by source ([@AntsyLich](https://github.com/AntsyLich)) ([#2224](https://github.com/mihonapp/mihon/pull/224))\n- Make local source default chapter sorting match file explorer behavior ([@AntsyLich](https://github.com/AntsyLich)) ([#2224](https://github.com/mihonapp/mihon/pull/224))\n- Include Manga `initialized` status in backup ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2285](https://github.com/mihonapp/mihon/pull/2285))\n\n### Fixed\n- Fix Bangumi search results including novels ([@MajorTanya](https://github.com/MajorTanya)) ([#1885](https://github.com/mihonapp/mihon/pull/1885))\n- Fix next chapter button occasionally jumping to the last page of the current chapter ([@perokhe](https://github.com/perokhe)) ([#1920](https://github.com/mihonapp/mihon/pull/1920))\n  - Fix page number not appearing when opening chapter ([@perokhe](https://github.com/perokhe)) ([#1936](https://github.com/mihonapp/mihon/pull/1936))\n- Fix backup sharing from notifications not working when app is in background ([@JaymanR](https://github.com/JaymanR))([#1929](https://github.com/mihonapp/mihon/pull/1929))\n- Fix mark existing duplicate read chapters as read option not working in some cases ([@AntsyLich](https://github.com/AntsyLich)) ([#1944](https://github.com/mihonapp/mihon/pull/1944))\n- Fix app bar action tooltips blocking clicks ([@Bartuzen](https://github.com/Bartuzen)) ([#1928](https://github.com/mihonapp/mihon/pull/1928))\n- Fix unintended app permissions due to Firebase misconfiguration ([@AntsyLich](https://github.com/AntsyLich)) ([#1960](https://github.com/mihonapp/mihon/pull/1960))\n- Fix navigation issue after migrating a duplicated entry from History tab ([@cuong-tran](https://github.com/cuong-tran)) ([#1980](https://github.com/mihonapp/mihon/pull/1980))\n- Fix duplicate requests in WebView due to empty reasonPhrase ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2003](https://github.com/mihonapp/mihon/pull/2003))\n- Fix content under source browse screen top appbar is interactable ([@AntsyLich](https://github.com/AntsyLich)) ([#2026](https://github.com/mihonapp/mihon/pull/2026))\n- Fix crash when trying use source sort filter without a pre-selection ([@AntsyLich](https://github.com/AntsyLich)) ([#2036](https://github.com/mihonapp/mihon/pull/2036))\n- Fix empty layout not appearing in browse source screen in some cases ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#2043](https://github.com/mihonapp/mihon/pull/2043))\n- Fix Pill not following the local text style ([@AntsyLich](https://github.com/AntsyLich)) ([`f8cb506`](https://github.com/mihonapp/mihon/commit/f8cb506))\n- Fix downloader stopping after failing to create download directory of a manga ([@AntsyLich](https://github.com/AntsyLich)) ([#2068](https://github.com/mihonapp/mihon/pull/2068))\n- Fix pressing `Enter` while searching also triggering navigation back on physical keyboards ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2077](https://github.com/mihonapp/mihon/pull/2077))\n- Ensure app waits for Cloudflare challenge to complete before continuing ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2200](https://github.com/mihonapp/mihon/pull/2200))\n\n### Removed\n- Remove Okhttp networking from WebView Screen ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2020](https://github.com/mihonapp/mihon/pull/2020))\n\n## [v0.18.0] - 2025-03-20\n### Added\n- Add option to always decode long strip images with SSIV ([@AntsyLich](https://github.com/AntsyLich)) ([`c5655e8`](https://github.com/mihonapp/mihon/commit/c5655e8803bc32d0931657f0b7bc6afeab70feaf))\n  - Change option label ([@AntsyLich](https://github.com/AntsyLich)) ([#1835](https://github.com/mihonapp/mihon/pull/1835))\n- Added option to enable incognito per extension ([@sdaqo](https://github.com/sdaqo), [@AntsyLich](https://github.com/AntsyLich)) ([#157](https://github.com/mihonapp/mihon/pull/157))\n- Add button to favorite manga from history screen ([@Animeboynz](https://github.com/Animeboynz)) ([#1733](https://github.com/mihonapp/mihon/pull/1733))\n- Add Monochrome theme (made with e-ink displays in mind) ([@MajorTanya](https://github.com/MajorTanya)) ([#1752](https://github.com/mihonapp/mihon/pull/1752))\n- Support for private tracking with AniList and Bangumi ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#1736](https://github.com/mihonapp/mihon/pull/1736))\n  - Add private tracking support for Kitsu ([@MajorTanya](https://github.com/MajorTanya)) ([#1774](https://github.com/mihonapp/mihon/pull/1774))\n- Add option to export minimal library information to a CSV file ([@Animeboynz](https://github.com/Animeboynz), [@AntsyLich](https://github.com/AntsyLich)) ([#1161](https://github.com/mihonapp/mihon/pull/1161))\n- Add back support for drag-and-drop category reordering ([@cuong-tran](https://github.com/cuong-tran)) ([#1427](https://github.com/mihonapp/mihon/pull/1427))\n- Add option to mark duplicate read chapters as read after library update or while reading ([@AntsyLich](https://github.com/AntsyLich)) ([#1785](https://github.com/mihonapp/mihon/pull/1785), [#1791](https://github.com/mihonapp/mihon/pull/1791), [#1870](https://github.com/mihonapp/mihon/pull/1870))\n- Display staff information on Anilist tracker search results ([@NarwhalHorns](https://github.com/NarwhalHorns)) ([#1810](https://github.com/mihonapp/mihon/pull/1810))\n- Add `id:` prefix search to library to search by internal DB ID ([@MajorTanya](https://github.com/MajorTanya)) ([#1856](https://github.com/mihonapp/mihon/pull/1856))\n- Add back option to disable unread chapter badge in library ([@AntsyLich](https://github.com/AntsyLich)) ([#1871](https://github.com/mihonapp/mihon/pull/1871))\n\n### Changed\n- Sliders UI ([@AntsyLich](https://github.com/AntsyLich)) ([#1840](https://github.com/mihonapp/mihon/pull/1840))\n- Apply \"Downloaded only\" filter to all entries regardless of favourite status ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#1603](https://github.com/mihonapp/mihon/pull/1603))\n- Ignore hidden files/folders for Local Source chapter list ([@BrutuZ](https://github.com/BrutuZ)) ([#1763](https://github.com/mihonapp/mihon/pull/1763))\n- Migrate to newer Bangumi API ([@MajorTanya](https://github.com/MajorTanya)) ([#1748](https://github.com/mihonapp/mihon/pull/1748))\n  - Now showing manga starting dates in search\n  - Reduced request load by 2-4x in certain situations\n- Bump default user agent ([@AntsyLich](https://github.com/AntsyLich)) ([#1833](https://github.com/mihonapp/mihon/pull/1833))\n- Changed the label of chapter swipe settings and renamed the group to \"Behavior\" ([@AntsyLich](https://github.com/AntsyLich)) ([#1870](https://github.com/mihonapp/mihon/pull/1870))\n\n### Fixed\n- Fix MAL `main_picture` nullability breaking search if a result doesn't have a cover set ([@MajorTanya](https://github.com/MajorTanya)) ([#1618](https://github.com/mihonapp/mihon/pull/1618))\n- Fix Bangumi and MAL tracking 401 errors due to Mihon sending expired credentials ([@MajorTanya](https://github.com/MajorTanya)) ([#1681](https://github.com/mihonapp/mihon/pull/1681), [#1682](https://github.com/mihonapp/mihon/pull/1682))\n- Fix certain Infinix, Xiaomi devices being unable to use any \"Open link in browser\" actions, including tracker setup ([@MajorTanya](https://github.com/MajorTanya)) ([#1684](https://github.com/mihonapp/mihon/pull/1684)) ([#1776](https://github.com/mihonapp/mihon/pull/1776))\n- Fix App's preferences referencing deleted categories ([@cuong-tran](https://github.com/cuong-tran)) ([#1734](https://github.com/mihonapp/mihon/pull/1734))\n- Fix backup/restore of category related preferences ([@cuong-tran](https://github.com/cuong-tran)) ([#1726](https://github.com/mihonapp/mihon/pull/1726))\n- Fix WebView sending app's package name in `X-Requested-With` header, which led to sources blocking access ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#1812](https://github.com/mihonapp/mihon/pull/1812))\n- Fix an issue where tracker reading progress is changed to a lower value ([@Animeboynz](https://github.com/Animeboynz)) ([#1795](https://github.com/mihonapp/mihon/pull/1795))\n- Attempt to fix crash when migrating or removing entries from library ([@FlaminSarge](https://github.com/FlaminSarge)) ([#1828](https://github.com/mihonapp/mihon/pull/1828))\n\n### Removed\n- Remove alphabetical category sort option ([@AntsyLich](https://github.com/AntsyLich)) ([#1781](https://github.com/mihonapp/mihon/pull/1781))\n\n### Other\n- Add zoned \"Current time\" to debug info and include year & timezone in logcat output ([@MajorTanya](https://github.com/MajorTanya)) ([#1672](https://github.com/mihonapp/mihon/pull/1672))\n- Add application package ID to debug info ([@MajorTanya](https://github.com/MajorTanya)) ([#1847](https://github.com/mihonapp/mihon/pull/1847))\n\n## [v0.17.1] - 2024-12-06\n### Changed\n- Bump default user agent ([@AntsyLich](https://github.com/AntsyLich)) ([`76dcf90`](https://github.com/mihonapp/mihon/commit/76dcf903403d565056f44c66d965c1ea8affffc3))\n\n### Improved\n- Bangumi search now shows the score and summary of a search result ([@MajorTanya](https://github.com/MajorTanya)) ([#1396](https://github.com/mihonapp/mihon/pull/1396))\n- Extension repo URLs are now auto-formatted ([@AntsyLich](https://github.com/AntsyLich), [@MajorTanya](https://github.com/MajorTanya)) ([`22d8aad`](https://github.com/mihonapp/mihon/commit/22d8aad598bea8f00f2831779e45a6645392ca0f))\n\n### Fixed\n- Fix \"currentTab was used multiple times\" ([@AntsyLich](https://github.com/AntsyLich)) ([`371c143`](https://github.com/mihonapp/mihon/commit/371c1432e218f6dcf129f05405dceb2cd351c647))\n- Fix a rare crash when invoking \"Mark previous as read\" action ([@AntsyLich](https://github.com/AntsyLich)) ([`f508d10`](https://github.com/mihonapp/mihon/commit/f508d10ad13560d7316df8642bc93fe66c05b9a8))\n- Fix long strip images not loading in some old devices ([@AntsyLich](https://github.com/AntsyLich)) ([`06efc3b`](https://github.com/mihonapp/mihon/commit/06efc3b25c5af51f42448af27a269ee459d9093d))\n  - Switch to hardware bitmap in reader only if device can handle it ([@AntsyLich](https://github.com/AntsyLich)) ([`e6d96bd`](https://github.com/mihonapp/mihon/commit/e6d96bd348ea5d18a005d6465222ad5f5123103e))\n  - Add option to lower the threshold for hardware bitmaps ([@AntsyLich](https://github.com/AntsyLich)) ([`dcddac5`](https://github.com/mihonapp/mihon/commit/dcddac5daaff3ec89c8507c35dc13d345ffdb6d7))\n    - Improve hardware bitmap threshold option ([@AntsyLich](https://github.com/AntsyLich)) ([`d6dfd24`](https://github.com/mihonapp/mihon/commit/d6dfd24548eaa05a8c3e478068fe2e08f2ee4473))\n  - Always use software bitmap on certain devices ([@MajorTanya](https://github.com/MajorTanya)) ([#1543](https://github.com/mihonapp/mihon/pull/1543))\n- Fix crash after removing last category while it's active in library ([@cuong-tran](https://github.com/cuong-tran)) ([#1450](https://github.com/mihonapp/mihon/pull/1450))\n- Fix reader transition color scheme in auto background mode ([@cuong-tran](https://github.com/cuong-tran)) ([#1487](https://github.com/mihonapp/mihon/pull/1487))\n- Fix app update error notification disappearing ([@cuong-tran](https://github.com/cuong-tran)) ([#1476](https://github.com/mihonapp/mihon/pull/1476))\n- Fix browser not opening in some cases in Honor devices ([@AntsyLich](https://github.com/AntsyLich), [@MajorTanya](https://github.com/MajorTanya)) ([#1520](https://github.com/mihonapp/mihon/pull/1520))\n\n## [v0.17.0] - 2024-10-26\n### Added\n- Option to disable reader zoom out ([@Splintorien](https://github.com/Splintorien)) ([#302](https://github.com/mihonapp/mihon/pull/302))\n- Source name and tracker urls to app generated `ComicInfo.xml` file ([@Shamicen](https://github.com/Shamicen)) ([#459](https://github.com/mihonapp/mihon/pull/459))\n- Option to migrate in Duplicate entry dialog ([@sirlag](https://github.com/sirlag)) ([#492](https://github.com/mihonapp/mihon/pull/492))\n- Upcoming screen to visualize expected update dates ([@sirlag](https://github.com/sirlag)) ([#420](https://github.com/mihonapp/mihon/pull/420))\n  - Only show upcoming updates in the future ([@sirlag](https://github.com/sirlag)) ([#606](https://github.com/mihonapp/mihon/pull/606))\n  - Add Quantity Badge to Upcoming Screen ([@Animeboynz](https://github.com/Animeboynz), [@AntsyLich](https://github.com/AntsyLich)) ([#1250](https://github.com/mihonapp/mihon/pull/1250))\n- Crash screen error message to the top of the crash log generated from that screen ([@FooIbar](https://github.com/FooIbar)) ([#742](https://github.com/mihonapp/mihon/pull/742))\n- Support for 7Zip and RAR5 archives ([@FooIbar](https://github.com/FooIbar)) ([#949](https://github.com/mihonapp/mihon/pull/949))\n- Extra configuration options to e-ink page flashes ([@sirlag](https://github.com/sirlag)) ([#625](https://github.com/mihonapp/mihon/pull/625))\n- 8-bit+ AVIF image support ([@WerctFourth](https://github.com/WerctFourth)) ([#971](https://github.com/mihonapp/mihon/pull/971))\n- Smart update dialog message when no predicted released date exists ([@Animeboynz](https://github.com/Animeboynz)) ([#977](https://github.com/mihonapp/mihon/pull/977))\n- Option to copy reader panel to clipboard ([@Animeboynz](https://github.com/Animeboynz)) ([#1003](https://github.com/mihonapp/mihon/pull/1003))\n- Copy Tracker URL option to tracker sheet ([@mm12](https://github.com/mm12)) ([#1101](https://github.com/mihonapp/mihon/pull/1101))\n- A button to exclude all scanlators in exclude scanlators dialog ([@AntsyLich](https://github.com/AntsyLich)) ([`84b2164`](https://github.com/mihonapp/mihon/commit/84b2164787a795f3fd757c325cbfb6ef660ac3a3))\n- Open in browser option to reader menu ([@mm12](https://github.com/mm12)) ([#1110](https://github.com/mihonapp/mihon/pull/1110))\n  - Reorder reader menu overflow items ([@AntsyLich](https://github.com/AntsyLich)) ([`788235f`](https://github.com/mihonapp/mihon/commit/788235feeca241228eac0561339dd07b5ea0b77d))\n- Option to skip downloading duplicate read chapters ([@shabnix](https://github.com/shabnix)) ([#1125](https://github.com/mihonapp/mihon/pull/1125))\n- Add confirmation dialog when adding repo via URI ([@Animeboynz](https://github.com/Animeboynz)) ([#1158](https://github.com/mihonapp/mihon/pull/1158))\n- Add \"show entry\" action to download notifications ([@mm12](https://github.com/mm12), [@AntsyLich](https://github.com/AntsyLich)) ([#1159](https://github.com/mihonapp/mihon/pull/1159))\n- Option to update trackers when chapter marked as read ([@Animeboynz](https://github.com/Animeboynz), [@AntsyLich](https://github.com/AntsyLich)) ([#1177](https://github.com/mihonapp/mihon/pull/1177), [#1365](https://github.com/mihonapp/mihon/pull/1365), [#1374](https://github.com/mihonapp/mihon/pull/1374))\n- Toast to restart app when User-Agent is changed ([@NGB-Was-Taken](https://github.com/NGB-Was-Taken)) ([#1204](https://github.com/mihonapp/mihon/pull/1204))\n- Added more profile compilation status (p) ([`c8bb78d`](https://github.com/mihonapp/mihon/commit/c8bb78d91afc2824baaca999f0095559c49d1306))\n- Add option to opt out of Analytics and Crashlytics ([@Animeboynz](https://github.com/Animeboynz)) ([#1237](https://github.com/mihonapp/mihon/pull/1237))\n  - Rework Firebase setup ([@AntsyLich](https://github.com/AntsyLich)) ([`15e3f28`](https://github.com/mihonapp/mihon/commit/15e3f28aa36bec3c31f212c572ab57ce960cc862))\n- Added random library sort ([@jackhamilton](https://github.com/jackhamilton)) ([#1317](https://github.com/mihonapp/mihon/pull/1317))\n  - Make sure random library sort is at the bottom ([@AntsyLich](https://github.com/AntsyLich)) ([`2e2c8d3`](https://github.com/mihonapp/mihon/commit/2e2c8d36c1e23bf274c7c19f1242e14b0c7afbc1))\n- Confirmation dialog when removing privately installed extensions ([@Animeboynz](https://github.com/Animeboynz), [@AntsyLich](https://github.com/AntsyLich)) ([#1320](https://github.com/mihonapp/mihon/pull/1320))\n- Option to backup non-library read entries ([@Animeboynz](https://github.com/Animeboynz), [@jobobby04](https://github.com/jobobby04), [@AntsyLich](https://github.com/AntsyLich)) ([#1324](https://github.com/mihonapp/mihon/pull/1324))\n\n### Changed\n- Read archive files from memory instead of temporarily extracting to internal storage ([@FooIbar](https://github.com/FooIbar)) ([#326](https://github.com/mihonapp/mihon/pull/326))\n  - Fix dual page split ([@FooIbar](https://github.com/FooIbar)) ([#485](https://github.com/mihonapp/mihon/pull/485))\n- Bump default user agent ([@AntsyLich](https://github.com/AntsyLich)) ([`8160b47`](https://github.com/mihonapp/mihon/commit/8160b47ff5fbbd9b32caeb462b5be881fabd3449))\n- Wait for sources to be initialized before performing source related tasks ([@jobobby04](https://github.com/jobobby04)) ([`a08e03f`](https://github.com/mihonapp/mihon/commit/a08e03f5cbf3f4e6be1de35f97ef8ebb26a1210e))\n- Duplicate entry dialog UI ([@sirlag](https://github.com/sirlag)) ([#492](https://github.com/mihonapp/mihon/pull/492))\n- Extension trust system\n  - Store extension repo details from `repo.json` in database ([@sirlag](https://github.com/sirlag)) ([#506](https://github.com/mihonapp/mihon/pull/506))\n    - Fix extension repo migration not triggering ([@AntsyLich](https://github.com/AntsyLich)) ([`9672ea8`](https://github.com/mihonapp/mihon/commit/9672ea8b1b06f464800e310c96e060ead182f7ca))\n    - Refactor the ExtensionRepoService to use DTOs ([@MajorTanya](https://github.com/MajorTanya)) ([#573](https://github.com/mihonapp/mihon/pull/573))\n    - Fix extension repo name is used to construct URL instead of baseUrl ([@MajorTanya](https://github.com/MajorTanya)) ([#572](https://github.com/mihonapp/mihon/pull/572))\n    - Fix crash with `TypeReference` issue when creating extension repo ([@AntsyLich](https://github.com/AntsyLich)) ([#574](https://github.com/mihonapp/mihon/pull/574), [`e020ae5`](https://github.com/mihonapp/mihon/commit/e020ae5ed558e80742ef0ad8bfa0f69af0959d5a))\n      - Fix mishap in [`e020ae5`](https://github.com/mihonapp/mihon/commit/e020ae5ed558e80742ef0ad8bfa0f69af0959d5a) ([@AntsyLich](https://github.com/AntsyLich)) ([`6965e59`](https://github.com/mihonapp/mihon/commit/6965e59a643c67a2bf81b3c69ec70268e5da5797))\n    - Backup and Restore ([@Animeboynz](https://github.com/Animeboynz)) ([#1057](https://github.com/mihonapp/mihon/pull/1057))\n  - Trust extension by repo ([@AntsyLich](https://github.com/AntsyLich)) ([#570](https://github.com/mihonapp/mihon/pull/570))\n- From M2 ripple to M3 ([@FooIbar](https://github.com/FooIbar)) ([#675](https://github.com/mihonapp/mihon/pull/675))\n- Increased continue reading button size ([@AntsyLich](https://github.com/AntsyLich), [@Animeboynz](https://github.com/Animeboynz)) ([`e17f70f`](https://github.com/mihonapp/mihon/commit/e17f70f7226ea031fc1f962c9dfea3e404ba53ad))\n- Global search \"Has result\" choice is now sticky ([@AntsyLich](https://github.com/AntsyLich)) ([`5a61ca5`](https://github.com/mihonapp/mihon/commit/5a61ca5535fe0d9e8e7bcb9e665ba2f9cb0cf649))\n- Make category backup/restore not dependant on library backup ([@AntsyLich](https://github.com/AntsyLich)) ([`56fb4f6`](https://github.com/mihonapp/mihon/commit/56fb4f62a152e87a71892aa68c78cac51a2c8596))\n- Rename backup restore error log file ([@AntsyLich](https://github.com/AntsyLich)) ([`2858ef8`](https://github.com/mihonapp/mihon/commit/2858ef835fec8d7278b1d0cad1b5664104d1e4b0))\n- Keyboard type in add extension repo dialog ([@xbjfk](https://github.com/xbjfk)) ([#764](https://github.com/mihonapp/mihon/pull/764))\n- Adjust collapse/open animation on manga description ([@AntsyLich](https://github.com/AntsyLich), [@ivaniskandar](https://github.com/ivaniskandar)) ([`1c16fc7`](https://github.com/mihonapp/mihon/commit/1c16fc79c2ac4c4be30308fed84ffb371dab5902))\n- Kitsu domain to `kitsu.app` ([@MajorTanya](https://github.com/MajorTanya)) ([#1106](https://github.com/mihonapp/mihon/pull/1106))\n- Respect privacy settings in extension update notification ([@Animeboynz](https://github.com/Animeboynz)) ([#1156](https://github.com/mihonapp/mihon/pull/1156))\n- Hide keyboard when a Tracker SearchResultItem is clicked ([@Animeboynz](https://github.com/Animeboynz)) ([#1168](https://github.com/mihonapp/mihon/pull/1168))\n- Enable 'Split Tall Images' by default ([@Smol-Ame](https://github.com/Smol-Ame)) ([#1185](https://github.com/mihonapp/mihon/pull/1185))\n- Ignore \"intent://\" urls on webview ([@bapeey](https://github.com/bapeey)) ([#1193](https://github.com/mihonapp/mihon/pull/1193))\n- Make reader chapter navigator slightly wider on small screens (p) ([#1202](https://github.com/mihonapp/mihon/pull/1202))\n- Re-enable fetching chapters list for entries with licenced status ([@Animeboynz](https://github.com/Animeboynz)) ([#1230](https://github.com/mihonapp/mihon/pull/1230))\n- Change casing for Extention Repos String ([@Animeboynz](https://github.com/Animeboynz)) ([#1248](https://github.com/mihonapp/mihon/pull/1248))\n- Retain remote last chapter read if it's higher than the local one for EnhancedTracker ([@brewkunz](https://github.com/brewkunz)) ([#1301](https://github.com/mihonapp/mihon/pull/1301))\n- Adjust expandable fab animation (p) ([`eb6092b`](https://github.com/mihonapp/mihon/commit/eb6092bd0cfa09694985a8bafdd8bbf2815190a1))\n- \"Invalidate downloads index\" to \"Reindex downloads\" ([@AntsyLich](https://github.com/AntsyLich)) ([`d2afbfe`](https://github.com/mihonapp/mihon/commit/d2afbfe4ede283076aae40633c79c3f90b4390e7))\n\n### Improved\n- Reader performance\n  - Avoid unnecessary copying when processing reader image ([@FooIbar](https://github.com/FooIbar)) ([#691](https://github.com/mihonapp/mihon/pull/691))\n  - Significantly improve performance when loading extremely long images in long strip mode ([@FooIbar](https://github.com/FooIbar)) ([#692](https://github.com/mihonapp/mihon/pull/692))\n  - Use `Bitmap.Config.HARDWARE` if possible to improve image loading speed ([@wwww-wwww](https://github.com/wwww-wwww)) ([#687](https://github.com/mihonapp/mihon/pull/687))\n  - Improve preloading in long strip mode ([@FooIbar](https://github.com/FooIbar)) ([#1076](https://github.com/mihonapp/mihon/pull/1076))\n- Performance when looking up specific files ([@raxod502](https://github.com/raxod502)) ([#728](https://github.com/mihonapp/mihon/pull/728))\n- Chapter number parsing ([@Naputt1](https://github.com/Naputt1)) ([`6a80305`](https://github.com/mihonapp/mihon/commit/6a80305d6c572da6c08c0c69f5c25ff26ecf7383))\n- Error message on restoring if backup decoding fails ([@vetleledaal](https://github.com/vetleledaal)) ([#1056](https://github.com/mihonapp/mihon/pull/1056))\n\n### Removed\n- Legacy download folder names no longer supported ([@AntsyLich](https://github.com/AntsyLich)) ([`e55e5f6`](https://github.com/mihonapp/mihon/commit/e55e5f6f64f872475d370d6ce0c186e2601776e4))\n- Remove legacy broken source and history backup ([@AntsyLich](https://github.com/AntsyLich)) ([`518abf0`](https://github.com/mihonapp/mihon/commit/518abf032ccb9bb45d197927be2a5faca4167d29))\n- Remove more unnecessary permissions from Firebase dependency ([@AntsyLich](https://github.com/AntsyLich)) ([`02af9b1`](https://github.com/mihonapp/mihon/commit/02af9b1acf9f590d29560bc3fc90d206e8e6e1af))\n  - Fix mishap in `02af9b1` ([@AntsyLich](https://github.com/AntsyLich)) ([`f22767d`](https://github.com/mihonapp/mihon/commit/f22767d863a0fa001f93f24092cd5ade87350502))\n\n### Fixed\n- Extracting `ComicInfo.xml` from local source archives ([@FooIbar](https://github.com/FooIbar)) ([#325](https://github.com/mihonapp/mihon/pull/325))\n- Chapter download indicator ([@ivaniskandar](https://github.com/ivaniskandar)) ([`d8b9a9f`](https://github.com/mihonapp/mihon/commit/d8b9a9f593911569ff2bceb49b4f020978d0d2e1))\n- Issues with shizuku in a multi user setup ([@Redjard](https://github.com/Redjard)) ([#494](https://github.com/mihonapp/mihon/pull/494))\n- Fix reader page image not being decoded until it's visible ([@FooIbar](https://github.com/FooIbar)) ([#563](https://github.com/mihonapp/mihon/pull/563))\n- Reader chapter progress slider visuals ([@FooIbar](https://github.com/FooIbar)) ([#674](https://github.com/mihonapp/mihon/pull/674))\n- Extension being marked as not installed instead of untrusted after updating with private installer ([@AntsyLich](https://github.com/AntsyLich)) ([`2114514`](https://github.com/mihonapp/mihon/commit/21145144cdf550aa775047603e06e261951ebc42))\n- Extension update counter not updating due to extension being marked as untrusted ([@AntsyLich](https://github.com/AntsyLich)) ([`2114514`](https://github.com/mihonapp/mihon/commit/21145144cdf550aa775047603e06e261951ebc42))\n- `Key \"extension-XXX-YYY\" was already used` crash ([@AntsyLich](https://github.com/AntsyLich)) ([`2114514`](https://github.com/mihonapp/mihon/commit/21145144cdf550aa775047603e06e261951ebc42))\n- Navigation layout tap zones shifting after zooming out in webtoon readers ([@FooIbar](https://github.com/FooIbar)) ([#767](https://github.com/mihonapp/mihon/pull/767))\n- Some extension not loading due to missing classes ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#783](https://github.com/mihonapp/mihon/pull/783))\n- Theme colors in accordance to upstream changes ([@CrepeTF](https://github.com/CrepeTF), [@AntsyLich](https://github.com/AntsyLich)) ([#766](https://github.com/mihonapp/mihon/pull/766), [#963](https://github.com/mihonapp/mihon/pull/963), [#976](https://github.com/mihonapp/mihon/pull/976), [9a34ace](https://github.com/mihonapp/mihon/commit/9a34ace09c66274e6c2b3f9446058a0fa99d4bd0))\n- Crash when requesting folder access on non-conforming devices ([@mainrs](https://github.com/mainrs)) ([#726](https://github.com/mihonapp/mihon/pull/726))\n- Fix unexpected skips in strong skipping mode ([@FooIbar](https://github.com/FooIbar)) ([#940](https://github.com/mihonapp/mihon/pull/940))\n- Bugged color for Date/Scanlator in chapter list for read chapters ([@ivaniskandar](https://github.com/ivaniskandar)) ([`15d9992`](https://github.com/mihonapp/mihon/commit/15d999229fcce865001d5fa77d0163e6e80e38db))\n- Categories having same `order` after restoring backup ([@Cologler](https://github.com/Cologler)) ([`119bcbf`](https://github.com/mihonapp/mihon/commit/119bcbf8ed2415664922ea77fadf0da1165d1732))\n- Filter by \"Tracking\" temporarily stuck after signing out of tracker ([@AntsyLich](https://github.com/AntsyLich)) ([#987](https://github.com/mihonapp/mihon/pull/987))\n  - Fix login prompts despite being logged in to trackers in Manga screen ([@AntsyLich](https://github.com/AntsyLich)) ([`cbcd8bd`](https://github.com/mihonapp/mihon/commit/cbcd8bd6682023f728568f2b44da26124618aed7))\n- JXL image downloading and loading ([@FooIbar](https://github.com/FooIbar)) ([#993](https://github.com/mihonapp/mihon/pull/993))\n- Crash when using `%` in category name ([@Animeboynz](https://github.com/Animeboynz), [@FooIbar](https://github.com/FooIbar)) ([#1030](https://github.com/mihonapp/mihon/pull/1030))\n- Fix item disappearing when fast scrolling ([@cuong-tran](https://github.com/cuong-tran)) ([#1035](https://github.com/mihonapp/mihon/pull/1035))\n- Library is backed up while being disabled ([@AntsyLich](https://github.com/AntsyLich)) ([`56fb4f6`](https://github.com/mihonapp/mihon/commit/56fb4f62a152e87a71892aa68c78cac51a2c8596))\n- Crash on list with only sticky header ([@cuong-tran](https://github.com/cuong-tran)) ([#1083](https://github.com/mihonapp/mihon/pull/1083))\n- Crash when trying to clear cookies of some source ([@FooIbar](https://github.com/FooIbar)) ([#1084](https://github.com/mihonapp/mihon/pull/1084))\n- MAL search results not showing start dates ([@MajorTanya](https://github.com/MajorTanya)) ([#1098](https://github.com/mihonapp/mihon/pull/1098))\n- Android SDK 35 API collision ([@AntsyLich](https://github.com/AntsyLich)) ([`fdb9617`](https://github.com/mihonapp/mihon/commit/fdb96179c6373eb0a8e7d6daea671a315d5ce5f0))\n- Manga next update calculation when considering custom fetch interval ([@cuong-tran](https://github.com/cuong-tran)) ([#1206](https://github.com/mihonapp/mihon/pull/1206))\n- WheelPicker Manual Input ([@Animeboynz](https://github.com/Animeboynz)) ([#1209](https://github.com/mihonapp/mihon/pull/1209))\n- EnhancedTracker not auto binding when adding manga to library ([@brewkunz](https://github.com/brewkunz)) ([#1298](https://github.com/mihonapp/mihon/pull/1298))\n- Step count in settings slider ([@abdurisaq](https://github.com/abdurisaq)) ([#1356](https://github.com/mihonapp/mihon/pull/1356))\n- Freezing in some screens due to blocking call ([@cuong-tran](https://github.com/cuong-tran)) ([#1364](https://github.com/mihonapp/mihon/pull/1364))\n- Crash when removing non-existent tracked entry from tracker ([@cuong-tran](https://github.com/cuong-tran)) ([#1380](https://github.com/mihonapp/mihon/pull/1380))\n\n### Other\n- Code cleanup\n  - Minor refactor of theming when expressions ([@MajorTanya](https://github.com/MajorTanya)) ([#396](https://github.com/mihonapp/mihon/pull/396))\n  - Inside `WorkerInfoScreen` ([@AntsyLich](https://github.com/AntsyLich)) ([`5aec8f8`](https://github.com/mihonapp/mihon/commit/5aec8f8018236a38106483da08f9cbc28261ac9b))\n  - Inside `ChapterDownloadIndicator`, `MangaChapterListItem` ([@AntsyLich](https://github.com/AntsyLich)) ([`b7e091d`](https://github.com/mihonapp/mihon/commit/b7e091d5d039e00cababc7daf555280df6cf9c03))\n  - MangaCoverFetcher ([@ivaniskandar](https://github.com/ivaniskandar)) ([`1365695`](https://github.com/mihonapp/mihon/commit/13656959ae0606736f6ca9eb62699dc23e467c2f))\n- Cleanup `LibraryScreenModel` `LibraryMap.applySort` and some more ([@AntsyLich](https://github.com/AntsyLich)) ([`2beb89d`](https://github.com/mihonapp/mihon/commit/2beb89d53163a6d288f8acdebe0f5d26fea8ab3e))\n- Address `overridePendingTransition` deprecation ([@MajorTanya](https://github.com/MajorTanya)) ([#410](https://github.com/mihonapp/mihon/pull/410))\n- Prioritize extension classes and files over app ([@beer-psi](https://github.com/beer-psi)) ([#433](https://github.com/mihonapp/mihon/pull/433))\n- Use compose pager implementation ([@ivaniskandar](https://github.com/ivaniskandar)) ([`84984ef`](https://github.com/mihonapp/mihon/commit/84984ef7e1d7242924120cd2f171cb9dd75bc916))\n- Switch to coil3 from coil2 ([@ivaniskandar](https://github.com/ivaniskandar)) ([`f72b6e4`](https://github.com/mihonapp/mihon/commit/f72b6e4d7c1f2f93d705402e4d80c94160bef54d))\n  - Fix GIF not playing ([@jobobby04](https://github.com/jobobby04)) ([`59bedb3`](https://github.com/mihonapp/mihon/commit/59bedb33ff59ad5db1df2e93567a2266fb63eacc))\n- Accommodate db for sync support ([@kaiserbh](https://github.com/kaiserbh)) ([#450](https://github.com/mihonapp/mihon/pull/450))\n- Fix webtoon last visible item position calculation ([@FooIbar](https://github.com/FooIbar)) ([#562](https://github.com/mihonapp/mihon/pull/562))\n- Migrate from `com.google.accompanist:accompanist-webview` to `io.github.kevinnzou:compose-webview` ([@sirlag](https://github.com/sirlag)) ([#569](https://github.com/mihonapp/mihon/pull/569))\n- Rewrite migrations ([@ghostbear](https://github.com/ghostbear)) ([#577](https://github.com/mihonapp/mihon/pull/577))\n  - Further improve migration ([@ghostbear](https://github.com/ghostbear)) ([#588](https://github.com/mihonapp/mihon/pull/588))\n  - Fix migrations not running ([@ghostbear](https://github.com/ghostbear)) ([#604](https://github.com/mihonapp/mihon/pull/604))\n  - Fix MigratorTest after updating to Kotlin 2 ([@cuong-tran](https://github.com/cuong-tran)) ([#896](https://github.com/mihonapp/mihon/pull/896))\n  - Add MigratorTest to build script ([@cuong-tran](https://github.com/cuong-tran)) ([#896](https://github.com/mihonapp/mihon/pull/896))\n  - Fix UI freeze after migration ([@AntsyLich](https://github.com/AntsyLich)) ([`3f1d28c`](https://github.com/mihonapp/mihon/commit/3f1d28c3833e6b868152149ed02b3fb8c54eccef))\n  - Fix some migrations never running ([@MajorTanya](https://github.com/MajorTanya), [@AntsyLich](https://github.com/AntsyLich)) ([#1030](https://github.com/mihonapp/mihon/pull/1030))\n- Add ProGuard rule to keep `mihon` namespace classes ([@MajorTanya](https://github.com/MajorTanya)) ([#605](https://github.com/mihonapp/mihon/pull/605))\n- Use gradle plugins to share build configuration instead of subprojects ([@AntsyLich](https://github.com/AntsyLich)) ([`e448e40`](https://github.com/mihonapp/mihon/commit/e448e40406e8d9916120a278e42829a6f1b25a7a))\n- Remove dependency on compose material 2 components ([@AntsyLich](https://github.com/AntsyLich)) ([`fb94230`](https://github.com/mihonapp/mihon/commit/fb9423028eb017c110cb805f2d0601e5b02e50f9))\n- Upload PR build artifacts to GitHub ([@FooIbar](https://github.com/FooIbar)) ([#941](https://github.com/mihonapp/mihon/pull/941))\n- Refactor archive support with libarchive ([@FooIbar](https://github.com/FooIbar)) ([#949](https://github.com/mihonapp/mihon/pull/949))\n  - Add safeguard to prevent ArchiveInputStream from being closed twice ([@null2264](https://github.com/null2264)) ([#967](https://github.com/mihonapp/mihon/pull/967))\n  - Move archive related code to :core:archive ([@AntsyLich](https://github.com/AntsyLich)) ([`bd7b354`](https://github.com/mihonapp/mihon/commit/bd7b35419861df6d426d6ec0a188391910d0f615))\n- Replace detekt with ktlint via spotless ([@AntsyLich](https://github.com/AntsyLich)) ([#1130](https://github.com/mihonapp/mihon/pull/1130), [#1136](https://github.com/mihonapp/mihon/pull/1136), [#1138](https://github.com/mihonapp/mihon/pull/1138))\n  - Refrain from running spotless on weblate files ([@AntsyLich](https://github.com/AntsyLich)) ([`32d2c2a`](https://github.com/mihonapp/mihon/commit/32d2c2ac1bc224cbda2f09a4023d7d120ea0e954))\n- Use feature flags in compose compiler plugin ([@AntsyLich](https://github.com/AntsyLich)) ([`8f9a325`](https://github.com/mihonapp/mihon/commit/8f9a325895bb7b94c2ec92dd969094fc30b3b5e2))\n- PagerPageHolder: lazy init loading indicator ([@AntsyLich](https://github.com/AntsyLich), [@ivaniskandar](https://github.com/ivaniskandar)) ([`a45eb5e`](https://github.com/mihonapp/mihon/commit/a45eb5e5288159dbbbbb5f92140ce0dd32a8f3ab))\n- Collect MangaScreen state with lifecycle ([@AntsyLich](https://github.com/AntsyLich), [@ivaniskandar](https://github.com/ivaniskandar)) ([`03eb756`](https://github.com/mihonapp/mihon/commit/03eb756ecba0692d88d3a76254afc4c157fa225b))\n- Add stable marker to Manga data class ([@AntsyLich](https://github.com/AntsyLich), [@ivaniskandar](https://github.com/ivaniskandar)) ([`03eb756`](https://github.com/mihonapp/mihon/commit/03eb756ecba0692d88d3a76254afc4c157fa225b))\n- Use DTOs to parse tracking API responses ([@MajorTanya](https://github.com/MajorTanya)) ([#1103](https://github.com/mihonapp/mihon/pull/1103))\n  - Fix Kitsu ratingTwenty being typed as String ([@MajorTanya](https://github.com/MajorTanya)) ([#1191](https://github.com/mihonapp/mihon/pull/1191))\n  - Fix Kitsu `synopsis` nullability ([@MajorTanya](https://github.com/MajorTanya)) ([#1233](https://github.com/mihonapp/mihon/pull/1233))\n  - Fix AniList `ALSearchItem.status` nullibility ([@Secozzi](https://github.com/Secozzi)) ([#1297](https://github.com/mihonapp/mihon/pull/1297))\n- Migrate some classpaths to gradle plugins ([@AntsyLich](https://github.com/AntsyLich)) ([`fc1c804`](https://github.com/mihonapp/mihon/commit/fc1c804bfda1d76c0399bbb6214e75b3def951cc))\n- Add crashlytics to standard builds ([@AntsyLich](https://github.com/AntsyLich)) ([`3c611b9`](https://github.com/mihonapp/mihon/commit/3c611b95fb79e5ac972019b76c7b24f46a3087fd))\n- Switch to stable compose ([@AntsyLich](https://github.com/AntsyLich)) ([`2baffa6`](https://github.com/mihonapp/mihon/commit/2baffa62cade1abd978d5fd03151b47fc87fd31e))\n- Switch from inorichi injekt to kohesive Injekt ([@AntsyLich](https://github.com/AntsyLich)) ([#1205](https://github.com/mihonapp/mihon/pull/1205))\n  - Use custom injekt register with inorichi patch ([@AntsyLich](https://github.com/AntsyLich)) ([`83fd474`](https://github.com/mihonapp/mihon/commit/83fd4746eda1b99f35292b0c2211e606a421b3eb))\n- Use TextFieldState in BasicTextField where applicable (p) ([#1201](https://github.com/mihonapp/mihon/pull/1201))\n- Bump NDK version ([@AntsyLich](https://github.com/AntsyLich)) ([#1203](https://github.com/mihonapp/mihon/pull/1203))\n- Move firebase permission removal to standard flavor ([@AntsyLich](https://github.com/AntsyLich)) ([`be671b4`](https://github.com/mihonapp/mihon/commit/be671b42cefd70180644e01bb065a18cb7701bf9))\n- Adjust distinct checker in WidgetManager and run on default dispatcher (p) ([`9b8ab6a`](https://github.com/mihonapp/mihon/commit/9b8ab6acc25a5f99c9c5eebf9cc250975931c57c))\n- Update resources exclusion rules (p) ([`481cfed`](https://github.com/mihonapp/mihon/commit/481cfedf08576cecfbb35616837bd8f627d8f959))\n- Bump compile sdk to 35 (p) ([`37419cd`](https://github.com/mihonapp/mihon/commit/37419cdc26c2b5c4f8583fc2ba439b08fab42856))\n- ChapterNavigator: dispatch page change only when needed (p) ([`f84d9a0`](https://github.com/mihonapp/mihon/commit/f84d9a08b4af768b1e9920c43cc445c86f5427fc))\n- Remove usage of deprecated accompanist SystemUiController ([@AntsyLich](https://github.com/AntsyLich)) ([`2ba3f06`](https://github.com/mihonapp/mihon/commit/2ba3f0612c08c7021fed2f6d96cd538da2f34a13))\n- Run PR check when base strings are changed ([@AntsyLich](https://github.com/AntsyLich)) ([`4051f18`](https://github.com/mihonapp/mihon/commit/4051f180a2e36e8a2cde6c55f0bea7952fdc4704))\n  - Fix PR build check ([@AntsyLich](https://github.com/AntsyLich)) ([`9503082`](https://github.com/mihonapp/mihon/commit/9503082d44b5bd868ee1bfc42741dc978d1d9047))\n- Cleanup .gitignore files ([@AntsyLich](https://github.com/AntsyLich)) ([`afa5002`](https://github.com/mihonapp/mihon/commit/afa50029882655af8d5eea40aed7644fce4564d8))\n- Pass uncaught exception to default handler in GlobalExceptionHandler (so it's reported to crashlytics) ([@AntsyLich](https://github.com/AntsyLich)) ([`f3a2f56`](https://github.com/mihonapp/mihon/commit/f3a2f566c8a09ab862758ae69b43da2a2cd8f1db))\n\n## [v0.16.5] - 2024-04-09\n### Added\n- Relative date for up to a week in the future ([@sirlag](https://github.com/sirlag)) ([#415](https://github.com/mihonapp/mihon/pull/415))\n- Advance setting to install custom color profiles ([@wwww-wwww](https://github.com/wwww-wwww)) ([#523](https://github.com/mihonapp/mihon/pull/523))\n\n### Changed\n- Permanently enable 32-bit color mode ([@wwww-wwww](https://github.com/wwww-wwww)) ([#523](https://github.com/mihonapp/mihon/pull/523))\n\n### Fixed\n- Wrong dates in Updates and History tab due to time zone issues ([@sirlag](https://github.com/sirlag)) ([#402](https://github.com/mihonapp/mihon/pull/402))\n  - Fix extra date header introduced by parent PR ([@sirlag](https://github.com/sirlag)) ([#415](https://github.com/mihonapp/mihon/pull/415))\n  - Fix build time in about screen displayed in UTC ([@AntsyLich](https://github.com/AntsyLich)) ([`aed53d3`](https://github.com/mihonapp/mihon/commit/aed53d3bdc85ce0e899fbb90b9f9cad0f1b86480))\n- App infinitely retries tracker update instead of failing after 3 tries ([@MajorTanya](https://github.com/MajorTanya)) ([#411](https://github.com/mihonapp/mihon/pull/411))\n- Crash on Pixel devices (was introduced due to compose update) ([@AntsyLich](https://github.com/AntsyLich)) ([`ab06720`](https://github.com/mihonapp/mihon/commit/ab067209661eceefc04c65f6bdbfcaa8a1264651))\n- Crash when opening some heif/heic images ([@az4521](https://github.com/az4521)) ([#466](https://github.com/mihonapp/mihon/pull/466))\n- Crash when putting app in background while track date selection dialog is open ([@ivaniskandar](https://github.com/ivaniskandar)) ([`c348fac`](https://github.com/mihonapp/mihon/commit/c348fac78fac479fb123bd617c01c78b9ca851d5))\n- Dates for saved images not following the specification (fixes date issue mainly on Samsung devices) ([@MajorTanya](https://github.com/MajorTanya)) ([#552](https://github.com/mihonapp/mihon/pull/552))\n- Colors getting distorted when opening CMYK jpeg images ([@wwww-wwww](https://github.com/wwww-wwww)) ([#523](https://github.com/mihonapp/mihon/pull/523))\n\n## [v0.16.4] - 2024-02-27\n### Changed\n- Don't include custom user agent for MAL (circumvents MAL block) ([@AntsyLich](https://github.com/AntsyLich)) ([`085ad8d`](https://github.com/mihonapp/mihon/commit/085ad8d44637c375a8ed24aba3a6f75f5b0cc9ee))\n\n## [v0.16.3] - 2024-01-30\n### Added\n- Copy extension debug info when clicking logo or name in the extension details screen ([@MajorTanya](https://github.com/MajorTanya)) ([#271](https://github.com/mihonapp/mihon/pull/271))\n\n### Changed\n- Hide display cutoff setting in reader settings sheet if fullscreen is disabled ([@Riztard](https://github.com/Riztard)) ([#241](https://github.com/mihonapp/mihon/pull/241))\n- Library update error filename to `mihon_update_errors.txt` from `tachiyomi_update_errors.txt` ([@mjishnu](https://github.com/mjishnu)) ([#253](https://github.com/mihonapp/mihon/pull/253))\n\n### Fixed\n- Bottom sheet UI issues on non-tablet devices ([@theolm](https://github.com/theolm)) ([#182](https://github.com/mihonapp/mihon/pull/182))\n- Crash when switching screen while a list is scrolling ([@theolm](https://github.com/theolm)) ([#272](https://github.com/mihonapp/mihon/pull/272))\n- Newly installed extensions not being recognized by Mihon ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#275](https://github.com/mihonapp/mihon/pull/275))\n- Failing to refresh MAL token being inferred as token expiration ([@AntsyLich](https://github.com/AntsyLich)) ([`0f4de03`](https://github.com/mihonapp/mihon/commit/0f4de03d7a77b52490dc9a95e96a308b93b26e4f))\n\n### Other\n- Add `detekt` (kotlin code analyzer) to the project ([@theolm](https://github.com/theolm)) ([#216](https://github.com/mihonapp/mihon/pull/216))\n\n## [v0.16.2] - 2024-01-28\n### Changed\n- Backup now contains scanlator filter of a series ([@jobobby04](https://github.com/jobobby04)) ([#166](https://github.com/mihonapp/mihon/pull/166))\n- App icon scaling ([@AntsyLich](https://github.com/AntsyLich)) ([`26815c7`](https://github.com/mihonapp/mihon/commit/26815c7356111394665467c1e81255ac9ee33c1a))\n- Tracker OAuth client to Mihon's (fixes login issue for Shikimori tracker) ([@AntsyLich](https://github.com/AntsyLich)) ([`e3f33e2`](https://github.com/mihonapp/mihon/commit/e3f33e24f5e928ac8a85d1f500fd42d4715fc6b5))\n- Tracker user agents ([@AntsyLich](https://github.com/AntsyLich), [@kitsumed](https://github.com/kitsumed)) ([`e3f33e2`](https://github.com/mihonapp/mihon/commit/e3f33e24f5e928ac8a85d1f500fd42d4715fc6b5))\n- Crash log filename to `mihon_crash_logs.txt` from `tachiyomi_crash_logs.txt` ([@MajorTanya](https://github.com/MajorTanya)) ([#234](https://github.com/mihonapp/mihon/pull/234))\n- Don't try to refresh MAL token after refresh token expires ([@AntsyLich](https://github.com/AntsyLich)) ([`32188f9`](https://github.com/mihonapp/mihon/commit/32188f9f65009a18250674ef1bd6e57d351c1fba))\n\n### Fixed\n- \"Flash screen on page change\" making the screen full black ([@AntsyLich](https://github.com/AntsyLich)) ([`38d6ab8`](https://github.com/mihonapp/mihon/commit/38d6ab80ce868707829dbc81de4170afe3c2f2a5))\n- Faulty MangaUpdates score in database ([@AntsyLich](https://github.com/AntsyLich)) ([`a024218`](https://github.com/mihonapp/mihon/commit/a024218410953a389b8af4880fa7ae6cc30124a2))\n- Updating extension not reflecting correctly ([@AntsyLich](https://github.com/AntsyLich)) ([`cb06898`](https://github.com/mihonapp/mihon/commit/cb068984303f811692531bf6f14902ae118d8ac7))\n- Inconsistent button height in \"Data and storage\" for some languages ([@theolm](https://github.com/theolm)) ([#202](https://github.com/mihonapp/mihon/pull/202))\n- Chapter not being marked as read locally when refreshing Enhanced Trackers ([@Secozzi](https://github.com/Secozzi)) ([#219](https://github.com/mihonapp/mihon/pull/219))\n\n### Other\n- Make `last_modified_at` field in database be `0` on insert ([@kaiserbh](https://github.com/kaiserbh)) ([#113](https://github.com/mihonapp/mihon/pull/113))\n- Remove usage of `.not()` where possible in code ([@AntsyLich](https://github.com/AntsyLich)) ([`3940740`](https://github.com/mihonapp/mihon/commit/39407407f282dbb7fa972b12053c26b3e3bd66d8))\n- Use type-safe project accessors ([@theolm](https://github.com/theolm)) ([#194](https://github.com/mihonapp/mihon/pull/194))\n- Legacy tracker model properties now has the same type as the domain ones ([@AntsyLich](https://github.com/AntsyLich)) ([#245](https://github.com/mihonapp/mihon/pull/245))\n\n## [v0.16.1] - 2024-01-18\n### Changed\n- Branding to Mihon (for references we missed) ([@AntsyLich](https://github.com/AntsyLich)) ([`6539406`](https://github.com/mihonapp/mihon/commit/653940613d661eb371aab3b3c3a8181e4e308c43))\n- Preview builds are now called Beta builds ([@AntsyLich](https://github.com/AntsyLich)) ([`3c3a1cd`](https://github.com/mihonapp/mihon/commit/3c3a1cd448ab1f653ddd12b2afe0cba38968d1b9))\n\n### Fixed\n- App icon not following the [specification](https://developer.android.com/develop/ui/views/launch/icon_design_adaptive) ([@AntsyLich](https://github.com/AntsyLich)) ([`1849715`](https://github.com/mihonapp/mihon/commit/18497154183356bb0d469b27827f9f7d6b7a3130))\n- MangaUpdates default score being set to -1.0 ([@AntsyLich](https://github.com/AntsyLich)) ([`99fd273`](https://github.com/mihonapp/mihon/commit/99fd2731f5d9d374700e89fa67d4d5bf611bbafa))\n\n## [v0.16.0] - 2024-01-16\n### Changed\n- Branding to Mihon ([@AntsyLich](https://github.com/AntsyLich))\n- Minimum supported Android version to 8 ([@AntsyLich](https://github.com/AntsyLich)) ([`dfb3091`](https://github.com/mihonapp/mihon/commit/dfb3091e380dda3e9bfb64bf5c9a685cf3a03d0e))\n\n[unreleased]: https://github.com/mihonapp/mihon/compare/v0.19.5...main\n[v0.19.4]: https://github.com/mihonapp/mihon/compare/v0.19.4...v0.19.5\n[v0.19.4]: https://github.com/mihonapp/mihon/compare/v0.19.3...v0.19.4\n[v0.19.3]: https://github.com/mihonapp/mihon/compare/v0.19.2...v0.19.3\n[v0.19.2]: https://github.com/mihonapp/mihon/compare/v0.19.1...v0.19.2\n[v0.19.1]: https://github.com/mihonapp/mihon/compare/v0.19.0...v0.19.1\n[v0.19.0]: https://github.com/mihonapp/mihon/compare/v0.18.0...v0.19.0\n[v0.18.0]: https://github.com/mihonapp/mihon/compare/v0.17.1...v0.18.0\n[v0.17.1]: https://github.com/mihonapp/mihon/compare/v0.17.0...v0.17.1\n[v0.17.0]: https://github.com/mihonapp/mihon/compare/v0.16.5...v0.17.0\n[v0.16.5]: https://github.com/mihonapp/mihon/compare/v0.16.4...v0.16.5\n[v0.16.4]: https://github.com/mihonapp/mihon/compare/v0.16.3...v0.16.4\n[v0.16.3]: https://github.com/mihonapp/mihon/compare/v0.16.2...v0.16.3\n[v0.16.2]: https://github.com/mihonapp/mihon/compare/v0.16.1...v0.16.2\n[v0.16.1]: https://github.com/mihonapp/mihon/compare/v0.16.0...v0.16.1\n[v0.16.0]: https://github.com/mihonapp/mihon/compare/a9c7cbf...v0.16.0\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, caste, color, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity moderators are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity moderators have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community moderators responsible for enforcement at\nthe [Mihon Discord server](https://discord.gg/mihon).\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community moderators are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity moderators will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community moderators, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior,  harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/),\nversion 2.1, available at\n[v2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).\n\nCommunity Impact Guidelines were inspired by\n[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).\n\nFor answers to common questions about this code of conduct, see the FAQ at\n[FAQ](https://www.contributor-covenant.org/faq). Translations are available\nat [translations](https://www.contributor-covenant.org/translations).\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "Looking to report an issue/bug or make a feature request? Please refer to the [README file](https://github.com/mihonapp/mihon#issues-feature-requests-and-contributing).\n\n---\n\nThanks for your interest in contributing to Mihon!\n\n\n# Code contributions\n\nPull requests are welcome!\n\nIf you're interested in taking on [an open issue](https://github.com/mihonapp/mihon/issues), please comment on it so others are aware.\nYou do not need to ask for permission nor an assignment.\n\n## Prerequisites\n\nBefore you start, please note that the ability to use following technologies is **required** and that existing contributors will not actively teach them to you.\n\n- Basic [Android development](https://developer.android.com/)\n- [Kotlin](https://kotlinlang.org/)\n\n### Tools\n\n- [Android Studio](https://developer.android.com/studio)\n- Emulator or phone with developer options enabled to test changes.\n\n## Getting help\n\n- Join [the Discord server](https://discord.gg/mihon) for online help and to ask questions while developing.\n\n# Translations\n\nTranslations are done externally via Weblate. See [our website](https://mihon.app/docs/contribute#translation) for more details.\n\n\n# Forks\n\nForks are allowed so long as they abide by [the project's LICENSE](https://github.com/mihonapp/mihon/blob/main/LICENSE).\n\nWhen creating a fork, remember to:\n\n- To avoid confusion with the main app:\n    - Change the app name\n    - Change the app icon\n    - Change or disable the [app update checker](https://github.com/mihonapp/mihon/blob/main/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt)\n- To avoid installation conflicts:\n    - Change the `applicationId` in [`build.gradle.kts`](https://github.com/mihonapp/mihon/blob/main/app/build.gradle.kts)\n- To avoid having your data polluting the main app's analytics and crash report services:\n    - If you want to use Firebase analytics, replace [`google-services.json`](https://github.com/mihonapp/mihon/blob/main/app/src/standard/google-services.json) with your own\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n"
  },
  {
    "path": "README.md",
    "content": "<div align=\"center\">\n\n<a href=\"https://mihon.app\">\n    <img src=\"./.github/assets/logo.png\" alt=\"Mihon logo\" title=\"Mihon logo\" width=\"80\"/>\n</a>\n\n# Mihon [App](#)\n\n### Full-featured reader\nDiscover and read manga, webtoons, comics, and more – easier than ever on your Android device.\n\n[![Discord server](https://img.shields.io/discord/1195734228319617024.svg?label=&labelColor=6A7EC2&color=7389D8&logo=discord&logoColor=FFFFFF)](https://discord.gg/mihon)\n[![GitHub downloads](https://img.shields.io/github/downloads/mihonapp/mihon/total?label=downloads&labelColor=27303D&color=0D1117&logo=github&logoColor=FFFFFF&style=flat)](https://mihon.app/download)\n\n[![CI](https://img.shields.io/github/actions/workflow/status/mihonapp/mihon/build.yml?labelColor=27303D)](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml)\n[![License: Apache-2.0](https://img.shields.io/github/license/mihonapp/mihon?labelColor=27303D&color=0877d2)](/LICENSE)\n[![Translation status](https://img.shields.io/weblate/progress/mihon?labelColor=27303D&color=946300)](https://hosted.weblate.org/engage/mihon/)\n\n## Download\n\n[![Mihon Stable](https://img.shields.io/github/release/mihonapp/mihon.svg?maxAge=3600&label=Stable&labelColor=06599d&color=043b69)](https://mihon.app/download)\n[![Mihon Beta](https://img.shields.io/github/v/release/mihonapp/mihon-preview.svg?maxAge=3600&label=Beta&labelColor=2c2c47&color=1c1c39)](https://mihon.app/download)\n\n*Requires Android 8.0 or higher.*\n\n## Features\n\n<div align=\"left\">\n\n* Local reading of content.\n* A configurable reader with multiple viewers, reading directions and other settings.\n* Tracker support: [MyAnimeList](https://myanimelist.net/), [AniList](https://anilist.co/), [Kitsu](https://kitsu.app/), [MangaUpdates](https://mangaupdates.com), [Shikimori](https://shikimori.one), and [Bangumi](https://bgm.tv/) support.\n* Categories to organize your library.\n* Light and dark themes.\n* Schedule updating your library for new chapters.\n* Create backups locally to read offline or to your desired cloud service.\n* Plus much more...\n\n</div>\n\n## Contributing\n\n[Code of conduct](./CODE_OF_CONDUCT.md) · [Contributing guide](./CONTRIBUTING.md)\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nBefore reporting a new issue, take a look at the [FAQ](https://mihon.app/docs/faq/general), the [changelog](https://mihon.app/changelogs/) and the already opened [issues](https://github.com/mihonapp/mihon/issues); if you got any questions, join our [Discord server](https://discord.gg/mihon).\n\n\n### Repositories\n\n[![mihonapp/website - GitHub](https://github-readme-stats.vercel.app/api/pin/?username=mihonapp&repo=website&bg_color=161B22&text_color=c9d1d9&title_color=0877d2&icon_color=0877d2&border_radius=8&hide_border=true&description_lines_count=2)](https://github.com/mihonapp/website/)\n[![mihonapp/bitmap.kt - GitHub](https://github-readme-stats.vercel.app/api/pin/?username=mihonapp&repo=bitmap.kt&bg_color=161B22&text_color=c9d1d9&title_color=0877d2&icon_color=0877d2&border_radius=8&hide_border=true&description_lines_count=2)](https://github.com/mihonapp/bitmap.kt/)\n\n### Credits\n\nThank you to all the people who have contributed!\n\n<a href=\"https://github.com/mihonapp/mihon/graphs/contributors\">\n    <img src=\"https://contrib.rocks/image?repo=mihonapp/mihon\" alt=\"Mihon app contributors\" title=\"Mihon app contributors\" width=\"800\"/>\n</a>\n\n### Disclaimer\n\nThe developer(s) of this application does not have any affiliation with the content providers available, and this application hosts zero content.\n\n### License\n\n<pre>\nCopyright © 2015 Javier Tomás\nCopyright © 2024 Mihon Open Source Project\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n</pre>\n\n</div>\n"
  },
  {
    "path": "app/build.gradle.kts",
    "content": "import mihon.buildlogic.Config\nimport mihon.buildlogic.getBuildTime\nimport mihon.buildlogic.getCommitCount\nimport mihon.buildlogic.getGitSha\n\nplugins {\n    id(\"mihon.android.application\")\n    id(\"mihon.android.application.compose\")\n    id(\"com.github.zellius.shortcut-helper\")\n    kotlin(\"plugin.serialization\")\n    alias(libs.plugins.aboutLibraries)\n}\n\nif (Config.includeTelemetry) {\n    pluginManager.apply {\n        apply(libs.plugins.google.services.get().pluginId)\n        apply(libs.plugins.firebase.crashlytics.get().pluginId)\n    }\n}\n\nshortcutHelper.setFilePath(\"./shortcuts.xml\")\n\nandroid {\n    namespace = \"eu.kanade.tachiyomi\"\n\n    defaultConfig {\n        applicationId = \"app.mihon\"\n\n        versionCode = 19\n        versionName = \"0.19.5\"\n\n        buildConfigField(\"String\", \"COMMIT_COUNT\", \"\\\"${getCommitCount()}\\\"\")\n        buildConfigField(\"String\", \"COMMIT_SHA\", \"\\\"${getGitSha()}\\\"\")\n        buildConfigField(\"String\", \"BUILD_TIME\", \"\\\"${getBuildTime(useLastCommitTime = false)}\\\"\")\n        buildConfigField(\"boolean\", \"TELEMETRY_INCLUDED\", \"${Config.includeTelemetry}\")\n        buildConfigField(\"boolean\", \"UPDATER_ENABLED\", \"${Config.enableUpdater}\")\n\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n    }\n\n    buildTypes {\n        val debug by getting {\n            applicationIdSuffix = \".dev\"\n            versionNameSuffix = \"-${getCommitCount()}\"\n            isPseudoLocalesEnabled = true\n        }\n        val release by getting {\n            isMinifyEnabled = Config.enableCodeShrink\n            isShrinkResources = Config.enableCodeShrink\n\n            proguardFiles(\"proguard-android-optimize.txt\", \"proguard-rules.pro\")\n\n            buildConfigField(\"String\", \"BUILD_TIME\", \"\\\"${getBuildTime(useLastCommitTime = true)}\\\"\")\n        }\n\n        val commonMatchingFallbacks = listOf(release.name)\n\n        create(\"foss\") {\n            initWith(release)\n\n            applicationIdSuffix = \".foss\"\n\n            matchingFallbacks.addAll(commonMatchingFallbacks)\n        }\n        create(\"preview\") {\n            initWith(release)\n\n            applicationIdSuffix = \".debug\"\n\n            versionNameSuffix = debug.versionNameSuffix\n            signingConfig = debug.signingConfig\n\n            matchingFallbacks.addAll(commonMatchingFallbacks)\n\n            buildConfigField(\"String\", \"BUILD_TIME\", \"\\\"${getBuildTime(useLastCommitTime = false)}\\\"\")\n        }\n        create(\"benchmark\") {\n            initWith(release)\n\n            isDebuggable = false\n            isProfileable = true\n            versionNameSuffix = \"-benchmark\"\n            applicationIdSuffix = \".benchmark\"\n\n            signingConfig = debug.signingConfig\n\n            matchingFallbacks.addAll(commonMatchingFallbacks)\n        }\n    }\n\n    sourceSets {\n        getByName(\"preview\").res.srcDirs(\"src/debug/res\")\n        getByName(\"benchmark\").res.srcDirs(\"src/debug/res\")\n    }\n\n    splits {\n        abi {\n            isEnable = true\n            isUniversalApk = true\n            reset()\n            include(\"armeabi-v7a\", \"arm64-v8a\", \"x86\", \"x86_64\")\n        }\n    }\n\n    packaging {\n        jniLibs {\n            keepDebugSymbols += listOf(\n                \"libandroidx.graphics.path\",\n                \"libarchive-jni\",\n                \"libconscrypt_jni\",\n                \"libimagedecoder\",\n                \"libquickjs\",\n                \"libsqlite3x\",\n            )\n                .map { \"**/$it.so\" }\n        }\n        resources {\n            excludes += setOf(\n                \"kotlin-tooling-metadata.json\",\n                \"LICENSE.txt\",\n                \"META-INF/**/*.properties\",\n                \"META-INF/**/LICENSE.txt\",\n                \"META-INF/*.properties\",\n                \"META-INF/*.version\",\n                \"META-INF/DEPENDENCIES\",\n                \"META-INF/LICENSE\",\n                \"META-INF/NOTICE\",\n                \"META-INF/README.md\",\n            )\n        }\n    }\n\n    dependenciesInfo {\n        includeInApk = Config.includeDependencyInfo\n        includeInBundle = Config.includeDependencyInfo\n    }\n\n    buildFeatures {\n        viewBinding = true\n        buildConfig = true\n        aidl = true\n\n        // Disable some unused things\n        renderScript = false\n        shaders = false\n    }\n\n    lint {\n        abortOnError = false\n        checkReleaseBuilds = false\n    }\n}\n\nkotlin {\n    compilerOptions {\n        freeCompilerArgs.addAll(\n            \"-opt-in=androidx.compose.animation.ExperimentalAnimationApi\",\n            \"-opt-in=androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi\",\n            \"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi\",\n            \"-opt-in=androidx.compose.foundation.layout.ExperimentalLayoutApi\",\n            \"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api\",\n            \"-opt-in=androidx.compose.material3.ExperimentalMaterial3ExpressiveApi\",\n            \"-opt-in=androidx.compose.ui.ExperimentalComposeUiApi\",\n            \"-opt-in=coil3.annotation.ExperimentalCoilApi\",\n            \"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi\",\n            \"-opt-in=kotlinx.coroutines.FlowPreview\",\n            \"-opt-in=kotlinx.coroutines.InternalCoroutinesApi\",\n            \"-opt-in=kotlinx.serialization.ExperimentalSerializationApi\",\n            \"-Xannotation-default-target=param-property\",\n        )\n    }\n}\n\ndependencies {\n    implementation(projects.i18n)\n    implementation(projects.core.archive)\n    implementation(projects.core.common)\n    implementation(projects.coreMetadata)\n    implementation(projects.sourceApi)\n    implementation(projects.sourceLocal)\n    implementation(projects.data)\n    implementation(projects.domain)\n    implementation(projects.presentationCore)\n    implementation(projects.presentationWidget)\n    implementation(projects.telemetry)\n\n    // Compose\n    implementation(compose.activity)\n    implementation(compose.foundation)\n    implementation(compose.material3.core)\n    implementation(compose.material.icons)\n    implementation(compose.animation)\n    implementation(compose.animation.graphics)\n    debugImplementation(compose.ui.tooling)\n    implementation(compose.ui.tooling.preview)\n    implementation(compose.ui.util)\n\n    implementation(androidx.interpolator)\n\n    implementation(androidx.paging.runtime)\n    implementation(androidx.paging.compose)\n\n    implementation(androidx.sqlite.bundled)\n\n    implementation(kotlinx.reflect)\n    implementation(kotlinx.immutables)\n\n    implementation(platform(kotlinx.coroutines.bom))\n    implementation(kotlinx.bundles.coroutines)\n\n    // AndroidX libraries\n    implementation(androidx.annotation)\n    implementation(androidx.appcompat)\n    implementation(androidx.biometricktx)\n    implementation(androidx.constraintlayout)\n    implementation(androidx.corektx)\n    implementation(androidx.splashscreen)\n    implementation(androidx.recyclerview)\n    implementation(androidx.viewpager)\n    implementation(androidx.profileinstaller)\n\n    implementation(androidx.bundles.lifecycle)\n\n    // Job scheduling\n    implementation(androidx.workmanager)\n\n    // RxJava\n    implementation(libs.rxjava)\n\n    // Networking\n    implementation(libs.bundles.okhttp)\n    implementation(libs.okio)\n    implementation(libs.conscrypt.android) // TLS 1.3 support for Android < 10\n\n    // Data serialization (JSON, protobuf, xml)\n    implementation(kotlinx.bundles.serialization)\n\n    // HTML parser\n    implementation(libs.jsoup)\n\n    // Disk\n    implementation(libs.disklrucache)\n    implementation(libs.unifile)\n\n    // Preferences\n    implementation(libs.preferencektx)\n\n    // Dependency injection\n    implementation(libs.injekt)\n\n    // Image loading\n    implementation(platform(libs.coil.bom))\n    implementation(libs.bundles.coil)\n    implementation(libs.subsamplingscaleimageview) {\n        exclude(module = \"image-decoder\")\n    }\n    implementation(libs.image.decoder)\n\n    // UI libraries\n    implementation(libs.material)\n    implementation(libs.flexible.adapter.core)\n    implementation(libs.photoview)\n    implementation(libs.directionalviewpager) {\n        exclude(group = \"androidx.viewpager\", module = \"viewpager\")\n    }\n    implementation(libs.richeditor.compose)\n    implementation(libs.aboutLibraries.compose)\n    implementation(libs.bundles.voyager)\n    implementation(libs.compose.materialmotion)\n    implementation(libs.swipe)\n    implementation(libs.compose.webview)\n    implementation(libs.compose.grid)\n    implementation(libs.reorderable)\n    implementation(libs.bundles.markdown)\n    implementation(libs.materialKolor)\n\n    // Logging\n    implementation(libs.logcat)\n\n    // Shizuku\n    implementation(libs.bundles.shizuku)\n\n    // String similarity\n    implementation(libs.stringSimilarity)\n\n    // Tests\n    testImplementation(libs.bundles.test)\n    testRuntimeOnly(libs.junit.platform.launcher)\n\n    // For detecting memory leaks; see https://square.github.io/leakcanary/\n    // debugImplementation(libs.leakcanary.android)\n    implementation(libs.leakcanary.plumber)\n\n    testImplementation(kotlinx.coroutines.test)\n}\n\nandroidComponents {\n    onVariants(selector().withFlavor(\"default\" to \"standard\")) {\n        // Only excluding in standard flavor because this breaks\n        // Layout Inspector's Compose tree\n        it.packaging.resources.excludes.add(\"META-INF/*.version\")\n    }\n}\n\nbuildscript {\n    dependencies {\n        classpath(kotlinx.gradle)\n    }\n}\n"
  },
  {
    "path": "app/google-services.json",
    "content": "{\n  \"project_info\": {\n    \"project_number\": \"82031285239\",\n    \"project_id\": \"mihonapp\",\n    \"storage_bucket\": \"mihonapp.appspot.com\"\n  },\n  \"client\": [\n    {\n      \"client_info\": {\n        \"mobilesdk_app_id\": \"1:82031285239:android:336ed6dceef55c357594f2\",\n        \"android_client_info\": {\n          \"package_name\": \"app.mihon\"\n        }\n      },\n      \"oauth_client\": [],\n      \"api_key\": [\n        {\n          \"current_key\": \"AIzaSyDTvOxBQnuXADx5isKxoynPG0nlAO8bQbk\"\n        }\n      ],\n      \"services\": {\n        \"appinvite_service\": {\n          \"other_platform_oauth_client\": []\n        }\n      }\n    },\n    {\n      \"client_info\": {\n        \"mobilesdk_app_id\": \"1:82031285239:android:b7440cbdd0d33c9d7594f2\",\n        \"android_client_info\": {\n          \"package_name\": \"app.mihon.debug\"\n        }\n      },\n      \"oauth_client\": [],\n      \"api_key\": [\n        {\n          \"current_key\": \"AIzaSyDTvOxBQnuXADx5isKxoynPG0nlAO8bQbk\"\n        }\n      ],\n      \"services\": {\n        \"appinvite_service\": {\n          \"other_platform_oauth_client\": []\n        }\n      }\n    }\n  ],\n  \"configuration_version\": \"1\"\n}\n"
  },
  {
    "path": "app/proguard-android-optimize.txt",
    "content": "-dontusemixedcaseclassnames\n-ignorewarnings\n-verbose\n\n-keepattributes *Annotation*\n\n-keepclasseswithmembernames,includedescriptorclasses class * {\n    native <methods>;\n}\n\n-keepclassmembers enum * {\n    public static **[] values();\n    public static ** valueOf(java.lang.String);\n}\n\n-keepclassmembers class * implements android.os.Parcelable {\n    public static final ** CREATOR;\n}\n\n-keep class androidx.annotation.Keep\n\n-keep @androidx.annotation.Keep class * {*;}\n\n-keepclasseswithmembers class * {\n    @androidx.annotation.Keep <methods>;\n}\n\n-keepclasseswithmembers class * {\n    @androidx.annotation.Keep <fields>;\n}\n\n-keepclasseswithmembers class * {\n    @androidx.annotation.Keep <init>(...);\n}"
  },
  {
    "path": "app/proguard-rules.pro",
    "content": "-dontobfuscate\n\n-keep,allowoptimization class eu.kanade.**\n-keep,allowoptimization class tachiyomi.**\n-keep,allowoptimization class mihon.**\n\n# Keep common dependencies used in extensions\n-keep,allowoptimization class androidx.preference.** { public protected *; }\n-keep,allowoptimization class kotlin.** { public protected *; }\n-keep,allowoptimization class kotlinx.coroutines.** { public protected *; }\n-keep,allowoptimization class kotlinx.serialization.** { public protected *; }\n-keep,allowoptimization class kotlin.time.** { public protected *; }\n-keep,allowoptimization class okhttp3.** { public protected *; }\n-keep,allowoptimization class okio.** { public protected *; }\n-keep,allowoptimization class org.jsoup.** { public protected *; }\n-keep,allowoptimization class rx.** { public protected *; }\n-keep,allowoptimization class app.cash.quickjs.** { public protected *; }\n-keep,allowoptimization class uy.kohesive.injekt.** { public protected *; }\n\n# From extensions-lib\n-keep,allowoptimization class eu.kanade.tachiyomi.network.interceptor.RateLimitInterceptorKt { public protected *; }\n-keep,allowoptimization class eu.kanade.tachiyomi.network.interceptor.SpecificHostRateLimitInterceptorKt { public protected *; }\n-keep,allowoptimization class eu.kanade.tachiyomi.network.NetworkHelper { public protected *; }\n-keep,allowoptimization class eu.kanade.tachiyomi.network.OkHttpExtensionsKt { public protected *; }\n-keep,allowoptimization class eu.kanade.tachiyomi.network.RequestsKt { public protected *; }\n-keep,allowoptimization class eu.kanade.tachiyomi.AppInfo { public protected *; }\n\n##---------------Begin: proguard configuration for RxJava 1.x  ----------\n-dontwarn sun.misc.**\n\n-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {\n   long producerIndex;\n   long consumerIndex;\n}\n\n-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {\n    rx.internal.util.atomic.LinkedQueueNode producerNode;\n}\n\n-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {\n    rx.internal.util.atomic.LinkedQueueNode consumerNode;\n}\n\n-dontnote rx.internal.util.PlatformDependent\n##---------------End: proguard configuration for RxJava 1.x  ----------\n\n##---------------Begin: proguard configuration for okhttp  ----------\n-keepclasseswithmembers class okhttp3.MultipartBody$Builder { *; }\n##---------------End: proguard configuration for okhttp  ----------\n\n##---------------Begin: proguard configuration for kotlinx.serialization  ----------\n-keepattributes *Annotation*, InnerClasses\n-dontnote kotlinx.serialization.** # core serialization annotations\n\n# kotlinx-serialization-json specific. Add this if you have java.lang.NoClassDefFoundError kotlinx.serialization.json.JsonObjectSerializer\n-keepclassmembers class kotlinx.serialization.json.** {\n    *** Companion;\n}\n-keepclasseswithmembers class kotlinx.serialization.json.** {\n    kotlinx.serialization.KSerializer serializer(...);\n}\n\n-keep,includedescriptorclasses class eu.kanade.**$$serializer { *; }\n-keepclassmembers class eu.kanade.** {\n    *** Companion;\n}\n-keepclasseswithmembers class eu.kanade.** {\n    kotlinx.serialization.KSerializer serializer(...);\n}\n\n-keep class kotlinx.serialization.**\n-keepclassmembers class kotlinx.serialization.** {\n    <methods>;\n}\n##---------------End: proguard configuration for kotlinx.serialization  ----------\n\n# XmlUtil\n-keep public enum nl.adaptivity.xmlutil.EventType { *; }\n\n# Firebase\n-keep class com.google.firebase.installations.** { *; }\n-keep interface com.google.firebase.installations.** { *; }\n"
  },
  {
    "path": "app/shortcuts.xml",
    "content": "<shortcuts xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <shortcut\n        android:enabled=\"true\"\n        android:icon=\"@drawable/sc_collections_bookmark_48dp\"\n        android:shortcutDisabledMessage=\"@string/app_not_available\"\n        android:shortcutId=\"show_library\"\n        android:shortcutLongLabel=\"@string/label_library\"\n        android:shortcutShortLabel=\"@string/label_library\">\n        <intent\n            android:action=\"eu.kanade.tachiyomi.SHOW_LIBRARY\"\n            android:targetClass=\"eu.kanade.tachiyomi.ui.main.MainActivity\" />\n    </shortcut>\n    <shortcut\n        android:enabled=\"true\"\n        android:icon=\"@drawable/sc_new_releases_48dp\"\n        android:shortcutDisabledMessage=\"@string/app_not_available\"\n        android:shortcutId=\"show_recently_updated\"\n        android:shortcutLongLabel=\"@string/label_recent_updates\"\n        android:shortcutShortLabel=\"@string/label_recent_updates\">\n        <intent\n            android:action=\"eu.kanade.tachiyomi.SHOW_RECENTLY_UPDATED\"\n            android:targetClass=\"eu.kanade.tachiyomi.ui.main.MainActivity\" />\n    </shortcut>\n    <shortcut\n        android:enabled=\"true\"\n        android:icon=\"@drawable/sc_history_48dp\"\n        android:shortcutDisabledMessage=\"@string/app_not_available\"\n        android:shortcutId=\"show_recently_read\"\n        android:shortcutLongLabel=\"@string/label_recent_manga\"\n        android:shortcutShortLabel=\"@string/label_recent_manga\">\n        <intent\n            android:action=\"eu.kanade.tachiyomi.SHOW_RECENTLY_READ\"\n            android:targetClass=\"eu.kanade.tachiyomi.ui.main.MainActivity\" />\n    </shortcut>\n    <shortcut\n        android:enabled=\"true\"\n        android:icon=\"@drawable/sc_explore_48dp\"\n        android:shortcutDisabledMessage=\"@string/app_not_available\"\n        android:shortcutId=\"show_catalogues\"\n        android:shortcutLongLabel=\"@string/browse\"\n        android:shortcutShortLabel=\"@string/browse\">\n        <intent\n            android:action=\"eu.kanade.tachiyomi.SHOW_CATALOGUES\"\n            android:targetClass=\"eu.kanade.tachiyomi.ui.main.MainActivity\" />\n    </shortcut>\n</shortcuts>\n"
  },
  {
    "path": "app/src/debug/res/drawable/ic_launcher_background.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"108dp\"\n    android:height=\"108dp\"\n    android:viewportWidth=\"432\"\n    android:viewportHeight=\"432\">\n  <group>\n    <clip-path\n        android:pathData=\"M0,0h432v432h-432z\"/>\n    <path\n        android:pathData=\"M0,0h432v432h-432z\"\n        android:fillColor=\"#FAFAFA\"/>\n    <path\n        android:pathData=\"M0,0h432v432h-432z\"\n        android:fillColor=\"#2E3943\"/>\n    <path\n        android:pathData=\"M322.13,215.5C322.13,272.66 274.64,319 216.07,319C157.49,319 110,272.66 110,215.5C110,158.34 157.49,112 216.07,112C274.64,112 322.13,158.34 322.13,215.5Z\"\n        android:fillColor=\"#F2FAFF\"/>\n    <path\n        android:pathData=\"M216.07,299.59C263.66,299.59 302.24,261.94 302.24,215.5C302.24,169.06 263.66,131.41 216.07,131.41C168.47,131.41 129.89,169.06 129.89,215.5C129.89,261.94 168.47,299.59 216.07,299.59ZM216.07,319C274.64,319 322.13,272.66 322.13,215.5C322.13,158.34 274.64,112 216.07,112C157.49,112 110,158.34 110,215.5C110,272.66 157.49,319 216.07,319Z\"\n        android:fillColor=\"#7EBBED\"\n        android:fillType=\"evenOdd\"/>\n  </group>\n</vector>\n"
  },
  {
    "path": "app/src/debug/res/drawable/ic_launcher_foreground.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"108dp\"\n    android:height=\"108dp\"\n    android:viewportWidth=\"432\"\n    android:viewportHeight=\"432\">\n  <path\n      android:pathData=\"M182.03,188.7L181.33,172.69C183.42,173.09 185.91,173.19 191.57,173.19C198.44,173.19 207.49,172.79 212.16,172.19C214.15,171.99 214.95,171.7 216.24,171L226.98,180.15C225.98,181.54 225.68,182.14 224.59,184.92C223.7,187.11 219.62,199.74 218.03,205.11C225.39,206.6 229.46,207.7 235.03,209.98C235.73,205.11 235.83,202.52 235.83,193.67C235.83,191.39 235.73,190.09 235.43,188.01L252.74,188.6C252.24,190.99 252.14,191.98 252.04,195.86C251.64,205.21 251.24,209.68 250.25,216.45C257.11,219.93 257.11,219.93 260.59,221.82C262.38,222.81 262.78,223.01 263.97,223.41L258.2,242.01C255.42,239.52 251.54,236.83 245.87,233.65C240.9,245.49 232.65,254.14 220.12,261C215.94,255.43 212.76,252.05 207.68,248.07C215.04,244.59 218.43,242.4 222.3,238.72C226.08,235.04 228.57,231.46 230.96,226.09C224.59,223.21 220.51,221.92 213.45,220.43C209.38,232.56 206.09,240.32 203.21,244.99C199.33,251.25 194.06,254.54 187.99,254.54C183.32,254.54 178.55,252.45 175.07,248.87C171.09,244.79 169,239.12 169,232.56C169,222.81 173.67,214.36 181.83,209.09C187.1,205.71 192.67,204.21 201.52,203.72C203.31,197.85 204.8,192.78 206.19,187.11C201.82,187.51 196.35,187.81 189.68,188.1C186.1,188.2 184.91,188.3 182.03,188.7ZM197.14,218.93C192.47,219.73 189.68,221.22 187.2,224.4C185.31,226.59 184.41,229.18 184.41,231.96C184.41,235.04 185.91,237.33 187.8,237.33C190.08,237.33 192.67,232.16 197.14,218.93Z\"\n      android:fillColor=\"#031019\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\">\n\n    <!-- Internet -->\n    <uses-permission android:name=\"android.permission.INTERNET\" />\n    <uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />\n    <uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />\n\n    <!-- Storage -->\n    <uses-permission\n        android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"\n        tools:ignore=\"ScopedStorage\" />\n\n    <!-- For background jobs -->\n    <uses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" />\n    <uses-permission android:name=\"android.permission.WAKE_LOCK\" />\n    <uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\" />\n\n    <!-- For managing extensions -->\n    <uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />\n    <uses-permission android:name=\"android.permission.REQUEST_DELETE_PACKAGES\" />\n    <uses-permission android:name=\"android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION\" />\n    <!-- To view extension packages in API 30+ -->\n    <uses-permission\n        android:name=\"android.permission.QUERY_ALL_PACKAGES\"\n        tools:ignore=\"QueryAllPackagesPermission\" />\n\n    <uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\" />\n    <uses-permission\n        android:name=\"android.permission.READ_APP_SPECIFIC_LOCALES\"\n        tools:ignore=\"ProtectedPermissions\" />\n\n    <uses-permission android:name=\"android.permission.FOREGROUND_SERVICE_DATA_SYNC\" />\n\n    <application\n        android:name=\".App\"\n        android:allowBackup=\"false\"\n        android:enableOnBackInvokedCallback=\"true\"\n        android:hardwareAccelerated=\"true\"\n        android:icon=\"@mipmap/ic_launcher\"\n        android:label=\"@string/app_name\"\n        android:largeHeap=\"true\"\n        android:localeConfig=\"@xml/locales_config\"\n        android:networkSecurityConfig=\"@xml/network_security_config\"\n        android:preserveLegacyExternalStorage=\"true\"\n        android:requestLegacyExternalStorage=\"true\"\n        android:roundIcon=\"@mipmap/ic_launcher\"\n        android:supportsRtl=\"true\"\n        android:theme=\"@style/Theme.Tachiyomi\">\n\n        <activity\n            android:name=\".ui.main.MainActivity\"\n            android:exported=\"true\"\n            android:launchMode=\"singleTop\"\n            android:theme=\"@style/Theme.Tachiyomi.SplashScreen\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" />\n\n                <category android:name=\"android.intent.category.LAUNCHER\" />\n            </intent-filter>\n\n            <!-- Deep link to add repos -->\n            <intent-filter android:label=\"@string/action_add_repo\">\n                <action android:name=\"android.intent.action.VIEW\" />\n\n                <category android:name=\"android.intent.category.DEFAULT\" />\n                <category android:name=\"android.intent.category.BROWSABLE\" />\n\n                <data android:scheme=\"tachiyomi\" />\n                <data android:host=\"add-repo\" />\n            </intent-filter>\n\n            <!-- Open backup files -->\n            <intent-filter android:label=\"@string/pref_restore_backup\">\n                <action android:name=\"android.intent.action.VIEW\" />\n\n                <category android:name=\"android.intent.category.DEFAULT\" />\n                <category android:name=\"android.intent.category.BROWSABLE\" />\n\n                <data android:scheme=\"file\" />\n                <data android:scheme=\"content\" />\n                <data android:host=\"*\" />\n                <data android:mimeType=\"*/*\" />\n                <!--\n                Work around Android's ugly primitive PatternMatcher\n                implementation that can't cope with finding a . early in\n                the path unless it's explicitly matched.\n\n                See https://stackoverflow.com/a/31028507\n                -->\n                <data android:pathPattern=\".*\\\\.tachibk\" />\n                <data android:pathPattern=\".*\\\\..*\\\\.tachibk\" />\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\.tachibk\" />\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\..*\\\\.tachibk\" />\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\..*\\\\..*\\\\.tachibk\" />\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\..*\\\\..*\\\\..*\\\\.tachibk\" />\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\..*\\\\..*\\\\..*\\\\..*\\\\.tachibk\" />\n            </intent-filter>\n\n            <!--suppress AndroidDomInspection -->\n            <meta-data\n                android:name=\"android.app.shortcuts\"\n                android:resource=\"@xml/shortcuts\" />\n        </activity>\n\n        <activity\n            android:name=\".crash.CrashActivity\"\n            android:exported=\"false\"\n            android:process=\":error_handler\" />\n\n        <activity\n            android:name=\".ui.deeplink.DeepLinkActivity\"\n            android:exported=\"true\"\n            android:label=\"@string/action_search\"\n            android:launchMode=\"singleTask\"\n            android:theme=\"@android:style/Theme.NoDisplay\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.SEARCH\" />\n                <action android:name=\"com.google.android.gms.actions.SEARCH_ACTION\" />\n\n                <category android:name=\"android.intent.category.DEFAULT\" />\n            </intent-filter>\n            <intent-filter>\n                <action android:name=\"eu.kanade.tachiyomi.SEARCH\" />\n                <category android:name=\"android.intent.category.DEFAULT\" />\n            </intent-filter>\n            <intent-filter>\n                <action android:name=\"android.intent.action.SEND\" />\n                <category android:name=\"android.intent.category.DEFAULT\" />\n                <data android:mimeType=\"text/plain\" />\n            </intent-filter>\n\n            <meta-data\n                android:name=\"android.app.searchable\"\n                android:resource=\"@xml/searchable\" />\n        </activity>\n\n        <activity\n            android:name=\".ui.reader.ReaderActivity\"\n            android:exported=\"false\"\n            android:launchMode=\"singleTask\">\n            <intent-filter>\n                <action android:name=\"com.samsung.android.support.REMOTE_ACTION\" />\n            </intent-filter>\n\n            <meta-data\n                android:name=\"com.samsung.android.support.REMOTE_ACTION\"\n                android:resource=\"@xml/s_pen_actions\" />\n        </activity>\n\n        <activity\n            android:name=\".ui.security.UnlockActivity\"\n            android:exported=\"false\"\n            android:theme=\"@style/Theme.Tachiyomi\" />\n\n        <activity\n            android:name=\".ui.webview.WebViewActivity\"\n            android:configChanges=\"uiMode|orientation|screenSize\"\n            android:exported=\"false\" />\n\n        <activity\n            android:name=\".extension.util.ExtensionInstallActivity\"\n            android:exported=\"false\"\n            android:theme=\"@android:style/Theme.Translucent.NoTitleBar\" />\n\n        <activity\n            android:name=\".ui.setting.track.TrackLoginActivity\"\n            android:exported=\"true\"\n            android:label=\"@string/track_activity_name\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.VIEW\" />\n\n                <category android:name=\"android.intent.category.DEFAULT\" />\n                <category android:name=\"android.intent.category.BROWSABLE\" />\n\n                <data android:scheme=\"mihon\" />\n\n                <data android:host=\"anilist-auth\" />\n                <data android:host=\"bangumi-auth\" />\n                <data android:host=\"myanimelist-auth\" />\n                <data android:host=\"shikimori-auth\" />\n            </intent-filter>\n        </activity>\n\n        <receiver\n            android:name=\".data.notification.NotificationReceiver\"\n            android:exported=\"false\" />\n\n        <service\n            android:name=\".extension.util.ExtensionInstallService\"\n            android:exported=\"false\"\n            android:foregroundServiceType=\"shortService\" />\n\n        <service\n            android:name=\"androidx.appcompat.app.AppLocalesMetadataHolderService\"\n            android:enabled=\"false\"\n            android:exported=\"false\">\n            <meta-data\n                android:name=\"autoStoreLocales\"\n                android:value=\"true\" />\n        </service>\n\n        <service\n            android:name=\"androidx.work.impl.foreground.SystemForegroundService\"\n            android:foregroundServiceType=\"dataSync\"\n            tools:node=\"merge\" />\n\n        <provider\n            android:name=\"androidx.core.content.FileProvider\"\n            android:authorities=\"${applicationId}.provider\"\n            android:exported=\"false\"\n            android:grantUriPermissions=\"true\">\n            <meta-data\n                android:name=\"android.support.FILE_PROVIDER_PATHS\"\n                android:resource=\"@xml/provider_paths\" />\n        </provider>\n\n        <provider\n            android:name=\"rikka.shizuku.ShizukuProvider\"\n            android:authorities=\"${applicationId}.shizuku\"\n            android:enabled=\"true\"\n            android:exported=\"true\"\n            android:multiprocess=\"false\"\n            android:permission=\"android.permission.INTERACT_ACROSS_USERS_FULL\" />\n\n        <meta-data\n            android:name=\"android.webkit.WebView.EnableSafeBrowsing\"\n            android:value=\"false\" />\n        <meta-data\n            android:name=\"android.webkit.WebView.MetricsOptOut\"\n            android:value=\"true\" />\n\n    </application>\n\n</manifest>\n"
  },
  {
    "path": "app/src/main/aidl/mihon/app/shizuku/IShellInterface.aidl",
    "content": "package mihon.app.shizuku;\n\ninterface IShellInterface {\n    void install(in AssetFileDescriptor apk) = 1;\n\n    void destroy() = 16777114;\n}\n"
  },
  {
    "path": "app/src/main/baseline-prof.txt",
    "content": "Landroidx/activity/Cancellable;\nLandroidx/activity/ComponentActivity;\nPLandroidx/activity/ComponentActivity;->$r8$lambda$OnwlVMZzrLePIRy-6IUDTtLLUV0(Landroidx/activity/ComponentActivity;)Landroid/os/Bundle;\nHSPLandroidx/activity/ComponentActivity;->$r8$lambda$h2i_RK2mddCIbAsGubaI4eL8_cU(Landroidx/activity/ComponentActivity;)V\nPLandroidx/activity/ComponentActivity;->$r8$lambda$h2i_RK2mddCIbAsGubaI4eL8_cU(Landroidx/activity/ComponentActivity;)V\nHSPLandroidx/activity/ComponentActivity;-><init>()V\nHPLandroidx/activity/ComponentActivity;-><init>()V\nHSPLandroidx/activity/ComponentActivity;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V\nPLandroidx/activity/ComponentActivity;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V\nHSPLandroidx/activity/ComponentActivity;->addOnNewIntentListener(Leu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;)V\nPLandroidx/activity/ComponentActivity;->addOnNewIntentListener(Leu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;)V\nHSPLandroidx/activity/ComponentActivity;->ensureViewModelStore()V\nPLandroidx/activity/ComponentActivity;->ensureViewModelStore()V\nHSPLandroidx/activity/ComponentActivity;->getActivityResultRegistry()Landroidx/activity/result/ActivityResultRegistry;\nPLandroidx/activity/ComponentActivity;->getActivityResultRegistry()Landroidx/activity/result/ActivityResultRegistry;\nHSPLandroidx/activity/ComponentActivity;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/CreationExtras;\nPLandroidx/activity/ComponentActivity;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/CreationExtras;\nHSPLandroidx/activity/ComponentActivity;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nHPLandroidx/activity/ComponentActivity;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nHSPLandroidx/activity/ComponentActivity;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;\nPLandroidx/activity/ComponentActivity;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;\nHSPLandroidx/activity/ComponentActivity;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;\nPLandroidx/activity/ComponentActivity;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;\nHSPLandroidx/activity/ComponentActivity;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;\nPLandroidx/activity/ComponentActivity;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;\nHSPLandroidx/activity/ComponentActivity;->onCreate(Landroid/os/Bundle;)V\nPLandroidx/activity/ComponentActivity;->onCreate(Landroid/os/Bundle;)V\nPLandroidx/activity/ComponentActivity;->onSaveInstanceState(Landroid/os/Bundle;)V\nPLandroidx/activity/ComponentActivity;->onTrimMemory(I)V\nPLandroidx/activity/ComponentActivity;->removeOnNewIntentListener(Landroidx/core/util/Consumer;)V\nLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;\nHSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;\nHSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;->saveState()Landroid/os/Bundle;\nLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;\nHSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nHSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->onContextAvailable(Landroid/content/Context;)V\nPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->onContextAvailable(Landroid/content/Context;)V\nLandroidx/activity/ComponentActivity$1;\nHSPLandroidx/activity/ComponentActivity$1;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$1;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nLandroidx/activity/ComponentActivity$2;\nHSPLandroidx/activity/ComponentActivity$2;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$2;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nLandroidx/activity/ComponentActivity$3;\nHSPLandroidx/activity/ComponentActivity$3;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$3;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nHSPLandroidx/activity/ComponentActivity$3;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/activity/ComponentActivity$3;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/activity/ComponentActivity$4;\nHSPLandroidx/activity/ComponentActivity$4;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$4;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nHSPLandroidx/activity/ComponentActivity$4;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/activity/ComponentActivity$4;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/activity/ComponentActivity$5;\nHSPLandroidx/activity/ComponentActivity$5;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$5;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nHSPLandroidx/activity/ComponentActivity$5;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nPLandroidx/activity/ComponentActivity$5;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/activity/ComponentActivity$NonConfigurationInstances;\nLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;\nHSPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;-><init>(Landroidx/fragment/app/FragmentActivity;)V\nLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda0;\nHSPLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nPLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nLandroidx/activity/FullyDrawnReporter;\nHSPLandroidx/activity/FullyDrawnReporter;-><init>(Ljava/util/concurrent/Executor;Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;)V\nPLandroidx/activity/FullyDrawnReporter;-><init>(Ljava/util/concurrent/Executor;Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;)V\nLandroidx/activity/OnBackPressedCallback;\nHSPLandroidx/activity/OnBackPressedCallback;-><init>(Z)V\nPLandroidx/activity/OnBackPressedCallback;-><init>(Z)V\nHSPLandroidx/activity/OnBackPressedCallback;->addCancellable(Landroidx/activity/Cancellable;)V\nHPLandroidx/activity/OnBackPressedCallback;->addCancellable(Landroidx/activity/Cancellable;)V\nHSPLandroidx/activity/OnBackPressedCallback;->remove()V\nHPLandroidx/activity/OnBackPressedCallback;->remove()V\nHSPLandroidx/activity/OnBackPressedCallback;->removeCancellable(Landroidx/activity/Cancellable;)V\nHPLandroidx/activity/OnBackPressedCallback;->removeCancellable(Landroidx/activity/Cancellable;)V\nHSPLandroidx/activity/OnBackPressedCallback;->setEnabled(Z)V\nPLandroidx/activity/OnBackPressedCallback;->setEnabled(Z)V\nLandroidx/activity/OnBackPressedDispatcher;\nHSPLandroidx/activity/OnBackPressedDispatcher;-><init>(Ljava/lang/Runnable;)V\nPLandroidx/activity/OnBackPressedDispatcher;-><init>(Ljava/lang/Runnable;)V\nHSPLandroidx/activity/OnBackPressedDispatcher;->access$getOnBackPressedCallbacks$p(Landroidx/activity/OnBackPressedDispatcher;)Lkotlin/collections/ArrayDeque;\nPLandroidx/activity/OnBackPressedDispatcher;->access$getOnBackPressedCallbacks$p(Landroidx/activity/OnBackPressedDispatcher;)Lkotlin/collections/ArrayDeque;\nHSPLandroidx/activity/OnBackPressedDispatcher;->addCallback(Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/OnBackPressedCallback;)V\nHPLandroidx/activity/OnBackPressedDispatcher;->addCallback(Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/OnBackPressedCallback;)V\nHSPLandroidx/activity/OnBackPressedDispatcher;->addCancellableCallback$activity_release(Landroidx/activity/OnBackPressedCallback;)Landroidx/activity/Cancellable;\nHPLandroidx/activity/OnBackPressedDispatcher;->addCancellableCallback$activity_release(Landroidx/activity/OnBackPressedCallback;)Landroidx/activity/Cancellable;\nLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;\nHSPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/Lifecycle;Landroidx/activity/OnBackPressedCallback;)V\nHPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/Lifecycle;Landroidx/activity/OnBackPressedCallback;)V\nHSPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->cancel()V\nPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->cancel()V\nHSPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;\nHSPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/OnBackPressedCallback;)V\nHPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/OnBackPressedCallback;)V\nHSPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;->cancel()V\nPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;->cancel()V\nLandroidx/activity/OnBackPressedDispatcherKt;\nHSPLandroidx/activity/OnBackPressedDispatcherKt;->get(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;\nPLandroidx/activity/OnBackPressedDispatcherKt;->get(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;\nLandroidx/activity/OnBackPressedDispatcherOwner;\nLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;\nHSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;-><clinit>()V\nPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;-><clinit>()V\nHSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;-><init>(I)V\nPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;-><init>(I)V\nHSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/activity/compose/BackHandlerKt;\nHSPLandroidx/activity/compose/BackHandlerKt;->BackHandler(ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/activity/compose/BackHandlerKt;->BackHandler(ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;-><init>(Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;Z)V\nPLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;-><init>(Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;Z)V\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;->invoke()Ljava/lang/Object;\nHPLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;->invoke()Ljava/lang/Object;\nLandroidx/activity/compose/BackHandlerKt$BackHandler$2;\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$2;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;)V\nPLandroidx/activity/compose/BackHandlerKt$BackHandler$2;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;)V\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/activity/compose/BackHandlerKt$BackHandler$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;->dispose()V\nPLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;\nHSPLandroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;-><init>(ZLandroidx/compose/runtime/MutableState;)V\nPLandroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;-><init>(ZLandroidx/compose/runtime/MutableState;)V\nLandroidx/activity/compose/ComponentActivityKt;\nHSPLandroidx/activity/compose/ComponentActivityKt;-><clinit>()V\nPLandroidx/activity/compose/ComponentActivityKt;-><clinit>()V\nHSPLandroidx/activity/compose/ComponentActivityKt;->setContent(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLandroidx/activity/compose/ComponentActivityKt;->setContent(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;\nHSPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;-><clinit>()V\nPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;-><clinit>()V\nHSPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;-><init>(I)V\nPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;-><init>(I)V\nHSPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;->invoke()Ljava/lang/Object;\nPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;->invoke()Ljava/lang/Object;\nLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;\nHSPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;-><clinit>()V\nPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;-><clinit>()V\nHSPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->getCurrent(Landroidx/compose/runtime/Composer;)Landroidx/activity/OnBackPressedDispatcherOwner;\nHPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->getCurrent(Landroidx/compose/runtime/Composer;)Landroidx/activity/OnBackPressedDispatcherOwner;\nLandroidx/activity/contextaware/ContextAwareHelper;\nHSPLandroidx/activity/contextaware/ContextAwareHelper;-><init>()V\nPLandroidx/activity/contextaware/ContextAwareHelper;-><init>()V\nHSPLandroidx/activity/contextaware/ContextAwareHelper;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V\nPLandroidx/activity/contextaware/ContextAwareHelper;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V\nPLandroidx/activity/contextaware/ContextAwareHelper;->clearAvailableContext()V\nHSPLandroidx/activity/contextaware/ContextAwareHelper;->dispatchOnContextAvailable(Landroid/content/Context;)V\nHPLandroidx/activity/contextaware/ContextAwareHelper;->dispatchOnContextAvailable(Landroid/content/Context;)V\nLandroidx/activity/contextaware/OnContextAvailableListener;\nLandroidx/activity/result/ActivityResult;\nLandroidx/activity/result/ActivityResultCallback;\nLandroidx/activity/result/ActivityResultLauncher;\nHSPLandroidx/activity/result/ActivityResultLauncher;-><init>()V\nPLandroidx/activity/result/ActivityResultLauncher;-><init>()V\nLandroidx/activity/result/ActivityResultRegistry;\nHSPLandroidx/activity/result/ActivityResultRegistry;-><init>()V\nPLandroidx/activity/result/ActivityResultRegistry;-><init>()V\nHPLandroidx/activity/result/ActivityResultRegistry;->onSaveInstanceState(Landroid/os/Bundle;)V\nHSPLandroidx/activity/result/ActivityResultRegistry;->register(Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/activity/result/ActivityResultCallback;)Landroidx/activity/result/ActivityResultLauncher;\nPLandroidx/activity/result/ActivityResultRegistry;->register(Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/activity/result/ActivityResultCallback;)Landroidx/activity/result/ActivityResultLauncher;\nHSPLandroidx/activity/result/ActivityResultRegistry;->registerKey(Ljava/lang/String;)V\nHPLandroidx/activity/result/ActivityResultRegistry;->registerKey(Ljava/lang/String;)V\nHPLandroidx/activity/result/ActivityResultRegistry;->unregister(Ljava/lang/String;)V\nLandroidx/activity/result/ActivityResultRegistry$2;\nHSPLandroidx/activity/result/ActivityResultRegistry$2;-><init>(Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;I)V\nPLandroidx/activity/result/ActivityResultRegistry$2;-><init>(Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;I)V\nPLandroidx/activity/result/ActivityResultRegistry$2;->unregister()V\nLandroidx/activity/result/ActivityResultRegistry$CallbackAndContract;\nHSPLandroidx/activity/result/ActivityResultRegistry$CallbackAndContract;-><init>(Landroidx/activity/result/contract/ActivityResultContract;Landroidx/activity/result/ActivityResultCallback;)V\nPLandroidx/activity/result/ActivityResultRegistry$CallbackAndContract;-><init>(Landroidx/activity/result/contract/ActivityResultContract;Landroidx/activity/result/ActivityResultCallback;)V\nLandroidx/activity/result/ActivityResultRegistryOwner;\nLandroidx/activity/result/contract/ActivityResultContract;\nHSPLandroidx/activity/result/contract/ActivityResultContract;-><init>()V\nPLandroidx/activity/result/contract/ActivityResultContract;-><init>()V\nLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;\nHSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;-><init>()V\nPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;-><init>()V\nLandroidx/activity/result/contract/ActivityResultContracts$StartActivityForResult;\nHSPLandroidx/activity/result/contract/ActivityResultContracts$StartActivityForResult;-><init>()V\nPLandroidx/activity/result/contract/ActivityResultContracts$StartActivityForResult;-><init>()V\nLandroidx/appcompat/R$styleable;\nHSPLandroidx/appcompat/R$styleable;-><clinit>()V\nPLandroidx/appcompat/R$styleable;-><clinit>()V\nLandroidx/appcompat/app/ActionBar;\nHSPLandroidx/appcompat/app/ActionBar;->readLocales(Landroid/content/Context;)Ljava/lang/String;\nPLandroidx/appcompat/app/ActionBar;->readLocales(Landroid/content/Context;)Ljava/lang/String;\nLandroidx/appcompat/app/AppCompatActivity;\nHSPLandroidx/appcompat/app/AppCompatActivity;-><init>()V\nPLandroidx/appcompat/app/AppCompatActivity;-><init>()V\nHSPLandroidx/appcompat/app/AppCompatActivity;->attachBaseContext(Landroid/content/Context;)V\nPLandroidx/appcompat/app/AppCompatActivity;->attachBaseContext(Landroid/content/Context;)V\nHSPLandroidx/appcompat/app/AppCompatActivity;->findViewById(I)Landroid/view/View;\nPLandroidx/appcompat/app/AppCompatActivity;->findViewById(I)Landroid/view/View;\nHSPLandroidx/appcompat/app/AppCompatActivity;->getDelegate()Landroidx/appcompat/app/AppCompatDelegate;\nPLandroidx/appcompat/app/AppCompatActivity;->getDelegate()Landroidx/appcompat/app/AppCompatDelegate;\nHSPLandroidx/appcompat/app/AppCompatActivity;->getResources()Landroid/content/res/Resources;\nHPLandroidx/appcompat/app/AppCompatActivity;->getResources()Landroid/content/res/Resources;\nHSPLandroidx/appcompat/app/AppCompatActivity;->initViewTreeOwners()V\nHPLandroidx/appcompat/app/AppCompatActivity;->initViewTreeOwners()V\nHSPLandroidx/appcompat/app/AppCompatActivity;->onContentChanged()V\nPLandroidx/appcompat/app/AppCompatActivity;->onContentChanged()V\nPLandroidx/appcompat/app/AppCompatActivity;->onDestroy()V\nHSPLandroidx/appcompat/app/AppCompatActivity;->onPostCreate(Landroid/os/Bundle;)V\nPLandroidx/appcompat/app/AppCompatActivity;->onPostCreate(Landroid/os/Bundle;)V\nHSPLandroidx/appcompat/app/AppCompatActivity;->onPostResume()V\nPLandroidx/appcompat/app/AppCompatActivity;->onPostResume()V\nHSPLandroidx/appcompat/app/AppCompatActivity;->onStart()V\nPLandroidx/appcompat/app/AppCompatActivity;->onStart()V\nPLandroidx/appcompat/app/AppCompatActivity;->onStop()V\nHSPLandroidx/appcompat/app/AppCompatActivity;->onTitleChanged(Ljava/lang/CharSequence;I)V\nPLandroidx/appcompat/app/AppCompatActivity;->onTitleChanged(Ljava/lang/CharSequence;I)V\nHSPLandroidx/appcompat/app/AppCompatActivity;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V\nPLandroidx/appcompat/app/AppCompatActivity;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V\nHSPLandroidx/appcompat/app/AppCompatActivity;->setTheme(I)V\nPLandroidx/appcompat/app/AppCompatActivity;->setTheme(I)V\nLandroidx/appcompat/app/AppCompatActivity$1;\nHSPLandroidx/appcompat/app/AppCompatActivity$1;-><init>(Leu/kanade/tachiyomi/ui/base/activity/BaseActivity;)V\nPLandroidx/appcompat/app/AppCompatActivity$1;-><init>(Leu/kanade/tachiyomi/ui/base/activity/BaseActivity;)V\nPLandroidx/appcompat/app/AppCompatActivity$1;->saveState()Landroid/os/Bundle;\nLandroidx/appcompat/app/AppCompatActivity$2;\nHSPLandroidx/appcompat/app/AppCompatActivity$2;-><init>(Leu/kanade/tachiyomi/ui/base/activity/BaseActivity;)V\nPLandroidx/appcompat/app/AppCompatActivity$2;-><init>(Leu/kanade/tachiyomi/ui/base/activity/BaseActivity;)V\nHSPLandroidx/appcompat/app/AppCompatActivity$2;->onContextAvailable(Landroid/content/Context;)V\nPLandroidx/appcompat/app/AppCompatActivity$2;->onContextAvailable(Landroid/content/Context;)V\nLandroidx/appcompat/app/AppCompatCallback;\nLandroidx/appcompat/app/AppCompatDelegate;\nHSPLandroidx/appcompat/app/AppCompatDelegate;-><clinit>()V\nPLandroidx/appcompat/app/AppCompatDelegate;-><clinit>()V\nHSPLandroidx/appcompat/app/AppCompatDelegate;-><init>()V\nPLandroidx/appcompat/app/AppCompatDelegate;-><init>()V\nHSPLandroidx/appcompat/app/AppCompatDelegate;->addActiveDelegate(Landroidx/appcompat/app/AppCompatDelegate;)V\nPLandroidx/appcompat/app/AppCompatDelegate;->addActiveDelegate(Landroidx/appcompat/app/AppCompatDelegate;)V\nHSPLandroidx/appcompat/app/AppCompatDelegate;->getDefaultNightMode()I\nPLandroidx/appcompat/app/AppCompatDelegate;->getDefaultNightMode()I\nHSPLandroidx/appcompat/app/AppCompatDelegate;->getRequestedAppLocales()Landroidx/core/os/LocaleListCompat;\nPLandroidx/appcompat/app/AppCompatDelegate;->getRequestedAppLocales()Landroidx/core/os/LocaleListCompat;\nHSPLandroidx/appcompat/app/AppCompatDelegate;->isAutoStorageOptedIn(Landroid/content/Context;)Z\nPLandroidx/appcompat/app/AppCompatDelegate;->isAutoStorageOptedIn(Landroid/content/Context;)Z\nPLandroidx/appcompat/app/AppCompatDelegate;->removeActivityDelegate(Landroidx/appcompat/app/AppCompatDelegate;)V\nHSPLandroidx/appcompat/app/AppCompatDelegate;->removeDelegateFromActives(Landroidx/appcompat/app/AppCompatDelegate;)V\nPLandroidx/appcompat/app/AppCompatDelegate;->removeDelegateFromActives(Landroidx/appcompat/app/AppCompatDelegate;)V\nHSPLandroidx/appcompat/app/AppCompatDelegate;->setDefaultNightMode(I)V\nPLandroidx/appcompat/app/AppCompatDelegate;->setDefaultNightMode(I)V\nHSPLandroidx/appcompat/app/AppCompatDelegate;->syncRequestedAndStoredLocales(Landroid/content/Context;)V\nPLandroidx/appcompat/app/AppCompatDelegate;->syncRequestedAndStoredLocales(Landroid/content/Context;)V\nLandroidx/appcompat/app/AppCompatDelegateImpl;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;-><clinit>()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;-><clinit>()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;-><init>(Landroid/app/Activity;Landroidx/appcompat/app/AppCompatCallback;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;-><init>(Landroid/app/Activity;Landroidx/appcompat/app/AppCompatCallback;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;-><init>(Landroid/content/Context;Landroid/view/Window;Landroidx/appcompat/app/AppCompatCallback;Ljava/lang/Object;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;-><init>(Landroid/content/Context;Landroid/view/Window;Landroidx/appcompat/app/AppCompatCallback;Ljava/lang/Object;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->applyApplicationSpecificConfig(ZZ)Z\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->applyApplicationSpecificConfig(ZZ)Z\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->attachBaseContext2(Landroid/content/Context;)Landroid/content/Context;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->attachBaseContext2(Landroid/content/Context;)Landroid/content/Context;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->attachToWindow(Landroid/view/Window;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->attachToWindow(Landroid/view/Window;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->calculateApplicationLocales(Landroid/content/Context;)Landroidx/core/os/LocaleListCompat;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->calculateApplicationLocales(Landroid/content/Context;)Landroidx/core/os/LocaleListCompat;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->createOverrideAppConfiguration(Landroid/content/Context;ILandroidx/core/os/LocaleListCompat;Landroid/content/res/Configuration;Z)Landroid/content/res/Configuration;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->createOverrideAppConfiguration(Landroid/content/Context;ILandroidx/core/os/LocaleListCompat;Landroid/content/res/Configuration;Z)Landroid/content/res/Configuration;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->dismissPopups()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->doInvalidatePanelMenu(I)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->doInvalidatePanelMenu(I)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->ensureSubDecor()V\nHPLandroidx/appcompat/app/AppCompatDelegateImpl;->ensureSubDecor()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->ensureWindow()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->ensureWindow()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->findViewById(I)Landroid/view/View;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->findViewById(I)Landroid/view/View;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->getPanelState(I)Landroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->getPanelState(I)Landroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->initWindowDecorActionBar()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->initWindowDecorActionBar()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->installViewFactory()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->installViewFactory()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->mapNightMode(Landroid/content/Context;I)I\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->mapNightMode(Landroid/content/Context;I)I\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onCreate()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->onCreate()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nHPLandroidx/appcompat/app/AppCompatDelegateImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->onDestroy()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onPostCreate()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->onPostCreate()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onPostResume()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->onPostResume()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onStart()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->onStart()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->onStop()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->requestWindowFeature(I)Z\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->requestWindowFeature(I)Z\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->setTheme(I)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->setTheme(I)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->setTitle(Ljava/lang/CharSequence;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->setTitle(Ljava/lang/CharSequence;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->throwFeatureRequestIfSubDecorInstalled()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->throwFeatureRequestIfSubDecorInstalled()V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl;->updateStatusGuard(Landroidx/core/view/WindowInsetsCompat;Landroid/graphics/Rect;)I\nPLandroidx/appcompat/app/AppCompatDelegateImpl;->updateStatusGuard(Landroidx/core/view/WindowInsetsCompat;Landroid/graphics/Rect;)I\nLandroidx/appcompat/app/AppCompatDelegateImpl$3;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$3;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$3;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$3;->onApplyWindowInsets(Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;)Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/appcompat/app/AppCompatDelegateImpl$3;->onApplyWindowInsets(Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;)Landroidx/core/view/WindowInsetsCompat;\nLandroidx/appcompat/app/AppCompatDelegateImpl$4;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$4;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;I)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$4;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;I)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$4;->onDetachedFromWindow()V\nLandroidx/appcompat/app/AppCompatDelegateImpl$Api24Impl;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$Api24Impl;->getLocales(Landroid/content/res/Configuration;)Landroidx/core/os/LocaleListCompat;\nPLandroidx/appcompat/app/AppCompatDelegateImpl$Api24Impl;->getLocales(Landroid/content/res/Configuration;)Landroidx/core/os/LocaleListCompat;\nLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;Landroid/view/Window$Callback;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;Landroid/view/Window$Callback;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->bypassOnContentChanged(Landroid/view/Window$Callback;)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->bypassOnContentChanged(Landroid/view/Window$Callback;)V\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onContentChanged()V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onContentChanged()V\nLandroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;\nHSPLandroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;-><init>(I)V\nPLandroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;-><init>(I)V\nLandroidx/appcompat/app/AppCompatViewInflater;\nHSPLandroidx/appcompat/app/AppCompatViewInflater;-><clinit>()V\nPLandroidx/appcompat/app/AppCompatViewInflater;-><clinit>()V\nHSPLandroidx/appcompat/app/AppCompatViewInflater;-><init>()V\nPLandroidx/appcompat/app/AppCompatViewInflater;-><init>()V\nHSPLandroidx/appcompat/app/AppCompatViewInflater;->createView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nHPLandroidx/appcompat/app/AppCompatViewInflater;->createView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nLandroidx/appcompat/app/AppLocalesMetadataHolderService;\nLandroidx/appcompat/app/AppLocalesMetadataHolderService$Api24Impl;\nHSPLandroidx/appcompat/app/AppLocalesMetadataHolderService$Api24Impl;->getDisabledComponentFlag()I\nPLandroidx/appcompat/app/AppLocalesMetadataHolderService$Api24Impl;->getDisabledComponentFlag()I\nLandroidx/appcompat/app/AppLocalesStorageHelper$SerialExecutor;\nHSPLandroidx/appcompat/app/AppLocalesStorageHelper$SerialExecutor;-><init>(Ljava/util/concurrent/Executor;)V\nPLandroidx/appcompat/app/AppLocalesStorageHelper$SerialExecutor;-><init>(Ljava/util/concurrent/Executor;)V\nLandroidx/appcompat/app/AppLocalesStorageHelper$ThreadPerTaskExecutor;\nHSPLandroidx/appcompat/app/AppLocalesStorageHelper$ThreadPerTaskExecutor;-><init>()V\nPLandroidx/appcompat/app/AppLocalesStorageHelper$ThreadPerTaskExecutor;-><init>()V\nLandroidx/appcompat/app/ToolbarActionBar$1;\nHSPLandroidx/appcompat/app/ToolbarActionBar$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/appcompat/app/ToolbarActionBar$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/appcompat/app/ToolbarActionBar$1;->run()V\nPLandroidx/appcompat/app/ToolbarActionBar$1;->run()V\nLandroidx/appcompat/view/ContextThemeWrapper;\nHSPLandroidx/appcompat/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V\nPLandroidx/appcompat/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V\nHSPLandroidx/appcompat/view/ContextThemeWrapper;->applyOverrideConfiguration(Landroid/content/res/Configuration;)V\nPLandroidx/appcompat/view/ContextThemeWrapper;->applyOverrideConfiguration(Landroid/content/res/Configuration;)V\nHSPLandroidx/appcompat/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;\nPLandroidx/appcompat/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;\nHSPLandroidx/appcompat/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;\nHPLandroidx/appcompat/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;\nHSPLandroidx/appcompat/view/ContextThemeWrapper;->getTheme()Landroid/content/res/Resources$Theme;\nPLandroidx/appcompat/view/ContextThemeWrapper;->getTheme()Landroid/content/res/Resources$Theme;\nHSPLandroidx/appcompat/view/ContextThemeWrapper;->initializeTheme()V\nPLandroidx/appcompat/view/ContextThemeWrapper;->initializeTheme()V\nLandroidx/appcompat/view/WindowCallbackWrapper;\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;-><init>(Landroid/view/Window$Callback;)V\nPLandroidx/appcompat/view/WindowCallbackWrapper;-><init>(Landroid/view/Window$Callback;)V\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z\nPLandroidx/appcompat/view/WindowCallbackWrapper;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z\nHPLandroidx/appcompat/view/WindowCallbackWrapper;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;->getWrapped()Landroid/view/Window$Callback;\nPLandroidx/appcompat/view/WindowCallbackWrapper;->getWrapped()Landroid/view/Window$Callback;\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;->onAttachedToWindow()V\nPLandroidx/appcompat/view/WindowCallbackWrapper;->onAttachedToWindow()V\nPLandroidx/appcompat/view/WindowCallbackWrapper;->onDetachedFromWindow()V\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V\nHPLandroidx/appcompat/view/WindowCallbackWrapper;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V\nHSPLandroidx/appcompat/view/WindowCallbackWrapper;->onWindowFocusChanged(Z)V\nPLandroidx/appcompat/view/WindowCallbackWrapper;->onWindowFocusChanged(Z)V\nLandroidx/appcompat/view/menu/MenuBuilder$Callback;\nLandroidx/appcompat/view/menu/MenuPresenter$Callback;\nLandroidx/appcompat/widget/AppCompatBackgroundHelper;\nHSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;-><init>(Landroid/view/View;)V\nPLandroidx/appcompat/widget/AppCompatBackgroundHelper;-><init>(Landroid/view/View;)V\nHSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->applySupportBackgroundTint()V\nPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->applySupportBackgroundTint()V\nHSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V\nPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V\nLandroidx/appcompat/widget/AppCompatDrawableManager;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager;-><clinit>()V\nPLandroidx/appcompat/widget/AppCompatDrawableManager;-><clinit>()V\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager;-><init>()V\nPLandroidx/appcompat/widget/AppCompatDrawableManager;-><init>()V\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager;->access$000()Landroid/graphics/PorterDuff$Mode;\nPLandroidx/appcompat/widget/AppCompatDrawableManager;->access$000()Landroid/graphics/PorterDuff$Mode;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager;->get()Landroidx/appcompat/widget/AppCompatDrawableManager;\nPLandroidx/appcompat/widget/AppCompatDrawableManager;->get()Landroidx/appcompat/widget/AppCompatDrawableManager;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager;->getDrawable$1(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/AppCompatDrawableManager;->getDrawable$1(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager;->preload()V\nPLandroidx/appcompat/widget/AppCompatDrawableManager;->preload()V\nLandroidx/appcompat/widget/AppCompatDrawableManager$1;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;-><init>()V\nPLandroidx/appcompat/widget/AppCompatDrawableManager$1;-><init>()V\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->arrayContains(I[I)Z\nPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->arrayContains(I[I)Z\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->createDrawableFor(Landroidx/appcompat/widget/ResourceManagerInternal;Landroid/content/Context;I)Landroid/graphics/drawable/LayerDrawable;\nPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->createDrawableFor(Landroidx/appcompat/widget/ResourceManagerInternal;Landroid/content/Context;I)Landroid/graphics/drawable/LayerDrawable;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->getTintListForDrawableRes(Landroid/content/Context;I)Landroid/content/res/ColorStateList;\nPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->getTintListForDrawableRes(Landroid/content/Context;I)Landroid/content/res/ColorStateList;\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->tintDrawable(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z\nPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->tintDrawable(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z\nHSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->tintDrawableUsingColorFilter(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z\nPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->tintDrawableUsingColorFilter(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z\nLandroidx/appcompat/widget/AppCompatImageHelper;\nHSPLandroidx/appcompat/widget/AppCompatImageHelper;-><init>(Landroid/widget/ImageView;)V\nPLandroidx/appcompat/widget/AppCompatImageHelper;-><init>(Landroid/widget/ImageView;)V\nHSPLandroidx/appcompat/widget/AppCompatImageHelper;->applyImageLevel()V\nPLandroidx/appcompat/widget/AppCompatImageHelper;->applyImageLevel()V\nHSPLandroidx/appcompat/widget/AppCompatImageHelper;->applySupportImageTint()V\nPLandroidx/appcompat/widget/AppCompatImageHelper;->applySupportImageTint()V\nHSPLandroidx/appcompat/widget/AppCompatImageHelper;->hasOverlappingRendering()Z\nPLandroidx/appcompat/widget/AppCompatImageHelper;->hasOverlappingRendering()Z\nHSPLandroidx/appcompat/widget/AppCompatImageHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V\nPLandroidx/appcompat/widget/AppCompatImageHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V\nHSPLandroidx/appcompat/widget/AppCompatImageHelper;->obtainLevelFromDrawable(Landroid/graphics/drawable/Drawable;)V\nPLandroidx/appcompat/widget/AppCompatImageHelper;->obtainLevelFromDrawable(Landroid/graphics/drawable/Drawable;)V\nLandroidx/appcompat/widget/AppCompatImageView;\nHSPLandroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V\nPLandroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V\nHSPLandroidx/appcompat/widget/AppCompatImageView;->drawableStateChanged()V\nPLandroidx/appcompat/widget/AppCompatImageView;->drawableStateChanged()V\nHSPLandroidx/appcompat/widget/AppCompatImageView;->hasOverlappingRendering()Z\nPLandroidx/appcompat/widget/AppCompatImageView;->hasOverlappingRendering()Z\nHSPLandroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V\nPLandroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V\nLandroidx/appcompat/widget/ContentFrameLayout;\nHSPLandroidx/appcompat/widget/ContentFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V\nPLandroidx/appcompat/widget/ContentFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V\nHSPLandroidx/appcompat/widget/ContentFrameLayout;->getMinWidthMajor()Landroid/util/TypedValue;\nPLandroidx/appcompat/widget/ContentFrameLayout;->getMinWidthMajor()Landroid/util/TypedValue;\nHSPLandroidx/appcompat/widget/ContentFrameLayout;->getMinWidthMinor()Landroid/util/TypedValue;\nPLandroidx/appcompat/widget/ContentFrameLayout;->getMinWidthMinor()Landroid/util/TypedValue;\nHSPLandroidx/appcompat/widget/ContentFrameLayout;->onAttachedToWindow()V\nPLandroidx/appcompat/widget/ContentFrameLayout;->onAttachedToWindow()V\nPLandroidx/appcompat/widget/ContentFrameLayout;->onDetachedFromWindow()V\nHSPLandroidx/appcompat/widget/ContentFrameLayout;->onMeasure(II)V\nHPLandroidx/appcompat/widget/ContentFrameLayout;->onMeasure(II)V\nHSPLandroidx/appcompat/widget/ContentFrameLayout;->setAttachListener(Landroidx/appcompat/widget/ContentFrameLayout$OnAttachListener;)V\nPLandroidx/appcompat/widget/ContentFrameLayout;->setAttachListener(Landroidx/appcompat/widget/ContentFrameLayout$OnAttachListener;)V\nHSPLandroidx/appcompat/widget/ContentFrameLayout;->setDecorPadding(IIII)V\nPLandroidx/appcompat/widget/ContentFrameLayout;->setDecorPadding(IIII)V\nLandroidx/appcompat/widget/ContentFrameLayout$OnAttachListener;\nLandroidx/appcompat/widget/DrawableUtils;\nHSPLandroidx/appcompat/widget/DrawableUtils;-><clinit>()V\nPLandroidx/appcompat/widget/DrawableUtils;-><clinit>()V\nHSPLandroidx/appcompat/widget/DrawableUtils;->fixDrawable(Landroid/graphics/drawable/Drawable;)V\nHPLandroidx/appcompat/widget/DrawableUtils;->fixDrawable(Landroid/graphics/drawable/Drawable;)V\nLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Insets;)I\nPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Insets;)I\nHSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/Insets;)I\nPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/Insets;)I\nHSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/Insets;)I\nPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/Insets;)I\nHSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/BlendMode;\nPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/BlendMode;\nHSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Insets;)I\nPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Insets;)I\nLandroidx/appcompat/widget/FitWindowsFrameLayout;\nHSPLandroidx/appcompat/widget/FitWindowsFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V\nPLandroidx/appcompat/widget/FitWindowsFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V\nHSPLandroidx/appcompat/widget/FitWindowsFrameLayout;->fitSystemWindows(Landroid/graphics/Rect;)Z\nPLandroidx/appcompat/widget/FitWindowsFrameLayout;->fitSystemWindows(Landroid/graphics/Rect;)Z\nLandroidx/appcompat/widget/ResourceManagerInternal;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;-><clinit>()V\nPLandroidx/appcompat/widget/ResourceManagerInternal;-><clinit>()V\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;-><init>()V\nPLandroidx/appcompat/widget/ResourceManagerInternal;-><init>()V\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->createDrawableIfNeeded(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->createDrawableIfNeeded(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->get()Landroidx/appcompat/widget/ResourceManagerInternal;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->get()Landroidx/appcompat/widget/ResourceManagerInternal;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->getCachedDrawable(Landroid/content/Context;J)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->getCachedDrawable(Landroid/content/Context;J)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;IZ)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;IZ)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->getTintList(Landroid/content/Context;I)Landroid/content/res/ColorStateList;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->getTintList(Landroid/content/Context;I)Landroid/content/res/ColorStateList;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->loadDrawableFromDelegates(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->loadDrawableFromDelegates(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->setHooks(Landroidx/appcompat/widget/ResourceManagerInternal$ResourceManagerHooks;)V\nPLandroidx/appcompat/widget/ResourceManagerInternal;->setHooks(Landroidx/appcompat/widget/ResourceManagerInternal$ResourceManagerHooks;)V\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawable(Landroid/content/Context;IZLandroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawable(Landroid/content/Context;IZLandroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawableUsingColorFilter(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z\nPLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawableUsingColorFilter(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z\nLandroidx/appcompat/widget/ResourceManagerInternal$ColorFilterLruCache;\nHSPLandroidx/appcompat/widget/ResourceManagerInternal$ColorFilterLruCache;-><init>()V\nPLandroidx/appcompat/widget/ResourceManagerInternal$ColorFilterLruCache;-><init>()V\nLandroidx/appcompat/widget/ResourceManagerInternal$ResourceManagerHooks;\nLandroidx/appcompat/widget/ResourcesWrapper;\nLandroidx/appcompat/widget/ThemeUtils;\nHSPLandroidx/appcompat/widget/ThemeUtils;-><clinit>()V\nPLandroidx/appcompat/widget/ThemeUtils;-><clinit>()V\nHSPLandroidx/appcompat/widget/ThemeUtils;->checkAppCompatTheme(Landroid/view/View;Landroid/content/Context;)V\nPLandroidx/appcompat/widget/ThemeUtils;->checkAppCompatTheme(Landroid/view/View;Landroid/content/Context;)V\nLandroidx/appcompat/widget/TintContextWrapper;\nHSPLandroidx/appcompat/widget/TintContextWrapper;-><clinit>()V\nPLandroidx/appcompat/widget/TintContextWrapper;-><clinit>()V\nHSPLandroidx/appcompat/widget/TintContextWrapper;->wrap(Landroid/content/Context;)V\nPLandroidx/appcompat/widget/TintContextWrapper;->wrap(Landroid/content/Context;)V\nLandroidx/appcompat/widget/TintResources;\nLandroidx/appcompat/widget/TintTypedArray;\nHSPLandroidx/appcompat/widget/TintTypedArray;-><init>(Landroid/content/Context;Landroid/content/res/TypedArray;)V\nPLandroidx/appcompat/widget/TintTypedArray;-><init>(Landroid/content/Context;Landroid/content/res/TypedArray;)V\nHSPLandroidx/appcompat/widget/TintTypedArray;->getDrawableIfKnown(I)Landroid/graphics/drawable/Drawable;\nPLandroidx/appcompat/widget/TintTypedArray;->getDrawableIfKnown(I)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/appcompat/widget/TintTypedArray;->getResourceId(II)I\nPLandroidx/appcompat/widget/TintTypedArray;->getResourceId(II)I\nHSPLandroidx/appcompat/widget/TintTypedArray;->getWrappedTypeArray()Landroid/content/res/TypedArray;\nPLandroidx/appcompat/widget/TintTypedArray;->getWrappedTypeArray()Landroid/content/res/TypedArray;\nHSPLandroidx/appcompat/widget/TintTypedArray;->hasValue(I)Z\nPLandroidx/appcompat/widget/TintTypedArray;->hasValue(I)Z\nHSPLandroidx/appcompat/widget/TintTypedArray;->obtainStyledAttributes(Landroid/content/Context;Landroid/util/AttributeSet;[II)Landroidx/appcompat/widget/TintTypedArray;\nPLandroidx/appcompat/widget/TintTypedArray;->obtainStyledAttributes(Landroid/content/Context;Landroid/util/AttributeSet;[II)Landroidx/appcompat/widget/TintTypedArray;\nHSPLandroidx/appcompat/widget/TintTypedArray;->recycle()V\nPLandroidx/appcompat/widget/TintTypedArray;->recycle()V\nLandroidx/appcompat/widget/VectorEnabledTintResources;\nLandroidx/appcompat/widget/ViewStubCompat;\nHSPLandroidx/appcompat/widget/ViewStubCompat;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V\nPLandroidx/appcompat/widget/ViewStubCompat;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V\nHSPLandroidx/appcompat/widget/ViewStubCompat;->setVisibility(I)V\nPLandroidx/appcompat/widget/ViewStubCompat;->setVisibility(I)V\nLandroidx/appcompat/widget/ViewUtils;\nHSPLandroidx/appcompat/widget/ViewUtils;-><clinit>()V\nPLandroidx/appcompat/widget/ViewUtils;-><clinit>()V\nLandroidx/arch/core/executor/ArchTaskExecutor;\nHSPLandroidx/arch/core/executor/ArchTaskExecutor;-><clinit>()V\nPLandroidx/arch/core/executor/ArchTaskExecutor;-><clinit>()V\nHSPLandroidx/arch/core/executor/ArchTaskExecutor;-><init>()V\nPLandroidx/arch/core/executor/ArchTaskExecutor;-><init>()V\nHSPLandroidx/arch/core/executor/ArchTaskExecutor;->getInstance()Landroidx/arch/core/executor/ArchTaskExecutor;\nHPLandroidx/arch/core/executor/ArchTaskExecutor;->getInstance()Landroidx/arch/core/executor/ArchTaskExecutor;\nHSPLandroidx/arch/core/executor/ArchTaskExecutor;->isMainThread()Z\nHPLandroidx/arch/core/executor/ArchTaskExecutor;->isMainThread()Z\nHSPLandroidx/arch/core/executor/ArchTaskExecutor;->postToMainThread(Ljava/lang/Runnable;)V\nPLandroidx/arch/core/executor/ArchTaskExecutor;->postToMainThread(Ljava/lang/Runnable;)V\nLandroidx/arch/core/executor/DefaultTaskExecutor;\nHSPLandroidx/arch/core/executor/DefaultTaskExecutor;-><init>()V\nPLandroidx/arch/core/executor/DefaultTaskExecutor;-><init>()V\nHSPLandroidx/arch/core/executor/DefaultTaskExecutor;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;\nPLandroidx/arch/core/executor/DefaultTaskExecutor;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;\nHSPLandroidx/arch/core/executor/DefaultTaskExecutor;->postToMainThread(Ljava/lang/Runnable;)V\nPLandroidx/arch/core/executor/DefaultTaskExecutor;->postToMainThread(Ljava/lang/Runnable;)V\nLandroidx/arch/core/executor/DefaultTaskExecutor$1;\nHSPLandroidx/arch/core/executor/DefaultTaskExecutor$1;-><init>()V\nPLandroidx/arch/core/executor/DefaultTaskExecutor$1;-><init>()V\nLandroidx/arch/core/internal/FastSafeIterableMap;\nHSPLandroidx/arch/core/internal/FastSafeIterableMap;-><init>()V\nPLandroidx/arch/core/internal/FastSafeIterableMap;-><init>()V\nHSPLandroidx/arch/core/internal/FastSafeIterableMap;->ceil(Ljava/lang/Object;)Ljava/util/Map$Entry;\nHPLandroidx/arch/core/internal/FastSafeIterableMap;->ceil(Ljava/lang/Object;)Ljava/util/Map$Entry;\nHSPLandroidx/arch/core/internal/FastSafeIterableMap;->contains(Ljava/lang/Object;)Z\nHPLandroidx/arch/core/internal/FastSafeIterableMap;->contains(Ljava/lang/Object;)Z\nHSPLandroidx/arch/core/internal/FastSafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;\nHPLandroidx/arch/core/internal/FastSafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;\nHSPLandroidx/arch/core/internal/FastSafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/arch/core/internal/FastSafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/arch/core/internal/FastSafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/arch/core/internal/FastSafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/arch/core/internal/SafeIterableMap;\nHSPLandroidx/arch/core/internal/SafeIterableMap;-><init>()V\nHPLandroidx/arch/core/internal/SafeIterableMap;-><init>()V\nHSPLandroidx/arch/core/internal/SafeIterableMap;->descendingIterator()Ljava/util/Iterator;\nPLandroidx/arch/core/internal/SafeIterableMap;->descendingIterator()Ljava/util/Iterator;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->eldest()Ljava/util/Map$Entry;\nPLandroidx/arch/core/internal/SafeIterableMap;->eldest()Ljava/util/Map$Entry;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;\nHPLandroidx/arch/core/internal/SafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->iterator()Ljava/util/Iterator;\nPLandroidx/arch/core/internal/SafeIterableMap;->iterator()Ljava/util/Iterator;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->iteratorWithAdditions()Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;\nHPLandroidx/arch/core/internal/SafeIterableMap;->iteratorWithAdditions()Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->newest()Ljava/util/Map$Entry;\nPLandroidx/arch/core/internal/SafeIterableMap;->newest()Ljava/util/Map$Entry;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;\nPLandroidx/arch/core/internal/SafeIterableMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/arch/core/internal/SafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/arch/core/internal/SafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/arch/core/internal/SafeIterableMap;->size()I\nPLandroidx/arch/core/internal/SafeIterableMap;->size()I\nLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;\nHSPLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;-><init>(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;I)V\nPLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;-><init>(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;I)V\nLandroidx/arch/core/internal/SafeIterableMap$Entry;\nHSPLandroidx/arch/core/internal/SafeIterableMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/arch/core/internal/SafeIterableMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;\nPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;\nHSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getValue()Ljava/lang/Object;\nPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getValue()Ljava/lang/Object;\nLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;\nHSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;-><init>(Landroidx/arch/core/internal/SafeIterableMap;)V\nPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;-><init>(Landroidx/arch/core/internal/SafeIterableMap;)V\nHSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->hasNext()Z\nPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->hasNext()Z\nHSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/lang/Object;\nPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/lang/Object;\nHSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V\nPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V\nLandroidx/arch/core/internal/SafeIterableMap$ListIterator;\nHSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;-><init>(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V\nPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;-><init>(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V\nHSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z\nPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z\nHSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/lang/Object;\nPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/lang/Object;\nHSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->nextNode()Landroidx/arch/core/internal/SafeIterableMap$Entry;\nPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->nextNode()Landroidx/arch/core/internal/SafeIterableMap$Entry;\nPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V\nLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;\nHSPLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;-><init>()V\nHPLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;-><init>()V\nLandroidx/arch/core/util/Function;\nLandroidx/collection/ArrayMap;\nHSPLandroidx/collection/ArrayMap;-><init>()V\nPLandroidx/collection/ArrayMap;-><init>()V\nLandroidx/collection/ArrayMap$KeyIterator;\nHSPLandroidx/collection/ArrayMap$KeyIterator;-><init>(Landroidx/collection/ArraySet;)V\nPLandroidx/collection/ArrayMap$KeyIterator;-><init>(Landroidx/collection/ArraySet;)V\nLandroidx/collection/ArraySet;\nHSPLandroidx/collection/ArraySet;-><clinit>()V\nPLandroidx/collection/ArraySet;-><clinit>()V\nHSPLandroidx/collection/ArraySet;-><init>(I)V\nPLandroidx/collection/ArraySet;-><init>(I)V\nHSPLandroidx/collection/ArraySet;->add(Ljava/lang/Object;)Z\nPLandroidx/collection/ArraySet;->add(Ljava/lang/Object;)Z\nHSPLandroidx/collection/ArraySet;->allocArrays(I)V\nPLandroidx/collection/ArraySet;->allocArrays(I)V\nHSPLandroidx/collection/ArraySet;->clear()V\nPLandroidx/collection/ArraySet;->clear()V\nHSPLandroidx/collection/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V\nPLandroidx/collection/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V\nHSPLandroidx/collection/ArraySet;->indexOf(ILjava/lang/Object;)I\nPLandroidx/collection/ArraySet;->indexOf(ILjava/lang/Object;)I\nHSPLandroidx/collection/ArraySet;->iterator()Ljava/util/Iterator;\nPLandroidx/collection/ArraySet;->iterator()Ljava/util/Iterator;\nPLandroidx/collection/ArraySet;->removeAt(I)V\nHSPLandroidx/collection/ArraySet;->toArray()[Ljava/lang/Object;\nPLandroidx/collection/ArraySet;->toArray()[Ljava/lang/Object;\nLandroidx/collection/ContainerHelpers;\nHSPLandroidx/collection/ContainerHelpers;-><clinit>()V\nPLandroidx/collection/ContainerHelpers;-><clinit>()V\nPLandroidx/collection/ContainerHelpers;->binarySearch([III)I\nHSPLandroidx/collection/ContainerHelpers;->binarySearch([JIJ)I\nHPLandroidx/collection/ContainerHelpers;->binarySearch([JIJ)I\nLandroidx/collection/IndexBasedArrayIterator;\nHSPLandroidx/collection/IndexBasedArrayIterator;-><init>(I)V\nPLandroidx/collection/IndexBasedArrayIterator;-><init>(I)V\nHSPLandroidx/collection/IndexBasedArrayIterator;->hasNext()Z\nPLandroidx/collection/IndexBasedArrayIterator;->hasNext()Z\nPLandroidx/collection/IndexBasedArrayIterator;->next()Ljava/lang/Object;\nPLandroidx/collection/IndexBasedArrayIterator;->remove()V\nLandroidx/collection/LongSparseArray;\nHSPLandroidx/collection/LongSparseArray;-><clinit>()V\nPLandroidx/collection/LongSparseArray;-><clinit>()V\nHSPLandroidx/collection/LongSparseArray;-><init>()V\nPLandroidx/collection/LongSparseArray;-><init>()V\nHSPLandroidx/collection/LongSparseArray;-><init>(I)V\nHPLandroidx/collection/LongSparseArray;-><init>(I)V\nHSPLandroidx/collection/LongSparseArray;->clear()V\nPLandroidx/collection/LongSparseArray;->clear()V\nHSPLandroidx/collection/LongSparseArray;->get(JLjava/lang/Long;)Ljava/lang/Object;\nHPLandroidx/collection/LongSparseArray;->get(JLjava/lang/Long;)Ljava/lang/Object;\nHSPLandroidx/collection/LongSparseArray;->indexOfKey(J)I\nPLandroidx/collection/LongSparseArray;->indexOfKey(J)I\nHSPLandroidx/collection/LongSparseArray;->keyAt(I)J\nPLandroidx/collection/LongSparseArray;->keyAt(I)J\nHSPLandroidx/collection/LongSparseArray;->put(JLjava/lang/Object;)V\nHPLandroidx/collection/LongSparseArray;->put(JLjava/lang/Object;)V\nHSPLandroidx/collection/LongSparseArray;->remove(J)V\nPLandroidx/collection/LongSparseArray;->remove(J)V\nHSPLandroidx/collection/LongSparseArray;->size()I\nPLandroidx/collection/LongSparseArray;->size()I\nHSPLandroidx/collection/LongSparseArray;->valueAt(I)Ljava/lang/Object;\nPLandroidx/collection/LongSparseArray;->valueAt(I)Ljava/lang/Object;\nLandroidx/collection/LruCache;\nHSPLandroidx/collection/LruCache;-><init>(I)V\nPLandroidx/collection/LruCache;-><init>(I)V\nHSPLandroidx/collection/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/collection/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/collection/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/collection/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/collection/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/collection/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/collection/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I\nPLandroidx/collection/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I\nHSPLandroidx/collection/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I\nPLandroidx/collection/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I\nHSPLandroidx/collection/LruCache;->trimToSize(I)V\nPLandroidx/collection/LruCache;->trimToSize(I)V\nLandroidx/collection/SimpleArrayMap;\nHSPLandroidx/collection/SimpleArrayMap;-><init>()V\nPLandroidx/collection/SimpleArrayMap;-><init>()V\nHSPLandroidx/collection/SimpleArrayMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/collection/SimpleArrayMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/collection/SimpleArrayMap;->indexOf(ILjava/lang/Object;)I\nPLandroidx/collection/SimpleArrayMap;->indexOf(ILjava/lang/Object;)I\nHSPLandroidx/collection/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I\nPLandroidx/collection/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I\nPLandroidx/collection/SimpleArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/collection/SparseArrayCompat;\nHSPLandroidx/collection/SparseArrayCompat;-><clinit>()V\nPLandroidx/collection/SparseArrayCompat;-><clinit>()V\nHSPLandroidx/collection/SparseArrayCompat;-><init>()V\nPLandroidx/collection/SparseArrayCompat;-><init>()V\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;-><clinit>()V\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;-><clinit>()V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;-><init>()V\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;-><init>()V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;-><init>(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;II)V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;-><init>(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;II)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;-><init>(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;-><init>(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$4;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$5;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;-><init>(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;ILkotlin/jvm/functions/Function1;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/runtime/snapshots/SnapshotStateList;Lkotlin/jvm/functions/Function4;)V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;-><init>(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;ILkotlin/jvm/functions/Function1;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/runtime/snapshots/SnapshotStateList;Lkotlin/jvm/functions/Function4;)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;-><init>(Landroidx/compose/animation/ExitTransition;)V\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;-><init>(Landroidx/compose/animation/ExitTransition;)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5;-><init>(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Ljava/lang/Object;Landroidx/compose/runtime/snapshots/SnapshotStateList;Lkotlin/jvm/functions/Function4;I)V\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5;-><init>(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Ljava/lang/Object;Landroidx/compose/runtime/snapshots/SnapshotStateList;Lkotlin/jvm/functions/Function4;I)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateList;Ljava/lang/Object;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V\nPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateList;Ljava/lang/Object;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$5$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V\nHSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;\nHSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;-><clinit>()V\nPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;-><clinit>()V\nHSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;-><init>()V\nPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;-><init>()V\nHSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentMeasurePolicy;\nHSPLandroidx/compose/animation/AnimatedContentMeasurePolicy;-><init>(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V\nPLandroidx/compose/animation/AnimatedContentMeasurePolicy;-><init>(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V\nHSPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->getRootScope()Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;\nPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->getRootScope()Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;\nHSPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;\nHSPLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;-><init>([Landroidx/compose/ui/layout/Placeable;Landroidx/compose/animation/AnimatedContentMeasurePolicy;II)V\nPLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;-><init>([Landroidx/compose/ui/layout/Placeable;Landroidx/compose/animation/AnimatedContentMeasurePolicy;II)V\nHSPLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedContentScope;\nLandroidx/compose/animation/AnimatedContentScopeImpl;\nHSPLandroidx/compose/animation/AnimatedContentScopeImpl;-><init>()V\nPLandroidx/compose/animation/AnimatedContentScopeImpl;-><init>()V\nLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Alignment;)V\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Alignment;)V\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->createSizeAnimationModifier$animation_release(Landroidx/compose/animation/ContentTransform;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->createSizeAnimationModifier$animation_release(Landroidx/compose/animation/ContentTransform;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getContentAlignment$animation_release()Landroidx/compose/ui/Alignment;\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getContentAlignment$animation_release()Landroidx/compose/ui/Alignment;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getTargetSizeMap$animation_release()Ljava/util/LinkedHashMap;\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getTargetSizeMap$animation_release()Ljava/util/LinkedHashMap;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setContentAlignment$animation_release(Landroidx/compose/ui/Alignment;)V\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setContentAlignment$animation_release(Landroidx/compose/ui/Alignment;)V\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setMeasuredSize-ozmzZPI$animation_release(J)V\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setMeasuredSize-ozmzZPI$animation_release(J)V\nLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;-><init>(Z)V\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;-><init>(Z)V\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->isTarget()Z\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->isTarget()Z\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->setTarget(Z)V\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->setTarget(Z)V\nLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;-><init>(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/runtime/MutableState;)V\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;-><init>(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/runtime/MutableState;)V\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->getSizeTransform()Landroidx/compose/runtime/State;\nPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->getSizeTransform()Landroidx/compose/runtime/State;\nHSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;\nHSPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;-><init>(Landroidx/compose/animation/AnimatedVisibilityScopeImpl;)V\nPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;-><init>(Landroidx/compose/animation/AnimatedVisibilityScopeImpl;)V\nHSPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;-><clinit>()V\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;-><clinit>()V\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;-><init>()V\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;-><init>()V\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$1;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$1;-><init>(Landroidx/compose/animation/core/Transition;)V\nHPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$1;-><init>(Landroidx/compose/animation/core/Transition;)V\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$2;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$2;-><init>(Landroidx/compose/runtime/ProduceStateScope;Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;)V\nHPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$2;-><init>(Landroidx/compose/runtime/ProduceStateScope;Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$shouldDisposeAfterExit$2$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$2;\nHSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$2;-><init>(ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;II)V\nPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$2;-><init>(ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;II)V\nLandroidx/compose/animation/AnimatedVisibilityScope;\nLandroidx/compose/animation/AnimatedVisibilityScopeImpl;\nHSPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;-><init>()V\nPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;-><init>()V\nHSPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;->getTargetSize$animation_release()Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;->getTargetSize$animation_release()Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nLandroidx/compose/animation/AnimationModifierKt;\nHSPLandroidx/compose/animation/AnimationModifierKt;-><clinit>()V\nPLandroidx/compose/animation/AnimationModifierKt;-><clinit>()V\nHSPLandroidx/compose/animation/AnimationModifierKt;->getInvalidSize()J\nPLandroidx/compose/animation/AnimationModifierKt;->getInvalidSize()J\nHSPLandroidx/compose/animation/AnimationModifierKt;->isValid-ozmzZPI(J)Z\nPLandroidx/compose/animation/AnimationModifierKt;->isValid-ozmzZPI(J)Z\nLandroidx/compose/animation/ChangeSize;\nHSPLandroidx/compose/animation/ChangeSize;-><init>(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Z)V\nHPLandroidx/compose/animation/ChangeSize;-><init>(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Z)V\nLandroidx/compose/animation/ColorVectorConverterKt;\nHSPLandroidx/compose/animation/ColorVectorConverterKt;-><clinit>()V\nPLandroidx/compose/animation/ColorVectorConverterKt;-><clinit>()V\nHSPLandroidx/compose/animation/ColorVectorConverterKt;->getVectorConverter()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/animation/ColorVectorConverterKt;->getVectorConverter()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/animation/ContentTransform;\nHSPLandroidx/compose/animation/ContentTransform;-><init>(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V\nHPLandroidx/compose/animation/ContentTransform;-><init>(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V\nHSPLandroidx/compose/animation/ContentTransform;->getInitialContentExit()Landroidx/compose/animation/ExitTransition;\nPLandroidx/compose/animation/ContentTransform;->getInitialContentExit()Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/ContentTransform;->getSizeTransform()Landroidx/compose/animation/SizeTransform;\nPLandroidx/compose/animation/ContentTransform;->getSizeTransform()Landroidx/compose/animation/SizeTransform;\nHSPLandroidx/compose/animation/ContentTransform;->getTargetContentEnter()Landroidx/compose/animation/EnterTransition;\nPLandroidx/compose/animation/ContentTransform;->getTargetContentEnter()Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/ContentTransform;->getTargetContentZIndex()F\nPLandroidx/compose/animation/ContentTransform;->getTargetContentZIndex()F\nLandroidx/compose/animation/CrossfadeKt;\nHSPLandroidx/compose/animation/CrossfadeKt;->AnimatedContent(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/animation/CrossfadeKt;->AnimatedContent(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/animation/CrossfadeKt;->AnimatedContent(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/animation/CrossfadeKt;->AnimatedContent(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/animation/CrossfadeKt;->AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/animation/CrossfadeKt;->AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/animation/CrossfadeKt;->AnimatedVisibility(ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/animation/CrossfadeKt;->AnimatedVisibility(ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/animation/CrossfadeKt;->access$getExitFinished(Landroidx/compose/animation/core/Transition;)Z\nHPLandroidx/compose/animation/CrossfadeKt;->access$getExitFinished(Landroidx/compose/animation/core/Transition;)Z\nHSPLandroidx/compose/animation/CrossfadeKt;->targetEnterExit(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/EnterExitState;\nHPLandroidx/compose/animation/CrossfadeKt;->targetEnterExit(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/EnterExitState;\nLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Boolean;\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Boolean;\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;-><init>(Landroidx/compose/runtime/State;I)V\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;-><init>(Landroidx/compose/runtime/State;I)V\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->invoke(Landroidx/compose/ui/graphics/ReusableGraphicsLayerScope;)V\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->invoke(Landroidx/compose/ui/graphics/ReusableGraphicsLayerScope;)V\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/EnterExitState;\nHSPLandroidx/compose/animation/EnterExitState;-><clinit>()V\nPLandroidx/compose/animation/EnterExitState;-><clinit>()V\nHSPLandroidx/compose/animation/EnterExitState;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/animation/EnterExitState;-><init>(Ljava/lang/String;I)V\nLandroidx/compose/animation/EnterExitTransitionElement;\nHSPLandroidx/compose/animation/EnterExitTransitionElement;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/animation/EnterExitTransitionElement;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/EnterExitTransitionElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/animation/EnterExitTransitionElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/animation/EnterExitTransitionElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/EnterExitTransitionElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/EnterExitTransitionElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/animation/EnterExitTransitionElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/animation/EnterExitTransitionKt;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;-><clinit>()V\nPLandroidx/compose/animation/EnterExitTransitionKt;-><clinit>()V\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->createModifier(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/animation/EnterExitTransitionKt;->createModifier(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->expandIn(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Z)Landroidx/compose/animation/EnterTransition;\nPLandroidx/compose/animation/EnterExitTransitionKt;->expandIn(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Z)Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->expandVertically$default(Landroidx/compose/animation/core/TweenSpec;Landroidx/compose/ui/BiasAlignment$Vertical;I)Landroidx/compose/animation/EnterTransition;\nHPLandroidx/compose/animation/EnterExitTransitionKt;->expandVertically$default(Landroidx/compose/animation/core/TweenSpec;Landroidx/compose/ui/BiasAlignment$Vertical;I)Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->fadeIn$default(Landroidx/compose/animation/core/TweenSpec;FI)Landroidx/compose/animation/EnterTransition;\nHPLandroidx/compose/animation/EnterExitTransitionKt;->fadeIn$default(Landroidx/compose/animation/core/TweenSpec;FI)Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->fadeOut$default(Landroidx/compose/animation/core/TweenSpec;I)Landroidx/compose/animation/ExitTransition;\nHPLandroidx/compose/animation/EnterExitTransitionKt;->fadeOut$default(Landroidx/compose/animation/core/TweenSpec;I)Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->scaleIn-L8ZKh-E$default(Landroidx/compose/animation/core/TweenSpec;F)Landroidx/compose/animation/EnterTransition;\nPLandroidx/compose/animation/EnterExitTransitionKt;->scaleIn-L8ZKh-E$default(Landroidx/compose/animation/core/TweenSpec;F)Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->shrinkOut(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Z)Landroidx/compose/animation/ExitTransition;\nPLandroidx/compose/animation/EnterExitTransitionKt;->shrinkOut(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Z)Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->shrinkVertically$default(Landroidx/compose/animation/core/TweenSpec;Landroidx/compose/ui/BiasAlignment$Vertical;I)Landroidx/compose/animation/ExitTransition;\nHPLandroidx/compose/animation/EnterExitTransitionKt;->shrinkVertically$default(Landroidx/compose/animation/core/TweenSpec;Landroidx/compose/ui/BiasAlignment$Vertical;I)Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->slideInHorizontally(Landroidx/compose/animation/core/TweenSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;\nPLandroidx/compose/animation/EnterExitTransitionKt;->slideInHorizontally(Landroidx/compose/animation/core/TweenSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->slideOutHorizontally(Landroidx/compose/animation/core/TweenSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;\nPLandroidx/compose/animation/EnterExitTransitionKt;->slideOutHorizontally(Landroidx/compose/animation/core/TweenSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionKt;->toAlignment(Landroidx/compose/ui/Alignment$Vertical;)Landroidx/compose/ui/BiasAlignment;\nHPLandroidx/compose/animation/EnterExitTransitionKt;->toAlignment(Landroidx/compose/ui/Alignment$Vertical;)Landroidx/compose/ui/BiasAlignment;\nLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;\nHSPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;-><clinit>()V\nPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;-><clinit>()V\nHSPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;-><init>()V\nPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;-><init>()V\nHSPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$$inlined$animateValue$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;\nHSPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;-><init>(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;I)V\nHPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;-><init>(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;I)V\nHSPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;->invoke(Landroidx/compose/animation/core/Transition$Segment;Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/core/FiniteAnimationSpec;\nHPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;->invoke(Landroidx/compose/animation/core/Transition$Segment;Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/core/FiniteAnimationSpec;\nHSPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionKt$createGraphicsLayerBlock$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;\nHSPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;-><clinit>()V\nPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;-><clinit>()V\nHSPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;-><init>(I)V\nPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;-><init>(I)V\nHSPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;->invoke(Z)Ljava/lang/Boolean;\nPLandroidx/compose/animation/EnterExitTransitionKt$expandIn$1;->invoke(Z)Ljava/lang/Boolean;\nLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;\nHSPLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;-><init>(ILkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;-><init>(ILkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;->invoke-mHKZG7I(J)J\nLandroidx/compose/animation/EnterExitTransitionModifierNode;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->getAlignment()Landroidx/compose/ui/Alignment;\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode;->getAlignment()Landroidx/compose/ui/Alignment;\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->getEnter()Landroidx/compose/animation/EnterTransition;\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->getExit()Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->getGraphicsLayerBlock()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->getGraphicsLayerBlock()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->onAttach()V\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode;->onAttach()V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setEnter(Landroidx/compose/animation/EnterTransition;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setEnter(Landroidx/compose/animation/EnterTransition;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setExit(Landroidx/compose/animation/ExitTransition;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setExit(Landroidx/compose/animation/ExitTransition;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setGraphicsLayerBlock(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setGraphicsLayerBlock(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setOffsetAnimation(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setOffsetAnimation(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setSizeAnimation(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setSizeAnimation(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setSlideAnimation(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setSlideAnimation(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setTransition(Landroidx/compose/animation/core/Transition;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->setTransition(Landroidx/compose/animation/core/Transition;)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode;->slideTargetValueByState-oFUgxo0(Landroidx/compose/animation/EnterExitState;J)J\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode;->slideTargetValueByState-oFUgxo0(Landroidx/compose/animation/EnterExitState;J)J\nLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$2;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$2;-><init>(Landroidx/compose/ui/layout/Placeable;JJLandroidx/compose/animation/EnterExitTransitionModifierNode;)V\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$2;-><init>(Landroidx/compose/ui/layout/Placeable;JJLandroidx/compose/animation/EnterExitTransitionModifierNode;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;-><init>(IJLjava/lang/Object;)V\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;-><init>(IJLjava/lang/Object;)V\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;->invoke-Bjo55l4(Landroidx/compose/animation/EnterExitState;)J\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$measure$animSize$1;->invoke-Bjo55l4(Landroidx/compose/animation/EnterExitState;)J\nLandroidx/compose/animation/EnterExitTransitionModifierNode$slideSpec$1;\nHSPLandroidx/compose/animation/EnterExitTransitionModifierNode$slideSpec$1;-><init>(Landroidx/compose/animation/EnterExitTransitionModifierNode;I)V\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$slideSpec$1;-><init>(Landroidx/compose/animation/EnterExitTransitionModifierNode;I)V\nPLandroidx/compose/animation/EnterExitTransitionModifierNode$slideSpec$1;->invoke(Landroidx/compose/animation/core/Transition$Segment;)Landroidx/compose/animation/core/FiniteAnimationSpec;\nHPLandroidx/compose/animation/EnterExitTransitionModifierNode$slideSpec$1;->invoke(Landroidx/compose/animation/core/Transition$Segment;)Landroidx/compose/animation/core/FiniteAnimationSpec;\nPLandroidx/compose/animation/EnterExitTransitionModifierNode$slideSpec$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterTransition;-><clinit>()V\nPLandroidx/compose/animation/EnterTransition;-><clinit>()V\nHSPLandroidx/compose/animation/EnterTransition;-><init>()V\nHPLandroidx/compose/animation/EnterTransition;-><init>()V\nHSPLandroidx/compose/animation/EnterTransition;->access$getNone$cp()Landroidx/compose/animation/EnterTransition;\nHPLandroidx/compose/animation/EnterTransition;->access$getNone$cp()Landroidx/compose/animation/EnterTransition;\nHSPLandroidx/compose/animation/EnterTransition;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/EnterTransition;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/EnterTransition;->plus(Landroidx/compose/animation/EnterTransition;)Landroidx/compose/animation/EnterTransition;\nHPLandroidx/compose/animation/EnterTransition;->plus(Landroidx/compose/animation/EnterTransition;)Landroidx/compose/animation/EnterTransition;\nLandroidx/compose/animation/EnterTransitionImpl;\nHSPLandroidx/compose/animation/EnterTransitionImpl;-><init>(Landroidx/compose/animation/TransitionData;)V\nHPLandroidx/compose/animation/EnterTransitionImpl;-><init>(Landroidx/compose/animation/TransitionData;)V\nHSPLandroidx/compose/animation/EnterTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;\nHPLandroidx/compose/animation/EnterTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;\nLandroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/ExitTransition;-><clinit>()V\nPLandroidx/compose/animation/ExitTransition;-><clinit>()V\nHSPLandroidx/compose/animation/ExitTransition;-><init>()V\nHPLandroidx/compose/animation/ExitTransition;-><init>()V\nHSPLandroidx/compose/animation/ExitTransition;->access$getNone$cp()Landroidx/compose/animation/ExitTransition;\nHPLandroidx/compose/animation/ExitTransition;->access$getNone$cp()Landroidx/compose/animation/ExitTransition;\nHSPLandroidx/compose/animation/ExitTransition;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/ExitTransition;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/ExitTransition;->plus(Landroidx/compose/animation/ExitTransition;)Landroidx/compose/animation/ExitTransition;\nHPLandroidx/compose/animation/ExitTransition;->plus(Landroidx/compose/animation/ExitTransition;)Landroidx/compose/animation/ExitTransition;\nLandroidx/compose/animation/ExitTransitionImpl;\nHSPLandroidx/compose/animation/ExitTransitionImpl;-><init>(Landroidx/compose/animation/TransitionData;)V\nHPLandroidx/compose/animation/ExitTransitionImpl;-><init>(Landroidx/compose/animation/TransitionData;)V\nHSPLandroidx/compose/animation/ExitTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;\nHPLandroidx/compose/animation/ExitTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;\nLandroidx/compose/animation/Fade;\nHSPLandroidx/compose/animation/Fade;-><init>(FLandroidx/compose/animation/core/FiniteAnimationSpec;)V\nHPLandroidx/compose/animation/Fade;-><init>(FLandroidx/compose/animation/core/FiniteAnimationSpec;)V\nHSPLandroidx/compose/animation/Fade;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/Fade;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/Fade;->getAlpha()F\nHPLandroidx/compose/animation/Fade;->getAlpha()F\nHSPLandroidx/compose/animation/Fade;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nPLandroidx/compose/animation/Fade;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nLandroidx/compose/animation/FlingCalculator;\nHSPLandroidx/compose/animation/FlingCalculator;-><init>(FLandroidx/compose/ui/unit/Density;)V\nHPLandroidx/compose/animation/FlingCalculator;-><init>(FLandroidx/compose/ui/unit/Density;)V\nLandroidx/compose/animation/FlingCalculatorKt;\nHSPLandroidx/compose/animation/FlingCalculatorKt;-><clinit>()V\nPLandroidx/compose/animation/FlingCalculatorKt;-><clinit>()V\nLandroidx/compose/animation/LayoutModifierNodeWithPassThroughIntrinsics;\nHSPLandroidx/compose/animation/LayoutModifierNodeWithPassThroughIntrinsics;-><init>()V\nHPLandroidx/compose/animation/LayoutModifierNodeWithPassThroughIntrinsics;-><init>()V\nLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;\nHSPLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;-><init>()V\nPLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;-><init>()V\nLandroidx/compose/animation/Scale;\nHSPLandroidx/compose/animation/Scale;-><init>(FJLandroidx/compose/animation/core/FiniteAnimationSpec;)V\nHPLandroidx/compose/animation/Scale;-><init>(FJLandroidx/compose/animation/core/FiniteAnimationSpec;)V\nHSPLandroidx/compose/animation/Scale;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/animation/Scale;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/Scale;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nPLandroidx/compose/animation/Scale;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nHSPLandroidx/compose/animation/Scale;->getScale()F\nPLandroidx/compose/animation/Scale;->getScale()F\nHSPLandroidx/compose/animation/Scale;->getTransformOrigin-SzJe1aQ()J\nHPLandroidx/compose/animation/Scale;->getTransformOrigin-SzJe1aQ()J\nLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(FFFF)F\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(FFFF)F\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(FII)I\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(II)Lkotlin/collections/IntIterator;\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(II)Lkotlin/collections/IntIterator;\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(III)I\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(III)I\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(ILandroidx/compose/runtime/ComposerImpl;ILkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(ILandroidx/compose/runtime/ComposerImpl;ILkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(ILandroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/SkippableUpdater;Landroidx/compose/runtime/ComposerImpl;I)V\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(ILandroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/SkippableUpdater;Landroidx/compose/runtime/ComposerImpl;I)V\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(ILandroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/SkippableUpdater;Landroidx/compose/runtime/ComposerImpl;II)V\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(ILandroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/SkippableUpdater;Landroidx/compose/runtime/ComposerImpl;II)V\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(JII)I\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(JII)I\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(JII)J\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(JII)J\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;)V\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;)V\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;IZLandroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;IZLandroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;Landroidx/compose/ui/layout/MeasurePolicy;Landroidx/compose/runtime/ComposerImpl;Landroidx/compose/runtime/PersistentCompositionLocalMap;)Lkotlin/jvm/functions/Function2;\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;Landroidx/compose/ui/layout/MeasurePolicy;Landroidx/compose/runtime/ComposerImpl;Landroidx/compose/runtime/PersistentCompositionLocalMap;)Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/Object;)V\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/String;I)Ljava/lang/String;\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/String;I)Ljava/lang/String;\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/String;II)I\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/String;II)I\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/util/List;II)I\nPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Ljava/util/List;II)I\nHSPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/runtime/ComposerImpl;)Landroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;\nHPLandroidx/compose/animation/Scale$$ExternalSyntheticOutline0;->m(Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/runtime/ComposerImpl;)Landroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;\nLandroidx/compose/animation/SingleValueAnimationKt;\nHSPLandroidx/compose/animation/SingleValueAnimationKt;-><clinit>()V\nPLandroidx/compose/animation/SingleValueAnimationKt;-><clinit>()V\nHSPLandroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;\nHPLandroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;\nLandroidx/compose/animation/SizeTransform;\nLandroidx/compose/animation/SizeTransformImpl;\nHSPLandroidx/compose/animation/SizeTransformImpl;-><init>(ZLkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/animation/SizeTransformImpl;-><init>(ZLkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/animation/SizeTransformImpl;->createAnimationSpec-TemP2vQ(JJ)Landroidx/compose/animation/core/FiniteAnimationSpec;\nPLandroidx/compose/animation/SizeTransformImpl;->createAnimationSpec-TemP2vQ(JJ)Landroidx/compose/animation/core/FiniteAnimationSpec;\nHSPLandroidx/compose/animation/SizeTransformImpl;->getClip()Z\nPLandroidx/compose/animation/SizeTransformImpl;->getClip()Z\nLandroidx/compose/animation/Slide;\nHSPLandroidx/compose/animation/Slide;-><init>(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/animation/Slide;-><init>(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/Slide;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/animation/Slide;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nPLandroidx/compose/animation/Slide;->getSlideOffset()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;\nHSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;-><init>(Landroidx/compose/ui/unit/Density;)V\nHPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;-><init>(Landroidx/compose/ui/unit/Density;)V\nLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;\nHSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;-><clinit>()V\nPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;-><clinit>()V\nHSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->getPlatformFlingScrollFriction()F\nPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->getPlatformFlingScrollFriction()F\nHSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->rememberSplineBasedDecay(Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/core/DecayAnimationSpec;\nHPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->rememberSplineBasedDecay(Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/core/DecayAnimationSpec;\nLandroidx/compose/animation/TransitionData;\nHSPLandroidx/compose/animation/TransitionData;-><init>(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;Z)V\nHPLandroidx/compose/animation/TransitionData;-><init>(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;Z)V\nHSPLandroidx/compose/animation/TransitionData;-><init>(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;ZI)V\nHPLandroidx/compose/animation/TransitionData;-><init>(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;ZI)V\nHSPLandroidx/compose/animation/TransitionData;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/TransitionData;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/TransitionData;->getChangeSize()Landroidx/compose/animation/ChangeSize;\nHPLandroidx/compose/animation/TransitionData;->getChangeSize()Landroidx/compose/animation/ChangeSize;\nHSPLandroidx/compose/animation/TransitionData;->getFade()Landroidx/compose/animation/Fade;\nHPLandroidx/compose/animation/TransitionData;->getFade()Landroidx/compose/animation/Fade;\nHSPLandroidx/compose/animation/TransitionData;->getHold()Z\nPLandroidx/compose/animation/TransitionData;->getHold()Z\nHSPLandroidx/compose/animation/TransitionData;->getScale()Landroidx/compose/animation/Scale;\nHPLandroidx/compose/animation/TransitionData;->getScale()Landroidx/compose/animation/Scale;\nHSPLandroidx/compose/animation/TransitionData;->getSlide()Landroidx/compose/animation/Slide;\nHPLandroidx/compose/animation/TransitionData;->getSlide()Landroidx/compose/animation/Slide;\nLandroidx/compose/animation/core/Animatable;\nHSPLandroidx/compose/animation/core/Animatable;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/Animatable;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/Animatable;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;I)V\nPLandroidx/compose/animation/core/Animatable;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;I)V\nHSPLandroidx/compose/animation/core/Animatable;->access$clampToBounds(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/core/Animatable;->access$clampToBounds(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Animatable;->access$endAnimation(Landroidx/compose/animation/core/Animatable;)V\nPLandroidx/compose/animation/core/Animatable;->access$endAnimation(Landroidx/compose/animation/core/Animatable;)V\nHSPLandroidx/compose/animation/core/Animatable;->access$setRunning(Landroidx/compose/animation/core/Animatable;)V\nPLandroidx/compose/animation/core/Animatable;->access$setRunning(Landroidx/compose/animation/core/Animatable;)V\nHSPLandroidx/compose/animation/core/Animatable;->access$setTargetValue(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)V\nPLandroidx/compose/animation/core/Animatable;->access$setTargetValue(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/Animatable;->animateTo$default(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationSpec;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;I)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Animatable;->animateTo$default(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationSpec;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;I)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Animatable;->asState()Landroidx/compose/animation/core/AnimationState;\nPLandroidx/compose/animation/core/Animatable;->asState()Landroidx/compose/animation/core/AnimationState;\nHSPLandroidx/compose/animation/core/Animatable;->clampToBounds(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Animatable;->clampToBounds(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Animatable;->getInternalState$animation_core_release()Landroidx/compose/animation/core/AnimationState;\nPLandroidx/compose/animation/core/Animatable;->getInternalState$animation_core_release()Landroidx/compose/animation/core/AnimationState;\nHSPLandroidx/compose/animation/core/Animatable;->getTargetValue()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Animatable;->getTargetValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Animatable;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/Animatable;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/Animatable;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Animatable;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Animatable;->isRunning()Z\nPLandroidx/compose/animation/core/Animatable;->isRunning()Z\nHSPLandroidx/compose/animation/core/Animatable;->updateBounds$default(Landroidx/compose/animation/core/Animatable;Ljava/lang/Float;)V\nHPLandroidx/compose/animation/core/Animatable;->updateBounds$default(Landroidx/compose/animation/core/Animatable;Ljava/lang/Float;)V\nLandroidx/compose/animation/core/Animatable$runAnimation$2;\nHSPLandroidx/compose/animation/core/Animatable$runAnimation$2;-><init>(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/animation/core/Animatable$runAnimation$2;-><init>(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/animation/core/Animatable$runAnimation$2;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/Animatable$runAnimation$2$1;\nHSPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;-><init>(Landroidx/compose/animation/core/Animatable;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/internal/Ref$BooleanRef;)V\nPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;-><init>(Landroidx/compose/animation/core/Animatable;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/internal/Ref$BooleanRef;)V\nHSPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/AnimateAsStateKt;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt;-><clinit>()V\nPLandroidx/compose/animation/core/AnimateAsStateKt;-><clinit>()V\nHSPLandroidx/compose/animation/core/AnimateAsStateKt;->animateFloatAsState(FLandroidx/compose/animation/core/FiniteAnimationSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;\nHPLandroidx/compose/animation/core/AnimateAsStateKt;->animateFloatAsState(FLandroidx/compose/animation/core/FiniteAnimationSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt;->animateValueAsState(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Float;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;\nHPLandroidx/compose/animation/core/AnimateAsStateKt;->animateValueAsState(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Float;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;\nLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;-><init>(Lkotlinx/coroutines/channels/Channel;Ljava/lang/Object;)V\nPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;-><init>(Lkotlinx/coroutines/channels/Channel;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()Ljava/lang/Object;\nLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;-><init>(Lkotlinx/coroutines/channels/Channel;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;-><init>(Lkotlinx/coroutines/channels/Channel;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/Animation;\nHSPLandroidx/compose/animation/core/Animation;->isFinishedFromNanos(J)Z\nHPLandroidx/compose/animation/core/Animation;->isFinishedFromNanos(J)Z\nLandroidx/compose/animation/core/AnimationResult;\nHSPLandroidx/compose/animation/core/AnimationResult;-><init>(Landroidx/compose/animation/core/AnimationState;I)V\nPLandroidx/compose/animation/core/AnimationResult;-><init>(Landroidx/compose/animation/core/AnimationState;I)V\nLandroidx/compose/animation/core/AnimationScope;\nHSPLandroidx/compose/animation/core/AnimationScope;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationVector;JLjava/lang/Object;JLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/animation/core/AnimationScope;-><init>(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationVector;JLjava/lang/Object;JLkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/animation/core/AnimationScope;->getFinishedTimeNanos()J\nPLandroidx/compose/animation/core/AnimationScope;->getFinishedTimeNanos()J\nHSPLandroidx/compose/animation/core/AnimationScope;->getLastFrameTimeNanos()J\nPLandroidx/compose/animation/core/AnimationScope;->getLastFrameTimeNanos()J\nHSPLandroidx/compose/animation/core/AnimationScope;->getStartTimeNanos()J\nPLandroidx/compose/animation/core/AnimationScope;->getStartTimeNanos()J\nHSPLandroidx/compose/animation/core/AnimationScope;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/AnimationScope;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/AnimationScope;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/AnimationScope;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/AnimationScope;->isRunning()Z\nHPLandroidx/compose/animation/core/AnimationScope;->isRunning()Z\nHSPLandroidx/compose/animation/core/AnimationScope;->setFinishedTimeNanos$animation_core_release(J)V\nPLandroidx/compose/animation/core/AnimationScope;->setFinishedTimeNanos$animation_core_release(J)V\nHSPLandroidx/compose/animation/core/AnimationScope;->setLastFrameTimeNanos$animation_core_release(J)V\nPLandroidx/compose/animation/core/AnimationScope;->setLastFrameTimeNanos$animation_core_release(J)V\nHSPLandroidx/compose/animation/core/AnimationScope;->setRunning$animation_core_release()V\nPLandroidx/compose/animation/core/AnimationScope;->setRunning$animation_core_release()V\nHSPLandroidx/compose/animation/core/AnimationScope;->setValue$animation_core_release(Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/AnimationScope;->setValue$animation_core_release(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/AnimationScope;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V\nPLandroidx/compose/animation/core/AnimationScope;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V\nLandroidx/compose/animation/core/AnimationSpec;\nLandroidx/compose/animation/core/AnimationState;\nHSPLandroidx/compose/animation/core/AnimationState;-><init>(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;I)V\nHPLandroidx/compose/animation/core/AnimationState;-><init>(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;I)V\nHSPLandroidx/compose/animation/core/AnimationState;-><init>(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZ)V\nHPLandroidx/compose/animation/core/AnimationState;-><init>(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZ)V\nHSPLandroidx/compose/animation/core/AnimationState;->getLastFrameTimeNanos()J\nPLandroidx/compose/animation/core/AnimationState;->getLastFrameTimeNanos()J\nHSPLandroidx/compose/animation/core/AnimationState;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/AnimationState;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/AnimationState;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/AnimationState;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/AnimationState;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/AnimationState;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/AnimationState;->isRunning()Z\nPLandroidx/compose/animation/core/AnimationState;->isRunning()Z\nHSPLandroidx/compose/animation/core/AnimationState;->setFinishedTimeNanos$animation_core_release(J)V\nPLandroidx/compose/animation/core/AnimationState;->setFinishedTimeNanos$animation_core_release(J)V\nHSPLandroidx/compose/animation/core/AnimationState;->setLastFrameTimeNanos$animation_core_release(J)V\nPLandroidx/compose/animation/core/AnimationState;->setLastFrameTimeNanos$animation_core_release(J)V\nHSPLandroidx/compose/animation/core/AnimationState;->setRunning$animation_core_release(Z)V\nPLandroidx/compose/animation/core/AnimationState;->setRunning$animation_core_release(Z)V\nHSPLandroidx/compose/animation/core/AnimationState;->setValue$animation_core_release(Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/AnimationState;->setValue$animation_core_release(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/AnimationState;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V\nPLandroidx/compose/animation/core/AnimationState;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V\nLandroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/AnimationVector;-><init>()V\nHPLandroidx/compose/animation/core/AnimationVector;-><init>()V\nLandroidx/compose/animation/core/AnimationVector1D;\nHSPLandroidx/compose/animation/core/AnimationVector1D;-><init>(F)V\nHPLandroidx/compose/animation/core/AnimationVector1D;-><init>(F)V\nHSPLandroidx/compose/animation/core/AnimationVector1D;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/AnimationVector1D;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/core/AnimationVector1D;->get$animation_core_release(I)F\nHPLandroidx/compose/animation/core/AnimationVector1D;->get$animation_core_release(I)F\nHSPLandroidx/compose/animation/core/AnimationVector1D;->getSize$animation_core_release()I\nHPLandroidx/compose/animation/core/AnimationVector1D;->getSize$animation_core_release()I\nHSPLandroidx/compose/animation/core/AnimationVector1D;->getValue()F\nPLandroidx/compose/animation/core/AnimationVector1D;->getValue()F\nHSPLandroidx/compose/animation/core/AnimationVector1D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/AnimationVector1D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/AnimationVector1D;->reset$animation_core_release()V\nHPLandroidx/compose/animation/core/AnimationVector1D;->reset$animation_core_release()V\nHSPLandroidx/compose/animation/core/AnimationVector1D;->set$animation_core_release(FI)V\nHPLandroidx/compose/animation/core/AnimationVector1D;->set$animation_core_release(FI)V\nLandroidx/compose/animation/core/AnimationVector2D;\nHSPLandroidx/compose/animation/core/AnimationVector2D;-><init>(FF)V\nPLandroidx/compose/animation/core/AnimationVector2D;-><init>(FF)V\nHSPLandroidx/compose/animation/core/AnimationVector2D;->get$animation_core_release(I)F\nPLandroidx/compose/animation/core/AnimationVector2D;->get$animation_core_release(I)F\nHSPLandroidx/compose/animation/core/AnimationVector2D;->getSize$animation_core_release()I\nPLandroidx/compose/animation/core/AnimationVector2D;->getSize$animation_core_release()I\nHSPLandroidx/compose/animation/core/AnimationVector2D;->getV1()F\nPLandroidx/compose/animation/core/AnimationVector2D;->getV1()F\nHSPLandroidx/compose/animation/core/AnimationVector2D;->getV2()F\nPLandroidx/compose/animation/core/AnimationVector2D;->getV2()F\nHSPLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/AnimationVector2D;->reset$animation_core_release()V\nPLandroidx/compose/animation/core/AnimationVector2D;->reset$animation_core_release()V\nHSPLandroidx/compose/animation/core/AnimationVector2D;->set$animation_core_release(FI)V\nHPLandroidx/compose/animation/core/AnimationVector2D;->set$animation_core_release(FI)V\nLandroidx/compose/animation/core/AnimationVector3D;\nHSPLandroidx/compose/animation/core/AnimationVector3D;-><init>(FFF)V\nPLandroidx/compose/animation/core/AnimationVector3D;-><init>(FFF)V\nLandroidx/compose/animation/core/AnimationVector4D;\nHSPLandroidx/compose/animation/core/AnimationVector4D;-><init>(FFFF)V\nHPLandroidx/compose/animation/core/AnimationVector4D;-><init>(FFFF)V\nHSPLandroidx/compose/animation/core/AnimationVector4D;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/AnimationVector4D;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/core/AnimationVector4D;->get$animation_core_release(I)F\nHPLandroidx/compose/animation/core/AnimationVector4D;->get$animation_core_release(I)F\nHSPLandroidx/compose/animation/core/AnimationVector4D;->getSize$animation_core_release()I\nHPLandroidx/compose/animation/core/AnimationVector4D;->getSize$animation_core_release()I\nHSPLandroidx/compose/animation/core/AnimationVector4D;->getV1()F\nPLandroidx/compose/animation/core/AnimationVector4D;->getV1()F\nHSPLandroidx/compose/animation/core/AnimationVector4D;->getV2()F\nPLandroidx/compose/animation/core/AnimationVector4D;->getV2()F\nHSPLandroidx/compose/animation/core/AnimationVector4D;->getV3()F\nPLandroidx/compose/animation/core/AnimationVector4D;->getV3()F\nHSPLandroidx/compose/animation/core/AnimationVector4D;->getV4()F\nPLandroidx/compose/animation/core/AnimationVector4D;->getV4()F\nHSPLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/AnimationVector4D;->reset$animation_core_release()V\nHPLandroidx/compose/animation/core/AnimationVector4D;->reset$animation_core_release()V\nHSPLandroidx/compose/animation/core/AnimationVector4D;->set$animation_core_release(FI)V\nHPLandroidx/compose/animation/core/AnimationVector4D;->set$animation_core_release(FI)V\nLandroidx/compose/animation/core/Animations;\nLandroidx/compose/animation/core/ComplexDouble;\nHSPLandroidx/compose/animation/core/ComplexDouble;-><init>(DD)V\nHPLandroidx/compose/animation/core/ComplexDouble;-><init>(DD)V\nHSPLandroidx/compose/animation/core/ComplexDouble;->access$get_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;)D\nHPLandroidx/compose/animation/core/ComplexDouble;->access$get_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;)D\nHSPLandroidx/compose/animation/core/ComplexDouble;->access$get_real$p(Landroidx/compose/animation/core/ComplexDouble;)D\nHPLandroidx/compose/animation/core/ComplexDouble;->access$get_real$p(Landroidx/compose/animation/core/ComplexDouble;)D\nHSPLandroidx/compose/animation/core/ComplexDouble;->access$set_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;D)V\nHPLandroidx/compose/animation/core/ComplexDouble;->access$set_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;D)V\nHSPLandroidx/compose/animation/core/ComplexDouble;->access$set_real$p(Landroidx/compose/animation/core/ComplexDouble;D)V\nHPLandroidx/compose/animation/core/ComplexDouble;->access$set_real$p(Landroidx/compose/animation/core/ComplexDouble;D)V\nLandroidx/compose/animation/core/CubicBezierEasing;\nHSPLandroidx/compose/animation/core/CubicBezierEasing;-><init>(FFFF)V\nPLandroidx/compose/animation/core/CubicBezierEasing;-><init>(FFFF)V\nHSPLandroidx/compose/animation/core/CubicBezierEasing;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/CubicBezierEasing;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/core/CubicBezierEasing;->transform(F)F\nHPLandroidx/compose/animation/core/CubicBezierEasing;->transform(F)F\nLandroidx/compose/animation/core/DecayAnimationSpec;\nLandroidx/compose/animation/core/DecayAnimationSpecImpl;\nHSPLandroidx/compose/animation/core/DecayAnimationSpecImpl;-><init>(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)V\nHPLandroidx/compose/animation/core/DecayAnimationSpecImpl;-><init>(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)V\nLandroidx/compose/animation/core/DurationBasedAnimationSpec;\nLandroidx/compose/animation/core/Easing;\nLandroidx/compose/animation/core/EasingKt;\nHSPLandroidx/compose/animation/core/EasingKt;-><clinit>()V\nPLandroidx/compose/animation/core/EasingKt;-><clinit>()V\nHSPLandroidx/compose/animation/core/EasingKt;->getFastOutLinearInEasing()Landroidx/compose/animation/core/CubicBezierEasing;\nPLandroidx/compose/animation/core/EasingKt;->getFastOutLinearInEasing()Landroidx/compose/animation/core/CubicBezierEasing;\nHSPLandroidx/compose/animation/core/EasingKt;->getFastOutSlowInEasing()Landroidx/compose/animation/core/CubicBezierEasing;\nPLandroidx/compose/animation/core/EasingKt;->getFastOutSlowInEasing()Landroidx/compose/animation/core/CubicBezierEasing;\nHSPLandroidx/compose/animation/core/EasingKt;->getLinearEasing()Landroidx/compose/animation/core/Easing;\nPLandroidx/compose/animation/core/EasingKt;->getLinearEasing()Landroidx/compose/animation/core/Easing;\nHSPLandroidx/compose/animation/core/EasingKt;->getLinearOutSlowInEasing()Landroidx/compose/animation/core/CubicBezierEasing;\nPLandroidx/compose/animation/core/EasingKt;->getLinearOutSlowInEasing()Landroidx/compose/animation/core/CubicBezierEasing;\nLandroidx/compose/animation/core/EasingKt$LinearEasing$1;\nHSPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;-><clinit>()V\nPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;-><clinit>()V\nHSPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;-><init>()V\nPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;-><init>()V\nHSPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;->transform(F)F\nPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;->transform(F)F\nLandroidx/compose/animation/core/FiniteAnimationSpec;\nLandroidx/compose/animation/core/FloatAnimationSpec;\nLandroidx/compose/animation/core/FloatDecayAnimationSpec;\nLandroidx/compose/animation/core/FloatSpringSpec;\nHSPLandroidx/compose/animation/core/FloatSpringSpec;-><init>(FFF)V\nHPLandroidx/compose/animation/core/FloatSpringSpec;-><init>(FFF)V\nHSPLandroidx/compose/animation/core/FloatSpringSpec;->getDurationNanos(FFF)J\nHPLandroidx/compose/animation/core/FloatSpringSpec;->getDurationNanos(FFF)J\nHSPLandroidx/compose/animation/core/FloatSpringSpec;->getEndVelocity(FFF)F\nPLandroidx/compose/animation/core/FloatSpringSpec;->getEndVelocity(FFF)F\nLandroidx/compose/animation/core/FloatTweenSpec;\nHSPLandroidx/compose/animation/core/FloatTweenSpec;-><init>(IILandroidx/compose/animation/core/Easing;)V\nHPLandroidx/compose/animation/core/FloatTweenSpec;-><init>(IILandroidx/compose/animation/core/Easing;)V\nHSPLandroidx/compose/animation/core/FloatTweenSpec;->getValueFromNanos(JFFF)F\nHPLandroidx/compose/animation/core/FloatTweenSpec;->getValueFromNanos(JFFF)F\nHSPLandroidx/compose/animation/core/FloatTweenSpec;->getVelocityFromNanos(JFFF)F\nHPLandroidx/compose/animation/core/FloatTweenSpec;->getVelocityFromNanos(JFFF)F\nLandroidx/compose/animation/core/InfiniteRepeatableSpec;\nHSPLandroidx/compose/animation/core/InfiniteRepeatableSpec;-><init>(Landroidx/compose/animation/core/DurationBasedAnimationSpec;IJ)V\nPLandroidx/compose/animation/core/InfiniteRepeatableSpec;-><init>(Landroidx/compose/animation/core/DurationBasedAnimationSpec;IJ)V\nHSPLandroidx/compose/animation/core/InfiniteRepeatableSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nPLandroidx/compose/animation/core/InfiniteRepeatableSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nLandroidx/compose/animation/core/InfiniteTransition;\nHSPLandroidx/compose/animation/core/InfiniteTransition;-><init>()V\nPLandroidx/compose/animation/core/InfiniteTransition;-><init>()V\nHSPLandroidx/compose/animation/core/InfiniteTransition;->access$getStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;)J\nPLandroidx/compose/animation/core/InfiniteTransition;->access$getStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;)J\nHSPLandroidx/compose/animation/core/InfiniteTransition;->access$get_animations$p(Landroidx/compose/animation/core/InfiniteTransition;)Landroidx/compose/runtime/collection/MutableVector;\nPLandroidx/compose/animation/core/InfiniteTransition;->access$get_animations$p(Landroidx/compose/animation/core/InfiniteTransition;)Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/animation/core/InfiniteTransition;->access$onFrame(Landroidx/compose/animation/core/InfiniteTransition;J)V\nPLandroidx/compose/animation/core/InfiniteTransition;->access$onFrame(Landroidx/compose/animation/core/InfiniteTransition;J)V\nHSPLandroidx/compose/animation/core/InfiniteTransition;->access$setRefreshChildNeeded(Landroidx/compose/animation/core/InfiniteTransition;Z)V\nPLandroidx/compose/animation/core/InfiniteTransition;->access$setRefreshChildNeeded(Landroidx/compose/animation/core/InfiniteTransition;Z)V\nHSPLandroidx/compose/animation/core/InfiniteTransition;->access$setStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;J)V\nPLandroidx/compose/animation/core/InfiniteTransition;->access$setStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;J)V\nHSPLandroidx/compose/animation/core/InfiniteTransition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V\nPLandroidx/compose/animation/core/InfiniteTransition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V\nHSPLandroidx/compose/animation/core/InfiniteTransition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V\nPLandroidx/compose/animation/core/InfiniteTransition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V\nHSPLandroidx/compose/animation/core/InfiniteTransition;->run$animation_core_release(Landroidx/compose/runtime/Composer;I)V\nPLandroidx/compose/animation/core/InfiniteTransition;->run$animation_core_release(Landroidx/compose/runtime/Composer;I)V\nLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;-><init>(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Number;Ljava/lang/Number;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;)V\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;-><init>(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Number;Ljava/lang/Number;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;)V\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getInitialValue$animation_core_release()Ljava/lang/Object;\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getInitialValue$animation_core_release()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getTargetValue$animation_core_release()Ljava/lang/Object;\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getTargetValue$animation_core_release()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getValue()Ljava/lang/Object;\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->isFinished$animation_core_release()Z\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->isFinished$animation_core_release()Z\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->onPlayTimeChanged$animation_core_release(J)V\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->onPlayTimeChanged$animation_core_release(J)V\nHSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->reset$animation_core_release()V\nPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->reset$animation_core_release()V\nLandroidx/compose/animation/core/InfiniteTransition$run$1;\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$1;-><init>(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/animation/core/InfiniteTransition$run$1;-><init>(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/animation/core/InfiniteTransition$run$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/core/InfiniteTransition$run$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/InfiniteTransition$run$1$1;\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;-><init>(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/jvm/internal/Ref$FloatRef;Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;-><init>(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/jvm/internal/Ref$FloatRef;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/InfiniteTransition$run$1$2;\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$1$2;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/animation/core/InfiniteTransition$run$1$2;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/animation/core/InfiniteTransition$run$2;\nHSPLandroidx/compose/animation/core/InfiniteTransition$run$2;-><init>(Landroidx/compose/animation/core/InfiniteTransition;I)V\nPLandroidx/compose/animation/core/InfiniteTransition$run$2;-><init>(Landroidx/compose/animation/core/InfiniteTransition;I)V\nLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;\nHSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;-><init>(Ljava/lang/Number;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Ljava/lang/Number;Landroidx/compose/animation/core/InfiniteRepeatableSpec;)V\nPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;-><init>(Ljava/lang/Number;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Ljava/lang/Number;Landroidx/compose/animation/core/InfiniteRepeatableSpec;)V\nHSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/animation/core/KeyframesSpec;\nHSPLandroidx/compose/animation/core/KeyframesSpec;-><init>(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V\nHPLandroidx/compose/animation/core/KeyframesSpec;-><init>(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V\nHSPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;\nPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;\nHSPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nHSPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedKeyframesSpec;\nHPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedKeyframesSpec;\nLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;-><init>(Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->setEasing$animation_core_release(Landroidx/compose/animation/core/Easing;)V\nPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->setEasing$animation_core_release(Landroidx/compose/animation/core/Easing;)V\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->toPair$animation_core_release(Lkotlin/jvm/functions/Function1;)Lkotlin/Pair;\nPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->toPair$animation_core_release(Lkotlin/jvm/functions/Function1;)Lkotlin/Pair;\nLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;-><init>()V\nHPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;-><init>()V\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->at(ILjava/lang/Object;)Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;\nHPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->at(ILjava/lang/Object;)Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getDurationMillis()I\nPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getDurationMillis()I\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getKeyframes$animation_core_release()Ljava/util/LinkedHashMap;\nPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getKeyframes$animation_core_release()Ljava/util/LinkedHashMap;\nHSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->setDurationMillis(I)V\nPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->setDurationMillis(I)V\nLandroidx/compose/animation/core/Motion;\nHSPLandroidx/compose/animation/core/Motion;-><clinit>()V\nPLandroidx/compose/animation/core/Motion;-><clinit>()V\nHSPLandroidx/compose/animation/core/Motion;->Animatable$default(F)Landroidx/compose/animation/core/Animatable;\nHPLandroidx/compose/animation/core/Motion;->Animatable$default(F)Landroidx/compose/animation/core/Animatable;\nHSPLandroidx/compose/animation/core/Motion;->AnimationState$default(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Float;Ljava/lang/Float;)Landroidx/compose/animation/core/AnimationState;\nPLandroidx/compose/animation/core/Motion;->AnimationState$default(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Float;Ljava/lang/Float;)Landroidx/compose/animation/core/AnimationState;\nHSPLandroidx/compose/animation/core/Motion;->access$getNegativeInfinityBounds1D$p()Landroidx/compose/animation/core/AnimationVector1D;\nPLandroidx/compose/animation/core/Motion;->access$getNegativeInfinityBounds1D$p()Landroidx/compose/animation/core/AnimationVector1D;\nHSPLandroidx/compose/animation/core/Motion;->access$getNegativeInfinityBounds4D$p()Landroidx/compose/animation/core/AnimationVector4D;\nPLandroidx/compose/animation/core/Motion;->access$getNegativeInfinityBounds4D$p()Landroidx/compose/animation/core/AnimationVector4D;\nHSPLandroidx/compose/animation/core/Motion;->access$getPositiveInfinityBounds1D$p()Landroidx/compose/animation/core/AnimationVector1D;\nPLandroidx/compose/animation/core/Motion;->access$getPositiveInfinityBounds1D$p()Landroidx/compose/animation/core/AnimationVector1D;\nHSPLandroidx/compose/animation/core/Motion;->access$getPositiveInfinityBounds4D$p()Landroidx/compose/animation/core/AnimationVector4D;\nPLandroidx/compose/animation/core/Motion;->access$getPositiveInfinityBounds4D$p()Landroidx/compose/animation/core/AnimationVector4D;\nHSPLandroidx/compose/animation/core/Motion;->animateFloat(Landroidx/compose/animation/core/InfiniteTransition;FLandroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;\nPLandroidx/compose/animation/core/Motion;->animateFloat(Landroidx/compose/animation/core/InfiniteTransition;FLandroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;\nHSPLandroidx/compose/animation/core/Motion;->animateValue(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Number;Ljava/lang/Number;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;\nPLandroidx/compose/animation/core/Motion;->animateValue(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Number;Ljava/lang/Number;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;\nHSPLandroidx/compose/animation/core/Motion;->complexSqrt(D)Landroidx/compose/animation/core/ComplexDouble;\nHPLandroidx/compose/animation/core/Motion;->complexSqrt(D)Landroidx/compose/animation/core/ComplexDouble;\nHSPLandroidx/compose/animation/core/Motion;->copy(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/Motion;->copy(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/Motion;->createChildTransitionInternal(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/EnterExitState;Landroidx/compose/animation/EnterExitState;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/Transition;\nHPLandroidx/compose/animation/core/Motion;->createChildTransitionInternal(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/EnterExitState;Landroidx/compose/animation/EnterExitState;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/Transition;\nHSPLandroidx/compose/animation/core/Motion;->createDeferredAnimation(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/Transition$DeferredAnimation;\nHPLandroidx/compose/animation/core/Motion;->createDeferredAnimation(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/Transition$DeferredAnimation;\nHSPLandroidx/compose/animation/core/Motion;->createTransitionAnimation(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/core/Transition$TransitionAnimationState;\nHPLandroidx/compose/animation/core/Motion;->createTransitionAnimation(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/runtime/Composer;)Landroidx/compose/animation/core/Transition$TransitionAnimationState;\nHSPLandroidx/compose/animation/core/Motion;->generateDecayAnimationSpec(Landroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;)Landroidx/compose/animation/core/DecayAnimationSpec;\nPLandroidx/compose/animation/core/Motion;->generateDecayAnimationSpec(Landroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;)Landroidx/compose/animation/core/DecayAnimationSpec;\nHSPLandroidx/compose/animation/core/Motion;->infiniteRepeatable-9IiC70o$default(Landroidx/compose/animation/core/DurationBasedAnimationSpec;II)Landroidx/compose/animation/core/InfiniteRepeatableSpec;\nPLandroidx/compose/animation/core/Motion;->infiniteRepeatable-9IiC70o$default(Landroidx/compose/animation/core/DurationBasedAnimationSpec;II)Landroidx/compose/animation/core/InfiniteRepeatableSpec;\nHSPLandroidx/compose/animation/core/Motion;->keyframes(Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/KeyframesSpec;\nPLandroidx/compose/animation/core/Motion;->keyframes(Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/KeyframesSpec;\nHSPLandroidx/compose/animation/core/Motion;->rememberInfiniteTransition(Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/InfiniteTransition;\nPLandroidx/compose/animation/core/Motion;->rememberInfiniteTransition(Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/InfiniteTransition;\nHSPLandroidx/compose/animation/core/Motion;->spring$default(FLjava/lang/Object;I)Landroidx/compose/animation/core/SpringSpec;\nHPLandroidx/compose/animation/core/Motion;->spring$default(FLjava/lang/Object;I)Landroidx/compose/animation/core/SpringSpec;\nHSPLandroidx/compose/animation/core/Motion;->tween$default(IILandroidx/compose/animation/core/Easing;I)Landroidx/compose/animation/core/TweenSpec;\nHPLandroidx/compose/animation/core/Motion;->tween$default(IILandroidx/compose/animation/core/Easing;I)Landroidx/compose/animation/core/TweenSpec;\nHSPLandroidx/compose/animation/core/Motion;->updateTransition(Ljava/lang/Object;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/animation/core/Transition;\nHPLandroidx/compose/animation/core/Motion;->updateTransition(Ljava/lang/Object;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/animation/core/Transition;\nLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;\nHSPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;-><clinit>()V\nPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;-><clinit>()V\nHSPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;II)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;II)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->m(Lkotlin/coroutines/CoroutineContext$Element;)V\nPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->m(Lkotlin/coroutines/CoroutineContext$Element;)V\nHSPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->ordinal(I)I\nHPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->ordinal(I)I\nHSPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->values(I)[I\nPLandroidx/compose/animation/core/Motion$$ExternalSyntheticOutline0;->values(I)[I\nLandroidx/compose/animation/core/MutableTransitionState;\nHSPLandroidx/compose/animation/core/MutableTransitionState;-><init>(Ljava/lang/Object;)V\nPLandroidx/compose/animation/core/MutableTransitionState;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/MutableTransitionState;->getCurrentState()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/MutableTransitionState;->getCurrentState()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/MutableTransitionState;->getTargetState()Ljava/lang/Object;\nPLandroidx/compose/animation/core/MutableTransitionState;->getTargetState()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/MutableTransitionState;->setCurrentState$animation_core_release(Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/MutableTransitionState;->setCurrentState$animation_core_release(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/MutableTransitionState;->setRunning$animation_core_release(Z)V\nHPLandroidx/compose/animation/core/MutableTransitionState;->setRunning$animation_core_release(Z)V\nHSPLandroidx/compose/animation/core/MutableTransitionState;->setTargetState(Ljava/lang/Boolean;)V\nPLandroidx/compose/animation/core/MutableTransitionState;->setTargetState(Ljava/lang/Boolean;)V\nLandroidx/compose/animation/core/MutatorMutex;\nHSPLandroidx/compose/animation/core/MutatorMutex;-><init>()V\nPLandroidx/compose/animation/core/MutatorMutex;-><init>()V\nHSPLandroidx/compose/animation/core/MutatorMutex;->access$getCurrentMutator$p(Landroidx/compose/animation/core/MutatorMutex;)Ljava/util/concurrent/atomic/AtomicReference;\nPLandroidx/compose/animation/core/MutatorMutex;->access$getCurrentMutator$p(Landroidx/compose/animation/core/MutatorMutex;)Ljava/util/concurrent/atomic/AtomicReference;\nHSPLandroidx/compose/animation/core/MutatorMutex;->access$getMutex$p(Landroidx/compose/animation/core/MutatorMutex;)Lkotlinx/coroutines/sync/Mutex;\nPLandroidx/compose/animation/core/MutatorMutex;->access$getMutex$p(Landroidx/compose/animation/core/MutatorMutex;)Lkotlinx/coroutines/sync/Mutex;\nHSPLandroidx/compose/animation/core/MutatorMutex;->access$tryMutateOrCancel(Landroidx/compose/animation/core/MutatorMutex;Landroidx/compose/animation/core/MutatorMutex$Mutator;)V\nHPLandroidx/compose/animation/core/MutatorMutex;->access$tryMutateOrCancel(Landroidx/compose/animation/core/MutatorMutex;Landroidx/compose/animation/core/MutatorMutex$Mutator;)V\nLandroidx/compose/animation/core/MutatorMutex$Mutator;\nHSPLandroidx/compose/animation/core/MutatorMutex$Mutator;-><init>(ILkotlinx/coroutines/Job;)V\nPLandroidx/compose/animation/core/MutatorMutex$Mutator;-><init>(ILkotlinx/coroutines/Job;)V\nLandroidx/compose/animation/core/MutatorMutex$mutate$2;\nHSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;-><init>(ILandroidx/compose/animation/core/MutatorMutex;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/animation/core/MutatorMutex$mutate$2;-><init>(ILandroidx/compose/animation/core/MutatorMutex;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/RepeatableSpec;\nLandroidx/compose/animation/core/SpringSimulation;\nHSPLandroidx/compose/animation/core/SpringSimulation;-><init>()V\nHPLandroidx/compose/animation/core/SpringSimulation;-><init>()V\nHSPLandroidx/compose/animation/core/SpringSimulation;->getDampingRatio()F\nPLandroidx/compose/animation/core/SpringSimulation;->getDampingRatio()F\nHSPLandroidx/compose/animation/core/SpringSimulation;->getStiffness()F\nPLandroidx/compose/animation/core/SpringSimulation;->getStiffness()F\nHSPLandroidx/compose/animation/core/SpringSimulation;->setDampingRatio(F)V\nHPLandroidx/compose/animation/core/SpringSimulation;->setDampingRatio(F)V\nHSPLandroidx/compose/animation/core/SpringSimulation;->setStiffness(F)V\nHPLandroidx/compose/animation/core/SpringSimulation;->setStiffness(F)V\nLandroidx/compose/animation/core/SpringSpec;\nHSPLandroidx/compose/animation/core/SpringSpec;-><init>(FFLjava/lang/Object;)V\nHPLandroidx/compose/animation/core/SpringSpec;-><init>(FFLjava/lang/Object;)V\nHSPLandroidx/compose/animation/core/SpringSpec;-><init>(Ljava/lang/Object;)V\nPLandroidx/compose/animation/core/SpringSpec;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/SpringSpec;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/SpringSpec;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/core/SpringSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nPLandroidx/compose/animation/core/SpringSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nLandroidx/compose/animation/core/SuspendAnimationKt;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt;->access$doAnimationFrameWithScale(Landroidx/compose/animation/core/AnimationScope;JFLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/animation/core/SuspendAnimationKt;->access$doAnimationFrameWithScale(Landroidx/compose/animation/core/AnimationScope;JFLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt;->animate(Landroidx/compose/animation/core/AnimationState;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/SuspendAnimationKt;->animate(Landroidx/compose/animation/core/AnimationState;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt;->doAnimationFrameWithScale(Landroidx/compose/animation/core/AnimationScope;JFLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/animation/core/SuspendAnimationKt;->doAnimationFrameWithScale(Landroidx/compose/animation/core/AnimationScope;JFLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt;->getDurationScale(Lkotlin/coroutines/CoroutineContext;)F\nHPLandroidx/compose/animation/core/SuspendAnimationKt;->getDurationScale(Lkotlin/coroutines/CoroutineContext;)F\nHSPLandroidx/compose/animation/core/SuspendAnimationKt;->updateState(Landroidx/compose/animation/core/AnimationScope;Landroidx/compose/animation/core/AnimationState;)V\nHPLandroidx/compose/animation/core/SuspendAnimationKt;->updateState(Landroidx/compose/animation/core/AnimationScope;Landroidx/compose/animation/core/AnimationState;)V\nLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;-><clinit>()V\nPLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;-><clinit>()V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;-><init>(I)V\nPLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;-><init>(I)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$5;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationState;FLkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationState;FLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;FLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;FLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/TargetBasedAnimation;\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;-><init>(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/animation/core/TargetBasedAnimation;-><init>(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;-><init>(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;)V\nHPLandroidx/compose/animation/core/TargetBasedAnimation;-><init>(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;)V\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;->getDurationNanos()J\nHPLandroidx/compose/animation/core/TargetBasedAnimation;->getDurationNanos()J\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;->getTargetValue()Ljava/lang/Object;\nPLandroidx/compose/animation/core/TargetBasedAnimation;->getTargetValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/TargetBasedAnimation;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;->getValueFromNanos(J)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/TargetBasedAnimation;->getValueFromNanos(J)Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;->getVelocityVectorFromNanos(J)Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/TargetBasedAnimation;->getVelocityVectorFromNanos(J)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/TargetBasedAnimation;->isInfinite()Z\nPLandroidx/compose/animation/core/TargetBasedAnimation;->isInfinite()Z\nLandroidx/compose/animation/core/Transition;\nHSPLandroidx/compose/animation/core/Transition;-><init>(Landroidx/compose/animation/core/MutableTransitionState;Ljava/lang/String;)V\nHPLandroidx/compose/animation/core/Transition;-><init>(Landroidx/compose/animation/core/MutableTransitionState;Ljava/lang/String;)V\nHSPLandroidx/compose/animation/core/Transition;->access$onChildAnimationUpdated(Landroidx/compose/animation/core/Transition;)V\nHPLandroidx/compose/animation/core/Transition;->access$onChildAnimationUpdated(Landroidx/compose/animation/core/Transition;)V\nHSPLandroidx/compose/animation/core/Transition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V\nHPLandroidx/compose/animation/core/Transition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V\nHSPLandroidx/compose/animation/core/Transition;->addTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)V\nPLandroidx/compose/animation/core/Transition;->addTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)V\nHSPLandroidx/compose/animation/core/Transition;->animateTo$animation_core_release(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/animation/core/Transition;->animateTo$animation_core_release(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/animation/core/Transition;->getCurrentState()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition;->getCurrentState()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Transition;->getLabel()Ljava/lang/String;\nPLandroidx/compose/animation/core/Transition;->getLabel()Ljava/lang/String;\nHSPLandroidx/compose/animation/core/Transition;->getPlayTimeNanos()J\nPLandroidx/compose/animation/core/Transition;->getPlayTimeNanos()J\nHSPLandroidx/compose/animation/core/Transition;->getSegment()Landroidx/compose/animation/core/Transition$Segment;\nHPLandroidx/compose/animation/core/Transition;->getSegment()Landroidx/compose/animation/core/Transition$Segment;\nHSPLandroidx/compose/animation/core/Transition;->getTargetState()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition;->getTargetState()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Transition;->isSeeking()Z\nHPLandroidx/compose/animation/core/Transition;->isSeeking()Z\nHSPLandroidx/compose/animation/core/Transition;->onFrame$animation_core_release(JF)V\nHPLandroidx/compose/animation/core/Transition;->onFrame$animation_core_release(JF)V\nHSPLandroidx/compose/animation/core/Transition;->onTransitionEnd$animation_core_release()V\nHPLandroidx/compose/animation/core/Transition;->onTransitionEnd$animation_core_release()V\nHSPLandroidx/compose/animation/core/Transition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V\nPLandroidx/compose/animation/core/Transition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V\nHSPLandroidx/compose/animation/core/Transition;->removeTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)V\nPLandroidx/compose/animation/core/Transition;->removeTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)V\nHSPLandroidx/compose/animation/core/Transition;->setSeeking$animation_core_release(Z)V\nPLandroidx/compose/animation/core/Transition;->setSeeking$animation_core_release(Z)V\nHSPLandroidx/compose/animation/core/Transition;->updateTarget$animation_core_release(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/animation/core/Transition;->updateTarget$animation_core_release(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nLandroidx/compose/animation/core/Transition$DeferredAnimation;\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/String;)V\nPLandroidx/compose/animation/core/Transition$DeferredAnimation;-><init>(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/String;)V\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation;->animate(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;\nHPLandroidx/compose/animation/core/Transition$DeferredAnimation;->animate(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation;->getData$animation_core_release()Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;\nHPLandroidx/compose/animation/core/Transition$DeferredAnimation;->getData$animation_core_release()Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;\nLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;-><init>(Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$TransitionAnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;-><init>(Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$TransitionAnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getAnimation()Landroidx/compose/animation/core/Transition$TransitionAnimationState;\nPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getAnimation()Landroidx/compose/animation/core/Transition$TransitionAnimationState;\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTargetValueByState(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTargetValueByState(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTransitionSpec(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTransitionSpec(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->updateAnimationStates(Landroidx/compose/animation/core/Transition$Segment;)V\nHPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->updateAnimationStates(Landroidx/compose/animation/core/Transition$Segment;)V\nLandroidx/compose/animation/core/Transition$Segment;\nHSPLandroidx/compose/animation/core/Transition$Segment;->isTransitioningTo(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/Transition$Segment;->isTransitioningTo(Ljava/lang/Object;Ljava/lang/Object;)Z\nLandroidx/compose/animation/core/Transition$SegmentImpl;\nHSPLandroidx/compose/animation/core/Transition$SegmentImpl;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/animation/core/Transition$SegmentImpl;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/animation/core/Transition$SegmentImpl;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/Transition$SegmentImpl;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/core/Transition$SegmentImpl;->getInitialState()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$SegmentImpl;->getInitialState()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Transition$SegmentImpl;->getTargetState()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$SegmentImpl;->getTargetState()Ljava/lang/Object;\nLandroidx/compose/animation/core/Transition$TransitionAnimationState;\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;-><init>(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/TwoWayConverter;)V\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;-><init>(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/TwoWayConverter;)V\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->getAnimation()Landroidx/compose/animation/core/TargetBasedAnimation;\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->getAnimation()Landroidx/compose/animation/core/TargetBasedAnimation;\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->isFinished$animation_core_release()Z\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->isFinished$animation_core_release()Z\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->onPlayTimeChanged$animation_core_release(JF)V\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->onPlayTimeChanged$animation_core_release(JF)V\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->resetAnimation$animation_core_release()V\nPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->resetAnimation$animation_core_release()V\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->updateAnimation$default(Landroidx/compose/animation/core/Transition$TransitionAnimationState;Ljava/lang/Object;ZI)V\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->updateAnimation$default(Landroidx/compose/animation/core/Transition$TransitionAnimationState;Ljava/lang/Object;ZI)V\nHSPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->updateTargetValue$animation_core_release(Ljava/lang/Object;Landroidx/compose/animation/core/FiniteAnimationSpec;)V\nHPLandroidx/compose/animation/core/Transition$TransitionAnimationState;->updateTargetValue$animation_core_release(Ljava/lang/Object;Landroidx/compose/animation/core/FiniteAnimationSpec;)V\nLandroidx/compose/animation/core/Transition$animateTo$1$1;\nHSPLandroidx/compose/animation/core/Transition$animateTo$1$1;-><init>(Landroidx/compose/animation/core/Transition;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/animation/core/Transition$animateTo$1$1;-><init>(Landroidx/compose/animation/core/Transition;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/animation/core/Transition$animateTo$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/animation/core/Transition$animateTo$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/animation/core/Transition$animateTo$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$animateTo$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/Transition$animateTo$1$1$1;\nHSPLandroidx/compose/animation/core/Transition$animateTo$1$1$1;-><init>(Landroidx/compose/animation/core/Transition;F)V\nHPLandroidx/compose/animation/core/Transition$animateTo$1$1$1;-><init>(Landroidx/compose/animation/core/Transition;F)V\nHSPLandroidx/compose/animation/core/Transition$animateTo$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$animateTo$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/Transition$animateTo$2;\nHSPLandroidx/compose/animation/core/Transition$animateTo$2;-><init>(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;II)V\nHPLandroidx/compose/animation/core/Transition$animateTo$2;-><init>(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;II)V\nHSPLandroidx/compose/animation/core/Transition$animateTo$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/animation/core/Transition$animateTo$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/animation/core/Transition$animateTo$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/Transition$animateTo$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/Transition$totalDurationNanos$2;\nHSPLandroidx/compose/animation/core/Transition$totalDurationNanos$2;-><init>(Landroidx/compose/animation/core/Transition;)V\nPLandroidx/compose/animation/core/Transition$totalDurationNanos$2;-><init>(Landroidx/compose/animation/core/Transition;)V\nLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;\nHSPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;\nPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;\nHSPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/animation/core/Transition;I)V\nPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/animation/core/Transition;I)V\nHSPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/animation/core/TransitionKt$updateTransition$1$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/animation/core/TweenSpec;\nHSPLandroidx/compose/animation/core/TweenSpec;-><init>(IILandroidx/compose/animation/core/Easing;)V\nHPLandroidx/compose/animation/core/TweenSpec;-><init>(IILandroidx/compose/animation/core/Easing;)V\nHSPLandroidx/compose/animation/core/TweenSpec;-><init>(ILandroidx/compose/animation/core/Easing;I)V\nPLandroidx/compose/animation/core/TweenSpec;-><init>(ILandroidx/compose/animation/core/Easing;I)V\nHSPLandroidx/compose/animation/core/TweenSpec;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/animation/core/TweenSpec;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/animation/core/TweenSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nPLandroidx/compose/animation/core/TweenSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nHSPLandroidx/compose/animation/core/TweenSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;\nPLandroidx/compose/animation/core/TweenSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;\nHSPLandroidx/compose/animation/core/TweenSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nPLandroidx/compose/animation/core/TweenSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nLandroidx/compose/animation/core/TwoWayConverter;\nLandroidx/compose/animation/core/TwoWayConverterImpl;\nHSPLandroidx/compose/animation/core/TwoWayConverterImpl;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/animation/core/TwoWayConverterImpl;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/animation/core/TwoWayConverterImpl;->getConvertFromVector()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/animation/core/TwoWayConverterImpl;->getConvertFromVector()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/animation/core/TwoWayConverterImpl;->getConvertToVector()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/animation/core/TwoWayConverterImpl;->getConvertToVector()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/animation/core/VectorConvertersKt;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;-><clinit>()V\nPLandroidx/compose/animation/core/VectorConvertersKt;-><clinit>()V\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->TwoWayConverter(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->TwoWayConverter(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$1$1()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$1$1()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$1$2()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$1$2()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$1()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$1()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$2$1()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$2$1()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$2$2()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$2$2()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$2()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$2()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$3$1()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$3$1()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$3()Landroidx/compose/animation/core/TwoWayConverter;\nPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter$3()Landroidx/compose/animation/core/TwoWayConverter;\nHSPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter()Landroidx/compose/animation/core/TwoWayConverter;\nHPLandroidx/compose/animation/core/VectorConvertersKt;->getVectorConverter()Landroidx/compose/animation/core/TwoWayConverter;\nLandroidx/compose/animation/core/VectorizedAnimationSpec;\nHSPLandroidx/compose/animation/core/VectorizedAnimationSpec;->getEndVelocity(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/VectorizedAnimationSpec;->getEndVelocity(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;\nHSPLandroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHPLandroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nLandroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nHSPLandroidx/compose/animation/core/VectorizedFiniteAnimationSpec;->isInfinite()Z\nHPLandroidx/compose/animation/core/VectorizedFiniteAnimationSpec;->isInfinite()Z\nLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;-><init>(Landroidx/compose/animation/core/Animations;)V\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;-><init>(Landroidx/compose/animation/core/Animations;)V\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;-><init>(Landroidx/compose/animation/core/FloatAnimationSpec;)V\nPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;-><init>(Landroidx/compose/animation/core/FloatAnimationSpec;)V\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getEndVelocity(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getEndVelocity(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/core/VectorizedFloatAnimationSpec$1;\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec$1;-><init>(Landroidx/compose/animation/core/FloatAnimationSpec;)V\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec$1;-><init>(Landroidx/compose/animation/core/FloatAnimationSpec;)V\nHSPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec$1;->get(I)Landroidx/compose/animation/core/FloatAnimationSpec;\nHPLandroidx/compose/animation/core/VectorizedFloatAnimationSpec$1;->get(I)Landroidx/compose/animation/core/FloatAnimationSpec;\nLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;\nHSPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;-><init>(Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;IJ)V\nPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;-><init>(Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;IJ)V\nHSPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHSPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->repetitionPlayTimeNanos(J)J\nPLandroidx/compose/animation/core/VectorizedInfiniteRepeatableSpec;->repetitionPlayTimeNanos(J)J\nLandroidx/compose/animation/core/VectorizedKeyframesSpec;\nHSPLandroidx/compose/animation/core/VectorizedKeyframesSpec;-><init>(ILjava/util/LinkedHashMap;)V\nPLandroidx/compose/animation/core/VectorizedKeyframesSpec;-><init>(ILjava/util/LinkedHashMap;)V\nHSPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getDelayMillis()I\nPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getDelayMillis()I\nHSPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getDurationMillis()I\nPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getDurationMillis()I\nHSPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedKeyframesSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/core/VectorizedSpringSpec;\nHSPLandroidx/compose/animation/core/VectorizedSpringSpec;-><init>(FFLandroidx/compose/animation/core/AnimationVector;)V\nHPLandroidx/compose/animation/core/VectorizedSpringSpec;-><init>(FFLandroidx/compose/animation/core/AnimationVector;)V\nHSPLandroidx/compose/animation/core/VectorizedSpringSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nPLandroidx/compose/animation/core/VectorizedSpringSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHSPLandroidx/compose/animation/core/VectorizedSpringSpec;->getEndVelocity(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/core/VectorizedSpringSpec;->getEndVelocity(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/core/VectorizedTweenSpec;\nHSPLandroidx/compose/animation/core/VectorizedTweenSpec;-><init>(IILandroidx/compose/animation/core/Easing;)V\nHPLandroidx/compose/animation/core/VectorizedTweenSpec;-><init>(IILandroidx/compose/animation/core/Easing;)V\nHSPLandroidx/compose/animation/core/VectorizedTweenSpec;->getDelayMillis()I\nPLandroidx/compose/animation/core/VectorizedTweenSpec;->getDelayMillis()I\nHSPLandroidx/compose/animation/core/VectorizedTweenSpec;->getDurationMillis()I\nPLandroidx/compose/animation/core/VectorizedTweenSpec;->getDurationMillis()I\nHSPLandroidx/compose/animation/core/VectorizedTweenSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedTweenSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/core/VectorizedTweenSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/core/VectorizedTweenSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/core/VisibilityThresholdsKt;\nHSPLandroidx/compose/animation/core/VisibilityThresholdsKt;-><clinit>()V\nPLandroidx/compose/animation/core/VisibilityThresholdsKt;-><clinit>()V\nHSPLandroidx/compose/animation/core/VisibilityThresholdsKt;->getVisibilityThresholdMap()Ljava/util/Map;\nPLandroidx/compose/animation/core/VisibilityThresholdsKt;->getVisibilityThresholdMap()Ljava/util/Map;\nLandroidx/compose/animation/graphics/res/AnimatedVectorPainterResources_androidKt$rememberAnimatedVectorPainter$1;\nHSPLandroidx/compose/animation/graphics/res/AnimatedVectorPainterResources_androidKt$rememberAnimatedVectorPainter$1;-><init>(ZLandroidx/compose/animation/graphics/vector/AnimatedImageVector;ILandroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLandroidx/compose/animation/graphics/res/AnimatedVectorPainterResources_androidKt$rememberAnimatedVectorPainter$1;-><init>(ZLandroidx/compose/animation/graphics/vector/AnimatedImageVector;ILandroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/animation/graphics/res/AnimatedVectorPainterResources_androidKt$rememberAnimatedVectorPainter$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/res/AnimatedVectorPainterResources_androidKt$rememberAnimatedVectorPainter$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/graphics/res/AnimatedVectorResources_androidKt;\nHSPLandroidx/compose/animation/graphics/res/AnimatedVectorResources_androidKt;->animatedVectorResource(ILandroidx/compose/runtime/Composer;)Landroidx/compose/animation/graphics/vector/AnimatedImageVector;\nHPLandroidx/compose/animation/graphics/res/AnimatedVectorResources_androidKt;->animatedVectorResource(ILandroidx/compose/runtime/Composer;)Landroidx/compose/animation/graphics/vector/AnimatedImageVector;\nHSPLandroidx/compose/animation/graphics/res/AnimatedVectorResources_androidKt;->rememberAnimatedVectorPainter(Landroidx/compose/animation/graphics/vector/AnimatedImageVector;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/vector/VectorPainter;\nHPLandroidx/compose/animation/graphics/res/AnimatedVectorResources_androidKt;->rememberAnimatedVectorPainter(Landroidx/compose/animation/graphics/vector/AnimatedImageVector;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/vector/VectorPainter;\nLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;-><clinit>()V\nPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;->getAccelerateDecelerateEasing()Landroidx/compose/animation/core/Easing;\nPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;->getAccelerateDecelerateEasing()Landroidx/compose/animation/core/Easing;\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;->loadAnimatorResource(Landroid/content/res/Resources;ILandroid/content/res/Resources$Theme;)Landroidx/compose/animation/graphics/vector/Animator;\nHPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;->loadAnimatorResource(Landroid/content/res/Resources;ILandroid/content/res/Resources$Theme;)Landroidx/compose/animation/graphics/vector/Animator;\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;->loadInterpolatorResource(Landroid/content/res/Resources;ILandroid/content/res/Resources$Theme;)Landroidx/compose/animation/core/Easing;\nHPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt;->loadInterpolatorResource(Landroid/content/res/Resources;ILandroid/content/res/Resources$Theme;)Landroidx/compose/animation/core/Easing;\nLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;-><clinit>()V\nPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;-><init>(I)V\nPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;-><init>(I)V\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;->transform(F)F\nHPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$AccelerateEasing$1;->transform(F)F\nLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$toEasing$1;\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$toEasing$1;-><init>(Landroid/view/animation/BaseInterpolator;)V\nPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$toEasing$1;-><init>(Landroid/view/animation/BaseInterpolator;)V\nHSPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$toEasing$1;->transform(F)F\nPLandroidx/compose/animation/graphics/res/AnimatorResources_androidKt$toEasing$1;->transform(F)F\nLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt;\nHSPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt;-><clinit>()V\nPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt;-><clinit>()V\nLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;\nHSPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;-><clinit>()V\nPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;-><init>()V\nPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;-><init>()V\nHSPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/res/ComposableSingletons$AnimatedVectorPainterResources_androidKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/AnimatedImageVector;\nHSPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;-><clinit>()V\nPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/util/ArrayList;)V\nHPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/util/ArrayList;)V\nHSPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;->getImageVector()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;->getImageVector()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;->getTargets$animation_graphics_release()Ljava/util/List;\nPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;->getTargets$animation_graphics_release()Ljava/util/List;\nHSPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;->getTotalDuration()I\nPLandroidx/compose/animation/graphics/vector/AnimatedImageVector;->getTotalDuration()I\nLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;\nHSPLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;-><init>(Ljava/lang/String;Landroidx/compose/animation/graphics/vector/Animator;)V\nPLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;-><init>(Ljava/lang/String;Landroidx/compose/animation/graphics/vector/Animator;)V\nHSPLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;->getAnimator()Landroidx/compose/animation/graphics/vector/Animator;\nPLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;->getAnimator()Landroidx/compose/animation/graphics/vector/Animator;\nHSPLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;->getName()Ljava/lang/String;\nPLandroidx/compose/animation/graphics/vector/AnimatedVectorTarget;->getName()Ljava/lang/String;\nLandroidx/compose/animation/graphics/vector/Animator;\nHSPLandroidx/compose/animation/graphics/vector/Animator;-><init>()V\nHPLandroidx/compose/animation/graphics/vector/Animator;-><init>()V\nHSPLandroidx/compose/animation/graphics/vector/Animator;->Configure(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/graphics/vector/StateVectorConfig;ILandroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/animation/graphics/vector/Animator;->Configure(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/graphics/vector/StateVectorConfig;ILandroidx/compose/runtime/Composer;I)V\nLandroidx/compose/animation/graphics/vector/Animator$Configure$2;\nHSPLandroidx/compose/animation/graphics/vector/Animator$Configure$2;-><init>(Landroidx/compose/animation/graphics/vector/Animator;Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/graphics/vector/StateVectorConfig;II)V\nPLandroidx/compose/animation/graphics/vector/Animator$Configure$2;-><init>(Landroidx/compose/animation/graphics/vector/Animator;Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/graphics/vector/StateVectorConfig;II)V\nHSPLandroidx/compose/animation/graphics/vector/Animator$Configure$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/vector/Animator$Configure$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/AnimatorSet;\nHSPLandroidx/compose/animation/graphics/vector/AnimatorSet;-><init>(Ljava/util/ArrayList;I)V\nHPLandroidx/compose/animation/graphics/vector/AnimatorSet;-><init>(Ljava/util/ArrayList;I)V\nHSPLandroidx/compose/animation/graphics/vector/AnimatorSet;->collectPropertyValues(IILjava/util/LinkedHashMap;)V\nHPLandroidx/compose/animation/graphics/vector/AnimatorSet;->collectPropertyValues(IILjava/util/LinkedHashMap;)V\nHSPLandroidx/compose/animation/graphics/vector/AnimatorSet;->getTotalDuration()I\nPLandroidx/compose/animation/graphics/vector/AnimatorSet;->getTotalDuration()I\nLandroidx/compose/animation/graphics/vector/CombinedSpec;\nHSPLandroidx/compose/animation/graphics/vector/CombinedSpec;-><init>(Ljava/util/ArrayList;)V\nPLandroidx/compose/animation/graphics/vector/CombinedSpec;-><init>(Ljava/util/ArrayList;)V\nHSPLandroidx/compose/animation/graphics/vector/CombinedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nPLandroidx/compose/animation/graphics/vector/CombinedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nHSPLandroidx/compose/animation/graphics/vector/CombinedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nHPLandroidx/compose/animation/graphics/vector/CombinedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nLandroidx/compose/animation/graphics/vector/FloatPropertyValues;\nHSPLandroidx/compose/animation/graphics/vector/FloatPropertyValues;-><init>()V\nPLandroidx/compose/animation/graphics/vector/FloatPropertyValues;-><init>()V\nHSPLandroidx/compose/animation/graphics/vector/FloatPropertyValues;->createState(Landroidx/compose/animation/core/Transition;Ljava/lang/String;ILandroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State;\nHPLandroidx/compose/animation/graphics/vector/FloatPropertyValues;->createState(Landroidx/compose/animation/core/Transition;Ljava/lang/String;ILandroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State;\nLandroidx/compose/animation/graphics/vector/Keyframe;\nHSPLandroidx/compose/animation/graphics/vector/Keyframe;-><init>(FLjava/lang/Object;Landroidx/compose/animation/core/Easing;)V\nHPLandroidx/compose/animation/graphics/vector/Keyframe;-><init>(FLjava/lang/Object;Landroidx/compose/animation/core/Easing;)V\nHSPLandroidx/compose/animation/graphics/vector/Keyframe;->getFraction()F\nPLandroidx/compose/animation/graphics/vector/Keyframe;->getFraction()F\nHSPLandroidx/compose/animation/graphics/vector/Keyframe;->getInterpolator()Landroidx/compose/animation/core/Easing;\nPLandroidx/compose/animation/graphics/vector/Keyframe;->getInterpolator()Landroidx/compose/animation/core/Easing;\nHSPLandroidx/compose/animation/graphics/vector/Keyframe;->getValue()Ljava/lang/Object;\nPLandroidx/compose/animation/graphics/vector/Keyframe;->getValue()Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/ObjectAnimator;\nHSPLandroidx/compose/animation/graphics/vector/ObjectAnimator;-><init>(IIIILjava/util/ArrayList;)V\nPLandroidx/compose/animation/graphics/vector/ObjectAnimator;-><init>(IIIILjava/util/ArrayList;)V\nHSPLandroidx/compose/animation/graphics/vector/ObjectAnimator;->collectPropertyValues(IILjava/util/LinkedHashMap;)V\nHPLandroidx/compose/animation/graphics/vector/ObjectAnimator;->collectPropertyValues(IILjava/util/LinkedHashMap;)V\nHSPLandroidx/compose/animation/graphics/vector/ObjectAnimator;->getTotalDuration()I\nPLandroidx/compose/animation/graphics/vector/ObjectAnimator;->getTotalDuration()I\nLandroidx/compose/animation/graphics/vector/PathPropertyValues;\nHSPLandroidx/compose/animation/graphics/vector/PathPropertyValues;-><init>()V\nPLandroidx/compose/animation/graphics/vector/PathPropertyValues;-><init>()V\nHSPLandroidx/compose/animation/graphics/vector/PathPropertyValues;->createState(Landroidx/compose/animation/core/Transition;Ljava/lang/String;ILandroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State;\nHPLandroidx/compose/animation/graphics/vector/PathPropertyValues;->createState(Landroidx/compose/animation/core/Transition;Ljava/lang/String;ILandroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State;\nLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$1$1;\nHSPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$1$1;-><init>(Landroidx/compose/animation/graphics/vector/PathPropertyValues;Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V\nPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$1$1;-><init>(Landroidx/compose/animation/graphics/vector/PathPropertyValues;Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V\nHSPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$1$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$timeState$1;\nHSPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$timeState$1;-><init>(I)V\nPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$timeState$1;-><init>(I)V\nHSPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$timeState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/vector/PathPropertyValues$createState$timeState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/PropertyValues;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValues;-><init>()V\nPLandroidx/compose/animation/graphics/vector/PropertyValues;-><init>()V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValues;->getTimestamps()Ljava/util/ArrayList;\nPLandroidx/compose/animation/graphics/vector/PropertyValues;->getTimestamps()Ljava/util/ArrayList;\nLandroidx/compose/animation/graphics/vector/PropertyValues$createAnimationSpec$1;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValues$createAnimationSpec$1;-><init>(Landroidx/compose/animation/graphics/vector/PropertyValues;I)V\nPLandroidx/compose/animation/graphics/vector/PropertyValues$createAnimationSpec$1;-><init>(Landroidx/compose/animation/graphics/vector/PropertyValues;I)V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValues$createAnimationSpec$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/vector/PropertyValues$createAnimationSpec$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolder;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolder;-><init>()V\nHPLandroidx/compose/animation/graphics/vector/PropertyValuesHolder;-><init>()V\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;-><init>(Ljava/lang/String;)V\nPLandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;-><init>(Ljava/lang/String;)V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;->getPropertyName()Ljava/lang/String;\nPLandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;->getPropertyName()Ljava/lang/String;\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolder2D;\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor;\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;-><init>(ILandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;I)V\nHPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;-><init>(ILandroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;I)V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;->invoke(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V\nHPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;->invoke(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderColor$asKeyframeSpec$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolderFloat;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderFloat;-><init>(Ljava/lang/String;Ljava/util/ArrayList;)V\nPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderFloat;-><init>(Ljava/lang/String;Ljava/util/ArrayList;)V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderFloat;->getAnimatorKeyframes()Ljava/util/List;\nPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderFloat;->getAnimatorKeyframes()Ljava/util/List;\nLandroidx/compose/animation/graphics/vector/PropertyValuesHolderPath;\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderPath;-><init>(Ljava/lang/String;Ljava/util/ArrayList;)V\nPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderPath;-><init>(Ljava/lang/String;Ljava/util/ArrayList;)V\nHSPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderPath;->interpolate(F)Ljava/util/ArrayList;\nHPLandroidx/compose/animation/graphics/vector/PropertyValuesHolderPath;->interpolate(F)Ljava/util/ArrayList;\nLandroidx/compose/animation/graphics/vector/ReversedSpec;\nHSPLandroidx/compose/animation/graphics/vector/ReversedSpec;-><init>(Landroidx/compose/animation/core/FiniteAnimationSpec;I)V\nHPLandroidx/compose/animation/graphics/vector/ReversedSpec;-><init>(Landroidx/compose/animation/core/FiniteAnimationSpec;I)V\nHSPLandroidx/compose/animation/graphics/vector/ReversedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nPLandroidx/compose/animation/graphics/vector/ReversedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;\nHSPLandroidx/compose/animation/graphics/vector/ReversedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nPLandroidx/compose/animation/graphics/vector/ReversedSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;\nLandroidx/compose/animation/graphics/vector/StateVectorConfig;\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;-><init>()V\nPLandroidx/compose/animation/graphics/vector/StateVectorConfig;-><init>()V\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->getOrDefault(Landroidx/compose/ui/graphics/vector/PathNodeKt;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->getOrDefault(Landroidx/compose/ui/graphics/vector/PathNodeKt;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setPathDataState(Landroidx/compose/runtime/State;)V\nPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setPathDataState(Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setRotationState(Landroidx/compose/runtime/State;)V\nPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setRotationState(Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setScaleXState(Landroidx/compose/runtime/State;)V\nPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setScaleXState(Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setScaleYState(Landroidx/compose/runtime/State;)V\nPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setScaleYState(Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setTranslateXState(Landroidx/compose/runtime/State;)V\nPLandroidx/compose/animation/graphics/vector/StateVectorConfig;->setTranslateXState(Landroidx/compose/runtime/State;)V\nLandroidx/compose/animation/graphics/vector/Timestamp;\nHSPLandroidx/compose/animation/graphics/vector/Timestamp;-><init>(IIIILandroidx/compose/animation/graphics/vector/PropertyValuesHolder;)V\nPLandroidx/compose/animation/graphics/vector/Timestamp;-><init>(IIIILandroidx/compose/animation/graphics/vector/PropertyValuesHolder;)V\nHSPLandroidx/compose/animation/graphics/vector/Timestamp;->asAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nHPLandroidx/compose/animation/graphics/vector/Timestamp;->asAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;\nHSPLandroidx/compose/animation/graphics/vector/Timestamp;->getDurationMillis()I\nPLandroidx/compose/animation/graphics/vector/Timestamp;->getDurationMillis()I\nHSPLandroidx/compose/animation/graphics/vector/Timestamp;->getHolder()Landroidx/compose/animation/graphics/vector/PropertyValuesHolder;\nPLandroidx/compose/animation/graphics/vector/Timestamp;->getHolder()Landroidx/compose/animation/graphics/vector/PropertyValuesHolder;\nHSPLandroidx/compose/animation/graphics/vector/Timestamp;->getRepeatCount()I\nPLandroidx/compose/animation/graphics/vector/Timestamp;->getRepeatCount()I\nHSPLandroidx/compose/animation/graphics/vector/Timestamp;->getTimeMillis()I\nPLandroidx/compose/animation/graphics/vector/Timestamp;->getTimeMillis()I\nLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;\nHSPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;-><init>(Ljava/util/ArrayList;)V\nPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;-><init>(Ljava/util/ArrayList;)V\nHSPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->chooseAnimation(J)Lkotlin/Pair;\nHPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->chooseAnimation(J)Lkotlin/Pair;\nHSPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHSPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/graphics/vector/VectorizedCombinedSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;\nHSPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;-><init>(Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;J)V\nPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;-><init>(Landroidx/compose/animation/core/VectorizedFiniteAnimationSpec;J)V\nHSPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;->getDurationNanos(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)J\nHSPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;->getValueFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHSPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nHPLandroidx/compose/animation/graphics/vector/VectorizedReversedSpec;->getVelocityFromNanos(JLandroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;\nLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;-><clinit>()V\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getKeyframe(Landroid/content/res/TypedArray;FLandroidx/compose/animation/core/Easing;Landroidx/compose/animation/graphics/vector/compat/ValueType;I)Landroidx/compose/animation/graphics/vector/Keyframe;\nHPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getKeyframe(Landroid/content/res/TypedArray;FLandroidx/compose/animation/core/Easing;Landroidx/compose/animation/graphics/vector/compat/ValueType;I)Landroidx/compose/animation/graphics/vector/Keyframe;\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getPropertyValuesHolder1D(Landroid/content/res/TypedArray;Ljava/lang/String;IIILandroidx/compose/animation/core/Easing;Lkotlin/jvm/functions/Function2;)Landroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;\nHPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getPropertyValuesHolder1D(Landroid/content/res/TypedArray;Ljava/lang/String;IIILandroidx/compose/animation/core/Easing;Lkotlin/jvm/functions/Function2;)Landroidx/compose/animation/graphics/vector/PropertyValuesHolder1D;\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATED_VECTOR_DRAWABLE()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATED_VECTOR_DRAWABLE()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATED_VECTOR_DRAWABLE_TARGET()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATED_VECTOR_DRAWABLE_TARGET()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATOR()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATOR()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATOR_SET()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_ANIMATOR_SET()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_DECELERATE_INTERPOLATOR()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_DECELERATE_INTERPOLATOR()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_PATH_INTERPOLATOR()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_PATH_INTERPOLATOR()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_PROPERTY_ANIMATOR()[I\nPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_PROPERTY_ANIMATOR()[I\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->inferValueType(I[I)Landroidx/compose/animation/graphics/vector/compat/ValueType;\nHPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->inferValueType(I[I)Landroidx/compose/animation/graphics/vector/compat/ValueType;\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->parseAnimatorSet(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroidx/compose/animation/graphics/vector/AnimatorSet;\nHPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->parseAnimatorSet(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroidx/compose/animation/graphics/vector/AnimatorSet;\nHSPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->parseObjectAnimator(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroidx/compose/animation/graphics/vector/ObjectAnimator;\nHPLandroidx/compose/animation/graphics/vector/compat/AndroidVectorResources;->parseObjectAnimator(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroidx/compose/animation/graphics/vector/ObjectAnimator;\nLandroidx/compose/animation/graphics/vector/compat/ValueType;\nHSPLandroidx/compose/animation/graphics/vector/compat/ValueType;-><clinit>()V\nPLandroidx/compose/animation/graphics/vector/compat/ValueType;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/vector/compat/ValueType;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/animation/graphics/vector/compat/ValueType;-><init>(Ljava/lang/String;I)V\nLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;\nHSPLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;-><clinit>()V\nPLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;-><clinit>()V\nHSPLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;-><init>()V\nPLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;-><init>()V\nHSPLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/animation/graphics/vector/compat/XmlAnimatorParser_androidKt$getPropertyValuesHolder1D$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/AbstractClickableNode;\nHSPLandroidx/compose/foundation/AbstractClickableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/AbstractClickableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/foundation/AbstractClickableNode;->disposeInteractionSource()V\nHPLandroidx/compose/foundation/AbstractClickableNode;->disposeInteractionSource()V\nHSPLandroidx/compose/foundation/AbstractClickableNode;->getInteractionData()Landroidx/compose/foundation/AbstractClickableNode$InteractionData;\nPLandroidx/compose/foundation/AbstractClickableNode;->getInteractionData()Landroidx/compose/foundation/AbstractClickableNode$InteractionData;\nHSPLandroidx/compose/foundation/AbstractClickableNode;->onDetach()V\nHPLandroidx/compose/foundation/AbstractClickableNode;->onDetach()V\nHSPLandroidx/compose/foundation/AbstractClickableNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nPLandroidx/compose/foundation/AbstractClickableNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nHSPLandroidx/compose/foundation/AbstractClickableNode;->updateCommon-XHw0xAI(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/AbstractClickableNode;->updateCommon-XHw0xAI(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLkotlin/jvm/functions/Function0;)V\nLandroidx/compose/foundation/AbstractClickableNode$InteractionData;\nHSPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;-><init>()V\nHPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;-><init>()V\nHSPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->getCurrentKeyPressInteractions()Ljava/util/LinkedHashMap;\nPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->getCurrentKeyPressInteractions()Ljava/util/LinkedHashMap;\nHSPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->getPressInteraction()Landroidx/compose/foundation/interaction/PressInteraction$Press;\nPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->getPressInteraction()Landroidx/compose/foundation/interaction/PressInteraction$Press;\nHSPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->setCentreOffset-k-4lQ0M(J)V\nPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->setCentreOffset-k-4lQ0M(J)V\nHSPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->setPressInteraction(Landroidx/compose/foundation/interaction/PressInteraction$Press;)V\nPLandroidx/compose/foundation/AbstractClickableNode$InteractionData;->setPressInteraction(Landroidx/compose/foundation/interaction/PressInteraction$Press;)V\nLandroidx/compose/foundation/AbstractClickablePointerInputNode;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;-><init>(ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function0;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;)V\nHPLandroidx/compose/foundation/AbstractClickablePointerInputNode;-><init>(ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function0;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;)V\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->getEnabled()Z\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->getEnabled()Z\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->getInteractionData()Landroidx/compose/foundation/AbstractClickableNode$InteractionData;\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->getInteractionData()Landroidx/compose/foundation/AbstractClickableNode$InteractionData;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->getOnClick()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->getOnClick()Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->handlePressInteraction-d-4ec7I(Landroidx/compose/foundation/gestures/PressGestureScope;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->handlePressInteraction-d-4ec7I(Landroidx/compose/foundation/gestures/PressGestureScope;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->setEnabled(Z)V\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->setEnabled(Z)V\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->setInteractionSource(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->setInteractionSource(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->setOnClick(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode;->setOnClick(Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;-><init>(Landroidx/compose/foundation/AbstractClickablePointerInputNode;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;-><init>(Landroidx/compose/foundation/AbstractClickablePointerInputNode;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/AbstractClickablePointerInputNode$pointerInputNode$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;-><init>(Landroid/content/Context;Landroidx/compose/foundation/OverscrollConfiguration;)V\nHPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;-><init>(Landroid/content/Context;Landroidx/compose/foundation/OverscrollConfiguration;)V\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$animateToRelease(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$animateToRelease(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)V\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getBottomEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getBottomEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getBottomEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getBottomEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getContainerSize$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)J\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getContainerSize$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)J\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getLeftEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getLeftEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getLeftEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getLeftEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getRightEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getRightEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getRightEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getRightEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getTopEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getTopEffect$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getTopEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$getTopEffectNegation$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$invalidateOverscroll(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$invalidateOverscroll(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;)V\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$setContainerSize$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;J)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$setContainerSize$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;J)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$setPointerId$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Landroidx/compose/ui/input/pointer/PointerId;)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->access$setPointerPosition$p(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Landroidx/compose/ui/geometry/Offset;)V\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->animateToRelease()V\nHPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->animateToRelease()V\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->drawOverscroll(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->drawOverscroll(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->getEffectModifier()Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->getEffectModifier()Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->invalidateOverscroll()V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->invalidateOverscroll()V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;->isInProgress()Z\nLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1;\nHSPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1;-><init>(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1;-><init>(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1$1;-><init>(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect$effectModifier$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/AndroidOverscrollKt;\nHSPLandroidx/compose/foundation/AndroidOverscrollKt;-><clinit>()V\nPLandroidx/compose/foundation/AndroidOverscrollKt;-><clinit>()V\nHSPLandroidx/compose/foundation/AndroidOverscrollKt;->access$getStretchOverscrollNonClippingLayer$p()Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/AndroidOverscrollKt;->access$getStretchOverscrollNonClippingLayer$p()Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/BackgroundElement;\nHSPLandroidx/compose/foundation/BackgroundElement;-><init>(JLandroidx/compose/ui/graphics/ShaderBrush;FLandroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function1;I)V\nHPLandroidx/compose/foundation/BackgroundElement;-><init>(JLandroidx/compose/ui/graphics/ShaderBrush;FLandroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function1;I)V\nHSPLandroidx/compose/foundation/BackgroundElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/BackgroundElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/BackgroundElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/BackgroundElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/BackgroundElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/foundation/BackgroundElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/foundation/BackgroundNode;\nHSPLandroidx/compose/foundation/BackgroundNode;-><init>(JLandroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Shape;)V\nHPLandroidx/compose/foundation/BackgroundNode;-><init>(JLandroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Shape;)V\nHSPLandroidx/compose/foundation/BackgroundNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/foundation/BackgroundNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/foundation/BackgroundNode;->setAlpha(F)V\nPLandroidx/compose/foundation/BackgroundNode;->setAlpha(F)V\nHSPLandroidx/compose/foundation/BackgroundNode;->setBrush(Landroidx/compose/ui/graphics/Brush;)V\nPLandroidx/compose/foundation/BackgroundNode;->setBrush(Landroidx/compose/ui/graphics/Brush;)V\nHSPLandroidx/compose/foundation/BackgroundNode;->setColor-8_81llA(J)V\nPLandroidx/compose/foundation/BackgroundNode;->setColor-8_81llA(J)V\nHSPLandroidx/compose/foundation/BackgroundNode;->setShape(Landroidx/compose/ui/graphics/Shape;)V\nPLandroidx/compose/foundation/BackgroundNode;->setShape(Landroidx/compose/ui/graphics/Shape;)V\nLandroidx/compose/foundation/BorderModifierNode;\nHSPLandroidx/compose/foundation/BorderModifierNode;-><init>(FLandroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Shape;)V\nPLandroidx/compose/foundation/BorderModifierNode;-><init>(FLandroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Shape;)V\nHSPLandroidx/compose/foundation/BorderModifierNode;->access$drawRoundRectBorder-JqoCqck(Landroidx/compose/foundation/BorderModifierNode;Landroidx/compose/ui/draw/CacheDrawScope;Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Outline$Rounded;JJZF)Landroidx/compose/ui/draw/DrawResult;\nPLandroidx/compose/foundation/BorderModifierNode;->access$drawRoundRectBorder-JqoCqck(Landroidx/compose/foundation/BorderModifierNode;Landroidx/compose/ui/draw/CacheDrawScope;Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Outline$Rounded;JJZF)Landroidx/compose/ui/draw/DrawResult;\nHSPLandroidx/compose/foundation/BorderModifierNode;->getBrush()Landroidx/compose/ui/graphics/Brush;\nPLandroidx/compose/foundation/BorderModifierNode;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/foundation/BorderModifierNode;->getShape()Landroidx/compose/ui/graphics/Shape;\nPLandroidx/compose/foundation/BorderModifierNode;->getShape()Landroidx/compose/ui/graphics/Shape;\nHSPLandroidx/compose/foundation/BorderModifierNode;->getWidth-D9Ej5fM()F\nPLandroidx/compose/foundation/BorderModifierNode;->getWidth-D9Ej5fM()F\nLandroidx/compose/foundation/BorderModifierNode$drawRoundRectBorder$1;\nHSPLandroidx/compose/foundation/BorderModifierNode$drawRoundRectBorder$1;-><init>(ZLandroidx/compose/ui/graphics/Brush;JFFJJLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nPLandroidx/compose/foundation/BorderModifierNode$drawRoundRectBorder$1;-><init>(ZLandroidx/compose/ui/graphics/Brush;JFFJJLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nHSPLandroidx/compose/foundation/BorderModifierNode$drawRoundRectBorder$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/BorderModifierNode$drawRoundRectBorder$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/BorderModifierNodeElement;\nHSPLandroidx/compose/foundation/BorderModifierNodeElement;-><init>(FLandroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Shape;)V\nPLandroidx/compose/foundation/BorderModifierNodeElement;-><init>(FLandroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Shape;)V\nHSPLandroidx/compose/foundation/BorderModifierNodeElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/BorderModifierNodeElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/foundation/ClickableElement;\nHSPLandroidx/compose/foundation/ClickableElement;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/ClickableElement;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/foundation/ClickableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/ClickableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/ClickableElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/ClickableElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/ClickableElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/foundation/ClickableElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/foundation/ClickableKt$clickable$2;\nHSPLandroidx/compose/foundation/ClickableKt$clickable$2;-><init>(ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/ClickableKt$clickable$2;-><init>(ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/foundation/ClickableKt$clickable$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ClickableKt$clickable$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;-><init>(Landroidx/compose/foundation/gestures/PressGestureScope;JLandroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;-><init>(Landroidx/compose/foundation/gestures/PressGestureScope;JLandroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;-><init>(Lkotlin/jvm/functions/Function0;JLandroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;-><init>(Lkotlin/jvm/functions/Function0;JLandroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ClickableKt$handlePressInteraction$2$delayJob$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ClickableNode;\nHSPLandroidx/compose/foundation/ClickableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/ClickableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/foundation/ClickableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;I)V\nHPLandroidx/compose/foundation/ClickableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;I)V\nHSPLandroidx/compose/foundation/ClickableNode;->getClickablePointerInputNode()Landroidx/compose/foundation/AbstractClickablePointerInputNode;\nPLandroidx/compose/foundation/ClickableNode;->getClickablePointerInputNode()Landroidx/compose/foundation/AbstractClickablePointerInputNode;\nHSPLandroidx/compose/foundation/ClickableNode;->update-XHw0xAI(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/foundation/ClickableNode;->update-XHw0xAI(Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/foundation/ClickablePointerInputNode;\nHSPLandroidx/compose/foundation/ClickablePointerInputNode;-><init>(ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function0;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;)V\nHPLandroidx/compose/foundation/ClickablePointerInputNode;-><init>(ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function0;Landroidx/compose/foundation/AbstractClickableNode$InteractionData;)V\nHSPLandroidx/compose/foundation/ClickablePointerInputNode;->pointerInput(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/foundation/ClickablePointerInputNode;->pointerInput(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;\nHSPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;-><init>(Landroidx/compose/foundation/AbstractClickablePointerInputNode;Lkotlin/coroutines/Continuation;I)V\nHPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;-><init>(Landroidx/compose/foundation/AbstractClickablePointerInputNode;Lkotlin/coroutines/Continuation;I)V\nHSPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;->invoke-d-4ec7I(Landroidx/compose/foundation/gestures/PressGestureScope;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;->invoke-d-4ec7I(Landroidx/compose/foundation/gestures/PressGestureScope;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ClickablePointerInputNode$pointerInput$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ClickableSemanticsNode;\nHSPLandroidx/compose/foundation/ClickableSemanticsNode;-><init>(ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/ClickableSemanticsNode;-><init>(ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/foundation/ClickableSemanticsNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHPLandroidx/compose/foundation/ClickableSemanticsNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHSPLandroidx/compose/foundation/ClickableSemanticsNode;->getShouldMergeDescendantSemantics()Z\nHPLandroidx/compose/foundation/ClickableSemanticsNode;->getShouldMergeDescendantSemantics()Z\nHSPLandroidx/compose/foundation/ClickableSemanticsNode;->update-UMe6uN4(ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/foundation/ClickableSemanticsNode;->update-UMe6uN4(ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/foundation/ClickableSemanticsNode$applySemantics$1;\nHSPLandroidx/compose/foundation/ClickableSemanticsNode$applySemantics$1;-><init>(Landroidx/compose/foundation/ClickableSemanticsNode;I)V\nHPLandroidx/compose/foundation/ClickableSemanticsNode$applySemantics$1;-><init>(Landroidx/compose/foundation/ClickableSemanticsNode;I)V\nLandroidx/compose/foundation/Clickable_androidKt;\nHSPLandroidx/compose/foundation/Clickable_androidKt;-><clinit>()V\nPLandroidx/compose/foundation/Clickable_androidKt;-><clinit>()V\nPLandroidx/compose/foundation/Clickable_androidKt;->getTapIndicationDelay()J\nLandroidx/compose/foundation/ClipScrollableContainerKt;\nHSPLandroidx/compose/foundation/ClipScrollableContainerKt;-><clinit>()V\nPLandroidx/compose/foundation/ClipScrollableContainerKt;-><clinit>()V\nHSPLandroidx/compose/foundation/ClipScrollableContainerKt;->clipScrollableContainer(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/gestures/Orientation;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/ClipScrollableContainerKt;->clipScrollableContainer(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/gestures/Orientation;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ClipScrollableContainerKt;->getMaxSupportedElevation()F\nPLandroidx/compose/foundation/ClipScrollableContainerKt;->getMaxSupportedElevation()F\nLandroidx/compose/foundation/DrawOverscrollModifier;\nHSPLandroidx/compose/foundation/DrawOverscrollModifier;-><init>(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/DrawOverscrollModifier;-><init>(Landroidx/compose/foundation/AndroidEdgeEffectOverscrollEffect;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/DrawOverscrollModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/foundation/DrawOverscrollModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/foundation/DrawOverscrollModifier;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/DrawOverscrollModifier;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/FocusableElement;\nHSPLandroidx/compose/foundation/FocusableElement;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/FocusableElement;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHSPLandroidx/compose/foundation/FocusableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/FocusableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/FocusableElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/FocusableElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/FocusableInNonTouchMode;\nHSPLandroidx/compose/foundation/FocusableInNonTouchMode;-><init>()V\nHPLandroidx/compose/foundation/FocusableInNonTouchMode;-><init>()V\nHSPLandroidx/compose/foundation/FocusableInNonTouchMode;->applyFocusProperties(Landroidx/compose/ui/focus/FocusProperties;)V\nPLandroidx/compose/foundation/FocusableInNonTouchMode;->applyFocusProperties(Landroidx/compose/ui/focus/FocusProperties;)V\nLandroidx/compose/foundation/FocusableInteractionNode;\nHSPLandroidx/compose/foundation/FocusableInteractionNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/FocusableInteractionNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHSPLandroidx/compose/foundation/FocusableInteractionNode;->setFocus(Z)V\nHPLandroidx/compose/foundation/FocusableInteractionNode;->setFocus(Z)V\nLandroidx/compose/foundation/FocusableKt;\nHSPLandroidx/compose/foundation/FocusableKt;-><clinit>()V\nPLandroidx/compose/foundation/FocusableKt;-><clinit>()V\nHSPLandroidx/compose/foundation/FocusableKt;->focusable(Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/ui/Modifier;Z)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/FocusableKt;->focusable(Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/ui/Modifier;Z)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/FocusableKt;->focusableInNonTouchMode(Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/ui/Modifier;Z)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/FocusableKt;->focusableInNonTouchMode(Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/ui/Modifier;Z)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;\nHSPLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;-><init>()V\nPLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;-><init>()V\nHSPLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/FocusableKt$FocusableInNonTouchModeElement$1;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/FocusableKt$focusableInNonTouchMode$1;\nHSPLandroidx/compose/foundation/FocusableKt$focusableInNonTouchMode$1;-><init>(ZLandroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/FocusableKt$focusableInNonTouchMode$1;-><init>(ZLandroidx/compose/foundation/interaction/MutableInteractionSource;)V\nLandroidx/compose/foundation/FocusableNode;\nHSPLandroidx/compose/foundation/FocusableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/FocusableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHSPLandroidx/compose/foundation/FocusableNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHPLandroidx/compose/foundation/FocusableNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHSPLandroidx/compose/foundation/FocusableNode;->onFocusEvent(Landroidx/compose/ui/focus/FocusStateImpl;)V\nHPLandroidx/compose/foundation/FocusableNode;->onFocusEvent(Landroidx/compose/ui/focus/FocusStateImpl;)V\nHSPLandroidx/compose/foundation/FocusableNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nPLandroidx/compose/foundation/FocusableNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/foundation/FocusableNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/foundation/FocusableNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nLandroidx/compose/foundation/FocusablePinnableContainerNode;\nHSPLandroidx/compose/foundation/FocusablePinnableContainerNode;-><init>()V\nHPLandroidx/compose/foundation/FocusablePinnableContainerNode;-><init>()V\nHSPLandroidx/compose/foundation/FocusablePinnableContainerNode;->setFocus(Z)V\nHPLandroidx/compose/foundation/FocusablePinnableContainerNode;->setFocus(Z)V\nLandroidx/compose/foundation/FocusableSemanticsNode;\nHSPLandroidx/compose/foundation/FocusableSemanticsNode;-><init>()V\nHPLandroidx/compose/foundation/FocusableSemanticsNode;-><init>()V\nHSPLandroidx/compose/foundation/FocusableSemanticsNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHPLandroidx/compose/foundation/FocusableSemanticsNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHSPLandroidx/compose/foundation/FocusableSemanticsNode;->setFocus(Z)V\nPLandroidx/compose/foundation/FocusableSemanticsNode;->setFocus(Z)V\nLandroidx/compose/foundation/FocusedBoundsKt;\nHSPLandroidx/compose/foundation/FocusedBoundsKt;-><clinit>()V\nPLandroidx/compose/foundation/FocusedBoundsKt;-><clinit>()V\nHSPLandroidx/compose/foundation/FocusedBoundsKt;->getModifierLocalFocusedBoundsObserver()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nPLandroidx/compose/foundation/FocusedBoundsKt;->getModifierLocalFocusedBoundsObserver()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nLandroidx/compose/foundation/FocusedBoundsNode;\nHSPLandroidx/compose/foundation/FocusedBoundsNode;-><init>()V\nHPLandroidx/compose/foundation/FocusedBoundsNode;-><init>()V\nHSPLandroidx/compose/foundation/FocusedBoundsNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/foundation/FocusedBoundsNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/foundation/FocusedBoundsNode;->setFocus(Z)V\nHPLandroidx/compose/foundation/FocusedBoundsNode;->setFocus(Z)V\nLandroidx/compose/foundation/FocusedBoundsObserverNode;\nHSPLandroidx/compose/foundation/FocusedBoundsObserverNode;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/FocusedBoundsObserverNode;-><init>(Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/foundation/GlowEdgeEffectCompat;\nHSPLandroidx/compose/foundation/GlowEdgeEffectCompat;-><init>(Landroid/content/Context;)V\nHPLandroidx/compose/foundation/GlowEdgeEffectCompat;-><init>(Landroid/content/Context;)V\nHSPLandroidx/compose/foundation/GlowEdgeEffectCompat;->onRelease()V\nHPLandroidx/compose/foundation/GlowEdgeEffectCompat;->onRelease()V\nLandroidx/compose/foundation/HoverableElement;\nHSPLandroidx/compose/foundation/HoverableElement;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/HoverableElement;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHSPLandroidx/compose/foundation/HoverableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/HoverableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/HoverableElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/HoverableElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/HoverableNode;\nHSPLandroidx/compose/foundation/HoverableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/HoverableNode;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHSPLandroidx/compose/foundation/HoverableNode;->onDetach()V\nHPLandroidx/compose/foundation/HoverableNode;->onDetach()V\nHSPLandroidx/compose/foundation/HoverableNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nHPLandroidx/compose/foundation/HoverableNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nHSPLandroidx/compose/foundation/HoverableNode;->tryEmitExit()V\nPLandroidx/compose/foundation/HoverableNode;->tryEmitExit()V\nLandroidx/compose/foundation/ImageKt;\nHSPLandroidx/compose/foundation/ImageKt;->Canvas(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/ImageKt;->Canvas(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/ImageKt;->access$shrink-Kibmq7A(JF)J\nPLandroidx/compose/foundation/ImageKt;->access$shrink-Kibmq7A(JF)J\nHSPLandroidx/compose/foundation/ImageKt;->background-bw27NRU$default(Landroidx/compose/ui/Modifier;J)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/ImageKt;->background-bw27NRU$default(Landroidx/compose/ui/Modifier;J)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/ImageKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->checkScrollableContainerConstraints-K40F9xA(JLandroidx/compose/foundation/gestures/Orientation;)V\nPLandroidx/compose/foundation/ImageKt;->checkScrollableContainerConstraints-K40F9xA(JLandroidx/compose/foundation/gestures/Orientation;)V\nHSPLandroidx/compose/foundation/ImageKt;->clickable-O2vRcR0$default(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLandroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;I)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/ImageKt;->clickable-O2vRcR0$default(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLandroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;I)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->clickable-O2vRcR0(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/ImageKt;->clickable-O2vRcR0(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;I)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/ImageKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;I)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->create(Landroid/content/Context;)Landroid/widget/EdgeEffect;\nHPLandroidx/compose/foundation/ImageKt;->create(Landroid/content/Context;)Landroid/widget/EdgeEffect;\nHSPLandroidx/compose/foundation/ImageKt;->getDistanceCompat(Landroid/widget/EdgeEffect;)F\nPLandroidx/compose/foundation/ImageKt;->getDistanceCompat(Landroid/widget/EdgeEffect;)F\nHSPLandroidx/compose/foundation/ImageKt;->hoverable(Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/ui/Modifier;Z)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/ImageKt;->hoverable(Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/ui/Modifier;Z)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->isSystemInDarkTheme(Landroidx/compose/runtime/Composer;)Z\nPLandroidx/compose/foundation/ImageKt;->isSystemInDarkTheme(Landroidx/compose/runtime/Composer;)Z\nHSPLandroidx/compose/foundation/ImageKt;->progressSemantics(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/ImageKt;->progressSemantics(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/ImageKt;->rememberScrollState(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/ScrollState;\nHPLandroidx/compose/foundation/ImageKt;->rememberScrollState(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/ScrollState;\nHSPLandroidx/compose/foundation/ImageKt;->shrink-Kibmq7A(JF)J\nPLandroidx/compose/foundation/ImageKt;->shrink-Kibmq7A(JF)J\nHSPLandroidx/compose/foundation/ImageKt;->verticalScroll$default(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/ScrollState;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/ImageKt;->verticalScroll$default(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/ScrollState;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;\nHSPLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;->invoke()Ljava/lang/Boolean;\nHPLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;->invoke()Ljava/lang/Boolean;\nHSPLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/ImageKt$Image$$inlined$Layout$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/ImageKt$Image$semantics$1$1;\nHSPLandroidx/compose/foundation/ImageKt$Image$semantics$1$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/ImageKt$Image$semantics$1$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/ImageKt$Image$semantics$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ImageKt$Image$semantics$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/Indication;\nLandroidx/compose/foundation/IndicationInstance;\nLandroidx/compose/foundation/IndicationKt;\nHSPLandroidx/compose/foundation/IndicationKt;-><clinit>()V\nPLandroidx/compose/foundation/IndicationKt;-><clinit>()V\nHSPLandroidx/compose/foundation/IndicationKt;->getLocalIndication()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/foundation/IndicationKt;->getLocalIndication()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/foundation/IndicationKt;->indication(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/foundation/Indication;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/IndicationKt;->indication(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/foundation/Indication;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/IndicationKt$LocalIndication$1;\nHSPLandroidx/compose/foundation/IndicationKt$LocalIndication$1;-><clinit>()V\nPLandroidx/compose/foundation/IndicationKt$LocalIndication$1;-><clinit>()V\nHSPLandroidx/compose/foundation/IndicationKt$LocalIndication$1;-><init>(I)V\nPLandroidx/compose/foundation/IndicationKt$LocalIndication$1;-><init>(I)V\nHSPLandroidx/compose/foundation/IndicationKt$LocalIndication$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/IndicationKt$LocalIndication$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/IndicationKt$indication$2;\nHSPLandroidx/compose/foundation/IndicationKt$indication$2;-><init>(Landroidx/compose/foundation/Indication;Landroidx/compose/foundation/interaction/InteractionSource;)V\nHPLandroidx/compose/foundation/IndicationKt$indication$2;-><init>(Landroidx/compose/foundation/Indication;Landroidx/compose/foundation/interaction/InteractionSource;)V\nHSPLandroidx/compose/foundation/IndicationKt$indication$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/IndicationKt$indication$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/IndicationModifier;\nHSPLandroidx/compose/foundation/IndicationModifier;-><init>(Landroidx/compose/foundation/IndicationInstance;)V\nPLandroidx/compose/foundation/IndicationModifier;-><init>(Landroidx/compose/foundation/IndicationInstance;)V\nHSPLandroidx/compose/foundation/IndicationModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/foundation/IndicationModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nLandroidx/compose/foundation/MagnifierNode$draw$1$1;\nHSPLandroidx/compose/foundation/MagnifierNode$draw$1$1;-><clinit>()V\nPLandroidx/compose/foundation/MagnifierNode$draw$1$1;-><clinit>()V\nHSPLandroidx/compose/foundation/MagnifierNode$draw$1$1;-><init>(I)V\nPLandroidx/compose/foundation/MagnifierNode$draw$1$1;-><init>(I)V\nLandroidx/compose/foundation/MutatorMutex;\nHSPLandroidx/compose/foundation/MutatorMutex;-><init>()V\nHPLandroidx/compose/foundation/MutatorMutex;-><init>()V\nLandroidx/compose/foundation/NoIndication;\nHSPLandroidx/compose/foundation/NoIndication;-><clinit>()V\nPLandroidx/compose/foundation/NoIndication;-><clinit>()V\nHSPLandroidx/compose/foundation/NoIndication;-><init>()V\nPLandroidx/compose/foundation/NoIndication;-><init>()V\nHSPLandroidx/compose/foundation/NoIndication;->rememberUpdatedInstance(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/IndicationInstance;\nPLandroidx/compose/foundation/NoIndication;->rememberUpdatedInstance(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/IndicationInstance;\nLandroidx/compose/foundation/OverscrollConfiguration;\nHSPLandroidx/compose/foundation/OverscrollConfiguration;-><init>()V\nPLandroidx/compose/foundation/OverscrollConfiguration;-><init>()V\nHSPLandroidx/compose/foundation/OverscrollConfiguration;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/foundation/OverscrollConfiguration;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/OverscrollConfiguration;->getGlowColor-0d7_KjU()J\nHPLandroidx/compose/foundation/OverscrollConfiguration;->getGlowColor-0d7_KjU()J\nLandroidx/compose/foundation/OverscrollConfigurationKt;\nHSPLandroidx/compose/foundation/OverscrollConfigurationKt;-><clinit>()V\nPLandroidx/compose/foundation/OverscrollConfigurationKt;-><clinit>()V\nHSPLandroidx/compose/foundation/OverscrollConfigurationKt;->getLocalOverscrollConfiguration()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/foundation/OverscrollConfigurationKt;->getLocalOverscrollConfiguration()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLandroidx/compose/foundation/OverscrollEffect;\nLandroidx/compose/foundation/PlatformMagnifierFactory;\nLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;\nHSPLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;-><clinit>()V\nPLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;-><clinit>()V\nHSPLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;-><init>()V\nPLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;-><init>()V\nHSPLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;->drawIndication(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/foundation/PlatformMagnifierFactoryApi28Impl;->drawIndication(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nLandroidx/compose/foundation/ScrollKt$rememberScrollState$1$1;\nHSPLandroidx/compose/foundation/ScrollKt$rememberScrollState$1$1;-><init>(I)V\nPLandroidx/compose/foundation/ScrollKt$rememberScrollState$1$1;-><init>(I)V\nHSPLandroidx/compose/foundation/ScrollKt$rememberScrollState$1$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/ScrollKt$rememberScrollState$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/ScrollKt$scroll$$inlined$debugInspectorInfo$1;\nHSPLandroidx/compose/foundation/ScrollKt$scroll$$inlined$debugInspectorInfo$1;-><init>(ZZZLandroidx/compose/foundation/ScrollState;Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/compose/foundation/ScrollKt$scroll$$inlined$debugInspectorInfo$1;-><init>(ZZZLandroidx/compose/foundation/ScrollState;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/foundation/ScrollKt$scroll$$inlined$debugInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ScrollKt$scroll$$inlined$debugInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ScrollKt$scroll$2;\nHSPLandroidx/compose/foundation/ScrollKt$scroll$2;-><init>(Landroidx/compose/foundation/ScrollState;Landroidx/compose/foundation/gestures/FlingBehavior;ZZZ)V\nPLandroidx/compose/foundation/ScrollKt$scroll$2;-><init>(Landroidx/compose/foundation/ScrollState;Landroidx/compose/foundation/gestures/FlingBehavior;ZZZ)V\nHSPLandroidx/compose/foundation/ScrollKt$scroll$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ScrollKt$scroll$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ScrollKt$scroll$2$semantics$1$1;\nHSPLandroidx/compose/foundation/ScrollKt$scroll$2$semantics$1$1;-><init>(Lkotlinx/coroutines/CoroutineScope;ZLandroidx/compose/foundation/ScrollState;)V\nPLandroidx/compose/foundation/ScrollKt$scroll$2$semantics$1$1;-><init>(Lkotlinx/coroutines/CoroutineScope;ZLandroidx/compose/foundation/ScrollState;)V\nLandroidx/compose/foundation/ScrollState;\nHSPLandroidx/compose/foundation/ScrollState;-><clinit>()V\nPLandroidx/compose/foundation/ScrollState;-><clinit>()V\nHSPLandroidx/compose/foundation/ScrollState;-><init>(I)V\nPLandroidx/compose/foundation/ScrollState;-><init>(I)V\nHSPLandroidx/compose/foundation/ScrollState;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/foundation/ScrollState;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/foundation/ScrollState;->getInternalInteractionSource$foundation_release()Landroidx/compose/foundation/interaction/MutableInteractionSource;\nPLandroidx/compose/foundation/ScrollState;->getInternalInteractionSource$foundation_release()Landroidx/compose/foundation/interaction/MutableInteractionSource;\nHSPLandroidx/compose/foundation/ScrollState;->getMaxValue()I\nHPLandroidx/compose/foundation/ScrollState;->getMaxValue()I\nHSPLandroidx/compose/foundation/ScrollState;->getValue()I\nHPLandroidx/compose/foundation/ScrollState;->getValue()I\nHSPLandroidx/compose/foundation/ScrollState;->setMaxValue$foundation_release(I)V\nPLandroidx/compose/foundation/ScrollState;->setMaxValue$foundation_release(I)V\nHSPLandroidx/compose/foundation/ScrollState;->setViewportSize$foundation_release(I)V\nPLandroidx/compose/foundation/ScrollState;->setViewportSize$foundation_release(I)V\nLandroidx/compose/foundation/ScrollState$Companion$Saver$1;\nHSPLandroidx/compose/foundation/ScrollState$Companion$Saver$1;-><clinit>()V\nPLandroidx/compose/foundation/ScrollState$Companion$Saver$1;-><clinit>()V\nHSPLandroidx/compose/foundation/ScrollState$Companion$Saver$1;-><init>()V\nPLandroidx/compose/foundation/ScrollState$Companion$Saver$1;-><init>()V\nHSPLandroidx/compose/foundation/ScrollState$Companion$Saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/ScrollState$Companion$Saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/ScrollState$canScrollForward$2;\nHSPLandroidx/compose/foundation/ScrollState$canScrollForward$2;-><init>(Landroidx/compose/foundation/ScrollState;I)V\nHPLandroidx/compose/foundation/ScrollState$canScrollForward$2;-><init>(Landroidx/compose/foundation/ScrollState;I)V\nHSPLandroidx/compose/foundation/ScrollState$canScrollForward$2;->invoke()Ljava/lang/Float;\nHPLandroidx/compose/foundation/ScrollState$canScrollForward$2;->invoke()Ljava/lang/Float;\nHSPLandroidx/compose/foundation/ScrollState$canScrollForward$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/foundation/ScrollState$canScrollForward$2;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/ScrollingLayoutElement;\nHSPLandroidx/compose/foundation/ScrollingLayoutElement;-><init>(Landroidx/compose/foundation/ScrollState;ZZ)V\nPLandroidx/compose/foundation/ScrollingLayoutElement;-><init>(Landroidx/compose/foundation/ScrollState;ZZ)V\nHSPLandroidx/compose/foundation/ScrollingLayoutElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/ScrollingLayoutElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/ScrollingLayoutElement;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/foundation/ScrollingLayoutElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/ScrollingLayoutNode;\nHSPLandroidx/compose/foundation/ScrollingLayoutNode;-><init>(Landroidx/compose/foundation/ScrollState;ZZ)V\nPLandroidx/compose/foundation/ScrollingLayoutNode;-><init>(Landroidx/compose/foundation/ScrollState;ZZ)V\nHSPLandroidx/compose/foundation/ScrollingLayoutNode;->getScrollerState()Landroidx/compose/foundation/ScrollState;\nPLandroidx/compose/foundation/ScrollingLayoutNode;->getScrollerState()Landroidx/compose/foundation/ScrollState;\nHSPLandroidx/compose/foundation/ScrollingLayoutNode;->isReversed()Z\nPLandroidx/compose/foundation/ScrollingLayoutNode;->isReversed()Z\nHSPLandroidx/compose/foundation/ScrollingLayoutNode;->isVertical()Z\nPLandroidx/compose/foundation/ScrollingLayoutNode;->isVertical()Z\nHSPLandroidx/compose/foundation/ScrollingLayoutNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/ScrollingLayoutNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/ScrollingLayoutNode$measure$1;\nHSPLandroidx/compose/foundation/ScrollingLayoutNode$measure$1;-><init>(Landroidx/compose/foundation/ScrollingLayoutNode;ILandroidx/compose/ui/layout/Placeable;)V\nPLandroidx/compose/foundation/ScrollingLayoutNode$measure$1;-><init>(Landroidx/compose/foundation/ScrollingLayoutNode;ILandroidx/compose/ui/layout/Placeable;)V\nHSPLandroidx/compose/foundation/ScrollingLayoutNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/ScrollingLayoutNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/AnchoredDragFinishedSignal;\nLandroidx/compose/foundation/gestures/AndroidConfig;\nHSPLandroidx/compose/foundation/gestures/AndroidConfig;-><clinit>()V\nPLandroidx/compose/foundation/gestures/AndroidConfig;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/AndroidConfig;-><init>()V\nPLandroidx/compose/foundation/gestures/AndroidConfig;-><init>()V\nLandroidx/compose/foundation/gestures/BringIntoViewRequestPriorityQueue;\nHSPLandroidx/compose/foundation/gestures/BringIntoViewRequestPriorityQueue;-><init>()V\nHPLandroidx/compose/foundation/gestures/BringIntoViewRequestPriorityQueue;-><init>()V\nLandroidx/compose/foundation/gestures/BringIntoViewScroller;\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller;-><clinit>()V\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller;-><clinit>()V\nLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;-><clinit>()V\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;-><init>()V\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;-><init>()V\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;->getDefaultBringIntoViewScroller$foundation_release()Landroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;->getDefaultBringIntoViewScroller$foundation_release()Landroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;->getDefaultScrollAnimationSpec()Landroidx/compose/animation/core/AnimationSpec;\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion;->getDefaultScrollAnimationSpec()Landroidx/compose/animation/core/AnimationSpec;\nLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;-><init>()V\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;-><init>()V\nHSPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;->getScrollAnimationSpec()Landroidx/compose/animation/core/AnimationSpec;\nPLandroidx/compose/foundation/gestures/BringIntoViewScroller$Companion$DefaultBringIntoViewScroller$1;->getScrollAnimationSpec()Landroidx/compose/animation/core/AnimationSpec;\nLandroidx/compose/foundation/gestures/ContentInViewNode;\nHSPLandroidx/compose/foundation/gestures/ContentInViewNode;-><init>(Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/gestures/ScrollableState;ZLandroidx/compose/foundation/gestures/BringIntoViewScroller;)V\nPLandroidx/compose/foundation/gestures/ContentInViewNode;-><init>(Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/gestures/ScrollableState;ZLandroidx/compose/foundation/gestures/BringIntoViewScroller;)V\nHSPLandroidx/compose/foundation/gestures/ContentInViewNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/foundation/gestures/ContentInViewNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/foundation/gestures/ContentInViewNode;->onRemeasured-ozmzZPI(J)V\nHPLandroidx/compose/foundation/gestures/ContentInViewNode;->onRemeasured-ozmzZPI(J)V\nLandroidx/compose/foundation/gestures/ContentInViewNode$Request;\nLandroidx/compose/foundation/gestures/DefaultFlingBehavior;\nHSPLandroidx/compose/foundation/gestures/DefaultFlingBehavior;-><init>(Landroidx/compose/animation/core/DecayAnimationSpec;)V\nHPLandroidx/compose/foundation/gestures/DefaultFlingBehavior;-><init>(Landroidx/compose/animation/core/DecayAnimationSpec;)V\nHSPLandroidx/compose/foundation/gestures/DefaultFlingBehavior;->setFlingDecay(Landroidx/compose/animation/core/DecayAnimationSpec;)V\nPLandroidx/compose/foundation/gestures/DefaultFlingBehavior;->setFlingDecay(Landroidx/compose/animation/core/DecayAnimationSpec;)V\nLandroidx/compose/foundation/gestures/DefaultScrollableState;\nHSPLandroidx/compose/foundation/gestures/DefaultScrollableState;-><init>(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/foundation/gestures/DefaultScrollableState;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/gestures/DefaultScrollableState;->isScrollInProgress()Z\nLandroidx/compose/foundation/gestures/DefaultScrollableState$scrollScope$1;\nHSPLandroidx/compose/foundation/gestures/DefaultScrollableState$scrollScope$1;-><init>(Landroidx/compose/foundation/gestures/DefaultScrollableState;)V\nPLandroidx/compose/foundation/gestures/DefaultScrollableState$scrollScope$1;-><init>(Landroidx/compose/foundation/gestures/DefaultScrollableState;)V\nPLandroidx/compose/foundation/gestures/DragEvent$DragCancelled;-><clinit>()V\nPLandroidx/compose/foundation/gestures/DragEvent$DragCancelled;-><init>()V\nPLandroidx/compose/foundation/gestures/DragGestureDetectorKt;-><clinit>()V\nPLandroidx/compose/foundation/gestures/DragGestureDetectorKt;->access$isPointerUp-DmW0f2w(Landroidx/compose/ui/input/pointer/PointerEvent;J)Z\nPLandroidx/compose/foundation/gestures/DragGestureDetectorKt;->isPointerUp-DmW0f2w(Landroidx/compose/ui/input/pointer/PointerEvent;J)Z\nPLandroidx/compose/foundation/gestures/DragGestureDetectorKt;->pointerSlop-E8SPZFQ(Landroidx/compose/ui/platform/ViewConfiguration;I)F\nPLandroidx/compose/foundation/gestures/DragGestureDetectorKt;->toPointerDirectionConfig(Landroidx/compose/foundation/gestures/Orientation;)Landroidx/compose/foundation/gestures/DragGestureDetectorKt$VerticalPointerDirectionConfig$1;\nPLandroidx/compose/foundation/gestures/DragGestureDetectorKt$VerticalPointerDirectionConfig$1;-><init>(I)V\nLandroidx/compose/foundation/gestures/DragScope;\nPLandroidx/compose/foundation/gestures/DraggableKt;->access$awaitDownAndSlop(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/input/pointer/util/VelocityTracker;Landroidx/compose/foundation/gestures/Orientation;Lkotlin/coroutines/Continuation;)Ljava/io/Serializable;\nHPLandroidx/compose/foundation/gestures/DraggableKt;->access$awaitDownAndSlop(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/input/pointer/util/VelocityTracker;Landroidx/compose/foundation/gestures/Orientation;Lkotlin/coroutines/Continuation;)Ljava/io/Serializable;\nPLandroidx/compose/foundation/gestures/DraggableKt$awaitDownAndSlop$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/DraggableKt$awaitDownAndSlop$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/DraggableKt$awaitDownAndSlop$postPointerSlop$1;-><init>(Landroidx/compose/ui/input/pointer/util/VelocityTracker;Lkotlin/jvm/internal/Ref$LongRef;)V\nLandroidx/compose/foundation/gestures/DraggableKt$draggable$1;\nHSPLandroidx/compose/foundation/gestures/DraggableKt$draggable$1;-><init>(Lkotlin/coroutines/Continuation;I)V\nPLandroidx/compose/foundation/gestures/DraggableKt$draggable$1;-><init>(Lkotlin/coroutines/Continuation;I)V\nLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;\nHSPLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;-><clinit>()V\nPLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;-><init>(I)V\nPLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;-><init>(I)V\nPLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;->invoke(Landroidx/compose/ui/input/pointer/PointerInputChange;)Ljava/lang/Boolean;\nPLandroidx/compose/foundation/gestures/DraggableKt$draggable$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/DraggableNode;\nHSPLandroidx/compose/foundation/gestures/DraggableNode;-><init>(Landroidx/compose/foundation/gestures/DraggableState;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/gestures/Orientation;ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Z)V\nHPLandroidx/compose/foundation/gestures/DraggableNode;-><init>(Landroidx/compose/foundation/gestures/DraggableState;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/gestures/Orientation;ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Z)V\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$getCanDrag$p(Landroidx/compose/foundation/gestures/DraggableNode;)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/foundation/gestures/DraggableNode;->access$getChannel$p(Landroidx/compose/foundation/gestures/DraggableNode;)Lkotlinx/coroutines/channels/Channel;\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$getChannel$p(Landroidx/compose/foundation/gestures/DraggableNode;)Lkotlinx/coroutines/channels/Channel;\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$getEnabled$p(Landroidx/compose/foundation/gestures/DraggableNode;)Z\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$getOrientation$p(Landroidx/compose/foundation/gestures/DraggableNode;)Landroidx/compose/foundation/gestures/Orientation;\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$getStartDragImmediately$p(Landroidx/compose/foundation/gestures/DraggableNode;)Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$getVelocityTracker$p(Landroidx/compose/foundation/gestures/DraggableNode;)Landroidx/compose/ui/input/pointer/util/VelocityTracker;\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$get_canDrag$p(Landroidx/compose/foundation/gestures/DraggableNode;)Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/foundation/gestures/DraggableNode;->access$get_startDragImmediately$p(Landroidx/compose/foundation/gestures/DraggableNode;)Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/foundation/gestures/DraggableNode;->disposeInteractionSource()V\nPLandroidx/compose/foundation/gestures/DraggableNode;->disposeInteractionSource()V\nHSPLandroidx/compose/foundation/gestures/DraggableNode;->onAttach()V\nHPLandroidx/compose/foundation/gestures/DraggableNode;->onAttach()V\nHSPLandroidx/compose/foundation/gestures/DraggableNode;->onDetach()V\nPLandroidx/compose/foundation/gestures/DraggableNode;->onDetach()V\nPLandroidx/compose/foundation/gestures/DraggableNode;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;\nHSPLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;-><init>(Landroidx/compose/foundation/gestures/DraggableNode;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;-><init>(Landroidx/compose/foundation/gestures/DraggableNode;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/DraggableNode$onAttach$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1;\nHSPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1;-><init>(Landroidx/compose/foundation/gestures/DraggableNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1;-><init>(Landroidx/compose/foundation/gestures/DraggableNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1;-><init>(Landroidx/compose/ui/input/pointer/PointerInputScope;Landroidx/compose/foundation/gestures/DraggableNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1$1;-><init>(Landroidx/compose/foundation/gestures/DraggableNode;Lkotlin/coroutines/Continuation;Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/DraggableNode$pointerInputNode$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/DraggableState;\nLandroidx/compose/foundation/gestures/FlingBehavior;\nLandroidx/compose/foundation/gestures/ForEachGestureKt;\nPLandroidx/compose/foundation/gestures/ForEachGestureKt;-><init>()V\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt;->ScrollableState(Lkotlin/jvm/functions/Function1;)Landroidx/compose/foundation/gestures/ScrollableState;\nPLandroidx/compose/foundation/gestures/ForEachGestureKt;->ScrollableState(Lkotlin/jvm/functions/Function1;)Landroidx/compose/foundation/gestures/ScrollableState;\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt;->awaitAllPointersUp(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/ForEachGestureKt;->awaitAllPointersUp(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt;->awaitEachGesture(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/ForEachGestureKt;->awaitEachGesture(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt;->overscrollEffect(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/OverscrollEffect;\nHPLandroidx/compose/foundation/gestures/ForEachGestureKt;->overscrollEffect(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/OverscrollEffect;\nLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitAllPointersUp$3;\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitAllPointersUp$3;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitAllPointersUp$3;-><init>(Lkotlin/coroutines/Continuation;)V\nLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/ForEachGestureKt$awaitEachGesture$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/ModifierLocalScrollableContainerProvider;\nHSPLandroidx/compose/foundation/gestures/ModifierLocalScrollableContainerProvider;-><init>(Z)V\nPLandroidx/compose/foundation/gestures/ModifierLocalScrollableContainerProvider;-><init>(Z)V\nPLandroidx/compose/foundation/gestures/ModifierLocalScrollableContainerProvider;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nLandroidx/compose/foundation/gestures/MouseWheelScrollNode;\nHSPLandroidx/compose/foundation/gestures/MouseWheelScrollNode;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;)V\nHPLandroidx/compose/foundation/gestures/MouseWheelScrollNode;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;)V\nHSPLandroidx/compose/foundation/gestures/MouseWheelScrollNode;->onAttach()V\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode;->onAttach()V\nLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1;\nHSPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1;-><init>(Landroidx/compose/foundation/gestures/MouseWheelScrollNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1;-><init>(Landroidx/compose/foundation/gestures/MouseWheelScrollNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1$1;-><init>(Landroidx/compose/foundation/gestures/MouseWheelScrollNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/MouseWheelScrollNode$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/Orientation;\nHSPLandroidx/compose/foundation/gestures/Orientation;-><clinit>()V\nPLandroidx/compose/foundation/gestures/Orientation;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/Orientation;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/foundation/gestures/Orientation;-><init>(Ljava/lang/String;I)V\nLandroidx/compose/foundation/gestures/PressGestureScope;\nLandroidx/compose/foundation/gestures/PressGestureScopeImpl;\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;-><init>(Landroidx/compose/ui/unit/Density;)V\nPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;-><init>(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;->release()V\nPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;->release()V\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;->reset(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;->reset(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;->tryAwaitRelease(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/PressGestureScopeImpl;->tryAwaitRelease(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/PressGestureScopeImpl$reset$1;\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$reset$1;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$reset$1;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$reset$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$reset$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/PressGestureScopeImpl$tryAwaitRelease$1;\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$tryAwaitRelease$1;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$tryAwaitRelease$1;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$tryAwaitRelease$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/PressGestureScopeImpl$tryAwaitRelease$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/ScrollConfig;\nLandroidx/compose/foundation/gestures/ScrollDraggableState;\nHSPLandroidx/compose/foundation/gestures/ScrollDraggableState;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;)V\nPLandroidx/compose/foundation/gestures/ScrollDraggableState;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;)V\nLandroidx/compose/foundation/gestures/ScrollScope;\nLandroidx/compose/foundation/gestures/ScrollableElement;\nHSPLandroidx/compose/foundation/gestures/ScrollableElement;-><init>(Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/gestures/BringIntoViewScroller;)V\nHPLandroidx/compose/foundation/gestures/ScrollableElement;-><init>(Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/gestures/BringIntoViewScroller;)V\nHSPLandroidx/compose/foundation/gestures/ScrollableElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/gestures/ScrollableElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/gestures/ScrollableElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/gestures/ScrollableElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/gestures/ScrollableGesturesNode;\nHSPLandroidx/compose/foundation/gestures/ScrollableGesturesNode;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;Landroidx/compose/foundation/gestures/Orientation;ZLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nHPLandroidx/compose/foundation/gestures/ScrollableGesturesNode;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;Landroidx/compose/foundation/gestures/Orientation;ZLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;Landroidx/compose/foundation/interaction/MutableInteractionSource;)V\nPLandroidx/compose/foundation/gestures/ScrollableGesturesNode;->getScrollLogic()Landroidx/compose/foundation/gestures/ScrollingLogic;\nLandroidx/compose/foundation/gestures/ScrollableGesturesNode$onDragStopped$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableGesturesNode$onDragStopped$1;-><init>(Landroidx/compose/foundation/gestures/ScrollableGesturesNode;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/ScrollableGesturesNode$onDragStopped$1;-><init>(Landroidx/compose/foundation/gestures/ScrollableGesturesNode;Lkotlin/coroutines/Continuation;)V\nLandroidx/compose/foundation/gestures/ScrollableKt;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;-><clinit>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt;-><clinit>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt;->access$awaitScrollEvent(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getCanDragCalculation$p()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getCanDragCalculation$p()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getNoOpOnDragStarted$p()Lkotlin/jvm/functions/Function3;\nPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getNoOpOnDragStarted$p()Lkotlin/jvm/functions/Function3;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getNoOpScrollScope$p()Landroidx/compose/foundation/gestures/ScrollableKt$NoOpScrollScope$1;\nPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getNoOpScrollScope$p()Landroidx/compose/foundation/gestures/ScrollableKt$NoOpScrollScope$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getUnityDensity$p()Landroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;\nPLandroidx/compose/foundation/gestures/ScrollableKt;->access$getUnityDensity$p()Landroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->getDefaultScrollMotionDurationScale()Landroidx/compose/foundation/gestures/ScrollableKt$DefaultScrollMotionDurationScale$1;\nPLandroidx/compose/foundation/gestures/ScrollableKt;->getDefaultScrollMotionDurationScale()Landroidx/compose/foundation/gestures/ScrollableKt$DefaultScrollMotionDurationScale$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->getModifierLocalScrollableContainer()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nPLandroidx/compose/foundation/gestures/ScrollableKt;->getModifierLocalScrollableContainer()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->scrollable$default(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/gestures/ScrollableKt;->scrollable$default(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt;->scrollable(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/gestures/BringIntoViewScroller;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/gestures/ScrollableKt;->scrollable(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/gestures/BringIntoViewScroller;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/gestures/ScrollableKt$DefaultScrollMotionDurationScale$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$DefaultScrollMotionDurationScale$1;-><init>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt$DefaultScrollMotionDurationScale$1;-><init>()V\nLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;-><clinit>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;-><init>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;-><init>()V\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/ScrollableKt$ModifierLocalScrollableContainer$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/ScrollableKt$NoOpScrollScope$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$NoOpScrollScope$1;-><init>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt$NoOpScrollScope$1;-><init>()V\nLandroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;-><init>()V\nPLandroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;-><init>()V\nHSPLandroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;->getDensity()F\nPLandroidx/compose/foundation/gestures/ScrollableKt$UnityDensity$1;->getDensity()F\nPLandroidx/compose/foundation/gestures/ScrollableKt$awaitScrollEvent$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/ScrollableKt$awaitScrollEvent$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/ScrollableNestedScrollConnection;\nHSPLandroidx/compose/foundation/gestures/ScrollableNestedScrollConnection;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;Z)V\nPLandroidx/compose/foundation/gestures/ScrollableNestedScrollConnection;-><init>(Landroidx/compose/foundation/gestures/ScrollingLogic;Z)V\nLandroidx/compose/foundation/gestures/ScrollableNode;\nHSPLandroidx/compose/foundation/gestures/ScrollableNode;-><init>(Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/gestures/BringIntoViewScroller;)V\nHPLandroidx/compose/foundation/gestures/ScrollableNode;-><init>(Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/gestures/BringIntoViewScroller;)V\nHSPLandroidx/compose/foundation/gestures/ScrollableNode;->applyFocusProperties(Landroidx/compose/ui/focus/FocusProperties;)V\nPLandroidx/compose/foundation/gestures/ScrollableNode;->applyFocusProperties(Landroidx/compose/ui/focus/FocusProperties;)V\nHSPLandroidx/compose/foundation/gestures/ScrollableNode;->onAttach()V\nHPLandroidx/compose/foundation/gestures/ScrollableNode;->onAttach()V\nLandroidx/compose/foundation/gestures/ScrollableNode$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableNode$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/gestures/ScrollableNode$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/gestures/ScrollableNode$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;\nHSPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;-><init>(ILandroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;-><init>(ILandroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;->invoke()Ljava/lang/Boolean;\nHSPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;->invoke()V\nPLandroidx/compose/foundation/gestures/ScrollableNode$onAttach$1;->invoke()V\nLandroidx/compose/foundation/gestures/ScrollableState;\nLandroidx/compose/foundation/gestures/ScrollingLogic;\nHSPLandroidx/compose/foundation/gestures/ScrollingLogic;-><init>(Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nHPLandroidx/compose/foundation/gestures/ScrollingLogic;-><init>(Landroidx/compose/foundation/gestures/ScrollableState;Landroidx/compose/foundation/gestures/Orientation;Landroidx/compose/foundation/OverscrollEffect;ZLandroidx/compose/foundation/gestures/FlingBehavior;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nPLandroidx/compose/foundation/gestures/ScrollingLogic;->shouldScrollImmediately()Z\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;-><clinit>()V\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->access$getNoPressGesture$p()Lkotlin/jvm/functions/Function3;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->access$getNoPressGesture$p()Lkotlin/jvm/functions/Function3;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->awaitFirstDown$default(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;I)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->awaitFirstDown$default(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;I)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->awaitFirstDown(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;ZLandroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->awaitFirstDown(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;ZLandroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->detectTapAndPress(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->detectTapAndPress(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->waitForUpOrCancellation(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt;->waitForUpOrCancellation(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$awaitFirstDown$2;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$awaitFirstDown$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$awaitFirstDown$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$awaitFirstDown$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$awaitFirstDown$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;-><init>(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;-><init>(Landroidx/compose/ui/input/pointer/PointerInputScope;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;-><init>(Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;-><init>(Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;-><init>(Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Landroidx/compose/ui/input/pointer/PointerInputChange;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;-><init>(Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Landroidx/compose/ui/input/pointer/PointerInputChange;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;-><init>(Landroidx/compose/foundation/gestures/PressGestureScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$detectTapAndPress$2$1$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/TapGestureDetectorKt$waitForUpOrCancellation$2;\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$waitForUpOrCancellation$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$waitForUpOrCancellation$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$waitForUpOrCancellation$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/gestures/TapGestureDetectorKt$waitForUpOrCancellation$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/gestures/UpdatableAnimationState;\nHSPLandroidx/compose/foundation/gestures/UpdatableAnimationState;-><clinit>()V\nPLandroidx/compose/foundation/gestures/UpdatableAnimationState;-><clinit>()V\nHSPLandroidx/compose/foundation/gestures/UpdatableAnimationState;-><init>(Landroidx/compose/animation/core/AnimationSpec;)V\nPLandroidx/compose/foundation/gestures/UpdatableAnimationState;-><init>(Landroidx/compose/animation/core/AnimationSpec;)V\nLandroidx/compose/foundation/interaction/DragInteractionKt;\nHSPLandroidx/compose/foundation/interaction/DragInteractionKt;->MutableInteractionSource()Landroidx/compose/foundation/interaction/MutableInteractionSource;\nHPLandroidx/compose/foundation/interaction/DragInteractionKt;->MutableInteractionSource()Landroidx/compose/foundation/interaction/MutableInteractionSource;\nHSPLandroidx/compose/foundation/interaction/DragInteractionKt;->collectIsPressedAsState(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/foundation/interaction/DragInteractionKt;->collectIsPressedAsState(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/MutableState;\nLandroidx/compose/foundation/interaction/DragInteractionKt$collectIsDraggedAsState$1$1$1;\nHSPLandroidx/compose/foundation/interaction/DragInteractionKt$collectIsDraggedAsState$1$1$1;-><init>(Ljava/util/ArrayList;Landroidx/compose/runtime/MutableState;I)V\nPLandroidx/compose/foundation/interaction/DragInteractionKt$collectIsDraggedAsState$1$1$1;-><init>(Ljava/util/ArrayList;Landroidx/compose/runtime/MutableState;I)V\nLandroidx/compose/foundation/interaction/Interaction;\nLandroidx/compose/foundation/interaction/InteractionSource;\nLandroidx/compose/foundation/interaction/MutableInteractionSource;\nLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;\nHSPLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;-><init>()V\nHPLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;-><init>()V\nHSPLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;->emit(Landroidx/compose/foundation/interaction/Interaction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;->emit(Landroidx/compose/foundation/interaction/Interaction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;->getInteractions()Lkotlinx/coroutines/flow/Flow;\nPLandroidx/compose/foundation/interaction/MutableInteractionSourceImpl;->getInteractions()Lkotlinx/coroutines/flow/Flow;\nLandroidx/compose/foundation/interaction/PressInteraction$Cancel;\nLandroidx/compose/foundation/interaction/PressInteraction$Press;\nHSPLandroidx/compose/foundation/interaction/PressInteraction$Press;-><init>(J)V\nHPLandroidx/compose/foundation/interaction/PressInteraction$Press;-><init>(J)V\nHSPLandroidx/compose/foundation/interaction/PressInteraction$Press;->getPressPosition-F1C5BW0()J\nPLandroidx/compose/foundation/interaction/PressInteraction$Press;->getPressPosition-F1C5BW0()J\nLandroidx/compose/foundation/interaction/PressInteraction$Release;\nHSPLandroidx/compose/foundation/interaction/PressInteraction$Release;-><init>(Landroidx/compose/foundation/interaction/PressInteraction$Press;)V\nHPLandroidx/compose/foundation/interaction/PressInteraction$Release;-><init>(Landroidx/compose/foundation/interaction/PressInteraction$Press;)V\nHSPLandroidx/compose/foundation/interaction/PressInteraction$Release;->getPress()Landroidx/compose/foundation/interaction/PressInteraction$Press;\nPLandroidx/compose/foundation/interaction/PressInteraction$Release;->getPress()Landroidx/compose/foundation/interaction/PressInteraction$Press;\nLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;\nHSPLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;-><init>(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;-><init>(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/interaction/PressInteractionKt$collectIsPressedAsState$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/AddedInsets;\nHSPLandroidx/compose/foundation/layout/AddedInsets;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nPLandroidx/compose/foundation/layout/AddedInsets;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nHSPLandroidx/compose/foundation/layout/AddedInsets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/AddedInsets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/AddedInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/AddedInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/AddedInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/AddedInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/AddedInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/AddedInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/AddedInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/AddedInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nLandroidx/compose/foundation/layout/AlignmentLineKt$alignmentLineOffsetMeasure$1;\nHSPLandroidx/compose/foundation/layout/AlignmentLineKt$alignmentLineOffsetMeasure$1;-><init>(Landroidx/compose/ui/layout/AlignmentLine;FIIILandroidx/compose/ui/layout/Placeable;I)V\nPLandroidx/compose/foundation/layout/AlignmentLineKt$alignmentLineOffsetMeasure$1;-><init>(Landroidx/compose/ui/layout/AlignmentLine;FIIILandroidx/compose/ui/layout/Placeable;I)V\nHSPLandroidx/compose/foundation/layout/AlignmentLineKt$alignmentLineOffsetMeasure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/AlignmentLineKt$alignmentLineOffsetMeasure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;\nHSPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;-><init>(Landroidx/compose/ui/layout/HorizontalAlignmentLine;FFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;-><init>(Landroidx/compose/ui/layout/HorizontalAlignmentLine;FFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/AlignmentLineOffsetDpNode;\nHSPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpNode;-><init>(Landroidx/compose/ui/layout/AlignmentLine;FF)V\nPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpNode;-><init>(Landroidx/compose/ui/layout/AlignmentLine;FF)V\nHSPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/AlignmentLineOffsetDpNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;-><init>(ILjava/lang/String;)V\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;-><init>(ILjava/lang/String;)V\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getInsets$foundation_layout_release()Landroidx/core/graphics/Insets;\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getInsets$foundation_layout_release()Landroidx/core/graphics/Insets;\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/AndroidWindowInsets;->update$foundation_layout_release(Landroidx/core/view/WindowInsetsCompat;I)V\nHPLandroidx/compose/foundation/layout/AndroidWindowInsets;->update$foundation_layout_release(Landroidx/core/view/WindowInsetsCompat;I)V\nLandroidx/compose/foundation/layout/Arrangement;\nHSPLandroidx/compose/foundation/layout/Arrangement;-><clinit>()V\nPLandroidx/compose/foundation/layout/Arrangement;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/Arrangement;->getCenter()Landroidx/compose/foundation/layout/Arrangement$Center$1;\nPLandroidx/compose/foundation/layout/Arrangement;->getCenter()Landroidx/compose/foundation/layout/Arrangement$Center$1;\nHSPLandroidx/compose/foundation/layout/Arrangement;->getEnd()Landroidx/compose/foundation/layout/Arrangement$End$1;\nPLandroidx/compose/foundation/layout/Arrangement;->getEnd()Landroidx/compose/foundation/layout/Arrangement$End$1;\nHSPLandroidx/compose/foundation/layout/Arrangement;->getStart()Landroidx/compose/foundation/layout/Arrangement$End$1;\nPLandroidx/compose/foundation/layout/Arrangement;->getStart()Landroidx/compose/foundation/layout/Arrangement$End$1;\nHSPLandroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Top$1;\nPLandroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Top$1;\nHSPLandroidx/compose/foundation/layout/Arrangement;->placeCenter$foundation_layout_release(I[I[IZ)V\nHPLandroidx/compose/foundation/layout/Arrangement;->placeCenter$foundation_layout_release(I[I[IZ)V\nHSPLandroidx/compose/foundation/layout/Arrangement;->placeLeftOrTop$foundation_layout_release([I[IZ)V\nHPLandroidx/compose/foundation/layout/Arrangement;->placeLeftOrTop$foundation_layout_release([I[IZ)V\nHSPLandroidx/compose/foundation/layout/Arrangement;->placeRightOrBottom$foundation_layout_release(I[I[IZ)V\nPLandroidx/compose/foundation/layout/Arrangement;->placeRightOrBottom$foundation_layout_release(I[I[IZ)V\nHSPLandroidx/compose/foundation/layout/Arrangement;->spacedBy-0680j_4(F)Landroidx/compose/foundation/layout/Arrangement$SpacedAligned;\nPLandroidx/compose/foundation/layout/Arrangement;->spacedBy-0680j_4(F)Landroidx/compose/foundation/layout/Arrangement$SpacedAligned;\nLandroidx/compose/foundation/layout/Arrangement$Center$1;\nHSPLandroidx/compose/foundation/layout/Arrangement$Center$1;-><init>(I)V\nPLandroidx/compose/foundation/layout/Arrangement$Center$1;-><init>(I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$Center$1;->arrange(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nPLandroidx/compose/foundation/layout/Arrangement$Center$1;->arrange(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$Center$1;->arrange(Landroidx/compose/ui/unit/Density;I[I[I)V\nPLandroidx/compose/foundation/layout/Arrangement$Center$1;->arrange(Landroidx/compose/ui/unit/Density;I[I[I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$Center$1;->getSpacing-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/Arrangement$Center$1;->getSpacing-D9Ej5fM()F\nLandroidx/compose/foundation/layout/Arrangement$End$1;\nHSPLandroidx/compose/foundation/layout/Arrangement$End$1;-><init>(I)V\nPLandroidx/compose/foundation/layout/Arrangement$End$1;-><init>(I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$End$1;->arrange(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHPLandroidx/compose/foundation/layout/Arrangement$End$1;->arrange(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nLandroidx/compose/foundation/layout/Arrangement$Horizontal;\nHSPLandroidx/compose/foundation/layout/Arrangement$Horizontal;->getSpacing-D9Ej5fM()F\nHPLandroidx/compose/foundation/layout/Arrangement$Horizontal;->getSpacing-D9Ej5fM()F\nLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;\nHSPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;-><init>(FZLkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;-><init>(FZLkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->arrange(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->arrange(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->arrange(Landroidx/compose/ui/unit/Density;I[I[I)V\nPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->arrange(Landroidx/compose/ui/unit/Density;I[I[I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->getSpacing-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/Arrangement$SpacedAligned;->getSpacing-D9Ej5fM()F\nLandroidx/compose/foundation/layout/Arrangement$Top$1;\nHSPLandroidx/compose/foundation/layout/Arrangement$Top$1;-><init>(I)V\nPLandroidx/compose/foundation/layout/Arrangement$Top$1;-><init>(I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$Top$1;->arrange(Landroidx/compose/ui/unit/Density;I[I[I)V\nPLandroidx/compose/foundation/layout/Arrangement$Top$1;->arrange(Landroidx/compose/ui/unit/Density;I[I[I)V\nLandroidx/compose/foundation/layout/Arrangement$Vertical;\nHSPLandroidx/compose/foundation/layout/Arrangement$Vertical;->getSpacing-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/Arrangement$Vertical;->getSpacing-D9Ej5fM()F\nLandroidx/compose/foundation/layout/Arrangement$spacedBy$1;\nHSPLandroidx/compose/foundation/layout/Arrangement$spacedBy$1;-><clinit>()V\nPLandroidx/compose/foundation/layout/Arrangement$spacedBy$1;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/Arrangement$spacedBy$1;-><init>(I)V\nPLandroidx/compose/foundation/layout/Arrangement$spacedBy$1;-><init>(I)V\nLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;\nHSPLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;->invoke-5SAbXVA(JLandroidx/compose/ui/unit/LayoutDirection;)J\nPLandroidx/compose/foundation/layout/Arrangement$spacedBy$2;->invoke-5SAbXVA(JLandroidx/compose/ui/unit/LayoutDirection;)J\nLandroidx/compose/foundation/layout/Arrangement$spacedBy$3;\nHSPLandroidx/compose/foundation/layout/Arrangement$spacedBy$3;-><init>(Landroidx/compose/ui/Alignment$Vertical;I)V\nPLandroidx/compose/foundation/layout/Arrangement$spacedBy$3;-><init>(Landroidx/compose/ui/Alignment$Vertical;I)V\nLandroidx/compose/foundation/layout/BoxChildDataElement;\nHSPLandroidx/compose/foundation/layout/BoxChildDataElement;-><init>(Landroidx/compose/ui/BiasAlignment;ZLkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/layout/BoxChildDataElement;-><init>(Landroidx/compose/ui/BiasAlignment;ZLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/layout/BoxChildDataElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/layout/BoxChildDataElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/foundation/layout/BoxChildDataNode;\nHSPLandroidx/compose/foundation/layout/BoxChildDataNode;-><init>(Landroidx/compose/ui/Alignment;Z)V\nPLandroidx/compose/foundation/layout/BoxChildDataNode;-><init>(Landroidx/compose/ui/Alignment;Z)V\nHSPLandroidx/compose/foundation/layout/BoxChildDataNode;->getAlignment()Landroidx/compose/ui/Alignment;\nPLandroidx/compose/foundation/layout/BoxChildDataNode;->getAlignment()Landroidx/compose/ui/Alignment;\nHSPLandroidx/compose/foundation/layout/BoxChildDataNode;->getMatchParentSize()Z\nPLandroidx/compose/foundation/layout/BoxChildDataNode;->getMatchParentSize()Z\nHSPLandroidx/compose/foundation/layout/BoxChildDataNode;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/layout/BoxChildDataNode;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/BoxKt;\nHSPLandroidx/compose/foundation/layout/BoxKt;-><clinit>()V\nPLandroidx/compose/foundation/layout/BoxKt;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/BoxKt;->Box(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/layout/BoxKt;->Box(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/layout/BoxKt;->access$getMatchesParentSize(Landroidx/compose/ui/layout/Measurable;)Z\nPLandroidx/compose/foundation/layout/BoxKt;->access$getMatchesParentSize(Landroidx/compose/ui/layout/Measurable;)Z\nHSPLandroidx/compose/foundation/layout/BoxKt;->access$placeInBox(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Measurable;Landroidx/compose/ui/unit/LayoutDirection;IILandroidx/compose/ui/Alignment;)V\nHPLandroidx/compose/foundation/layout/BoxKt;->access$placeInBox(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Measurable;Landroidx/compose/ui/unit/LayoutDirection;IILandroidx/compose/ui/Alignment;)V\nHSPLandroidx/compose/foundation/layout/BoxKt;->rememberBoxMeasurePolicy(Landroidx/compose/ui/Alignment;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/foundation/layout/BoxKt;->rememberBoxMeasurePolicy(Landroidx/compose/ui/Alignment;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/layout/MeasurePolicy;\nLandroidx/compose/foundation/layout/BoxKt$Box$$inlined$Layout$1;\nHSPLandroidx/compose/foundation/layout/BoxKt$Box$$inlined$Layout$1;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLandroidx/compose/foundation/layout/BoxKt$Box$$inlined$Layout$1;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLandroidx/compose/foundation/layout/BoxKt$Box$$inlined$Layout$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/layout/BoxKt$Box$$inlined$Layout$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/layout/BoxKt$Box$2;\nHSPLandroidx/compose/foundation/layout/BoxKt$Box$2;-><init>(Landroidx/compose/ui/Modifier;I)V\nPLandroidx/compose/foundation/layout/BoxKt$Box$2;-><init>(Landroidx/compose/ui/Modifier;I)V\nLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;\nHSPLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;-><clinit>()V\nPLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;-><init>()V\nPLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;-><init>()V\nHSPLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/BoxKt$EmptyBoxMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1;\nHSPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1;-><init>(Landroidx/compose/ui/Alignment;Z)V\nPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1;-><init>(Landroidx/compose/ui/Alignment;Z)V\nHSPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1$measure$2;\nHSPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1$measure$2;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Measurable;Landroidx/compose/ui/layout/MeasureScope;IILandroidx/compose/ui/Alignment;)V\nHPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1$measure$2;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Measurable;Landroidx/compose/ui/layout/MeasureScope;IILandroidx/compose/ui/Alignment;)V\nHSPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1$measure$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/BoxKt$boxMeasurePolicy$1$measure$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/BoxScope;\nLandroidx/compose/foundation/layout/BoxScopeInstance;\nHSPLandroidx/compose/foundation/layout/BoxScopeInstance;-><clinit>()V\nPLandroidx/compose/foundation/layout/BoxScopeInstance;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/BoxScopeInstance;-><init>()V\nPLandroidx/compose/foundation/layout/BoxScopeInstance;-><init>()V\nHSPLandroidx/compose/foundation/layout/BoxScopeInstance;->align(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/BiasAlignment;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/BoxScopeInstance;->align(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/BiasAlignment;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/layout/BoxScopeInstance$align$$inlined$debugInspectorInfo$1;\nHSPLandroidx/compose/foundation/layout/BoxScopeInstance$align$$inlined$debugInspectorInfo$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/layout/BoxScopeInstance$align$$inlined$debugInspectorInfo$1;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/foundation/layout/ColumnKt;\nHSPLandroidx/compose/foundation/layout/ColumnKt;-><clinit>()V\nPLandroidx/compose/foundation/layout/ColumnKt;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/ColumnKt;->columnMeasurePolicy(Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/BiasAlignment$Horizontal;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/foundation/layout/ColumnKt;->columnMeasurePolicy(Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/BiasAlignment$Horizontal;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/layout/MeasurePolicy;\nLandroidx/compose/foundation/layout/ColumnKt$columnMeasurePolicy$1$1;\nHSPLandroidx/compose/foundation/layout/ColumnKt$columnMeasurePolicy$1$1;-><init>(Landroidx/compose/foundation/layout/Arrangement$Vertical;I)V\nPLandroidx/compose/foundation/layout/ColumnKt$columnMeasurePolicy$1$1;-><init>(Landroidx/compose/foundation/layout/Arrangement$Vertical;I)V\nHSPLandroidx/compose/foundation/layout/ColumnKt$columnMeasurePolicy$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/ColumnKt$columnMeasurePolicy$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/ColumnScope;\nLandroidx/compose/foundation/layout/ColumnScopeInstance;\nHSPLandroidx/compose/foundation/layout/ColumnScopeInstance;-><clinit>()V\nPLandroidx/compose/foundation/layout/ColumnScopeInstance;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/ColumnScopeInstance;-><init>()V\nPLandroidx/compose/foundation/layout/ColumnScopeInstance;-><init>()V\nLandroidx/compose/foundation/layout/ConsumedInsetsModifier;\nHSPLandroidx/compose/foundation/layout/ConsumedInsetsModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/layout/ConsumedInsetsModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/layout/ConsumedInsetsModifier;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/ConsumedInsetsModifier;->onModifierLocalsUpdated(Landroidx/compose/ui/modifier/ModifierLocalReadScope;)V\nHPLandroidx/compose/foundation/layout/ConsumedInsetsModifier;->onModifierLocalsUpdated(Landroidx/compose/ui/modifier/ModifierLocalReadScope;)V\nLandroidx/compose/foundation/layout/CrossAxisAlignment$VerticalCrossAxisAlignment;\nHSPLandroidx/compose/foundation/layout/CrossAxisAlignment$VerticalCrossAxisAlignment;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/layout/CrossAxisAlignment$VerticalCrossAxisAlignment;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/layout/CrossAxisAlignment$VerticalCrossAxisAlignment;->align$foundation_layout_release(ILandroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/CrossAxisAlignment$VerticalCrossAxisAlignment;->align$foundation_layout_release(ILandroidx/compose/ui/unit/LayoutDirection;)I\nLandroidx/compose/foundation/layout/ExcludeInsets;\nHSPLandroidx/compose/foundation/layout/ExcludeInsets;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nHPLandroidx/compose/foundation/layout/ExcludeInsets;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nHSPLandroidx/compose/foundation/layout/ExcludeInsets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/ExcludeInsets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/ExcludeInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/ExcludeInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/ExcludeInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nPLandroidx/compose/foundation/layout/ExcludeInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/ExcludeInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nPLandroidx/compose/foundation/layout/ExcludeInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/ExcludeInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nPLandroidx/compose/foundation/layout/ExcludeInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nLandroidx/compose/foundation/layout/FillElement;\nHSPLandroidx/compose/foundation/layout/FillElement;-><init>(IF)V\nPLandroidx/compose/foundation/layout/FillElement;-><init>(IF)V\nHSPLandroidx/compose/foundation/layout/FillElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/layout/FillElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/FillElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/FillElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/FillElement$Companion;\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;-><clinit>()V\nPLandroidx/compose/foundation/layout/FillElement$Companion;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;-><init>()V\nPLandroidx/compose/foundation/layout/FillElement$Companion;-><init>()V\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;->access$systemInsets(ILjava/lang/String;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nPLandroidx/compose/foundation/layout/FillElement$Companion;->access$systemInsets(ILjava/lang/String;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;->access$valueInsetsIgnoringVisibility(ILjava/lang/String;)Landroidx/compose/foundation/layout/ValueInsets;\nPLandroidx/compose/foundation/layout/FillElement$Companion;->access$valueInsetsIgnoringVisibility(ILjava/lang/String;)Landroidx/compose/foundation/layout/ValueInsets;\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;->current(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/WindowInsetsHolder;\nHPLandroidx/compose/foundation/layout/FillElement$Companion;->current(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/WindowInsetsHolder;\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;->height(Landroidx/compose/ui/Alignment$Vertical;Z)Landroidx/compose/foundation/layout/WrapContentElement;\nPLandroidx/compose/foundation/layout/FillElement$Companion;->height(Landroidx/compose/ui/Alignment$Vertical;Z)Landroidx/compose/foundation/layout/WrapContentElement;\nHSPLandroidx/compose/foundation/layout/FillElement$Companion;->size(Landroidx/compose/ui/Alignment;Z)Landroidx/compose/foundation/layout/WrapContentElement;\nPLandroidx/compose/foundation/layout/FillElement$Companion;->size(Landroidx/compose/ui/Alignment;Z)Landroidx/compose/foundation/layout/WrapContentElement;\nLandroidx/compose/foundation/layout/FillNode;\nHSPLandroidx/compose/foundation/layout/FillNode;-><init>(IF)V\nHPLandroidx/compose/foundation/layout/FillNode;-><init>(IF)V\nHSPLandroidx/compose/foundation/layout/FillNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/FillNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/FillNode$measure$1;\nHSPLandroidx/compose/foundation/layout/FillNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;I)V\nPLandroidx/compose/foundation/layout/FillNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;I)V\nHSPLandroidx/compose/foundation/layout/FillNode$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHPLandroidx/compose/foundation/layout/FillNode$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHSPLandroidx/compose/foundation/layout/FillNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/FillNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/FixedIntInsets;\nHSPLandroidx/compose/foundation/layout/FixedIntInsets;-><init>(IIII)V\nHPLandroidx/compose/foundation/layout/FixedIntInsets;-><init>(IIII)V\nHSPLandroidx/compose/foundation/layout/FixedIntInsets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/FixedIntInsets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/FixedIntInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nPLandroidx/compose/foundation/layout/FixedIntInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/FixedIntInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nPLandroidx/compose/foundation/layout/FixedIntInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/FixedIntInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nPLandroidx/compose/foundation/layout/FixedIntInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/FixedIntInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nPLandroidx/compose/foundation/layout/FixedIntInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nLandroidx/compose/foundation/layout/InsetsConsumingModifier;\nHSPLandroidx/compose/foundation/layout/InsetsConsumingModifier;-><init>()V\nPLandroidx/compose/foundation/layout/InsetsConsumingModifier;-><init>()V\nHSPLandroidx/compose/foundation/layout/InsetsConsumingModifier;->getKey()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nHPLandroidx/compose/foundation/layout/InsetsConsumingModifier;->getKey()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nHSPLandroidx/compose/foundation/layout/InsetsConsumingModifier;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/InsetsConsumingModifier;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/foundation/layout/InsetsConsumingModifier;->onModifierLocalsUpdated(Landroidx/compose/ui/modifier/ModifierLocalReadScope;)V\nPLandroidx/compose/foundation/layout/InsetsConsumingModifier;->onModifierLocalsUpdated(Landroidx/compose/ui/modifier/ModifierLocalReadScope;)V\nLandroidx/compose/foundation/layout/InsetsListener;\nHSPLandroidx/compose/foundation/layout/InsetsListener;-><init>(Landroidx/compose/foundation/layout/WindowInsetsHolder;)V\nPLandroidx/compose/foundation/layout/InsetsListener;-><init>(Landroidx/compose/foundation/layout/WindowInsetsHolder;)V\nHSPLandroidx/compose/foundation/layout/InsetsListener;->onApplyWindowInsets(Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;)Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/compose/foundation/layout/InsetsListener;->onApplyWindowInsets(Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;)Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/compose/foundation/layout/InsetsListener;->onViewAttachedToWindow(Landroid/view/View;)V\nPLandroidx/compose/foundation/layout/InsetsListener;->onViewAttachedToWindow(Landroid/view/View;)V\nLandroidx/compose/foundation/layout/InsetsPaddingModifier;\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier;-><init>(Landroidx/compose/foundation/layout/WindowInsets;)V\nPLandroidx/compose/foundation/layout/InsetsPaddingModifier;-><init>(Landroidx/compose/foundation/layout/WindowInsets;)V\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->getKey()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->getKey()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->onModifierLocalsUpdated(Landroidx/compose/ui/modifier/ModifierLocalReadScope;)V\nHPLandroidx/compose/foundation/layout/InsetsPaddingModifier;->onModifierLocalsUpdated(Landroidx/compose/ui/modifier/ModifierLocalReadScope;)V\nLandroidx/compose/foundation/layout/InsetsPaddingModifier$measure$1;\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier$measure$1;-><init>(IILandroidx/compose/ui/layout/Placeable;)V\nPLandroidx/compose/foundation/layout/InsetsPaddingModifier$measure$1;-><init>(IILandroidx/compose/ui/layout/Placeable;)V\nHSPLandroidx/compose/foundation/layout/InsetsPaddingModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/InsetsPaddingModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/InsetsPaddingValues;\nHSPLandroidx/compose/foundation/layout/InsetsPaddingValues;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/unit/Density;)V\nPLandroidx/compose/foundation/layout/InsetsPaddingValues;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateBottomPadding-D9Ej5fM()F\nHPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateBottomPadding-D9Ej5fM()F\nHSPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateLeftPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nHPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateLeftPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nHSPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateRightPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nHPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateRightPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nHSPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateTopPadding-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/InsetsPaddingValues;->calculateTopPadding-D9Ej5fM()F\nLandroidx/compose/foundation/layout/InsetsValues;\nHSPLandroidx/compose/foundation/layout/InsetsValues;-><init>(IIII)V\nHPLandroidx/compose/foundation/layout/InsetsValues;-><init>(IIII)V\nHSPLandroidx/compose/foundation/layout/InsetsValues;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/InsetsValues;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/LayoutWeightElement;\nHSPLandroidx/compose/foundation/layout/LayoutWeightElement;-><init>(FZ)V\nHPLandroidx/compose/foundation/layout/LayoutWeightElement;-><init>(FZ)V\nHSPLandroidx/compose/foundation/layout/LayoutWeightElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/layout/LayoutWeightElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/LayoutWeightElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/LayoutWeightElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/LayoutWeightNode;\nHSPLandroidx/compose/foundation/layout/LayoutWeightNode;-><init>(FZ)V\nHPLandroidx/compose/foundation/layout/LayoutWeightNode;-><init>(FZ)V\nHSPLandroidx/compose/foundation/layout/LayoutWeightNode;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/layout/LayoutWeightNode;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/LimitInsets;\nHSPLandroidx/compose/foundation/layout/LimitInsets;-><init>(Landroidx/compose/foundation/layout/AndroidWindowInsets;I)V\nHPLandroidx/compose/foundation/layout/LimitInsets;-><init>(Landroidx/compose/foundation/layout/AndroidWindowInsets;I)V\nHSPLandroidx/compose/foundation/layout/LimitInsets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/LimitInsets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/LimitInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/LimitInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/LimitInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/LimitInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/LimitInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/LimitInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/LimitInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/LimitInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nLandroidx/compose/foundation/layout/MutableWindowInsets;\nHSPLandroidx/compose/foundation/layout/MutableWindowInsets;-><init>()V\nHPLandroidx/compose/foundation/layout/MutableWindowInsets;-><init>()V\nHSPLandroidx/compose/foundation/layout/MutableWindowInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/MutableWindowInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/MutableWindowInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/MutableWindowInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/MutableWindowInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/MutableWindowInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/MutableWindowInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nPLandroidx/compose/foundation/layout/MutableWindowInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/MutableWindowInsets;->setInsets(Landroidx/compose/foundation/layout/WindowInsets;)V\nHPLandroidx/compose/foundation/layout/MutableWindowInsets;->setInsets(Landroidx/compose/foundation/layout/WindowInsets;)V\nLandroidx/compose/foundation/layout/OffsetKt;\nHSPLandroidx/compose/foundation/layout/OffsetKt;-><init>()V\nPLandroidx/compose/foundation/layout/OffsetKt;-><init>()V\nHSPLandroidx/compose/foundation/layout/OffsetKt;->PaddingValues-YgX7TsA$default(FFI)Landroidx/compose/foundation/layout/PaddingValuesImpl;\nPLandroidx/compose/foundation/layout/OffsetKt;->PaddingValues-YgX7TsA$default(FFI)Landroidx/compose/foundation/layout/PaddingValuesImpl;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->PaddingValues-a9UjIt4$default(FFFFI)Landroidx/compose/foundation/layout/PaddingValuesImpl;\nPLandroidx/compose/foundation/layout/OffsetKt;->PaddingValues-a9UjIt4$default(FFFFI)Landroidx/compose/foundation/layout/PaddingValuesImpl;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/foundation/layout/OffsetKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/foundation/layout/OffsetKt;->WindowInsets$default(II)Landroidx/compose/foundation/layout/WindowInsets;\nPLandroidx/compose/foundation/layout/OffsetKt;->WindowInsets$default(II)Landroidx/compose/foundation/layout/WindowInsets;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->access$getHorizontal$cp()I\nPLandroidx/compose/foundation/layout/OffsetKt;->access$getHorizontal$cp()I\nHSPLandroidx/compose/foundation/layout/OffsetKt;->asPaddingValues(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/layout/SubcomposeMeasureScope;)Landroidx/compose/foundation/layout/PaddingValues;\nPLandroidx/compose/foundation/layout/OffsetKt;->asPaddingValues(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/layout/SubcomposeMeasureScope;)Landroidx/compose/foundation/layout/PaddingValues;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->calculateEndPadding(Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/ui/unit/LayoutDirection;)F\nPLandroidx/compose/foundation/layout/OffsetKt;->calculateEndPadding(Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/ui/unit/LayoutDirection;)F\nHSPLandroidx/compose/foundation/layout/OffsetKt;->calculateStartPadding(Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/ui/unit/LayoutDirection;)F\nPLandroidx/compose/foundation/layout/OffsetKt;->calculateStartPadding(Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/ui/unit/LayoutDirection;)F\nHSPLandroidx/compose/foundation/layout/OffsetKt;->constructor-impl(JI)J\nHPLandroidx/compose/foundation/layout/OffsetKt;->constructor-impl(JI)J\nHSPLandroidx/compose/foundation/layout/OffsetKt;->copy-yUG9Ft0$default(JIII)J\nHPLandroidx/compose/foundation/layout/OffsetKt;->copy-yUG9Ft0$default(JIII)J\nHSPLandroidx/compose/foundation/layout/OffsetKt;->exclude(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/foundation/layout/WindowInsets;\nPLandroidx/compose/foundation/layout/OffsetKt;->exclude(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/foundation/layout/WindowInsets;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->getNavigationBars(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nPLandroidx/compose/foundation/layout/OffsetKt;->getNavigationBars(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->getSystemBars(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHPLandroidx/compose/foundation/layout/OffsetKt;->getSystemBars(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->offset(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/OffsetKt;->offset(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->only-bOOhFvg(Landroidx/compose/foundation/layout/AndroidWindowInsets;I)Landroidx/compose/foundation/layout/WindowInsets;\nPLandroidx/compose/foundation/layout/OffsetKt;->only-bOOhFvg(Landroidx/compose/foundation/layout/AndroidWindowInsets;I)Landroidx/compose/foundation/layout/WindowInsets;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->padding(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/OffsetKt;->padding(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->padding-VpY3zN4$default(Landroidx/compose/ui/Modifier;FFI)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/OffsetKt;->padding-VpY3zN4$default(Landroidx/compose/ui/Modifier;FFI)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->padding-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/OffsetKt;->padding-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->padding-qDBjuR0$default(Landroidx/compose/ui/Modifier;FFFFI)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/OffsetKt;->padding-qDBjuR0$default(Landroidx/compose/ui/Modifier;FFFFI)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->padding-qDBjuR0(Landroidx/compose/ui/Modifier;FFFF)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/OffsetKt;->padding-qDBjuR0(Landroidx/compose/ui/Modifier;FFFF)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->paddingFrom-4j6BHR0$default(Landroidx/compose/ui/Modifier$Companion;Landroidx/compose/ui/layout/HorizontalAlignmentLine;FFI)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/OffsetKt;->paddingFrom-4j6BHR0$default(Landroidx/compose/ui/Modifier$Companion;Landroidx/compose/ui/layout/HorizontalAlignmentLine;FFI)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->paddingFromBaseline-VpY3zN4$default(Landroidx/compose/ui/Modifier$Companion;F)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/OffsetKt;->paddingFromBaseline-VpY3zN4$default(Landroidx/compose/ui/Modifier$Companion;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->paddingFromBaseline-VpY3zN4(Landroidx/compose/ui/Modifier$Companion;FF)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/OffsetKt;->paddingFromBaseline-VpY3zN4(Landroidx/compose/ui/Modifier$Companion;FF)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/OffsetKt;->toBoxConstraints-OenEA2s(JI)J\nHPLandroidx/compose/foundation/layout/OffsetKt;->toBoxConstraints-OenEA2s(JI)J\nHSPLandroidx/compose/foundation/layout/OffsetKt;->toInsetsValues(Landroidx/core/graphics/Insets;)Landroidx/compose/foundation/layout/InsetsValues;\nPLandroidx/compose/foundation/layout/OffsetKt;->toInsetsValues(Landroidx/core/graphics/Insets;)Landroidx/compose/foundation/layout/InsetsValues;\nLandroidx/compose/foundation/layout/OffsetKt$offset$1;\nHSPLandroidx/compose/foundation/layout/OffsetKt$offset$1;-><init>(FFI)V\nHPLandroidx/compose/foundation/layout/OffsetKt$offset$1;-><init>(FFI)V\nLandroidx/compose/foundation/layout/OffsetKt$offset$2;\nHSPLandroidx/compose/foundation/layout/OffsetKt$offset$2;-><init>(ILkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/layout/OffsetKt$offset$2;-><init>(ILkotlin/jvm/functions/Function1;)V\nLandroidx/compose/foundation/layout/OffsetNode$measure$1;\nHSPLandroidx/compose/foundation/layout/OffsetNode$measure$1;-><init>(Landroidx/compose/foundation/layout/OffsetPxNode;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Placeable;)V\nPLandroidx/compose/foundation/layout/OffsetNode$measure$1;-><init>(Landroidx/compose/foundation/layout/OffsetPxNode;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Placeable;)V\nHSPLandroidx/compose/foundation/layout/OffsetNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/foundation/layout/PaddingValuesModifier;)V\nPLandroidx/compose/foundation/layout/OffsetNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/foundation/layout/PaddingValuesModifier;)V\nHSPLandroidx/compose/foundation/layout/OffsetNode$measure$1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/ui/layout/MeasureScope;I)V\nHPLandroidx/compose/foundation/layout/OffsetNode$measure$1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/ui/layout/MeasureScope;I)V\nHSPLandroidx/compose/foundation/layout/OffsetNode$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHPLandroidx/compose/foundation/layout/OffsetNode$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHSPLandroidx/compose/foundation/layout/OffsetNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/OffsetNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/OffsetPxElement;\nHSPLandroidx/compose/foundation/layout/OffsetPxElement;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Z)V\nPLandroidx/compose/foundation/layout/OffsetPxElement;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Z)V\nHSPLandroidx/compose/foundation/layout/OffsetPxElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/layout/OffsetPxElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/foundation/layout/OffsetPxNode;\nHSPLandroidx/compose/foundation/layout/OffsetPxNode;-><init>(ZLkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/layout/OffsetPxNode;-><init>(ZLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/layout/OffsetPxNode;->getOffset()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/foundation/layout/OffsetPxNode;->getOffset()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/foundation/layout/OffsetPxNode;->getRtlAware()Z\nPLandroidx/compose/foundation/layout/OffsetPxNode;->getRtlAware()Z\nHSPLandroidx/compose/foundation/layout/OffsetPxNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nPLandroidx/compose/foundation/layout/OffsetPxNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/PaddingElement;\nHSPLandroidx/compose/foundation/layout/PaddingElement;-><init>(FFFFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/foundation/layout/PaddingElement;-><init>(FFFFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/layout/PaddingElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/layout/PaddingElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/PaddingElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/PaddingElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/PaddingKt$padding$1;\nHSPLandroidx/compose/foundation/layout/PaddingKt$padding$1;-><init>(FFFF)V\nHPLandroidx/compose/foundation/layout/PaddingKt$padding$1;-><init>(FFFF)V\nLandroidx/compose/foundation/layout/PaddingNode;\nHSPLandroidx/compose/foundation/layout/PaddingNode;-><init>(FFFFZ)V\nHPLandroidx/compose/foundation/layout/PaddingNode;-><init>(FFFFZ)V\nHSPLandroidx/compose/foundation/layout/PaddingNode;->getRtlAware()Z\nPLandroidx/compose/foundation/layout/PaddingNode;->getRtlAware()Z\nHSPLandroidx/compose/foundation/layout/PaddingNode;->getStart-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/PaddingNode;->getStart-D9Ej5fM()F\nHSPLandroidx/compose/foundation/layout/PaddingNode;->getTop-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/PaddingNode;->getTop-D9Ej5fM()F\nHSPLandroidx/compose/foundation/layout/PaddingNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/PaddingNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/PaddingValues;\nLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;\nHSPLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;-><init>(Landroidx/compose/foundation/layout/PaddingValues;)V\nPLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;-><init>(Landroidx/compose/foundation/layout/PaddingValues;)V\nHSPLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;->calculateInsets(Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/foundation/layout/WindowInsets;\nPLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;->calculateInsets(Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/foundation/layout/WindowInsets;\nHSPLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/foundation/layout/PaddingValuesConsumingModifier;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/PaddingValuesElement;\nHSPLandroidx/compose/foundation/layout/PaddingValuesElement;-><init>(Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/layout/BoxScopeInstance$align$$inlined$debugInspectorInfo$1;)V\nHPLandroidx/compose/foundation/layout/PaddingValuesElement;-><init>(Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/layout/BoxScopeInstance$align$$inlined$debugInspectorInfo$1;)V\nHSPLandroidx/compose/foundation/layout/PaddingValuesElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/layout/PaddingValuesElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/PaddingValuesElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/PaddingValuesElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/PaddingValuesImpl;\nHSPLandroidx/compose/foundation/layout/PaddingValuesImpl;-><init>(FFFF)V\nHPLandroidx/compose/foundation/layout/PaddingValuesImpl;-><init>(FFFF)V\nHSPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateBottomPadding-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateBottomPadding-D9Ej5fM()F\nHSPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateLeftPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateLeftPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nHSPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateRightPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateRightPadding-u2uoSUM(Landroidx/compose/ui/unit/LayoutDirection;)F\nHSPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateTopPadding-D9Ej5fM()F\nPLandroidx/compose/foundation/layout/PaddingValuesImpl;->calculateTopPadding-D9Ej5fM()F\nHSPLandroidx/compose/foundation/layout/PaddingValuesImpl;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/PaddingValuesImpl;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/PaddingValuesInsets;\nHSPLandroidx/compose/foundation/layout/PaddingValuesInsets;-><init>(Landroidx/compose/foundation/layout/PaddingValues;)V\nPLandroidx/compose/foundation/layout/PaddingValuesInsets;-><init>(Landroidx/compose/foundation/layout/PaddingValues;)V\nPLandroidx/compose/foundation/layout/PaddingValuesInsets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getBottom(Landroidx/compose/ui/unit/Density;)I\nHSPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getLeft(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getRight(Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nHPLandroidx/compose/foundation/layout/PaddingValuesInsets;->getTop(Landroidx/compose/ui/unit/Density;)I\nLandroidx/compose/foundation/layout/PaddingValuesModifier;\nHSPLandroidx/compose/foundation/layout/PaddingValuesModifier;-><init>(Landroidx/compose/foundation/layout/PaddingValues;)V\nPLandroidx/compose/foundation/layout/PaddingValuesModifier;-><init>(Landroidx/compose/foundation/layout/PaddingValues;)V\nHSPLandroidx/compose/foundation/layout/PaddingValuesModifier;->getPaddingValues()Landroidx/compose/foundation/layout/PaddingValues;\nPLandroidx/compose/foundation/layout/PaddingValuesModifier;->getPaddingValues()Landroidx/compose/foundation/layout/PaddingValues;\nHSPLandroidx/compose/foundation/layout/PaddingValuesModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/PaddingValuesModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/RowColumnImplKt;\nHSPLandroidx/compose/foundation/layout/RowColumnImplKt;->getRowColumnParentData(Landroidx/compose/ui/layout/IntrinsicMeasurable;)Landroidx/compose/foundation/layout/RowColumnParentData;\nPLandroidx/compose/foundation/layout/RowColumnImplKt;->getRowColumnParentData(Landroidx/compose/ui/layout/IntrinsicMeasurable;)Landroidx/compose/foundation/layout/RowColumnParentData;\nHSPLandroidx/compose/foundation/layout/RowColumnImplKt;->getWeight(Landroidx/compose/foundation/layout/RowColumnParentData;)F\nPLandroidx/compose/foundation/layout/RowColumnImplKt;->getWeight(Landroidx/compose/foundation/layout/RowColumnParentData;)F\nLandroidx/compose/foundation/layout/RowColumnImplKt$rowColumnMeasurePolicy$1;\nHSPLandroidx/compose/foundation/layout/RowColumnImplKt$rowColumnMeasurePolicy$1;-><init>(ILkotlin/jvm/functions/Function5;FLandroidx/compose/foundation/layout/OffsetKt;)V\nPLandroidx/compose/foundation/layout/RowColumnImplKt$rowColumnMeasurePolicy$1;-><init>(ILkotlin/jvm/functions/Function5;FLandroidx/compose/foundation/layout/OffsetKt;)V\nHSPLandroidx/compose/foundation/layout/RowColumnImplKt$rowColumnMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/RowColumnImplKt$rowColumnMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;\nHSPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;-><init>(IIII[I)V\nPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;-><init>(IIII[I)V\nHSPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getCrossAxisSize()I\nPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getCrossAxisSize()I\nHSPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getEndIndex()I\nPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getEndIndex()I\nHSPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getMainAxisPositions()[I\nPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getMainAxisPositions()[I\nHSPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getMainAxisSize()I\nPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getMainAxisSize()I\nHSPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getStartIndex()I\nPLandroidx/compose/foundation/layout/RowColumnMeasureHelperResult;->getStartIndex()I\nLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;\nHSPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;-><init>(ILkotlin/jvm/functions/Function5;FILandroidx/compose/foundation/layout/OffsetKt;Ljava/util/List;[Landroidx/compose/ui/layout/Placeable;)V\nHPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;-><init>(ILkotlin/jvm/functions/Function5;FILandroidx/compose/foundation/layout/OffsetKt;Ljava/util/List;[Landroidx/compose/ui/layout/Placeable;)V\nHSPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;->mainAxisSize(Landroidx/compose/ui/layout/Placeable;)I\nPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;->mainAxisSize(Landroidx/compose/ui/layout/Placeable;)I\nHSPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;->measureWithoutPlacing-_EkL_-Y(Landroidx/compose/ui/layout/MeasureScope;JII)Landroidx/compose/foundation/layout/RowColumnMeasureHelperResult;\nHPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;->measureWithoutPlacing-_EkL_-Y(Landroidx/compose/ui/layout/MeasureScope;JII)Landroidx/compose/foundation/layout/RowColumnMeasureHelperResult;\nHSPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;->placeHelper(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/foundation/layout/RowColumnMeasureHelperResult;ILandroidx/compose/ui/unit/LayoutDirection;)V\nHPLandroidx/compose/foundation/layout/RowColumnMeasurementHelper;->placeHelper(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/foundation/layout/RowColumnMeasureHelperResult;ILandroidx/compose/ui/unit/LayoutDirection;)V\nLandroidx/compose/foundation/layout/RowColumnParentData;\nHSPLandroidx/compose/foundation/layout/RowColumnParentData;-><init>()V\nPLandroidx/compose/foundation/layout/RowColumnParentData;-><init>()V\nHSPLandroidx/compose/foundation/layout/RowColumnParentData;->getCrossAxisAlignment()Landroidx/compose/foundation/layout/OffsetKt;\nPLandroidx/compose/foundation/layout/RowColumnParentData;->getCrossAxisAlignment()Landroidx/compose/foundation/layout/OffsetKt;\nHSPLandroidx/compose/foundation/layout/RowColumnParentData;->getFill()Z\nPLandroidx/compose/foundation/layout/RowColumnParentData;->getFill()Z\nHSPLandroidx/compose/foundation/layout/RowColumnParentData;->getWeight()F\nPLandroidx/compose/foundation/layout/RowColumnParentData;->getWeight()F\nHSPLandroidx/compose/foundation/layout/RowColumnParentData;->setFill(Z)V\nPLandroidx/compose/foundation/layout/RowColumnParentData;->setFill(Z)V\nHSPLandroidx/compose/foundation/layout/RowColumnParentData;->setWeight(F)V\nPLandroidx/compose/foundation/layout/RowColumnParentData;->setWeight(F)V\nLandroidx/compose/foundation/layout/RowKt;\nHSPLandroidx/compose/foundation/layout/RowKt;-><clinit>()V\nPLandroidx/compose/foundation/layout/RowKt;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/RowKt;->rowMeasurePolicy(Landroidx/compose/foundation/layout/Arrangement$Horizontal;Landroidx/compose/ui/BiasAlignment$Vertical;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/foundation/layout/RowKt;->rowMeasurePolicy(Landroidx/compose/foundation/layout/Arrangement$Horizontal;Landroidx/compose/ui/BiasAlignment$Vertical;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/layout/MeasurePolicy;\nLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;\nHSPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;-><clinit>()V\nPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;-><init>(I)V\nPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;-><init>(I)V\nHSPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;->invoke(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;->invoke(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHSPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/RowKt$DefaultRowMeasurePolicy$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;\nHSPLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;-><init>(Landroidx/compose/foundation/layout/Arrangement$Horizontal;I)V\nPLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;-><init>(Landroidx/compose/foundation/layout/Arrangement$Horizontal;I)V\nHSPLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;->invoke(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHPLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;->invoke(ILandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;[I[I)V\nHSPLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/RowKt$rowMeasurePolicy$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/RowScope;\nLandroidx/compose/foundation/layout/RowScopeInstance;\nHSPLandroidx/compose/foundation/layout/RowScopeInstance;-><clinit>()V\nPLandroidx/compose/foundation/layout/RowScopeInstance;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/RowScopeInstance;-><init>()V\nPLandroidx/compose/foundation/layout/RowScopeInstance;-><init>()V\nHSPLandroidx/compose/foundation/layout/RowScopeInstance;->weight(Landroidx/compose/ui/Modifier;FZ)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/RowScopeInstance;->weight(Landroidx/compose/ui/Modifier;FZ)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/layout/SizeElement;\nHSPLandroidx/compose/foundation/layout/SizeElement;-><init>(FFFFZLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/foundation/layout/SizeElement;-><init>(FFFFZLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/layout/SizeElement;-><init>(FFFFZLkotlin/jvm/functions/Function1;I)V\nHPLandroidx/compose/foundation/layout/SizeElement;-><init>(FFFFZLkotlin/jvm/functions/Function1;I)V\nHSPLandroidx/compose/foundation/layout/SizeElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/layout/SizeElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/SizeElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/SizeElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/SizeKt;\nHSPLandroidx/compose/foundation/layout/SizeKt;-><clinit>()V\nPLandroidx/compose/foundation/layout/SizeKt;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/SizeKt;->defaultMinSize-VpY3zN4$default(Landroidx/compose/ui/Modifier;FFI)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/SizeKt;->defaultMinSize-VpY3zN4$default(Landroidx/compose/ui/Modifier;FFI)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->defaultMinSize-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/SizeKt;->defaultMinSize-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->fillMaxWidth(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/SizeKt;->fillMaxWidth(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->height-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/SizeKt;->height-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->requiredSize-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/SizeKt;->requiredSize-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->requiredSize-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/SizeKt;->requiredSize-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->size-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/SizeKt;->size-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->sizeIn-qDBjuR0$default(Landroidx/compose/ui/Modifier;FFFFI)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/SizeKt;->sizeIn-qDBjuR0$default(Landroidx/compose/ui/Modifier;FFFFI)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->width-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/SizeKt;->width-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/SizeKt;->wrapContentSize$default(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/BiasAlignment;I)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/SizeKt;->wrapContentSize$default(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/BiasAlignment;I)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/layout/SizeNode;\nHSPLandroidx/compose/foundation/layout/SizeNode;-><init>(FFFFZ)V\nHPLandroidx/compose/foundation/layout/SizeNode;-><init>(FFFFZ)V\nHSPLandroidx/compose/foundation/layout/SizeNode;->getTargetConstraints-OenEA2s(Landroidx/compose/ui/unit/Density;)J\nHPLandroidx/compose/foundation/layout/SizeNode;->getTargetConstraints-OenEA2s(Landroidx/compose/ui/unit/Density;)J\nHSPLandroidx/compose/foundation/layout/SizeNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/SizeNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/SpacerMeasurePolicy;\nHSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy;-><clinit>()V\nPLandroidx/compose/foundation/layout/SpacerMeasurePolicy;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy;-><init>()V\nPLandroidx/compose/foundation/layout/SpacerMeasurePolicy;-><init>()V\nHSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/SpacerMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;\nHSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;-><clinit>()V\nPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;-><init>(I)V\nPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;-><init>(I)V\nHSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/UnionInsets;\nHSPLandroidx/compose/foundation/layout/UnionInsets;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nPLandroidx/compose/foundation/layout/UnionInsets;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nHSPLandroidx/compose/foundation/layout/UnionInsets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/UnionInsets;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;\nHSPLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;-><init>(FF)V\nHPLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;-><init>(FF)V\nHSPLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/layout/UnspecifiedConstraintsElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/layout/UnspecifiedConstraintsNode;\nHSPLandroidx/compose/foundation/layout/UnspecifiedConstraintsNode;-><init>(FF)V\nPLandroidx/compose/foundation/layout/UnspecifiedConstraintsNode;-><init>(FF)V\nHSPLandroidx/compose/foundation/layout/UnspecifiedConstraintsNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/UnspecifiedConstraintsNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/ValueInsets;\nHSPLandroidx/compose/foundation/layout/ValueInsets;-><init>(Landroidx/compose/foundation/layout/InsetsValues;Ljava/lang/String;)V\nHPLandroidx/compose/foundation/layout/ValueInsets;-><init>(Landroidx/compose/foundation/layout/InsetsValues;Ljava/lang/String;)V\nHSPLandroidx/compose/foundation/layout/ValueInsets;->setValue$foundation_layout_release(Landroidx/compose/foundation/layout/InsetsValues;)V\nHPLandroidx/compose/foundation/layout/ValueInsets;->setValue$foundation_layout_release(Landroidx/compose/foundation/layout/InsetsValues;)V\nLandroidx/compose/foundation/layout/WindowInsets;\nHSPLandroidx/compose/foundation/layout/WindowInsets;-><clinit>()V\nPLandroidx/compose/foundation/layout/WindowInsets;-><clinit>()V\nLandroidx/compose/foundation/layout/WindowInsetsHolder;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;-><clinit>()V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;-><init>(Landroid/view/View;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;-><init>(Landroid/view/View;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->access$getViewMap$cp()Ljava/util/WeakHashMap;\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->access$getViewMap$cp()Ljava/util/WeakHashMap;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->decrementAccessors(Landroid/view/View;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->decrementAccessors(Landroid/view/View;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getConsumes()Z\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getConsumes()Z\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getNavigationBars()Landroidx/compose/foundation/layout/AndroidWindowInsets;\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getNavigationBars()Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getStatusBars()Landroidx/compose/foundation/layout/AndroidWindowInsets;\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getStatusBars()Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getSystemBars()Landroidx/compose/foundation/layout/AndroidWindowInsets;\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->getSystemBars()Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->incrementAccessors(Landroid/view/View;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->incrementAccessors(Landroid/view/View;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->update$default(Landroidx/compose/foundation/layout/WindowInsetsHolder;Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->update$default(Landroidx/compose/foundation/layout/WindowInsetsHolder;Landroidx/core/view/WindowInsetsCompat;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->updateImeAnimationSource(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->updateImeAnimationSource(Landroidx/core/view/WindowInsetsCompat;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder;->updateImeAnimationTarget(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder;->updateImeAnimationTarget(Landroidx/core/view/WindowInsetsCompat;)V\nLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1;-><init>(Landroidx/compose/foundation/layout/WindowInsetsHolder;Landroid/view/View;)V\nPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1;-><init>(Landroidx/compose/foundation/layout/WindowInsetsHolder;Landroid/view/View;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/foundation/layout/WindowInsetsHolder;Landroid/view/View;)V\nHPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/foundation/layout/WindowInsetsHolder;Landroid/view/View;)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/foundation/layout/WindowInsetsHolder$Companion$current$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;-><clinit>()V\nPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->consumeWindowInsets(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->consumeWindowInsets(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->getModifierLocalConsumedWindowInsets()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->getModifierLocalConsumedWindowInsets()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->onConsumedWindowInsetsChanged(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->onConsumedWindowInsetsChanged(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->windowInsetsPadding(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->windowInsetsPadding(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;-><clinit>()V\nPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;-><clinit>()V\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;-><init>()V\nPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;-><init>()V\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;-><init>(Landroidx/compose/foundation/layout/WindowInsets;I)V\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;-><init>(Landroidx/compose/foundation/layout/WindowInsets;I)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;->invoke(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;->invoke(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;->invoke(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;->invoke(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$consumeWindowInsets$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/layout/WrapContentElement;\nHSPLandroidx/compose/foundation/layout/WrapContentElement;-><init>(IZLkotlin/jvm/functions/Function2;Ljava/lang/Object;)V\nPLandroidx/compose/foundation/layout/WrapContentElement;-><init>(IZLkotlin/jvm/functions/Function2;Ljava/lang/Object;)V\nHSPLandroidx/compose/foundation/layout/WrapContentElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/foundation/layout/WrapContentElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/foundation/layout/WrapContentNode;\nHSPLandroidx/compose/foundation/layout/WrapContentNode;-><init>(IZLkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/foundation/layout/WrapContentNode;-><init>(IZLkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/foundation/layout/WrapContentNode;->getAlignmentCallback()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/foundation/layout/WrapContentNode;->getAlignmentCallback()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/foundation/layout/WrapContentNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/layout/WrapContentNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/layout/WrapContentNode$measure$1;\nHSPLandroidx/compose/foundation/layout/WrapContentNode$measure$1;-><init>(Landroidx/compose/foundation/layout/WrapContentNode;ILandroidx/compose/ui/layout/Placeable;ILandroidx/compose/ui/layout/MeasureScope;)V\nPLandroidx/compose/foundation/layout/WrapContentNode$measure$1;-><init>(Landroidx/compose/foundation/layout/WrapContentNode;ILandroidx/compose/ui/layout/Placeable;ILandroidx/compose/ui/layout/MeasureScope;)V\nHSPLandroidx/compose/foundation/layout/WrapContentNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/layout/WrapContentNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo;\nHSPLandroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo;-><clinit>()V\nPLandroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo;-><init>()V\nPLandroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo;-><init>()V\nLandroidx/compose/foundation/lazy/LazyDslKt;\nHSPLandroidx/compose/foundation/lazy/LazyDslKt;->LazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/foundation/lazy/LazyDslKt;->LazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/foundation/lazy/LazyDslKt;->LazyList(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZZLandroidx/compose/foundation/gestures/FlingBehavior;ZILandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V\nHPLandroidx/compose/foundation/lazy/LazyDslKt;->LazyList(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZZLandroidx/compose/foundation/gestures/FlingBehavior;ZILandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V\nHSPLandroidx/compose/foundation/lazy/LazyDslKt;->ScrollPositionUpdater(ILandroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/foundation/lazy/LazyDslKt;->ScrollPositionUpdater(ILandroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/foundation/lazy/LazyItemScopeImpl;\nHSPLandroidx/compose/foundation/lazy/LazyItemScopeImpl;-><init>()V\nPLandroidx/compose/foundation/lazy/LazyItemScopeImpl;-><init>()V\nHSPLandroidx/compose/foundation/lazy/LazyItemScopeImpl;->setMaxSize(II)V\nHPLandroidx/compose/foundation/lazy/LazyItemScopeImpl;->setMaxSize(II)V\nLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;\nHSPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;Z)V\nPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;Z)V\nHSPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;->collectionInfo()Landroidx/compose/ui/semantics/CollectionInfo;\nPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;->collectionInfo()Landroidx/compose/ui/semantics/CollectionInfo;\nPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;->getCanScrollForward()Z\nPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;->getFirstVisibleItemIndex()I\nPLandroidx/compose/foundation/lazy/LazyLayoutSemanticStateKt$LazyLayoutSemanticState$1;->getFirstVisibleItemScrollOffset()I\nLandroidx/compose/foundation/lazy/LazyListAnimateScrollScope;\nHSPLandroidx/compose/foundation/lazy/LazyListAnimateScrollScope;-><init>(Landroidx/compose/foundation/lazy/LazyListState;)V\nPLandroidx/compose/foundation/lazy/LazyListAnimateScrollScope;-><init>(Landroidx/compose/foundation/lazy/LazyListState;)V\nLandroidx/compose/foundation/lazy/LazyListBeyondBoundsState;\nHSPLandroidx/compose/foundation/lazy/LazyListBeyondBoundsState;-><init>(Landroidx/compose/foundation/lazy/LazyListState;I)V\nPLandroidx/compose/foundation/lazy/LazyListBeyondBoundsState;-><init>(Landroidx/compose/foundation/lazy/LazyListState;I)V\nLandroidx/compose/foundation/lazy/LazyListInterval;\nHSPLandroidx/compose/foundation/lazy/LazyListInterval;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/foundation/lazy/LazyListInterval;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/foundation/lazy/LazyListInterval;->getItem()Lkotlin/jvm/functions/Function4;\nPLandroidx/compose/foundation/lazy/LazyListInterval;->getItem()Lkotlin/jvm/functions/Function4;\nHSPLandroidx/compose/foundation/lazy/LazyListInterval;->getKey()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/foundation/lazy/LazyListInterval;->getKey()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/foundation/lazy/LazyListInterval;->getType()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/foundation/lazy/LazyListInterval;->getType()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/foundation/lazy/LazyListIntervalContent;\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/foundation/lazy/LazyListIntervalContent;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->getHeaderIndexes()Ljava/util/List;\nPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->getHeaderIndexes()Ljava/util/List;\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->getIntervals$1()Landroidx/compose/foundation/lazy/layout/MutableIntervalList;\nHPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->getIntervals$1()Landroidx/compose/foundation/lazy/layout/MutableIntervalList;\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->item(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->item(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLandroidx/compose/foundation/lazy/LazyListIntervalContent;->items(ILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$1;\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$3;\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$3;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$3;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListIntervalContent$item$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListItemInfo;\nLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;\nHSPLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;-><init>()V\nHPLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;-><init>()V\nHSPLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;->onMeasured(IIILjava/util/ArrayList;Landroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;ZZZ)V\nHPLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;->onMeasured(IIILjava/util/ArrayList;Landroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;ZZZ)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;->reset()V\nPLandroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;->reset()V\nLandroidx/compose/foundation/lazy/LazyListItemProvider;\nLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;-><init>(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/lazy/LazyListIntervalContent;Landroidx/compose/foundation/lazy/LazyItemScopeImpl;Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)V\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;-><init>(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/lazy/LazyListIntervalContent;Landroidx/compose/foundation/lazy/LazyItemScopeImpl;Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->Item(ILjava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->Item(ILjava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->access$getIntervalContent$p(Landroidx/compose/foundation/lazy/LazyListItemProviderImpl;)Landroidx/compose/foundation/lazy/LazyListIntervalContent;\nPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->access$getIntervalContent$p(Landroidx/compose/foundation/lazy/LazyListItemProviderImpl;)Landroidx/compose/foundation/lazy/LazyListIntervalContent;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getContentType(I)Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getContentType(I)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getHeaderIndexes()Ljava/util/List;\nPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getHeaderIndexes()Ljava/util/List;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getItemCount()I\nPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getItemCount()I\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getItemScope()Landroidx/compose/foundation/lazy/LazyItemScopeImpl;\nPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getItemScope()Landroidx/compose/foundation/lazy/LazyItemScopeImpl;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getKey(I)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl;->getKey(I)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListItemProviderImpl$Item$1;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl$Item$1;-><init>(Landroidx/compose/foundation/lazy/LazyListItemProviderImpl;I)V\nPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl$Item$1;-><init>(Landroidx/compose/foundation/lazy/LazyListItemProviderImpl;I)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl$Item$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderImpl$Item$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$1;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$1;-><init>(Ljava/lang/Object;)V\nPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$1;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$1;->get()Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$1;->get()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$intervalContentState$1;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$intervalContentState$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$intervalContentState$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$intervalContentState$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$intervalContentState$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$itemProviderState$1;\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$itemProviderState$1;-><init>(Landroidx/compose/runtime/State;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/lazy/LazyItemScopeImpl;)V\nPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$itemProviderState$1;-><init>(Landroidx/compose/runtime/State;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/lazy/LazyItemScopeImpl;)V\nHSPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$itemProviderState$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListItemProviderKt$rememberLazyListItemProviderLambda$1$itemProviderState$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListKt$ScrollPositionUpdater$1;\nHSPLandroidx/compose/foundation/lazy/LazyListKt$ScrollPositionUpdater$1;-><init>(ILandroidx/compose/foundation/lazy/LazyListState;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/foundation/lazy/LazyListKt$ScrollPositionUpdater$1;-><init>(ILandroidx/compose/foundation/lazy/LazyListState;Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1;\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;ZLandroidx/compose/foundation/layout/PaddingValues;ZLkotlin/reflect/KProperty0;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;ILandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/ui/Alignment$Vertical;)V\nPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;ZLandroidx/compose/foundation/layout/PaddingValues;ZLkotlin/reflect/KProperty0;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;ILandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/ui/Alignment$Vertical;)V\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$2;\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$2;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;JII)V\nHPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$2;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;JII)V\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;-><init>(JZLandroidx/compose/foundation/lazy/LazyListItemProvider;Landroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;IILandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/ui/Alignment$Vertical;ZIIJ)V\nHPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;-><init>(JZLandroidx/compose/foundation/lazy/LazyListItemProvider;Landroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;IILandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/ui/Alignment$Vertical;ZIIJ)V\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;->getAndMeasure(I)Landroidx/compose/foundation/lazy/LazyListMeasuredItem;\nHPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;->getAndMeasure(I)Landroidx/compose/foundation/lazy/LazyListMeasuredItem;\nHSPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;->getChildConstraints-msEJaDk()J\nPLandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;->getChildConstraints-msEJaDk()J\nLandroidx/compose/foundation/lazy/LazyListLayoutInfo;\nLandroidx/compose/foundation/lazy/LazyListMeasureKt;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureKt;->measureLazyList-qnDatfE(ILandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;IIIIIIFJZLjava/util/List;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;ZLandroidx/compose/ui/unit/Density;Landroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;ILjava/util/List;ZZLandroidx/compose/foundation/lazy/LazyListMeasureResult;Lkotlin/jvm/functions/Function3;)Landroidx/compose/foundation/lazy/LazyListMeasureResult;\nHPLandroidx/compose/foundation/lazy/LazyListMeasureKt;->measureLazyList-qnDatfE(ILandroidx/compose/foundation/lazy/LazyListKt$rememberLazyListMeasurePolicy$1$1$measuredItemProvider$1;IIIIIIFJZLjava/util/List;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;ZLandroidx/compose/ui/unit/Density;Landroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;ILjava/util/List;ZZLandroidx/compose/foundation/lazy/LazyListMeasureResult;Lkotlin/jvm/functions/Function3;)Landroidx/compose/foundation/lazy/LazyListMeasureResult;\nLandroidx/compose/foundation/lazy/LazyListMeasureKt$measureLazyList$8;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureKt$measureLazyList$8;-><init>(Ljava/util/ArrayList;Landroidx/compose/foundation/lazy/LazyListMeasuredItem;Z)V\nHPLandroidx/compose/foundation/lazy/LazyListMeasureKt$measureLazyList$8;-><init>(Ljava/util/ArrayList;Landroidx/compose/foundation/lazy/LazyListMeasuredItem;Z)V\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureKt$measureLazyList$8;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListMeasureKt$measureLazyList$8;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListMeasureResult;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;-><init>(Landroidx/compose/foundation/lazy/LazyListMeasuredItem;IZFLandroidx/compose/ui/layout/MeasureResult;FLjava/util/List;IIILandroidx/compose/foundation/gestures/Orientation;II)V\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;-><init>(Landroidx/compose/foundation/lazy/LazyListMeasuredItem;IZFLandroidx/compose/ui/layout/MeasureResult;FLjava/util/List;IIILandroidx/compose/foundation/gestures/Orientation;II)V\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getAfterContentPadding()I\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getAfterContentPadding()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getAlignmentLines()Ljava/util/Map;\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getAlignmentLines()Ljava/util/Map;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getBeforeContentPadding()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getBeforeContentPadding()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getCanScrollForward()Z\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getCanScrollForward()Z\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getConsumedScroll()F\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getConsumedScroll()F\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getFirstVisibleItem()Landroidx/compose/foundation/lazy/LazyListMeasuredItem;\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getFirstVisibleItem()Landroidx/compose/foundation/lazy/LazyListMeasuredItem;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getFirstVisibleItemScrollOffset()I\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getFirstVisibleItemScrollOffset()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getHeight()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getHeight()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getTotalItemsCount()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getTotalItemsCount()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getViewportSize-YbymL2g()J\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getViewportSize-YbymL2g()J\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getVisibleItemsInfo()Ljava/util/List;\nPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getVisibleItemsInfo()Ljava/util/List;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getWidth()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->getWidth()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->placeChildren()V\nHPLandroidx/compose/foundation/lazy/LazyListMeasureResult;->placeChildren()V\nLandroidx/compose/foundation/lazy/LazyListMeasuredItem;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;-><init>(ILjava/util/List;ZLandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/ui/Alignment$Vertical;Landroidx/compose/ui/unit/LayoutDirection;ZIIIJLjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;-><init>(ILjava/util/List;ZLandroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/ui/Alignment$Vertical;Landroidx/compose/ui/unit/LayoutDirection;ZIIIJLjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getCrossAxisSize()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getCrossAxisSize()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getIndex()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getIndex()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getKey()Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getKey()Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getOffset()I\nPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getOffset()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getOffset-Bjo55l4(I)J\nPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getOffset-Bjo55l4(I)J\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getParentData(I)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getParentData(I)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getPlaceablesCount()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getPlaceablesCount()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getSize()I\nPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getSize()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getSizeWithSpacings()I\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->getSizeWithSpacings()I\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->place(Landroidx/compose/ui/layout/Placeable$PlacementScope;Z)V\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->place(Landroidx/compose/ui/layout/Placeable$PlacementScope;Z)V\nHSPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->position(III)V\nHPLandroidx/compose/foundation/lazy/LazyListMeasuredItem;->position(III)V\nLandroidx/compose/foundation/lazy/LazyListScope;\nHSPLandroidx/compose/foundation/lazy/LazyListScope;->item$default(Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/Object;Landroidx/compose/runtime/internal/ComposableLambdaImpl;I)V\nHPLandroidx/compose/foundation/lazy/LazyListScope;->item$default(Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/Object;Landroidx/compose/runtime/internal/ComposableLambdaImpl;I)V\nLandroidx/compose/foundation/lazy/LazyListScope$items$1;\nHSPLandroidx/compose/foundation/lazy/LazyListScope$items$1;-><clinit>()V\nPLandroidx/compose/foundation/lazy/LazyListScope$items$1;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/LazyListScope$items$1;-><init>(I)V\nPLandroidx/compose/foundation/lazy/LazyListScope$items$1;-><init>(I)V\nLandroidx/compose/foundation/lazy/LazyListScrollPosition;\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;-><init>(III)V\nPLandroidx/compose/foundation/lazy/LazyListScrollPosition;-><init>(III)V\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->getIndex()I\nHPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->getIndex()I\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->getNearestRangeState()Landroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;\nPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->getNearestRangeState()Landroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->getScrollOffset()I\nHPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->getScrollOffset()I\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->update(II)V\nHPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->update(II)V\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->updateFromMeasureResult(Landroidx/compose/foundation/lazy/LazyListMeasureResult;)V\nPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->updateFromMeasureResult(Landroidx/compose/foundation/lazy/LazyListMeasureResult;)V\nHSPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->updateScrollPositionIfTheFirstItemWasMoved(Landroidx/compose/foundation/lazy/LazyListItemProvider;I)I\nPLandroidx/compose/foundation/lazy/LazyListScrollPosition;->updateScrollPositionIfTheFirstItemWasMoved(Landroidx/compose/foundation/lazy/LazyListItemProvider;I)I\nLandroidx/compose/foundation/lazy/LazyListState;\nHSPLandroidx/compose/foundation/lazy/LazyListState;-><clinit>()V\nPLandroidx/compose/foundation/lazy/LazyListState;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/LazyListState;-><init>(II)V\nHPLandroidx/compose/foundation/lazy/LazyListState;-><init>(II)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/foundation/lazy/LazyListState;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->access$setRemeasurement$p(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/foundation/lazy/LazyListState;->access$setRemeasurement$p(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->applyMeasureResult$foundation_release(Landroidx/compose/foundation/lazy/LazyListMeasureResult;Z)V\nHPLandroidx/compose/foundation/lazy/LazyListState;->applyMeasureResult$foundation_release(Landroidx/compose/foundation/lazy/LazyListMeasureResult;Z)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getAwaitLayoutModifier$foundation_release()Landroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;\nPLandroidx/compose/foundation/lazy/LazyListState;->getAwaitLayoutModifier$foundation_release()Landroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getBeyondBoundsInfo$foundation_release()Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;\nPLandroidx/compose/foundation/lazy/LazyListState;->getBeyondBoundsInfo$foundation_release()Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;\nPLandroidx/compose/foundation/lazy/LazyListState;->getCanScrollForward()Z\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getFirstVisibleItemIndex()I\nPLandroidx/compose/foundation/lazy/LazyListState;->getFirstVisibleItemIndex()I\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getFirstVisibleItemScrollOffset()I\nPLandroidx/compose/foundation/lazy/LazyListState;->getFirstVisibleItemScrollOffset()I\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getHasLookaheadPassOccurred$foundation_release()Z\nPLandroidx/compose/foundation/lazy/LazyListState;->getHasLookaheadPassOccurred$foundation_release()Z\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getInternalInteractionSource$foundation_release()Landroidx/compose/foundation/interaction/MutableInteractionSource;\nPLandroidx/compose/foundation/lazy/LazyListState;->getInternalInteractionSource$foundation_release()Landroidx/compose/foundation/interaction/MutableInteractionSource;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getLayoutInfo()Landroidx/compose/foundation/lazy/LazyListLayoutInfo;\nPLandroidx/compose/foundation/lazy/LazyListState;->getLayoutInfo()Landroidx/compose/foundation/lazy/LazyListLayoutInfo;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getNearestRange$foundation_release()Lkotlin/ranges/IntRange;\nPLandroidx/compose/foundation/lazy/LazyListState;->getNearestRange$foundation_release()Lkotlin/ranges/IntRange;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getPinnedItems$foundation_release()Landroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;\nPLandroidx/compose/foundation/lazy/LazyListState;->getPinnedItems$foundation_release()Landroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getPlacementAnimator$foundation_release()Landroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;\nPLandroidx/compose/foundation/lazy/LazyListState;->getPlacementAnimator$foundation_release()Landroidx/compose/foundation/lazy/LazyListItemPlacementAnimator;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getPostLookaheadLayoutInfo$foundation_release()Landroidx/compose/foundation/lazy/LazyListMeasureResult;\nPLandroidx/compose/foundation/lazy/LazyListState;->getPostLookaheadLayoutInfo$foundation_release()Landroidx/compose/foundation/lazy/LazyListMeasureResult;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getPrefetchState$foundation_release()Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;\nPLandroidx/compose/foundation/lazy/LazyListState;->getPrefetchState$foundation_release()Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getRemeasurementModifier$foundation_release()Landroidx/compose/ui/layout/RemeasurementModifier;\nPLandroidx/compose/foundation/lazy/LazyListState;->getRemeasurementModifier$foundation_release()Landroidx/compose/ui/layout/RemeasurementModifier;\nHSPLandroidx/compose/foundation/lazy/LazyListState;->getScrollToBeConsumed$foundation_release()F\nPLandroidx/compose/foundation/lazy/LazyListState;->getScrollToBeConsumed$foundation_release()F\nPLandroidx/compose/foundation/lazy/LazyListState;->isScrollInProgress()Z\nHSPLandroidx/compose/foundation/lazy/LazyListState;->setCoroutineScope$foundation_release(Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/compose/foundation/lazy/LazyListState;->setCoroutineScope$foundation_release(Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->setDensity$foundation_release(Landroidx/compose/ui/unit/Density;)V\nPLandroidx/compose/foundation/lazy/LazyListState;->setDensity$foundation_release(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->setPremeasureConstraints-BRTryo0$foundation_release(J)V\nPLandroidx/compose/foundation/lazy/LazyListState;->setPremeasureConstraints-BRTryo0$foundation_release(J)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->updateScrollPositionIfTheFirstItemWasMoved$foundation_release$default(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/lazy/LazyListItemProvider;)V\nHPLandroidx/compose/foundation/lazy/LazyListState;->updateScrollPositionIfTheFirstItemWasMoved$foundation_release$default(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/lazy/LazyListItemProvider;)V\nHSPLandroidx/compose/foundation/lazy/LazyListState;->updateScrollPositionIfTheFirstItemWasMoved$foundation_release(Landroidx/compose/foundation/lazy/LazyListItemProvider;I)I\nPLandroidx/compose/foundation/lazy/LazyListState;->updateScrollPositionIfTheFirstItemWasMoved$foundation_release(Landroidx/compose/foundation/lazy/LazyListItemProvider;I)I\nLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;\nHSPLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;-><clinit>()V\nPLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;-><init>()V\nPLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;-><init>()V\nHSPLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/LazyListState$Companion$Saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/LazyListState$remeasurementModifier$1;\nHSPLandroidx/compose/foundation/lazy/LazyListState$remeasurementModifier$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;)V\nPLandroidx/compose/foundation/lazy/LazyListState$remeasurementModifier$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;)V\nHSPLandroidx/compose/foundation/lazy/LazyListState$remeasurementModifier$1;->onRemeasurementAvailable(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/foundation/lazy/LazyListState$remeasurementModifier$1;->onRemeasurementAvailable(Landroidx/compose/ui/node/LayoutNode;)V\nLandroidx/compose/foundation/lazy/LazyListStateKt;\nHSPLandroidx/compose/foundation/lazy/LazyListStateKt;-><clinit>()V\nPLandroidx/compose/foundation/lazy/LazyListStateKt;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/LazyListStateKt;->rememberLazyListState(ILandroidx/compose/runtime/Composer;I)Landroidx/compose/foundation/lazy/LazyListState;\nHPLandroidx/compose/foundation/lazy/LazyListStateKt;->rememberLazyListState(ILandroidx/compose/runtime/Composer;I)Landroidx/compose/foundation/lazy/LazyListState;\nLandroidx/compose/foundation/lazy/LazyListStateKt$rememberLazyListState$1$1;\nHSPLandroidx/compose/foundation/lazy/LazyListStateKt$rememberLazyListState$1$1;-><init>(II)V\nPLandroidx/compose/foundation/lazy/LazyListStateKt$rememberLazyListState$1$1;-><init>(II)V\nHSPLandroidx/compose/foundation/lazy/LazyListStateKt$rememberLazyListState$1$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/LazyListStateKt$rememberLazyListState$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/ParentSizeNode$measure$1;\nHSPLandroidx/compose/foundation/lazy/ParentSizeNode$measure$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/lazy/ParentSizeNode$measure$1;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;\nHSPLandroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;->onGloballyPositioned()V\nPLandroidx/compose/foundation/lazy/layout/AwaitFirstLayoutModifier;->onGloballyPositioned()V\nLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;-><clinit>()V\nPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;-><init>(I)V\nPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;-><init>(I)V\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;->hashCode()I\nHPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey;->hashCode()I\nLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion;\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion;-><clinit>()V\nPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion;-><init>()V\nLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion$CREATOR$1;\nHSPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion$CREATOR$1;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/DefaultLazyKey$Companion$CREATOR$1;-><init>()V\nLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;\nHSPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;-><init>(IILandroidx/compose/foundation/lazy/layout/LazyLayoutIntervalContent$Interval;)V\nHPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;-><init>(IILandroidx/compose/foundation/lazy/layout/LazyLayoutIntervalContent$Interval;)V\nHSPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;->getSize()I\nPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;->getSize()I\nHSPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;->getStartIndex()I\nHPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;->getStartIndex()I\nHSPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;->getValue()Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/layout/IntervalList$Interval;->getValue()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyAnimateScrollScope;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutAnimateItemModifierNode;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;->hasIntervals()Z\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;->hasIntervals()Z\nLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo$Interval;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal;-><clinit>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsState;Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;ZLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/foundation/gestures/Orientation;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsState;Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;ZLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/foundation/gestures/Orientation;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal;->getKey()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal$Companion$emptyBeyondBoundsScope$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal$Companion$emptyBeyondBoundsScope$1;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsModifierLocal$Companion$emptyBeyondBoundsScope$1;-><init>()V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsState;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsStateKt;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsStateKt;->calculateLazyLayoutPinnedIndices(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;Landroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;)Ljava/util/List;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsStateKt;->calculateLazyLayoutPinnedIndices(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;Landroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;Landroidx/compose/foundation/lazy/layout/LazyLayoutBeyondBoundsInfo;)Ljava/util/List;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutIntervalContent$Interval;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolder;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolder;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;->access$getSaveableStateHolder$p(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;)Landroidx/compose/runtime/saveable/SaveableStateHolder;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;->access$getSaveableStateHolder$p(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;)Landroidx/compose/runtime/saveable/SaveableStateHolder;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;->getContent(ILjava/lang/Object;Ljava/lang/Object;)Lkotlin/jvm/functions/Function2;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;->getContent(ILjava/lang/Object;Ljava/lang/Object;)Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;->getItemProvider()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;->getItemProvider()Lkotlin/jvm/functions/Function0;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;ILjava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;ILjava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->access$set_content$p(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getContent()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getContent()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getContentType()Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getContentType()Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getIndex()I\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getIndex()I\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getKey()Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;->getKey()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactoryKt$SkippableItem$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactoryKt$SkippableItem$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;ILjava/lang/Object;I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactoryKt$SkippableItem$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;ILjava/lang/Object;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactoryKt$SkippableItem$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactoryKt$SkippableItem$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactoryKt$SkippableItem$2;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutItemReusePolicy;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemReusePolicy;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemReusePolicy;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;)V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutKeyIndexMap;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKeyIndexMap;-><clinit>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutKeyIndexMap;-><clinit>()V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;-><init>()V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazyLayout(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazyLayout(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazyLayoutPinnableItem(Ljava/lang/Object;ILandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazyLayoutPinnableItem(Ljava/lang/Object;ILandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazyLayoutPrefetcher(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazyLayoutPrefetcher(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazySaveableStateHolderProvider(Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->LazySaveableStateHolderProvider(Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->access$SkippableItem-JVlU9Rs(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;Ljava/lang/Object;ILjava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->access$SkippableItem-JVlU9Rs(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;Ljava/lang/Object;ILjava/lang/Object;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->access$binarySearch(ILandroidx/compose/runtime/collection/MutableVector;)I\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->access$binarySearch(ILandroidx/compose/runtime/collection/MutableVector;)I\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->findIndexByKey(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;Ljava/lang/Object;I)I\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->findIndexByKey(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemProvider;Ljava/lang/Object;I)I\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->getContentType(I)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->getContentType(I)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->lazyLayoutSemantics(Landroidx/compose/ui/Modifier;Lkotlin/reflect/KProperty0;Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;Landroidx/compose/foundation/gestures/Orientation;ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt;->lazyLayoutSemantics(Landroidx/compose/ui/Modifier;Lkotlin/reflect/KProperty0;Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;Landroidx/compose/foundation/gestures/Orientation;ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;ILandroidx/compose/runtime/MutableState;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;ILandroidx/compose/runtime/MutableState;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$2$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$2$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$2$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$itemContentFactory$1$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$itemContentFactory$1$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$itemContentFactory$1$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$itemContentFactory$1$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutKt$LazyLayout$3$itemContentFactory$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeMeasureScope;)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeMeasureScope;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->isLookingAhead()Z\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->isLookingAhead()Z\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->layout(IILjava/util/Map;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/layout/MeasureResult;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->layout(IILjava/util/Map;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->measure-0kLqBqw(IJ)Ljava/util/List;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->measure-0kLqBqw(IJ)Ljava/util/List;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->roundToPx-0680j_4(F)I\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutMeasureScopeImpl;->roundToPx-0680j_4(F)I\nLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;-><clinit>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;-><init>(III)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;-><init>(III)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;->update(I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutNearestRangeState;->update(I)V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;-><init>(Ljava/lang/Object;Landroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;-><init>(Ljava/lang/Object;Landroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->getPinsCount()I\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->getPinsCount()I\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->onDisposed()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->setIndex(I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->setIndex(I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->setParentPinnableContainer(Landroidx/compose/ui/layout/PinnableContainer;)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItem;->setParentPinnableContainer(Landroidx/compose/ui/layout/PinnableContainer;)V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1$invoke$$inlined$onDispose$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1$invoke$$inlined$onDispose$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnableItemKt$LazyLayoutPinnableItem$1$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;->isEmpty()Z\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList;->isEmpty()Z\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPinnedItemList$PinnedItem;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;->setPrefetcher$foundation_release(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState$Prefetcher;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;->setPrefetcher$foundation_release(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState$Prefetcher;)V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState$PrefetchHandle;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState$Prefetcher;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroid/view/View;)V\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroid/view/View;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;->onForgotten()V\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;->onRemembered()V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;->onRemembered()V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher$PrefetchRequest;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$1;-><init>(Lkotlin/jvm/functions/Function1;ZLandroidx/compose/ui/semantics/ScrollAxisRange;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/semantics/CollectionInfo;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$1;-><init>(Lkotlin/jvm/functions/Function1;ZLandroidx/compose/ui/semantics/ScrollAxisRange;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/semantics/CollectionInfo;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$accessibilityScrollState$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$accessibilityScrollState$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$accessibilityScrollState$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;I)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$accessibilityScrollState$1;->invoke()Ljava/lang/Float;\nHPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$accessibilityScrollState$1;->invoke()Ljava/lang/Float;\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$accessibilityScrollState$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$scrollByAction$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$scrollByAction$1;-><init>(ZLkotlinx/coroutines/CoroutineScope;Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$scrollByAction$1;-><init>(ZLkotlinx/coroutines/CoroutineScope;Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;)V\nLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$scrollToIndexAction$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$scrollToIndexAction$1;-><init>(Lkotlin/reflect/KProperty0;Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;)V\nPLandroidx/compose/foundation/lazy/layout/LazyLayoutSemanticsKt$lazyLayoutSemantics$1$scrollToIndexAction$1;-><init>(Lkotlin/reflect/KProperty0;Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/foundation/lazy/layout/LazyLayoutSemanticState;)V\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/util/Map;)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/util/Map;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->SaveableStateProvider(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->SaveableStateProvider(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->access$getPreviouslyComposedKeys$p(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;)Ljava/util/LinkedHashSet;\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->access$getPreviouslyComposedKeys$p(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;)Ljava/util/LinkedHashSet;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->canBeSaved(Ljava/lang/Object;)Z\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->canBeSaved(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->consumeRestored(Ljava/lang/String;)Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->consumeRestored(Ljava/lang/String;)Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->performSave()Ljava/util/Map;\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->performSave()Ljava/util/Map;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->registerProvider(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->registerProvider(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->setWrappedHolder(Landroidx/compose/runtime/saveable/SaveableStateHolder;)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;->setWrappedHolder(Landroidx/compose/runtime/saveable/SaveableStateHolder;)V\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;I)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;-><clinit>()V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;-><clinit>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;-><init>()V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$Companion$saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2;-><init>(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;Ljava/lang/Object;)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2;-><init>(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;Ljava/lang/Object;)V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;Ljava/lang/Object;)V\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;Ljava/lang/Object;)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$2$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$3;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$3;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;II)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolder$SaveableStateProvider$3;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;II)V\nLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolderKt$LazySaveableStateHolderProvider$1;\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolderKt$LazySaveableStateHolderProvider$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;Lkotlin/jvm/functions/Function3;I)V\nPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolderKt$LazySaveableStateHolderProvider$1;-><init>(Landroidx/compose/foundation/lazy/layout/LazySaveableStateHolder;Lkotlin/jvm/functions/Function3;I)V\nHSPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolderKt$LazySaveableStateHolderProvider$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/LazySaveableStateHolderKt$LazySaveableStateHolderProvider$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/MutableIntervalList;\nHSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;-><init>()V\nHPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;-><init>()V\nHSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->addInterval(ILandroidx/compose/foundation/lazy/layout/LazyLayoutIntervalContent$Interval;)V\nHPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->addInterval(ILandroidx/compose/foundation/lazy/layout/LazyLayoutIntervalContent$Interval;)V\nHSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->checkIndexBounds(I)V\nHPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->checkIndexBounds(I)V\nHSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->forEach(IILkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->forEach(IILkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->get(I)Landroidx/compose/foundation/lazy/layout/IntervalList$Interval;\nHPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->get(I)Landroidx/compose/foundation/lazy/layout/IntervalList$Interval;\nHSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->getSize()I\nPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->getSize()I\nLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;\nHSPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;-><init>(Lkotlin/ranges/IntRange;Landroidx/compose/foundation/lazy/layout/LazyLayoutKt;)V\nHPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;-><init>(Lkotlin/ranges/IntRange;Landroidx/compose/foundation/lazy/layout/LazyLayoutKt;)V\nHSPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;->access$getKeys$p(Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)[Ljava/lang/Object;\nPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;->access$getKeys$p(Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)[Ljava/lang/Object;\nHSPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;->access$getKeysStartIndex$p(Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)I\nPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;->access$getKeysStartIndex$p(Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)I\nHSPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;->getKey(I)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;->getKey(I)Ljava/lang/Object;\nLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap$2$1;\nHSPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap$2$1;-><init>(IILjava/util/HashMap;Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)V\nHPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap$2$1;-><init>(IILjava/util/HashMap;Landroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap;)V\nHSPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/lazy/layout/NearestRangeKeyIndexMap$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/relocation/BringIntoViewChildNode;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewChildNode;-><init>()V\nHPLandroidx/compose/foundation/relocation/BringIntoViewChildNode;-><init>()V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewChildNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/foundation/relocation/BringIntoViewChildNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nLandroidx/compose/foundation/relocation/BringIntoViewKt;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewKt;-><clinit>()V\nPLandroidx/compose/foundation/relocation/BringIntoViewKt;-><clinit>()V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewKt;->getModifierLocalBringIntoViewParent()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nPLandroidx/compose/foundation/relocation/BringIntoViewKt;->getModifierLocalBringIntoViewParent()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nLandroidx/compose/foundation/relocation/BringIntoViewKt$ModifierLocalBringIntoViewParent$1;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewKt$ModifierLocalBringIntoViewParent$1;-><clinit>()V\nPLandroidx/compose/foundation/relocation/BringIntoViewKt$ModifierLocalBringIntoViewParent$1;-><clinit>()V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewKt$ModifierLocalBringIntoViewParent$1;-><init>()V\nPLandroidx/compose/foundation/relocation/BringIntoViewKt$ModifierLocalBringIntoViewParent$1;-><init>()V\nLandroidx/compose/foundation/relocation/BringIntoViewParent;\nLandroidx/compose/foundation/relocation/BringIntoViewRequester;\nLandroidx/compose/foundation/relocation/BringIntoViewRequesterImpl;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterImpl;-><init>()V\nHPLandroidx/compose/foundation/relocation/BringIntoViewRequesterImpl;-><init>()V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterImpl;->getModifiers()Landroidx/compose/runtime/collection/MutableVector;\nPLandroidx/compose/foundation/relocation/BringIntoViewRequesterImpl;->getModifiers()Landroidx/compose/runtime/collection/MutableVector;\nLandroidx/compose/foundation/relocation/BringIntoViewRequesterKt;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterKt;->BringIntoViewRequester()Landroidx/compose/foundation/relocation/BringIntoViewRequester;\nPLandroidx/compose/foundation/relocation/BringIntoViewRequesterKt;->BringIntoViewRequester()Landroidx/compose/foundation/relocation/BringIntoViewRequester;\nLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;-><init>(Landroidx/compose/foundation/relocation/BringIntoViewRequester;)V\nPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;-><init>(Landroidx/compose/foundation/relocation/BringIntoViewRequester;)V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;->onAttach()V\nHPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;->onAttach()V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;->onDetach()V\nHPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;->onDetach()V\nHSPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;->updateRequester(Landroidx/compose/foundation/relocation/BringIntoViewRequester;)V\nHPLandroidx/compose/foundation/relocation/BringIntoViewRequesterNode;->updateRequester(Landroidx/compose/foundation/relocation/BringIntoViewRequester;)V\nLandroidx/compose/foundation/relocation/BringIntoViewResponder;\nLandroidx/compose/foundation/relocation/BringIntoViewResponderNode;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewResponderNode;-><init>(Landroidx/compose/foundation/gestures/ContentInViewNode;)V\nPLandroidx/compose/foundation/relocation/BringIntoViewResponderNode;-><init>(Landroidx/compose/foundation/gestures/ContentInViewNode;)V\nLandroidx/compose/foundation/relocation/BringIntoViewResponder_androidKt$defaultBringIntoViewParent$1;\nHSPLandroidx/compose/foundation/relocation/BringIntoViewResponder_androidKt$defaultBringIntoViewParent$1;-><init>(Landroidx/compose/ui/node/CompositionLocalConsumerModifierNode;)V\nHPLandroidx/compose/foundation/relocation/BringIntoViewResponder_androidKt$defaultBringIntoViewParent$1;-><init>(Landroidx/compose/ui/node/CompositionLocalConsumerModifierNode;)V\nLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;\nHSPLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;-><clinit>()V\nPLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;-><clinit>()V\nHSPLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;-><init>()V\nPLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;-><init>()V\nHSPLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/foundation/selection/SelectableGroupKt$selectableGroup$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/selection/SelectableKt;\nHSPLandroidx/compose/foundation/selection/SelectableKt;->selectable-O2vRcR0(Landroidx/compose/ui/Modifier;ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLandroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/foundation/selection/SelectableKt;->selectable-O2vRcR0(Landroidx/compose/ui/Modifier;ZLandroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLandroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/foundation/selection/SelectableKt;->selectableGroup(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/foundation/selection/SelectableKt;->selectableGroup(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/foundation/selection/SelectableKt$selectable$4$1;\nHSPLandroidx/compose/foundation/selection/SelectableKt$selectable$4$1;-><init>(Z)V\nHPLandroidx/compose/foundation/selection/SelectableKt$selectable$4$1;-><init>(Z)V\nHSPLandroidx/compose/foundation/selection/SelectableKt$selectable$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/selection/SelectableKt$selectable$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/shape/CornerBasedShape;\nHSPLandroidx/compose/foundation/shape/CornerBasedShape;-><init>(Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;)V\nPLandroidx/compose/foundation/shape/CornerBasedShape;-><init>(Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;)V\nHSPLandroidx/compose/foundation/shape/CornerBasedShape;->createOutline-Pq9zytI(JLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)Landroidx/compose/ui/graphics/BrushKt;\nHPLandroidx/compose/foundation/shape/CornerBasedShape;->createOutline-Pq9zytI(JLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)Landroidx/compose/ui/graphics/BrushKt;\nLandroidx/compose/foundation/shape/CornerSize;\nLandroidx/compose/foundation/shape/CornerSizeKt;\nHSPLandroidx/compose/foundation/shape/CornerSizeKt;-><clinit>()V\nPLandroidx/compose/foundation/shape/CornerSizeKt;-><clinit>()V\nHSPLandroidx/compose/foundation/shape/CornerSizeKt;->CornerSize(I)Landroidx/compose/foundation/shape/CornerSize;\nPLandroidx/compose/foundation/shape/CornerSizeKt;->CornerSize(I)Landroidx/compose/foundation/shape/CornerSize;\nHSPLandroidx/compose/foundation/shape/CornerSizeKt;->CornerSize-0680j_4(F)Landroidx/compose/foundation/shape/CornerSize;\nPLandroidx/compose/foundation/shape/CornerSizeKt;->CornerSize-0680j_4(F)Landroidx/compose/foundation/shape/CornerSize;\nLandroidx/compose/foundation/shape/CornerSizeKt$ZeroCornerSize$1;\nHSPLandroidx/compose/foundation/shape/CornerSizeKt$ZeroCornerSize$1;-><init>()V\nPLandroidx/compose/foundation/shape/CornerSizeKt$ZeroCornerSize$1;-><init>()V\nLandroidx/compose/foundation/shape/DpCornerSize;\nHSPLandroidx/compose/foundation/shape/DpCornerSize;-><init>(F)V\nPLandroidx/compose/foundation/shape/DpCornerSize;-><init>(F)V\nLandroidx/compose/foundation/shape/PercentCornerSize;\nHSPLandroidx/compose/foundation/shape/PercentCornerSize;-><init>(F)V\nPLandroidx/compose/foundation/shape/PercentCornerSize;-><init>(F)V\nHSPLandroidx/compose/foundation/shape/PercentCornerSize;->toPx-TmRCtEA(JLandroidx/compose/ui/unit/Density;)F\nHPLandroidx/compose/foundation/shape/PercentCornerSize;->toPx-TmRCtEA(JLandroidx/compose/ui/unit/Density;)F\nLandroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/foundation/shape/RoundedCornerShape;-><init>(Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;)V\nPLandroidx/compose/foundation/shape/RoundedCornerShape;-><init>(Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/shape/CornerSize;)V\nHSPLandroidx/compose/foundation/shape/RoundedCornerShape;->createOutline-LjSzlW0(JFFFFLandroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/graphics/BrushKt;\nHPLandroidx/compose/foundation/shape/RoundedCornerShape;->createOutline-LjSzlW0(JFFFFLandroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/graphics/BrushKt;\nHSPLandroidx/compose/foundation/shape/RoundedCornerShape;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/shape/RoundedCornerShape;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/foundation/shape/RoundedCornerShapeKt;\nHSPLandroidx/compose/foundation/shape/RoundedCornerShapeKt;-><clinit>()V\nPLandroidx/compose/foundation/shape/RoundedCornerShapeKt;-><clinit>()V\nHSPLandroidx/compose/foundation/shape/RoundedCornerShapeKt;->RoundedCornerShape-0680j_4(F)Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/foundation/shape/RoundedCornerShapeKt;->RoundedCornerShape-0680j_4(F)Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/foundation/shape/RoundedCornerShapeKt;->getCircleShape()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/foundation/shape/RoundedCornerShapeKt;->getCircleShape()Landroidx/compose/foundation/shape/RoundedCornerShape;\nLandroidx/compose/foundation/text/BasicTextKt;\nHSPLandroidx/compose/foundation/text/BasicTextKt;-><clinit>()V\nPLandroidx/compose/foundation/text/BasicTextKt;-><clinit>()V\nHSPLandroidx/compose/foundation/text/BasicTextKt;->BasicText-VhcvRP8(Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/text/TextStyle;Lkotlin/jvm/functions/Function1;IZIILandroidx/compose/ui/graphics/ColorProducer;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/foundation/text/BasicTextKt;->BasicText-VhcvRP8(Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/text/TextStyle;Lkotlin/jvm/functions/Function1;IZIILandroidx/compose/ui/graphics/ColorProducer;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/foundation/text/BasicTextKt;->ceilToIntPx(F)I\nHPLandroidx/compose/foundation/text/BasicTextKt;->ceilToIntPx(F)I\nHSPLandroidx/compose/foundation/text/BasicTextKt;->validateMinMaxLines(II)V\nHPLandroidx/compose/foundation/text/BasicTextKt;->validateMinMaxLines(II)V\nLandroidx/compose/foundation/text/BasicTextKt$BasicText$1;\nLandroidx/compose/foundation/text/BasicTextKt$BasicText-RWo7tUw$$inlined$Layout$1;\nHSPLandroidx/compose/foundation/text/BasicTextKt$BasicText-RWo7tUw$$inlined$Layout$1;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHPLandroidx/compose/foundation/text/BasicTextKt$BasicText-RWo7tUw$$inlined$Layout$1;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLandroidx/compose/foundation/text/BasicTextKt$BasicText-RWo7tUw$$inlined$Layout$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/text/BasicTextKt$BasicText-RWo7tUw$$inlined$Layout$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/text/EmptyMeasurePolicy;\nHSPLandroidx/compose/foundation/text/EmptyMeasurePolicy;-><clinit>()V\nPLandroidx/compose/foundation/text/EmptyMeasurePolicy;-><clinit>()V\nHSPLandroidx/compose/foundation/text/EmptyMeasurePolicy;-><init>()V\nPLandroidx/compose/foundation/text/EmptyMeasurePolicy;-><init>()V\nHSPLandroidx/compose/foundation/text/EmptyMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/text/EmptyMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/foundation/text/KeyMapping;\nLandroidx/compose/foundation/text/KeyMapping_androidKt$platformDefaultKeyMapping$1;\nHSPLandroidx/compose/foundation/text/KeyMapping_androidKt$platformDefaultKeyMapping$1;-><init>()V\nPLandroidx/compose/foundation/text/KeyMapping_androidKt$platformDefaultKeyMapping$1;-><init>()V\nLandroidx/compose/foundation/text/TextFieldKeyInput$1;\nHSPLandroidx/compose/foundation/text/TextFieldKeyInput$1;-><clinit>()V\nPLandroidx/compose/foundation/text/TextFieldKeyInput$1;-><clinit>()V\nHSPLandroidx/compose/foundation/text/TextFieldKeyInput$1;-><init>(I)V\nPLandroidx/compose/foundation/text/TextFieldKeyInput$1;-><init>(I)V\nHSPLandroidx/compose/foundation/text/TextFieldKeyInput$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/text/TextFieldKeyInput$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;-><init>(Ljava/lang/String;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;IZII)V\nHPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;-><init>(Ljava/lang/String;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;IZII)V\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getDidOverflow$foundation_release()Z\nPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getDidOverflow$foundation_release()Z\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getLayoutSize-YbymL2g$foundation_release()J\nPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getLayoutSize-YbymL2g$foundation_release()J\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getObserveFontChanges$foundation_release()V\nPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getObserveFontChanges$foundation_release()V\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getParagraph$foundation_release()Landroidx/compose/ui/text/AndroidParagraph;\nPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->getParagraph$foundation_release()Landroidx/compose/ui/text/AndroidParagraph;\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->layoutText-K40F9xA(JLandroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/AndroidParagraph;\nHPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->layoutText-K40F9xA(JLandroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/AndroidParagraph;\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->layoutWithConstraints-K40F9xA(JLandroidx/compose/ui/unit/LayoutDirection;)Z\nHPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->layoutWithConstraints-K40F9xA(JLandroidx/compose/ui/unit/LayoutDirection;)Z\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->setDensity$foundation_release(Landroidx/compose/ui/unit/Density;)V\nHPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->setDensity$foundation_release(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/ParagraphIntrinsics;\nHPLandroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/ParagraphIntrinsics;\nLandroidx/compose/foundation/text/modifiers/SelectionController;\nLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;-><init>(Ljava/lang/String;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;IZIILandroidx/compose/ui/graphics/ColorProducer;)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;-><init>(Ljava/lang/String;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;IZIILandroidx/compose/ui/graphics/ColorProducer;)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;-><init>(Ljava/lang/String;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;IZIILandroidx/compose/ui/graphics/ColorProducer;)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;-><init>(Ljava/lang/String;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;IZIILandroidx/compose/ui/graphics/ColorProducer;)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->doInvalidations(ZZZ)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->doInvalidations(ZZZ)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->getLayoutCache()Landroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->getLayoutCache()Landroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->getLayoutCache(Landroidx/compose/ui/unit/Density;)Landroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->getLayoutCache(Landroidx/compose/ui/unit/Density;)Landroidx/compose/foundation/text/modifiers/ParagraphLayoutCache;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->updateDraw(Landroidx/compose/ui/graphics/ColorProducer;Landroidx/compose/ui/text/TextStyle;)Z\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->updateDraw(Landroidx/compose/ui/graphics/ColorProducer;Landroidx/compose/ui/text/TextStyle;)Z\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->updateLayoutRelatedArgs-HuAbxIM(Landroidx/compose/ui/text/TextStyle;IIZLandroidx/compose/ui/text/font/FontFamilyResolverImpl;I)Z\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->updateLayoutRelatedArgs-HuAbxIM(Landroidx/compose/ui/text/TextStyle;IIZLandroidx/compose/ui/text/font/FontFamilyResolverImpl;I)Z\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->updateText(Ljava/lang/String;)Z\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode;->updateText(Ljava/lang/String;)Z\nLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$TextSubstitutionValue;\nLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$applySemantics$1;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$applySemantics$1;-><init>(Landroidx/compose/foundation/text/modifiers/TextStringSimpleNode;I)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$applySemantics$1;-><init>(Landroidx/compose/foundation/text/modifiers/TextStringSimpleNode;I)V\nLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$applySemantics$4;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$applySemantics$4;-><init>(ILandroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$applySemantics$4;-><init>(ILandroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;I)V\nPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;I)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHSPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/foundation/text/modifiers/TextStringSimpleNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/foundation/text/selection/SelectionRegistrarImpl;\nLandroidx/compose/foundation/text/selection/SelectionRegistrarKt;\nHSPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt;-><clinit>()V\nPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt;-><clinit>()V\nHSPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt;->getLocalSelectionRegistrar()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt;->getLocalSelectionRegistrar()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;\nHSPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;-><clinit>()V\nPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;-><clinit>()V\nHSPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;-><init>(I)V\nPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;-><init>(I)V\nHSPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/foundation/text/selection/SelectionRegistrarKt$LocalSelectionRegistrar$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/foundation/text/selection/TextSelectionColors;\nHSPLandroidx/compose/foundation/text/selection/TextSelectionColors;-><init>(JJ)V\nPLandroidx/compose/foundation/text/selection/TextSelectionColors;-><init>(JJ)V\nLandroidx/compose/foundation/text/selection/TextSelectionColorsKt;\nHSPLandroidx/compose/foundation/text/selection/TextSelectionColorsKt;-><clinit>()V\nPLandroidx/compose/foundation/text/selection/TextSelectionColorsKt;-><clinit>()V\nHSPLandroidx/compose/foundation/text/selection/TextSelectionColorsKt;->getLocalTextSelectionColors()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/foundation/text/selection/TextSelectionColorsKt;->getLocalTextSelectionColors()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;-><init>(ZFLandroidx/compose/runtime/MutableState;Landroidx/compose/runtime/MutableState;Landroid/view/ViewGroup;)V\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;-><init>(ZFLandroidx/compose/runtime/MutableState;Landroidx/compose/runtime/MutableState;Landroid/view/ViewGroup;)V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->access$getInvalidateTick(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)Z\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->access$getInvalidateTick(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)Z\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->access$setInvalidateTick(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;Z)V\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->access$setInvalidateTick(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;Z)V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->addRipple(Landroidx/compose/foundation/interaction/PressInteraction$Press;Lkotlinx/coroutines/CoroutineScope;)V\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->addRipple(Landroidx/compose/foundation/interaction/PressInteraction$Press;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->drawIndication(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->drawIndication(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->onForgotten()V\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->onForgotten()V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->onRemembered()V\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->onRemembered()V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->removeRipple(Landroidx/compose/foundation/interaction/PressInteraction$Press;)V\nPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->removeRipple(Landroidx/compose/foundation/interaction/PressInteraction$Press;)V\nPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance;->resetHostView()V\nLandroidx/compose/material/ripple/AndroidRippleIndicationInstance$onInvalidateRipple$1;\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance$onInvalidateRipple$1;-><init>(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)V\nPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance$onInvalidateRipple$1;-><init>(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)V\nHSPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance$onInvalidateRipple$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/material/ripple/AndroidRippleIndicationInstance$onInvalidateRipple$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/material/ripple/CommonRippleIndicationInstance;\nLandroidx/compose/material/ripple/PlatformRipple;\nHSPLandroidx/compose/material/ripple/PlatformRipple;-><init>(ZFLandroidx/compose/runtime/MutableState;)V\nPLandroidx/compose/material/ripple/PlatformRipple;-><init>(ZFLandroidx/compose/runtime/MutableState;)V\nLandroidx/compose/material/ripple/Ripple;\nHSPLandroidx/compose/material/ripple/Ripple;-><init>(ZFLandroidx/compose/runtime/MutableState;)V\nPLandroidx/compose/material/ripple/Ripple;-><init>(ZFLandroidx/compose/runtime/MutableState;)V\nHSPLandroidx/compose/material/ripple/Ripple;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/material/ripple/Ripple;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/material/ripple/Ripple;->rememberUpdatedInstance(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/IndicationInstance;\nHPLandroidx/compose/material/ripple/Ripple;->rememberUpdatedInstance(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/IndicationInstance;\nLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;\nHSPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;-><init>(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/material/ripple/RippleIndicationInstance;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;-><init>(Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/material/ripple/RippleIndicationInstance;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1$1;\nHSPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1$1;-><init>(Landroidx/compose/material/ripple/RippleIndicationInstance;Lkotlinx/coroutines/CoroutineScope;)V\nHPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1$1;-><init>(Landroidx/compose/material/ripple/RippleIndicationInstance;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/material/ripple/Ripple$rememberUpdatedInstance$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/material/ripple/RippleAlpha;\nHSPLandroidx/compose/material/ripple/RippleAlpha;-><init>(FFFF)V\nPLandroidx/compose/material/ripple/RippleAlpha;-><init>(FFFF)V\nHSPLandroidx/compose/material/ripple/RippleAlpha;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/material/ripple/RippleAlpha;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/material/ripple/RippleAlpha;->getPressedAlpha()F\nPLandroidx/compose/material/ripple/RippleAlpha;->getPressedAlpha()F\nLandroidx/compose/material/ripple/RippleAnimationKt;\nHSPLandroidx/compose/material/ripple/RippleAnimationKt;-><clinit>()V\nPLandroidx/compose/material/ripple/RippleAnimationKt;-><clinit>()V\nHSPLandroidx/compose/material/ripple/RippleAnimationKt;->getRippleEndRadius-cSwnlzA(Landroidx/compose/ui/unit/Density;ZJ)F\nHPLandroidx/compose/material/ripple/RippleAnimationKt;->getRippleEndRadius-cSwnlzA(Landroidx/compose/ui/unit/Density;ZJ)F\nLandroidx/compose/material/ripple/RippleContainer;\nHSPLandroidx/compose/material/ripple/RippleContainer;-><init>(Landroid/content/Context;)V\nHPLandroidx/compose/material/ripple/RippleContainer;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/material/ripple/RippleContainer;->disposeRippleIfNeeded(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)V\nHSPLandroidx/compose/material/ripple/RippleContainer;->getRippleHostView(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)Landroidx/compose/material/ripple/RippleHostView;\nHPLandroidx/compose/material/ripple/RippleContainer;->getRippleHostView(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)Landroidx/compose/material/ripple/RippleHostView;\nLandroidx/compose/material/ripple/RippleHostMap;\nHSPLandroidx/compose/material/ripple/RippleHostMap;-><init>()V\nPLandroidx/compose/material/ripple/RippleHostMap;-><init>()V\nHSPLandroidx/compose/material/ripple/RippleHostMap;->get(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)Landroidx/compose/material/ripple/RippleHostView;\nHPLandroidx/compose/material/ripple/RippleHostMap;->get(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)Landroidx/compose/material/ripple/RippleHostView;\nPLandroidx/compose/material/ripple/RippleHostMap;->remove(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;)V\nHSPLandroidx/compose/material/ripple/RippleHostMap;->set(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;Landroidx/compose/material/ripple/RippleHostView;)V\nHPLandroidx/compose/material/ripple/RippleHostMap;->set(Landroidx/compose/material/ripple/AndroidRippleIndicationInstance;Landroidx/compose/material/ripple/RippleHostView;)V\nLandroidx/compose/material/ripple/RippleHostView;\nPLandroidx/compose/material/ripple/RippleHostView;->$r8$lambda$4nztiuYeQHklB-09QfMAnp7Ay8E(Landroidx/compose/material/ripple/RippleHostView;)V\nHSPLandroidx/compose/material/ripple/RippleHostView;-><clinit>()V\nPLandroidx/compose/material/ripple/RippleHostView;-><clinit>()V\nHSPLandroidx/compose/material/ripple/RippleHostView;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/material/ripple/RippleHostView;-><init>(Landroid/content/Context;)V\nHSPLandroidx/compose/material/ripple/RippleHostView;->addRipple-KOepWvA(Landroidx/compose/foundation/interaction/PressInteraction$Press;ZJIJFLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/material/ripple/RippleHostView;->addRipple-KOepWvA(Landroidx/compose/foundation/interaction/PressInteraction$Press;ZJIJFLkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/material/ripple/RippleHostView;->disposeRipple()V\nHPLandroidx/compose/material/ripple/RippleHostView;->disposeRipple()V\nHSPLandroidx/compose/material/ripple/RippleHostView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V\nHPLandroidx/compose/material/ripple/RippleHostView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V\nHSPLandroidx/compose/material/ripple/RippleHostView;->refreshDrawableState()V\nHPLandroidx/compose/material/ripple/RippleHostView;->refreshDrawableState()V\nHSPLandroidx/compose/material/ripple/RippleHostView;->removeRipple()V\nPLandroidx/compose/material/ripple/RippleHostView;->removeRipple()V\nHSPLandroidx/compose/material/ripple/RippleHostView;->setRippleState(Z)V\nHPLandroidx/compose/material/ripple/RippleHostView;->setRippleState(Z)V\nHSPLandroidx/compose/material/ripple/RippleHostView;->updateRippleProperties-biQXAtU(FIJJ)V\nHPLandroidx/compose/material/ripple/RippleHostView;->updateRippleProperties-biQXAtU(FIJJ)V\nLandroidx/compose/material/ripple/RippleIndicationInstance;\nHSPLandroidx/compose/material/ripple/RippleIndicationInstance;-><init>(ZLandroidx/compose/runtime/MutableState;)V\nPLandroidx/compose/material/ripple/RippleIndicationInstance;-><init>(ZLandroidx/compose/runtime/MutableState;)V\nHSPLandroidx/compose/material/ripple/RippleIndicationInstance;->drawStateLayer-H2RKhps(Landroidx/compose/ui/graphics/drawscope/DrawScope;FJ)V\nPLandroidx/compose/material/ripple/RippleIndicationInstance;->drawStateLayer-H2RKhps(Landroidx/compose/ui/graphics/drawscope/DrawScope;FJ)V\nLandroidx/compose/material/ripple/RippleKt;\nHSPLandroidx/compose/material/ripple/RippleKt;-><clinit>()V\nPLandroidx/compose/material/ripple/RippleKt;-><clinit>()V\nHSPLandroidx/compose/material/ripple/RippleKt;->rememberRipple-9IZ8Weo(ZFJLandroidx/compose/runtime/Composer;II)Landroidx/compose/material/ripple/PlatformRipple;\nHPLandroidx/compose/material/ripple/RippleKt;->rememberRipple-9IZ8Weo(ZFJLandroidx/compose/runtime/Composer;II)Landroidx/compose/material/ripple/PlatformRipple;\nLandroidx/compose/material/ripple/RippleTheme;\nLandroidx/compose/material/ripple/RippleThemeKt;\nHSPLandroidx/compose/material/ripple/RippleThemeKt;-><clinit>()V\nPLandroidx/compose/material/ripple/RippleThemeKt;-><clinit>()V\nHSPLandroidx/compose/material/ripple/RippleThemeKt;->getLocalRippleTheme()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/material/ripple/RippleThemeKt;->getLocalRippleTheme()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLandroidx/compose/material/ripple/RippleThemeKt$LocalRippleTheme$1;\nHSPLandroidx/compose/material/ripple/RippleThemeKt$LocalRippleTheme$1;-><clinit>()V\nPLandroidx/compose/material/ripple/RippleThemeKt$LocalRippleTheme$1;-><clinit>()V\nHSPLandroidx/compose/material/ripple/RippleThemeKt$LocalRippleTheme$1;-><init>()V\nPLandroidx/compose/material/ripple/RippleThemeKt$LocalRippleTheme$1;-><init>()V\nLandroidx/compose/material/ripple/StateLayer;\nHSPLandroidx/compose/material/ripple/StateLayer;-><init>(ZLandroidx/compose/runtime/MutableState;)V\nHPLandroidx/compose/material/ripple/StateLayer;-><init>(ZLandroidx/compose/runtime/MutableState;)V\nHSPLandroidx/compose/material/ripple/StateLayer;->drawStateLayer-H2RKhps(Landroidx/compose/ui/graphics/drawscope/DrawScope;FJ)V\nHPLandroidx/compose/material/ripple/StateLayer;->drawStateLayer-H2RKhps(Landroidx/compose/ui/graphics/drawscope/DrawScope;FJ)V\nLandroidx/compose/material/ripple/UnprojectedRipple;\nHSPLandroidx/compose/material/ripple/UnprojectedRipple;-><init>(Z)V\nHPLandroidx/compose/material/ripple/UnprojectedRipple;-><init>(Z)V\nHSPLandroidx/compose/material/ripple/UnprojectedRipple;->getDirtyBounds()Landroid/graphics/Rect;\nHPLandroidx/compose/material/ripple/UnprojectedRipple;->getDirtyBounds()Landroid/graphics/Rect;\nHSPLandroidx/compose/material/ripple/UnprojectedRipple;->isProjected()Z\nHPLandroidx/compose/material/ripple/UnprojectedRipple;->isProjected()Z\nHSPLandroidx/compose/material/ripple/UnprojectedRipple;->setColor-DxMtmZc(JF)V\nHPLandroidx/compose/material/ripple/UnprojectedRipple;->setColor-DxMtmZc(JF)V\nHSPLandroidx/compose/material/ripple/UnprojectedRipple;->trySetRadius(I)V\nPLandroidx/compose/material/ripple/UnprojectedRipple;->trySetRadius(I)V\nLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;\nHSPLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;-><clinit>()V\nPLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;-><clinit>()V\nHSPLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;-><init>()V\nPLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;-><init>()V\nHSPLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;->setRadius(Landroid/graphics/drawable/RippleDrawable;I)V\nPLandroidx/compose/material/ripple/UnprojectedRipple$MRadiusHelper;->setRadius(Landroid/graphics/drawable/RippleDrawable;I)V\nLandroidx/compose/material3/AndroidMenu_androidKt$DropdownMenu$3;\nHSPLandroidx/compose/material3/AndroidMenu_androidKt$DropdownMenu$3;-><init>(ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;JLandroidx/compose/foundation/ScrollState;Landroidx/compose/ui/window/PopupProperties;Lkotlin/jvm/functions/Function3;II)V\nPLandroidx/compose/material3/AndroidMenu_androidKt$DropdownMenu$3;-><init>(ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;JLandroidx/compose/foundation/ScrollState;Landroidx/compose/ui/window/PopupProperties;Lkotlin/jvm/functions/Function3;II)V\nLandroidx/compose/material3/AppBarKt;\nHSPLandroidx/compose/material3/AppBarKt;-><clinit>()V\nPLandroidx/compose/material3/AppBarKt;-><clinit>()V\nHSPLandroidx/compose/material3/AppBarKt;->SingleRowTopAppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/AppBarKt;->SingleRowTopAppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/AppBarKt;->TopAppBar(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/AppBarKt;->TopAppBar(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/AppBarKt;->access$SingleRowTopAppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nPLandroidx/compose/material3/AppBarKt;->access$SingleRowTopAppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/AppBarKt;->access$TopAppBarLayout-kXwM9vE(Landroidx/compose/ui/Modifier;FJJJLkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;FLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;IZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/AppBarKt;->access$TopAppBarLayout-kXwM9vE(Landroidx/compose/ui/Modifier;FJJJLkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;FLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;IZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/AppBarKt;->access$getTopAppBarTitleInset$p()F\nPLandroidx/compose/material3/AppBarKt;->access$getTopAppBarTitleInset$p()F\nHSPLandroidx/compose/material3/AppBarKt;->rememberTopAppBarState(Landroidx/compose/runtime/Composer;)Landroidx/compose/material3/TopAppBarState;\nHPLandroidx/compose/material3/AppBarKt;->rememberTopAppBarState(Landroidx/compose/runtime/Composer;)Landroidx/compose/material3/TopAppBarState;\nLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$2;\nHSPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$2;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/internal/ComposableLambdaImpl;ILandroidx/compose/material3/TopAppBarScrollBehavior;)V\nHPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$2;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/internal/ComposableLambdaImpl;ILandroidx/compose/material3/TopAppBarScrollBehavior;)V\nHSPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;\nHSPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;-><init>(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nHPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;-><init>(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/text/TextStyle;ZLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nHSPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/AppBarKt$SingleRowTopAppBar$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/AppBarKt$TopAppBar$1;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/material3/TopAppBarColors;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2;\nHSPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2;-><init>(FLandroidx/compose/foundation/layout/Arrangement$Horizontal;Landroidx/compose/foundation/layout/Arrangement$Vertical;I)V\nHPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2;-><init>(FLandroidx/compose/foundation/layout/Arrangement$Horizontal;Landroidx/compose/foundation/layout/Arrangement$Vertical;I)V\nHSPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2$measure$1;\nHSPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;ILandroidx/compose/ui/layout/Placeable;Landroidx/compose/foundation/layout/Arrangement$Horizontal;JLandroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/foundation/layout/Arrangement$Vertical;II)V\nPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;ILandroidx/compose/ui/layout/Placeable;Landroidx/compose/foundation/layout/Arrangement$Horizontal;JLandroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/foundation/layout/Arrangement$Vertical;II)V\nHSPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/AppBarKt$TopAppBarLayout$2$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/AppBarKt$rememberTopAppBarState$1$1;\nHSPLandroidx/compose/material3/AppBarKt$rememberTopAppBarState$1$1;-><init>(FFF)V\nPLandroidx/compose/material3/AppBarKt$rememberTopAppBarState$1$1;-><init>(FFF)V\nHSPLandroidx/compose/material3/AppBarKt$rememberTopAppBarState$1$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/material3/AppBarKt$rememberTopAppBarState$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/material3/BadgeKt;\nHSPLandroidx/compose/material3/BadgeKt;-><clinit>()V\nPLandroidx/compose/material3/BadgeKt;-><clinit>()V\nHSPLandroidx/compose/material3/BadgeKt;->BadgedBox(Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/BadgeKt;->BadgedBox(Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/BadgeKt;->getBadgeOffset()F\nPLandroidx/compose/material3/BadgeKt;->getBadgeOffset()F\nLandroidx/compose/material3/BadgeKt$BadgedBox$2$1;\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$2$1;-><init>(Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;)V\nPLandroidx/compose/material3/BadgeKt$BadgedBox$2$1;-><init>(Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;)V\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/BadgeKt$BadgedBox$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/BadgeKt$BadgedBox$3;\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$3;-><init>(Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;)V\nPLandroidx/compose/material3/BadgeKt$BadgedBox$3;-><init>(Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;)V\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$3;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/material3/BadgeKt$BadgedBox$3;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/material3/BadgeKt$BadgedBox$3$measure$1;\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$3$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;)V\nPLandroidx/compose/material3/BadgeKt$BadgedBox$3$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;Landroidx/compose/runtime/MutableFloatState;)V\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$3$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/BadgeKt$BadgedBox$3$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/BadgeKt$BadgedBox$4;\nHSPLandroidx/compose/material3/BadgeKt$BadgedBox$4;-><init>(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;III)V\nPLandroidx/compose/material3/BadgeKt$BadgedBox$4;-><init>(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;III)V\nLandroidx/compose/material3/ButtonColors;\nHSPLandroidx/compose/material3/ButtonColors;-><init>(JJJJ)V\nPLandroidx/compose/material3/ButtonColors;-><init>(JJJJ)V\nHSPLandroidx/compose/material3/ButtonColors;->containerColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/ButtonColors;->containerColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/material3/ButtonColors;->contentColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/ButtonColors;->contentColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/material3/ButtonColors;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/material3/ButtonColors;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/material3/ButtonDefaults;\nHSPLandroidx/compose/material3/ButtonDefaults;-><clinit>()V\nPLandroidx/compose/material3/ButtonDefaults;-><clinit>()V\nHSPLandroidx/compose/material3/ButtonDefaults;->getMinHeight-D9Ej5fM()F\nPLandroidx/compose/material3/ButtonDefaults;->getMinHeight-D9Ej5fM()F\nHSPLandroidx/compose/material3/ButtonDefaults;->getMinWidth-D9Ej5fM()F\nPLandroidx/compose/material3/ButtonDefaults;->getMinWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/ButtonDefaults;->getTextButtonContentPadding()Landroidx/compose/foundation/layout/PaddingValuesImpl;\nPLandroidx/compose/material3/ButtonDefaults;->getTextButtonContentPadding()Landroidx/compose/foundation/layout/PaddingValuesImpl;\nHSPLandroidx/compose/material3/ButtonDefaults;->getTextShape(Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/Shape;\nPLandroidx/compose/material3/ButtonDefaults;->getTextShape(Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/Shape;\nHSPLandroidx/compose/material3/ButtonDefaults;->textButtonColors-ro_MJ88(JLandroidx/compose/runtime/Composer;I)Landroidx/compose/material3/ButtonColors;\nHPLandroidx/compose/material3/ButtonDefaults;->textButtonColors-ro_MJ88(JLandroidx/compose/runtime/Composer;I)Landroidx/compose/material3/ButtonColors;\nLandroidx/compose/material3/ButtonKt$Button$3;\nHSPLandroidx/compose/material3/ButtonKt$Button$3;-><init>(JLandroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function3;I)V\nPLandroidx/compose/material3/ButtonKt$Button$3;-><init>(JLandroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function3;I)V\nHSPLandroidx/compose/material3/ButtonKt$Button$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/ButtonKt$Button$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/ButtonKt$Button$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/ButtonKt$Button$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/ButtonKt$Button$3$1;\nHSPLandroidx/compose/material3/ButtonKt$Button$3$1;-><init>(IILandroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function3;)V\nPLandroidx/compose/material3/ButtonKt$Button$3$1;-><init>(IILandroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function3;)V\nHSPLandroidx/compose/material3/ButtonKt$Button$3$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/ButtonKt$Button$3$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/ButtonKt$Button$3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/ButtonKt$Button$3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/ButtonKt$Button$4;\nHSPLandroidx/compose/material3/ButtonKt$Button$4;-><init>(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/ButtonColors;Landroidx/compose/material3/ButtonElevation;Landroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function3;III)V\nPLandroidx/compose/material3/ButtonKt$Button$4;-><init>(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/ButtonColors;Landroidx/compose/material3/ButtonElevation;Landroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function3;III)V\nLandroidx/compose/material3/CardKt;\nHSPLandroidx/compose/material3/CardKt;-><clinit>()V\nPLandroidx/compose/material3/CardKt;-><clinit>()V\nHSPLandroidx/compose/material3/CardKt;->Button(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/ButtonColors;Landroidx/compose/material3/ButtonElevation;Landroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->Button(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/ButtonColors;Landroidx/compose/material3/ButtonElevation;Landroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->DropdownMenu-4kj-_NE(ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;JLandroidx/compose/foundation/ScrollState;Landroidx/compose/ui/window/PopupProperties;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->DropdownMenu-4kj-_NE(ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;JLandroidx/compose/foundation/ScrollState;Landroidx/compose/ui/window/PopupProperties;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->FadeInFadeOutWithScale(Landroidx/compose/material3/SnackbarData;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->FadeInFadeOutWithScale(Landroidx/compose/material3/SnackbarData;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->HorizontalDivider-9IZ8Weo(Landroidx/compose/ui/Modifier;FJLandroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->HorizontalDivider-9IZ8Weo(Landroidx/compose/ui/Modifier;FJLandroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->IconButton(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/IconButtonColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->IconButton(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/IconButtonColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->MaterialTheme(Landroidx/compose/material3/ColorScheme;Landroidx/compose/material3/Shapes;Landroidx/compose/material3/Typography;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->MaterialTheme(Landroidx/compose/material3/ColorScheme;Landroidx/compose/material3/Shapes;Landroidx/compose/material3/Typography;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->SnackbarHost(Landroidx/compose/material3/SnackbarHostState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->SnackbarHost(Landroidx/compose/material3/SnackbarHostState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->TextButton(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/ButtonColors;Landroidx/compose/material3/ButtonElevation;Landroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/CardKt;->TextButton(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/ButtonColors;Landroidx/compose/material3/ButtonElevation;Landroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/CardKt;->access$getDefaultRippleAlpha$p()Landroidx/compose/material/ripple/RippleAlpha;\nPLandroidx/compose/material3/CardKt;->access$getDefaultRippleAlpha$p()Landroidx/compose/material/ripple/RippleAlpha;\nHSPLandroidx/compose/material3/CardKt;->getString-NWtq2-8(ILandroidx/compose/runtime/Composer;)Ljava/lang/String;\nHPLandroidx/compose/material3/CardKt;->getString-NWtq2-8(ILandroidx/compose/runtime/Composer;)Ljava/lang/String;\nHSPLandroidx/compose/material3/CardKt;->getSystemBarsForVisualComponents(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHPLandroidx/compose/material3/CardKt;->getSystemBarsForVisualComponents(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/AndroidWindowInsets;\nHSPLandroidx/compose/material3/CardKt;->pinnedScrollBehavior(Landroidx/compose/material3/TopAppBarState;Landroidx/compose/runtime/Composer;)Landroidx/compose/material3/TopAppBarScrollBehavior;\nHPLandroidx/compose/material3/CardKt;->pinnedScrollBehavior(Landroidx/compose/material3/TopAppBarState;Landroidx/compose/runtime/Composer;)Landroidx/compose/material3/TopAppBarScrollBehavior;\nHSPLandroidx/compose/material3/CardKt;->topAppBarColors-zjMxDiM(JLandroidx/compose/runtime/Composer;II)Landroidx/compose/material3/TopAppBarColors;\nHPLandroidx/compose/material3/CardKt;->topAppBarColors-zjMxDiM(JLandroidx/compose/runtime/Composer;II)Landroidx/compose/material3/TopAppBarColors;\nLandroidx/compose/material3/CardKt$Card$1;\nHSPLandroidx/compose/material3/CardKt$Card$1;-><init>(IILkotlin/jvm/functions/Function3;)V\nHPLandroidx/compose/material3/CardKt$Card$1;-><init>(IILkotlin/jvm/functions/Function3;)V\nHSPLandroidx/compose/material3/CardKt$Card$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/CardKt$Card$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/CardKt$Card$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/CardKt$Card$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/ChipKt$Chip$1;\nHSPLandroidx/compose/material3/ChipKt$Chip$1;-><clinit>()V\nPLandroidx/compose/material3/ChipKt$Chip$1;-><clinit>()V\nHSPLandroidx/compose/material3/ChipKt$Chip$1;-><init>(I)V\nPLandroidx/compose/material3/ChipKt$Chip$1;-><init>(I)V\nHSPLandroidx/compose/material3/ChipKt$Chip$1;->invoke(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V\nPLandroidx/compose/material3/ChipKt$Chip$1;->invoke(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V\nHSPLandroidx/compose/material3/ChipKt$Chip$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nPLandroidx/compose/material3/ChipKt$Chip$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHSPLandroidx/compose/material3/ChipKt$Chip$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/ChipKt$Chip$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/ColorScheme;\nHSPLandroidx/compose/material3/ColorScheme;-><init>(JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ)V\nHPLandroidx/compose/material3/ColorScheme;-><init>(JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ)V\nHSPLandroidx/compose/material3/ColorScheme;->getBackground-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getBackground-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getError-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getError-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getErrorContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getErrorContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getInverseOnSurface-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getInverseOnSurface-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getInversePrimary-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getInversePrimary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getInverseSurface-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getInverseSurface-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnBackground-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getOnBackground-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnError-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnError-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnErrorContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnErrorContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnPrimary-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnPrimary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnPrimaryContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnPrimaryContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnSecondary-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnSecondary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnSecondaryContainer-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getOnSecondaryContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnSurface-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getOnSurface-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnSurfaceVariant-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnSurfaceVariant-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnTertiary-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnTertiary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOnTertiaryContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOnTertiaryContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOutline-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOutline-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getOutlineVariant-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getOutlineVariant-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getPrimary-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getPrimary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getPrimaryContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getPrimaryContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getScrim-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getScrim-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSecondary-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getSecondary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSecondaryContainer-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getSecondaryContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurface-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getSurface-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceBright-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceBright-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerHigh-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerHigh-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerHighest-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerHighest-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerLow-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerLow-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerLowest-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceContainerLowest-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceDim-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceDim-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceTint-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getSurfaceTint-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getSurfaceVariant-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getSurfaceVariant-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getTertiary-0d7_KjU()J\nHPLandroidx/compose/material3/ColorScheme;->getTertiary-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->getTertiaryContainer-0d7_KjU()J\nPLandroidx/compose/material3/ColorScheme;->getTertiaryContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/ColorScheme;->setBackground-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setBackground-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setError-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setError-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setErrorContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setErrorContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setInverseOnSurface-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setInverseOnSurface-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setInversePrimary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setInversePrimary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setInverseSurface-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setInverseSurface-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnBackground-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnBackground-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnError-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnError-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnErrorContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnErrorContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnPrimary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnPrimary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnPrimaryContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnPrimaryContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnSecondary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnSecondary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnSecondaryContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnSecondaryContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnSurface-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnSurface-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnSurfaceVariant-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnSurfaceVariant-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnTertiary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnTertiary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOnTertiaryContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOnTertiaryContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOutline-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOutline-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setOutlineVariant-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setOutlineVariant-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setPrimary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setPrimary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setPrimaryContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setPrimaryContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setScrim-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setScrim-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSecondary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSecondary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSecondaryContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSecondaryContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurface-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurface-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceBright-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceBright-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceContainer-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerHigh-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerHigh-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerHighest-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerHighest-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerLow-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerLow-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerLowest-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceContainerLowest-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceDim-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceDim-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceTint-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceTint-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setSurfaceVariant-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setSurfaceVariant-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setTertiary-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setTertiary-8_81llA$material3_release(J)V\nHSPLandroidx/compose/material3/ColorScheme;->setTertiaryContainer-8_81llA$material3_release(J)V\nPLandroidx/compose/material3/ColorScheme;->setTertiaryContainer-8_81llA$material3_release(J)V\nLandroidx/compose/material3/ColorSchemeKt;\nHSPLandroidx/compose/material3/ColorSchemeKt;-><clinit>()V\nPLandroidx/compose/material3/ColorSchemeKt;-><clinit>()V\nHSPLandroidx/compose/material3/ColorSchemeKt;->applyTonalElevation-RFCenO8(Landroidx/compose/material3/ColorScheme;JFLandroidx/compose/runtime/Composer;)J\nHPLandroidx/compose/material3/ColorSchemeKt;->applyTonalElevation-RFCenO8(Landroidx/compose/material3/ColorScheme;JFLandroidx/compose/runtime/Composer;)J\nHSPLandroidx/compose/material3/ColorSchemeKt;->contentColorFor-4WTKRHQ(Landroidx/compose/material3/ColorScheme;J)J\nHPLandroidx/compose/material3/ColorSchemeKt;->contentColorFor-4WTKRHQ(Landroidx/compose/material3/ColorScheme;J)J\nHSPLandroidx/compose/material3/ColorSchemeKt;->contentColorFor-ek8zF_U(JLandroidx/compose/runtime/Composer;)J\nHPLandroidx/compose/material3/ColorSchemeKt;->contentColorFor-ek8zF_U(JLandroidx/compose/runtime/Composer;)J\nHSPLandroidx/compose/material3/ColorSchemeKt;->fromToken(Landroidx/compose/material3/ColorScheme;I)J\nHPLandroidx/compose/material3/ColorSchemeKt;->fromToken(Landroidx/compose/material3/ColorScheme;I)J\nHSPLandroidx/compose/material3/ColorSchemeKt;->getLocalColorScheme()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/material3/ColorSchemeKt;->getLocalColorScheme()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/material3/ColorSchemeKt;->getValue(ILandroidx/compose/runtime/Composer;)J\nHPLandroidx/compose/material3/ColorSchemeKt;->getValue(ILandroidx/compose/runtime/Composer;)J\nHSPLandroidx/compose/material3/ColorSchemeKt;->lightColorScheme-C-Xl9yA$default(JJJJJJJJJJJJJJJJJJJJJJJJJJJJJI)Landroidx/compose/material3/ColorScheme;\nPLandroidx/compose/material3/ColorSchemeKt;->lightColorScheme-C-Xl9yA$default(JJJJJJJJJJJJJJJJJJJJJJJJJJJJJI)Landroidx/compose/material3/ColorScheme;\nHSPLandroidx/compose/material3/ColorSchemeKt;->surfaceColorAtElevation-3ABfNKs(Landroidx/compose/material3/ColorScheme;F)J\nHPLandroidx/compose/material3/ColorSchemeKt;->surfaceColorAtElevation-3ABfNKs(Landroidx/compose/material3/ColorScheme;F)J\nLandroidx/compose/material3/ComposableSingletons$SnackbarHostKt;\nHSPLandroidx/compose/material3/ComposableSingletons$SnackbarHostKt;-><clinit>()V\nPLandroidx/compose/material3/ComposableSingletons$SnackbarHostKt;-><clinit>()V\nLandroidx/compose/material3/ContentColorKt;\nHSPLandroidx/compose/material3/ContentColorKt;-><clinit>()V\nPLandroidx/compose/material3/ContentColorKt;-><clinit>()V\nHSPLandroidx/compose/material3/ContentColorKt;->getLocalContentColor()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/material3/ContentColorKt;->getLocalContentColor()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLandroidx/compose/material3/DateInputKt$DateInputContent$2;\nHSPLandroidx/compose/material3/DateInputKt$DateInputContent$2;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/material3/DateInputKt$DateInputContent$2;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/material3/DateInputKt$DateInputContent$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/DateInputKt$DateInputContent$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/DateInputKt$DateInputContent$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/DateInputKt$DateInputContent$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/DatePickerKt$Day$1$1;\nHSPLandroidx/compose/material3/DatePickerKt$Day$1$1;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/material3/DatePickerKt$Day$1$1;-><init>(Ljava/lang/String;I)V\nHSPLandroidx/compose/material3/DatePickerKt$Day$1$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nPLandroidx/compose/material3/DatePickerKt$Day$1$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHSPLandroidx/compose/material3/DatePickerKt$Day$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/DatePickerKt$Day$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/DatePickerKt$WeekDays$2;\nHSPLandroidx/compose/material3/DatePickerKt$WeekDays$2;-><init>(IILjava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/material3/DatePickerKt$WeekDays$2;-><init>(IILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/material3/DatePickerKt$WeekDays$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nPLandroidx/compose/material3/DatePickerKt$WeekDays$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/DatePickerKt$WeekDays$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/DatePickerKt$WeekDays$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/DefaultPlatformTextStyle_androidKt;\nHSPLandroidx/compose/material3/DefaultPlatformTextStyle_androidKt;-><clinit>()V\nPLandroidx/compose/material3/DefaultPlatformTextStyle_androidKt;-><clinit>()V\nHSPLandroidx/compose/material3/DefaultPlatformTextStyle_androidKt;->defaultPlatformTextStyle()Landroidx/compose/ui/text/PlatformTextStyle;\nPLandroidx/compose/material3/DefaultPlatformTextStyle_androidKt;->defaultPlatformTextStyle()Landroidx/compose/ui/text/PlatformTextStyle;\nLandroidx/compose/material3/DividerDefaults;\nHSPLandroidx/compose/material3/DividerDefaults;-><clinit>()V\nPLandroidx/compose/material3/DividerDefaults;-><clinit>()V\nHSPLandroidx/compose/material3/DividerDefaults;->getColor(Landroidx/compose/runtime/Composer;)J\nPLandroidx/compose/material3/DividerDefaults;->getColor(Landroidx/compose/runtime/Composer;)J\nHSPLandroidx/compose/material3/DividerDefaults;->getThickness-D9Ej5fM()F\nPLandroidx/compose/material3/DividerDefaults;->getThickness-D9Ej5fM()F\nLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;\nHSPLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;-><init>(FJI)V\nPLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;-><init>(FJI)V\nHSPLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;->invoke(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHPLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;->invoke(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHSPLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/DividerKt$VerticalDivider$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/DividerKt$VerticalDivider$2;\nHSPLandroidx/compose/material3/DividerKt$VerticalDivider$2;-><init>(Landroidx/compose/ui/Modifier;FJIII)V\nPLandroidx/compose/material3/DividerKt$VerticalDivider$2;-><init>(Landroidx/compose/ui/Modifier;FJIII)V\nLandroidx/compose/material3/ExposedDropdownMenuKt$expandable$2$1$1;\nHSPLandroidx/compose/material3/ExposedDropdownMenuKt$expandable$2$1$1;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLandroidx/compose/material3/ExposedDropdownMenuKt$expandable$2$1$1;-><init>(Lkotlin/jvm/functions/Function0;I)V\nLandroidx/compose/material3/FadeInFadeOutState;\nHSPLandroidx/compose/material3/FadeInFadeOutState;-><init>()V\nPLandroidx/compose/material3/FadeInFadeOutState;-><init>()V\nHSPLandroidx/compose/material3/FadeInFadeOutState;->getCurrent()Ljava/lang/Object;\nPLandroidx/compose/material3/FadeInFadeOutState;->getCurrent()Ljava/lang/Object;\nHSPLandroidx/compose/material3/FadeInFadeOutState;->getItems()Ljava/util/ArrayList;\nPLandroidx/compose/material3/FadeInFadeOutState;->getItems()Ljava/util/ArrayList;\nHSPLandroidx/compose/material3/FadeInFadeOutState;->setCurrent(Ljava/lang/Object;)V\nPLandroidx/compose/material3/FadeInFadeOutState;->setCurrent(Ljava/lang/Object;)V\nHSPLandroidx/compose/material3/FadeInFadeOutState;->setScope(Landroidx/compose/runtime/RecomposeScopeImpl;)V\nPLandroidx/compose/material3/FadeInFadeOutState;->setScope(Landroidx/compose/runtime/RecomposeScopeImpl;)V\nLandroidx/compose/material3/IconButtonColors;\nHSPLandroidx/compose/material3/IconButtonColors;-><init>(JJJJ)V\nPLandroidx/compose/material3/IconButtonColors;-><init>(JJJJ)V\nHSPLandroidx/compose/material3/IconButtonColors;->containerColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/IconButtonColors;->containerColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/material3/IconButtonColors;->contentColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/IconButtonColors;->contentColor$material3_release(ZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nLandroidx/compose/material3/IconButtonKt$IconButton$3;\nHSPLandroidx/compose/material3/IconButtonKt$IconButton$3;-><init>(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/IconButtonColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function2;II)V\nPLandroidx/compose/material3/IconButtonKt$IconButton$3;-><init>(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/IconButtonColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function2;II)V\nLandroidx/compose/material3/IconKt;\nHSPLandroidx/compose/material3/IconKt;-><clinit>()V\nPLandroidx/compose/material3/IconKt;-><clinit>()V\nHSPLandroidx/compose/material3/IconKt;->Icon-ww6aTOc(Landroidx/compose/ui/graphics/painter/Painter;Ljava/lang/String;Landroidx/compose/ui/Modifier;JLandroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/IconKt;->Icon-ww6aTOc(Landroidx/compose/ui/graphics/painter/Painter;Ljava/lang/String;Landroidx/compose/ui/Modifier;JLandroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/IconKt;->Icon-ww6aTOc(Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;Landroidx/compose/ui/Modifier;JLandroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/IconKt;->Icon-ww6aTOc(Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;Landroidx/compose/ui/Modifier;JLandroidx/compose/runtime/Composer;II)V\nLandroidx/compose/material3/IconKt$Icon$1;\nHSPLandroidx/compose/material3/IconKt$Icon$1;-><init>(Ljava/lang/Object;Ljava/lang/String;Landroidx/compose/ui/Modifier;JIII)V\nPLandroidx/compose/material3/IconKt$Icon$1;-><init>(Ljava/lang/Object;Ljava/lang/String;Landroidx/compose/ui/Modifier;JIII)V\nHSPLandroidx/compose/material3/IconKt$Icon$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/IconKt$Icon$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/IconKt$Icon$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/IconKt$Icon$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/InteractiveComponentSizeKt;\nHSPLandroidx/compose/material3/InteractiveComponentSizeKt;-><clinit>()V\nPLandroidx/compose/material3/InteractiveComponentSizeKt;-><clinit>()V\nHSPLandroidx/compose/material3/InteractiveComponentSizeKt;->access$getMinimumInteractiveComponentSize$p()J\nPLandroidx/compose/material3/InteractiveComponentSizeKt;->access$getMinimumInteractiveComponentSize$p()J\nHSPLandroidx/compose/material3/InteractiveComponentSizeKt;->getLocalMinimumInteractiveComponentEnforcement()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/material3/InteractiveComponentSizeKt;->getLocalMinimumInteractiveComponentEnforcement()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/material3/InteractiveComponentSizeKt;->minimumInteractiveComponentSize(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/material3/InteractiveComponentSizeKt;->minimumInteractiveComponentSize(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/material3/MappedInteractionSource;\nHSPLandroidx/compose/material3/MappedInteractionSource;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;J)V\nHPLandroidx/compose/material3/MappedInteractionSource;-><init>(Landroidx/compose/foundation/interaction/MutableInteractionSource;J)V\nHSPLandroidx/compose/material3/MappedInteractionSource;->access$getMappedPresses$p(Landroidx/compose/material3/MappedInteractionSource;)Ljava/util/LinkedHashMap;\nPLandroidx/compose/material3/MappedInteractionSource;->access$getMappedPresses$p(Landroidx/compose/material3/MappedInteractionSource;)Ljava/util/LinkedHashMap;\nHSPLandroidx/compose/material3/MappedInteractionSource;->access$mapPress(Landroidx/compose/material3/MappedInteractionSource;Landroidx/compose/foundation/interaction/PressInteraction$Press;)Landroidx/compose/foundation/interaction/PressInteraction$Press;\nPLandroidx/compose/material3/MappedInteractionSource;->access$mapPress(Landroidx/compose/material3/MappedInteractionSource;Landroidx/compose/foundation/interaction/PressInteraction$Press;)Landroidx/compose/foundation/interaction/PressInteraction$Press;\nHSPLandroidx/compose/material3/MappedInteractionSource;->getInteractions()Lkotlinx/coroutines/flow/Flow;\nPLandroidx/compose/material3/MappedInteractionSource;->getInteractions()Lkotlinx/coroutines/flow/Flow;\nLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1;\nHSPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/Flow;Landroidx/compose/material3/MappedInteractionSource;)V\nHPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/Flow;Landroidx/compose/material3/MappedInteractionSource;)V\nHSPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;\nHSPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Landroidx/compose/material3/MappedInteractionSource;)V\nPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Landroidx/compose/material3/MappedInteractionSource;)V\nHSPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2$1;\nHSPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2$1;-><init>(Landroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2$1;-><init>(Landroidx/compose/material3/MappedInteractionSource$special$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nLandroidx/compose/material3/MaterialRippleTheme;\nHSPLandroidx/compose/material3/MaterialRippleTheme;-><clinit>()V\nPLandroidx/compose/material3/MaterialRippleTheme;-><clinit>()V\nHSPLandroidx/compose/material3/MaterialRippleTheme;-><init>()V\nPLandroidx/compose/material3/MaterialRippleTheme;-><init>()V\nHSPLandroidx/compose/material3/MaterialRippleTheme;->defaultColor-WaAFU9c(Landroidx/compose/runtime/Composer;)J\nPLandroidx/compose/material3/MaterialRippleTheme;->defaultColor-WaAFU9c(Landroidx/compose/runtime/Composer;)J\nHSPLandroidx/compose/material3/MaterialRippleTheme;->rippleAlpha(Landroidx/compose/runtime/Composer;)Landroidx/compose/material/ripple/RippleAlpha;\nPLandroidx/compose/material3/MaterialRippleTheme;->rippleAlpha(Landroidx/compose/runtime/Composer;)Landroidx/compose/material/ripple/RippleAlpha;\nLandroidx/compose/material3/MaterialTheme;\nHSPLandroidx/compose/material3/MaterialTheme;-><clinit>()V\nPLandroidx/compose/material3/MaterialTheme;-><clinit>()V\nHSPLandroidx/compose/material3/MaterialTheme;-><init>()V\nPLandroidx/compose/material3/MaterialTheme;-><init>()V\nHSPLandroidx/compose/material3/MaterialTheme;->getTypography(Landroidx/compose/runtime/Composer;)Landroidx/compose/material3/Typography;\nHPLandroidx/compose/material3/MaterialTheme;->getTypography(Landroidx/compose/runtime/Composer;)Landroidx/compose/material3/Typography;\nLandroidx/compose/material3/MaterialThemeKt$MaterialTheme$2;\nHSPLandroidx/compose/material3/MaterialThemeKt$MaterialTheme$2;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;III)V\nPLandroidx/compose/material3/MaterialThemeKt$MaterialTheme$2;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;III)V\nLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m$1(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m$1(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(FF)Landroidx/compose/ui/graphics/vector/PathBuilder;\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(FF)Landroidx/compose/ui/graphics/vector/PathBuilder;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(ILkotlin/jvm/functions/Function2;Landroidx/compose/runtime/ComposerImpl;)V\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(ILkotlin/jvm/functions/Function2;Landroidx/compose/runtime/ComposerImpl;)V\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(JII)I\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(JLandroidx/compose/runtime/ComposerImpl;)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(JLandroidx/compose/runtime/ComposerImpl;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/foundation/layout/Arrangement$Top$1;Landroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/foundation/layout/Arrangement$Top$1;Landroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;)V\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;)V\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;I)Ljava/lang/Object;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;I)Ljava/lang/Object;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;ILandroidx/compose/ui/BiasAlignment$Vertical;Landroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;ILandroidx/compose/ui/BiasAlignment$Vertical;Landroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;IZLandroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/ComposerImpl;IZLandroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/ui/graphics/vector/PathBuilder;FFFF)V\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/ui/graphics/vector/PathBuilder;FFFF)V\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)Lkotlin/reflect/KMutableProperty1;\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)Lkotlin/reflect/KMutableProperty1;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Ljava/lang/StringBuilder;\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Ljava/lang/StringBuilder;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(ZLandroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nHPLandroidx/compose/material3/MenuKt$$ExternalSyntheticOutline0;->m(ZLandroidx/compose/runtime/ComposerImpl;I)Landroidx/compose/ui/layout/MeasurePolicy;\nLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;\nHSPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;-><init>(J)V\nHPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;-><init>(J)V\nHSPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier$measure$1;\nHSPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier$measure$1;-><init>(IILandroidx/compose/ui/layout/Placeable;)V\nPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier$measure$1;-><init>(IILandroidx/compose/ui/layout/Placeable;)V\nHSPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/MinimumInteractiveComponentSizeModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/NavigationBarDefaults;\nHSPLandroidx/compose/material3/NavigationBarDefaults;-><clinit>()V\nPLandroidx/compose/material3/NavigationBarDefaults;-><clinit>()V\nHSPLandroidx/compose/material3/NavigationBarDefaults;->getElevation-D9Ej5fM()F\nPLandroidx/compose/material3/NavigationBarDefaults;->getElevation-D9Ej5fM()F\nHSPLandroidx/compose/material3/NavigationBarDefaults;->getWindowInsets(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/WindowInsets;\nPLandroidx/compose/material3/NavigationBarDefaults;->getWindowInsets(Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/WindowInsets;\nLandroidx/compose/material3/NavigationBarItemColors;\nHSPLandroidx/compose/material3/NavigationBarItemColors;-><init>(JJJJJJJ)V\nHPLandroidx/compose/material3/NavigationBarItemColors;-><init>(JJJJJJJ)V\nHSPLandroidx/compose/material3/NavigationBarItemColors;->getIndicatorColor-0d7_KjU$material3_release()J\nPLandroidx/compose/material3/NavigationBarItemColors;->getIndicatorColor-0d7_KjU$material3_release()J\nHSPLandroidx/compose/material3/NavigationBarItemColors;->iconColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/State;\nHPLandroidx/compose/material3/NavigationBarItemColors;->iconColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/State;\nHSPLandroidx/compose/material3/NavigationBarItemColors;->textColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/State;\nHPLandroidx/compose/material3/NavigationBarItemColors;->textColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/State;\nLandroidx/compose/material3/NavigationBarKt;\nHSPLandroidx/compose/material3/NavigationBarKt;-><clinit>()V\nPLandroidx/compose/material3/NavigationBarKt;-><clinit>()V\nHSPLandroidx/compose/material3/NavigationBarKt;->NavigationBarItem(Landroidx/compose/foundation/layout/RowScope;ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/NavigationBarItemColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/NavigationBarKt;->NavigationBarItem(Landroidx/compose/foundation/layout/RowScope;ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/NavigationBarItemColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/NavigationBarKt;->NavigationBarItemLayout(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ZFLandroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/NavigationBarKt;->NavigationBarItemLayout(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ZFLandroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/NavigationBarKt;->access$NavigationBarItem$lambda$9$lambda$6(Landroidx/compose/runtime/State;)F\nHPLandroidx/compose/material3/NavigationBarKt;->access$NavigationBarItem$lambda$9$lambda$6(Landroidx/compose/runtime/State;)F\nHSPLandroidx/compose/material3/NavigationBarKt;->access$getIndicatorHorizontalPadding$p()F\nPLandroidx/compose/material3/NavigationBarKt;->access$getIndicatorHorizontalPadding$p()F\nHSPLandroidx/compose/material3/NavigationBarKt;->access$placeLabelAndIcon-zUg2_y0(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Placeable;JZF)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/material3/NavigationBarKt;->access$placeLabelAndIcon-zUg2_y0(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/layout/Placeable;JZF)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/material3/NavigationBarKt;->getIndicatorVerticalPadding()F\nPLandroidx/compose/material3/NavigationBarKt;->getIndicatorVerticalPadding()F\nLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$2$1;\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$2$1;-><init>(Landroidx/compose/runtime/MutableIntState;I)V\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$2$1;-><init>(Landroidx/compose/runtime/MutableIntState;I)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$4;\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$4;-><init>(Landroidx/compose/foundation/layout/RowScope;ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/NavigationBarItemColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;II)V\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$4;-><init>(Landroidx/compose/foundation/layout/RowScope;ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/NavigationBarItemColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;II)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;-><init>(Ljava/lang/Object;ZZILkotlin/jvm/functions/Function2;ZLkotlin/jvm/functions/Function2;I)V\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;-><init>(Ljava/lang/Object;ZZILkotlin/jvm/functions/Function2;ZLkotlin/jvm/functions/Function2;I)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledIcon$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;-><init>(Ljava/lang/Object;ZZILkotlin/jvm/functions/Function2;I)V\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;-><init>(Ljava/lang/Object;ZZILkotlin/jvm/functions/Function2;I)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItem$styledLabel$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/NavigationBarKt$NavigationBarItemLayout$2;\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItemLayout$2;-><init>(FLkotlin/jvm/functions/Function2;ZI)V\nPLandroidx/compose/material3/NavigationBarKt$NavigationBarItemLayout$2;-><init>(FLkotlin/jvm/functions/Function2;ZI)V\nHSPLandroidx/compose/material3/NavigationBarKt$NavigationBarItemLayout$2;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/material3/NavigationBarKt$NavigationBarItemLayout$2;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/material3/NavigationBarKt$NavigationBarItemLayout$3;\nLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;\nHSPLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;-><init>(Landroidx/compose/ui/layout/Placeable;ZFLandroidx/compose/ui/layout/Placeable;IFFLandroidx/compose/ui/layout/Placeable;IFLandroidx/compose/ui/layout/Placeable;IFILandroidx/compose/ui/layout/MeasureScope;I)V\nHPLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;-><init>(Landroidx/compose/ui/layout/Placeable;ZFLandroidx/compose/ui/layout/Placeable;IFFLandroidx/compose/ui/layout/Placeable;IFLandroidx/compose/ui/layout/Placeable;IFILandroidx/compose/ui/layout/MeasureScope;I)V\nHSPLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHPLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHSPLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/NavigationBarKt$placeLabelAndIcon$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/NavigationRailItemColors;\nLandroidx/compose/material3/NavigationRailKt;\nLandroidx/compose/material3/PinnedScrollBehavior;\nHSPLandroidx/compose/material3/PinnedScrollBehavior;-><init>(Landroidx/compose/material3/TopAppBarState;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/material3/PinnedScrollBehavior;-><init>(Landroidx/compose/material3/TopAppBarState;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/material3/PinnedScrollBehavior;->getNestedScrollConnection()Landroidx/compose/material3/PinnedScrollBehavior$nestedScrollConnection$1;\nPLandroidx/compose/material3/PinnedScrollBehavior;->getNestedScrollConnection()Landroidx/compose/material3/PinnedScrollBehavior$nestedScrollConnection$1;\nHSPLandroidx/compose/material3/PinnedScrollBehavior;->getState()Landroidx/compose/material3/TopAppBarState;\nPLandroidx/compose/material3/PinnedScrollBehavior;->getState()Landroidx/compose/material3/TopAppBarState;\nLandroidx/compose/material3/PinnedScrollBehavior$nestedScrollConnection$1;\nHSPLandroidx/compose/material3/PinnedScrollBehavior$nestedScrollConnection$1;-><init>(Landroidx/compose/material3/PinnedScrollBehavior;)V\nHPLandroidx/compose/material3/PinnedScrollBehavior$nestedScrollConnection$1;-><init>(Landroidx/compose/material3/PinnedScrollBehavior;)V\nLandroidx/compose/material3/PlainTooltipPositionProvider;\nHSPLandroidx/compose/material3/PlainTooltipPositionProvider;-><init>(I)V\nHPLandroidx/compose/material3/PlainTooltipPositionProvider;-><init>(I)V\nLandroidx/compose/material3/PlainTooltipState;\nLandroidx/compose/material3/PlainTooltipStateImpl;\nHSPLandroidx/compose/material3/PlainTooltipStateImpl;-><init>(Landroidx/compose/foundation/MutatorMutex;)V\nHPLandroidx/compose/material3/PlainTooltipStateImpl;-><init>(Landroidx/compose/foundation/MutatorMutex;)V\nHSPLandroidx/compose/material3/PlainTooltipStateImpl;->isVisible()Z\nHPLandroidx/compose/material3/PlainTooltipStateImpl;->isVisible()Z\nHSPLandroidx/compose/material3/PlainTooltipStateImpl;->onDispose()V\nPLandroidx/compose/material3/PlainTooltipStateImpl;->onDispose()V\nLandroidx/compose/material3/ProgressIndicatorDefaults;\nHSPLandroidx/compose/material3/ProgressIndicatorDefaults;-><clinit>()V\nPLandroidx/compose/material3/ProgressIndicatorDefaults;-><clinit>()V\nHSPLandroidx/compose/material3/ProgressIndicatorDefaults;->getCircularIndeterminateStrokeCap-KaPHkGw()I\nPLandroidx/compose/material3/ProgressIndicatorDefaults;->getCircularIndeterminateStrokeCap-KaPHkGw()I\nHSPLandroidx/compose/material3/ProgressIndicatorDefaults;->getCircularStrokeWidth-D9Ej5fM()F\nPLandroidx/compose/material3/ProgressIndicatorDefaults;->getCircularStrokeWidth-D9Ej5fM()F\nLandroidx/compose/material3/ProgressIndicatorKt;\nHSPLandroidx/compose/material3/ProgressIndicatorKt;-><clinit>()V\nPLandroidx/compose/material3/ProgressIndicatorKt;-><clinit>()V\nHSPLandroidx/compose/material3/ProgressIndicatorKt;->CircularProgressIndicator-LxG7B9w(FIIIJJLandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V\nPLandroidx/compose/material3/ProgressIndicatorKt;->CircularProgressIndicator-LxG7B9w(FIIIJJLandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V\nHSPLandroidx/compose/material3/ProgressIndicatorKt;->access$drawCircularIndicatorTrack-bw27NRU(Landroidx/compose/ui/graphics/drawscope/DrawScope;JLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nPLandroidx/compose/material3/ProgressIndicatorKt;->access$drawCircularIndicatorTrack-bw27NRU(Landroidx/compose/ui/graphics/drawscope/DrawScope;JLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nHSPLandroidx/compose/material3/ProgressIndicatorKt;->access$drawIndeterminateCircularIndicator-hrjfTZI(Landroidx/compose/ui/graphics/drawscope/DrawScope;FFFJLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nPLandroidx/compose/material3/ProgressIndicatorKt;->access$drawIndeterminateCircularIndicator-hrjfTZI(Landroidx/compose/ui/graphics/drawscope/DrawScope;FFFJLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nHSPLandroidx/compose/material3/ProgressIndicatorKt;->access$getCircularEasing$p()Landroidx/compose/animation/core/CubicBezierEasing;\nPLandroidx/compose/material3/ProgressIndicatorKt;->access$getCircularEasing$p()Landroidx/compose/animation/core/CubicBezierEasing;\nHSPLandroidx/compose/material3/ProgressIndicatorKt;->drawCircularIndicator-42QJj7c(Landroidx/compose/ui/graphics/drawscope/DrawScope;FFJLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nPLandroidx/compose/material3/ProgressIndicatorKt;->drawCircularIndicator-42QJj7c(Landroidx/compose/ui/graphics/drawscope/DrawScope;FFJLandroidx/compose/ui/graphics/drawscope/Stroke;)V\nLandroidx/compose/material3/ProgressIndicatorKt$CircularProgressIndicator$3;\nHSPLandroidx/compose/material3/ProgressIndicatorKt$CircularProgressIndicator$3;-><init>(FJJLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/ui/graphics/drawscope/Stroke;)V\nPLandroidx/compose/material3/ProgressIndicatorKt$CircularProgressIndicator$3;-><init>(FJJLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Landroidx/compose/ui/graphics/drawscope/Stroke;)V\nHSPLandroidx/compose/material3/ProgressIndicatorKt$CircularProgressIndicator$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/ProgressIndicatorKt$CircularProgressIndicator$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/ProgressIndicatorKt$LinearProgressIndicator$2;\nHSPLandroidx/compose/material3/ProgressIndicatorKt$LinearProgressIndicator$2;-><init>(Landroidx/compose/ui/Modifier;JFJIII)V\nPLandroidx/compose/material3/ProgressIndicatorKt$LinearProgressIndicator$2;-><init>(Landroidx/compose/ui/Modifier;JFJIII)V\nLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;\nHSPLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nPLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHSPLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/ScaffoldKt$Scaffold$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/ShapeDefaults;\nHSPLandroidx/compose/material3/ShapeDefaults;-><clinit>()V\nPLandroidx/compose/material3/ShapeDefaults;-><clinit>()V\nHSPLandroidx/compose/material3/ShapeDefaults;->getExtraLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/ShapeDefaults;->getExtraLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/ShapeDefaults;->getExtraSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/ShapeDefaults;->getExtraSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/ShapeDefaults;->getLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/ShapeDefaults;->getLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/ShapeDefaults;->getMedium()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/ShapeDefaults;->getMedium()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/ShapeDefaults;->getSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/ShapeDefaults;->getSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nLandroidx/compose/material3/Shapes;\nHSPLandroidx/compose/material3/Shapes;-><init>()V\nPLandroidx/compose/material3/Shapes;-><init>()V\nHSPLandroidx/compose/material3/Shapes;-><init>(Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;)V\nPLandroidx/compose/material3/Shapes;-><init>(Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;Landroidx/compose/foundation/shape/CornerBasedShape;)V\nHSPLandroidx/compose/material3/Shapes;->getExtraLarge()Landroidx/compose/foundation/shape/CornerBasedShape;\nPLandroidx/compose/material3/Shapes;->getExtraLarge()Landroidx/compose/foundation/shape/CornerBasedShape;\nHSPLandroidx/compose/material3/Shapes;->getExtraSmall()Landroidx/compose/foundation/shape/CornerBasedShape;\nPLandroidx/compose/material3/Shapes;->getExtraSmall()Landroidx/compose/foundation/shape/CornerBasedShape;\nHSPLandroidx/compose/material3/Shapes;->getLarge()Landroidx/compose/foundation/shape/CornerBasedShape;\nPLandroidx/compose/material3/Shapes;->getLarge()Landroidx/compose/foundation/shape/CornerBasedShape;\nHSPLandroidx/compose/material3/Shapes;->getMedium()Landroidx/compose/foundation/shape/CornerBasedShape;\nPLandroidx/compose/material3/Shapes;->getMedium()Landroidx/compose/foundation/shape/CornerBasedShape;\nHSPLandroidx/compose/material3/Shapes;->getSmall()Landroidx/compose/foundation/shape/CornerBasedShape;\nPLandroidx/compose/material3/Shapes;->getSmall()Landroidx/compose/foundation/shape/CornerBasedShape;\nLandroidx/compose/material3/ShapesKt;\nHSPLandroidx/compose/material3/ShapesKt;-><clinit>()V\nPLandroidx/compose/material3/ShapesKt;-><clinit>()V\nHSPLandroidx/compose/material3/ShapesKt;->getLocalShapes()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/material3/ShapesKt;->getLocalShapes()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/material3/ShapesKt;->getValue(ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/Shape;\nHPLandroidx/compose/material3/ShapesKt;->getValue(ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/Shape;\nLandroidx/compose/material3/ShapesKt$LocalShapes$1;\nHSPLandroidx/compose/material3/ShapesKt$LocalShapes$1;-><clinit>()V\nPLandroidx/compose/material3/ShapesKt$LocalShapes$1;-><clinit>()V\nHSPLandroidx/compose/material3/ShapesKt$LocalShapes$1;-><init>(I)V\nPLandroidx/compose/material3/ShapesKt$LocalShapes$1;-><init>(I)V\nHSPLandroidx/compose/material3/ShapesKt$LocalShapes$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/material3/ShapesKt$LocalShapes$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/material3/SnackbarData;\nLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;\nHSPLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;-><init>(Landroidx/compose/material3/SnackbarData;Landroidx/compose/ui/platform/AccessibilityManager;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;-><init>(Landroidx/compose/material3/SnackbarData;Landroidx/compose/ui/platform/AccessibilityManager;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/SnackbarHostKt$SnackbarHost$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SnackbarHostState;\nHSPLandroidx/compose/material3/SnackbarHostState;-><init>()V\nPLandroidx/compose/material3/SnackbarHostState;-><init>()V\nHSPLandroidx/compose/material3/SnackbarHostState;->getCurrentSnackbarData()Landroidx/compose/material3/SnackbarData;\nPLandroidx/compose/material3/SnackbarHostState;->getCurrentSnackbarData()Landroidx/compose/material3/SnackbarData;\nLandroidx/compose/material3/SnackbarKt$Snackbar$3;\nHSPLandroidx/compose/material3/SnackbarKt$Snackbar$3;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/material3/SnackbarKt$Snackbar$3;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/material3/SnackbarKt$Snackbar$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/SnackbarKt$Snackbar$3;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/SnackbarKt$Snackbar$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/SnackbarKt$Snackbar$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SurfaceKt;\nHSPLandroidx/compose/material3/SurfaceKt;-><clinit>()V\nPLandroidx/compose/material3/SurfaceKt;-><clinit>()V\nHSPLandroidx/compose/material3/SurfaceKt;->Surface-T9BRK9s(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JJFFLandroidx/compose/foundation/BorderStroke;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/SurfaceKt;->Surface-T9BRK9s(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JJFFLandroidx/compose/foundation/BorderStroke;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/SurfaceKt;->Surface-o_FOJdg(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;JJFFLandroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/SurfaceKt;->Surface-o_FOJdg(Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;JJFFLandroidx/compose/foundation/BorderStroke;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/SurfaceKt;->access$surface-8ww4TTg(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JLandroidx/compose/foundation/BorderStroke;F)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/material3/SurfaceKt;->access$surface-8ww4TTg(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JLandroidx/compose/foundation/BorderStroke;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/material3/SurfaceKt;->access$surfaceColorAtElevation-CLU3JFs(JFLandroidx/compose/runtime/Composer;I)J\nPLandroidx/compose/material3/SurfaceKt;->access$surfaceColorAtElevation-CLU3JFs(JFLandroidx/compose/runtime/Composer;I)J\nLandroidx/compose/material3/SurfaceKt$Surface$1;\nHSPLandroidx/compose/material3/SurfaceKt$Surface$1;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JFILandroidx/compose/foundation/BorderStroke;FLkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/material3/SurfaceKt$Surface$1;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JFILandroidx/compose/foundation/BorderStroke;FLkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/material3/SurfaceKt$Surface$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/SurfaceKt$Surface$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SurfaceKt$Surface$1$2;\nHSPLandroidx/compose/material3/SurfaceKt$Surface$1$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/material3/SurfaceKt$Surface$1$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/material3/SurfaceKt$Surface$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/SurfaceKt$Surface$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/material3/SurfaceKt$Surface$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/SurfaceKt$Surface$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SurfaceKt$Surface$3;\nHSPLandroidx/compose/material3/SurfaceKt$Surface$3;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JFILandroidx/compose/foundation/BorderStroke;FLandroidx/compose/foundation/interaction/MutableInteractionSource;ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLandroidx/compose/material3/SurfaceKt$Surface$3;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;JFILandroidx/compose/foundation/BorderStroke;FLandroidx/compose/foundation/interaction/MutableInteractionSource;ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/material3/SurfaceKt$Surface$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/SurfaceKt$Surface$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SwitchColors;\nHSPLandroidx/compose/material3/SwitchColors;-><init>(JJJJJJJJJJJJJJJJ)V\nPLandroidx/compose/material3/SwitchColors;-><init>(JJJJJJJJJJJJJJJJ)V\nHSPLandroidx/compose/material3/SwitchColors;->borderColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/SwitchColors;->borderColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/material3/SwitchColors;->thumbColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/SwitchColors;->thumbColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/material3/SwitchColors;->trackColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nPLandroidx/compose/material3/SwitchColors;->trackColor$material3_release(ZZLandroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nLandroidx/compose/material3/SwitchDefaults;\nHSPLandroidx/compose/material3/SwitchDefaults;-><clinit>()V\nPLandroidx/compose/material3/SwitchDefaults;-><clinit>()V\nLandroidx/compose/material3/SwitchKt;\nHSPLandroidx/compose/material3/SwitchKt;-><clinit>()V\nPLandroidx/compose/material3/SwitchKt;-><clinit>()V\nHSPLandroidx/compose/material3/SwitchKt;->Switch(ZLkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/SwitchColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/SwitchKt;->Switch(ZLkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/SwitchColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/SwitchKt;->SwitchImpl-0DmnUew(Landroidx/compose/foundation/layout/BoxScope;ZZLandroidx/compose/material3/SwitchColors;Landroidx/compose/runtime/State;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/ui/graphics/Shape;FFFLandroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/SwitchKt;->SwitchImpl-0DmnUew(Landroidx/compose/foundation/layout/BoxScope;ZZLandroidx/compose/material3/SwitchColors;Landroidx/compose/runtime/State;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/ui/graphics/Shape;FFFLandroidx/compose/runtime/Composer;II)V\nLandroidx/compose/material3/SwitchKt$Switch$2;\nHSPLandroidx/compose/material3/SwitchKt$Switch$2;-><init>(Ljava/lang/Object;FI)V\nHPLandroidx/compose/material3/SwitchKt$Switch$2;-><init>(Ljava/lang/Object;FI)V\nHSPLandroidx/compose/material3/SwitchKt$Switch$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/material3/SwitchKt$Switch$2;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/material3/SwitchKt$Switch$2;->invoke()V\nHPLandroidx/compose/material3/SwitchKt$Switch$2;->invoke()V\nLandroidx/compose/material3/SwitchKt$Switch$3;\nHSPLandroidx/compose/material3/SwitchKt$Switch$3;-><init>(Landroidx/compose/animation/core/Animatable;FLkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/compose/material3/SwitchKt$Switch$3;-><init>(Landroidx/compose/animation/core/Animatable;FLkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/material3/SwitchKt$Switch$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/SwitchKt$Switch$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SwitchKt$Switch$3$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/material3/SwitchKt$Switch$3$invoke$$inlined$onDispose$1;-><init>()V\nPLandroidx/compose/material3/SwitchKt$Switch$3$invoke$$inlined$onDispose$1;-><init>()V\nPLandroidx/compose/material3/SwitchKt$Switch$3$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/material3/SwitchKt$Switch$5;\nHSPLandroidx/compose/material3/SwitchKt$Switch$5;-><init>(ZLkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/SwitchColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;II)V\nPLandroidx/compose/material3/SwitchKt$Switch$5;-><init>(ZLkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/SwitchColors;Landroidx/compose/foundation/interaction/MutableInteractionSource;II)V\nLandroidx/compose/material3/SwitchKt$Switch$valueToOffset$1$1;\nHSPLandroidx/compose/material3/SwitchKt$Switch$valueToOffset$1$1;-><init>(FF)V\nPLandroidx/compose/material3/SwitchKt$Switch$valueToOffset$1$1;-><init>(FF)V\nHSPLandroidx/compose/material3/SwitchKt$Switch$valueToOffset$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/SwitchKt$Switch$valueToOffset$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SwitchKt$SwitchImpl$1$1$1;\nHSPLandroidx/compose/material3/SwitchKt$SwitchImpl$1$1$1;-><init>(F)V\nPLandroidx/compose/material3/SwitchKt$SwitchImpl$1$1$1;-><init>(F)V\nHSPLandroidx/compose/material3/SwitchKt$SwitchImpl$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/SwitchKt$SwitchImpl$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/SwitchKt$SwitchImpl$2;\nHSPLandroidx/compose/material3/SwitchKt$SwitchImpl$2;-><init>(Landroidx/compose/foundation/layout/BoxScope;ZZLandroidx/compose/material3/SwitchColors;Landroidx/compose/runtime/State;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/ui/graphics/Shape;FFFII)V\nPLandroidx/compose/material3/SwitchKt$SwitchImpl$2;-><init>(Landroidx/compose/foundation/layout/BoxScope;ZZLandroidx/compose/material3/SwitchColors;Landroidx/compose/runtime/State;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/interaction/InteractionSource;Landroidx/compose/ui/graphics/Shape;FFFII)V\nLandroidx/compose/material3/TabKt$TabTransition$color$2;\nHSPLandroidx/compose/material3/TabKt$TabTransition$color$2;-><clinit>()V\nPLandroidx/compose/material3/TabKt$TabTransition$color$2;-><clinit>()V\nHSPLandroidx/compose/material3/TabKt$TabTransition$color$2;-><init>(I)V\nPLandroidx/compose/material3/TabKt$TabTransition$color$2;-><init>(I)V\nHSPLandroidx/compose/material3/TabKt$TabTransition$color$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/TabKt$TabTransition$color$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/TextKt;\nHSPLandroidx/compose/material3/TextKt;-><clinit>()V\nPLandroidx/compose/material3/TextKt;-><clinit>()V\nHSPLandroidx/compose/material3/TextKt;->ProvideTextStyle(Landroidx/compose/ui/text/TextStyle;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/TextKt;->ProvideTextStyle(Landroidx/compose/ui/text/TextStyle;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/TextKt;->Text--4IGK_g(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILkotlin/jvm/functions/Function1;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V\nHPLandroidx/compose/material3/TextKt;->Text--4IGK_g(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILkotlin/jvm/functions/Function1;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V\nHSPLandroidx/compose/material3/TextKt;->getLocalTextStyle()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/material3/TextKt;->getLocalTextStyle()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLandroidx/compose/material3/TextKt$ProvideTextStyle$1;\nHSPLandroidx/compose/material3/TextKt$ProvideTextStyle$1;-><init>(Landroidx/compose/ui/text/TextStyle;Lkotlin/jvm/functions/Function2;II)V\nHPLandroidx/compose/material3/TextKt$ProvideTextStyle$1;-><init>(Landroidx/compose/ui/text/TextStyle;Lkotlin/jvm/functions/Function2;II)V\nHSPLandroidx/compose/material3/TextKt$ProvideTextStyle$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/TextKt$ProvideTextStyle$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/TextKt$ProvideTextStyle$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/TextKt$ProvideTextStyle$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/TextKt$Text$1;\nHSPLandroidx/compose/material3/TextKt$Text$1;-><init>(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILkotlin/jvm/functions/Function1;Landroidx/compose/ui/text/TextStyle;III)V\nHPLandroidx/compose/material3/TextKt$Text$1;-><init>(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILkotlin/jvm/functions/Function1;Landroidx/compose/ui/text/TextStyle;III)V\nHSPLandroidx/compose/material3/TextKt$Text$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/TextKt$Text$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/TooltipDefaults;\nHSPLandroidx/compose/material3/TooltipDefaults;-><clinit>()V\nPLandroidx/compose/material3/TooltipDefaults;-><clinit>()V\nHSPLandroidx/compose/material3/TooltipDefaults;->getGlobalMutatorMutex()Landroidx/compose/foundation/MutatorMutex;\nPLandroidx/compose/material3/TooltipDefaults;->getGlobalMutatorMutex()Landroidx/compose/foundation/MutatorMutex;\nLandroidx/compose/material3/TooltipKt;\nHSPLandroidx/compose/material3/TooltipKt;-><clinit>()V\nPLandroidx/compose/material3/TooltipKt;-><clinit>()V\nHSPLandroidx/compose/material3/TooltipKt;->PlainTooltipBox-EVJuX4I(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/PlainTooltipState;Landroidx/compose/ui/graphics/Shape;JJLkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/material3/TooltipKt;->PlainTooltipBox-EVJuX4I(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/PlainTooltipState;Landroidx/compose/ui/graphics/Shape;JJLkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/material3/TooltipKt;->TooltipBox-xJj0JzU(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/window/PopupPositionProvider;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/PlainTooltipState;JFFLkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/TooltipKt;->TooltipBox-xJj0JzU(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/window/PopupPositionProvider;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/PlainTooltipState;JFFLkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V\nLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;\nHSPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;-><init>(JLkotlin/jvm/functions/Function2;II)V\nHPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;-><init>(JLkotlin/jvm/functions/Function2;II)V\nHSPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/TooltipKt$PlainTooltipBox$2;\nHSPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$2;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/PlainTooltipState;Landroidx/compose/ui/graphics/Shape;JJLkotlin/jvm/functions/Function3;II)V\nHPLandroidx/compose/material3/TooltipKt$PlainTooltipBox$2;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/Modifier;ZLandroidx/compose/material3/PlainTooltipState;Landroidx/compose/ui/graphics/Shape;JJLkotlin/jvm/functions/Function3;II)V\nLandroidx/compose/material3/TooltipKt$TooltipBox$1$1;\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$1$1;-><init>(Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/material3/PlainTooltipState;)V\nHPLandroidx/compose/material3/TooltipKt$TooltipBox$1$1;-><init>(Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/material3/PlainTooltipState;)V\nLandroidx/compose/material3/TooltipKt$TooltipBox$2$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$2$1$invoke$$inlined$onDispose$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/material3/TooltipKt$TooltipBox$2$1$invoke$$inlined$onDispose$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$2$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/material3/TooltipKt$TooltipBox$2$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/material3/TooltipKt$TooltipBox$3;\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$3;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/window/PopupPositionProvider;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/PlainTooltipState;JFFLkotlin/jvm/functions/Function3;I)V\nHPLandroidx/compose/material3/TooltipKt$TooltipBox$3;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/ui/window/PopupPositionProvider;Landroidx/compose/ui/Modifier;ZLandroidx/compose/ui/graphics/Shape;Landroidx/compose/material3/PlainTooltipState;JFFLkotlin/jvm/functions/Function3;I)V\nLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1;\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1;-><init>(Landroidx/compose/material3/PlainTooltipState;Lkotlinx/coroutines/CoroutineScope;Ljava/lang/String;)V\nHPLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1;-><init>(Landroidx/compose/material3/PlainTooltipState;Lkotlinx/coroutines/CoroutineScope;Ljava/lang/String;)V\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1;->tooltipTrigger(Landroidx/compose/ui/Modifier$Companion;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1;->tooltipTrigger(Landroidx/compose/ui/Modifier$Companion;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1$tooltipTrigger$1;\nHSPLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1$tooltipTrigger$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/material3/TooltipKt$TooltipBox$scope$1$1$tooltipTrigger$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nLandroidx/compose/material3/TooltipKt$animateTooltip$$inlined$debugInspectorInfo$1;\nHSPLandroidx/compose/material3/TooltipKt$animateTooltip$$inlined$debugInspectorInfo$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/material3/TooltipKt$animateTooltip$$inlined$debugInspectorInfo$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/material3/TooltipKt$animateTooltip$$inlined$debugInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/material3/TooltipKt$animateTooltip$$inlined$debugInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/TopAppBarColors;\nHSPLandroidx/compose/material3/TopAppBarColors;-><init>(JJJJJ)V\nPLandroidx/compose/material3/TopAppBarColors;-><init>(JJJJJ)V\nHSPLandroidx/compose/material3/TopAppBarColors;->containerColor-XeAY9LY$material3_release(FLandroidx/compose/runtime/Composer;)J\nHPLandroidx/compose/material3/TopAppBarColors;->containerColor-XeAY9LY$material3_release(FLandroidx/compose/runtime/Composer;)J\nPLandroidx/compose/material3/TopAppBarColors;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/material3/TopAppBarColors;->getActionIconContentColor-0d7_KjU()J\nPLandroidx/compose/material3/TopAppBarColors;->getActionIconContentColor-0d7_KjU()J\nHSPLandroidx/compose/material3/TopAppBarColors;->getNavigationIconContentColor-0d7_KjU()J\nPLandroidx/compose/material3/TopAppBarColors;->getNavigationIconContentColor-0d7_KjU()J\nHSPLandroidx/compose/material3/TopAppBarColors;->getTitleContentColor-0d7_KjU()J\nPLandroidx/compose/material3/TopAppBarColors;->getTitleContentColor-0d7_KjU()J\nLandroidx/compose/material3/TopAppBarDefaults$pinnedScrollBehavior$1;\nHSPLandroidx/compose/material3/TopAppBarDefaults$pinnedScrollBehavior$1;-><clinit>()V\nPLandroidx/compose/material3/TopAppBarDefaults$pinnedScrollBehavior$1;-><clinit>()V\nHSPLandroidx/compose/material3/TopAppBarDefaults$pinnedScrollBehavior$1;-><init>()V\nPLandroidx/compose/material3/TopAppBarDefaults$pinnedScrollBehavior$1;-><init>()V\nLandroidx/compose/material3/TopAppBarScrollBehavior;\nLandroidx/compose/material3/TopAppBarState;\nHSPLandroidx/compose/material3/TopAppBarState;-><clinit>()V\nPLandroidx/compose/material3/TopAppBarState;-><clinit>()V\nHSPLandroidx/compose/material3/TopAppBarState;-><init>(FFF)V\nPLandroidx/compose/material3/TopAppBarState;-><init>(FFF)V\nHSPLandroidx/compose/material3/TopAppBarState;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/material3/TopAppBarState;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/material3/TopAppBarState;->getContentOffset()F\nHPLandroidx/compose/material3/TopAppBarState;->getContentOffset()F\nHSPLandroidx/compose/material3/TopAppBarState;->getHeightOffset()F\nHPLandroidx/compose/material3/TopAppBarState;->getHeightOffset()F\nHSPLandroidx/compose/material3/TopAppBarState;->getHeightOffsetLimit()F\nHPLandroidx/compose/material3/TopAppBarState;->getHeightOffsetLimit()F\nHSPLandroidx/compose/material3/TopAppBarState;->setHeightOffsetLimit(F)V\nPLandroidx/compose/material3/TopAppBarState;->setHeightOffsetLimit(F)V\nLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;\nHSPLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;-><clinit>()V\nPLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;-><clinit>()V\nHSPLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;-><init>(I)V\nPLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;-><init>(I)V\nHSPLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/material3/TopAppBarState$Companion$Saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/material3/Typography;\nHSPLandroidx/compose/material3/Typography;-><init>(Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;)V\nPLandroidx/compose/material3/Typography;-><init>(Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;)V\nHSPLandroidx/compose/material3/Typography;->getBodyLarge()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getBodyLarge()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/Typography;->getBodyMedium()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getBodyMedium()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/Typography;->getBodySmall()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getBodySmall()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/Typography;->getDisplayMedium()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getDisplayMedium()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/Typography;->getLabelLarge()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getLabelLarge()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/Typography;->getLabelMedium()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getLabelMedium()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/Typography;->getTitleLarge()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/Typography;->getTitleLarge()Landroidx/compose/ui/text/TextStyle;\nLandroidx/compose/material3/TypographyKt;\nHSPLandroidx/compose/material3/TypographyKt;-><clinit>()V\nPLandroidx/compose/material3/TypographyKt;-><clinit>()V\nHSPLandroidx/compose/material3/TypographyKt;->fromToken(Landroidx/compose/material3/Typography;I)Landroidx/compose/ui/text/TextStyle;\nHPLandroidx/compose/material3/TypographyKt;->fromToken(Landroidx/compose/material3/Typography;I)Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/material3/TypographyKt;->getLocalTypography()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/material3/TypographyKt;->getLocalTypography()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLandroidx/compose/material3/tokens/BadgeTokens;\nHSPLandroidx/compose/material3/tokens/BadgeTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/BadgeTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/BadgeTokens;->getSize-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/BadgeTokens;->getSize-D9Ej5fM()F\nLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;\nHSPLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;->getActiveIndicatorWidth-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;->getActiveIndicatorWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;->getSize-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/CircularProgressIndicatorTokens;->getSize-D9Ej5fM()F\nLandroidx/compose/material3/tokens/ColorLightTokens;\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/ColorLightTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceBright-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceBright-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainer-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainer-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerHigh-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerHigh-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerHighest-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerHighest-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerLow-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerLow-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerLowest-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceContainerLowest-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceDim-0d7_KjU()J\nPLandroidx/compose/material3/tokens/ColorLightTokens;->getSurfaceDim-0d7_KjU()J\nLandroidx/compose/material3/tokens/DividerTokens;\nHSPLandroidx/compose/material3/tokens/DividerTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/DividerTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/DividerTokens;->getThickness-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/DividerTokens;->getThickness-D9Ej5fM()F\nLandroidx/compose/material3/tokens/ElevationTokens;\nHSPLandroidx/compose/material3/tokens/ElevationTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/ElevationTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/ElevationTokens;->getLevel0-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/ElevationTokens;->getLevel0-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/ElevationTokens;->getLevel1-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/ElevationTokens;->getLevel1-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/ElevationTokens;->getLevel2-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/ElevationTokens;->getLevel2-D9Ej5fM()F\nLandroidx/compose/material3/tokens/FilledButtonTokens;\nHSPLandroidx/compose/material3/tokens/FilledButtonTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/FilledButtonTokens;-><clinit>()V\nLandroidx/compose/material3/tokens/IconButtonTokens;\nHSPLandroidx/compose/material3/tokens/IconButtonTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/IconButtonTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/IconButtonTokens;->getIconSize-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/IconButtonTokens;->getIconSize-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/IconButtonTokens;->getStateLayerShape()I\nPLandroidx/compose/material3/tokens/IconButtonTokens;->getStateLayerShape()I\nHSPLandroidx/compose/material3/tokens/IconButtonTokens;->getStateLayerSize-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/IconButtonTokens;->getStateLayerSize-D9Ej5fM()F\nLandroidx/compose/material3/tokens/LinearProgressIndicatorTokens;\nHSPLandroidx/compose/material3/tokens/LinearProgressIndicatorTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/LinearProgressIndicatorTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/LinearProgressIndicatorTokens;->getTrackHeight-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/LinearProgressIndicatorTokens;->getTrackHeight-D9Ej5fM()F\nLandroidx/compose/material3/tokens/NavigationBarTokens;\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/NavigationBarTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveIndicatorHeight-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveIndicatorHeight-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveIndicatorShape()I\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveIndicatorShape()I\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveIndicatorWidth-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveIndicatorWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveLabelTextColor()I\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getActiveLabelTextColor()I\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getContainerColor()I\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getContainerColor()I\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getContainerElevation-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getContainerElevation-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getContainerHeight-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getContainerHeight-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getIconSize-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getIconSize-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getInactiveIconColor()I\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getInactiveIconColor()I\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getInactiveLabelTextColor()I\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getInactiveLabelTextColor()I\nHSPLandroidx/compose/material3/tokens/NavigationBarTokens;->getLabelTextFont()I\nPLandroidx/compose/material3/tokens/NavigationBarTokens;->getLabelTextFont()I\nLandroidx/compose/material3/tokens/PaletteTokens;\nHSPLandroidx/compose/material3/tokens/PaletteTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/PaletteTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getError10-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getError10-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getError100-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getError100-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getError40-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getError40-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getError90-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getError90-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral0-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral0-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral10-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral10-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral100-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral100-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral20-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral20-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral87-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral87-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral90-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral90-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral92-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral92-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral94-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral94-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral95-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral95-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral96-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral96-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral98-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral98-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral99-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutral99-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant30-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant30-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant50-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant50-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant80-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant80-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant90-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getNeutralVariant90-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary10-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary10-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary100-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary100-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary40-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary40-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary80-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary80-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary90-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getPrimary90-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary10-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary10-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary100-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary100-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary40-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary40-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary90-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getSecondary90-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary10-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary10-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary100-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary100-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary40-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary40-0d7_KjU()J\nHSPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary90-0d7_KjU()J\nPLandroidx/compose/material3/tokens/PaletteTokens;->getTertiary90-0d7_KjU()J\nLandroidx/compose/material3/tokens/ShapeTokens;\nHSPLandroidx/compose/material3/tokens/ShapeTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/ShapeTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerExtraLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerExtraLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerExtraSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerExtraSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerLarge()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerMedium()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerMedium()Landroidx/compose/foundation/shape/RoundedCornerShape;\nHSPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nPLandroidx/compose/material3/tokens/ShapeTokens;->getCornerSmall()Landroidx/compose/foundation/shape/RoundedCornerShape;\nLandroidx/compose/material3/tokens/SwitchTokens;\nHSPLandroidx/compose/material3/tokens/SwitchTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/SwitchTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedHandleColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedHandleColor()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedHandleWidth-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedHandleWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedIconColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedIconColor()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedTrackColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getSelectedTrackColor()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getStateLayerSize-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/SwitchTokens;->getStateLayerSize-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackHeight-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackHeight-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackOutlineWidth-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackOutlineWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackShape()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackShape()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackWidth-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/SwitchTokens;->getTrackWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedFocusTrackOutlineColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedFocusTrackOutlineColor()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedHandleColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedHandleColor()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedHandleWidth-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedHandleWidth-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedIconColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedIconColor()I\nHSPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedTrackColor()I\nPLandroidx/compose/material3/tokens/SwitchTokens;->getUnselectedTrackColor()I\nLandroidx/compose/material3/tokens/TextButtonTokens;\nHSPLandroidx/compose/material3/tokens/TextButtonTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/TextButtonTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/TextButtonTokens;->getContainerShape()I\nPLandroidx/compose/material3/tokens/TextButtonTokens;->getContainerShape()I\nHSPLandroidx/compose/material3/tokens/TextButtonTokens;->getDisabledLabelTextColor()I\nPLandroidx/compose/material3/tokens/TextButtonTokens;->getDisabledLabelTextColor()I\nHSPLandroidx/compose/material3/tokens/TextButtonTokens;->getLabelTextColor()I\nPLandroidx/compose/material3/tokens/TextButtonTokens;->getLabelTextColor()I\nLandroidx/compose/material3/tokens/TopAppBarSmallTokens;\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;-><clinit>()V\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getContainerHeight-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getContainerHeight-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getHeadlineColor()I\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getHeadlineColor()I\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getHeadlineFont()I\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getHeadlineFont()I\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getLeadingIconColor()I\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getLeadingIconColor()I\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getOnScrollContainerElevation-D9Ej5fM()F\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getOnScrollContainerElevation-D9Ej5fM()F\nHSPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getTrailingIconColor()I\nPLandroidx/compose/material3/tokens/TopAppBarSmallTokens;->getTrailingIconColor()I\nLandroidx/compose/material3/tokens/TypographyTokensKt;\nHSPLandroidx/compose/material3/tokens/TypographyTokensKt;-><clinit>()V\nPLandroidx/compose/material3/tokens/TypographyTokensKt;-><clinit>()V\nHSPLandroidx/compose/material3/tokens/TypographyTokensKt;->getDefaultTextStyle()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/material3/tokens/TypographyTokensKt;->getDefaultTextStyle()Landroidx/compose/ui/text/TextStyle;\nLandroidx/compose/runtime/AbstractApplier;\nHSPLandroidx/compose/runtime/AbstractApplier;-><init>(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/AbstractApplier;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/AbstractApplier;->clear()V\nHPLandroidx/compose/runtime/AbstractApplier;->clear()V\nHSPLandroidx/compose/runtime/AbstractApplier;->down(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/AbstractApplier;->down(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/AbstractApplier;->getCurrent()Ljava/lang/Object;\nHPLandroidx/compose/runtime/AbstractApplier;->getCurrent()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/AbstractApplier;->getRoot()Ljava/lang/Object;\nPLandroidx/compose/runtime/AbstractApplier;->getRoot()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/AbstractApplier;->up()V\nHPLandroidx/compose/runtime/AbstractApplier;->up()V\nLandroidx/compose/runtime/ActualAndroid_androidKt;\nHSPLandroidx/compose/runtime/ActualAndroid_androidKt;-><clinit>()V\nPLandroidx/compose/runtime/ActualAndroid_androidKt;-><clinit>()V\nLandroidx/compose/runtime/ActualAndroid_androidKt$DefaultMonotonicFrameClock$2;\nHSPLandroidx/compose/runtime/ActualAndroid_androidKt$DefaultMonotonicFrameClock$2;-><clinit>()V\nPLandroidx/compose/runtime/ActualAndroid_androidKt$DefaultMonotonicFrameClock$2;-><clinit>()V\nHSPLandroidx/compose/runtime/ActualAndroid_androidKt$DefaultMonotonicFrameClock$2;-><init>()V\nPLandroidx/compose/runtime/ActualAndroid_androidKt$DefaultMonotonicFrameClock$2;-><init>()V\nLandroidx/compose/runtime/Anchor;\nHSPLandroidx/compose/runtime/Anchor;-><init>(I)V\nHPLandroidx/compose/runtime/Anchor;-><init>(I)V\nHSPLandroidx/compose/runtime/Anchor;->getLocation$runtime_release()I\nPLandroidx/compose/runtime/Anchor;->getLocation$runtime_release()I\nHSPLandroidx/compose/runtime/Anchor;->getValid()Z\nHPLandroidx/compose/runtime/Anchor;->getValid()Z\nHSPLandroidx/compose/runtime/Anchor;->setLocation$runtime_release(I)V\nPLandroidx/compose/runtime/Anchor;->setLocation$runtime_release(I)V\nLandroidx/compose/runtime/Applier;\nHSPLandroidx/compose/runtime/Applier;->onEndChanges()V\nPLandroidx/compose/runtime/Applier;->onEndChanges()V\nLandroidx/compose/runtime/BroadcastFrameClock;\nHSPLandroidx/compose/runtime/BroadcastFrameClock;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/BroadcastFrameClock;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->access$getAwaiters$p(Landroidx/compose/runtime/BroadcastFrameClock;)Ljava/util/List;\nPLandroidx/compose/runtime/BroadcastFrameClock;->access$getAwaiters$p(Landroidx/compose/runtime/BroadcastFrameClock;)Ljava/util/List;\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->access$getLock$p(Landroidx/compose/runtime/BroadcastFrameClock;)Ljava/lang/Object;\nPLandroidx/compose/runtime/BroadcastFrameClock;->access$getLock$p(Landroidx/compose/runtime/BroadcastFrameClock;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nPLandroidx/compose/runtime/BroadcastFrameClock;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLandroidx/compose/runtime/BroadcastFrameClock;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->getHasAwaiters()Z\nHPLandroidx/compose/runtime/BroadcastFrameClock;->getHasAwaiters()Z\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->sendFrame(J)V\nHPLandroidx/compose/runtime/BroadcastFrameClock;->sendFrame(J)V\nHSPLandroidx/compose/runtime/BroadcastFrameClock;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/BroadcastFrameClock;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/runtime/BroadcastFrameClock$FrameAwaiter;\nHSPLandroidx/compose/runtime/BroadcastFrameClock$FrameAwaiter;-><init>(Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHPLandroidx/compose/runtime/BroadcastFrameClock$FrameAwaiter;-><init>(Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHSPLandroidx/compose/runtime/BroadcastFrameClock$FrameAwaiter;->resume(J)V\nHPLandroidx/compose/runtime/BroadcastFrameClock$FrameAwaiter;->resume(J)V\nLandroidx/compose/runtime/BroadcastFrameClock$withFrameNanos$2$1;\nHSPLandroidx/compose/runtime/BroadcastFrameClock$withFrameNanos$2$1;-><init>(Landroidx/compose/runtime/BroadcastFrameClock;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHPLandroidx/compose/runtime/BroadcastFrameClock$withFrameNanos$2$1;-><init>(Landroidx/compose/runtime/BroadcastFrameClock;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLandroidx/compose/runtime/BroadcastFrameClock$withFrameNanos$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/BroadcastFrameClock$withFrameNanos$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/ComposableSingletons$CompositionKt;\nHSPLandroidx/compose/runtime/ComposableSingletons$CompositionKt;-><clinit>()V\nPLandroidx/compose/runtime/ComposableSingletons$CompositionKt;-><clinit>()V\nLandroidx/compose/runtime/ComposableSingletons$CompositionKt$lambda-1$1;\nHSPLandroidx/compose/runtime/ComposableSingletons$CompositionKt$lambda-1$1;-><clinit>()V\nPLandroidx/compose/runtime/ComposableSingletons$CompositionKt$lambda-1$1;-><clinit>()V\nHSPLandroidx/compose/runtime/ComposableSingletons$CompositionKt$lambda-1$1;-><init>(I)V\nPLandroidx/compose/runtime/ComposableSingletons$CompositionKt$lambda-1$1;-><init>(I)V\nLandroidx/compose/runtime/ComposeNodeLifecycleCallback;\nLandroidx/compose/runtime/ComposeRuntimeError;\nLandroidx/compose/runtime/Composer;\nLandroidx/compose/runtime/Composer$Companion;\nHSPLandroidx/compose/runtime/Composer$Companion;-><clinit>()V\nPLandroidx/compose/runtime/Composer$Companion;-><clinit>()V\nHSPLandroidx/compose/runtime/Composer$Companion;->getEmpty()Landroidx/compose/runtime/Composer$Companion$Empty$1;\nHPLandroidx/compose/runtime/Composer$Companion;->getEmpty()Landroidx/compose/runtime/Composer$Companion$Empty$1;\nLandroidx/compose/runtime/Composer$Companion$Empty$1;\nHSPLandroidx/compose/runtime/Composer$Companion$Empty$1;-><init>()V\nPLandroidx/compose/runtime/Composer$Companion$Empty$1;-><init>()V\nLandroidx/compose/runtime/ComposerImpl;\nHSPLandroidx/compose/runtime/ComposerImpl;-><init>(Landroidx/compose/runtime/AbstractApplier;Landroidx/compose/runtime/CompositionContext;Landroidx/compose/runtime/SlotTable;Ljava/util/HashSet;Landroidx/compose/runtime/changelist/ChangeList;Landroidx/compose/runtime/changelist/ChangeList;Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/ComposerImpl;-><init>(Landroidx/compose/runtime/AbstractApplier;Landroidx/compose/runtime/CompositionContext;Landroidx/compose/runtime/SlotTable;Ljava/util/HashSet;Landroidx/compose/runtime/changelist/ChangeList;Landroidx/compose/runtime/changelist/ChangeList;Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->access$getChildrenComposing$p(Landroidx/compose/runtime/ComposerImpl;)I\nHPLandroidx/compose/runtime/ComposerImpl;->access$getChildrenComposing$p(Landroidx/compose/runtime/ComposerImpl;)I\nHSPLandroidx/compose/runtime/ComposerImpl;->access$getParentContext$p(Landroidx/compose/runtime/ComposerImpl;)Landroidx/compose/runtime/CompositionContext;\nPLandroidx/compose/runtime/ComposerImpl;->access$getParentContext$p(Landroidx/compose/runtime/ComposerImpl;)Landroidx/compose/runtime/CompositionContext;\nHSPLandroidx/compose/runtime/ComposerImpl;->access$setChildrenComposing$p(Landroidx/compose/runtime/ComposerImpl;I)V\nHPLandroidx/compose/runtime/ComposerImpl;->access$setChildrenComposing$p(Landroidx/compose/runtime/ComposerImpl;I)V\nHSPLandroidx/compose/runtime/ComposerImpl;->apply(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/ComposerImpl;->apply(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->buildContext()Landroidx/compose/runtime/CompositionContext;\nHPLandroidx/compose/runtime/ComposerImpl;->buildContext()Landroidx/compose/runtime/CompositionContext;\nHSPLandroidx/compose/runtime/ComposerImpl;->changed(F)Z\nHPLandroidx/compose/runtime/ComposerImpl;->changed(F)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->changed(I)Z\nHPLandroidx/compose/runtime/ComposerImpl;->changed(I)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->changed(J)Z\nHPLandroidx/compose/runtime/ComposerImpl;->changed(J)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->changed(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/ComposerImpl;->changed(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->changed(Z)Z\nHPLandroidx/compose/runtime/ComposerImpl;->changed(Z)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->changedInstance(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/ComposerImpl;->changedInstance(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->changesApplied$runtime_release()V\nHPLandroidx/compose/runtime/ComposerImpl;->changesApplied$runtime_release()V\nHSPLandroidx/compose/runtime/ComposerImpl;->cleanUpCompose()V\nHPLandroidx/compose/runtime/ComposerImpl;->cleanUpCompose()V\nHSPLandroidx/compose/runtime/ComposerImpl;->composeContent$runtime_release(Landroidx/compose/runtime/collection/IdentityArrayMap;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/runtime/ComposerImpl;->composeContent$runtime_release(Landroidx/compose/runtime/collection/IdentityArrayMap;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->compoundKeyOf(III)I\nHPLandroidx/compose/runtime/ComposerImpl;->compoundKeyOf(III)I\nHSPLandroidx/compose/runtime/ComposerImpl;->consume(Landroidx/compose/runtime/ProvidableCompositionLocal;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/ComposerImpl;->consume(Landroidx/compose/runtime/ProvidableCompositionLocal;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/ComposerImpl;->createFreshInsertTable()V\nHPLandroidx/compose/runtime/ComposerImpl;->createFreshInsertTable()V\nHSPLandroidx/compose/runtime/ComposerImpl;->createNode(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/ComposerImpl;->createNode(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->currentCompositionLocalScope()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHPLandroidx/compose/runtime/ComposerImpl;->currentCompositionLocalScope()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHSPLandroidx/compose/runtime/ComposerImpl;->dispose$runtime_release()V\nHPLandroidx/compose/runtime/ComposerImpl;->dispose$runtime_release()V\nHSPLandroidx/compose/runtime/ComposerImpl;->doCompose(Landroidx/compose/runtime/collection/IdentityArrayMap;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/runtime/ComposerImpl;->doCompose(Landroidx/compose/runtime/collection/IdentityArrayMap;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->doRecordDownsFor(II)V\nHPLandroidx/compose/runtime/ComposerImpl;->doRecordDownsFor(II)V\nHSPLandroidx/compose/runtime/ComposerImpl;->end(Z)V\nHPLandroidx/compose/runtime/ComposerImpl;->end(Z)V\nHSPLandroidx/compose/runtime/ComposerImpl;->endDefaults()V\nHPLandroidx/compose/runtime/ComposerImpl;->endDefaults()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endMovableGroup()V\nHPLandroidx/compose/runtime/ComposerImpl;->endMovableGroup()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endNode()V\nHPLandroidx/compose/runtime/ComposerImpl;->endNode()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endProvider()V\nPLandroidx/compose/runtime/ComposerImpl;->endProvider()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endProviders()V\nPLandroidx/compose/runtime/ComposerImpl;->endProviders()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endReplaceableGroup()V\nHPLandroidx/compose/runtime/ComposerImpl;->endReplaceableGroup()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endRestartGroup()Landroidx/compose/runtime/RecomposeScopeImpl;\nHPLandroidx/compose/runtime/ComposerImpl;->endRestartGroup()Landroidx/compose/runtime/RecomposeScopeImpl;\nHSPLandroidx/compose/runtime/ComposerImpl;->endReusableGroup()V\nPLandroidx/compose/runtime/ComposerImpl;->endReusableGroup()V\nHSPLandroidx/compose/runtime/ComposerImpl;->endRoot()V\nHPLandroidx/compose/runtime/ComposerImpl;->endRoot()V\nHSPLandroidx/compose/runtime/ComposerImpl;->enterGroup(ZLandroidx/compose/runtime/Pending;)V\nHPLandroidx/compose/runtime/ComposerImpl;->enterGroup(ZLandroidx/compose/runtime/Pending;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->getApplier()Landroidx/compose/runtime/Applier;\nHPLandroidx/compose/runtime/ComposerImpl;->getApplier()Landroidx/compose/runtime/Applier;\nHSPLandroidx/compose/runtime/ComposerImpl;->getApplyCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHPLandroidx/compose/runtime/ComposerImpl;->getApplyCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/runtime/ComposerImpl;->getAreChildrenComposing$runtime_release()Z\nPLandroidx/compose/runtime/ComposerImpl;->getAreChildrenComposing$runtime_release()Z\nHSPLandroidx/compose/runtime/ComposerImpl;->getComposition()Landroidx/compose/runtime/ControlledComposition;\nHPLandroidx/compose/runtime/ComposerImpl;->getComposition()Landroidx/compose/runtime/ControlledComposition;\nHSPLandroidx/compose/runtime/ComposerImpl;->getCompoundKeyHash()I\nPLandroidx/compose/runtime/ComposerImpl;->getCompoundKeyHash()I\nHSPLandroidx/compose/runtime/ComposerImpl;->getCurrentCompositionLocalMap()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHPLandroidx/compose/runtime/ComposerImpl;->getCurrentCompositionLocalMap()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHSPLandroidx/compose/runtime/ComposerImpl;->getCurrentRecomposeScope$runtime_release()Landroidx/compose/runtime/RecomposeScopeImpl;\nHPLandroidx/compose/runtime/ComposerImpl;->getCurrentRecomposeScope$runtime_release()Landroidx/compose/runtime/RecomposeScopeImpl;\nHSPLandroidx/compose/runtime/ComposerImpl;->getDefaultsInvalid()Z\nHPLandroidx/compose/runtime/ComposerImpl;->getDefaultsInvalid()Z\nHSPLandroidx/compose/runtime/ComposerImpl;->getDeferredChanges$runtime_release()Landroidx/compose/runtime/changelist/ChangeList;\nPLandroidx/compose/runtime/ComposerImpl;->getDeferredChanges$runtime_release()Landroidx/compose/runtime/changelist/ChangeList;\nHSPLandroidx/compose/runtime/ComposerImpl;->getInserting()Z\nHPLandroidx/compose/runtime/ComposerImpl;->getInserting()Z\nHSPLandroidx/compose/runtime/ComposerImpl;->getReader$runtime_release()Landroidx/compose/runtime/SlotReader;\nHPLandroidx/compose/runtime/ComposerImpl;->getReader$runtime_release()Landroidx/compose/runtime/SlotReader;\nHSPLandroidx/compose/runtime/ComposerImpl;->getSkipping()Z\nHPLandroidx/compose/runtime/ComposerImpl;->getSkipping()Z\nHSPLandroidx/compose/runtime/ComposerImpl;->isComposing$runtime_release()Z\nPLandroidx/compose/runtime/ComposerImpl;->isComposing$runtime_release()Z\nHSPLandroidx/compose/runtime/ComposerImpl;->nextSlot()Ljava/lang/Object;\nHPLandroidx/compose/runtime/ComposerImpl;->nextSlot()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/ComposerImpl;->prepareCompose$runtime_release(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/ComposerImpl;->prepareCompose$runtime_release(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->recompose$runtime_release(Landroidx/compose/runtime/collection/IdentityArrayMap;)Z\nHPLandroidx/compose/runtime/ComposerImpl;->recompose$runtime_release(Landroidx/compose/runtime/collection/IdentityArrayMap;)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->recomposeToGroupEnd()V\nHPLandroidx/compose/runtime/ComposerImpl;->recomposeToGroupEnd()V\nHSPLandroidx/compose/runtime/ComposerImpl;->recordSideEffect(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/ComposerImpl;->recordSideEffect(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->recordUpsAndDowns(III)V\nHPLandroidx/compose/runtime/ComposerImpl;->recordUpsAndDowns(III)V\nHSPLandroidx/compose/runtime/ComposerImpl;->reportAllMovableContent()V\nHPLandroidx/compose/runtime/ComposerImpl;->reportAllMovableContent()V\nHSPLandroidx/compose/runtime/ComposerImpl;->reportFreeMovableContent$reportGroup(Landroidx/compose/runtime/ComposerImpl;IZI)I\nHPLandroidx/compose/runtime/ComposerImpl;->reportFreeMovableContent$reportGroup(Landroidx/compose/runtime/ComposerImpl;IZI)I\nHSPLandroidx/compose/runtime/ComposerImpl;->skipToGroupEnd()V\nHPLandroidx/compose/runtime/ComposerImpl;->skipToGroupEnd()V\nHSPLandroidx/compose/runtime/ComposerImpl;->start-BaiHCIY(IILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerImpl;->start-BaiHCIY(IILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startDefaults()V\nHPLandroidx/compose/runtime/ComposerImpl;->startDefaults()V\nHSPLandroidx/compose/runtime/ComposerImpl;->startGroup(ILandroidx/compose/runtime/OpaqueKey;)V\nHPLandroidx/compose/runtime/ComposerImpl;->startGroup(ILandroidx/compose/runtime/OpaqueKey;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startMovableGroup(ILjava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerImpl;->startMovableGroup(ILjava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startNode()V\nHPLandroidx/compose/runtime/ComposerImpl;->startNode()V\nHSPLandroidx/compose/runtime/ComposerImpl;->startProvider(Landroidx/compose/runtime/ProvidedValue;)V\nHPLandroidx/compose/runtime/ComposerImpl;->startProvider(Landroidx/compose/runtime/ProvidedValue;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startProviders([Landroidx/compose/runtime/ProvidedValue;)V\nHPLandroidx/compose/runtime/ComposerImpl;->startProviders([Landroidx/compose/runtime/ProvidedValue;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startReaderGroup(Ljava/lang/Object;Z)V\nHPLandroidx/compose/runtime/ComposerImpl;->startReaderGroup(Ljava/lang/Object;Z)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startReplaceableGroup(I)V\nHPLandroidx/compose/runtime/ComposerImpl;->startReplaceableGroup(I)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startRestartGroup(I)Landroidx/compose/runtime/ComposerImpl;\nHPLandroidx/compose/runtime/ComposerImpl;->startRestartGroup(I)Landroidx/compose/runtime/ComposerImpl;\nHSPLandroidx/compose/runtime/ComposerImpl;->startReusableGroup(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerImpl;->startReusableGroup(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->startReusableNode()V\nHPLandroidx/compose/runtime/ComposerImpl;->startReusableNode()V\nHSPLandroidx/compose/runtime/ComposerImpl;->startRoot()V\nHPLandroidx/compose/runtime/ComposerImpl;->startRoot()V\nHSPLandroidx/compose/runtime/ComposerImpl;->tryImminentInvalidation$runtime_release(Landroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/ComposerImpl;->tryImminentInvalidation$runtime_release(Landroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/ComposerImpl;->updateCompoundKeyWhenWeEnterGroup(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerImpl;->updateCompoundKeyWhenWeEnterGroup(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->updateCompoundKeyWhenWeExitGroup(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerImpl;->updateCompoundKeyWhenWeExitGroup(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->updateCompoundKeyWhenWeExitGroupKeyHash(I)V\nHPLandroidx/compose/runtime/ComposerImpl;->updateCompoundKeyWhenWeExitGroupKeyHash(I)V\nHSPLandroidx/compose/runtime/ComposerImpl;->updateNodeCount(II)V\nHPLandroidx/compose/runtime/ComposerImpl;->updateNodeCount(II)V\nHSPLandroidx/compose/runtime/ComposerImpl;->updateNodeCountOverrides(II)V\nHPLandroidx/compose/runtime/ComposerImpl;->updateNodeCountOverrides(II)V\nHSPLandroidx/compose/runtime/ComposerImpl;->updateProviderMapGroup(Landroidx/compose/runtime/PersistentCompositionLocalMap;Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;)Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHPLandroidx/compose/runtime/ComposerImpl;->updateProviderMapGroup(Landroidx/compose/runtime/PersistentCompositionLocalMap;Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;)Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHSPLandroidx/compose/runtime/ComposerImpl;->updateValue(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerImpl;->updateValue(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerImpl;->updatedNodeCount(I)I\nHPLandroidx/compose/runtime/ComposerImpl;->updatedNodeCount(I)I\nHSPLandroidx/compose/runtime/ComposerImpl;->useNode()V\nHPLandroidx/compose/runtime/ComposerImpl;->useNode()V\nLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;-><init>(Landroidx/compose/runtime/ComposerImpl$CompositionContextImpl;)V\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;-><init>(Landroidx/compose/runtime/ComposerImpl$CompositionContextImpl;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;->getRef()Landroidx/compose/runtime/ComposerImpl$CompositionContextImpl;\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;->getRef()Landroidx/compose/runtime/ComposerImpl$CompositionContextImpl;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;->onForgotten()V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;->onForgotten()V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;->onRemembered()V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextHolder;->onRemembered()V\nLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;-><init>(Landroidx/compose/runtime/ComposerImpl;IZLandroidx/compose/runtime/CompositionObserverHolder;)V\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;-><init>(Landroidx/compose/runtime/ComposerImpl;IZLandroidx/compose/runtime/CompositionObserverHolder;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->composeInitial$runtime_release(Landroidx/compose/runtime/ControlledComposition;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->composeInitial$runtime_release(Landroidx/compose/runtime/ControlledComposition;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->dispose()V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->dispose()V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->doneComposing$runtime_release()V\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->doneComposing$runtime_release()V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getCollectingParameterInformation$runtime_release()Z\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getCollectingParameterInformation$runtime_release()Z\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getComposers()Ljava/util/LinkedHashSet;\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getComposers()Ljava/util/LinkedHashSet;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getCompositionLocalScope$runtime_release()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getCompositionLocalScope$runtime_release()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getCompoundHashKey$runtime_release()I\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getCompoundHashKey$runtime_release()I\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getEffectCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getEffectCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getObserverHolder$runtime_release()Landroidx/compose/runtime/CompositionObserverHolder;\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->getObserverHolder$runtime_release()Landroidx/compose/runtime/CompositionObserverHolder;\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->invalidate$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->invalidate$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->registerComposer$runtime_release(Landroidx/compose/runtime/ComposerImpl;)V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->registerComposer$runtime_release(Landroidx/compose/runtime/ComposerImpl;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->reportRemovedComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->reportRemovedComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->startComposing$runtime_release()V\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->startComposing$runtime_release()V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->unregisterComposer$runtime_release(Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->unregisterComposer$runtime_release(Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->unregisterComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->unregisterComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->updateCompositionLocalScope(Landroidx/compose/runtime/PersistentCompositionLocalMap;)V\nPLandroidx/compose/runtime/ComposerImpl$CompositionContextImpl;->updateCompositionLocalScope(Landroidx/compose/runtime/PersistentCompositionLocalMap;)V\nLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;\nHSPLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;-><init>(Landroidx/compose/runtime/ComposerImpl;)V\nPLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;-><init>(Landroidx/compose/runtime/ComposerImpl;)V\nHSPLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;->done()V\nHPLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;->done()V\nHSPLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;->start()V\nHPLandroidx/compose/runtime/ComposerImpl$derivedStateObserver$1;->start()V\nLandroidx/compose/runtime/ComposerImpl$doCompose$lambda$40$$inlined$sortBy$1;\nHSPLandroidx/compose/runtime/ComposerImpl$doCompose$lambda$40$$inlined$sortBy$1;-><init>()V\nPLandroidx/compose/runtime/ComposerImpl$doCompose$lambda$40$$inlined$sortBy$1;-><init>()V\nHSPLandroidx/compose/runtime/ComposerImpl$doCompose$lambda$40$$inlined$sortBy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/ComposerImpl$doCompose$lambda$40$$inlined$sortBy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nLandroidx/compose/runtime/ComposerKt;\nHSPLandroidx/compose/runtime/ComposerKt;-><clinit>()V\nPLandroidx/compose/runtime/ComposerKt;-><clinit>()V\nHSPLandroidx/compose/runtime/ComposerKt;->access$firstInRange(IILjava/util/ArrayList;)Landroidx/compose/runtime/Invalidation;\nHPLandroidx/compose/runtime/ComposerKt;->access$firstInRange(IILjava/util/ArrayList;)Landroidx/compose/runtime/Invalidation;\nHSPLandroidx/compose/runtime/ComposerKt;->access$insertIfMissing(Ljava/util/ArrayList;ILandroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ComposerKt;->access$insertIfMissing(Ljava/util/ArrayList;ILandroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/ComposerKt;->access$nearestCommonRootOf(Landroidx/compose/runtime/SlotReader;III)I\nHPLandroidx/compose/runtime/ComposerKt;->access$nearestCommonRootOf(Landroidx/compose/runtime/SlotReader;III)I\nHSPLandroidx/compose/runtime/ComposerKt;->access$removeLocation(ILjava/util/ArrayList;)Landroidx/compose/runtime/Invalidation;\nPLandroidx/compose/runtime/ComposerKt;->access$removeLocation(ILjava/util/ArrayList;)Landroidx/compose/runtime/Invalidation;\nHSPLandroidx/compose/runtime/ComposerKt;->access$removeRange(IILjava/util/ArrayList;)V\nHPLandroidx/compose/runtime/ComposerKt;->access$removeRange(IILjava/util/ArrayList;)V\nHSPLandroidx/compose/runtime/ComposerKt;->findLocation(ILjava/util/List;)I\nHPLandroidx/compose/runtime/ComposerKt;->findLocation(ILjava/util/List;)I\nHSPLandroidx/compose/runtime/ComposerKt;->getCompositionLocalMap()Landroidx/compose/runtime/OpaqueKey;\nPLandroidx/compose/runtime/ComposerKt;->getCompositionLocalMap()Landroidx/compose/runtime/OpaqueKey;\nHSPLandroidx/compose/runtime/ComposerKt;->getInvocation()Landroidx/compose/runtime/OpaqueKey;\nPLandroidx/compose/runtime/ComposerKt;->getInvocation()Landroidx/compose/runtime/OpaqueKey;\nHSPLandroidx/compose/runtime/ComposerKt;->getProvider()Landroidx/compose/runtime/OpaqueKey;\nPLandroidx/compose/runtime/ComposerKt;->getProvider()Landroidx/compose/runtime/OpaqueKey;\nHSPLandroidx/compose/runtime/ComposerKt;->getProviderMaps()Landroidx/compose/runtime/OpaqueKey;\nPLandroidx/compose/runtime/ComposerKt;->getProviderMaps()Landroidx/compose/runtime/OpaqueKey;\nHSPLandroidx/compose/runtime/ComposerKt;->getReference()Landroidx/compose/runtime/OpaqueKey;\nPLandroidx/compose/runtime/ComposerKt;->getReference()Landroidx/compose/runtime/OpaqueKey;\nHSPLandroidx/compose/runtime/ComposerKt;->removeCurrentGroup(Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/ComposerKt;->removeCurrentGroup(Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHSPLandroidx/compose/runtime/ComposerKt;->runtimeCheck(Z)V\nHPLandroidx/compose/runtime/ComposerKt;->runtimeCheck(Z)V\nLandroidx/compose/runtime/Composition;\nLandroidx/compose/runtime/CompositionContext;\nHSPLandroidx/compose/runtime/CompositionContext;-><init>()V\nPLandroidx/compose/runtime/CompositionContext;-><init>()V\nHSPLandroidx/compose/runtime/CompositionContext;->doneComposing$runtime_release()V\nPLandroidx/compose/runtime/CompositionContext;->doneComposing$runtime_release()V\nHSPLandroidx/compose/runtime/CompositionContext;->getCompositionLocalScope$runtime_release()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nPLandroidx/compose/runtime/CompositionContext;->getCompositionLocalScope$runtime_release()Landroidx/compose/runtime/PersistentCompositionLocalMap;\nHSPLandroidx/compose/runtime/CompositionContext;->getObserverHolder$runtime_release()Landroidx/compose/runtime/CompositionObserverHolder;\nPLandroidx/compose/runtime/CompositionContext;->getObserverHolder$runtime_release()Landroidx/compose/runtime/CompositionObserverHolder;\nHSPLandroidx/compose/runtime/CompositionContext;->registerComposer$runtime_release(Landroidx/compose/runtime/ComposerImpl;)V\nPLandroidx/compose/runtime/CompositionContext;->registerComposer$runtime_release(Landroidx/compose/runtime/ComposerImpl;)V\nHSPLandroidx/compose/runtime/CompositionContext;->startComposing$runtime_release()V\nPLandroidx/compose/runtime/CompositionContext;->startComposing$runtime_release()V\nPLandroidx/compose/runtime/CompositionContext;->unregisterComposer$runtime_release(Landroidx/compose/runtime/Composer;)V\nLandroidx/compose/runtime/CompositionContextKt;\nHSPLandroidx/compose/runtime/CompositionContextKt;-><clinit>()V\nPLandroidx/compose/runtime/CompositionContextKt;-><clinit>()V\nHSPLandroidx/compose/runtime/CompositionContextKt;->access$getEmptyPersistentCompositionLocalMap$p()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nPLandroidx/compose/runtime/CompositionContextKt;->access$getEmptyPersistentCompositionLocalMap$p()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nLandroidx/compose/runtime/CompositionImpl;\nHSPLandroidx/compose/runtime/CompositionImpl;-><init>(Landroidx/compose/runtime/CompositionContext;Landroidx/compose/runtime/AbstractApplier;)V\nHPLandroidx/compose/runtime/CompositionImpl;-><init>(Landroidx/compose/runtime/CompositionContext;Landroidx/compose/runtime/AbstractApplier;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->addPendingInvalidationsLocked(Ljava/util/HashSet;Ljava/lang/Object;Z)Ljava/util/HashSet;\nHPLandroidx/compose/runtime/CompositionImpl;->addPendingInvalidationsLocked(Ljava/util/HashSet;Ljava/lang/Object;Z)Ljava/util/HashSet;\nHSPLandroidx/compose/runtime/CompositionImpl;->addPendingInvalidationsLocked(Ljava/util/Set;Z)V\nHPLandroidx/compose/runtime/CompositionImpl;->addPendingInvalidationsLocked(Ljava/util/Set;Z)V\nHSPLandroidx/compose/runtime/CompositionImpl;->applyChanges()V\nHPLandroidx/compose/runtime/CompositionImpl;->applyChanges()V\nHSPLandroidx/compose/runtime/CompositionImpl;->applyChangesInLocked(Landroidx/compose/runtime/changelist/ChangeList;)V\nHPLandroidx/compose/runtime/CompositionImpl;->applyChangesInLocked(Landroidx/compose/runtime/changelist/ChangeList;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->applyLateChanges()V\nHPLandroidx/compose/runtime/CompositionImpl;->applyLateChanges()V\nHSPLandroidx/compose/runtime/CompositionImpl;->changesApplied()V\nHPLandroidx/compose/runtime/CompositionImpl;->changesApplied()V\nHSPLandroidx/compose/runtime/CompositionImpl;->cleanUpDerivedStateObservations()V\nHPLandroidx/compose/runtime/CompositionImpl;->cleanUpDerivedStateObservations()V\nHSPLandroidx/compose/runtime/CompositionImpl;->composeContent(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/runtime/CompositionImpl;->composeContent(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->dispose()V\nHPLandroidx/compose/runtime/CompositionImpl;->dispose()V\nHSPLandroidx/compose/runtime/CompositionImpl;->drainPendingModificationsForCompositionLocked()V\nHPLandroidx/compose/runtime/CompositionImpl;->drainPendingModificationsForCompositionLocked()V\nHSPLandroidx/compose/runtime/CompositionImpl;->drainPendingModificationsLocked()V\nHPLandroidx/compose/runtime/CompositionImpl;->drainPendingModificationsLocked()V\nHSPLandroidx/compose/runtime/CompositionImpl;->getHasInvalidations()Z\nHPLandroidx/compose/runtime/CompositionImpl;->getHasInvalidations()Z\nHSPLandroidx/compose/runtime/CompositionImpl;->getObserverHolder$runtime_release()Landroidx/compose/runtime/CompositionObserverHolder;\nPLandroidx/compose/runtime/CompositionImpl;->getObserverHolder$runtime_release()Landroidx/compose/runtime/CompositionObserverHolder;\nHSPLandroidx/compose/runtime/CompositionImpl;->invalidate$enumunboxing$(Landroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/CompositionImpl;->invalidate$enumunboxing$(Landroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/CompositionImpl;->invalidateChecked(Landroidx/compose/runtime/RecomposeScopeImpl;Landroidx/compose/runtime/Anchor;Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/CompositionImpl;->invalidateChecked(Landroidx/compose/runtime/RecomposeScopeImpl;Landroidx/compose/runtime/Anchor;Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/CompositionImpl;->invalidateScopeOfLocked(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/CompositionImpl;->invalidateScopeOfLocked(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->isComposing()Z\nPLandroidx/compose/runtime/CompositionImpl;->isComposing()Z\nHSPLandroidx/compose/runtime/CompositionImpl;->isDisposed()Z\nPLandroidx/compose/runtime/CompositionImpl;->isDisposed()Z\nHSPLandroidx/compose/runtime/CompositionImpl;->observer()V\nHPLandroidx/compose/runtime/CompositionImpl;->observer()V\nHSPLandroidx/compose/runtime/CompositionImpl;->observesAnyOf(Landroidx/compose/runtime/collection/IdentityArraySet;)Z\nHPLandroidx/compose/runtime/CompositionImpl;->observesAnyOf(Landroidx/compose/runtime/collection/IdentityArraySet;)Z\nHSPLandroidx/compose/runtime/CompositionImpl;->prepareCompose(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/CompositionImpl;->prepareCompose(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->recompose()Z\nHPLandroidx/compose/runtime/CompositionImpl;->recompose()Z\nHSPLandroidx/compose/runtime/CompositionImpl;->recomposeScopeReleased()V\nPLandroidx/compose/runtime/CompositionImpl;->recomposeScopeReleased()V\nHSPLandroidx/compose/runtime/CompositionImpl;->recordModificationsOf(Landroidx/compose/runtime/collection/IdentityArraySet;)V\nHPLandroidx/compose/runtime/CompositionImpl;->recordModificationsOf(Landroidx/compose/runtime/collection/IdentityArraySet;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->recordReadOf(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/CompositionImpl;->recordReadOf(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->recordWriteOf(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/CompositionImpl;->recordWriteOf(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->removeDerivedStateObservation$runtime_release(Landroidx/compose/runtime/DerivedState;)V\nPLandroidx/compose/runtime/CompositionImpl;->removeDerivedStateObservation$runtime_release(Landroidx/compose/runtime/DerivedState;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->removeObservation$runtime_release(Landroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/CompositionImpl;->removeObservation$runtime_release(Landroidx/compose/runtime/RecomposeScopeImpl;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/CompositionImpl;->setContent(Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/CompositionImpl;->setContent(Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;-><init>(Ljava/util/HashSet;)V\nHPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;-><init>(Ljava/util/HashSet;)V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->dispatchAbandons()V\nHPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->dispatchAbandons()V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->dispatchRememberObservers()V\nHPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->dispatchRememberObservers()V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->dispatchSideEffects()V\nHPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->dispatchSideEffects()V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->forgetting(Landroidx/compose/runtime/RememberObserver;)V\nPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->forgetting(Landroidx/compose/runtime/RememberObserver;)V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->releasing(Landroidx/compose/runtime/ComposeNodeLifecycleCallback;)V\nPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->releasing(Landroidx/compose/runtime/ComposeNodeLifecycleCallback;)V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->remembering(Landroidx/compose/runtime/RememberObserver;)V\nHPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->remembering(Landroidx/compose/runtime/RememberObserver;)V\nHSPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->sideEffect(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/CompositionImpl$RememberEventDispatcher;->sideEffect(Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/runtime/CompositionKt;\nHSPLandroidx/compose/runtime/CompositionKt;-><clinit>()V\nPLandroidx/compose/runtime/CompositionKt;-><clinit>()V\nHSPLandroidx/compose/runtime/CompositionKt;->access$getPendingApplyNoModifications$p()Ljava/lang/Object;\nPLandroidx/compose/runtime/CompositionKt;->access$getPendingApplyNoModifications$p()Ljava/lang/Object;\nLandroidx/compose/runtime/CompositionLocal;\nHSPLandroidx/compose/runtime/CompositionLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/CompositionLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/CompositionLocal;->getDefaultValueHolder$runtime_release()Landroidx/compose/runtime/LazyValueHolder;\nPLandroidx/compose/runtime/CompositionLocal;->getDefaultValueHolder$runtime_release()Landroidx/compose/runtime/LazyValueHolder;\nLandroidx/compose/runtime/CompositionLocalKt$CompositionLocalProvider$1;\nLandroidx/compose/runtime/CompositionLocalMap;\nHSPLandroidx/compose/runtime/CompositionLocalMap;-><clinit>()V\nPLandroidx/compose/runtime/CompositionLocalMap;-><clinit>()V\nLandroidx/compose/runtime/CompositionLocalMap$Companion;\nHSPLandroidx/compose/runtime/CompositionLocalMap$Companion;-><clinit>()V\nPLandroidx/compose/runtime/CompositionLocalMap$Companion;-><clinit>()V\nHSPLandroidx/compose/runtime/CompositionLocalMap$Companion;-><init>()V\nPLandroidx/compose/runtime/CompositionLocalMap$Companion;-><init>()V\nHSPLandroidx/compose/runtime/CompositionLocalMap$Companion;->getEmpty()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nPLandroidx/compose/runtime/CompositionLocalMap$Companion;->getEmpty()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nLandroidx/compose/runtime/CompositionObserverHolder;\nHSPLandroidx/compose/runtime/CompositionObserverHolder;-><init>()V\nHPLandroidx/compose/runtime/CompositionObserverHolder;-><init>()V\nHSPLandroidx/compose/runtime/CompositionObserverHolder;->getObserver()V\nPLandroidx/compose/runtime/CompositionObserverHolder;->getObserver()V\nHSPLandroidx/compose/runtime/CompositionObserverHolder;->getRoot()Z\nPLandroidx/compose/runtime/CompositionObserverHolder;->getRoot()Z\nLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;\nHSPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;-><init>(Lkotlinx/coroutines/CoroutineScope;)V\nHPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;-><init>(Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;->getCoroutineScope()Lkotlinx/coroutines/CoroutineScope;\nPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;->getCoroutineScope()Lkotlinx/coroutines/CoroutineScope;\nHSPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;->onForgotten()V\nHPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;->onForgotten()V\nHSPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;->onRemembered()V\nHPLandroidx/compose/runtime/CompositionScopedCoroutineScopeCanceller;->onRemembered()V\nLandroidx/compose/runtime/ControlledComposition;\nLandroidx/compose/runtime/DefaultChoreographerFrameClock;\nLandroidx/compose/runtime/DerivedSnapshotState;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;-><init>(Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/DerivedSnapshotState;-><init>(Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->current(Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHPLandroidx/compose/runtime/DerivedSnapshotState;->current(Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->currentRecord(Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;Landroidx/compose/runtime/snapshots/Snapshot;ZLkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHPLandroidx/compose/runtime/DerivedSnapshotState;->currentRecord(Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;Landroidx/compose/runtime/snapshots/Snapshot;ZLkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->getCurrentRecord()Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHPLandroidx/compose/runtime/DerivedSnapshotState;->getCurrentRecord()Landroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/DerivedSnapshotState;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->getPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nPLandroidx/compose/runtime/DerivedSnapshotState;->getPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/runtime/DerivedSnapshotState;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/DerivedSnapshotState;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/DerivedSnapshotState;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;-><clinit>()V\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;-><clinit>()V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;-><init>()V\nHPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;-><init>()V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->access$getUnset$cp()Ljava/lang/Object;\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->access$getUnset$cp()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->getCurrentValue()Ljava/lang/Object;\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->getCurrentValue()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->getDependencies()[Ljava/lang/Object;\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->getDependencies()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->getResult()Ljava/lang/Object;\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->getResult()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->get_dependencies()Landroidx/compose/runtime/collection/IdentityArrayMap;\nHPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->get_dependencies()Landroidx/compose/runtime/collection/IdentityArrayMap;\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->isValid(Landroidx/compose/runtime/DerivedState;Landroidx/compose/runtime/snapshots/Snapshot;)Z\nHPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->isValid(Landroidx/compose/runtime/DerivedState;Landroidx/compose/runtime/snapshots/Snapshot;)Z\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->readableHash(Landroidx/compose/runtime/DerivedState;Landroidx/compose/runtime/snapshots/Snapshot;)I\nHPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->readableHash(Landroidx/compose/runtime/DerivedState;Landroidx/compose/runtime/snapshots/Snapshot;)I\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setResult(Ljava/lang/Object;)V\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setResult(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setResultHash(I)V\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setResultHash(I)V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setValidSnapshotId(I)V\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setValidSnapshotId(I)V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setValidSnapshotWriteCount(I)V\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->setValidSnapshotWriteCount(I)V\nHSPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->set_dependencies(Landroidx/compose/runtime/collection/IdentityArrayMap;)V\nPLandroidx/compose/runtime/DerivedSnapshotState$ResultRecord;->set_dependencies(Landroidx/compose/runtime/collection/IdentityArrayMap;)V\nLandroidx/compose/runtime/DerivedState;\nLandroidx/compose/runtime/DerivedStateObserver;\nLandroidx/compose/runtime/DisposableEffectImpl;\nHSPLandroidx/compose/runtime/DisposableEffectImpl;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/runtime/DisposableEffectImpl;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/DisposableEffectImpl;->onForgotten()V\nHPLandroidx/compose/runtime/DisposableEffectImpl;->onForgotten()V\nHSPLandroidx/compose/runtime/DisposableEffectImpl;->onRemembered()V\nHPLandroidx/compose/runtime/DisposableEffectImpl;->onRemembered()V\nLandroidx/compose/runtime/DisposableEffectResult;\nLandroidx/compose/runtime/DisposableEffectScope;\nHSPLandroidx/compose/runtime/DisposableEffectScope;-><init>()V\nPLandroidx/compose/runtime/DisposableEffectScope;-><init>()V\nLandroidx/compose/runtime/DynamicProvidableCompositionLocal;\nHSPLandroidx/compose/runtime/DynamicProvidableCompositionLocal;-><init>(Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/DynamicProvidableCompositionLocal;-><init>(Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/DynamicProvidableCompositionLocal;->updatedStateOf$runtime_release(Ljava/lang/Object;Landroidx/compose/runtime/State;)Landroidx/compose/runtime/State;\nHPLandroidx/compose/runtime/DynamicProvidableCompositionLocal;->updatedStateOf$runtime_release(Ljava/lang/Object;Landroidx/compose/runtime/State;)Landroidx/compose/runtime/State;\nLandroidx/compose/runtime/EffectsKt;\nHSPLandroidx/compose/runtime/EffectsKt;-><clinit>()V\nPLandroidx/compose/runtime/EffectsKt;-><clinit>()V\nHSPLandroidx/compose/runtime/EffectsKt;->DisposableEffect(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/EffectsKt;->DisposableEffect(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/EffectsKt;->DisposableEffect(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/EffectsKt;->DisposableEffect(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/EffectsKt;->LaunchedEffect(Lcom/google/accompanist/systemuicontroller/AndroidSystemUiController;Ljava/lang/Boolean;Landroidx/compose/ui/graphics/Color;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/EffectsKt;->LaunchedEffect(Lcom/google/accompanist/systemuicontroller/AndroidSystemUiController;Ljava/lang/Boolean;Landroidx/compose/ui/graphics/Color;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/EffectsKt;->LaunchedEffect(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/EffectsKt;->LaunchedEffect(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/EffectsKt;->LaunchedEffect(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/EffectsKt;->LaunchedEffect(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/EffectsKt;->SideEffect(Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/EffectsKt;->SideEffect(Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/EffectsKt;->access$getInternalDisposableEffectScope$p()Landroidx/compose/runtime/DisposableEffectScope;\nPLandroidx/compose/runtime/EffectsKt;->access$getInternalDisposableEffectScope$p()Landroidx/compose/runtime/DisposableEffectScope;\nHSPLandroidx/compose/runtime/EffectsKt;->createCompositionCoroutineScope(Lkotlin/coroutines/EmptyCoroutineContext;Landroidx/compose/runtime/Composer;)Lkotlinx/coroutines/CoroutineScope;\nHPLandroidx/compose/runtime/EffectsKt;->createCompositionCoroutineScope(Lkotlin/coroutines/EmptyCoroutineContext;Landroidx/compose/runtime/Composer;)Lkotlinx/coroutines/CoroutineScope;\nLandroidx/compose/runtime/GroupInfo;\nHSPLandroidx/compose/runtime/GroupInfo;-><init>(III)V\nPLandroidx/compose/runtime/GroupInfo;-><init>(III)V\nHSPLandroidx/compose/runtime/GroupInfo;->getNodeCount()I\nPLandroidx/compose/runtime/GroupInfo;->getNodeCount()I\nHSPLandroidx/compose/runtime/GroupInfo;->getNodeIndex()I\nPLandroidx/compose/runtime/GroupInfo;->getNodeIndex()I\nHSPLandroidx/compose/runtime/GroupInfo;->getSlotIndex()I\nPLandroidx/compose/runtime/GroupInfo;->getSlotIndex()I\nHSPLandroidx/compose/runtime/GroupInfo;->setNodeCount(I)V\nPLandroidx/compose/runtime/GroupInfo;->setNodeCount(I)V\nHSPLandroidx/compose/runtime/GroupInfo;->setNodeIndex(I)V\nPLandroidx/compose/runtime/GroupInfo;->setNodeIndex(I)V\nHSPLandroidx/compose/runtime/GroupInfo;->setSlotIndex(I)V\nPLandroidx/compose/runtime/GroupInfo;->setSlotIndex(I)V\nLandroidx/compose/runtime/GroupKind$Companion;\nHSPLandroidx/compose/runtime/GroupKind$Companion;-><init>()V\nPLandroidx/compose/runtime/GroupKind$Companion;-><init>()V\nPLandroidx/compose/runtime/GroupKind$Companion;->access$removeRunning(Landroidx/compose/runtime/GroupKind$Companion;)V\nLandroidx/compose/runtime/IntStack;\nHSPLandroidx/compose/runtime/IntStack;-><init>(II)V\nHPLandroidx/compose/runtime/IntStack;-><init>(II)V\nHSPLandroidx/compose/runtime/IntStack;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nHPLandroidx/compose/runtime/IntStack;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nHSPLandroidx/compose/runtime/IntStack;->add-0FcD4WY(J)V\nPLandroidx/compose/runtime/IntStack;->add-0FcD4WY(J)V\nHSPLandroidx/compose/runtime/IntStack;->clear()V\nPLandroidx/compose/runtime/IntStack;->clear()V\nHSPLandroidx/compose/runtime/IntStack;->contains(J)Z\nPLandroidx/compose/runtime/IntStack;->contains(J)Z\nHSPLandroidx/compose/runtime/IntStack;->get-_I2yYro(I)J\nPLandroidx/compose/runtime/IntStack;->get-_I2yYro(I)J\nHSPLandroidx/compose/runtime/IntStack;->getNode()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nPLandroidx/compose/runtime/IntStack;->getNode()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/IntStack;->getSize()I\nHPLandroidx/compose/runtime/IntStack;->getSize()I\nHSPLandroidx/compose/runtime/IntStack;->getSizeDelta()I\nPLandroidx/compose/runtime/IntStack;->getSizeDelta()I\nHSPLandroidx/compose/runtime/IntStack;->isEmpty()Z\nPLandroidx/compose/runtime/IntStack;->isEmpty()Z\nHSPLandroidx/compose/runtime/IntStack;->peek()I\nPLandroidx/compose/runtime/IntStack;->peek()I\nHSPLandroidx/compose/runtime/IntStack;->peekOr(I)I\nPLandroidx/compose/runtime/IntStack;->peekOr(I)I\nHSPLandroidx/compose/runtime/IntStack;->pop()I\nPLandroidx/compose/runtime/IntStack;->pop()I\nHSPLandroidx/compose/runtime/IntStack;->push(I)V\nHPLandroidx/compose/runtime/IntStack;->push(I)V\nHSPLandroidx/compose/runtime/IntStack;->remove-0FcD4WY(J)V\nPLandroidx/compose/runtime/IntStack;->remove-0FcD4WY(J)V\nHSPLandroidx/compose/runtime/IntStack;->removeAt(I)V\nPLandroidx/compose/runtime/IntStack;->removeAt(I)V\nHSPLandroidx/compose/runtime/IntStack;->setNode(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;)V\nPLandroidx/compose/runtime/IntStack;->setNode(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;)V\nLandroidx/compose/runtime/Invalidation;\nHSPLandroidx/compose/runtime/Invalidation;-><init>(Landroidx/compose/runtime/RecomposeScopeImpl;ILandroidx/compose/runtime/collection/IdentityArraySet;)V\nPLandroidx/compose/runtime/Invalidation;-><init>(Landroidx/compose/runtime/RecomposeScopeImpl;ILandroidx/compose/runtime/collection/IdentityArraySet;)V\nHSPLandroidx/compose/runtime/Invalidation;->getInstances()Landroidx/compose/runtime/collection/IdentityArraySet;\nPLandroidx/compose/runtime/Invalidation;->getInstances()Landroidx/compose/runtime/collection/IdentityArraySet;\nHSPLandroidx/compose/runtime/Invalidation;->getLocation()I\nHPLandroidx/compose/runtime/Invalidation;->getLocation()I\nHSPLandroidx/compose/runtime/Invalidation;->getScope()Landroidx/compose/runtime/RecomposeScopeImpl;\nPLandroidx/compose/runtime/Invalidation;->getScope()Landroidx/compose/runtime/RecomposeScopeImpl;\nHSPLandroidx/compose/runtime/Invalidation;->isInvalid()Z\nPLandroidx/compose/runtime/Invalidation;->isInvalid()Z\nHSPLandroidx/compose/runtime/Invalidation;->setInstances()V\nPLandroidx/compose/runtime/Invalidation;->setInstances()V\nLandroidx/compose/runtime/JoinedKey;\nHSPLandroidx/compose/runtime/JoinedKey;-><init>(Ljava/lang/Integer;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/JoinedKey;-><init>(Ljava/lang/Integer;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/JoinedKey;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/JoinedKey;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/JoinedKey;->hashCode()I\nHPLandroidx/compose/runtime/JoinedKey;->hashCode()I\nLandroidx/compose/runtime/KeyInfo;\nHSPLandroidx/compose/runtime/KeyInfo;-><init>(IIILjava/lang/Object;)V\nPLandroidx/compose/runtime/KeyInfo;-><init>(IIILjava/lang/Object;)V\nHSPLandroidx/compose/runtime/KeyInfo;->getKey()I\nPLandroidx/compose/runtime/KeyInfo;->getKey()I\nHSPLandroidx/compose/runtime/KeyInfo;->getLocation()I\nHPLandroidx/compose/runtime/KeyInfo;->getLocation()I\nHSPLandroidx/compose/runtime/KeyInfo;->getNodes()I\nPLandroidx/compose/runtime/KeyInfo;->getNodes()I\nHSPLandroidx/compose/runtime/KeyInfo;->getObjectKey()Ljava/lang/Object;\nPLandroidx/compose/runtime/KeyInfo;->getObjectKey()Ljava/lang/Object;\nLandroidx/compose/runtime/Latch;\nHSPLandroidx/compose/runtime/Latch;-><init>()V\nPLandroidx/compose/runtime/Latch;-><init>()V\nHSPLandroidx/compose/runtime/Latch;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Latch;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Latch;->closeLatch()V\nPLandroidx/compose/runtime/Latch;->closeLatch()V\nHSPLandroidx/compose/runtime/Latch;->openLatch()V\nPLandroidx/compose/runtime/Latch;->openLatch()V\nLandroidx/compose/runtime/Latch$await$2$2;\nHSPLandroidx/compose/runtime/Latch$await$2$2;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/Latch$await$2$2;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/Latch$await$2$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Latch$await$2$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Latch$await$2$2;->invoke(Ljava/lang/Throwable;)V\nLandroidx/compose/runtime/LaunchedEffectImpl;\nHSPLandroidx/compose/runtime/LaunchedEffectImpl;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/runtime/LaunchedEffectImpl;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/runtime/LaunchedEffectImpl;->onForgotten()V\nHPLandroidx/compose/runtime/LaunchedEffectImpl;->onForgotten()V\nHSPLandroidx/compose/runtime/LaunchedEffectImpl;->onRemembered()V\nHPLandroidx/compose/runtime/LaunchedEffectImpl;->onRemembered()V\nLandroidx/compose/runtime/LazyValueHolder;\nHSPLandroidx/compose/runtime/LazyValueHolder;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/LazyValueHolder;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/LazyValueHolder;->getValue()Ljava/lang/Object;\nPLandroidx/compose/runtime/LazyValueHolder;->getValue()Ljava/lang/Object;\nLandroidx/compose/runtime/LeftCompositionCancellationException;\nHSPLandroidx/compose/runtime/LeftCompositionCancellationException;-><init>()V\nHPLandroidx/compose/runtime/LeftCompositionCancellationException;-><init>()V\nHSPLandroidx/compose/runtime/LeftCompositionCancellationException;->fillInStackTrace()Ljava/lang/Throwable;\nHPLandroidx/compose/runtime/LeftCompositionCancellationException;->fillInStackTrace()Ljava/lang/Throwable;\nLandroidx/compose/runtime/MonotonicFrameClock;\nHSPLandroidx/compose/runtime/MonotonicFrameClock;-><clinit>()V\nPLandroidx/compose/runtime/MonotonicFrameClock;-><clinit>()V\nHSPLandroidx/compose/runtime/MonotonicFrameClock;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nHPLandroidx/compose/runtime/MonotonicFrameClock;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nLandroidx/compose/runtime/MonotonicFrameClock$Key;\nHSPLandroidx/compose/runtime/MonotonicFrameClock$Key;-><clinit>()V\nPLandroidx/compose/runtime/MonotonicFrameClock$Key;-><clinit>()V\nHSPLandroidx/compose/runtime/MonotonicFrameClock$Key;-><init>()V\nPLandroidx/compose/runtime/MonotonicFrameClock$Key;-><init>()V\nLandroidx/compose/runtime/MonotonicFrameClockKt;\nHSPLandroidx/compose/runtime/MonotonicFrameClockKt;->getMonotonicFrameClock(Lkotlin/coroutines/CoroutineContext;)Landroidx/compose/runtime/MonotonicFrameClock;\nHPLandroidx/compose/runtime/MonotonicFrameClockKt;->getMonotonicFrameClock(Lkotlin/coroutines/CoroutineContext;)Landroidx/compose/runtime/MonotonicFrameClock;\nHSPLandroidx/compose/runtime/MonotonicFrameClockKt;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/MonotonicFrameClockKt;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;\nHSPLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;->invoke(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/MonotonicFrameClockKt$withFrameMillis$2;->invoke(Ljava/lang/Object;)V\nLandroidx/compose/runtime/MovableContentStateReference;\nLandroidx/compose/runtime/MutableFloatState;\nLandroidx/compose/runtime/MutableIntState;\nLandroidx/compose/runtime/MutableLongState;\nLandroidx/compose/runtime/MutableState;\nLandroidx/compose/runtime/NeverEqualPolicy;\nHSPLandroidx/compose/runtime/NeverEqualPolicy;-><clinit>()V\nPLandroidx/compose/runtime/NeverEqualPolicy;-><clinit>()V\nHSPLandroidx/compose/runtime/NeverEqualPolicy;-><init>()V\nPLandroidx/compose/runtime/NeverEqualPolicy;-><init>()V\nHSPLandroidx/compose/runtime/NeverEqualPolicy;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z\nPLandroidx/compose/runtime/NeverEqualPolicy;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z\nLandroidx/compose/runtime/OpaqueKey;\nHSPLandroidx/compose/runtime/OpaqueKey;-><init>(Ljava/lang/String;)V\nPLandroidx/compose/runtime/OpaqueKey;-><init>(Ljava/lang/String;)V\nHSPLandroidx/compose/runtime/OpaqueKey;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/OpaqueKey;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/OpaqueKey;->hashCode()I\nHPLandroidx/compose/runtime/OpaqueKey;->hashCode()I\nLandroidx/compose/runtime/ParcelableSnapshotMutableFloatState;\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableFloatState;-><clinit>()V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableFloatState;-><clinit>()V\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableFloatState;-><init>(F)V\nHPLandroidx/compose/runtime/ParcelableSnapshotMutableFloatState;-><init>(F)V\nLandroidx/compose/runtime/ParcelableSnapshotMutableIntState;\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableIntState;-><clinit>()V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableIntState;-><clinit>()V\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableIntState;-><init>(I)V\nHPLandroidx/compose/runtime/ParcelableSnapshotMutableIntState;-><init>(I)V\nLandroidx/compose/runtime/ParcelableSnapshotMutableIntState$Companion$CREATOR$1;\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableIntState$Companion$CREATOR$1;-><init>(I)V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableIntState$Companion$CREATOR$1;-><init>(I)V\nLandroidx/compose/runtime/ParcelableSnapshotMutableLongState;\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableLongState;-><clinit>()V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableLongState;-><clinit>()V\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableLongState;-><init>(J)V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableLongState;-><init>(J)V\nLandroidx/compose/runtime/ParcelableSnapshotMutableState;\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableState;-><clinit>()V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableState;-><clinit>()V\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableState;-><init>(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;)V\nHPLandroidx/compose/runtime/ParcelableSnapshotMutableState;-><init>(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;)V\nLandroidx/compose/runtime/ParcelableSnapshotMutableState$Companion$CREATOR$1;\nHSPLandroidx/compose/runtime/ParcelableSnapshotMutableState$Companion$CREATOR$1;-><init>()V\nPLandroidx/compose/runtime/ParcelableSnapshotMutableState$Companion$CREATOR$1;-><init>()V\nLandroidx/compose/runtime/PausableMonotonicFrameClock;\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;-><init>(Landroidx/compose/runtime/MonotonicFrameClock;)V\nPLandroidx/compose/runtime/PausableMonotonicFrameClock;-><init>(Landroidx/compose/runtime/MonotonicFrameClock;)V\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/PausableMonotonicFrameClock;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nPLandroidx/compose/runtime/PausableMonotonicFrameClock;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nPLandroidx/compose/runtime/PausableMonotonicFrameClock;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;->pause()V\nPLandroidx/compose/runtime/PausableMonotonicFrameClock;->pause()V\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;->resume()V\nPLandroidx/compose/runtime/PausableMonotonicFrameClock;->resume()V\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/PausableMonotonicFrameClock;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/runtime/PausableMonotonicFrameClock$withFrameNanos$1;\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock$withFrameNanos$1;-><init>(Landroidx/compose/runtime/PausableMonotonicFrameClock;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/runtime/PausableMonotonicFrameClock$withFrameNanos$1;-><init>(Landroidx/compose/runtime/PausableMonotonicFrameClock;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/PausableMonotonicFrameClock$withFrameNanos$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/PausableMonotonicFrameClock$withFrameNanos$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/Pending;\nHSPLandroidx/compose/runtime/Pending;-><init>(ILjava/util/ArrayList;)V\nHPLandroidx/compose/runtime/Pending;-><init>(ILjava/util/ArrayList;)V\nHSPLandroidx/compose/runtime/Pending;->getKeyInfos()Ljava/util/List;\nPLandroidx/compose/runtime/Pending;->getKeyInfos()Ljava/util/List;\nHSPLandroidx/compose/runtime/Pending;->getNext(ILjava/lang/Object;)Landroidx/compose/runtime/KeyInfo;\nHPLandroidx/compose/runtime/Pending;->getNext(ILjava/lang/Object;)Landroidx/compose/runtime/KeyInfo;\nHSPLandroidx/compose/runtime/Pending;->getStartIndex()I\nPLandroidx/compose/runtime/Pending;->getStartIndex()I\nHSPLandroidx/compose/runtime/Pending;->nodePositionOf(Landroidx/compose/runtime/KeyInfo;)I\nHPLandroidx/compose/runtime/Pending;->nodePositionOf(Landroidx/compose/runtime/KeyInfo;)I\nHSPLandroidx/compose/runtime/Pending;->recordUsed(Landroidx/compose/runtime/KeyInfo;)V\nPLandroidx/compose/runtime/Pending;->recordUsed(Landroidx/compose/runtime/KeyInfo;)V\nHSPLandroidx/compose/runtime/Pending;->registerInsert(Landroidx/compose/runtime/KeyInfo;I)V\nPLandroidx/compose/runtime/Pending;->registerInsert(Landroidx/compose/runtime/KeyInfo;I)V\nHSPLandroidx/compose/runtime/Pending;->registerMoveSlot(II)V\nHPLandroidx/compose/runtime/Pending;->registerMoveSlot(II)V\nHSPLandroidx/compose/runtime/Pending;->updateNodeCount(II)Z\nHPLandroidx/compose/runtime/Pending;->updateNodeCount(II)Z\nLandroidx/compose/runtime/Pending$keyMap$2;\nHSPLandroidx/compose/runtime/Pending$keyMap$2;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/runtime/Pending$keyMap$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/Pending$keyMap$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/runtime/Pending$keyMap$2;->invoke()Ljava/lang/Object;\nLandroidx/compose/runtime/PersistentCompositionLocalMap;\nLandroidx/compose/runtime/ProduceStateScope;\nLandroidx/compose/runtime/ProduceStateScopeImpl;\nHSPLandroidx/compose/runtime/ProduceStateScopeImpl;-><init>(Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/CoroutineContext;)V\nHPLandroidx/compose/runtime/ProduceStateScopeImpl;-><init>(Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/CoroutineContext;)V\nHSPLandroidx/compose/runtime/ProduceStateScopeImpl;->setValue(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/ProduceStateScopeImpl;->setValue(Ljava/lang/Object;)V\nLandroidx/compose/runtime/ProvidableCompositionLocal;\nHSPLandroidx/compose/runtime/ProvidableCompositionLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/ProvidableCompositionLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/ProvidableCompositionLocal;->provides(Ljava/lang/Object;)Landroidx/compose/runtime/ProvidedValue;\nHPLandroidx/compose/runtime/ProvidableCompositionLocal;->provides(Ljava/lang/Object;)Landroidx/compose/runtime/ProvidedValue;\nLandroidx/compose/runtime/ProvidedValue;\nHSPLandroidx/compose/runtime/ProvidedValue;-><init>(Landroidx/compose/runtime/CompositionLocal;Ljava/lang/Object;Z)V\nHPLandroidx/compose/runtime/ProvidedValue;-><init>(Landroidx/compose/runtime/CompositionLocal;Ljava/lang/Object;Z)V\nHSPLandroidx/compose/runtime/ProvidedValue;->getCanOverride()Z\nPLandroidx/compose/runtime/ProvidedValue;->getCanOverride()Z\nHSPLandroidx/compose/runtime/ProvidedValue;->getCompositionLocal()Landroidx/compose/runtime/CompositionLocal;\nPLandroidx/compose/runtime/ProvidedValue;->getCompositionLocal()Landroidx/compose/runtime/CompositionLocal;\nHSPLandroidx/compose/runtime/ProvidedValue;->getValue()Ljava/lang/Object;\nPLandroidx/compose/runtime/ProvidedValue;->getValue()Ljava/lang/Object;\nLandroidx/compose/runtime/RecomposeScope;\nLandroidx/compose/runtime/RecomposeScopeImpl;\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;-><init>(Landroidx/compose/runtime/CompositionImpl;)V\nHPLandroidx/compose/runtime/RecomposeScopeImpl;-><init>(Landroidx/compose/runtime/CompositionImpl;)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->access$getCurrentToken$p(Landroidx/compose/runtime/RecomposeScopeImpl;)I\nPLandroidx/compose/runtime/RecomposeScopeImpl;->access$getCurrentToken$p(Landroidx/compose/runtime/RecomposeScopeImpl;)I\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->access$getTrackedDependencies$p(Landroidx/compose/runtime/RecomposeScopeImpl;)Landroidx/compose/runtime/collection/IdentityArrayMap;\nPLandroidx/compose/runtime/RecomposeScopeImpl;->access$getTrackedDependencies$p(Landroidx/compose/runtime/RecomposeScopeImpl;)Landroidx/compose/runtime/collection/IdentityArrayMap;\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->access$getTrackedInstances$p(Landroidx/compose/runtime/RecomposeScopeImpl;)Landroidx/compose/runtime/collection/IdentityArrayIntMap;\nPLandroidx/compose/runtime/RecomposeScopeImpl;->access$getTrackedInstances$p(Landroidx/compose/runtime/RecomposeScopeImpl;)Landroidx/compose/runtime/collection/IdentityArrayIntMap;\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->access$setTrackedInstances$p(Landroidx/compose/runtime/RecomposeScopeImpl;)V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->access$setTrackedInstances$p(Landroidx/compose/runtime/RecomposeScopeImpl;)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->compose(Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->compose(Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->end(I)Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->end(I)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getAnchor()Landroidx/compose/runtime/Anchor;\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->getAnchor()Landroidx/compose/runtime/Anchor;\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getCanRecompose()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->getCanRecompose()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getDefaultsInScope()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->getDefaultsInScope()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getDefaultsInvalid()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->getDefaultsInvalid()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getRequiresRecompose()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->getRequiresRecompose()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getSkipped$runtime_release()Z\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->getSkipped$runtime_release()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getUsed()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->getUsed()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->getValid()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->getValid()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->invalidate()V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->invalidate()V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->invalidateForResult$enumunboxing$(Ljava/lang/Object;)I\nPLandroidx/compose/runtime/RecomposeScopeImpl;->invalidateForResult$enumunboxing$(Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->isConditional()Z\nPLandroidx/compose/runtime/RecomposeScopeImpl;->isConditional()Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->isInvalidFor(Landroidx/compose/runtime/collection/IdentityArraySet;)Z\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->isInvalidFor(Landroidx/compose/runtime/collection/IdentityArraySet;)Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->recordRead(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->recordRead(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->release()V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->release()V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->rereadTrackedInstances()V\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->rereadTrackedInstances()V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->scopeSkipped()V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->scopeSkipped()V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->setAnchor(Landroidx/compose/runtime/Anchor;)V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->setAnchor(Landroidx/compose/runtime/Anchor;)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->setDefaultsInScope()V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->setDefaultsInScope()V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->setDefaultsInvalid(Z)V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->setDefaultsInvalid(Z)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->setRequiresRecompose(Z)V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->setRequiresRecompose(Z)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->setUsed()V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->setUsed()V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->start(I)V\nPLandroidx/compose/runtime/RecomposeScopeImpl;->start(I)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl;->updateScope(Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/RecomposeScopeImpl;->updateScope(Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;\nHSPLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;-><init>(Landroidx/compose/runtime/DerivedSnapshotState;Landroidx/compose/runtime/collection/IdentityArrayMap;I)V\nPLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;-><init>(Landroidx/compose/runtime/DerivedSnapshotState;Landroidx/compose/runtime/collection/IdentityArrayMap;I)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;-><init>(Landroidx/compose/runtime/RecomposeScopeImpl;ILandroidx/compose/runtime/collection/IdentityArrayIntMap;)V\nHPLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;-><init>(Landroidx/compose/runtime/RecomposeScopeImpl;ILandroidx/compose/runtime/collection/IdentityArrayIntMap;)V\nHSPLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/RecomposeScopeImpl$end$1$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/RecomposeScopeOwner;\nLandroidx/compose/runtime/Recomposer;\nHSPLandroidx/compose/runtime/Recomposer;-><clinit>()V\nPLandroidx/compose/runtime/Recomposer;-><clinit>()V\nHSPLandroidx/compose/runtime/Recomposer;-><init>(Lkotlin/coroutines/CoroutineContext;)V\nHPLandroidx/compose/runtime/Recomposer;-><init>(Lkotlin/coroutines/CoroutineContext;)V\nHSPLandroidx/compose/runtime/Recomposer;->access$awaitWorkAvailable(Landroidx/compose/runtime/Recomposer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Recomposer;->access$awaitWorkAvailable(Landroidx/compose/runtime/Recomposer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer;->access$deriveStateLocked(Landroidx/compose/runtime/Recomposer;)Lkotlinx/coroutines/CancellableContinuation;\nPLandroidx/compose/runtime/Recomposer;->access$deriveStateLocked(Landroidx/compose/runtime/Recomposer;)Lkotlinx/coroutines/CancellableContinuation;\nHSPLandroidx/compose/runtime/Recomposer;->access$discardUnusedValues(Landroidx/compose/runtime/Recomposer;)V\nHPLandroidx/compose/runtime/Recomposer;->access$discardUnusedValues(Landroidx/compose/runtime/Recomposer;)V\nHSPLandroidx/compose/runtime/Recomposer;->access$getBroadcastFrameClock$p(Landroidx/compose/runtime/Recomposer;)Landroidx/compose/runtime/BroadcastFrameClock;\nPLandroidx/compose/runtime/Recomposer;->access$getBroadcastFrameClock$p(Landroidx/compose/runtime/Recomposer;)Landroidx/compose/runtime/BroadcastFrameClock;\nHSPLandroidx/compose/runtime/Recomposer;->access$getCompositionInvalidations$p(Landroidx/compose/runtime/Recomposer;)Ljava/util/ArrayList;\nPLandroidx/compose/runtime/Recomposer;->access$getCompositionInvalidations$p(Landroidx/compose/runtime/Recomposer;)Ljava/util/ArrayList;\nHSPLandroidx/compose/runtime/Recomposer;->access$getCompositionValuesAwaitingInsert$p(Landroidx/compose/runtime/Recomposer;)Ljava/util/ArrayList;\nPLandroidx/compose/runtime/Recomposer;->access$getCompositionValuesAwaitingInsert$p(Landroidx/compose/runtime/Recomposer;)Ljava/util/ArrayList;\nHSPLandroidx/compose/runtime/Recomposer;->access$getHasBroadcastFrameClockAwaiters(Landroidx/compose/runtime/Recomposer;)Z\nHPLandroidx/compose/runtime/Recomposer;->access$getHasBroadcastFrameClockAwaiters(Landroidx/compose/runtime/Recomposer;)Z\nHSPLandroidx/compose/runtime/Recomposer;->access$getKnownCompositions(Landroidx/compose/runtime/Recomposer;)Ljava/util/List;\nPLandroidx/compose/runtime/Recomposer;->access$getKnownCompositions(Landroidx/compose/runtime/Recomposer;)Ljava/util/List;\nHSPLandroidx/compose/runtime/Recomposer;->access$getRecomposerInfo$p(Landroidx/compose/runtime/Recomposer;)Landroidx/compose/runtime/GroupKind$Companion;\nPLandroidx/compose/runtime/Recomposer;->access$getRecomposerInfo$p(Landroidx/compose/runtime/Recomposer;)Landroidx/compose/runtime/GroupKind$Companion;\nPLandroidx/compose/runtime/Recomposer;->access$getRunnerJob$p(Landroidx/compose/runtime/Recomposer;)Lkotlinx/coroutines/Job;\nHSPLandroidx/compose/runtime/Recomposer;->access$getShouldKeepRecomposing(Landroidx/compose/runtime/Recomposer;)Z\nHPLandroidx/compose/runtime/Recomposer;->access$getShouldKeepRecomposing(Landroidx/compose/runtime/Recomposer;)Z\nHSPLandroidx/compose/runtime/Recomposer;->access$getSnapshotInvalidations$p(Landroidx/compose/runtime/Recomposer;)Landroidx/compose/runtime/collection/IdentityArraySet;\nPLandroidx/compose/runtime/Recomposer;->access$getSnapshotInvalidations$p(Landroidx/compose/runtime/Recomposer;)Landroidx/compose/runtime/collection/IdentityArraySet;\nHSPLandroidx/compose/runtime/Recomposer;->access$getStateLock$p(Landroidx/compose/runtime/Recomposer;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer;->access$getStateLock$p(Landroidx/compose/runtime/Recomposer;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer;->access$get_runningRecomposers$cp()Lkotlinx/coroutines/flow/MutableStateFlow;\nPLandroidx/compose/runtime/Recomposer;->access$get_runningRecomposers$cp()Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLandroidx/compose/runtime/Recomposer;->access$get_state$p(Landroidx/compose/runtime/Recomposer;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLandroidx/compose/runtime/Recomposer;->access$get_state$p(Landroidx/compose/runtime/Recomposer;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLandroidx/compose/runtime/Recomposer;->access$isClosed$p(Landroidx/compose/runtime/Recomposer;)Z\nHSPLandroidx/compose/runtime/Recomposer;->access$performRecompose(Landroidx/compose/runtime/Recomposer;Landroidx/compose/runtime/ControlledComposition;Landroidx/compose/runtime/collection/IdentityArraySet;)Landroidx/compose/runtime/CompositionImpl;\nHPLandroidx/compose/runtime/Recomposer;->access$performRecompose(Landroidx/compose/runtime/Recomposer;Landroidx/compose/runtime/ControlledComposition;Landroidx/compose/runtime/collection/IdentityArraySet;)Landroidx/compose/runtime/CompositionImpl;\nHSPLandroidx/compose/runtime/Recomposer;->access$recordComposerModifications(Landroidx/compose/runtime/Recomposer;)Z\nHPLandroidx/compose/runtime/Recomposer;->access$recordComposerModifications(Landroidx/compose/runtime/Recomposer;)Z\nHSPLandroidx/compose/runtime/Recomposer;->access$registerRunnerJob(Landroidx/compose/runtime/Recomposer;Lkotlinx/coroutines/Job;)V\nPLandroidx/compose/runtime/Recomposer;->access$registerRunnerJob(Landroidx/compose/runtime/Recomposer;Lkotlinx/coroutines/Job;)V\nHSPLandroidx/compose/runtime/Recomposer;->access$setChangeCount$p(Landroidx/compose/runtime/Recomposer;J)V\nPLandroidx/compose/runtime/Recomposer;->access$setChangeCount$p(Landroidx/compose/runtime/Recomposer;J)V\nPLandroidx/compose/runtime/Recomposer;->access$setCloseCause$p(Landroidx/compose/runtime/Recomposer;Ljava/lang/Throwable;)V\nHSPLandroidx/compose/runtime/Recomposer;->access$setCompositionsRemoved$p(Landroidx/compose/runtime/Recomposer;)V\nPLandroidx/compose/runtime/Recomposer;->access$setCompositionsRemoved$p(Landroidx/compose/runtime/Recomposer;)V\nPLandroidx/compose/runtime/Recomposer;->access$setRunnerJob$p(Landroidx/compose/runtime/Recomposer;)V\nPLandroidx/compose/runtime/Recomposer;->access$setWorkContinuation$p(Landroidx/compose/runtime/Recomposer;)V\nHSPLandroidx/compose/runtime/Recomposer;->applyAndCheck(Landroidx/compose/runtime/snapshots/MutableSnapshot;)V\nHPLandroidx/compose/runtime/Recomposer;->applyAndCheck(Landroidx/compose/runtime/snapshots/MutableSnapshot;)V\nPLandroidx/compose/runtime/Recomposer;->cancel()V\nHSPLandroidx/compose/runtime/Recomposer;->composeInitial$runtime_release(Landroidx/compose/runtime/ControlledComposition;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHPLandroidx/compose/runtime/Recomposer;->composeInitial$runtime_release(Landroidx/compose/runtime/ControlledComposition;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/runtime/Recomposer;->deriveStateLocked()Lkotlinx/coroutines/CancellableContinuation;\nHPLandroidx/compose/runtime/Recomposer;->deriveStateLocked()Lkotlinx/coroutines/CancellableContinuation;\nHSPLandroidx/compose/runtime/Recomposer;->getChangeCount()J\nPLandroidx/compose/runtime/Recomposer;->getChangeCount()J\nHSPLandroidx/compose/runtime/Recomposer;->getCollectingParameterInformation$runtime_release()Z\nPLandroidx/compose/runtime/Recomposer;->getCollectingParameterInformation$runtime_release()Z\nHSPLandroidx/compose/runtime/Recomposer;->getCompoundHashKey$runtime_release()I\nPLandroidx/compose/runtime/Recomposer;->getCompoundHashKey$runtime_release()I\nHSPLandroidx/compose/runtime/Recomposer;->getCurrentState()Lkotlinx/coroutines/flow/MutableStateFlow;\nPLandroidx/compose/runtime/Recomposer;->getCurrentState()Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLandroidx/compose/runtime/Recomposer;->getEffectCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHPLandroidx/compose/runtime/Recomposer;->getEffectCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/runtime/Recomposer;->getHasBroadcastFrameClockAwaitersLocked()Z\nPLandroidx/compose/runtime/Recomposer;->getHasBroadcastFrameClockAwaitersLocked()Z\nHSPLandroidx/compose/runtime/Recomposer;->getHasSchedulingWork()Z\nHPLandroidx/compose/runtime/Recomposer;->getHasSchedulingWork()Z\nHSPLandroidx/compose/runtime/Recomposer;->getKnownCompositions()Ljava/util/List;\nHPLandroidx/compose/runtime/Recomposer;->getKnownCompositions()Ljava/util/List;\nHSPLandroidx/compose/runtime/Recomposer;->invalidate$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/Recomposer;->invalidate$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/Recomposer;->join(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer;->join(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer;->pauseCompositionFrameClock()V\nPLandroidx/compose/runtime/Recomposer;->pauseCompositionFrameClock()V\nHSPLandroidx/compose/runtime/Recomposer;->performInitialMovableContentInserts(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/Recomposer;->performInitialMovableContentInserts(Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/Recomposer;->reportRemovedComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/Recomposer;->reportRemovedComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/Recomposer;->resumeCompositionFrameClock()V\nPLandroidx/compose/runtime/Recomposer;->resumeCompositionFrameClock()V\nHSPLandroidx/compose/runtime/Recomposer;->runRecomposeAndApplyChanges(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer;->runRecomposeAndApplyChanges(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer;->unregisterComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/Recomposer;->unregisterComposition$runtime_release(Landroidx/compose/runtime/ControlledComposition;)V\nLandroidx/compose/runtime/Recomposer$State;\nHSPLandroidx/compose/runtime/Recomposer$State;-><clinit>()V\nPLandroidx/compose/runtime/Recomposer$State;-><clinit>()V\nHSPLandroidx/compose/runtime/Recomposer$State;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/runtime/Recomposer$State;-><init>(Ljava/lang/String;I)V\nLandroidx/compose/runtime/Recomposer$effectJob$1$1;\nHSPLandroidx/compose/runtime/Recomposer$effectJob$1$1;-><init>(Landroidx/compose/runtime/Recomposer;)V\nPLandroidx/compose/runtime/Recomposer$effectJob$1$1;-><init>(Landroidx/compose/runtime/Recomposer;)V\nPLandroidx/compose/runtime/Recomposer$effectJob$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/Recomposer$join$2;\nHSPLandroidx/compose/runtime/Recomposer$join$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/runtime/Recomposer$join$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/Recomposer$join$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/runtime/Recomposer$join$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/Recomposer$join$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Recomposer$join$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer$join$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Recomposer$join$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/Recomposer$performRecompose$1$1;\nHSPLandroidx/compose/runtime/Recomposer$performRecompose$1$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/Recomposer$performRecompose$1$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/Recomposer$performRecompose$1$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/runtime/Recomposer$performRecompose$1$1;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer$performRecompose$1$1;->invoke()V\nHPLandroidx/compose/runtime/Recomposer$performRecompose$1$1;->invoke()V\nLandroidx/compose/runtime/Recomposer$recompositionRunner$2;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;-><init>(Landroidx/compose/runtime/Recomposer;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/MonotonicFrameClock;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;-><init>(Landroidx/compose/runtime/Recomposer;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/MonotonicFrameClock;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;-><init>(Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/MonotonicFrameClock;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;-><init>(Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/MonotonicFrameClock;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;->invoke(Ljava/util/Set;)V\nHPLandroidx/compose/runtime/Recomposer$recompositionRunner$2$unregisterApplyObserver$1;->invoke(Ljava/util/Set;)V\nLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;\nHSPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;-><init>(Landroidx/compose/runtime/Recomposer;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;-><init>(Landroidx/compose/runtime/Recomposer;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;->access$invokeSuspend$fillToInsert(Ljava/util/List;Landroidx/compose/runtime/Recomposer;)V\nHPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;->access$invokeSuspend$fillToInsert(Ljava/util/List;Landroidx/compose/runtime/Recomposer;)V\nHSPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2$1;\nHSPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2$1;-><init>(Landroidx/compose/runtime/Recomposer;Landroidx/compose/runtime/collection/IdentityArraySet;Landroidx/compose/runtime/collection/IdentityArraySet;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Ljava/util/List;Ljava/util/Set;)V\nHPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2$1;-><init>(Landroidx/compose/runtime/Recomposer;Landroidx/compose/runtime/collection/IdentityArraySet;Landroidx/compose/runtime/collection/IdentityArraySet;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Ljava/util/List;Ljava/util/Set;)V\nHSPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Recomposer$runRecomposeAndApplyChanges$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/ReferentialEqualityPolicy;\nHSPLandroidx/compose/runtime/ReferentialEqualityPolicy;-><clinit>()V\nPLandroidx/compose/runtime/ReferentialEqualityPolicy;-><clinit>()V\nHSPLandroidx/compose/runtime/ReferentialEqualityPolicy;-><init>()V\nPLandroidx/compose/runtime/ReferentialEqualityPolicy;-><init>()V\nHSPLandroidx/compose/runtime/ReferentialEqualityPolicy;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/ReferentialEqualityPolicy;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z\nLandroidx/compose/runtime/RememberManager;\nLandroidx/compose/runtime/RememberObserver;\nLandroidx/compose/runtime/SkippableUpdater;\nHSPLandroidx/compose/runtime/SkippableUpdater;-><init>(Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/SkippableUpdater;-><init>(Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/SkippableUpdater;->box-impl(Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/SkippableUpdater;\nHPLandroidx/compose/runtime/SkippableUpdater;->box-impl(Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/SkippableUpdater;\nHSPLandroidx/compose/runtime/SkippableUpdater;->unbox-impl()Landroidx/compose/runtime/Composer;\nPLandroidx/compose/runtime/SkippableUpdater;->unbox-impl()Landroidx/compose/runtime/Composer;\nLandroidx/compose/runtime/SlotReader;\nHSPLandroidx/compose/runtime/SlotReader;-><init>(Landroidx/compose/runtime/SlotTable;)V\nHPLandroidx/compose/runtime/SlotReader;-><init>(Landroidx/compose/runtime/SlotTable;)V\nHSPLandroidx/compose/runtime/SlotReader;->anchor(I)Landroidx/compose/runtime/Anchor;\nHPLandroidx/compose/runtime/SlotReader;->anchor(I)Landroidx/compose/runtime/Anchor;\nHSPLandroidx/compose/runtime/SlotReader;->beginEmpty()V\nPLandroidx/compose/runtime/SlotReader;->beginEmpty()V\nHSPLandroidx/compose/runtime/SlotReader;->close()V\nHPLandroidx/compose/runtime/SlotReader;->close()V\nHSPLandroidx/compose/runtime/SlotReader;->containsMark(I)Z\nPLandroidx/compose/runtime/SlotReader;->containsMark(I)Z\nHSPLandroidx/compose/runtime/SlotReader;->endEmpty()V\nPLandroidx/compose/runtime/SlotReader;->endEmpty()V\nHSPLandroidx/compose/runtime/SlotReader;->endGroup()V\nHPLandroidx/compose/runtime/SlotReader;->endGroup()V\nHSPLandroidx/compose/runtime/SlotReader;->extractKeys()Ljava/util/ArrayList;\nHPLandroidx/compose/runtime/SlotReader;->extractKeys()Ljava/util/ArrayList;\nHSPLandroidx/compose/runtime/SlotReader;->getCurrentGroup()I\nHPLandroidx/compose/runtime/SlotReader;->getCurrentGroup()I\nHSPLandroidx/compose/runtime/SlotReader;->getGroupAux()Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotReader;->getGroupAux()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->getGroupKey()I\nPLandroidx/compose/runtime/SlotReader;->getGroupKey()I\nHSPLandroidx/compose/runtime/SlotReader;->getGroupObjectKey()Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->getGroupObjectKey()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->getGroupSize()I\nPLandroidx/compose/runtime/SlotReader;->getGroupSize()I\nHSPLandroidx/compose/runtime/SlotReader;->getInEmpty()Z\nPLandroidx/compose/runtime/SlotReader;->getInEmpty()Z\nHSPLandroidx/compose/runtime/SlotReader;->getParent()I\nHPLandroidx/compose/runtime/SlotReader;->getParent()I\nHSPLandroidx/compose/runtime/SlotReader;->getParentNodes()I\nPLandroidx/compose/runtime/SlotReader;->getParentNodes()I\nHSPLandroidx/compose/runtime/SlotReader;->getSize()I\nPLandroidx/compose/runtime/SlotReader;->getSize()I\nHSPLandroidx/compose/runtime/SlotReader;->getTable$runtime_release()Landroidx/compose/runtime/SlotTable;\nPLandroidx/compose/runtime/SlotReader;->getTable$runtime_release()Landroidx/compose/runtime/SlotTable;\nHSPLandroidx/compose/runtime/SlotReader;->groupAux(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->groupAux(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->groupGet(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->groupGet(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->groupGet(II)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotReader;->groupGet(II)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->groupKey(I)I\nPLandroidx/compose/runtime/SlotReader;->groupKey(I)I\nHSPLandroidx/compose/runtime/SlotReader;->groupObjectKey(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->groupObjectKey(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->groupSize(I)I\nHPLandroidx/compose/runtime/SlotReader;->groupSize(I)I\nHSPLandroidx/compose/runtime/SlotReader;->hasMark(I)Z\nPLandroidx/compose/runtime/SlotReader;->hasMark(I)Z\nHSPLandroidx/compose/runtime/SlotReader;->hasObjectKey(I)Z\nHPLandroidx/compose/runtime/SlotReader;->hasObjectKey(I)Z\nHSPLandroidx/compose/runtime/SlotReader;->isGroupEnd()Z\nPLandroidx/compose/runtime/SlotReader;->isGroupEnd()Z\nHSPLandroidx/compose/runtime/SlotReader;->isNode()Z\nPLandroidx/compose/runtime/SlotReader;->isNode()Z\nHSPLandroidx/compose/runtime/SlotReader;->isNode(I)Z\nPLandroidx/compose/runtime/SlotReader;->isNode(I)Z\nHSPLandroidx/compose/runtime/SlotReader;->next()Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->next()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->node(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->node(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->nodeCount(I)I\nHPLandroidx/compose/runtime/SlotReader;->nodeCount(I)I\nHSPLandroidx/compose/runtime/SlotReader;->objectKey(I[I)Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotReader;->objectKey(I[I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotReader;->parent(I)I\nHPLandroidx/compose/runtime/SlotReader;->parent(I)I\nHSPLandroidx/compose/runtime/SlotReader;->reposition(I)V\nHPLandroidx/compose/runtime/SlotReader;->reposition(I)V\nHSPLandroidx/compose/runtime/SlotReader;->restoreParent(I)V\nHPLandroidx/compose/runtime/SlotReader;->restoreParent(I)V\nHSPLandroidx/compose/runtime/SlotReader;->skipGroup()I\nHPLandroidx/compose/runtime/SlotReader;->skipGroup()I\nHSPLandroidx/compose/runtime/SlotReader;->skipToGroupEnd()V\nPLandroidx/compose/runtime/SlotReader;->skipToGroupEnd()V\nHSPLandroidx/compose/runtime/SlotReader;->startGroup()V\nHPLandroidx/compose/runtime/SlotReader;->startGroup()V\nLandroidx/compose/runtime/SlotTable;\nHSPLandroidx/compose/runtime/SlotTable;-><init>()V\nHPLandroidx/compose/runtime/SlotTable;-><init>()V\nHSPLandroidx/compose/runtime/SlotTable;->anchorIndex(Landroidx/compose/runtime/Anchor;)I\nHPLandroidx/compose/runtime/SlotTable;->anchorIndex(Landroidx/compose/runtime/Anchor;)I\nHSPLandroidx/compose/runtime/SlotTable;->close$runtime_release(Landroidx/compose/runtime/SlotReader;)V\nHPLandroidx/compose/runtime/SlotTable;->close$runtime_release(Landroidx/compose/runtime/SlotReader;)V\nHSPLandroidx/compose/runtime/SlotTable;->close$runtime_release(Landroidx/compose/runtime/SlotWriter;[II[Ljava/lang/Object;ILjava/util/ArrayList;)V\nHPLandroidx/compose/runtime/SlotTable;->close$runtime_release(Landroidx/compose/runtime/SlotWriter;[II[Ljava/lang/Object;ILjava/util/ArrayList;)V\nHSPLandroidx/compose/runtime/SlotTable;->containsMark()Z\nPLandroidx/compose/runtime/SlotTable;->containsMark()Z\nHSPLandroidx/compose/runtime/SlotTable;->getAnchors$runtime_release()Ljava/util/ArrayList;\nPLandroidx/compose/runtime/SlotTable;->getAnchors$runtime_release()Ljava/util/ArrayList;\nHSPLandroidx/compose/runtime/SlotTable;->getGroups()[I\nPLandroidx/compose/runtime/SlotTable;->getGroups()[I\nHSPLandroidx/compose/runtime/SlotTable;->getGroupsSize()I\nPLandroidx/compose/runtime/SlotTable;->getGroupsSize()I\nHSPLandroidx/compose/runtime/SlotTable;->getSlots()[Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotTable;->getSlots()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotTable;->getSlotsSize()I\nHPLandroidx/compose/runtime/SlotTable;->getSlotsSize()I\nHSPLandroidx/compose/runtime/SlotTable;->isEmpty()Z\nPLandroidx/compose/runtime/SlotTable;->isEmpty()Z\nHSPLandroidx/compose/runtime/SlotTable;->openReader()Landroidx/compose/runtime/SlotReader;\nHPLandroidx/compose/runtime/SlotTable;->openReader()Landroidx/compose/runtime/SlotReader;\nHSPLandroidx/compose/runtime/SlotTable;->openWriter()Landroidx/compose/runtime/SlotWriter;\nHPLandroidx/compose/runtime/SlotTable;->openWriter()Landroidx/compose/runtime/SlotWriter;\nHSPLandroidx/compose/runtime/SlotTable;->ownsAnchor(Landroidx/compose/runtime/Anchor;)Z\nHPLandroidx/compose/runtime/SlotTable;->ownsAnchor(Landroidx/compose/runtime/Anchor;)Z\nHSPLandroidx/compose/runtime/SlotTable;->setTo$runtime_release([II[Ljava/lang/Object;ILjava/util/ArrayList;)V\nPLandroidx/compose/runtime/SlotTable;->setTo$runtime_release([II[Ljava/lang/Object;ILjava/util/ArrayList;)V\nLandroidx/compose/runtime/SlotWriter;\nHSPLandroidx/compose/runtime/SlotWriter;-><clinit>()V\nPLandroidx/compose/runtime/SlotWriter;-><clinit>()V\nHSPLandroidx/compose/runtime/SlotWriter;-><init>(Landroidx/compose/runtime/SlotTable;)V\nHPLandroidx/compose/runtime/SlotWriter;-><init>(Landroidx/compose/runtime/SlotTable;)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$containsAnyGroupMarks(Landroidx/compose/runtime/SlotWriter;I)Z\nPLandroidx/compose/runtime/SlotWriter;->access$containsAnyGroupMarks(Landroidx/compose/runtime/SlotWriter;I)Z\nHSPLandroidx/compose/runtime/SlotWriter;->access$dataIndex(Landroidx/compose/runtime/SlotWriter;I)I\nPLandroidx/compose/runtime/SlotWriter;->access$dataIndex(Landroidx/compose/runtime/SlotWriter;I)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$dataIndex(Landroidx/compose/runtime/SlotWriter;[II)I\nHPLandroidx/compose/runtime/SlotWriter;->access$dataIndex(Landroidx/compose/runtime/SlotWriter;[II)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$dataIndexToDataAddress(Landroidx/compose/runtime/SlotWriter;I)I\nHPLandroidx/compose/runtime/SlotWriter;->access$dataIndexToDataAddress(Landroidx/compose/runtime/SlotWriter;I)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$dataIndexToDataAnchor(Landroidx/compose/runtime/SlotWriter;IIII)I\nHPLandroidx/compose/runtime/SlotWriter;->access$dataIndexToDataAnchor(Landroidx/compose/runtime/SlotWriter;IIII)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getAnchors$p(Landroidx/compose/runtime/SlotWriter;)Ljava/util/ArrayList;\nPLandroidx/compose/runtime/SlotWriter;->access$getAnchors$p(Landroidx/compose/runtime/SlotWriter;)Ljava/util/ArrayList;\nHSPLandroidx/compose/runtime/SlotWriter;->access$getCurrentSlot$p(Landroidx/compose/runtime/SlotWriter;)I\nPLandroidx/compose/runtime/SlotWriter;->access$getCurrentSlot$p(Landroidx/compose/runtime/SlotWriter;)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getGroupGapStart$p(Landroidx/compose/runtime/SlotWriter;)I\nPLandroidx/compose/runtime/SlotWriter;->access$getGroupGapStart$p(Landroidx/compose/runtime/SlotWriter;)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getGroups$p(Landroidx/compose/runtime/SlotWriter;)[I\nPLandroidx/compose/runtime/SlotWriter;->access$getGroups$p(Landroidx/compose/runtime/SlotWriter;)[I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getNodeCount$p(Landroidx/compose/runtime/SlotWriter;)I\nPLandroidx/compose/runtime/SlotWriter;->access$getNodeCount$p(Landroidx/compose/runtime/SlotWriter;)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getSlots$p(Landroidx/compose/runtime/SlotWriter;)[Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotWriter;->access$getSlots$p(Landroidx/compose/runtime/SlotWriter;)[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotWriter;->access$getSlotsGapLen$p(Landroidx/compose/runtime/SlotWriter;)I\nPLandroidx/compose/runtime/SlotWriter;->access$getSlotsGapLen$p(Landroidx/compose/runtime/SlotWriter;)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getSlotsGapOwner$p(Landroidx/compose/runtime/SlotWriter;)I\nPLandroidx/compose/runtime/SlotWriter;->access$getSlotsGapOwner$p(Landroidx/compose/runtime/SlotWriter;)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$getSlotsGapStart$p(Landroidx/compose/runtime/SlotWriter;)I\nPLandroidx/compose/runtime/SlotWriter;->access$getSlotsGapStart$p(Landroidx/compose/runtime/SlotWriter;)I\nHSPLandroidx/compose/runtime/SlotWriter;->access$insertGroups(Landroidx/compose/runtime/SlotWriter;I)V\nPLandroidx/compose/runtime/SlotWriter;->access$insertGroups(Landroidx/compose/runtime/SlotWriter;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$insertSlots(IILandroidx/compose/runtime/SlotWriter;)V\nPLandroidx/compose/runtime/SlotWriter;->access$insertSlots(IILandroidx/compose/runtime/SlotWriter;)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$setCurrentGroup$p(Landroidx/compose/runtime/SlotWriter;I)V\nPLandroidx/compose/runtime/SlotWriter;->access$setCurrentGroup$p(Landroidx/compose/runtime/SlotWriter;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$setCurrentSlot$p(Landroidx/compose/runtime/SlotWriter;I)V\nPLandroidx/compose/runtime/SlotWriter;->access$setCurrentSlot$p(Landroidx/compose/runtime/SlotWriter;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$setNodeCount$p(Landroidx/compose/runtime/SlotWriter;I)V\nPLandroidx/compose/runtime/SlotWriter;->access$setNodeCount$p(Landroidx/compose/runtime/SlotWriter;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$setSlotsGapOwner$p(Landroidx/compose/runtime/SlotWriter;I)V\nPLandroidx/compose/runtime/SlotWriter;->access$setSlotsGapOwner$p(Landroidx/compose/runtime/SlotWriter;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->access$updateContainsMark(Landroidx/compose/runtime/SlotWriter;I)V\nPLandroidx/compose/runtime/SlotWriter;->access$updateContainsMark(Landroidx/compose/runtime/SlotWriter;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->advanceBy(I)V\nHPLandroidx/compose/runtime/SlotWriter;->advanceBy(I)V\nHSPLandroidx/compose/runtime/SlotWriter;->anchor(I)Landroidx/compose/runtime/Anchor;\nHPLandroidx/compose/runtime/SlotWriter;->anchor(I)Landroidx/compose/runtime/Anchor;\nHSPLandroidx/compose/runtime/SlotWriter;->anchorIndex(Landroidx/compose/runtime/Anchor;)I\nHPLandroidx/compose/runtime/SlotWriter;->anchorIndex(Landroidx/compose/runtime/Anchor;)I\nHSPLandroidx/compose/runtime/SlotWriter;->auxIndex(I[I)I\nHPLandroidx/compose/runtime/SlotWriter;->auxIndex(I[I)I\nHSPLandroidx/compose/runtime/SlotWriter;->beginInsert()V\nPLandroidx/compose/runtime/SlotWriter;->beginInsert()V\nHSPLandroidx/compose/runtime/SlotWriter;->close()V\nHPLandroidx/compose/runtime/SlotWriter;->close()V\nHSPLandroidx/compose/runtime/SlotWriter;->dataIndex(I[I)I\nHPLandroidx/compose/runtime/SlotWriter;->dataIndex(I[I)I\nHSPLandroidx/compose/runtime/SlotWriter;->dataIndexToDataAddress(I)I\nPLandroidx/compose/runtime/SlotWriter;->dataIndexToDataAddress(I)I\nHSPLandroidx/compose/runtime/SlotWriter;->endGroup()V\nHPLandroidx/compose/runtime/SlotWriter;->endGroup()V\nHSPLandroidx/compose/runtime/SlotWriter;->endInsert()V\nHPLandroidx/compose/runtime/SlotWriter;->endInsert()V\nHSPLandroidx/compose/runtime/SlotWriter;->ensureStarted(I)V\nHPLandroidx/compose/runtime/SlotWriter;->ensureStarted(I)V\nHSPLandroidx/compose/runtime/SlotWriter;->fixParentAnchorsFor(III)V\nHPLandroidx/compose/runtime/SlotWriter;->fixParentAnchorsFor(III)V\nHSPLandroidx/compose/runtime/SlotWriter;->getClosed()Z\nPLandroidx/compose/runtime/SlotWriter;->getClosed()Z\nHSPLandroidx/compose/runtime/SlotWriter;->getCurrentGroup()I\nPLandroidx/compose/runtime/SlotWriter;->getCurrentGroup()I\nHSPLandroidx/compose/runtime/SlotWriter;->getParent()I\nHPLandroidx/compose/runtime/SlotWriter;->getParent()I\nHSPLandroidx/compose/runtime/SlotWriter;->getSize$runtime_release()I\nHPLandroidx/compose/runtime/SlotWriter;->getSize$runtime_release()I\nHSPLandroidx/compose/runtime/SlotWriter;->getTable$runtime_release()Landroidx/compose/runtime/SlotTable;\nPLandroidx/compose/runtime/SlotWriter;->getTable$runtime_release()Landroidx/compose/runtime/SlotTable;\nHSPLandroidx/compose/runtime/SlotWriter;->groupAux(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotWriter;->groupAux(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotWriter;->groupIndexToAddress(I)I\nHPLandroidx/compose/runtime/SlotWriter;->groupIndexToAddress(I)I\nHSPLandroidx/compose/runtime/SlotWriter;->groupKey(I)I\nPLandroidx/compose/runtime/SlotWriter;->groupKey(I)I\nHSPLandroidx/compose/runtime/SlotWriter;->groupObjectKey(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotWriter;->groupObjectKey(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotWriter;->groupSize(I)I\nHPLandroidx/compose/runtime/SlotWriter;->groupSize(I)I\nHSPLandroidx/compose/runtime/SlotWriter;->groupSlots()Landroidx/compose/runtime/SlotWriter$groupSlots$1;\nHPLandroidx/compose/runtime/SlotWriter;->groupSlots()Landroidx/compose/runtime/SlotWriter$groupSlots$1;\nHSPLandroidx/compose/runtime/SlotWriter;->insertGroups(I)V\nHPLandroidx/compose/runtime/SlotWriter;->insertGroups(I)V\nHSPLandroidx/compose/runtime/SlotWriter;->insertSlots(II)V\nHPLandroidx/compose/runtime/SlotWriter;->insertSlots(II)V\nHSPLandroidx/compose/runtime/SlotWriter;->markGroup$default(Landroidx/compose/runtime/SlotWriter;)V\nHPLandroidx/compose/runtime/SlotWriter;->markGroup$default(Landroidx/compose/runtime/SlotWriter;)V\nHSPLandroidx/compose/runtime/SlotWriter;->moveFrom(Landroidx/compose/runtime/SlotTable;I)V\nHPLandroidx/compose/runtime/SlotWriter;->moveFrom(Landroidx/compose/runtime/SlotTable;I)V\nHSPLandroidx/compose/runtime/SlotWriter;->moveGroup(I)V\nHPLandroidx/compose/runtime/SlotWriter;->moveGroup(I)V\nHSPLandroidx/compose/runtime/SlotWriter;->moveGroupGapTo(I)V\nHPLandroidx/compose/runtime/SlotWriter;->moveGroupGapTo(I)V\nHSPLandroidx/compose/runtime/SlotWriter;->moveSlotGapTo(II)V\nHPLandroidx/compose/runtime/SlotWriter;->moveSlotGapTo(II)V\nHSPLandroidx/compose/runtime/SlotWriter;->node(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/SlotWriter;->node(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotWriter;->parent(I)I\nHPLandroidx/compose/runtime/SlotWriter;->parent(I)I\nHSPLandroidx/compose/runtime/SlotWriter;->parent(I[I)I\nHPLandroidx/compose/runtime/SlotWriter;->parent(I[I)I\nHSPLandroidx/compose/runtime/SlotWriter;->recalculateMarks()V\nHPLandroidx/compose/runtime/SlotWriter;->recalculateMarks()V\nHSPLandroidx/compose/runtime/SlotWriter;->removeGroup()Z\nHPLandroidx/compose/runtime/SlotWriter;->removeGroup()Z\nHSPLandroidx/compose/runtime/SlotWriter;->removeGroups(II)Z\nHPLandroidx/compose/runtime/SlotWriter;->removeGroups(II)Z\nHSPLandroidx/compose/runtime/SlotWriter;->removeSlots(III)V\nHPLandroidx/compose/runtime/SlotWriter;->removeSlots(III)V\nHSPLandroidx/compose/runtime/SlotWriter;->set(IILjava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotWriter;->set(IILjava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotWriter;->set(ILjava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotWriter;->set(ILjava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SlotWriter;->skipGroup()I\nHPLandroidx/compose/runtime/SlotWriter;->skipGroup()I\nHSPLandroidx/compose/runtime/SlotWriter;->skipToGroupEnd()V\nPLandroidx/compose/runtime/SlotWriter;->skipToGroupEnd()V\nHSPLandroidx/compose/runtime/SlotWriter;->slotIndex(I[I)I\nPLandroidx/compose/runtime/SlotWriter;->slotIndex(I[I)I\nHSPLandroidx/compose/runtime/SlotWriter;->startData(ILjava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/SlotWriter;->startData(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/SlotWriter;->startGroup()V\nHPLandroidx/compose/runtime/SlotWriter;->startGroup()V\nHSPLandroidx/compose/runtime/SlotWriter;->startGroup(ILjava/lang/Object;)V\nPLandroidx/compose/runtime/SlotWriter;->startGroup(ILjava/lang/Object;)V\nHSPLandroidx/compose/runtime/SlotWriter;->startGroup(ILjava/lang/Object;Ljava/lang/Object;Z)V\nHPLandroidx/compose/runtime/SlotWriter;->startGroup(ILjava/lang/Object;Ljava/lang/Object;Z)V\nHSPLandroidx/compose/runtime/SlotWriter;->startNode(ILandroidx/compose/runtime/Composer$Companion$Empty$1;)V\nPLandroidx/compose/runtime/SlotWriter;->startNode(ILandroidx/compose/runtime/Composer$Companion$Empty$1;)V\nHSPLandroidx/compose/runtime/SlotWriter;->update(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/SlotWriter;->update(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/SlotWriter;->updateAux(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/SlotWriter;->updateAux(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/SlotWriter;->updateContainsMark(I)V\nHPLandroidx/compose/runtime/SlotWriter;->updateContainsMark(I)V\nHSPLandroidx/compose/runtime/SlotWriter;->updateNode(Landroidx/compose/runtime/Anchor;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/SlotWriter;->updateNode(Landroidx/compose/runtime/Anchor;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/SlotWriter;->updateNodeOfGroup(ILjava/lang/Object;)V\nHPLandroidx/compose/runtime/SlotWriter;->updateNodeOfGroup(ILjava/lang/Object;)V\nLandroidx/compose/runtime/SlotWriter$Companion;\nHSPLandroidx/compose/runtime/SlotWriter$Companion;-><init>()V\nPLandroidx/compose/runtime/SlotWriter$Companion;-><init>()V\nHSPLandroidx/compose/runtime/SlotWriter$Companion;->access$moveGroup(Landroidx/compose/runtime/SlotWriter;ILandroidx/compose/runtime/SlotWriter;)Ljava/util/List;\nPLandroidx/compose/runtime/SlotWriter$Companion;->access$moveGroup(Landroidx/compose/runtime/SlotWriter;ILandroidx/compose/runtime/SlotWriter;)Ljava/util/List;\nHSPLandroidx/compose/runtime/SlotWriter$Companion;->moveGroup(Landroidx/compose/runtime/SlotWriter;ILandroidx/compose/runtime/SlotWriter;ZZZ)Ljava/util/List;\nHPLandroidx/compose/runtime/SlotWriter$Companion;->moveGroup(Landroidx/compose/runtime/SlotWriter;ILandroidx/compose/runtime/SlotWriter;ZZZ)Ljava/util/List;\nLandroidx/compose/runtime/SlotWriter$groupSlots$1;\nHSPLandroidx/compose/runtime/SlotWriter$groupSlots$1;-><init>(IILandroidx/compose/runtime/SlotWriter;)V\nHPLandroidx/compose/runtime/SlotWriter$groupSlots$1;-><init>(IILandroidx/compose/runtime/SlotWriter;)V\nHSPLandroidx/compose/runtime/SlotWriter$groupSlots$1;->hasNext()Z\nHPLandroidx/compose/runtime/SlotWriter$groupSlots$1;->hasNext()Z\nHSPLandroidx/compose/runtime/SlotWriter$groupSlots$1;->next()Ljava/lang/Object;\nHPLandroidx/compose/runtime/SlotWriter$groupSlots$1;->next()Ljava/lang/Object;\nLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;-><init>(F)V\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;-><init>(F)V\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->getFloatValue()F\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->getFloatValue()F\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->setFloatValue(F)V\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl;->setFloatValue(F)V\nLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;-><init>(F)V\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;-><init>(F)V\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->getValue()F\nPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->getValue()F\nHSPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->setValue(F)V\nPLandroidx/compose/runtime/SnapshotMutableFloatStateImpl$FloatStateStateRecord;->setValue(F)V\nLandroidx/compose/runtime/SnapshotMutableIntStateImpl;\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;-><init>(I)V\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;-><init>(I)V\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->getIntValue()I\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->getIntValue()I\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->setIntValue(I)V\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl;->setIntValue(I)V\nLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;-><init>(I)V\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;-><init>(I)V\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->getValue()I\nPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->getValue()I\nHSPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->setValue(I)V\nPLandroidx/compose/runtime/SnapshotMutableIntStateImpl$IntStateStateRecord;->setValue(I)V\nLandroidx/compose/runtime/SnapshotMutableLongStateImpl;\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;-><init>(J)V\nPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;-><init>(J)V\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->getLongValue()J\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->getLongValue()J\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->setLongValue(J)V\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl;->setLongValue(J)V\nLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;-><init>(J)V\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;-><init>(J)V\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->getValue()J\nPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->getValue()J\nHSPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->setValue(J)V\nPLandroidx/compose/runtime/SnapshotMutableLongStateImpl$LongStateStateRecord;->setValue(J)V\nLandroidx/compose/runtime/SnapshotMutableStateImpl;\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl;-><init>(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;)V\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl;-><init>(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;)V\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl;->setValue(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl;->setValue(Ljava/lang/Object;)V\nLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;-><init>(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->getValue()Ljava/lang/Object;\nPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->getValue()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->setValue(Ljava/lang/Object;)V\nPLandroidx/compose/runtime/SnapshotMutableStateImpl$StateStateRecord;->setValue(Ljava/lang/Object;)V\nLandroidx/compose/runtime/SnapshotMutationPolicy;\nLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;\nHSPLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;-><clinit>()V\nPLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;-><clinit>()V\nHSPLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;->access$getCalculationBlockNestedLevel$p()Landroidx/compose/runtime/SnapshotThreadLocal;\nHPLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;->access$getCalculationBlockNestedLevel$p()Landroidx/compose/runtime/SnapshotThreadLocal;\nHSPLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;->derivedStateObservers()Landroidx/compose/runtime/collection/MutableVector;\nHPLandroidx/compose/runtime/SnapshotStateKt__DerivedStateKt;->derivedStateObservers()Landroidx/compose/runtime/collection/MutableVector;\nLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;\nHSPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;\nHSPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;-><init>(Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotStateKt__ProduceStateKt$produceState$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1$1;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1$1;-><init>(Landroidx/compose/runtime/ProduceStateScope;I)V\nPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1$1;-><init>(Landroidx/compose/runtime/ProduceStateScope;I)V\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$collectAsState$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotStateKt__SnapshotFlowKt$snapshotFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/SnapshotThreadLocal;\nHSPLandroidx/compose/runtime/SnapshotThreadLocal;-><init>()V\nPLandroidx/compose/runtime/SnapshotThreadLocal;-><init>()V\nHSPLandroidx/compose/runtime/SnapshotThreadLocal;->get()Ljava/lang/Object;\nHPLandroidx/compose/runtime/SnapshotThreadLocal;->get()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/SnapshotThreadLocal;->set(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/SnapshotThreadLocal;->set(Ljava/lang/Object;)V\nLandroidx/compose/runtime/Stack;\nHSPLandroidx/compose/runtime/Stack;-><init>()V\nPLandroidx/compose/runtime/Stack;-><init>()V\nHSPLandroidx/compose/runtime/Stack;-><init>(I)V\nHPLandroidx/compose/runtime/Stack;-><init>(I)V\nHSPLandroidx/compose/runtime/Stack;->add(I)V\nPLandroidx/compose/runtime/Stack;->add(I)V\nHSPLandroidx/compose/runtime/Stack;->clear()V\nHPLandroidx/compose/runtime/Stack;->clear()V\nHSPLandroidx/compose/runtime/Stack;->getAndroidCanvas()Landroidx/compose/ui/graphics/AndroidCanvas;\nHPLandroidx/compose/runtime/Stack;->getAndroidCanvas()Landroidx/compose/ui/graphics/AndroidCanvas;\nHSPLandroidx/compose/runtime/Stack;->getSize()I\nHPLandroidx/compose/runtime/Stack;->getSize()I\nHSPLandroidx/compose/runtime/Stack;->isEmpty()Z\nHPLandroidx/compose/runtime/Stack;->isEmpty()Z\nHSPLandroidx/compose/runtime/Stack;->peek()Ljava/lang/Object;\nHPLandroidx/compose/runtime/Stack;->peek()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Stack;->peek(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Stack;->peek(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Stack;->pop()Ljava/lang/Object;\nHPLandroidx/compose/runtime/Stack;->pop()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Stack;->push(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/Stack;->push(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/Stack;->resolve(Landroidx/compose/ui/text/font/TypefaceRequest;)Landroidx/compose/ui/text/font/TypefaceResult$Immutable;\nPLandroidx/compose/runtime/Stack;->resolve(Landroidx/compose/ui/text/font/TypefaceRequest;)Landroidx/compose/ui/text/font/TypefaceResult$Immutable;\nHSPLandroidx/compose/runtime/Stack;->scheduleWithDelay(JLjava/lang/Runnable;)V\nPLandroidx/compose/runtime/Stack;->scheduleWithDelay(JLjava/lang/Runnable;)V\nHSPLandroidx/compose/runtime/Stack;->toArray()[Ljava/lang/Object;\nHPLandroidx/compose/runtime/Stack;->toArray()[Ljava/lang/Object;\nLandroidx/compose/runtime/State;\nLandroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/runtime/StaticProvidableCompositionLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/StaticProvidableCompositionLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/StaticProvidableCompositionLocal;->updatedStateOf$runtime_release(Ljava/lang/Object;Landroidx/compose/runtime/State;)Landroidx/compose/runtime/State;\nHPLandroidx/compose/runtime/StaticProvidableCompositionLocal;->updatedStateOf$runtime_release(Ljava/lang/Object;Landroidx/compose/runtime/State;)Landroidx/compose/runtime/State;\nLandroidx/compose/runtime/StaticValueHolder;\nHSPLandroidx/compose/runtime/StaticValueHolder;-><init>(Ljava/lang/Object;)V\nPLandroidx/compose/runtime/StaticValueHolder;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/StaticValueHolder;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/StaticValueHolder;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/StaticValueHolder;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/runtime/StaticValueHolder;->getValue()Ljava/lang/Object;\nLandroidx/compose/runtime/StructuralEqualityPolicy;\nHSPLandroidx/compose/runtime/StructuralEqualityPolicy;-><clinit>()V\nPLandroidx/compose/runtime/StructuralEqualityPolicy;-><clinit>()V\nHSPLandroidx/compose/runtime/StructuralEqualityPolicy;-><init>()V\nPLandroidx/compose/runtime/StructuralEqualityPolicy;-><init>()V\nHSPLandroidx/compose/runtime/StructuralEqualityPolicy;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/StructuralEqualityPolicy;->equivalent(Ljava/lang/Object;Ljava/lang/Object;)Z\nLandroidx/compose/runtime/Updater;\nHSPLandroidx/compose/runtime/Updater;->CompositionLocalProvider(Landroidx/compose/runtime/ProvidedValue;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/runtime/Updater;->CompositionLocalProvider(Landroidx/compose/runtime/ProvidedValue;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/runtime/Updater;->CompositionLocalProvider([Landroidx/compose/runtime/ProvidedValue;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/runtime/Updater;->CompositionLocalProvider([Landroidx/compose/runtime/ProvidedValue;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/runtime/Updater;->access$auxIndex(I[I)I\nPLandroidx/compose/runtime/Updater;->access$auxIndex(I[I)I\nHSPLandroidx/compose/runtime/Updater;->access$containsMark(I[I)Z\nPLandroidx/compose/runtime/Updater;->access$containsMark(I[I)Z\nHSPLandroidx/compose/runtime/Updater;->access$countOneBits(I)I\nPLandroidx/compose/runtime/Updater;->access$countOneBits(I)I\nHSPLandroidx/compose/runtime/Updater;->access$groupSize(I[I)I\nHPLandroidx/compose/runtime/Updater;->access$groupSize(I[I)I\nHSPLandroidx/compose/runtime/Updater;->access$hasAux(I[I)Z\nHPLandroidx/compose/runtime/Updater;->access$hasAux(I[I)Z\nHSPLandroidx/compose/runtime/Updater;->access$intersects(Landroidx/compose/runtime/collection/IdentityArraySet;Ljava/util/Set;)Z\nHPLandroidx/compose/runtime/Updater;->access$intersects(Landroidx/compose/runtime/collection/IdentityArraySet;Ljava/util/Set;)Z\nHSPLandroidx/compose/runtime/Updater;->access$isNode(I[I)Z\nHPLandroidx/compose/runtime/Updater;->access$isNode(I[I)Z\nHSPLandroidx/compose/runtime/Updater;->access$locationOf(Ljava/util/ArrayList;II)I\nHPLandroidx/compose/runtime/Updater;->access$locationOf(Ljava/util/ArrayList;II)I\nHSPLandroidx/compose/runtime/Updater;->access$nodeCount(I[I)I\nPLandroidx/compose/runtime/Updater;->access$nodeCount(I[I)I\nHSPLandroidx/compose/runtime/Updater;->access$objectKeyIndex(I[I)I\nPLandroidx/compose/runtime/Updater;->access$objectKeyIndex(I[I)I\nHSPLandroidx/compose/runtime/Updater;->access$search(Ljava/util/ArrayList;II)I\nHPLandroidx/compose/runtime/Updater;->access$search(Ljava/util/ArrayList;II)I\nHSPLandroidx/compose/runtime/Updater;->access$slotAnchor(I[I)I\nHPLandroidx/compose/runtime/Updater;->access$slotAnchor(I[I)I\nHSPLandroidx/compose/runtime/Updater;->access$updateGroupSize([III)V\nPLandroidx/compose/runtime/Updater;->access$updateGroupSize([III)V\nHSPLandroidx/compose/runtime/Updater;->access$updateNodeCount([III)V\nPLandroidx/compose/runtime/Updater;->access$updateNodeCount([III)V\nHSPLandroidx/compose/runtime/Updater;->collectAsState(Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;Lkotlin/coroutines/CoroutineContext;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/runtime/Updater;->collectAsState(Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;Lkotlin/coroutines/CoroutineContext;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/runtime/Updater;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/runtime/Updater;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/runtime/Updater;->compositionLocalOf$default(Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/runtime/Updater;->compositionLocalOf$default(Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nHSPLandroidx/compose/runtime/Updater;->countOneBits(I)I\nPLandroidx/compose/runtime/Updater;->countOneBits(I)I\nHSPLandroidx/compose/runtime/Updater;->derivedStateObservers()Landroidx/compose/runtime/collection/MutableVector;\nPLandroidx/compose/runtime/Updater;->derivedStateObservers()Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/runtime/Updater;->derivedStateOf(Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/State;\nPLandroidx/compose/runtime/Updater;->derivedStateOf(Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/State;\nHSPLandroidx/compose/runtime/Updater;->derivedStateOf(Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/State;\nHPLandroidx/compose/runtime/Updater;->derivedStateOf(Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/State;\nHSPLandroidx/compose/runtime/Updater;->getCurrentCompositeKeyHash(Landroidx/compose/runtime/Composer;)I\nHPLandroidx/compose/runtime/Updater;->getCurrentCompositeKeyHash(Landroidx/compose/runtime/Composer;)I\nHSPLandroidx/compose/runtime/Updater;->invokeComposable(Landroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/Updater;->invokeComposable(Landroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/runtime/Updater;->mutableFloatStateOf(F)Landroidx/compose/runtime/ParcelableSnapshotMutableFloatState;\nPLandroidx/compose/runtime/Updater;->mutableFloatStateOf(F)Landroidx/compose/runtime/ParcelableSnapshotMutableFloatState;\nHSPLandroidx/compose/runtime/Updater;->mutableIntStateOf(I)Landroidx/compose/runtime/ParcelableSnapshotMutableIntState;\nHPLandroidx/compose/runtime/Updater;->mutableIntStateOf(I)Landroidx/compose/runtime/ParcelableSnapshotMutableIntState;\nHSPLandroidx/compose/runtime/Updater;->mutableStateListOf([Ljava/lang/Object;)Landroidx/compose/runtime/snapshots/SnapshotStateList;\nPLandroidx/compose/runtime/Updater;->mutableStateListOf([Ljava/lang/Object;)Landroidx/compose/runtime/snapshots/SnapshotStateList;\nHSPLandroidx/compose/runtime/Updater;->mutableStateOf$default(Ljava/lang/Object;)Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nHPLandroidx/compose/runtime/Updater;->mutableStateOf$default(Ljava/lang/Object;)Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nHSPLandroidx/compose/runtime/Updater;->mutableStateOf(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;)Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nHPLandroidx/compose/runtime/Updater;->mutableStateOf(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;)Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nHSPLandroidx/compose/runtime/Updater;->neverEqualPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nPLandroidx/compose/runtime/Updater;->neverEqualPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nHSPLandroidx/compose/runtime/Updater;->produceState(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/runtime/Updater;->produceState(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/runtime/Updater;->produceState(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/runtime/Updater;->produceState(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/runtime/Updater;->read(Landroidx/compose/runtime/PersistentCompositionLocalMap;Landroidx/compose/runtime/ProvidableCompositionLocal;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/Updater;->read(Landroidx/compose/runtime/PersistentCompositionLocalMap;Landroidx/compose/runtime/ProvidableCompositionLocal;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/Updater;->referentialEqualityPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nHPLandroidx/compose/runtime/Updater;->referentialEqualityPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nHSPLandroidx/compose/runtime/Updater;->rememberCompositionContext(Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/CompositionContext;\nPLandroidx/compose/runtime/Updater;->rememberCompositionContext(Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/CompositionContext;\nHSPLandroidx/compose/runtime/Updater;->rememberUpdatedState(Ljava/lang/Object;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHPLandroidx/compose/runtime/Updater;->rememberUpdatedState(Ljava/lang/Object;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHSPLandroidx/compose/runtime/Updater;->search(Ljava/util/ArrayList;II)I\nHPLandroidx/compose/runtime/Updater;->search(Ljava/util/ArrayList;II)I\nHSPLandroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/runtime/Updater;->snapshotFlow(Lkotlin/jvm/functions/Function0;)Lkotlinx/coroutines/flow/Flow;\nPLandroidx/compose/runtime/Updater;->snapshotFlow(Lkotlin/jvm/functions/Function0;)Lkotlinx/coroutines/flow/Flow;\nHSPLandroidx/compose/runtime/Updater;->structuralEqualityPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nHPLandroidx/compose/runtime/Updater;->structuralEqualityPolicy()Landroidx/compose/runtime/SnapshotMutationPolicy;\nHSPLandroidx/compose/runtime/Updater;->updateChangedFlags(I)I\nHPLandroidx/compose/runtime/Updater;->updateChangedFlags(I)I\nHSPLandroidx/compose/runtime/Updater;->updateCompositionMap([Landroidx/compose/runtime/ProvidedValue;Landroidx/compose/runtime/PersistentCompositionLocalMap;Landroidx/compose/runtime/PersistentCompositionLocalMap;)Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHPLandroidx/compose/runtime/Updater;->updateCompositionMap([Landroidx/compose/runtime/ProvidedValue;Landroidx/compose/runtime/PersistentCompositionLocalMap;Landroidx/compose/runtime/PersistentCompositionLocalMap;)Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nLandroidx/compose/runtime/WeakReference;\nHSPLandroidx/compose/runtime/WeakReference;-><init>(Ljava/lang/Object;)V\nPLandroidx/compose/runtime/WeakReference;-><init>(Ljava/lang/Object;)V\nLandroidx/compose/runtime/changelist/ChangeList;\nHSPLandroidx/compose/runtime/changelist/ChangeList;-><init>()V\nHPLandroidx/compose/runtime/changelist/ChangeList;-><init>()V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->clear()V\nHPLandroidx/compose/runtime/changelist/ChangeList;->clear()V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->executeAndFlushAllPendingChanges(Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nPLandroidx/compose/runtime/changelist/ChangeList;->executeAndFlushAllPendingChanges(Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->isEmpty()Z\nPLandroidx/compose/runtime/changelist/ChangeList;->isEmpty()Z\nHSPLandroidx/compose/runtime/changelist/ChangeList;->isNotEmpty()Z\nPLandroidx/compose/runtime/changelist/ChangeList;->isNotEmpty()Z\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushAdvanceSlotsBy(I)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushAdvanceSlotsBy(I)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushDowns([Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushDowns([Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushEndCompositionScope(Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/ControlledComposition;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushEndCompositionScope(Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushEndCurrentGroup()V\nPLandroidx/compose/runtime/changelist/ChangeList;->pushEndCurrentGroup()V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushEnsureGroupStarted(Landroidx/compose/runtime/Anchor;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushEnsureGroupStarted(Landroidx/compose/runtime/Anchor;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushEnsureRootStarted()V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushEnsureRootStarted()V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushInsertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushInsertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushInsertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;Landroidx/compose/runtime/changelist/FixupList;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushInsertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;Landroidx/compose/runtime/changelist/FixupList;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushMoveCurrentGroup(I)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushMoveCurrentGroup(I)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushRemember(Landroidx/compose/runtime/RememberObserver;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushRemember(Landroidx/compose/runtime/RememberObserver;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushRemoveCurrentGroup()V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushRemoveCurrentGroup()V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushRemoveNode(II)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushRemoveNode(II)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushSideEffect(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushSideEffect(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushUpdateAuxData(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushUpdateAuxData(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushUpdateNode(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushUpdateNode(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushUpdateValue(ILjava/lang/Object;)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushUpdateValue(ILjava/lang/Object;)V\nHSPLandroidx/compose/runtime/changelist/ChangeList;->pushUps(I)V\nHPLandroidx/compose/runtime/changelist/ChangeList;->pushUps(I)V\nLandroidx/compose/runtime/changelist/ComposerChangeListWriter;\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;-><init>(Landroidx/compose/runtime/ComposerImpl;Landroidx/compose/runtime/changelist/ChangeList;)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;-><init>(Landroidx/compose/runtime/ComposerImpl;Landroidx/compose/runtime/changelist/ChangeList;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endCompositionScope(Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/ControlledComposition;)V\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endCompositionScope(Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/ControlledComposition;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endCurrentGroup()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endCurrentGroup()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endNodeMovement()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endNodeMovement()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endRoot()V\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->endRoot()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->finalizeComposition()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->finalizeComposition()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->getChangeList()Landroidx/compose/runtime/changelist/ChangeList;\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->getChangeList()Landroidx/compose/runtime/changelist/ChangeList;\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->getReader()Landroidx/compose/runtime/SlotReader;\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->getReader()Landroidx/compose/runtime/SlotReader;\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->insertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->insertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->insertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;Landroidx/compose/runtime/changelist/FixupList;)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->insertSlots(Landroidx/compose/runtime/Anchor;Landroidx/compose/runtime/SlotTable;Landroidx/compose/runtime/changelist/FixupList;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveCurrentGroup(I)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveCurrentGroup(I)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveDown(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveDown(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveReaderRelativeTo(I)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveReaderRelativeTo(I)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveUp()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->moveUp()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->pushPendingUpsAndDowns()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->pushPendingUpsAndDowns()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->realizeNodeMovementOperations()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->realizeNodeMovementOperations()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->realizeOperationLocation(Z)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->realizeOperationLocation(Z)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->releaseMovableContent()V\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->releaseMovableContent()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->remember(Landroidx/compose/runtime/RememberObserver;)V\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->remember(Landroidx/compose/runtime/RememberObserver;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->removeCurrentGroup()V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->removeCurrentGroup()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->removeNode(II)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->removeNode(II)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->resetTransientState()V\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->resetTransientState()V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->setChangeList(Landroidx/compose/runtime/changelist/ChangeList;)V\nPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->setChangeList(Landroidx/compose/runtime/changelist/ChangeList;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->sideEffect(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->sideEffect(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->updateNode(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/changelist/ComposerChangeListWriter;->updateNode(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/runtime/changelist/FixupList;\nHSPLandroidx/compose/runtime/changelist/FixupList;-><init>()V\nPLandroidx/compose/runtime/changelist/FixupList;-><init>()V\nHSPLandroidx/compose/runtime/changelist/FixupList;->createAndInsertNode(Lkotlin/jvm/functions/Function0;ILandroidx/compose/runtime/Anchor;)V\nHPLandroidx/compose/runtime/changelist/FixupList;->createAndInsertNode(Lkotlin/jvm/functions/Function0;ILandroidx/compose/runtime/Anchor;)V\nHSPLandroidx/compose/runtime/changelist/FixupList;->endNodeInsert()V\nPLandroidx/compose/runtime/changelist/FixupList;->endNodeInsert()V\nHSPLandroidx/compose/runtime/changelist/FixupList;->executeAndFlushAllPendingFixups(Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/FixupList;->executeAndFlushAllPendingFixups(Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHSPLandroidx/compose/runtime/changelist/FixupList;->isEmpty()Z\nPLandroidx/compose/runtime/changelist/FixupList;->isEmpty()Z\nHSPLandroidx/compose/runtime/changelist/FixupList;->updateNode(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/runtime/changelist/FixupList;->updateNode(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/runtime/changelist/Operation;\nHSPLandroidx/compose/runtime/changelist/Operation;-><init>(II)V\nPLandroidx/compose/runtime/changelist/Operation;-><init>(II)V\nHSPLandroidx/compose/runtime/changelist/Operation;-><init>(III)V\nPLandroidx/compose/runtime/changelist/Operation;-><init>(III)V\nHSPLandroidx/compose/runtime/changelist/Operation;->getInts()I\nHPLandroidx/compose/runtime/changelist/Operation;->getInts()I\nHSPLandroidx/compose/runtime/changelist/Operation;->getObjects()I\nHPLandroidx/compose/runtime/changelist/Operation;->getObjects()I\nLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;\nHSPLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$AdvanceSlotsBy;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$Downs;\nHSPLandroidx/compose/runtime/changelist/Operation$Downs;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$Downs;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$Downs;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$Downs;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$Downs;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$Downs;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;\nHSPLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$EndCompositionScope;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;\nHSPLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$EndCurrentGroup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;\nHSPLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$EnsureGroupStarted;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;\nHSPLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$EnsureRootGroupStarted;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;\nHSPLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$InsertNodeFixup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$InsertSlots;\nHSPLandroidx/compose/runtime/changelist/Operation$InsertSlots;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$InsertSlots;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$InsertSlots;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$InsertSlots;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$InsertSlots;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$InsertSlots;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;\nHSPLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$InsertSlotsWithFixups;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;\nHSPLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$MoveCurrentGroup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;\nHSPLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$PostInsertNodeFixup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$Remember;\nHSPLandroidx/compose/runtime/changelist/Operation$Remember;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$Remember;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$Remember;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$Remember;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$Remember;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$Remember;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;\nHSPLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$RemoveCurrentGroup;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$RemoveNode;\nHSPLandroidx/compose/runtime/changelist/Operation$RemoveNode;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$RemoveNode;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$RemoveNode;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$RemoveNode;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$RemoveNode;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$RemoveNode;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$SideEffect;\nHSPLandroidx/compose/runtime/changelist/Operation$SideEffect;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$SideEffect;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$SideEffect;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$SideEffect;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$SideEffect;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$SideEffect;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$UpdateAuxData;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$UpdateNode;\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateNode;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$UpdateNode;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateNode;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$UpdateNode;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateNode;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$UpdateNode;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$UpdateValue;\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateValue;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$UpdateValue;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateValue;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$UpdateValue;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$UpdateValue;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$UpdateValue;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$Ups;\nHSPLandroidx/compose/runtime/changelist/Operation$Ups;-><clinit>()V\nPLandroidx/compose/runtime/changelist/Operation$Ups;-><clinit>()V\nHSPLandroidx/compose/runtime/changelist/Operation$Ups;-><init>()V\nPLandroidx/compose/runtime/changelist/Operation$Ups;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operation$Ups;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operation$Ups;->execute(Landroidx/compose/runtime/changelist/Operations$OpIterator;Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nLandroidx/compose/runtime/changelist/Operation$UseCurrentNode;\nLandroidx/compose/runtime/changelist/Operations;\nHSPLandroidx/compose/runtime/changelist/Operations;-><init>()V\nHPLandroidx/compose/runtime/changelist/Operations;-><init>()V\nHSPLandroidx/compose/runtime/changelist/Operations;->access$createExpectedArgMask(Landroidx/compose/runtime/changelist/Operations;I)I\nHPLandroidx/compose/runtime/changelist/Operations;->access$createExpectedArgMask(Landroidx/compose/runtime/changelist/Operations;I)I\nHSPLandroidx/compose/runtime/changelist/Operations;->access$getIntArgs$p(Landroidx/compose/runtime/changelist/Operations;)[I\nPLandroidx/compose/runtime/changelist/Operations;->access$getIntArgs$p(Landroidx/compose/runtime/changelist/Operations;)[I\nHSPLandroidx/compose/runtime/changelist/Operations;->access$getObjectArgs$p(Landroidx/compose/runtime/changelist/Operations;)[Ljava/lang/Object;\nPLandroidx/compose/runtime/changelist/Operations;->access$getObjectArgs$p(Landroidx/compose/runtime/changelist/Operations;)[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/changelist/Operations;->access$getOpCodes$p(Landroidx/compose/runtime/changelist/Operations;)[Landroidx/compose/runtime/changelist/Operation;\nHPLandroidx/compose/runtime/changelist/Operations;->access$getOpCodes$p(Landroidx/compose/runtime/changelist/Operations;)[Landroidx/compose/runtime/changelist/Operation;\nHSPLandroidx/compose/runtime/changelist/Operations;->access$getOpCodesSize$p(Landroidx/compose/runtime/changelist/Operations;)I\nPLandroidx/compose/runtime/changelist/Operations;->access$getOpCodesSize$p(Landroidx/compose/runtime/changelist/Operations;)I\nHSPLandroidx/compose/runtime/changelist/Operations;->access$getPushedIntMask$p(Landroidx/compose/runtime/changelist/Operations;)I\nHPLandroidx/compose/runtime/changelist/Operations;->access$getPushedIntMask$p(Landroidx/compose/runtime/changelist/Operations;)I\nHSPLandroidx/compose/runtime/changelist/Operations;->access$getPushedObjectMask$p(Landroidx/compose/runtime/changelist/Operations;)I\nPLandroidx/compose/runtime/changelist/Operations;->access$getPushedObjectMask$p(Landroidx/compose/runtime/changelist/Operations;)I\nHSPLandroidx/compose/runtime/changelist/Operations;->access$setPushedIntMask$p(Landroidx/compose/runtime/changelist/Operations;I)V\nHPLandroidx/compose/runtime/changelist/Operations;->access$setPushedIntMask$p(Landroidx/compose/runtime/changelist/Operations;I)V\nHSPLandroidx/compose/runtime/changelist/Operations;->access$setPushedObjectMask$p(Landroidx/compose/runtime/changelist/Operations;I)V\nHPLandroidx/compose/runtime/changelist/Operations;->access$setPushedObjectMask$p(Landroidx/compose/runtime/changelist/Operations;I)V\nHSPLandroidx/compose/runtime/changelist/Operations;->access$topIntIndexOf-w8GmfQM(Landroidx/compose/runtime/changelist/Operations;I)I\nHPLandroidx/compose/runtime/changelist/Operations;->access$topIntIndexOf-w8GmfQM(Landroidx/compose/runtime/changelist/Operations;I)I\nHSPLandroidx/compose/runtime/changelist/Operations;->access$topObjectIndexOf-31yXWZQ(Landroidx/compose/runtime/changelist/Operations;I)I\nHPLandroidx/compose/runtime/changelist/Operations;->access$topObjectIndexOf-31yXWZQ(Landroidx/compose/runtime/changelist/Operations;I)I\nHSPLandroidx/compose/runtime/changelist/Operations;->clear()V\nHPLandroidx/compose/runtime/changelist/Operations;->clear()V\nHSPLandroidx/compose/runtime/changelist/Operations;->executeAndFlushAllPendingOperations(Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHPLandroidx/compose/runtime/changelist/Operations;->executeAndFlushAllPendingOperations(Landroidx/compose/runtime/Applier;Landroidx/compose/runtime/SlotWriter;Landroidx/compose/runtime/RememberManager;)V\nHSPLandroidx/compose/runtime/changelist/Operations;->isEmpty()Z\nPLandroidx/compose/runtime/changelist/Operations;->isEmpty()Z\nHSPLandroidx/compose/runtime/changelist/Operations;->isNotEmpty()Z\nPLandroidx/compose/runtime/changelist/Operations;->isNotEmpty()Z\nHSPLandroidx/compose/runtime/changelist/Operations;->popInto(Landroidx/compose/runtime/changelist/Operations;)V\nHPLandroidx/compose/runtime/changelist/Operations;->popInto(Landroidx/compose/runtime/changelist/Operations;)V\nHSPLandroidx/compose/runtime/changelist/Operations;->push(Landroidx/compose/runtime/changelist/Operation;)V\nHPLandroidx/compose/runtime/changelist/Operations;->push(Landroidx/compose/runtime/changelist/Operation;)V\nHSPLandroidx/compose/runtime/changelist/Operations;->pushOp(Landroidx/compose/runtime/changelist/Operation;)V\nHPLandroidx/compose/runtime/changelist/Operations;->pushOp(Landroidx/compose/runtime/changelist/Operation;)V\nLandroidx/compose/runtime/changelist/Operations$OpIterator;\nHSPLandroidx/compose/runtime/changelist/Operations$OpIterator;-><init>(Landroidx/compose/runtime/changelist/Operations;)V\nHPLandroidx/compose/runtime/changelist/Operations$OpIterator;-><init>(Landroidx/compose/runtime/changelist/Operations;)V\nHSPLandroidx/compose/runtime/changelist/Operations$OpIterator;->getInt-w8GmfQM(I)I\nHPLandroidx/compose/runtime/changelist/Operations$OpIterator;->getInt-w8GmfQM(I)I\nHSPLandroidx/compose/runtime/changelist/Operations$OpIterator;->getObject-31yXWZQ(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/changelist/Operations$OpIterator;->getObject-31yXWZQ(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/changelist/Operations$OpIterator;->getOperation()Landroidx/compose/runtime/changelist/Operation;\nHPLandroidx/compose/runtime/changelist/Operations$OpIterator;->getOperation()Landroidx/compose/runtime/changelist/Operation;\nHSPLandroidx/compose/runtime/changelist/Operations$OpIterator;->next()Z\nHPLandroidx/compose/runtime/changelist/Operations$OpIterator;->next()Z\nLandroidx/compose/runtime/collection/IdentityArrayIntMap;\nHSPLandroidx/compose/runtime/collection/IdentityArrayIntMap;-><init>()V\nHPLandroidx/compose/runtime/collection/IdentityArrayIntMap;-><init>()V\nHSPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->access$setSize$p(Landroidx/compose/runtime/collection/IdentityArrayIntMap;I)V\nPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->access$setSize$p(Landroidx/compose/runtime/collection/IdentityArrayIntMap;I)V\nHSPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->add(ILjava/lang/Object;)I\nHPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->add(ILjava/lang/Object;)I\nHSPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->getKeys()[Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->getKeys()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->getSize()I\nPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->getSize()I\nHSPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->getValues()[I\nPLandroidx/compose/runtime/collection/IdentityArrayIntMap;->getValues()[I\nLandroidx/compose/runtime/collection/IdentityArrayMap;\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;-><init>()V\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;-><init>()V\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->access$setSize$p(Landroidx/compose/runtime/collection/IdentityArrayMap;I)V\nPLandroidx/compose/runtime/collection/IdentityArrayMap;->access$setSize$p(Landroidx/compose/runtime/collection/IdentityArrayMap;I)V\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->clear()V\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->contains(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->contains(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->find(Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->find(Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IdentityArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->getKeys()[Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->getKeys()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->getSize()I\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->getSize()I\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->getValues()[Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->getValues()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->isNotEmpty()Z\nPLandroidx/compose/runtime/collection/IdentityArrayMap;->isNotEmpty()Z\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityArrayMap;->set(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/collection/IdentityArrayMap;->set(Ljava/lang/Object;Ljava/lang/Object;)V\nLandroidx/compose/runtime/collection/IdentityArraySet;\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;-><init>()V\nPLandroidx/compose/runtime/collection/IdentityArraySet;-><init>()V\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->access$setSize$p(Landroidx/compose/runtime/collection/IdentityArraySet;I)V\nPLandroidx/compose/runtime/collection/IdentityArraySet;->access$setSize$p(Landroidx/compose/runtime/collection/IdentityArraySet;I)V\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->add(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/IdentityArraySet;->add(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->addAll(Ljava/util/Collection;)V\nHPLandroidx/compose/runtime/collection/IdentityArraySet;->addAll(Ljava/util/Collection;)V\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->clear()V\nHPLandroidx/compose/runtime/collection/IdentityArraySet;->clear()V\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->contains(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/IdentityArraySet;->contains(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->find(Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/collection/IdentityArraySet;->find(Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->getValues()[Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IdentityArraySet;->getValues()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->isEmpty()Z\nPLandroidx/compose/runtime/collection/IdentityArraySet;->isEmpty()Z\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->isNotEmpty()Z\nPLandroidx/compose/runtime/collection/IdentityArraySet;->isNotEmpty()Z\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->iterator()Ljava/util/Iterator;\nPLandroidx/compose/runtime/collection/IdentityArraySet;->iterator()Ljava/util/Iterator;\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->remove(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/IdentityArraySet;->remove(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/IdentityArraySet;->size()I\nPLandroidx/compose/runtime/collection/IdentityArraySet;->size()I\nLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;\nHSPLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;-><init>(Landroidx/compose/runtime/collection/IdentityArraySet;)V\nHPLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;-><init>(Landroidx/compose/runtime/collection/IdentityArraySet;)V\nHSPLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;->hasNext()Z\nPLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;->hasNext()Z\nHSPLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;->next()Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IdentityArraySet$iterator$1;->next()Ljava/lang/Object;\nLandroidx/compose/runtime/collection/IdentityScopeMap;\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;-><init>()V\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;-><init>()V\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->access$find(Landroidx/compose/runtime/collection/IdentityScopeMap;Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->access$find(Landroidx/compose/runtime/collection/IdentityScopeMap;Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->access$scopeSetAt(Landroidx/compose/runtime/collection/IdentityScopeMap;I)Landroidx/compose/runtime/collection/IdentityArraySet;\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->access$scopeSetAt(Landroidx/compose/runtime/collection/IdentityScopeMap;I)Landroidx/compose/runtime/collection/IdentityArraySet;\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->add(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->add(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->clear()V\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->contains(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->contains(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->find(Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->find(Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->getScopeSets()[Landroidx/compose/runtime/collection/IdentityArraySet;\nPLandroidx/compose/runtime/collection/IdentityScopeMap;->getScopeSets()[Landroidx/compose/runtime/collection/IdentityArraySet;\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->getSize()I\nPLandroidx/compose/runtime/collection/IdentityScopeMap;->getSize()I\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->getValueOrder()[I\nPLandroidx/compose/runtime/collection/IdentityScopeMap;->getValueOrder()[I\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->getValues()[Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IdentityScopeMap;->getValues()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->removeScope(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/collection/IdentityScopeMap;->removeScope(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/collection/IdentityScopeMap;->setSize(I)V\nPLandroidx/compose/runtime/collection/IdentityScopeMap;->setSize(I)V\nLandroidx/compose/runtime/collection/IntMap;\nHSPLandroidx/compose/runtime/collection/IntMap;-><init>()V\nHPLandroidx/compose/runtime/collection/IntMap;-><init>()V\nHSPLandroidx/compose/runtime/collection/IntMap;->clear()V\nHPLandroidx/compose/runtime/collection/IntMap;->clear()V\nHSPLandroidx/compose/runtime/collection/IntMap;->get(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IntMap;->get(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/IntMap;->set(ILjava/lang/Object;)V\nLandroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/runtime/collection/MutableVector;-><init>([Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/collection/MutableVector;-><init>([Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/collection/MutableVector;->add(ILjava/lang/Object;)V\nPLandroidx/compose/runtime/collection/MutableVector;->add(ILjava/lang/Object;)V\nHSPLandroidx/compose/runtime/collection/MutableVector;->add(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/collection/MutableVector;->add(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/collection/MutableVector;->addAll(ILandroidx/compose/runtime/collection/MutableVector;)V\nHPLandroidx/compose/runtime/collection/MutableVector;->addAll(ILandroidx/compose/runtime/collection/MutableVector;)V\nHSPLandroidx/compose/runtime/collection/MutableVector;->asMutableList()Ljava/util/List;\nPLandroidx/compose/runtime/collection/MutableVector;->asMutableList()Ljava/util/List;\nHSPLandroidx/compose/runtime/collection/MutableVector;->clear()V\nHPLandroidx/compose/runtime/collection/MutableVector;->clear()V\nHSPLandroidx/compose/runtime/collection/MutableVector;->contains(Ljava/lang/Object;)Z\nPLandroidx/compose/runtime/collection/MutableVector;->contains(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/MutableVector;->ensureCapacity(I)V\nHPLandroidx/compose/runtime/collection/MutableVector;->ensureCapacity(I)V\nHSPLandroidx/compose/runtime/collection/MutableVector;->getContent()[Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/MutableVector;->getContent()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/MutableVector;->getSize()I\nHPLandroidx/compose/runtime/collection/MutableVector;->getSize()I\nHSPLandroidx/compose/runtime/collection/MutableVector;->indexOf(Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/collection/MutableVector;->indexOf(Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/collection/MutableVector;->isEmpty()Z\nPLandroidx/compose/runtime/collection/MutableVector;->isEmpty()Z\nHSPLandroidx/compose/runtime/collection/MutableVector;->isNotEmpty()Z\nHPLandroidx/compose/runtime/collection/MutableVector;->isNotEmpty()Z\nHSPLandroidx/compose/runtime/collection/MutableVector;->remove(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/collection/MutableVector;->remove(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/collection/MutableVector;->removeAt(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/MutableVector;->removeAt(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/MutableVector;->removeRange(II)V\nHPLandroidx/compose/runtime/collection/MutableVector;->removeRange(II)V\nHSPLandroidx/compose/runtime/collection/MutableVector;->set(ILjava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/collection/MutableVector;->set(ILjava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/MutableVector;->sortWith(Ljava/util/Comparator;)V\nPLandroidx/compose/runtime/collection/MutableVector;->sortWith(Ljava/util/Comparator;)V\nLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;\nHSPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;-><init>(Landroidx/compose/runtime/collection/MutableVector;)V\nHPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;-><init>(Landroidx/compose/runtime/collection/MutableVector;)V\nHSPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->get(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->get(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->isEmpty()Z\nPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->isEmpty()Z\nHSPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->iterator()Ljava/util/Iterator;\nHPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->iterator()Ljava/util/Iterator;\nHSPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->size()I\nHPLandroidx/compose/runtime/collection/MutableVector$MutableVectorList;->size()I\nLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;\nHSPLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;-><init>(ILjava/util/List;)V\nHPLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;-><init>(ILjava/util/List;)V\nHSPLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;->hasNext()Z\nHPLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;->hasNext()Z\nHSPLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;->next()Ljava/lang/Object;\nHPLandroidx/compose/runtime/collection/MutableVector$VectorListIterator;->next()Ljava/lang/Object;\nLandroidx/compose/runtime/collection/MutableVectorKt;\nHSPLandroidx/compose/runtime/collection/MutableVectorKt;->access$checkIndex(ILjava/util/List;)V\nHPLandroidx/compose/runtime/collection/MutableVectorKt;->access$checkIndex(ILjava/util/List;)V\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/ImmutableList;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/ImmutableSet;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentMap;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentMap$Builder;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentSet;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/AbstractPersistentList;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/AbstractPersistentList;-><init>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/AbstractPersistentList;-><init>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/AbstractPersistentList;->contains(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/AbstractPersistentList;->contains(Ljava/lang/Object;)Z\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;-><clinit>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;-><clinit>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;-><init>([Ljava/lang/Object;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;-><init>([Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->add(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->add(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->addAll(Ljava/util/Collection;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->addAll(Ljava/util/Collection;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->get(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->get(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->getSize()I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->getSize()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->indexOf(Ljava/lang/Object;)I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->indexOf(Ljava/lang/Object;)I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->removeAt(I)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableList/SmallPersistentVector;->removeAt(I)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;->getKey()Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;->getKey()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;->getValue()Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/MapEntry;->getValue()Ljava/lang/Object;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;-><clinit>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;-><clinit>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->containsKey(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->containsKey(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->getEntries()Ljava/util/Set;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->getEntries()Ljava/util/Set;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->getNode$runtime_release()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->getNode$runtime_release()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->getSize()I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->getSize()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->put(Ljava/lang/Object;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->put(Ljava/lang/Object;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;->remove(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;[Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;)V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;[Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->ensureNextEntryIsReady()V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->ensureNextEntryIsReady()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->hasNext()Z\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->hasNext()Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->moveToNextNodeWithData(I)I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->moveToNextNodeWithData(I)I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->next()Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBaseIterator;->next()Ljava/lang/Object;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getModCount$runtime_release()I\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getModCount$runtime_release()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getNode$runtime_release()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getNode$runtime_release()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getOwnership()Lorg/acra/file/CrashReportPersister;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getOwnership()Lorg/acra/file/CrashReportPersister;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getSize()I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->getSize()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->putAll(Ljava/util/Map;)V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->putAll(Ljava/util/Map;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setModCount$runtime_release(I)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setModCount$runtime_release(I)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setOperationResult$runtime_release(Ljava/lang/Object;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setOperationResult$runtime_release(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setOwnership(Lorg/acra/file/CrashReportPersister;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setOwnership(Lorg/acra/file/CrashReportPersister;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setSize(I)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;->setSize(I)V\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;->getSize()I\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;->getSize()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;->iterator()Ljava/util/Iterator;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapEntries;->iterator()Ljava/util/Iterator;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapKeysIterator;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapKeysIterator;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapKeysIterator;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;-><clinit>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;-><clinit>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;-><init>(II[Ljava/lang/Object;Lorg/acra/file/CrashReportPersister;)V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;-><init>(II[Ljava/lang/Object;Lorg/acra/file/CrashReportPersister;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->bufferMoveEntryToNode(IIILjava/lang/Object;Ljava/lang/Object;ILorg/acra/file/CrashReportPersister;)[Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->bufferMoveEntryToNode(IIILjava/lang/Object;Ljava/lang/Object;ILorg/acra/file/CrashReportPersister;)[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->containsKey(IILjava/lang/Object;)Z\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->containsKey(IILjava/lang/Object;)Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->elementsIdentityEquals(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;)Z\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->elementsIdentityEquals(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;)Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->entryCount$runtime_release()I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->entryCount$runtime_release()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->entryKeyIndex$runtime_release(I)I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->entryKeyIndex$runtime_release(I)I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->get(IILjava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->get(IILjava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->getBuffer$runtime_release()[Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->getBuffer$runtime_release()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->hasEntryAt$runtime_release(I)Z\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->hasEntryAt$runtime_release(I)Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->hasNodeAt(I)Z\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->hasNodeAt(I)Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->makeNode(ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILorg/acra/file/CrashReportPersister;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->makeNode(ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILorg/acra/file/CrashReportPersister;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->mutablePut(ILjava/lang/Object;Ljava/lang/Object;ILandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->mutablePut(ILjava/lang/Object;Ljava/lang/Object;ILandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->mutablePutAll(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;ILandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->mutablePutAll(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;ILandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMapBuilder;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->nodeAtIndex$runtime_release(I)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->nodeAtIndex$runtime_release(I)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->nodeIndex$runtime_release(I)I\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->nodeIndex$runtime_release(I)I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->put(IILjava/lang/Object;Ljava/lang/Object;)Landroidx/compose/runtime/IntStack;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->put(IILjava/lang/Object;Ljava/lang/Object;)Landroidx/compose/runtime/IntStack;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->remove(IILjava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->updateNodeAtIndex(IILandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->updateNodeAtIndex(IILandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->valueAtKeyIndex(I)Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;->valueAtKeyIndex(I)Ljava/lang/Object;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;-><init>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;-><init>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->getBuffer()[Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->getBuffer()[Ljava/lang/Object;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->getIndex()I\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->getIndex()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->hasNextKey()Z\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->hasNextKey()Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->hasNextNode()Z\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->hasNextNode()Z\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->reset(II[Ljava/lang/Object;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->reset(II[Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->setIndex(I)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeBaseIterator;->setIndex(I)V\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeKeysIterator;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeKeysIterator;-><init>(I)V\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeKeysIterator;-><init>(I)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeKeysIterator;->next()Ljava/lang/Object;\nHPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNodeKeysIterator;->next()Ljava/lang/Object;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;->getHasNext()Z\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;->getHasPrevious()Z\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;->getNext()Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;->getPrevious()Ljava/lang/Object;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;->withNext(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;->withPrevious(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/Links;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;-><clinit>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;-><clinit>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;-><init>(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;-><init>(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->access$getEMPTY$cp()Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->add(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->add(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->getSize()I\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->getSize()I\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->remove(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;-><init>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;-><init>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;->getCount()I\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;->getCount()I\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;->setCount(I)V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter;->setCount(I)V\nLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;-><clinit>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;-><clinit>()V\nHSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;-><init>()V\nPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;-><init>()V\nLandroidx/compose/runtime/internal/ComposableLambdaImpl;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;-><init>(IZ)V\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;-><init>(IZ)V\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->trackRead(Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->trackRead(Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->update(Lkotlin/jvm/internal/Lambda;)V\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl;->update(Lkotlin/jvm/internal/Lambda;)V\nLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;Ljava/lang/Object;I)V\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$2;\nHSPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$2;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;Ljava/lang/Object;Ljava/lang/Object;I)V\nPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$2;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;Ljava/lang/Object;Ljava/lang/Object;I)V\nLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;-><clinit>()V\nPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;-><clinit>()V\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/TrieNode;I)V\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->access$getEmpty$cp()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->access$getEmpty$cp()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->containsKey(Ljava/lang/Object;)Z\nPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->containsKey(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->putValue(Landroidx/compose/runtime/CompositionLocal;Landroidx/compose/runtime/State;)Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;->putValue(Landroidx/compose/runtime/CompositionLocal;Landroidx/compose/runtime/State;)Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap$Builder;\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap$Builder;-><init>(Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;)V\nPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap$Builder;-><init>(Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;)V\nHSPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap$Builder;->build()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHPLandroidx/compose/runtime/internal/PersistentCompositionLocalHashMap$Builder;->build()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nLandroidx/compose/runtime/internal/ThreadMap;\nHSPLandroidx/compose/runtime/internal/ThreadMap;-><init>(I[J[Ljava/lang/Object;)V\nPLandroidx/compose/runtime/internal/ThreadMap;-><init>(I[J[Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/internal/ThreadMap;->find(J)I\nHPLandroidx/compose/runtime/internal/ThreadMap;->find(J)I\nHSPLandroidx/compose/runtime/internal/ThreadMap;->get(J)Ljava/lang/Object;\nHPLandroidx/compose/runtime/internal/ThreadMap;->get(J)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/internal/ThreadMap;->newWith(JLjava/lang/Object;)Landroidx/compose/runtime/internal/ThreadMap;\nPLandroidx/compose/runtime/internal/ThreadMap;->newWith(JLjava/lang/Object;)Landroidx/compose/runtime/internal/ThreadMap;\nHSPLandroidx/compose/runtime/internal/ThreadMap;->trySet(JLjava/lang/Object;)Z\nHPLandroidx/compose/runtime/internal/ThreadMap;->trySet(JLjava/lang/Object;)Z\nLandroidx/compose/runtime/internal/ThreadMapKt;\nHSPLandroidx/compose/runtime/internal/ThreadMapKt;-><clinit>()V\nPLandroidx/compose/runtime/internal/ThreadMapKt;-><clinit>()V\nHSPLandroidx/compose/runtime/internal/ThreadMapKt;->getEmptyThreadMap()Landroidx/compose/runtime/internal/ThreadMap;\nPLandroidx/compose/runtime/internal/ThreadMapKt;->getEmptyThreadMap()Landroidx/compose/runtime/internal/ThreadMap;\nLandroidx/compose/runtime/saveable/MapSaverKt;\nHSPLandroidx/compose/runtime/saveable/MapSaverKt;->listSaver(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/runtime/saveable/MapSaverKt;->listSaver(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/runtime/saveable/MapSaverKt;->rememberSaveable([Ljava/lang/Object;Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/MapSaverKt;->rememberSaveable([Ljava/lang/Object;Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/saveable/MapSaverKt;->rememberSaveableStateHolder(Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/saveable/SaveableStateHolder;\nHPLandroidx/compose/runtime/saveable/MapSaverKt;->rememberSaveableStateHolder(Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/saveable/SaveableStateHolder;\nLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$1;\nHSPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$2;\nHSPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/MapSaverKt$mapSaver$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/RememberSaveableKt$rememberSaveable$1;\nHSPLandroidx/compose/runtime/saveable/RememberSaveableKt$rememberSaveable$1;-><init>(Landroidx/compose/runtime/saveable/SaveableHolder;Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V\nPLandroidx/compose/runtime/saveable/RememberSaveableKt$rememberSaveable$1;-><init>(Landroidx/compose/runtime/saveable/SaveableHolder;Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/saveable/RememberSaveableKt$rememberSaveable$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/RememberSaveableKt$rememberSaveable$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/SaveableHolder;\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;-><init>(Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V\nPLandroidx/compose/runtime/saveable/SaveableHolder;-><init>(Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->canBeSaved(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/saveable/SaveableHolder;->canBeSaved(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->getValueIfInputsDidntChange([Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/saveable/SaveableHolder;->getValueIfInputsDidntChange([Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->invoke()Ljava/lang/Object;\nPLandroidx/compose/runtime/saveable/SaveableHolder;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->onForgotten()V\nHPLandroidx/compose/runtime/saveable/SaveableHolder;->onForgotten()V\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->onRemembered()V\nHPLandroidx/compose/runtime/saveable/SaveableHolder;->onRemembered()V\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->register()V\nHPLandroidx/compose/runtime/saveable/SaveableHolder;->register()V\nHSPLandroidx/compose/runtime/saveable/SaveableHolder;->update(Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/saveable/SaveableHolder;->update(Landroidx/compose/runtime/saveable/SaverKt$Saver$1;Landroidx/compose/runtime/saveable/SaveableStateRegistry;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V\nLandroidx/compose/runtime/saveable/SaveableStateHolder;\nLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;-><clinit>()V\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;-><clinit>()V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;-><init>(Ljava/util/Map;)V\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;-><init>(Ljava/util/Map;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->SaveableStateProvider(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->SaveableStateProvider(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$getRegistryHolders$p(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;)Ljava/util/LinkedHashMap;\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$getRegistryHolders$p(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;)Ljava/util/LinkedHashMap;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$getSavedStates$p(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;)Ljava/util/Map;\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$getSavedStates$p(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;)Ljava/util/Map;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$getSaver$cp()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$saveAll(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;)Ljava/util/Map;\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->access$saveAll(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;)Ljava/util/Map;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->getParentSaveableStateRegistry()Landroidx/compose/runtime/saveable/SaveableStateRegistry;\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->getParentSaveableStateRegistry()Landroidx/compose/runtime/saveable/SaveableStateRegistry;\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->removeState(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->setParentSaveableStateRegistry(Landroidx/compose/runtime/saveable/SaveableStateRegistry;)V\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl;->setParentSaveableStateRegistry(Landroidx/compose/runtime/saveable/SaveableStateRegistry;)V\nLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;->getRegistry()Landroidx/compose/runtime/saveable/SaveableStateRegistry;\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;->getRegistry()Landroidx/compose/runtime/saveable/SaveableStateRegistry;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;->saveTo(Ljava/util/Map;)V\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;->saveTo(Ljava/util/Map;)V\nLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateHolderImpl$RegistryHolder;Landroidx/compose/runtime/saveable/SaveableStateHolderImpl;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$1$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/runtime/saveable/SaveableStateHolderImpl$SaveableStateProvider$2;\nLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;-><clinit>()V\nPLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;-><clinit>()V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;-><init>(I)V\nPLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;-><init>(I)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/SaveableStateHolderKt$rememberSaveableStateHolder$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/SaveableStateRegistry;\nLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;-><init>(Ljava/util/Map;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;-><init>(Ljava/util/Map;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->access$getValueProviders$p(Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl;)Ljava/util/LinkedHashMap;\nPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->access$getValueProviders$p(Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl;)Ljava/util/LinkedHashMap;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->canBeSaved(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->canBeSaved(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->consumeRestored(Ljava/lang/String;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->consumeRestored(Ljava/lang/String;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->performSave()Ljava/util/Map;\nHPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->performSave()Ljava/util/Map;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->registerProvider(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nHPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl;->registerProvider(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;->unregister()V\nHPLandroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;->unregister()V\nLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;-><clinit>()V\nPLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;-><clinit>()V\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;->SaveableStateRegistry(Ljava/util/Map;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/saveable/SaveableStateRegistry;\nPLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;->SaveableStateRegistry(Ljava/util/Map;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/saveable/SaveableStateRegistry;\nHSPLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;->getLocalSaveableStateRegistry()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/runtime/saveable/SaveableStateRegistryKt;->getLocalSaveableStateRegistry()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLandroidx/compose/runtime/saveable/SaverKt;\nHSPLandroidx/compose/runtime/saveable/SaverKt;-><clinit>()V\nPLandroidx/compose/runtime/saveable/SaverKt;-><clinit>()V\nHSPLandroidx/compose/runtime/saveable/SaverKt;->Saver(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/runtime/saveable/SaverKt;->Saver(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/runtime/saveable/SaverKt;->autoSaver()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLandroidx/compose/runtime/saveable/SaverKt;->autoSaver()Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;\nHSPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;-><clinit>()V\nPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;-><clinit>()V\nHSPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;-><init>(I)V\nPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;-><init>(I)V\nHSPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$2;\nHSPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$2;-><clinit>()V\nPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$2;-><clinit>()V\nHSPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$2;-><init>(I)V\nPLandroidx/compose/runtime/saveable/SaverKt$AutoSaver$2;-><init>(I)V\nLandroidx/compose/runtime/saveable/SaverKt$Saver$1;\nHSPLandroidx/compose/runtime/saveable/SaverKt$Saver$1;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/runtime/saveable/SaverKt$Saver$1;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/saveable/SaverKt$Saver$1;->save(Landroidx/compose/runtime/saveable/SaverScope;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/saveable/SaverKt$Saver$1;->save(Landroidx/compose/runtime/saveable/SaverScope;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/saveable/SaverScope;\nLandroidx/compose/runtime/snapshots/GlobalSnapshot;\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHPLandroidx/compose/runtime/snapshots/GlobalSnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->dispose()V\nHPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->dispose()V\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->notifyObjectsInitialized$runtime_release()V\nPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->notifyObjectsInitialized$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->takeNestedMutableSnapshot(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/MutableSnapshot;\nPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->takeNestedMutableSnapshot(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/MutableSnapshot;\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->takeNestedSnapshot(Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/GlobalSnapshot;->takeNestedSnapshot(Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/Snapshot;\nLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;->invoke(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/snapshots/GlobalSnapshot$1$1$1;->invoke(Ljava/lang/Object;)V\nLandroidx/compose/runtime/snapshots/MutableSnapshot;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;-><clinit>()V\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;-><clinit>()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->advance$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->advance$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->apply()Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->apply()Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->closeLocked$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->closeLocked$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->dispose()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->dispose()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getApplied$runtime_release()Z\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getApplied$runtime_release()Z\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getModified$runtime_release()Landroidx/compose/runtime/collection/IdentityArraySet;\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getModified$runtime_release()Landroidx/compose/runtime/collection/IdentityArraySet;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getPreviousIds$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getPreviousIds$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getPreviousPinnedSnapshots$runtime_release()[I\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getPreviousPinnedSnapshots$runtime_release()[I\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getReadObserver$runtime_release()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getReadObserver$runtime_release()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getReadOnly()Z\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getReadOnly()Z\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getWriteCount$runtime_release()I\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getWriteCount$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getWriteObserver$runtime_release()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->getWriteObserver$runtime_release()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->innerApplyLocked$runtime_release(ILjava/util/HashMap;Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->innerApplyLocked$runtime_release(ILjava/util/HashMap;Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->nestedActivated$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->nestedActivated$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->nestedDeactivated$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->nestedDeactivated$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->notifyObjectsInitialized$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->notifyObjectsInitialized$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordModified$runtime_release(Landroidx/compose/runtime/snapshots/StateObject;)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordModified$runtime_release(Landroidx/compose/runtime/snapshots/StateObject;)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPrevious$runtime_release(I)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPrevious$runtime_release(I)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPreviousList$runtime_release(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPreviousList$runtime_release(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPreviousPinnedSnapshot$runtime_release(I)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPreviousPinnedSnapshot$runtime_release(I)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPreviousPinnedSnapshots$runtime_release([I)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->recordPreviousPinnedSnapshots$runtime_release([I)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->releasePinnedSnapshotsForCloseLocked$runtime_release()V\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;->releasePinnedSnapshotsForCloseLocked$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->setApplied$runtime_release()V\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;->setApplied$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->setModified(Landroidx/compose/runtime/collection/IdentityArraySet;)V\nPLandroidx/compose/runtime/snapshots/MutableSnapshot;->setModified(Landroidx/compose/runtime/collection/IdentityArraySet;)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->setWriteCount$runtime_release(I)V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->setWriteCount$runtime_release(I)V\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->takeNestedMutableSnapshot(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/MutableSnapshot;\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->takeNestedMutableSnapshot(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/MutableSnapshot;\nHSPLandroidx/compose/runtime/snapshots/MutableSnapshot;->validateNotAppliedOrPinned()V\nHPLandroidx/compose/runtime/snapshots/MutableSnapshot;->validateNotAppliedOrPinned()V\nLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;\nHSPLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/snapshots/MutableSnapshot;)V\nPLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/snapshots/MutableSnapshot;)V\nHSPLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;->apply()Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHPLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;->apply()Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHSPLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;->dispose()V\nHPLandroidx/compose/runtime/snapshots/NestedMutableSnapshot;->dispose()V\nLandroidx/compose/runtime/snapshots/ObserverHandle;\nLandroidx/compose/runtime/snapshots/ReadonlySnapshot;\nHSPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;->dispose()V\nHPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;->dispose()V\nHSPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;->getReadObserver$runtime_release()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;->getReadObserver$runtime_release()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;->nestedDeactivated$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/ReadonlySnapshot;->nestedDeactivated$runtime_release()V\nLandroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/Snapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHPLandroidx/compose/runtime/snapshots/Snapshot;-><init>(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->closeAndReleasePinning$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/Snapshot;->closeAndReleasePinning$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->closeLocked$runtime_release()V\nPLandroidx/compose/runtime/snapshots/Snapshot;->closeLocked$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->dispose()V\nHPLandroidx/compose/runtime/snapshots/Snapshot;->dispose()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->getDisposed$runtime_release()Z\nHPLandroidx/compose/runtime/snapshots/Snapshot;->getDisposed$runtime_release()Z\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->getId()I\nHPLandroidx/compose/runtime/snapshots/Snapshot;->getId()I\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->getInvalid$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHPLandroidx/compose/runtime/snapshots/Snapshot;->getInvalid$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->makeCurrent()Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/Snapshot;->makeCurrent()Landroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->releasePinnedSnapshotLocked$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/Snapshot;->releasePinnedSnapshotLocked$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->releasePinnedSnapshotsForCloseLocked$runtime_release()V\nPLandroidx/compose/runtime/snapshots/Snapshot;->releasePinnedSnapshotsForCloseLocked$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->restoreCurrent(Landroidx/compose/runtime/snapshots/Snapshot;)V\nHPLandroidx/compose/runtime/snapshots/Snapshot;->restoreCurrent(Landroidx/compose/runtime/snapshots/Snapshot;)V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->setDisposed$runtime_release()V\nPLandroidx/compose/runtime/snapshots/Snapshot;->setDisposed$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->setId$runtime_release(I)V\nPLandroidx/compose/runtime/snapshots/Snapshot;->setId$runtime_release(I)V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->setInvalid$runtime_release(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nPLandroidx/compose/runtime/snapshots/Snapshot;->setInvalid$runtime_release(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->takeoverPinnedSnapshot$runtime_release()I\nPLandroidx/compose/runtime/snapshots/Snapshot;->takeoverPinnedSnapshot$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/Snapshot;->validateNotDisposed$runtime_release()V\nPLandroidx/compose/runtime/snapshots/Snapshot;->validateNotDisposed$runtime_release()V\nLandroidx/compose/runtime/snapshots/Snapshot$Companion;\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion;-><init>()V\nPLandroidx/compose/runtime/snapshots/Snapshot$Companion;-><init>()V\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->createNonObservableSnapshot()Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->createNonObservableSnapshot()Landroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->observe(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->observe(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->registerApplyObserver(Lkotlin/jvm/functions/Function2;)Landroidx/compose/runtime/snapshots/ObserverHandle;\nHPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->registerApplyObserver(Lkotlin/jvm/functions/Function2;)Landroidx/compose/runtime/snapshots/ObserverHandle;\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->registerGlobalWriteObserver(Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/ObserverHandle;\nPLandroidx/compose/runtime/snapshots/Snapshot$Companion;->registerGlobalWriteObserver(Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/ObserverHandle;\nLandroidx/compose/runtime/snapshots/Snapshot$Companion$registerApplyObserver$2;\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion$registerApplyObserver$2;-><init>(Lkotlin/jvm/internal/Lambda;I)V\nHPLandroidx/compose/runtime/snapshots/Snapshot$Companion$registerApplyObserver$2;-><init>(Lkotlin/jvm/internal/Lambda;I)V\nHSPLandroidx/compose/runtime/snapshots/Snapshot$Companion$registerApplyObserver$2;->dispose()V\nHPLandroidx/compose/runtime/snapshots/Snapshot$Companion$registerApplyObserver$2;->dispose()V\nLandroidx/compose/runtime/snapshots/SnapshotApplyResult$Failure;\nLandroidx/compose/runtime/snapshots/SnapshotApplyResult$Success;\nHSPLandroidx/compose/runtime/snapshots/SnapshotApplyResult$Success;-><clinit>()V\nPLandroidx/compose/runtime/snapshots/SnapshotApplyResult$Success;-><clinit>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotApplyResult$Success;-><init>()V\nPLandroidx/compose/runtime/snapshots/SnapshotApplyResult$Success;-><init>()V\nLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;\nHSPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;-><init>()V\nPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;-><init>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->add(I)I\nHPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->add(I)I\nHSPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->lowestOrDefault(I)I\nHPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->lowestOrDefault(I)I\nHSPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->remove(I)V\nHPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->remove(I)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->swap(II)V\nPLandroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap;->swap(II)V\nLandroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;-><clinit>()V\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet;-><clinit>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;-><init>(JJI[I)V\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;-><init>(JJI[I)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getBelowBound$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)[I\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getBelowBound$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)[I\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getEMPTY$cp()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getEMPTY$cp()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getLowerBound$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)I\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getLowerBound$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)I\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getLowerSet$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)J\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getLowerSet$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)J\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getUpperSet$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)J\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->access$getUpperSet$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)J\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->andNot(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->andNot(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->clear(I)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->clear(I)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->get(I)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->get(I)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->iterator()Ljava/util/Iterator;\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->iterator()Ljava/util/Iterator;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->lowest(I)I\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->lowest(I)I\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->or(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->or(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->set(I)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->set(I)Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotIdSet;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/snapshots/SnapshotKt;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;-><clinit>()V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;-><clinit>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$advanceGlobalSnapshot()V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$advanceGlobalSnapshot()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$advanceGlobalSnapshot(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$advanceGlobalSnapshot(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$checkAndOverwriteUnusedRecordsLocked()V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$checkAndOverwriteUnusedRecordsLocked()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getApplyObservers$p()Ljava/util/List;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getApplyObservers$p()Ljava/util/List;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getCurrentGlobalSnapshot$p()Ljava/util/concurrent/atomic/AtomicReference;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getCurrentGlobalSnapshot$p()Ljava/util/concurrent/atomic/AtomicReference;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getEmptyLambda$p()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getEmptyLambda$p()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getGlobalWriteObservers$p()Ljava/util/List;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getGlobalWriteObservers$p()Ljava/util/List;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getNextSnapshotId$p()I\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getNextSnapshotId$p()I\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getOpenSnapshots$p()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getOpenSnapshots$p()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getThreadSnapshot$p()Landroidx/compose/runtime/SnapshotThreadLocal;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$getThreadSnapshot$p()Landroidx/compose/runtime/SnapshotThreadLocal;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$mergedReadObserver(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Z)Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$mergedReadObserver(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Z)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$mergedWriteObserver(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$mergedWriteObserver(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$optimisticMerges(Landroidx/compose/runtime/snapshots/MutableSnapshot;Landroidx/compose/runtime/snapshots/MutableSnapshot;Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Ljava/util/HashMap;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$optimisticMerges(Landroidx/compose/runtime/snapshots/MutableSnapshot;Landroidx/compose/runtime/snapshots/MutableSnapshot;Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Ljava/util/HashMap;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$processForUnusedRecordsLocked(Landroidx/compose/runtime/snapshots/StateObject;)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$processForUnusedRecordsLocked(Landroidx/compose/runtime/snapshots/StateObject;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$readable(Landroidx/compose/runtime/snapshots/StateRecord;ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$readable(Landroidx/compose/runtime/snapshots/StateRecord;ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setApplyObservers$p(Ljava/util/List;)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setApplyObservers$p(Ljava/util/List;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setGlobalWriteObservers$p(Ljava/util/List;)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setGlobalWriteObservers$p(Ljava/util/List;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setNextSnapshotId$p(I)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setNextSnapshotId$p(I)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setOpenSnapshots$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$setOpenSnapshots$p(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$takeNewGlobalSnapshot(Landroidx/compose/runtime/snapshots/GlobalSnapshot;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$takeNewGlobalSnapshot(Landroidx/compose/runtime/snapshots/GlobalSnapshot;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$takeNewSnapshot(Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$takeNewSnapshot(Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$validateOpen(Landroidx/compose/runtime/snapshots/Snapshot;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->access$validateOpen(Landroidx/compose/runtime/snapshots/Snapshot;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->advanceGlobalSnapshot(Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->advanceGlobalSnapshot(Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->checkAndOverwriteUnusedRecordsLocked()V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->checkAndOverwriteUnusedRecordsLocked()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->createTransparentSnapshotWithNoParentReadObserver$default(Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->createTransparentSnapshotWithNoParentReadObserver$default(Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->createTransparentSnapshotWithNoParentReadObserver(Landroidx/compose/runtime/snapshots/Snapshot;Lkotlin/jvm/functions/Function1;Z)Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->createTransparentSnapshotWithNoParentReadObserver(Landroidx/compose/runtime/snapshots/Snapshot;Lkotlin/jvm/functions/Function1;Z)Landroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->current(Landroidx/compose/runtime/snapshots/StateRecord;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->current(Landroidx/compose/runtime/snapshots/StateRecord;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->current(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->current(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->currentSnapshot()Landroidx/compose/runtime/snapshots/Snapshot;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->currentSnapshot()Landroidx/compose/runtime/snapshots/Snapshot;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->getLock()Ljava/lang/Object;\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->getLock()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->mergedReadObserver$default(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->mergedReadObserver$default(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->newOverwritableRecordLocked(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->newOverwritableRecordLocked(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->newWritableRecord(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->newWritableRecord(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->notifyWrite(Landroidx/compose/runtime/snapshots/Snapshot;Landroidx/compose/runtime/snapshots/StateObject;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->notifyWrite(Landroidx/compose/runtime/snapshots/Snapshot;Landroidx/compose/runtime/snapshots/StateObject;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->overwritableRecord(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;Landroidx/compose/runtime/snapshots/Snapshot;Landroidx/compose/runtime/snapshots/StateRecord;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->overwritableRecord(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;Landroidx/compose/runtime/snapshots/Snapshot;Landroidx/compose/runtime/snapshots/StateRecord;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->overwriteUnusedRecordsLocked(Landroidx/compose/runtime/snapshots/StateObject;)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->overwriteUnusedRecordsLocked(Landroidx/compose/runtime/snapshots/StateObject;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->readable(Landroidx/compose/runtime/snapshots/StateRecord;ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->readable(Landroidx/compose/runtime/snapshots/StateRecord;ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->readable(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->readable(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;)Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->releasePinningLocked(I)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt;->releasePinningLocked(I)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->takeNewGlobalSnapshot(Landroidx/compose/runtime/snapshots/Snapshot;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->takeNewGlobalSnapshot(Landroidx/compose/runtime/snapshots/Snapshot;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->trackPinning(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)I\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->trackPinning(ILandroidx/compose/runtime/snapshots/SnapshotIdSet;)I\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt;->writableRecord(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt;->writableRecord(Landroidx/compose/runtime/snapshots/StateRecord;Landroidx/compose/runtime/snapshots/StateObject;Landroidx/compose/runtime/snapshots/Snapshot;)Landroidx/compose/runtime/snapshots/StateRecord;\nLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;-><clinit>()V\nPLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;-><clinit>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;-><init>(I)V\nPLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;-><init>(I)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;I)V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;I)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;->invoke(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1;->invoke(Ljava/lang/Object;)V\nLandroidx/compose/runtime/snapshots/SnapshotKt$takeNewSnapshot$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$takeNewSnapshot$1;-><init>(ILkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotKt$takeNewSnapshot$1;-><init>(ILkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotKt$takeNewSnapshot$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotKt$takeNewSnapshot$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/snapshots/SnapshotMutableState;\nLandroidx/compose/runtime/snapshots/SnapshotStateList;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;-><init>()V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;-><init>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->add(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->add(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->addAll(Ljava/util/Collection;)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->addAll(Ljava/util/Collection;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->clear()V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->clear()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->contains(Ljava/lang/Object;)Z\nPLandroidx/compose/runtime/snapshots/SnapshotStateList;->contains(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->get(I)Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->get(I)Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->getFirstStateRecord()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->getModification$runtime_release()I\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->getModification$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->getReadable$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->getReadable$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->isEmpty()Z\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->isEmpty()Z\nPLandroidx/compose/runtime/snapshots/SnapshotStateList;->iterator()Ljava/util/Iterator;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->listIterator()Ljava/util/ListIterator;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->listIterator()Ljava/util/ListIterator;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->prependStateRecord(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->remove(Ljava/lang/Object;)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->remove(Ljava/lang/Object;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList;->size()I\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList;->size()I\nPLandroidx/compose/runtime/snapshots/SnapshotStateList;->toArray()[Ljava/lang/Object;\nLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;-><init>(Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->assign(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->create()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->getList$runtime_release()Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->getList$runtime_release()Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->getModification$runtime_release()I\nHPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->getModification$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->setList$runtime_release(Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->setList$runtime_release(Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentList;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->setModification$runtime_release(I)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateList$StateListStateRecord;->setModification$runtime_release(I)V\nLandroidx/compose/runtime/snapshots/SnapshotStateListKt;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateListKt;-><clinit>()V\nPLandroidx/compose/runtime/snapshots/SnapshotStateListKt;-><clinit>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateListKt;->access$getSync$p()Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateListKt;->access$getSync$p()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateListKt;->access$validateRange(II)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateListKt;->access$validateRange(II)V\nLandroidx/compose/runtime/snapshots/SnapshotStateObserver;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$addChanges(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;Ljava/util/Set;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$addChanges(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;Ljava/util/Set;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$drainChanges(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$drainChanges(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$getCurrentMap$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$getCurrentMap$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$getObservedScopeMaps$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Landroidx/compose/runtime/collection/MutableVector;\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$getObservedScopeMaps$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$getSendingNotifications$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Z\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$getSendingNotifications$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$isPaused$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Z\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$isPaused$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$sendNotifications(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$sendNotifications(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$setSendingNotifications$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;Z)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->access$setSendingNotifications$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;Z)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->clear()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->clearIf(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->clearIf(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->observeReads(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->observeReads(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->start()V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->start()V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver;->stop()V\nLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;-><init>(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->access$getDeriveStateScopeCount$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;)I\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->access$getDeriveStateScopeCount$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;)I\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->access$setDeriveStateScopeCount$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;I)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->access$setDeriveStateScopeCount$p(Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;I)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->clear()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->getOnChanged()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->getOnChanged()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->notifyInvalidatedScopes()V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->notifyInvalidatedScopes()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->observe(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->observe(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->recordInvalidation(Ljava/util/Set;)Z\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->recordInvalidation(Ljava/util/Set;)Z\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->recordRead(Ljava/lang/Object;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->recordRead(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->recordRead(Ljava/lang/Object;ILjava/lang/Object;Landroidx/compose/runtime/collection/IdentityArrayIntMap;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->recordRead(Ljava/lang/Object;ILjava/lang/Object;Landroidx/compose/runtime/collection/IdentityArrayIntMap;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->removeObservation(Ljava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->removeObservation(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->removeScopeIf(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;->removeScopeIf(Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;->done()V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;->done()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;->start()V\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$ObservedScopeMap$derivedStateObserver$1;->start()V\nLandroidx/compose/runtime/snapshots/SnapshotStateObserver$applyObserver$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$applyObserver$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$applyObserver$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$applyObserver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$applyObserver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/runtime/snapshots/SnapshotStateObserver$sendNotifications$1;\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$sendNotifications$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)V\nPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$sendNotifications$1;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateObserver;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$sendNotifications$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/SnapshotStateObserver$sendNotifications$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/runtime/snapshots/SnapshotWeakSet;\nHSPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;-><init>()V\nPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;-><init>()V\nHSPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->add(Ljava/lang/Object;)V\nPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->add(Ljava/lang/Object;)V\nHSPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->getHashes$runtime_release()[I\nPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->getHashes$runtime_release()[I\nHSPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->getSize$runtime_release()I\nPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->getSize$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->getValues$runtime_release()[Landroidx/compose/runtime/WeakReference;\nPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->getValues$runtime_release()[Landroidx/compose/runtime/WeakReference;\nHSPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->setSize$runtime_release(I)V\nPLandroidx/compose/runtime/snapshots/SnapshotWeakSet;->setSize$runtime_release(I)V\nLandroidx/compose/runtime/snapshots/StateListIterator;\nHSPLandroidx/compose/runtime/snapshots/StateListIterator;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateList;I)V\nHPLandroidx/compose/runtime/snapshots/StateListIterator;-><init>(Landroidx/compose/runtime/snapshots/SnapshotStateList;I)V\nHSPLandroidx/compose/runtime/snapshots/StateListIterator;->hasNext()Z\nHPLandroidx/compose/runtime/snapshots/StateListIterator;->hasNext()Z\nHSPLandroidx/compose/runtime/snapshots/StateListIterator;->next()Ljava/lang/Object;\nHPLandroidx/compose/runtime/snapshots/StateListIterator;->next()Ljava/lang/Object;\nHSPLandroidx/compose/runtime/snapshots/StateListIterator;->validateModification()V\nHPLandroidx/compose/runtime/snapshots/StateListIterator;->validateModification()V\nLandroidx/compose/runtime/snapshots/StateObject;\nLandroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/StateRecord;-><init>()V\nHPLandroidx/compose/runtime/snapshots/StateRecord;-><init>()V\nHSPLandroidx/compose/runtime/snapshots/StateRecord;->getNext$runtime_release()Landroidx/compose/runtime/snapshots/StateRecord;\nHPLandroidx/compose/runtime/snapshots/StateRecord;->getNext$runtime_release()Landroidx/compose/runtime/snapshots/StateRecord;\nHSPLandroidx/compose/runtime/snapshots/StateRecord;->getSnapshotId$runtime_release()I\nHPLandroidx/compose/runtime/snapshots/StateRecord;->getSnapshotId$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/StateRecord;->setNext$runtime_release(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHPLandroidx/compose/runtime/snapshots/StateRecord;->setNext$runtime_release(Landroidx/compose/runtime/snapshots/StateRecord;)V\nHSPLandroidx/compose/runtime/snapshots/StateRecord;->setSnapshotId$runtime_release(I)V\nHPLandroidx/compose/runtime/snapshots/StateRecord;->setSnapshotId$runtime_release(I)V\nLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;-><init>(Landroidx/compose/runtime/snapshots/MutableSnapshot;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ZZ)V\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;-><init>(Landroidx/compose/runtime/snapshots/MutableSnapshot;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ZZ)V\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->apply()Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->apply()Landroidx/compose/runtime/snapshots/Snapshot$Companion;\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->dispose()V\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->dispose()V\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getCurrentSnapshot()Landroidx/compose/runtime/snapshots/MutableSnapshot;\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getCurrentSnapshot()Landroidx/compose/runtime/snapshots/MutableSnapshot;\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getId()I\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getId()I\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getInvalid$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getInvalid$runtime_release()Landroidx/compose/runtime/snapshots/SnapshotIdSet;\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getReadOnly()Z\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getReadOnly()Z\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getWriteCount$runtime_release()I\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->getWriteCount$runtime_release()I\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->notifyObjectsInitialized$runtime_release()V\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->notifyObjectsInitialized$runtime_release()V\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->recordModified$runtime_release(Landroidx/compose/runtime/snapshots/StateObject;)V\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->recordModified$runtime_release(Landroidx/compose/runtime/snapshots/StateObject;)V\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->setWriteCount$runtime_release(I)V\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->setWriteCount$runtime_release(I)V\nHSPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->takeNestedMutableSnapshot(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/MutableSnapshot;\nHPLandroidx/compose/runtime/snapshots/TransparentObserverMutableSnapshot;->takeNestedMutableSnapshot(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/snapshots/MutableSnapshot;\nLandroidx/compose/runtime/snapshots/TransparentObserverSnapshot;\nLandroidx/compose/runtime/tooling/InspectionTablesKt;\nHSPLandroidx/compose/runtime/tooling/InspectionTablesKt;-><clinit>()V\nPLandroidx/compose/runtime/tooling/InspectionTablesKt;-><clinit>()V\nHSPLandroidx/compose/runtime/tooling/InspectionTablesKt;->getLocalInspectionTables()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/runtime/tooling/InspectionTablesKt;->getLocalInspectionTables()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;\nHSPLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;-><clinit>()V\nPLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;-><clinit>()V\nHSPLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;-><init>()V\nPLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;-><init>()V\nHSPLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/runtime/tooling/InspectionTablesKt$LocalInspectionTables$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/ActualKt;\nHSPLandroidx/compose/ui/ActualKt;->composed$default(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/ActualKt;->composed$default(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/ActualKt;->composed(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/ActualKt;->composed(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/ActualKt;->materializeModifier(Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/ActualKt;->materializeModifier(Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/Alignment;\nLandroidx/compose/ui/Alignment$Companion;\nHSPLandroidx/compose/ui/Alignment$Companion;-><clinit>()V\nPLandroidx/compose/ui/Alignment$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/Alignment$Companion;->getBottom()Landroidx/compose/ui/BiasAlignment$Vertical;\nPLandroidx/compose/ui/Alignment$Companion;->getBottom()Landroidx/compose/ui/BiasAlignment$Vertical;\nHSPLandroidx/compose/ui/Alignment$Companion;->getBottomCenter()Landroidx/compose/ui/BiasAlignment;\nPLandroidx/compose/ui/Alignment$Companion;->getBottomCenter()Landroidx/compose/ui/BiasAlignment;\nHSPLandroidx/compose/ui/Alignment$Companion;->getCenter()Landroidx/compose/ui/BiasAlignment;\nPLandroidx/compose/ui/Alignment$Companion;->getCenter()Landroidx/compose/ui/BiasAlignment;\nHSPLandroidx/compose/ui/Alignment$Companion;->getCenterHorizontally()Landroidx/compose/ui/BiasAlignment$Horizontal;\nPLandroidx/compose/ui/Alignment$Companion;->getCenterHorizontally()Landroidx/compose/ui/BiasAlignment$Horizontal;\nHSPLandroidx/compose/ui/Alignment$Companion;->getCenterStart()Landroidx/compose/ui/BiasAlignment;\nPLandroidx/compose/ui/Alignment$Companion;->getCenterStart()Landroidx/compose/ui/BiasAlignment;\nHSPLandroidx/compose/ui/Alignment$Companion;->getCenterVertically()Landroidx/compose/ui/BiasAlignment$Vertical;\nPLandroidx/compose/ui/Alignment$Companion;->getCenterVertically()Landroidx/compose/ui/BiasAlignment$Vertical;\nHSPLandroidx/compose/ui/Alignment$Companion;->getStart()Landroidx/compose/ui/BiasAlignment$Horizontal;\nPLandroidx/compose/ui/Alignment$Companion;->getStart()Landroidx/compose/ui/BiasAlignment$Horizontal;\nHSPLandroidx/compose/ui/Alignment$Companion;->getTop()Landroidx/compose/ui/BiasAlignment$Vertical;\nPLandroidx/compose/ui/Alignment$Companion;->getTop()Landroidx/compose/ui/BiasAlignment$Vertical;\nHSPLandroidx/compose/ui/Alignment$Companion;->getTopStart()Landroidx/compose/ui/BiasAlignment;\nHPLandroidx/compose/ui/Alignment$Companion;->getTopStart()Landroidx/compose/ui/BiasAlignment;\nLandroidx/compose/ui/Alignment$Horizontal;\nLandroidx/compose/ui/Alignment$Vertical;\nLandroidx/compose/ui/BiasAlignment;\nHSPLandroidx/compose/ui/BiasAlignment;-><init>(FF)V\nPLandroidx/compose/ui/BiasAlignment;-><init>(FF)V\nHSPLandroidx/compose/ui/BiasAlignment;->align-KFBX0sM(JJLandroidx/compose/ui/unit/LayoutDirection;)J\nHPLandroidx/compose/ui/BiasAlignment;->align-KFBX0sM(JJLandroidx/compose/ui/unit/LayoutDirection;)J\nHSPLandroidx/compose/ui/BiasAlignment;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/BiasAlignment;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/BiasAlignment$Horizontal;\nHSPLandroidx/compose/ui/BiasAlignment$Horizontal;-><init>(F)V\nPLandroidx/compose/ui/BiasAlignment$Horizontal;-><init>(F)V\nHSPLandroidx/compose/ui/BiasAlignment$Horizontal;->align(IILandroidx/compose/ui/unit/LayoutDirection;)I\nHPLandroidx/compose/ui/BiasAlignment$Horizontal;->align(IILandroidx/compose/ui/unit/LayoutDirection;)I\nHSPLandroidx/compose/ui/BiasAlignment$Horizontal;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/BiasAlignment$Horizontal;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/BiasAlignment$Vertical;\nHSPLandroidx/compose/ui/BiasAlignment$Vertical;-><init>(F)V\nPLandroidx/compose/ui/BiasAlignment$Vertical;-><init>(F)V\nHSPLandroidx/compose/ui/BiasAlignment$Vertical;->align(II)I\nHPLandroidx/compose/ui/BiasAlignment$Vertical;->align(II)I\nHSPLandroidx/compose/ui/BiasAlignment$Vertical;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/BiasAlignment$Vertical;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/CombinedModifier;\nHSPLandroidx/compose/ui/CombinedModifier;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/Modifier;)V\nHPLandroidx/compose/ui/CombinedModifier;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/Modifier;)V\nHSPLandroidx/compose/ui/CombinedModifier;->all(Lkotlin/jvm/functions/Function1;)Z\nHPLandroidx/compose/ui/CombinedModifier;->all(Lkotlin/jvm/functions/Function1;)Z\nHSPLandroidx/compose/ui/CombinedModifier;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/CombinedModifier;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/CombinedModifier;->foldIn(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLandroidx/compose/ui/CombinedModifier;->foldIn(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/CombinedModifier;->getInner$ui_release()Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/CombinedModifier;->getInner$ui_release()Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/CombinedModifier;->getOuter$ui_release()Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/CombinedModifier;->getOuter$ui_release()Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/ComposedModifier;\nHSPLandroidx/compose/ui/ComposedModifier;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)V\nHPLandroidx/compose/ui/ComposedModifier;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)V\nHSPLandroidx/compose/ui/ComposedModifier;->getFactory()Lkotlin/jvm/functions/Function3;\nPLandroidx/compose/ui/ComposedModifier;->getFactory()Lkotlin/jvm/functions/Function3;\nLandroidx/compose/ui/ComposedModifierKt$materialize$1;\nHSPLandroidx/compose/ui/ComposedModifierKt$materialize$1;-><clinit>()V\nPLandroidx/compose/ui/ComposedModifierKt$materialize$1;-><clinit>()V\nHSPLandroidx/compose/ui/ComposedModifierKt$materialize$1;-><init>()V\nPLandroidx/compose/ui/ComposedModifierKt$materialize$1;-><init>()V\nHSPLandroidx/compose/ui/ComposedModifierKt$materialize$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/ComposedModifierKt$materialize$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/ComposedModifierKt$materialize$result$1;\nHSPLandroidx/compose/ui/ComposedModifierKt$materialize$result$1;-><init>(Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/ui/ComposedModifierKt$materialize$result$1;-><init>(Landroidx/compose/runtime/Composer;)V\nHSPLandroidx/compose/ui/ComposedModifierKt$materialize$result$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/ComposedModifierKt$materialize$result$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/CompositionLocalMapInjectionElement;\nLandroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/Modifier;-><clinit>()V\nPLandroidx/compose/ui/Modifier;-><clinit>()V\nHSPLandroidx/compose/ui/Modifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/Modifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/Modifier$Companion;\nHSPLandroidx/compose/ui/Modifier$Companion;-><clinit>()V\nPLandroidx/compose/ui/Modifier$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/Modifier$Companion;-><init>()V\nPLandroidx/compose/ui/Modifier$Companion;-><init>()V\nHSPLandroidx/compose/ui/Modifier$Companion;->all(Lkotlin/jvm/functions/Function1;)Z\nHPLandroidx/compose/ui/Modifier$Companion;->all(Lkotlin/jvm/functions/Function1;)Z\nHSPLandroidx/compose/ui/Modifier$Companion;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/Modifier$Companion;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/Modifier$Element;\nHSPLandroidx/compose/ui/Modifier$Element;->all(Lkotlin/jvm/functions/Function1;)Z\nHPLandroidx/compose/ui/Modifier$Element;->all(Lkotlin/jvm/functions/Function1;)Z\nHSPLandroidx/compose/ui/Modifier$Element;->foldIn(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLandroidx/compose/ui/Modifier$Element;->foldIn(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nLandroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/Modifier$Node;-><init>()V\nHPLandroidx/compose/ui/Modifier$Node;-><init>()V\nHSPLandroidx/compose/ui/Modifier$Node;->getAggregateChildKindSet$ui_release()I\nHPLandroidx/compose/ui/Modifier$Node;->getAggregateChildKindSet$ui_release()I\nHSPLandroidx/compose/ui/Modifier$Node;->getChild$ui_release()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/Modifier$Node;->getChild$ui_release()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/Modifier$Node;->getCoordinator$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/Modifier$Node;->getCoordinator$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/Modifier$Node;->getCoroutineScope()Lkotlinx/coroutines/CoroutineScope;\nHPLandroidx/compose/ui/Modifier$Node;->getCoroutineScope()Lkotlinx/coroutines/CoroutineScope;\nHSPLandroidx/compose/ui/Modifier$Node;->getInsertedNodeAwaitingAttachForInvalidation$ui_release()Z\nPLandroidx/compose/ui/Modifier$Node;->getInsertedNodeAwaitingAttachForInvalidation$ui_release()Z\nHSPLandroidx/compose/ui/Modifier$Node;->getKindSet$ui_release()I\nHPLandroidx/compose/ui/Modifier$Node;->getKindSet$ui_release()I\nHSPLandroidx/compose/ui/Modifier$Node;->getNode()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/Modifier$Node;->getNode()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/Modifier$Node;->getOwnerScope$ui_release()Landroidx/compose/ui/node/ObserverNodeOwnerScope;\nPLandroidx/compose/ui/Modifier$Node;->getOwnerScope$ui_release()Landroidx/compose/ui/node/ObserverNodeOwnerScope;\nHSPLandroidx/compose/ui/Modifier$Node;->getParent$ui_release()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/Modifier$Node;->getParent$ui_release()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/Modifier$Node;->getShouldAutoInvalidate()Z\nHPLandroidx/compose/ui/Modifier$Node;->getShouldAutoInvalidate()Z\nHSPLandroidx/compose/ui/Modifier$Node;->getUpdatedNodeAwaitingAttachForInvalidation$ui_release()Z\nPLandroidx/compose/ui/Modifier$Node;->getUpdatedNodeAwaitingAttachForInvalidation$ui_release()Z\nHSPLandroidx/compose/ui/Modifier$Node;->isAttached()Z\nHPLandroidx/compose/ui/Modifier$Node;->isAttached()Z\nHSPLandroidx/compose/ui/Modifier$Node;->isValidOwnerScope()Z\nPLandroidx/compose/ui/Modifier$Node;->isValidOwnerScope()Z\nHSPLandroidx/compose/ui/Modifier$Node;->markAsAttached$ui_release()V\nHPLandroidx/compose/ui/Modifier$Node;->markAsAttached$ui_release()V\nHSPLandroidx/compose/ui/Modifier$Node;->markAsDetached$ui_release()V\nHPLandroidx/compose/ui/Modifier$Node;->markAsDetached$ui_release()V\nHSPLandroidx/compose/ui/Modifier$Node;->onAttach()V\nHPLandroidx/compose/ui/Modifier$Node;->onAttach()V\nHSPLandroidx/compose/ui/Modifier$Node;->onDetach()V\nHPLandroidx/compose/ui/Modifier$Node;->onDetach()V\nHSPLandroidx/compose/ui/Modifier$Node;->runAttachLifecycle$ui_release()V\nHPLandroidx/compose/ui/Modifier$Node;->runAttachLifecycle$ui_release()V\nHSPLandroidx/compose/ui/Modifier$Node;->runDetachLifecycle$ui_release()V\nHPLandroidx/compose/ui/Modifier$Node;->runDetachLifecycle$ui_release()V\nHSPLandroidx/compose/ui/Modifier$Node;->setAggregateChildKindSet$ui_release(I)V\nPLandroidx/compose/ui/Modifier$Node;->setAggregateChildKindSet$ui_release(I)V\nHSPLandroidx/compose/ui/Modifier$Node;->setAsDelegateTo$ui_release(Landroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/ui/Modifier$Node;->setAsDelegateTo$ui_release(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/Modifier$Node;->setChild$ui_release(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/Modifier$Node;->setChild$ui_release(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/Modifier$Node;->setInsertedNodeAwaitingAttachForInvalidation$ui_release(Z)V\nHPLandroidx/compose/ui/Modifier$Node;->setInsertedNodeAwaitingAttachForInvalidation$ui_release(Z)V\nHSPLandroidx/compose/ui/Modifier$Node;->setKindSet$ui_release(I)V\nPLandroidx/compose/ui/Modifier$Node;->setKindSet$ui_release(I)V\nHSPLandroidx/compose/ui/Modifier$Node;->setOwnerScope$ui_release(Landroidx/compose/ui/node/ObserverNodeOwnerScope;)V\nPLandroidx/compose/ui/Modifier$Node;->setOwnerScope$ui_release(Landroidx/compose/ui/node/ObserverNodeOwnerScope;)V\nHSPLandroidx/compose/ui/Modifier$Node;->setParent$ui_release(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/Modifier$Node;->setParent$ui_release(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/Modifier$Node;->setUpdatedNodeAwaitingAttachForInvalidation$ui_release(Z)V\nPLandroidx/compose/ui/Modifier$Node;->setUpdatedNodeAwaitingAttachForInvalidation$ui_release(Z)V\nHSPLandroidx/compose/ui/Modifier$Node;->updateCoordinator$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/Modifier$Node;->updateCoordinator$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nLandroidx/compose/ui/ModifierNodeDetachedCancellationException;\nHSPLandroidx/compose/ui/ModifierNodeDetachedCancellationException;-><init>()V\nPLandroidx/compose/ui/ModifierNodeDetachedCancellationException;-><init>()V\nHSPLandroidx/compose/ui/ModifierNodeDetachedCancellationException;->fillInStackTrace()Ljava/lang/Throwable;\nPLandroidx/compose/ui/ModifierNodeDetachedCancellationException;->fillInStackTrace()Ljava/lang/Throwable;\nLandroidx/compose/ui/MotionDurationScale;\nHSPLandroidx/compose/ui/MotionDurationScale;-><clinit>()V\nPLandroidx/compose/ui/MotionDurationScale;-><clinit>()V\nHSPLandroidx/compose/ui/MotionDurationScale;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nHPLandroidx/compose/ui/MotionDurationScale;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nLandroidx/compose/ui/MotionDurationScale$Key;\nHSPLandroidx/compose/ui/MotionDurationScale$Key;-><clinit>()V\nPLandroidx/compose/ui/MotionDurationScale$Key;-><clinit>()V\nHSPLandroidx/compose/ui/MotionDurationScale$Key;-><init>()V\nPLandroidx/compose/ui/MotionDurationScale$Key;-><init>()V\nLandroidx/compose/ui/TempListUtilsKt;\nHSPLandroidx/compose/ui/TempListUtilsKt;->fastJoinToString$default(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;\nHPLandroidx/compose/ui/TempListUtilsKt;->fastJoinToString$default(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;\nLandroidx/compose/ui/autofill/AndroidAutofill;\nHSPLandroidx/compose/ui/autofill/AndroidAutofill;-><init>(Landroid/view/View;Landroidx/compose/ui/autofill/AutofillTree;)V\nPLandroidx/compose/ui/autofill/AndroidAutofill;-><init>(Landroid/view/View;Landroidx/compose/ui/autofill/AutofillTree;)V\nHSPLandroidx/compose/ui/autofill/AndroidAutofill;->getAutofillManager()Landroid/view/autofill/AutofillManager;\nPLandroidx/compose/ui/autofill/AndroidAutofill;->getAutofillManager()Landroid/view/autofill/AutofillManager;\nLandroidx/compose/ui/autofill/AutofillCallback;\nHSPLandroidx/compose/ui/autofill/AutofillCallback;-><clinit>()V\nPLandroidx/compose/ui/autofill/AutofillCallback;-><clinit>()V\nHSPLandroidx/compose/ui/autofill/AutofillCallback;-><init>()V\nPLandroidx/compose/ui/autofill/AutofillCallback;-><init>()V\nHSPLandroidx/compose/ui/autofill/AutofillCallback;->register(Landroidx/compose/ui/autofill/AndroidAutofill;)V\nPLandroidx/compose/ui/autofill/AutofillCallback;->register(Landroidx/compose/ui/autofill/AndroidAutofill;)V\nPLandroidx/compose/ui/autofill/AutofillCallback;->unregister(Landroidx/compose/ui/autofill/AndroidAutofill;)V\nLandroidx/compose/ui/autofill/AutofillTree;\nHSPLandroidx/compose/ui/autofill/AutofillTree;-><init>()V\nPLandroidx/compose/ui/autofill/AutofillTree;-><init>()V\nLandroidx/compose/ui/draw/BlurKt;\nHSPLandroidx/compose/ui/draw/BlurKt;->CacheDrawModifierNode(Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/draw/CacheDrawModifierNode;\nPLandroidx/compose/ui/draw/BlurKt;->CacheDrawModifierNode(Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/draw/CacheDrawModifierNode;\nHSPLandroidx/compose/ui/draw/BlurKt;->alpha(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/draw/BlurKt;->alpha(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/draw/BlurKt;->clip(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/draw/BlurKt;->clip(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/draw/BlurKt;->clipToBounds(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/draw/BlurKt;->clipToBounds(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/draw/BlurKt;->drawBehind(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/draw/BlurKt;->drawBehind(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/draw/BlurKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/draw/BlurKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/draw/BlurKt;->paint$default(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/Alignment;Landroidx/compose/ui/layout/ContentScale;FLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/draw/BlurKt;->paint$default(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/Alignment;Landroidx/compose/ui/layout/ContentScale;FLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/draw/BlurKt;->shadow-s4CzXII$default(Landroidx/compose/ui/Modifier;FLandroidx/compose/ui/graphics/Shape;Z)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/draw/BlurKt;->shadow-s4CzXII$default(Landroidx/compose/ui/Modifier;FLandroidx/compose/ui/graphics/Shape;Z)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/draw/BuildDrawCacheParams;\nLandroidx/compose/ui/draw/CacheDrawModifierNode;\nLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;-><init>(Landroidx/compose/ui/draw/CacheDrawScope;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;-><init>(Landroidx/compose/ui/draw/CacheDrawScope;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getBlock()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getBlock()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getDensity()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getDensity()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getSize-NH-jbRc()J\nHPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->getSize-NH-jbRc()J\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->invalidateDrawCache()V\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->invalidateDrawCache()V\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->onMeasureResultChanged()V\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl;->onMeasureResultChanged()V\nLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl$getOrBuildCachedDrawBlock$1$1;\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl$getOrBuildCachedDrawBlock$1$1;-><init>(Landroidx/compose/ui/draw/CacheDrawModifierNodeImpl;Landroidx/compose/ui/draw/CacheDrawScope;)V\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl$getOrBuildCachedDrawBlock$1$1;-><init>(Landroidx/compose/ui/draw/CacheDrawModifierNodeImpl;Landroidx/compose/ui/draw/CacheDrawScope;)V\nHSPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl$getOrBuildCachedDrawBlock$1$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/ui/draw/CacheDrawModifierNodeImpl$getOrBuildCachedDrawBlock$1$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/draw/CacheDrawScope;\nHSPLandroidx/compose/ui/draw/CacheDrawScope;-><init>()V\nPLandroidx/compose/ui/draw/CacheDrawScope;-><init>()V\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->getDensity()F\nPLandroidx/compose/ui/draw/CacheDrawScope;->getDensity()F\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->getDrawResult$ui_release()Landroidx/compose/ui/draw/DrawResult;\nPLandroidx/compose/ui/draw/CacheDrawScope;->getDrawResult$ui_release()Landroidx/compose/ui/draw/DrawResult;\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/draw/CacheDrawScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->getSize-NH-jbRc()J\nPLandroidx/compose/ui/draw/CacheDrawScope;->getSize-NH-jbRc()J\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->onDrawWithContent(Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/draw/DrawResult;\nPLandroidx/compose/ui/draw/CacheDrawScope;->onDrawWithContent(Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/draw/DrawResult;\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->setCacheParams$ui_release(Landroidx/compose/ui/draw/BuildDrawCacheParams;)V\nPLandroidx/compose/ui/draw/CacheDrawScope;->setCacheParams$ui_release(Landroidx/compose/ui/draw/BuildDrawCacheParams;)V\nHSPLandroidx/compose/ui/draw/CacheDrawScope;->setDrawResult$ui_release()V\nPLandroidx/compose/ui/draw/CacheDrawScope;->setDrawResult$ui_release()V\nLandroidx/compose/ui/draw/DrawBackgroundModifier;\nHSPLandroidx/compose/ui/draw/DrawBackgroundModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/DrawBackgroundModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/draw/DrawBackgroundModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nPLandroidx/compose/ui/draw/DrawBackgroundModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nLandroidx/compose/ui/draw/DrawBehindElement;\nHSPLandroidx/compose/ui/draw/DrawBehindElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/DrawBehindElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/draw/DrawBehindElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/draw/DrawBehindElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/ui/draw/DrawModifier;\nLandroidx/compose/ui/draw/DrawResult;\nHSPLandroidx/compose/ui/draw/DrawResult;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/DrawResult;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/draw/DrawResult;->getBlock$ui_release()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/draw/DrawResult;->getBlock$ui_release()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/ui/draw/DrawWithContentElement;\nHSPLandroidx/compose/ui/draw/DrawWithContentElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/DrawWithContentElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/draw/DrawWithContentElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/draw/DrawWithContentElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/draw/DrawWithContentElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/draw/DrawWithContentElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/draw/DrawWithContentElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/ui/draw/DrawWithContentElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/ui/draw/DrawWithContentModifier;\nHSPLandroidx/compose/ui/draw/DrawWithContentModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/DrawWithContentModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/draw/DrawWithContentModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nPLandroidx/compose/ui/draw/DrawWithContentModifier;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/ui/draw/DrawWithContentModifier;->setOnDraw(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/draw/DrawWithContentModifier;->setOnDraw(Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/draw/EmptyBuildDrawCacheParams;\nHSPLandroidx/compose/ui/draw/EmptyBuildDrawCacheParams;-><clinit>()V\nPLandroidx/compose/ui/draw/EmptyBuildDrawCacheParams;-><clinit>()V\nHSPLandroidx/compose/ui/draw/EmptyBuildDrawCacheParams;-><init>()V\nPLandroidx/compose/ui/draw/EmptyBuildDrawCacheParams;-><init>()V\nLandroidx/compose/ui/draw/PainterElement;\nHSPLandroidx/compose/ui/draw/PainterElement;-><init>(Landroidx/compose/ui/graphics/painter/Painter;ZLandroidx/compose/ui/Alignment;Landroidx/compose/ui/layout/ContentScale;FLandroidx/compose/ui/graphics/ColorFilter;)V\nPLandroidx/compose/ui/draw/PainterElement;-><init>(Landroidx/compose/ui/graphics/painter/Painter;ZLandroidx/compose/ui/Alignment;Landroidx/compose/ui/layout/ContentScale;FLandroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/draw/PainterElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/draw/PainterElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/draw/PainterElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/draw/PainterElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/draw/PainterElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/draw/PainterElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/ui/draw/PainterNode;\nHSPLandroidx/compose/ui/draw/PainterNode;-><init>(Landroidx/compose/ui/graphics/painter/Painter;ZLandroidx/compose/ui/Alignment;Landroidx/compose/ui/layout/ContentScale;FLandroidx/compose/ui/graphics/ColorFilter;)V\nHPLandroidx/compose/ui/draw/PainterNode;-><init>(Landroidx/compose/ui/graphics/painter/Painter;ZLandroidx/compose/ui/Alignment;Landroidx/compose/ui/layout/ContentScale;FLandroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/draw/PainterNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHPLandroidx/compose/ui/draw/PainterNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/ui/draw/PainterNode;->getPainter()Landroidx/compose/ui/graphics/painter/Painter;\nPLandroidx/compose/ui/draw/PainterNode;->getPainter()Landroidx/compose/ui/graphics/painter/Painter;\nHSPLandroidx/compose/ui/draw/PainterNode;->getShouldAutoInvalidate()Z\nHPLandroidx/compose/ui/draw/PainterNode;->getShouldAutoInvalidate()Z\nHSPLandroidx/compose/ui/draw/PainterNode;->getSizeToIntrinsics()Z\nPLandroidx/compose/ui/draw/PainterNode;->getSizeToIntrinsics()Z\nHSPLandroidx/compose/ui/draw/PainterNode;->getUseIntrinsicSize()Z\nPLandroidx/compose/ui/draw/PainterNode;->getUseIntrinsicSize()Z\nHSPLandroidx/compose/ui/draw/PainterNode;->hasSpecifiedAndFiniteHeight-uvyYCjk(J)Z\nHPLandroidx/compose/ui/draw/PainterNode;->hasSpecifiedAndFiniteHeight-uvyYCjk(J)Z\nHSPLandroidx/compose/ui/draw/PainterNode;->hasSpecifiedAndFiniteWidth-uvyYCjk(J)Z\nHPLandroidx/compose/ui/draw/PainterNode;->hasSpecifiedAndFiniteWidth-uvyYCjk(J)Z\nHSPLandroidx/compose/ui/draw/PainterNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/draw/PainterNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/ui/draw/PainterNode;->modifyConstraints-ZezNO4M(J)J\nHPLandroidx/compose/ui/draw/PainterNode;->modifyConstraints-ZezNO4M(J)J\nHSPLandroidx/compose/ui/draw/PainterNode;->setAlignment(Landroidx/compose/ui/Alignment;)V\nPLandroidx/compose/ui/draw/PainterNode;->setAlignment(Landroidx/compose/ui/Alignment;)V\nHSPLandroidx/compose/ui/draw/PainterNode;->setAlpha(F)V\nPLandroidx/compose/ui/draw/PainterNode;->setAlpha(F)V\nHSPLandroidx/compose/ui/draw/PainterNode;->setColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)V\nPLandroidx/compose/ui/draw/PainterNode;->setColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/draw/PainterNode;->setContentScale(Landroidx/compose/ui/layout/ContentScale;)V\nPLandroidx/compose/ui/draw/PainterNode;->setContentScale(Landroidx/compose/ui/layout/ContentScale;)V\nHSPLandroidx/compose/ui/draw/PainterNode;->setPainter(Landroidx/compose/ui/graphics/painter/Painter;)V\nPLandroidx/compose/ui/draw/PainterNode;->setPainter(Landroidx/compose/ui/graphics/painter/Painter;)V\nHSPLandroidx/compose/ui/draw/PainterNode;->setSizeToIntrinsics(Z)V\nPLandroidx/compose/ui/draw/PainterNode;->setSizeToIntrinsics(Z)V\nLandroidx/compose/ui/draw/PainterNode$measure$1;\nHSPLandroidx/compose/ui/draw/PainterNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;)V\nPLandroidx/compose/ui/draw/PainterNode$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;)V\nHSPLandroidx/compose/ui/draw/PainterNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/draw/PainterNode$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/focus/FocusEventModifierNode;\nLandroidx/compose/ui/focus/FocusInvalidationManager;\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/focus/FocusInvalidationManager;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->access$getFocusEventNodes$p(Landroidx/compose/ui/focus/FocusInvalidationManager;)Ljava/util/LinkedHashSet;\nHPLandroidx/compose/ui/focus/FocusInvalidationManager;->access$getFocusEventNodes$p(Landroidx/compose/ui/focus/FocusInvalidationManager;)Ljava/util/LinkedHashSet;\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->access$getFocusPropertiesNodes$p(Landroidx/compose/ui/focus/FocusInvalidationManager;)Ljava/util/LinkedHashSet;\nHPLandroidx/compose/ui/focus/FocusInvalidationManager;->access$getFocusPropertiesNodes$p(Landroidx/compose/ui/focus/FocusInvalidationManager;)Ljava/util/LinkedHashSet;\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->access$getFocusTargetNodes$p(Landroidx/compose/ui/focus/FocusInvalidationManager;)Ljava/util/LinkedHashSet;\nHPLandroidx/compose/ui/focus/FocusInvalidationManager;->access$getFocusTargetNodes$p(Landroidx/compose/ui/focus/FocusInvalidationManager;)Ljava/util/LinkedHashSet;\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusEventModifierNode;)V\nHPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusEventModifierNode;)V\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusPropertiesModifierNode;)V\nPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusPropertiesModifierNode;)V\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusTargetNode;)V\nPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusTargetNode;)V\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Ljava/util/LinkedHashSet;Ljava/lang/Object;)V\nHPLandroidx/compose/ui/focus/FocusInvalidationManager;->scheduleInvalidation(Ljava/util/LinkedHashSet;Ljava/lang/Object;)V\nLandroidx/compose/ui/focus/FocusInvalidationManager$invalidateNodes$1;\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager$invalidateNodes$1;-><init>(Landroidx/compose/ui/focus/FocusInvalidationManager;)V\nPLandroidx/compose/ui/focus/FocusInvalidationManager$invalidateNodes$1;-><init>(Landroidx/compose/ui/focus/FocusInvalidationManager;)V\nHSPLandroidx/compose/ui/focus/FocusInvalidationManager$invalidateNodes$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/focus/FocusInvalidationManager$invalidateNodes$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/focus/FocusModifierKt;\nHSPLandroidx/compose/ui/focus/FocusModifierKt;->getFocusState(Landroidx/compose/ui/focus/FocusEventModifierNode;)Landroidx/compose/ui/focus/FocusStateImpl;\nHPLandroidx/compose/ui/focus/FocusModifierKt;->getFocusState(Landroidx/compose/ui/focus/FocusEventModifierNode;)Landroidx/compose/ui/focus/FocusStateImpl;\nHSPLandroidx/compose/ui/focus/FocusModifierKt;->refreshFocusEventNodes(Landroidx/compose/ui/focus/FocusTargetNode;)V\nHPLandroidx/compose/ui/focus/FocusModifierKt;->refreshFocusEventNodes(Landroidx/compose/ui/focus/FocusTargetNode;)V\nLandroidx/compose/ui/focus/FocusOwner;\nLandroidx/compose/ui/focus/FocusOwnerImpl;\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/focus/FocusOwnerImpl;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;->getFocusTransactionManager()Landroidx/compose/ui/focus/FocusTransactionManager;\nPLandroidx/compose/ui/focus/FocusOwnerImpl;->getFocusTransactionManager()Landroidx/compose/ui/focus/FocusTransactionManager;\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;->getModifier()Landroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;\nPLandroidx/compose/ui/focus/FocusOwnerImpl;->getModifier()Landroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;->getRootFocusNode$ui_release()Landroidx/compose/ui/focus/FocusTargetNode;\nPLandroidx/compose/ui/focus/FocusOwnerImpl;->getRootFocusNode$ui_release()Landroidx/compose/ui/focus/FocusTargetNode;\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusEventModifierNode;)V\nHPLandroidx/compose/ui/focus/FocusOwnerImpl;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusEventModifierNode;)V\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusPropertiesModifierNode;)V\nPLandroidx/compose/ui/focus/FocusOwnerImpl;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusPropertiesModifierNode;)V\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusTargetNode;)V\nPLandroidx/compose/ui/focus/FocusOwnerImpl;->scheduleInvalidation(Landroidx/compose/ui/focus/FocusTargetNode;)V\nLandroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;-><init>(Landroidx/compose/ui/focus/FocusOwnerImpl;)V\nPLandroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;-><init>(Landroidx/compose/ui/focus/FocusOwnerImpl;)V\nHSPLandroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/focus/FocusOwnerImpl$modifier$1;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/ui/focus/FocusProperties;\nLandroidx/compose/ui/focus/FocusPropertiesModifierNode;\nLandroidx/compose/ui/focus/FocusRequester;\nHSPLandroidx/compose/ui/focus/FocusRequester;-><clinit>()V\nPLandroidx/compose/ui/focus/FocusRequester;-><clinit>()V\nHSPLandroidx/compose/ui/focus/FocusRequester;-><init>()V\nPLandroidx/compose/ui/focus/FocusRequester;-><init>()V\nLandroidx/compose/ui/focus/FocusRequesterModifierNode;\nLandroidx/compose/ui/focus/FocusState;\nLandroidx/compose/ui/focus/FocusStateImpl;\nHSPLandroidx/compose/ui/focus/FocusStateImpl;-><clinit>()V\nPLandroidx/compose/ui/focus/FocusStateImpl;-><clinit>()V\nHSPLandroidx/compose/ui/focus/FocusStateImpl;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/ui/focus/FocusStateImpl;-><init>(Ljava/lang/String;I)V\nHSPLandroidx/compose/ui/focus/FocusStateImpl;->isFocused()Z\nHPLandroidx/compose/ui/focus/FocusStateImpl;->isFocused()Z\nLandroidx/compose/ui/focus/FocusTargetNode;\nHSPLandroidx/compose/ui/focus/FocusTargetNode;-><init>()V\nHPLandroidx/compose/ui/focus/FocusTargetNode;-><init>()V\nHSPLandroidx/compose/ui/focus/FocusTargetNode;->getFocusState()Landroidx/compose/ui/focus/FocusStateImpl;\nHPLandroidx/compose/ui/focus/FocusTargetNode;->getFocusState()Landroidx/compose/ui/focus/FocusStateImpl;\nHSPLandroidx/compose/ui/focus/FocusTargetNode;->invalidateFocus$ui_release()V\nHPLandroidx/compose/ui/focus/FocusTargetNode;->invalidateFocus$ui_release()V\nLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;\nHSPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;-><clinit>()V\nPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;-><clinit>()V\nHSPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;-><init>()V\nPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;-><init>()V\nHSPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/focus/FocusTargetNode$FocusTargetElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/focus/FocusTransactionManager;\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;-><init>()V\nPLandroidx/compose/ui/focus/FocusTransactionManager;-><init>()V\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;-><init>(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/input/pointer/PointerInputEvent;)V\nHPLandroidx/compose/ui/focus/FocusTransactionManager;-><init>(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/input/pointer/PointerInputEvent;)V\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;->getChanges()Landroidx/collection/LongSparseArray;\nPLandroidx/compose/ui/focus/FocusTransactionManager;->getChanges()Landroidx/collection/LongSparseArray;\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;->getMotionEvent()Landroid/view/MotionEvent;\nPLandroidx/compose/ui/focus/FocusTransactionManager;->getMotionEvent()Landroid/view/MotionEvent;\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;->getSuppressMovementConsumption()Z\nPLandroidx/compose/ui/focus/FocusTransactionManager;->getSuppressMovementConsumption()Z\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;->getUncommittedFocusState(Landroidx/compose/ui/focus/FocusTargetNode;)Landroidx/compose/ui/focus/FocusStateImpl;\nHPLandroidx/compose/ui/focus/FocusTransactionManager;->getUncommittedFocusState(Landroidx/compose/ui/focus/FocusTargetNode;)Landroidx/compose/ui/focus/FocusStateImpl;\nHSPLandroidx/compose/ui/focus/FocusTransactionManager;->issuesEnterExitEvent-0FcD4WY(J)Z\nHPLandroidx/compose/ui/focus/FocusTransactionManager;->issuesEnterExitEvent-0FcD4WY(J)Z\nLandroidx/compose/ui/geometry/CornerRadius;\nHSPLandroidx/compose/ui/geometry/CornerRadius;-><clinit>()V\nPLandroidx/compose/ui/geometry/CornerRadius;-><clinit>()V\nHSPLandroidx/compose/ui/geometry/CornerRadius;->access$getZero$cp()J\nPLandroidx/compose/ui/geometry/CornerRadius;->access$getZero$cp()J\nHSPLandroidx/compose/ui/geometry/CornerRadius;->getX-impl(J)F\nHPLandroidx/compose/ui/geometry/CornerRadius;->getX-impl(J)F\nHSPLandroidx/compose/ui/geometry/CornerRadius;->getY-impl(J)F\nPLandroidx/compose/ui/geometry/CornerRadius;->getY-impl(J)F\nLandroidx/compose/ui/geometry/MutableRect;\nHSPLandroidx/compose/ui/geometry/MutableRect;-><init>()V\nPLandroidx/compose/ui/geometry/MutableRect;-><init>()V\nHSPLandroidx/compose/ui/geometry/MutableRect;->getBottom()F\nHPLandroidx/compose/ui/geometry/MutableRect;->getBottom()F\nHSPLandroidx/compose/ui/geometry/MutableRect;->getLeft()F\nHPLandroidx/compose/ui/geometry/MutableRect;->getLeft()F\nHSPLandroidx/compose/ui/geometry/MutableRect;->getRight()F\nHPLandroidx/compose/ui/geometry/MutableRect;->getRight()F\nHSPLandroidx/compose/ui/geometry/MutableRect;->getTop()F\nHPLandroidx/compose/ui/geometry/MutableRect;->getTop()F\nHSPLandroidx/compose/ui/geometry/MutableRect;->intersect(FFFF)V\nHPLandroidx/compose/ui/geometry/MutableRect;->intersect(FFFF)V\nHSPLandroidx/compose/ui/geometry/MutableRect;->isEmpty()Z\nHPLandroidx/compose/ui/geometry/MutableRect;->isEmpty()Z\nHSPLandroidx/compose/ui/geometry/MutableRect;->setBottom(F)V\nHPLandroidx/compose/ui/geometry/MutableRect;->setBottom(F)V\nHSPLandroidx/compose/ui/geometry/MutableRect;->setLeft(F)V\nHPLandroidx/compose/ui/geometry/MutableRect;->setLeft(F)V\nHSPLandroidx/compose/ui/geometry/MutableRect;->setRight(F)V\nHPLandroidx/compose/ui/geometry/MutableRect;->setRight(F)V\nHSPLandroidx/compose/ui/geometry/MutableRect;->setTop(F)V\nHPLandroidx/compose/ui/geometry/MutableRect;->setTop(F)V\nLandroidx/compose/ui/geometry/Offset;\nHSPLandroidx/compose/ui/geometry/Offset;-><clinit>()V\nPLandroidx/compose/ui/geometry/Offset;-><clinit>()V\nHSPLandroidx/compose/ui/geometry/Offset;-><init>(J)V\nHPLandroidx/compose/ui/geometry/Offset;-><init>(J)V\nHSPLandroidx/compose/ui/geometry/Offset;->access$getInfinite$cp()J\nPLandroidx/compose/ui/geometry/Offset;->access$getInfinite$cp()J\nHSPLandroidx/compose/ui/geometry/Offset;->access$getUnspecified$cp()J\nPLandroidx/compose/ui/geometry/Offset;->access$getUnspecified$cp()J\nHSPLandroidx/compose/ui/geometry/Offset;->access$getZero$cp()J\nHPLandroidx/compose/ui/geometry/Offset;->access$getZero$cp()J\nHSPLandroidx/compose/ui/geometry/Offset;->box-impl(J)Landroidx/compose/ui/geometry/Offset;\nHPLandroidx/compose/ui/geometry/Offset;->box-impl(J)Landroidx/compose/ui/geometry/Offset;\nHSPLandroidx/compose/ui/geometry/Offset;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/geometry/Offset;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/geometry/Offset;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/geometry/Offset;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/geometry/Offset;->getDistance-impl(J)F\nHPLandroidx/compose/ui/geometry/Offset;->getDistance-impl(J)F\nHSPLandroidx/compose/ui/geometry/Offset;->getX-impl(J)F\nHPLandroidx/compose/ui/geometry/Offset;->getX-impl(J)F\nHSPLandroidx/compose/ui/geometry/Offset;->getY-impl(J)F\nHPLandroidx/compose/ui/geometry/Offset;->getY-impl(J)F\nHSPLandroidx/compose/ui/geometry/Offset;->minus-MK-Hz9U(JJ)J\nHPLandroidx/compose/ui/geometry/Offset;->minus-MK-Hz9U(JJ)J\nHSPLandroidx/compose/ui/geometry/Offset;->plus-MK-Hz9U(JJ)J\nHPLandroidx/compose/ui/geometry/Offset;->plus-MK-Hz9U(JJ)J\nHSPLandroidx/compose/ui/geometry/Offset;->unbox-impl()J\nPLandroidx/compose/ui/geometry/Offset;->unbox-impl()J\nLandroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/geometry/Rect;-><clinit>()V\nPLandroidx/compose/ui/geometry/Rect;-><clinit>()V\nHSPLandroidx/compose/ui/geometry/Rect;-><init>(FFFF)V\nHPLandroidx/compose/ui/geometry/Rect;-><init>(FFFF)V\nHSPLandroidx/compose/ui/geometry/Rect;->access$getZero$cp()Landroidx/compose/ui/geometry/Rect;\nPLandroidx/compose/ui/geometry/Rect;->access$getZero$cp()Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/geometry/Rect;->getBottom()F\nPLandroidx/compose/ui/geometry/Rect;->getBottom()F\nHSPLandroidx/compose/ui/geometry/Rect;->getCenter-F1C5BW0()J\nPLandroidx/compose/ui/geometry/Rect;->getCenter-F1C5BW0()J\nHSPLandroidx/compose/ui/geometry/Rect;->getHeight()F\nPLandroidx/compose/ui/geometry/Rect;->getHeight()F\nHSPLandroidx/compose/ui/geometry/Rect;->getLeft()F\nPLandroidx/compose/ui/geometry/Rect;->getLeft()F\nHSPLandroidx/compose/ui/geometry/Rect;->getRight()F\nPLandroidx/compose/ui/geometry/Rect;->getRight()F\nHSPLandroidx/compose/ui/geometry/Rect;->getTop()F\nPLandroidx/compose/ui/geometry/Rect;->getTop()F\nHSPLandroidx/compose/ui/geometry/Rect;->getWidth()F\nPLandroidx/compose/ui/geometry/Rect;->getWidth()F\nLandroidx/compose/ui/geometry/RoundRect;\nHSPLandroidx/compose/ui/geometry/RoundRect;-><clinit>()V\nPLandroidx/compose/ui/geometry/RoundRect;-><clinit>()V\nHSPLandroidx/compose/ui/geometry/RoundRect;-><init>(FFFFJJJJ)V\nHPLandroidx/compose/ui/geometry/RoundRect;-><init>(FFFFJJJJ)V\nHSPLandroidx/compose/ui/geometry/RoundRect;->getBottom()F\nPLandroidx/compose/ui/geometry/RoundRect;->getBottom()F\nHSPLandroidx/compose/ui/geometry/RoundRect;->getBottomLeftCornerRadius-kKHJgLs()J\nPLandroidx/compose/ui/geometry/RoundRect;->getBottomLeftCornerRadius-kKHJgLs()J\nHSPLandroidx/compose/ui/geometry/RoundRect;->getBottomRightCornerRadius-kKHJgLs()J\nPLandroidx/compose/ui/geometry/RoundRect;->getBottomRightCornerRadius-kKHJgLs()J\nHSPLandroidx/compose/ui/geometry/RoundRect;->getHeight()F\nPLandroidx/compose/ui/geometry/RoundRect;->getHeight()F\nHSPLandroidx/compose/ui/geometry/RoundRect;->getLeft()F\nPLandroidx/compose/ui/geometry/RoundRect;->getLeft()F\nHSPLandroidx/compose/ui/geometry/RoundRect;->getRight()F\nPLandroidx/compose/ui/geometry/RoundRect;->getRight()F\nHSPLandroidx/compose/ui/geometry/RoundRect;->getTop()F\nPLandroidx/compose/ui/geometry/RoundRect;->getTop()F\nHSPLandroidx/compose/ui/geometry/RoundRect;->getTopLeftCornerRadius-kKHJgLs()J\nPLandroidx/compose/ui/geometry/RoundRect;->getTopLeftCornerRadius-kKHJgLs()J\nHSPLandroidx/compose/ui/geometry/RoundRect;->getTopRightCornerRadius-kKHJgLs()J\nPLandroidx/compose/ui/geometry/RoundRect;->getTopRightCornerRadius-kKHJgLs()J\nHSPLandroidx/compose/ui/geometry/RoundRect;->getWidth()F\nPLandroidx/compose/ui/geometry/RoundRect;->getWidth()F\nLandroidx/compose/ui/geometry/Size;\nHSPLandroidx/compose/ui/geometry/Size;-><clinit>()V\nPLandroidx/compose/ui/geometry/Size;-><clinit>()V\nHSPLandroidx/compose/ui/geometry/Size;-><init>(J)V\nPLandroidx/compose/ui/geometry/Size;-><init>(J)V\nHSPLandroidx/compose/ui/geometry/Size;->access$getUnspecified$cp()J\nPLandroidx/compose/ui/geometry/Size;->access$getUnspecified$cp()J\nHSPLandroidx/compose/ui/geometry/Size;->access$getZero$cp()J\nPLandroidx/compose/ui/geometry/Size;->access$getZero$cp()J\nHSPLandroidx/compose/ui/geometry/Size;->box-impl(J)Landroidx/compose/ui/geometry/Size;\nPLandroidx/compose/ui/geometry/Size;->box-impl(J)Landroidx/compose/ui/geometry/Size;\nHSPLandroidx/compose/ui/geometry/Size;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/geometry/Size;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/geometry/Size;->equals-impl(JLjava/lang/Object;)Z\nPLandroidx/compose/ui/geometry/Size;->equals-impl(JLjava/lang/Object;)Z\nHSPLandroidx/compose/ui/geometry/Size;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/geometry/Size;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/geometry/Size;->getHeight-impl(J)F\nHPLandroidx/compose/ui/geometry/Size;->getHeight-impl(J)F\nHSPLandroidx/compose/ui/geometry/Size;->getMinDimension-impl(J)F\nHPLandroidx/compose/ui/geometry/Size;->getMinDimension-impl(J)F\nHSPLandroidx/compose/ui/geometry/Size;->getWidth-impl(J)F\nHPLandroidx/compose/ui/geometry/Size;->getWidth-impl(J)F\nHSPLandroidx/compose/ui/geometry/Size;->isEmpty-impl(J)Z\nHPLandroidx/compose/ui/geometry/Size;->isEmpty-impl(J)Z\nHSPLandroidx/compose/ui/geometry/Size;->unbox-impl()J\nPLandroidx/compose/ui/geometry/Size;->unbox-impl()J\nLandroidx/compose/ui/graphics/AndroidCanvas;\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;-><init>()V\nPLandroidx/compose/ui/graphics/AndroidCanvas;-><init>()V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->clipPath-mtrdD-E(Landroidx/compose/ui/graphics/Path;I)V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->clipPath-mtrdD-E(Landroidx/compose/ui/graphics/Path;I)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->concat-58bKbWc([F)V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->concat-58bKbWc([F)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->drawArc(FFFFFFLandroidx/compose/ui/graphics/AndroidPaint;)V\nPLandroidx/compose/ui/graphics/AndroidCanvas;->drawArc(FFFFFFLandroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->drawImageRect-HPBpro0(Landroidx/compose/ui/graphics/ImageBitmap;JJJJLandroidx/compose/ui/graphics/AndroidPaint;)V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->drawImageRect-HPBpro0(Landroidx/compose/ui/graphics/ImageBitmap;JJJJLandroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->drawLine-Wko1d7g(JJLandroidx/compose/ui/graphics/AndroidPaint;)V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->drawLine-Wko1d7g(JJLandroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->drawPath(Landroidx/compose/ui/graphics/Path;Landroidx/compose/ui/graphics/AndroidPaint;)V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->drawPath(Landroidx/compose/ui/graphics/Path;Landroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->drawRect(FFFFLandroidx/compose/ui/graphics/AndroidPaint;)V\nPLandroidx/compose/ui/graphics/AndroidCanvas;->drawRect(FFFFLandroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->drawRoundRect(FFFFFFLandroidx/compose/ui/graphics/AndroidPaint;)V\nPLandroidx/compose/ui/graphics/AndroidCanvas;->drawRoundRect(FFFFFFLandroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->getInternalCanvas()Landroid/graphics/Canvas;\nPLandroidx/compose/ui/graphics/AndroidCanvas;->getInternalCanvas()Landroid/graphics/Canvas;\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->restore()V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->restore()V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->save()V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->save()V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->setInternalCanvas(Landroid/graphics/Canvas;)V\nPLandroidx/compose/ui/graphics/AndroidCanvas;->setInternalCanvas(Landroid/graphics/Canvas;)V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas;->translate(FF)V\nHPLandroidx/compose/ui/graphics/AndroidCanvas;->translate(FF)V\nLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;\nHSPLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;-><clinit>()V\nPLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;->access$getEmptyCanvas$p()Landroid/graphics/Canvas;\nPLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;->access$getEmptyCanvas$p()Landroid/graphics/Canvas;\nHSPLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;->getNativeCanvas(Landroidx/compose/ui/graphics/Canvas;)Landroid/graphics/Canvas;\nHPLandroidx/compose/ui/graphics/AndroidCanvas_androidKt;->getNativeCanvas(Landroidx/compose/ui/graphics/Canvas;)Landroid/graphics/Canvas;\nLandroidx/compose/ui/graphics/AndroidImageBitmap;\nHSPLandroidx/compose/ui/graphics/AndroidImageBitmap;-><init>(Landroid/graphics/Bitmap;)V\nHPLandroidx/compose/ui/graphics/AndroidImageBitmap;-><init>(Landroid/graphics/Bitmap;)V\nHSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getBitmap$ui_graphics_release()Landroid/graphics/Bitmap;\nPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getBitmap$ui_graphics_release()Landroid/graphics/Bitmap;\nHSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getHeight()I\nPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getHeight()I\nHSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getWidth()I\nPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getWidth()I\nHSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->prepareToDraw()V\nPLandroidx/compose/ui/graphics/AndroidImageBitmap;->prepareToDraw()V\nLandroidx/compose/ui/graphics/AndroidPaint;\nHSPLandroidx/compose/ui/graphics/AndroidPaint;-><init>(Landroid/graphics/Paint;)V\nHPLandroidx/compose/ui/graphics/AndroidPaint;-><init>(Landroid/graphics/Paint;)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->asFrameworkPaint()Landroid/graphics/Paint;\nPLandroidx/compose/ui/graphics/AndroidPaint;->asFrameworkPaint()Landroid/graphics/Paint;\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getAlpha()F\nPLandroidx/compose/ui/graphics/AndroidPaint;->getAlpha()F\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getBlendMode-0nO6VwU()I\nPLandroidx/compose/ui/graphics/AndroidPaint;->getBlendMode-0nO6VwU()I\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getColor-0d7_KjU()J\nHPLandroidx/compose/ui/graphics/AndroidPaint;->getColor-0d7_KjU()J\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getColorFilter()Landroidx/compose/ui/graphics/ColorFilter;\nPLandroidx/compose/ui/graphics/AndroidPaint;->getColorFilter()Landroidx/compose/ui/graphics/ColorFilter;\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getFilterQuality-f-v9h1I()I\nHPLandroidx/compose/ui/graphics/AndroidPaint;->getFilterQuality-f-v9h1I()I\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getShader()Landroid/graphics/Shader;\nPLandroidx/compose/ui/graphics/AndroidPaint;->getShader()Landroid/graphics/Shader;\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeCap-KaPHkGw()I\nPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeCap-KaPHkGw()I\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeJoin-LxFBmk8()I\nPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeJoin-LxFBmk8()I\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeMiterLimit()F\nPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeMiterLimit()F\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeWidth()F\nPLandroidx/compose/ui/graphics/AndroidPaint;->getStrokeWidth()F\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setAlpha(F)V\nHPLandroidx/compose/ui/graphics/AndroidPaint;->setAlpha(F)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setBlendMode-s9anfk8(I)V\nHPLandroidx/compose/ui/graphics/AndroidPaint;->setBlendMode-s9anfk8(I)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setColor-8_81llA(J)V\nHPLandroidx/compose/ui/graphics/AndroidPaint;->setColor-8_81llA(J)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)V\nPLandroidx/compose/ui/graphics/AndroidPaint;->setColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setShader(Landroid/graphics/Shader;)V\nHPLandroidx/compose/ui/graphics/AndroidPaint;->setShader(Landroid/graphics/Shader;)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setStrokeCap-BeK7IIE(I)V\nPLandroidx/compose/ui/graphics/AndroidPaint;->setStrokeCap-BeK7IIE(I)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setStrokeWidth(F)V\nPLandroidx/compose/ui/graphics/AndroidPaint;->setStrokeWidth(F)V\nHSPLandroidx/compose/ui/graphics/AndroidPaint;->setStyle-k9PVt8s(I)V\nPLandroidx/compose/ui/graphics/AndroidPaint;->setStyle-k9PVt8s(I)V\nLandroidx/compose/ui/graphics/AndroidPaint_androidKt$WhenMappings;\nHSPLandroidx/compose/ui/graphics/AndroidPaint_androidKt$WhenMappings;-><clinit>()V\nPLandroidx/compose/ui/graphics/AndroidPaint_androidKt$WhenMappings;-><clinit>()V\nLandroidx/compose/ui/graphics/AndroidPath;\nHSPLandroidx/compose/ui/graphics/AndroidPath;-><init>(Landroid/graphics/Path;)V\nHPLandroidx/compose/ui/graphics/AndroidPath;-><init>(Landroid/graphics/Path;)V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->close()V\nPLandroidx/compose/ui/graphics/AndroidPath;->close()V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->cubicTo(FFFFFF)V\nHPLandroidx/compose/ui/graphics/AndroidPath;->cubicTo(FFFFFF)V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->getFillType-Rg-k1Os()I\nPLandroidx/compose/ui/graphics/AndroidPath;->getFillType-Rg-k1Os()I\nHSPLandroidx/compose/ui/graphics/AndroidPath;->getInternalPath()Landroid/graphics/Path;\nPLandroidx/compose/ui/graphics/AndroidPath;->getInternalPath()Landroid/graphics/Path;\nHSPLandroidx/compose/ui/graphics/AndroidPath;->lineTo(FF)V\nHPLandroidx/compose/ui/graphics/AndroidPath;->lineTo(FF)V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->moveTo(FF)V\nPLandroidx/compose/ui/graphics/AndroidPath;->moveTo(FF)V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->relativeCubicTo(FFFFFF)V\nPLandroidx/compose/ui/graphics/AndroidPath;->relativeCubicTo(FFFFFF)V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->relativeLineTo(FF)V\nPLandroidx/compose/ui/graphics/AndroidPath;->relativeLineTo(FF)V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->rewind()V\nPLandroidx/compose/ui/graphics/AndroidPath;->rewind()V\nHSPLandroidx/compose/ui/graphics/AndroidPath;->setFillType-oQ8Xj4U(I)V\nPLandroidx/compose/ui/graphics/AndroidPath;->setFillType-oQ8Xj4U(I)V\nLandroidx/compose/ui/graphics/Api26Bitmap;\nHSPLandroidx/compose/ui/graphics/Api26Bitmap;->createBitmap-x__-hDU$ui_graphics_release(IIIZLandroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroid/graphics/Bitmap;\nPLandroidx/compose/ui/graphics/Api26Bitmap;->createBitmap-x__-hDU$ui_graphics_release(IIIZLandroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroid/graphics/Bitmap;\nLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$AutofillCallback;)V\nPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$AutofillCallback;)V\nHSPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/ColorSpace$Named;\nPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/ColorSpace$Named;\nHSPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m(IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;\nHPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m(IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;\nPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$AutofillCallback;)V\nHSPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/view/autofill/AutofillManager$AutofillCallback;\nPLandroidx/compose/ui/graphics/Api26Bitmap$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/view/autofill/AutofillManager$AutofillCallback;\nLandroidx/compose/ui/graphics/BlendMode;\nHSPLandroidx/compose/ui/graphics/BlendMode;-><init>(I)V\nPLandroidx/compose/ui/graphics/BlendMode;-><init>(I)V\nHSPLandroidx/compose/ui/graphics/BlendMode;->box-impl(I)Landroidx/compose/ui/graphics/BlendMode;\nPLandroidx/compose/ui/graphics/BlendMode;->box-impl(I)Landroidx/compose/ui/graphics/BlendMode;\nHSPLandroidx/compose/ui/graphics/BlendMode;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/BlendMode;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;\nHSPLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;-><clinit>()V\nPLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;-><init>()V\nPLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;-><init>()V\nHSPLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;->BlendModeColorFilter-xETnrds(JI)Landroid/graphics/BlendModeColorFilter;\nHPLandroidx/compose/ui/graphics/BlendModeColorFilterHelper;->BlendModeColorFilter-xETnrds(JI)Landroid/graphics/BlendModeColorFilter;\nLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;\nHSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/Modifier$Node;I)V\nHPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;-><init>(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/ui/Modifier$Node;I)V\nHSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/graphics/Brush;-><clinit>()V\nPLandroidx/compose/ui/graphics/Brush;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/Brush;-><init>()V\nHPLandroidx/compose/ui/graphics/Brush;-><init>()V\nLandroidx/compose/ui/graphics/Brush$Companion;\nHSPLandroidx/compose/ui/graphics/Brush$Companion;-><clinit>()V\nPLandroidx/compose/ui/graphics/Brush$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/Brush$Companion;-><init>()V\nPLandroidx/compose/ui/graphics/Brush$Companion;-><init>()V\nHSPLandroidx/compose/ui/graphics/Brush$Companion;->tint-xETnrds(IJ)Landroidx/compose/ui/graphics/ColorFilter;\nHPLandroidx/compose/ui/graphics/Brush$Companion;->tint-xETnrds(IJ)Landroidx/compose/ui/graphics/ColorFilter;\nLandroidx/compose/ui/graphics/BrushKt;\nHSPLandroidx/compose/ui/graphics/BrushKt;-><clinit>()V\nPLandroidx/compose/ui/graphics/BrushKt;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/BrushKt;-><init>()V\nHPLandroidx/compose/ui/graphics/BrushKt;-><init>()V\nHSPLandroidx/compose/ui/graphics/BrushKt;->Canvas(Landroidx/compose/ui/graphics/AndroidImageBitmap;)Landroidx/compose/ui/graphics/AndroidCanvas;\nPLandroidx/compose/ui/graphics/BrushKt;->Canvas(Landroidx/compose/ui/graphics/AndroidImageBitmap;)Landroidx/compose/ui/graphics/AndroidCanvas;\nHSPLandroidx/compose/ui/graphics/BrushKt;->Color$default(III)J\nPLandroidx/compose/ui/graphics/BrushKt;->Color$default(III)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->Color(FFFFLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nHPLandroidx/compose/ui/graphics/BrushKt;->Color(FFFFLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->Color(I)J\nPLandroidx/compose/ui/graphics/BrushKt;->Color(I)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->Color(J)J\nPLandroidx/compose/ui/graphics/BrushKt;->Color(J)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->ImageBitmap-x__-hDU$default(IIII)Landroidx/compose/ui/graphics/AndroidImageBitmap;\nHPLandroidx/compose/ui/graphics/BrushKt;->ImageBitmap-x__-hDU$default(IIII)Landroidx/compose/ui/graphics/AndroidImageBitmap;\nHSPLandroidx/compose/ui/graphics/BrushKt;->Paint()Landroidx/compose/ui/graphics/AndroidPaint;\nPLandroidx/compose/ui/graphics/BrushKt;->Paint()Landroidx/compose/ui/graphics/AndroidPaint;\nHSPLandroidx/compose/ui/graphics/BrushKt;->Path()Landroidx/compose/ui/graphics/AndroidPath;\nHPLandroidx/compose/ui/graphics/BrushKt;->Path()Landroidx/compose/ui/graphics/AndroidPath;\nHSPLandroidx/compose/ui/graphics/BrushKt;->TransformOrigin(FF)J\nPLandroidx/compose/ui/graphics/BrushKt;->TransformOrigin(FF)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->asAndroidBitmap(Landroidx/compose/ui/graphics/ImageBitmap;)Landroid/graphics/Bitmap;\nPLandroidx/compose/ui/graphics/BrushKt;->asAndroidBitmap(Landroidx/compose/ui/graphics/ImageBitmap;)Landroid/graphics/Bitmap;\nHSPLandroidx/compose/ui/graphics/BrushKt;->compositeOver--OWjLjI(JJ)J\nHPLandroidx/compose/ui/graphics/BrushKt;->compositeOver--OWjLjI(JJ)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->drawOutline-wDX37Ww$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/BrushKt;J)V\nHPLandroidx/compose/ui/graphics/BrushKt;->drawOutline-wDX37Ww$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/BrushKt;J)V\nHSPLandroidx/compose/ui/graphics/BrushKt;->getRectangleShape()Landroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1;\nHPLandroidx/compose/ui/graphics/BrushKt;->getRectangleShape()Landroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1;\nHSPLandroidx/compose/ui/graphics/BrushKt;->graphicsLayer-Ap8cVGQ$default(Landroidx/compose/ui/Modifier;FFFFLandroidx/compose/ui/graphics/Shape;ZI)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/graphics/BrushKt;->graphicsLayer-Ap8cVGQ$default(Landroidx/compose/ui/Modifier;FFFFLandroidx/compose/ui/graphics/Shape;ZI)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/graphics/BrushKt;->lerp-jxsXWHM(JJF)J\nHPLandroidx/compose/ui/graphics/BrushKt;->lerp-jxsXWHM(JJF)J\nHSPLandroidx/compose/ui/graphics/BrushKt;->luminance-8_81llA(J)F\nPLandroidx/compose/ui/graphics/BrushKt;->luminance-8_81llA(J)F\nHSPLandroidx/compose/ui/graphics/BrushKt;->setFrom-tU-YjHk(Landroid/graphics/Matrix;[F)V\nHPLandroidx/compose/ui/graphics/BrushKt;->setFrom-tU-YjHk(Landroid/graphics/Matrix;[F)V\nHSPLandroidx/compose/ui/graphics/BrushKt;->toAndroidBlendMode-s9anfk8(I)Landroid/graphics/BlendMode;\nHPLandroidx/compose/ui/graphics/BrushKt;->toAndroidBlendMode-s9anfk8(I)Landroid/graphics/BlendMode;\nHSPLandroidx/compose/ui/graphics/BrushKt;->toArgb-8_81llA(J)I\nHPLandroidx/compose/ui/graphics/BrushKt;->toArgb-8_81llA(J)I\nHSPLandroidx/compose/ui/graphics/BrushKt;->toBitmapConfig-1JJdX4A(I)Landroid/graphics/Bitmap$Config;\nHPLandroidx/compose/ui/graphics/BrushKt;->toBitmapConfig-1JJdX4A(I)Landroid/graphics/Bitmap$Config;\nLandroidx/compose/ui/graphics/Canvas;\nLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m$12()Landroid/graphics/BlendMode;\nPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m$12()Landroid/graphics/BlendMode;\nHSPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m$9()Landroid/graphics/BlendMode;\nPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m$9()Landroid/graphics/BlendMode;\nHSPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m()V\nPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m()V\nHSPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;\nPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;\nHSPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Paint;Landroid/graphics/BlendMode;)V\nHPLandroidx/compose/ui/graphics/CanvasZHelper$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Paint;Landroid/graphics/BlendMode;)V\nLandroidx/compose/ui/graphics/Color;\nHSPLandroidx/compose/ui/graphics/Color;-><clinit>()V\nPLandroidx/compose/ui/graphics/Color;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/Color;-><init>(J)V\nHPLandroidx/compose/ui/graphics/Color;-><init>(J)V\nHSPLandroidx/compose/ui/graphics/Color;->access$getBlack$cp()J\nPLandroidx/compose/ui/graphics/Color;->access$getBlack$cp()J\nHSPLandroidx/compose/ui/graphics/Color;->access$getBlue$cp()J\nPLandroidx/compose/ui/graphics/Color;->access$getBlue$cp()J\nHSPLandroidx/compose/ui/graphics/Color;->access$getRed$cp()J\nPLandroidx/compose/ui/graphics/Color;->access$getRed$cp()J\nHSPLandroidx/compose/ui/graphics/Color;->access$getTransparent$cp()J\nPLandroidx/compose/ui/graphics/Color;->access$getTransparent$cp()J\nHSPLandroidx/compose/ui/graphics/Color;->access$getUnspecified$cp()J\nHPLandroidx/compose/ui/graphics/Color;->access$getUnspecified$cp()J\nHSPLandroidx/compose/ui/graphics/Color;->box-impl(J)Landroidx/compose/ui/graphics/Color;\nHPLandroidx/compose/ui/graphics/Color;->box-impl(J)Landroidx/compose/ui/graphics/Color;\nHSPLandroidx/compose/ui/graphics/Color;->convert-vNxB06k(JLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nHPLandroidx/compose/ui/graphics/Color;->convert-vNxB06k(JLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nHSPLandroidx/compose/ui/graphics/Color;->copy-wmQWz5c$default(JF)J\nHPLandroidx/compose/ui/graphics/Color;->copy-wmQWz5c$default(JF)J\nHSPLandroidx/compose/ui/graphics/Color;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/Color;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/Color;->getAlpha-impl(J)F\nHPLandroidx/compose/ui/graphics/Color;->getAlpha-impl(J)F\nHSPLandroidx/compose/ui/graphics/Color;->getBlue-impl(J)F\nHPLandroidx/compose/ui/graphics/Color;->getBlue-impl(J)F\nHSPLandroidx/compose/ui/graphics/Color;->getColorSpace-impl(J)Landroidx/compose/ui/graphics/colorspace/ColorSpace;\nHPLandroidx/compose/ui/graphics/Color;->getColorSpace-impl(J)Landroidx/compose/ui/graphics/colorspace/ColorSpace;\nHSPLandroidx/compose/ui/graphics/Color;->getGreen-impl(J)F\nHPLandroidx/compose/ui/graphics/Color;->getGreen-impl(J)F\nHSPLandroidx/compose/ui/graphics/Color;->getRed-impl(J)F\nHPLandroidx/compose/ui/graphics/Color;->getRed-impl(J)F\nPLandroidx/compose/ui/graphics/Color;->hashCode-impl(J)I\nHPLandroidx/compose/ui/graphics/Color;->hashCode-impl(J)I\nHSPLandroidx/compose/ui/graphics/Color;->unbox-impl()J\nHPLandroidx/compose/ui/graphics/Color;->unbox-impl()J\nLandroidx/compose/ui/graphics/ColorFilter;\nHSPLandroidx/compose/ui/graphics/ColorFilter;-><init>(Landroid/graphics/ColorFilter;)V\nPLandroidx/compose/ui/graphics/ColorFilter;-><init>(Landroid/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/graphics/ColorFilter;->getNativeColorFilter$ui_graphics_release()Landroid/graphics/ColorFilter;\nPLandroidx/compose/ui/graphics/ColorFilter;->getNativeColorFilter$ui_graphics_release()Landroid/graphics/ColorFilter;\nLandroidx/compose/ui/graphics/ColorSpaceVerificationHelper;\nHSPLandroidx/compose/ui/graphics/ColorSpaceVerificationHelper;->androidColorSpace(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroid/graphics/ColorSpace;\nHPLandroidx/compose/ui/graphics/ColorSpaceVerificationHelper;->androidColorSpace(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroid/graphics/ColorSpace;\nLandroidx/compose/ui/graphics/ColorSpaceVerificationHelper$$ExternalSyntheticApiModelOutline1;\nHSPLandroidx/compose/ui/graphics/ColorSpaceVerificationHelper$$ExternalSyntheticApiModelOutline1;->m(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;\nHPLandroidx/compose/ui/graphics/ColorSpaceVerificationHelper$$ExternalSyntheticApiModelOutline1;->m(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;\nLandroidx/compose/ui/graphics/Float16;\nHSPLandroidx/compose/ui/graphics/Float16;-><clinit>()V\nPLandroidx/compose/ui/graphics/Float16;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/Float16;->constructor-impl(F)S\nHPLandroidx/compose/ui/graphics/Float16;->constructor-impl(F)S\nHSPLandroidx/compose/ui/graphics/Float16;->toFloat-impl(S)F\nHPLandroidx/compose/ui/graphics/Float16;->toFloat-impl(S)F\nLandroidx/compose/ui/graphics/GraphicsLayerElement;\nHSPLandroidx/compose/ui/graphics/GraphicsLayerElement;-><init>(FFFFFFFFFFJLandroidx/compose/ui/graphics/Shape;ZLandroidx/compose/ui/graphics/RenderEffect;JJI)V\nHPLandroidx/compose/ui/graphics/GraphicsLayerElement;-><init>(FFFFFFFFFFJLandroidx/compose/ui/graphics/Shape;ZLandroidx/compose/ui/graphics/RenderEffect;JJI)V\nHSPLandroidx/compose/ui/graphics/GraphicsLayerElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/graphics/GraphicsLayerElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/graphics/GraphicsLayerElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/GraphicsLayerElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/graphics/GraphicsLayerScopeKt;\nHSPLandroidx/compose/ui/graphics/GraphicsLayerScopeKt;-><clinit>()V\nPLandroidx/compose/ui/graphics/GraphicsLayerScopeKt;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/GraphicsLayerScopeKt;->getDefaultShadowColor()J\nHPLandroidx/compose/ui/graphics/GraphicsLayerScopeKt;->getDefaultShadowColor()J\nLandroidx/compose/ui/graphics/ImageBitmap;\nLandroidx/compose/ui/graphics/Matrix;\nHSPLandroidx/compose/ui/graphics/Matrix;-><init>([F)V\nPLandroidx/compose/ui/graphics/Matrix;-><init>([F)V\nHSPLandroidx/compose/ui/graphics/Matrix;->box-impl([F)Landroidx/compose/ui/graphics/Matrix;\nPLandroidx/compose/ui/graphics/Matrix;->box-impl([F)Landroidx/compose/ui/graphics/Matrix;\nHSPLandroidx/compose/ui/graphics/Matrix;->constructor-impl$default()[F\nHPLandroidx/compose/ui/graphics/Matrix;->constructor-impl$default()[F\nHSPLandroidx/compose/ui/graphics/Matrix;->map-MK-Hz9U([FJ)J\nHPLandroidx/compose/ui/graphics/Matrix;->map-MK-Hz9U([FJ)J\nHSPLandroidx/compose/ui/graphics/Matrix;->map-impl([FLandroidx/compose/ui/geometry/MutableRect;)V\nHPLandroidx/compose/ui/graphics/Matrix;->map-impl([FLandroidx/compose/ui/geometry/MutableRect;)V\nHSPLandroidx/compose/ui/graphics/Matrix;->reset-impl([F)V\nPLandroidx/compose/ui/graphics/Matrix;->reset-impl([F)V\nHSPLandroidx/compose/ui/graphics/Matrix;->translate-impl$default([FFF)V\nHPLandroidx/compose/ui/graphics/Matrix;->translate-impl$default([FFF)V\nHSPLandroidx/compose/ui/graphics/Matrix;->unbox-impl()[F\nPLandroidx/compose/ui/graphics/Matrix;->unbox-impl()[F\nLandroidx/compose/ui/graphics/Outline$Generic;\nLandroidx/compose/ui/graphics/Outline$Rectangle;\nHSPLandroidx/compose/ui/graphics/Outline$Rectangle;-><init>(Landroidx/compose/ui/geometry/Rect;)V\nPLandroidx/compose/ui/graphics/Outline$Rectangle;-><init>(Landroidx/compose/ui/geometry/Rect;)V\nHSPLandroidx/compose/ui/graphics/Outline$Rectangle;->getRect()Landroidx/compose/ui/geometry/Rect;\nPLandroidx/compose/ui/graphics/Outline$Rectangle;->getRect()Landroidx/compose/ui/geometry/Rect;\nLandroidx/compose/ui/graphics/Outline$Rounded;\nHSPLandroidx/compose/ui/graphics/Outline$Rounded;-><init>(Landroidx/compose/ui/geometry/RoundRect;)V\nHPLandroidx/compose/ui/graphics/Outline$Rounded;-><init>(Landroidx/compose/ui/geometry/RoundRect;)V\nHSPLandroidx/compose/ui/graphics/Outline$Rounded;->getRoundRect()Landroidx/compose/ui/geometry/RoundRect;\nPLandroidx/compose/ui/graphics/Outline$Rounded;->getRoundRect()Landroidx/compose/ui/geometry/RoundRect;\nHSPLandroidx/compose/ui/graphics/Outline$Rounded;->getRoundRectPath$ui_graphics_release()Landroidx/compose/ui/graphics/AndroidPath;\nPLandroidx/compose/ui/graphics/Outline$Rounded;->getRoundRectPath$ui_graphics_release()Landroidx/compose/ui/graphics/AndroidPath;\nLandroidx/compose/ui/graphics/Path;\nLandroidx/compose/ui/graphics/PathFillType;\nHSPLandroidx/compose/ui/graphics/PathFillType;-><init>(I)V\nHPLandroidx/compose/ui/graphics/PathFillType;-><init>(I)V\nHSPLandroidx/compose/ui/graphics/PathFillType;->box-impl(I)Landroidx/compose/ui/graphics/PathFillType;\nHPLandroidx/compose/ui/graphics/PathFillType;->box-impl(I)Landroidx/compose/ui/graphics/PathFillType;\nHSPLandroidx/compose/ui/graphics/PathFillType;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/PathFillType;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/PathFillType;->unbox-impl()I\nPLandroidx/compose/ui/graphics/PathFillType;->unbox-impl()I\nLandroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1;\nHSPLandroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1;-><init>()V\nPLandroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1;-><init>()V\nLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;-><init>()V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;-><init>()V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getAlpha()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getAlpha()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getAmbientShadowColor-0d7_KjU()J\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getAmbientShadowColor-0d7_KjU()J\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getCameraDistance()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getCameraDistance()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getClip()Z\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getClip()Z\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getCompositingStrategy--NrFUSI()I\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getCompositingStrategy--NrFUSI()I\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRenderEffect()Landroidx/compose/ui/graphics/RenderEffect;\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRenderEffect()Landroidx/compose/ui/graphics/RenderEffect;\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRotationX()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRotationX()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRotationY()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRotationY()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRotationZ()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getRotationZ()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getScaleX()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getScaleX()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getScaleY()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getScaleY()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getShadowElevation()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getShadowElevation()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getShape()Landroidx/compose/ui/graphics/Shape;\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getShape()Landroidx/compose/ui/graphics/Shape;\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getSpotShadowColor-0d7_KjU()J\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getSpotShadowColor-0d7_KjU()J\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getTransformOrigin-SzJe1aQ()J\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getTransformOrigin-SzJe1aQ()J\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getTranslationX()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getTranslationX()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getTranslationY()F\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->getTranslationY()F\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->reset()V\nHPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->reset()V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setAlpha(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setAlpha(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setAmbientShadowColor-8_81llA(J)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setAmbientShadowColor-8_81llA(J)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setCameraDistance(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setCameraDistance(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setClip(Z)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setClip(Z)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setCompositingStrategy-aDBOjCE(I)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setCompositingStrategy-aDBOjCE(I)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setGraphicsDensity$ui_release(Landroidx/compose/ui/unit/Density;)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setGraphicsDensity$ui_release(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRenderEffect(Landroidx/compose/ui/graphics/RenderEffect;)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRenderEffect(Landroidx/compose/ui/graphics/RenderEffect;)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRotationX(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRotationX(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRotationY(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRotationY(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRotationZ(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setRotationZ(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setScaleX(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setScaleX(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setScaleY(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setScaleY(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setShadowElevation(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setShadowElevation(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setShape(Landroidx/compose/ui/graphics/Shape;)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setShape(Landroidx/compose/ui/graphics/Shape;)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setSize-uvyYCjk(J)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setSize-uvyYCjk(J)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setSpotShadowColor-8_81llA(J)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setSpotShadowColor-8_81llA(J)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setTransformOrigin-__ExYCQ(J)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setTransformOrigin-__ExYCQ(J)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setTranslationX(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setTranslationX(F)V\nHSPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setTranslationY(F)V\nPLandroidx/compose/ui/graphics/ReusableGraphicsLayerScope;->setTranslationY(F)V\nLandroidx/compose/ui/graphics/ShaderBrush;\nLandroidx/compose/ui/graphics/Shadow;\nHSPLandroidx/compose/ui/graphics/Shadow;-><clinit>()V\nPLandroidx/compose/ui/graphics/Shadow;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/Shadow;-><init>(JFI)V\nPLandroidx/compose/ui/graphics/Shadow;-><init>(JFI)V\nHSPLandroidx/compose/ui/graphics/Shadow;-><init>(JJF)V\nPLandroidx/compose/ui/graphics/Shadow;-><init>(JJF)V\nHSPLandroidx/compose/ui/graphics/Shadow;->access$getNone$cp()Landroidx/compose/ui/graphics/Shadow;\nPLandroidx/compose/ui/graphics/Shadow;->access$getNone$cp()Landroidx/compose/ui/graphics/Shadow;\nHSPLandroidx/compose/ui/graphics/Shadow;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/Shadow;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/graphics/Shape;\nLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;-><init>(FFFFFFFFFFJLandroidx/compose/ui/graphics/Shape;ZLandroidx/compose/ui/graphics/RenderEffect;JJI)V\nHPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;-><init>(FFFFFFFFFFJLandroidx/compose/ui/graphics/Shape;ZLandroidx/compose/ui/graphics/RenderEffect;JJI)V\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->access$getLayerBlock$p(Landroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;)Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->access$getLayerBlock$p(Landroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getAlpha()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getAlpha()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getAmbientShadowColor-0d7_KjU()J\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getAmbientShadowColor-0d7_KjU()J\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getCameraDistance()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getCameraDistance()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getClip()Z\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getClip()Z\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getCompositingStrategy--NrFUSI()I\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getCompositingStrategy--NrFUSI()I\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRenderEffect()Landroidx/compose/ui/graphics/RenderEffect;\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRenderEffect()Landroidx/compose/ui/graphics/RenderEffect;\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRotationX()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRotationX()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRotationY()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRotationY()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRotationZ()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getRotationZ()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getScaleX()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getScaleX()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getScaleY()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getScaleY()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getShadowElevation()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getShadowElevation()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getShape()Landroidx/compose/ui/graphics/Shape;\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getShape()Landroidx/compose/ui/graphics/Shape;\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getSpotShadowColor-0d7_KjU()J\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getSpotShadowColor-0d7_KjU()J\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getTransformOrigin-SzJe1aQ()J\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getTransformOrigin-SzJe1aQ()J\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getTranslationX()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getTranslationX()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getTranslationY()F\nPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->getTranslationY()F\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier$layerBlock$1;\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier$layerBlock$1;-><init>(Landroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;)V\nHPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier$layerBlock$1;-><init>(Landroidx/compose/ui/graphics/SimpleGraphicsLayerModifier;)V\nHSPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier$layerBlock$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/SimpleGraphicsLayerModifier$layerBlock$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/SolidColor;\nHSPLandroidx/compose/ui/graphics/SolidColor;-><init>(J)V\nPLandroidx/compose/ui/graphics/SolidColor;-><init>(J)V\nHSPLandroidx/compose/ui/graphics/SolidColor;->applyTo-Pq9zytI(FJLandroidx/compose/ui/graphics/AndroidPaint;)V\nHPLandroidx/compose/ui/graphics/SolidColor;->applyTo-Pq9zytI(FJLandroidx/compose/ui/graphics/AndroidPaint;)V\nHSPLandroidx/compose/ui/graphics/SolidColor;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/SolidColor;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/graphics/SolidColor;->hashCode()I\nLandroidx/compose/ui/graphics/StrokeCap;\nHSPLandroidx/compose/ui/graphics/StrokeCap;-><init>(I)V\nHPLandroidx/compose/ui/graphics/StrokeCap;-><init>(I)V\nHSPLandroidx/compose/ui/graphics/StrokeCap;->box-impl(I)Landroidx/compose/ui/graphics/StrokeCap;\nHPLandroidx/compose/ui/graphics/StrokeCap;->box-impl(I)Landroidx/compose/ui/graphics/StrokeCap;\nHSPLandroidx/compose/ui/graphics/StrokeCap;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/StrokeCap;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/StrokeCap;->unbox-impl()I\nPLandroidx/compose/ui/graphics/StrokeCap;->unbox-impl()I\nLandroidx/compose/ui/graphics/StrokeJoin;\nHSPLandroidx/compose/ui/graphics/StrokeJoin;-><init>(I)V\nHPLandroidx/compose/ui/graphics/StrokeJoin;-><init>(I)V\nHSPLandroidx/compose/ui/graphics/StrokeJoin;->box-impl(I)Landroidx/compose/ui/graphics/StrokeJoin;\nHPLandroidx/compose/ui/graphics/StrokeJoin;->box-impl(I)Landroidx/compose/ui/graphics/StrokeJoin;\nHSPLandroidx/compose/ui/graphics/StrokeJoin;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/StrokeJoin;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/StrokeJoin;->unbox-impl()I\nPLandroidx/compose/ui/graphics/StrokeJoin;->unbox-impl()I\nLandroidx/compose/ui/graphics/TransformOrigin;\nHSPLandroidx/compose/ui/graphics/TransformOrigin;-><clinit>()V\nPLandroidx/compose/ui/graphics/TransformOrigin;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/TransformOrigin;-><init>(J)V\nHPLandroidx/compose/ui/graphics/TransformOrigin;-><init>(J)V\nHSPLandroidx/compose/ui/graphics/TransformOrigin;->access$getCenter$cp()J\nHPLandroidx/compose/ui/graphics/TransformOrigin;->access$getCenter$cp()J\nHSPLandroidx/compose/ui/graphics/TransformOrigin;->box-impl(J)Landroidx/compose/ui/graphics/TransformOrigin;\nHPLandroidx/compose/ui/graphics/TransformOrigin;->box-impl(J)Landroidx/compose/ui/graphics/TransformOrigin;\nHSPLandroidx/compose/ui/graphics/TransformOrigin;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/graphics/TransformOrigin;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/TransformOrigin;->getPivotFractionX-impl(J)F\nHPLandroidx/compose/ui/graphics/TransformOrigin;->getPivotFractionX-impl(J)F\nHSPLandroidx/compose/ui/graphics/TransformOrigin;->getPivotFractionY-impl(J)F\nHPLandroidx/compose/ui/graphics/TransformOrigin;->getPivotFractionY-impl(J)F\nHSPLandroidx/compose/ui/graphics/TransformOrigin;->unbox-impl()J\nHPLandroidx/compose/ui/graphics/TransformOrigin;->unbox-impl()J\nLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;\nHSPLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;-><clinit>()V\nPLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;-><init>()V\nPLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;-><init>()V\nHSPLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;->setBlendMode-GB0RdKg(Landroid/graphics/Paint;I)V\nHPLandroidx/compose/ui/graphics/WrapperVerificationHelperMethods;->setBlendMode-GB0RdKg(Landroid/graphics/Paint;I)V\nLandroidx/compose/ui/graphics/colorspace/Adaptation;\nHSPLandroidx/compose/ui/graphics/colorspace/Adaptation;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/Adaptation;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Adaptation;-><init>([F)V\nPLandroidx/compose/ui/graphics/colorspace/Adaptation;-><init>([F)V\nHSPLandroidx/compose/ui/graphics/colorspace/Adaptation;->access$getBradford$cp()Landroidx/compose/ui/graphics/colorspace/Adaptation$Companion$Bradford$1;\nPLandroidx/compose/ui/graphics/colorspace/Adaptation;->access$getBradford$cp()Landroidx/compose/ui/graphics/colorspace/Adaptation$Companion$Bradford$1;\nHSPLandroidx/compose/ui/graphics/colorspace/Adaptation;->getTransform$ui_graphics_release()[F\nPLandroidx/compose/ui/graphics/colorspace/Adaptation;->getTransform$ui_graphics_release()[F\nLandroidx/compose/ui/graphics/colorspace/Adaptation$Companion$Bradford$1;\nHSPLandroidx/compose/ui/graphics/colorspace/Adaptation$Companion$Bradford$1;-><init>([F)V\nPLandroidx/compose/ui/graphics/colorspace/Adaptation$Companion$Bradford$1;-><init>([F)V\nLandroidx/compose/ui/graphics/colorspace/ColorModel;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorModel;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/ColorModel;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/ColorModel;->access$getLab$cp()J\nPLandroidx/compose/ui/graphics/colorspace/ColorModel;->access$getLab$cp()J\nHSPLandroidx/compose/ui/graphics/colorspace/ColorModel;->access$getRgb$cp()J\nPLandroidx/compose/ui/graphics/colorspace/ColorModel;->access$getRgb$cp()J\nHSPLandroidx/compose/ui/graphics/colorspace/ColorModel;->access$getXyz$cp()J\nPLandroidx/compose/ui/graphics/colorspace/ColorModel;->access$getXyz$cp()J\nHSPLandroidx/compose/ui/graphics/colorspace/ColorModel;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/graphics/colorspace/ColorModel;->equals-impl0(JJ)Z\nLandroidx/compose/ui/graphics/colorspace/ColorSpace;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;-><init>(Ljava/lang/String;JI)V\nPLandroidx/compose/ui/graphics/colorspace/ColorSpace;-><init>(Ljava/lang/String;JI)V\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getComponentCount()I\nPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getComponentCount()I\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getId$ui_graphics_release()I\nPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getId$ui_graphics_release()I\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getModel-xdoWZVw()J\nPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getModel-xdoWZVw()J\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getName()Ljava/lang/String;\nPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->getName()Ljava/lang/String;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->isSrgb()Z\nPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->isSrgb()Z\nLandroidx/compose/ui/graphics/colorspace/ColorSpaces;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getColorSpacesArray$ui_graphics_release()[Landroidx/compose/ui/graphics/colorspace/ColorSpace;\nHPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getColorSpacesArray$ui_graphics_release()[Landroidx/compose/ui/graphics/colorspace/ColorSpace;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getNtsc1953Primaries$ui_graphics_release()[F\nPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getNtsc1953Primaries$ui_graphics_release()[F\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getOklab()Landroidx/compose/ui/graphics/colorspace/Oklab;\nPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getOklab()Landroidx/compose/ui/graphics/colorspace/Oklab;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getSrgb()Landroidx/compose/ui/graphics/colorspace/Rgb;\nHPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getSrgb()Landroidx/compose/ui/graphics/colorspace/Rgb;\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getSrgbPrimaries$ui_graphics_release()[F\nPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getSrgbPrimaries$ui_graphics_release()[F\nHSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getUnspecified$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/Rgb;\nPLandroidx/compose/ui/graphics/colorspace/ColorSpaces;->getUnspecified$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/Rgb;\nLandroidx/compose/ui/graphics/colorspace/Connector;\nHSPLandroidx/compose/ui/graphics/colorspace/Connector;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/Connector;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Connector;-><init>(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;I)V\nPLandroidx/compose/ui/graphics/colorspace/Connector;-><init>(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;I)V\nHSPLandroidx/compose/ui/graphics/colorspace/Connector;-><init>(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;[F)V\nPLandroidx/compose/ui/graphics/colorspace/Connector;-><init>(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;[F)V\nHSPLandroidx/compose/ui/graphics/colorspace/Connector;->access$getOklabToSrgbPerceptual$cp()Landroidx/compose/ui/graphics/colorspace/Connector;\nPLandroidx/compose/ui/graphics/colorspace/Connector;->access$getOklabToSrgbPerceptual$cp()Landroidx/compose/ui/graphics/colorspace/Connector;\nHSPLandroidx/compose/ui/graphics/colorspace/Connector;->access$getSrgbToOklabPerceptual$cp()Landroidx/compose/ui/graphics/colorspace/Connector;\nPLandroidx/compose/ui/graphics/colorspace/Connector;->access$getSrgbToOklabPerceptual$cp()Landroidx/compose/ui/graphics/colorspace/Connector;\nHSPLandroidx/compose/ui/graphics/colorspace/Connector;->transformToColor-wmQWz5c$ui_graphics_release(FFFF)J\nHPLandroidx/compose/ui/graphics/colorspace/Connector;->transformToColor-wmQWz5c$ui_graphics_release(FFFF)J\nLandroidx/compose/ui/graphics/colorspace/Connector$Companion$identity$1;\nHSPLandroidx/compose/ui/graphics/colorspace/Connector$Companion$identity$1;-><init>(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)V\nPLandroidx/compose/ui/graphics/colorspace/Connector$Companion$identity$1;-><init>(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)V\nLandroidx/compose/ui/graphics/colorspace/Connector$RgbConnector;\nLandroidx/compose/ui/graphics/colorspace/DoubleFunction;\nLandroidx/compose/ui/graphics/colorspace/Illuminant;\nHSPLandroidx/compose/ui/graphics/colorspace/Illuminant;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/Illuminant;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getC()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getC()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nHSPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getD50()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getD50()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nHSPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getD60()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getD60()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nHSPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getD65()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nPLandroidx/compose/ui/graphics/colorspace/Illuminant;->getD65()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nLandroidx/compose/ui/graphics/colorspace/Lab;\nHSPLandroidx/compose/ui/graphics/colorspace/Lab;-><init>()V\nPLandroidx/compose/ui/graphics/colorspace/Lab;-><init>()V\nLandroidx/compose/ui/graphics/colorspace/Lab$Companion;\nHSPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;-><init>()V\nPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;-><init>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;->access$isSrgb([FLandroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/DoubleFunction;Landroidx/compose/ui/graphics/colorspace/DoubleFunction;FFI)Z\nPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;->access$isSrgb([FLandroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/DoubleFunction;Landroidx/compose/ui/graphics/colorspace/DoubleFunction;FFI)Z\nHSPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;->access$isWideGamut([FFF)V\nPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;->access$isWideGamut([FFF)V\nHSPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;->area([F)F\nPLandroidx/compose/ui/graphics/colorspace/Lab$Companion;->area([F)F\nLandroidx/compose/ui/graphics/colorspace/Oklab;\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/Oklab;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;-><init>()V\nPLandroidx/compose/ui/graphics/colorspace/Oklab;-><init>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;->getMaxValue(I)F\nPLandroidx/compose/ui/graphics/colorspace/Oklab;->getMaxValue(I)F\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;->getMinValue(I)F\nPLandroidx/compose/ui/graphics/colorspace/Oklab;->getMinValue(I)F\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;->toXy$ui_graphics_release(FFF)J\nHPLandroidx/compose/ui/graphics/colorspace/Oklab;->toXy$ui_graphics_release(FFF)J\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;->toZ$ui_graphics_release(FFF)F\nHPLandroidx/compose/ui/graphics/colorspace/Oklab;->toZ$ui_graphics_release(FFF)F\nHSPLandroidx/compose/ui/graphics/colorspace/Oklab;->xyzaToColor-JlNiLsg$ui_graphics_release(FFFFLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nHPLandroidx/compose/ui/graphics/colorspace/Oklab;->xyzaToColor-JlNiLsg$ui_graphics_release(FFFFLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nLandroidx/compose/ui/graphics/colorspace/Rgb;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->$r8$lambda$FANKyyW7TMwi4gnihl1LqxbkU6k(Landroidx/compose/ui/graphics/colorspace/Rgb;D)D\nHPLandroidx/compose/ui/graphics/colorspace/Rgb;->$r8$lambda$FANKyyW7TMwi4gnihl1LqxbkU6k(Landroidx/compose/ui/graphics/colorspace/Rgb;D)D\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->$r8$lambda$OfmTeMXzL_nayJmS5mO6N4G4DlI(Landroidx/compose/ui/graphics/colorspace/Rgb;D)D\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->$r8$lambda$OfmTeMXzL_nayJmS5mO6N4G4DlI(Landroidx/compose/ui/graphics/colorspace/Rgb;D)D\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;-><clinit>()V\nPLandroidx/compose/ui/graphics/colorspace/Rgb;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Landroidx/compose/ui/graphics/colorspace/Rgb;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Landroidx/compose/ui/graphics/colorspace/Rgb;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;)V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Ljava/lang/String;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;DFFI)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Ljava/lang/String;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;DFFI)V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Ljava/lang/String;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/TransferParameters;I)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Ljava/lang/String;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/TransferParameters;I)V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Ljava/lang/String;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;[FLandroidx/compose/ui/graphics/colorspace/DoubleFunction;Landroidx/compose/ui/graphics/colorspace/DoubleFunction;FFLandroidx/compose/ui/graphics/colorspace/TransferParameters;I)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb;-><init>(Ljava/lang/String;[FLandroidx/compose/ui/graphics/colorspace/WhitePoint;[FLandroidx/compose/ui/graphics/colorspace/DoubleFunction;Landroidx/compose/ui/graphics/colorspace/DoubleFunction;FFLandroidx/compose/ui/graphics/colorspace/TransferParameters;I)V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/colorspace/Rgb;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getEotfFunc$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getEotfFunc$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getEotfOrig$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/DoubleFunction;\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getEotfOrig$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/DoubleFunction;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getMaxValue(I)F\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getMaxValue(I)F\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getMinValue(I)F\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getMinValue(I)F\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getOetfOrig$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/DoubleFunction;\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getOetfOrig$ui_graphics_release()Landroidx/compose/ui/graphics/colorspace/DoubleFunction;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getTransform$ui_graphics_release()[F\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getTransform$ui_graphics_release()[F\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->getWhitePoint()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->getWhitePoint()Landroidx/compose/ui/graphics/colorspace/WhitePoint;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->isSrgb()Z\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->isSrgb()Z\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->toXy$ui_graphics_release(FFF)J\nHPLandroidx/compose/ui/graphics/colorspace/Rgb;->toXy$ui_graphics_release(FFF)J\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->toZ$ui_graphics_release(FFF)F\nPLandroidx/compose/ui/graphics/colorspace/Rgb;->toZ$ui_graphics_release(FFF)F\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb;->xyzaToColor-JlNiLsg$ui_graphics_release(FFFFLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nHPLandroidx/compose/ui/graphics/colorspace/Rgb;->xyzaToColor-JlNiLsg$ui_graphics_release(FFFFLandroidx/compose/ui/graphics/colorspace/ColorSpace;)J\nLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;-><init>(Landroidx/compose/ui/graphics/colorspace/Rgb;I)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;-><init>(Landroidx/compose/ui/graphics/colorspace/Rgb;I)V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;->invoke(D)D\nHPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda0;->invoke(D)D\nLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda1;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda1;-><init>(Landroidx/compose/ui/graphics/colorspace/TransferParameters;I)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda1;-><init>(Landroidx/compose/ui/graphics/colorspace/TransferParameters;I)V\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda1;->invoke(D)D\nHPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda1;->invoke(D)D\nLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda2;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda2;-><init>(DI)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb$$ExternalSyntheticLambda2;-><init>(DI)V\nLandroidx/compose/ui/graphics/colorspace/Rgb$eotf$1;\nHSPLandroidx/compose/ui/graphics/colorspace/Rgb$eotf$1;-><init>(Landroidx/compose/ui/graphics/colorspace/Rgb;I)V\nPLandroidx/compose/ui/graphics/colorspace/Rgb$eotf$1;-><init>(Landroidx/compose/ui/graphics/colorspace/Rgb;I)V\nLandroidx/compose/ui/graphics/colorspace/TransferParameters;\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;-><init>(DDDDD)V\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;-><init>(DDDDD)V\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;-><init>(DDDDDDD)V\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;-><init>(DDDDDDD)V\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getA()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getA()D\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getB()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getB()D\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getC()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getC()D\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getD()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getD()D\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getE()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getE()D\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getF()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getF()D\nHSPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getGamma()D\nPLandroidx/compose/ui/graphics/colorspace/TransferParameters;->getGamma()D\nLandroidx/compose/ui/graphics/colorspace/WhitePoint;\nHSPLandroidx/compose/ui/graphics/colorspace/WhitePoint;-><init>(FF)V\nPLandroidx/compose/ui/graphics/colorspace/WhitePoint;-><init>(FF)V\nHSPLandroidx/compose/ui/graphics/colorspace/WhitePoint;->getX()F\nPLandroidx/compose/ui/graphics/colorspace/WhitePoint;->getX()F\nHSPLandroidx/compose/ui/graphics/colorspace/WhitePoint;->getY()F\nPLandroidx/compose/ui/graphics/colorspace/WhitePoint;->getY()F\nHSPLandroidx/compose/ui/graphics/colorspace/WhitePoint;->toXyz$ui_graphics_release()[F\nPLandroidx/compose/ui/graphics/colorspace/WhitePoint;->toXyz$ui_graphics_release()[F\nLandroidx/compose/ui/graphics/colorspace/Xyz;\nHSPLandroidx/compose/ui/graphics/colorspace/Xyz;-><init>()V\nPLandroidx/compose/ui/graphics/colorspace/Xyz;-><init>()V\nLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;-><init>()V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;-><init>()V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configurePaint-2qPWKa0$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;JLandroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/graphics/AndroidPaint;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configurePaint-2qPWKa0$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;JLandroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/graphics/AndroidPaint;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configurePaint-swdJneE$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/graphics/AndroidPaint;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configurePaint-swdJneE$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/graphics/AndroidPaint;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configurePaint-swdJneE(Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;II)Landroidx/compose/ui/graphics/AndroidPaint;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configurePaint-swdJneE(Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;II)Landroidx/compose/ui/graphics/AndroidPaint;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configureStrokePaint-Q_0CZUI$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;JFIFLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/graphics/AndroidPaint;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->configureStrokePaint-Q_0CZUI$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;JFIFLandroidx/compose/ui/graphics/ColorFilter;I)Landroidx/compose/ui/graphics/AndroidPaint;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawArc-yD3GUKo(JFFJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawArc-yD3GUKo(JFFJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawImage-AZ2fEMs(Landroidx/compose/ui/graphics/ImageBitmap;JJJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;II)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawImage-AZ2fEMs(Landroidx/compose/ui/graphics/ImageBitmap;JJJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;II)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawLine-NGM6Ib0(JJJFIFLandroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawLine-NGM6Ib0(JJJFIFLandroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawPath-GBMwjPU(Landroidx/compose/ui/graphics/Path;Landroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawPath-GBMwjPU(Landroidx/compose/ui/graphics/Path;Landroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawRect-n-J9OG0(JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawRect-n-J9OG0(JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawRoundRect-ZuiqVtQ(Landroidx/compose/ui/graphics/Brush;JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawRoundRect-ZuiqVtQ(Landroidx/compose/ui/graphics/Brush;JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawRoundRect-u-Aw5IA(JJJJLandroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->drawRoundRect-u-Aw5IA(JJJJLandroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getDensity()F\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getDensity()F\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getDrawParams()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getDrawParams()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->modulate-5vOe2sY(JF)J\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->modulate-5vOe2sY(JF)J\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->selectPaint(Landroidx/compose/ui/graphics/drawscope/DrawStyle;)Landroidx/compose/ui/graphics/AndroidPaint;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope;->selectPaint(Landroidx/compose/ui/graphics/drawscope/DrawStyle;)Landroidx/compose/ui/graphics/AndroidPaint;\nLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;-><init>()V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;-><init>()V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component1()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component1()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component2()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component2()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component3()Landroidx/compose/ui/graphics/Canvas;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component3()Landroidx/compose/ui/graphics/Canvas;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component4-NH-jbRc()J\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->component4-NH-jbRc()J\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getCanvas()Landroidx/compose/ui/graphics/Canvas;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getCanvas()Landroidx/compose/ui/graphics/Canvas;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getDensity()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getDensity()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getSize-NH-jbRc()J\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->getSize-NH-jbRc()J\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setCanvas(Landroidx/compose/ui/graphics/Canvas;)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setCanvas(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setDensity(Landroidx/compose/ui/unit/Density;)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setDensity(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setSize-uvyYCjk(J)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$DrawParams;->setSize-uvyYCjk(J)V\nLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;-><init>(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;-><init>(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope;)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->getCanvas()Landroidx/compose/ui/graphics/Canvas;\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->getCanvas()Landroidx/compose/ui/graphics/Canvas;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->getSize-NH-jbRc()J\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->getSize-NH-jbRc()J\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->getTransform()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->getTransform()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->setSize-uvyYCjk(J)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;->setSize-uvyYCjk(J)V\nLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;-><init>(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;-><init>(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->clipPath-mtrdD-E$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;Landroidx/compose/ui/graphics/AndroidPath;)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->clipPath-mtrdD-E$default(Landroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;Landroidx/compose/ui/graphics/AndroidPath;)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->inset(FFFF)V\nHPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->inset(FFFF)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->transform-58bKbWc([F)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->transform-58bKbWc([F)V\nHSPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->translate(FF)V\nPLandroidx/compose/ui/graphics/drawscope/CanvasDrawScopeKt$asDrawTransform$1;->translate(FF)V\nLandroidx/compose/ui/graphics/drawscope/ContentDrawScope;\nLandroidx/compose/ui/graphics/drawscope/DrawContextKt;\nHSPLandroidx/compose/ui/graphics/drawscope/DrawContextKt;-><clinit>()V\nPLandroidx/compose/ui/graphics/drawscope/DrawContextKt;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawContextKt;->getDefaultDensity()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/graphics/drawscope/DrawContextKt;->getDefaultDensity()Landroidx/compose/ui/unit/Density;\nLandroidx/compose/ui/graphics/drawscope/DrawScope;\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawArc-yD3GUKo$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;JFFJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;I)V\nPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawArc-yD3GUKo$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;JFFJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawImage-AZ2fEMs$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/ImageBitmap;JJJFLandroidx/compose/ui/graphics/ColorFilter;II)V\nHPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawImage-AZ2fEMs$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/ImageBitmap;JJJFLandroidx/compose/ui/graphics/ColorFilter;II)V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawLine-NGM6Ib0$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;JJJFII)V\nPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawLine-NGM6Ib0$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;JJJFII)V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawPath-GBMwjPU$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/Path;Landroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/drawscope/Stroke;I)V\nPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawPath-GBMwjPU$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/Path;Landroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/drawscope/Stroke;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawRect-n-J9OG0$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;JJJFLandroidx/compose/ui/graphics/ColorFilter;I)V\nHPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawRect-n-J9OG0$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;JJJFLandroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawRoundRect-ZuiqVtQ$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/Brush;JJJLandroidx/compose/ui/graphics/drawscope/Stroke;I)V\nPLandroidx/compose/ui/graphics/drawscope/DrawScope;->drawRoundRect-ZuiqVtQ$default(Landroidx/compose/ui/graphics/drawscope/DrawScope;Landroidx/compose/ui/graphics/Brush;JJJLandroidx/compose/ui/graphics/drawscope/Stroke;I)V\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->getSize-NH-jbRc()J\nHPLandroidx/compose/ui/graphics/drawscope/DrawScope;->getSize-NH-jbRc()J\nHSPLandroidx/compose/ui/graphics/drawscope/DrawScope;->offsetSize-PENXr5M(JJ)J\nHPLandroidx/compose/ui/graphics/drawscope/DrawScope;->offsetSize-PENXr5M(JJ)J\nLandroidx/compose/ui/graphics/drawscope/DrawStyle;\nHSPLandroidx/compose/ui/graphics/drawscope/DrawStyle;-><init>()V\nPLandroidx/compose/ui/graphics/drawscope/DrawStyle;-><init>()V\nLandroidx/compose/ui/graphics/drawscope/EmptyCanvas;\nHSPLandroidx/compose/ui/graphics/drawscope/EmptyCanvas;-><init>()V\nHPLandroidx/compose/ui/graphics/drawscope/EmptyCanvas;-><init>()V\nLandroidx/compose/ui/graphics/drawscope/Fill;\nHSPLandroidx/compose/ui/graphics/drawscope/Fill;-><clinit>()V\nPLandroidx/compose/ui/graphics/drawscope/Fill;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/drawscope/Fill;-><init>()V\nPLandroidx/compose/ui/graphics/drawscope/Fill;-><init>()V\nLandroidx/compose/ui/graphics/drawscope/Stroke;\nHSPLandroidx/compose/ui/graphics/drawscope/Stroke;-><init>(FFIII)V\nPLandroidx/compose/ui/graphics/drawscope/Stroke;-><init>(FFIII)V\nHSPLandroidx/compose/ui/graphics/drawscope/Stroke;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/graphics/drawscope/Stroke;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/drawscope/Stroke;->getCap-KaPHkGw()I\nPLandroidx/compose/ui/graphics/drawscope/Stroke;->getCap-KaPHkGw()I\nHSPLandroidx/compose/ui/graphics/drawscope/Stroke;->getJoin-LxFBmk8()I\nPLandroidx/compose/ui/graphics/drawscope/Stroke;->getJoin-LxFBmk8()I\nHSPLandroidx/compose/ui/graphics/drawscope/Stroke;->getMiter()F\nPLandroidx/compose/ui/graphics/drawscope/Stroke;->getMiter()F\nHSPLandroidx/compose/ui/graphics/drawscope/Stroke;->getWidth()F\nPLandroidx/compose/ui/graphics/drawscope/Stroke;->getWidth()F\nLandroidx/compose/ui/graphics/painter/Painter;\nHSPLandroidx/compose/ui/graphics/painter/Painter;-><init>()V\nPLandroidx/compose/ui/graphics/painter/Painter;-><init>()V\nHSPLandroidx/compose/ui/graphics/painter/Painter;->draw-x_KDEd0(Landroidx/compose/ui/graphics/drawscope/DrawScope;JFLandroidx/compose/ui/graphics/ColorFilter;)V\nHPLandroidx/compose/ui/graphics/painter/Painter;->draw-x_KDEd0(Landroidx/compose/ui/graphics/drawscope/DrawScope;JFLandroidx/compose/ui/graphics/ColorFilter;)V\nLandroidx/compose/ui/graphics/painter/Painter$drawLambda$1;\nHSPLandroidx/compose/ui/graphics/painter/Painter$drawLambda$1;-><init>(Landroidx/compose/ui/graphics/painter/Painter;)V\nPLandroidx/compose/ui/graphics/painter/Painter$drawLambda$1;-><init>(Landroidx/compose/ui/graphics/painter/Painter;)V\nLandroidx/compose/ui/graphics/vector/DrawCache;\nHSPLandroidx/compose/ui/graphics/vector/DrawCache;-><init>()V\nPLandroidx/compose/ui/graphics/vector/DrawCache;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/DrawCache;->drawCachedImage-CJJAR-o(JLandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/graphics/vector/DrawCache;->drawCachedImage-CJJAR-o(JLandroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/graphics/vector/DrawCache;->drawInto(Landroidx/compose/ui/graphics/drawscope/DrawScope;FLandroidx/compose/ui/graphics/ColorFilter;)V\nHPLandroidx/compose/ui/graphics/vector/DrawCache;->drawInto(Landroidx/compose/ui/graphics/drawscope/DrawScope;FLandroidx/compose/ui/graphics/ColorFilter;)V\nLandroidx/compose/ui/graphics/vector/FloatResult;\nHSPLandroidx/compose/ui/graphics/vector/FloatResult;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/FloatResult;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/FloatResult;->getValue()F\nHPLandroidx/compose/ui/graphics/vector/FloatResult;->getValue()F\nHSPLandroidx/compose/ui/graphics/vector/FloatResult;->isValid()Z\nHPLandroidx/compose/ui/graphics/vector/FloatResult;->isValid()Z\nHSPLandroidx/compose/ui/graphics/vector/FloatResult;->setValid(Z)V\nHPLandroidx/compose/ui/graphics/vector/FloatResult;->setValid(Z)V\nHSPLandroidx/compose/ui/graphics/vector/FloatResult;->setValue(F)V\nHPLandroidx/compose/ui/graphics/vector/FloatResult;->setValue(F)V\nLandroidx/compose/ui/graphics/vector/GroupComponent;\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->getInvalidateListener$ui_release()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->getInvalidateListener$ui_release()Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->getNumChildren()I\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;->getNumChildren()I\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->insertAt(ILandroidx/compose/ui/graphics/vector/VNode;)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->insertAt(ILandroidx/compose/ui/graphics/vector/VNode;)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->remove(II)V\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;->remove(II)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setClipPathData(Ljava/util/List;)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setClipPathData(Ljava/util/List;)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setInvalidateListener$ui_release(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;->setInvalidateListener$ui_release(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setName(Ljava/lang/String;)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setName(Ljava/lang/String;)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setPivotX(F)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setPivotX(F)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setPivotY(F)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setPivotY(F)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setRotation(F)V\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;->setRotation(F)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setScaleX(F)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setScaleX(F)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setScaleY(F)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setScaleY(F)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setTranslationX(F)V\nHPLandroidx/compose/ui/graphics/vector/GroupComponent;->setTranslationX(F)V\nHSPLandroidx/compose/ui/graphics/vector/GroupComponent;->setTranslationY(F)V\nPLandroidx/compose/ui/graphics/vector/GroupComponent;->setTranslationY(F)V\nLandroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/ImageVector;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;-><init>(Ljava/lang/String;FFFFLandroidx/compose/ui/graphics/vector/VectorGroup;JIZ)V\nHPLandroidx/compose/ui/graphics/vector/ImageVector;-><init>(Ljava/lang/String;FFFFLandroidx/compose/ui/graphics/vector/VectorGroup;JIZ)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/vector/ImageVector;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getAutoMirror()Z\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getAutoMirror()Z\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getDefaultHeight-D9Ej5fM()F\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getDefaultHeight-D9Ej5fM()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getDefaultWidth-D9Ej5fM()F\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getDefaultWidth-D9Ej5fM()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getName()Ljava/lang/String;\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getName()Ljava/lang/String;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getRoot()Landroidx/compose/ui/graphics/vector/VectorGroup;\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getRoot()Landroidx/compose/ui/graphics/vector/VectorGroup;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getTintBlendMode-0nO6VwU()I\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getTintBlendMode-0nO6VwU()I\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getTintColor-0d7_KjU()J\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getTintColor-0d7_KjU()J\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getViewportHeight()F\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getViewportHeight()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector;->getViewportWidth()F\nPLandroidx/compose/ui/graphics/vector/ImageVector;->getViewportWidth()F\nHPLandroidx/compose/ui/graphics/vector/ImageVector;->hashCode()I\nLandroidx/compose/ui/graphics/vector/ImageVector$Builder;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;-><init>(Ljava/lang/String;FFFFJIZ)V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;-><init>(Ljava/lang/String;FFFFJIZ)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;-><init>(Ljava/lang/String;FFFFJIZI)V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;-><init>(Ljava/lang/String;FFFFJIZI)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->addGroup(Ljava/lang/String;FFFFFFFLjava/util/List;)V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->addGroup(Ljava/lang/String;FFFFFFFLjava/util/List;)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->addPath-oIyEayM$default(Landroidx/compose/ui/graphics/vector/ImageVector$Builder;Ljava/util/ArrayList;ILandroidx/compose/ui/graphics/SolidColor;FIF)V\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->addPath-oIyEayM$default(Landroidx/compose/ui/graphics/vector/ImageVector$Builder;Ljava/util/ArrayList;ILandroidx/compose/ui/graphics/SolidColor;FIF)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->addPath-oIyEayM(FFFFFFFIIILandroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Brush;Ljava/lang/String;Ljava/util/List;)V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->addPath-oIyEayM(FFFFFFFIIILandroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Brush;Ljava/lang/String;Ljava/util/List;)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->asVectorGroup(Landroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;)Landroidx/compose/ui/graphics/vector/VectorGroup;\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->asVectorGroup(Landroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;)Landroidx/compose/ui/graphics/vector/VectorGroup;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->build()Landroidx/compose/ui/graphics/vector/ImageVector;\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->build()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->clearGroup()V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->clearGroup()V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->ensureNotConsumed()V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder;->ensureNotConsumed()V\nLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;-><init>(Ljava/lang/String;FFFFFFFLjava/util/List;I)V\nHPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;-><init>(Ljava/lang/String;FFFFFFFLjava/util/List;I)V\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getChildren()Ljava/util/List;\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getChildren()Ljava/util/List;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getClipPathData()Ljava/util/List;\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getClipPathData()Ljava/util/List;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getName()Ljava/lang/String;\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getName()Ljava/lang/String;\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getPivotX()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getPivotX()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getPivotY()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getPivotY()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getRotate()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getRotate()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getScaleX()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getScaleX()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getScaleY()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getScaleY()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getTranslationX()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getTranslationX()F\nHSPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getTranslationY()F\nPLandroidx/compose/ui/graphics/vector/ImageVector$Builder$GroupParams;->getTranslationY()F\nLandroidx/compose/ui/graphics/vector/PathBuilder;\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;-><init>()V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->addNode(Landroidx/compose/ui/graphics/vector/PathNode;)V\nHPLandroidx/compose/ui/graphics/vector/PathBuilder;->addNode(Landroidx/compose/ui/graphics/vector/PathNode;)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->arcToRelative(FFZZFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->close()V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->close()V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->curveTo(FFFFFF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->curveTo(FFFFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->curveToRelative(FFFFFF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->curveToRelative(FFFFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->getNodes()Ljava/util/ArrayList;\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->getNodes()Ljava/util/ArrayList;\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->horizontalLineTo(F)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->horizontalLineTo(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->horizontalLineToRelative(F)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->horizontalLineToRelative(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->lineTo(FF)V\nHPLandroidx/compose/ui/graphics/vector/PathBuilder;->lineTo(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->lineToRelative(FF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->lineToRelative(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->moveTo(FF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->moveTo(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->moveToRelative(FF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->moveToRelative(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->reflectiveCurveTo(FFFF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->reflectiveCurveTo(FFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->reflectiveCurveToRelative(FFFF)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->reflectiveCurveToRelative(FFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->verticalLineTo(F)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->verticalLineTo(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathBuilder;->verticalLineToRelative(F)V\nPLandroidx/compose/ui/graphics/vector/PathBuilder;->verticalLineToRelative(F)V\nLandroidx/compose/ui/graphics/vector/PathComponent;\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/PathComponent;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHPLandroidx/compose/ui/graphics/vector/PathComponent;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setFill(Landroidx/compose/ui/graphics/Brush;)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setFill(Landroidx/compose/ui/graphics/Brush;)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setFillAlpha(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setFillAlpha(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setPathData(Ljava/util/List;)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setPathData(Ljava/util/List;)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setPathFillType-oQ8Xj4U(I)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setPathFillType-oQ8Xj4U(I)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setStroke(Landroidx/compose/ui/graphics/Brush;)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setStroke(Landroidx/compose/ui/graphics/Brush;)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeAlpha(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeAlpha(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineCap-BeK7IIE(I)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineCap-BeK7IIE(I)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineJoin-Ww9F2mQ(I)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineJoin-Ww9F2mQ(I)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineMiter(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineMiter(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineWidth(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setStrokeLineWidth(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setTrimPathEnd(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setTrimPathEnd(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setTrimPathOffset(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setTrimPathOffset(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->setTrimPathStart(F)V\nPLandroidx/compose/ui/graphics/vector/PathComponent;->setTrimPathStart(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathComponent;->updateRenderPath()V\nHPLandroidx/compose/ui/graphics/vector/PathComponent;->updateRenderPath()V\nLandroidx/compose/ui/graphics/vector/PathNode;\nHSPLandroidx/compose/ui/graphics/vector/PathNode;-><init>(ZZI)V\nHPLandroidx/compose/ui/graphics/vector/PathNode;-><init>(ZZI)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode;->isCurve()Z\nPLandroidx/compose/ui/graphics/vector/PathNode;->isCurve()Z\nLandroidx/compose/ui/graphics/vector/PathNode$ArcTo;\nLandroidx/compose/ui/graphics/vector/PathNode$Close;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$Close;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/PathNode$Close;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$Close;-><init>()V\nPLandroidx/compose/ui/graphics/vector/PathNode$Close;-><init>()V\nLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;-><init>(FFFFFF)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;-><init>(FFFFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getX1()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getX1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getX2()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getX2()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getX3()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getX3()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getY1()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getY1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getY2()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getY2()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getY3()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->getY3()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$CurveTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;-><init>(F)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;-><init>(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;->getX()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;->getX()F\nPLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;->hashCode()I\nHPLandroidx/compose/ui/graphics/vector/PathNode$HorizontalTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$LineTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;-><init>(FF)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;-><init>(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->getX()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->getX()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->getY()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->getY()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$LineTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;-><init>(FF)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;-><init>(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->getX()F\nPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->getX()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->getY()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->getY()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$MoveTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$QuadTo;\nLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;-><init>(FFFF)V\nPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;-><init>(FFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getX1()F\nPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getX1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getX2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getX2()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getY1()F\nPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getY1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getY2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->getY2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->hashCode()I\nHPLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveCurveTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$ReflectiveQuadTo;\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;-><init>(FFFZZFF)V\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getArcStartDx()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getArcStartDx()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getArcStartDy()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getArcStartDy()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getHorizontalEllipseRadius()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getHorizontalEllipseRadius()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getTheta()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getTheta()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getVerticalEllipseRadius()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->getVerticalEllipseRadius()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->hashCode()I\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->isMoreThanHalf()Z\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->isMoreThanHalf()Z\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->isPositiveArc()Z\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeArcTo;->isPositiveArc()Z\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;-><init>(FFFFFF)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;-><init>(FFFFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDx1()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDx1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDx2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDx2()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDx3()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDx3()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDy1()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDy1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDy2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDy2()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDy3()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->getDy3()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeCurveTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeHorizontalTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeHorizontalTo;-><init>(F)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeHorizontalTo;-><init>(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeHorizontalTo;->getDx()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeHorizontalTo;->getDx()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeHorizontalTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;-><init>(FF)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;-><init>(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;->getDx()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;->getDx()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;->getDy()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;->getDy()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeLineTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;-><init>(FF)V\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;-><init>(FF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;->getDx()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;->getDx()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;->getDy()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;->getDy()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;->hashCode()I\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeMoveTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeQuadTo;\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;-><init>(FFFF)V\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;-><init>(FFFF)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDx1()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDx1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDx2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDx2()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDy1()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDy1()F\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDy2()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->getDy2()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveCurveTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeReflectiveQuadTo;\nLandroidx/compose/ui/graphics/vector/PathNode$RelativeVerticalTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeVerticalTo;-><init>(F)V\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeVerticalTo;-><init>(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$RelativeVerticalTo;->getDy()F\nPLandroidx/compose/ui/graphics/vector/PathNode$RelativeVerticalTo;->getDy()F\nHPLandroidx/compose/ui/graphics/vector/PathNode$RelativeVerticalTo;->hashCode()I\nLandroidx/compose/ui/graphics/vector/PathNode$VerticalTo;\nHSPLandroidx/compose/ui/graphics/vector/PathNode$VerticalTo;-><init>(F)V\nPLandroidx/compose/ui/graphics/vector/PathNode$VerticalTo;-><init>(F)V\nHSPLandroidx/compose/ui/graphics/vector/PathNode$VerticalTo;->getY()F\nPLandroidx/compose/ui/graphics/vector/PathNode$VerticalTo;->getY()F\nLandroidx/compose/ui/graphics/vector/PathNodeKt;\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/PathNodeKt;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;-><init>()V\nPLandroidx/compose/ui/graphics/vector/PathNodeKt;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;->Group(Ljava/lang/String;FFFFFFFLjava/util/List;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/ui/graphics/vector/PathNodeKt;->Group(Ljava/lang/String;FFFFFFFLjava/util/List;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;->Path-9cdaXJ4(Ljava/util/List;ILjava/lang/String;Landroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Brush;FFIIFFFFLandroidx/compose/runtime/Composer;III)V\nHPLandroidx/compose/ui/graphics/vector/PathNodeKt;->Path-9cdaXJ4(Ljava/util/List;ILjava/lang/String;Landroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Brush;FFIIFFFFLandroidx/compose/runtime/Composer;III)V\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;->RenderVectorGroup(Landroidx/compose/ui/graphics/vector/VectorGroup;Ljava/util/Map;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/ui/graphics/vector/PathNodeKt;->RenderVectorGroup(Landroidx/compose/ui/graphics/vector/VectorGroup;Ljava/util/Map;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;->access$getPowersOfTen$cp()[F\nHPLandroidx/compose/ui/graphics/vector/PathNodeKt;->access$getPowersOfTen$cp()[F\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;->rememberVectorPainter(Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/vector/VectorPainter;\nHPLandroidx/compose/ui/graphics/vector/PathNodeKt;->rememberVectorPainter(Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/vector/VectorPainter;\nHSPLandroidx/compose/ui/graphics/vector/PathNodeKt;->rememberVectorPainter-vIP8VLU(FFFFLjava/lang/String;JIZLandroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/graphics/vector/VectorPainter;\nHPLandroidx/compose/ui/graphics/vector/PathNodeKt;->rememberVectorPainter-vIP8VLU(FFFFLjava/lang/String;JIZLandroidx/compose/runtime/internal/ComposableLambdaImpl;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/graphics/vector/VectorPainter;\nLandroidx/compose/ui/graphics/vector/PathParserKt;\nHPLandroidx/compose/ui/graphics/vector/PathParserKt;->drawArc(Landroidx/compose/ui/graphics/Path;DDDDDDDZZ)V\nHSPLandroidx/compose/ui/graphics/vector/PathParserKt;->toPath(Ljava/util/List;Landroidx/compose/ui/graphics/Path;)V\nHPLandroidx/compose/ui/graphics/vector/PathParserKt;->toPath(Ljava/util/List;Landroidx/compose/ui/graphics/Path;)V\nLandroidx/compose/ui/graphics/vector/VNode;\nHSPLandroidx/compose/ui/graphics/vector/VNode;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/VNode;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/VNode;->getInvalidateListener$ui_release()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/ui/graphics/vector/VNode;->getInvalidateListener$ui_release()Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/ui/graphics/vector/VNode;->invalidate()V\nHPLandroidx/compose/ui/graphics/vector/VNode;->invalidate()V\nHSPLandroidx/compose/ui/graphics/vector/VNode;->setInvalidateListener$ui_release(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/graphics/vector/VNode;->setInvalidateListener$ui_release(Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/ui/graphics/vector/VectorApplier;\nHSPLandroidx/compose/ui/graphics/vector/VectorApplier;-><init>(Landroidx/compose/ui/graphics/vector/GroupComponent;)V\nPLandroidx/compose/ui/graphics/vector/VectorApplier;-><init>(Landroidx/compose/ui/graphics/vector/GroupComponent;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorApplier;->asGroup(Landroidx/compose/ui/graphics/vector/VNode;)Landroidx/compose/ui/graphics/vector/GroupComponent;\nPLandroidx/compose/ui/graphics/vector/VectorApplier;->asGroup(Landroidx/compose/ui/graphics/vector/VNode;)Landroidx/compose/ui/graphics/vector/GroupComponent;\nHSPLandroidx/compose/ui/graphics/vector/VectorApplier;->insertBottomUp(ILjava/lang/Object;)V\nPLandroidx/compose/ui/graphics/vector/VectorApplier;->insertBottomUp(ILjava/lang/Object;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorApplier;->insertTopDown(ILjava/lang/Object;)V\nPLandroidx/compose/ui/graphics/vector/VectorApplier;->insertTopDown(ILjava/lang/Object;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorApplier;->onClear()V\nPLandroidx/compose/ui/graphics/vector/VectorApplier;->onClear()V\nLandroidx/compose/ui/graphics/vector/VectorComponent;\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/VectorComponent;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->access$doInvalidate(Landroidx/compose/ui/graphics/vector/VectorComponent;)V\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->access$doInvalidate(Landroidx/compose/ui/graphics/vector/VectorComponent;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;FLandroidx/compose/ui/graphics/ColorFilter;)V\nHPLandroidx/compose/ui/graphics/vector/VectorComponent;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;FLandroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->getRoot()Landroidx/compose/ui/graphics/vector/GroupComponent;\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->getRoot()Landroidx/compose/ui/graphics/vector/GroupComponent;\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->getViewportHeight()F\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->getViewportHeight()F\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->getViewportWidth()F\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->getViewportWidth()F\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->setIntrinsicColorFilter$ui_release(Landroidx/compose/ui/graphics/ColorFilter;)V\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->setIntrinsicColorFilter$ui_release(Landroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->setInvalidateCallback$ui_release(Landroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;)V\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->setInvalidateCallback$ui_release(Landroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->setName(Ljava/lang/String;)V\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->setName(Ljava/lang/String;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->setViewportHeight(F)V\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->setViewportHeight(F)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComponent;->setViewportWidth(F)V\nPLandroidx/compose/ui/graphics/vector/VectorComponent;->setViewportWidth(F)V\nLandroidx/compose/ui/graphics/vector/VectorComposeKt$Group$4;\nLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;-><init>(I)V\nPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;-><init>(I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;-><init>(I)V\nPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;-><init>(I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;->invoke(Landroidx/compose/ui/graphics/vector/GroupComponent;F)V\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;->invoke(Landroidx/compose/ui/graphics/vector/GroupComponent;F)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;->invoke(Landroidx/compose/ui/graphics/vector/PathComponent;F)V\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;->invoke(Landroidx/compose/ui/graphics/vector/PathComponent;F)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path$3;\nLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;->invoke()V\nHPLandroidx/compose/ui/graphics/vector/VectorComposeKt$Path-9cdaXJ4$$inlined$ComposeNode$1;->invoke()V\nLandroidx/compose/ui/graphics/vector/VectorConfig;\nHSPLandroidx/compose/ui/graphics/vector/VectorConfig;->getOrDefault(Landroidx/compose/ui/graphics/vector/PathNodeKt;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorConfig;->getOrDefault(Landroidx/compose/ui/graphics/vector/PathNodeKt;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorGroup;\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;-><init>(Ljava/lang/String;FFFFFFFLjava/util/List;Ljava/util/List;)V\nHPLandroidx/compose/ui/graphics/vector/VectorGroup;-><init>(Ljava/lang/String;FFFFFFFLjava/util/List;Ljava/util/List;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->access$getChildren$p(Landroidx/compose/ui/graphics/vector/VectorGroup;)Ljava/util/List;\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->access$getChildren$p(Landroidx/compose/ui/graphics/vector/VectorGroup;)Ljava/util/List;\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/graphics/vector/VectorGroup;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getClipPathData()Ljava/util/List;\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getClipPathData()Ljava/util/List;\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getName()Ljava/lang/String;\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getName()Ljava/lang/String;\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getPivotX()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getPivotX()F\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getPivotY()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getPivotY()F\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getRotation()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getRotation()F\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getScaleX()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getScaleX()F\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getScaleY()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getScaleY()F\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getTranslationX()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getTranslationX()F\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup;->getTranslationY()F\nPLandroidx/compose/ui/graphics/vector/VectorGroup;->getTranslationY()F\nHPLandroidx/compose/ui/graphics/vector/VectorGroup;->hashCode()I\nLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;-><init>(Landroidx/compose/ui/graphics/vector/VectorGroup;)V\nPLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;-><init>(Landroidx/compose/ui/graphics/vector/VectorGroup;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;->hasNext()Z\nHPLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;->hasNext()Z\nHSPLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;->next()Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorGroup$iterator$1;->next()Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorKt;\nHSPLandroidx/compose/ui/graphics/vector/VectorKt;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorKt;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorKt;->addPathNodes(Ljava/lang/String;)Ljava/util/List;\nHPLandroidx/compose/ui/graphics/vector/VectorKt;->addPathNodes(Ljava/lang/String;)Ljava/util/List;\nHSPLandroidx/compose/ui/graphics/vector/VectorKt;->getEmptyPath()Lkotlin/collections/EmptyList;\nPLandroidx/compose/ui/graphics/vector/VectorKt;->getEmptyPath()Lkotlin/collections/EmptyList;\nLandroidx/compose/ui/graphics/vector/VectorNode;\nHSPLandroidx/compose/ui/graphics/vector/VectorNode;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/VectorNode;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorPainter;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/VectorPainter;-><init>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->RenderVector$ui_release(Ljava/lang/String;FFLkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/ui/graphics/vector/VectorPainter;->RenderVector$ui_release(Ljava/lang/String;FFLkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$getDrawCount$p(Landroidx/compose/ui/graphics/vector/VectorPainter;)I\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$getDrawCount$p(Landroidx/compose/ui/graphics/vector/VectorPainter;)I\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$getInvalidateCount(Landroidx/compose/ui/graphics/vector/VectorPainter;)I\nHPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$getInvalidateCount(Landroidx/compose/ui/graphics/vector/VectorPainter;)I\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$getVector$p(Landroidx/compose/ui/graphics/vector/VectorPainter;)Landroidx/compose/ui/graphics/vector/VectorComponent;\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$getVector$p(Landroidx/compose/ui/graphics/vector/VectorPainter;)Landroidx/compose/ui/graphics/vector/VectorComponent;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$setInvalidateCount(Landroidx/compose/ui/graphics/vector/VectorPainter;I)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->access$setInvalidateCount(Landroidx/compose/ui/graphics/vector/VectorPainter;I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->applyColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->applyColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->getIntrinsicSize-NH-jbRc()J\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->getIntrinsicSize-NH-jbRc()J\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->onDraw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHPLandroidx/compose/ui/graphics/vector/VectorPainter;->onDraw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->setAutoMirror$ui_release(Z)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->setAutoMirror$ui_release(Z)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->setIntrinsicColorFilter$ui_release(Landroidx/compose/ui/graphics/ColorFilter;)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->setIntrinsicColorFilter$ui_release(Landroidx/compose/ui/graphics/ColorFilter;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter;->setSize-uvyYCjk$ui_release(J)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter;->setSize-uvyYCjk$ui_release(J)V\nLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/Composition;)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/Composition;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$2$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$3;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$3;-><init>(Landroidx/compose/ui/graphics/vector/VectorPainter;Ljava/lang/String;FFLkotlin/jvm/functions/Function4;I)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$3;-><init>(Landroidx/compose/ui/graphics/vector/VectorPainter;Ljava/lang/String;FFLkotlin/jvm/functions/Function4;I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorPainter$RenderVector$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nPLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorPainter$composeVector$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$2;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$2;-><init>(Landroidx/compose/ui/graphics/vector/VectorGroup;Ljava/util/Map;II)V\nHPLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$2;-><init>(Landroidx/compose/ui/graphics/vector/VectorGroup;Ljava/util/Map;II)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$config$1;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$config$1;-><init>()V\nHPLandroidx/compose/ui/graphics/vector/VectorPainterKt$RenderVectorGroup$config$1;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorPainterKt$rememberVectorPainter$3;\nHSPLandroidx/compose/ui/graphics/vector/VectorPainterKt$rememberVectorPainter$3;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;)V\nPLandroidx/compose/ui/graphics/vector/VectorPainterKt$rememberVectorPainter$3;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPainterKt$rememberVectorPainter$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/graphics/vector/VectorPainterKt$rememberVectorPainter$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/graphics/vector/VectorPath;\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;-><init>(Ljava/lang/String;Ljava/util/List;ILandroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Brush;FFIIFFFF)V\nHPLandroidx/compose/ui/graphics/vector/VectorPath;-><init>(Ljava/lang/String;Ljava/util/List;ILandroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Brush;FFIIFFFF)V\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getFill()Landroidx/compose/ui/graphics/Brush;\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getFill()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getFillAlpha()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getFillAlpha()F\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getName()Ljava/lang/String;\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getName()Ljava/lang/String;\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getPathData()Ljava/util/List;\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getPathData()Ljava/util/List;\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getPathFillType-Rg-k1Os()I\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getPathFillType-Rg-k1Os()I\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getStroke()Landroidx/compose/ui/graphics/Brush;\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getStroke()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeAlpha()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeAlpha()F\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineCap-KaPHkGw()I\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineCap-KaPHkGw()I\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineJoin-LxFBmk8()I\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineJoin-LxFBmk8()I\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineMiter()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineMiter()F\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineWidth()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getStrokeLineWidth()F\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getTrimPathEnd()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getTrimPathEnd()F\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getTrimPathOffset()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getTrimPathOffset()F\nHSPLandroidx/compose/ui/graphics/vector/VectorPath;->getTrimPathStart()F\nPLandroidx/compose/ui/graphics/vector/VectorPath;->getTrimPathStart()F\nHPLandroidx/compose/ui/graphics/vector/VectorPath;->hashCode()I\nLandroidx/compose/ui/graphics/vector/VectorProperty$Fill;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$Fill;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$Fill;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$Fill;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$Fill;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$FillAlpha;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$FillAlpha;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$FillAlpha;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$FillAlpha;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$FillAlpha;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$PathData;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$PathData;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$PathData;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$PathData;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$PathData;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$PivotX;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotX;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotX;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotX;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotX;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$PivotY;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotY;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotY;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotY;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$PivotY;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$Rotation;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$Rotation;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$Rotation;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$Rotation;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$Rotation;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleX;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleX;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleX;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleX;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleX;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleY;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleY;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleY;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleY;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$ScaleY;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$Stroke;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$Stroke;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$Stroke;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$Stroke;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$Stroke;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeAlpha;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeAlpha;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeAlpha;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeAlpha;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeAlpha;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeLineWidth;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeLineWidth;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeLineWidth;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeLineWidth;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$StrokeLineWidth;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateX;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateX;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateX;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateX;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateX;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateY;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateY;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateY;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateY;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TranslateY;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathEnd;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathEnd;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathEnd;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathEnd;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathEnd;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset;-><init>()V\nLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart;\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart;-><init>()V\nPLandroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart;-><init>()V\nLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getDimension(Landroid/content/res/TypedArray;I)F\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getDimension(Landroid/content/res/TypedArray;I)F\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getFloat(Landroid/content/res/TypedArray;I)F\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getFloat(Landroid/content/res/TypedArray;I)F\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getInt(Landroid/content/res/TypedArray;)I\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getInt(Landroid/content/res/TypedArray;)I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedBoolean(Landroid/content/res/TypedArray;)Z\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedBoolean(Landroid/content/res/TypedArray;)Z\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedComplexColor(Landroid/content/res/TypedArray;Landroid/content/res/Resources$Theme;Ljava/lang/String;I)Landroidx/core/content/res/ComplexColorCompat;\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedComplexColor(Landroid/content/res/TypedArray;Landroid/content/res/Resources$Theme;Ljava/lang/String;I)Landroidx/core/content/res/ComplexColorCompat;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedFloat(Landroid/content/res/TypedArray;Ljava/lang/String;IF)F\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedFloat(Landroid/content/res/TypedArray;Ljava/lang/String;IF)F\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedInt(Landroid/content/res/TypedArray;Ljava/lang/String;II)I\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getNamedInt(Landroid/content/res/TypedArray;Ljava/lang/String;II)I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getString(Landroid/content/res/TypedArray;I)Ljava/lang/String;\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getString(Landroid/content/res/TypedArray;I)Ljava/lang/String;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getXmlParser()Lorg/xmlpull/v1/XmlPullParser;\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->getXmlParser()Lorg/xmlpull/v1/XmlPullParser;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->updateConfig(I)V\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;->updateConfig(I)V\nLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;-><clinit>()V\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;-><clinit>()V\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_CLIP_PATH()[I\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_CLIP_PATH()[I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_GROUP()[I\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_GROUP()[I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_PATH()[I\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_PATH()[I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_TYPE_ARRAY()[I\nPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->getSTYLEABLE_VECTOR_DRAWABLE_TYPE_ARRAY()[I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->obtainBrushFromComplexColor(Landroidx/core/content/res/ComplexColorCompat;)Landroidx/compose/ui/graphics/Brush;\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->obtainBrushFromComplexColor(Landroidx/core/content/res/ComplexColorCompat;)Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->parseCurrentVectorNode(Landroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;Landroidx/compose/ui/graphics/vector/ImageVector$Builder;I)I\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->parseCurrentVectorNode(Landroidx/compose/ui/graphics/vector/compat/AndroidVectorParser;Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;Landroidx/compose/ui/graphics/vector/ImageVector$Builder;I)I\nHSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->seekToStartTag(Landroid/content/res/XmlResourceParser;)V\nHPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->seekToStartTag(Landroid/content/res/XmlResourceParser;)V\nLandroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;\nHSPLandroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;-><init>(Landroid/view/View;)V\nPLandroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;-><init>(Landroid/view/View;)V\nLandroidx/compose/ui/input/InputMode;\nHSPLandroidx/compose/ui/input/InputMode;-><init>(I)V\nPLandroidx/compose/ui/input/InputMode;-><init>(I)V\nHSPLandroidx/compose/ui/input/InputMode;->box-impl(I)Landroidx/compose/ui/input/InputMode;\nPLandroidx/compose/ui/input/InputMode;->box-impl(I)Landroidx/compose/ui/input/InputMode;\nHSPLandroidx/compose/ui/input/InputMode;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/input/InputMode;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/input/InputMode;->unbox-impl()I\nPLandroidx/compose/ui/input/InputMode;->unbox-impl()I\nLandroidx/compose/ui/input/InputModeManagerImpl;\nHSPLandroidx/compose/ui/input/InputModeManagerImpl;-><init>(ILkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/input/InputModeManagerImpl;-><init>(ILkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/input/InputModeManagerImpl;->getInputMode-aOaMEAU()I\nPLandroidx/compose/ui/input/InputModeManagerImpl;->getInputMode-aOaMEAU()I\nHSPLandroidx/compose/ui/input/InputModeManagerImpl;->setInputMode-iuPiT84(I)V\nPLandroidx/compose/ui/input/InputModeManagerImpl;->setInputMode-iuPiT84(I)V\nLandroidx/compose/ui/input/key/KeyInputElement;\nHSPLandroidx/compose/ui/input/key/KeyInputElement;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/input/key/KeyInputElement;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/input/key/KeyInputElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/input/key/KeyInputElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/ui/input/key/KeyInputModifierNode;\nLandroidx/compose/ui/input/key/KeyInputNode;\nHSPLandroidx/compose/ui/input/key/KeyInputNode;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/input/key/KeyInputNode;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/input/key/Key_androidKt;\nHSPLandroidx/compose/ui/input/key/Key_androidKt;->onKeyEvent(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/input/key/Key_androidKt;->onKeyEvent(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/input/nestedscroll/NestedScrollConnection;\nLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;-><init>()V\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;-><init>()V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->getModifierLocalNode$ui_release()Landroidx/compose/ui/modifier/ModifierLocalModifierNode;\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->getModifierLocalNode$ui_release()Landroidx/compose/ui/modifier/ModifierLocalModifierNode;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->setCalculateNestedScrollScope$ui_release(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->setCalculateNestedScrollScope$ui_release(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->setModifierLocalNode$ui_release(Landroidx/compose/ui/modifier/ModifierLocalModifierNode;)V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->setModifierLocalNode$ui_release(Landroidx/compose/ui/modifier/ModifierLocalModifierNode;)V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->setScope$ui_release(Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;->setScope$ui_release(Lkotlinx/coroutines/CoroutineScope;)V\nLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;-><init>(Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;-><init>(Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/ui/input/nestedscroll/NestedScrollModifierKt;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollModifierKt;->nestedScroll(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollModifierKt;->nestedScroll(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;-><init>(Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;-><init>(Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->onAttach()V\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->onAttach()V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->onDetach()V\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->onDetach()V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode;->updateNode$ui_release(Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V\nLandroidx/compose/ui/input/nestedscroll/NestedScrollNode$updateDispatcherFields$1;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode$updateDispatcherFields$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/ui/input/nestedscroll/NestedScrollNode$updateDispatcherFields$1;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt;-><clinit>()V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt;-><clinit>()V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt;->getModifierLocalNestedScroll()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt;->getModifierLocalNestedScroll()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt$ModifierLocalNestedScroll$1;\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt$ModifierLocalNestedScroll$1;-><clinit>()V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt$ModifierLocalNestedScroll$1;-><clinit>()V\nHSPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt$ModifierLocalNestedScroll$1;-><init>()V\nPLandroidx/compose/ui/input/nestedscroll/NestedScrollNodeKt$ModifierLocalNestedScroll$1;-><init>()V\nLandroidx/compose/ui/input/pointer/AndroidPointerIconType;\nHSPLandroidx/compose/ui/input/pointer/AndroidPointerIconType;-><init>(I)V\nPLandroidx/compose/ui/input/pointer/AndroidPointerIconType;-><init>(I)V\nLandroidx/compose/ui/input/pointer/AwaitPointerEventScope;\nPLandroidx/compose/ui/input/pointer/AwaitPointerEventScope;->awaitPointerEvent$default(Landroidx/compose/ui/input/pointer/AwaitPointerEventScope;Lkotlin/coroutines/jvm/internal/BaseContinuationImpl;)Ljava/lang/Object;\nLandroidx/compose/ui/input/pointer/ConsumedData;\nHSPLandroidx/compose/ui/input/pointer/ConsumedData;-><init>(ZZ)V\nHPLandroidx/compose/ui/input/pointer/ConsumedData;-><init>(ZZ)V\nHSPLandroidx/compose/ui/input/pointer/ConsumedData;->getDownChange()Z\nPLandroidx/compose/ui/input/pointer/ConsumedData;->getDownChange()Z\nHSPLandroidx/compose/ui/input/pointer/ConsumedData;->getPositionChange()Z\nPLandroidx/compose/ui/input/pointer/ConsumedData;->getPositionChange()Z\nHSPLandroidx/compose/ui/input/pointer/ConsumedData;->setDownChange()V\nPLandroidx/compose/ui/input/pointer/ConsumedData;->setDownChange()V\nHSPLandroidx/compose/ui/input/pointer/ConsumedData;->setPositionChange()V\nPLandroidx/compose/ui/input/pointer/ConsumedData;->setPositionChange()V\nLandroidx/compose/ui/input/pointer/MotionEventAdapter;\nHSPLandroidx/compose/ui/input/pointer/MotionEventAdapter;-><init>()V\nPLandroidx/compose/ui/input/pointer/MotionEventAdapter;-><init>()V\nHSPLandroidx/compose/ui/input/pointer/MotionEventAdapter;->convertToPointerInputEvent$ui_release(Landroid/view/MotionEvent;Landroidx/compose/ui/input/pointer/PositionCalculator;)Landroidx/compose/ui/input/pointer/PointerInputEvent;\nHPLandroidx/compose/ui/input/pointer/MotionEventAdapter;->convertToPointerInputEvent$ui_release(Landroid/view/MotionEvent;Landroidx/compose/ui/input/pointer/PositionCalculator;)Landroidx/compose/ui/input/pointer/PointerInputEvent;\nLandroidx/compose/ui/input/pointer/Node;\nHSPLandroidx/compose/ui/input/pointer/Node;-><init>(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/input/pointer/Node;-><init>(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/input/pointer/Node;->buildCache(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHPLandroidx/compose/ui/input/pointer/Node;->buildCache(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHSPLandroidx/compose/ui/input/pointer/Node;->cleanUpHits(Landroidx/compose/ui/focus/FocusTransactionManager;)V\nHPLandroidx/compose/ui/input/pointer/Node;->cleanUpHits(Landroidx/compose/ui/focus/FocusTransactionManager;)V\nHSPLandroidx/compose/ui/input/pointer/Node;->dispatchFinalEventPass(Landroidx/compose/ui/focus/FocusTransactionManager;)Z\nHPLandroidx/compose/ui/input/pointer/Node;->dispatchFinalEventPass(Landroidx/compose/ui/focus/FocusTransactionManager;)Z\nHSPLandroidx/compose/ui/input/pointer/Node;->dispatchMainEventPass(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHPLandroidx/compose/ui/input/pointer/Node;->dispatchMainEventPass(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHSPLandroidx/compose/ui/input/pointer/Node;->getModifierNode()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/input/pointer/Node;->getModifierNode()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/input/pointer/Node;->getPointerIds()Landroidx/compose/runtime/IntStack;\nPLandroidx/compose/ui/input/pointer/Node;->getPointerIds()Landroidx/compose/runtime/IntStack;\nLandroidx/compose/ui/input/pointer/NodeParent;\nHSPLandroidx/compose/ui/input/pointer/NodeParent;-><init>()V\nHPLandroidx/compose/ui/input/pointer/NodeParent;-><init>()V\nHSPLandroidx/compose/ui/input/pointer/NodeParent;->buildCache(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHPLandroidx/compose/ui/input/pointer/NodeParent;->buildCache(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHSPLandroidx/compose/ui/input/pointer/NodeParent;->cleanUpHits(Landroidx/compose/ui/focus/FocusTransactionManager;)V\nHPLandroidx/compose/ui/input/pointer/NodeParent;->cleanUpHits(Landroidx/compose/ui/focus/FocusTransactionManager;)V\nHSPLandroidx/compose/ui/input/pointer/NodeParent;->dispatchFinalEventPass(Landroidx/compose/ui/focus/FocusTransactionManager;)Z\nHPLandroidx/compose/ui/input/pointer/NodeParent;->dispatchFinalEventPass(Landroidx/compose/ui/focus/FocusTransactionManager;)Z\nHSPLandroidx/compose/ui/input/pointer/NodeParent;->dispatchMainEventPass(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHPLandroidx/compose/ui/input/pointer/NodeParent;->dispatchMainEventPass(Landroidx/collection/LongSparseArray;Landroidx/compose/ui/layout/LayoutCoordinates;Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHSPLandroidx/compose/ui/input/pointer/NodeParent;->getChildren()Landroidx/compose/runtime/collection/MutableVector;\nPLandroidx/compose/ui/input/pointer/NodeParent;->getChildren()Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/ui/input/pointer/NodeParent;->removeDetachedPointerInputFilters()V\nHPLandroidx/compose/ui/input/pointer/NodeParent;->removeDetachedPointerInputFilters()V\nLandroidx/compose/ui/input/pointer/PointerEvent;\nHSPLandroidx/compose/ui/input/pointer/PointerEvent;-><init>(Ljava/util/List;Landroidx/compose/ui/focus/FocusTransactionManager;)V\nHPLandroidx/compose/ui/input/pointer/PointerEvent;-><init>(Ljava/util/List;Landroidx/compose/ui/focus/FocusTransactionManager;)V\nHSPLandroidx/compose/ui/input/pointer/PointerEvent;->getChanges()Ljava/util/List;\nPLandroidx/compose/ui/input/pointer/PointerEvent;->getChanges()Ljava/util/List;\nHSPLandroidx/compose/ui/input/pointer/PointerEvent;->getMotionEvent$ui_release()Landroid/view/MotionEvent;\nPLandroidx/compose/ui/input/pointer/PointerEvent;->getMotionEvent$ui_release()Landroid/view/MotionEvent;\nHSPLandroidx/compose/ui/input/pointer/PointerEvent;->getType-7fucELk()I\nPLandroidx/compose/ui/input/pointer/PointerEvent;->getType-7fucELk()I\nLandroidx/compose/ui/input/pointer/PointerEventPass;\nHSPLandroidx/compose/ui/input/pointer/PointerEventPass;-><clinit>()V\nPLandroidx/compose/ui/input/pointer/PointerEventPass;-><clinit>()V\nHSPLandroidx/compose/ui/input/pointer/PointerEventPass;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/ui/input/pointer/PointerEventPass;-><init>(Ljava/lang/String;I)V\nLandroidx/compose/ui/input/pointer/PointerEventTimeoutCancellationException;\nLandroidx/compose/ui/input/pointer/PointerIcon;\nHSPLandroidx/compose/ui/input/pointer/PointerIcon;-><clinit>()V\nPLandroidx/compose/ui/input/pointer/PointerIcon;-><clinit>()V\nLandroidx/compose/ui/input/pointer/PointerIcon$Companion;\nHSPLandroidx/compose/ui/input/pointer/PointerIcon$Companion;-><clinit>()V\nPLandroidx/compose/ui/input/pointer/PointerIcon$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/input/pointer/PointerIcon$Companion;-><init>()V\nPLandroidx/compose/ui/input/pointer/PointerIcon$Companion;-><init>()V\nLandroidx/compose/ui/input/pointer/PointerIconKt$pointerHoverIcon$2$onSetIcon$1;\nHSPLandroidx/compose/ui/input/pointer/PointerIconKt$pointerHoverIcon$2$onSetIcon$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/input/pointer/PointerIconKt$pointerHoverIcon$2$onSetIcon$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/input/pointer/PointerIconKt$pointerHoverIcon$2$onSetIcon$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/input/pointer/PointerId;\nPLandroidx/compose/ui/input/pointer/PointerId;-><init>(J)V\nPLandroidx/compose/ui/input/pointer/PointerId;->box-impl(J)Landroidx/compose/ui/input/pointer/PointerId;\nHSPLandroidx/compose/ui/input/pointer/PointerId;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/input/pointer/PointerId;->equals-impl0(JJ)Z\nLandroidx/compose/ui/input/pointer/PointerInputChange;\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;-><init>(JJJZFJJZILjava/util/List;J)V\nHPLandroidx/compose/ui/input/pointer/PointerInputChange;-><init>(JJJZFJJZILjava/util/List;J)V\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;-><init>(JJJZFJJZZIJ)V\nHPLandroidx/compose/ui/input/pointer/PointerInputChange;-><init>(JJJZFJJZZIJ)V\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->consume()V\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->consume()V\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->copy-OHpmEuE$default(Landroidx/compose/ui/input/pointer/PointerInputChange;JJLjava/util/ArrayList;)Landroidx/compose/ui/input/pointer/PointerInputChange;\nHPLandroidx/compose/ui/input/pointer/PointerInputChange;->copy-OHpmEuE$default(Landroidx/compose/ui/input/pointer/PointerInputChange;JJLjava/util/ArrayList;)Landroidx/compose/ui/input/pointer/PointerInputChange;\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getHistorical()Ljava/util/List;\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getHistorical()Ljava/util/List;\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getId-J3iCeTQ()J\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getId-J3iCeTQ()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPosition-F1C5BW0()J\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPosition-F1C5BW0()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPressed()Z\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPressed()Z\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPreviousPosition-F1C5BW0()J\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPreviousPosition-F1C5BW0()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPreviousPressed()Z\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getPreviousPressed()Z\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->getType-T8wyACA()I\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getType-T8wyACA()I\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->getUptimeMillis()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputChange;->isConsumed()Z\nPLandroidx/compose/ui/input/pointer/PointerInputChange;->isConsumed()Z\nLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer;\nHSPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer;-><init>()V\nPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer;-><init>()V\nHSPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer;->produce(Landroidx/compose/ui/input/pointer/PointerInputEvent;Landroidx/compose/ui/input/pointer/PositionCalculator;)Landroidx/compose/ui/focus/FocusTransactionManager;\nHPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer;->produce(Landroidx/compose/ui/input/pointer/PointerInputEvent;Landroidx/compose/ui/input/pointer/PositionCalculator;)Landroidx/compose/ui/focus/FocusTransactionManager;\nLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;\nHSPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;-><init>(JJZ)V\nPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;-><init>(JJZ)V\nHSPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;->getDown()Z\nPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;->getDown()Z\nHSPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;->getPositionOnScreen-F1C5BW0()J\nPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;->getPositionOnScreen-F1C5BW0()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;->getUptime()J\nPLandroidx/compose/ui/input/pointer/PointerInputChangeEventProducer$PointerInputData;->getUptime()J\nLandroidx/compose/ui/input/pointer/PointerInputEvent;\nHSPLandroidx/compose/ui/input/pointer/PointerInputEvent;-><init>(Ljava/util/ArrayList;Landroid/view/MotionEvent;)V\nHPLandroidx/compose/ui/input/pointer/PointerInputEvent;-><init>(Ljava/util/ArrayList;Landroid/view/MotionEvent;)V\nHSPLandroidx/compose/ui/input/pointer/PointerInputEvent;->getMotionEvent()Landroid/view/MotionEvent;\nPLandroidx/compose/ui/input/pointer/PointerInputEvent;->getMotionEvent()Landroid/view/MotionEvent;\nHSPLandroidx/compose/ui/input/pointer/PointerInputEvent;->getPointers()Ljava/util/List;\nPLandroidx/compose/ui/input/pointer/PointerInputEvent;->getPointers()Ljava/util/List;\nLandroidx/compose/ui/input/pointer/PointerInputEventData;\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;-><init>(JJJJZFIZLjava/util/ArrayList;J)V\nHPLandroidx/compose/ui/input/pointer/PointerInputEventData;-><init>(JJJJZFIZLjava/util/ArrayList;J)V\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getDown()Z\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getDown()Z\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getHistorical()Ljava/util/List;\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getHistorical()Ljava/util/List;\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getId-J3iCeTQ()J\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getId-J3iCeTQ()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getIssuesEnterExit()Z\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getIssuesEnterExit()Z\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getPosition-F1C5BW0()J\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getPosition-F1C5BW0()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getPositionOnScreen-F1C5BW0()J\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getPositionOnScreen-F1C5BW0()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getPressure()F\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getPressure()F\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getScrollDelta-F1C5BW0()J\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getScrollDelta-F1C5BW0()J\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getType-T8wyACA()I\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getType-T8wyACA()I\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getUptime()J\nPLandroidx/compose/ui/input/pointer/PointerInputEventData;->getUptime()J\nLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;->process-BIzXfog(Landroidx/compose/ui/input/pointer/PointerInputEvent;Landroidx/compose/ui/input/pointer/PositionCalculator;Z)I\nPLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;->process-BIzXfog(Landroidx/compose/ui/input/pointer/PointerInputEvent;Landroidx/compose/ui/input/pointer/PositionCalculator;Z)I\nPLandroidx/compose/ui/input/pointer/PointerInputResetException;-><init>()V\nHPLandroidx/compose/ui/input/pointer/PointerInputResetException;-><init>()V\nPLandroidx/compose/ui/input/pointer/PointerInputResetException;->fillInStackTrace()Ljava/lang/Throwable;\nHPLandroidx/compose/ui/input/pointer/PointerInputResetException;->fillInStackTrace()Ljava/lang/Throwable;\nLandroidx/compose/ui/input/pointer/PointerInputScope;\nLandroidx/compose/ui/input/pointer/PointerInteropFilter;\nLandroidx/compose/ui/input/pointer/PointerInteropFilter$pointerInputFilter$1;\nLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;\nHSPLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;-><init>(I)V\nPLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;-><init>(I)V\nHSPLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;->box-impl(I)Landroidx/compose/ui/input/pointer/PointerKeyboardModifiers;\nPLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;->box-impl(I)Landroidx/compose/ui/input/pointer/PointerKeyboardModifiers;\nHSPLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/input/pointer/PointerKeyboardModifiers;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/input/pointer/PositionCalculator;\nLandroidx/compose/ui/input/pointer/ProcessResult;\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;-><clinit>()V\nPLandroidx/compose/ui/input/pointer/ProcessResult;-><clinit>()V\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;->changedToDownIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nPLandroidx/compose/ui/input/pointer/ProcessResult;->changedToDownIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;->changedToUp(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nPLandroidx/compose/ui/input/pointer/ProcessResult;->changedToUp(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;->changedToUpIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nPLandroidx/compose/ui/input/pointer/ProcessResult;->changedToUpIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;->getPointerIconDefault()Landroidx/compose/ui/input/pointer/AndroidPointerIconType;\nPLandroidx/compose/ui/input/pointer/ProcessResult;->getPointerIconDefault()Landroidx/compose/ui/input/pointer/AndroidPointerIconType;\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;->positionChangeInternal(Landroidx/compose/ui/input/pointer/PointerInputChange;Z)J\nPLandroidx/compose/ui/input/pointer/ProcessResult;->positionChangeInternal(Landroidx/compose/ui/input/pointer/PointerInputChange;Z)J\nHSPLandroidx/compose/ui/input/pointer/ProcessResult;->positionChangedIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nPLandroidx/compose/ui/input/pointer/ProcessResult;->positionChangedIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z\nLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;\nHSPLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;-><init>(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lkotlin/jvm/functions/Function2;I)V\nHPLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;-><init>(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lkotlin/jvm/functions/Function2;I)V\nHSPLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/input/pointer/SuspendPointerInputElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;-><clinit>()V\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;-><clinit>()V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;->access$getEmptyPointerEvent$p()Landroidx/compose/ui/input/pointer/PointerEvent;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;->access$getEmptyPointerEvent$p()Landroidx/compose/ui/input/pointer/PointerEvent;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;->pointerInput(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;->pointerInput(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNode;\nLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;-><init>(Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;-><init>(Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->access$getCurrentEvent$p(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;)Landroidx/compose/ui/input/pointer/PointerEvent;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->access$getCurrentEvent$p(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;)Landroidx/compose/ui/input/pointer/PointerEvent;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->access$getPointerHandlers$p(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;)Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->awaitPointerEventScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->awaitPointerEventScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->dispatchPointerEvent(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;)V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->dispatchPointerEvent(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;)V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->getPointerInputHandler()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->getPointerInputHandler()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->getSize-YbymL2g()J\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->getSize-YbymL2g()J\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->onDetach()V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->onDetach()V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->resetPointerInputHandler()V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;->resetPointerInputHandler()V\nLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;-><init>(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;Lkotlinx/coroutines/CancellableContinuationImpl;)V\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;-><init>(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->awaitPointerEvent(Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->awaitPointerEvent(Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->cancel(Ljava/lang/Throwable;)V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->cancel(Ljava/lang/Throwable;)V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext;\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->getCurrentEvent()Landroidx/compose/ui/input/pointer/PointerEvent;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->getCurrentEvent()Landroidx/compose/ui/input/pointer/PointerEvent;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->getViewConfiguration()Landroidx/compose/ui/platform/ViewConfiguration;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->offerPointerEvent(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;)V\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->offerPointerEvent(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;)V\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->resumeWith(Ljava/lang/Object;)V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine;->resumeWith(Ljava/lang/Object;)V\nLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;-><init>(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;Lkotlin/coroutines/Continuation;)V\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;-><init>(Landroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/input/pointer/SuspendingPointerInputModifierNodeImpl$onPointerEvent$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/input/pointer/util/DataPointAtTime;\nPLandroidx/compose/ui/input/pointer/util/DataPointAtTime;-><init>(JF)V\nLandroidx/compose/ui/input/pointer/util/VelocityTracker;\nHSPLandroidx/compose/ui/input/pointer/util/VelocityTracker;-><init>()V\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker;-><init>()V\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker;->addPosition-Uv8p0NA(JJ)V\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker;->getCurrentPointerPositionAccumulator-F1C5BW0$ui_release()J\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker;->resetTracking()V\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker;->setCurrentPointerPositionAccumulator-k-4lQ0M$ui_release(J)V\nLandroidx/compose/ui/input/pointer/util/VelocityTracker1D;\nHSPLandroidx/compose/ui/input/pointer/util/VelocityTracker1D;-><init>()V\nHPLandroidx/compose/ui/input/pointer/util/VelocityTracker1D;-><init>()V\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker1D;->addDataPoint(JF)V\nPLandroidx/compose/ui/input/pointer/util/VelocityTracker1D;->resetTracking()V\nPLandroidx/compose/ui/input/pointer/util/VelocityTrackerKt;-><clinit>()V\nPLandroidx/compose/ui/input/pointer/util/VelocityTrackerKt;->addPointerInputChange(Landroidx/compose/ui/input/pointer/util/VelocityTracker;Landroidx/compose/ui/input/pointer/PointerInputChange;)V\nPLandroidx/compose/ui/input/pointer/util/VelocityTrackerKt;->getVelocityTrackerAddPointsFix()Z\nLandroidx/compose/ui/input/rotary/RotaryInputElement;\nHSPLandroidx/compose/ui/input/rotary/RotaryInputElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/input/rotary/RotaryInputElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/input/rotary/RotaryInputElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/input/rotary/RotaryInputElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/ui/input/rotary/RotaryInputModifierKt;\nHSPLandroidx/compose/ui/input/rotary/RotaryInputModifierKt;->onRotaryScrollEvent(Landroidx/compose/ui/Modifier$Companion;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/input/rotary/RotaryInputModifierKt;->onRotaryScrollEvent(Landroidx/compose/ui/Modifier$Companion;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/input/rotary/RotaryInputModifierNode;\nLandroidx/compose/ui/input/rotary/RotaryInputNode;\nHSPLandroidx/compose/ui/input/rotary/RotaryInputNode;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/input/rotary/RotaryInputNode;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/layout/AlignmentLine;\nHSPLandroidx/compose/ui/layout/AlignmentLine;-><init>(Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/layout/AlignmentLine;-><init>(Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/ui/layout/AlignmentLineKt;\nHSPLandroidx/compose/ui/layout/AlignmentLineKt;-><clinit>()V\nPLandroidx/compose/ui/layout/AlignmentLineKt;-><clinit>()V\nHSPLandroidx/compose/ui/layout/AlignmentLineKt;->getFirstBaseline()Landroidx/compose/ui/layout/HorizontalAlignmentLine;\nPLandroidx/compose/ui/layout/AlignmentLineKt;->getFirstBaseline()Landroidx/compose/ui/layout/HorizontalAlignmentLine;\nHSPLandroidx/compose/ui/layout/AlignmentLineKt;->getLastBaseline()Landroidx/compose/ui/layout/HorizontalAlignmentLine;\nPLandroidx/compose/ui/layout/AlignmentLineKt;->getLastBaseline()Landroidx/compose/ui/layout/HorizontalAlignmentLine;\nLandroidx/compose/ui/layout/AlignmentLineKt$FirstBaseline$1;\nHSPLandroidx/compose/ui/layout/AlignmentLineKt$FirstBaseline$1;-><clinit>()V\nPLandroidx/compose/ui/layout/AlignmentLineKt$FirstBaseline$1;-><clinit>()V\nHSPLandroidx/compose/ui/layout/AlignmentLineKt$FirstBaseline$1;-><init>()V\nPLandroidx/compose/ui/layout/AlignmentLineKt$FirstBaseline$1;-><init>()V\nLandroidx/compose/ui/layout/AlignmentLineKt$LastBaseline$1;\nHSPLandroidx/compose/ui/layout/AlignmentLineKt$LastBaseline$1;-><clinit>()V\nPLandroidx/compose/ui/layout/AlignmentLineKt$LastBaseline$1;-><clinit>()V\nHSPLandroidx/compose/ui/layout/AlignmentLineKt$LastBaseline$1;-><init>()V\nPLandroidx/compose/ui/layout/AlignmentLineKt$LastBaseline$1;-><init>()V\nLandroidx/compose/ui/layout/BeyondBoundsLayout;\nLandroidx/compose/ui/layout/BeyondBoundsLayout$BeyondBoundsScope;\nPLandroidx/compose/ui/layout/BeyondBoundsLayoutKt;-><clinit>()V\nPLandroidx/compose/ui/layout/BeyondBoundsLayoutKt;->getModifierLocalBeyondBoundsLayout()Landroidx/compose/ui/modifier/ProvidableModifierLocal;\nLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt;\nHSPLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt;-><clinit>()V\nPLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt;-><clinit>()V\nLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt$lambda-1$1;\nHSPLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt$lambda-1$1;-><clinit>()V\nPLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt$lambda-1$1;-><clinit>()V\nHSPLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt$lambda-1$1;-><init>()V\nPLandroidx/compose/ui/layout/ComposableSingletons$SubcomposeLayoutKt$lambda-1$1;-><init>()V\nLandroidx/compose/ui/layout/ContentScale;\nLandroidx/compose/ui/layout/ContentScale$Companion;\nHSPLandroidx/compose/ui/layout/ContentScale$Companion;-><clinit>()V\nPLandroidx/compose/ui/layout/ContentScale$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/layout/ContentScale$Companion;-><init>()V\nPLandroidx/compose/ui/layout/ContentScale$Companion;-><init>()V\nHSPLandroidx/compose/ui/layout/ContentScale$Companion;->getFit()Lorg/acra/file/CrashReportPersister;\nPLandroidx/compose/ui/layout/ContentScale$Companion;->getFit()Lorg/acra/file/CrashReportPersister;\nLandroidx/compose/ui/layout/FixedScale;\nHSPLandroidx/compose/ui/layout/FixedScale;-><init>()V\nPLandroidx/compose/ui/layout/FixedScale;-><init>()V\nLandroidx/compose/ui/layout/HorizontalAlignmentLine;\nHSPLandroidx/compose/ui/layout/HorizontalAlignmentLine;-><init>(Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/layout/HorizontalAlignmentLine;-><init>(Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/ui/layout/IntrinsicMeasurable;\nLandroidx/compose/ui/layout/IntrinsicMeasureScope;\nLandroidx/compose/ui/layout/LayoutCoordinates;\nLandroidx/compose/ui/layout/LayoutElement;\nHSPLandroidx/compose/ui/layout/LayoutElement;-><init>(Lkotlin/jvm/functions/Function3;)V\nPLandroidx/compose/ui/layout/LayoutElement;-><init>(Lkotlin/jvm/functions/Function3;)V\nHSPLandroidx/compose/ui/layout/LayoutElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/layout/LayoutElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/layout/LayoutElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/layout/LayoutElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/layout/LayoutElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/layout/LayoutElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/ui/layout/LayoutIdElement;\nHSPLandroidx/compose/ui/layout/LayoutIdElement;-><init>(Ljava/lang/Object;)V\nHPLandroidx/compose/ui/layout/LayoutIdElement;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/ui/layout/LayoutIdElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/layout/LayoutIdElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/layout/LayoutIdElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/layout/LayoutIdElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/layout/LayoutIdModifier;\nHSPLandroidx/compose/ui/layout/LayoutIdModifier;-><init>(Ljava/lang/Object;)V\nHPLandroidx/compose/ui/layout/LayoutIdModifier;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/compose/ui/layout/LayoutIdModifier;->getLayoutId()Ljava/lang/Object;\nPLandroidx/compose/ui/layout/LayoutIdModifier;->getLayoutId()Ljava/lang/Object;\nHSPLandroidx/compose/ui/layout/LayoutIdModifier;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/layout/LayoutIdModifier;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/layout/LayoutIdParentData;\nLandroidx/compose/ui/layout/LayoutKt;\nHSPLandroidx/compose/ui/layout/LayoutKt;->ScaleFactor(FF)J\nHPLandroidx/compose/ui/layout/LayoutKt;->ScaleFactor(FF)J\nHSPLandroidx/compose/ui/layout/LayoutKt;->SubcomposeLayout(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/ui/layout/LayoutKt;->SubcomposeLayout(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/ui/layout/LayoutKt;->SubcomposeLayout(Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLandroidx/compose/ui/layout/LayoutKt;->SubcomposeLayout(Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLandroidx/compose/ui/layout/LayoutKt;->access$computeFillMinDimension-iLBOSCw(JJ)F\nHPLandroidx/compose/ui/layout/LayoutKt;->access$computeFillMinDimension-iLBOSCw(JJ)F\nHSPLandroidx/compose/ui/layout/LayoutKt;->boundsInWindow(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/geometry/Rect;\nHPLandroidx/compose/ui/layout/LayoutKt;->boundsInWindow(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/layout/LayoutKt;->findRootCoordinates(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/layout/LayoutCoordinates;\nHPLandroidx/compose/ui/layout/LayoutKt;->findRootCoordinates(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/layout/LayoutCoordinates;\nHSPLandroidx/compose/ui/layout/LayoutKt;->getLayoutId(Landroidx/compose/ui/layout/Measurable;)Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/LayoutKt;->getLayoutId(Landroidx/compose/ui/layout/Measurable;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/layout/LayoutKt;->layout(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/layout/LayoutKt;->layout(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/layout/LayoutKt;->layoutId(Landroidx/compose/ui/Modifier;Ljava/lang/Object;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/layout/LayoutKt;->layoutId(Landroidx/compose/ui/Modifier;Ljava/lang/Object;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/layout/LayoutKt;->modifierMaterializerOf(Landroidx/compose/ui/Modifier;)Landroidx/compose/runtime/internal/ComposableLambdaImpl;\nHPLandroidx/compose/ui/layout/LayoutKt;->modifierMaterializerOf(Landroidx/compose/ui/Modifier;)Landroidx/compose/runtime/internal/ComposableLambdaImpl;\nHSPLandroidx/compose/ui/layout/LayoutKt;->onGloballyPositioned(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nPLandroidx/compose/ui/layout/LayoutKt;->onGloballyPositioned(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/layout/LayoutKt;->onSizeChanged(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/layout/LayoutKt;->onSizeChanged(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHSPLandroidx/compose/ui/layout/LayoutKt;->times-UQTWf7w(JJ)J\nHPLandroidx/compose/ui/layout/LayoutKt;->times-UQTWf7w(JJ)J\nLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;\nHSPLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;-><init>(Landroidx/compose/ui/Modifier;I)V\nHPLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;-><init>(Landroidx/compose/ui/Modifier;I)V\nHSPLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;->invoke-Deg8D_g(Landroidx/compose/runtime/Composer;Landroidx/compose/runtime/Composer;)V\nHPLandroidx/compose/ui/layout/LayoutKt$materializerOf$1;->invoke-Deg8D_g(Landroidx/compose/runtime/Composer;Landroidx/compose/runtime/Composer;)V\nLandroidx/compose/ui/layout/LayoutModifier;\nLandroidx/compose/ui/layout/LayoutModifierImpl;\nHSPLandroidx/compose/ui/layout/LayoutModifierImpl;-><init>(Lkotlin/jvm/functions/Function3;)V\nHPLandroidx/compose/ui/layout/LayoutModifierImpl;-><init>(Lkotlin/jvm/functions/Function3;)V\nHSPLandroidx/compose/ui/layout/LayoutModifierImpl;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/layout/LayoutModifierImpl;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/ui/layout/LayoutModifierImpl;->setMeasureBlock(Lkotlin/jvm/functions/Function3;)V\nPLandroidx/compose/ui/layout/LayoutModifierImpl;->setMeasureBlock(Lkotlin/jvm/functions/Function3;)V\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;-><init>(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;-><init>(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$getCurrentIndex$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)I\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$getCurrentIndex$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)I\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$getRoot$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)Landroidx/compose/ui/node/LayoutNode;\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$getRoot$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$getScope$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$getScope$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$setCurrentIndex$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;I)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->access$setCurrentIndex$p(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;I)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->createMeasurePolicy(Lkotlin/jvm/functions/Function2;)Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->createMeasurePolicy(Lkotlin/jvm/functions/Function2;)Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->disposeCurrentNodes()V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->disposeCurrentNodes()V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->disposeOrReuseStartingFromIndex(I)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->disposeOrReuseStartingFromIndex(I)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->forceRecomposeChildren()V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->forceRecomposeChildren()V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->makeSureStateIsConsistent()V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->makeSureStateIsConsistent()V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->setCompositionContext(Landroidx/compose/runtime/CompositionContext;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->setCompositionContext(Landroidx/compose/runtime/CompositionContext;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->setSlotReusePolicy(Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->setSlotReusePolicy(Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->subcompose(Landroidx/compose/ui/node/LayoutNode;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->subcompose(Landroidx/compose/ui/node/LayoutNode;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->subcompose(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/util/List;\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->subcompose(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/util/List;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->takeNodeFromReusables(Ljava/lang/Object;)Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState;->takeNodeFromReusables(Ljava/lang/Object;)Landroidx/compose/ui/node/LayoutNode;\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;-><init>(Ljava/lang/Object;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;-><init>(Ljava/lang/Object;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getActive()Z\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getActive()Z\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getComposition()Landroidx/compose/runtime/Composition;\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getComposition()Landroidx/compose/runtime/Composition;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getContent()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getContent()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getForceRecompose()Z\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->getForceRecompose()Z\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->setComposition(Landroidx/compose/runtime/Composition;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->setComposition(Landroidx/compose/runtime/Composition;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->setContent(Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->setContent(Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->setForceRecompose(Z)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;->setForceRecompose(Z)V\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$PostLookaheadMeasureScopeImpl;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$PostLookaheadMeasureScopeImpl;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$PostLookaheadMeasureScopeImpl;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->getDensity()F\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->getDensity()F\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->isLookingAhead()Z\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->isLookingAhead()Z\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->setDensity(F)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->setDensity(F)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->setFontScale(F)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->setFontScale(F)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->subcompose(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/util/List;\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$Scope;->subcompose(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/util/List;\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;Lkotlin/jvm/functions/Function2;Ljava/lang/String;)V\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;Lkotlin/jvm/functions/Function2;Ljava/lang/String;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;-><init>(Landroidx/compose/ui/layout/MeasureResult;Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;ILandroidx/compose/ui/layout/MeasureResult;I)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;-><init>(Landroidx/compose/ui/layout/MeasureResult;Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;ILandroidx/compose/ui/layout/MeasureResult;I)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->getAlignmentLines()Ljava/util/Map;\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->getAlignmentLines()Ljava/util/Map;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->getHeight()I\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->getHeight()I\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->getWidth()I\nPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->getWidth()I\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->placeChildren()V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$1;->placeChildren()V\nLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$subcompose$3$1$1;\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$subcompose$3$1$1;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;Lkotlin/jvm/functions/Function2;)V\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$subcompose$3$1$1;-><init>(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState$NodeState;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$subcompose$3$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/LayoutNodeSubcompositionsState$subcompose$3$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/layout/LookaheadLayoutCoordinatesImpl;\nLandroidx/compose/ui/layout/Measurable;\nLandroidx/compose/ui/layout/MeasurePolicy;\nLandroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/ui/layout/MeasureScope;\nHSPLandroidx/compose/ui/layout/MeasureScope;->layout$default(Landroidx/compose/ui/layout/MeasureScope;IILkotlin/jvm/functions/Function1;)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/layout/MeasureScope;->layout$default(Landroidx/compose/ui/layout/MeasureScope;IILkotlin/jvm/functions/Function1;)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/ui/layout/MeasureScope;->layout(IILjava/util/Map;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/layout/MeasureScope;->layout(IILjava/util/Map;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/ui/layout/MeasureScope$layout$1;\nHSPLandroidx/compose/ui/layout/MeasureScope$layout$1;-><init>(IILjava/util/Map;Landroidx/compose/ui/layout/MeasureScope;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/layout/MeasureScope$layout$1;-><init>(IILjava/util/Map;Landroidx/compose/ui/layout/MeasureScope;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/layout/MeasureScope$layout$1;->getAlignmentLines()Ljava/util/Map;\nHPLandroidx/compose/ui/layout/MeasureScope$layout$1;->getAlignmentLines()Ljava/util/Map;\nHSPLandroidx/compose/ui/layout/MeasureScope$layout$1;->getHeight()I\nHPLandroidx/compose/ui/layout/MeasureScope$layout$1;->getHeight()I\nHSPLandroidx/compose/ui/layout/MeasureScope$layout$1;->getWidth()I\nHPLandroidx/compose/ui/layout/MeasureScope$layout$1;->getWidth()I\nHSPLandroidx/compose/ui/layout/MeasureScope$layout$1;->placeChildren()V\nHPLandroidx/compose/ui/layout/MeasureScope$layout$1;->placeChildren()V\nLandroidx/compose/ui/layout/Measured;\nLandroidx/compose/ui/layout/OnGloballyPositionedElement;\nHSPLandroidx/compose/ui/layout/OnGloballyPositionedElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/layout/OnGloballyPositionedElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/layout/OnGloballyPositionedElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/layout/OnGloballyPositionedElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/ui/layout/OnGloballyPositionedNode;\nHSPLandroidx/compose/ui/layout/OnGloballyPositionedNode;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/layout/OnGloballyPositionedNode;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/layout/OnGloballyPositionedNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nPLandroidx/compose/ui/layout/OnGloballyPositionedNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nLandroidx/compose/ui/layout/OnRemeasuredModifier;\nLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;\nHSPLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nPLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V\nHSPLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/OnRemeasuredModifierKt$onSizeChanged$$inlined$debugInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/layout/OnSizeChangedModifier;\nHSPLandroidx/compose/ui/layout/OnSizeChangedModifier;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/layout/OnSizeChangedModifier;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/layout/OnSizeChangedModifier;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/layout/OnSizeChangedModifier;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/layout/OnSizeChangedModifier;->onRemeasured-ozmzZPI(J)V\nPLandroidx/compose/ui/layout/OnSizeChangedModifier;->onRemeasured-ozmzZPI(J)V\nLandroidx/compose/ui/layout/PinnableContainer;\nLandroidx/compose/ui/layout/PinnableContainer$PinnedHandle;\nLandroidx/compose/ui/layout/PinnableContainerKt;\nHSPLandroidx/compose/ui/layout/PinnableContainerKt;-><clinit>()V\nPLandroidx/compose/ui/layout/PinnableContainerKt;-><clinit>()V\nHSPLandroidx/compose/ui/layout/PinnableContainerKt;->getLocalPinnableContainer()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/ui/layout/PinnableContainerKt;->getLocalPinnableContainer()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;\nHSPLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;-><clinit>()V\nPLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;-><clinit>()V\nHSPLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;-><init>(I)V\nPLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;-><init>(I)V\nHSPLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/ui/layout/PinnableContainerKt$LocalPinnableContainer$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/layout/Placeable;\nHSPLandroidx/compose/ui/layout/Placeable;-><init>()V\nHPLandroidx/compose/ui/layout/Placeable;-><init>()V\nHSPLandroidx/compose/ui/layout/Placeable;->access$getApparentToRealOffset-nOcc-ac(Landroidx/compose/ui/layout/Placeable;)J\nHPLandroidx/compose/ui/layout/Placeable;->access$getApparentToRealOffset-nOcc-ac(Landroidx/compose/ui/layout/Placeable;)J\nHSPLandroidx/compose/ui/layout/Placeable;->getApparentToRealOffset-nOcc-ac()J\nPLandroidx/compose/ui/layout/Placeable;->getApparentToRealOffset-nOcc-ac()J\nHSPLandroidx/compose/ui/layout/Placeable;->getHeight()I\nHPLandroidx/compose/ui/layout/Placeable;->getHeight()I\nHSPLandroidx/compose/ui/layout/Placeable;->getLastMeasurementConstraints-msEJaDk$ui_release()J\nPLandroidx/compose/ui/layout/Placeable;->getLastMeasurementConstraints-msEJaDk$ui_release()J\nHSPLandroidx/compose/ui/layout/Placeable;->getMeasuredHeight()I\nPLandroidx/compose/ui/layout/Placeable;->getMeasuredHeight()I\nHSPLandroidx/compose/ui/layout/Placeable;->getMeasuredSize-YbymL2g()J\nHPLandroidx/compose/ui/layout/Placeable;->getMeasuredSize-YbymL2g()J\nHSPLandroidx/compose/ui/layout/Placeable;->getMeasuredWidth()I\nPLandroidx/compose/ui/layout/Placeable;->getMeasuredWidth()I\nHSPLandroidx/compose/ui/layout/Placeable;->getMeasurementConstraints-msEJaDk()J\nPLandroidx/compose/ui/layout/Placeable;->getMeasurementConstraints-msEJaDk()J\nHSPLandroidx/compose/ui/layout/Placeable;->getSize-YbymL2g()J\nPLandroidx/compose/ui/layout/Placeable;->getSize-YbymL2g()J\nHSPLandroidx/compose/ui/layout/Placeable;->getWidth()I\nHPLandroidx/compose/ui/layout/Placeable;->getWidth()I\nHSPLandroidx/compose/ui/layout/Placeable;->onMeasuredSizeChanged()V\nHPLandroidx/compose/ui/layout/Placeable;->onMeasuredSizeChanged()V\nHSPLandroidx/compose/ui/layout/Placeable;->setMeasuredSize-ozmzZPI(J)V\nPLandroidx/compose/ui/layout/Placeable;->setMeasuredSize-ozmzZPI(J)V\nHSPLandroidx/compose/ui/layout/Placeable;->setMeasurementConstraints-BRTryo0(J)V\nHPLandroidx/compose/ui/layout/Placeable;->setMeasurementConstraints-BRTryo0(J)V\nLandroidx/compose/ui/layout/Placeable$PlacementScope;\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;-><clinit>()V\nPLandroidx/compose/ui/layout/Placeable$PlacementScope;-><clinit>()V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;-><init>()V\nPLandroidx/compose/ui/layout/Placeable$PlacementScope;-><init>()V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$getLayoutDelegate$cp()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;\nPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$getLayoutDelegate$cp()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$getParentLayoutDirection$cp()Landroidx/compose/ui/unit/LayoutDirection;\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$getParentLayoutDirection$cp()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$getParentWidth$cp()I\nPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$getParentWidth$cp()I\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$get_coordinates$cp()Landroidx/compose/ui/layout/LayoutCoordinates;\nPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$get_coordinates$cp()Landroidx/compose/ui/layout/LayoutCoordinates;\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$setLayoutDelegate$cp(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$setLayoutDelegate$cp(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$setParentLayoutDirection$cp(Landroidx/compose/ui/unit/LayoutDirection;)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$setParentLayoutDirection$cp(Landroidx/compose/ui/unit/LayoutDirection;)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$setParentWidth$cp(I)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$setParentWidth$cp(I)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$set_coordinates$cp(Landroidx/compose/ui/layout/LayoutCoordinates;)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->access$set_coordinates$cp(Landroidx/compose/ui/layout/LayoutCoordinates;)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;II)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;II)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place(Landroidx/compose/ui/layout/Placeable;IIF)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place(Landroidx/compose/ui/layout/Placeable;IIF)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place-70tqf50$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;J)V\nPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place-70tqf50$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;J)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place-70tqf50(Landroidx/compose/ui/layout/Placeable;JF)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->place-70tqf50(Landroidx/compose/ui/layout/Placeable;JF)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeRelative$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;II)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeRelative$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;II)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeRelativeWithLayer$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;II)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeRelativeWithLayer$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;II)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;IILkotlin/jvm/functions/Function1;I)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;IILkotlin/jvm/functions/Function1;I)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer(Landroidx/compose/ui/layout/Placeable;IIFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer(Landroidx/compose/ui/layout/Placeable;IIFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer-aW-9-wM$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;J)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer-aW-9-wM$default(Landroidx/compose/ui/layout/Placeable$PlacementScope;Landroidx/compose/ui/layout/Placeable;J)V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer-aW-9-wM(Landroidx/compose/ui/layout/Placeable;JFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope;->placeWithLayer-aW-9-wM(Landroidx/compose/ui/layout/Placeable;JFLkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/layout/Placeable$PlacementScope$Companion;\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope$Companion;-><init>()V\nPLandroidx/compose/ui/layout/Placeable$PlacementScope$Companion;-><init>()V\nHSPLandroidx/compose/ui/layout/Placeable$PlacementScope$Companion;->access$configureForPlacingForAlignment(Landroidx/compose/ui/node/LookaheadCapablePlaceable;)Z\nHPLandroidx/compose/ui/layout/Placeable$PlacementScope$Companion;->access$configureForPlacingForAlignment(Landroidx/compose/ui/node/LookaheadCapablePlaceable;)Z\nLandroidx/compose/ui/layout/PlaceableKt;\nHSPLandroidx/compose/ui/layout/PlaceableKt;-><clinit>()V\nPLandroidx/compose/ui/layout/PlaceableKt;-><clinit>()V\nHSPLandroidx/compose/ui/layout/PlaceableKt;->access$getDefaultConstraints$p()J\nPLandroidx/compose/ui/layout/PlaceableKt;->access$getDefaultConstraints$p()J\nHSPLandroidx/compose/ui/layout/PlaceableKt;->access$getDefaultLayerBlock$p()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/layout/PlaceableKt;->access$getDefaultLayerBlock$p()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/ui/layout/Remeasurement;\nLandroidx/compose/ui/layout/RemeasurementModifier;\nLandroidx/compose/ui/layout/RootMeasurePolicy;\nHSPLandroidx/compose/ui/layout/RootMeasurePolicy;-><clinit>()V\nPLandroidx/compose/ui/layout/RootMeasurePolicy;-><clinit>()V\nHSPLandroidx/compose/ui/layout/RootMeasurePolicy;-><init>()V\nPLandroidx/compose/ui/layout/RootMeasurePolicy;-><init>()V\nHSPLandroidx/compose/ui/layout/RootMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nPLandroidx/compose/ui/layout/RootMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;\nLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;\nHSPLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;-><clinit>()V\nPLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;-><clinit>()V\nHSPLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;-><init>(I)V\nPLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;-><init>(I)V\nHSPLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/RootMeasurePolicy$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/layout/ScaleFactor;\nHSPLandroidx/compose/ui/layout/ScaleFactor;-><clinit>()V\nPLandroidx/compose/ui/layout/ScaleFactor;-><clinit>()V\nHSPLandroidx/compose/ui/layout/ScaleFactor;->getScaleX-impl(J)F\nPLandroidx/compose/ui/layout/ScaleFactor;->getScaleX-impl(J)F\nHSPLandroidx/compose/ui/layout/ScaleFactor;->getScaleY-impl(J)F\nHPLandroidx/compose/ui/layout/ScaleFactor;->getScaleY-impl(J)F\nLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$$inlined$ComposeNode$1;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$$inlined$ComposeNode$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$$inlined$ComposeNode$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$$inlined$ComposeNode$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$$inlined$ComposeNode$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$5$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$5$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/State;)V\nHPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$5$1$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$5$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$5$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$6;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$6;-><init>(Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;II)V\nPLandroidx/compose/ui/layout/SubcomposeLayoutKt$SubcomposeLayout$6;-><init>(Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;II)V\nLandroidx/compose/ui/layout/SubcomposeLayoutState;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;-><init>(Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;)V\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;-><init>(Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;)V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->access$getSlotReusePolicy$p(Landroidx/compose/ui/layout/SubcomposeLayoutState;)Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->access$getSlotReusePolicy$p(Landroidx/compose/ui/layout/SubcomposeLayoutState;)Landroidx/compose/ui/layout/SubcomposeSlotReusePolicy;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->access$getState(Landroidx/compose/ui/layout/SubcomposeLayoutState;)Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->access$getState(Landroidx/compose/ui/layout/SubcomposeLayoutState;)Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->access$set_state$p(Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->access$set_state$p(Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->disposeCurrentNodes$ui_release()V\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->disposeCurrentNodes$ui_release()V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->forceRecomposeChildren$ui_release()V\nHPLandroidx/compose/ui/layout/SubcomposeLayoutState;->forceRecomposeChildren$ui_release()V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getSetCompositionContext$ui_release()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getSetCompositionContext$ui_release()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getSetMeasurePolicy$ui_release()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getSetMeasurePolicy$ui_release()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getSetRoot$ui_release()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getSetRoot$ui_release()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getState()Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nPLandroidx/compose/ui/layout/SubcomposeLayoutState;->getState()Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nLandroidx/compose/ui/layout/SubcomposeLayoutState$setRoot$1;\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState$setRoot$1;-><init>(Landroidx/compose/ui/layout/SubcomposeLayoutState;I)V\nPLandroidx/compose/ui/layout/SubcomposeLayoutState$setRoot$1;-><init>(Landroidx/compose/ui/layout/SubcomposeLayoutState;I)V\nHSPLandroidx/compose/ui/layout/SubcomposeLayoutState$setRoot$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/layout/SubcomposeLayoutState$setRoot$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/layout/SubcomposeMeasureScope;\nLandroidx/compose/ui/layout/SubcomposeSlotReusePolicy;\nLandroidx/compose/ui/layout/SubcomposeSlotReusePolicy$SlotIdsSet;\nHSPLandroidx/compose/ui/layout/SubcomposeSlotReusePolicy$SlotIdsSet;-><init>()V\nHPLandroidx/compose/ui/layout/SubcomposeSlotReusePolicy$SlotIdsSet;-><init>()V\nLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;\nHSPLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;-><init>(Landroidx/compose/ui/modifier/ModifierLocalProvider;)V\nPLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;-><init>(Landroidx/compose/ui/modifier/ModifierLocalProvider;)V\nHSPLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;->contains$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;)Z\nPLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;->contains$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;)Z\nHSPLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;->get$ui_release(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nPLandroidx/compose/ui/modifier/BackwardsCompatLocalMap;->get$ui_release(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nLandroidx/compose/ui/modifier/EmptyMap;\nHSPLandroidx/compose/ui/modifier/EmptyMap;-><clinit>()V\nPLandroidx/compose/ui/modifier/EmptyMap;-><clinit>()V\nHSPLandroidx/compose/ui/modifier/EmptyMap;-><init>()V\nPLandroidx/compose/ui/modifier/EmptyMap;-><init>()V\nHSPLandroidx/compose/ui/modifier/EmptyMap;->contains$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;)Z\nPLandroidx/compose/ui/modifier/EmptyMap;->contains$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;)Z\nLandroidx/compose/ui/modifier/ModifierLocal;\nHSPLandroidx/compose/ui/modifier/ModifierLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/modifier/ModifierLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/modifier/ModifierLocal;->getDefaultFactory$ui_release()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/ui/modifier/ModifierLocal;->getDefaultFactory$ui_release()Lkotlin/jvm/functions/Function0;\nLandroidx/compose/ui/modifier/ModifierLocalConsumer;\nLandroidx/compose/ui/modifier/ModifierLocalManager;\nHSPLandroidx/compose/ui/modifier/ModifierLocalManager;-><init>(Landroidx/compose/ui/node/Owner;)V\nPLandroidx/compose/ui/modifier/ModifierLocalManager;-><init>(Landroidx/compose/ui/node/Owner;)V\nHSPLandroidx/compose/ui/modifier/ModifierLocalManager;->invalidate()V\nPLandroidx/compose/ui/modifier/ModifierLocalManager;->invalidate()V\nHSPLandroidx/compose/ui/modifier/ModifierLocalManager;->removedProvider(Landroidx/compose/ui/node/BackwardsCompatNode;Landroidx/compose/ui/modifier/ProvidableModifierLocal;)V\nPLandroidx/compose/ui/modifier/ModifierLocalManager;->removedProvider(Landroidx/compose/ui/node/BackwardsCompatNode;Landroidx/compose/ui/modifier/ProvidableModifierLocal;)V\nHSPLandroidx/compose/ui/modifier/ModifierLocalManager;->triggerUpdates()V\nHPLandroidx/compose/ui/modifier/ModifierLocalManager;->triggerUpdates()V\nLandroidx/compose/ui/modifier/ModifierLocalManager$invalidate$1;\nHSPLandroidx/compose/ui/modifier/ModifierLocalManager$invalidate$1;-><init>(Landroidx/compose/ui/modifier/ModifierLocalManager;)V\nPLandroidx/compose/ui/modifier/ModifierLocalManager$invalidate$1;-><init>(Landroidx/compose/ui/modifier/ModifierLocalManager;)V\nHSPLandroidx/compose/ui/modifier/ModifierLocalManager$invalidate$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/ui/modifier/ModifierLocalManager$invalidate$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/modifier/ModifierLocalModifierNode;\nHSPLandroidx/compose/ui/modifier/ModifierLocalModifierNode;->getCurrent(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nHPLandroidx/compose/ui/modifier/ModifierLocalModifierNode;->getCurrent(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/modifier/ModifierLocalModifierNode;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nHPLandroidx/compose/ui/modifier/ModifierLocalModifierNode;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nLandroidx/compose/ui/modifier/ModifierLocalProvider;\nLandroidx/compose/ui/modifier/ModifierLocalReadScope;\nLandroidx/compose/ui/modifier/ProvidableModifierLocal;\nHSPLandroidx/compose/ui/modifier/ProvidableModifierLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/modifier/ProvidableModifierLocal;-><init>(Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/ui/modifier/SingleLocalMap;\nHSPLandroidx/compose/ui/modifier/SingleLocalMap;-><init>(Landroidx/compose/ui/modifier/ModifierLocal;)V\nHPLandroidx/compose/ui/modifier/SingleLocalMap;-><init>(Landroidx/compose/ui/modifier/ModifierLocal;)V\nHSPLandroidx/compose/ui/modifier/SingleLocalMap;->contains$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;)Z\nPLandroidx/compose/ui/modifier/SingleLocalMap;->contains$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;)Z\nPLandroidx/compose/ui/modifier/SingleLocalMap;->get$ui_release(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/modifier/SingleLocalMap;->set$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;Ljava/lang/Object;)V\nHPLandroidx/compose/ui/modifier/SingleLocalMap;->set$ui_release(Landroidx/compose/ui/modifier/ModifierLocal;Ljava/lang/Object;)V\nLandroidx/compose/ui/node/AlignmentLines;\nHSPLandroidx/compose/ui/node/AlignmentLines;-><init>(Landroidx/compose/ui/node/AlignmentLinesOwner;)V\nHPLandroidx/compose/ui/node/AlignmentLines;-><init>(Landroidx/compose/ui/node/AlignmentLinesOwner;)V\nHSPLandroidx/compose/ui/node/AlignmentLines;->access$addAlignmentLine(Landroidx/compose/ui/node/AlignmentLines;Landroidx/compose/ui/layout/AlignmentLine;ILandroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/AlignmentLines;->access$addAlignmentLine(Landroidx/compose/ui/node/AlignmentLines;Landroidx/compose/ui/layout/AlignmentLine;ILandroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/AlignmentLines;->access$getAlignmentLineMap$p(Landroidx/compose/ui/node/AlignmentLines;)Ljava/util/HashMap;\nPLandroidx/compose/ui/node/AlignmentLines;->access$getAlignmentLineMap$p(Landroidx/compose/ui/node/AlignmentLines;)Ljava/util/HashMap;\nHSPLandroidx/compose/ui/node/AlignmentLines;->getAlignmentLinesOwner()Landroidx/compose/ui/node/AlignmentLinesOwner;\nPLandroidx/compose/ui/node/AlignmentLines;->getAlignmentLinesOwner()Landroidx/compose/ui/node/AlignmentLinesOwner;\nHSPLandroidx/compose/ui/node/AlignmentLines;->getDirty$ui_release()Z\nPLandroidx/compose/ui/node/AlignmentLines;->getDirty$ui_release()Z\nHSPLandroidx/compose/ui/node/AlignmentLines;->getLastCalculation()Ljava/util/HashMap;\nPLandroidx/compose/ui/node/AlignmentLines;->getLastCalculation()Ljava/util/HashMap;\nHSPLandroidx/compose/ui/node/AlignmentLines;->getQueried$ui_release()Z\nPLandroidx/compose/ui/node/AlignmentLines;->getQueried$ui_release()Z\nHSPLandroidx/compose/ui/node/AlignmentLines;->getRequired$ui_release()Z\nHPLandroidx/compose/ui/node/AlignmentLines;->getRequired$ui_release()Z\nHSPLandroidx/compose/ui/node/AlignmentLines;->getUsedDuringParentLayout$ui_release()Z\nPLandroidx/compose/ui/node/AlignmentLines;->getUsedDuringParentLayout$ui_release()Z\nHSPLandroidx/compose/ui/node/AlignmentLines;->onAlignmentsChanged()V\nHPLandroidx/compose/ui/node/AlignmentLines;->onAlignmentsChanged()V\nHSPLandroidx/compose/ui/node/AlignmentLines;->recalculate()V\nHPLandroidx/compose/ui/node/AlignmentLines;->recalculate()V\nHSPLandroidx/compose/ui/node/AlignmentLines;->recalculateQueryOwner()V\nHPLandroidx/compose/ui/node/AlignmentLines;->recalculateQueryOwner()V\nHSPLandroidx/compose/ui/node/AlignmentLines;->reset$ui_release()V\nPLandroidx/compose/ui/node/AlignmentLines;->reset$ui_release()V\nHSPLandroidx/compose/ui/node/AlignmentLines;->setPreviousUsedDuringParentLayout$ui_release(Z)V\nPLandroidx/compose/ui/node/AlignmentLines;->setPreviousUsedDuringParentLayout$ui_release(Z)V\nHSPLandroidx/compose/ui/node/AlignmentLines;->setUsedByModifierLayout$ui_release(Z)V\nPLandroidx/compose/ui/node/AlignmentLines;->setUsedByModifierLayout$ui_release(Z)V\nHSPLandroidx/compose/ui/node/AlignmentLines;->setUsedByModifierMeasurement$ui_release(Z)V\nPLandroidx/compose/ui/node/AlignmentLines;->setUsedByModifierMeasurement$ui_release(Z)V\nHSPLandroidx/compose/ui/node/AlignmentLines;->setUsedDuringParentLayout$ui_release(Z)V\nPLandroidx/compose/ui/node/AlignmentLines;->setUsedDuringParentLayout$ui_release(Z)V\nHSPLandroidx/compose/ui/node/AlignmentLines;->setUsedDuringParentMeasurement$ui_release(Z)V\nPLandroidx/compose/ui/node/AlignmentLines;->setUsedDuringParentMeasurement$ui_release(Z)V\nLandroidx/compose/ui/node/AlignmentLines$recalculate$1;\nHSPLandroidx/compose/ui/node/AlignmentLines$recalculate$1;-><init>(Landroidx/compose/ui/node/LookaheadAlignmentLines;)V\nHPLandroidx/compose/ui/node/AlignmentLines$recalculate$1;-><init>(Landroidx/compose/ui/node/LookaheadAlignmentLines;)V\nHSPLandroidx/compose/ui/node/AlignmentLines$recalculate$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/AlignmentLines$recalculate$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/node/AlignmentLinesOwner;\nLandroidx/compose/ui/node/BackwardsCompatNode;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;-><init>(Landroidx/compose/ui/Modifier$Element;)V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;-><init>(Landroidx/compose/ui/Modifier$Element;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nPLandroidx/compose/ui/node/BackwardsCompatNode;->draw(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->getCurrent(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->getCurrent(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->getElement()Landroidx/compose/ui/Modifier$Element;\nPLandroidx/compose/ui/node/BackwardsCompatNode;->getElement()Landroidx/compose/ui/Modifier$Element;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->getProvidedValues()Landroidx/compose/ui/text/StringKt;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->initializeModifier(Z)V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->initializeModifier(Z)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/node/BackwardsCompatNode;->modifyParentData(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->onAttach()V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->onAttach()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->onDetach()V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->onDetach()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nPLandroidx/compose/ui/node/BackwardsCompatNode;->onGloballyPositioned(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->onMeasureResultChanged()V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->onMeasureResultChanged()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->onPlaced(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->onRemeasured-ozmzZPI(J)V\nPLandroidx/compose/ui/node/BackwardsCompatNode;->onRemeasured-ozmzZPI(J)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->setElement(Landroidx/compose/ui/Modifier$Element;)V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->setElement(Landroidx/compose/ui/Modifier$Element;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->unInitializeModifier()V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->unInitializeModifier()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode;->updateModifierLocalConsumer()V\nHPLandroidx/compose/ui/node/BackwardsCompatNode;->updateModifierLocalConsumer()V\nLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;-><init>(Landroidx/compose/ui/node/BackwardsCompatNode;I)V\nHPLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;-><init>(Landroidx/compose/ui/node/BackwardsCompatNode;I)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;->invoke()V\nHPLandroidx/compose/ui/node/BackwardsCompatNode$initializeModifier$2;->invoke()V\nLandroidx/compose/ui/node/BackwardsCompatNodeKt;\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt;-><clinit>()V\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt;-><clinit>()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt;->access$getDetachedModifierLocalReadScope$p()Landroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt;->access$getDetachedModifierLocalReadScope$p()Landroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt;->access$getUpdateModifierLocalConsumer$p()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt;->access$getUpdateModifierLocalConsumer$p()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt;->access$isChainUpdate(Landroidx/compose/ui/node/BackwardsCompatNode;)Z\nHPLandroidx/compose/ui/node/BackwardsCompatNodeKt;->access$isChainUpdate(Landroidx/compose/ui/node/BackwardsCompatNode;)Z\nLandroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;-><init>()V\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;-><init>()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;->getCurrent(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt$DetachedModifierLocalReadScope$1;->getCurrent(Landroidx/compose/ui/modifier/ProvidableModifierLocal;)Ljava/lang/Object;\nLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;-><clinit>()V\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;-><clinit>()V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;-><init>(I)V\nPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;-><init>(I)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Landroidx/compose/ui/node/AlignmentLinesOwner;)V\nHPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Landroidx/compose/ui/node/AlignmentLinesOwner;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/BackwardsCompatNodeKt$onDrawCacheReadsChanged$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/node/CanFocusChecker;\nHSPLandroidx/compose/ui/node/CanFocusChecker;-><clinit>()V\nPLandroidx/compose/ui/node/CanFocusChecker;-><clinit>()V\nHSPLandroidx/compose/ui/node/CanFocusChecker;-><init>()V\nPLandroidx/compose/ui/node/CanFocusChecker;-><init>()V\nHSPLandroidx/compose/ui/node/CanFocusChecker;->isCanFocusSet()Z\nPLandroidx/compose/ui/node/CanFocusChecker;->isCanFocusSet()Z\nHSPLandroidx/compose/ui/node/CanFocusChecker;->reset()V\nPLandroidx/compose/ui/node/CanFocusChecker;->reset()V\nHSPLandroidx/compose/ui/node/CanFocusChecker;->setCanFocus(Z)V\nPLandroidx/compose/ui/node/CanFocusChecker;->setCanFocus(Z)V\nLandroidx/compose/ui/node/ComposeUiNode;\nHSPLandroidx/compose/ui/node/ComposeUiNode;-><clinit>()V\nPLandroidx/compose/ui/node/ComposeUiNode;-><clinit>()V\nLandroidx/compose/ui/node/ComposeUiNode$Companion;\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;-><clinit>()V\nPLandroidx/compose/ui/node/ComposeUiNode$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;-><init>()V\nPLandroidx/compose/ui/node/ComposeUiNode$Companion;-><init>()V\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getConstructor()Lkotlin/jvm/functions/Function0;\nHPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getConstructor()Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetCompositeKeyHash()Lkotlin/jvm/functions/Function2;\nHPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetCompositeKeyHash()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetMeasurePolicy()Lkotlin/jvm/functions/Function2;\nHPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetMeasurePolicy()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetModifier()Lkotlin/jvm/functions/Function2;\nPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetModifier()Lkotlin/jvm/functions/Function2;\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetResolvedCompositionLocals()Lkotlin/jvm/functions/Function2;\nHPLandroidx/compose/ui/node/ComposeUiNode$Companion;->getSetResolvedCompositionLocals()Lkotlin/jvm/functions/Function2;\nLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;-><clinit>()V\nPLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;-><clinit>()V\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;-><init>(I)V\nPLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;-><init>(I)V\nHSPLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/ComposeUiNode$Companion$SetDensity$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/node/CompositionLocalConsumerModifierNode;\nLandroidx/compose/ui/node/DelegatableNode;\nLandroidx/compose/ui/node/DelegatableNodeKt;\nHSPLandroidx/compose/ui/node/DelegatableNodeKt;->access$addLayoutNodeChildren(Landroidx/compose/runtime/collection/MutableVector;Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/node/DelegatableNodeKt;->access$addLayoutNodeChildren(Landroidx/compose/runtime/collection/MutableVector;Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/node/DelegatableNodeKt;->access$pop(Landroidx/compose/runtime/collection/MutableVector;)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/DelegatableNodeKt;->access$pop(Landroidx/compose/runtime/collection/MutableVector;)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/DelegatableNodeKt;->asLayoutModifierNode(Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/node/LayoutModifierNode;\nHPLandroidx/compose/ui/node/DelegatableNodeKt;->asLayoutModifierNode(Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/node/LayoutModifierNode;\nHSPLandroidx/compose/ui/node/DelegatableNodeKt;->requireCoordinator-64DMado(Landroidx/compose/ui/node/DelegatableNode;I)Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/node/DelegatableNodeKt;->requireCoordinator-64DMado(Landroidx/compose/ui/node/DelegatableNode;I)Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/DelegatableNodeKt;->requireLayoutNode(Landroidx/compose/ui/node/DelegatableNode;)Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/node/DelegatableNodeKt;->requireLayoutNode(Landroidx/compose/ui/node/DelegatableNode;)Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/DelegatableNodeKt;->requireOwner(Landroidx/compose/ui/node/DelegatableNode;)Landroidx/compose/ui/node/Owner;\nHPLandroidx/compose/ui/node/DelegatableNodeKt;->requireOwner(Landroidx/compose/ui/node/DelegatableNode;)Landroidx/compose/ui/node/Owner;\nLandroidx/compose/ui/node/DelegatingNode;\nHSPLandroidx/compose/ui/node/DelegatingNode;-><init>()V\nHPLandroidx/compose/ui/node/DelegatingNode;-><init>()V\nHSPLandroidx/compose/ui/node/DelegatingNode;->delegate(Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/DelegatingNode;->delegate(Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/DelegatingNode;->getDelegate$ui_release()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/node/DelegatingNode;->getDelegate$ui_release()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/DelegatingNode;->getSelfKindSet$ui_release()I\nPLandroidx/compose/ui/node/DelegatingNode;->getSelfKindSet$ui_release()I\nHSPLandroidx/compose/ui/node/DelegatingNode;->markAsAttached$ui_release()V\nHPLandroidx/compose/ui/node/DelegatingNode;->markAsAttached$ui_release()V\nHSPLandroidx/compose/ui/node/DelegatingNode;->markAsDetached$ui_release()V\nHPLandroidx/compose/ui/node/DelegatingNode;->markAsDetached$ui_release()V\nHSPLandroidx/compose/ui/node/DelegatingNode;->runAttachLifecycle$ui_release()V\nHPLandroidx/compose/ui/node/DelegatingNode;->runAttachLifecycle$ui_release()V\nHSPLandroidx/compose/ui/node/DelegatingNode;->runDetachLifecycle$ui_release()V\nHPLandroidx/compose/ui/node/DelegatingNode;->runDetachLifecycle$ui_release()V\nHSPLandroidx/compose/ui/node/DelegatingNode;->updateCoordinator$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/DelegatingNode;->updateCoordinator$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nLandroidx/compose/ui/node/DepthSortedSet;\nHSPLandroidx/compose/ui/node/DepthSortedSet;-><init>()V\nPLandroidx/compose/ui/node/DepthSortedSet;-><init>()V\nHSPLandroidx/compose/ui/node/DepthSortedSet;->add(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/DepthSortedSet;->add(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/DepthSortedSet;->contains(Landroidx/compose/ui/node/LayoutNode;)Z\nHPLandroidx/compose/ui/node/DepthSortedSet;->contains(Landroidx/compose/ui/node/LayoutNode;)Z\nHSPLandroidx/compose/ui/node/DepthSortedSet;->isEmpty()Z\nHPLandroidx/compose/ui/node/DepthSortedSet;->isEmpty()Z\nHSPLandroidx/compose/ui/node/DepthSortedSet;->pop()Landroidx/compose/ui/node/LayoutNode;\nPLandroidx/compose/ui/node/DepthSortedSet;->pop()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/DepthSortedSet;->remove(Landroidx/compose/ui/node/LayoutNode;)Z\nHPLandroidx/compose/ui/node/DepthSortedSet;->remove(Landroidx/compose/ui/node/LayoutNode;)Z\nLandroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;\nHSPLandroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;-><init>()V\nPLandroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;-><init>()V\nHSPLandroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nHPLandroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nLandroidx/compose/ui/node/DrawModifierNode;\nHSPLandroidx/compose/ui/node/DrawModifierNode;->onMeasureResultChanged()V\nHPLandroidx/compose/ui/node/DrawModifierNode;->onMeasureResultChanged()V\nLandroidx/compose/ui/node/GlobalPositionAwareModifierNode;\nLandroidx/compose/ui/node/HitTestResult;\nHSPLandroidx/compose/ui/node/HitTestResult;-><init>()V\nPLandroidx/compose/ui/node/HitTestResult;-><init>()V\nHSPLandroidx/compose/ui/node/HitTestResult;->access$getHitDepth$p(Landroidx/compose/ui/node/HitTestResult;)I\nPLandroidx/compose/ui/node/HitTestResult;->access$getHitDepth$p(Landroidx/compose/ui/node/HitTestResult;)I\nHSPLandroidx/compose/ui/node/HitTestResult;->access$setHitDepth$p(Landroidx/compose/ui/node/HitTestResult;I)V\nPLandroidx/compose/ui/node/HitTestResult;->access$setHitDepth$p(Landroidx/compose/ui/node/HitTestResult;I)V\nHSPLandroidx/compose/ui/node/HitTestResult;->clear()V\nPLandroidx/compose/ui/node/HitTestResult;->clear()V\nHSPLandroidx/compose/ui/node/HitTestResult;->findBestHitDistance-ptXAw2c()J\nHPLandroidx/compose/ui/node/HitTestResult;->findBestHitDistance-ptXAw2c()J\nHSPLandroidx/compose/ui/node/HitTestResult;->get(I)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/HitTestResult;->get(I)Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/HitTestResult;->hasHit()Z\nPLandroidx/compose/ui/node/HitTestResult;->hasHit()Z\nHSPLandroidx/compose/ui/node/HitTestResult;->hitInMinimumTouchTarget(Landroidx/compose/ui/Modifier$Node;FZLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/node/HitTestResult;->hitInMinimumTouchTarget(Landroidx/compose/ui/Modifier$Node;FZLkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/node/HitTestResult;->isEmpty()Z\nPLandroidx/compose/ui/node/HitTestResult;->isEmpty()Z\nHSPLandroidx/compose/ui/node/HitTestResult;->resizeToHitDepth()V\nHPLandroidx/compose/ui/node/HitTestResult;->resizeToHitDepth()V\nHSPLandroidx/compose/ui/node/HitTestResult;->size()I\nHPLandroidx/compose/ui/node/HitTestResult;->size()I\nLandroidx/compose/ui/node/InnerNodeCoordinator;\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;-><clinit>()V\nPLandroidx/compose/ui/node/InnerNodeCoordinator;-><clinit>()V\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/node/InnerNodeCoordinator;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->calculateAlignmentLine(Landroidx/compose/ui/layout/AlignmentLine;)I\nHPLandroidx/compose/ui/node/InnerNodeCoordinator;->calculateAlignmentLine(Landroidx/compose/ui/layout/AlignmentLine;)I\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->getTail()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/InnerNodeCoordinator;->getTail()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->getTail()Landroidx/compose/ui/node/TailModifierNode;\nPLandroidx/compose/ui/node/InnerNodeCoordinator;->getTail()Landroidx/compose/ui/node/TailModifierNode;\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->hitTestChild-YqVAtuI(Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHPLandroidx/compose/ui/node/InnerNodeCoordinator;->hitTestChild-YqVAtuI(Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->measure-BRTryo0(J)Landroidx/compose/ui/layout/Placeable;\nHPLandroidx/compose/ui/node/InnerNodeCoordinator;->measure-BRTryo0(J)Landroidx/compose/ui/layout/Placeable;\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->performDraw(Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/node/InnerNodeCoordinator;->performDraw(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/node/InnerNodeCoordinator;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/InnerNodeCoordinator;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/node/InnerNodeCoordinator$LookaheadDelegateImpl;\nLandroidx/compose/ui/node/IntStack;\nHSPLandroidx/compose/ui/node/IntStack;-><init>(I)V\nHPLandroidx/compose/ui/node/IntStack;-><init>(I)V\nHSPLandroidx/compose/ui/node/IntStack;->get(I)I\nPLandroidx/compose/ui/node/IntStack;->get(I)I\nHSPLandroidx/compose/ui/node/IntStack;->getSize()I\nPLandroidx/compose/ui/node/IntStack;->getSize()I\nHSPLandroidx/compose/ui/node/IntStack;->isNotEmpty()Z\nPLandroidx/compose/ui/node/IntStack;->isNotEmpty()Z\nHSPLandroidx/compose/ui/node/IntStack;->pop()I\nPLandroidx/compose/ui/node/IntStack;->pop()I\nHSPLandroidx/compose/ui/node/IntStack;->pushDiagonal(III)V\nPLandroidx/compose/ui/node/IntStack;->pushDiagonal(III)V\nHSPLandroidx/compose/ui/node/IntStack;->pushRange(IIII)V\nPLandroidx/compose/ui/node/IntStack;->pushRange(IIII)V\nHSPLandroidx/compose/ui/node/IntStack;->sortDiagonals()V\nPLandroidx/compose/ui/node/IntStack;->sortDiagonals()V\nLandroidx/compose/ui/node/IntrinsicsPolicy;\nHSPLandroidx/compose/ui/node/IntrinsicsPolicy;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/IntrinsicsPolicy;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/IntrinsicsPolicy;->updateFrom(Landroidx/compose/ui/layout/MeasurePolicy;)V\nHPLandroidx/compose/ui/node/IntrinsicsPolicy;->updateFrom(Landroidx/compose/ui/layout/MeasurePolicy;)V\nLandroidx/compose/ui/node/LayerPositionalProperties;\nHSPLandroidx/compose/ui/node/LayerPositionalProperties;-><init>()V\nPLandroidx/compose/ui/node/LayerPositionalProperties;-><init>()V\nHSPLandroidx/compose/ui/node/LayerPositionalProperties;->copyFrom(Landroidx/compose/ui/graphics/ReusableGraphicsLayerScope;)V\nHPLandroidx/compose/ui/node/LayerPositionalProperties;->copyFrom(Landroidx/compose/ui/graphics/ReusableGraphicsLayerScope;)V\nHSPLandroidx/compose/ui/node/LayerPositionalProperties;->copyFrom(Landroidx/compose/ui/node/LayerPositionalProperties;)V\nHPLandroidx/compose/ui/node/LayerPositionalProperties;->copyFrom(Landroidx/compose/ui/node/LayerPositionalProperties;)V\nHSPLandroidx/compose/ui/node/LayerPositionalProperties;->hasSameValuesAs(Landroidx/compose/ui/node/LayerPositionalProperties;)Z\nHPLandroidx/compose/ui/node/LayerPositionalProperties;->hasSameValuesAs(Landroidx/compose/ui/node/LayerPositionalProperties;)Z\nLandroidx/compose/ui/node/LayoutAwareModifierNode;\nHSPLandroidx/compose/ui/node/LayoutAwareModifierNode;->onRemeasured-ozmzZPI(J)V\nPLandroidx/compose/ui/node/LayoutAwareModifierNode;->onRemeasured-ozmzZPI(J)V\nLandroidx/compose/ui/node/LayoutModifierNode;\nLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;-><clinit>()V\nPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;-><clinit>()V\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;-><init>(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/node/LayoutModifierNode;)V\nPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;-><init>(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/node/LayoutModifierNode;)V\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->calculateAlignmentLine(Landroidx/compose/ui/layout/AlignmentLine;)I\nHPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->calculateAlignmentLine(Landroidx/compose/ui/layout/AlignmentLine;)I\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->getLayoutModifierNode()Landroidx/compose/ui/node/LayoutModifierNode;\nPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->getLayoutModifierNode()Landroidx/compose/ui/node/LayoutModifierNode;\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->getTail()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->getTail()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->getWrappedNonNull()Landroidx/compose/ui/node/NodeCoordinator;\nPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->getWrappedNonNull()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->measure-BRTryo0(J)Landroidx/compose/ui/layout/Placeable;\nHPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->measure-BRTryo0(J)Landroidx/compose/ui/layout/Placeable;\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->performDraw(Landroidx/compose/ui/graphics/Canvas;)V\nPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->performDraw(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->setLayoutModifierNode$ui_release(Landroidx/compose/ui/node/LayoutModifierNode;)V\nPLandroidx/compose/ui/node/LayoutModifierNodeCoordinator;->setLayoutModifierNode$ui_release(Landroidx/compose/ui/node/LayoutModifierNode;)V\nLandroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/LayoutNode;->$r8$lambda$7po1rmUuVs6tXeBa5BDq-nmH7XI(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/node/LayoutNode;)I\nHPLandroidx/compose/ui/node/LayoutNode;->$r8$lambda$7po1rmUuVs6tXeBa5BDq-nmH7XI(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/node/LayoutNode;)I\nHSPLandroidx/compose/ui/node/LayoutNode;-><clinit>()V\nPLandroidx/compose/ui/node/LayoutNode;-><clinit>()V\nHSPLandroidx/compose/ui/node/LayoutNode;-><init>(IZ)V\nHPLandroidx/compose/ui/node/LayoutNode;-><init>(IZ)V\nHSPLandroidx/compose/ui/node/LayoutNode;-><init>(IZI)V\nHPLandroidx/compose/ui/node/LayoutNode;-><init>(IZI)V\nHSPLandroidx/compose/ui/node/LayoutNode;->access$getConstructor$cp()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/ui/node/LayoutNode;->access$getConstructor$cp()Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/ui/node/LayoutNode;->access$setIgnoreRemeasureRequests$p(Landroidx/compose/ui/node/LayoutNode;Z)V\nPLandroidx/compose/ui/node/LayoutNode;->access$setIgnoreRemeasureRequests$p(Landroidx/compose/ui/node/LayoutNode;Z)V\nHSPLandroidx/compose/ui/node/LayoutNode;->attach$ui_release(Landroidx/compose/ui/node/Owner;)V\nHPLandroidx/compose/ui/node/LayoutNode;->attach$ui_release(Landroidx/compose/ui/node/Owner;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->clearSubtreeIntrinsicsUsage$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->clearSubtreeIntrinsicsUsage$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->clearSubtreePlacementIntrinsicsUsage()V\nHPLandroidx/compose/ui/node/LayoutNode;->clearSubtreePlacementIntrinsicsUsage()V\nHSPLandroidx/compose/ui/node/LayoutNode;->detach$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->detach$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->dispatchOnPositionedCallbacks$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->dispatchOnPositionedCallbacks$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->draw$ui_release(Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/node/LayoutNode;->draw$ui_release(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->getCanMultiMeasure$ui_release()Z\nPLandroidx/compose/ui/node/LayoutNode;->getCanMultiMeasure$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->getChildMeasurables$ui_release()Ljava/util/List;\nHPLandroidx/compose/ui/node/LayoutNode;->getChildMeasurables$ui_release()Ljava/util/List;\nHSPLandroidx/compose/ui/node/LayoutNode;->getChildren$ui_release()Ljava/util/List;\nHPLandroidx/compose/ui/node/LayoutNode;->getChildren$ui_release()Ljava/util/List;\nHSPLandroidx/compose/ui/node/LayoutNode;->getCollapsedSemantics$ui_release()Landroidx/compose/ui/semantics/SemanticsConfiguration;\nHPLandroidx/compose/ui/node/LayoutNode;->getCollapsedSemantics$ui_release()Landroidx/compose/ui/semantics/SemanticsConfiguration;\nHSPLandroidx/compose/ui/node/LayoutNode;->getCompositionLocalMap()Landroidx/compose/runtime/CompositionLocalMap;\nPLandroidx/compose/ui/node/LayoutNode;->getCompositionLocalMap()Landroidx/compose/runtime/CompositionLocalMap;\nHSPLandroidx/compose/ui/node/LayoutNode;->getDensity()Landroidx/compose/ui/unit/Density;\nHPLandroidx/compose/ui/node/LayoutNode;->getDensity()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/node/LayoutNode;->getDepth$ui_release()I\nHPLandroidx/compose/ui/node/LayoutNode;->getDepth$ui_release()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getFoldedChildren$ui_release()Ljava/util/List;\nPLandroidx/compose/ui/node/LayoutNode;->getFoldedChildren$ui_release()Ljava/util/List;\nHSPLandroidx/compose/ui/node/LayoutNode;->getHeight()I\nPLandroidx/compose/ui/node/LayoutNode;->getHeight()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getInnerCoordinator$ui_release()Landroidx/compose/ui/node/InnerNodeCoordinator;\nPLandroidx/compose/ui/node/LayoutNode;->getInnerCoordinator$ui_release()Landroidx/compose/ui/node/InnerNodeCoordinator;\nHSPLandroidx/compose/ui/node/LayoutNode;->getIntrinsicsUsageByParent$ui_release$enumunboxing$()I\nPLandroidx/compose/ui/node/LayoutNode;->getIntrinsicsUsageByParent$ui_release$enumunboxing$()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getLayoutDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;\nHPLandroidx/compose/ui/node/LayoutNode;->getLayoutDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;\nHSPLandroidx/compose/ui/node/LayoutNode;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/node/LayoutNode;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/node/LayoutNode;->getLayoutPending$ui_release()Z\nHPLandroidx/compose/ui/node/LayoutNode;->getLayoutPending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->getLayoutState$ui_release$enumunboxing$()I\nHPLandroidx/compose/ui/node/LayoutNode;->getLayoutState$ui_release$enumunboxing$()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getLookaheadLayoutPending$ui_release()Z\nPLandroidx/compose/ui/node/LayoutNode;->getLookaheadLayoutPending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->getLookaheadMeasurePending$ui_release()Z\nHPLandroidx/compose/ui/node/LayoutNode;->getLookaheadMeasurePending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->getLookaheadPassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$LookaheadPassDelegate;\nPLandroidx/compose/ui/node/LayoutNode;->getLookaheadPassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$LookaheadPassDelegate;\nHSPLandroidx/compose/ui/node/LayoutNode;->getLookaheadRoot$ui_release()Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/node/LayoutNode;->getLookaheadRoot$ui_release()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/LayoutNode;->getMeasurePassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHPLandroidx/compose/ui/node/LayoutNode;->getMeasurePassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHSPLandroidx/compose/ui/node/LayoutNode;->getMeasurePending$ui_release()Z\nHPLandroidx/compose/ui/node/LayoutNode;->getMeasurePending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->getMeasurePolicy()Landroidx/compose/ui/layout/MeasurePolicy;\nPLandroidx/compose/ui/node/LayoutNode;->getMeasurePolicy()Landroidx/compose/ui/layout/MeasurePolicy;\nHSPLandroidx/compose/ui/node/LayoutNode;->getNeedsOnPositionedDispatch$ui_release()Z\nPLandroidx/compose/ui/node/LayoutNode;->getNeedsOnPositionedDispatch$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->getNodes$ui_release()Landroidx/compose/ui/node/NodeChain;\nPLandroidx/compose/ui/node/LayoutNode;->getNodes$ui_release()Landroidx/compose/ui/node/NodeChain;\nHSPLandroidx/compose/ui/node/LayoutNode;->getOuterCoordinator$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/node/LayoutNode;->getOuterCoordinator$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/LayoutNode;->getOwner$ui_release()Landroidx/compose/ui/node/Owner;\nPLandroidx/compose/ui/node/LayoutNode;->getOwner$ui_release()Landroidx/compose/ui/node/Owner;\nHSPLandroidx/compose/ui/node/LayoutNode;->getParent$ui_release()Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/node/LayoutNode;->getParent$ui_release()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/LayoutNode;->getPlaceOrder$ui_release()I\nPLandroidx/compose/ui/node/LayoutNode;->getPlaceOrder$ui_release()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getSemanticsId()I\nPLandroidx/compose/ui/node/LayoutNode;->getSemanticsId()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getSubcompositionsState$ui_release()Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nPLandroidx/compose/ui/node/LayoutNode;->getSubcompositionsState$ui_release()Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;\nHSPLandroidx/compose/ui/node/LayoutNode;->getViewConfiguration()Landroidx/compose/ui/platform/ViewConfiguration;\nPLandroidx/compose/ui/node/LayoutNode;->getViewConfiguration()Landroidx/compose/ui/platform/ViewConfiguration;\nHSPLandroidx/compose/ui/node/LayoutNode;->getWidth()I\nPLandroidx/compose/ui/node/LayoutNode;->getWidth()I\nHSPLandroidx/compose/ui/node/LayoutNode;->getZSortedChildren()Landroidx/compose/runtime/collection/MutableVector;\nHPLandroidx/compose/ui/node/LayoutNode;->getZSortedChildren()Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/ui/node/LayoutNode;->get_children$ui_release()Landroidx/compose/runtime/collection/MutableVector;\nHPLandroidx/compose/ui/node/LayoutNode;->get_children$ui_release()Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/compose/ui/node/LayoutNode;->hitTest-M_7yMNQ$ui_release(JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHPLandroidx/compose/ui/node/LayoutNode;->hitTest-M_7yMNQ$ui_release(JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/LayoutNode;->insertAt$ui_release(ILandroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/LayoutNode;->insertAt$ui_release(ILandroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->invalidateLayer$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->invalidateLayer$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->invalidateLayers$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->invalidateLayers$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->invalidateMeasurements$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->invalidateMeasurements$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->invalidateParentData$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->invalidateParentData$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->invalidateSemantics$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->invalidateSemantics$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->invalidateUnfoldedVirtualChildren()V\nPLandroidx/compose/ui/node/LayoutNode;->invalidateUnfoldedVirtualChildren()V\nHSPLandroidx/compose/ui/node/LayoutNode;->isAttached()Z\nHPLandroidx/compose/ui/node/LayoutNode;->isAttached()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->isPlaced()Z\nHPLandroidx/compose/ui/node/LayoutNode;->isPlaced()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->isValidOwnerScope()Z\nHPLandroidx/compose/ui/node/LayoutNode;->isValidOwnerScope()Z\nHSPLandroidx/compose/ui/node/LayoutNode;->markLayoutPending$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->markLayoutPending$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->markMeasurePending$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->markMeasurePending$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->onChildRemoved(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/LayoutNode;->onChildRemoved(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->onRelease()V\nHPLandroidx/compose/ui/node/LayoutNode;->onRelease()V\nHSPLandroidx/compose/ui/node/LayoutNode;->onZSortedChildrenInvalidated$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->onZSortedChildrenInvalidated$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->place$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->place$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->remeasure-_Sx5XlM$ui_release$default(Landroidx/compose/ui/node/LayoutNode;)Z\nHPLandroidx/compose/ui/node/LayoutNode;->remeasure-_Sx5XlM$ui_release$default(Landroidx/compose/ui/node/LayoutNode;)Z\nHSPLandroidx/compose/ui/node/LayoutNode;->remeasure-_Sx5XlM$ui_release(Landroidx/compose/ui/unit/Constraints;)Z\nHPLandroidx/compose/ui/node/LayoutNode;->remeasure-_Sx5XlM$ui_release(Landroidx/compose/ui/unit/Constraints;)Z\nHSPLandroidx/compose/ui/node/LayoutNode;->removeAll$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->removeAll$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->removeAt$ui_release(II)V\nPLandroidx/compose/ui/node/LayoutNode;->removeAt$ui_release(II)V\nHSPLandroidx/compose/ui/node/LayoutNode;->replace$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->replace$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->requestRelayout$ui_release(Z)V\nPLandroidx/compose/ui/node/LayoutNode;->requestRelayout$ui_release(Z)V\nHSPLandroidx/compose/ui/node/LayoutNode;->requestRemeasure$ui_release$default(Landroidx/compose/ui/node/LayoutNode;ZI)V\nHPLandroidx/compose/ui/node/LayoutNode;->requestRemeasure$ui_release$default(Landroidx/compose/ui/node/LayoutNode;ZI)V\nHSPLandroidx/compose/ui/node/LayoutNode;->rescheduleRemeasureOrRelayout$ui_release(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/LayoutNode;->rescheduleRemeasureOrRelayout$ui_release(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->resetSubtreeIntrinsicsUsage$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->resetSubtreeIntrinsicsUsage$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->setCanMultiMeasure$ui_release(Z)V\nPLandroidx/compose/ui/node/LayoutNode;->setCanMultiMeasure$ui_release(Z)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setCompositionLocalMap(Landroidx/compose/runtime/CompositionLocalMap;)V\nHPLandroidx/compose/ui/node/LayoutNode;->setCompositionLocalMap(Landroidx/compose/runtime/CompositionLocalMap;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setDensity(Landroidx/compose/ui/unit/Density;)V\nHPLandroidx/compose/ui/node/LayoutNode;->setDensity(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setInnerLayerCoordinatorIsDirty$ui_release()V\nPLandroidx/compose/ui/node/LayoutNode;->setInnerLayerCoordinatorIsDirty$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNode;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)V\nPLandroidx/compose/ui/node/LayoutNode;->setLayoutDirection(Landroidx/compose/ui/unit/LayoutDirection;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setLookaheadRoot(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/LayoutNode;->setLookaheadRoot(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setMeasurePolicy(Landroidx/compose/ui/layout/MeasurePolicy;)V\nHPLandroidx/compose/ui/node/LayoutNode;->setMeasurePolicy(Landroidx/compose/ui/layout/MeasurePolicy;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setModifier(Landroidx/compose/ui/Modifier;)V\nHPLandroidx/compose/ui/node/LayoutNode;->setModifier(Landroidx/compose/ui/Modifier;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setNeedsOnPositionedDispatch$ui_release(Z)V\nPLandroidx/compose/ui/node/LayoutNode;->setNeedsOnPositionedDispatch$ui_release(Z)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setSubcompositionsState$ui_release(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nPLandroidx/compose/ui/node/LayoutNode;->setSubcompositionsState$ui_release(Landroidx/compose/ui/layout/LayoutNodeSubcompositionsState;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->setViewConfiguration(Landroidx/compose/ui/platform/ViewConfiguration;)V\nHPLandroidx/compose/ui/node/LayoutNode;->setViewConfiguration(Landroidx/compose/ui/platform/ViewConfiguration;)V\nHSPLandroidx/compose/ui/node/LayoutNode;->updateChildrenIfDirty$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNode;->updateChildrenIfDirty$ui_release()V\nLandroidx/compose/ui/node/LayoutNode$$ExternalSyntheticLambda0;\nHSPLandroidx/compose/ui/node/LayoutNode$$ExternalSyntheticLambda0;-><init>(I)V\nPLandroidx/compose/ui/node/LayoutNode$$ExternalSyntheticLambda0;-><init>(I)V\nHSPLandroidx/compose/ui/node/LayoutNode$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nHPLandroidx/compose/ui/node/LayoutNode$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;\nHSPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;-><clinit>()V\nPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;-><clinit>()V\nHSPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;-><init>(I)V\nPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;-><init>(I)V\nHSPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;->invoke()Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;->invoke()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/LayoutNode$Companion$Constructor$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/node/LayoutNode$Companion$DummyViewConfiguration$1;\nHSPLandroidx/compose/ui/node/LayoutNode$Companion$DummyViewConfiguration$1;-><init>()V\nPLandroidx/compose/ui/node/LayoutNode$Companion$DummyViewConfiguration$1;-><init>()V\nLandroidx/compose/ui/node/LayoutNode$Companion$ErrorMeasurePolicy$1;\nHSPLandroidx/compose/ui/node/LayoutNode$Companion$ErrorMeasurePolicy$1;-><init>()V\nPLandroidx/compose/ui/node/LayoutNode$Companion$ErrorMeasurePolicy$1;-><init>()V\nLandroidx/compose/ui/node/LayoutNode$NoIntrinsicsMeasurePolicy;\nHSPLandroidx/compose/ui/node/LayoutNode$NoIntrinsicsMeasurePolicy;-><init>(Ljava/lang/String;)V\nPLandroidx/compose/ui/node/LayoutNode$NoIntrinsicsMeasurePolicy;-><init>(Ljava/lang/String;)V\nLandroidx/compose/ui/node/LayoutNode$WhenMappings;\nHSPLandroidx/compose/ui/node/LayoutNode$WhenMappings;-><clinit>()V\nPLandroidx/compose/ui/node/LayoutNode$WhenMappings;-><clinit>()V\nLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;\nHSPLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;->invoke()V\nHPLandroidx/compose/ui/node/LayoutNode$_foldedChildren$1;->invoke()V\nLandroidx/compose/ui/node/LayoutNode$collapsedSemantics$1;\nHSPLandroidx/compose/ui/node/LayoutNode$collapsedSemantics$1;-><init>(Landroidx/compose/ui/node/LayoutNode;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nPLandroidx/compose/ui/node/LayoutNode$collapsedSemantics$1;-><init>(Landroidx/compose/ui/node/LayoutNode;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLandroidx/compose/ui/node/LayoutNode$collapsedSemantics$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/LayoutNode$collapsedSemantics$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/node/LayoutNodeDrawScope;\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;-><init>()V\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;-><init>()V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawArc-yD3GUKo(JFFJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawArc-yD3GUKo(JFFJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawContent()V\nHPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawContent()V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawDirect-x_KDEd0$ui_release(Landroidx/compose/ui/graphics/Canvas;JLandroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/node/DrawModifierNode;)V\nHPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawDirect-x_KDEd0$ui_release(Landroidx/compose/ui/graphics/Canvas;JLandroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/node/DrawModifierNode;)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawImage-AZ2fEMs(Landroidx/compose/ui/graphics/ImageBitmap;JJJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;II)V\nHPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawImage-AZ2fEMs(Landroidx/compose/ui/graphics/ImageBitmap;JJJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;II)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawLine-NGM6Ib0(JJJFIFLandroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawLine-NGM6Ib0(JJJFIFLandroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawRect-n-J9OG0(JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawRect-n-J9OG0(JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawRoundRect-ZuiqVtQ(Landroidx/compose/ui/graphics/Brush;JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawRoundRect-ZuiqVtQ(Landroidx/compose/ui/graphics/Brush;JJJFLandroidx/compose/ui/graphics/drawscope/DrawStyle;Landroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawRoundRect-u-Aw5IA(JJJJLandroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)V\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->drawRoundRect-u-Aw5IA(JJJJLandroidx/compose/ui/graphics/drawscope/DrawStyle;FLandroidx/compose/ui/graphics/ColorFilter;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/CanvasDrawScope$drawContext$1;\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->getSize-NH-jbRc()J\nHPLandroidx/compose/ui/node/LayoutNodeDrawScope;->getSize-NH-jbRc()J\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->roundToPx-0680j_4(F)I\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->roundToPx-0680j_4(F)I\nHSPLandroidx/compose/ui/node/LayoutNodeDrawScope;->toPx-0680j_4(F)F\nPLandroidx/compose/ui/node/LayoutNodeDrawScope;->toPx-0680j_4(F)F\nLandroidx/compose/ui/node/LayoutNodeKt;\nHSPLandroidx/compose/ui/node/LayoutNodeKt;-><clinit>()V\nPLandroidx/compose/ui/node/LayoutNodeKt;-><clinit>()V\nHSPLandroidx/compose/ui/node/LayoutNodeKt;->access$getDefaultDensity$p()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/node/LayoutNodeKt;->access$getDefaultDensity$p()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/node/LayoutNodeKt;->requireOwner(Landroidx/compose/ui/node/LayoutNode;)Landroidx/compose/ui/node/Owner;\nHPLandroidx/compose/ui/node/LayoutNodeKt;->requireOwner(Landroidx/compose/ui/node/LayoutNode;)Landroidx/compose/ui/node/Owner;\nLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$getLayoutNode$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$getLayoutNode$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$getLayoutPendingForAlignment$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$getLayoutPendingForAlignment$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$getNextChildPlaceOrder$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)I\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$getNextChildPlaceOrder$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$isOutMostLookaheadRoot(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;Landroidx/compose/ui/node/LayoutNode;)Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$isOutMostLookaheadRoot(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;Landroidx/compose/ui/node/LayoutNode;)Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$performMeasure-BRTryo0(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;J)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$performMeasure-BRTryo0(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;J)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setLayoutPending$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;Z)V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setLayoutPending$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;Z)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setLayoutPendingForAlignment$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setLayoutPendingForAlignment$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setLayoutState$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;I)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setLayoutState$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setNextChildPlaceOrder$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;I)V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->access$setNextChildPlaceOrder$p(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;I)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getAlignmentLinesOwner$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getAlignmentLinesOwner$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getChildrenAccessingCoordinatesDuringPlacement()I\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getChildrenAccessingCoordinatesDuringPlacement()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getCoordinatesAccessedDuringModifierPlacement()Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getCoordinatesAccessedDuringModifierPlacement()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getCoordinatesAccessedDuringPlacement()Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getCoordinatesAccessedDuringPlacement()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getHeight$ui_release()I\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getHeight$ui_release()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLastConstraints-DWUhwKw()Landroidx/compose/ui/unit/Constraints;\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLastConstraints-DWUhwKw()Landroidx/compose/ui/unit/Constraints;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLayoutPending$ui_release()Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLayoutPending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLayoutState$ui_release$enumunboxing$()I\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLayoutState$ui_release$enumunboxing$()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLookaheadLayoutPending$ui_release()Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLookaheadLayoutPending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLookaheadMeasurePending$ui_release()Z\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLookaheadMeasurePending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLookaheadPassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$LookaheadPassDelegate;\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getLookaheadPassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$LookaheadPassDelegate;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getMeasurePassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getMeasurePassDelegate$ui_release()Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getMeasurePending$ui_release()Z\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getMeasurePending$ui_release()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getOuterCoordinator()Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getOuterCoordinator()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getWidth$ui_release()I\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->getWidth$ui_release()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->invalidateParentData()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->invalidateParentData()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->isOutMostLookaheadRoot(Landroidx/compose/ui/node/LayoutNode;)Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->isOutMostLookaheadRoot(Landroidx/compose/ui/node/LayoutNode;)Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->markChildrenDirty()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->markChildrenDirty()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->markLayoutPending$ui_release()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->markLayoutPending$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->markMeasurePending$ui_release()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->markMeasurePending$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->onCoordinatesUsed()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->onCoordinatesUsed()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->resetAlignmentLines()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->resetAlignmentLines()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->setCoordinatesAccessedDuringModifierPlacement(Z)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->setCoordinatesAccessedDuringModifierPlacement(Z)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->setCoordinatesAccessedDuringPlacement(Z)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->setCoordinatesAccessedDuringPlacement(Z)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->updateParentData()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate;->updateParentData()V\nLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$LookaheadPassDelegate;\nLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;-><init>(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;-><init>(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->access$checkChildrenPlaceOrderForUpdates(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->access$checkChildrenPlaceOrderForUpdates(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->access$clearPlaceOrder(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->access$clearPlaceOrder(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->calculateAlignmentLines()Ljava/util/HashMap;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->calculateAlignmentLines()Ljava/util/HashMap;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->forEachChildAlignmentLinesOwner(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->forEachChildAlignmentLinesOwner(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->get(Landroidx/compose/ui/layout/AlignmentLine;)I\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->get(Landroidx/compose/ui/layout/AlignmentLine;)I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getAlignmentLines()Landroidx/compose/ui/node/LookaheadAlignmentLines;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getAlignmentLines()Landroidx/compose/ui/node/LookaheadAlignmentLines;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getChildDelegates$ui_release()Ljava/util/List;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getChildDelegates$ui_release()Ljava/util/List;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getInnerCoordinator()Landroidx/compose/ui/node/InnerNodeCoordinator;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getInnerCoordinator()Landroidx/compose/ui/node/InnerNodeCoordinator;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getLastConstraints-DWUhwKw()Landroidx/compose/ui/unit/Constraints;\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getLastConstraints-DWUhwKw()Landroidx/compose/ui/unit/Constraints;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getMeasuredByParent$ui_release$enumunboxing$()I\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getMeasuredByParent$ui_release$enumunboxing$()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getMeasuredWidth()I\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getMeasuredWidth()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getParentAlignmentLinesOwner()Landroidx/compose/ui/node/AlignmentLinesOwner;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getParentAlignmentLinesOwner()Landroidx/compose/ui/node/AlignmentLinesOwner;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getParentData()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getParentData()Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getPlaceOrder$ui_release()I\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getPlaceOrder$ui_release()I\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getZIndex$ui_release()F\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->getZIndex$ui_release()F\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->invalidateParentData()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->invalidateParentData()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->isPlaced()Z\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->isPlaced()Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->layoutChildren()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->layoutChildren()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->markNodeAndSubtreeAsPlaced()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->markNodeAndSubtreeAsPlaced()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->measure-BRTryo0(J)Landroidx/compose/ui/layout/Placeable;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->measure-BRTryo0(J)Landroidx/compose/ui/layout/Placeable;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->notifyChildrenUsingCoordinatesWhilePlacing()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->notifyChildrenUsingCoordinatesWhilePlacing()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->onNodeDetached()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->onNodeDetached()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->onNodePlaced$ui_release()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->onNodePlaced$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->placeOuterCoordinator-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->placeOuterCoordinator-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->remeasure-BRTryo0(J)Z\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->remeasure-BRTryo0(J)Z\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->replace()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->replace()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->setChildDelegatesDirty$ui_release()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->setChildDelegatesDirty$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->setMeasuredByParent$ui_release()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->setMeasuredByParent$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->setPlaced$ui_release()V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->setPlaced$ui_release()V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->updateParentData()Z\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate;->updateParentData()Z\nLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinator$1;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinator$1;-><init>(Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;JF)V\nPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinator$1;-><init>(Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;JF)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinator$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinator$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;-><init>(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;JI)V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;-><init>(Landroidx/compose/ui/node/LayoutNodeLayoutDelegate;JI)V\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;->invoke()V\nHPLandroidx/compose/ui/node/LayoutNodeLayoutDelegate$performMeasure$2;->invoke()V\nLandroidx/compose/ui/node/LookaheadAlignmentLines;\nHSPLandroidx/compose/ui/node/LookaheadAlignmentLines;-><init>(Landroidx/compose/ui/node/AlignmentLinesOwner;I)V\nPLandroidx/compose/ui/node/LookaheadAlignmentLines;-><init>(Landroidx/compose/ui/node/AlignmentLinesOwner;I)V\nHSPLandroidx/compose/ui/node/LookaheadAlignmentLines;->getAlignmentLinesMap(Landroidx/compose/ui/node/NodeCoordinator;)Ljava/util/Map;\nHPLandroidx/compose/ui/node/LookaheadAlignmentLines;->getAlignmentLinesMap(Landroidx/compose/ui/node/NodeCoordinator;)Ljava/util/Map;\nHSPLandroidx/compose/ui/node/LookaheadAlignmentLines;->getPositionFor(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/layout/AlignmentLine;)I\nPLandroidx/compose/ui/node/LookaheadAlignmentLines;->getPositionFor(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/layout/AlignmentLine;)I\nLandroidx/compose/ui/node/LookaheadCapablePlaceable;\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;-><init>()V\nHPLandroidx/compose/ui/node/LookaheadCapablePlaceable;-><init>()V\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->get(Landroidx/compose/ui/layout/AlignmentLine;)I\nHPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->get(Landroidx/compose/ui/layout/AlignmentLine;)I\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->invalidateAlignmentLinesFromPositionChange(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->invalidateAlignmentLinesFromPositionChange(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->isLookingAhead()Z\nPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->isLookingAhead()Z\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->isPlacingForAlignment$ui_release()Z\nPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->isPlacingForAlignment$ui_release()Z\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->isShallowPlacing$ui_release()Z\nHPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->isShallowPlacing$ui_release()Z\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->setPlacingForAlignment$ui_release(Z)V\nHPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->setPlacingForAlignment$ui_release(Z)V\nHSPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->setShallowPlacing$ui_release(Z)V\nPLandroidx/compose/ui/node/LookaheadCapablePlaceable;->setShallowPlacing$ui_release(Z)V\nLandroidx/compose/ui/node/LookaheadDelegate;\nLandroidx/compose/ui/node/MeasureAndLayoutDelegate;\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->callOnLayoutCompletedListeners()V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->callOnLayoutCompletedListeners()V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->dispatchOnPositionedCallbacks(Z)V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->dispatchOnPositionedCallbacks(Z)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->doRemeasure-sdFAvZA(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/unit/Constraints;)Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->doRemeasure-sdFAvZA(Landroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/unit/Constraints;)Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->forceMeasureTheSubtree(Landroidx/compose/ui/node/LayoutNode;Z)V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->forceMeasureTheSubtree(Landroidx/compose/ui/node/LayoutNode;Z)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->getHasPendingMeasureOrLayout()Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->getHasPendingMeasureOrLayout()Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->getHasPendingOnPositionedCallbacks()Z\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->getHasPendingOnPositionedCallbacks()Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->getMeasureAffectsParent(Landroidx/compose/ui/node/LayoutNode;)Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->getMeasureAffectsParent(Landroidx/compose/ui/node/LayoutNode;)Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->measureAndLayout(Lkotlin/jvm/functions/Function0;)Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->measureAndLayout(Lkotlin/jvm/functions/Function0;)Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->measureOnly()V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->measureOnly()V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->onNodeDetached(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->onNodeDetached(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->recurseRemeasure(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->recurseRemeasure(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->remeasureAndRelayoutIfNeeded(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->remeasureAndRelayoutIfNeeded(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->remeasureOnly(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->remeasureOnly(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->requestRelayout(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->requestRelayout(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->requestRemeasure(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->requestRemeasure(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->updateRootConstraints-BRTryo0(J)V\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate;->updateRootConstraints-BRTryo0(J)V\nLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;-><init>(Landroidx/compose/ui/node/LayoutNode;ZZ)V\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;-><init>(Landroidx/compose/ui/node/LayoutNode;ZZ)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;->getNode()Landroidx/compose/ui/node/LayoutNode;\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;->getNode()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;->isForced()Z\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;->isForced()Z\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;->isLookahead()Z\nPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$PostponedRequest;->isLookahead()Z\nLandroidx/compose/ui/node/MeasureAndLayoutDelegate$forceMeasureTheSubtree$pending$1;\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$forceMeasureTheSubtree$pending$1;-><init>(Z)V\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$forceMeasureTheSubtree$pending$1;-><init>(Z)V\nHSPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$forceMeasureTheSubtree$pending$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/MeasureAndLayoutDelegate$forceMeasureTheSubtree$pending$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/node/ModifierNodeElement;\nHSPLandroidx/compose/ui/node/ModifierNodeElement;-><init>()V\nHPLandroidx/compose/ui/node/ModifierNodeElement;-><init>()V\nLandroidx/compose/ui/node/NodeChain;\nHSPLandroidx/compose/ui/node/NodeChain;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/NodeChain;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/NodeChain;->access$createAndInsertNodeAsChild(Landroidx/compose/ui/node/NodeChain;Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/NodeChain;->access$createAndInsertNodeAsChild(Landroidx/compose/ui/node/NodeChain;Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeChain;->access$getAggregateChildKindSet(Landroidx/compose/ui/node/NodeChain;)I\nHPLandroidx/compose/ui/node/NodeChain;->access$getAggregateChildKindSet(Landroidx/compose/ui/node/NodeChain;)I\nHSPLandroidx/compose/ui/node/NodeChain;->access$propagateCoordinator(Landroidx/compose/ui/node/NodeChain;Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/NodeChain;->access$propagateCoordinator(Landroidx/compose/ui/node/NodeChain;Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/NodeChain;->createAndInsertNodeAsChild(Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/NodeChain;->createAndInsertNodeAsChild(Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeChain;->detachAndRemoveNode(Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/NodeChain;->detachAndRemoveNode(Landroidx/compose/ui/Modifier$Node;)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeChain;->getHead$ui_release()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/NodeChain;->getHead$ui_release()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeChain;->getInnerCoordinator$ui_release()Landroidx/compose/ui/node/InnerNodeCoordinator;\nPLandroidx/compose/ui/node/NodeChain;->getInnerCoordinator$ui_release()Landroidx/compose/ui/node/InnerNodeCoordinator;\nHSPLandroidx/compose/ui/node/NodeChain;->getLayoutNode()Landroidx/compose/ui/node/LayoutNode;\nPLandroidx/compose/ui/node/NodeChain;->getLayoutNode()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/NodeChain;->getOuterCoordinator$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/node/NodeChain;->getOuterCoordinator$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/NodeChain;->getTail$ui_release()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/node/NodeChain;->getTail$ui_release()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeChain;->has$ui_release()Z\nHPLandroidx/compose/ui/node/NodeChain;->has$ui_release()Z\nHSPLandroidx/compose/ui/node/NodeChain;->has-H91voCI$ui_release(I)Z\nHPLandroidx/compose/ui/node/NodeChain;->has-H91voCI$ui_release(I)Z\nHSPLandroidx/compose/ui/node/NodeChain;->markAsAttached()V\nHPLandroidx/compose/ui/node/NodeChain;->markAsAttached()V\nHSPLandroidx/compose/ui/node/NodeChain;->markAsDetached$ui_release()V\nPLandroidx/compose/ui/node/NodeChain;->markAsDetached$ui_release()V\nHSPLandroidx/compose/ui/node/NodeChain;->runAttachLifecycle()V\nHPLandroidx/compose/ui/node/NodeChain;->runAttachLifecycle()V\nHSPLandroidx/compose/ui/node/NodeChain;->runDetachLifecycle$ui_release()V\nPLandroidx/compose/ui/node/NodeChain;->runDetachLifecycle$ui_release()V\nHSPLandroidx/compose/ui/node/NodeChain;->structuralUpdate(ILandroidx/compose/runtime/collection/MutableVector;Landroidx/compose/runtime/collection/MutableVector;Landroidx/compose/ui/Modifier$Node;Z)V\nHPLandroidx/compose/ui/node/NodeChain;->structuralUpdate(ILandroidx/compose/runtime/collection/MutableVector;Landroidx/compose/runtime/collection/MutableVector;Landroidx/compose/ui/Modifier$Node;Z)V\nHSPLandroidx/compose/ui/node/NodeChain;->syncAggregateChildKindSet()V\nHPLandroidx/compose/ui/node/NodeChain;->syncAggregateChildKindSet()V\nHSPLandroidx/compose/ui/node/NodeChain;->syncCoordinators()V\nHPLandroidx/compose/ui/node/NodeChain;->syncCoordinators()V\nHSPLandroidx/compose/ui/node/NodeChain;->updateFrom$ui_release(Landroidx/compose/ui/Modifier;)V\nHPLandroidx/compose/ui/node/NodeChain;->updateFrom$ui_release(Landroidx/compose/ui/Modifier;)V\nHSPLandroidx/compose/ui/node/NodeChain;->updateNode(Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/node/NodeChain;->updateNode(Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/ui/node/NodeChain$Differ;\nHSPLandroidx/compose/ui/node/NodeChain$Differ;-><init>(Landroidx/compose/ui/node/NodeChain;Landroidx/compose/ui/Modifier$Node;ILandroidx/compose/runtime/collection/MutableVector;Landroidx/compose/runtime/collection/MutableVector;Z)V\nPLandroidx/compose/ui/node/NodeChain$Differ;-><init>(Landroidx/compose/ui/node/NodeChain;Landroidx/compose/ui/Modifier$Node;ILandroidx/compose/runtime/collection/MutableVector;Landroidx/compose/runtime/collection/MutableVector;Z)V\nHSPLandroidx/compose/ui/node/NodeChain$Differ;->insert(I)V\nHPLandroidx/compose/ui/node/NodeChain$Differ;->insert(I)V\nHSPLandroidx/compose/ui/node/NodeChain$Differ;->setAfter(Landroidx/compose/runtime/collection/MutableVector;)V\nPLandroidx/compose/ui/node/NodeChain$Differ;->setAfter(Landroidx/compose/runtime/collection/MutableVector;)V\nHSPLandroidx/compose/ui/node/NodeChain$Differ;->setBefore(Landroidx/compose/runtime/collection/MutableVector;)V\nPLandroidx/compose/ui/node/NodeChain$Differ;->setBefore(Landroidx/compose/runtime/collection/MutableVector;)V\nHSPLandroidx/compose/ui/node/NodeChain$Differ;->setNode(Landroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/ui/node/NodeChain$Differ;->setNode(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/node/NodeChain$Differ;->setOffset(I)V\nPLandroidx/compose/ui/node/NodeChain$Differ;->setOffset(I)V\nHSPLandroidx/compose/ui/node/NodeChain$Differ;->setShouldAttachOnInsert(Z)V\nPLandroidx/compose/ui/node/NodeChain$Differ;->setShouldAttachOnInsert(Z)V\nLandroidx/compose/ui/node/NodeChainKt;\nHSPLandroidx/compose/ui/node/NodeChainKt;-><clinit>()V\nPLandroidx/compose/ui/node/NodeChainKt;-><clinit>()V\nHSPLandroidx/compose/ui/node/NodeChainKt;->access$getSentinelHead$p()Landroidx/compose/ui/node/NodeChainKt$SentinelHead$1;\nHPLandroidx/compose/ui/node/NodeChainKt;->access$getSentinelHead$p()Landroidx/compose/ui/node/NodeChainKt$SentinelHead$1;\nHSPLandroidx/compose/ui/node/NodeChainKt;->actionForModifiers(Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Element;)I\nHPLandroidx/compose/ui/node/NodeChainKt;->actionForModifiers(Landroidx/compose/ui/Modifier$Element;Landroidx/compose/ui/Modifier$Element;)I\nLandroidx/compose/ui/node/NodeChainKt$SentinelHead$1;\nHSPLandroidx/compose/ui/node/NodeChainKt$SentinelHead$1;-><init>()V\nPLandroidx/compose/ui/node/NodeChainKt$SentinelHead$1;-><init>()V\nLandroidx/compose/ui/node/NodeChainKt$fillVector$1;\nHSPLandroidx/compose/ui/node/NodeChainKt$fillVector$1;-><init>(Landroidx/compose/runtime/collection/MutableVector;)V\nPLandroidx/compose/ui/node/NodeChainKt$fillVector$1;-><init>(Landroidx/compose/runtime/collection/MutableVector;)V\nLandroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/NodeCoordinator;-><clinit>()V\nPLandroidx/compose/ui/node/NodeCoordinator;-><clinit>()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->access$drawContainedDrawModifiers(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->access$drawContainedDrawModifiers(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->access$getGraphicsLayerScope$cp()Landroidx/compose/ui/graphics/ReusableGraphicsLayerScope;\nPLandroidx/compose/ui/node/NodeCoordinator;->access$getGraphicsLayerScope$cp()Landroidx/compose/ui/graphics/ReusableGraphicsLayerScope;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->access$getLayerPositionalProperties$p(Landroidx/compose/ui/node/NodeCoordinator;)Landroidx/compose/ui/node/LayerPositionalProperties;\nPLandroidx/compose/ui/node/NodeCoordinator;->access$getLayerPositionalProperties$p(Landroidx/compose/ui/node/NodeCoordinator;)Landroidx/compose/ui/node/LayerPositionalProperties;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->access$getPointerInputSource$cp()Lorg/acra/file/CrashReportPersister;\nPLandroidx/compose/ui/node/NodeCoordinator;->access$getPointerInputSource$cp()Lorg/acra/file/CrashReportPersister;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->access$getTmpLayerPositionalProperties$cp()Landroidx/compose/ui/node/LayerPositionalProperties;\nPLandroidx/compose/ui/node/NodeCoordinator;->access$getTmpLayerPositionalProperties$cp()Landroidx/compose/ui/node/LayerPositionalProperties;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->access$hit-1hIXUjU(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nPLandroidx/compose/ui/node/NodeCoordinator;->access$hit-1hIXUjU(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->ancestorToLocal(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/geometry/MutableRect;Z)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->ancestorToLocal(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/geometry/MutableRect;Z)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->ancestorToLocal-R5De75A(Landroidx/compose/ui/node/NodeCoordinator;J)J\nHPLandroidx/compose/ui/node/NodeCoordinator;->ancestorToLocal-R5De75A(Landroidx/compose/ui/node/NodeCoordinator;J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->calculateMinimumTouchTargetPadding-E7KxVPU(J)J\nHPLandroidx/compose/ui/node/NodeCoordinator;->calculateMinimumTouchTargetPadding-E7KxVPU(J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->distanceInMinimumTouchTarget-tz77jQw(JJ)F\nHPLandroidx/compose/ui/node/NodeCoordinator;->distanceInMinimumTouchTarget-tz77jQw(JJ)F\nHSPLandroidx/compose/ui/node/NodeCoordinator;->draw(Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->draw(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->drawContainedDrawModifiers(Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->drawContainedDrawModifiers(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->findCommonAncestor$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/node/NodeCoordinator;->findCommonAncestor$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->fromParentPosition-MK-Hz9U(J)J\nHPLandroidx/compose/ui/node/NodeCoordinator;->fromParentPosition-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getAlignmentLinesOwner()Landroidx/compose/ui/node/AlignmentLinesOwner;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getAlignmentLinesOwner()Landroidx/compose/ui/node/AlignmentLinesOwner;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getChild()Landroidx/compose/ui/node/LookaheadCapablePlaceable;\nPLandroidx/compose/ui/node/NodeCoordinator;->getChild()Landroidx/compose/ui/node/LookaheadCapablePlaceable;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getCoordinates()Landroidx/compose/ui/layout/LayoutCoordinates;\nPLandroidx/compose/ui/node/NodeCoordinator;->getCoordinates()Landroidx/compose/ui/layout/LayoutCoordinates;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getDensity()F\nHPLandroidx/compose/ui/node/NodeCoordinator;->getDensity()F\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getFontScale()F\nHPLandroidx/compose/ui/node/NodeCoordinator;->getFontScale()F\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getHasMeasureResult()Z\nHPLandroidx/compose/ui/node/NodeCoordinator;->getHasMeasureResult()Z\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getLastLayerDrawingWasSkipped$ui_release()Z\nPLandroidx/compose/ui/node/NodeCoordinator;->getLastLayerDrawingWasSkipped$ui_release()Z\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getLayer()Landroidx/compose/ui/node/OwnedLayer;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getLayer()Landroidx/compose/ui/node/OwnedLayer;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getLayoutNode()Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getLayoutNode()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getMeasureResult$ui_release()Landroidx/compose/ui/layout/MeasureResult;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getMeasureResult$ui_release()Landroidx/compose/ui/layout/MeasureResult;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getMinimumTouchTargetSize-NH-jbRc()J\nPLandroidx/compose/ui/node/NodeCoordinator;->getMinimumTouchTargetSize-NH-jbRc()J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getParent()Landroidx/compose/ui/node/LookaheadCapablePlaceable;\nPLandroidx/compose/ui/node/NodeCoordinator;->getParent()Landroidx/compose/ui/node/LookaheadCapablePlaceable;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getParentCoordinates()Landroidx/compose/ui/layout/LayoutCoordinates;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getParentCoordinates()Landroidx/compose/ui/layout/LayoutCoordinates;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getParentData()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getParentData()Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getParentLayoutCoordinates()Landroidx/compose/ui/layout/LayoutCoordinates;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getParentLayoutCoordinates()Landroidx/compose/ui/layout/LayoutCoordinates;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getPosition-nOcc-ac()J\nPLandroidx/compose/ui/node/NodeCoordinator;->getPosition-nOcc-ac()J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getWrapped$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nPLandroidx/compose/ui/node/NodeCoordinator;->getWrapped$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getWrappedBy$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/node/NodeCoordinator;->getWrappedBy$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->getZIndex()F\nPLandroidx/compose/ui/node/NodeCoordinator;->getZIndex()F\nHSPLandroidx/compose/ui/node/NodeCoordinator;->head-H91voCI(I)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/NodeCoordinator;->head-H91voCI(I)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->headNode(Z)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/node/NodeCoordinator;->headNode(Z)Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->hit-1hIXUjU(Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->hit-1hIXUjU(Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->hitTest-YqVAtuI(Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->hitTest-YqVAtuI(Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->hitTestChild-YqVAtuI(Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->hitTestChild-YqVAtuI(Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->invalidateLayer()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->invalidateLayer()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/node/NodeCoordinator;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->isAttached()Z\nHPLandroidx/compose/ui/node/NodeCoordinator;->isAttached()Z\nHSPLandroidx/compose/ui/node/NodeCoordinator;->isTransparent()Z\nHPLandroidx/compose/ui/node/NodeCoordinator;->isTransparent()Z\nHSPLandroidx/compose/ui/node/NodeCoordinator;->isValidOwnerScope()Z\nHPLandroidx/compose/ui/node/NodeCoordinator;->isValidOwnerScope()Z\nHSPLandroidx/compose/ui/node/NodeCoordinator;->localBoundingBoxOf(Landroidx/compose/ui/layout/LayoutCoordinates;Z)Landroidx/compose/ui/geometry/Rect;\nHPLandroidx/compose/ui/node/NodeCoordinator;->localBoundingBoxOf(Landroidx/compose/ui/layout/LayoutCoordinates;Z)Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->localPositionOf-R5De75A(Landroidx/compose/ui/layout/LayoutCoordinates;J)J\nHPLandroidx/compose/ui/node/NodeCoordinator;->localPositionOf-R5De75A(Landroidx/compose/ui/layout/LayoutCoordinates;J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->localToRoot-MK-Hz9U(J)J\nPLandroidx/compose/ui/node/NodeCoordinator;->localToRoot-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->localToWindow-MK-Hz9U(J)J\nPLandroidx/compose/ui/node/NodeCoordinator;->localToWindow-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->onCoordinatesUsed$ui_release()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->onCoordinatesUsed$ui_release()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->onLayoutModifierNodeChanged()V\nPLandroidx/compose/ui/node/NodeCoordinator;->onLayoutModifierNodeChanged()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->onLayoutNodeAttach()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->onLayoutNodeAttach()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->onMeasured()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->onMeasured()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->onPlaced()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->onPlaced()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->onRelease()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->onRelease()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/node/NodeCoordinator;->placeAt-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->placeSelf-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->placeSelf-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->placeSelfApparentToRealOffset-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/node/NodeCoordinator;->placeSelfApparentToRealOffset-f8xVGno(JFLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->rectInParent$ui_release(Landroidx/compose/ui/geometry/MutableRect;ZZ)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->rectInParent$ui_release(Landroidx/compose/ui/geometry/MutableRect;ZZ)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->replace$ui_release()V\nHPLandroidx/compose/ui/node/NodeCoordinator;->replace$ui_release()V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->setMeasureResult$ui_release(Landroidx/compose/ui/layout/MeasureResult;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->setMeasureResult$ui_release(Landroidx/compose/ui/layout/MeasureResult;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->setWrapped$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nPLandroidx/compose/ui/node/NodeCoordinator;->setWrapped$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->setWrappedBy$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->setWrappedBy$ui_release(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->shouldSharePointerInputWithSiblings()Z\nHPLandroidx/compose/ui/node/NodeCoordinator;->shouldSharePointerInputWithSiblings()Z\nHSPLandroidx/compose/ui/node/NodeCoordinator;->speculativeHit-JHbHoSQ(Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZF)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->speculativeHit-JHbHoSQ(Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZF)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->toParentPosition-MK-Hz9U(J)J\nHPLandroidx/compose/ui/node/NodeCoordinator;->toParentPosition-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/node/NodeCoordinator;->touchBoundsInRoot()Landroidx/compose/ui/geometry/Rect;\nHPLandroidx/compose/ui/node/NodeCoordinator;->touchBoundsInRoot()Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/node/NodeCoordinator;->updateLayerBlock(ZLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->updateLayerBlock(ZLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->updateLayerParameters$default(Landroidx/compose/ui/node/NodeCoordinator;)V\nPLandroidx/compose/ui/node/NodeCoordinator;->updateLayerParameters$default(Landroidx/compose/ui/node/NodeCoordinator;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->updateLayerParameters(Z)V\nHPLandroidx/compose/ui/node/NodeCoordinator;->updateLayerParameters(Z)V\nHSPLandroidx/compose/ui/node/NodeCoordinator;->withinLayerBounds-k-4lQ0M(J)Z\nPLandroidx/compose/ui/node/NodeCoordinator;->withinLayerBounds-k-4lQ0M(J)Z\nLandroidx/compose/ui/node/NodeCoordinator$HitTestSource;\nLandroidx/compose/ui/node/NodeCoordinator$hit$1;\nHSPLandroidx/compose/ui/node/NodeCoordinator$hit$1;-><init>(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHPLandroidx/compose/ui/node/NodeCoordinator$hit$1;-><init>(Landroidx/compose/ui/node/NodeCoordinator;Landroidx/compose/ui/Modifier$Node;Landroidx/compose/ui/node/NodeCoordinator$HitTestSource;JLandroidx/compose/ui/node/HitTestResult;ZZ)V\nHSPLandroidx/compose/ui/node/NodeCoordinator$hit$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/NodeCoordinator$hit$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/node/NodeCoordinator$invoke$1;\nHSPLandroidx/compose/ui/node/NodeCoordinator$invoke$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/ui/node/NodeCoordinator$invoke$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/ui/node/NodeCoordinator$invoke$1;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/node/NodeCoordinator$invoke$1;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/ui/node/NodeCoordinator$invoke$1;->invoke()V\nHPLandroidx/compose/ui/node/NodeCoordinator$invoke$1;->invoke()V\nLandroidx/compose/ui/node/NodeKindKt;\nHSPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateInsertedNode(Landroidx/compose/ui/Modifier$Node;)V\nHPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateInsertedNode(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateNodeIncludingDelegates(Landroidx/compose/ui/Modifier$Node;II)V\nHPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateNodeIncludingDelegates(Landroidx/compose/ui/Modifier$Node;II)V\nHSPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateNodeSelf(Landroidx/compose/ui/Modifier$Node;II)V\nHPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateNodeSelf(Landroidx/compose/ui/Modifier$Node;II)V\nHSPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateUpdatedNode(Landroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/ui/node/NodeKindKt;->autoInvalidateUpdatedNode(Landroidx/compose/ui/Modifier$Node;)V\nHSPLandroidx/compose/ui/node/NodeKindKt;->calculateNodeKindSetFrom(Landroidx/compose/ui/Modifier$Element;)I\nHPLandroidx/compose/ui/node/NodeKindKt;->calculateNodeKindSetFrom(Landroidx/compose/ui/Modifier$Element;)I\nHSPLandroidx/compose/ui/node/NodeKindKt;->calculateNodeKindSetFrom(Landroidx/compose/ui/Modifier$Node;)I\nHPLandroidx/compose/ui/node/NodeKindKt;->calculateNodeKindSetFrom(Landroidx/compose/ui/Modifier$Node;)I\nHSPLandroidx/compose/ui/node/NodeKindKt;->calculateNodeKindSetFromIncludingDelegates(Landroidx/compose/ui/Modifier$Node;)I\nHPLandroidx/compose/ui/node/NodeKindKt;->calculateNodeKindSetFromIncludingDelegates(Landroidx/compose/ui/Modifier$Node;)I\nHSPLandroidx/compose/ui/node/NodeKindKt;->getIncludeSelfInTraversal-H91voCI(I)Z\nHPLandroidx/compose/ui/node/NodeKindKt;->getIncludeSelfInTraversal-H91voCI(I)Z\nLandroidx/compose/ui/node/ObserverModifierNode;\nLandroidx/compose/ui/node/ObserverNodeOwnerScope;\nHSPLandroidx/compose/ui/node/ObserverNodeOwnerScope;-><clinit>()V\nPLandroidx/compose/ui/node/ObserverNodeOwnerScope;-><clinit>()V\nHSPLandroidx/compose/ui/node/ObserverNodeOwnerScope;-><init>(Landroidx/compose/ui/node/ObserverModifierNode;)V\nHPLandroidx/compose/ui/node/ObserverNodeOwnerScope;-><init>(Landroidx/compose/ui/node/ObserverModifierNode;)V\nHSPLandroidx/compose/ui/node/ObserverNodeOwnerScope;->access$getOnObserveReadsChanged$cp()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/node/ObserverNodeOwnerScope;->access$getOnObserveReadsChanged$cp()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/ui/node/OnPositionedDispatcher;\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher;-><init>()V\nPLandroidx/compose/ui/node/OnPositionedDispatcher;-><init>()V\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher;->dispatch()V\nHPLandroidx/compose/ui/node/OnPositionedDispatcher;->dispatch()V\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher;->dispatchHierarchy(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/OnPositionedDispatcher;->dispatchHierarchy(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher;->isNotEmpty()Z\nPLandroidx/compose/ui/node/OnPositionedDispatcher;->isNotEmpty()Z\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher;->onNodePositioned(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/node/OnPositionedDispatcher;->onNodePositioned(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher;->onRootNodePositioned(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/node/OnPositionedDispatcher;->onRootNodePositioned(Landroidx/compose/ui/node/LayoutNode;)V\nLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;-><clinit>()V\nPLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;-><clinit>()V\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;-><init>()V\nPLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;-><init>()V\nHSPLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nHPLandroidx/compose/ui/node/OnPositionedDispatcher$Companion$DepthComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nLandroidx/compose/ui/node/OwnedLayer;\nLandroidx/compose/ui/node/Owner;\nHSPLandroidx/compose/ui/node/Owner;->measureAndLayout$default(Landroidx/compose/ui/node/Owner;)V\nPLandroidx/compose/ui/node/Owner;->measureAndLayout$default(Landroidx/compose/ui/node/Owner;)V\nLandroidx/compose/ui/node/Owner$OnLayoutCompletedListener;\nLandroidx/compose/ui/node/OwnerScope;\nLandroidx/compose/ui/node/OwnerSnapshotObserver;\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/node/OwnerSnapshotObserver;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->clearInvalidObservations$ui_release()V\nPLandroidx/compose/ui/node/OwnerSnapshotObserver;->clearInvalidObservations$ui_release()V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeLayoutModifierSnapshotReads$ui_release(Landroidx/compose/ui/node/LayoutNode;ZLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeLayoutModifierSnapshotReads$ui_release(Landroidx/compose/ui/node/LayoutNode;ZLkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeLayoutSnapshotReads$ui_release(Landroidx/compose/ui/node/LayoutNode;ZLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeLayoutSnapshotReads$ui_release(Landroidx/compose/ui/node/LayoutNode;ZLkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeMeasureSnapshotReads$ui_release(Landroidx/compose/ui/node/LayoutNode;ZLkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeMeasureSnapshotReads$ui_release(Landroidx/compose/ui/node/LayoutNode;ZLkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeReads$ui_release(Landroidx/compose/ui/node/OwnerScope;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeReads$ui_release(Landroidx/compose/ui/node/OwnerScope;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeSemanticsReads$ui_release(Landroidx/compose/ui/node/LayoutNode;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/node/OwnerSnapshotObserver;->observeSemanticsReads$ui_release(Landroidx/compose/ui/node/LayoutNode;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/node/OwnerSnapshotObserver;->startObserving$ui_release()V\nPLandroidx/compose/ui/node/OwnerSnapshotObserver;->startObserving$ui_release()V\nPLandroidx/compose/ui/node/OwnerSnapshotObserver;->stopObserving$ui_release()V\nLandroidx/compose/ui/node/ParentDataModifierNode;\nLandroidx/compose/ui/node/PointerInputModifierNode;\nHSPLandroidx/compose/ui/node/PointerInputModifierNode;->interceptOutOfBoundsChildEvents()V\nPLandroidx/compose/ui/node/PointerInputModifierNode;->interceptOutOfBoundsChildEvents()V\nHSPLandroidx/compose/ui/node/PointerInputModifierNode;->sharePointerInputWithSiblings()Z\nPLandroidx/compose/ui/node/PointerInputModifierNode;->sharePointerInputWithSiblings()Z\nLandroidx/compose/ui/node/SemanticsModifierNode;\nHSPLandroidx/compose/ui/node/SemanticsModifierNode;->getShouldClearDescendantSemantics()Z\nHPLandroidx/compose/ui/node/SemanticsModifierNode;->getShouldClearDescendantSemantics()Z\nHSPLandroidx/compose/ui/node/SemanticsModifierNode;->getShouldMergeDescendantSemantics()Z\nHPLandroidx/compose/ui/node/SemanticsModifierNode;->getShouldMergeDescendantSemantics()Z\nLandroidx/compose/ui/node/TailModifierNode;\nHSPLandroidx/compose/ui/node/TailModifierNode;-><init>()V\nHPLandroidx/compose/ui/node/TailModifierNode;-><init>()V\nHSPLandroidx/compose/ui/node/TailModifierNode;->getAttachHasBeenRun()Z\nPLandroidx/compose/ui/node/TailModifierNode;->getAttachHasBeenRun()Z\nHSPLandroidx/compose/ui/node/TailModifierNode;->onAttach()V\nHPLandroidx/compose/ui/node/TailModifierNode;->onAttach()V\nHSPLandroidx/compose/ui/node/TailModifierNode;->onDetach()V\nHPLandroidx/compose/ui/node/TailModifierNode;->onDetach()V\nLandroidx/compose/ui/node/TreeSet;\nHSPLandroidx/compose/ui/node/TreeSet;-><init>(Landroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;)V\nPLandroidx/compose/ui/node/TreeSet;-><init>(Landroidx/compose/ui/node/DepthSortedSet$DepthComparator$1;)V\nLandroidx/compose/ui/node/UiApplier;\nHSPLandroidx/compose/ui/node/UiApplier;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/node/UiApplier;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/node/UiApplier;->insertBottomUp(ILjava/lang/Object;)V\nPLandroidx/compose/ui/node/UiApplier;->insertBottomUp(ILjava/lang/Object;)V\nHSPLandroidx/compose/ui/node/UiApplier;->insertTopDown(ILjava/lang/Object;)V\nPLandroidx/compose/ui/node/UiApplier;->insertTopDown(ILjava/lang/Object;)V\nHSPLandroidx/compose/ui/node/UiApplier;->onClear()V\nPLandroidx/compose/ui/node/UiApplier;->onClear()V\nHSPLandroidx/compose/ui/node/UiApplier;->onEndChanges()V\nPLandroidx/compose/ui/node/UiApplier;->onEndChanges()V\nHSPLandroidx/compose/ui/node/UiApplier;->remove(II)V\nPLandroidx/compose/ui/node/UiApplier;->remove(II)V\nLandroidx/compose/ui/platform/AbstractComposeView;\nHSPLandroidx/compose/ui/platform/AbstractComposeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V\nPLandroidx/compose/ui/platform/AbstractComposeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V\nPLandroidx/compose/ui/platform/AbstractComposeView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V\nPLandroidx/compose/ui/platform/AbstractComposeView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->checkAddView()V\nPLandroidx/compose/ui/platform/AbstractComposeView;->checkAddView()V\nPLandroidx/compose/ui/platform/AbstractComposeView;->disposeComposition()V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->ensureCompositionCreated()V\nPLandroidx/compose/ui/platform/AbstractComposeView;->ensureCompositionCreated()V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->internalOnLayout$ui_release(IIIIZ)V\nHPLandroidx/compose/ui/platform/AbstractComposeView;->internalOnLayout$ui_release(IIIIZ)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->internalOnMeasure$ui_release(II)V\nHPLandroidx/compose/ui/platform/AbstractComposeView;->internalOnMeasure$ui_release(II)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->isAlive(Landroidx/compose/runtime/CompositionContext;)Z\nPLandroidx/compose/ui/platform/AbstractComposeView;->isAlive(Landroidx/compose/runtime/CompositionContext;)Z\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->onAttachedToWindow()V\nPLandroidx/compose/ui/platform/AbstractComposeView;->onAttachedToWindow()V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->onLayout(ZIIII)V\nHPLandroidx/compose/ui/platform/AbstractComposeView;->onLayout(ZIIII)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->onMeasure(II)V\nHPLandroidx/compose/ui/platform/AbstractComposeView;->onMeasure(II)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->onRtlPropertiesChanged(I)V\nPLandroidx/compose/ui/platform/AbstractComposeView;->onRtlPropertiesChanged(I)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->resolveParentCompositionContext()Landroidx/compose/runtime/CompositionContext;\nHPLandroidx/compose/ui/platform/AbstractComposeView;->resolveParentCompositionContext()Landroidx/compose/runtime/CompositionContext;\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->setParentCompositionContext(Landroidx/compose/runtime/CompositionContext;)V\nPLandroidx/compose/ui/platform/AbstractComposeView;->setParentCompositionContext(Landroidx/compose/runtime/CompositionContext;)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView;->shouldDelayChildPressedState()Z\nPLandroidx/compose/ui/platform/AbstractComposeView;->shouldDelayChildPressedState()Z\nLandroidx/compose/ui/platform/AbstractComposeView$ensureCompositionCreated$1;\nHSPLandroidx/compose/ui/platform/AbstractComposeView$ensureCompositionCreated$1;-><init>(Landroidx/compose/ui/platform/AbstractComposeView;)V\nPLandroidx/compose/ui/platform/AbstractComposeView$ensureCompositionCreated$1;-><init>(Landroidx/compose/ui/platform/AbstractComposeView;)V\nHSPLandroidx/compose/ui/platform/AbstractComposeView$ensureCompositionCreated$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/AbstractComposeView$ensureCompositionCreated$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/AccessibilityManager;\nLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;\nHSPLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;-><clinit>()V\nPLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;-><init>()V\nPLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;-><init>()V\nHSPLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;->setAvailableExtraData(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/util/List;)V\nHPLandroidx/compose/ui/platform/AccessibilityNodeInfoVerificationHelperMethods;->setAvailableExtraData(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/util/List;)V\nLandroidx/compose/ui/platform/AndroidAccessibilityManager;\nHSPLandroidx/compose/ui/platform/AndroidAccessibilityManager;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/ui/platform/AndroidAccessibilityManager;-><init>(Landroid/content/Context;)V\nLandroidx/compose/ui/platform/AndroidClipboardManager;\nHSPLandroidx/compose/ui/platform/AndroidClipboardManager;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/ui/platform/AndroidClipboardManager;-><init>(Landroid/content/Context;)V\nLandroidx/compose/ui/platform/AndroidComposeView;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->$r8$lambda$6rnsioIDxAVR319ScBkOteeoeiE(Landroidx/compose/ui/platform/AndroidComposeView;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->$r8$lambda$6rnsioIDxAVR319ScBkOteeoeiE(Landroidx/compose/ui/platform/AndroidComposeView;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->$r8$lambda$TvhWqMihl4JwF42Odovn0ewO6fk(Landroidx/compose/ui/platform/AndroidComposeView;Z)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->$r8$lambda$TvhWqMihl4JwF42Odovn0ewO6fk(Landroidx/compose/ui/platform/AndroidComposeView;Z)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidComposeView;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;-><init>(Landroid/content/Context;Lkotlin/coroutines/CoroutineContext;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;-><init>(Landroid/content/Context;Lkotlin/coroutines/CoroutineContext;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->access$getGetBooleanMethod$cp()Ljava/lang/reflect/Method;\nPLandroidx/compose/ui/platform/AndroidComposeView;->access$getGetBooleanMethod$cp()Ljava/lang/reflect/Method;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->access$getPreviousMotionEvent$p(Landroidx/compose/ui/platform/AndroidComposeView;)Landroid/view/MotionEvent;\nPLandroidx/compose/ui/platform/AndroidComposeView;->access$getPreviousMotionEvent$p(Landroidx/compose/ui/platform/AndroidComposeView;)Landroid/view/MotionEvent;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->access$getSystemPropertiesClass$cp()Ljava/lang/Class;\nPLandroidx/compose/ui/platform/AndroidComposeView;->access$getSystemPropertiesClass$cp()Ljava/lang/Class;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->access$get_viewTreeOwners(Landroidx/compose/ui/platform/AndroidComposeView;)Landroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;\nPLandroidx/compose/ui/platform/AndroidComposeView;->access$get_viewTreeOwners(Landroidx/compose/ui/platform/AndroidComposeView;)Landroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->access$setGetBooleanMethod$cp(Ljava/lang/reflect/Method;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->access$setGetBooleanMethod$cp(Ljava/lang/reflect/Method;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->access$setSystemPropertiesClass$cp(Ljava/lang/Class;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->access$setSystemPropertiesClass$cp(Ljava/lang/Class;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->boundsUpdatesEventLoop(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/AndroidComposeView;->boundsUpdatesEventLoop(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->calculatePositionInWindow-MK-Hz9U(J)J\nPLandroidx/compose/ui/platform/AndroidComposeView;->calculatePositionInWindow-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->clearChildInvalidObservations(Landroid/view/ViewGroup;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->clearChildInvalidObservations(Landroid/view/ViewGroup;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->convertMeasureSpec-I7RO_PI(I)J\nHPLandroidx/compose/ui/platform/AndroidComposeView;->convertMeasureSpec-I7RO_PI(I)J\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->createLayer(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/node/OwnedLayer;\nHPLandroidx/compose/ui/platform/AndroidComposeView;->createLayer(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/node/OwnedLayer;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->dispatchDraw(Landroid/graphics/Canvas;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->dispatchDraw(Landroid/graphics/Canvas;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->forceMeasureTheSubtree(Landroidx/compose/ui/node/LayoutNode;Z)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->forceMeasureTheSubtree(Landroidx/compose/ui/node/LayoutNode;Z)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getAccessibilityManager()Landroidx/compose/ui/platform/AndroidAccessibilityManager;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getAccessibilityManager()Landroidx/compose/ui/platform/AndroidAccessibilityManager;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getAndroidViewsHandler$ui_release()Landroidx/compose/ui/platform/AndroidViewsHandler;\nHPLandroidx/compose/ui/platform/AndroidComposeView;->getAndroidViewsHandler$ui_release()Landroidx/compose/ui/platform/AndroidViewsHandler;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getAutofill()Landroidx/compose/ui/autofill/AndroidAutofill;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getAutofill()Landroidx/compose/ui/autofill/AndroidAutofill;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getAutofillTree()Landroidx/compose/ui/autofill/AutofillTree;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getAutofillTree()Landroidx/compose/ui/autofill/AutofillTree;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getClipboardManager()Landroidx/compose/ui/platform/AndroidClipboardManager;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getClipboardManager()Landroidx/compose/ui/platform/AndroidClipboardManager;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getDensity()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getDensity()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getFocusOwner()Landroidx/compose/ui/focus/FocusOwner;\nHPLandroidx/compose/ui/platform/AndroidComposeView;->getFocusOwner()Landroidx/compose/ui/focus/FocusOwner;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getFontFamilyResolver()Landroidx/compose/ui/text/font/FontFamilyResolverImpl;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getFontFamilyResolver()Landroidx/compose/ui/text/font/FontFamilyResolverImpl;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getFontLoader()Landroidx/compose/ui/platform/ViewLayer$Companion;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getFontLoader()Landroidx/compose/ui/platform/ViewLayer$Companion;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getHapticFeedBack()Landroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getHapticFeedBack()Landroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getInputModeManager()Landroidx/compose/ui/input/InputModeManagerImpl;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getInputModeManager()Landroidx/compose/ui/input/InputModeManagerImpl;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getModifierLocalManager()Landroidx/compose/ui/modifier/ModifierLocalManager;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getModifierLocalManager()Landroidx/compose/ui/modifier/ModifierLocalManager;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getPointerIconService()Landroidx/compose/ui/platform/AndroidComposeView$pointerIconService$1;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getPointerIconService()Landroidx/compose/ui/platform/AndroidComposeView$pointerIconService$1;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getRoot()Landroidx/compose/ui/node/LayoutNode;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getRoot()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getSemanticsOwner()Landroidx/compose/ui/semantics/SemanticsOwner;\nHPLandroidx/compose/ui/platform/AndroidComposeView;->getSemanticsOwner()Landroidx/compose/ui/semantics/SemanticsOwner;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getSharedDrawScope()Landroidx/compose/ui/node/LayoutNodeDrawScope;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getSharedDrawScope()Landroidx/compose/ui/node/LayoutNodeDrawScope;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getShowLayoutBounds()Z\nPLandroidx/compose/ui/platform/AndroidComposeView;->getShowLayoutBounds()Z\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getSnapshotObserver()Landroidx/compose/ui/node/OwnerSnapshotObserver;\nHPLandroidx/compose/ui/platform/AndroidComposeView;->getSnapshotObserver()Landroidx/compose/ui/node/OwnerSnapshotObserver;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getTextInputService()Landroidx/compose/ui/text/input/TextInputService;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getTextInputService()Landroidx/compose/ui/text/input/TextInputService;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getTextToolbar()Landroidx/compose/ui/platform/AndroidTextToolbar;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getTextToolbar()Landroidx/compose/ui/platform/AndroidTextToolbar;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getViewConfiguration()Landroidx/compose/ui/platform/ViewConfiguration;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getViewConfiguration()Landroidx/compose/ui/platform/ViewConfiguration;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getViewTreeOwners()Landroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;\nHPLandroidx/compose/ui/platform/AndroidComposeView;->getViewTreeOwners()Landroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->getWindowInfo()Landroidx/compose/ui/platform/WindowInfoImpl;\nPLandroidx/compose/ui/platform/AndroidComposeView;->getWindowInfo()Landroidx/compose/ui/platform/WindowInfoImpl;\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->handleMotionEvent-8iAsVTc(Landroid/view/MotionEvent;)I\nHPLandroidx/compose/ui/platform/AndroidComposeView;->handleMotionEvent-8iAsVTc(Landroid/view/MotionEvent;)I\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->invalidateLayers(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->invalidateLayers(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->invalidateLayoutNodeMeasurement(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->invalidateLayoutNodeMeasurement(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->isBadMotionEvent(Landroid/view/MotionEvent;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeView;->isBadMotionEvent(Landroid/view/MotionEvent;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->isInBounds(Landroid/view/MotionEvent;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeView;->isInBounds(Landroid/view/MotionEvent;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->localToScreen-MK-Hz9U(J)J\nHPLandroidx/compose/ui/platform/AndroidComposeView;->localToScreen-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->measureAndLayout(Z)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->measureAndLayout(Z)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->notifyLayerIsDirty$ui_release(Landroidx/compose/ui/node/OwnedLayer;Z)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->notifyLayerIsDirty$ui_release(Landroidx/compose/ui/node/OwnedLayer;Z)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onAttachedToWindow()V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onAttachedToWindow()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onDetach(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->onDetach(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onDetachedFromWindow()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onDraw(Landroid/graphics/Canvas;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onDraw(Landroid/graphics/Canvas;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onEndApplyChanges()V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onEndApplyChanges()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onLayout(ZIIII)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onLayout(ZIIII)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onLayoutChange(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->onLayoutChange(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onMeasure(II)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onMeasure(II)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onRequestMeasure(Landroidx/compose/ui/node/LayoutNode;ZZZ)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onRequestMeasure(Landroidx/compose/ui/node/LayoutNode;ZZZ)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onRequestRelayout(Landroidx/compose/ui/node/LayoutNode;ZZ)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->onRequestRelayout(Landroidx/compose/ui/node/LayoutNode;ZZ)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onRtlPropertiesChanged(I)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->onRtlPropertiesChanged(I)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onSemanticsChange()V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->onSemanticsChange()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->onWindowFocusChanged(Z)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->onWindowFocusChanged(Z)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->recalculateWindowPosition()V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->recalculateWindowPosition()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->recycle$ui_release(Landroidx/compose/ui/node/OwnedLayer;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->recycle$ui_release(Landroidx/compose/ui/node/OwnedLayer;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->registerOnEndApplyChangesListener(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->registerOnEndApplyChangesListener(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->requestClearInvalidObservations()V\nPLandroidx/compose/ui/platform/AndroidComposeView;->requestClearInvalidObservations()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->scheduleMeasureAndLayout(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->scheduleMeasureAndLayout(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->screenToLocal-MK-Hz9U(J)J\nHPLandroidx/compose/ui/platform/AndroidComposeView;->screenToLocal-MK-Hz9U(J)J\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->sendMotionEvent-8iAsVTc(Landroid/view/MotionEvent;)I\nHPLandroidx/compose/ui/platform/AndroidComposeView;->sendMotionEvent-8iAsVTc(Landroid/view/MotionEvent;)I\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->setConfigurationChangeObserver(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->setConfigurationChangeObserver(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->setOnViewTreeOwnersAvailable(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/platform/AndroidComposeView;->setOnViewTreeOwnersAvailable(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView;->updatePositionCacheAndDispatch()V\nHPLandroidx/compose/ui/platform/AndroidComposeView;->updatePositionCacheAndDispatch()V\nLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda2;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda2;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda2;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda2;->onGlobalLayout()V\nHPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda2;->onGlobalLayout()V\nLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda3;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda3;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda3;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda4;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda4;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda4;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda4;->onTouchModeChanged(Z)V\nPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda4;->onTouchModeChanged(Z)V\nLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda5;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda5;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda5;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;-><init>(Landroidx/lifecycle/LifecycleOwner;Landroidx/savedstate/SavedStateRegistryOwner;)V\nPLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;-><init>(Landroidx/lifecycle/LifecycleOwner;Landroidx/savedstate/SavedStateRegistryOwner;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;->getLifecycleOwner()Landroidx/lifecycle/LifecycleOwner;\nHPLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;->getLifecycleOwner()Landroidx/lifecycle/LifecycleOwner;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;->getSavedStateRegistryOwner()Landroidx/savedstate/SavedStateRegistryOwner;\nPLandroidx/compose/ui/platform/AndroidComposeView$ViewTreeOwners;->getSavedStateRegistryOwner()Landroidx/savedstate/SavedStateRegistryOwner;\nLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;I)V\nPLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;I)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;->invoke(Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/platform/AndroidComposeView$focusOwner$1;->invoke(Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/ui/platform/AndroidComposeView$pointerIconService$1;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$pointerIconService$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nPLandroidx/compose/ui/platform/AndroidComposeView$pointerIconService$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nLandroidx/compose/ui/platform/AndroidComposeView$removeAndroidView$1;\nLandroidx/compose/ui/platform/AndroidComposeView$resendMotionEventRunnable$1;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$resendMotionEventRunnable$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nPLandroidx/compose/ui/platform/AndroidComposeView$resendMotionEventRunnable$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;->invoke()Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;->invoke()Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;->invoke()V\nHPLandroidx/compose/ui/platform/AndroidComposeView$viewTreeOwners$2;->invoke()V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->access$createNodeInfo(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;I)Landroid/view/accessibility/AccessibilityNodeInfo;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->access$createNodeInfo(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;I)Landroid/view/accessibility/AccessibilityNodeInfo;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->access$getHandler$p(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)Landroid/os/Handler;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->access$getSemanticsChangeChecker$p(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)Landroidx/compose/ui/platform/AndroidComposeView$$ExternalSyntheticLambda5;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->boundsUpdatesEventLoop(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->boundsUpdatesEventLoop(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilityManager$ui_release()Landroid/view/accessibility/AccessibilityManager;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilityManager$ui_release()Landroid/view/accessibility/AccessibilityManager;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilityNodeProvider(Landroid/view/View;)Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilityNodeProvider(Landroid/view/View;)Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilitySelectionEnd(Landroidx/compose/ui/semantics/SemanticsNode;)I\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilitySelectionEnd(Landroidx/compose/ui/semantics/SemanticsNode;)I\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilitySelectionStart(Landroidx/compose/ui/semantics/SemanticsNode;)I\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getAccessibilitySelectionStart(Landroidx/compose/ui/semantics/SemanticsNode;)I\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getCurrentSemanticsNodes$ui_release()Ljava/util/Map;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getCurrentSemanticsNodes$ui_release()Ljava/util/Map;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getEnabledStateListener$ui_release()Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda1;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getEnabledStateListener$ui_release()Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda1;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getInfoIsCheckable(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getInfoIsCheckable(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getInfoStateDescriptionOrNull(Landroidx/compose/ui/semantics/SemanticsNode;)Ljava/lang/String;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getInfoStateDescriptionOrNull(Landroidx/compose/ui/semantics/SemanticsNode;)Ljava/lang/String;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getInfoText(Landroidx/compose/ui/semantics/SemanticsNode;)Landroid/text/SpannableString;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getInfoText(Landroidx/compose/ui/semantics/SemanticsNode;)Landroid/text/SpannableString;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getIterableTextForAccessibility(Landroidx/compose/ui/semantics/SemanticsNode;)Ljava/lang/String;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getIterableTextForAccessibility(Landroidx/compose/ui/semantics/SemanticsNode;)Ljava/lang/String;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getTextForTextField(Landroidx/compose/ui/semantics/SemanticsConfiguration;)Landroidx/compose/ui/text/AnnotatedString;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getTextForTextField(Landroidx/compose/ui/semantics/SemanticsConfiguration;)Landroidx/compose/ui/text/AnnotatedString;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getTouchExplorationStateListener$ui_release()Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2;\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->getTouchExplorationStateListener$ui_release()Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->isEnabledForAccessibility()Z\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->isEnabledForAccessibility()Z\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->isScreenReaderFocusable(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->isScreenReaderFocusable(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onLayoutChange$ui_release(Landroidx/compose/ui/node/LayoutNode;)V\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onLayoutChange$ui_release(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onSemanticsChange$ui_release()V\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onSemanticsChange$ui_release()V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onStart(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onStart(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->onStop(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->populateAccessibilityNodeInfoProperties$canScrollBackward(Landroidx/compose/ui/semantics/ScrollAxisRange;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->populateAccessibilityNodeInfoProperties$canScrollBackward(Landroidx/compose/ui/semantics/ScrollAxisRange;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->populateAccessibilityNodeInfoProperties$canScrollForward(Landroidx/compose/ui/semantics/ScrollAxisRange;)Z\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->populateAccessibilityNodeInfoProperties$canScrollForward(Landroidx/compose/ui/semantics/ScrollAxisRange;)Z\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->setContentCaptureSession$ui_release(Landroidx/core/view/contentcapture/ContentCaptureSessionCompat;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->setContentCaptureSession$ui_release(Landroidx/core/view/contentcapture/ContentCaptureSessionCompat;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->trimToSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;->trimToSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda1;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda1;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda1;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;->onViewAttachedToWindow(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;->onViewAttachedToWindow(Landroid/view/View;)V\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;->onViewDetachedFromWindow(Landroid/view/View;)V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$Api24Impl;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$Api24Impl;->addSetProgressAction(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$Api24Impl;->addSetProgressAction(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$Api29Impl;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$Api29Impl;->addPageActions(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$Api29Impl;->addPageActions(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;)V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider;->createAccessibilityNodeInfo(I)Landroid/view/accessibility/AccessibilityNodeInfo;\nHPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider;->createAccessibilityNodeInfo(I)Landroid/view/accessibility/AccessibilityNodeInfo;\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$SemanticsNodeCopy;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$SemanticsNodeCopy;-><init>(Landroidx/compose/ui/semantics/SemanticsNode;Ljava/util/Map;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$SemanticsNodeCopy;-><init>(Landroidx/compose/ui/semantics/SemanticsNode;Ljava/util/Map;)V\nLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$boundsUpdatesEventLoop$1;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$boundsUpdatesEventLoop$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$boundsUpdatesEventLoop$1;-><init>(Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$boundsUpdatesEventLoop$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;-><init>()V\nPLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;-><init>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;->disallowForceDark(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/AndroidComposeViewForceDarkModeQ;->disallowForceDark(Landroid/view/View;)V\nLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;\nHSPLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;-><init>()V\nPLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;-><init>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;->focusable(Landroid/view/View;IZ)V\nPLandroidx/compose/ui/platform/AndroidComposeViewVerificationHelperMethodsO;->focusable(Landroid/view/View;IZ)V\nLandroidx/compose/ui/platform/AndroidComposeView_androidKt;\nHSPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;->access$layoutDirectionFromInt(I)Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;->access$layoutDirectionFromInt(I)Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;->getLocaleLayoutDirection(Landroid/content/res/Configuration;)Landroidx/compose/ui/unit/LayoutDirection;\nPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;->getLocaleLayoutDirection(Landroid/content/res/Configuration;)Landroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;->getPlatformTextInputServiceInterceptor()Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/platform/AndroidComposeView_androidKt;->getPlatformTextInputServiceInterceptor()Lkotlin/jvm/functions/Function1;\nLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->ProvideAndroidCompositionLocals(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->ProvideAndroidCompositionLocals(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalConfiguration()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalConfiguration()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalContext()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalContext()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalImageVectorCache()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalImageVectorCache()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalLifecycleOwner()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalLifecycleOwner()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalSavedStateRegistryOwner()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalSavedStateRegistryOwner()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalView()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalView()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$2$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$2$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/ui/platform/DisposableSaveableStateRegistry;)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$2$invoke$$inlined$onDispose$1;-><init>(Landroidx/compose/ui/platform/DisposableSaveableStateRegistry;)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$2$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$4;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$4;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function2;I)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$4;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function2;I)V\nLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$1$invoke$$inlined$onDispose$1;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$1$invoke$$inlined$onDispose$1;-><init>(Landroid/content/Context;Landroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$callbacks$1$1;)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$1$invoke$$inlined$onDispose$1;-><init>(Landroid/content/Context;Landroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$callbacks$1$1;)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$1$invoke$$inlined$onDispose$1;->dispose()V\nLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$callbacks$1$1;\nHSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$callbacks$1$1;-><init>(Landroid/content/res/Configuration;Landroidx/compose/ui/res/ImageVectorCache;)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$callbacks$1$1;-><init>(Landroid/content/res/Configuration;Landroidx/compose/ui/res/ImageVectorCache;)V\nPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageVectorCache$callbacks$1$1;->onTrimMemory(I)V\nLandroidx/compose/ui/platform/AndroidTextToolbar;\nHSPLandroidx/compose/ui/platform/AndroidTextToolbar;-><init>(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/AndroidTextToolbar;-><init>(Landroid/view/View;)V\nLandroidx/compose/ui/platform/AndroidUiDispatcher;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;-><clinit>()V\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;-><clinit>()V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;-><init>(Landroid/view/Choreographer;Landroid/os/Handler;)V\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;-><init>(Landroid/view/Choreographer;Landroid/os/Handler;)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getHandler$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)Landroid/os/Handler;\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getHandler$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)Landroid/os/Handler;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getLock$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getLock$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getMain$delegate$cp()Lkotlin/Lazy;\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getMain$delegate$cp()Lkotlin/Lazy;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getToRunOnFrame$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)Ljava/util/List;\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$getToRunOnFrame$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)Ljava/util/List;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$performFrameDispatch(Landroidx/compose/ui/platform/AndroidUiDispatcher;J)V\nHPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$performFrameDispatch(Landroidx/compose/ui/platform/AndroidUiDispatcher;J)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$performTrampolineDispatch(Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nHPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$performTrampolineDispatch(Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$setScheduledFrameDispatch$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->access$setScheduledFrameDispatch$p(Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHPLandroidx/compose/ui/platform/AndroidUiDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->getChoreographer()Landroid/view/Choreographer;\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->getChoreographer()Landroid/view/Choreographer;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->getFrameClock()Landroidx/compose/ui/platform/AndroidUiFrameClock;\nPLandroidx/compose/ui/platform/AndroidUiDispatcher;->getFrameClock()Landroidx/compose/ui/platform/AndroidUiFrameClock;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher;->postFrameCallback$ui_release(Landroid/view/Choreographer$FrameCallback;)V\nHPLandroidx/compose/ui/platform/AndroidUiDispatcher;->postFrameCallback$ui_release(Landroid/view/Choreographer$FrameCallback;)V\nLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$currentThread$1;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$currentThread$1;-><init>()V\nPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$currentThread$1;-><init>()V\nLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;-><init>(Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nPLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;-><init>(Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;->doFrame(J)V\nHPLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;->doFrame(J)V\nHSPLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;->run()V\nHPLandroidx/compose/ui/platform/AndroidUiDispatcher$dispatchCallback$1;->run()V\nLandroidx/compose/ui/platform/AndroidUiFrameClock;\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock;-><init>(Landroid/view/Choreographer;Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nPLandroidx/compose/ui/platform/AndroidUiFrameClock;-><init>(Landroid/view/Choreographer;Landroidx/compose/ui/platform/AndroidUiDispatcher;)V\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/AndroidUiFrameClock;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nPLandroidx/compose/ui/platform/AndroidUiFrameClock;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nPLandroidx/compose/ui/platform/AndroidUiFrameClock;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/AndroidUiFrameClock;->withFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/AndroidUiFrameClock$withFrameNanos$2$callback$1;\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock$withFrameNanos$2$callback$1;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;Landroidx/compose/ui/platform/AndroidUiFrameClock;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/platform/AndroidUiFrameClock$withFrameNanos$2$callback$1;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;Landroidx/compose/ui/platform/AndroidUiFrameClock;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/platform/AndroidUiFrameClock$withFrameNanos$2$callback$1;->doFrame(J)V\nHPLandroidx/compose/ui/platform/AndroidUiFrameClock$withFrameNanos$2$callback$1;->doFrame(J)V\nLandroidx/compose/ui/platform/AndroidUriHandler;\nHSPLandroidx/compose/ui/platform/AndroidUriHandler;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/ui/platform/AndroidUriHandler;-><init>(Landroid/content/Context;)V\nLandroidx/compose/ui/platform/AndroidViewConfiguration;\nHSPLandroidx/compose/ui/platform/AndroidViewConfiguration;-><init>(Landroid/view/ViewConfiguration;)V\nPLandroidx/compose/ui/platform/AndroidViewConfiguration;-><init>(Landroid/view/ViewConfiguration;)V\nPLandroidx/compose/ui/platform/AndroidViewConfiguration;->getTouchSlop()F\nLandroidx/compose/ui/platform/AndroidViewsHandler;\nHSPLandroidx/compose/ui/platform/AndroidViewsHandler;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/ui/platform/AndroidViewsHandler;-><init>(Landroid/content/Context;)V\nHSPLandroidx/compose/ui/platform/AndroidViewsHandler;->getLayoutNodeToHolder()Ljava/util/HashMap;\nHPLandroidx/compose/ui/platform/AndroidViewsHandler;->getLayoutNodeToHolder()Ljava/util/HashMap;\nHSPLandroidx/compose/ui/platform/AndroidViewsHandler;->onLayout(ZIIII)V\nPLandroidx/compose/ui/platform/AndroidViewsHandler;->onLayout(ZIIII)V\nHSPLandroidx/compose/ui/platform/AndroidViewsHandler;->onMeasure(II)V\nHPLandroidx/compose/ui/platform/AndroidViewsHandler;->onMeasure(II)V\nHSPLandroidx/compose/ui/platform/AndroidViewsHandler;->requestLayout()V\nPLandroidx/compose/ui/platform/AndroidViewsHandler;->requestLayout()V\nLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)I\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)I\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)Z\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)Z\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;I)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;I)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$10(Landroid/graphics/RenderNode;F)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$10(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/RenderNode;I)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/RenderNode;I)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/RenderNode;F)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/RenderNode;I)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/RenderNode;I)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$4(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$4(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$5(Landroid/graphics/RenderNode;F)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$5(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$6(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$6(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$7(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$7(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$8(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$8(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$9(Landroid/graphics/RenderNode;F)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m$9(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Canvas;Landroid/graphics/RenderNode;)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Canvas;Landroid/graphics/RenderNode;)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)F\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)F\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)I\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)I\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Z\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Z\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;F)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;I)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;I)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Landroid/graphics/Outline;)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Landroid/graphics/Outline;)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Z)V\nHPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Z)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)V\nHSPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Landroid/graphics/Matrix;)V\nPLandroidx/compose/ui/platform/Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Landroid/graphics/Matrix;)V\nLandroidx/compose/ui/platform/CalculateMatrixToWindow;\nLandroidx/compose/ui/platform/CalculateMatrixToWindowApi29;\nHSPLandroidx/compose/ui/platform/CalculateMatrixToWindowApi29;-><init>()V\nPLandroidx/compose/ui/platform/CalculateMatrixToWindowApi29;-><init>()V\nHSPLandroidx/compose/ui/platform/CalculateMatrixToWindowApi29;->calculateMatrixToWindow-EL8BTi8(Landroid/view/View;[F)V\nHPLandroidx/compose/ui/platform/CalculateMatrixToWindowApi29;->calculateMatrixToWindow-EL8BTi8(Landroid/view/View;[F)V\nLandroidx/compose/ui/platform/ClipboardManager;\nLandroidx/compose/ui/platform/ComposableSingletons$Wrapper_androidKt;\nHSPLandroidx/compose/ui/platform/ComposableSingletons$Wrapper_androidKt;-><clinit>()V\nPLandroidx/compose/ui/platform/ComposableSingletons$Wrapper_androidKt;-><clinit>()V\nLandroidx/compose/ui/platform/ComposeView;\nHSPLandroidx/compose/ui/platform/ComposeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V\nPLandroidx/compose/ui/platform/ComposeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V\nHSPLandroidx/compose/ui/platform/ComposeView;->Content(Landroidx/compose/runtime/Composer;I)V\nPLandroidx/compose/ui/platform/ComposeView;->Content(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/platform/ComposeView;->getAccessibilityClassName()Ljava/lang/CharSequence;\nPLandroidx/compose/ui/platform/ComposeView;->getAccessibilityClassName()Ljava/lang/CharSequence;\nHSPLandroidx/compose/ui/platform/ComposeView;->getShouldCreateCompositionOnAttachedToWindow()Z\nPLandroidx/compose/ui/platform/ComposeView;->getShouldCreateCompositionOnAttachedToWindow()Z\nHSPLandroidx/compose/ui/platform/ComposeView;->setContent(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLandroidx/compose/ui/platform/ComposeView;->setContent(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nLandroidx/compose/ui/platform/ComposeView$Content$1;\nHSPLandroidx/compose/ui/platform/ComposeView$Content$1;-><init>(Landroidx/compose/ui/platform/ComposeView;I)V\nPLandroidx/compose/ui/platform/ComposeView$Content$1;-><init>(Landroidx/compose/ui/platform/ComposeView;I)V\nLandroidx/compose/ui/platform/CompositionLocalsKt;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;-><clinit>()V\nPLandroidx/compose/ui/platform/CompositionLocalsKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->ProvideCommonCompositionLocals(Landroidx/compose/ui/node/Owner;Landroidx/compose/ui/platform/UriHandler;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLandroidx/compose/ui/platform/CompositionLocalsKt;->ProvideCommonCompositionLocals(Landroidx/compose/ui/node/Owner;Landroidx/compose/ui/platform/UriHandler;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalAccessibilityManager()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalAccessibilityManager()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalDensity()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalDensity()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalFontFamilyResolver()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalFontFamilyResolver()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalHapticFeedback()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalHapticFeedback()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalInputModeManager()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalInputModeManager()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalLayoutDirection()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalLayoutDirection()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalUriHandler()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalUriHandler()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalViewConfiguration()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLandroidx/compose/ui/platform/CompositionLocalsKt;->getLocalViewConfiguration()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;-><clinit>()V\nPLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;-><clinit>()V\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;-><init>(I)V\nPLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;-><init>(I)V\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/ui/platform/CompositionLocalsKt$LocalDensity$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;-><init>(Landroidx/compose/ui/node/Owner;Landroidx/compose/ui/platform/UriHandler;Lkotlin/jvm/functions/Function2;II)V\nPLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;-><init>(Landroidx/compose/ui/node/Owner;Landroidx/compose/ui/platform/UriHandler;Lkotlin/jvm/functions/Function2;II)V\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nPLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/CompositionLocalsKt$ProvideCommonCompositionLocals$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/DelegatingSoftwareKeyboardController;\nHSPLandroidx/compose/ui/platform/DelegatingSoftwareKeyboardController;-><init>(Landroidx/compose/ui/text/input/TextInputService;)V\nPLandroidx/compose/ui/platform/DelegatingSoftwareKeyboardController;-><init>(Landroidx/compose/ui/text/input/TextInputService;)V\nLandroidx/compose/ui/platform/DeviceRenderNode;\nLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;\nHSPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->canBeSaved(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->canBeSaved(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->consumeRestored(Ljava/lang/String;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->consumeRestored(Ljava/lang/String;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->dispose()V\nHSPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->registerProvider(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry;->registerProvider(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Landroidx/compose/runtime/saveable/SaveableStateRegistryImpl$registerProvider$3;\nLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$1;\nHSPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$1;-><init>(ZLandroidx/savedstate/SavedStateRegistry;Ljava/lang/String;)V\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$1;-><init>(ZLandroidx/savedstate/SavedStateRegistry;Ljava/lang/String;)V\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$registered$1;\nHSPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$registered$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;)V\nPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$registered$1;-><init>(Landroidx/compose/runtime/saveable/SaveableStateRegistry;)V\nHPLandroidx/compose/ui/platform/DisposableSaveableStateRegistry_androidKt$DisposableSaveableStateRegistry$registered$1;->saveState()Landroid/os/Bundle;\nLandroidx/compose/ui/platform/GlobalSnapshotManager;\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager;-><clinit>()V\nPLandroidx/compose/ui/platform/GlobalSnapshotManager;-><clinit>()V\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager;->ensureStarted()V\nPLandroidx/compose/ui/platform/GlobalSnapshotManager;->ensureStarted()V\nLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;-><init>(Lkotlinx/coroutines/channels/Channel;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;-><init>(Lkotlinx/coroutines/channels/Channel;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$2;\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/GlobalSnapshotManager$ensureStarted$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/InfiniteAnimationPolicy;\nHSPLandroidx/compose/ui/platform/InfiniteAnimationPolicy;-><clinit>()V\nPLandroidx/compose/ui/platform/InfiniteAnimationPolicy;-><clinit>()V\nLandroidx/compose/ui/platform/InfiniteAnimationPolicy$Key;\nHSPLandroidx/compose/ui/platform/InfiniteAnimationPolicy$Key;-><clinit>()V\nPLandroidx/compose/ui/platform/InfiniteAnimationPolicy$Key;-><clinit>()V\nHSPLandroidx/compose/ui/platform/InfiniteAnimationPolicy$Key;-><init>()V\nPLandroidx/compose/ui/platform/InfiniteAnimationPolicy$Key;-><init>()V\nLandroidx/compose/ui/platform/InspectableModifier;\nHSPLandroidx/compose/ui/platform/InspectableModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/platform/InspectableModifier;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/platform/InspectableModifier;->getEnd()Landroidx/compose/ui/platform/InspectableModifier$End;\nPLandroidx/compose/ui/platform/InspectableModifier;->getEnd()Landroidx/compose/ui/platform/InspectableModifier$End;\nLandroidx/compose/ui/platform/InspectableModifier$End;\nHSPLandroidx/compose/ui/platform/InspectableModifier$End;-><init>()V\nHPLandroidx/compose/ui/platform/InspectableModifier$End;-><init>()V\nLandroidx/compose/ui/platform/InspectableValueKt;\nHSPLandroidx/compose/ui/platform/InspectableValueKt;-><clinit>()V\nPLandroidx/compose/ui/platform/InspectableValueKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/InspectableValueKt;->getNoInspectorInfo()Lkotlin/jvm/functions/Function1;\nHPLandroidx/compose/ui/platform/InspectableValueKt;->getNoInspectorInfo()Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/ui/platform/InspectableValueKt;->inspectableWrapper(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/platform/InspectableValueKt;->inspectableWrapper(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;\nHSPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;-><clinit>()V\nPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;-><clinit>()V\nHSPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;-><init>(I)V\nPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;-><init>(I)V\nHSPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;->invoke(Landroidx/compose/ui/node/LayoutNode;)Ljava/lang/Boolean;\nHPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;->invoke(Landroidx/compose/ui/node/LayoutNode;)Ljava/lang/Boolean;\nHSPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/InspectableValueKt$NoInspectorInfo$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/InspectorValueInfo;\nHSPLandroidx/compose/ui/platform/InspectorValueInfo;-><init>(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/platform/InspectorValueInfo;-><init>(Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/platform/LayerMatrixCache;\nHSPLandroidx/compose/ui/platform/LayerMatrixCache;-><init>(Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/platform/LayerMatrixCache;-><init>(Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/ui/platform/LayerMatrixCache;->calculateInverseMatrix-bWbORWo(Ljava/lang/Object;)[F\nHPLandroidx/compose/ui/platform/LayerMatrixCache;->calculateInverseMatrix-bWbORWo(Ljava/lang/Object;)[F\nHSPLandroidx/compose/ui/platform/LayerMatrixCache;->calculateMatrix-GrdbGEg(Ljava/lang/Object;)[F\nHPLandroidx/compose/ui/platform/LayerMatrixCache;->calculateMatrix-GrdbGEg(Ljava/lang/Object;)[F\nHSPLandroidx/compose/ui/platform/LayerMatrixCache;->invalidate()V\nPLandroidx/compose/ui/platform/LayerMatrixCache;->invalidate()V\nLandroidx/compose/ui/platform/MotionDurationScaleImpl;\nHSPLandroidx/compose/ui/platform/MotionDurationScaleImpl;-><init>()V\nPLandroidx/compose/ui/platform/MotionDurationScaleImpl;-><init>()V\nHSPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->getScaleFactor()F\nPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->getScaleFactor()F\nHSPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->setScaleFactor(F)V\nPLandroidx/compose/ui/platform/MotionDurationScaleImpl;->setScaleFactor(F)V\nLandroidx/compose/ui/platform/OutlineResolver;\nHSPLandroidx/compose/ui/platform/OutlineResolver;-><init>(Landroidx/compose/ui/unit/Density;)V\nHPLandroidx/compose/ui/platform/OutlineResolver;-><init>(Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/compose/ui/platform/OutlineResolver;->getOutline()Landroid/graphics/Outline;\nHPLandroidx/compose/ui/platform/OutlineResolver;->getOutline()Landroid/graphics/Outline;\nHSPLandroidx/compose/ui/platform/OutlineResolver;->getOutlineClipSupported()Z\nPLandroidx/compose/ui/platform/OutlineResolver;->getOutlineClipSupported()Z\nHSPLandroidx/compose/ui/platform/OutlineResolver;->isInOutline-k-4lQ0M(J)Z\nPLandroidx/compose/ui/platform/OutlineResolver;->isInOutline-k-4lQ0M(J)Z\nHSPLandroidx/compose/ui/platform/OutlineResolver;->update(Landroidx/compose/ui/graphics/Shape;FZFLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)Z\nHPLandroidx/compose/ui/platform/OutlineResolver;->update(Landroidx/compose/ui/graphics/Shape;FZFLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)Z\nHSPLandroidx/compose/ui/platform/OutlineResolver;->update-uvyYCjk(J)V\nPLandroidx/compose/ui/platform/OutlineResolver;->update-uvyYCjk(J)V\nHSPLandroidx/compose/ui/platform/OutlineResolver;->updateCache()V\nHPLandroidx/compose/ui/platform/OutlineResolver;->updateCache()V\nLandroidx/compose/ui/platform/RenderNodeApi29;\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;-><init>()V\nPLandroidx/compose/ui/platform/RenderNodeApi29;-><init>()V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->discardDisplayList()V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->discardDisplayList()V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->drawInto(Landroid/graphics/Canvas;)V\nPLandroidx/compose/ui/platform/RenderNodeApi29;->drawInto(Landroid/graphics/Canvas;)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getAlpha()F\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getAlpha()F\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getClipToBounds()Z\nPLandroidx/compose/ui/platform/RenderNodeApi29;->getClipToBounds()Z\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getClipToOutline()Z\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getClipToOutline()Z\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getElevation()F\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getElevation()F\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getHasDisplayList()Z\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getHasDisplayList()Z\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getHeight()I\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getHeight()I\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getLeft()I\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getLeft()I\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getMatrix(Landroid/graphics/Matrix;)V\nPLandroidx/compose/ui/platform/RenderNodeApi29;->getMatrix(Landroid/graphics/Matrix;)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getTop()I\nPLandroidx/compose/ui/platform/RenderNodeApi29;->getTop()I\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->getWidth()I\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->getWidth()I\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->offsetLeftAndRight(I)V\nPLandroidx/compose/ui/platform/RenderNodeApi29;->offsetLeftAndRight(I)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->offsetTopAndBottom(I)V\nPLandroidx/compose/ui/platform/RenderNodeApi29;->offsetTopAndBottom(I)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->record(Landroidx/compose/runtime/Stack;Landroidx/compose/ui/graphics/Path;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->record(Landroidx/compose/runtime/Stack;Landroidx/compose/ui/graphics/Path;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setAlpha(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setAlpha(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setAmbientShadowColor(I)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setAmbientShadowColor(I)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setCameraDistance(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setCameraDistance(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setClipToBounds(Z)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setClipToBounds(Z)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setClipToOutline(Z)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setClipToOutline(Z)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setCompositingStrategy-aDBOjCE(I)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setCompositingStrategy-aDBOjCE(I)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setElevation(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setElevation(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setHasOverlappingRendering()Z\nPLandroidx/compose/ui/platform/RenderNodeApi29;->setHasOverlappingRendering()Z\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setOutline(Landroid/graphics/Outline;)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setOutline(Landroid/graphics/Outline;)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setPivotX(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setPivotX(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setPivotY(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setPivotY(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setPosition(IIII)Z\nPLandroidx/compose/ui/platform/RenderNodeApi29;->setPosition(IIII)Z\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setRenderEffect(Landroidx/compose/ui/graphics/RenderEffect;)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setRenderEffect(Landroidx/compose/ui/graphics/RenderEffect;)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setRotationX(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setRotationX(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setRotationY(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setRotationY(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setRotationZ(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setRotationZ(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setScaleX(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setScaleX(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setScaleY(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setScaleY(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setSpotShadowColor(I)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setSpotShadowColor(I)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setTranslationX(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setTranslationX(F)V\nHSPLandroidx/compose/ui/platform/RenderNodeApi29;->setTranslationY(F)V\nHPLandroidx/compose/ui/platform/RenderNodeApi29;->setTranslationY(F)V\nLandroidx/compose/ui/platform/RenderNodeLayer;\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;-><clinit>()V\nPLandroidx/compose/ui/platform/RenderNodeLayer;-><clinit>()V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->destroy()V\nPLandroidx/compose/ui/platform/RenderNodeLayer;->destroy()V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->drawLayer(Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->drawLayer(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->invalidate()V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->invalidate()V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->isInLayer-k-4lQ0M(J)Z\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->isInLayer-k-4lQ0M(J)Z\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->mapBounds(Landroidx/compose/ui/geometry/MutableRect;Z)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->mapBounds(Landroidx/compose/ui/geometry/MutableRect;Z)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->mapOffset-8S9VItk(JZ)J\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->mapOffset-8S9VItk(JZ)J\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->move--gyyYBs(J)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->move--gyyYBs(J)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->resize-ozmzZPI(J)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->resize-ozmzZPI(J)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->reuseLayer(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/platform/RenderNodeLayer;->reuseLayer(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->setDirty(Z)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->setDirty(Z)V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->updateDisplayList()V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->updateDisplayList()V\nHSPLandroidx/compose/ui/platform/RenderNodeLayer;->updateLayerProperties-dDxr-wY(FFFFFFFFFFJLandroidx/compose/ui/graphics/Shape;ZLandroidx/compose/ui/graphics/RenderEffect;JJILandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)V\nHPLandroidx/compose/ui/platform/RenderNodeLayer;->updateLayerProperties-dDxr-wY(FFFFFFFFFFJLandroidx/compose/ui/graphics/Shape;ZLandroidx/compose/ui/graphics/RenderEffect;JJILandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)V\nLandroidx/compose/ui/platform/ScrollObservationScope;\nLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;\nHSPLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;-><init>(Landroidx/compose/ui/semantics/SemanticsNode;Landroid/graphics/Rect;)V\nPLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;-><init>(Landroidx/compose/ui/semantics/SemanticsNode;Landroid/graphics/Rect;)V\nHSPLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;->getAdjustedBounds()Landroid/graphics/Rect;\nHPLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;->getAdjustedBounds()Landroid/graphics/Rect;\nHSPLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;->getSemanticsNode()Landroidx/compose/ui/semantics/SemanticsNode;\nHPLandroidx/compose/ui/platform/SemanticsNodeWithAdjustedBounds;->getSemanticsNode()Landroidx/compose/ui/semantics/SemanticsNode;\nLandroidx/compose/ui/platform/UriHandler;\nLandroidx/compose/ui/platform/ViewCompositionStrategy;\nLandroidx/compose/ui/platform/ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool$installFor$1;\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool$installFor$1;-><init>(Landroidx/compose/ui/platform/AbstractComposeView;Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;Landroidx/customview/poolingcontainer/PoolingContainerListener;)V\nPLandroidx/compose/ui/platform/ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool$installFor$1;-><init>(Landroidx/compose/ui/platform/AbstractComposeView;Landroidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat$1;Landroidx/customview/poolingcontainer/PoolingContainerListener;)V\nLandroidx/compose/ui/platform/ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool$installFor$poolingContainerListener$1;\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool$installFor$poolingContainerListener$1;-><init>(Landroidx/compose/ui/platform/AbstractComposeView;)V\nPLandroidx/compose/ui/platform/ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool$installFor$poolingContainerListener$1;-><init>(Landroidx/compose/ui/platform/AbstractComposeView;)V\nLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;-><clinit>()V\nPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$canBeSavedToBundle(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$canBeSavedToBundle(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$enabled(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$enabled(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$excludeLineAndPageGranularities(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$excludeLineAndPageGranularities(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$isVisible(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->access$isVisible(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->canBeSavedToBundle(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->canBeSavedToBundle(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(Landroid/graphics/Region;Landroidx/compose/ui/semantics/SemanticsNode;Ljava/util/LinkedHashMap;Landroidx/compose/ui/semantics/SemanticsNode;Landroid/graphics/Region;)V\nHPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(Landroid/graphics/Region;Landroidx/compose/ui/semantics/SemanticsNode;Ljava/util/LinkedHashMap;Landroidx/compose/ui/semantics/SemanticsNode;Landroid/graphics/Region;)V\nHSPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->getAllUncoveredSemanticsNodesToMap(Landroidx/compose/ui/semantics/SemanticsOwner;)Ljava/util/LinkedHashMap;\nHPLandroidx/compose/ui/platform/ViewCompositionStrategy_androidKt;->getAllUncoveredSemanticsNodesToMap(Landroidx/compose/ui/semantics/SemanticsOwner;)Ljava/util/LinkedHashMap;\nLandroidx/compose/ui/platform/ViewConfiguration;\nHSPLandroidx/compose/ui/platform/ViewConfiguration;->getMinimumTouchTargetSize-MYxV2XQ()J\nHPLandroidx/compose/ui/platform/ViewConfiguration;->getMinimumTouchTargetSize-MYxV2XQ()J\nLandroidx/compose/ui/platform/ViewLayer;\nHSPLandroidx/compose/ui/platform/ViewLayer;-><clinit>()V\nPLandroidx/compose/ui/platform/ViewLayer;-><clinit>()V\nHSPLandroidx/compose/ui/platform/ViewLayer;->access$getShouldUseDispatchDraw$cp()Z\nPLandroidx/compose/ui/platform/ViewLayer;->access$getShouldUseDispatchDraw$cp()Z\nLandroidx/compose/ui/platform/ViewLayer$Companion;\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion;-><clinit>()V\nPLandroidx/compose/ui/platform/ViewLayer$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion;-><init>()V\nPLandroidx/compose/ui/platform/ViewLayer$Companion;-><init>()V\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion;->access$getIsShowingLayoutBounds()Z\nPLandroidx/compose/ui/platform/ViewLayer$Companion;->access$getIsShowingLayoutBounds()Z\nLandroidx/compose/ui/platform/ViewLayer$Companion$OutlineProvider$1;\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion$OutlineProvider$1;-><init>()V\nPLandroidx/compose/ui/platform/ViewLayer$Companion$OutlineProvider$1;-><init>()V\nLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;-><clinit>()V\nPLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;-><clinit>()V\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;-><init>(I)V\nPLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;-><init>(I)V\nHSPLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/ViewLayer$Companion$getMatrix$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WeakCache;\nHSPLandroidx/compose/ui/platform/WeakCache;-><init>()V\nPLandroidx/compose/ui/platform/WeakCache;-><init>()V\nHSPLandroidx/compose/ui/platform/WeakCache;->pop()Ljava/lang/Object;\nHPLandroidx/compose/ui/platform/WeakCache;->pop()Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/WeakCache;->push(Ljava/lang/Object;)V\nHPLandroidx/compose/ui/platform/WeakCache;->push(Ljava/lang/Object;)V\nLandroidx/compose/ui/platform/WindowInfoImpl;\nHSPLandroidx/compose/ui/platform/WindowInfoImpl;-><clinit>()V\nPLandroidx/compose/ui/platform/WindowInfoImpl;-><clinit>()V\nHSPLandroidx/compose/ui/platform/WindowInfoImpl;-><init>()V\nPLandroidx/compose/ui/platform/WindowInfoImpl;-><init>()V\nHSPLandroidx/compose/ui/platform/WindowInfoImpl;->setKeyboardModifiers-5xRPYO0(I)V\nPLandroidx/compose/ui/platform/WindowInfoImpl;->setKeyboardModifiers-5xRPYO0(I)V\nHSPLandroidx/compose/ui/platform/WindowInfoImpl;->setWindowFocused(Z)V\nPLandroidx/compose/ui/platform/WindowInfoImpl;->setWindowFocused(Z)V\nLandroidx/compose/ui/platform/WindowRecomposerFactory;\nHSPLandroidx/compose/ui/platform/WindowRecomposerFactory;-><clinit>()V\nPLandroidx/compose/ui/platform/WindowRecomposerFactory;-><clinit>()V\nLandroidx/compose/ui/platform/WindowRecomposerFactory$Companion$LifecycleAware$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposerFactory$Companion$LifecycleAware$1;-><clinit>()V\nPLandroidx/compose/ui/platform/WindowRecomposerFactory$Companion$LifecycleAware$1;-><clinit>()V\nHSPLandroidx/compose/ui/platform/WindowRecomposerFactory$Companion$LifecycleAware$1;-><init>()V\nPLandroidx/compose/ui/platform/WindowRecomposerFactory$Companion$LifecycleAware$1;-><init>()V\nLandroidx/compose/ui/platform/WindowRecomposerPolicy;\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy;-><clinit>()V\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy;-><clinit>()V\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy;->createAndInstallWindowRecomposer$ui_release(Landroid/view/View;)Landroidx/compose/runtime/Recomposer;\nHPLandroidx/compose/ui/platform/WindowRecomposerPolicy;->createAndInstallWindowRecomposer$ui_release(Landroid/view/View;)Landroidx/compose/runtime/Recomposer;\nLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$1;-><init>(Lkotlinx/coroutines/Job;)V\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$1;-><init>(Lkotlinx/coroutines/Job;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$1;->onViewAttachedToWindow(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$1;->onViewAttachedToWindow(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$1;->onViewDetachedFromWindow(Landroid/view/View;)V\nLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;-><init>(Landroidx/compose/runtime/Recomposer;Landroid/view/View;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;-><init>(Landroidx/compose/runtime/Recomposer;Landroid/view/View;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposerPolicy$createAndInstallWindowRecomposer$unsetJob$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt;-><clinit>()V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt;->access$getAnimationScaleFlowFor(Landroid/content/Context;)Lkotlinx/coroutines/flow/StateFlow;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt;->access$getAnimationScaleFlowFor(Landroid/content/Context;)Lkotlinx/coroutines/flow/StateFlow;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt;->getCompositionContext(Landroid/view/View;)Landroidx/compose/runtime/CompositionContext;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt;->getCompositionContext(Landroid/view/View;)Landroidx/compose/runtime/CompositionContext;\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$1;-><init>(Landroid/view/View;Landroidx/compose/runtime/Recomposer;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$1;-><init>(Landroid/view/View;Landroidx/compose/runtime/Recomposer;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$1;->onViewAttachedToWindow(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$1;->onViewAttachedToWindow(Landroid/view/View;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$1;->onViewDetachedFromWindow(Landroid/view/View;)V\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;-><init>(Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/runtime/PausableMonotonicFrameClock;Landroidx/compose/runtime/Recomposer;Lkotlin/jvm/internal/Ref$ObjectRef;Landroid/view/View;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;-><init>(Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/runtime/PausableMonotonicFrameClock;Landroidx/compose/runtime/Recomposer;Lkotlin/jvm/internal/Ref$ObjectRef;Landroid/view/View;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$WhenMappings;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$WhenMappings;-><clinit>()V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$WhenMappings;-><clinit>()V\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Landroidx/compose/runtime/Recomposer;Landroidx/lifecycle/LifecycleOwner;Landroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;Landroid/view/View;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Landroidx/compose/runtime/Recomposer;Landroidx/lifecycle/LifecycleOwner;Landroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2;Landroid/view/View;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;-><init>(Lkotlinx/coroutines/flow/StateFlow;Landroidx/compose/ui/platform/MotionDurationScaleImpl;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;-><init>(Lkotlinx/coroutines/flow/StateFlow;Landroidx/compose/ui/platform/MotionDurationScaleImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1$1;-><init>(Landroidx/compose/ui/platform/MotionDurationScaleImpl;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1$1;-><init>(Landroidx/compose/ui/platform/MotionDurationScaleImpl;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$createLifecycleAwareWindowRecomposer$2$onStateChanged$1$1$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;-><init>(Landroid/content/ContentResolver;Landroid/net/Uri;Landroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$contentObserver$1;Lkotlinx/coroutines/channels/Channel;Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;-><init>(Landroid/content/ContentResolver;Landroid/net/Uri;Landroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$contentObserver$1;Lkotlinx/coroutines/channels/Channel;Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$contentObserver$1;\nHSPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$contentObserver$1;-><init>(Lkotlinx/coroutines/channels/Channel;Landroid/os/Handler;)V\nPLandroidx/compose/ui/platform/WindowRecomposer_androidKt$getAnimationScaleFlowFor$1$1$contentObserver$1;-><init>(Lkotlinx/coroutines/channels/Channel;Landroid/os/Handler;)V\nLandroidx/compose/ui/platform/WrappedComposition;\nHSPLandroidx/compose/ui/platform/WrappedComposition;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;Landroidx/compose/runtime/CompositionImpl;)V\nPLandroidx/compose/ui/platform/WrappedComposition;-><init>(Landroidx/compose/ui/platform/AndroidComposeView;Landroidx/compose/runtime/CompositionImpl;)V\nHSPLandroidx/compose/ui/platform/WrappedComposition;->access$getAddedToLifecycle$p(Landroidx/compose/ui/platform/WrappedComposition;)Landroidx/lifecycle/Lifecycle;\nPLandroidx/compose/ui/platform/WrappedComposition;->access$getAddedToLifecycle$p(Landroidx/compose/ui/platform/WrappedComposition;)Landroidx/lifecycle/Lifecycle;\nHSPLandroidx/compose/ui/platform/WrappedComposition;->access$getDisposed$p(Landroidx/compose/ui/platform/WrappedComposition;)Z\nPLandroidx/compose/ui/platform/WrappedComposition;->access$getDisposed$p(Landroidx/compose/ui/platform/WrappedComposition;)Z\nHSPLandroidx/compose/ui/platform/WrappedComposition;->access$setAddedToLifecycle$p(Landroidx/compose/ui/platform/WrappedComposition;Landroidx/lifecycle/Lifecycle;)V\nPLandroidx/compose/ui/platform/WrappedComposition;->access$setAddedToLifecycle$p(Landroidx/compose/ui/platform/WrappedComposition;Landroidx/lifecycle/Lifecycle;)V\nHSPLandroidx/compose/ui/platform/WrappedComposition;->access$setLastContent$p(Landroidx/compose/ui/platform/WrappedComposition;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/platform/WrappedComposition;->access$setLastContent$p(Landroidx/compose/ui/platform/WrappedComposition;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/platform/WrappedComposition;->dispose()V\nHSPLandroidx/compose/ui/platform/WrappedComposition;->getOriginal()Landroidx/compose/runtime/Composition;\nPLandroidx/compose/ui/platform/WrappedComposition;->getOriginal()Landroidx/compose/runtime/Composition;\nHSPLandroidx/compose/ui/platform/WrappedComposition;->getOwner()Landroidx/compose/ui/platform/AndroidComposeView;\nPLandroidx/compose/ui/platform/WrappedComposition;->getOwner()Landroidx/compose/ui/platform/AndroidComposeView;\nHSPLandroidx/compose/ui/platform/WrappedComposition;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nPLandroidx/compose/ui/platform/WrappedComposition;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHSPLandroidx/compose/ui/platform/WrappedComposition;->setContent(Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/platform/WrappedComposition;->setContent(Lkotlin/jvm/functions/Function2;)V\nLandroidx/compose/ui/platform/WrappedComposition$setContent$1;\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/compose/ui/platform/WrappedComposition$setContent$1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;-><init>(Landroidx/compose/ui/platform/WrappedComposition;Lkotlin/jvm/functions/Function2;I)V\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;-><init>(Landroidx/compose/ui/platform/WrappedComposition;Lkotlin/jvm/functions/Function2;I)V\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;-><init>(Landroidx/compose/ui/platform/WrappedComposition;Lkotlin/coroutines/Continuation;)V\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;-><init>(Landroidx/compose/ui/platform/WrappedComposition;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/platform/WrappedComposition$setContent$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;\nHSPLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;-><clinit>()V\nPLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;-><clinit>()V\nHSPLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;-><init>()V\nPLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;-><init>()V\nHSPLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;->onDescendantInvalidated(Landroidx/compose/ui/platform/AndroidComposeView;)V\nHPLandroidx/compose/ui/platform/WrapperRenderNodeLayerHelperMethods;->onDescendantInvalidated(Landroidx/compose/ui/platform/AndroidComposeView;)V\nLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;\nHSPLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;-><clinit>()V\nPLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;-><clinit>()V\nHSPLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;-><init>()V\nPLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;-><init>()V\nHSPLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;->attributeSourceResourceMap(Landroid/view/View;)Ljava/util/Map;\nPLandroidx/compose/ui/platform/WrapperVerificationHelperMethods;->attributeSourceResourceMap(Landroid/view/View;)Ljava/util/Map;\nLandroidx/compose/ui/platform/Wrapper_androidKt;\nHSPLandroidx/compose/ui/platform/Wrapper_androidKt;-><clinit>()V\nPLandroidx/compose/ui/platform/Wrapper_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/platform/Wrapper_androidKt;->setContent(Landroidx/compose/ui/platform/AbstractComposeView;Landroidx/compose/runtime/CompositionContext;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)Landroidx/compose/runtime/Composition;\nPLandroidx/compose/ui/platform/Wrapper_androidKt;->setContent(Landroidx/compose/ui/platform/AbstractComposeView;Landroidx/compose/runtime/CompositionContext;Landroidx/compose/runtime/internal/ComposableLambdaImpl;)Landroidx/compose/runtime/Composition;\nLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;\nHSPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->calculateIfHorizontallyStacked(Ljava/util/ArrayList;)Z\nHPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->calculateIfHorizontallyStacked(Ljava/util/ArrayList;)Z\nHSPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->hasCollectionInfo(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->hasCollectionInfo(Landroidx/compose/ui/semantics/SemanticsNode;)Z\nHSPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->setCollectionInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nHPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->setCollectionInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nHSPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->setCollectionItemInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nHPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt;->setCollectionItemInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Landroidx/compose/ui/semantics/SemanticsNode;)V\nLandroidx/compose/ui/platform/accessibility/CollectionInfoKt$setCollectionItemInfo$itemInfo$1;\nHSPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt$setCollectionItemInfo$itemInfo$1;-><clinit>()V\nPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt$setCollectionItemInfo$itemInfo$1;-><clinit>()V\nHSPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt$setCollectionItemInfo$itemInfo$1;-><init>(I)V\nPLandroidx/compose/ui/platform/accessibility/CollectionInfoKt$setCollectionItemInfo$itemInfo$1;-><init>(I)V\nLandroidx/compose/ui/platform/actionmodecallback/TextActionModeCallback;\nHSPLandroidx/compose/ui/platform/actionmodecallback/TextActionModeCallback;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/platform/actionmodecallback/TextActionModeCallback;-><init>(Lkotlin/jvm/functions/Function0;)V\nLandroidx/compose/ui/res/ImageVectorCache;\nHSPLandroidx/compose/ui/res/ImageVectorCache;-><init>()V\nPLandroidx/compose/ui/res/ImageVectorCache;-><init>()V\nPLandroidx/compose/ui/res/ImageVectorCache;->clear()V\nHSPLandroidx/compose/ui/res/ImageVectorCache;->get(Landroidx/compose/ui/res/ImageVectorCache$Key;)Landroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;\nPLandroidx/compose/ui/res/ImageVectorCache;->get(Landroidx/compose/ui/res/ImageVectorCache$Key;)Landroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;\nHSPLandroidx/compose/ui/res/ImageVectorCache;->set(Landroidx/compose/ui/res/ImageVectorCache$Key;Landroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;)V\nPLandroidx/compose/ui/res/ImageVectorCache;->set(Landroidx/compose/ui/res/ImageVectorCache$Key;Landroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;)V\nLandroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;\nHSPLandroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;I)V\nPLandroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;I)V\nHSPLandroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;->getImageVector()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;->getImageVector()Landroidx/compose/ui/graphics/vector/ImageVector;\nLandroidx/compose/ui/res/ImageVectorCache$Key;\nHSPLandroidx/compose/ui/res/ImageVectorCache$Key;-><init>(ILandroid/content/res/Resources$Theme;)V\nPLandroidx/compose/ui/res/ImageVectorCache$Key;-><init>(ILandroid/content/res/Resources$Theme;)V\nHSPLandroidx/compose/ui/res/ImageVectorCache$Key;->hashCode()I\nPLandroidx/compose/ui/res/ImageVectorCache$Key;->hashCode()I\nLandroidx/compose/ui/semantics/AccessibilityAction;\nHSPLandroidx/compose/ui/semantics/AccessibilityAction;-><init>(Ljava/lang/String;Lkotlin/Function;)V\nHPLandroidx/compose/ui/semantics/AccessibilityAction;-><init>(Ljava/lang/String;Lkotlin/Function;)V\nHSPLandroidx/compose/ui/semantics/AccessibilityAction;->getLabel()Ljava/lang/String;\nHPLandroidx/compose/ui/semantics/AccessibilityAction;->getLabel()Ljava/lang/String;\nLandroidx/compose/ui/semantics/AppendedSemanticsElement;\nHSPLandroidx/compose/ui/semantics/AppendedSemanticsElement;-><init>(ZLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/semantics/AppendedSemanticsElement;-><init>(ZLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/semantics/AppendedSemanticsElement;->create()Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/compose/ui/semantics/AppendedSemanticsElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/semantics/AppendedSemanticsElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/semantics/AppendedSemanticsElement;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/semantics/AppendedSemanticsElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nPLandroidx/compose/ui/semantics/AppendedSemanticsElement;->update(Landroidx/compose/ui/Modifier$Node;)V\nLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;\nHSPLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;->create()Landroidx/compose/ui/Modifier$Node;\nHSPLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/semantics/ClearAndSetSemanticsElement;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/semantics/CollectionInfo;\nHSPLandroidx/compose/ui/semantics/CollectionInfo;-><init>(II)V\nPLandroidx/compose/ui/semantics/CollectionInfo;-><init>(II)V\nPLandroidx/compose/ui/semantics/CollectionInfo;->getColumnCount()I\nPLandroidx/compose/ui/semantics/CollectionInfo;->getRowCount()I\nLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;\nHSPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;-><init>(ZZLkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;-><init>(ZZLkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHSPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->getShouldClearDescendantSemantics()Z\nHPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->getShouldClearDescendantSemantics()Z\nHSPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->getShouldMergeDescendantSemantics()Z\nHPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->getShouldMergeDescendantSemantics()Z\nHSPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->setMergeDescendants(Z)V\nPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->setMergeDescendants(Z)V\nHSPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->setProperties(Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/semantics/CoreSemanticsModifierNode;->setProperties(Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/semantics/CustomAccessibilityAction;\nLandroidx/compose/ui/semantics/EmptySemanticsElement;\nHSPLandroidx/compose/ui/semantics/EmptySemanticsElement;-><clinit>()V\nPLandroidx/compose/ui/semantics/EmptySemanticsElement;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/EmptySemanticsElement;-><init>()V\nPLandroidx/compose/ui/semantics/EmptySemanticsElement;-><init>()V\nHSPLandroidx/compose/ui/semantics/EmptySemanticsElement;->create()Landroidx/compose/ui/Modifier$Node;\nPLandroidx/compose/ui/semantics/EmptySemanticsElement;->create()Landroidx/compose/ui/Modifier$Node;\nLandroidx/compose/ui/semantics/EmptySemanticsModifier;\nHSPLandroidx/compose/ui/semantics/EmptySemanticsModifier;-><init>()V\nPLandroidx/compose/ui/semantics/EmptySemanticsModifier;-><init>()V\nHSPLandroidx/compose/ui/semantics/EmptySemanticsModifier;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nPLandroidx/compose/ui/semantics/EmptySemanticsModifier;->applySemantics(Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nLandroidx/compose/ui/semantics/LiveRegionMode;\nLandroidx/compose/ui/semantics/ProgressBarRangeInfo;\nLandroidx/compose/ui/semantics/Role;\nHSPLandroidx/compose/ui/semantics/Role;-><init>(I)V\nHPLandroidx/compose/ui/semantics/Role;-><init>(I)V\nHSPLandroidx/compose/ui/semantics/Role;->box-impl(I)Landroidx/compose/ui/semantics/Role;\nHPLandroidx/compose/ui/semantics/Role;->box-impl(I)Landroidx/compose/ui/semantics/Role;\nHSPLandroidx/compose/ui/semantics/Role;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/semantics/Role;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/semantics/Role;->unbox-impl()I\nHPLandroidx/compose/ui/semantics/Role;->unbox-impl()I\nLandroidx/compose/ui/semantics/ScrollAxisRange;\nHSPLandroidx/compose/ui/semantics/ScrollAxisRange;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Z)V\nPLandroidx/compose/ui/semantics/ScrollAxisRange;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Z)V\nHSPLandroidx/compose/ui/semantics/ScrollAxisRange;->getMaxValue()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/ui/semantics/ScrollAxisRange;->getMaxValue()Lkotlin/jvm/functions/Function0;\nHSPLandroidx/compose/ui/semantics/ScrollAxisRange;->getValue()Lkotlin/jvm/functions/Function0;\nPLandroidx/compose/ui/semantics/ScrollAxisRange;->getValue()Lkotlin/jvm/functions/Function0;\nLandroidx/compose/ui/semantics/SemanticsActions;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsActions;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getClearTextSubstitution()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getClearTextSubstitution()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getCollapse()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getCollapse()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getCopyText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getCopyText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getCustomActions()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getCustomActions()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getCutText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getCutText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getDismiss()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getDismiss()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getExpand()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getExpand()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getGetTextLayoutResult()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getGetTextLayoutResult()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getOnClick()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getOnClick()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getOnImeAction()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getOnImeAction()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getOnLongClick()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getOnLongClick()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getPageDown()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getPageDown()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getPageLeft()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getPageLeft()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getPageRight()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getPageRight()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getPageUp()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getPageUp()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getPasteText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getPasteText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getRequestFocus()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getRequestFocus()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getScrollBy()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getScrollBy()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getScrollToIndex()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getSetProgress()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getSetProgress()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getSetSelection()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getSetSelection()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getSetText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsActions;->getSetText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getSetTextSubstitution()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getSetTextSubstitution()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsActions;->getShowTextSubstitution()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsActions;->getShowTextSubstitution()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nLandroidx/compose/ui/semantics/SemanticsConfiguration;\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;-><init>()V\nHPLandroidx/compose/ui/semantics/SemanticsConfiguration;-><init>()V\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->contains(Landroidx/compose/ui/semantics/SemanticsPropertyKey;)Z\nHPLandroidx/compose/ui/semantics/SemanticsConfiguration;->contains(Landroidx/compose/ui/semantics/SemanticsPropertyKey;)Z\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->get(Landroidx/compose/ui/semantics/SemanticsPropertyKey;)Ljava/lang/Object;\nHPLandroidx/compose/ui/semantics/SemanticsConfiguration;->get(Landroidx/compose/ui/semantics/SemanticsPropertyKey;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->getOrElse(Landroidx/compose/ui/semantics/SemanticsPropertyKey;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nPLandroidx/compose/ui/semantics/SemanticsConfiguration;->getOrElse(Landroidx/compose/ui/semantics/SemanticsPropertyKey;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->getOrElseNullable(Landroidx/compose/ui/semantics/SemanticsPropertyKey;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nHPLandroidx/compose/ui/semantics/SemanticsConfiguration;->getOrElseNullable(Landroidx/compose/ui/semantics/SemanticsPropertyKey;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->isClearingSemantics()Z\nPLandroidx/compose/ui/semantics/SemanticsConfiguration;->isClearingSemantics()Z\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->isMergingSemanticsOfDescendants()Z\nHPLandroidx/compose/ui/semantics/SemanticsConfiguration;->isMergingSemanticsOfDescendants()Z\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->set(Landroidx/compose/ui/semantics/SemanticsPropertyKey;Ljava/lang/Object;)V\nHPLandroidx/compose/ui/semantics/SemanticsConfiguration;->set(Landroidx/compose/ui/semantics/SemanticsPropertyKey;Ljava/lang/Object;)V\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->setClearingSemantics(Z)V\nPLandroidx/compose/ui/semantics/SemanticsConfiguration;->setClearingSemantics(Z)V\nHSPLandroidx/compose/ui/semantics/SemanticsConfiguration;->setMergingSemanticsOfDescendants(Z)V\nPLandroidx/compose/ui/semantics/SemanticsConfiguration;->setMergingSemanticsOfDescendants(Z)V\nLandroidx/compose/ui/semantics/SemanticsConfigurationKt$getOrNull$1;\nHSPLandroidx/compose/ui/semantics/SemanticsConfigurationKt$getOrNull$1;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsConfigurationKt$getOrNull$1;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsConfigurationKt$getOrNull$1;-><init>()V\nPLandroidx/compose/ui/semantics/SemanticsConfigurationKt$getOrNull$1;-><init>()V\nLandroidx/compose/ui/semantics/SemanticsModifier;\nLandroidx/compose/ui/semantics/SemanticsModifierKt;\nHSPLandroidx/compose/ui/semantics/SemanticsModifierKt;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsModifierKt;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsModifierKt;->generateSemanticsId()I\nHPLandroidx/compose/ui/semantics/SemanticsModifierKt;->generateSemanticsId()I\nHSPLandroidx/compose/ui/semantics/SemanticsModifierKt;->semantics(Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nHPLandroidx/compose/ui/semantics/SemanticsModifierKt;->semantics(Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier;\nLandroidx/compose/ui/semantics/SemanticsNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;-><init>(Landroidx/compose/ui/Modifier$Node;ZLandroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHPLandroidx/compose/ui/semantics/SemanticsNode;-><init>(Landroidx/compose/ui/Modifier$Node;ZLandroidx/compose/ui/node/LayoutNode;Landroidx/compose/ui/semantics/SemanticsConfiguration;)V\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->fakeSemanticsNode-ypyhhiA(Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/semantics/SemanticsNode;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->fakeSemanticsNode-ypyhhiA(Landroidx/compose/ui/semantics/Role;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/semantics/SemanticsNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->fillOneLayerOfSemanticsWrappers(Landroidx/compose/ui/node/LayoutNode;Ljava/util/ArrayList;)V\nHPLandroidx/compose/ui/semantics/SemanticsNode;->fillOneLayerOfSemanticsWrappers(Landroidx/compose/ui/node/LayoutNode;Ljava/util/ArrayList;)V\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->findCoordinatorToGetBounds$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->findCoordinatorToGetBounds$ui_release()Landroidx/compose/ui/node/NodeCoordinator;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getBoundsInRoot()Landroidx/compose/ui/geometry/Rect;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getBoundsInRoot()Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getChildren(ZZ)Ljava/util/List;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getChildren(ZZ)Ljava/util/List;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getConfig()Landroidx/compose/ui/semantics/SemanticsConfiguration;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getConfig()Landroidx/compose/ui/semantics/SemanticsConfiguration;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getId()I\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getId()I\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getLayoutInfo()Landroidx/compose/ui/node/LayoutNode;\nPLandroidx/compose/ui/semantics/SemanticsNode;->getLayoutInfo()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getLayoutNode$ui_release()Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getLayoutNode$ui_release()Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getParent()Landroidx/compose/ui/semantics/SemanticsNode;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getParent()Landroidx/compose/ui/semantics/SemanticsNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getReplacedChildren$ui_release()Ljava/util/List;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getReplacedChildren$ui_release()Ljava/util/List;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getTouchBoundsInRoot()Landroidx/compose/ui/geometry/Rect;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getTouchBoundsInRoot()Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->getUnmergedConfig$ui_release()Landroidx/compose/ui/semantics/SemanticsConfiguration;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->getUnmergedConfig$ui_release()Landroidx/compose/ui/semantics/SemanticsConfiguration;\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->isFake$ui_release()Z\nHPLandroidx/compose/ui/semantics/SemanticsNode;->isFake$ui_release()Z\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->isMergingSemanticsOfDescendants()Z\nPLandroidx/compose/ui/semantics/SemanticsNode;->isMergingSemanticsOfDescendants()Z\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->isUnmergedLeafNode$ui_release()Z\nHPLandroidx/compose/ui/semantics/SemanticsNode;->isUnmergedLeafNode$ui_release()Z\nHSPLandroidx/compose/ui/semantics/SemanticsNode;->unmergedChildren$ui_release(Z)Ljava/util/List;\nHPLandroidx/compose/ui/semantics/SemanticsNode;->unmergedChildren$ui_release(Z)Ljava/util/List;\nLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;\nHSPLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nPLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;->invoke(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHSPLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/semantics/SemanticsNode$emitFakeNodes$fakeNode$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/semantics/SemanticsNode$fakeSemanticsNode$fakeNode$1;\nHSPLandroidx/compose/ui/semantics/SemanticsNode$fakeSemanticsNode$fakeNode$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/compose/ui/semantics/SemanticsNode$fakeSemanticsNode$fakeNode$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLandroidx/compose/ui/semantics/SemanticsNode$parent$1;\nHSPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;-><init>(I)V\nPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;-><init>(I)V\nHSPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;->invoke(Landroidx/compose/ui/node/LayoutNode;)Ljava/lang/Boolean;\nHPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;->invoke(Landroidx/compose/ui/node/LayoutNode;)Ljava/lang/Boolean;\nHSPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/semantics/SemanticsNode$parent$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/semantics/SemanticsNodeKt;\nHSPLandroidx/compose/ui/semantics/SemanticsNodeKt;->SemanticsNode(Landroidx/compose/ui/node/LayoutNode;Z)Landroidx/compose/ui/semantics/SemanticsNode;\nHPLandroidx/compose/ui/semantics/SemanticsNodeKt;->SemanticsNode(Landroidx/compose/ui/node/LayoutNode;Z)Landroidx/compose/ui/semantics/SemanticsNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNodeKt;->findClosestParentNode(Landroidx/compose/ui/node/LayoutNode;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/node/LayoutNode;\nHPLandroidx/compose/ui/semantics/SemanticsNodeKt;->findClosestParentNode(Landroidx/compose/ui/node/LayoutNode;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/node/LayoutNode;\nHSPLandroidx/compose/ui/semantics/SemanticsNodeKt;->getOrNull(Landroidx/compose/ui/semantics/SemanticsConfiguration;Landroidx/compose/ui/semantics/SemanticsPropertyKey;)Ljava/lang/Object;\nHPLandroidx/compose/ui/semantics/SemanticsNodeKt;->getOrNull(Landroidx/compose/ui/semantics/SemanticsConfiguration;Landroidx/compose/ui/semantics/SemanticsPropertyKey;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/semantics/SemanticsNodeKt;->getOuterMergingSemantics(Landroidx/compose/ui/node/LayoutNode;)Landroidx/compose/ui/node/SemanticsModifierNode;\nHPLandroidx/compose/ui/semantics/SemanticsNodeKt;->getOuterMergingSemantics(Landroidx/compose/ui/node/LayoutNode;)Landroidx/compose/ui/node/SemanticsModifierNode;\nLandroidx/compose/ui/semantics/SemanticsOwner;\nHSPLandroidx/compose/ui/semantics/SemanticsOwner;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/compose/ui/semantics/SemanticsOwner;-><init>(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/compose/ui/semantics/SemanticsOwner;->getUnmergedRootSemanticsNode()Landroidx/compose/ui/semantics/SemanticsNode;\nHPLandroidx/compose/ui/semantics/SemanticsOwner;->getUnmergedRootSemanticsNode()Landroidx/compose/ui/semantics/SemanticsNode;\nLandroidx/compose/ui/semantics/SemanticsProperties;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsProperties;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getCollectionInfo()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getCollectionInfo()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getCollectionItemInfo()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getCollectionItemInfo()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getContentDescription()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getContentDescription()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getDisabled()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getDisabled()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getEditableText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getEditableText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getError()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getError()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getFocused()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getFocused()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getHeading()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getHeading()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getHorizontalScrollAxisRange()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getHorizontalScrollAxisRange()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getIndexForKey()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getInvisibleToUser()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getInvisibleToUser()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getIsTraversalGroup()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getIsTraversalGroup()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getLiveRegion()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getLiveRegion()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getPaneTitle()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getPaneTitle()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getPassword()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getPassword()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getProgressBarRangeInfo()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getProgressBarRangeInfo()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getRole()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getRole()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getSelectableGroup()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getSelectableGroup()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getSelected()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getSelected()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getStateDescription()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getStateDescription()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getTestTag()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getTestTag()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getText()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getTextSelectionRange()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nPLandroidx/compose/ui/semantics/SemanticsProperties;->getTextSelectionRange()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getToggleableState()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getToggleableState()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsProperties;->getVerticalScrollAxisRange()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nHPLandroidx/compose/ui/semantics/SemanticsProperties;->getVerticalScrollAxisRange()Landroidx/compose/ui/semantics/SemanticsPropertyKey;\nLandroidx/compose/ui/semantics/SemanticsPropertiesAndroid;\nLandroidx/compose/ui/semantics/SemanticsPropertiesKt;\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->getTextLayoutResult$default(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Lkotlin/jvm/functions/Function1;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->getTextLayoutResult$default(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->onLongClick(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->onLongClick(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setCollectionInfo(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Landroidx/compose/ui/semantics/CollectionInfo;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setContainer(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setContainer(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setContentDescription(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/String;)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setContentDescription(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/String;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setFocused(Landroidx/compose/ui/semantics/SemanticsConfiguration;Z)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setFocused(Landroidx/compose/ui/semantics/SemanticsConfiguration;Z)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setRole-kuIjeqM(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;I)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setRole-kuIjeqM(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;I)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setSelected(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Z)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setSelected(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Z)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setText(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Landroidx/compose/ui/text/AnnotatedString;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setText(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Landroidx/compose/ui/text/AnnotatedString;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setTraversalGroup(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setTraversalGroup(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setVerticalScrollAxisRange(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Landroidx/compose/ui/semantics/ScrollAxisRange;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt;->setVerticalScrollAxisRange(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Landroidx/compose/ui/semantics/ScrollAxisRange;)V\nLandroidx/compose/ui/semantics/SemanticsPropertiesKt$ActionPropertyKey$1;\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt$ActionPropertyKey$1;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt$ActionPropertyKey$1;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertiesKt$ActionPropertyKey$1;-><init>()V\nPLandroidx/compose/ui/semantics/SemanticsPropertiesKt$ActionPropertyKey$1;-><init>()V\nLandroidx/compose/ui/semantics/SemanticsPropertyKey;\nHSPLandroidx/compose/ui/semantics/SemanticsPropertyKey;-><init>(Ljava/lang/String;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertyKey;-><init>(Ljava/lang/String;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertyKey;-><init>(Ljava/lang/String;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/compose/ui/semantics/SemanticsPropertyKey;-><init>(Ljava/lang/String;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertyKey;->setValue(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/Object;)V\nHPLandroidx/compose/ui/semantics/SemanticsPropertyKey;->setValue(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/Object;)V\nLandroidx/compose/ui/semantics/SemanticsPropertyKey$1;\nHSPLandroidx/compose/ui/semantics/SemanticsPropertyKey$1;-><clinit>()V\nPLandroidx/compose/ui/semantics/SemanticsPropertyKey$1;-><clinit>()V\nHSPLandroidx/compose/ui/semantics/SemanticsPropertyKey$1;-><init>(I)V\nPLandroidx/compose/ui/semantics/SemanticsPropertyKey$1;-><init>(I)V\nLandroidx/compose/ui/semantics/SemanticsPropertyReceiver;\nLandroidx/compose/ui/state/ToggleableState;\nLandroidx/compose/ui/text/AndroidParagraph;\nHSPLandroidx/compose/ui/text/AndroidParagraph;-><init>(Landroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;IZJ)V\nHPLandroidx/compose/ui/text/AndroidParagraph;-><init>(Landroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;IZJ)V\nHSPLandroidx/compose/ui/text/AndroidParagraph;->constructTextLayout(IILandroid/text/TextUtils$TruncateAt;IIIII)Landroidx/compose/ui/text/android/TextLayout;\nHPLandroidx/compose/ui/text/AndroidParagraph;->constructTextLayout(IILandroid/text/TextUtils$TruncateAt;IIIII)Landroidx/compose/ui/text/android/TextLayout;\nHSPLandroidx/compose/ui/text/AndroidParagraph;->getDidExceedMaxLines()Z\nPLandroidx/compose/ui/text/AndroidParagraph;->getDidExceedMaxLines()Z\nHSPLandroidx/compose/ui/text/AndroidParagraph;->getHeight()F\nPLandroidx/compose/ui/text/AndroidParagraph;->getHeight()F\nHSPLandroidx/compose/ui/text/AndroidParagraph;->getLineBaseline$ui_text_release(I)F\nPLandroidx/compose/ui/text/AndroidParagraph;->getLineBaseline$ui_text_release(I)F\nHSPLandroidx/compose/ui/text/AndroidParagraph;->getLineCount()I\nPLandroidx/compose/ui/text/AndroidParagraph;->getLineCount()I\nHSPLandroidx/compose/ui/text/AndroidParagraph;->getTextPaint$ui_text_release()Landroidx/compose/ui/text/platform/AndroidTextPaint;\nHPLandroidx/compose/ui/text/AndroidParagraph;->getTextPaint$ui_text_release()Landroidx/compose/ui/text/platform/AndroidTextPaint;\nHSPLandroidx/compose/ui/text/AndroidParagraph;->getWidth()F\nHPLandroidx/compose/ui/text/AndroidParagraph;->getWidth()F\nHSPLandroidx/compose/ui/text/AndroidParagraph;->paint(Landroidx/compose/ui/graphics/Canvas;)V\nHPLandroidx/compose/ui/text/AndroidParagraph;->paint(Landroidx/compose/ui/graphics/Canvas;)V\nHSPLandroidx/compose/ui/text/AndroidParagraph;->paint-LG529CI(Landroidx/compose/ui/graphics/Canvas;JLandroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/drawscope/DrawStyle;I)V\nHPLandroidx/compose/ui/text/AndroidParagraph;->paint-LG529CI(Landroidx/compose/ui/graphics/Canvas;JLandroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/drawscope/DrawStyle;I)V\nLandroidx/compose/ui/text/AndroidParagraph$wordBoundary$2;\nHSPLandroidx/compose/ui/text/AndroidParagraph$wordBoundary$2;-><init>(Ljava/lang/Object;I)V\nHPLandroidx/compose/ui/text/AndroidParagraph$wordBoundary$2;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/ui/text/AnnotatedString;\nHSPLandroidx/compose/ui/text/AnnotatedString;-><init>(Ljava/lang/String;Ljava/util/ArrayList;I)V\nPLandroidx/compose/ui/text/AnnotatedString;-><init>(Ljava/lang/String;Ljava/util/ArrayList;I)V\nHSPLandroidx/compose/ui/text/AnnotatedString;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V\nHPLandroidx/compose/ui/text/AnnotatedString;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V\nHSPLandroidx/compose/ui/text/AnnotatedString;->getSpanStylesOrNull$ui_text_release()Ljava/util/List;\nPLandroidx/compose/ui/text/AnnotatedString;->getSpanStylesOrNull$ui_text_release()Ljava/util/List;\nHSPLandroidx/compose/ui/text/AnnotatedString;->getText()Ljava/lang/String;\nPLandroidx/compose/ui/text/AnnotatedString;->getText()Ljava/lang/String;\nHSPLandroidx/compose/ui/text/AnnotatedString;->getTtsAnnotations(I)Ljava/util/List;\nHPLandroidx/compose/ui/text/AnnotatedString;->getTtsAnnotations(I)Ljava/util/List;\nHSPLandroidx/compose/ui/text/AnnotatedString;->getUrlAnnotations(I)Ljava/util/List;\nHPLandroidx/compose/ui/text/AnnotatedString;->getUrlAnnotations(I)Ljava/util/List;\nHSPLandroidx/compose/ui/text/AnnotatedString;->length()I\nHPLandroidx/compose/ui/text/AnnotatedString;->length()I\nLandroidx/compose/ui/text/AnnotatedString$Range;\nLandroidx/compose/ui/text/ParagraphIntrinsics;\nLandroidx/compose/ui/text/ParagraphStyle;\nHSPLandroidx/compose/ui/text/ParagraphStyle;-><init>(Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Landroidx/compose/ui/text/PlatformParagraphStyle;Landroidx/compose/ui/text/style/LineHeightStyle;Landroidx/compose/ui/text/style/LineBreak;Landroidx/compose/ui/text/style/Hyphens;Landroidx/compose/ui/text/style/TextMotion;)V\nHPLandroidx/compose/ui/text/ParagraphStyle;-><init>(Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Landroidx/compose/ui/text/PlatformParagraphStyle;Landroidx/compose/ui/text/style/LineHeightStyle;Landroidx/compose/ui/text/style/LineBreak;Landroidx/compose/ui/text/style/Hyphens;Landroidx/compose/ui/text/style/TextMotion;)V\nHSPLandroidx/compose/ui/text/ParagraphStyle;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/ParagraphStyle;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getHyphens-EaSxIns()Landroidx/compose/ui/text/style/Hyphens;\nPLandroidx/compose/ui/text/ParagraphStyle;->getHyphens-EaSxIns()Landroidx/compose/ui/text/style/Hyphens;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getHyphensOrDefault-vmbZdU8$ui_text_release()I\nPLandroidx/compose/ui/text/ParagraphStyle;->getHyphensOrDefault-vmbZdU8$ui_text_release()I\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getLineBreak-LgCVezo()Landroidx/compose/ui/text/style/LineBreak;\nPLandroidx/compose/ui/text/ParagraphStyle;->getLineBreak-LgCVezo()Landroidx/compose/ui/text/style/LineBreak;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getLineBreakOrDefault-rAG3T2k$ui_text_release()I\nPLandroidx/compose/ui/text/ParagraphStyle;->getLineBreakOrDefault-rAG3T2k$ui_text_release()I\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getLineHeight-XSAIIZE()J\nPLandroidx/compose/ui/text/ParagraphStyle;->getLineHeight-XSAIIZE()J\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getLineHeightStyle()Landroidx/compose/ui/text/style/LineHeightStyle;\nPLandroidx/compose/ui/text/ParagraphStyle;->getLineHeightStyle()Landroidx/compose/ui/text/style/LineHeightStyle;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getPlatformStyle()Landroidx/compose/ui/text/PlatformParagraphStyle;\nPLandroidx/compose/ui/text/ParagraphStyle;->getPlatformStyle()Landroidx/compose/ui/text/PlatformParagraphStyle;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getTextAlign-buA522U()Landroidx/compose/ui/text/style/TextAlign;\nPLandroidx/compose/ui/text/ParagraphStyle;->getTextAlign-buA522U()Landroidx/compose/ui/text/style/TextAlign;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getTextAlignOrDefault-e0LSkKk$ui_text_release()I\nPLandroidx/compose/ui/text/ParagraphStyle;->getTextAlignOrDefault-e0LSkKk$ui_text_release()I\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getTextDirection-mmuk1to()Landroidx/compose/ui/text/style/TextDirection;\nPLandroidx/compose/ui/text/ParagraphStyle;->getTextDirection-mmuk1to()Landroidx/compose/ui/text/style/TextDirection;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getTextIndent()Landroidx/compose/ui/text/style/TextIndent;\nPLandroidx/compose/ui/text/ParagraphStyle;->getTextIndent()Landroidx/compose/ui/text/style/TextIndent;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->getTextMotion()Landroidx/compose/ui/text/style/TextMotion;\nPLandroidx/compose/ui/text/ParagraphStyle;->getTextMotion()Landroidx/compose/ui/text/style/TextMotion;\nHSPLandroidx/compose/ui/text/ParagraphStyle;->merge(Landroidx/compose/ui/text/ParagraphStyle;)Landroidx/compose/ui/text/ParagraphStyle;\nHPLandroidx/compose/ui/text/ParagraphStyle;->merge(Landroidx/compose/ui/text/ParagraphStyle;)Landroidx/compose/ui/text/ParagraphStyle;\nLandroidx/compose/ui/text/ParagraphStyleKt;\nHSPLandroidx/compose/ui/text/ParagraphStyleKt;-><clinit>()V\nPLandroidx/compose/ui/text/ParagraphStyleKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/ParagraphStyleKt;->fastMerge-HtYhynw(Landroidx/compose/ui/text/ParagraphStyle;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Landroidx/compose/ui/text/PlatformParagraphStyle;Landroidx/compose/ui/text/style/LineHeightStyle;Landroidx/compose/ui/text/style/LineBreak;Landroidx/compose/ui/text/style/Hyphens;Landroidx/compose/ui/text/style/TextMotion;)Landroidx/compose/ui/text/ParagraphStyle;\nHPLandroidx/compose/ui/text/ParagraphStyleKt;->fastMerge-HtYhynw(Landroidx/compose/ui/text/ParagraphStyle;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Landroidx/compose/ui/text/PlatformParagraphStyle;Landroidx/compose/ui/text/style/LineHeightStyle;Landroidx/compose/ui/text/style/LineBreak;Landroidx/compose/ui/text/style/Hyphens;Landroidx/compose/ui/text/style/TextMotion;)Landroidx/compose/ui/text/ParagraphStyle;\nHSPLandroidx/compose/ui/text/ParagraphStyleKt;->resolveParagraphStyleDefaults(Landroidx/compose/ui/text/ParagraphStyle;Landroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/ParagraphStyle;\nHPLandroidx/compose/ui/text/ParagraphStyleKt;->resolveParagraphStyleDefaults(Landroidx/compose/ui/text/ParagraphStyle;Landroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/ParagraphStyle;\nLandroidx/compose/ui/text/PlatformParagraphStyle;\nHSPLandroidx/compose/ui/text/PlatformParagraphStyle;-><clinit>()V\nPLandroidx/compose/ui/text/PlatformParagraphStyle;-><clinit>()V\nHSPLandroidx/compose/ui/text/PlatformParagraphStyle;-><init>()V\nPLandroidx/compose/ui/text/PlatformParagraphStyle;-><init>()V\nHSPLandroidx/compose/ui/text/PlatformParagraphStyle;-><init>(ZI)V\nPLandroidx/compose/ui/text/PlatformParagraphStyle;-><init>(ZI)V\nLandroidx/compose/ui/text/PlatformTextStyle;\nHSPLandroidx/compose/ui/text/PlatformTextStyle;-><init>()V\nPLandroidx/compose/ui/text/PlatformTextStyle;-><init>()V\nHSPLandroidx/compose/ui/text/PlatformTextStyle;-><init>(Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/text/PlatformParagraphStyle;)V\nPLandroidx/compose/ui/text/PlatformTextStyle;-><init>(Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/text/PlatformParagraphStyle;)V\nHSPLandroidx/compose/ui/text/PlatformTextStyle;->getParagraphStyle()Landroidx/compose/ui/text/PlatformParagraphStyle;\nPLandroidx/compose/ui/text/PlatformTextStyle;->getParagraphStyle()Landroidx/compose/ui/text/PlatformParagraphStyle;\nHSPLandroidx/compose/ui/text/PlatformTextStyle;->getSpanStyle()Landroidx/compose/ui/text/PlatformSpanStyle;\nPLandroidx/compose/ui/text/PlatformTextStyle;->getSpanStyle()Landroidx/compose/ui/text/PlatformSpanStyle;\nLandroidx/compose/ui/text/SpanStyle;\nHSPLandroidx/compose/ui/text/SpanStyle;-><init>(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;I)V\nHPLandroidx/compose/ui/text/SpanStyle;-><init>(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;I)V\nHSPLandroidx/compose/ui/text/SpanStyle;-><init>(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/graphics/drawscope/DrawStyle;)V\nHPLandroidx/compose/ui/text/SpanStyle;-><init>(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/graphics/drawscope/DrawStyle;)V\nHSPLandroidx/compose/ui/text/SpanStyle;-><init>(Landroidx/compose/ui/text/style/TextForegroundStyle;JLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/graphics/drawscope/DrawStyle;)V\nHPLandroidx/compose/ui/text/SpanStyle;-><init>(Landroidx/compose/ui/text/style/TextForegroundStyle;JLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/graphics/drawscope/DrawStyle;)V\nHSPLandroidx/compose/ui/text/SpanStyle;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/SpanStyle;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/SpanStyle;->getAlpha()F\nHPLandroidx/compose/ui/text/SpanStyle;->getAlpha()F\nHSPLandroidx/compose/ui/text/SpanStyle;->getBackground-0d7_KjU()J\nPLandroidx/compose/ui/text/SpanStyle;->getBackground-0d7_KjU()J\nHSPLandroidx/compose/ui/text/SpanStyle;->getBaselineShift-5SSeXJ0()Landroidx/compose/ui/text/style/BaselineShift;\nPLandroidx/compose/ui/text/SpanStyle;->getBaselineShift-5SSeXJ0()Landroidx/compose/ui/text/style/BaselineShift;\nHSPLandroidx/compose/ui/text/SpanStyle;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHPLandroidx/compose/ui/text/SpanStyle;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/text/SpanStyle;->getColor-0d7_KjU()J\nHPLandroidx/compose/ui/text/SpanStyle;->getColor-0d7_KjU()J\nHSPLandroidx/compose/ui/text/SpanStyle;->getDrawStyle()Landroidx/compose/ui/graphics/drawscope/DrawStyle;\nPLandroidx/compose/ui/text/SpanStyle;->getDrawStyle()Landroidx/compose/ui/graphics/drawscope/DrawStyle;\nHSPLandroidx/compose/ui/text/SpanStyle;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nHPLandroidx/compose/ui/text/SpanStyle;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nHSPLandroidx/compose/ui/text/SpanStyle;->getFontFeatureSettings()Ljava/lang/String;\nPLandroidx/compose/ui/text/SpanStyle;->getFontFeatureSettings()Ljava/lang/String;\nHSPLandroidx/compose/ui/text/SpanStyle;->getFontSize-XSAIIZE()J\nPLandroidx/compose/ui/text/SpanStyle;->getFontSize-XSAIIZE()J\nHSPLandroidx/compose/ui/text/SpanStyle;->getFontStyle-4Lr2A7w()Landroidx/compose/ui/text/font/FontStyle;\nPLandroidx/compose/ui/text/SpanStyle;->getFontStyle-4Lr2A7w()Landroidx/compose/ui/text/font/FontStyle;\nHSPLandroidx/compose/ui/text/SpanStyle;->getFontSynthesis-ZQGJjVo()Landroidx/compose/ui/text/font/FontSynthesis;\nPLandroidx/compose/ui/text/SpanStyle;->getFontSynthesis-ZQGJjVo()Landroidx/compose/ui/text/font/FontSynthesis;\nHSPLandroidx/compose/ui/text/SpanStyle;->getFontWeight()Landroidx/compose/ui/text/font/FontWeight;\nPLandroidx/compose/ui/text/SpanStyle;->getFontWeight()Landroidx/compose/ui/text/font/FontWeight;\nHSPLandroidx/compose/ui/text/SpanStyle;->getLetterSpacing-XSAIIZE()J\nPLandroidx/compose/ui/text/SpanStyle;->getLetterSpacing-XSAIIZE()J\nHSPLandroidx/compose/ui/text/SpanStyle;->getLocaleList()Landroidx/compose/ui/text/intl/LocaleList;\nPLandroidx/compose/ui/text/SpanStyle;->getLocaleList()Landroidx/compose/ui/text/intl/LocaleList;\nHSPLandroidx/compose/ui/text/SpanStyle;->getPlatformStyle()Landroidx/compose/ui/text/PlatformSpanStyle;\nPLandroidx/compose/ui/text/SpanStyle;->getPlatformStyle()Landroidx/compose/ui/text/PlatformSpanStyle;\nHSPLandroidx/compose/ui/text/SpanStyle;->getShadow()Landroidx/compose/ui/graphics/Shadow;\nPLandroidx/compose/ui/text/SpanStyle;->getShadow()Landroidx/compose/ui/graphics/Shadow;\nHSPLandroidx/compose/ui/text/SpanStyle;->getTextDecoration()Landroidx/compose/ui/text/style/TextDecoration;\nPLandroidx/compose/ui/text/SpanStyle;->getTextDecoration()Landroidx/compose/ui/text/style/TextDecoration;\nHSPLandroidx/compose/ui/text/SpanStyle;->getTextForegroundStyle$ui_text_release()Landroidx/compose/ui/text/style/TextForegroundStyle;\nPLandroidx/compose/ui/text/SpanStyle;->getTextForegroundStyle$ui_text_release()Landroidx/compose/ui/text/style/TextForegroundStyle;\nHSPLandroidx/compose/ui/text/SpanStyle;->getTextGeometricTransform()Landroidx/compose/ui/text/style/TextGeometricTransform;\nPLandroidx/compose/ui/text/SpanStyle;->getTextGeometricTransform()Landroidx/compose/ui/text/style/TextGeometricTransform;\nHSPLandroidx/compose/ui/text/SpanStyle;->hasSameLayoutAffectingAttributes$ui_text_release(Landroidx/compose/ui/text/SpanStyle;)Z\nHPLandroidx/compose/ui/text/SpanStyle;->hasSameLayoutAffectingAttributes$ui_text_release(Landroidx/compose/ui/text/SpanStyle;)Z\nHSPLandroidx/compose/ui/text/SpanStyle;->hasSameNonLayoutAttributes$ui_text_release(Landroidx/compose/ui/text/SpanStyle;)Z\nHPLandroidx/compose/ui/text/SpanStyle;->hasSameNonLayoutAttributes$ui_text_release(Landroidx/compose/ui/text/SpanStyle;)Z\nHSPLandroidx/compose/ui/text/SpanStyle;->merge(Landroidx/compose/ui/text/SpanStyle;)Landroidx/compose/ui/text/SpanStyle;\nHPLandroidx/compose/ui/text/SpanStyle;->merge(Landroidx/compose/ui/text/SpanStyle;)Landroidx/compose/ui/text/SpanStyle;\nLandroidx/compose/ui/text/SpanStyleKt;\nHSPLandroidx/compose/ui/text/SpanStyleKt;-><clinit>()V\nPLandroidx/compose/ui/text/SpanStyleKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/SpanStyleKt;->fastMerge-dSHsh3o(Landroidx/compose/ui/text/SpanStyle;JLandroidx/compose/ui/graphics/Brush;FJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/graphics/drawscope/DrawStyle;)Landroidx/compose/ui/text/SpanStyle;\nHPLandroidx/compose/ui/text/SpanStyleKt;->fastMerge-dSHsh3o(Landroidx/compose/ui/text/SpanStyle;JLandroidx/compose/ui/graphics/Brush;FJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Landroidx/compose/ui/graphics/drawscope/DrawStyle;)Landroidx/compose/ui/text/SpanStyle;\nHSPLandroidx/compose/ui/text/SpanStyleKt;->resolveSpanStyleDefaults(Landroidx/compose/ui/text/SpanStyle;)Landroidx/compose/ui/text/SpanStyle;\nHPLandroidx/compose/ui/text/SpanStyleKt;->resolveSpanStyleDefaults(Landroidx/compose/ui/text/SpanStyle;)Landroidx/compose/ui/text/SpanStyle;\nLandroidx/compose/ui/text/StringKt;\nHSPLandroidx/compose/ui/text/StringKt;-><init>()V\nHPLandroidx/compose/ui/text/StringKt;-><init>()V\nHSPLandroidx/compose/ui/text/StringKt;->checkElementIndex$runtime_release(II)V\nPLandroidx/compose/ui/text/StringKt;->checkElementIndex$runtime_release(II)V\nPLandroidx/compose/ui/text/StringKt;->getExplore()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/text/StringKt;->getFilterList()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getFilterList()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/text/StringKt;->getHelpOutline()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getHelpOutline()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/text/StringKt;->getInfo()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getInfo()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getPalette()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/text/StringKt;->getRefresh()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getRefresh()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/text/StringKt;->getSearch()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getSearch()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/compose/ui/text/StringKt;->getSettings()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getSettings()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/compose/ui/text/StringKt;->getSync()Landroidx/compose/ui/graphics/vector/ImageVector;\nLandroidx/compose/ui/text/TextRange;\nHSPLandroidx/compose/ui/text/TextRange;-><clinit>()V\nPLandroidx/compose/ui/text/TextRange;-><clinit>()V\nHSPLandroidx/compose/ui/text/TextRange;->access$getZero$cp()J\nPLandroidx/compose/ui/text/TextRange;->access$getZero$cp()J\nHSPLandroidx/compose/ui/text/TextRange;->getEnd-impl(J)I\nPLandroidx/compose/ui/text/TextRange;->getEnd-impl(J)I\nLandroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/ui/text/TextStyle;-><clinit>()V\nPLandroidx/compose/ui/text/TextStyle;-><clinit>()V\nHSPLandroidx/compose/ui/text/TextStyle;-><init>(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;JI)V\nHPLandroidx/compose/ui/text/TextStyle;-><init>(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;JI)V\nHSPLandroidx/compose/ui/text/TextStyle;-><init>(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;)V\nHPLandroidx/compose/ui/text/TextStyle;-><init>(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;)V\nHSPLandroidx/compose/ui/text/TextStyle;-><init>(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;Landroidx/compose/ui/text/PlatformTextStyle;)V\nHPLandroidx/compose/ui/text/TextStyle;-><init>(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;Landroidx/compose/ui/text/PlatformTextStyle;)V\nHSPLandroidx/compose/ui/text/TextStyle;->access$getDefault$cp()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/ui/text/TextStyle;->access$getDefault$cp()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->copy-v2rsoow$default(IJJJJLandroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/graphics/drawscope/Stroke;Landroidx/compose/ui/text/PlatformTextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/style/LineHeightStyle;Landroidx/compose/ui/text/style/TextAlign;)Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/ui/text/TextStyle;->copy-v2rsoow$default(IJJJJLandroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/graphics/drawscope/Stroke;Landroidx/compose/ui/text/PlatformTextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/style/LineHeightStyle;Landroidx/compose/ui/text/style/TextAlign;)Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/TextStyle;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/TextStyle;->getAlpha()F\nPLandroidx/compose/ui/text/TextStyle;->getAlpha()F\nHSPLandroidx/compose/ui/text/TextStyle;->getBrush()Landroidx/compose/ui/graphics/Brush;\nPLandroidx/compose/ui/text/TextStyle;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/text/TextStyle;->getColor-0d7_KjU()J\nHPLandroidx/compose/ui/text/TextStyle;->getColor-0d7_KjU()J\nHSPLandroidx/compose/ui/text/TextStyle;->getDrawStyle()Landroidx/compose/ui/graphics/drawscope/DrawStyle;\nPLandroidx/compose/ui/text/TextStyle;->getDrawStyle()Landroidx/compose/ui/graphics/drawscope/DrawStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nHPLandroidx/compose/ui/text/TextStyle;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nHSPLandroidx/compose/ui/text/TextStyle;->getFontStyle-4Lr2A7w()Landroidx/compose/ui/text/font/FontStyle;\nHPLandroidx/compose/ui/text/TextStyle;->getFontStyle-4Lr2A7w()Landroidx/compose/ui/text/font/FontStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->getFontSynthesis-ZQGJjVo()Landroidx/compose/ui/text/font/FontSynthesis;\nHPLandroidx/compose/ui/text/TextStyle;->getFontSynthesis-ZQGJjVo()Landroidx/compose/ui/text/font/FontSynthesis;\nHSPLandroidx/compose/ui/text/TextStyle;->getFontWeight()Landroidx/compose/ui/text/font/FontWeight;\nHPLandroidx/compose/ui/text/TextStyle;->getFontWeight()Landroidx/compose/ui/text/font/FontWeight;\nHSPLandroidx/compose/ui/text/TextStyle;->getLetterSpacing-XSAIIZE()J\nPLandroidx/compose/ui/text/TextStyle;->getLetterSpacing-XSAIIZE()J\nHSPLandroidx/compose/ui/text/TextStyle;->getLineBreak-LgCVezo()Landroidx/compose/ui/text/style/LineBreak;\nPLandroidx/compose/ui/text/TextStyle;->getLineBreak-LgCVezo()Landroidx/compose/ui/text/style/LineBreak;\nHSPLandroidx/compose/ui/text/TextStyle;->getLineHeight-XSAIIZE()J\nPLandroidx/compose/ui/text/TextStyle;->getLineHeight-XSAIIZE()J\nHSPLandroidx/compose/ui/text/TextStyle;->getLineHeightStyle()Landroidx/compose/ui/text/style/LineHeightStyle;\nPLandroidx/compose/ui/text/TextStyle;->getLineHeightStyle()Landroidx/compose/ui/text/style/LineHeightStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->getLocaleList()Landroidx/compose/ui/text/intl/LocaleList;\nHPLandroidx/compose/ui/text/TextStyle;->getLocaleList()Landroidx/compose/ui/text/intl/LocaleList;\nHSPLandroidx/compose/ui/text/TextStyle;->getParagraphStyle$ui_text_release()Landroidx/compose/ui/text/ParagraphStyle;\nPLandroidx/compose/ui/text/TextStyle;->getParagraphStyle$ui_text_release()Landroidx/compose/ui/text/ParagraphStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->getPlatformStyle()Landroidx/compose/ui/text/PlatformTextStyle;\nHPLandroidx/compose/ui/text/TextStyle;->getPlatformStyle()Landroidx/compose/ui/text/PlatformTextStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->getShadow()Landroidx/compose/ui/graphics/Shadow;\nPLandroidx/compose/ui/text/TextStyle;->getShadow()Landroidx/compose/ui/graphics/Shadow;\nHSPLandroidx/compose/ui/text/TextStyle;->getSpanStyle$ui_text_release()Landroidx/compose/ui/text/SpanStyle;\nPLandroidx/compose/ui/text/TextStyle;->getSpanStyle$ui_text_release()Landroidx/compose/ui/text/SpanStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->getTextAlign-buA522U()Landroidx/compose/ui/text/style/TextAlign;\nPLandroidx/compose/ui/text/TextStyle;->getTextAlign-buA522U()Landroidx/compose/ui/text/style/TextAlign;\nHSPLandroidx/compose/ui/text/TextStyle;->getTextDecoration()Landroidx/compose/ui/text/style/TextDecoration;\nPLandroidx/compose/ui/text/TextStyle;->getTextDecoration()Landroidx/compose/ui/text/style/TextDecoration;\nHSPLandroidx/compose/ui/text/TextStyle;->getTextDirection-mmuk1to()Landroidx/compose/ui/text/style/TextDirection;\nHPLandroidx/compose/ui/text/TextStyle;->getTextDirection-mmuk1to()Landroidx/compose/ui/text/style/TextDirection;\nHSPLandroidx/compose/ui/text/TextStyle;->getTextIndent()Landroidx/compose/ui/text/style/TextIndent;\nPLandroidx/compose/ui/text/TextStyle;->getTextIndent()Landroidx/compose/ui/text/style/TextIndent;\nHSPLandroidx/compose/ui/text/TextStyle;->getTextMotion()Landroidx/compose/ui/text/style/TextMotion;\nHPLandroidx/compose/ui/text/TextStyle;->getTextMotion()Landroidx/compose/ui/text/style/TextMotion;\nHSPLandroidx/compose/ui/text/TextStyle;->hasSameDrawAffectingAttributes(Landroidx/compose/ui/text/TextStyle;)Z\nHPLandroidx/compose/ui/text/TextStyle;->hasSameDrawAffectingAttributes(Landroidx/compose/ui/text/TextStyle;)Z\nHSPLandroidx/compose/ui/text/TextStyle;->hasSameLayoutAffectingAttributes(Landroidx/compose/ui/text/TextStyle;)Z\nHPLandroidx/compose/ui/text/TextStyle;->hasSameLayoutAffectingAttributes(Landroidx/compose/ui/text/TextStyle;)Z\nHSPLandroidx/compose/ui/text/TextStyle;->merge(Landroidx/compose/ui/text/TextStyle;)Landroidx/compose/ui/text/TextStyle;\nHPLandroidx/compose/ui/text/TextStyle;->merge(Landroidx/compose/ui/text/TextStyle;)Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->merge-Z1GrekI$default(IJJJJLandroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDecoration;)Landroidx/compose/ui/text/TextStyle;\nHPLandroidx/compose/ui/text/TextStyle;->merge-Z1GrekI$default(IJJJJLandroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDecoration;)Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/ui/text/TextStyle;->toSpanStyle()Landroidx/compose/ui/text/SpanStyle;\nPLandroidx/compose/ui/text/TextStyle;->toSpanStyle()Landroidx/compose/ui/text/SpanStyle;\nLandroidx/compose/ui/text/android/BoringLayoutFactoryDefault;\nHSPLandroidx/compose/ui/text/android/BoringLayoutFactoryDefault;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)Landroid/text/BoringLayout$Metrics;\nHPLandroidx/compose/ui/text/android/BoringLayoutFactoryDefault;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)Landroid/text/BoringLayout$Metrics;\nLandroidx/compose/ui/text/android/LayoutCompatKt;\nHSPLandroidx/compose/ui/text/android/LayoutCompatKt;-><clinit>()V\nPLandroidx/compose/ui/text/android/LayoutCompatKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/android/LayoutCompatKt;->create(Ljava/lang/CharSequence;IILandroidx/compose/ui/text/platform/AndroidTextPaint;ILandroid/text/TextDirectionHeuristic;Landroid/text/Layout$Alignment;ILandroid/text/TextUtils$TruncateAt;IFFIZZIIII[I[I)Landroid/text/StaticLayout;\nHPLandroidx/compose/ui/text/android/LayoutCompatKt;->create(Ljava/lang/CharSequence;IILandroidx/compose/ui/text/platform/AndroidTextPaint;ILandroid/text/TextDirectionHeuristic;Landroid/text/Layout$Alignment;ILandroid/text/TextUtils$TruncateAt;IFFIZZIIII[I[I)Landroid/text/StaticLayout;\nLandroidx/compose/ui/text/android/LayoutIntrinsics;\nHSPLandroidx/compose/ui/text/android/LayoutIntrinsics;-><init>(Ljava/lang/CharSequence;Landroidx/compose/ui/text/platform/AndroidTextPaint;I)V\nHPLandroidx/compose/ui/text/android/LayoutIntrinsics;-><init>(Ljava/lang/CharSequence;Landroidx/compose/ui/text/platform/AndroidTextPaint;I)V\nHSPLandroidx/compose/ui/text/android/LayoutIntrinsics;->getBoringMetrics()Landroid/text/BoringLayout$Metrics;\nHPLandroidx/compose/ui/text/android/LayoutIntrinsics;->getBoringMetrics()Landroid/text/BoringLayout$Metrics;\nHSPLandroidx/compose/ui/text/android/LayoutIntrinsics;->getMaxIntrinsicWidth()F\nHPLandroidx/compose/ui/text/android/LayoutIntrinsics;->getMaxIntrinsicWidth()F\nLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)V\nHPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)V\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)Z\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/RenderNode;)Z\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/RenderNode;)V\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/RenderNode;)V\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/RenderNode;)I\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/RenderNode;)I\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/RenderNode;\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/RenderNode;\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m()V\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m()V\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)F\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)F\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)I\nHPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)I\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Landroid/graphics/RecordingCanvas;\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Landroid/graphics/RecordingCanvas;\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Z\nHPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Z\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;F)V\nHPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;F)V\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;IIII)Z\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;IIII)Z\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Landroid/graphics/Matrix;)V\nHPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Landroid/graphics/Matrix;)V\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Z)V\nHPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;Z)V\nHSPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)Ljava/util/Map;\nPLandroidx/compose/ui/text/android/Paint29$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)Ljava/util/Map;\nLandroidx/compose/ui/text/android/StaticLayoutFactory23;\nHSPLandroidx/compose/ui/text/android/StaticLayoutFactory23;-><init>()V\nPLandroidx/compose/ui/text/android/StaticLayoutFactory23;-><init>()V\nHSPLandroidx/compose/ui/text/android/StaticLayoutFactory23;->create(Landroidx/compose/ui/text/android/StaticLayoutParams;)Landroid/text/StaticLayout;\nHPLandroidx/compose/ui/text/android/StaticLayoutFactory23;->create(Landroidx/compose/ui/text/android/StaticLayoutParams;)Landroid/text/StaticLayout;\nLandroidx/compose/ui/text/android/StaticLayoutFactory26;\nHSPLandroidx/compose/ui/text/android/StaticLayoutFactory26;->setJustificationMode(Landroid/text/StaticLayout$Builder;I)V\nPLandroidx/compose/ui/text/android/StaticLayoutFactory26;->setJustificationMode(Landroid/text/StaticLayout$Builder;I)V\nLandroidx/compose/ui/text/android/StaticLayoutFactory28;\nHSPLandroidx/compose/ui/text/android/StaticLayoutFactory28;->setUseLineSpacingFromFallbacks(Landroid/text/StaticLayout$Builder;Z)V\nPLandroidx/compose/ui/text/android/StaticLayoutFactory28;->setUseLineSpacingFromFallbacks(Landroid/text/StaticLayout$Builder;Z)V\nLandroidx/compose/ui/text/android/StaticLayoutFactory33;\nLandroidx/compose/ui/text/android/StaticLayoutFactoryImpl;\nLandroidx/compose/ui/text/android/StaticLayoutParams;\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;-><init>(Ljava/lang/CharSequence;IILandroidx/compose/ui/text/platform/AndroidTextPaint;ILandroid/text/TextDirectionHeuristic;Landroid/text/Layout$Alignment;ILandroid/text/TextUtils$TruncateAt;IFFIZZIIII[I[I)V\nHPLandroidx/compose/ui/text/android/StaticLayoutParams;-><init>(Ljava/lang/CharSequence;IILandroidx/compose/ui/text/platform/AndroidTextPaint;ILandroid/text/TextDirectionHeuristic;Landroid/text/Layout$Alignment;ILandroid/text/TextUtils$TruncateAt;IFFIZZIIII[I[I)V\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getAlignment()Landroid/text/Layout$Alignment;\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getAlignment()Landroid/text/Layout$Alignment;\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getBreakStrategy()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getBreakStrategy()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getEllipsize()Landroid/text/TextUtils$TruncateAt;\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getEllipsize()Landroid/text/TextUtils$TruncateAt;\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getEllipsizedWidth()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getEllipsizedWidth()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getEnd()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getEnd()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getHyphenationFrequency()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getHyphenationFrequency()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getIncludePadding()Z\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getIncludePadding()Z\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getJustificationMode()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getJustificationMode()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getLeftIndents()[I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getLeftIndents()[I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getLineSpacingExtra()F\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getLineSpacingExtra()F\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getLineSpacingMultiplier()F\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getLineSpacingMultiplier()F\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getMaxLines()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getMaxLines()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getPaint()Landroid/text/TextPaint;\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getPaint()Landroid/text/TextPaint;\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getRightIndents()[I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getRightIndents()[I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getStart()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getStart()I\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getText()Ljava/lang/CharSequence;\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getText()Ljava/lang/CharSequence;\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getTextDir()Landroid/text/TextDirectionHeuristic;\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getTextDir()Landroid/text/TextDirectionHeuristic;\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getUseFallbackLineSpacing()Z\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getUseFallbackLineSpacing()Z\nHSPLandroidx/compose/ui/text/android/StaticLayoutParams;->getWidth()I\nPLandroidx/compose/ui/text/android/StaticLayoutParams;->getWidth()I\nLandroidx/compose/ui/text/android/TextAlignmentAdapter;\nHSPLandroidx/compose/ui/text/android/TextAlignmentAdapter;-><clinit>()V\nPLandroidx/compose/ui/text/android/TextAlignmentAdapter;-><clinit>()V\nHSPLandroidx/compose/ui/text/android/TextAlignmentAdapter;->get(I)Landroid/text/Layout$Alignment;\nPLandroidx/compose/ui/text/android/TextAlignmentAdapter;->get(I)Landroid/text/Layout$Alignment;\nLandroidx/compose/ui/text/android/TextAndroidCanvas;\nHSPLandroidx/compose/ui/text/android/TextAndroidCanvas;-><init>()V\nPLandroidx/compose/ui/text/android/TextAndroidCanvas;-><init>()V\nHSPLandroidx/compose/ui/text/android/TextAndroidCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V\nHPLandroidx/compose/ui/text/android/TextAndroidCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V\nHSPLandroidx/compose/ui/text/android/TextAndroidCanvas;->getClipBounds(Landroid/graphics/Rect;)Z\nHPLandroidx/compose/ui/text/android/TextAndroidCanvas;->getClipBounds(Landroid/graphics/Rect;)Z\nHSPLandroidx/compose/ui/text/android/TextAndroidCanvas;->setCanvas(Landroid/graphics/Canvas;)V\nPLandroidx/compose/ui/text/android/TextAndroidCanvas;->setCanvas(Landroid/graphics/Canvas;)V\nLandroidx/compose/ui/text/android/TextLayout;\nHSPLandroidx/compose/ui/text/android/TextLayout;-><init>(Ljava/lang/CharSequence;FLandroidx/compose/ui/text/platform/AndroidTextPaint;ILandroid/text/TextUtils$TruncateAt;IZIIIIIILandroidx/compose/ui/text/android/LayoutIntrinsics;)V\nHPLandroidx/compose/ui/text/android/TextLayout;-><init>(Ljava/lang/CharSequence;FLandroidx/compose/ui/text/platform/AndroidTextPaint;ILandroid/text/TextUtils$TruncateAt;IZIIIIIILandroidx/compose/ui/text/android/LayoutIntrinsics;)V\nHSPLandroidx/compose/ui/text/android/TextLayout;->getDidExceedMaxLines()Z\nPLandroidx/compose/ui/text/android/TextLayout;->getDidExceedMaxLines()Z\nHSPLandroidx/compose/ui/text/android/TextLayout;->getHeight()I\nHPLandroidx/compose/ui/text/android/TextLayout;->getHeight()I\nHSPLandroidx/compose/ui/text/android/TextLayout;->getIncludePadding()Z\nPLandroidx/compose/ui/text/android/TextLayout;->getIncludePadding()Z\nHSPLandroidx/compose/ui/text/android/TextLayout;->getLineBaseline(I)F\nPLandroidx/compose/ui/text/android/TextLayout;->getLineBaseline(I)F\nHSPLandroidx/compose/ui/text/android/TextLayout;->getLineCount()I\nPLandroidx/compose/ui/text/android/TextLayout;->getLineCount()I\nHSPLandroidx/compose/ui/text/android/TextLayout;->getText()Ljava/lang/CharSequence;\nHPLandroidx/compose/ui/text/android/TextLayout;->getText()Ljava/lang/CharSequence;\nHSPLandroidx/compose/ui/text/android/TextLayout;->isFallbackLinespacingApplied$ui_text_release()Z\nHPLandroidx/compose/ui/text/android/TextLayout;->isFallbackLinespacingApplied$ui_text_release()Z\nHSPLandroidx/compose/ui/text/android/TextLayout;->paint(Landroid/graphics/Canvas;)V\nHPLandroidx/compose/ui/text/android/TextLayout;->paint(Landroid/graphics/Canvas;)V\nLandroidx/compose/ui/text/android/TextLayout$layoutHelper$2;\nHSPLandroidx/compose/ui/text/android/TextLayout$layoutHelper$2;-><init>(Landroidx/compose/ui/text/android/TextLayout;)V\nHPLandroidx/compose/ui/text/android/TextLayout$layoutHelper$2;-><init>(Landroidx/compose/ui/text/android/TextLayout;)V\nLandroidx/compose/ui/text/android/TextLayoutKt;\nHSPLandroidx/compose/ui/text/android/TextLayoutKt;-><clinit>()V\nPLandroidx/compose/ui/text/android/TextLayoutKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/android/TextLayoutKt;->access$getLineHeightPaddings([Landroidx/compose/ui/text/android/style/LineHeightStyleSpan;)J\nHPLandroidx/compose/ui/text/android/TextLayoutKt;->access$getLineHeightPaddings([Landroidx/compose/ui/text/android/style/LineHeightStyleSpan;)J\nHSPLandroidx/compose/ui/text/android/TextLayoutKt;->access$getSharedTextAndroidCanvas$p()Landroidx/compose/ui/text/android/TextAndroidCanvas;\nPLandroidx/compose/ui/text/android/TextLayoutKt;->access$getSharedTextAndroidCanvas$p()Landroidx/compose/ui/text/android/TextAndroidCanvas;\nHSPLandroidx/compose/ui/text/android/TextLayoutKt;->access$getVerticalPaddings(Landroidx/compose/ui/text/android/TextLayout;)J\nHPLandroidx/compose/ui/text/android/TextLayoutKt;->access$getVerticalPaddings(Landroidx/compose/ui/text/android/TextLayout;)J\nHSPLandroidx/compose/ui/text/android/TextLayoutKt;->getTextDirectionHeuristic(I)Landroid/text/TextDirectionHeuristic;\nHPLandroidx/compose/ui/text/android/TextLayoutKt;->getTextDirectionHeuristic(I)Landroid/text/TextDirectionHeuristic;\nLandroidx/compose/ui/text/android/style/LetterSpacingSpanEm;\nLandroidx/compose/ui/text/android/style/LetterSpacingSpanPx;\nLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;\nHSPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;-><init>(FIZZF)V\nHPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;-><init>(FIZZF)V\nHSPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;->chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V\nHPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;->chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V\nHSPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;->getFirstAscentDiff()I\nPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;->getFirstAscentDiff()I\nHSPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;->getLastDescentDiff()I\nPLandroidx/compose/ui/text/android/style/LineHeightStyleSpan;->getLastDescentDiff()I\nLandroidx/compose/ui/text/android/style/PlaceholderSpan;\nLandroidx/compose/ui/text/android/style/SkewXSpan;\nLandroidx/compose/ui/text/caches/ContainerHelpersKt;\nHSPLandroidx/compose/ui/text/caches/ContainerHelpersKt;-><clinit>()V\nPLandroidx/compose/ui/text/caches/ContainerHelpersKt;-><clinit>()V\nLandroidx/compose/ui/text/caches/LruCache;\nHSPLandroidx/compose/ui/text/caches/LruCache;-><init>()V\nPLandroidx/compose/ui/text/caches/LruCache;-><init>()V\nHSPLandroidx/compose/ui/text/caches/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/text/caches/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/text/caches/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/text/caches/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/compose/ui/text/caches/LruCache;->size()I\nPLandroidx/compose/ui/text/caches/LruCache;->size()I\nLandroidx/compose/ui/text/caches/SimpleArrayMap;\nHSPLandroidx/compose/ui/text/caches/SimpleArrayMap;-><init>()V\nPLandroidx/compose/ui/text/caches/SimpleArrayMap;-><init>()V\nLandroidx/compose/ui/text/font/AndroidFontLoader;\nHSPLandroidx/compose/ui/text/font/AndroidFontLoader;-><init>(Landroid/content/Context;)V\nPLandroidx/compose/ui/text/font/AndroidFontLoader;-><init>(Landroid/content/Context;)V\nLandroidx/compose/ui/text/font/AndroidFontResolveInterceptor;\nHSPLandroidx/compose/ui/text/font/AndroidFontResolveInterceptor;-><init>(I)V\nPLandroidx/compose/ui/text/font/AndroidFontResolveInterceptor;-><init>(I)V\nHSPLandroidx/compose/ui/text/font/AndroidFontResolveInterceptor;->interceptFontWeight(Landroidx/compose/ui/text/font/FontWeight;)Landroidx/compose/ui/text/font/FontWeight;\nPLandroidx/compose/ui/text/font/AndroidFontResolveInterceptor;->interceptFontWeight(Landroidx/compose/ui/text/font/FontWeight;)Landroidx/compose/ui/text/font/FontWeight;\nLandroidx/compose/ui/text/font/AsyncTypefaceCache;\nHSPLandroidx/compose/ui/text/font/AsyncTypefaceCache;-><init>()V\nPLandroidx/compose/ui/text/font/AsyncTypefaceCache;-><init>()V\nLandroidx/compose/ui/text/font/DefaultFontFamily;\nHSPLandroidx/compose/ui/text/font/DefaultFontFamily;-><init>()V\nPLandroidx/compose/ui/text/font/DefaultFontFamily;-><init>()V\nLandroidx/compose/ui/text/font/FileBasedFontFamily;\nLandroidx/compose/ui/text/font/FontFamily;\nHSPLandroidx/compose/ui/text/font/FontFamily;-><clinit>()V\nPLandroidx/compose/ui/text/font/FontFamily;-><clinit>()V\nHSPLandroidx/compose/ui/text/font/FontFamily;-><init>()V\nPLandroidx/compose/ui/text/font/FontFamily;-><init>()V\nHSPLandroidx/compose/ui/text/font/FontFamily;->access$getSansSerif$cp()Landroidx/compose/ui/text/font/GenericFontFamily;\nPLandroidx/compose/ui/text/font/FontFamily;->access$getSansSerif$cp()Landroidx/compose/ui/text/font/GenericFontFamily;\nLandroidx/compose/ui/text/font/FontFamilyResolverImpl;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;-><init>(Landroidx/compose/ui/text/font/AndroidFontLoader;Landroidx/compose/ui/text/font/AndroidFontResolveInterceptor;)V\nPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;-><init>(Landroidx/compose/ui/text/font/AndroidFontLoader;Landroidx/compose/ui/text/font/AndroidFontResolveInterceptor;)V\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->access$getCreateDefaultTypeface$p(Landroidx/compose/ui/text/font/FontFamilyResolverImpl;)Lkotlin/jvm/functions/Function1;\nPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->access$getCreateDefaultTypeface$p(Landroidx/compose/ui/text/font/FontFamilyResolverImpl;)Lkotlin/jvm/functions/Function1;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->access$getFontListFontFamilyTypefaceAdapter$p(Landroidx/compose/ui/text/font/FontFamilyResolverImpl;)Landroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;\nPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->access$getFontListFontFamilyTypefaceAdapter$p(Landroidx/compose/ui/text/font/FontFamilyResolverImpl;)Landroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->access$getPlatformFamilyTypefaceAdapter$p(Landroidx/compose/ui/text/font/FontFamilyResolverImpl;)Landroidx/compose/runtime/Stack;\nPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->access$getPlatformFamilyTypefaceAdapter$p(Landroidx/compose/ui/text/font/FontFamilyResolverImpl;)Landroidx/compose/runtime/Stack;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->getPlatformFontLoader$ui_text_release()Landroidx/compose/ui/text/font/AndroidFontLoader;\nPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->getPlatformFontLoader$ui_text_release()Landroidx/compose/ui/text/font/AndroidFontLoader;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->resolve-DPcqOEQ(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;II)Landroidx/compose/ui/text/font/TypefaceResult;\nHPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->resolve-DPcqOEQ(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;II)Landroidx/compose/ui/text/font/TypefaceResult;\nLandroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1;-><init>(Ljava/lang/Object;Landroidx/compose/ui/text/font/TypefaceRequest;I)V\nHPLandroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1;-><init>(Ljava/lang/Object;Landroidx/compose/ui/text/font/TypefaceRequest;I)V\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/text/font/FontFamilyResolverKt;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverKt;-><clinit>()V\nPLandroidx/compose/ui/text/font/FontFamilyResolverKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverKt;->getGlobalAsyncTypefaceCache()Landroidx/compose/ui/text/font/AsyncTypefaceCache;\nPLandroidx/compose/ui/text/font/FontFamilyResolverKt;->getGlobalAsyncTypefaceCache()Landroidx/compose/ui/text/font/AsyncTypefaceCache;\nHSPLandroidx/compose/ui/text/font/FontFamilyResolverKt;->getGlobalTypefaceRequestCache()Landroidx/compose/ui/text/font/TypefaceRequestCache;\nPLandroidx/compose/ui/text/font/FontFamilyResolverKt;->getGlobalTypefaceRequestCache()Landroidx/compose/ui/text/font/TypefaceRequestCache;\nLandroidx/compose/ui/text/font/FontKt;\nHSPLandroidx/compose/ui/text/font/FontKt;->PlatformTypefaces()Landroidx/compose/ui/text/font/PlatformTypefaces;\nPLandroidx/compose/ui/text/font/FontKt;->PlatformTypefaces()Landroidx/compose/ui/text/font/PlatformTypefaces;\nHSPLandroidx/compose/ui/text/font/FontKt;->createFontFamilyResolver(Landroid/content/Context;)Landroidx/compose/ui/text/font/FontFamilyResolverImpl;\nPLandroidx/compose/ui/text/font/FontKt;->createFontFamilyResolver(Landroid/content/Context;)Landroidx/compose/ui/text/font/FontFamilyResolverImpl;\nLandroidx/compose/ui/text/font/FontListFontFamily;\nLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;\nHSPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;-><clinit>()V\nPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;-><clinit>()V\nHSPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;-><init>(Landroidx/compose/ui/text/font/AsyncTypefaceCache;)V\nPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;-><init>(Landroidx/compose/ui/text/font/AsyncTypefaceCache;)V\nHSPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;->resolve(Landroidx/compose/ui/text/font/TypefaceRequest;Landroidx/compose/ui/text/font/AndroidFontLoader;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/text/font/TypefaceResult;\nPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter;->resolve(Landroidx/compose/ui/text/font/TypefaceRequest;Landroidx/compose/ui/text/font/AndroidFontLoader;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/text/font/TypefaceResult;\nLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter$special$$inlined$CoroutineExceptionHandler$1;\nHSPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter$special$$inlined$CoroutineExceptionHandler$1;-><init>(Lkotlinx/coroutines/CoroutineExceptionHandler$Key;)V\nPLandroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter$special$$inlined$CoroutineExceptionHandler$1;-><init>(Lkotlinx/coroutines/CoroutineExceptionHandler$Key;)V\nLandroidx/compose/ui/text/font/FontStyle;\nHSPLandroidx/compose/ui/text/font/FontStyle;-><init>(I)V\nHPLandroidx/compose/ui/text/font/FontStyle;-><init>(I)V\nHSPLandroidx/compose/ui/text/font/FontStyle;->box-impl(I)Landroidx/compose/ui/text/font/FontStyle;\nHPLandroidx/compose/ui/text/font/FontStyle;->box-impl(I)Landroidx/compose/ui/text/font/FontStyle;\nHSPLandroidx/compose/ui/text/font/FontStyle;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/font/FontStyle;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/font/FontStyle;->unbox-impl()I\nPLandroidx/compose/ui/text/font/FontStyle;->unbox-impl()I\nLandroidx/compose/ui/text/font/FontStyle$Companion;\nHSPLandroidx/compose/ui/text/font/FontStyle$Companion;-><init>()V\nPLandroidx/compose/ui/text/font/FontStyle$Companion;-><init>()V\nLandroidx/compose/ui/text/font/FontSynthesis;\nHSPLandroidx/compose/ui/text/font/FontSynthesis;-><init>(I)V\nHPLandroidx/compose/ui/text/font/FontSynthesis;-><init>(I)V\nHSPLandroidx/compose/ui/text/font/FontSynthesis;->box-impl(I)Landroidx/compose/ui/text/font/FontSynthesis;\nHPLandroidx/compose/ui/text/font/FontSynthesis;->box-impl(I)Landroidx/compose/ui/text/font/FontSynthesis;\nHSPLandroidx/compose/ui/text/font/FontSynthesis;->unbox-impl()I\nPLandroidx/compose/ui/text/font/FontSynthesis;->unbox-impl()I\nLandroidx/compose/ui/text/font/FontWeight;\nHSPLandroidx/compose/ui/text/font/FontWeight;-><clinit>()V\nPLandroidx/compose/ui/text/font/FontWeight;-><clinit>()V\nHSPLandroidx/compose/ui/text/font/FontWeight;-><init>(I)V\nPLandroidx/compose/ui/text/font/FontWeight;-><init>(I)V\nHSPLandroidx/compose/ui/text/font/FontWeight;->access$getMedium$cp()Landroidx/compose/ui/text/font/FontWeight;\nPLandroidx/compose/ui/text/font/FontWeight;->access$getMedium$cp()Landroidx/compose/ui/text/font/FontWeight;\nHSPLandroidx/compose/ui/text/font/FontWeight;->access$getNormal$cp()Landroidx/compose/ui/text/font/FontWeight;\nPLandroidx/compose/ui/text/font/FontWeight;->access$getNormal$cp()Landroidx/compose/ui/text/font/FontWeight;\nHSPLandroidx/compose/ui/text/font/FontWeight;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/text/font/FontWeight;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/font/FontWeight;->getWeight()I\nPLandroidx/compose/ui/text/font/FontWeight;->getWeight()I\nHSPLandroidx/compose/ui/text/font/FontWeight;->hashCode()I\nPLandroidx/compose/ui/text/font/FontWeight;->hashCode()I\nLandroidx/compose/ui/text/font/GenericFontFamily;\nHSPLandroidx/compose/ui/text/font/GenericFontFamily;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nPLandroidx/compose/ui/text/font/GenericFontFamily;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nHSPLandroidx/compose/ui/text/font/GenericFontFamily;->getName()Ljava/lang/String;\nPLandroidx/compose/ui/text/font/GenericFontFamily;->getName()Ljava/lang/String;\nLandroidx/compose/ui/text/font/PlatformResolveInterceptor;\nHSPLandroidx/compose/ui/text/font/PlatformResolveInterceptor;-><clinit>()V\nPLandroidx/compose/ui/text/font/PlatformResolveInterceptor;-><clinit>()V\nLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion;\nHSPLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion;-><clinit>()V\nPLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion;-><init>()V\nPLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion;-><init>()V\nLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion$Default$1;\nHSPLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion$Default$1;-><init>()V\nPLandroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion$Default$1;-><init>()V\nLandroidx/compose/ui/text/font/PlatformTypefaces;\nLandroidx/compose/ui/text/font/PlatformTypefacesApi;\nHSPLandroidx/compose/ui/text/font/PlatformTypefacesApi;-><init>(I)V\nPLandroidx/compose/ui/text/font/PlatformTypefacesApi;-><init>(I)V\nHSPLandroidx/compose/ui/text/font/PlatformTypefacesApi;->createAndroidTypefaceApi28-RetOiIg(Ljava/lang/String;Landroidx/compose/ui/text/font/FontWeight;I)Landroid/graphics/Typeface;\nPLandroidx/compose/ui/text/font/PlatformTypefacesApi;->createAndroidTypefaceApi28-RetOiIg(Ljava/lang/String;Landroidx/compose/ui/text/font/FontWeight;I)Landroid/graphics/Typeface;\nHSPLandroidx/compose/ui/text/font/PlatformTypefacesApi;->createNamed-RetOiIg(Landroidx/compose/ui/text/font/GenericFontFamily;Landroidx/compose/ui/text/font/FontWeight;I)Landroid/graphics/Typeface;\nPLandroidx/compose/ui/text/font/PlatformTypefacesApi;->createNamed-RetOiIg(Landroidx/compose/ui/text/font/GenericFontFamily;Landroidx/compose/ui/text/font/FontWeight;I)Landroid/graphics/Typeface;\nLandroidx/compose/ui/text/font/SystemFontFamily;\nHSPLandroidx/compose/ui/text/font/SystemFontFamily;-><init>()V\nPLandroidx/compose/ui/text/font/SystemFontFamily;-><init>()V\nLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/NotificationChannel;Z)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/NotificationChannel;Z)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannel;Landroid/net/Uri;Landroid/media/AudioAttributes;)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannel;Landroid/net/Uri;Landroid/media/AudioAttributes;)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannel;Z)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannel;Z)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/text/StaticLayout$Builder;I)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/text/StaticLayout$Builder;I)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;I)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;I)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Z)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Z)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/ViewParent;Landroid/view/View;Landroid/view/View;)V\nHPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/ViewParent;Landroid/view/View;Landroid/view/View;)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/util/List;)V\nHPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/util/List;)V\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/String;Ljava/lang/CharSequence;I)Landroid/app/NotificationChannel;\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/String;Ljava/lang/CharSequence;I)Landroid/app/NotificationChannel;\nLandroidx/compose/ui/text/font/TypefaceCompatApi26$toAndroidString$1;\nHSPLandroidx/compose/ui/text/font/TypefaceCompatApi26$toAndroidString$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/text/font/TypefaceCompatApi26$toAndroidString$1;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/ui/text/font/TypefaceRequest;\nHSPLandroidx/compose/ui/text/font/TypefaceRequest;-><init>(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;IILjava/lang/Object;)V\nHPLandroidx/compose/ui/text/font/TypefaceRequest;-><init>(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;IILjava/lang/Object;)V\nHSPLandroidx/compose/ui/text/font/TypefaceRequest;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/font/TypefaceRequest;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/font/TypefaceRequest;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nPLandroidx/compose/ui/text/font/TypefaceRequest;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nHSPLandroidx/compose/ui/text/font/TypefaceRequest;->getFontStyle-_-LCdwA()I\nPLandroidx/compose/ui/text/font/TypefaceRequest;->getFontStyle-_-LCdwA()I\nHSPLandroidx/compose/ui/text/font/TypefaceRequest;->getFontWeight()Landroidx/compose/ui/text/font/FontWeight;\nPLandroidx/compose/ui/text/font/TypefaceRequest;->getFontWeight()Landroidx/compose/ui/text/font/FontWeight;\nHSPLandroidx/compose/ui/text/font/TypefaceRequest;->hashCode()I\nHPLandroidx/compose/ui/text/font/TypefaceRequest;->hashCode()I\nLandroidx/compose/ui/text/font/TypefaceRequestCache;\nHSPLandroidx/compose/ui/text/font/TypefaceRequestCache;-><init>()V\nPLandroidx/compose/ui/text/font/TypefaceRequestCache;-><init>()V\nHSPLandroidx/compose/ui/text/font/TypefaceRequestCache;->runCached(Landroidx/compose/ui/text/font/TypefaceRequest;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/text/font/TypefaceResult;\nHPLandroidx/compose/ui/text/font/TypefaceRequestCache;->runCached(Landroidx/compose/ui/text/font/TypefaceRequest;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/text/font/TypefaceResult;\nLandroidx/compose/ui/text/font/TypefaceResult;\nLandroidx/compose/ui/text/font/TypefaceResult$Immutable;\nHSPLandroidx/compose/ui/text/font/TypefaceResult$Immutable;-><init>(Ljava/lang/Object;Z)V\nPLandroidx/compose/ui/text/font/TypefaceResult$Immutable;-><init>(Ljava/lang/Object;Z)V\nHSPLandroidx/compose/ui/text/font/TypefaceResult$Immutable;->getCacheable()Z\nPLandroidx/compose/ui/text/font/TypefaceResult$Immutable;->getCacheable()Z\nHSPLandroidx/compose/ui/text/font/TypefaceResult$Immutable;->getValue()Ljava/lang/Object;\nPLandroidx/compose/ui/text/font/TypefaceResult$Immutable;->getValue()Ljava/lang/Object;\nLandroidx/compose/ui/text/input/CursorAnchorInfoController;\nHSPLandroidx/compose/ui/text/input/CursorAnchorInfoController;-><init>(Landroidx/compose/ui/text/input/InputMethodManagerImpl;)V\nPLandroidx/compose/ui/text/input/CursorAnchorInfoController;-><init>(Landroidx/compose/ui/text/input/InputMethodManagerImpl;)V\nLandroidx/compose/ui/text/input/ImeOptions;\nHSPLandroidx/compose/ui/text/input/ImeOptions;-><clinit>()V\nPLandroidx/compose/ui/text/input/ImeOptions;-><clinit>()V\nHSPLandroidx/compose/ui/text/input/ImeOptions;-><init>(ZIZII)V\nPLandroidx/compose/ui/text/input/ImeOptions;-><init>(ZIZII)V\nHSPLandroidx/compose/ui/text/input/ImeOptions;->access$getDefault$cp()Landroidx/compose/ui/text/input/ImeOptions;\nPLandroidx/compose/ui/text/input/ImeOptions;->access$getDefault$cp()Landroidx/compose/ui/text/input/ImeOptions;\nLandroidx/compose/ui/text/input/InputMethodManager;\nLandroidx/compose/ui/text/input/InputMethodManagerImpl;\nHSPLandroidx/compose/ui/text/input/InputMethodManagerImpl;-><init>(Landroid/view/View;)V\nPLandroidx/compose/ui/text/input/InputMethodManagerImpl;-><init>(Landroid/view/View;)V\nLandroidx/compose/ui/text/input/InputMethodManagerImpl$imm$2;\nHSPLandroidx/compose/ui/text/input/InputMethodManagerImpl$imm$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/compose/ui/text/input/InputMethodManagerImpl$imm$2;-><init>(Ljava/lang/Object;I)V\nLandroidx/compose/ui/text/input/OffsetMapping;\nLandroidx/compose/ui/text/input/PlatformTextInputService;\nLandroidx/compose/ui/text/input/TextFieldValue;\nHSPLandroidx/compose/ui/text/input/TextFieldValue;-><clinit>()V\nPLandroidx/compose/ui/text/input/TextFieldValue;-><clinit>()V\nHSPLandroidx/compose/ui/text/input/TextFieldValue;-><init>(Landroidx/compose/ui/text/AnnotatedString;JLandroidx/compose/ui/text/TextRange;)V\nPLandroidx/compose/ui/text/input/TextFieldValue;-><init>(Landroidx/compose/ui/text/AnnotatedString;JLandroidx/compose/ui/text/TextRange;)V\nHSPLandroidx/compose/ui/text/input/TextFieldValue;-><init>(Ljava/lang/String;JI)V\nPLandroidx/compose/ui/text/input/TextFieldValue;-><init>(Ljava/lang/String;JI)V\nHSPLandroidx/compose/ui/text/input/TextFieldValue;->getText()Ljava/lang/String;\nPLandroidx/compose/ui/text/input/TextFieldValue;->getText()Ljava/lang/String;\nLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1;\nHSPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1;-><clinit>()V\nPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1;-><clinit>()V\nHSPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1;-><init>()V\nPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1;-><init>()V\nLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2;\nHSPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2;-><clinit>()V\nPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2;-><clinit>()V\nHSPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2;-><init>(I)V\nPLandroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2;-><init>(I)V\nLandroidx/compose/ui/text/input/TextInputService;\nHSPLandroidx/compose/ui/text/input/TextInputService;-><init>(Landroidx/compose/ui/text/input/PlatformTextInputService;)V\nPLandroidx/compose/ui/text/input/TextInputService;-><init>(Landroidx/compose/ui/text/input/PlatformTextInputService;)V\nLandroidx/compose/ui/text/input/TextInputServiceAndroid;\nHSPLandroidx/compose/ui/text/input/TextInputServiceAndroid;-><init>(Landroid/view/View;)V\nPLandroidx/compose/ui/text/input/TextInputServiceAndroid;-><init>(Landroid/view/View;)V\nLandroidx/compose/ui/text/input/TextInputServiceAndroid$TextInputCommand;\nLandroidx/compose/ui/text/input/TextInputServiceAndroid_androidKt$$ExternalSyntheticLambda0;\nHSPLandroidx/compose/ui/text/input/TextInputServiceAndroid_androidKt$$ExternalSyntheticLambda0;-><init>(Landroid/view/Choreographer;)V\nPLandroidx/compose/ui/text/input/TextInputServiceAndroid_androidKt$$ExternalSyntheticLambda0;-><init>(Landroid/view/Choreographer;)V\nLandroidx/compose/ui/text/input/VisualTransformation;\nHSPLandroidx/compose/ui/text/input/VisualTransformation;-><clinit>()V\nPLandroidx/compose/ui/text/input/VisualTransformation;-><clinit>()V\nLandroidx/compose/ui/text/input/VisualTransformation$Companion;\nHSPLandroidx/compose/ui/text/input/VisualTransformation$Companion;-><clinit>()V\nPLandroidx/compose/ui/text/input/VisualTransformation$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/text/input/VisualTransformation$Companion;-><init>()V\nPLandroidx/compose/ui/text/input/VisualTransformation$Companion;-><init>()V\nHSPLandroidx/compose/ui/text/input/VisualTransformation$Companion;->getNone()Landroidx/compose/ui/text/input/VisualTransformation;\nPLandroidx/compose/ui/text/input/VisualTransformation$Companion;->getNone()Landroidx/compose/ui/text/input/VisualTransformation;\nLandroidx/compose/ui/text/intl/AndroidLocale;\nHSPLandroidx/compose/ui/text/intl/AndroidLocale;-><init>(Ljava/util/Locale;)V\nPLandroidx/compose/ui/text/intl/AndroidLocale;-><init>(Ljava/util/Locale;)V\nLandroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;\nHSPLandroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;-><init>()V\nPLandroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;-><init>()V\nHSPLandroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;->getCurrent()Landroidx/compose/ui/text/intl/LocaleList;\nHPLandroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;->getCurrent()Landroidx/compose/ui/text/intl/LocaleList;\nLandroidx/compose/ui/text/intl/Locale;\nHSPLandroidx/compose/ui/text/intl/Locale;-><clinit>()V\nPLandroidx/compose/ui/text/intl/Locale;-><clinit>()V\nHSPLandroidx/compose/ui/text/intl/Locale;-><init>(Landroidx/compose/ui/text/intl/AndroidLocale;)V\nPLandroidx/compose/ui/text/intl/Locale;-><init>(Landroidx/compose/ui/text/intl/AndroidLocale;)V\nLandroidx/compose/ui/text/intl/LocaleList;\nHSPLandroidx/compose/ui/text/intl/LocaleList;-><clinit>()V\nPLandroidx/compose/ui/text/intl/LocaleList;-><clinit>()V\nHSPLandroidx/compose/ui/text/intl/LocaleList;-><init>(Ljava/util/List;)V\nPLandroidx/compose/ui/text/intl/LocaleList;-><init>(Ljava/util/List;)V\nHSPLandroidx/compose/ui/text/intl/LocaleList;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/intl/LocaleList;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/text/intl/PlatformLocaleKt;\nHSPLandroidx/compose/ui/text/intl/PlatformLocaleKt;-><clinit>()V\nPLandroidx/compose/ui/text/intl/PlatformLocaleKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/intl/PlatformLocaleKt;->getPlatformLocaleDelegate()Landroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;\nPLandroidx/compose/ui/text/intl/PlatformLocaleKt;->getPlatformLocaleDelegate()Landroidx/compose/ui/text/intl/AndroidLocaleDelegateAPI24;\nLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt;-><clinit>()V\nPLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt;->createCharSequence(Ljava/lang/String;FLandroidx/compose/ui/text/TextStyle;Ljava/util/List;Ljava/util/List;Landroidx/compose/ui/unit/Density;Lkotlin/jvm/functions/Function4;Z)Ljava/lang/CharSequence;\nHPLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt;->createCharSequence(Ljava/lang/String;FLandroidx/compose/ui/text/TextStyle;Ljava/util/List;Ljava/util/List;Landroidx/compose/ui/unit/Density;Lkotlin/jvm/functions/Function4;Z)Ljava/lang/CharSequence;\nLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt$NoopSpan$1;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt$NoopSpan$1;-><init>()V\nPLandroidx/compose/ui/text/platform/AndroidParagraphHelper_androidKt$NoopSpan$1;-><init>()V\nLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;-><init>(Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;Landroidx/compose/ui/unit/Density;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V\nHPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;-><init>(Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;Landroidx/compose/ui/unit/Density;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getCharSequence$ui_text_release()Ljava/lang/CharSequence;\nPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getCharSequence$ui_text_release()Ljava/lang/CharSequence;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getFontFamilyResolver()Landroidx/compose/ui/text/font/FontFamilyResolverImpl;\nPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getFontFamilyResolver()Landroidx/compose/ui/text/font/FontFamilyResolverImpl;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getHasStaleResolvedFonts()Z\nHPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getHasStaleResolvedFonts()Z\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getLayoutIntrinsics$ui_text_release()Landroidx/compose/ui/text/android/LayoutIntrinsics;\nPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getLayoutIntrinsics$ui_text_release()Landroidx/compose/ui/text/android/LayoutIntrinsics;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getMaxIntrinsicWidth()F\nHPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getMaxIntrinsicWidth()F\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getStyle()Landroidx/compose/ui/text/TextStyle;\nPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getStyle()Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getTextDirectionHeuristic$ui_text_release()I\nPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getTextDirectionHeuristic$ui_text_release()I\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getTextPaint$ui_text_release()Landroidx/compose/ui/text/platform/AndroidTextPaint;\nHPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;->getTextPaint$ui_text_release()Landroidx/compose/ui/text/platform/AndroidTextPaint;\nLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics$resolveTypeface$1;\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics$resolveTypeface$1;-><init>(Landroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;)V\nHPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics$resolveTypeface$1;-><init>(Landroidx/compose/ui/text/platform/AndroidParagraphIntrinsics;)V\nHSPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics$resolveTypeface$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/compose/ui/text/platform/AndroidParagraphIntrinsics$resolveTypeface$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/compose/ui/text/platform/AndroidTextPaint;\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;-><init>(F)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;-><init>(F)V\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->getBlendMode-0nO6VwU()I\nPLandroidx/compose/ui/text/platform/AndroidTextPaint;->getBlendMode-0nO6VwU()I\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setBlendMode-s9anfk8(I)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setBlendMode-s9anfk8(I)V\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setBrush-12SF9DM(Landroidx/compose/ui/graphics/Brush;JF)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setBrush-12SF9DM(Landroidx/compose/ui/graphics/Brush;JF)V\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setColor-8_81llA(J)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setColor-8_81llA(J)V\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setDrawStyle(Landroidx/compose/ui/graphics/drawscope/DrawStyle;)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setDrawStyle(Landroidx/compose/ui/graphics/drawscope/DrawStyle;)V\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setShadow(Landroidx/compose/ui/graphics/Shadow;)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setShadow(Landroidx/compose/ui/graphics/Shadow;)V\nHSPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setTextDecoration(Landroidx/compose/ui/text/style/TextDecoration;)V\nHPLandroidx/compose/ui/text/platform/AndroidTextPaint;->setTextDecoration(Landroidx/compose/ui/text/style/TextDecoration;)V\nLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface;\nPLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface;\nHSPLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/os/Looper;)Landroid/os/Handler;\nPLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/os/Looper;)Landroid/os/Handler;\nHSPLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/text/StaticLayout$Builder;Z)V\nPLandroidx/compose/ui/text/platform/Api28Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/text/StaticLayout$Builder;Z)V\nLandroidx/compose/ui/text/platform/DefaultImpl;\nHSPLandroidx/compose/ui/text/platform/DefaultImpl;-><init>()V\nPLandroidx/compose/ui/text/platform/DefaultImpl;-><init>()V\nHSPLandroidx/compose/ui/text/platform/DefaultImpl;->access$setLoadState$p(Landroidx/compose/ui/text/platform/DefaultImpl;Landroidx/compose/runtime/State;)V\nPLandroidx/compose/ui/text/platform/DefaultImpl;->access$setLoadState$p(Landroidx/compose/ui/text/platform/DefaultImpl;Landroidx/compose/runtime/State;)V\nHSPLandroidx/compose/ui/text/platform/DefaultImpl;->getFontLoadState()Landroidx/compose/runtime/State;\nPLandroidx/compose/ui/text/platform/DefaultImpl;->getFontLoadState()Landroidx/compose/runtime/State;\nHSPLandroidx/compose/ui/text/platform/DefaultImpl;->getFontLoaded()Landroidx/compose/runtime/State;\nHPLandroidx/compose/ui/text/platform/DefaultImpl;->getFontLoaded()Landroidx/compose/runtime/State;\nLandroidx/compose/ui/text/platform/DefaultImpl$getFontLoadState$initCallback$1;\nHSPLandroidx/compose/ui/text/platform/DefaultImpl$getFontLoadState$initCallback$1;-><init>(Landroidx/compose/runtime/ParcelableSnapshotMutableState;Landroidx/compose/ui/text/platform/DefaultImpl;)V\nPLandroidx/compose/ui/text/platform/DefaultImpl$getFontLoadState$initCallback$1;-><init>(Landroidx/compose/runtime/ParcelableSnapshotMutableState;Landroidx/compose/ui/text/platform/DefaultImpl;)V\nHSPLandroidx/compose/ui/text/platform/DefaultImpl$getFontLoadState$initCallback$1;->onFailed()V\nPLandroidx/compose/ui/text/platform/DefaultImpl$getFontLoadState$initCallback$1;->onFailed()V\nLandroidx/compose/ui/text/platform/EmojiCompatStatus;\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatus;-><clinit>()V\nPLandroidx/compose/ui/text/platform/EmojiCompatStatus;-><clinit>()V\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatus;-><init>()V\nPLandroidx/compose/ui/text/platform/EmojiCompatStatus;-><init>()V\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatus;->getFontLoaded()Landroidx/compose/runtime/State;\nHPLandroidx/compose/ui/text/platform/EmojiCompatStatus;->getFontLoaded()Landroidx/compose/runtime/State;\nLandroidx/compose/ui/text/platform/EmojiCompatStatusDelegate;\nLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;-><clinit>()V\nPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;-><clinit>()V\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;->access$getFalsey$p()Landroidx/compose/ui/text/platform/ImmutableBool;\nPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;->access$getFalsey$p()Landroidx/compose/ui/text/platform/ImmutableBool;\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;->access$getHasEmojiCompat(Landroidx/compose/ui/text/TextStyle;)Z\nHPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;->access$getHasEmojiCompat(Landroidx/compose/ui/text/TextStyle;)Z\nHSPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;->toAccessibilitySpannableString(Landroidx/compose/ui/text/AnnotatedString;Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;Landroidx/compose/ui/text/platform/URLSpanCache;)Landroid/text/SpannableString;\nHPLandroidx/compose/ui/text/platform/EmojiCompatStatusKt;->toAccessibilitySpannableString(Landroidx/compose/ui/text/AnnotatedString;Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/text/font/FontFamilyResolverImpl;Landroidx/compose/ui/text/platform/URLSpanCache;)Landroid/text/SpannableString;\nLandroidx/compose/ui/text/platform/ImmutableBool;\nHSPLandroidx/compose/ui/text/platform/ImmutableBool;-><init>(Z)V\nPLandroidx/compose/ui/text/platform/ImmutableBool;-><init>(Z)V\nHSPLandroidx/compose/ui/text/platform/ImmutableBool;->getValue()Ljava/lang/Object;\nHPLandroidx/compose/ui/text/platform/ImmutableBool;->getValue()Ljava/lang/Object;\nLandroidx/compose/ui/text/platform/URLSpanCache;\nHSPLandroidx/compose/ui/text/platform/URLSpanCache;-><init>()V\nPLandroidx/compose/ui/text/platform/URLSpanCache;-><init>()V\nLandroidx/compose/ui/text/platform/extensions/LocaleListHelperMethods;\nLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;\nHSPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;->resolveLineHeightInPx-o2QH7mI(JFLandroidx/compose/ui/unit/Density;)F\nHPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;->resolveLineHeightInPx-o2QH7mI(JFLandroidx/compose/ui/unit/Density;)F\nHSPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;->setLineHeight-KmRG4DE(Landroid/text/Spannable;JFLandroidx/compose/ui/unit/Density;Landroidx/compose/ui/text/style/LineHeightStyle;)V\nHPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;->setLineHeight-KmRG4DE(Landroid/text/Spannable;JFLandroidx/compose/ui/unit/Density;Landroidx/compose/ui/text/style/LineHeightStyle;)V\nHSPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;->setSpanStyles(Landroid/text/Spannable;Landroidx/compose/ui/text/TextStyle;Ljava/util/List;Landroidx/compose/ui/unit/Density;Lkotlin/jvm/functions/Function4;)V\nHPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt;->setSpanStyles(Landroid/text/Spannable;Landroidx/compose/ui/text/TextStyle;Ljava/util/List;Landroidx/compose/ui/unit/Density;Lkotlin/jvm/functions/Function4;)V\nLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt$setFontAttributes$1;\nHSPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt$setFontAttributes$1;-><init>(Landroid/text/Spannable;Lkotlin/jvm/functions/Function4;)V\nHPLandroidx/compose/ui/text/platform/extensions/SpannableExtensions_androidKt$setFontAttributes$1;-><init>(Landroid/text/Spannable;Lkotlin/jvm/functions/Function4;)V\nLandroidx/compose/ui/text/platform/style/ShaderBrushSpan;\nLandroidx/compose/ui/text/style/BaselineShift;\nHSPLandroidx/compose/ui/text/style/BaselineShift;-><clinit>()V\nPLandroidx/compose/ui/text/style/BaselineShift;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/BaselineShift;-><init>(F)V\nHPLandroidx/compose/ui/text/style/BaselineShift;-><init>(F)V\nHSPLandroidx/compose/ui/text/style/BaselineShift;->box-impl(F)Landroidx/compose/ui/text/style/BaselineShift;\nPLandroidx/compose/ui/text/style/BaselineShift;->box-impl(F)Landroidx/compose/ui/text/style/BaselineShift;\nHSPLandroidx/compose/ui/text/style/BaselineShift;->unbox-impl()F\nPLandroidx/compose/ui/text/style/BaselineShift;->unbox-impl()F\nLandroidx/compose/ui/text/style/BrushStyle;\nLandroidx/compose/ui/text/style/ColorStyle;\nHSPLandroidx/compose/ui/text/style/ColorStyle;-><init>(J)V\nHPLandroidx/compose/ui/text/style/ColorStyle;-><init>(J)V\nHSPLandroidx/compose/ui/text/style/ColorStyle;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/style/ColorStyle;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/style/ColorStyle;->getAlpha()F\nHPLandroidx/compose/ui/text/style/ColorStyle;->getAlpha()F\nHSPLandroidx/compose/ui/text/style/ColorStyle;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHPLandroidx/compose/ui/text/style/ColorStyle;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/text/style/ColorStyle;->getColor-0d7_KjU()J\nPLandroidx/compose/ui/text/style/ColorStyle;->getColor-0d7_KjU()J\nLandroidx/compose/ui/text/style/Hyphens;\nHSPLandroidx/compose/ui/text/style/Hyphens;-><init>(I)V\nHPLandroidx/compose/ui/text/style/Hyphens;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/Hyphens;->box-impl(I)Landroidx/compose/ui/text/style/Hyphens;\nPLandroidx/compose/ui/text/style/Hyphens;->box-impl(I)Landroidx/compose/ui/text/style/Hyphens;\nHSPLandroidx/compose/ui/text/style/Hyphens;->unbox-impl()I\nPLandroidx/compose/ui/text/style/Hyphens;->unbox-impl()I\nLandroidx/compose/ui/text/style/LineBreak;\nHSPLandroidx/compose/ui/text/style/LineBreak;-><init>(I)V\nHPLandroidx/compose/ui/text/style/LineBreak;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/LineBreak;->access$getSimple$cp()I\nPLandroidx/compose/ui/text/style/LineBreak;->access$getSimple$cp()I\nHSPLandroidx/compose/ui/text/style/LineBreak;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak;\nPLandroidx/compose/ui/text/style/LineBreak;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak;\nHSPLandroidx/compose/ui/text/style/LineBreak;->unbox-impl()I\nPLandroidx/compose/ui/text/style/LineBreak;->unbox-impl()I\nLandroidx/compose/ui/text/style/LineBreak$Strategy;\nHSPLandroidx/compose/ui/text/style/LineBreak$Strategy;-><init>(I)V\nHPLandroidx/compose/ui/text/style/LineBreak$Strategy;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/LineBreak$Strategy;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak$Strategy;\nPLandroidx/compose/ui/text/style/LineBreak$Strategy;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak$Strategy;\nHSPLandroidx/compose/ui/text/style/LineBreak$Strategy;->unbox-impl()I\nPLandroidx/compose/ui/text/style/LineBreak$Strategy;->unbox-impl()I\nLandroidx/compose/ui/text/style/LineBreak$Strictness;\nHSPLandroidx/compose/ui/text/style/LineBreak$Strictness;-><init>(I)V\nHPLandroidx/compose/ui/text/style/LineBreak$Strictness;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/LineBreak$Strictness;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak$Strictness;\nPLandroidx/compose/ui/text/style/LineBreak$Strictness;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak$Strictness;\nHSPLandroidx/compose/ui/text/style/LineBreak$Strictness;->unbox-impl()I\nPLandroidx/compose/ui/text/style/LineBreak$Strictness;->unbox-impl()I\nLandroidx/compose/ui/text/style/LineBreak$WordBreak;\nHSPLandroidx/compose/ui/text/style/LineBreak$WordBreak;-><init>(I)V\nHPLandroidx/compose/ui/text/style/LineBreak$WordBreak;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/LineBreak$WordBreak;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak$WordBreak;\nPLandroidx/compose/ui/text/style/LineBreak$WordBreak;->box-impl(I)Landroidx/compose/ui/text/style/LineBreak$WordBreak;\nHSPLandroidx/compose/ui/text/style/LineBreak$WordBreak;->unbox-impl()I\nPLandroidx/compose/ui/text/style/LineBreak$WordBreak;->unbox-impl()I\nLandroidx/compose/ui/text/style/LineHeightStyle;\nHSPLandroidx/compose/ui/text/style/LineHeightStyle;-><clinit>()V\nPLandroidx/compose/ui/text/style/LineHeightStyle;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/LineHeightStyle;-><init>(FI)V\nPLandroidx/compose/ui/text/style/LineHeightStyle;-><init>(FI)V\nHSPLandroidx/compose/ui/text/style/LineHeightStyle;->access$getDefault$cp()Landroidx/compose/ui/text/style/LineHeightStyle;\nPLandroidx/compose/ui/text/style/LineHeightStyle;->access$getDefault$cp()Landroidx/compose/ui/text/style/LineHeightStyle;\nHSPLandroidx/compose/ui/text/style/LineHeightStyle;->getAlignment-PIaL0Z0()F\nPLandroidx/compose/ui/text/style/LineHeightStyle;->getAlignment-PIaL0Z0()F\nHSPLandroidx/compose/ui/text/style/LineHeightStyle;->getTrim-EVpEnUU()I\nPLandroidx/compose/ui/text/style/LineHeightStyle;->getTrim-EVpEnUU()I\nLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;\nHSPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;-><clinit>()V\nPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;->access$getCenter$cp()F\nPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;->access$getCenter$cp()F\nHSPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;->access$getProportional$cp()F\nPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;->access$getProportional$cp()F\nHSPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;->constructor-impl(F)V\nPLandroidx/compose/ui/text/style/LineHeightStyle$Alignment;->constructor-impl(F)V\nLandroidx/compose/ui/text/style/TextAlign;\nHSPLandroidx/compose/ui/text/style/TextAlign;-><init>(I)V\nHPLandroidx/compose/ui/text/style/TextAlign;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/TextAlign;->box-impl(I)Landroidx/compose/ui/text/style/TextAlign;\nPLandroidx/compose/ui/text/style/TextAlign;->box-impl(I)Landroidx/compose/ui/text/style/TextAlign;\nHSPLandroidx/compose/ui/text/style/TextAlign;->equals(Ljava/lang/Object;)Z\nPLandroidx/compose/ui/text/style/TextAlign;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/style/TextAlign;->unbox-impl()I\nPLandroidx/compose/ui/text/style/TextAlign;->unbox-impl()I\nLandroidx/compose/ui/text/style/TextDecoration;\nHSPLandroidx/compose/ui/text/style/TextDecoration;-><clinit>()V\nPLandroidx/compose/ui/text/style/TextDecoration;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/TextDecoration;-><init>(I)V\nPLandroidx/compose/ui/text/style/TextDecoration;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/TextDecoration;->access$getNone$cp()Landroidx/compose/ui/text/style/TextDecoration;\nPLandroidx/compose/ui/text/style/TextDecoration;->access$getNone$cp()Landroidx/compose/ui/text/style/TextDecoration;\nHSPLandroidx/compose/ui/text/style/TextDecoration;->access$getUnderline$cp()Landroidx/compose/ui/text/style/TextDecoration;\nPLandroidx/compose/ui/text/style/TextDecoration;->access$getUnderline$cp()Landroidx/compose/ui/text/style/TextDecoration;\nHSPLandroidx/compose/ui/text/style/TextDecoration;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/style/TextDecoration;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/text/style/TextDirection;\nHSPLandroidx/compose/ui/text/style/TextDirection;-><init>(I)V\nHPLandroidx/compose/ui/text/style/TextDirection;-><init>(I)V\nHSPLandroidx/compose/ui/text/style/TextDirection;->box-impl(I)Landroidx/compose/ui/text/style/TextDirection;\nPLandroidx/compose/ui/text/style/TextDirection;->box-impl(I)Landroidx/compose/ui/text/style/TextDirection;\nHSPLandroidx/compose/ui/text/style/TextDirection;->unbox-impl()I\nPLandroidx/compose/ui/text/style/TextDirection;->unbox-impl()I\nLandroidx/compose/ui/text/style/TextForegroundStyle;\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle;->merge(Landroidx/compose/ui/text/style/TextForegroundStyle;)Landroidx/compose/ui/text/style/TextForegroundStyle;\nHPLandroidx/compose/ui/text/style/TextForegroundStyle;->merge(Landroidx/compose/ui/text/style/TextForegroundStyle;)Landroidx/compose/ui/text/style/TextForegroundStyle;\nLandroidx/compose/ui/text/style/TextForegroundStyle$Companion;\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Companion;-><clinit>()V\nPLandroidx/compose/ui/text/style/TextForegroundStyle$Companion;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Companion;->from-8_81llA(J)Landroidx/compose/ui/text/style/TextForegroundStyle;\nHPLandroidx/compose/ui/text/style/TextForegroundStyle$Companion;->from-8_81llA(J)Landroidx/compose/ui/text/style/TextForegroundStyle;\nLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;-><clinit>()V\nPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;-><init>()V\nPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;-><init>()V\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;->getAlpha()F\nPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;->getAlpha()F\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;->getBrush()Landroidx/compose/ui/graphics/Brush;\nPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;->getBrush()Landroidx/compose/ui/graphics/Brush;\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;->getColor-0d7_KjU()J\nHPLandroidx/compose/ui/text/style/TextForegroundStyle$Unspecified;->getColor-0d7_KjU()J\nLandroidx/compose/ui/text/style/TextForegroundStyle$merge$1;\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$merge$1;-><init>(Landroidx/compose/ui/text/style/TextForegroundStyle;I)V\nHPLandroidx/compose/ui/text/style/TextForegroundStyle$merge$1;-><init>(Landroidx/compose/ui/text/style/TextForegroundStyle;I)V\nHSPLandroidx/compose/ui/text/style/TextForegroundStyle$merge$1;->invoke()Ljava/lang/Object;\nPLandroidx/compose/ui/text/style/TextForegroundStyle$merge$1;->invoke()Ljava/lang/Object;\nLandroidx/compose/ui/text/style/TextGeometricTransform;\nHSPLandroidx/compose/ui/text/style/TextGeometricTransform;-><clinit>()V\nPLandroidx/compose/ui/text/style/TextGeometricTransform;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/TextGeometricTransform;-><init>(FF)V\nPLandroidx/compose/ui/text/style/TextGeometricTransform;-><init>(FF)V\nHSPLandroidx/compose/ui/text/style/TextGeometricTransform;->access$getNone$cp()Landroidx/compose/ui/text/style/TextGeometricTransform;\nPLandroidx/compose/ui/text/style/TextGeometricTransform;->access$getNone$cp()Landroidx/compose/ui/text/style/TextGeometricTransform;\nHSPLandroidx/compose/ui/text/style/TextGeometricTransform;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/style/TextGeometricTransform;->equals(Ljava/lang/Object;)Z\nLandroidx/compose/ui/text/style/TextIndent;\nHSPLandroidx/compose/ui/text/style/TextIndent;-><clinit>()V\nPLandroidx/compose/ui/text/style/TextIndent;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/TextIndent;-><init>(JJ)V\nPLandroidx/compose/ui/text/style/TextIndent;-><init>(JJ)V\nHSPLandroidx/compose/ui/text/style/TextIndent;->access$getNone$cp()Landroidx/compose/ui/text/style/TextIndent;\nPLandroidx/compose/ui/text/style/TextIndent;->access$getNone$cp()Landroidx/compose/ui/text/style/TextIndent;\nHSPLandroidx/compose/ui/text/style/TextIndent;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/text/style/TextIndent;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/text/style/TextIndent;->getFirstLine-XSAIIZE()J\nPLandroidx/compose/ui/text/style/TextIndent;->getFirstLine-XSAIIZE()J\nHSPLandroidx/compose/ui/text/style/TextIndent;->getRestLine-XSAIIZE()J\nPLandroidx/compose/ui/text/style/TextIndent;->getRestLine-XSAIIZE()J\nLandroidx/compose/ui/text/style/TextMotion;\nHSPLandroidx/compose/ui/text/style/TextMotion;-><clinit>()V\nPLandroidx/compose/ui/text/style/TextMotion;-><clinit>()V\nHSPLandroidx/compose/ui/text/style/TextMotion;-><init>(ZI)V\nPLandroidx/compose/ui/text/style/TextMotion;-><init>(ZI)V\nHSPLandroidx/compose/ui/text/style/TextMotion;->access$getStatic$cp()Landroidx/compose/ui/text/style/TextMotion;\nPLandroidx/compose/ui/text/style/TextMotion;->access$getStatic$cp()Landroidx/compose/ui/text/style/TextMotion;\nHSPLandroidx/compose/ui/text/style/TextMotion;->getLinearity-4e0Vf04$ui_text_release()I\nPLandroidx/compose/ui/text/style/TextMotion;->getLinearity-4e0Vf04$ui_text_release()I\nHSPLandroidx/compose/ui/text/style/TextMotion;->getSubpixelTextPositioning$ui_text_release()Z\nPLandroidx/compose/ui/text/style/TextMotion;->getSubpixelTextPositioning$ui_text_release()Z\nLandroidx/compose/ui/text/style/TextOverflow;\nLandroidx/compose/ui/unit/Constraints;\nHSPLandroidx/compose/ui/unit/Constraints;-><clinit>()V\nPLandroidx/compose/ui/unit/Constraints;-><clinit>()V\nHSPLandroidx/compose/ui/unit/Constraints;-><init>(J)V\nHPLandroidx/compose/ui/unit/Constraints;-><init>(J)V\nHSPLandroidx/compose/ui/unit/Constraints;->access$getMinHeightOffsets$cp()[I\nPLandroidx/compose/ui/unit/Constraints;->access$getMinHeightOffsets$cp()[I\nHSPLandroidx/compose/ui/unit/Constraints;->box-impl(J)Landroidx/compose/ui/unit/Constraints;\nHPLandroidx/compose/ui/unit/Constraints;->box-impl(J)Landroidx/compose/ui/unit/Constraints;\nHSPLandroidx/compose/ui/unit/Constraints;->copy-Zbe2FdA$default(JIIIII)J\nHPLandroidx/compose/ui/unit/Constraints;->copy-Zbe2FdA$default(JIIIII)J\nHSPLandroidx/compose/ui/unit/Constraints;->copy-Zbe2FdA(IIII)J\nHPLandroidx/compose/ui/unit/Constraints;->copy-Zbe2FdA(IIII)J\nHSPLandroidx/compose/ui/unit/Constraints;->equals-impl0(JJ)Z\nHPLandroidx/compose/ui/unit/Constraints;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/unit/Constraints;->getHasBoundedHeight-impl(J)Z\nPLandroidx/compose/ui/unit/Constraints;->getHasBoundedHeight-impl(J)Z\nHSPLandroidx/compose/ui/unit/Constraints;->getHasBoundedWidth-impl(J)Z\nPLandroidx/compose/ui/unit/Constraints;->getHasBoundedWidth-impl(J)Z\nHSPLandroidx/compose/ui/unit/Constraints;->getHasFixedHeight-impl(J)Z\nPLandroidx/compose/ui/unit/Constraints;->getHasFixedHeight-impl(J)Z\nHSPLandroidx/compose/ui/unit/Constraints;->getHasFixedWidth-impl(J)Z\nPLandroidx/compose/ui/unit/Constraints;->getHasFixedWidth-impl(J)Z\nHSPLandroidx/compose/ui/unit/Constraints;->getMaxHeight-impl(J)I\nHPLandroidx/compose/ui/unit/Constraints;->getMaxHeight-impl(J)I\nHSPLandroidx/compose/ui/unit/Constraints;->getMaxWidth-impl(J)I\nHPLandroidx/compose/ui/unit/Constraints;->getMaxWidth-impl(J)I\nHSPLandroidx/compose/ui/unit/Constraints;->getMinHeight-impl(J)I\nHPLandroidx/compose/ui/unit/Constraints;->getMinHeight-impl(J)I\nHSPLandroidx/compose/ui/unit/Constraints;->getMinWidth-impl(J)I\nHPLandroidx/compose/ui/unit/Constraints;->getMinWidth-impl(J)I\nHSPLandroidx/compose/ui/unit/Constraints;->unbox-impl()J\nPLandroidx/compose/ui/unit/Constraints;->unbox-impl()J\nLandroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/unit/Density;->roundToPx-0680j_4(F)I\nHPLandroidx/compose/ui/unit/Density;->roundToPx-0680j_4(F)I\nHSPLandroidx/compose/ui/unit/Density;->toDp-u2uoSUM(F)F\nPLandroidx/compose/ui/unit/Density;->toDp-u2uoSUM(F)F\nHSPLandroidx/compose/ui/unit/Density;->toDp-u2uoSUM(I)F\nHPLandroidx/compose/ui/unit/Density;->toDp-u2uoSUM(I)F\nHSPLandroidx/compose/ui/unit/Density;->toPx--R2X_6o(J)F\nHPLandroidx/compose/ui/unit/Density;->toPx--R2X_6o(J)F\nHSPLandroidx/compose/ui/unit/Density;->toPx-0680j_4(F)F\nHPLandroidx/compose/ui/unit/Density;->toPx-0680j_4(F)F\nHSPLandroidx/compose/ui/unit/Density;->toSize-XkaWNTQ(J)J\nHPLandroidx/compose/ui/unit/Density;->toSize-XkaWNTQ(J)J\nLandroidx/compose/ui/unit/DensityImpl;\nHSPLandroidx/compose/ui/unit/DensityImpl;-><init>(FF)V\nHPLandroidx/compose/ui/unit/DensityImpl;-><init>(FF)V\nHSPLandroidx/compose/ui/unit/DensityImpl;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/unit/DensityImpl;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/unit/DensityImpl;->getDensity()F\nHPLandroidx/compose/ui/unit/DensityImpl;->getDensity()F\nHSPLandroidx/compose/ui/unit/DensityImpl;->getFontScale()F\nHPLandroidx/compose/ui/unit/DensityImpl;->getFontScale()F\nLandroidx/compose/ui/unit/Dp;\nHSPLandroidx/compose/ui/unit/Dp;-><clinit>()V\nPLandroidx/compose/ui/unit/Dp;-><clinit>()V\nHSPLandroidx/compose/ui/unit/Dp;-><init>(F)V\nHPLandroidx/compose/ui/unit/Dp;-><init>(F)V\nHSPLandroidx/compose/ui/unit/Dp;->box-impl(F)Landroidx/compose/ui/unit/Dp;\nPLandroidx/compose/ui/unit/Dp;->box-impl(F)Landroidx/compose/ui/unit/Dp;\nHSPLandroidx/compose/ui/unit/Dp;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/unit/Dp;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/unit/Dp;->equals-impl0(FF)Z\nHPLandroidx/compose/ui/unit/Dp;->equals-impl0(FF)Z\nHSPLandroidx/compose/ui/unit/Dp;->unbox-impl()F\nPLandroidx/compose/ui/unit/Dp;->unbox-impl()F\nLandroidx/compose/ui/unit/DpKt;\nHSPLandroidx/compose/ui/unit/DpKt;->Constraints$default(III)J\nHPLandroidx/compose/ui/unit/DpKt;->Constraints$default(III)J\nHSPLandroidx/compose/ui/unit/DpKt;->Constraints(IIII)J\nHPLandroidx/compose/ui/unit/DpKt;->Constraints(IIII)J\nHSPLandroidx/compose/ui/unit/DpKt;->Density$default()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/unit/DpKt;->Density$default()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/unit/DpKt;->Density()Landroidx/compose/ui/unit/Density;\nPLandroidx/compose/ui/unit/DpKt;->Density()Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/unit/DpKt;->Density(Landroid/content/Context;)Landroidx/compose/ui/unit/Density;\nHPLandroidx/compose/ui/unit/DpKt;->Density(Landroid/content/Context;)Landroidx/compose/ui/unit/Density;\nHSPLandroidx/compose/ui/unit/DpKt;->DpOffset-YgX7TsA(FF)J\nPLandroidx/compose/ui/unit/DpKt;->DpOffset-YgX7TsA(FF)J\nHSPLandroidx/compose/ui/unit/DpKt;->DpSize-YgX7TsA(FF)J\nHPLandroidx/compose/ui/unit/DpKt;->DpSize-YgX7TsA(FF)J\nHSPLandroidx/compose/ui/unit/DpKt;->IntOffset(II)J\nHPLandroidx/compose/ui/unit/DpKt;->IntOffset(II)J\nHSPLandroidx/compose/ui/unit/DpKt;->IntSize(II)J\nPLandroidx/compose/ui/unit/DpKt;->IntSize(II)J\nHSPLandroidx/compose/ui/unit/DpKt;->constrain-4WqzIAM(JJ)J\nHPLandroidx/compose/ui/unit/DpKt;->constrain-4WqzIAM(JJ)J\nHSPLandroidx/compose/ui/unit/DpKt;->constrain-N9IONVI(JJ)J\nHPLandroidx/compose/ui/unit/DpKt;->constrain-N9IONVI(JJ)J\nHSPLandroidx/compose/ui/unit/DpKt;->constrainHeight-K40F9xA(IJ)I\nHPLandroidx/compose/ui/unit/DpKt;->constrainHeight-K40F9xA(IJ)I\nHSPLandroidx/compose/ui/unit/DpKt;->constrainWidth-K40F9xA(IJ)I\nHPLandroidx/compose/ui/unit/DpKt;->constrainWidth-K40F9xA(IJ)I\nHSPLandroidx/compose/ui/unit/DpKt;->getSp(I)J\nHPLandroidx/compose/ui/unit/DpKt;->getSp(I)J\nHSPLandroidx/compose/ui/unit/DpKt;->isUnspecified--R2X_6o(J)Z\nHPLandroidx/compose/ui/unit/DpKt;->isUnspecified--R2X_6o(J)Z\nHSPLandroidx/compose/ui/unit/DpKt;->offset-NN6Ew-U(JII)J\nHPLandroidx/compose/ui/unit/DpKt;->offset-NN6Ew-U(JII)J\nHSPLandroidx/compose/ui/unit/DpKt;->pack(JF)J\nHPLandroidx/compose/ui/unit/DpKt;->pack(JF)J\nHSPLandroidx/compose/ui/unit/DpKt;->toSize-ozmzZPI(J)J\nHPLandroidx/compose/ui/unit/DpKt;->toSize-ozmzZPI(J)J\nLandroidx/compose/ui/unit/DpOffset;\nHSPLandroidx/compose/ui/unit/DpOffset;-><clinit>()V\nPLandroidx/compose/ui/unit/DpOffset;-><clinit>()V\nLandroidx/compose/ui/unit/DpSize;\nHSPLandroidx/compose/ui/unit/DpSize;-><clinit>()V\nPLandroidx/compose/ui/unit/DpSize;-><clinit>()V\nHSPLandroidx/compose/ui/unit/DpSize;->access$getUnspecified$cp()J\nPLandroidx/compose/ui/unit/DpSize;->access$getUnspecified$cp()J\nHSPLandroidx/compose/ui/unit/DpSize;->getHeight-D9Ej5fM(J)F\nHPLandroidx/compose/ui/unit/DpSize;->getHeight-D9Ej5fM(J)F\nHSPLandroidx/compose/ui/unit/DpSize;->getWidth-D9Ej5fM(J)F\nHPLandroidx/compose/ui/unit/DpSize;->getWidth-D9Ej5fM(J)F\nLandroidx/compose/ui/unit/IntOffset;\nHSPLandroidx/compose/ui/unit/IntOffset;-><clinit>()V\nPLandroidx/compose/ui/unit/IntOffset;-><clinit>()V\nHSPLandroidx/compose/ui/unit/IntOffset;-><init>(J)V\nHPLandroidx/compose/ui/unit/IntOffset;-><init>(J)V\nHSPLandroidx/compose/ui/unit/IntOffset;->access$getZero$cp()J\nHPLandroidx/compose/ui/unit/IntOffset;->access$getZero$cp()J\nHSPLandroidx/compose/ui/unit/IntOffset;->box-impl(J)Landroidx/compose/ui/unit/IntOffset;\nHPLandroidx/compose/ui/unit/IntOffset;->box-impl(J)Landroidx/compose/ui/unit/IntOffset;\nHPLandroidx/compose/ui/unit/IntOffset;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/unit/IntOffset;->equals-impl0(JJ)Z\nHPLandroidx/compose/ui/unit/IntOffset;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/unit/IntOffset;->getY-impl(J)I\nHPLandroidx/compose/ui/unit/IntOffset;->getY-impl(J)I\nHSPLandroidx/compose/ui/unit/IntOffset;->unbox-impl()J\nPLandroidx/compose/ui/unit/IntOffset;->unbox-impl()J\nLandroidx/compose/ui/unit/IntSize;\nHSPLandroidx/compose/ui/unit/IntSize;-><clinit>()V\nPLandroidx/compose/ui/unit/IntSize;-><clinit>()V\nHSPLandroidx/compose/ui/unit/IntSize;-><init>(J)V\nHPLandroidx/compose/ui/unit/IntSize;-><init>(J)V\nHSPLandroidx/compose/ui/unit/IntSize;->box-impl(J)Landroidx/compose/ui/unit/IntSize;\nHPLandroidx/compose/ui/unit/IntSize;->box-impl(J)Landroidx/compose/ui/unit/IntSize;\nHSPLandroidx/compose/ui/unit/IntSize;->equals(Ljava/lang/Object;)Z\nHPLandroidx/compose/ui/unit/IntSize;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/compose/ui/unit/IntSize;->equals-impl(JLjava/lang/Object;)Z\nPLandroidx/compose/ui/unit/IntSize;->equals-impl(JLjava/lang/Object;)Z\nHSPLandroidx/compose/ui/unit/IntSize;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/unit/IntSize;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/unit/IntSize;->getHeight-impl(J)I\nHPLandroidx/compose/ui/unit/IntSize;->getHeight-impl(J)I\nHSPLandroidx/compose/ui/unit/IntSize;->unbox-impl()J\nPLandroidx/compose/ui/unit/IntSize;->unbox-impl()J\nLandroidx/compose/ui/unit/LayoutDirection;\nHSPLandroidx/compose/ui/unit/LayoutDirection;-><clinit>()V\nPLandroidx/compose/ui/unit/LayoutDirection;-><clinit>()V\nHSPLandroidx/compose/ui/unit/LayoutDirection;-><init>(Ljava/lang/String;I)V\nPLandroidx/compose/ui/unit/LayoutDirection;-><init>(Ljava/lang/String;I)V\nLandroidx/compose/ui/unit/TextUnit;\nHSPLandroidx/compose/ui/unit/TextUnit;-><clinit>()V\nPLandroidx/compose/ui/unit/TextUnit;-><clinit>()V\nHSPLandroidx/compose/ui/unit/TextUnit;->access$getUnspecified$cp()J\nPLandroidx/compose/ui/unit/TextUnit;->access$getUnspecified$cp()J\nHSPLandroidx/compose/ui/unit/TextUnit;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/unit/TextUnit;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/unit/TextUnit;->getType-UIouoOA(J)J\nHPLandroidx/compose/ui/unit/TextUnit;->getType-UIouoOA(J)J\nHSPLandroidx/compose/ui/unit/TextUnit;->getValue-impl(J)F\nHPLandroidx/compose/ui/unit/TextUnit;->getValue-impl(J)F\nLandroidx/compose/ui/unit/TextUnitType;\nHSPLandroidx/compose/ui/unit/TextUnitType;-><init>(J)V\nPLandroidx/compose/ui/unit/TextUnitType;-><init>(J)V\nHSPLandroidx/compose/ui/unit/TextUnitType;->box-impl(J)Landroidx/compose/ui/unit/TextUnitType;\nPLandroidx/compose/ui/unit/TextUnitType;->box-impl(J)Landroidx/compose/ui/unit/TextUnitType;\nHSPLandroidx/compose/ui/unit/TextUnitType;->equals-impl0(JJ)Z\nPLandroidx/compose/ui/unit/TextUnitType;->equals-impl0(JJ)Z\nHSPLandroidx/compose/ui/unit/TextUnitType;->unbox-impl()J\nPLandroidx/compose/ui/unit/TextUnitType;->unbox-impl()J\nLandroidx/compose/ui/viewinterop/AndroidViewHolder;\nLandroidx/compose/ui/window/DialogWindowProvider;\nLandroidx/compose/ui/window/PopupPositionProvider;\nLandroidx/compose/ui/window/PopupProperties;\nHSPLandroidx/compose/ui/window/PopupProperties;-><init>(ZZI)V\nPLandroidx/compose/ui/window/PopupProperties;-><init>(ZZI)V\nPLandroidx/concurrent/futures/AbstractResolvableFuture;-><clinit>()V\nPLandroidx/concurrent/futures/AbstractResolvableFuture;-><init>()V\nPLandroidx/concurrent/futures/AbstractResolvableFuture;->complete(Landroidx/concurrent/futures/AbstractResolvableFuture;)V\nPLandroidx/concurrent/futures/AbstractResolvableFuture;->set(Ljava/lang/Object;)Z\nPLandroidx/concurrent/futures/AbstractResolvableFuture$AtomicHelper;-><init>()V\nPLandroidx/concurrent/futures/AbstractResolvableFuture$Listener;-><clinit>()V\nPLandroidx/concurrent/futures/AbstractResolvableFuture$Listener;-><init>(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V\nPLandroidx/concurrent/futures/AbstractResolvableFuture$SafeAtomicHelper;-><init>(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;)V\nPLandroidx/concurrent/futures/AbstractResolvableFuture$SafeAtomicHelper;->casListeners(Landroidx/concurrent/futures/AbstractResolvableFuture;Landroidx/concurrent/futures/AbstractResolvableFuture$Listener;Landroidx/concurrent/futures/AbstractResolvableFuture$Listener;)Z\nPLandroidx/concurrent/futures/AbstractResolvableFuture$SafeAtomicHelper;->casValue(Landroidx/concurrent/futures/AbstractResolvableFuture;Ljava/lang/Object;Ljava/lang/Object;)Z\nPLandroidx/concurrent/futures/AbstractResolvableFuture$SafeAtomicHelper;->casWaiters(Landroidx/concurrent/futures/AbstractResolvableFuture;Landroidx/concurrent/futures/AbstractResolvableFuture$Waiter;Landroidx/concurrent/futures/AbstractResolvableFuture$Waiter;)Z\nPLandroidx/concurrent/futures/AbstractResolvableFuture$Waiter;-><clinit>()V\nPLandroidx/concurrent/futures/AbstractResolvableFuture$Waiter;-><init>(I)V\nPLandroidx/concurrent/futures/ResolvableFuture;-><init>()V\nPLandroidx/concurrent/futures/ResolvableFuture;->create()Landroidx/concurrent/futures/ResolvableFuture;\nPLandroidx/concurrent/futures/ResolvableFuture;->set(Ljava/lang/Object;)Z\nLandroidx/core/app/ActivityCompat$RequestPermissionsRequestCodeValidator;\nLandroidx/core/app/ComponentActivity;\nHSPLandroidx/core/app/ComponentActivity;-><init>()V\nPLandroidx/core/app/ComponentActivity;-><init>()V\nHSPLandroidx/core/app/ComponentActivity;->onCreate(Landroid/os/Bundle;)V\nPLandroidx/core/app/ComponentActivity;->onCreate(Landroid/os/Bundle;)V\nPLandroidx/core/app/ComponentActivity;->onSaveInstanceState(Landroid/os/Bundle;)V\nLandroidx/core/app/CoreComponentFactory;\nHSPLandroidx/core/app/CoreComponentFactory;-><init>()V\nPLandroidx/core/app/CoreComponentFactory;-><init>()V\nHSPLandroidx/core/app/CoreComponentFactory;->instantiateActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;\nPLandroidx/core/app/CoreComponentFactory;->instantiateActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;\nHSPLandroidx/core/app/CoreComponentFactory;->instantiateApplication(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/app/Application;\nPLandroidx/core/app/CoreComponentFactory;->instantiateApplication(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/app/Application;\nHSPLandroidx/core/app/CoreComponentFactory;->instantiateProvider(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/content/ContentProvider;\nPLandroidx/core/app/CoreComponentFactory;->instantiateProvider(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/content/ContentProvider;\nHSPLandroidx/core/app/CoreComponentFactory;->instantiateReceiver(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/content/BroadcastReceiver;\nPLandroidx/core/app/CoreComponentFactory;->instantiateReceiver(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/content/BroadcastReceiver;\nLandroidx/core/app/NavUtils;\nHSPLandroidx/core/app/NavUtils;->getParentActivityName(Landroid/content/Context;Landroid/content/ComponentName;)Ljava/lang/String;\nPLandroidx/core/app/NavUtils;->getParentActivityName(Landroid/content/Context;Landroid/content/ComponentName;)Ljava/lang/String;\nLandroidx/core/app/NotificationChannelCompat;\nHSPLandroidx/core/app/NotificationChannelCompat;-><init>(Ljava/lang/String;I)V\nPLandroidx/core/app/NotificationChannelCompat;-><init>(Ljava/lang/String;I)V\nLandroidx/core/app/NotificationChannelCompat$Api26Impl;\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->createNotificationChannel(Ljava/lang/String;Ljava/lang/CharSequence;I)Landroid/app/NotificationChannel;\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->createNotificationChannel(Ljava/lang/String;Ljava/lang/CharSequence;I)Landroid/app/NotificationChannel;\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->enableLights(Landroid/app/NotificationChannel;Z)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->enableLights(Landroid/app/NotificationChannel;Z)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->enableVibration(Landroid/app/NotificationChannel;Z)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->enableVibration(Landroid/app/NotificationChannel;Z)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setDescription(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setDescription(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setGroup(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setGroup(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setLightColor(Landroid/app/NotificationChannel;I)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setLightColor(Landroid/app/NotificationChannel;I)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setShowBadge(Landroid/app/NotificationChannel;Z)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setShowBadge(Landroid/app/NotificationChannel;Z)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setSound(Landroid/app/NotificationChannel;Landroid/net/Uri;Landroid/media/AudioAttributes;)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setSound(Landroid/app/NotificationChannel;Landroid/net/Uri;Landroid/media/AudioAttributes;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setVibrationPattern(Landroid/app/NotificationChannel;[J)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl;->setVibrationPattern(Landroid/app/NotificationChannel;[J)V\nLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m$1()V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m$1()V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m()V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m()V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;I)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;I)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;Z)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;Z)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;[J)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationChannel;[J)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationManager;Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/NotificationManager;Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/app/NotificationChannelGroup;\nPLandroidx/core/app/NotificationChannelCompat$Api26Impl$$ExternalSyntheticApiModelOutline1;->m(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/app/NotificationChannelGroup;\nLandroidx/core/app/NotificationChannelCompat$Builder;\nHSPLandroidx/core/app/NotificationChannelCompat$Builder;-><init>(Ljava/lang/String;I)V\nPLandroidx/core/app/NotificationChannelCompat$Builder;-><init>(Ljava/lang/String;I)V\nHSPLandroidx/core/app/NotificationChannelCompat$Builder;->build()Landroidx/core/app/NotificationChannelCompat;\nPLandroidx/core/app/NotificationChannelCompat$Builder;->build()Landroidx/core/app/NotificationChannelCompat;\nHSPLandroidx/core/app/NotificationChannelCompat$Builder;->setGroup(Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelCompat$Builder;->setGroup(Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Builder;->setName(Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelCompat$Builder;->setName(Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelCompat$Builder;->setShowBadge()V\nPLandroidx/core/app/NotificationChannelCompat$Builder;->setShowBadge()V\nHSPLandroidx/core/app/NotificationChannelCompat$Builder;->setSound()V\nPLandroidx/core/app/NotificationChannelCompat$Builder;->setSound()V\nLandroidx/core/app/NotificationChannelGroupCompat;\nHSPLandroidx/core/app/NotificationChannelGroupCompat;-><init>(Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelGroupCompat;-><init>(Ljava/lang/String;)V\nLandroidx/core/app/NotificationChannelGroupCompat$Api26Impl;\nHSPLandroidx/core/app/NotificationChannelGroupCompat$Api26Impl;->createNotificationChannelGroup(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/app/NotificationChannelGroup;\nPLandroidx/core/app/NotificationChannelGroupCompat$Api26Impl;->createNotificationChannelGroup(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/app/NotificationChannelGroup;\nLandroidx/core/app/NotificationChannelGroupCompat$Api28Impl;\nHSPLandroidx/core/app/NotificationChannelGroupCompat$Api28Impl;->setDescription(Landroid/app/NotificationChannelGroup;Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelGroupCompat$Api28Impl;->setDescription(Landroid/app/NotificationChannelGroup;Ljava/lang/String;)V\nLandroidx/core/app/NotificationChannelGroupCompat$Builder;\nHSPLandroidx/core/app/NotificationChannelGroupCompat$Builder;-><init>(Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelGroupCompat$Builder;-><init>(Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationChannelGroupCompat$Builder;->build()Landroidx/core/app/NotificationChannelGroupCompat;\nPLandroidx/core/app/NotificationChannelGroupCompat$Builder;->build()Landroidx/core/app/NotificationChannelGroupCompat;\nHSPLandroidx/core/app/NotificationChannelGroupCompat$Builder;->setName(Ljava/lang/String;)V\nPLandroidx/core/app/NotificationChannelGroupCompat$Builder;->setName(Ljava/lang/String;)V\nLandroidx/core/app/NotificationManagerCompat;\nHSPLandroidx/core/app/NotificationManagerCompat;-><clinit>()V\nPLandroidx/core/app/NotificationManagerCompat;-><clinit>()V\nHSPLandroidx/core/app/NotificationManagerCompat;-><init>(Landroid/content/Context;)V\nPLandroidx/core/app/NotificationManagerCompat;-><init>(Landroid/content/Context;)V\nHSPLandroidx/core/app/NotificationManagerCompat;->cancel(I)V\nPLandroidx/core/app/NotificationManagerCompat;->cancel(I)V\nHSPLandroidx/core/app/NotificationManagerCompat;->createNotificationChannelGroupsCompat(Ljava/util/List;)V\nPLandroidx/core/app/NotificationManagerCompat;->createNotificationChannelGroupsCompat(Ljava/util/List;)V\nHSPLandroidx/core/app/NotificationManagerCompat;->createNotificationChannelsCompat(Ljava/util/List;)V\nPLandroidx/core/app/NotificationManagerCompat;->createNotificationChannelsCompat(Ljava/util/List;)V\nHSPLandroidx/core/app/NotificationManagerCompat;->deleteNotificationChannel(Ljava/lang/String;)V\nPLandroidx/core/app/NotificationManagerCompat;->deleteNotificationChannel(Ljava/lang/String;)V\nHSPLandroidx/core/app/NotificationManagerCompat;->from(Landroid/content/Context;)Landroidx/core/app/NotificationManagerCompat;\nPLandroidx/core/app/NotificationManagerCompat;->from(Landroid/content/Context;)Landroidx/core/app/NotificationManagerCompat;\nLandroidx/core/app/NotificationManagerCompat$Api26Impl;\nHSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->createNotificationChannelGroups(Landroid/app/NotificationManager;Ljava/util/List;)V\nPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->createNotificationChannelGroups(Landroid/app/NotificationManager;Ljava/util/List;)V\nHSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->createNotificationChannels(Landroid/app/NotificationManager;Ljava/util/List;)V\nPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->createNotificationChannels(Landroid/app/NotificationManager;Ljava/util/List;)V\nHSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->deleteNotificationChannel(Landroid/app/NotificationManager;Ljava/lang/String;)V\nPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->deleteNotificationChannel(Landroid/app/NotificationManager;Ljava/lang/String;)V\nLandroidx/core/app/TaskStackBuilder$SupportParentable;\nLandroidx/core/content/ContextCompat;\nHSPLandroidx/core/content/ContextCompat;-><clinit>()V\nPLandroidx/core/content/ContextCompat;-><clinit>()V\nHSPLandroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nPLandroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nHSPLandroidx/core/content/ContextCompat;->getMainExecutor(Landroid/content/Context;)Ljava/util/concurrent/Executor;\nPLandroidx/core/content/ContextCompat;->getMainExecutor(Landroid/content/Context;)Ljava/util/concurrent/Executor;\nLandroidx/core/content/ContextCompat$Api21Impl;\nHSPLandroidx/core/content/ContextCompat$Api21Impl;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nPLandroidx/core/content/ContextCompat$Api21Impl;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;\nLandroidx/core/content/ContextCompat$Api28Impl;\nHSPLandroidx/core/content/ContextCompat$Api28Impl;->getMainExecutor(Landroid/content/Context;)Ljava/util/concurrent/Executor;\nPLandroidx/core/content/ContextCompat$Api28Impl;->getMainExecutor(Landroid/content/Context;)Ljava/util/concurrent/Executor;\nLandroidx/core/content/FileProvider;\nHSPLandroidx/core/content/FileProvider;-><clinit>()V\nPLandroidx/core/content/FileProvider;-><clinit>()V\nHSPLandroidx/core/content/FileProvider;-><init>()V\nPLandroidx/core/content/FileProvider;-><init>()V\nHSPLandroidx/core/content/FileProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V\nPLandroidx/core/content/FileProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V\nHSPLandroidx/core/content/FileProvider;->onCreate()Z\nPLandroidx/core/content/FileProvider;->onCreate()Z\nLandroidx/core/content/res/ComplexColorCompat;\nHSPLandroidx/core/content/res/ComplexColorCompat;-><init>(Landroid/graphics/Shader;Landroid/content/res/ColorStateList;I)V\nHPLandroidx/core/content/res/ComplexColorCompat;-><init>(Landroid/graphics/Shader;Landroid/content/res/ColorStateList;I)V\nHSPLandroidx/core/content/res/ComplexColorCompat;->from(I)Landroidx/core/content/res/ComplexColorCompat;\nPLandroidx/core/content/res/ComplexColorCompat;->from(I)Landroidx/core/content/res/ComplexColorCompat;\nHSPLandroidx/core/content/res/ComplexColorCompat;->getColor()I\nPLandroidx/core/content/res/ComplexColorCompat;->getColor()I\nHSPLandroidx/core/content/res/ComplexColorCompat;->getShader()Landroid/graphics/Shader;\nPLandroidx/core/content/res/ComplexColorCompat;->getShader()Landroid/graphics/Shader;\nHSPLandroidx/core/content/res/ComplexColorCompat;->isGradient()Z\nPLandroidx/core/content/res/ComplexColorCompat;->isGradient()Z\nHSPLandroidx/core/content/res/ComplexColorCompat;->willDraw()Z\nPLandroidx/core/content/res/ComplexColorCompat;->willDraw()Z\nLandroidx/core/content/res/TypedArrayKt;\nHSPLandroidx/core/content/res/TypedArrayKt;-><clinit>()V\nPLandroidx/core/content/res/TypedArrayKt;-><clinit>()V\nHSPLandroidx/core/content/res/TypedArrayKt;->getColorOrThrow(Landroid/content/res/TypedArray;I)I\nHPLandroidx/core/content/res/TypedArrayKt;->getColorOrThrow(Landroid/content/res/TypedArray;I)I\nHSPLandroidx/core/content/res/TypedArrayKt;->getNamedComplexColor(Landroid/content/res/TypedArray;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources$Theme;Ljava/lang/String;I)Landroidx/core/content/res/ComplexColorCompat;\nHPLandroidx/core/content/res/TypedArrayKt;->getNamedComplexColor(Landroid/content/res/TypedArray;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources$Theme;Ljava/lang/String;I)Landroidx/core/content/res/ComplexColorCompat;\nHSPLandroidx/core/content/res/TypedArrayKt;->getNamedFloat(Landroid/content/res/TypedArray;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;IF)F\nHPLandroidx/core/content/res/TypedArrayKt;->getNamedFloat(Landroid/content/res/TypedArray;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;IF)F\nHSPLandroidx/core/content/res/TypedArrayKt;->getNamedInt(Landroid/content/res/TypedArray;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;II)I\nHPLandroidx/core/content/res/TypedArrayKt;->getNamedInt(Landroid/content/res/TypedArray;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;II)I\nHSPLandroidx/core/content/res/TypedArrayKt;->getResourceIdOrThrow(Landroid/content/res/TypedArray;I)I\nHPLandroidx/core/content/res/TypedArrayKt;->getResourceIdOrThrow(Landroid/content/res/TypedArray;I)I\nHSPLandroidx/core/content/res/TypedArrayKt;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z\nHPLandroidx/core/content/res/TypedArrayKt;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z\nHSPLandroidx/core/content/res/TypedArrayKt;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;\nHPLandroidx/core/content/res/TypedArrayKt;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;\nLandroidx/core/graphics/Insets;\nHSPLandroidx/core/graphics/Insets;-><clinit>()V\nPLandroidx/core/graphics/Insets;-><clinit>()V\nHSPLandroidx/core/graphics/Insets;-><init>(IIII)V\nHPLandroidx/core/graphics/Insets;-><init>(IIII)V\nHSPLandroidx/core/graphics/Insets;->equals(Ljava/lang/Object;)Z\nHPLandroidx/core/graphics/Insets;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/core/graphics/Insets;->of(IIII)Landroidx/core/graphics/Insets;\nPLandroidx/core/graphics/Insets;->of(IIII)Landroidx/core/graphics/Insets;\nHSPLandroidx/core/graphics/Insets;->toCompatInsets(Landroid/graphics/Insets;)Landroidx/core/graphics/Insets;\nPLandroidx/core/graphics/Insets;->toCompatInsets(Landroid/graphics/Insets;)Landroidx/core/graphics/Insets;\nLandroidx/core/graphics/Insets$Api29Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/core/graphics/Insets$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$4()V\nPLandroidx/core/graphics/Insets$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$4()V\nHSPLandroidx/core/graphics/Insets$Api29Impl$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/WindowInsets$Builder;\nPLandroidx/core/graphics/Insets$Api29Impl$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/WindowInsets$Builder;\nLandroidx/core/graphics/PathParser;\nHSPLandroidx/core/graphics/PathParser;->copyOfRange([FI)[F\nHPLandroidx/core/graphics/PathParser;->copyOfRange([FI)[F\nHSPLandroidx/core/graphics/PathParser;->createNodesFromPathData(Ljava/lang/String;)[Landroidx/core/graphics/PathParser$PathDataNode;\nHPLandroidx/core/graphics/PathParser;->createNodesFromPathData(Ljava/lang/String;)[Landroidx/core/graphics/PathParser$PathDataNode;\nHSPLandroidx/core/graphics/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;\nHPLandroidx/core/graphics/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;\nLandroidx/core/graphics/PathParser$PathDataNode;\nHSPLandroidx/core/graphics/PathParser$PathDataNode;-><init>(C[F)V\nPLandroidx/core/graphics/PathParser$PathDataNode;-><init>(C[F)V\nHSPLandroidx/core/graphics/PathParser$PathDataNode;->nodesToPath([Landroidx/core/graphics/PathParser$PathDataNode;Landroid/graphics/Path;)V\nHPLandroidx/core/graphics/PathParser$PathDataNode;->nodesToPath([Landroidx/core/graphics/PathParser$PathDataNode;Landroid/graphics/Path;)V\nLandroidx/core/math/MathUtils;\nHSPLandroidx/core/math/MathUtils;->CornerRadius(FF)J\nHPLandroidx/core/math/MathUtils;->CornerRadius(FF)J\nHSPLandroidx/core/math/MathUtils;->Offset(FF)J\nHPLandroidx/core/math/MathUtils;->Offset(FF)J\nHSPLandroidx/core/math/MathUtils;->Rect-tz77jQw(JJ)Landroidx/compose/ui/geometry/Rect;\nHPLandroidx/core/math/MathUtils;->Rect-tz77jQw(JJ)Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/core/math/MathUtils;->RoundRect-gG7oq9Y(FFFFJ)Landroidx/compose/ui/geometry/RoundRect;\nPLandroidx/core/math/MathUtils;->RoundRect-gG7oq9Y(FFFFJ)Landroidx/compose/ui/geometry/RoundRect;\nHSPLandroidx/core/math/MathUtils;->Size(FF)J\nHPLandroidx/core/math/MathUtils;->Size(FF)J\nHSPLandroidx/core/math/MathUtils;->TextRange(II)J\nPLandroidx/core/math/MathUtils;->TextRange(II)J\nHSPLandroidx/core/math/MathUtils;->access$DistanceAndInLayer(FZ)J\nHPLandroidx/core/math/MathUtils;->access$DistanceAndInLayer(FZ)J\nHSPLandroidx/core/math/MathUtils;->access$calculateAlignmentAndPlaceChildAsNeeded(Landroidx/compose/ui/node/LookaheadCapablePlaceable;Landroidx/compose/ui/layout/AlignmentLine;)I\nHPLandroidx/core/math/MathUtils;->access$calculateAlignmentAndPlaceChildAsNeeded(Landroidx/compose/ui/node/LookaheadCapablePlaceable;Landroidx/compose/ui/layout/AlignmentLine;)I\nHSPLandroidx/core/math/MathUtils;->access$insertEntryAtIndex([Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;\nHPLandroidx/core/math/MathUtils;->access$insertEntryAtIndex([Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;\nHSPLandroidx/core/math/MathUtils;->access$lowestBitOf(J)I\nHPLandroidx/core/math/MathUtils;->access$lowestBitOf(J)I\nHSPLandroidx/core/math/MathUtils;->access$nextUntil-hw7D004(Landroidx/compose/ui/node/DelegatableNode;I)Landroidx/compose/ui/Modifier$Node;\nHPLandroidx/core/math/MathUtils;->access$nextUntil-hw7D004(Landroidx/compose/ui/node/DelegatableNode;I)Landroidx/compose/ui/Modifier$Node;\nPLandroidx/core/math/MathUtils;->access$removeEntryAtIndex([Ljava/lang/Object;I)[Ljava/lang/Object;\nHSPLandroidx/core/math/MathUtils;->adapt$default(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/WhitePoint;)Landroidx/compose/ui/graphics/colorspace/ColorSpace;\nPLandroidx/core/math/MathUtils;->adapt$default(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/WhitePoint;)Landroidx/compose/ui/graphics/colorspace/ColorSpace;\nHSPLandroidx/core/math/MathUtils;->binarySearch(I[I)I\nHPLandroidx/core/math/MathUtils;->binarySearch(I[I)I\nHSPLandroidx/core/math/MathUtils;->bitsForSlot(II)I\nPLandroidx/core/math/MathUtils;->bitsForSlot(II)I\nHSPLandroidx/core/math/MathUtils;->chromaticAdaptation([F[F[F)[F\nPLandroidx/core/math/MathUtils;->chromaticAdaptation([F[F[F)[F\nHSPLandroidx/core/math/MathUtils;->coerceIn-8ffj60Q(JI)J\nPLandroidx/core/math/MathUtils;->coerceIn-8ffj60Q(JI)J\nHSPLandroidx/core/math/MathUtils;->compare(Landroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/WhitePoint;)Z\nPLandroidx/core/math/MathUtils;->compare(Landroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/WhitePoint;)Z\nHSPLandroidx/core/math/MathUtils;->compareTo-S_HNhKs(JJ)I\nHPLandroidx/core/math/MathUtils;->compareTo-S_HNhKs(JJ)I\nHSPLandroidx/core/math/MathUtils;->composableLambda(Landroidx/compose/runtime/Composer;ILkotlin/jvm/internal/Lambda;)Landroidx/compose/runtime/internal/ComposableLambdaImpl;\nHPLandroidx/core/math/MathUtils;->composableLambda(Landroidx/compose/runtime/Composer;ILkotlin/jvm/internal/Lambda;)Landroidx/compose/runtime/internal/ComposableLambdaImpl;\nHSPLandroidx/core/math/MathUtils;->composableLambdaInstance(ZILkotlin/jvm/internal/Lambda;)Landroidx/compose/runtime/internal/ComposableLambdaImpl;\nHPLandroidx/core/math/MathUtils;->composableLambdaInstance(ZILkotlin/jvm/internal/Lambda;)Landroidx/compose/runtime/internal/ComposableLambdaImpl;\nHSPLandroidx/core/math/MathUtils;->currentValueOf(Landroidx/compose/ui/node/CompositionLocalConsumerModifierNode;Landroidx/compose/runtime/ProvidableCompositionLocal;)Ljava/lang/Object;\nHPLandroidx/core/math/MathUtils;->currentValueOf(Landroidx/compose/ui/node/CompositionLocalConsumerModifierNode;Landroidx/compose/runtime/ProvidableCompositionLocal;)Ljava/lang/Object;\nHSPLandroidx/core/math/MathUtils;->dataStoreFile(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;\nPLandroidx/core/math/MathUtils;->dataStoreFile(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;\nHSPLandroidx/core/math/MathUtils;->getEllipsizedLeftPadding(Landroid/text/Layout;ILandroid/graphics/Paint;)F\nHPLandroidx/core/math/MathUtils;->getEllipsizedLeftPadding(Landroid/text/Layout;ILandroid/graphics/Paint;)F\nHSPLandroidx/core/math/MathUtils;->getEllipsizedRightPadding(Landroid/text/Layout;ILandroid/graphics/Paint;)F\nHPLandroidx/core/math/MathUtils;->getEllipsizedRightPadding(Landroid/text/Layout;ILandroid/graphics/Paint;)F\nHSPLandroidx/core/math/MathUtils;->getGetApp()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/core/math/MathUtils;->getGetApp()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/core/math/MathUtils;->getLabel()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/core/math/MathUtils;->getLabel()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/core/math/MathUtils;->getMoreVert()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/core/math/MathUtils;->getMoreVert()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/core/math/MathUtils;->getQueryStats()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/core/math/MathUtils;->getQueryStats()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/core/math/MathUtils;->getSecurity()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/core/math/MathUtils;->getSettingsBackupRestore()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLandroidx/core/math/MathUtils;->getSettingsBackupRestore()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLandroidx/core/math/MathUtils;->hasFontAttributes(Landroidx/compose/ui/text/SpanStyle;)Z\nHPLandroidx/core/math/MathUtils;->hasFontAttributes(Landroidx/compose/ui/text/SpanStyle;)Z\nHSPLandroidx/core/math/MathUtils;->invalidateDraw(Landroidx/compose/ui/node/DrawModifierNode;)V\nHPLandroidx/core/math/MathUtils;->invalidateDraw(Landroidx/compose/ui/node/DrawModifierNode;)V\nHSPLandroidx/core/math/MathUtils;->invalidateMeasurement(Landroidx/compose/ui/node/LayoutModifierNode;)V\nPLandroidx/core/math/MathUtils;->invalidateMeasurement(Landroidx/compose/ui/node/LayoutModifierNode;)V\nHSPLandroidx/core/math/MathUtils;->invalidateSemantics(Landroidx/compose/ui/node/SemanticsModifierNode;)V\nHPLandroidx/core/math/MathUtils;->invalidateSemantics(Landroidx/compose/ui/node/SemanticsModifierNode;)V\nHSPLandroidx/core/math/MathUtils;->inverse3x3([F)[F\nPLandroidx/core/math/MathUtils;->inverse3x3([F)[F\nHSPLandroidx/core/math/MathUtils;->invertTo-JiSxe2E([F[F)Z\nHPLandroidx/core/math/MathUtils;->invertTo-JiSxe2E([F[F)Z\nHSPLandroidx/core/math/MathUtils;->isAtEnd(Lorg/xmlpull/v1/XmlPullParser;)Z\nHPLandroidx/core/math/MathUtils;->isAtEnd(Lorg/xmlpull/v1/XmlPullParser;)Z\nHSPLandroidx/core/math/MathUtils;->isFinite-k-4lQ0M(J)Z\nHPLandroidx/core/math/MathUtils;->isFinite-k-4lQ0M(J)Z\nHSPLandroidx/core/math/MathUtils;->isInLayer-impl(J)Z\nHPLandroidx/core/math/MathUtils;->isInLayer-impl(J)Z\nHSPLandroidx/core/math/MathUtils;->isInOutline(Landroidx/compose/ui/graphics/BrushKt;FF)Z\nHPLandroidx/core/math/MathUtils;->isInOutline(Landroidx/compose/ui/graphics/BrushKt;FF)Z\nHSPLandroidx/core/math/MathUtils;->isSimple(Landroidx/compose/ui/geometry/RoundRect;)Z\nHPLandroidx/core/math/MathUtils;->isSimple(Landroidx/compose/ui/geometry/RoundRect;)Z\nHSPLandroidx/core/math/MathUtils;->lerp(FFF)F\nHPLandroidx/core/math/MathUtils;->lerp(FFF)F\nHSPLandroidx/core/math/MathUtils;->loadVectorResourceInner(Landroid/content/res/Resources$Theme;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;\nHPLandroidx/core/math/MathUtils;->loadVectorResourceInner(Landroid/content/res/Resources$Theme;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroidx/compose/ui/res/ImageVectorCache$ImageVectorEntry;\nHSPLandroidx/core/math/MathUtils;->modifierLocalMapOf(Lkotlin/Pair;)Landroidx/compose/ui/modifier/SingleLocalMap;\nPLandroidx/core/math/MathUtils;->modifierLocalMapOf(Lkotlin/Pair;)Landroidx/compose/ui/modifier/SingleLocalMap;\nHSPLandroidx/core/math/MathUtils;->mul3x3([F[F)[F\nPLandroidx/core/math/MathUtils;->mul3x3([F[F)[F\nHSPLandroidx/core/math/MathUtils;->mul3x3Diag([F[F)[F\nPLandroidx/core/math/MathUtils;->mul3x3Diag([F[F)[F\nHSPLandroidx/core/math/MathUtils;->mul3x3Float3([F[F)V\nPLandroidx/core/math/MathUtils;->mul3x3Float3([F[F)V\nHSPLandroidx/core/math/MathUtils;->mul3x3Float3_0(FFF[F)F\nPLandroidx/core/math/MathUtils;->mul3x3Float3_0(FFF[F)F\nHSPLandroidx/core/math/MathUtils;->mul3x3Float3_1(FFF[F)F\nPLandroidx/core/math/MathUtils;->mul3x3Float3_1(FFF[F)F\nHSPLandroidx/core/math/MathUtils;->mul3x3Float3_2(FFF[F)F\nPLandroidx/core/math/MathUtils;->mul3x3Float3_2(FFF[F)F\nHSPLandroidx/core/math/MathUtils;->observeReads(Landroidx/compose/ui/Modifier$Node;Lkotlin/jvm/functions/Function0;)V\nHPLandroidx/core/math/MathUtils;->observeReads(Landroidx/compose/ui/Modifier$Node;Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/core/math/MathUtils;->painterResource(ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/painter/Painter;\nHPLandroidx/core/math/MathUtils;->painterResource(ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/painter/Painter;\nHSPLandroidx/core/math/MathUtils;->persistentCompositionLocalHashMapOf()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nPLandroidx/core/math/MathUtils;->persistentCompositionLocalHashMapOf()Landroidx/compose/runtime/internal/PersistentCompositionLocalHashMap;\nHSPLandroidx/core/math/MathUtils;->replacableWith(Landroidx/compose/runtime/RecomposeScope;Landroidx/compose/runtime/RecomposeScopeImpl;)Z\nHPLandroidx/core/math/MathUtils;->replacableWith(Landroidx/compose/runtime/RecomposeScope;Landroidx/compose/runtime/RecomposeScopeImpl;)Z\nHSPLandroidx/core/math/MathUtils;->resolveDefaults(Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/TextStyle;\nHPLandroidx/core/math/MathUtils;->resolveDefaults(Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/unit/LayoutDirection;)Landroidx/compose/ui/text/TextStyle;\nHSPLandroidx/core/math/MathUtils;->resources(Landroidx/compose/runtime/Composer;)Landroid/content/res/Resources;\nHPLandroidx/core/math/MathUtils;->resources(Landroidx/compose/runtime/Composer;)Landroid/content/res/Resources;\nHSPLandroidx/core/math/MathUtils;->seekToStartTag(Landroid/content/res/XmlResourceParser;)V\nHPLandroidx/core/math/MathUtils;->seekToStartTag(Landroid/content/res/XmlResourceParser;)V\nHSPLandroidx/core/math/MathUtils;->setInt-A6tL2VI(Landroidx/compose/runtime/changelist/Operations;II)V\nHPLandroidx/core/math/MathUtils;->setInt-A6tL2VI(Landroidx/compose/runtime/changelist/Operations;II)V\nHSPLandroidx/core/math/MathUtils;->setObject-DKhxnng(Landroidx/compose/runtime/changelist/Operations;ILjava/lang/Object;)V\nHPLandroidx/core/math/MathUtils;->setObject-DKhxnng(Landroidx/compose/runtime/changelist/Operations;ILjava/lang/Object;)V\nHSPLandroidx/core/math/MathUtils;->setPlaceholders(Landroid/text/Spannable;Ljava/util/List;Landroidx/compose/ui/unit/Density;)V\nHPLandroidx/core/math/MathUtils;->setPlaceholders(Landroid/text/Spannable;Ljava/util/List;Landroidx/compose/ui/unit/Density;)V\nHSPLandroidx/core/math/MathUtils;->stringResource(ILandroidx/compose/runtime/Composer;)Ljava/lang/String;\nHPLandroidx/core/math/MathUtils;->stringResource(ILandroidx/compose/runtime/Composer;)Ljava/lang/String;\nHSPLandroidx/core/math/MathUtils;->toRect-uvyYCjk(J)Landroidx/compose/ui/geometry/Rect;\nPLandroidx/core/math/MathUtils;->toRect-uvyYCjk(J)Landroidx/compose/ui/geometry/Rect;\nHSPLandroidx/core/math/MathUtils;->vectorResource(ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/vector/ImageVector;\nHPLandroidx/core/math/MathUtils;->vectorResource(ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/vector/ImageVector;\nLandroidx/core/os/BuildCompat;\nHSPLandroidx/core/os/BuildCompat;-><clinit>()V\nPLandroidx/core/os/BuildCompat;-><clinit>()V\nHSPLandroidx/core/os/BuildCompat;->isAtLeastT()Z\nPLandroidx/core/os/BuildCompat;->isAtLeastT()Z\nLandroidx/core/os/BuildCompat$Api30Impl;\nHSPLandroidx/core/os/BuildCompat$Api30Impl;-><clinit>()V\nPLandroidx/core/os/BuildCompat$Api30Impl;-><clinit>()V\nHSPLandroidx/core/os/BuildCompat$Api30Impl;-><init>()V\nPLandroidx/core/os/BuildCompat$Api30Impl;-><init>()V\nHSPLandroidx/core/os/BuildCompat$Api30Impl;->getExtensionVersion(I)I\nPLandroidx/core/os/BuildCompat$Api30Impl;->getExtensionVersion(I)I\nLandroidx/core/os/BundleKt;\nHSPLandroidx/core/os/BundleKt;->createAsync$1(Landroid/os/Looper;)Landroid/os/Handler;\nPLandroidx/core/os/BundleKt;->createAsync$1(Landroid/os/Looper;)Landroid/os/Handler;\nLandroidx/core/os/CancellationSignal$OnCancelListener;\nLandroidx/core/os/LocaleListCompat;\nHSPLandroidx/core/os/LocaleListCompat;-><clinit>()V\nPLandroidx/core/os/LocaleListCompat;-><clinit>()V\nHSPLandroidx/core/os/LocaleListCompat;-><init>(Landroidx/core/os/LocaleListPlatformWrapper;)V\nPLandroidx/core/os/LocaleListCompat;-><init>(Landroidx/core/os/LocaleListPlatformWrapper;)V\nHSPLandroidx/core/os/LocaleListCompat;->create([Ljava/util/Locale;)Landroidx/core/os/LocaleListCompat;\nPLandroidx/core/os/LocaleListCompat;->create([Ljava/util/Locale;)Landroidx/core/os/LocaleListCompat;\nHSPLandroidx/core/os/LocaleListCompat;->forLanguageTags(Ljava/lang/String;)Landroidx/core/os/LocaleListCompat;\nPLandroidx/core/os/LocaleListCompat;->forLanguageTags(Ljava/lang/String;)Landroidx/core/os/LocaleListCompat;\nHSPLandroidx/core/os/LocaleListCompat;->isEmpty()Z\nPLandroidx/core/os/LocaleListCompat;->isEmpty()Z\nHSPLandroidx/core/os/LocaleListCompat;->wrap(Landroid/os/LocaleList;)Landroidx/core/os/LocaleListCompat;\nPLandroidx/core/os/LocaleListCompat;->wrap(Landroid/os/LocaleList;)Landroidx/core/os/LocaleListCompat;\nLandroidx/core/os/LocaleListCompat$Api21Impl;\nHSPLandroidx/core/os/LocaleListCompat$Api21Impl;-><clinit>()V\nPLandroidx/core/os/LocaleListCompat$Api21Impl;-><clinit>()V\nHSPLandroidx/core/os/LocaleListCompat$Api21Impl;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;\nPLandroidx/core/os/LocaleListCompat$Api21Impl;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;\nLandroidx/core/os/LocaleListCompat$Api24Impl;\nHSPLandroidx/core/os/LocaleListCompat$Api24Impl;->createLocaleList([Ljava/util/Locale;)Landroid/os/LocaleList;\nPLandroidx/core/os/LocaleListCompat$Api24Impl;->createLocaleList([Ljava/util/Locale;)Landroid/os/LocaleList;\nLandroidx/core/os/LocaleListInterface;\nLandroidx/core/os/LocaleListPlatformWrapper;\nHSPLandroidx/core/os/LocaleListPlatformWrapper;-><init>(Ljava/lang/Object;)V\nPLandroidx/core/os/LocaleListPlatformWrapper;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/core/os/LocaleListPlatformWrapper;->isEmpty()Z\nPLandroidx/core/os/LocaleListPlatformWrapper;->isEmpty()Z\nLandroidx/core/os/TraceCompat;\nHSPLandroidx/core/os/TraceCompat;-><clinit>()V\nPLandroidx/core/os/TraceCompat;-><clinit>()V\nHSPLandroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V\nPLandroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V\nHSPLandroidx/core/os/TraceCompat;->endSection()V\nPLandroidx/core/os/TraceCompat;->endSection()V\nLandroidx/core/os/TraceCompat$Api18Impl;\nHSPLandroidx/core/os/TraceCompat$Api18Impl;->beginSection(Ljava/lang/String;)V\nPLandroidx/core/os/TraceCompat$Api18Impl;->beginSection(Ljava/lang/String;)V\nHSPLandroidx/core/os/TraceCompat$Api18Impl;->endSection()V\nPLandroidx/core/os/TraceCompat$Api18Impl;->endSection()V\nLandroidx/core/splashscreen/MaskedDrawable;\nHSPLandroidx/core/splashscreen/MaskedDrawable;-><init>(Landroid/graphics/drawable/Drawable;F)V\nPLandroidx/core/splashscreen/MaskedDrawable;-><init>(Landroid/graphics/drawable/Drawable;F)V\nHSPLandroidx/core/splashscreen/MaskedDrawable;->draw(Landroid/graphics/Canvas;)V\nPLandroidx/core/splashscreen/MaskedDrawable;->draw(Landroid/graphics/Canvas;)V\nHSPLandroidx/core/splashscreen/MaskedDrawable;->getOpacity()I\nHPLandroidx/core/splashscreen/MaskedDrawable;->getOpacity()I\nHSPLandroidx/core/splashscreen/MaskedDrawable;->onBoundsChange(Landroid/graphics/Rect;)V\nPLandroidx/core/splashscreen/MaskedDrawable;->onBoundsChange(Landroid/graphics/Rect;)V\nLandroidx/core/splashscreen/SplashScreen;\nHSPLandroidx/core/splashscreen/SplashScreen;-><init>(Landroid/app/Activity;)V\nPLandroidx/core/splashscreen/SplashScreen;-><init>(Landroid/app/Activity;)V\nHSPLandroidx/core/splashscreen/SplashScreen;->access$install(Landroidx/core/splashscreen/SplashScreen;)V\nPLandroidx/core/splashscreen/SplashScreen;->access$install(Landroidx/core/splashscreen/SplashScreen;)V\nHSPLandroidx/core/splashscreen/SplashScreen;->setKeepOnScreenCondition(Landroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;)V\nPLandroidx/core/splashscreen/SplashScreen;->setKeepOnScreenCondition(Landroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;)V\nHSPLandroidx/core/splashscreen/SplashScreen;->setOnExitAnimationListener(Landroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;)V\nPLandroidx/core/splashscreen/SplashScreen;->setOnExitAnimationListener(Landroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;)V\nLandroidx/core/splashscreen/SplashScreen$Impl;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;-><init>(Landroid/app/Activity;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl;-><init>(Landroid/app/Activity;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->access$getMSplashScreenViewProvider$p(Landroidx/core/splashscreen/SplashScreen$Impl;)Landroidx/core/splashscreen/SplashScreenViewProvider;\nPLandroidx/core/splashscreen/SplashScreen$Impl;->access$getMSplashScreenViewProvider$p(Landroidx/core/splashscreen/SplashScreen$Impl;)Landroidx/core/splashscreen/SplashScreenViewProvider;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->access$setMSplashScreenViewProvider$p(Landroidx/core/splashscreen/SplashScreen$Impl;Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl;->access$setMSplashScreenViewProvider$p(Landroidx/core/splashscreen/SplashScreen$Impl;Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->dispatchOnExitAnimation(Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl;->dispatchOnExitAnimation(Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->getSplashScreenWaitPredicate()Landroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;\nPLandroidx/core/splashscreen/SplashScreen$Impl;->getSplashScreenWaitPredicate()Landroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->install()V\nPLandroidx/core/splashscreen/SplashScreen$Impl;->install()V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->setKeepOnScreenCondition(Landroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl;->setKeepOnScreenCondition(Landroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->setOnExitAnimationListener(Landroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl;->setOnExitAnimationListener(Landroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl;->setPostSplashScreenTheme(Landroid/content/res/Resources$Theme;Landroid/util/TypedValue;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl;->setPostSplashScreenTheme(Landroid/content/res/Resources$Theme;Landroid/util/TypedValue;)V\nLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda0;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda0;-><init>(Landroidx/core/splashscreen/SplashScreenViewProvider;Landroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda0;-><init>(Landroidx/core/splashscreen/SplashScreenViewProvider;Landroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda0;->run()V\nPLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda0;->run()V\nLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda1;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda1;-><init>()V\nPLandroidx/core/splashscreen/SplashScreen$Impl$$ExternalSyntheticLambda1;-><init>()V\nLandroidx/core/splashscreen/SplashScreen$Impl$setKeepOnScreenCondition$1;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$setKeepOnScreenCondition$1;-><init>(Landroidx/core/splashscreen/SplashScreen$Impl;Landroid/view/View;I)V\nPLandroidx/core/splashscreen/SplashScreen$Impl$setKeepOnScreenCondition$1;-><init>(Landroidx/core/splashscreen/SplashScreen$Impl;Landroid/view/View;I)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$setKeepOnScreenCondition$1;->onPreDraw()Z\nHPLandroidx/core/splashscreen/SplashScreen$Impl$setKeepOnScreenCondition$1;->onPreDraw()Z\nLandroidx/core/splashscreen/SplashScreen$Impl$setOnExitAnimationListener$2;\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$setOnExitAnimationListener$2;-><init>(Landroidx/core/splashscreen/SplashScreen$Impl;Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nPLandroidx/core/splashscreen/SplashScreen$Impl$setOnExitAnimationListener$2;-><init>(Landroidx/core/splashscreen/SplashScreen$Impl;Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nHSPLandroidx/core/splashscreen/SplashScreen$Impl$setOnExitAnimationListener$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V\nPLandroidx/core/splashscreen/SplashScreen$Impl$setOnExitAnimationListener$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V\nLandroidx/core/splashscreen/SplashScreen$KeepOnScreenCondition;\nLandroidx/core/splashscreen/SplashScreen$OnExitAnimationListener;\nLandroidx/core/splashscreen/SplashScreenViewProvider;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider;-><init>(Landroid/app/Activity;)V\nPLandroidx/core/splashscreen/SplashScreenViewProvider;-><init>(Landroid/app/Activity;)V\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider;->getIconView()Landroid/view/View;\nPLandroidx/core/splashscreen/SplashScreenViewProvider;->getIconView()Landroid/view/View;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider;->getView()Landroid/view/ViewGroup;\nPLandroidx/core/splashscreen/SplashScreenViewProvider;->getView()Landroid/view/ViewGroup;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider;->remove()V\nPLandroidx/core/splashscreen/SplashScreenViewProvider;->remove()V\nLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;-><init>(Landroid/app/Activity;)V\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;-><init>(Landroid/app/Activity;)V\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->createSplashScreenView()V\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->createSplashScreenView()V\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->getActivity()Landroid/app/Activity;\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->getActivity()Landroid/app/Activity;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->getIconView()Landroid/view/View;\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->getIconView()Landroid/view/View;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->getSplashScreenView()Landroid/view/ViewGroup;\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->getSplashScreenView()Landroid/view/ViewGroup;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->remove()V\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;->remove()V\nLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl$_splashScreenView$2;\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl$_splashScreenView$2;-><init>(Landroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;)V\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl$_splashScreenView$2;-><init>(Landroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl;)V\nHSPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl$_splashScreenView$2;->invoke()Ljava/lang/Object;\nPLandroidx/core/splashscreen/SplashScreenViewProvider$ViewImpl$_splashScreenView$2;->invoke()Ljava/lang/Object;\nLandroidx/core/text/TextUtilsCompat;\nLandroidx/core/util/Consumer;\nLandroidx/core/util/DebugUtils;\nHSPLandroidx/core/util/DebugUtils;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nPLandroidx/core/util/DebugUtils;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nLandroidx/core/view/AccessibilityDelegateCompat;\nHSPLandroidx/core/view/AccessibilityDelegateCompat;-><clinit>()V\nPLandroidx/core/view/AccessibilityDelegateCompat;-><clinit>()V\nHSPLandroidx/core/view/AccessibilityDelegateCompat;-><init>()V\nPLandroidx/core/view/AccessibilityDelegateCompat;-><init>()V\nHSPLandroidx/core/view/AccessibilityDelegateCompat;-><init>(Landroid/view/View$AccessibilityDelegate;)V\nPLandroidx/core/view/AccessibilityDelegateCompat;-><init>(Landroid/view/View$AccessibilityDelegate;)V\nHSPLandroidx/core/view/AccessibilityDelegateCompat;->getBridge()Landroid/view/View$AccessibilityDelegate;\nPLandroidx/core/view/AccessibilityDelegateCompat;->getBridge()Landroid/view/View$AccessibilityDelegate;\nHSPLandroidx/core/view/AccessibilityDelegateCompat;->onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nPLandroidx/core/view/AccessibilityDelegateCompat;->onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nHSPLandroidx/core/view/AccessibilityDelegateCompat;->onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z\nPLandroidx/core/view/AccessibilityDelegateCompat;->onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z\nHSPLandroidx/core/view/AccessibilityDelegateCompat;->sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nPLandroidx/core/view/AccessibilityDelegateCompat;->sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;\nHSPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;-><init>(Landroidx/core/view/AccessibilityDelegateCompat;)V\nPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;-><init>(Landroidx/core/view/AccessibilityDelegateCompat;)V\nHSPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider;\nHPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider;\nHSPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nHSPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z\nPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z\nHSPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;->sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V\nLandroidx/core/view/ContentInfoCompat$Builder;\nHSPLandroidx/core/view/ContentInfoCompat$Builder;-><init>()V\nPLandroidx/core/view/ContentInfoCompat$Builder;-><init>()V\nHSPLandroidx/core/view/ContentInfoCompat$Builder;-><init>(Landroid/view/View;)V\nPLandroidx/core/view/ContentInfoCompat$Builder;-><init>(Landroid/view/View;)V\nHSPLandroidx/core/view/ContentInfoCompat$Builder;->build()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/ContentInfoCompat$Builder;->build()Landroidx/core/view/WindowInsetsCompat;\nLandroidx/core/view/ContentInfoCompat$Compat;\nLandroidx/core/view/DisplayCutoutCompat;\nHSPLandroidx/core/view/DisplayCutoutCompat;->wrap(Landroid/view/DisplayCutout;)Landroidx/core/view/DisplayCutoutCompat;\nPLandroidx/core/view/DisplayCutoutCompat;->wrap(Landroid/view/DisplayCutout;)Landroidx/core/view/DisplayCutoutCompat;\nLandroidx/core/view/DisplayCutoutCompat$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/core/view/DisplayCutoutCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannelGroup;Ljava/lang/String;)V\nPLandroidx/core/view/DisplayCutoutCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationChannelGroup;Ljava/lang/String;)V\nHSPLandroidx/core/view/DisplayCutoutCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/Context;)Ljava/util/concurrent/Executor;\nPLandroidx/core/view/DisplayCutoutCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/Context;)Ljava/util/concurrent/Executor;\nLandroidx/core/view/KeyEventDispatcher$Component;\nLandroidx/core/view/NestedScrollingParent2;\nLandroidx/core/view/NestedScrollingParent3;\nLandroidx/core/view/OnApplyWindowInsetsListener;\nLandroidx/core/view/OnReceiveContentViewBehavior;\nLandroidx/core/view/SoftwareKeyboardControllerCompat$Impl20;\nHSPLandroidx/core/view/SoftwareKeyboardControllerCompat$Impl20;-><init>(Landroid/view/View;)V\nPLandroidx/core/view/SoftwareKeyboardControllerCompat$Impl20;-><init>(Landroid/view/View;)V\nLandroidx/core/view/SoftwareKeyboardControllerCompat$Impl30;\nHSPLandroidx/core/view/SoftwareKeyboardControllerCompat$Impl30;-><init>(Landroid/view/View;)V\nPLandroidx/core/view/SoftwareKeyboardControllerCompat$Impl30;-><init>(Landroid/view/View;)V\nLandroidx/core/view/ViewCompat;\nHSPLandroidx/core/view/ViewCompat;-><clinit>()V\nPLandroidx/core/view/ViewCompat;-><clinit>()V\nHSPLandroidx/core/view/ViewCompat;->getContentCaptureSession(Landroid/view/View;)Landroidx/core/view/contentcapture/ContentCaptureSessionCompat;\nPLandroidx/core/view/ViewCompat;->getContentCaptureSession(Landroid/view/View;)Landroidx/core/view/contentcapture/ContentCaptureSessionCompat;\nHSPLandroidx/core/view/ViewCompat;->getParentForAccessibility(Landroid/view/View;)Landroid/view/ViewParent;\nPLandroidx/core/view/ViewCompat;->getParentForAccessibility(Landroid/view/View;)Landroid/view/ViewParent;\nHSPLandroidx/core/view/ViewCompat;->hasOnClickListeners(Landroid/view/View;)Z\nPLandroidx/core/view/ViewCompat;->hasOnClickListeners(Landroid/view/View;)Z\nHSPLandroidx/core/view/ViewCompat;->isLaidOut(Landroid/view/View;)Z\nPLandroidx/core/view/ViewCompat;->isLaidOut(Landroid/view/View;)Z\nHSPLandroidx/core/view/ViewCompat;->onApplyWindowInsets(Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;)Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/ViewCompat;->onApplyWindowInsets(Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;)Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/ViewCompat;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V\nPLandroidx/core/view/ViewCompat;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V\nHSPLandroidx/core/view/ViewCompat;->saveAttributeDataForStyleable(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;I)V\nPLandroidx/core/view/ViewCompat;->saveAttributeDataForStyleable(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;I)V\nHSPLandroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V\nPLandroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V\nHSPLandroidx/core/view/ViewCompat;->setImportantForContentCapture(Landroid/view/View;)V\nPLandroidx/core/view/ViewCompat;->setImportantForContentCapture(Landroid/view/View;)V\nHSPLandroidx/core/view/ViewCompat;->setOnApplyWindowInsetsListener(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V\nPLandroidx/core/view/ViewCompat;->setOnApplyWindowInsetsListener(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V\nHSPLandroidx/core/view/ViewCompat;->setWindowInsetsAnimationCallback(Landroid/view/View;Landroidx/core/view/WindowInsetsAnimationCompat$Callback;)V\nPLandroidx/core/view/ViewCompat;->setWindowInsetsAnimationCallback(Landroid/view/View;Landroidx/core/view/WindowInsetsAnimationCompat$Callback;)V\nLandroidx/core/view/ViewCompat$$ExternalSyntheticLambda0;\nHSPLandroidx/core/view/ViewCompat$$ExternalSyntheticLambda0;-><init>()V\nPLandroidx/core/view/ViewCompat$$ExternalSyntheticLambda0;-><init>()V\nLandroidx/core/view/ViewCompat$AccessibilityPaneVisibilityManager;\nHSPLandroidx/core/view/ViewCompat$AccessibilityPaneVisibilityManager;-><init>()V\nPLandroidx/core/view/ViewCompat$AccessibilityPaneVisibilityManager;-><init>()V\nLandroidx/core/view/ViewCompat$Api15Impl;\nHSPLandroidx/core/view/ViewCompat$Api15Impl;->hasOnClickListeners(Landroid/view/View;)Z\nPLandroidx/core/view/ViewCompat$Api15Impl;->hasOnClickListeners(Landroid/view/View;)Z\nLandroidx/core/view/ViewCompat$Api16Impl;\nHSPLandroidx/core/view/ViewCompat$Api16Impl;->getImportantForAccessibility(Landroid/view/View;)I\nPLandroidx/core/view/ViewCompat$Api16Impl;->getImportantForAccessibility(Landroid/view/View;)I\nHSPLandroidx/core/view/ViewCompat$Api16Impl;->getParentForAccessibility(Landroid/view/View;)Landroid/view/ViewParent;\nPLandroidx/core/view/ViewCompat$Api16Impl;->getParentForAccessibility(Landroid/view/View;)Landroid/view/ViewParent;\nHSPLandroidx/core/view/ViewCompat$Api16Impl;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V\nPLandroidx/core/view/ViewCompat$Api16Impl;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V\nHSPLandroidx/core/view/ViewCompat$Api16Impl;->setImportantForAccessibility(Landroid/view/View;I)V\nPLandroidx/core/view/ViewCompat$Api16Impl;->setImportantForAccessibility(Landroid/view/View;I)V\nLandroidx/core/view/ViewCompat$Api19Impl;\nHSPLandroidx/core/view/ViewCompat$Api19Impl;->isAttachedToWindow(Landroid/view/View;)Z\nPLandroidx/core/view/ViewCompat$Api19Impl;->isAttachedToWindow(Landroid/view/View;)Z\nHSPLandroidx/core/view/ViewCompat$Api19Impl;->isLaidOut(Landroid/view/View;)Z\nPLandroidx/core/view/ViewCompat$Api19Impl;->isLaidOut(Landroid/view/View;)Z\nLandroidx/core/view/ViewCompat$Api20Impl;\nHSPLandroidx/core/view/ViewCompat$Api20Impl;->onApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;\nPLandroidx/core/view/ViewCompat$Api20Impl;->onApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;\nLandroidx/core/view/ViewCompat$Api21Impl;\nHSPLandroidx/core/view/ViewCompat$Api21Impl;->setOnApplyWindowInsetsListener(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V\nPLandroidx/core/view/ViewCompat$Api21Impl;->setOnApplyWindowInsetsListener(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V\nLandroidx/core/view/ViewCompat$Api21Impl$1;\nHSPLandroidx/core/view/ViewCompat$Api21Impl$1;-><init>(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V\nPLandroidx/core/view/ViewCompat$Api21Impl$1;-><init>(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V\nHSPLandroidx/core/view/ViewCompat$Api21Impl$1;->onApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;\nPLandroidx/core/view/ViewCompat$Api21Impl$1;->onApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;\nLandroidx/core/view/ViewCompat$Api23Impl;\nHSPLandroidx/core/view/ViewCompat$Api23Impl;->getRootWindowInsets(Landroid/view/View;)Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/ViewCompat$Api23Impl;->getRootWindowInsets(Landroid/view/View;)Landroidx/core/view/WindowInsetsCompat;\nLandroidx/core/view/ViewCompat$Api26Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/core/view/ViewCompat$Api26Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/NotificationManager;Ljava/util/List;)V\nPLandroidx/core/view/ViewCompat$Api26Impl$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/NotificationManager;Ljava/util/List;)V\nHSPLandroidx/core/view/ViewCompat$Api26Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationManager;Ljava/util/List;)V\nPLandroidx/core/view/ViewCompat$Api26Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/NotificationManager;Ljava/util/List;)V\nLandroidx/core/view/ViewCompat$Api29Impl;\nHSPLandroidx/core/view/ViewCompat$Api29Impl;->getContentCaptureSession(Landroid/view/View;)Landroid/view/contentcapture/ContentCaptureSession;\nPLandroidx/core/view/ViewCompat$Api29Impl;->getContentCaptureSession(Landroid/view/View;)Landroid/view/contentcapture/ContentCaptureSession;\nHSPLandroidx/core/view/ViewCompat$Api29Impl;->saveAttributeDataForStyleable(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V\nPLandroidx/core/view/ViewCompat$Api29Impl;->saveAttributeDataForStyleable(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V\nLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$2()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$2()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$3()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m$3()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)Landroid/view/contentcapture/ContentCaptureSession;\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)Landroid/view/contentcapture/ContentCaptureSession;\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V\nHSPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets$Builder;)Landroid/view/WindowInsets;\nPLandroidx/core/view/ViewCompat$Api29Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets$Builder;)Landroid/view/WindowInsets;\nLandroidx/core/view/ViewCompat$Api30Impl;\nHSPLandroidx/core/view/ViewCompat$Api30Impl;->setImportantForContentCapture(Landroid/view/View;I)V\nPLandroidx/core/view/ViewCompat$Api30Impl;->setImportantForContentCapture(Landroid/view/View;I)V\nLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m()I\nPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m()I\nHSPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;I)V\nPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;I)V\nHSPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Landroid/view/WindowInsetsAnimation$Callback;)V\nPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Landroid/view/WindowInsetsAnimation$Callback;)V\nHSPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;Z)V\nPLandroidx/core/view/ViewCompat$Api30Impl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;Z)V\nLandroidx/core/view/ViewKt;\nHSPLandroidx/core/view/ViewKt;-><init>()V\nPLandroidx/core/view/ViewKt;-><init>()V\nPLandroidx/core/view/ViewKt;->getAncestors(Landroidx/compose/ui/platform/AbstractComposeView;)Lkotlin/sequences/Sequence;\nHSPLandroidx/core/view/ViewKt;->setDecorFitsSystemWindows(Landroid/view/Window;Z)V\nPLandroidx/core/view/ViewKt;->setDecorFitsSystemWindows(Landroid/view/Window;Z)V\nPLandroidx/core/view/ViewKt$ancestors$1;-><clinit>()V\nPLandroidx/core/view/ViewKt$ancestors$1;-><init>()V\nHPLandroidx/core/view/ViewKt$ancestors$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/core/view/ViewPropertyAnimatorListener;\nLandroidx/core/view/WindowCompat$Api30Impl;\nHSPLandroidx/core/view/WindowCompat$Api30Impl;->setDecorFitsSystemWindows(Landroid/view/Window;Z)V\nPLandroidx/core/view/WindowCompat$Api30Impl;->setDecorFitsSystemWindows(Landroid/view/Window;Z)V\nLandroidx/core/view/WindowInsetsAnimationCompat$Callback;\nHSPLandroidx/core/view/WindowInsetsAnimationCompat$Callback;-><init>(I)V\nPLandroidx/core/view/WindowInsetsAnimationCompat$Callback;-><init>(I)V\nHSPLandroidx/core/view/WindowInsetsAnimationCompat$Callback;->getDispatchMode()I\nPLandroidx/core/view/WindowInsetsAnimationCompat$Callback;->getDispatchMode()I\nLandroidx/core/view/WindowInsetsAnimationCompat$Impl30$ProxyCallback;\nHSPLandroidx/core/view/WindowInsetsAnimationCompat$Impl30$ProxyCallback;-><init>(Landroidx/core/view/WindowInsetsAnimationCompat$Callback;)V\nPLandroidx/core/view/WindowInsetsAnimationCompat$Impl30$ProxyCallback;-><init>(Landroidx/core/view/WindowInsetsAnimationCompat$Callback;)V\nLandroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/WindowInsetsCompat;-><clinit>()V\nPLandroidx/core/view/WindowInsetsCompat;-><clinit>()V\nHSPLandroidx/core/view/WindowInsetsCompat;-><init>(Landroid/view/WindowInsets;)V\nPLandroidx/core/view/WindowInsetsCompat;-><init>(Landroid/view/WindowInsets;)V\nHSPLandroidx/core/view/WindowInsetsCompat;-><init>(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/core/view/WindowInsetsCompat;-><init>(Landroidx/core/view/WindowInsetsCompat;)V\nHSPLandroidx/core/view/WindowInsetsCompat;->consumeDisplayCutout()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat;->consumeDisplayCutout()Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/WindowInsetsCompat;->consumeStableInsets()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat;->consumeStableInsets()Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/WindowInsetsCompat;->consumeSystemWindowInsets()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat;->consumeSystemWindowInsets()Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/WindowInsetsCompat;->copyRootViewBounds(Landroid/view/View;)V\nPLandroidx/core/view/WindowInsetsCompat;->copyRootViewBounds(Landroid/view/View;)V\nHSPLandroidx/core/view/WindowInsetsCompat;->getDisplayCutout()Landroidx/core/view/DisplayCutoutCompat;\nPLandroidx/core/view/WindowInsetsCompat;->getDisplayCutout()Landroidx/core/view/DisplayCutoutCompat;\nHSPLandroidx/core/view/WindowInsetsCompat;->getInsets(I)Landroidx/core/graphics/Insets;\nPLandroidx/core/view/WindowInsetsCompat;->getInsets(I)Landroidx/core/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat;->getInsetsIgnoringVisibility(I)Landroidx/core/graphics/Insets;\nPLandroidx/core/view/WindowInsetsCompat;->getInsetsIgnoringVisibility(I)Landroidx/core/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat;->getSystemWindowInsetTop()I\nPLandroidx/core/view/WindowInsetsCompat;->getSystemWindowInsetTop()I\nHSPLandroidx/core/view/WindowInsetsCompat;->isVisible(I)Z\nPLandroidx/core/view/WindowInsetsCompat;->isVisible(I)Z\nHSPLandroidx/core/view/WindowInsetsCompat;->setOverriddenInsets([Landroidx/core/graphics/Insets;)V\nPLandroidx/core/view/WindowInsetsCompat;->setOverriddenInsets([Landroidx/core/graphics/Insets;)V\nHSPLandroidx/core/view/WindowInsetsCompat;->setRootWindowInsets(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/core/view/WindowInsetsCompat;->setRootWindowInsets(Landroidx/core/view/WindowInsetsCompat;)V\nHSPLandroidx/core/view/WindowInsetsCompat;->toWindowInsets()Landroid/view/WindowInsets;\nPLandroidx/core/view/WindowInsetsCompat;->toWindowInsets()Landroid/view/WindowInsets;\nHSPLandroidx/core/view/WindowInsetsCompat;->toWindowInsetsCompat(Landroid/view/View;Landroid/view/WindowInsets;)Landroidx/core/view/WindowInsetsCompat;\nHPLandroidx/core/view/WindowInsetsCompat;->toWindowInsetsCompat(Landroid/view/View;Landroid/view/WindowInsets;)Landroidx/core/view/WindowInsetsCompat;\nLandroidx/core/view/WindowInsetsCompat$BuilderImpl;\nHSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;-><init>()V\nPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;-><init>()V\nHSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;-><init>(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;-><init>(Landroidx/core/view/WindowInsetsCompat;)V\nHSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;->applyInsetTypes()V\nPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;->applyInsetTypes()V\nLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;\nHSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;-><init>()V\nPLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;-><init>()V\nHSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;->build()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;->build()Landroidx/core/view/WindowInsetsCompat;\nLandroidx/core/view/WindowInsetsCompat$BuilderImpl30;\nHSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl30;-><init>()V\nPLandroidx/core/view/WindowInsetsCompat$BuilderImpl30;-><init>()V\nLandroidx/core/view/WindowInsetsCompat$Impl;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl;-><clinit>()V\nPLandroidx/core/view/WindowInsetsCompat$Impl;-><clinit>()V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl;-><init>(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl;-><init>(Landroidx/core/view/WindowInsetsCompat;)V\nLandroidx/core/view/WindowInsetsCompat$Impl20;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl20;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl20;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl20;->getSystemWindowInsets()Landroidx/core/graphics/Insets;\nPLandroidx/core/view/WindowInsetsCompat$Impl20;->getSystemWindowInsets()Landroidx/core/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl20;->setOverriddenInsets([Landroidx/core/graphics/Insets;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl20;->setOverriddenInsets([Landroidx/core/graphics/Insets;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl20;->setRootWindowInsets(Landroidx/core/view/WindowInsetsCompat;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl20;->setRootWindowInsets(Landroidx/core/view/WindowInsetsCompat;)V\nLandroidx/core/view/WindowInsetsCompat$Impl21;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl21;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl21;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl21;->consumeStableInsets()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat$Impl21;->consumeStableInsets()Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl21;->consumeSystemWindowInsets()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat$Impl21;->consumeSystemWindowInsets()Landroidx/core/view/WindowInsetsCompat;\nLandroidx/core/view/WindowInsetsCompat$Impl28;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl28;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl28;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl28;->consumeDisplayCutout()Landroidx/core/view/WindowInsetsCompat;\nPLandroidx/core/view/WindowInsetsCompat$Impl28;->consumeDisplayCutout()Landroidx/core/view/WindowInsetsCompat;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl28;->getDisplayCutout()Landroidx/core/view/DisplayCutoutCompat;\nPLandroidx/core/view/WindowInsetsCompat$Impl28;->getDisplayCutout()Landroidx/core/view/DisplayCutoutCompat;\nLandroidx/core/view/WindowInsetsCompat$Impl29;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl29;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl29;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nLandroidx/core/view/WindowInsetsCompat$Impl30;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30;-><clinit>()V\nPLandroidx/core/view/WindowInsetsCompat$Impl30;-><clinit>()V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl30;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30;->copyRootViewBounds(Landroid/view/View;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl30;->copyRootViewBounds(Landroid/view/View;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30;->getInsets(I)Landroidx/core/graphics/Insets;\nHPLandroidx/core/view/WindowInsetsCompat$Impl30;->getInsets(I)Landroidx/core/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30;->getInsetsIgnoringVisibility(I)Landroidx/core/graphics/Insets;\nPLandroidx/core/view/WindowInsetsCompat$Impl30;->getInsetsIgnoringVisibility(I)Landroidx/core/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30;->isVisible(I)Z\nHPLandroidx/core/view/WindowInsetsCompat$Impl30;->isVisible(I)Z\nLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1()I\nHPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/WindowInsets;I)Landroid/graphics/Insets;\nHPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/WindowInsets;I)Landroid/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/WindowInsetsController;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/WindowInsetsController;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$2()I\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$2()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$3()I\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$3()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/view/WindowInsetsController;)V\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/view/WindowInsetsController;)V\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$4()I\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$4()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$5()I\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$5()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$6()I\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m$6()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m()I\nHPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m()I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/WindowInsets;\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/WindowInsets;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;)Landroid/view/WindowInsetsController;\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;)Landroid/view/WindowInsetsController;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;I)Landroid/graphics/Insets;\nHPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;I)Landroid/graphics/Insets;\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;I)Z\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;I)Z\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsetsController;)I\nPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsetsController;)I\nHSPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/WindowInsetsCompat$Impl30$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V\nLandroidx/core/view/WindowInsetsCompat$TypeImpl30;\nHSPLandroidx/core/view/WindowInsetsCompat$TypeImpl30;->toPlatformType(I)I\nHPLandroidx/core/view/WindowInsetsCompat$TypeImpl30;->toPlatformType(I)I\nLandroidx/core/view/WindowInsetsControllerCompat;\nHSPLandroidx/core/view/WindowInsetsControllerCompat;-><init>(Landroid/view/View;Landroid/view/Window;)V\nPLandroidx/core/view/WindowInsetsControllerCompat;-><init>(Landroid/view/View;Landroid/view/Window;)V\nHSPLandroidx/core/view/WindowInsetsControllerCompat;->isAppearanceLightNavigationBars()Z\nPLandroidx/core/view/WindowInsetsControllerCompat;->isAppearanceLightNavigationBars()Z\nHSPLandroidx/core/view/WindowInsetsControllerCompat;->isAppearanceLightStatusBars()Z\nPLandroidx/core/view/WindowInsetsControllerCompat;->isAppearanceLightStatusBars()Z\nHSPLandroidx/core/view/WindowInsetsControllerCompat;->setAppearanceLightNavigationBars(Z)V\nPLandroidx/core/view/WindowInsetsControllerCompat;->setAppearanceLightNavigationBars(Z)V\nHSPLandroidx/core/view/WindowInsetsControllerCompat;->setAppearanceLightStatusBars(Z)V\nPLandroidx/core/view/WindowInsetsControllerCompat;->setAppearanceLightStatusBars(Z)V\nLandroidx/core/view/WindowInsetsControllerCompat$Impl30;\nHSPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;-><init>(Landroid/view/Window;Landroidx/core/view/ContentInfoCompat$Builder;)V\nPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;-><init>(Landroid/view/Window;Landroidx/core/view/ContentInfoCompat$Builder;)V\nHSPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->isAppearanceLightNavigationBars()Z\nPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->isAppearanceLightNavigationBars()Z\nHSPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->isAppearanceLightStatusBars()Z\nPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->isAppearanceLightStatusBars()Z\nHSPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->setAppearanceLightNavigationBars(Z)V\nPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->setAppearanceLightNavigationBars(Z)V\nHSPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->setAppearanceLightStatusBars(Z)V\nPLandroidx/core/view/WindowInsetsControllerCompat$Impl30;->setAppearanceLightStatusBars(Z)V\nLandroidx/core/view/accessibility/AccessibilityEventCompat;\nLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeInfo;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeInfo;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addAction(I)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addAction(I)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addAction(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addAction(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addChild(Landroid/view/View;I)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addChild(Landroid/view/View;I)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->extrasIntList(Ljava/lang/String;)Ljava/util/ArrayList;\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->extrasIntList(Ljava/lang/String;)Ljava/util/ArrayList;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->getMovementGranularities()I\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->getMovementGranularities()I\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->getText()Ljava/lang/CharSequence;\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->getText()Ljava/lang/CharSequence;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->isFocusable()Z\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->isFocusable()Z\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->isFocused()Z\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->isFocused()Z\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->obtain()Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->obtain()Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setAccessibilityFocused(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setAccessibilityFocused(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setBoundsInScreen(Landroid/graphics/Rect;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setBoundsInScreen(Landroid/graphics/Rect;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setCheckable(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setCheckable(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setClassName(Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setClassName(Ljava/lang/CharSequence;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setClickable(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setClickable(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setCollectionInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setCollectionInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setCollectionItemInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setCollectionItemInfo(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setContentDescription(Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setContentDescription(Ljava/lang/CharSequence;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setEditable(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setEditable(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setEnabled(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setEnabled(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setFocusable(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setFocusable(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setFocused(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setFocused(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setImportantForAccessibility()V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setImportantForAccessibility()V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setLongClickable(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setLongClickable(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setMovementGranularities(I)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setMovementGranularities(I)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setPackageName(Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setPackageName(Ljava/lang/CharSequence;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setPaneTitle(Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setPaneTitle(Ljava/lang/CharSequence;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setParent(Landroid/view/View;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setParent(Landroid/view/View;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setParent(Landroid/view/View;I)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setParent(Landroid/view/View;I)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setPassword(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setPassword(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setRoleDescription(Ljava/lang/String;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setRoleDescription(Ljava/lang/String;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setScreenReaderFocusable(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setScreenReaderFocusable(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setSelected(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setSelected(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setSource(Landroid/view/View;I)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setSource(Landroid/view/View;I)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setStateDescription(Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setStateDescription(Ljava/lang/CharSequence;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setText(Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setText(Ljava/lang/CharSequence;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setTextSelection(II)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setTextSelection(II)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setVisibleToUser(Z)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setVisibleToUser(Z)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->unwrap()Landroid/view/accessibility/AccessibilityNodeInfo;\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->unwrap()Landroid/view/accessibility/AccessibilityNodeInfo;\nLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><clinit>()V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><clinit>()V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(ILjava/lang/Class;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(ILjava/lang/Class;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(ILjava/lang/String;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(ILjava/lang/String;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(Ljava/lang/Object;ILjava/lang/String;Landroidx/core/view/accessibility/AccessibilityViewCommand;Ljava/lang/Class;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(Ljava/lang/Object;ILjava/lang/String;Landroidx/core/view/accessibility/AccessibilityViewCommand;Ljava/lang/Class;)V\nLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$Api19Impl;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$Api19Impl;->getExtras(Landroid/view/accessibility/AccessibilityNodeInfo;)Landroid/os/Bundle;\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$Api19Impl;->getExtras(Landroid/view/accessibility/AccessibilityNodeInfo;)Landroid/os/Bundle;\nLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$Api30Impl;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$Api30Impl;->setStateDescription(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V\nHPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$Api30Impl;->setStateDescription(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V\nLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;->obtain(IIIIZ)Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;->obtain(IIIIZ)Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;\nLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;-><init>(Ljava/lang/Object;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;->obtain(III)Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;\nPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;->obtain(III)Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$RangeInfoCompat;\nLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat;\nHSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeProvider;)V\nPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeProvider;)V\nHSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat;->getProvider()Ljava/lang/Object;\nPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat;->getProvider()Ljava/lang/Object;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$MoveAtGranularityArguments;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$MoveHtmlArguments;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$MoveWindowArguments;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$ScrollToPositionArguments;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$SetProgressArguments;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$SetSelectionArguments;\nLandroidx/core/view/accessibility/AccessibilityViewCommand$SetTextArguments;\nLandroidx/customview/poolingcontainer/PoolingContainer;\nHSPLandroidx/customview/poolingcontainer/PoolingContainer;->addPoolingContainerListener(Landroid/view/View;Landroidx/customview/poolingcontainer/PoolingContainerListener;)V\nPLandroidx/customview/poolingcontainer/PoolingContainer;->addPoolingContainerListener(Landroid/view/View;Landroidx/customview/poolingcontainer/PoolingContainerListener;)V\nHSPLandroidx/customview/poolingcontainer/PoolingContainer;->getPoolingContainerListenerHolder(Landroid/view/View;)Landroidx/customview/poolingcontainer/PoolingContainerListenerHolder;\nPLandroidx/customview/poolingcontainer/PoolingContainer;->getPoolingContainerListenerHolder(Landroid/view/View;)Landroidx/customview/poolingcontainer/PoolingContainerListenerHolder;\nLandroidx/customview/poolingcontainer/PoolingContainerListener;\nLandroidx/customview/poolingcontainer/PoolingContainerListenerHolder;\nHSPLandroidx/customview/poolingcontainer/PoolingContainerListenerHolder;-><init>()V\nPLandroidx/customview/poolingcontainer/PoolingContainerListenerHolder;-><init>()V\nHSPLandroidx/customview/poolingcontainer/PoolingContainerListenerHolder;->addListener(Landroidx/customview/poolingcontainer/PoolingContainerListener;)V\nPLandroidx/customview/poolingcontainer/PoolingContainerListenerHolder;->addListener(Landroidx/customview/poolingcontainer/PoolingContainerListener;)V\nLandroidx/datastore/core/CorruptionException;\nLandroidx/datastore/core/CorruptionHandler;\nLandroidx/datastore/core/Data;\nHSPLandroidx/datastore/core/Data;-><init>(Ljava/lang/Object;I)V\nPLandroidx/datastore/core/Data;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/datastore/core/Data;->getValue()Ljava/lang/Object;\nPLandroidx/datastore/core/Data;->getValue()Ljava/lang/Object;\nLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;-><init>(Ljava/util/List;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;-><init>(Ljava/util/List;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$getInitializer$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$1;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore$Companion;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore$Companion;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;-><init>(Ljava/util/List;Ljava/util/List;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;-><init>(Ljava/util/List;Ljava/util/List;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/DataMigrationInitializer$Companion$runMigrations$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/core/DataStore;\nLandroidx/datastore/core/DataStoreFactory;\nHSPLandroidx/datastore/core/DataStoreFactory;-><clinit>()V\nPLandroidx/datastore/core/DataStoreFactory;-><clinit>()V\nHSPLandroidx/datastore/core/DataStoreFactory;->create(Landroidx/datastore/core/Serializer;Ljava/util/List;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function0;)Landroidx/datastore/core/SingleProcessDataStore;\nPLandroidx/datastore/core/DataStoreFactory;->create(Landroidx/datastore/core/Serializer;Ljava/util/List;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function0;)Landroidx/datastore/core/SingleProcessDataStore;\nLandroidx/datastore/core/Final;\nLandroidx/datastore/core/ReadException;\nLandroidx/datastore/core/Serializer;\nLandroidx/datastore/core/SimpleActor;\nHSPLandroidx/datastore/core/SimpleActor;-><init>(Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/datastore/core/SimpleActor;-><init>(Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V\nHSPLandroidx/datastore/core/SimpleActor;->access$getConsumeMessage$p(Landroidx/datastore/core/SimpleActor;)Lkotlin/jvm/functions/Function2;\nPLandroidx/datastore/core/SimpleActor;->access$getConsumeMessage$p(Landroidx/datastore/core/SimpleActor;)Lkotlin/jvm/functions/Function2;\nHSPLandroidx/datastore/core/SimpleActor;->access$getMessageQueue$p(Landroidx/datastore/core/SimpleActor;)Lkotlinx/coroutines/channels/Channel;\nPLandroidx/datastore/core/SimpleActor;->access$getMessageQueue$p(Landroidx/datastore/core/SimpleActor;)Lkotlinx/coroutines/channels/Channel;\nHSPLandroidx/datastore/core/SimpleActor;->access$getRemainingMessages$p(Landroidx/datastore/core/SimpleActor;)Ljava/util/concurrent/atomic/AtomicInteger;\nPLandroidx/datastore/core/SimpleActor;->access$getRemainingMessages$p(Landroidx/datastore/core/SimpleActor;)Ljava/util/concurrent/atomic/AtomicInteger;\nHSPLandroidx/datastore/core/SimpleActor;->access$getScope$p(Landroidx/datastore/core/SimpleActor;)Lkotlinx/coroutines/CoroutineScope;\nPLandroidx/datastore/core/SimpleActor;->access$getScope$p(Landroidx/datastore/core/SimpleActor;)Lkotlinx/coroutines/CoroutineScope;\nHSPLandroidx/datastore/core/SimpleActor;->offer(Ljava/lang/Object;)V\nPLandroidx/datastore/core/SimpleActor;->offer(Ljava/lang/Object;)V\nLandroidx/datastore/core/SimpleActor$1;\nHSPLandroidx/datastore/core/SimpleActor$1;-><init>(Lkotlin/jvm/functions/Function1;Landroidx/datastore/core/SimpleActor;Lkotlin/jvm/functions/Function2;)V\nPLandroidx/datastore/core/SimpleActor$1;-><init>(Lkotlin/jvm/functions/Function1;Landroidx/datastore/core/SimpleActor;Lkotlin/jvm/functions/Function2;)V\nLandroidx/datastore/core/SimpleActor$offer$2;\nHSPLandroidx/datastore/core/SimpleActor$offer$2;-><init>(Landroidx/datastore/core/SimpleActor;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SimpleActor$offer$2;-><init>(Landroidx/datastore/core/SimpleActor;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/datastore/core/SimpleActor$offer$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/datastore/core/SimpleActor$offer$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/datastore/core/SimpleActor$offer$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SimpleActor$offer$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore;\nHSPLandroidx/datastore/core/SingleProcessDataStore;-><clinit>()V\nPLandroidx/datastore/core/SingleProcessDataStore;-><clinit>()V\nHSPLandroidx/datastore/core/SingleProcessDataStore;-><init>(Lkotlin/jvm/functions/Function0;Landroidx/datastore/core/Serializer;Ljava/util/List;Lorg/acra/log/AndroidLogDelegate;Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/datastore/core/SingleProcessDataStore;-><init>(Lkotlin/jvm/functions/Function0;Landroidx/datastore/core/Serializer;Ljava/util/List;Lorg/acra/log/AndroidLogDelegate;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore;->access$getActiveFiles$cp()Ljava/util/LinkedHashSet;\nPLandroidx/datastore/core/SingleProcessDataStore;->access$getActiveFiles$cp()Ljava/util/LinkedHashSet;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->access$getActiveFilesLock$cp()Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore;->access$getActiveFilesLock$cp()Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->access$getActor$p(Landroidx/datastore/core/SingleProcessDataStore;)Landroidx/datastore/core/SimpleActor;\nPLandroidx/datastore/core/SingleProcessDataStore;->access$getActor$p(Landroidx/datastore/core/SingleProcessDataStore;)Landroidx/datastore/core/SimpleActor;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->access$getDownstreamFlow$p(Landroidx/datastore/core/SingleProcessDataStore;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLandroidx/datastore/core/SingleProcessDataStore;->access$getDownstreamFlow$p(Landroidx/datastore/core/SingleProcessDataStore;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->access$getProduceFile$p(Landroidx/datastore/core/SingleProcessDataStore;)Lkotlin/jvm/functions/Function0;\nPLandroidx/datastore/core/SingleProcessDataStore;->access$getProduceFile$p(Landroidx/datastore/core/SingleProcessDataStore;)Lkotlin/jvm/functions/Function0;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->access$handleRead(Landroidx/datastore/core/SingleProcessDataStore;Landroidx/datastore/core/SingleProcessDataStore$Message$Read;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore;->access$handleRead(Landroidx/datastore/core/SingleProcessDataStore;Landroidx/datastore/core/SingleProcessDataStore$Message$Read;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->getData()Lkotlinx/coroutines/flow/Flow;\nPLandroidx/datastore/core/SingleProcessDataStore;->getData()Lkotlinx/coroutines/flow/Flow;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->getFile()Ljava/io/File;\nPLandroidx/datastore/core/SingleProcessDataStore;->getFile()Ljava/io/File;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->readAndInit(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore;->readAndInit(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->readAndInitOrPropagateFailure(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore;->readAndInitOrPropagateFailure(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->readData(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore;->readData(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore;->readDataOrHandleCorruption(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore;->readDataOrHandleCorruption(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$Companion;\nHSPLandroidx/datastore/core/SingleProcessDataStore$Companion;-><init>()V\nPLandroidx/datastore/core/SingleProcessDataStore$Companion;-><init>()V\nHSPLandroidx/datastore/core/SingleProcessDataStore$Companion;->access$runMigrations(Landroidx/datastore/core/SingleProcessDataStore$Companion;Ljava/util/List;Landroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$Companion;->access$runMigrations(Landroidx/datastore/core/SingleProcessDataStore$Companion;Ljava/util/List;Landroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$Message;\nHSPLandroidx/datastore/core/SingleProcessDataStore$Message;-><init>()V\nPLandroidx/datastore/core/SingleProcessDataStore$Message;-><init>()V\nLandroidx/datastore/core/SingleProcessDataStore$Message$Read;\nHSPLandroidx/datastore/core/SingleProcessDataStore$Message$Read;-><init>(Landroidx/datastore/core/State;)V\nPLandroidx/datastore/core/SingleProcessDataStore$Message$Read;-><init>(Landroidx/datastore/core/State;)V\nLandroidx/datastore/core/SingleProcessDataStore$actor$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;)V\nPLandroidx/datastore/core/SingleProcessDataStore$actor$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;)V\nLandroidx/datastore/core/SingleProcessDataStore$actor$2;\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$2;-><clinit>()V\nPLandroidx/datastore/core/SingleProcessDataStore$actor$2;-><clinit>()V\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$2;-><init>()V\nPLandroidx/datastore/core/SingleProcessDataStore$actor$2;-><init>()V\nLandroidx/datastore/core/SingleProcessDataStore$actor$3;\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$3;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$actor$3;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/datastore/core/SingleProcessDataStore$actor$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$actor$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore$actor$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$actor$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$data$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$data$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$data$1$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;-><init>(Landroidx/datastore/core/State;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;-><init>(Landroidx/datastore/core/State;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;)V\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/SingleProcessDataStore$file$2;\nHSPLandroidx/datastore/core/SingleProcessDataStore$file$2;-><init>(Landroidx/datastore/core/SingleProcessDataStore;)V\nPLandroidx/datastore/core/SingleProcessDataStore$file$2;-><init>(Landroidx/datastore/core/SingleProcessDataStore;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$file$2;->invoke()Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$file$2;->invoke()Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$readAndInit$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;-><init>(Lkotlinx/coroutines/sync/Mutex;Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlin/jvm/internal/Ref$ObjectRef;Landroidx/datastore/core/SingleProcessDataStore;)V\nPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;-><init>(Lkotlinx/coroutines/sync/Mutex;Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlin/jvm/internal/Ref$ObjectRef;Landroidx/datastore/core/SingleProcessDataStore;)V\nHSPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;->updateData(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;->updateData(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1$updateData$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1$updateData$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1$updateData$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore$readAndInit$api$1;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/SingleProcessDataStore$readAndInitOrPropagateFailure$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$readAndInitOrPropagateFailure$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$readAndInitOrPropagateFailure$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/SingleProcessDataStore$readData$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$readData$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$readData$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/SingleProcessDataStore$readDataOrHandleCorruption$1;\nHSPLandroidx/datastore/core/SingleProcessDataStore$readDataOrHandleCorruption$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nPLandroidx/datastore/core/SingleProcessDataStore$readDataOrHandleCorruption$1;-><init>(Landroidx/datastore/core/SingleProcessDataStore;Lkotlin/coroutines/Continuation;)V\nLandroidx/datastore/core/State;\nHSPLandroidx/datastore/core/State;-><init>()V\nPLandroidx/datastore/core/State;-><init>()V\nLandroidx/datastore/core/UnInitialized;\nHSPLandroidx/datastore/core/UnInitialized;-><clinit>()V\nPLandroidx/datastore/core/UnInitialized;-><clinit>()V\nHSPLandroidx/datastore/core/UnInitialized;-><init>()V\nPLandroidx/datastore/core/UnInitialized;-><init>()V\nLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;\nHSPLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;-><clinit>()V\nPLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;-><clinit>()V\nHSPLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;-><init>()V\nPLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;-><init>()V\nHSPLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/datastore/preferences/PreferenceDataStoreDelegateKt$preferencesDataStore$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/datastore/preferences/PreferenceDataStoreFile;\nHSPLandroidx/datastore/preferences/PreferenceDataStoreFile;->preferencesDataStore$default()Landroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;\nPLandroidx/datastore/preferences/PreferenceDataStoreFile;->preferencesDataStore$default()Landroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;\nHSPLandroidx/datastore/preferences/PreferenceDataStoreFile;->preferencesDataStoreFile(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;\nPLandroidx/datastore/preferences/PreferenceDataStoreFile;->preferencesDataStoreFile(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;\nLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;\nHSPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;-><init>(Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CoroutineScope;)V\nPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;-><init>(Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;->access$getName$p(Landroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;)Ljava/lang/String;\nPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;->access$getName$p(Landroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;)Ljava/lang/String;\nHSPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;->getValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;\nPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;->getValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;\nLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate$getValue$1$1;\nHSPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate$getValue$1$1;-><init>(Landroid/content/Context;Landroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;)V\nPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate$getValue$1$1;-><init>(Landroid/content/Context;Landroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate;)V\nHSPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate$getValue$1$1;->invoke()Ljava/lang/Object;\nPLandroidx/datastore/preferences/PreferenceDataStoreSingletonDelegate$getValue$1$1;->invoke()Ljava/lang/Object;\nLandroidx/datastore/preferences/core/MutablePreferences;\nHSPLandroidx/datastore/preferences/core/MutablePreferences;-><init>(Ljava/util/Map;Z)V\nPLandroidx/datastore/preferences/core/MutablePreferences;-><init>(Ljava/util/Map;Z)V\nHSPLandroidx/datastore/preferences/core/MutablePreferences;-><init>(Z)V\nPLandroidx/datastore/preferences/core/MutablePreferences;-><init>(Z)V\nHSPLandroidx/datastore/preferences/core/MutablePreferences;->equals(Ljava/lang/Object;)Z\nPLandroidx/datastore/preferences/core/MutablePreferences;->equals(Ljava/lang/Object;)Z\nHSPLandroidx/datastore/preferences/core/MutablePreferences;->get(Landroidx/datastore/preferences/core/Preferences$Key;)Ljava/lang/Object;\nPLandroidx/datastore/preferences/core/MutablePreferences;->get(Landroidx/datastore/preferences/core/Preferences$Key;)Ljava/lang/Object;\nHSPLandroidx/datastore/preferences/core/MutablePreferences;->hashCode()I\nPLandroidx/datastore/preferences/core/MutablePreferences;->hashCode()I\nLandroidx/datastore/preferences/core/PreferenceDataStore;\nHSPLandroidx/datastore/preferences/core/PreferenceDataStore;-><init>(Landroidx/datastore/core/SingleProcessDataStore;)V\nPLandroidx/datastore/preferences/core/PreferenceDataStore;-><init>(Landroidx/datastore/core/SingleProcessDataStore;)V\nHSPLandroidx/datastore/preferences/core/PreferenceDataStore;->getData()Lkotlinx/coroutines/flow/Flow;\nPLandroidx/datastore/preferences/core/PreferenceDataStore;->getData()Lkotlinx/coroutines/flow/Flow;\nLandroidx/datastore/preferences/core/PreferenceDataStoreFactory$create$delegate$1;\nHSPLandroidx/datastore/preferences/core/PreferenceDataStoreFactory$create$delegate$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLandroidx/datastore/preferences/core/PreferenceDataStoreFactory$create$delegate$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLandroidx/datastore/preferences/core/PreferenceDataStoreFactory$create$delegate$1;->invoke()Ljava/lang/Object;\nPLandroidx/datastore/preferences/core/PreferenceDataStoreFactory$create$delegate$1;->invoke()Ljava/lang/Object;\nLandroidx/datastore/preferences/core/Preferences$Key;\nHSPLandroidx/datastore/preferences/core/Preferences$Key;-><init>(Ljava/lang/String;)V\nPLandroidx/datastore/preferences/core/Preferences$Key;-><init>(Ljava/lang/String;)V\nHSPLandroidx/datastore/preferences/core/Preferences$Key;->hashCode()I\nPLandroidx/datastore/preferences/core/Preferences$Key;->hashCode()I\nLandroidx/datastore/preferences/core/PreferencesSerializer;\nHSPLandroidx/datastore/preferences/core/PreferencesSerializer;-><clinit>()V\nPLandroidx/datastore/preferences/core/PreferencesSerializer;-><clinit>()V\nHSPLandroidx/datastore/preferences/core/PreferencesSerializer;-><init>()V\nPLandroidx/datastore/preferences/core/PreferencesSerializer;-><init>()V\nHSPLandroidx/datastore/preferences/core/PreferencesSerializer;->create(Ljava/util/List;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function0;)Landroidx/datastore/preferences/core/PreferenceDataStore;\nPLandroidx/datastore/preferences/core/PreferencesSerializer;->create(Ljava/util/List;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function0;)Landroidx/datastore/preferences/core/PreferenceDataStore;\nHSPLandroidx/datastore/preferences/core/PreferencesSerializer;->getDefaultValue()Ljava/lang/Object;\nPLandroidx/datastore/preferences/core/PreferencesSerializer;->getDefaultValue()Ljava/lang/Object;\nLandroidx/datastore/preferences/protobuf/InvalidProtocolBufferException;\nLandroidx/emoji2/text/ConcurrencyHelpers$$ExternalSyntheticLambda0;\nHSPLandroidx/emoji2/text/ConcurrencyHelpers$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V\nPLandroidx/emoji2/text/ConcurrencyHelpers$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V\nHSPLandroidx/emoji2/text/ConcurrencyHelpers$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;\nPLandroidx/emoji2/text/ConcurrencyHelpers$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;\nLandroidx/emoji2/text/ConcurrencyHelpers$Handler28Impl;\nHSPLandroidx/emoji2/text/ConcurrencyHelpers$Handler28Impl;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;\nPLandroidx/emoji2/text/ConcurrencyHelpers$Handler28Impl;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;\nLandroidx/emoji2/text/DefaultEmojiCompatConfig;\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig;-><init>()V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig;-><init>()V\nLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->$r8$lambda$2V1iWTiAwNxOBlVvz73bbuEdzIw(Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;Landroidx/emoji2/text/DefaultEmojiCompatConfig;Ljava/util/concurrent/ThreadPoolExecutor;)V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->$r8$lambda$2V1iWTiAwNxOBlVvz73bbuEdzIw(Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;Landroidx/emoji2/text/DefaultEmojiCompatConfig;Ljava/util/concurrent/ThreadPoolExecutor;)V\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;-><init>()V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;-><init>()V\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;-><init>(Landroid/content/Context;)V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;-><init>(Landroid/content/Context;)V\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->create(Landroid/content/Context;)Landroidx/emoji2/text/FontRequestEmojiCompatConfig;\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->create(Landroid/content/Context;)Landroidx/emoji2/text/FontRequestEmojiCompatConfig;\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->load(Landroidx/emoji2/text/DefaultEmojiCompatConfig;)V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->load(Landroidx/emoji2/text/DefaultEmojiCompatConfig;)V\nLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19;\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19;-><init>()V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19;-><init>()V\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19;->queryIntentContentProviders(Landroid/content/pm/PackageManager;Landroid/content/Intent;)Ljava/util/List;\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19;->queryIntentContentProviders(Landroid/content/pm/PackageManager;Landroid/content/Intent;)Ljava/util/List;\nLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API28;\nHSPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API28;-><init>()V\nPLandroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API28;-><init>()V\nLandroidx/emoji2/text/DefaultGlyphChecker;\nHSPLandroidx/emoji2/text/DefaultGlyphChecker;-><clinit>()V\nPLandroidx/emoji2/text/DefaultGlyphChecker;-><clinit>()V\nHSPLandroidx/emoji2/text/DefaultGlyphChecker;-><init>()V\nPLandroidx/emoji2/text/DefaultGlyphChecker;-><init>()V\nLandroidx/emoji2/text/EmojiCompat;\nHSPLandroidx/emoji2/text/EmojiCompat;-><clinit>()V\nPLandroidx/emoji2/text/EmojiCompat;-><clinit>()V\nHSPLandroidx/emoji2/text/EmojiCompat;-><init>(Landroidx/emoji2/text/EmojiCompat$Config;)V\nPLandroidx/emoji2/text/EmojiCompat;-><init>(Landroidx/emoji2/text/EmojiCompat$Config;)V\nHSPLandroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;\nPLandroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;\nHSPLandroidx/emoji2/text/EmojiCompat;->getLoadState()I\nPLandroidx/emoji2/text/EmojiCompat;->getLoadState()I\nHSPLandroidx/emoji2/text/EmojiCompat;->init(Landroidx/emoji2/text/EmojiCompat$Config;)V\nPLandroidx/emoji2/text/EmojiCompat;->init(Landroidx/emoji2/text/EmojiCompat$Config;)V\nHSPLandroidx/emoji2/text/EmojiCompat;->isConfigured()Z\nPLandroidx/emoji2/text/EmojiCompat;->isConfigured()Z\nHSPLandroidx/emoji2/text/EmojiCompat;->load()V\nPLandroidx/emoji2/text/EmojiCompat;->load()V\nHSPLandroidx/emoji2/text/EmojiCompat;->onMetadataLoadFailed(Ljava/lang/Throwable;)V\nPLandroidx/emoji2/text/EmojiCompat;->onMetadataLoadFailed(Ljava/lang/Throwable;)V\nHSPLandroidx/emoji2/text/EmojiCompat;->registerInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V\nPLandroidx/emoji2/text/EmojiCompat;->registerInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V\nLandroidx/emoji2/text/EmojiCompat$CompatInternal;\nHSPLandroidx/emoji2/text/EmojiCompat$CompatInternal;-><init>(Landroidx/emoji2/text/EmojiCompat;)V\nPLandroidx/emoji2/text/EmojiCompat$CompatInternal;-><init>(Landroidx/emoji2/text/EmojiCompat;)V\nLandroidx/emoji2/text/EmojiCompat$CompatInternal19;\nHSPLandroidx/emoji2/text/EmojiCompat$CompatInternal19;-><init>(Landroidx/emoji2/text/EmojiCompat;)V\nPLandroidx/emoji2/text/EmojiCompat$CompatInternal19;-><init>(Landroidx/emoji2/text/EmojiCompat;)V\nLandroidx/emoji2/text/EmojiCompat$CompatInternal19$1;\nHSPLandroidx/emoji2/text/EmojiCompat$CompatInternal19$1;-><init>(Landroidx/emoji2/text/EmojiCompat$CompatInternal19;)V\nPLandroidx/emoji2/text/EmojiCompat$CompatInternal19$1;-><init>(Landroidx/emoji2/text/EmojiCompat$CompatInternal19;)V\nHSPLandroidx/emoji2/text/EmojiCompat$CompatInternal19$1;->onFailed(Ljava/lang/Throwable;)V\nPLandroidx/emoji2/text/EmojiCompat$CompatInternal19$1;->onFailed(Ljava/lang/Throwable;)V\nLandroidx/emoji2/text/EmojiCompat$Config;\nHSPLandroidx/emoji2/text/EmojiCompat$Config;-><init>(Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;)V\nPLandroidx/emoji2/text/EmojiCompat$Config;-><init>(Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;)V\nLandroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;\nHSPLandroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;-><init>()V\nPLandroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;-><init>()V\nLandroidx/emoji2/text/EmojiCompat$GlyphChecker;\nLandroidx/emoji2/text/EmojiCompat$InitCallback;\nHSPLandroidx/emoji2/text/EmojiCompat$InitCallback;-><init>()V\nPLandroidx/emoji2/text/EmojiCompat$InitCallback;-><init>()V\nLandroidx/emoji2/text/EmojiCompat$ListenerDispatcher;\nHSPLandroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Ljava/util/List;ILjava/lang/Throwable;)V\nPLandroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Ljava/util/List;ILjava/lang/Throwable;)V\nHSPLandroidx/emoji2/text/EmojiCompat$ListenerDispatcher;->run()V\nPLandroidx/emoji2/text/EmojiCompat$ListenerDispatcher;->run()V\nLandroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;\nLandroidx/emoji2/text/EmojiCompatInitializer;\nHSPLandroidx/emoji2/text/EmojiCompatInitializer;-><init>()V\nPLandroidx/emoji2/text/EmojiCompatInitializer;-><init>()V\nHSPLandroidx/emoji2/text/EmojiCompatInitializer;->create(Landroid/content/Context;)Ljava/lang/Boolean;\nPLandroidx/emoji2/text/EmojiCompatInitializer;->create(Landroid/content/Context;)Ljava/lang/Boolean;\nHSPLandroidx/emoji2/text/EmojiCompatInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nPLandroidx/emoji2/text/EmojiCompatInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nHSPLandroidx/emoji2/text/EmojiCompatInitializer;->dependencies()Ljava/util/List;\nPLandroidx/emoji2/text/EmojiCompatInitializer;->dependencies()Ljava/util/List;\nLandroidx/emoji2/text/EmojiCompatInitializer$1;\nHSPLandroidx/emoji2/text/EmojiCompatInitializer$1;-><init>(Landroidx/emoji2/text/EmojiCompatInitializer;Landroidx/lifecycle/Lifecycle;)V\nPLandroidx/emoji2/text/EmojiCompatInitializer$1;-><init>(Landroidx/emoji2/text/EmojiCompatInitializer;Landroidx/lifecycle/Lifecycle;)V\nHSPLandroidx/emoji2/text/EmojiCompatInitializer$1;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/emoji2/text/EmojiCompatInitializer$1;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nLandroidx/emoji2/text/EmojiCompatInitializer$BackgroundDefaultLoader$$ExternalSyntheticLambda0;\nHSPLandroidx/emoji2/text/EmojiCompatInitializer$BackgroundDefaultLoader$$ExternalSyntheticLambda0;-><init>(Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;Landroidx/emoji2/text/DefaultEmojiCompatConfig;Ljava/util/concurrent/ThreadPoolExecutor;)V\nPLandroidx/emoji2/text/EmojiCompatInitializer$BackgroundDefaultLoader$$ExternalSyntheticLambda0;-><init>(Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;Landroidx/emoji2/text/DefaultEmojiCompatConfig;Ljava/util/concurrent/ThreadPoolExecutor;)V\nHSPLandroidx/emoji2/text/EmojiCompatInitializer$BackgroundDefaultLoader$$ExternalSyntheticLambda0;->run()V\nPLandroidx/emoji2/text/EmojiCompatInitializer$BackgroundDefaultLoader$$ExternalSyntheticLambda0;->run()V\nLandroidx/emoji2/text/EmojiCompatInitializer$LoadEmojiCompatRunnable;\nHSPLandroidx/emoji2/text/EmojiCompatInitializer$LoadEmojiCompatRunnable;-><init>()V\nPLandroidx/emoji2/text/EmojiCompatInitializer$LoadEmojiCompatRunnable;-><init>()V\nHSPLandroidx/emoji2/text/EmojiCompatInitializer$LoadEmojiCompatRunnable;->run()V\nPLandroidx/emoji2/text/EmojiCompatInitializer$LoadEmojiCompatRunnable;->run()V\nLandroidx/emoji2/text/EmojiProcessor$EmojiProcessCallback;\nLandroidx/emoji2/text/FontRequestEmojiCompatConfig;\nHSPLandroidx/emoji2/text/FontRequestEmojiCompatConfig;-><clinit>()V\nPLandroidx/emoji2/text/FontRequestEmojiCompatConfig;-><clinit>()V\nHSPLandroidx/emoji2/text/FontRequestEmojiCompatConfig;-><init>(Landroid/content/Context;)V\nPLandroidx/emoji2/text/FontRequestEmojiCompatConfig;-><init>(Landroid/content/Context;)V\nLandroidx/fragment/app/DialogFragment$1;\nHSPLandroidx/fragment/app/DialogFragment$1;-><init>(Ljava/lang/Object;I)V\nPLandroidx/fragment/app/DialogFragment$1;-><init>(Ljava/lang/Object;I)V\nLandroidx/fragment/app/FragmentActivity;\nHSPLandroidx/fragment/app/FragmentActivity;-><init>()V\nPLandroidx/fragment/app/FragmentActivity;-><init>()V\nPLandroidx/fragment/app/FragmentActivity;->getSupportFragmentManager()Landroidx/fragment/app/FragmentManager;\nPLandroidx/fragment/app/FragmentActivity;->markFragmentsCreated()V\nPLandroidx/fragment/app/FragmentActivity;->markState(Landroidx/fragment/app/FragmentManager;)Z\nHSPLandroidx/fragment/app/FragmentActivity;->onCreate(Landroid/os/Bundle;)V\nPLandroidx/fragment/app/FragmentActivity;->onCreate(Landroid/os/Bundle;)V\nHSPLandroidx/fragment/app/FragmentActivity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nHPLandroidx/fragment/app/FragmentActivity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nHSPLandroidx/fragment/app/FragmentActivity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nHPLandroidx/fragment/app/FragmentActivity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nPLandroidx/fragment/app/FragmentActivity;->onDestroy()V\nPLandroidx/fragment/app/FragmentActivity;->onPause()V\nHSPLandroidx/fragment/app/FragmentActivity;->onPostResume()V\nPLandroidx/fragment/app/FragmentActivity;->onPostResume()V\nHSPLandroidx/fragment/app/FragmentActivity;->onResume()V\nPLandroidx/fragment/app/FragmentActivity;->onResume()V\nHSPLandroidx/fragment/app/FragmentActivity;->onStart()V\nPLandroidx/fragment/app/FragmentActivity;->onStart()V\nHSPLandroidx/fragment/app/FragmentActivity;->onStateNotSaved()V\nPLandroidx/fragment/app/FragmentActivity;->onStateNotSaved()V\nPLandroidx/fragment/app/FragmentActivity;->onStop()V\nLandroidx/fragment/app/FragmentActivity$1;\nHSPLandroidx/fragment/app/FragmentActivity$1;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nPLandroidx/fragment/app/FragmentActivity$1;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nPLandroidx/fragment/app/FragmentActivity$1;->saveState()Landroid/os/Bundle;\nLandroidx/fragment/app/FragmentActivity$2;\nHSPLandroidx/fragment/app/FragmentActivity$2;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nPLandroidx/fragment/app/FragmentActivity$2;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nHSPLandroidx/fragment/app/FragmentActivity$2;->onContextAvailable(Landroid/content/Context;)V\nPLandroidx/fragment/app/FragmentActivity$2;->onContextAvailable(Landroid/content/Context;)V\nLandroidx/fragment/app/FragmentActivity$HostCallbacks;\nHSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nPLandroidx/fragment/app/FragmentActivity$HostCallbacks;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nHSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getActivityResultRegistry()Landroidx/activity/result/ActivityResultRegistry;\nPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getActivityResultRegistry()Landroidx/activity/result/ActivityResultRegistry;\nHSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nHSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;\nPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;\nHSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;\nPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;\nLandroidx/fragment/app/FragmentContainer;\nHSPLandroidx/fragment/app/FragmentContainer;-><init>()V\nPLandroidx/fragment/app/FragmentContainer;-><init>()V\nLandroidx/fragment/app/FragmentContainerView;\nLandroidx/fragment/app/FragmentController;\nHSPLandroidx/fragment/app/FragmentController;-><init>(Landroidx/fragment/app/FragmentHostCallback;)V\nPLandroidx/fragment/app/FragmentController;-><init>(Landroidx/fragment/app/FragmentHostCallback;)V\nHSPLandroidx/fragment/app/FragmentController;->attachHost()V\nPLandroidx/fragment/app/FragmentController;->attachHost()V\nHSPLandroidx/fragment/app/FragmentController;->createController(Landroidx/fragment/app/FragmentHostCallback;)Landroidx/fragment/app/FragmentController;\nPLandroidx/fragment/app/FragmentController;->createController(Landroidx/fragment/app/FragmentHostCallback;)Landroidx/fragment/app/FragmentController;\nHSPLandroidx/fragment/app/FragmentController;->dispatchActivityCreated()V\nPLandroidx/fragment/app/FragmentController;->dispatchActivityCreated()V\nHSPLandroidx/fragment/app/FragmentController;->dispatchCreate()V\nPLandroidx/fragment/app/FragmentController;->dispatchCreate()V\nPLandroidx/fragment/app/FragmentController;->dispatchDestroy()V\nPLandroidx/fragment/app/FragmentController;->dispatchPause()V\nHSPLandroidx/fragment/app/FragmentController;->dispatchResume()V\nPLandroidx/fragment/app/FragmentController;->dispatchResume()V\nHSPLandroidx/fragment/app/FragmentController;->dispatchStart()V\nPLandroidx/fragment/app/FragmentController;->dispatchStart()V\nPLandroidx/fragment/app/FragmentController;->dispatchStop()V\nHSPLandroidx/fragment/app/FragmentController;->execPendingActions()V\nPLandroidx/fragment/app/FragmentController;->execPendingActions()V\nPLandroidx/fragment/app/FragmentController;->getSupportFragmentManager()Landroidx/fragment/app/FragmentManager;\nHSPLandroidx/fragment/app/FragmentController;->noteStateNotSaved()V\nPLandroidx/fragment/app/FragmentController;->noteStateNotSaved()V\nHSPLandroidx/fragment/app/FragmentController;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nPLandroidx/fragment/app/FragmentController;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nPLandroidx/fragment/app/FragmentController;->saveAllState()Landroid/os/Parcelable;\nLandroidx/fragment/app/FragmentFactory;\nHSPLandroidx/fragment/app/FragmentFactory;-><clinit>()V\nPLandroidx/fragment/app/FragmentFactory;-><clinit>()V\nHSPLandroidx/fragment/app/FragmentFactory;-><init>()V\nPLandroidx/fragment/app/FragmentFactory;-><init>()V\nLandroidx/fragment/app/FragmentHostCallback;\nHSPLandroidx/fragment/app/FragmentHostCallback;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nPLandroidx/fragment/app/FragmentHostCallback;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V\nHSPLandroidx/fragment/app/FragmentHostCallback;->getHandler()Landroid/os/Handler;\nPLandroidx/fragment/app/FragmentHostCallback;->getHandler()Landroid/os/Handler;\nLandroidx/fragment/app/FragmentLayoutInflaterFactory;\nHSPLandroidx/fragment/app/FragmentLayoutInflaterFactory;-><init>(Landroidx/fragment/app/FragmentManager;)V\nPLandroidx/fragment/app/FragmentLayoutInflaterFactory;-><init>(Landroidx/fragment/app/FragmentManager;)V\nHSPLandroidx/fragment/app/FragmentLayoutInflaterFactory;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nHPLandroidx/fragment/app/FragmentLayoutInflaterFactory;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;\nLandroidx/fragment/app/FragmentLifecycleCallbacksDispatcher;\nHSPLandroidx/fragment/app/FragmentLifecycleCallbacksDispatcher;-><init>(Landroidx/fragment/app/FragmentManager;)V\nPLandroidx/fragment/app/FragmentLifecycleCallbacksDispatcher;-><init>(Landroidx/fragment/app/FragmentManager;)V\nLandroidx/fragment/app/FragmentManager;\nHSPLandroidx/fragment/app/FragmentManager;-><init>()V\nHPLandroidx/fragment/app/FragmentManager;-><init>()V\nHSPLandroidx/fragment/app/FragmentManager;->attachController(Landroidx/fragment/app/FragmentHostCallback;Landroidx/fragment/app/FragmentContainer;Landroidx/fragment/app/Fragment;)V\nPLandroidx/fragment/app/FragmentManager;->attachController(Landroidx/fragment/app/FragmentHostCallback;Landroidx/fragment/app/FragmentContainer;Landroidx/fragment/app/Fragment;)V\nHSPLandroidx/fragment/app/FragmentManager;->collectAllSpecialEffectsController()Ljava/util/HashSet;\nHPLandroidx/fragment/app/FragmentManager;->collectAllSpecialEffectsController()Ljava/util/HashSet;\nHSPLandroidx/fragment/app/FragmentManager;->dispatchActivityCreated()V\nPLandroidx/fragment/app/FragmentManager;->dispatchActivityCreated()V\nHSPLandroidx/fragment/app/FragmentManager;->dispatchCreate()V\nPLandroidx/fragment/app/FragmentManager;->dispatchCreate()V\nPLandroidx/fragment/app/FragmentManager;->dispatchDestroy()V\nPLandroidx/fragment/app/FragmentManager;->dispatchPause()V\nHSPLandroidx/fragment/app/FragmentManager;->dispatchResume()V\nPLandroidx/fragment/app/FragmentManager;->dispatchResume()V\nHSPLandroidx/fragment/app/FragmentManager;->dispatchStart()V\nPLandroidx/fragment/app/FragmentManager;->dispatchStart()V\nHSPLandroidx/fragment/app/FragmentManager;->dispatchStateChange(I)V\nHPLandroidx/fragment/app/FragmentManager;->dispatchStateChange(I)V\nPLandroidx/fragment/app/FragmentManager;->dispatchStop()V\nHSPLandroidx/fragment/app/FragmentManager;->doPendingDeferredStart()V\nPLandroidx/fragment/app/FragmentManager;->doPendingDeferredStart()V\nHSPLandroidx/fragment/app/FragmentManager;->ensureExecReady(Z)V\nHPLandroidx/fragment/app/FragmentManager;->ensureExecReady(Z)V\nHSPLandroidx/fragment/app/FragmentManager;->execPendingActions(Z)Z\nHPLandroidx/fragment/app/FragmentManager;->execPendingActions(Z)Z\nPLandroidx/fragment/app/FragmentManager;->forcePostponedTransactions()V\nHSPLandroidx/fragment/app/FragmentManager;->getBackStackEntryCount()I\nPLandroidx/fragment/app/FragmentManager;->getBackStackEntryCount()I\nPLandroidx/fragment/app/FragmentManager;->getFragments()Ljava/util/List;\nHSPLandroidx/fragment/app/FragmentManager;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2;\nPLandroidx/fragment/app/FragmentManager;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2;\nPLandroidx/fragment/app/FragmentManager;->isLoggingEnabled(I)Z\nHSPLandroidx/fragment/app/FragmentManager;->isStateSaved()Z\nPLandroidx/fragment/app/FragmentManager;->isStateSaved()Z\nHSPLandroidx/fragment/app/FragmentManager;->moveToState(IZ)V\nPLandroidx/fragment/app/FragmentManager;->moveToState(IZ)V\nHSPLandroidx/fragment/app/FragmentManager;->noteStateNotSaved()V\nPLandroidx/fragment/app/FragmentManager;->noteStateNotSaved()V\nPLandroidx/fragment/app/FragmentManager;->saveAllState()Landroid/os/Parcelable;\nHSPLandroidx/fragment/app/FragmentManager;->startPendingDeferredFragments()V\nHPLandroidx/fragment/app/FragmentManager;->startPendingDeferredFragments()V\nHSPLandroidx/fragment/app/FragmentManager;->updateOnBackPressedCallbackEnabled()V\nHPLandroidx/fragment/app/FragmentManager;->updateOnBackPressedCallbackEnabled()V\nLandroidx/fragment/app/FragmentManager$1;\nHSPLandroidx/fragment/app/FragmentManager$1;-><init>(Landroidx/fragment/app/FragmentManager;)V\nPLandroidx/fragment/app/FragmentManager$1;-><init>(Landroidx/fragment/app/FragmentManager;)V\nLandroidx/fragment/app/FragmentManager$2;\nHSPLandroidx/fragment/app/FragmentManager$2;-><init>(Landroidx/fragment/app/FragmentManager;)V\nPLandroidx/fragment/app/FragmentManager$2;-><init>(Landroidx/fragment/app/FragmentManager;)V\nLandroidx/fragment/app/FragmentManager$3;\nHSPLandroidx/fragment/app/FragmentManager$3;-><init>(Landroidx/fragment/app/FragmentManager;)V\nPLandroidx/fragment/app/FragmentManager$3;-><init>(Landroidx/fragment/app/FragmentManager;)V\nLandroidx/fragment/app/FragmentManager$9;\nHSPLandroidx/fragment/app/FragmentManager$9;-><init>(Landroidx/fragment/app/FragmentManager;I)V\nPLandroidx/fragment/app/FragmentManager$9;-><init>(Landroidx/fragment/app/FragmentManager;I)V\nLandroidx/fragment/app/FragmentManager$FragmentIntentSenderContract;\nHSPLandroidx/fragment/app/FragmentManager$FragmentIntentSenderContract;-><init>()V\nPLandroidx/fragment/app/FragmentManager$FragmentIntentSenderContract;-><init>()V\nLandroidx/fragment/app/FragmentManagerImpl;\nHSPLandroidx/fragment/app/FragmentManagerImpl;-><init>()V\nPLandroidx/fragment/app/FragmentManagerImpl;-><init>()V\nLandroidx/fragment/app/FragmentManagerViewModel;\nHSPLandroidx/fragment/app/FragmentManagerViewModel;-><clinit>()V\nPLandroidx/fragment/app/FragmentManagerViewModel;-><clinit>()V\nHSPLandroidx/fragment/app/FragmentManagerViewModel;-><init>(Z)V\nPLandroidx/fragment/app/FragmentManagerViewModel;-><init>(Z)V\nHSPLandroidx/fragment/app/FragmentManagerViewModel;->getInstance(Landroidx/lifecycle/ViewModelStore;)Landroidx/fragment/app/FragmentManagerViewModel;\nPLandroidx/fragment/app/FragmentManagerViewModel;->getInstance(Landroidx/lifecycle/ViewModelStore;)Landroidx/fragment/app/FragmentManagerViewModel;\nPLandroidx/fragment/app/FragmentManagerViewModel;->onCleared()V\nHSPLandroidx/fragment/app/FragmentManagerViewModel;->setIsStateSaved(Z)V\nPLandroidx/fragment/app/FragmentManagerViewModel;->setIsStateSaved(Z)V\nLandroidx/fragment/app/FragmentManagerViewModel$1;\nHSPLandroidx/fragment/app/FragmentManagerViewModel$1;-><init>()V\nPLandroidx/fragment/app/FragmentManagerViewModel$1;-><init>()V\nHSPLandroidx/fragment/app/FragmentManagerViewModel$1;->create(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;\nPLandroidx/fragment/app/FragmentManagerViewModel$1;->create(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;\nLandroidx/fragment/app/FragmentOnAttachListener;\nLandroidx/fragment/app/FragmentStore;\nHSPLandroidx/fragment/app/FragmentStore;-><init>()V\nPLandroidx/fragment/app/FragmentStore;-><init>()V\nHSPLandroidx/fragment/app/FragmentStore;->burpActive()V\nHPLandroidx/fragment/app/FragmentStore;->burpActive()V\nHSPLandroidx/fragment/app/FragmentStore;->dispatchStateChange(I)V\nHPLandroidx/fragment/app/FragmentStore;->dispatchStateChange(I)V\nHSPLandroidx/fragment/app/FragmentStore;->getActiveFragmentStateManagers()Ljava/util/ArrayList;\nHPLandroidx/fragment/app/FragmentStore;->getActiveFragmentStateManagers()Ljava/util/ArrayList;\nHSPLandroidx/fragment/app/FragmentStore;->getFragments()Ljava/util/List;\nHPLandroidx/fragment/app/FragmentStore;->getFragments()Ljava/util/List;\nHSPLandroidx/fragment/app/FragmentStore;->moveToExpectedState()V\nHPLandroidx/fragment/app/FragmentStore;->moveToExpectedState()V\nPLandroidx/fragment/app/FragmentStore;->saveActiveFragments()Ljava/util/ArrayList;\nHSPLandroidx/fragment/app/FragmentStore;->setNonConfig(Landroidx/fragment/app/FragmentManagerViewModel;)V\nPLandroidx/fragment/app/FragmentStore;->setNonConfig(Landroidx/fragment/app/FragmentManagerViewModel;)V\nLandroidx/glance/appwidget/GlanceAppWidget;\nHSPLandroidx/glance/appwidget/GlanceAppWidget;-><init>()V\nPLandroidx/glance/appwidget/GlanceAppWidget;-><init>()V\nLandroidx/glance/appwidget/GlanceAppWidgetKt;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetKt;->updateAll(Ltachiyomi/presentation/widget/UpdatesGridGlanceWidget;Landroid/content/Context;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetKt;->updateAll(Ltachiyomi/presentation/widget/UpdatesGridGlanceWidget;Landroid/content/Context;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/glance/appwidget/GlanceAppWidgetKt$updateAll$1;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetKt$updateAll$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLandroidx/glance/appwidget/GlanceAppWidgetKt$updateAll$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetKt$updateAll$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetKt$updateAll$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/glance/appwidget/GlanceAppWidgetManager;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager;-><clinit>()V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager;-><clinit>()V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager;-><init>(Landroid/content/Context;)V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager;-><init>(Landroid/content/Context;)V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager;->access$getOrCreateDataStore(Landroidx/glance/appwidget/GlanceAppWidgetManager;)Landroidx/datastore/core/DataStore;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager;->access$getOrCreateDataStore(Landroidx/glance/appwidget/GlanceAppWidgetManager;)Landroidx/datastore/core/DataStore;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager;->access$getState(Landroidx/glance/appwidget/GlanceAppWidgetManager;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager;->access$getState(Landroidx/glance/appwidget/GlanceAppWidgetManager;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager;->getGlanceIds(Ljava/lang/Class;Lkotlin/coroutines/Continuation;)Ljava/io/Serializable;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager;->getGlanceIds(Ljava/lang/Class;Lkotlin/coroutines/Continuation;)Ljava/io/Serializable;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager;->getState(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager;->getState(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLandroidx/glance/appwidget/GlanceAppWidgetManager$Companion;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$Companion;-><clinit>()V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$Companion;-><clinit>()V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$Companion;-><init>()V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$Companion;-><init>()V\nLandroidx/glance/appwidget/GlanceAppWidgetManager$State;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$State;-><init>()V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$State;-><init>()V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$State;-><init>(Ljava/util/Map;Ljava/util/Map;)V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$State;-><init>(Ljava/util/Map;Ljava/util/Map;)V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$State;->getProviderNameToReceivers()Ljava/util/Map;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$State;->getProviderNameToReceivers()Ljava/util/Map;\nLandroidx/glance/appwidget/GlanceAppWidgetManager$dataStore$2;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$dataStore$2;-><init>(Ljava/lang/Object;I)V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$dataStore$2;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$dataStore$2;->invoke()Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$dataStore$2;->invoke()Ljava/lang/Object;\nLandroidx/glance/appwidget/GlanceAppWidgetManager$getGlanceIds$1;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$getGlanceIds$1;-><init>(Landroidx/glance/appwidget/GlanceAppWidgetManager;Lkotlin/coroutines/Continuation;)V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$getGlanceIds$1;-><init>(Landroidx/glance/appwidget/GlanceAppWidgetManager;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$getGlanceIds$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$getGlanceIds$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/glance/appwidget/GlanceAppWidgetManager$getState$1;\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$getState$1;-><init>(Landroidx/glance/appwidget/GlanceAppWidgetManager;Lkotlin/coroutines/Continuation;)V\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$getState$1;-><init>(Landroidx/glance/appwidget/GlanceAppWidgetManager;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/glance/appwidget/GlanceAppWidgetManager$getState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/glance/appwidget/GlanceAppWidgetManager$getState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/glance/appwidget/SizeMode;\nLandroidx/glance/appwidget/SizeMode$Exact;\nHSPLandroidx/glance/appwidget/SizeMode$Exact;-><clinit>()V\nPLandroidx/glance/appwidget/SizeMode$Exact;-><clinit>()V\nHSPLandroidx/glance/appwidget/SizeMode$Exact;-><init>()V\nPLandroidx/glance/appwidget/SizeMode$Exact;-><init>()V\nLandroidx/glance/session/Api33Impl$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/glance/session/Api33Impl$$ExternalSyntheticApiModelOutline0;->m(I)I\nPLandroidx/glance/session/Api33Impl$$ExternalSyntheticApiModelOutline0;->m(I)I\nLandroidx/glance/session/SessionManager;\nLandroidx/glance/session/SessionManagerImpl;\nHSPLandroidx/glance/session/SessionManagerImpl;-><init>()V\nPLandroidx/glance/session/SessionManagerImpl;-><init>()V\nLandroidx/glance/session/SessionManagerKt;\nHSPLandroidx/glance/session/SessionManagerKt;-><clinit>()V\nPLandroidx/glance/session/SessionManagerKt;-><clinit>()V\nHSPLandroidx/glance/session/SessionManagerKt;->getGlanceSessionManager()Landroidx/glance/session/SessionManagerImpl;\nPLandroidx/glance/session/SessionManagerKt;->getGlanceSessionManager()Landroidx/glance/session/SessionManagerImpl;\nLandroidx/glance/state/GlanceStateDefinition;\nLandroidx/glance/state/PreferencesGlanceStateDefinition;\nHSPLandroidx/glance/state/PreferencesGlanceStateDefinition;-><clinit>()V\nPLandroidx/glance/state/PreferencesGlanceStateDefinition;-><clinit>()V\nHSPLandroidx/glance/state/PreferencesGlanceStateDefinition;-><init>()V\nPLandroidx/glance/state/PreferencesGlanceStateDefinition;-><init>()V\nLandroidx/interpolator/view/animation/FastOutSlowInInterpolator;\nHSPLandroidx/interpolator/view/animation/FastOutSlowInInterpolator;-><clinit>()V\nPLandroidx/interpolator/view/animation/FastOutSlowInInterpolator;-><clinit>()V\nHSPLandroidx/interpolator/view/animation/FastOutSlowInInterpolator;-><init>()V\nPLandroidx/interpolator/view/animation/FastOutSlowInInterpolator;-><init>()V\nLandroidx/interpolator/view/animation/LinearOutSlowInInterpolator;\nHSPLandroidx/interpolator/view/animation/LinearOutSlowInInterpolator;-><clinit>()V\nPLandroidx/interpolator/view/animation/LinearOutSlowInInterpolator;-><clinit>()V\nHSPLandroidx/interpolator/view/animation/LinearOutSlowInInterpolator;-><init>()V\nPLandroidx/interpolator/view/animation/LinearOutSlowInInterpolator;-><init>()V\nLandroidx/interpolator/view/animation/LookupTableInterpolator;\nHSPLandroidx/interpolator/view/animation/LookupTableInterpolator;-><init>([F)V\nPLandroidx/interpolator/view/animation/LookupTableInterpolator;-><init>([F)V\nHSPLandroidx/interpolator/view/animation/LookupTableInterpolator;->getInterpolation(F)F\nHPLandroidx/interpolator/view/animation/LookupTableInterpolator;->getInterpolation(F)F\nLandroidx/lifecycle/DefaultLifecycleObserver;\nHSPLandroidx/lifecycle/DefaultLifecycleObserver;->onCreate(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/lifecycle/DefaultLifecycleObserver;->onCreate(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/lifecycle/DefaultLifecycleObserver;->onDestroy(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLandroidx/lifecycle/DefaultLifecycleObserver;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/lifecycle/DefaultLifecycleObserver;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLandroidx/lifecycle/DefaultLifecycleObserver;->onStart(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/lifecycle/DefaultLifecycleObserver;->onStart(Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/lifecycle/DefaultLifecycleObserver;->onStop(Landroidx/lifecycle/LifecycleOwner;)V\nLandroidx/lifecycle/DefaultLifecycleObserverAdapter;\nHSPLandroidx/lifecycle/DefaultLifecycleObserverAdapter;-><init>(Landroidx/lifecycle/DefaultLifecycleObserver;Landroidx/lifecycle/LifecycleEventObserver;)V\nHPLandroidx/lifecycle/DefaultLifecycleObserverAdapter;-><init>(Landroidx/lifecycle/DefaultLifecycleObserver;Landroidx/lifecycle/LifecycleEventObserver;)V\nHSPLandroidx/lifecycle/DefaultLifecycleObserverAdapter;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/lifecycle/DefaultLifecycleObserverAdapter;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/lifecycle/DefaultLifecycleObserverAdapter$WhenMappings;\nHSPLandroidx/lifecycle/DefaultLifecycleObserverAdapter$WhenMappings;-><clinit>()V\nPLandroidx/lifecycle/DefaultLifecycleObserverAdapter$WhenMappings;-><clinit>()V\nLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;\nHSPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;-><init>()V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;-><init>()V\nHSPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityDestroyed(Landroid/app/Activity;)V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityPaused(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityResumed(Landroid/app/Activity;)V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityResumed(Landroid/app/Activity;)V\nHPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V\nHSPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/EmptyActivityLifecycleCallbacks;->onActivityStopped(Landroid/app/Activity;)V\nLandroidx/lifecycle/HasDefaultViewModelProviderFactory;\nLandroidx/lifecycle/Lifecycle;\nHSPLandroidx/lifecycle/Lifecycle;-><init>()V\nHPLandroidx/lifecycle/Lifecycle;-><init>()V\nHSPLandroidx/lifecycle/Lifecycle;->getInternalScopeRef()Ljava/util/concurrent/atomic/AtomicReference;\nPLandroidx/lifecycle/Lifecycle;->getInternalScopeRef()Ljava/util/concurrent/atomic/AtomicReference;\nLandroidx/lifecycle/Lifecycle$Event;\nHSPLandroidx/lifecycle/Lifecycle$Event;-><clinit>()V\nPLandroidx/lifecycle/Lifecycle$Event;-><clinit>()V\nHSPLandroidx/lifecycle/Lifecycle$Event;-><init>(Ljava/lang/String;I)V\nPLandroidx/lifecycle/Lifecycle$Event;-><init>(Ljava/lang/String;I)V\nHSPLandroidx/lifecycle/Lifecycle$Event;->getTargetState()Landroidx/lifecycle/Lifecycle$State;\nHPLandroidx/lifecycle/Lifecycle$Event;->getTargetState()Landroidx/lifecycle/Lifecycle$State;\nHSPLandroidx/lifecycle/Lifecycle$Event;->values()[Landroidx/lifecycle/Lifecycle$Event;\nPLandroidx/lifecycle/Lifecycle$Event;->values()[Landroidx/lifecycle/Lifecycle$Event;\nLandroidx/lifecycle/Lifecycle$Event$Companion;\nHSPLandroidx/lifecycle/Lifecycle$Event$Companion;-><init>()V\nPLandroidx/lifecycle/Lifecycle$Event$Companion;-><init>()V\nHSPLandroidx/lifecycle/Lifecycle$Event$Companion;->upFrom(Landroidx/lifecycle/Lifecycle$State;)Landroidx/lifecycle/Lifecycle$Event;\nHPLandroidx/lifecycle/Lifecycle$Event$Companion;->upFrom(Landroidx/lifecycle/Lifecycle$State;)Landroidx/lifecycle/Lifecycle$Event;\nLandroidx/lifecycle/Lifecycle$Event$WhenMappings;\nHSPLandroidx/lifecycle/Lifecycle$Event$WhenMappings;-><clinit>()V\nPLandroidx/lifecycle/Lifecycle$Event$WhenMappings;-><clinit>()V\nLandroidx/lifecycle/Lifecycle$State;\nHSPLandroidx/lifecycle/Lifecycle$State;-><clinit>()V\nPLandroidx/lifecycle/Lifecycle$State;-><clinit>()V\nHSPLandroidx/lifecycle/Lifecycle$State;-><init>(Ljava/lang/String;I)V\nPLandroidx/lifecycle/Lifecycle$State;-><init>(Ljava/lang/String;I)V\nHSPLandroidx/lifecycle/Lifecycle$State;->isAtLeast(Landroidx/lifecycle/Lifecycle$State;)Z\nHPLandroidx/lifecycle/Lifecycle$State;->isAtLeast(Landroidx/lifecycle/Lifecycle$State;)Z\nLandroidx/lifecycle/LifecycleCoroutineScopeImpl;\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;-><init>(Landroidx/lifecycle/Lifecycle;Lkotlin/coroutines/CoroutineContext;)V\nPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;-><init>(Landroidx/lifecycle/Lifecycle;Lkotlin/coroutines/CoroutineContext;)V\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;->getLifecycle$lifecycle_common()Landroidx/lifecycle/Lifecycle;\nPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;->getLifecycle$lifecycle_common()Landroidx/lifecycle/Lifecycle;\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/lifecycle/LifecycleCoroutineScopeImpl;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;-><init>(Landroidx/lifecycle/LifecycleCoroutineScopeImpl;Lkotlin/coroutines/Continuation;)V\nPLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;-><init>(Landroidx/lifecycle/LifecycleCoroutineScopeImpl;Lkotlin/coroutines/Continuation;)V\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/lifecycle/LifecycleCoroutineScopeImpl$register$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/lifecycle/LifecycleDispatcher;\nHSPLandroidx/lifecycle/LifecycleDispatcher;-><clinit>()V\nPLandroidx/lifecycle/LifecycleDispatcher;-><clinit>()V\nHSPLandroidx/lifecycle/LifecycleDispatcher;->init(Landroid/content/Context;)V\nPLandroidx/lifecycle/LifecycleDispatcher;->init(Landroid/content/Context;)V\nLandroidx/lifecycle/LifecycleDispatcher$DispatcherActivityCallback;\nHSPLandroidx/lifecycle/LifecycleDispatcher$DispatcherActivityCallback;-><init>()V\nPLandroidx/lifecycle/LifecycleDispatcher$DispatcherActivityCallback;-><init>()V\nHSPLandroidx/lifecycle/LifecycleDispatcher$DispatcherActivityCallback;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/LifecycleDispatcher$DispatcherActivityCallback;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nLandroidx/lifecycle/LifecycleEventObserver;\nLandroidx/lifecycle/LifecycleObserver;\nLandroidx/lifecycle/LifecycleOwner;\nLandroidx/lifecycle/LifecycleRegistry;\nHSPLandroidx/lifecycle/LifecycleRegistry;-><init>(Landroidx/lifecycle/LifecycleOwner;)V\nHPLandroidx/lifecycle/LifecycleRegistry;-><init>(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLandroidx/lifecycle/LifecycleRegistry;->addObserver(Landroidx/lifecycle/LifecycleObserver;)V\nHPLandroidx/lifecycle/LifecycleRegistry;->addObserver(Landroidx/lifecycle/LifecycleObserver;)V\nHSPLandroidx/lifecycle/LifecycleRegistry;->calculateTargetState(Landroidx/lifecycle/LifecycleObserver;)Landroidx/lifecycle/Lifecycle$State;\nHPLandroidx/lifecycle/LifecycleRegistry;->calculateTargetState(Landroidx/lifecycle/LifecycleObserver;)Landroidx/lifecycle/Lifecycle$State;\nHSPLandroidx/lifecycle/LifecycleRegistry;->enforceMainThreadIfNeeded(Ljava/lang/String;)V\nHPLandroidx/lifecycle/LifecycleRegistry;->enforceMainThreadIfNeeded(Ljava/lang/String;)V\nHSPLandroidx/lifecycle/LifecycleRegistry;->getCurrentState()Landroidx/lifecycle/Lifecycle$State;\nHPLandroidx/lifecycle/LifecycleRegistry;->getCurrentState()Landroidx/lifecycle/Lifecycle$State;\nHSPLandroidx/lifecycle/LifecycleRegistry;->handleLifecycleEvent(Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/lifecycle/LifecycleRegistry;->handleLifecycleEvent(Landroidx/lifecycle/Lifecycle$Event;)V\nPLandroidx/lifecycle/LifecycleRegistry;->markState()V\nHSPLandroidx/lifecycle/LifecycleRegistry;->moveToState(Landroidx/lifecycle/Lifecycle$State;)V\nHPLandroidx/lifecycle/LifecycleRegistry;->moveToState(Landroidx/lifecycle/Lifecycle$State;)V\nHSPLandroidx/lifecycle/LifecycleRegistry;->removeObserver(Landroidx/lifecycle/LifecycleObserver;)V\nHPLandroidx/lifecycle/LifecycleRegistry;->removeObserver(Landroidx/lifecycle/LifecycleObserver;)V\nPLandroidx/lifecycle/LifecycleRegistry;->setCurrentState()V\nHSPLandroidx/lifecycle/LifecycleRegistry;->sync()V\nHPLandroidx/lifecycle/LifecycleRegistry;->sync()V\nLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;\nHSPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;-><init>(Landroidx/lifecycle/LifecycleObserver;Landroidx/lifecycle/Lifecycle$State;)V\nHPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;-><init>(Landroidx/lifecycle/LifecycleObserver;Landroidx/lifecycle/Lifecycle$State;)V\nHSPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;->dispatchEvent(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;->dispatchEvent(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHSPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;->getState()Landroidx/lifecycle/Lifecycle$State;\nPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;->getState()Landroidx/lifecycle/Lifecycle$State;\nLandroidx/lifecycle/Lifecycling;\nHSPLandroidx/lifecycle/Lifecycling;-><clinit>()V\nPLandroidx/lifecycle/Lifecycling;-><clinit>()V\nHSPLandroidx/lifecycle/Lifecycling;->lifecycleEventObserver(Ljava/lang/Object;)Landroidx/lifecycle/LifecycleEventObserver;\nHPLandroidx/lifecycle/Lifecycling;->lifecycleEventObserver(Ljava/lang/Object;)Landroidx/lifecycle/LifecycleEventObserver;\nLandroidx/lifecycle/LiveData;\nHSPLandroidx/lifecycle/LiveData;-><clinit>()V\nPLandroidx/lifecycle/LiveData;-><clinit>()V\nHSPLandroidx/lifecycle/LiveData;-><init>()V\nPLandroidx/lifecycle/LiveData;-><init>()V\nHSPLandroidx/lifecycle/LiveData;->assertMainThread(Ljava/lang/String;)V\nPLandroidx/lifecycle/LiveData;->assertMainThread(Ljava/lang/String;)V\nHSPLandroidx/lifecycle/LiveData;->dispatchingValue(Landroidx/lifecycle/LiveData$ObserverWrapper;)V\nPLandroidx/lifecycle/LiveData;->dispatchingValue(Landroidx/lifecycle/LiveData$ObserverWrapper;)V\nHSPLandroidx/lifecycle/LiveData;->postValue(Ljava/lang/Object;)V\nPLandroidx/lifecycle/LiveData;->postValue(Ljava/lang/Object;)V\nHSPLandroidx/lifecycle/LiveData;->setValue(Ljava/lang/Object;)V\nPLandroidx/lifecycle/LiveData;->setValue(Ljava/lang/Object;)V\nLandroidx/lifecycle/LiveData$1;\nHSPLandroidx/lifecycle/LiveData$1;-><init>(Landroidx/lifecycle/LiveData;)V\nPLandroidx/lifecycle/LiveData$1;-><init>(Landroidx/lifecycle/LiveData;)V\nHSPLandroidx/lifecycle/LiveData$1;->run()V\nPLandroidx/lifecycle/LiveData$1;->run()V\nLandroidx/lifecycle/MutableLiveData;\nHSPLandroidx/lifecycle/MutableLiveData;-><init>()V\nPLandroidx/lifecycle/MutableLiveData;-><init>()V\nHSPLandroidx/lifecycle/MutableLiveData;->postValue(Ljava/lang/Object;)V\nPLandroidx/lifecycle/MutableLiveData;->postValue(Ljava/lang/Object;)V\nHSPLandroidx/lifecycle/MutableLiveData;->setValue(Ljava/lang/Object;)V\nPLandroidx/lifecycle/MutableLiveData;->setValue(Ljava/lang/Object;)V\nLandroidx/lifecycle/ProcessLifecycleInitializer;\nHSPLandroidx/lifecycle/ProcessLifecycleInitializer;-><init>()V\nPLandroidx/lifecycle/ProcessLifecycleInitializer;-><init>()V\nHSPLandroidx/lifecycle/ProcessLifecycleInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nPLandroidx/lifecycle/ProcessLifecycleInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nHSPLandroidx/lifecycle/ProcessLifecycleInitializer;->dependencies()Ljava/util/List;\nPLandroidx/lifecycle/ProcessLifecycleInitializer;->dependencies()Ljava/util/List;\nLandroidx/lifecycle/ProcessLifecycleOwner;\nPLandroidx/lifecycle/ProcessLifecycleOwner;->$r8$lambda$8RHFmaqBQY2MpEYiTr99NwPTGEU(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;-><clinit>()V\nPLandroidx/lifecycle/ProcessLifecycleOwner;-><clinit>()V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;-><init>()V\nPLandroidx/lifecycle/ProcessLifecycleOwner;-><init>()V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;->access$getNewInstance$cp()Landroidx/lifecycle/ProcessLifecycleOwner;\nPLandroidx/lifecycle/ProcessLifecycleOwner;->access$getNewInstance$cp()Landroidx/lifecycle/ProcessLifecycleOwner;\nPLandroidx/lifecycle/ProcessLifecycleOwner;->activityPaused$lifecycle_process_release()V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;->activityResumed$lifecycle_process_release()V\nPLandroidx/lifecycle/ProcessLifecycleOwner;->activityResumed$lifecycle_process_release()V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;->activityStarted$lifecycle_process_release()V\nPLandroidx/lifecycle/ProcessLifecycleOwner;->activityStarted$lifecycle_process_release()V\nPLandroidx/lifecycle/ProcessLifecycleOwner;->activityStopped$lifecycle_process_release()V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;->attach$lifecycle_process_release(Landroid/content/Context;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner;->attach$lifecycle_process_release(Landroid/content/Context;)V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nPLandroidx/lifecycle/ProcessLifecycleOwner;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nLandroidx/lifecycle/ProcessLifecycleOwner$$ExternalSyntheticLambda0;\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$$ExternalSyntheticLambda0;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$$ExternalSyntheticLambda0;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$$ExternalSyntheticLambda0;->run()V\nLandroidx/lifecycle/ProcessLifecycleOwner$Api29Impl;\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$Api29Impl;->registerActivityLifecycleCallbacks(Landroid/app/Activity;Landroid/app/Application$ActivityLifecycleCallbacks;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$Api29Impl;->registerActivityLifecycleCallbacks(Landroid/app/Activity;Landroid/app/Application$ActivityLifecycleCallbacks;)V\nLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;->onActivityPaused(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;->onActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;->onActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1;->onActivityStopped(Landroid/app/Activity;)V\nLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;->onActivityPostResumed(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;->onActivityPostResumed(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;->onActivityPostStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$attach$1$onActivityPreCreated$1;->onActivityPostStarted(Landroid/app/Activity;)V\nLandroidx/lifecycle/ProcessLifecycleOwner$initializationListener$1;\nHSPLandroidx/lifecycle/ProcessLifecycleOwner$initializationListener$1;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nPLandroidx/lifecycle/ProcessLifecycleOwner$initializationListener$1;-><init>(Landroidx/lifecycle/ProcessLifecycleOwner;)V\nLandroidx/lifecycle/ReportFragment;\nHSPLandroidx/lifecycle/ReportFragment;-><init>()V\nPLandroidx/lifecycle/ReportFragment;-><init>()V\nHSPLandroidx/lifecycle/ReportFragment;->dispatch(Landroidx/lifecycle/Lifecycle$Event;)V\nPLandroidx/lifecycle/ReportFragment;->dispatch(Landroidx/lifecycle/Lifecycle$Event;)V\nHSPLandroidx/lifecycle/ReportFragment;->onActivityCreated(Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ReportFragment;->onActivityCreated(Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ReportFragment;->onDestroy()V\nPLandroidx/lifecycle/ReportFragment;->onPause()V\nHSPLandroidx/lifecycle/ReportFragment;->onResume()V\nPLandroidx/lifecycle/ReportFragment;->onResume()V\nHSPLandroidx/lifecycle/ReportFragment;->onStart()V\nPLandroidx/lifecycle/ReportFragment;->onStart()V\nPLandroidx/lifecycle/ReportFragment;->onStop()V\nLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;-><clinit>()V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;-><clinit>()V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;-><init>()V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;-><init>()V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityDestroyed(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPaused(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostResumed(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostResumed(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPreDestroyed(Landroid/app/Activity;)V\nHPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPrePaused(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPreStopped(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityResumed(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityResumed(Landroid/app/Activity;)V\nHPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityStarted(Landroid/app/Activity;)V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityStopped(Landroid/app/Activity;)V\nLandroidx/lifecycle/ReportFragment$LifecycleCallbacks$Companion;\nHSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks$Companion;-><init>()V\nPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks$Companion;-><init>()V\nLandroidx/lifecycle/SavedStateHandleAttacher;\nHSPLandroidx/lifecycle/SavedStateHandleAttacher;-><init>(Landroidx/lifecycle/SavedStateHandlesProvider;)V\nPLandroidx/lifecycle/SavedStateHandleAttacher;-><init>(Landroidx/lifecycle/SavedStateHandlesProvider;)V\nHSPLandroidx/lifecycle/SavedStateHandleAttacher;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/lifecycle/SavedStateHandleAttacher;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;\nHSPLandroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;-><clinit>()V\nPLandroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;-><clinit>()V\nHSPLandroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;-><init>()V\nPLandroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;-><init>()V\nLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;\nHSPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;-><clinit>()V\nPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;-><clinit>()V\nHSPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;-><init>(I)V\nPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;-><init>(I)V\nHSPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;->invoke(Landroid/view/View;)Landroid/view/View;\nHPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;->invoke(Landroid/view/View;)Landroid/view/View;\nHSPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/lifecycle/SavedStateHandlesProvider;\nHSPLandroidx/lifecycle/SavedStateHandlesProvider;-><init>(Landroidx/savedstate/SavedStateRegistry;Landroidx/lifecycle/ViewModelStoreOwner;)V\nHPLandroidx/lifecycle/SavedStateHandlesProvider;-><init>(Landroidx/savedstate/SavedStateRegistry;Landroidx/lifecycle/ViewModelStoreOwner;)V\nHSPLandroidx/lifecycle/SavedStateHandlesProvider;->performRestore()V\nPLandroidx/lifecycle/SavedStateHandlesProvider;->performRestore()V\nHSPLandroidx/lifecycle/SavedStateHandlesProvider;->saveState()Landroid/os/Bundle;\nHPLandroidx/lifecycle/SavedStateHandlesProvider;->saveState()Landroid/os/Bundle;\nLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;\nHSPLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;-><init>(Landroidx/lifecycle/ViewModelStoreOwner;)V\nPLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;-><init>(Landroidx/lifecycle/ViewModelStoreOwner;)V\nHSPLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;->invoke()Ljava/lang/Object;\nPLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;->invoke()Ljava/lang/Object;\nLandroidx/lifecycle/SavedStateHandlesVM;\nHSPLandroidx/lifecycle/SavedStateHandlesVM;-><init>()V\nPLandroidx/lifecycle/SavedStateHandlesVM;-><init>()V\nHSPLandroidx/lifecycle/SavedStateHandlesVM;->getHandles()Ljava/util/LinkedHashMap;\nPLandroidx/lifecycle/SavedStateHandlesVM;->getHandles()Ljava/util/LinkedHashMap;\nLandroidx/lifecycle/ViewModel;\nHSPLandroidx/lifecycle/ViewModel;-><init>()V\nPLandroidx/lifecycle/ViewModel;-><init>()V\nHPLandroidx/lifecycle/ViewModel;->clear()V\nPLandroidx/lifecycle/ViewModel;->onCleared()V\nLandroidx/lifecycle/ViewModelKt;\nHSPLandroidx/lifecycle/ViewModelKt;-><clinit>()V\nPLandroidx/lifecycle/ViewModelKt;-><clinit>()V\nHSPLandroidx/lifecycle/ViewModelKt;->dispatch$lifecycle_runtime_release(Landroid/app/Activity;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/lifecycle/ViewModelKt;->dispatch$lifecycle_runtime_release(Landroid/app/Activity;Landroidx/lifecycle/Lifecycle$Event;)V\nHSPLandroidx/lifecycle/ViewModelKt;->enableSavedStateHandles(Landroidx/savedstate/SavedStateRegistryOwner;)V\nHPLandroidx/lifecycle/ViewModelKt;->enableSavedStateHandles(Landroidx/savedstate/SavedStateRegistryOwner;)V\nHSPLandroidx/lifecycle/ViewModelKt;->get(Landroid/view/View;)Landroidx/lifecycle/LifecycleOwner;\nPLandroidx/lifecycle/ViewModelKt;->get(Landroid/view/View;)Landroidx/lifecycle/LifecycleOwner;\nHSPLandroidx/lifecycle/ViewModelKt;->get(Landroid/view/View;)Landroidx/lifecycle/ViewModelStoreOwner;\nPLandroidx/lifecycle/ViewModelKt;->get(Landroid/view/View;)Landroidx/lifecycle/ViewModelStoreOwner;\nHSPLandroidx/lifecycle/ViewModelKt;->getLifecycleScope(Landroidx/lifecycle/LifecycleOwner;)Landroidx/lifecycle/LifecycleCoroutineScopeImpl;\nPLandroidx/lifecycle/ViewModelKt;->getLifecycleScope(Landroidx/lifecycle/LifecycleOwner;)Landroidx/lifecycle/LifecycleCoroutineScopeImpl;\nHSPLandroidx/lifecycle/ViewModelKt;->getSavedStateHandlesVM(Landroidx/lifecycle/ViewModelStoreOwner;)Landroidx/lifecycle/SavedStateHandlesVM;\nHPLandroidx/lifecycle/ViewModelKt;->getSavedStateHandlesVM(Landroidx/lifecycle/ViewModelStoreOwner;)Landroidx/lifecycle/SavedStateHandlesVM;\nHSPLandroidx/lifecycle/ViewModelKt;->injectIfNeededIn(Landroid/app/Activity;)V\nHPLandroidx/lifecycle/ViewModelKt;->injectIfNeededIn(Landroid/app/Activity;)V\nHSPLandroidx/lifecycle/ViewModelKt;->set(Landroid/view/View;Landroidx/lifecycle/LifecycleOwner;)V\nPLandroidx/lifecycle/ViewModelKt;->set(Landroid/view/View;Landroidx/lifecycle/LifecycleOwner;)V\nHSPLandroidx/lifecycle/ViewModelKt;->set(Landroid/view/View;Landroidx/lifecycle/ViewModelStoreOwner;)V\nPLandroidx/lifecycle/ViewModelKt;->set(Landroid/view/View;Landroidx/lifecycle/ViewModelStoreOwner;)V\nLandroidx/lifecycle/ViewModelProvider$AndroidViewModelFactory;\nHSPLandroidx/lifecycle/ViewModelProvider$AndroidViewModelFactory;-><clinit>()V\nPLandroidx/lifecycle/ViewModelProvider$AndroidViewModelFactory;-><clinit>()V\nLandroidx/lifecycle/ViewModelProvider$Factory;\nHSPLandroidx/lifecycle/ViewModelProvider$Factory;->create(Ljava/lang/Class;Landroidx/lifecycle/viewmodel/MutableCreationExtras;)Landroidx/lifecycle/ViewModel;\nPLandroidx/lifecycle/ViewModelProvider$Factory;->create(Ljava/lang/Class;Landroidx/lifecycle/viewmodel/MutableCreationExtras;)Landroidx/lifecycle/ViewModel;\nLandroidx/lifecycle/ViewModelProvider$NewInstanceFactory;\nHSPLandroidx/lifecycle/ViewModelProvider$NewInstanceFactory;-><clinit>()V\nPLandroidx/lifecycle/ViewModelProvider$NewInstanceFactory;-><clinit>()V\nLandroidx/lifecycle/ViewModelStore;\nHSPLandroidx/lifecycle/ViewModelStore;-><init>()V\nPLandroidx/lifecycle/ViewModelStore;-><init>()V\nHPLandroidx/lifecycle/ViewModelStore;->clear()V\nHSPLandroidx/lifecycle/ViewModelStore;->get(Ljava/lang/String;)Landroidx/lifecycle/ViewModel;\nHPLandroidx/lifecycle/ViewModelStore;->get(Ljava/lang/String;)Landroidx/lifecycle/ViewModel;\nHSPLandroidx/lifecycle/ViewModelStore;->put(Ljava/lang/String;Landroidx/lifecycle/ViewModel;)V\nHPLandroidx/lifecycle/ViewModelStore;->put(Ljava/lang/String;Landroidx/lifecycle/ViewModel;)V\nLandroidx/lifecycle/ViewModelStoreOwner;\nLandroidx/lifecycle/viewmodel/CreationExtras;\nHSPLandroidx/lifecycle/viewmodel/CreationExtras;-><init>()V\nHPLandroidx/lifecycle/viewmodel/CreationExtras;-><init>()V\nHSPLandroidx/lifecycle/viewmodel/CreationExtras;->getMap$lifecycle_viewmodel_release()Ljava/util/LinkedHashMap;\nPLandroidx/lifecycle/viewmodel/CreationExtras;->getMap$lifecycle_viewmodel_release()Ljava/util/LinkedHashMap;\nLandroidx/lifecycle/viewmodel/CreationExtras$Empty;\nHSPLandroidx/lifecycle/viewmodel/CreationExtras$Empty;-><clinit>()V\nPLandroidx/lifecycle/viewmodel/CreationExtras$Empty;-><clinit>()V\nHSPLandroidx/lifecycle/viewmodel/CreationExtras$Empty;-><init>()V\nPLandroidx/lifecycle/viewmodel/CreationExtras$Empty;-><init>()V\nLandroidx/lifecycle/viewmodel/CreationExtras$Key;\nLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;\nHSPLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;-><init>([Landroidx/lifecycle/viewmodel/ViewModelInitializer;)V\nPLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;-><init>([Landroidx/lifecycle/viewmodel/ViewModelInitializer;)V\nHSPLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;->create(Ljava/lang/Class;Landroidx/lifecycle/viewmodel/MutableCreationExtras;)Landroidx/lifecycle/ViewModel;\nHPLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;->create(Ljava/lang/Class;Landroidx/lifecycle/viewmodel/MutableCreationExtras;)Landroidx/lifecycle/ViewModel;\nLandroidx/lifecycle/viewmodel/MutableCreationExtras;\nHSPLandroidx/lifecycle/viewmodel/MutableCreationExtras;-><init>()V\nPLandroidx/lifecycle/viewmodel/MutableCreationExtras;-><init>()V\nHSPLandroidx/lifecycle/viewmodel/MutableCreationExtras;-><init>(Landroidx/lifecycle/viewmodel/CreationExtras;)V\nHPLandroidx/lifecycle/viewmodel/MutableCreationExtras;-><init>(Landroidx/lifecycle/viewmodel/CreationExtras;)V\nHSPLandroidx/lifecycle/viewmodel/MutableCreationExtras;->set(Landroidx/lifecycle/viewmodel/CreationExtras$Key;Ljava/lang/Object;)V\nHPLandroidx/lifecycle/viewmodel/MutableCreationExtras;->set(Landroidx/lifecycle/viewmodel/CreationExtras$Key;Ljava/lang/Object;)V\nLandroidx/lifecycle/viewmodel/ViewModelInitializer;\nHSPLandroidx/lifecycle/viewmodel/ViewModelInitializer;-><init>(Ljava/lang/Class;Lkotlin/jvm/functions/Function1;)V\nHPLandroidx/lifecycle/viewmodel/ViewModelInitializer;-><init>(Ljava/lang/Class;Lkotlin/jvm/functions/Function1;)V\nHSPLandroidx/lifecycle/viewmodel/ViewModelInitializer;->getClazz$lifecycle_viewmodel_release()Ljava/lang/Class;\nPLandroidx/lifecycle/viewmodel/ViewModelInitializer;->getClazz$lifecycle_viewmodel_release()Ljava/lang/Class;\nHSPLandroidx/lifecycle/viewmodel/ViewModelInitializer;->getInitializer$lifecycle_viewmodel_release()Lkotlin/jvm/functions/Function1;\nPLandroidx/lifecycle/viewmodel/ViewModelInitializer;->getInitializer$lifecycle_viewmodel_release()Lkotlin/jvm/functions/Function1;\nLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner;\nHSPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner;-><clinit>()V\nPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner;-><clinit>()V\nHSPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner;->provides(Landroidx/lifecycle/ViewModelStoreOwner;)Landroidx/compose/runtime/ProvidedValue;\nPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner;->provides(Landroidx/lifecycle/ViewModelStoreOwner;)Landroidx/compose/runtime/ProvidedValue;\nLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner$LocalViewModelStoreOwner$1;\nHSPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner$LocalViewModelStoreOwner$1;-><clinit>()V\nPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner$LocalViewModelStoreOwner$1;-><clinit>()V\nHSPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner$LocalViewModelStoreOwner$1;-><init>()V\nPLandroidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner$LocalViewModelStoreOwner$1;-><init>()V\nLandroidx/paging/ConflatedEventBus;\nHSPLandroidx/paging/ConflatedEventBus;-><init>()V\nPLandroidx/paging/ConflatedEventBus;-><init>()V\nHSPLandroidx/paging/ConflatedEventBus;-><init>(Landroidx/compose/ui/node/InnerNodeCoordinator;)V\nPLandroidx/paging/ConflatedEventBus;-><init>(Landroidx/compose/ui/node/InnerNodeCoordinator;)V\nHSPLandroidx/paging/ConflatedEventBus;-><init>(Ljava/lang/Object;)V\nPLandroidx/paging/ConflatedEventBus;-><init>(Ljava/lang/Object;)V\nHSPLandroidx/paging/ConflatedEventBus;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLandroidx/paging/ConflatedEventBus;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLandroidx/paging/ConflatedEventBus;->access$getLookaheadSet$p(Landroidx/paging/ConflatedEventBus;)Landroidx/compose/ui/node/DepthSortedSet;\nPLandroidx/paging/ConflatedEventBus;->access$getLookaheadSet$p(Landroidx/paging/ConflatedEventBus;)Landroidx/compose/ui/node/DepthSortedSet;\nHSPLandroidx/paging/ConflatedEventBus;->access$getSet$p(Landroidx/paging/ConflatedEventBus;)Landroidx/compose/ui/node/DepthSortedSet;\nPLandroidx/paging/ConflatedEventBus;->access$getSet$p(Landroidx/paging/ConflatedEventBus;)Landroidx/compose/ui/node/DepthSortedSet;\nHSPLandroidx/paging/ConflatedEventBus;->add(ILjava/lang/Object;)V\nHPLandroidx/paging/ConflatedEventBus;->add(ILjava/lang/Object;)V\nHSPLandroidx/paging/ConflatedEventBus;->add(Landroidx/compose/ui/node/LayoutNode;Z)V\nHPLandroidx/paging/ConflatedEventBus;->add(Landroidx/compose/ui/node/LayoutNode;Z)V\nHSPLandroidx/paging/ConflatedEventBus;->addHitPath-KNwqfcY(JLandroidx/compose/ui/node/HitTestResult;)V\nHPLandroidx/paging/ConflatedEventBus;->addHitPath-KNwqfcY(JLandroidx/compose/ui/node/HitTestResult;)V\nHSPLandroidx/paging/ConflatedEventBus;->asList()Ljava/util/List;\nPLandroidx/paging/ConflatedEventBus;->asList()Ljava/util/List;\nHSPLandroidx/paging/ConflatedEventBus;->clear()V\nHPLandroidx/paging/ConflatedEventBus;->clear()V\nHSPLandroidx/paging/ConflatedEventBus;->contains(Landroidx/work/impl/model/WorkGenerationalId;)Z\nPLandroidx/paging/ConflatedEventBus;->contains(Landroidx/work/impl/model/WorkGenerationalId;)Z\nHSPLandroidx/paging/ConflatedEventBus;->dispatchChanges(Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHPLandroidx/paging/ConflatedEventBus;->dispatchChanges(Landroidx/compose/ui/focus/FocusTransactionManager;Z)Z\nHSPLandroidx/paging/ConflatedEventBus;->get(I)Ljava/lang/Object;\nHPLandroidx/paging/ConflatedEventBus;->get(I)Ljava/lang/Object;\nHSPLandroidx/paging/ConflatedEventBus;->getSize()I\nHPLandroidx/paging/ConflatedEventBus;->getSize()I\nHSPLandroidx/paging/ConflatedEventBus;->getVector()Landroidx/compose/runtime/collection/MutableVector;\nPLandroidx/paging/ConflatedEventBus;->getVector()Landroidx/compose/runtime/collection/MutableVector;\nHSPLandroidx/paging/ConflatedEventBus;->isEmpty()Z\nHPLandroidx/paging/ConflatedEventBus;->isEmpty()Z\nHSPLandroidx/paging/ConflatedEventBus;->remove(Landroidx/compose/ui/node/LayoutNode;)V\nPLandroidx/paging/ConflatedEventBus;->remove(Landroidx/compose/ui/node/LayoutNode;)V\nHSPLandroidx/paging/ConflatedEventBus;->remove(Landroidx/compose/ui/node/LayoutNode;Z)Z\nPLandroidx/paging/ConflatedEventBus;->remove(Landroidx/compose/ui/node/LayoutNode;Z)Z\nHSPLandroidx/paging/ConflatedEventBus;->removeAt(I)Ljava/lang/Object;\nHPLandroidx/paging/ConflatedEventBus;->removeAt(I)Ljava/lang/Object;\nHSPLandroidx/paging/ConflatedEventBus;->removeDetachedPointerInputFilters()V\nPLandroidx/paging/ConflatedEventBus;->removeDetachedPointerInputFilters()V\nLandroidx/preference/PreferenceManager;\nHSPLandroidx/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;\nPLandroidx/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;\nHSPLandroidx/preference/PreferenceManager;->getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String;\nPLandroidx/preference/PreferenceManager;->getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String;\nLandroidx/profileinstaller/ProfileInstallReceiver;\nHSPLandroidx/profileinstaller/ProfileInstallReceiver;-><init>()V\nPLandroidx/profileinstaller/ProfileInstallReceiver;-><init>()V\nHSPLandroidx/profileinstaller/ProfileInstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V\nHPLandroidx/profileinstaller/ProfileInstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V\nLandroidx/profileinstaller/ProfileInstallReceiver$ResultDiagnostics;\nHSPLandroidx/profileinstaller/ProfileInstallReceiver$ResultDiagnostics;-><init>(Landroidx/profileinstaller/ProfileInstallReceiver;)V\nPLandroidx/profileinstaller/ProfileInstallReceiver$ResultDiagnostics;-><init>(Landroidx/profileinstaller/ProfileInstallReceiver;)V\nHSPLandroidx/profileinstaller/ProfileInstallReceiver$ResultDiagnostics;->onResultReceived(ILjava/lang/Object;)V\nPLandroidx/profileinstaller/ProfileInstallReceiver$ResultDiagnostics;->onResultReceived(ILjava/lang/Object;)V\nLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda0;\nHSPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda0;-><init>(IILjava/lang/Object;Ljava/io/Serializable;)V\nPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda0;-><init>(IILjava/lang/Object;Ljava/io/Serializable;)V\nHSPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda0;->run()V\nPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda0;->run()V\nLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda1;\nHSPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda1;-><init>(I)V\nPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda1;-><init>(I)V\nHSPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V\nPLandroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V\nLandroidx/profileinstaller/ProfileInstaller$1;\nHSPLandroidx/profileinstaller/ProfileInstaller$1;-><init>(I)V\nPLandroidx/profileinstaller/ProfileInstaller$1;-><init>(I)V\nHSPLandroidx/profileinstaller/ProfileInstaller$1;->onResultReceived(ILjava/lang/Object;)V\nPLandroidx/profileinstaller/ProfileInstaller$1;->onResultReceived(ILjava/lang/Object;)V\nLandroidx/profileinstaller/ProfileInstaller$DiagnosticsCallback;\nLandroidx/profileinstaller/ProfileInstallerInitializer;\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer;->$r8$lambda$QGpANLTF0YGY0pXfe2eje4OKwkc(Landroidx/profileinstaller/ProfileInstallerInitializer;Landroid/content/Context;)V\nPLandroidx/profileinstaller/ProfileInstallerInitializer;->$r8$lambda$QGpANLTF0YGY0pXfe2eje4OKwkc(Landroidx/profileinstaller/ProfileInstallerInitializer;Landroid/content/Context;)V\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer;-><init>()V\nPLandroidx/profileinstaller/ProfileInstallerInitializer;-><init>()V\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nPLandroidx/profileinstaller/ProfileInstallerInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer;->dependencies()Ljava/util/List;\nPLandroidx/profileinstaller/ProfileInstallerInitializer;->dependencies()Ljava/util/List;\nLandroidx/profileinstaller/ProfileInstallerInitializer$$ExternalSyntheticLambda0;\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;I)V\nPLandroidx/profileinstaller/ProfileInstallerInitializer$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;I)V\nPLandroidx/profileinstaller/ProfileInstallerInitializer$$ExternalSyntheticLambda0;->run()V\nLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl;\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl;->postFrameCallback(Ljava/lang/Runnable;)V\nPLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl;->postFrameCallback(Ljava/lang/Runnable;)V\nLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl$$ExternalSyntheticLambda0;\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Runnable;)V\nPLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Runnable;)V\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl$$ExternalSyntheticLambda0;->doFrame(J)V\nPLandroidx/profileinstaller/ProfileInstallerInitializer$Choreographer16Impl$$ExternalSyntheticLambda0;->doFrame(J)V\nLandroidx/profileinstaller/ProfileInstallerInitializer$Handler28Impl;\nHSPLandroidx/profileinstaller/ProfileInstallerInitializer$Handler28Impl;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;\nPLandroidx/profileinstaller/ProfileInstallerInitializer$Handler28Impl;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;\nPLandroidx/profileinstaller/ProfileVerifier;-><clinit>()V\nPLandroidx/profileinstaller/ProfileVerifier;->setCompilationStatus(IZZ)Landroidx/profileinstaller/ProfileVerifier$CompilationStatus;\nPLandroidx/profileinstaller/ProfileVerifier;->writeProfileVerification(Landroid/content/Context;Z)V\nPLandroidx/profileinstaller/ProfileVerifier$CompilationStatus;-><init>(I)V\nLandroidx/profileinstaller/ProfileVersion;\nHSPLandroidx/profileinstaller/ProfileVersion;-><clinit>()V\nPLandroidx/profileinstaller/ProfileVersion;-><clinit>()V\nHSPLandroidx/profileinstaller/ProfileVersion;->noteProfileWrittenFor(Landroid/content/pm/PackageInfo;Ljava/io/File;)V\nPLandroidx/profileinstaller/ProfileVersion;->noteProfileWrittenFor(Landroid/content/pm/PackageInfo;Ljava/io/File;)V\nPLandroidx/profileinstaller/ProfileVersion;->writeProfile(Landroid/content/Context;)V\nPLandroidx/profileinstaller/ProfileVersion;->writeProfile(Landroid/content/Context;Landroidx/profileinstaller/ProfileInstaller$$ExternalSyntheticLambda1;Landroidx/profileinstaller/ProfileInstaller$DiagnosticsCallback;Z)V\nLandroidx/recyclerview/widget/ListUpdateCallback;\nLandroidx/room/AutoCloser$Companion;\nHSPLandroidx/room/AutoCloser$Companion;-><init>(I)V\nPLandroidx/room/AutoCloser$Companion;-><init>(I)V\nHSPLandroidx/room/AutoCloser$Companion;-><init>(II)V\nPLandroidx/room/AutoCloser$Companion;-><init>(II)V\nHSPLandroidx/room/AutoCloser$Companion;->bitsNeedForSize(I)I\nHPLandroidx/room/AutoCloser$Companion;->bitsNeedForSize(I)I\nHSPLandroidx/room/AutoCloser$Companion;->createConstraints-Zbe2FdA$ui_unit_release(IIII)J\nHPLandroidx/room/AutoCloser$Companion;->createConstraints-Zbe2FdA$ui_unit_release(IIII)J\nHSPLandroidx/room/AutoCloser$Companion;->fixed-JhjzzOo(II)J\nHPLandroidx/room/AutoCloser$Companion;->fixed-JhjzzOo(II)J\nLandroidx/room/AutoClosingRoomOpenHelper;\nLandroidx/room/DatabaseConfiguration;\nHSPLandroidx/room/DatabaseConfiguration;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Factory;Landroidx/room/RoomDatabase$MigrationContainer;Ljava/util/ArrayList;ZLandroidx/room/RoomDatabase$JournalMode;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;ZZLjava/util/LinkedHashSet;Ljava/util/ArrayList;Ljava/util/ArrayList;)V\nPLandroidx/room/DatabaseConfiguration;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Factory;Landroidx/room/RoomDatabase$MigrationContainer;Ljava/util/ArrayList;ZLandroidx/room/RoomDatabase$JournalMode;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;ZZLjava/util/LinkedHashSet;Ljava/util/ArrayList;Ljava/util/ArrayList;)V\nLandroidx/room/DelegatingOpenHelper;\nLandroidx/room/EntityInsertionAdapter;\nHSPLandroidx/room/EntityInsertionAdapter;-><init>(Landroidx/room/RoomDatabase;I)V\nPLandroidx/room/EntityInsertionAdapter;-><init>(Landroidx/room/RoomDatabase;I)V\nHSPLandroidx/room/EntityInsertionAdapter;->insert(Ljava/lang/Object;)V\nPLandroidx/room/EntityInsertionAdapter;->insert(Ljava/lang/Object;)V\nLandroidx/room/InvalidationLiveDataContainer;\nHSPLandroidx/room/InvalidationLiveDataContainer;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/room/InvalidationLiveDataContainer;-><init>(Landroidx/room/RoomDatabase;)V\nLandroidx/room/InvalidationTracker;\nHSPLandroidx/room/InvalidationTracker;-><clinit>()V\nPLandroidx/room/InvalidationTracker;-><clinit>()V\nHSPLandroidx/room/InvalidationTracker;-><init>(Landroidx/room/RoomDatabase;Ljava/util/HashMap;Ljava/util/HashMap;[Ljava/lang/String;)V\nPLandroidx/room/InvalidationTracker;-><init>(Landroidx/room/RoomDatabase;Ljava/util/HashMap;Ljava/util/HashMap;[Ljava/lang/String;)V\nHSPLandroidx/room/InvalidationTracker;->ensureInitialization$room_runtime_release()Z\nPLandroidx/room/InvalidationTracker;->ensureInitialization$room_runtime_release()Z\nHSPLandroidx/room/InvalidationTracker;->getDatabase$room_runtime_release()Landroidx/room/RoomDatabase;\nPLandroidx/room/InvalidationTracker;->getDatabase$room_runtime_release()Landroidx/room/RoomDatabase;\nHSPLandroidx/room/InvalidationTracker;->getPendingRefresh()Ljava/util/concurrent/atomic/AtomicBoolean;\nPLandroidx/room/InvalidationTracker;->getPendingRefresh()Ljava/util/concurrent/atomic/AtomicBoolean;\nHSPLandroidx/room/InvalidationTracker;->internalInit$room_runtime_release(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/InvalidationTracker;->internalInit$room_runtime_release(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/room/InvalidationTracker;->refreshVersionsAsync()V\nPLandroidx/room/InvalidationTracker;->refreshVersionsAsync()V\nHSPLandroidx/room/InvalidationTracker;->syncTriggers$room_runtime_release(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/InvalidationTracker;->syncTriggers$room_runtime_release(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nLandroidx/room/InvalidationTracker$ObservedTableTracker;\nHSPLandroidx/room/InvalidationTracker$ObservedTableTracker;-><init>(I)V\nPLandroidx/room/InvalidationTracker$ObservedTableTracker;-><init>(I)V\nHSPLandroidx/room/InvalidationTracker$ObservedTableTracker;->getTablesToSync()[I\nPLandroidx/room/InvalidationTracker$ObservedTableTracker;->getTablesToSync()[I\nLandroidx/room/InvalidationTracker$refreshRunnable$1;\nHSPLandroidx/room/InvalidationTracker$refreshRunnable$1;-><init>(Landroidx/room/InvalidationTracker;)V\nPLandroidx/room/InvalidationTracker$refreshRunnable$1;-><init>(Landroidx/room/InvalidationTracker;)V\nHSPLandroidx/room/InvalidationTracker$refreshRunnable$1;->checkUpdatedTable()Ljava/util/Set;\nPLandroidx/room/InvalidationTracker$refreshRunnable$1;->checkUpdatedTable()Ljava/util/Set;\nHSPLandroidx/room/InvalidationTracker$refreshRunnable$1;->run()V\nPLandroidx/room/InvalidationTracker$refreshRunnable$1;->run()V\nLandroidx/room/RoomDatabase;\nHSPLandroidx/room/RoomDatabase;-><init>()V\nPLandroidx/room/RoomDatabase;-><init>()V\nHSPLandroidx/room/RoomDatabase;->assertNotMainThread()V\nPLandroidx/room/RoomDatabase;->assertNotMainThread()V\nHSPLandroidx/room/RoomDatabase;->assertNotSuspendingTransaction()V\nPLandroidx/room/RoomDatabase;->assertNotSuspendingTransaction()V\nHSPLandroidx/room/RoomDatabase;->beginTransaction()V\nPLandroidx/room/RoomDatabase;->beginTransaction()V\nHSPLandroidx/room/RoomDatabase;->endTransaction()V\nPLandroidx/room/RoomDatabase;->endTransaction()V\nHSPLandroidx/room/RoomDatabase;->getCloseLock$room_runtime_release()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;\nPLandroidx/room/RoomDatabase;->getCloseLock$room_runtime_release()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;\nHSPLandroidx/room/RoomDatabase;->getOpenHelper()Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nPLandroidx/room/RoomDatabase;->getOpenHelper()Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nHSPLandroidx/room/RoomDatabase;->getQueryExecutor()Ljava/util/concurrent/Executor;\nPLandroidx/room/RoomDatabase;->getQueryExecutor()Ljava/util/concurrent/Executor;\nHSPLandroidx/room/RoomDatabase;->init(Landroidx/room/DatabaseConfiguration;)V\nPLandroidx/room/RoomDatabase;->init(Landroidx/room/DatabaseConfiguration;)V\nHSPLandroidx/room/RoomDatabase;->internalBeginTransaction()V\nPLandroidx/room/RoomDatabase;->internalBeginTransaction()V\nHSPLandroidx/room/RoomDatabase;->internalEndTransaction()V\nPLandroidx/room/RoomDatabase;->internalEndTransaction()V\nHSPLandroidx/room/RoomDatabase;->internalInitInvalidationTracker(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/RoomDatabase;->internalInitInvalidationTracker(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/room/RoomDatabase;->isOpen()Z\nPLandroidx/room/RoomDatabase;->isOpen()Z\nHSPLandroidx/room/RoomDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;Landroid/os/CancellationSignal;)Landroid/database/Cursor;\nPLandroidx/room/RoomDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;Landroid/os/CancellationSignal;)Landroid/database/Cursor;\nHSPLandroidx/room/RoomDatabase;->runInTransaction(Ljava/util/concurrent/Callable;)Ljava/lang/Object;\nPLandroidx/room/RoomDatabase;->runInTransaction(Ljava/util/concurrent/Callable;)Ljava/lang/Object;\nHSPLandroidx/room/RoomDatabase;->setTransactionSuccessful()V\nPLandroidx/room/RoomDatabase;->setTransactionSuccessful()V\nHSPLandroidx/room/RoomDatabase;->unwrapOpenHelper(Ljava/lang/Class;Landroidx/sqlite/db/SupportSQLiteOpenHelper;)Ljava/lang/Object;\nPLandroidx/room/RoomDatabase;->unwrapOpenHelper(Ljava/lang/Class;Landroidx/sqlite/db/SupportSQLiteOpenHelper;)Ljava/lang/Object;\nLandroidx/room/RoomDatabase$Builder;\nHSPLandroidx/room/RoomDatabase$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V\nPLandroidx/room/RoomDatabase$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V\nHSPLandroidx/room/RoomDatabase$Builder;->addCallback()V\nPLandroidx/room/RoomDatabase$Builder;->addCallback()V\nHSPLandroidx/room/RoomDatabase$Builder;->addMigrations([Landroidx/room/migration/Migration;)V\nPLandroidx/room/RoomDatabase$Builder;->addMigrations([Landroidx/room/migration/Migration;)V\nHSPLandroidx/room/RoomDatabase$Builder;->build()Landroidx/room/RoomDatabase;\nPLandroidx/room/RoomDatabase$Builder;->build()Landroidx/room/RoomDatabase;\nHSPLandroidx/room/RoomDatabase$Builder;->fallbackToDestructiveMigration()V\nPLandroidx/room/RoomDatabase$Builder;->fallbackToDestructiveMigration()V\nHSPLandroidx/room/RoomDatabase$Builder;->openHelperFactory(Landroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;)V\nPLandroidx/room/RoomDatabase$Builder;->openHelperFactory(Landroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;)V\nHSPLandroidx/room/RoomDatabase$Builder;->setQueryExecutor(Landroidx/work/impl/utils/SerialExecutorImpl;)V\nPLandroidx/room/RoomDatabase$Builder;->setQueryExecutor(Landroidx/work/impl/utils/SerialExecutorImpl;)V\nLandroidx/room/RoomDatabase$Callback;\nHSPLandroidx/room/RoomDatabase$Callback;-><init>()V\nPLandroidx/room/RoomDatabase$Callback;-><init>()V\nLandroidx/room/RoomDatabase$JournalMode;\nHSPLandroidx/room/RoomDatabase$JournalMode;-><clinit>()V\nPLandroidx/room/RoomDatabase$JournalMode;-><clinit>()V\nHSPLandroidx/room/RoomDatabase$JournalMode;-><init>(Ljava/lang/String;I)V\nPLandroidx/room/RoomDatabase$JournalMode;-><init>(Ljava/lang/String;I)V\nLandroidx/room/RoomDatabase$MigrationContainer;\nHSPLandroidx/room/RoomDatabase$MigrationContainer;-><init>()V\nPLandroidx/room/RoomDatabase$MigrationContainer;-><init>()V\nHSPLandroidx/room/RoomDatabase$MigrationContainer;->addMigrations([Landroidx/room/migration/Migration;)V\nPLandroidx/room/RoomDatabase$MigrationContainer;->addMigrations([Landroidx/room/migration/Migration;)V\nHSPLandroidx/room/RoomDatabase$MigrationContainer;->contains(II)Z\nPLandroidx/room/RoomDatabase$MigrationContainer;->contains(II)Z\nLandroidx/room/RoomOpenHelper;\nHSPLandroidx/room/RoomOpenHelper;-><init>(Landroidx/room/DatabaseConfiguration;Landroidx/room/RoomOpenHelper$Delegate;)V\nPLandroidx/room/RoomOpenHelper;-><init>(Landroidx/room/DatabaseConfiguration;Landroidx/room/RoomOpenHelper$Delegate;)V\nHSPLandroidx/room/RoomOpenHelper;->onConfigure(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/RoomOpenHelper;->onConfigure(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/room/RoomOpenHelper;->onCreate(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/RoomOpenHelper;->onCreate(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/room/RoomOpenHelper;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/RoomOpenHelper;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/room/RoomOpenHelper;->updateIdentity(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/room/RoomOpenHelper;->updateIdentity(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nLandroidx/room/RoomOpenHelper$Delegate;\nHSPLandroidx/room/RoomOpenHelper$Delegate;-><init>()V\nPLandroidx/room/RoomOpenHelper$Delegate;-><init>()V\nLandroidx/room/RoomSQLiteQuery;\nHSPLandroidx/room/RoomSQLiteQuery;-><clinit>()V\nPLandroidx/room/RoomSQLiteQuery;-><clinit>()V\nHSPLandroidx/room/RoomSQLiteQuery;-><init>(I)V\nPLandroidx/room/RoomSQLiteQuery;-><init>(I)V\nHSPLandroidx/room/RoomSQLiteQuery;->acquire(ILjava/lang/String;)Landroidx/room/RoomSQLiteQuery;\nPLandroidx/room/RoomSQLiteQuery;->acquire(ILjava/lang/String;)Landroidx/room/RoomSQLiteQuery;\nHSPLandroidx/room/RoomSQLiteQuery;->bindLong(IJ)V\nPLandroidx/room/RoomSQLiteQuery;->bindLong(IJ)V\nHSPLandroidx/room/RoomSQLiteQuery;->bindString(ILjava/lang/String;)V\nPLandroidx/room/RoomSQLiteQuery;->bindString(ILjava/lang/String;)V\nHSPLandroidx/room/RoomSQLiteQuery;->bindTo(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nPLandroidx/room/RoomSQLiteQuery;->bindTo(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nHSPLandroidx/room/RoomSQLiteQuery;->getSql()Ljava/lang/String;\nPLandroidx/room/RoomSQLiteQuery;->getSql()Ljava/lang/String;\nHSPLandroidx/room/RoomSQLiteQuery;->init(ILjava/lang/String;)V\nPLandroidx/room/RoomSQLiteQuery;->init(ILjava/lang/String;)V\nHSPLandroidx/room/RoomSQLiteQuery;->release()V\nPLandroidx/room/RoomSQLiteQuery;->release()V\nLandroidx/room/SQLiteCopyOpenHelper;\nLandroidx/room/SharedSQLiteStatement;\nHSPLandroidx/room/SharedSQLiteStatement;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/room/SharedSQLiteStatement;-><init>(Landroidx/room/RoomDatabase;)V\nHSPLandroidx/room/SharedSQLiteStatement;->access$createNewStatement(Landroidx/room/SharedSQLiteStatement;)Landroidx/sqlite/db/SupportSQLiteStatement;\nPLandroidx/room/SharedSQLiteStatement;->access$createNewStatement(Landroidx/room/SharedSQLiteStatement;)Landroidx/sqlite/db/SupportSQLiteStatement;\nHSPLandroidx/room/SharedSQLiteStatement;->acquire()Landroidx/sqlite/db/SupportSQLiteStatement;\nPLandroidx/room/SharedSQLiteStatement;->acquire()Landroidx/sqlite/db/SupportSQLiteStatement;\nHSPLandroidx/room/SharedSQLiteStatement;->createNewStatement()Landroidx/sqlite/db/SupportSQLiteStatement;\nPLandroidx/room/SharedSQLiteStatement;->createNewStatement()Landroidx/sqlite/db/SupportSQLiteStatement;\nHSPLandroidx/room/SharedSQLiteStatement;->release(Landroidx/sqlite/db/SupportSQLiteStatement;)V\nPLandroidx/room/SharedSQLiteStatement;->release(Landroidx/sqlite/db/SupportSQLiteStatement;)V\nLandroidx/room/SharedSQLiteStatement$stmt$2;\nHSPLandroidx/room/SharedSQLiteStatement$stmt$2;-><init>(Landroidx/room/SharedSQLiteStatement;)V\nPLandroidx/room/SharedSQLiteStatement$stmt$2;-><init>(Landroidx/room/SharedSQLiteStatement;)V\nHSPLandroidx/room/SharedSQLiteStatement$stmt$2;->invoke()Ljava/lang/Object;\nPLandroidx/room/SharedSQLiteStatement$stmt$2;->invoke()Ljava/lang/Object;\nLandroidx/room/TransactionExecutor;\nHSPLandroidx/room/TransactionExecutor;-><init>(Ljava/util/concurrent/Executor;)V\nPLandroidx/room/TransactionExecutor;-><init>(Ljava/util/concurrent/Executor;)V\nLandroidx/room/migration/Migration;\nHSPLandroidx/room/migration/Migration;-><init>(II)V\nPLandroidx/room/migration/Migration;-><init>(II)V\nLandroidx/savedstate/Recreator;\nHSPLandroidx/savedstate/Recreator;-><init>(Landroidx/savedstate/SavedStateRegistryOwner;)V\nPLandroidx/savedstate/Recreator;-><init>(Landroidx/savedstate/SavedStateRegistryOwner;)V\nHSPLandroidx/savedstate/Recreator;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/savedstate/Recreator;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/savedstate/SavedStateRegistry;\nHSPLandroidx/savedstate/SavedStateRegistry;->$r8$lambda$AUDDdpkzZrJMhBj0r-_9pI-j6hA(Landroidx/savedstate/SavedStateRegistry;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/savedstate/SavedStateRegistry;->$r8$lambda$AUDDdpkzZrJMhBj0r-_9pI-j6hA(Landroidx/savedstate/SavedStateRegistry;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHSPLandroidx/savedstate/SavedStateRegistry;-><init>()V\nPLandroidx/savedstate/SavedStateRegistry;-><init>()V\nHSPLandroidx/savedstate/SavedStateRegistry;->consumeRestoredStateForKey(Ljava/lang/String;)Landroid/os/Bundle;\nHPLandroidx/savedstate/SavedStateRegistry;->consumeRestoredStateForKey(Ljava/lang/String;)Landroid/os/Bundle;\nHSPLandroidx/savedstate/SavedStateRegistry;->getSavedStateProvider()Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;\nPLandroidx/savedstate/SavedStateRegistry;->getSavedStateProvider()Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;\nHSPLandroidx/savedstate/SavedStateRegistry;->performAttach$savedstate_release(Landroidx/lifecycle/Lifecycle;)V\nPLandroidx/savedstate/SavedStateRegistry;->performAttach$savedstate_release(Landroidx/lifecycle/Lifecycle;)V\nHSPLandroidx/savedstate/SavedStateRegistry;->performRestore$savedstate_release(Landroid/os/Bundle;)V\nPLandroidx/savedstate/SavedStateRegistry;->performRestore$savedstate_release(Landroid/os/Bundle;)V\nHSPLandroidx/savedstate/SavedStateRegistry;->performSave(Landroid/os/Bundle;)V\nHPLandroidx/savedstate/SavedStateRegistry;->performSave(Landroid/os/Bundle;)V\nHSPLandroidx/savedstate/SavedStateRegistry;->registerSavedStateProvider(Ljava/lang/String;Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;)V\nHPLandroidx/savedstate/SavedStateRegistry;->registerSavedStateProvider(Ljava/lang/String;Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;)V\nPLandroidx/savedstate/SavedStateRegistry;->unregisterSavedStateProvider(Ljava/lang/String;)V\nLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;\nHSPLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;-><init>(Landroidx/savedstate/SavedStateRegistry;)V\nPLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;-><init>(Landroidx/savedstate/SavedStateRegistry;)V\nHSPLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nHPLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V\nLandroidx/savedstate/SavedStateRegistry$SavedStateProvider;\nLandroidx/savedstate/SavedStateRegistryController;\nHSPLandroidx/savedstate/SavedStateRegistryController;-><init>(Landroidx/savedstate/SavedStateRegistryOwner;)V\nPLandroidx/savedstate/SavedStateRegistryController;-><init>(Landroidx/savedstate/SavedStateRegistryOwner;)V\nHSPLandroidx/savedstate/SavedStateRegistryController;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;\nPLandroidx/savedstate/SavedStateRegistryController;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;\nHSPLandroidx/savedstate/SavedStateRegistryController;->performAttach()V\nPLandroidx/savedstate/SavedStateRegistryController;->performAttach()V\nHSPLandroidx/savedstate/SavedStateRegistryController;->performRestore(Landroid/os/Bundle;)V\nPLandroidx/savedstate/SavedStateRegistryController;->performRestore(Landroid/os/Bundle;)V\nHSPLandroidx/savedstate/SavedStateRegistryController;->performSave(Landroid/os/Bundle;)V\nHPLandroidx/savedstate/SavedStateRegistryController;->performSave(Landroid/os/Bundle;)V\nLandroidx/savedstate/SavedStateRegistryOwner;\nLandroidx/savedstate/ViewTreeSavedStateRegistryOwner;\nHSPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner;->get(Landroid/view/View;)Landroidx/savedstate/SavedStateRegistryOwner;\nPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner;->get(Landroid/view/View;)Landroidx/savedstate/SavedStateRegistryOwner;\nHSPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner;->set(Landroid/view/View;Landroidx/savedstate/SavedStateRegistryOwner;)V\nPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner;->set(Landroid/view/View;Landroidx/savedstate/SavedStateRegistryOwner;)V\nLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;\nHSPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;-><clinit>()V\nPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;-><clinit>()V\nHSPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;-><init>(I)V\nPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;-><init>(I)V\nHSPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/sqlite/db/SimpleSQLiteQuery;\nHSPLandroidx/sqlite/db/SimpleSQLiteQuery;-><init>(Ljava/lang/String;)V\nPLandroidx/sqlite/db/SimpleSQLiteQuery;-><init>(Ljava/lang/String;)V\nHSPLandroidx/sqlite/db/SimpleSQLiteQuery;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V\nPLandroidx/sqlite/db/SimpleSQLiteQuery;-><init>(Ljava/lang/String;[Ljava/lang/Object;)V\nHSPLandroidx/sqlite/db/SimpleSQLiteQuery;->bindTo(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nPLandroidx/sqlite/db/SimpleSQLiteQuery;->bindTo(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nHSPLandroidx/sqlite/db/SimpleSQLiteQuery;->getSql()Ljava/lang/String;\nPLandroidx/sqlite/db/SimpleSQLiteQuery;->getSql()Ljava/lang/String;\nLandroidx/sqlite/db/SupportSQLiteDatabase;\nLandroidx/sqlite/db/SupportSQLiteOpenHelper;\nLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;-><clinit>()V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;-><clinit>()V\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;-><init>(I)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;-><init>(I)V\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;->onConfigure(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;->onConfigure(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback$Companion;\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback$Companion;-><init>()V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Callback$Companion;-><init>()V\nLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;ZZ)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;ZZ)V\nLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;-><init>(Landroid/content/Context;)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;-><init>(Landroid/content/Context;)V\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->allowDataLossOnRecovery()V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->allowDataLossOnRecovery()V\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->build()Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->build()Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->callback(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->callback(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;)V\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->name(Ljava/lang/String;)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->name(Ljava/lang/String;)V\nHSPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->noBackupDirectory(Z)V\nPLandroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder;->noBackupDirectory(Z)V\nLandroidx/sqlite/db/SupportSQLiteOpenHelper$Factory;\nLandroidx/sqlite/db/SupportSQLiteProgram;\nLandroidx/sqlite/db/SupportSQLiteQuery;\nLandroidx/sqlite/db/SupportSQLiteStatement;\nLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;-><clinit>()V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;-><clinit>()V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;-><init>(Landroid/database/sqlite/SQLiteDatabase;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;-><init>(Landroid/database/sqlite/SQLiteDatabase;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->beginTransaction()V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->beginTransaction()V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->beginTransactionNonExclusive()V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->beginTransactionNonExclusive()V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroidx/sqlite/db/SupportSQLiteStatement;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroidx/sqlite/db/SupportSQLiteStatement;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->endTransaction()V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->endTransaction()V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->execSQL(Ljava/lang/String;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->execSQL(Ljava/lang/String;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->inTransaction()Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->inTransaction()Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->isDelegate(Landroid/database/sqlite/SQLiteDatabase;)Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->isDelegate(Landroid/database/sqlite/SQLiteDatabase;)Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->isOpen()Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->isOpen()Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->isWriteAheadLoggingEnabled()Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->isWriteAheadLoggingEnabled()Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;)Landroid/database/Cursor;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;)Landroid/database/Cursor;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->query(Ljava/lang/String;)Landroid/database/Cursor;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->query(Ljava/lang/String;)Landroid/database/Cursor;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->setTransactionSuccessful()V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase;->setTransactionSuccessful()V\nLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$$ExternalSyntheticLambda0;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$$ExternalSyntheticLambda0;->newCursor(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)Landroid/database/Cursor;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$$ExternalSyntheticLambda0;->newCursor(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)Landroid/database/Cursor;\nLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$Companion;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$Companion;->getWrappedDb(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;Landroid/database/sqlite/SQLiteDatabase;)Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$Companion;->getWrappedDb(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;Landroid/database/sqlite/SQLiteDatabase;)Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$query$cursorFactory$1;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$query$cursorFactory$1;-><init>(Landroidx/sqlite/db/SupportSQLiteQuery;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$query$cursorFactory$1;-><init>(Landroidx/sqlite/db/SupportSQLiteQuery;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$query$cursorFactory$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteDatabase$query$cursorFactory$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;ZZ)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;ZZ)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getAllowDataLossOnRecovery$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getAllowDataLossOnRecovery$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getCallback$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getCallback$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getContext$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Landroid/content/Context;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getContext$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Landroid/content/Context;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getName$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Ljava/lang/String;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getName$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Ljava/lang/String;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getUseNoBackupDirectory$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getUseNoBackupDirectory$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getWriteAheadLoggingEnabled$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Z\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->access$getWriteAheadLoggingEnabled$p(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)Z\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->getWritableDatabase()Landroidx/sqlite/db/SupportSQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->getWritableDatabase()Landroidx/sqlite/db/SupportSQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->setWriteAheadLoggingEnabled(Z)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;->setWriteAheadLoggingEnabled(Z)V\nLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;-><init>()V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;-><init>()V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;->getDb()Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;->getDb()Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;->setDb(Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;->setDb(Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;)V\nLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;Z)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;Z)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->getSupportDatabase(Z)Landroidx/sqlite/db/SupportSQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->getSupportDatabase(Z)Landroidx/sqlite/db/SupportSQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->getWrappedDb(Landroid/database/sqlite/SQLiteDatabase;)Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->getWrappedDb(Landroid/database/sqlite/SQLiteDatabase;)Landroidx/sqlite/db/framework/FrameworkSQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->getWritableOrReadableDatabase(Z)Landroid/database/sqlite/SQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->getWritableOrReadableDatabase(Z)Landroid/database/sqlite/SQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->innerGetDatabase(Z)Landroid/database/sqlite/SQLiteDatabase;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->innerGetDatabase(Z)Landroid/database/sqlite/SQLiteDatabase;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->onConfigure(Landroid/database/sqlite/SQLiteDatabase;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->onConfigure(Landroid/database/sqlite/SQLiteDatabase;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->onCreate(Landroid/database/sqlite/SQLiteDatabase;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->onCreate(Landroid/database/sqlite/SQLiteDatabase;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V\nLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$$ExternalSyntheticLambda0;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$$ExternalSyntheticLambda0;-><init>(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$$ExternalSyntheticLambda0;-><init>(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder;)V\nLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$CallbackException;\nLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$lazyDelegate$1;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$lazyDelegate$1;-><init>(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$lazyDelegate$1;-><init>(Landroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$lazyDelegate$1;->invoke()Ljava/lang/Object;\nPLandroidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$lazyDelegate$1;->invoke()Ljava/lang/Object;\nLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteProgram;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteProgram;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindBlob(I[B)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindBlob(I[B)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindLong(IJ)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindLong(IJ)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindNull(I)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindNull(I)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindString(ILjava/lang/String;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteProgram;->bindString(ILjava/lang/String;)V\nLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteStatement;)V\nPLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteStatement;)V\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;->executeInsert()J\nPLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;->executeInsert()J\nHSPLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;->executeUpdateDelete()I\nPLandroidx/sqlite/db/framework/FrameworkSQLiteStatement;->executeUpdateDelete()I\nLandroidx/sqlite/util/ProcessLock;\nHSPLandroidx/sqlite/util/ProcessLock;-><clinit>()V\nPLandroidx/sqlite/util/ProcessLock;-><clinit>()V\nHSPLandroidx/sqlite/util/ProcessLock;-><init>(Ljava/lang/String;Ljava/io/File;Z)V\nPLandroidx/sqlite/util/ProcessLock;-><init>(Ljava/lang/String;Ljava/io/File;Z)V\nHSPLandroidx/sqlite/util/ProcessLock;->lock(Z)V\nPLandroidx/sqlite/util/ProcessLock;->lock(Z)V\nHSPLandroidx/sqlite/util/ProcessLock;->unlock()V\nPLandroidx/sqlite/util/ProcessLock;->unlock()V\nLandroidx/startup/AppInitializer;\nHSPLandroidx/startup/AppInitializer;-><clinit>()V\nPLandroidx/startup/AppInitializer;-><clinit>()V\nHSPLandroidx/startup/AppInitializer;-><init>(Landroid/content/Context;)V\nPLandroidx/startup/AppInitializer;-><init>(Landroid/content/Context;)V\nHSPLandroidx/startup/AppInitializer;->discoverAndInitialize(Landroid/os/Bundle;)V\nPLandroidx/startup/AppInitializer;->discoverAndInitialize(Landroid/os/Bundle;)V\nHSPLandroidx/startup/AppInitializer;->doInitialize(Ljava/lang/Class;Ljava/util/HashSet;)Ljava/lang/Object;\nPLandroidx/startup/AppInitializer;->doInitialize(Ljava/lang/Class;Ljava/util/HashSet;)Ljava/lang/Object;\nHSPLandroidx/startup/AppInitializer;->getInstance(Landroid/content/Context;)Landroidx/startup/AppInitializer;\nPLandroidx/startup/AppInitializer;->getInstance(Landroid/content/Context;)Landroidx/startup/AppInitializer;\nHSPLandroidx/startup/AppInitializer;->initializeComponent()Ljava/lang/Object;\nPLandroidx/startup/AppInitializer;->initializeComponent()Ljava/lang/Object;\nHSPLandroidx/startup/AppInitializer;->isEagerlyInitialized()Z\nPLandroidx/startup/AppInitializer;->isEagerlyInitialized()Z\nLandroidx/startup/InitializationProvider;\nHSPLandroidx/startup/InitializationProvider;-><init>()V\nPLandroidx/startup/InitializationProvider;-><init>()V\nHSPLandroidx/startup/InitializationProvider;->onCreate()Z\nPLandroidx/startup/InitializationProvider;->onCreate()Z\nLandroidx/startup/Initializer;\nLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m()Z\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m()Z\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/Activity;Landroid/app/Application$ActivityLifecycleCallbacks;)V\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/Activity;Landroid/app/Application$ActivityLifecycleCallbacks;)V\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/Activity;Landroidx/lifecycle/ReportFragment$LifecycleCallbacks;)V\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/Activity;Landroidx/lifecycle/ReportFragment$LifecycleCallbacks;)V\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;)V\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;)V\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLParameters;[Ljava/lang/String;)V\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLParameters;[Ljava/lang/String;)V\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLSocket;)V\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLSocket;)V\nHSPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLSocket;)Z\nPLandroidx/tracing/Trace$$ExternalSyntheticApiModelOutline0;->m(Ljavax/net/ssl/SSLSocket;)Z\nLandroidx/vectordrawable/graphics/drawable/VectorDrawableCommon;\nLandroidx/vectordrawable/graphics/drawable/VectorDrawableCompat;\nLandroidx/work/BackoffPolicy;\nHSPLandroidx/work/BackoffPolicy;-><clinit>()V\nPLandroidx/work/BackoffPolicy;-><clinit>()V\nHSPLandroidx/work/BackoffPolicy;-><init>(Ljava/lang/String;I)V\nPLandroidx/work/BackoffPolicy;-><init>(Ljava/lang/String;I)V\nLandroidx/work/Configuration;\nHSPLandroidx/work/Configuration;-><init>(Lorg/acra/log/AndroidLogDelegate;)V\nPLandroidx/work/Configuration;-><init>(Lorg/acra/log/AndroidLogDelegate;)V\nHSPLandroidx/work/Configuration;->createDefaultExecutor(Z)Ljava/util/concurrent/ExecutorService;\nPLandroidx/work/Configuration;->createDefaultExecutor(Z)Ljava/util/concurrent/ExecutorService;\nHSPLandroidx/work/Configuration;->getMaxJobSchedulerId()I\nPLandroidx/work/Configuration;->getMaxJobSchedulerId()I\nHSPLandroidx/work/Configuration;->getMaxSchedulerLimit()I\nPLandroidx/work/Configuration;->getMaxSchedulerLimit()I\nHSPLandroidx/work/Configuration;->getMinimumLoggingLevel()I\nPLandroidx/work/Configuration;->getMinimumLoggingLevel()I\nHSPLandroidx/work/Configuration;->getRunnableScheduler()Landroidx/compose/runtime/Stack;\nPLandroidx/work/Configuration;->getRunnableScheduler()Landroidx/compose/runtime/Stack;\nHSPLandroidx/work/Configuration;->getTaskExecutor()Ljava/util/concurrent/ExecutorService;\nPLandroidx/work/Configuration;->getTaskExecutor()Ljava/util/concurrent/ExecutorService;\nLandroidx/work/Configuration$1;\nHSPLandroidx/work/Configuration$1;-><init>(Z)V\nPLandroidx/work/Configuration$1;-><init>(Z)V\nHSPLandroidx/work/Configuration$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;\nPLandroidx/work/Configuration$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;\nLandroidx/work/Constraints;\nHSPLandroidx/work/Constraints;-><clinit>()V\nPLandroidx/work/Constraints;-><clinit>()V\nHSPLandroidx/work/Constraints;-><init>(Landroidx/work/Constraints;)V\nPLandroidx/work/Constraints;-><init>(Landroidx/work/Constraints;)V\nHSPLandroidx/work/Constraints;-><init>(Landroidx/work/NetworkType;ZZI)V\nPLandroidx/work/Constraints;-><init>(Landroidx/work/NetworkType;ZZI)V\nHSPLandroidx/work/Constraints;-><init>(Landroidx/work/NetworkType;ZZZZJJLjava/util/Set;)V\nPLandroidx/work/Constraints;-><init>(Landroidx/work/NetworkType;ZZZZJJLjava/util/Set;)V\nHSPLandroidx/work/Constraints;->getContentTriggerMaxDelayMillis()J\nPLandroidx/work/Constraints;->getContentTriggerMaxDelayMillis()J\nHSPLandroidx/work/Constraints;->getContentTriggerUpdateDelayMillis()J\nPLandroidx/work/Constraints;->getContentTriggerUpdateDelayMillis()J\nHSPLandroidx/work/Constraints;->getContentUriTriggers()Ljava/util/Set;\nPLandroidx/work/Constraints;->getContentUriTriggers()Ljava/util/Set;\nHSPLandroidx/work/Constraints;->getRequiredNetworkType()Landroidx/work/NetworkType;\nPLandroidx/work/Constraints;->getRequiredNetworkType()Landroidx/work/NetworkType;\nHSPLandroidx/work/Constraints;->hasContentUriTriggers()Z\nPLandroidx/work/Constraints;->hasContentUriTriggers()Z\nHSPLandroidx/work/Constraints;->requiresBatteryNotLow()Z\nPLandroidx/work/Constraints;->requiresBatteryNotLow()Z\nHSPLandroidx/work/Constraints;->requiresCharging()Z\nPLandroidx/work/Constraints;->requiresCharging()Z\nHSPLandroidx/work/Constraints;->requiresDeviceIdle()Z\nPLandroidx/work/Constraints;->requiresDeviceIdle()Z\nHSPLandroidx/work/Constraints;->requiresStorageNotLow()Z\nPLandroidx/work/Constraints;->requiresStorageNotLow()Z\nLandroidx/work/CoroutineWorker;\nLandroidx/work/CoroutineWorker$$ExternalSyntheticLambda0;\nHSPLandroidx/work/CoroutineWorker$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nPLandroidx/work/CoroutineWorker$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nHSPLandroidx/work/CoroutineWorker$$ExternalSyntheticLambda0;->run()V\nPLandroidx/work/CoroutineWorker$$ExternalSyntheticLambda0;->run()V\nLandroidx/work/Data;\nHSPLandroidx/work/Data;-><clinit>()V\nPLandroidx/work/Data;-><clinit>()V\nHSPLandroidx/work/Data;-><init>(Landroidx/work/Data;)V\nPLandroidx/work/Data;-><init>(Landroidx/work/Data;)V\nHSPLandroidx/work/Data;-><init>(Ljava/util/HashMap;)V\nPLandroidx/work/Data;-><init>(Ljava/util/HashMap;)V\nHSPLandroidx/work/Data;->fromByteArray([B)Landroidx/work/Data;\nPLandroidx/work/Data;->fromByteArray([B)Landroidx/work/Data;\nHSPLandroidx/work/Data;->toByteArrayInternal(Landroidx/work/Data;)[B\nPLandroidx/work/Data;->toByteArrayInternal(Landroidx/work/Data;)[B\nLandroidx/work/Data$Builder;\nHSPLandroidx/work/Data$Builder;-><init>()V\nPLandroidx/work/Data$Builder;-><init>()V\nHSPLandroidx/work/Data$Builder;->build()Landroidx/work/Data;\nPLandroidx/work/Data$Builder;->build()Landroidx/work/Data;\nHSPLandroidx/work/Data$Builder;->put(Ljava/lang/Object;Ljava/lang/String;)V\nPLandroidx/work/Data$Builder;->put(Ljava/lang/Object;Ljava/lang/String;)V\nLandroidx/work/InputMergerFactory$1;\nHSPLandroidx/work/InputMergerFactory$1;-><init>()V\nPLandroidx/work/InputMergerFactory$1;-><init>()V\nLandroidx/work/ListenableWorker;\nLandroidx/work/Logger$LogcatLogger;\nHSPLandroidx/work/Logger$LogcatLogger;-><clinit>()V\nPLandroidx/work/Logger$LogcatLogger;-><clinit>()V\nHSPLandroidx/work/Logger$LogcatLogger;-><init>(I)V\nPLandroidx/work/Logger$LogcatLogger;-><init>(I)V\nHSPLandroidx/work/Logger$LogcatLogger;->debug(Ljava/lang/String;Ljava/lang/String;)V\nPLandroidx/work/Logger$LogcatLogger;->debug(Ljava/lang/String;Ljava/lang/String;)V\nHSPLandroidx/work/Logger$LogcatLogger;->get()Landroidx/work/Logger$LogcatLogger;\nPLandroidx/work/Logger$LogcatLogger;->get()Landroidx/work/Logger$LogcatLogger;\nHSPLandroidx/work/Logger$LogcatLogger;->setLogger(Landroidx/work/Logger$LogcatLogger;)V\nPLandroidx/work/Logger$LogcatLogger;->setLogger(Landroidx/work/Logger$LogcatLogger;)V\nHSPLandroidx/work/Logger$LogcatLogger;->tagWithPrefix(Ljava/lang/String;)Ljava/lang/String;\nPLandroidx/work/Logger$LogcatLogger;->tagWithPrefix(Ljava/lang/String;)Ljava/lang/String;\nLandroidx/work/NetworkType;\nHSPLandroidx/work/NetworkType;-><clinit>()V\nPLandroidx/work/NetworkType;-><clinit>()V\nHSPLandroidx/work/NetworkType;-><init>(Ljava/lang/String;I)V\nPLandroidx/work/NetworkType;-><init>(Ljava/lang/String;I)V\nLandroidx/work/Operation;\nHSPLandroidx/work/Operation;-><clinit>()V\nPLandroidx/work/Operation;-><clinit>()V\nLandroidx/work/Operation$State$FAILURE;\nLandroidx/work/Operation$State$IN_PROGRESS;\nHSPLandroidx/work/Operation$State$IN_PROGRESS;-><init>()V\nPLandroidx/work/Operation$State$IN_PROGRESS;-><init>()V\nLandroidx/work/Operation$State$SUCCESS;\nHSPLandroidx/work/Operation$State$SUCCESS;-><init>()V\nPLandroidx/work/Operation$State$SUCCESS;-><init>()V\nLandroidx/work/OutOfQuotaPolicy;\nHSPLandroidx/work/OutOfQuotaPolicy;-><clinit>()V\nPLandroidx/work/OutOfQuotaPolicy;-><clinit>()V\nHSPLandroidx/work/OutOfQuotaPolicy;-><init>(Ljava/lang/String;I)V\nPLandroidx/work/OutOfQuotaPolicy;-><init>(Ljava/lang/String;I)V\nLandroidx/work/PeriodicWorkRequest;\nHSPLandroidx/work/PeriodicWorkRequest;-><init>(Landroidx/work/PeriodicWorkRequest$Builder;)V\nPLandroidx/work/PeriodicWorkRequest;-><init>(Landroidx/work/PeriodicWorkRequest$Builder;)V\nLandroidx/work/PeriodicWorkRequest$Builder;\nHSPLandroidx/work/PeriodicWorkRequest$Builder;-><init>(Ljava/lang/Class;JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit;)V\nPLandroidx/work/PeriodicWorkRequest$Builder;-><init>(Ljava/lang/Class;JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit;)V\nHSPLandroidx/work/PeriodicWorkRequest$Builder;->buildInternal$work_runtime_release()Landroidx/work/WorkRequest;\nPLandroidx/work/PeriodicWorkRequest$Builder;->buildInternal$work_runtime_release()Landroidx/work/WorkRequest;\nHSPLandroidx/work/PeriodicWorkRequest$Builder;->getThisObject$work_runtime_release()Landroidx/work/WorkRequest$Builder;\nPLandroidx/work/PeriodicWorkRequest$Builder;->getThisObject$work_runtime_release()Landroidx/work/WorkRequest$Builder;\nLandroidx/work/WorkInfo$State;\nHSPLandroidx/work/WorkInfo$State;-><clinit>()V\nPLandroidx/work/WorkInfo$State;-><clinit>()V\nHSPLandroidx/work/WorkInfo$State;-><init>(Ljava/lang/String;I)V\nPLandroidx/work/WorkInfo$State;-><init>(Ljava/lang/String;I)V\nLandroidx/work/WorkManager;\nHSPLandroidx/work/WorkManager;-><init>()V\nPLandroidx/work/WorkManager;-><init>()V\nLandroidx/work/WorkManagerInitializer;\nHSPLandroidx/work/WorkManagerInitializer;-><clinit>()V\nPLandroidx/work/WorkManagerInitializer;-><clinit>()V\nHSPLandroidx/work/WorkManagerInitializer;-><init>()V\nPLandroidx/work/WorkManagerInitializer;-><init>()V\nHSPLandroidx/work/WorkManagerInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nPLandroidx/work/WorkManagerInitializer;->create(Landroid/content/Context;)Ljava/lang/Object;\nHSPLandroidx/work/WorkManagerInitializer;->dependencies()Ljava/util/List;\nPLandroidx/work/WorkManagerInitializer;->dependencies()Ljava/util/List;\nLandroidx/work/WorkRequest;\nHSPLandroidx/work/WorkRequest;-><init>(Ljava/util/UUID;Landroidx/work/impl/model/WorkSpec;Ljava/util/Set;)V\nPLandroidx/work/WorkRequest;-><init>(Ljava/util/UUID;Landroidx/work/impl/model/WorkSpec;Ljava/util/Set;)V\nHSPLandroidx/work/WorkRequest;->getStringId()Ljava/lang/String;\nPLandroidx/work/WorkRequest;->getStringId()Ljava/lang/String;\nHSPLandroidx/work/WorkRequest;->getTags()Ljava/util/Set;\nPLandroidx/work/WorkRequest;->getTags()Ljava/util/Set;\nHSPLandroidx/work/WorkRequest;->getWorkSpec()Landroidx/work/impl/model/WorkSpec;\nPLandroidx/work/WorkRequest;->getWorkSpec()Landroidx/work/impl/model/WorkSpec;\nLandroidx/work/WorkRequest$Builder;\nHSPLandroidx/work/WorkRequest$Builder;-><init>(Ljava/lang/Class;)V\nPLandroidx/work/WorkRequest$Builder;-><init>(Ljava/lang/Class;)V\nHSPLandroidx/work/WorkRequest$Builder;->addTag(Ljava/lang/String;)Landroidx/work/WorkRequest$Builder;\nPLandroidx/work/WorkRequest$Builder;->addTag(Ljava/lang/String;)Landroidx/work/WorkRequest$Builder;\nHSPLandroidx/work/WorkRequest$Builder;->build()Landroidx/work/WorkRequest;\nPLandroidx/work/WorkRequest$Builder;->build()Landroidx/work/WorkRequest;\nHSPLandroidx/work/WorkRequest$Builder;->getBackoffCriteriaSet$work_runtime_release()Z\nPLandroidx/work/WorkRequest$Builder;->getBackoffCriteriaSet$work_runtime_release()Z\nHSPLandroidx/work/WorkRequest$Builder;->getId$work_runtime_release()Ljava/util/UUID;\nPLandroidx/work/WorkRequest$Builder;->getId$work_runtime_release()Ljava/util/UUID;\nHSPLandroidx/work/WorkRequest$Builder;->getTags$work_runtime_release()Ljava/util/Set;\nPLandroidx/work/WorkRequest$Builder;->getTags$work_runtime_release()Ljava/util/Set;\nHSPLandroidx/work/WorkRequest$Builder;->getWorkSpec$work_runtime_release()Landroidx/work/impl/model/WorkSpec;\nPLandroidx/work/WorkRequest$Builder;->getWorkSpec$work_runtime_release()Landroidx/work/impl/model/WorkSpec;\nHSPLandroidx/work/WorkRequest$Builder;->setBackoffCriteria(Lj$/time/Duration;)Landroidx/work/WorkRequest$Builder;\nPLandroidx/work/WorkRequest$Builder;->setBackoffCriteria(Lj$/time/Duration;)Landroidx/work/WorkRequest$Builder;\nHSPLandroidx/work/WorkRequest$Builder;->setInputData(Landroidx/work/Data;)Landroidx/work/WorkRequest$Builder;\nPLandroidx/work/WorkRequest$Builder;->setInputData(Landroidx/work/Data;)Landroidx/work/WorkRequest$Builder;\nLandroidx/work/WorkerFactory;\nHSPLandroidx/work/WorkerFactory;-><clinit>()V\nPLandroidx/work/WorkerFactory;-><clinit>()V\nHSPLandroidx/work/WorkerFactory;-><init>()V\nPLandroidx/work/WorkerFactory;-><init>()V\nLandroidx/work/WorkerFactory$1;\nHSPLandroidx/work/WorkerFactory$1;-><init>()V\nPLandroidx/work/WorkerFactory$1;-><init>()V\nLandroidx/work/impl/CleanupCallback;\nHSPLandroidx/work/impl/CleanupCallback;-><clinit>()V\nPLandroidx/work/impl/CleanupCallback;-><clinit>()V\nHSPLandroidx/work/impl/CleanupCallback;-><init>()V\nPLandroidx/work/impl/CleanupCallback;-><init>()V\nLandroidx/work/impl/ExecutionListener;\nLandroidx/work/impl/Migration_11_12;\nHSPLandroidx/work/impl/Migration_11_12;-><clinit>()V\nPLandroidx/work/impl/Migration_11_12;-><clinit>()V\nHSPLandroidx/work/impl/Migration_11_12;-><init>()V\nPLandroidx/work/impl/Migration_11_12;-><init>()V\nLandroidx/work/impl/Migration_12_13;\nHSPLandroidx/work/impl/Migration_12_13;-><clinit>()V\nPLandroidx/work/impl/Migration_12_13;-><clinit>()V\nHSPLandroidx/work/impl/Migration_12_13;-><init>()V\nPLandroidx/work/impl/Migration_12_13;-><init>()V\nLandroidx/work/impl/Migration_15_16;\nHSPLandroidx/work/impl/Migration_15_16;-><clinit>()V\nPLandroidx/work/impl/Migration_15_16;-><clinit>()V\nHSPLandroidx/work/impl/Migration_15_16;-><init>()V\nPLandroidx/work/impl/Migration_15_16;-><init>()V\nLandroidx/work/impl/Migration_1_2;\nHSPLandroidx/work/impl/Migration_1_2;-><clinit>()V\nPLandroidx/work/impl/Migration_1_2;-><clinit>()V\nHSPLandroidx/work/impl/Migration_1_2;-><init>()V\nPLandroidx/work/impl/Migration_1_2;-><init>()V\nLandroidx/work/impl/Migration_3_4;\nHSPLandroidx/work/impl/Migration_3_4;-><clinit>()V\nPLandroidx/work/impl/Migration_3_4;-><clinit>()V\nHSPLandroidx/work/impl/Migration_3_4;-><init>()V\nPLandroidx/work/impl/Migration_3_4;-><init>()V\nLandroidx/work/impl/Migration_4_5;\nHSPLandroidx/work/impl/Migration_4_5;-><clinit>()V\nPLandroidx/work/impl/Migration_4_5;-><clinit>()V\nHSPLandroidx/work/impl/Migration_4_5;-><init>()V\nPLandroidx/work/impl/Migration_4_5;-><init>()V\nLandroidx/work/impl/Migration_6_7;\nHSPLandroidx/work/impl/Migration_6_7;-><clinit>()V\nPLandroidx/work/impl/Migration_6_7;-><clinit>()V\nHSPLandroidx/work/impl/Migration_6_7;-><init>()V\nPLandroidx/work/impl/Migration_6_7;-><init>()V\nLandroidx/work/impl/Migration_7_8;\nHSPLandroidx/work/impl/Migration_7_8;-><clinit>()V\nPLandroidx/work/impl/Migration_7_8;-><clinit>()V\nHSPLandroidx/work/impl/Migration_7_8;-><init>()V\nPLandroidx/work/impl/Migration_7_8;-><init>()V\nLandroidx/work/impl/Migration_8_9;\nHSPLandroidx/work/impl/Migration_8_9;-><clinit>()V\nPLandroidx/work/impl/Migration_8_9;-><clinit>()V\nHSPLandroidx/work/impl/Migration_8_9;-><init>()V\nPLandroidx/work/impl/Migration_8_9;-><init>()V\nLandroidx/work/impl/OperationImpl;\nHSPLandroidx/work/impl/OperationImpl;-><init>()V\nPLandroidx/work/impl/OperationImpl;-><init>()V\nHSPLandroidx/work/impl/OperationImpl;->markState(Landroidx/work/WorkManager;)V\nPLandroidx/work/impl/OperationImpl;->markState(Landroidx/work/WorkManager;)V\nLandroidx/work/impl/Processor;\nHSPLandroidx/work/impl/Processor;-><clinit>()V\nPLandroidx/work/impl/Processor;-><clinit>()V\nHSPLandroidx/work/impl/Processor;-><init>(Landroid/content/Context;Landroidx/work/Configuration;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;Landroidx/work/impl/WorkDatabase;Ljava/util/List;)V\nPLandroidx/work/impl/Processor;-><init>(Landroid/content/Context;Landroidx/work/Configuration;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;Landroidx/work/impl/WorkDatabase;Ljava/util/List;)V\nHSPLandroidx/work/impl/Processor;->addExecutionListener(Landroidx/work/impl/ExecutionListener;)V\nPLandroidx/work/impl/Processor;->addExecutionListener(Landroidx/work/impl/ExecutionListener;)V\nLandroidx/work/impl/Scheduler;\nLandroidx/work/impl/Schedulers;\nHSPLandroidx/work/impl/Schedulers;-><clinit>()V\nPLandroidx/work/impl/Schedulers;-><clinit>()V\nHSPLandroidx/work/impl/Schedulers;->createBestAvailableBackgroundScheduler(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)Landroidx/work/impl/background/systemjob/SystemJobScheduler;\nPLandroidx/work/impl/Schedulers;->createBestAvailableBackgroundScheduler(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)Landroidx/work/impl/background/systemjob/SystemJobScheduler;\nHSPLandroidx/work/impl/Schedulers;->schedule(Landroidx/work/Configuration;Landroidx/work/impl/WorkDatabase;Ljava/util/List;)V\nPLandroidx/work/impl/Schedulers;->schedule(Landroidx/work/Configuration;Landroidx/work/impl/WorkDatabase;Ljava/util/List;)V\nLandroidx/work/impl/WorkContinuationImpl;\nHSPLandroidx/work/impl/WorkContinuationImpl;-><clinit>()V\nPLandroidx/work/impl/WorkContinuationImpl;-><clinit>()V\nHSPLandroidx/work/impl/WorkContinuationImpl;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;ILjava/util/List;)V\nPLandroidx/work/impl/WorkContinuationImpl;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;ILjava/util/List;)V\nHSPLandroidx/work/impl/WorkContinuationImpl;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;ILjava/util/List;I)V\nPLandroidx/work/impl/WorkContinuationImpl;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;ILjava/util/List;I)V\nHSPLandroidx/work/impl/WorkContinuationImpl;->getExistingWorkPolicy$enumunboxing$()I\nPLandroidx/work/impl/WorkContinuationImpl;->getExistingWorkPolicy$enumunboxing$()I\nHSPLandroidx/work/impl/WorkContinuationImpl;->getName()Ljava/lang/String;\nPLandroidx/work/impl/WorkContinuationImpl;->getName()Ljava/lang/String;\nHSPLandroidx/work/impl/WorkContinuationImpl;->getWork()Ljava/util/List;\nPLandroidx/work/impl/WorkContinuationImpl;->getWork()Ljava/util/List;\nHSPLandroidx/work/impl/WorkContinuationImpl;->getWorkManagerImpl()Landroidx/work/impl/WorkManagerImpl;\nPLandroidx/work/impl/WorkContinuationImpl;->getWorkManagerImpl()Landroidx/work/impl/WorkManagerImpl;\nHSPLandroidx/work/impl/WorkContinuationImpl;->hasCycles()Z\nPLandroidx/work/impl/WorkContinuationImpl;->hasCycles()Z\nHSPLandroidx/work/impl/WorkContinuationImpl;->hasCycles(Landroidx/work/impl/WorkContinuationImpl;Ljava/util/HashSet;)Z\nPLandroidx/work/impl/WorkContinuationImpl;->hasCycles(Landroidx/work/impl/WorkContinuationImpl;Ljava/util/HashSet;)Z\nHSPLandroidx/work/impl/WorkContinuationImpl;->markEnqueued()V\nPLandroidx/work/impl/WorkContinuationImpl;->markEnqueued()V\nHSPLandroidx/work/impl/WorkContinuationImpl;->prerequisitesFor(Landroidx/work/impl/WorkContinuationImpl;)Ljava/util/HashSet;\nPLandroidx/work/impl/WorkContinuationImpl;->prerequisitesFor(Landroidx/work/impl/WorkContinuationImpl;)Ljava/util/HashSet;\nLandroidx/work/impl/WorkDatabase;\nHSPLandroidx/work/impl/WorkDatabase;-><init>()V\nPLandroidx/work/impl/WorkDatabase;-><init>()V\nLandroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;\nHSPLandroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;)V\nPLandroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;)V\nHSPLandroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;->create(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nPLandroidx/work/impl/WorkDatabase$Companion$$ExternalSyntheticLambda0;->create(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nLandroidx/work/impl/WorkDatabaseKt;\nHSPLandroidx/work/impl/WorkDatabaseKt;-><clinit>()V\nPLandroidx/work/impl/WorkDatabaseKt;-><clinit>()V\nHSPLandroidx/work/impl/WorkDatabaseKt;->access$getPRUNE_THRESHOLD_MILLIS$p()J\nPLandroidx/work/impl/WorkDatabaseKt;->access$getPRUNE_THRESHOLD_MILLIS$p()J\nLandroidx/work/impl/WorkDatabase_AutoMigration_13_14_Impl;\nHSPLandroidx/work/impl/WorkDatabase_AutoMigration_13_14_Impl;-><init>()V\nPLandroidx/work/impl/WorkDatabase_AutoMigration_13_14_Impl;-><init>()V\nLandroidx/work/impl/WorkDatabase_Impl;\nHSPLandroidx/work/impl/WorkDatabase_Impl;-><init>()V\nPLandroidx/work/impl/WorkDatabase_Impl;-><init>()V\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$1000(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->access$1000(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$300(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->access$300(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$400(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->access$400(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$500(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->access$500(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$602(Landroidx/work/impl/WorkDatabase_Impl;Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/work/impl/WorkDatabase_Impl;->access$602(Landroidx/work/impl/WorkDatabase_Impl;Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$700(Landroidx/work/impl/WorkDatabase_Impl;Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/work/impl/WorkDatabase_Impl;->access$700(Landroidx/work/impl/WorkDatabase_Impl;Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$800(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->access$800(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->access$900(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->access$900(Landroidx/work/impl/WorkDatabase_Impl;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->createInvalidationTracker()Landroidx/room/InvalidationTracker;\nPLandroidx/work/impl/WorkDatabase_Impl;->createInvalidationTracker()Landroidx/room/InvalidationTracker;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->createOpenHelper(Landroidx/room/DatabaseConfiguration;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nPLandroidx/work/impl/WorkDatabase_Impl;->createOpenHelper(Landroidx/room/DatabaseConfiguration;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->getAutoMigrations(Ljava/util/LinkedHashMap;)Ljava/util/List;\nPLandroidx/work/impl/WorkDatabase_Impl;->getAutoMigrations(Ljava/util/LinkedHashMap;)Ljava/util/List;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->getRequiredAutoMigrationSpecs()Ljava/util/Set;\nPLandroidx/work/impl/WorkDatabase_Impl;->getRequiredAutoMigrationSpecs()Ljava/util/Set;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->getRequiredTypeConverters()Ljava/util/Map;\nPLandroidx/work/impl/WorkDatabase_Impl;->getRequiredTypeConverters()Ljava/util/Map;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->preferenceDao()Landroidx/work/impl/model/PreferenceDao_Impl;\nPLandroidx/work/impl/WorkDatabase_Impl;->preferenceDao()Landroidx/work/impl/model/PreferenceDao_Impl;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->systemIdInfoDao()Landroidx/work/impl/model/SystemIdInfoDao_Impl;\nPLandroidx/work/impl/WorkDatabase_Impl;->systemIdInfoDao()Landroidx/work/impl/model/SystemIdInfoDao_Impl;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->workNameDao()Landroidx/work/impl/model/WorkNameDao_Impl;\nPLandroidx/work/impl/WorkDatabase_Impl;->workNameDao()Landroidx/work/impl/model/WorkNameDao_Impl;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->workProgressDao()Landroidx/work/impl/model/WorkProgressDao_Impl;\nPLandroidx/work/impl/WorkDatabase_Impl;->workProgressDao()Landroidx/work/impl/model/WorkProgressDao_Impl;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->workSpecDao()Landroidx/work/impl/model/WorkSpecDao_Impl;\nPLandroidx/work/impl/WorkDatabase_Impl;->workSpecDao()Landroidx/work/impl/model/WorkSpecDao_Impl;\nHSPLandroidx/work/impl/WorkDatabase_Impl;->workTagDao()Landroidx/work/impl/model/WorkTagDao_Impl;\nPLandroidx/work/impl/WorkDatabase_Impl;->workTagDao()Landroidx/work/impl/model/WorkTagDao_Impl;\nLandroidx/work/impl/WorkDatabase_Impl$1;\nHSPLandroidx/work/impl/WorkDatabase_Impl$1;-><init>(Landroidx/work/impl/WorkDatabase_Impl;)V\nPLandroidx/work/impl/WorkDatabase_Impl$1;-><init>(Landroidx/work/impl/WorkDatabase_Impl;)V\nHSPLandroidx/work/impl/WorkDatabase_Impl$1;->createAllTables(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/work/impl/WorkDatabase_Impl$1;->createAllTables(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/work/impl/WorkDatabase_Impl$1;->onCreate(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/work/impl/WorkDatabase_Impl$1;->onCreate(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLandroidx/work/impl/WorkDatabase_Impl$1;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLandroidx/work/impl/WorkDatabase_Impl$1;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nLandroidx/work/impl/WorkManagerImpl;\nHSPLandroidx/work/impl/WorkManagerImpl;-><clinit>()V\nPLandroidx/work/impl/WorkManagerImpl;-><clinit>()V\nHSPLandroidx/work/impl/WorkManagerImpl;-><init>(Landroid/content/Context;Landroidx/work/Configuration;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nPLandroidx/work/impl/WorkManagerImpl;-><init>(Landroid/content/Context;Landroidx/work/Configuration;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nHSPLandroidx/work/impl/WorkManagerImpl;->cancelUniqueWork(Ljava/lang/String;)Landroidx/work/impl/OperationImpl;\nPLandroidx/work/impl/WorkManagerImpl;->cancelUniqueWork(Ljava/lang/String;)Landroidx/work/impl/OperationImpl;\nHSPLandroidx/work/impl/WorkManagerImpl;->enqueueUniquePeriodicWork(Ljava/lang/String;Landroidx/work/PeriodicWorkRequest;)Landroidx/work/Operation;\nPLandroidx/work/impl/WorkManagerImpl;->enqueueUniquePeriodicWork(Ljava/lang/String;Landroidx/work/PeriodicWorkRequest;)Landroidx/work/Operation;\nHSPLandroidx/work/impl/WorkManagerImpl;->getApplicationContext()Landroid/content/Context;\nPLandroidx/work/impl/WorkManagerImpl;->getApplicationContext()Landroid/content/Context;\nHSPLandroidx/work/impl/WorkManagerImpl;->getConfiguration()Landroidx/work/Configuration;\nPLandroidx/work/impl/WorkManagerImpl;->getConfiguration()Landroidx/work/Configuration;\nHSPLandroidx/work/impl/WorkManagerImpl;->getInstance(Landroid/content/Context;)Landroidx/work/impl/WorkManagerImpl;\nPLandroidx/work/impl/WorkManagerImpl;->getInstance(Landroid/content/Context;)Landroidx/work/impl/WorkManagerImpl;\nHSPLandroidx/work/impl/WorkManagerImpl;->getPreferenceUtils()Landroidx/work/impl/utils/IdGenerator;\nPLandroidx/work/impl/WorkManagerImpl;->getPreferenceUtils()Landroidx/work/impl/utils/IdGenerator;\nHSPLandroidx/work/impl/WorkManagerImpl;->getProcessor()Landroidx/work/impl/Processor;\nPLandroidx/work/impl/WorkManagerImpl;->getProcessor()Landroidx/work/impl/Processor;\nHSPLandroidx/work/impl/WorkManagerImpl;->getSchedulers()Ljava/util/List;\nPLandroidx/work/impl/WorkManagerImpl;->getSchedulers()Ljava/util/List;\nHSPLandroidx/work/impl/WorkManagerImpl;->getWorkDatabase()Landroidx/work/impl/WorkDatabase;\nPLandroidx/work/impl/WorkManagerImpl;->getWorkDatabase()Landroidx/work/impl/WorkDatabase;\nHSPLandroidx/work/impl/WorkManagerImpl;->initialize(Landroid/content/Context;Landroidx/work/Configuration;)V\nPLandroidx/work/impl/WorkManagerImpl;->initialize(Landroid/content/Context;Landroidx/work/Configuration;)V\nHSPLandroidx/work/impl/WorkManagerImpl;->onForceStopRunnableCompleted()V\nPLandroidx/work/impl/WorkManagerImpl;->onForceStopRunnableCompleted()V\nLandroidx/work/impl/WorkManagerImpl$Api24Impl;\nHSPLandroidx/work/impl/WorkManagerImpl$Api24Impl;->isDeviceProtectedStorage(Landroid/content/Context;)Z\nPLandroidx/work/impl/WorkManagerImpl$Api24Impl;->isDeviceProtectedStorage(Landroid/content/Context;)Z\nLandroidx/work/impl/WorkMigration9To10;\nHSPLandroidx/work/impl/WorkMigration9To10;-><init>()V\nPLandroidx/work/impl/WorkMigration9To10;-><init>()V\nHSPLandroidx/work/impl/WorkMigration9To10;-><init>(Landroid/content/Context;)V\nPLandroidx/work/impl/WorkMigration9To10;-><init>(Landroid/content/Context;)V\nHSPLandroidx/work/impl/WorkMigration9To10;-><init>(Landroid/content/Context;II)V\nPLandroidx/work/impl/WorkMigration9To10;-><init>(Landroid/content/Context;II)V\nLandroidx/work/impl/WorkerUpdater;\nHSPLandroidx/work/impl/WorkerUpdater;->$r8$lambda$7opHgdrAWKd7YI0k0hRwdd6vZCE(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Landroidx/work/impl/OperationImpl;Lkotlin/jvm/functions/Function0;Landroidx/work/WorkRequest;)V\nPLandroidx/work/impl/WorkerUpdater;->$r8$lambda$7opHgdrAWKd7YI0k0hRwdd6vZCE(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Landroidx/work/impl/OperationImpl;Lkotlin/jvm/functions/Function0;Landroidx/work/WorkRequest;)V\nHSPLandroidx/work/impl/WorkerUpdater;->migrateDatabase(Landroid/content/Context;)V\nPLandroidx/work/impl/WorkerUpdater;->migrateDatabase(Landroid/content/Context;)V\nLandroidx/work/impl/WorkerUpdater$$ExternalSyntheticLambda0;\nHSPLandroidx/work/impl/WorkerUpdater$$ExternalSyntheticLambda0;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Landroidx/work/impl/OperationImpl;Lkotlin/jvm/functions/Function0;Landroidx/work/WorkRequest;)V\nPLandroidx/work/impl/WorkerUpdater$$ExternalSyntheticLambda0;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Landroidx/work/impl/OperationImpl;Lkotlin/jvm/functions/Function0;Landroidx/work/WorkRequest;)V\nHSPLandroidx/work/impl/WorkerUpdater$$ExternalSyntheticLambda0;->run()V\nPLandroidx/work/impl/WorkerUpdater$$ExternalSyntheticLambda0;->run()V\nLandroidx/work/impl/WorkerUpdater$enqueueUniquelyNamedPeriodic$enqueueNew$1;\nHSPLandroidx/work/impl/WorkerUpdater$enqueueUniquelyNamedPeriodic$enqueueNew$1;-><init>(Landroidx/work/WorkRequest;Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Landroidx/work/impl/OperationImpl;)V\nPLandroidx/work/impl/WorkerUpdater$enqueueUniquelyNamedPeriodic$enqueueNew$1;-><init>(Landroidx/work/WorkRequest;Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Landroidx/work/impl/OperationImpl;)V\nHSPLandroidx/work/impl/WorkerUpdater$enqueueUniquelyNamedPeriodic$enqueueNew$1;->invoke()Ljava/lang/Object;\nPLandroidx/work/impl/WorkerUpdater$enqueueUniquelyNamedPeriodic$enqueueNew$1;->invoke()Ljava/lang/Object;\nLandroidx/work/impl/background/greedy/DelayedWorkTracker;\nHSPLandroidx/work/impl/background/greedy/DelayedWorkTracker;-><clinit>()V\nPLandroidx/work/impl/background/greedy/DelayedWorkTracker;-><clinit>()V\nHSPLandroidx/work/impl/background/greedy/DelayedWorkTracker;-><init>(Landroidx/work/impl/background/greedy/GreedyScheduler;Landroidx/compose/runtime/Stack;)V\nPLandroidx/work/impl/background/greedy/DelayedWorkTracker;-><init>(Landroidx/work/impl/background/greedy/GreedyScheduler;Landroidx/compose/runtime/Stack;)V\nHSPLandroidx/work/impl/background/greedy/DelayedWorkTracker;->schedule(Landroidx/work/impl/model/WorkSpec;)V\nPLandroidx/work/impl/background/greedy/DelayedWorkTracker;->schedule(Landroidx/work/impl/model/WorkSpec;)V\nLandroidx/work/impl/background/greedy/DelayedWorkTracker$1;\nHSPLandroidx/work/impl/background/greedy/DelayedWorkTracker$1;-><init>(Landroidx/work/impl/background/greedy/DelayedWorkTracker;Landroidx/work/impl/model/WorkSpec;)V\nPLandroidx/work/impl/background/greedy/DelayedWorkTracker$1;-><init>(Landroidx/work/impl/background/greedy/DelayedWorkTracker;Landroidx/work/impl/model/WorkSpec;)V\nLandroidx/work/impl/background/greedy/GreedyScheduler;\nHSPLandroidx/work/impl/background/greedy/GreedyScheduler;-><clinit>()V\nPLandroidx/work/impl/background/greedy/GreedyScheduler;-><clinit>()V\nHSPLandroidx/work/impl/background/greedy/GreedyScheduler;-><init>(Landroid/content/Context;Landroidx/work/Configuration;Landroidx/work/impl/constraints/trackers/Trackers;Landroidx/work/impl/WorkManagerImpl;)V\nPLandroidx/work/impl/background/greedy/GreedyScheduler;-><init>(Landroid/content/Context;Landroidx/work/Configuration;Landroidx/work/impl/constraints/trackers/Trackers;Landroidx/work/impl/WorkManagerImpl;)V\nHSPLandroidx/work/impl/background/greedy/GreedyScheduler;->hasLimitedSchedulingSlots()Z\nPLandroidx/work/impl/background/greedy/GreedyScheduler;->hasLimitedSchedulingSlots()Z\nHSPLandroidx/work/impl/background/greedy/GreedyScheduler;->schedule([Landroidx/work/impl/model/WorkSpec;)V\nPLandroidx/work/impl/background/greedy/GreedyScheduler;->schedule([Landroidx/work/impl/model/WorkSpec;)V\nLandroidx/work/impl/background/systemalarm/RescheduleReceiver;\nLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;\nHSPLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;-><clinit>()V\nPLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;-><clinit>()V\nHSPLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;-><init>(Landroid/content/Context;)V\nPLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;-><init>(Landroid/content/Context;)V\nHSPLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;->convert(Landroidx/work/impl/model/WorkSpec;I)Landroid/app/job/JobInfo;\nPLandroidx/work/impl/background/systemjob/SystemJobInfoConverter;->convert(Landroidx/work/impl/model/WorkSpec;I)Landroid/app/job/JobInfo;\nLandroidx/work/impl/background/systemjob/SystemJobScheduler;\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;-><clinit>()V\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;-><clinit>()V\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;-><init>(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)V\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;-><init>(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)V\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->getPendingJobs(Landroid/content/Context;Landroid/app/job/JobScheduler;)Ljava/util/ArrayList;\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->getPendingJobs(Landroid/content/Context;Landroid/app/job/JobScheduler;)Ljava/util/ArrayList;\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->hasLimitedSchedulingSlots()Z\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->hasLimitedSchedulingSlots()Z\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->reconcileJobs(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)Z\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->reconcileJobs(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)Z\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->schedule([Landroidx/work/impl/model/WorkSpec;)V\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->schedule([Landroidx/work/impl/model/WorkSpec;)V\nHSPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->scheduleInternal(Landroidx/work/impl/model/WorkSpec;I)V\nPLandroidx/work/impl/background/systemjob/SystemJobScheduler;->scheduleInternal(Landroidx/work/impl/model/WorkSpec;I)V\nLandroidx/work/impl/background/systemjob/SystemJobService;\nLandroidx/work/impl/constraints/WorkConstraintsCallback;\nLandroidx/work/impl/constraints/WorkConstraintsTrackerImpl;\nHSPLandroidx/work/impl/constraints/WorkConstraintsTrackerImpl;-><init>(Landroidx/work/impl/constraints/trackers/Trackers;Landroidx/work/impl/constraints/WorkConstraintsCallback;)V\nPLandroidx/work/impl/constraints/WorkConstraintsTrackerImpl;-><init>(Landroidx/work/impl/constraints/trackers/Trackers;Landroidx/work/impl/constraints/WorkConstraintsCallback;)V\nLandroidx/work/impl/constraints/controllers/BatteryNotLowController;\nHSPLandroidx/work/impl/constraints/controllers/BatteryNotLowController;-><init>(Landroidx/work/impl/constraints/trackers/BatteryNotLowTracker;)V\nPLandroidx/work/impl/constraints/controllers/BatteryNotLowController;-><init>(Landroidx/work/impl/constraints/trackers/BatteryNotLowTracker;)V\nHSPLandroidx/work/impl/constraints/controllers/BatteryNotLowController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;I)V\nPLandroidx/work/impl/constraints/controllers/BatteryNotLowController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;I)V\nLandroidx/work/impl/constraints/controllers/ConstraintController;\nHSPLandroidx/work/impl/constraints/controllers/ConstraintController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;)V\nPLandroidx/work/impl/constraints/controllers/ConstraintController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;)V\nLandroidx/work/impl/constraints/controllers/NetworkMeteredController;\nHSPLandroidx/work/impl/constraints/controllers/NetworkMeteredController;-><clinit>()V\nPLandroidx/work/impl/constraints/controllers/NetworkMeteredController;-><clinit>()V\nHSPLandroidx/work/impl/constraints/controllers/NetworkMeteredController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;)V\nPLandroidx/work/impl/constraints/controllers/NetworkMeteredController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;)V\nLandroidx/work/impl/constraints/controllers/NetworkNotRoamingController;\nHSPLandroidx/work/impl/constraints/controllers/NetworkNotRoamingController;-><clinit>()V\nPLandroidx/work/impl/constraints/controllers/NetworkNotRoamingController;-><clinit>()V\nHSPLandroidx/work/impl/constraints/controllers/NetworkNotRoamingController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;)V\nPLandroidx/work/impl/constraints/controllers/NetworkNotRoamingController;-><init>(Landroidx/work/impl/constraints/trackers/ConstraintTracker;)V\nLandroidx/work/impl/constraints/trackers/BatteryNotLowTracker;\nHSPLandroidx/work/impl/constraints/trackers/BatteryNotLowTracker;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;I)V\nPLandroidx/work/impl/constraints/trackers/BatteryNotLowTracker;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;I)V\nLandroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker;\nHSPLandroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nPLandroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nLandroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker$broadcastReceiver$1;\nHSPLandroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker$broadcastReceiver$1;-><init>(Landroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker;)V\nPLandroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker$broadcastReceiver$1;-><init>(Landroidx/work/impl/constraints/trackers/BroadcastReceiverConstraintTracker;)V\nLandroidx/work/impl/constraints/trackers/ConstraintTracker;\nHSPLandroidx/work/impl/constraints/trackers/ConstraintTracker;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nPLandroidx/work/impl/constraints/trackers/ConstraintTracker;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nHSPLandroidx/work/impl/constraints/trackers/ConstraintTracker;->getAppContext()Landroid/content/Context;\nPLandroidx/work/impl/constraints/trackers/ConstraintTracker;->getAppContext()Landroid/content/Context;\nLandroidx/work/impl/constraints/trackers/NetworkStateTracker24;\nHSPLandroidx/work/impl/constraints/trackers/NetworkStateTracker24;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nPLandroidx/work/impl/constraints/trackers/NetworkStateTracker24;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nLandroidx/work/impl/constraints/trackers/NetworkStateTracker24$networkCallback$1;\nHSPLandroidx/work/impl/constraints/trackers/NetworkStateTracker24$networkCallback$1;-><init>(Landroidx/work/impl/constraints/trackers/NetworkStateTracker24;)V\nPLandroidx/work/impl/constraints/trackers/NetworkStateTracker24$networkCallback$1;-><init>(Landroidx/work/impl/constraints/trackers/NetworkStateTracker24;)V\nLandroidx/work/impl/constraints/trackers/NetworkStateTrackerKt;\nHSPLandroidx/work/impl/constraints/trackers/NetworkStateTrackerKt;-><clinit>()V\nPLandroidx/work/impl/constraints/trackers/NetworkStateTrackerKt;-><clinit>()V\nLandroidx/work/impl/constraints/trackers/Trackers;\nHSPLandroidx/work/impl/constraints/trackers/Trackers;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nPLandroidx/work/impl/constraints/trackers/Trackers;-><init>(Landroid/content/Context;Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nHSPLandroidx/work/impl/constraints/trackers/Trackers;->getBatteryChargingTracker()Landroidx/work/impl/constraints/trackers/ConstraintTracker;\nPLandroidx/work/impl/constraints/trackers/Trackers;->getBatteryChargingTracker()Landroidx/work/impl/constraints/trackers/ConstraintTracker;\nHSPLandroidx/work/impl/constraints/trackers/Trackers;->getBatteryNotLowTracker()Landroidx/work/impl/constraints/trackers/BatteryNotLowTracker;\nPLandroidx/work/impl/constraints/trackers/Trackers;->getBatteryNotLowTracker()Landroidx/work/impl/constraints/trackers/BatteryNotLowTracker;\nHSPLandroidx/work/impl/constraints/trackers/Trackers;->getNetworkStateTracker()Landroidx/work/impl/constraints/trackers/ConstraintTracker;\nPLandroidx/work/impl/constraints/trackers/Trackers;->getNetworkStateTracker()Landroidx/work/impl/constraints/trackers/ConstraintTracker;\nHSPLandroidx/work/impl/constraints/trackers/Trackers;->getStorageNotLowTracker()Landroidx/work/impl/constraints/trackers/ConstraintTracker;\nPLandroidx/work/impl/constraints/trackers/Trackers;->getStorageNotLowTracker()Landroidx/work/impl/constraints/trackers/ConstraintTracker;\nLandroidx/work/impl/foreground/ForegroundProcessor;\nLandroidx/work/impl/model/DependencyDao_Impl;\nLandroidx/work/impl/model/Preference;\nHSPLandroidx/work/impl/model/Preference;-><init>(Ljava/lang/Long;Ljava/lang/String;)V\nPLandroidx/work/impl/model/Preference;-><init>(Ljava/lang/Long;Ljava/lang/String;)V\nHSPLandroidx/work/impl/model/Preference;->getKey()Ljava/lang/String;\nPLandroidx/work/impl/model/Preference;->getKey()Ljava/lang/String;\nHSPLandroidx/work/impl/model/Preference;->getValue()Ljava/lang/Long;\nPLandroidx/work/impl/model/Preference;->getValue()Ljava/lang/Long;\nLandroidx/work/impl/model/PreferenceDao_Impl;\nHSPLandroidx/work/impl/model/PreferenceDao_Impl;-><init>(Landroidx/work/impl/WorkDatabase;)V\nPLandroidx/work/impl/model/PreferenceDao_Impl;-><init>(Landroidx/work/impl/WorkDatabase;)V\nHSPLandroidx/work/impl/model/PreferenceDao_Impl;->getLongValue(Ljava/lang/String;)Ljava/lang/Long;\nPLandroidx/work/impl/model/PreferenceDao_Impl;->getLongValue(Ljava/lang/String;)Ljava/lang/Long;\nHSPLandroidx/work/impl/model/PreferenceDao_Impl;->insertPreference(Landroidx/work/impl/model/Preference;)V\nPLandroidx/work/impl/model/PreferenceDao_Impl;->insertPreference(Landroidx/work/impl/model/Preference;)V\nLandroidx/work/impl/model/RawWorkInfoDao_Impl;\nLandroidx/work/impl/model/SystemIdInfo;\nHSPLandroidx/work/impl/model/SystemIdInfo;-><init>(Ljava/lang/String;II)V\nPLandroidx/work/impl/model/SystemIdInfo;-><init>(Ljava/lang/String;II)V\nHSPLandroidx/work/impl/model/SystemIdInfo;->getGeneration()I\nPLandroidx/work/impl/model/SystemIdInfo;->getGeneration()I\nLandroidx/work/impl/model/SystemIdInfoDao_Impl;\nHSPLandroidx/work/impl/model/SystemIdInfoDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/work/impl/model/SystemIdInfoDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nHSPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->getSystemIdInfo(ILjava/lang/String;)Landroidx/work/impl/model/SystemIdInfo;\nPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->getSystemIdInfo(ILjava/lang/String;)Landroidx/work/impl/model/SystemIdInfo;\nHSPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->getSystemIdInfo(Landroidx/work/impl/model/WorkGenerationalId;)Landroidx/work/impl/model/SystemIdInfo;\nPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->getSystemIdInfo(Landroidx/work/impl/model/WorkGenerationalId;)Landroidx/work/impl/model/SystemIdInfo;\nHSPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->getWorkSpecIds()Ljava/util/ArrayList;\nPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->getWorkSpecIds()Ljava/util/ArrayList;\nHSPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->insertSystemIdInfo(Landroidx/work/impl/model/SystemIdInfo;)V\nPLandroidx/work/impl/model/SystemIdInfoDao_Impl;->insertSystemIdInfo(Landroidx/work/impl/model/SystemIdInfo;)V\nLandroidx/work/impl/model/WorkGenerationalId;\nHSPLandroidx/work/impl/model/WorkGenerationalId;-><init>(Ljava/lang/String;I)V\nPLandroidx/work/impl/model/WorkGenerationalId;-><init>(Ljava/lang/String;I)V\nHSPLandroidx/work/impl/model/WorkGenerationalId;->getGeneration()I\nPLandroidx/work/impl/model/WorkGenerationalId;->getGeneration()I\nHSPLandroidx/work/impl/model/WorkGenerationalId;->getWorkSpecId()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkGenerationalId;->getWorkSpecId()Ljava/lang/String;\nHSPLandroidx/work/impl/model/WorkGenerationalId;->hashCode()I\nPLandroidx/work/impl/model/WorkGenerationalId;->hashCode()I\nLandroidx/work/impl/model/WorkName;\nHSPLandroidx/work/impl/model/WorkName;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nPLandroidx/work/impl/model/WorkName;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nHSPLandroidx/work/impl/model/WorkName;->getName()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkName;->getName()Ljava/lang/String;\nHSPLandroidx/work/impl/model/WorkName;->getWorkSpecId()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkName;->getWorkSpecId()Ljava/lang/String;\nLandroidx/work/impl/model/WorkNameDao_Impl;\nHSPLandroidx/work/impl/model/WorkNameDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/work/impl/model/WorkNameDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nHSPLandroidx/work/impl/model/WorkNameDao_Impl;->insert(Landroidx/work/impl/model/WorkName;)V\nPLandroidx/work/impl/model/WorkNameDao_Impl;->insert(Landroidx/work/impl/model/WorkName;)V\nLandroidx/work/impl/model/WorkProgressDao_Impl;\nHSPLandroidx/work/impl/model/WorkProgressDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/work/impl/model/WorkProgressDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nHSPLandroidx/work/impl/model/WorkProgressDao_Impl;->deleteAll()V\nPLandroidx/work/impl/model/WorkProgressDao_Impl;->deleteAll()V\nLandroidx/work/impl/model/WorkProgressDao_Impl$2;\nHSPLandroidx/work/impl/model/WorkProgressDao_Impl$2;-><init>(Landroidx/room/RoomDatabase;I)V\nPLandroidx/work/impl/model/WorkProgressDao_Impl$2;-><init>(Landroidx/room/RoomDatabase;I)V\nHSPLandroidx/work/impl/model/WorkProgressDao_Impl$2;->createQuery()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkProgressDao_Impl$2;->createQuery()Ljava/lang/String;\nLandroidx/work/impl/model/WorkSpec;\nHSPLandroidx/work/impl/model/WorkSpec;-><clinit>()V\nPLandroidx/work/impl/model/WorkSpec;-><clinit>()V\nHSPLandroidx/work/impl/model/WorkSpec;-><init>(Ljava/lang/String;Landroidx/work/WorkInfo$State;Ljava/lang/String;Ljava/lang/String;Landroidx/work/Data;Landroidx/work/Data;JJJLandroidx/work/Constraints;ILandroidx/work/BackoffPolicy;JJJJZLandroidx/work/OutOfQuotaPolicy;II)V\nPLandroidx/work/impl/model/WorkSpec;-><init>(Ljava/lang/String;Landroidx/work/WorkInfo$State;Ljava/lang/String;Ljava/lang/String;Landroidx/work/Data;Landroidx/work/Data;JJJLandroidx/work/Constraints;ILandroidx/work/BackoffPolicy;JJJJZLandroidx/work/OutOfQuotaPolicy;II)V\nHSPLandroidx/work/impl/model/WorkSpec;-><init>(Ljava/lang/String;Landroidx/work/WorkInfo$State;Ljava/lang/String;Ljava/lang/String;Landroidx/work/Data;Landroidx/work/Data;JJJLandroidx/work/Constraints;ILandroidx/work/BackoffPolicy;JJJJZLandroidx/work/OutOfQuotaPolicy;III)V\nPLandroidx/work/impl/model/WorkSpec;-><init>(Ljava/lang/String;Landroidx/work/WorkInfo$State;Ljava/lang/String;Ljava/lang/String;Landroidx/work/Data;Landroidx/work/Data;JJJLandroidx/work/Constraints;ILandroidx/work/BackoffPolicy;JJJJZLandroidx/work/OutOfQuotaPolicy;III)V\nHSPLandroidx/work/impl/model/WorkSpec;-><init>(Ljava/lang/String;Landroidx/work/impl/model/WorkSpec;)V\nPLandroidx/work/impl/model/WorkSpec;-><init>(Ljava/lang/String;Landroidx/work/impl/model/WorkSpec;)V\nHSPLandroidx/work/impl/model/WorkSpec;->calculateNextRunTime()J\nPLandroidx/work/impl/model/WorkSpec;->calculateNextRunTime()J\nHSPLandroidx/work/impl/model/WorkSpec;->getGeneration()I\nPLandroidx/work/impl/model/WorkSpec;->getGeneration()I\nHSPLandroidx/work/impl/model/WorkSpec;->getPeriodCount()I\nPLandroidx/work/impl/model/WorkSpec;->getPeriodCount()I\nHSPLandroidx/work/impl/model/WorkSpec;->isPeriodic()Z\nPLandroidx/work/impl/model/WorkSpec;->isPeriodic()Z\nHSPLandroidx/work/impl/model/WorkSpec;->setBackoffDelayDuration(J)V\nPLandroidx/work/impl/model/WorkSpec;->setBackoffDelayDuration(J)V\nHSPLandroidx/work/impl/model/WorkSpec;->setPeriodic(JJ)V\nPLandroidx/work/impl/model/WorkSpec;->setPeriodic(JJ)V\nLandroidx/work/impl/model/WorkSpec$IdAndState;\nLandroidx/work/impl/model/WorkSpecDao_Impl;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/work/impl/model/WorkSpecDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->getAllEligibleWorkSpecsForScheduling()Ljava/util/ArrayList;\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->getAllEligibleWorkSpecsForScheduling()Ljava/util/ArrayList;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->getEligibleWorkForScheduling(I)Ljava/util/ArrayList;\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->getEligibleWorkForScheduling(I)Ljava/util/ArrayList;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->getRunningWork()Ljava/util/ArrayList;\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->getRunningWork()Ljava/util/ArrayList;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->getUnfinishedWorkWithName(Ljava/lang/String;)Ljava/util/ArrayList;\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->getUnfinishedWorkWithName(Ljava/lang/String;)Ljava/util/ArrayList;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->getWorkSpec(Ljava/lang/String;)Landroidx/work/impl/model/WorkSpec;\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->getWorkSpec(Ljava/lang/String;)Landroidx/work/impl/model/WorkSpec;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->getWorkSpecIdAndStatesForName(Ljava/lang/String;)Ljava/util/ArrayList;\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->getWorkSpecIdAndStatesForName(Ljava/lang/String;)Ljava/util/ArrayList;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->insertWorkSpec(Landroidx/work/impl/model/WorkSpec;)V\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->insertWorkSpec(Landroidx/work/impl/model/WorkSpec;)V\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl;->markWorkSpecScheduled(JLjava/lang/String;)V\nPLandroidx/work/impl/model/WorkSpecDao_Impl;->markWorkSpecScheduled(JLjava/lang/String;)V\nLandroidx/work/impl/model/WorkSpecDao_Impl$2;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl$2;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/work/impl/model/WorkSpecDao_Impl$2;-><init>(Landroidx/room/RoomDatabase;)V\nLandroidx/work/impl/model/WorkSpecDao_Impl$3;\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl$3;-><init>(Landroidx/room/RoomDatabase;I)V\nPLandroidx/work/impl/model/WorkSpecDao_Impl$3;-><init>(Landroidx/room/RoomDatabase;I)V\nHSPLandroidx/work/impl/model/WorkSpecDao_Impl$3;->createQuery()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkSpecDao_Impl$3;->createQuery()Ljava/lang/String;\nLandroidx/work/impl/model/WorkTag;\nHSPLandroidx/work/impl/model/WorkTag;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nPLandroidx/work/impl/model/WorkTag;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nHSPLandroidx/work/impl/model/WorkTag;->getTag()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkTag;->getTag()Ljava/lang/String;\nHSPLandroidx/work/impl/model/WorkTag;->getWorkSpecId()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkTag;->getWorkSpecId()Ljava/lang/String;\nLandroidx/work/impl/model/WorkTagDao_Impl;\nHSPLandroidx/work/impl/model/WorkTagDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nPLandroidx/work/impl/model/WorkTagDao_Impl;-><init>(Landroidx/room/RoomDatabase;)V\nHSPLandroidx/work/impl/model/WorkTagDao_Impl;->insert(Landroidx/work/impl/model/WorkTag;)V\nPLandroidx/work/impl/model/WorkTagDao_Impl;->insert(Landroidx/work/impl/model/WorkTag;)V\nHSPLandroidx/work/impl/model/WorkTagDao_Impl;->insertTags(Ljava/lang/String;Ljava/util/Set;)V\nPLandroidx/work/impl/model/WorkTagDao_Impl;->insertTags(Ljava/lang/String;Ljava/util/Set;)V\nLandroidx/work/impl/model/WorkTagDao_Impl$1;\nHSPLandroidx/work/impl/model/WorkTagDao_Impl$1;-><init>(Ljava/lang/Object;Landroidx/room/RoomDatabase;I)V\nPLandroidx/work/impl/model/WorkTagDao_Impl$1;-><init>(Ljava/lang/Object;Landroidx/room/RoomDatabase;I)V\nHSPLandroidx/work/impl/model/WorkTagDao_Impl$1;->bind(Landroidx/sqlite/db/SupportSQLiteStatement;Ljava/lang/Object;)V\nPLandroidx/work/impl/model/WorkTagDao_Impl$1;->bind(Landroidx/sqlite/db/SupportSQLiteStatement;Ljava/lang/Object;)V\nHSPLandroidx/work/impl/model/WorkTagDao_Impl$1;->createQuery()Ljava/lang/String;\nPLandroidx/work/impl/model/WorkTagDao_Impl$1;->createQuery()Ljava/lang/String;\nLandroidx/work/impl/model/WorkTagDao_Impl$2;\nHSPLandroidx/work/impl/model/WorkTagDao_Impl$2;-><init>(Ljava/lang/Object;Landroidx/room/RoomDatabase;I)V\nPLandroidx/work/impl/model/WorkTagDao_Impl$2;-><init>(Ljava/lang/Object;Landroidx/room/RoomDatabase;I)V\nLandroidx/work/impl/utils/Api28Impl;\nHSPLandroidx/work/impl/utils/Api28Impl;-><clinit>()V\nPLandroidx/work/impl/utils/Api28Impl;-><clinit>()V\nHSPLandroidx/work/impl/utils/Api28Impl;-><init>()V\nPLandroidx/work/impl/utils/Api28Impl;-><init>()V\nHSPLandroidx/work/impl/utils/Api28Impl;->getProcessName()Ljava/lang/String;\nPLandroidx/work/impl/utils/Api28Impl;->getProcessName()Ljava/lang/String;\nLandroidx/work/impl/utils/CancelWorkRunnable$3;\nHSPLandroidx/work/impl/utils/CancelWorkRunnable$3;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Z)V\nPLandroidx/work/impl/utils/CancelWorkRunnable$3;-><init>(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;Z)V\nHSPLandroidx/work/impl/utils/CancelWorkRunnable$3;->runInternal()V\nPLandroidx/work/impl/utils/CancelWorkRunnable$3;->runInternal()V\nLandroidx/work/impl/utils/DurationApi26Impl;\nHSPLandroidx/work/impl/utils/DurationApi26Impl;->toMillisCompat(Lj$/time/Duration;)J\nPLandroidx/work/impl/utils/DurationApi26Impl;->toMillisCompat(Lj$/time/Duration;)J\nLandroidx/work/impl/utils/EnqueueRunnable;\nHSPLandroidx/work/impl/utils/EnqueueRunnable;-><clinit>()V\nPLandroidx/work/impl/utils/EnqueueRunnable;-><clinit>()V\nHSPLandroidx/work/impl/utils/EnqueueRunnable;-><init>(Landroidx/work/impl/WorkContinuationImpl;Landroidx/work/impl/OperationImpl;)V\nPLandroidx/work/impl/utils/EnqueueRunnable;-><init>(Landroidx/work/impl/WorkContinuationImpl;Landroidx/work/impl/OperationImpl;)V\nHSPLandroidx/work/impl/utils/EnqueueRunnable;->processContinuation(Landroidx/work/impl/WorkContinuationImpl;)Z\nPLandroidx/work/impl/utils/EnqueueRunnable;->processContinuation(Landroidx/work/impl/WorkContinuationImpl;)Z\nHSPLandroidx/work/impl/utils/EnqueueRunnable;->run()V\nPLandroidx/work/impl/utils/EnqueueRunnable;->run()V\nLandroidx/work/impl/utils/ForceStopRunnable;\nHSPLandroidx/work/impl/utils/ForceStopRunnable;-><clinit>()V\nPLandroidx/work/impl/utils/ForceStopRunnable;-><clinit>()V\nHSPLandroidx/work/impl/utils/ForceStopRunnable;-><init>(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)V\nPLandroidx/work/impl/utils/ForceStopRunnable;-><init>(Landroid/content/Context;Landroidx/work/impl/WorkManagerImpl;)V\nHSPLandroidx/work/impl/utils/ForceStopRunnable;->forceStopRunnable()V\nPLandroidx/work/impl/utils/ForceStopRunnable;->forceStopRunnable()V\nHSPLandroidx/work/impl/utils/ForceStopRunnable;->multiProcessChecks()Z\nPLandroidx/work/impl/utils/ForceStopRunnable;->multiProcessChecks()Z\nHSPLandroidx/work/impl/utils/ForceStopRunnable;->run()V\nPLandroidx/work/impl/utils/ForceStopRunnable;->run()V\nLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;\nHSPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m()Landroid/util/CloseGuard;\nPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m()Landroid/util/CloseGuard;\nHSPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m()V\nPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m()V\nHSPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/ActivityManager;)Ljava/util/List;\nPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/ActivityManager;)Ljava/util/List;\nHSPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/InstallSourceInfo;)Ljava/lang/String;\nPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/InstallSourceInfo;)Ljava/lang/String;\nHSPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;\nPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;\nHSPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/util/CloseGuard;Ljava/lang/String;)V\nPLandroidx/work/impl/utils/ForceStopRunnable$$ExternalSyntheticApiModelOutline0;->m(Landroid/util/CloseGuard;Ljava/lang/String;)V\nLandroidx/work/impl/utils/ForceStopRunnable$BroadcastReceiver;\nLandroidx/work/impl/utils/IdGenerator;\nHSPLandroidx/work/impl/utils/IdGenerator;->$r8$lambda$LyUC9fmKDw6AhARQq6V7VCdkafU(Landroidx/work/impl/utils/IdGenerator;II)Ljava/lang/Integer;\nPLandroidx/work/impl/utils/IdGenerator;->$r8$lambda$LyUC9fmKDw6AhARQq6V7VCdkafU(Landroidx/work/impl/utils/IdGenerator;II)Ljava/lang/Integer;\nHSPLandroidx/work/impl/utils/IdGenerator;-><init>(Landroidx/work/impl/WorkDatabase;I)V\nPLandroidx/work/impl/utils/IdGenerator;-><init>(Landroidx/work/impl/WorkDatabase;I)V\nHSPLandroidx/work/impl/utils/IdGenerator;->getNeedsReschedule()Z\nPLandroidx/work/impl/utils/IdGenerator;->getNeedsReschedule()Z\nHSPLandroidx/work/impl/utils/IdGenerator;->nextJobSchedulerIdWithRange(I)I\nPLandroidx/work/impl/utils/IdGenerator;->nextJobSchedulerIdWithRange(I)I\nLandroidx/work/impl/utils/IdGenerator$$ExternalSyntheticLambda1;\nHSPLandroidx/work/impl/utils/IdGenerator$$ExternalSyntheticLambda1;-><init>(Landroidx/work/impl/utils/IdGenerator;I)V\nPLandroidx/work/impl/utils/IdGenerator$$ExternalSyntheticLambda1;-><init>(Landroidx/work/impl/utils/IdGenerator;I)V\nHSPLandroidx/work/impl/utils/IdGenerator$$ExternalSyntheticLambda1;->call()Ljava/lang/Object;\nPLandroidx/work/impl/utils/IdGenerator$$ExternalSyntheticLambda1;->call()Ljava/lang/Object;\nLandroidx/work/impl/utils/LiveDataUtils$1$1;\nHSPLandroidx/work/impl/utils/LiveDataUtils$1$1;-><init>(Landroidx/work/impl/utils/SerialExecutorImpl;Ljava/lang/Runnable;)V\nPLandroidx/work/impl/utils/LiveDataUtils$1$1;-><init>(Landroidx/work/impl/utils/SerialExecutorImpl;Ljava/lang/Runnable;)V\nHSPLandroidx/work/impl/utils/LiveDataUtils$1$1;->run()V\nPLandroidx/work/impl/utils/LiveDataUtils$1$1;->run()V\nLandroidx/work/impl/utils/PackageManagerHelper;\nHSPLandroidx/work/impl/utils/PackageManagerHelper;-><clinit>()V\nPLandroidx/work/impl/utils/PackageManagerHelper;-><clinit>()V\nHSPLandroidx/work/impl/utils/PackageManagerHelper;->setComponentEnabled(Landroid/content/Context;Ljava/lang/Class;Z)V\nPLandroidx/work/impl/utils/PackageManagerHelper;->setComponentEnabled(Landroid/content/Context;Ljava/lang/Class;Z)V\nLandroidx/work/impl/utils/ProcessUtils;\nHSPLandroidx/work/impl/utils/ProcessUtils;-><clinit>()V\nPLandroidx/work/impl/utils/ProcessUtils;-><clinit>()V\nHSPLandroidx/work/impl/utils/ProcessUtils;->isDefaultProcess(Landroid/content/Context;Landroidx/work/Configuration;)Z\nPLandroidx/work/impl/utils/ProcessUtils;->isDefaultProcess(Landroid/content/Context;Landroidx/work/Configuration;)Z\nLandroidx/work/impl/utils/RawQueries;\nHSPLandroidx/work/impl/utils/RawQueries;->access$nextId(Landroidx/work/impl/WorkDatabase;Ljava/lang/String;)I\nPLandroidx/work/impl/utils/RawQueries;->access$nextId(Landroidx/work/impl/WorkDatabase;Ljava/lang/String;)I\nLandroidx/work/impl/utils/SerialExecutorImpl;\nHSPLandroidx/work/impl/utils/SerialExecutorImpl;-><init>(Ljava/util/concurrent/ExecutorService;)V\nPLandroidx/work/impl/utils/SerialExecutorImpl;-><init>(Ljava/util/concurrent/ExecutorService;)V\nHSPLandroidx/work/impl/utils/SerialExecutorImpl;->execute(Ljava/lang/Runnable;)V\nPLandroidx/work/impl/utils/SerialExecutorImpl;->execute(Ljava/lang/Runnable;)V\nHSPLandroidx/work/impl/utils/SerialExecutorImpl;->scheduleNext()V\nPLandroidx/work/impl/utils/SerialExecutorImpl;->scheduleNext()V\nLandroidx/work/impl/utils/StatusRunnable;\nHSPLandroidx/work/impl/utils/StatusRunnable;-><init>(I)V\nPLandroidx/work/impl/utils/StatusRunnable;-><init>(I)V\nHSPLandroidx/work/impl/utils/StatusRunnable;->forName(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;)Landroidx/work/impl/utils/StatusRunnable;\nPLandroidx/work/impl/utils/StatusRunnable;->forName(Landroidx/work/impl/WorkManagerImpl;Ljava/lang/String;)Landroidx/work/impl/utils/StatusRunnable;\nHSPLandroidx/work/impl/utils/StatusRunnable;->getOperation()Landroidx/work/impl/OperationImpl;\nPLandroidx/work/impl/utils/StatusRunnable;->getOperation()Landroidx/work/impl/OperationImpl;\nHSPLandroidx/work/impl/utils/StatusRunnable;->run()V\nPLandroidx/work/impl/utils/StatusRunnable;->run()V\nLandroidx/work/impl/utils/futures/AbstractFuture;\nHSPLandroidx/work/impl/utils/futures/AbstractFuture;-><clinit>()V\nPLandroidx/work/impl/utils/futures/AbstractFuture;-><clinit>()V\nHSPLandroidx/work/impl/utils/futures/AbstractFuture;-><init>()V\nPLandroidx/work/impl/utils/futures/AbstractFuture;-><init>()V\nHSPLandroidx/work/impl/utils/futures/AbstractFuture;->complete(Landroidx/work/impl/utils/futures/AbstractFuture;)V\nPLandroidx/work/impl/utils/futures/AbstractFuture;->complete(Landroidx/work/impl/utils/futures/AbstractFuture;)V\nHSPLandroidx/work/impl/utils/futures/AbstractFuture;->set(Ljava/lang/Object;)Z\nPLandroidx/work/impl/utils/futures/AbstractFuture;->set(Ljava/lang/Object;)Z\nLandroidx/work/impl/utils/futures/AbstractFuture$AtomicHelper;\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$AtomicHelper;-><init>()V\nPLandroidx/work/impl/utils/futures/AbstractFuture$AtomicHelper;-><init>()V\nLandroidx/work/impl/utils/futures/AbstractFuture$Listener;\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$Listener;-><clinit>()V\nPLandroidx/work/impl/utils/futures/AbstractFuture$Listener;-><clinit>()V\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$Listener;-><init>(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V\nPLandroidx/work/impl/utils/futures/AbstractFuture$Listener;-><init>(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V\nLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;-><init>(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;)V\nPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;-><init>(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;)V\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;->casListeners(Landroidx/work/impl/utils/futures/AbstractFuture;Landroidx/work/impl/utils/futures/AbstractFuture$Listener;Landroidx/work/impl/utils/futures/AbstractFuture$Listener;)Z\nPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;->casListeners(Landroidx/work/impl/utils/futures/AbstractFuture;Landroidx/work/impl/utils/futures/AbstractFuture$Listener;Landroidx/work/impl/utils/futures/AbstractFuture$Listener;)Z\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;->casValue(Landroidx/work/impl/utils/futures/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z\nPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;->casValue(Landroidx/work/impl/utils/futures/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;->casWaiters(Landroidx/work/impl/utils/futures/AbstractFuture;Landroidx/work/impl/utils/futures/AbstractFuture$Waiter;Landroidx/work/impl/utils/futures/AbstractFuture$Waiter;)Z\nPLandroidx/work/impl/utils/futures/AbstractFuture$SafeAtomicHelper;->casWaiters(Landroidx/work/impl/utils/futures/AbstractFuture;Landroidx/work/impl/utils/futures/AbstractFuture$Waiter;Landroidx/work/impl/utils/futures/AbstractFuture$Waiter;)Z\nLandroidx/work/impl/utils/futures/AbstractFuture$Waiter;\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$Waiter;-><clinit>()V\nPLandroidx/work/impl/utils/futures/AbstractFuture$Waiter;-><clinit>()V\nHSPLandroidx/work/impl/utils/futures/AbstractFuture$Waiter;-><init>(I)V\nPLandroidx/work/impl/utils/futures/AbstractFuture$Waiter;-><init>(I)V\nLandroidx/work/impl/utils/futures/SettableFuture;\nHSPLandroidx/work/impl/utils/futures/SettableFuture;-><init>()V\nPLandroidx/work/impl/utils/futures/SettableFuture;-><init>()V\nHSPLandroidx/work/impl/utils/futures/SettableFuture;->create()Landroidx/work/impl/utils/futures/SettableFuture;\nPLandroidx/work/impl/utils/futures/SettableFuture;->create()Landroidx/work/impl/utils/futures/SettableFuture;\nHSPLandroidx/work/impl/utils/futures/SettableFuture;->set(Ljava/lang/Object;)Z\nPLandroidx/work/impl/utils/futures/SettableFuture;->set(Ljava/lang/Object;)Z\nLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;\nHSPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;-><init>(Ljava/util/concurrent/ExecutorService;)V\nPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;-><init>(Ljava/util/concurrent/ExecutorService;)V\nHSPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;->executeOnTaskThread(Ljava/lang/Runnable;)V\nPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;->executeOnTaskThread(Ljava/lang/Runnable;)V\nHSPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;->getSerialTaskExecutor$1()Landroidx/work/impl/utils/SerialExecutorImpl;\nPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;->getSerialTaskExecutor$1()Landroidx/work/impl/utils/SerialExecutorImpl;\nLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor$1;\nHSPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor$1;-><init>(Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nPLandroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor$1;-><init>(Landroidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor;)V\nLapp/cash/sqldelight/ColumnAdapter;\nLapp/cash/sqldelight/ExecutableQuery;\nHSPLapp/cash/sqldelight/ExecutableQuery;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLapp/cash/sqldelight/ExecutableQuery;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLapp/cash/sqldelight/ExecutableQuery;->getMapper()Lkotlin/jvm/functions/Function1;\nPLapp/cash/sqldelight/ExecutableQuery;->getMapper()Lkotlin/jvm/functions/Function1;\nLapp/cash/sqldelight/Query;\nHSPLapp/cash/sqldelight/Query;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLapp/cash/sqldelight/Query;-><init>(Lkotlin/jvm/functions/Function1;)V\nLapp/cash/sqldelight/Query$Listener;\nLapp/cash/sqldelight/QueryKt;\nHSPLapp/cash/sqldelight/QueryKt;->Query(I[Ljava/lang/String;Lapp/cash/sqldelight/db/SqlDriver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/Query;\nPLapp/cash/sqldelight/QueryKt;->Query(I[Ljava/lang/String;Lapp/cash/sqldelight/db/SqlDriver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/Query;\nLapp/cash/sqldelight/SimpleQuery;\nHSPLapp/cash/sqldelight/SimpleQuery;-><init>(I[Ljava/lang/String;Lapp/cash/sqldelight/db/SqlDriver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V\nPLapp/cash/sqldelight/SimpleQuery;-><init>(I[Ljava/lang/String;Lapp/cash/sqldelight/db/SqlDriver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V\nHSPLapp/cash/sqldelight/SimpleQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nPLapp/cash/sqldelight/SimpleQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nHSPLapp/cash/sqldelight/SimpleQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLapp/cash/sqldelight/SimpleQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nLapp/cash/sqldelight/Transacter;\nLapp/cash/sqldelight/TransacterImpl;\nHSPLapp/cash/sqldelight/TransacterImpl;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLapp/cash/sqldelight/TransacterImpl;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nHSPLapp/cash/sqldelight/TransacterImpl;->getDriver()Lapp/cash/sqldelight/db/SqlDriver;\nPLapp/cash/sqldelight/TransacterImpl;->getDriver()Lapp/cash/sqldelight/db/SqlDriver;\nLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt;\nHSPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt;->awaitAsList(Lapp/cash/sqldelight/Query;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt;->awaitAsList(Lapp/cash/sqldelight/Query;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;\nHSPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;-><init>(Lapp/cash/sqldelight/Query;I)V\nPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;-><init>(Lapp/cash/sqldelight/Query;I)V\nHSPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;->invoke(Lapp/cash/sqldelight/db/SqlCursor;)Lapp/cash/sqldelight/db/QueryResult;\nPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;->invoke(Lapp/cash/sqldelight/db/SqlCursor;)Lapp/cash/sqldelight/db/QueryResult;\nHSPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/async/coroutines/QueryExtensionsKt$awaitAsList$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/coroutines/FlowQuery;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery;->toFlow(Lapp/cash/sqldelight/Query;)Lkotlinx/coroutines/flow/Flow;\nPLapp/cash/sqldelight/coroutines/FlowQuery;->toFlow(Lapp/cash/sqldelight/Query;)Lkotlinx/coroutines/flow/Flow;\nLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;-><init>(Lapp/cash/sqldelight/Query;Lkotlin/coroutines/Continuation;)V\nPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;-><init>(Lapp/cash/sqldelight/Query;Lkotlin/coroutines/Continuation;)V\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;-><init>(Lkotlinx/coroutines/channels/Channel;)V\nPLapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;-><init>(Lkotlinx/coroutines/channels/Channel;)V\nLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$$inlined$map$1$2$1;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$$inlined$map$1$2$1;-><init>(Lapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$$inlined$map$1$2$1;-><init>(Lapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;-><init>(Lapp/cash/sqldelight/Query;Lkotlin/coroutines/Continuation;)V\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;-><init>(Lapp/cash/sqldelight/Query;Lkotlin/coroutines/Continuation;)V\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToList$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineDispatcher;I)V\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineDispatcher;I)V\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/CoroutineContext;I)V\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/CoroutineContext;I)V\nHSPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLapp/cash/sqldelight/db/AfterVersion;\nLapp/cash/sqldelight/db/QueryResult;\nHSPLapp/cash/sqldelight/db/QueryResult;-><clinit>()V\nPLapp/cash/sqldelight/db/QueryResult;-><clinit>()V\nLapp/cash/sqldelight/db/QueryResult$AsyncValue;\nLapp/cash/sqldelight/db/QueryResult$Companion;\nHSPLapp/cash/sqldelight/db/QueryResult$Companion;-><clinit>()V\nPLapp/cash/sqldelight/db/QueryResult$Companion;-><clinit>()V\nHSPLapp/cash/sqldelight/db/QueryResult$Companion;-><init>()V\nPLapp/cash/sqldelight/db/QueryResult$Companion;-><init>()V\nLapp/cash/sqldelight/db/QueryResult$Value;\nHSPLapp/cash/sqldelight/db/QueryResult$Value;-><init>(Ljava/lang/Object;)V\nPLapp/cash/sqldelight/db/QueryResult$Value;-><init>(Ljava/lang/Object;)V\nHSPLapp/cash/sqldelight/db/QueryResult$Value;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLapp/cash/sqldelight/db/QueryResult$Value;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLapp/cash/sqldelight/db/QueryResult$Value;->box-impl(Ljava/lang/Object;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLapp/cash/sqldelight/db/QueryResult$Value;->box-impl(Ljava/lang/Object;)Lapp/cash/sqldelight/db/QueryResult$Value;\nHSPLapp/cash/sqldelight/db/QueryResult$Value;->getValue()Ljava/lang/Object;\nPLapp/cash/sqldelight/db/QueryResult$Value;->getValue()Ljava/lang/Object;\nLapp/cash/sqldelight/db/SqlCursor;\nLapp/cash/sqldelight/db/SqlDriver;\nLapp/cash/sqldelight/db/SqlPreparedStatement;\nLapp/cash/sqldelight/db/SqlSchema;\nLapp/cash/sqldelight/driver/android/AndroidCursor;\nHSPLapp/cash/sqldelight/driver/android/AndroidCursor;-><init>(Landroid/database/Cursor;)V\nPLapp/cash/sqldelight/driver/android/AndroidCursor;-><init>(Landroid/database/Cursor;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidCursor;->getLong(I)Ljava/lang/Long;\nPLapp/cash/sqldelight/driver/android/AndroidCursor;->getLong(I)Ljava/lang/Long;\nHSPLapp/cash/sqldelight/driver/android/AndroidCursor;->getString(I)Ljava/lang/String;\nPLapp/cash/sqldelight/driver/android/AndroidCursor;->getString(I)Ljava/lang/String;\nHSPLapp/cash/sqldelight/driver/android/AndroidCursor;->next()Lapp/cash/sqldelight/db/QueryResult$Value;\nPLapp/cash/sqldelight/driver/android/AndroidCursor;->next()Lapp/cash/sqldelight/db/QueryResult$Value;\nLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;\nHSPLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;-><init>(Landroidx/sqlite/db/SupportSQLiteStatement;)V\nPLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;-><init>(Landroidx/sqlite/db/SupportSQLiteStatement;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;->close()V\nPLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;->close()V\nHSPLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;->execute()J\nPLapp/cash/sqldelight/driver/android/AndroidPreparedStatement;->execute()J\nLapp/cash/sqldelight/driver/android/AndroidQuery;\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;-><init>(Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteDatabase;I)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery;-><init>(Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteDatabase;I)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindBoolean(ILjava/lang/Boolean;)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindBoolean(ILjava/lang/Boolean;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindLong(ILjava/lang/Long;)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindLong(ILjava/lang/Long;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindString(ILjava/lang/String;)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindString(ILjava/lang/String;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindTo(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery;->bindTo(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;->executeQuery(Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidQuery;->executeQuery(Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery;->getSql()Ljava/lang/String;\nPLapp/cash/sqldelight/driver/android/AndroidQuery;->getSql()Ljava/lang/String;\nLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;-><init>(IILjava/lang/Object;)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;-><init>(IILjava/lang/Object;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;->invoke(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nPLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;->invoke(Landroidx/sqlite/db/SupportSQLiteProgram;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidQuery$bindLong$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;-><init>(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;-><init>(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;-><init>(Landroidx/sqlite/db/SupportSQLiteOpenHelper;Landroidx/sqlite/db/SupportSQLiteDatabase;I)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;-><init>(Landroidx/sqlite/db/SupportSQLiteOpenHelper;Landroidx/sqlite/db/SupportSQLiteDatabase;I)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;-><init>(Ltachiyomi/data/data/DatabaseImpl$Schema;Landroid/app/Application;Lio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;Leu/kanade/tachiyomi/AppModule$registerInjectables$1$1;)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;-><init>(Ltachiyomi/data/data/DatabaseImpl$Schema;Landroid/app/Application;Lio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;Leu/kanade/tachiyomi/AppModule$registerInjectables$1$1;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->access$getDatabase(Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;)Landroidx/sqlite/db/SupportSQLiteDatabase;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->access$getDatabase(Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;)Landroidx/sqlite/db/SupportSQLiteDatabase;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->access$getOpenHelper$p(Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->access$getOpenHelper$p(Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->addListener([Ljava/lang/String;Lapp/cash/sqldelight/Query$Listener;)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->addListener([Ljava/lang/String;Lapp/cash/sqldelight/Query$Listener;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->execute(Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->execute(Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->execute-zeHU3Mk(Ljava/lang/Integer;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->execute-zeHU3Mk(Ljava/lang/Integer;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->executeQuery(Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver;->executeQuery(Ljava/lang/Integer;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$Callback;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$Callback;-><init>(Ltachiyomi/data/data/DatabaseImpl$Schema;[Lapp/cash/sqldelight/db/AfterVersion;)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$Callback;-><init>(Ltachiyomi/data/data/DatabaseImpl$Schema;[Lapp/cash/sqldelight/db/AfterVersion;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$Callback;->onCreate(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$Callback;->onCreate(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$1;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$1;-><init>(Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;Ljava/lang/Object;I)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$1;-><init>(Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;Ljava/lang/Object;I)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$1;->invoke()Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$1;->invoke()Ljava/lang/Object;\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;-><clinit>()V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;-><clinit>()V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;-><init>()V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;-><init>()V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$execute$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$1;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$1;-><init>(Ljava/lang/String;Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;I)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$1;-><init>(Ljava/lang/String;Lapp/cash/sqldelight/driver/android/AndroidSqliteDriver;I)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$1;->invoke()Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$1;->invoke()Ljava/lang/Object;\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$2;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$2;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$2;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$executeQuery$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$statements$1;\nHSPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$statements$1;-><init>(I)V\nPLapp/cash/sqldelight/driver/android/AndroidSqliteDriver$statements$1;-><init>(I)V\nLapp/cash/sqldelight/driver/android/AndroidStatement;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;-><clinit>()V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;-><clinit>()V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;-><init>()V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;-><init>()V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->ProvideBeforeScreenContent(ILandroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function4;)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->ProvideBeforeScreenContent(ILandroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function4;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$LifecycleDisposableEffect(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$LifecycleDisposableEffect(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$getHooks(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroidx/compose/runtime/Composer;)Ljava/util/List;\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$getHooks(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroidx/compose/runtime/Composer;)Ljava/util/List;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$onStart(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$onStart(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$onStop(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$onStop(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$performSave(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$performSave(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$registerLifecycleListener(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->access$registerLifecycleListener(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/CreationExtras;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/CreationExtras;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getLifecycle()Landroidx/lifecycle/Lifecycle;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;->onDispose(Lcafe/adriel/voyager/core/screen/Screen;)V\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion;->get(Lcafe/adriel/voyager/core/screen/Screen;)Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion;->get(Lcafe/adriel/voyager/core/screen/Screen;)Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;-><clinit>()V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;-><clinit>()V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;-><init>()V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;-><init>()V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$Companion$get$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1$invoke$$inlined$onDispose$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1$invoke$$inlined$onDispose$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1$invoke$$inlined$onDispose$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$1$invoke$$inlined$onDispose$1;->dispose()V\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;-><init>(IILjava/lang/Object;)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;-><init>(IILjava/lang/Object;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;-><clinit>()V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;-><clinit>()V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;-><init>()V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;-><init>()V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;->invoke()Ljava/lang/Object;\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$LifecycleDisposableEffect$savedState$1;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$ProvideBeforeScreenContent$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$ProvideBeforeScreenContent$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Lkotlin/jvm/functions/Function2;I)V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$ProvideBeforeScreenContent$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Lkotlin/jvm/functions/Function2;I)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$ProvideBeforeScreenContent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$ProvideBeforeScreenContent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$1;-><init>(Landroidx/lifecycle/Lifecycle;Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$observer$1;)V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$1;-><init>(Landroidx/lifecycle/Lifecycle;Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$observer$1;)V\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$1;->invoke()Ljava/lang/Object;\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$1;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$observer$1;\nHSPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$observer$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$observer$1;-><init>(Lcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner;Landroid/os/Bundle;)V\nPLcafe/adriel/voyager/androidx/AndroidScreenLifecycleOwner$registerLifecycleListener$observer$1;->onStop(Landroidx/lifecycle/LifecycleOwner;)V\nLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nHSPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;-><init>()V\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;-><init>()V\nHSPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->entrySet()Ljava/util/Set;\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->entrySet()Ljava/util/Set;\nHSPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;\nHSPLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;-><init>()V\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;-><init>()V\nHSPLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;->add(Ljava/lang/Object;)Z\nHPLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;->add(Ljava/lang/Object;)Z\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;->iterator()Ljava/util/Iterator;\nPLcafe/adriel/voyager/core/concurrent/ThreadSafeSet;->remove(Ljava/lang/Object;)Z\nLcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;\nHSPLcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;-><init>(Landroid/app/Activity;)V\nPLcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;-><init>(Landroid/app/Activity;)V\nPLcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;->isChangingConfigurations()Z\nLcafe/adriel/voyager/core/lifecycle/DefaultNavigatorScreenLifecycleProvider;\nHSPLcafe/adriel/voyager/core/lifecycle/DefaultNavigatorScreenLifecycleProvider;-><init>()V\nPLcafe/adriel/voyager/core/lifecycle/DefaultNavigatorScreenLifecycleProvider;-><init>()V\nLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;\nHSPLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;-><clinit>()V\nPLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;-><clinit>()V\nHSPLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;-><init>()V\nPLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;-><init>()V\nHSPLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;->ProvideBeforeScreenContent(ILandroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function4;)V\nHPLcafe/adriel/voyager/core/lifecycle/DefaultScreenLifecycleOwner;->ProvideBeforeScreenContent(ILandroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function4;)V\nLcafe/adriel/voyager/core/lifecycle/DisposableEffectIgnoringConfigurationImpl;\nHSPLcafe/adriel/voyager/core/lifecycle/DisposableEffectIgnoringConfigurationImpl;-><init>(Lcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;Lkotlin/jvm/functions/Function1;)V\nPLcafe/adriel/voyager/core/lifecycle/DisposableEffectIgnoringConfigurationImpl;-><init>(Lcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;Lkotlin/jvm/functions/Function1;)V\nPLcafe/adriel/voyager/core/lifecycle/DisposableEffectIgnoringConfigurationImpl;->onForgotten()V\nHSPLcafe/adriel/voyager/core/lifecycle/DisposableEffectIgnoringConfigurationImpl;->onRemembered()V\nPLcafe/adriel/voyager/core/lifecycle/DisposableEffectIgnoringConfigurationImpl;->onRemembered()V\nLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$MultipleProvideBeforeScreenContent$1;\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$MultipleProvideBeforeScreenContent$1;-><init>(Ljava/util/List;)V\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$MultipleProvideBeforeScreenContent$1;-><init>(Ljava/util/List;)V\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$MultipleProvideBeforeScreenContent$1;->invoke()Ljava/lang/Object;\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$MultipleProvideBeforeScreenContent$1;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$1;\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$1;-><init>(ILandroidx/compose/runtime/internal/ComposableLambdaImpl;Lkotlin/jvm/functions/Function4;)V\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$1;-><init>(ILandroidx/compose/runtime/internal/ComposableLambdaImpl;Lkotlin/jvm/functions/Function4;)V\nLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$2;\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$2;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$2;-><init>(Landroidx/compose/runtime/internal/ComposableLambdaImpl;)V\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$3;\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$3;-><init>(Lkotlin/jvm/functions/Function4;I)V\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$3;-><init>(Lkotlin/jvm/functions/Function4;I)V\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4;\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4;-><init>(Lkotlin/jvm/functions/Function2;I)V\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4;-><init>(Lkotlin/jvm/functions/Function2;I)V\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;-><init>(Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;II)V\nPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;-><init>(Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;II)V\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;->invoke(Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;->invoke(Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/lifecycle/MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt;\nHSPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt;-><clinit>()V\nPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt;-><clinit>()V\nHSPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt;->getLocalNavigatorScreenLifecycleProvider()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt;->getLocalNavigatorScreenLifecycleProvider()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;\nHSPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;-><clinit>()V\nPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;-><clinit>()V\nHSPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;-><init>()V\nPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;-><init>()V\nHSPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;->invoke()Ljava/lang/Object;\nPLcafe/adriel/voyager/core/lifecycle/NavigatorScreenLifecycleKt$LocalNavigatorScreenLifecycleProvider$1;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;-><clinit>()V\nPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;-><clinit>()V\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->DisposableEffectIgnoringConfiguration(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;)V\nPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->DisposableEffectIgnoringConfiguration(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;)V\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->MultipleProvideBeforeScreenContent(Ljava/util/List;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->MultipleProvideBeforeScreenContent(Ljava/util/List;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->RecursiveProvideBeforeScreenContent(Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->RecursiveProvideBeforeScreenContent(Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->access$RecursiveProvideBeforeScreenContent(Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->access$RecursiveProvideBeforeScreenContent(Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->access$getInternalDisposableEffectScope$p()Landroidx/compose/runtime/DisposableEffectScope;\nPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->access$getInternalDisposableEffectScope$p()Landroidx/compose/runtime/DisposableEffectScope;\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->getConfigurationChecker(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;\nPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleKt;->getConfigurationChecker(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/core/lifecycle/ConfigurationChecker;\nLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;\nLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleStore;\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleStore;-><clinit>()V\nPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleStore;-><clinit>()V\nHSPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleStore;->register(Lcafe/adriel/voyager/core/screen/Screen;Lkotlin/reflect/KType;Lkotlin/jvm/functions/Function1;)Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;\nHPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleStore;->register(Lcafe/adriel/voyager/core/screen/Screen;Lkotlin/reflect/KType;Lkotlin/jvm/functions/Function1;)Lcafe/adriel/voyager/core/lifecycle/ScreenLifecycleOwner;\nHPLcafe/adriel/voyager/core/lifecycle/ScreenLifecycleStore;->remove(Lcafe/adriel/voyager/core/screen/Screen;)V\nLcafe/adriel/voyager/core/model/ScreenModel;\nLcafe/adriel/voyager/core/model/ScreenModelKt;\nHSPLcafe/adriel/voyager/core/model/ScreenModelKt;->getCoroutineScope(Lcafe/adriel/voyager/core/model/ScreenModel;)Lkotlinx/coroutines/CoroutineScope;\nPLcafe/adriel/voyager/core/model/ScreenModelKt;->getCoroutineScope(Lcafe/adriel/voyager/core/model/ScreenModel;)Lkotlinx/coroutines/CoroutineScope;\nLcafe/adriel/voyager/core/model/ScreenModelStore;\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore;-><clinit>()V\nPLcafe/adriel/voyager/core/model/ScreenModelStore;-><clinit>()V\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore;->getDependencies()Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nPLcafe/adriel/voyager/core/model/ScreenModelStore;->getDependencies()Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore;->getDependencyKey(Lcafe/adriel/voyager/core/model/ScreenModel;Ljava/lang/String;)Ljava/lang/String;\nHPLcafe/adriel/voyager/core/model/ScreenModelStore;->getDependencyKey(Lcafe/adriel/voyager/core/model/ScreenModel;Ljava/lang/String;)Ljava/lang/String;\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore;->getLastScreenModelKey()Lkotlinx/coroutines/flow/MutableStateFlow;\nPLcafe/adriel/voyager/core/model/ScreenModelStore;->getLastScreenModelKey()Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore;->getScreenModels()Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nPLcafe/adriel/voyager/core/model/ScreenModelStore;->getScreenModels()Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nPLcafe/adriel/voyager/core/model/ScreenModelStore;->onEach(Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;Lcafe/adriel/voyager/core/screen/Screen;Lkotlin/jvm/functions/Function1;)V\nPLcafe/adriel/voyager/core/model/ScreenModelStore;->remove(Lcafe/adriel/voyager/core/screen/Screen;)V\nPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$1;-><init>(Lcafe/adriel/voyager/core/screen/Screen;)V\nHPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;-><clinit>()V\nPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;-><clinit>()V\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;-><init>(I)V\nPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;-><init>(I)V\nHSPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/core/model/ScreenModelStore$onEach$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/core/model/StateScreenModel;\nHSPLcafe/adriel/voyager/core/model/StateScreenModel;-><init>(Ljava/lang/Object;)V\nPLcafe/adriel/voyager/core/model/StateScreenModel;-><init>(Ljava/lang/Object;)V\nHSPLcafe/adriel/voyager/core/model/StateScreenModel;->getMutableState()Lkotlinx/coroutines/flow/MutableStateFlow;\nPLcafe/adriel/voyager/core/model/StateScreenModel;->getMutableState()Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLcafe/adriel/voyager/core/model/StateScreenModel;->getState()Lkotlinx/coroutines/flow/StateFlow;\nPLcafe/adriel/voyager/core/model/StateScreenModel;->getState()Lkotlinx/coroutines/flow/StateFlow;\nLcafe/adriel/voyager/core/screen/Screen;\nLcafe/adriel/voyager/core/stack/SnapshotStateStack;\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;-><init>(Ljava/util/List;)V\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack;-><init>(Ljava/util/List;)V\nPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->clearEvent()V\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getCanPop()Z\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getCanPop()Z\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getItems()Ljava/util/List;\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getItems()Ljava/util/List;\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getLastEvent()Lcafe/adriel/voyager/core/stack/StackEvent;\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getLastEvent()Lcafe/adriel/voyager/core/stack/StackEvent;\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getLastItemOrNull()Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getLastItemOrNull()Ljava/lang/Object;\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getStateStack()Landroidx/compose/runtime/snapshots/SnapshotStateList;\nPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->getStateStack()Landroidx/compose/runtime/snapshots/SnapshotStateList;\nPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->push(Ljava/lang/Object;)V\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->replaceAll(Ljava/lang/Object;)V\nPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->replaceAll(Ljava/lang/Object;)V\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->setLastEvent(Lcafe/adriel/voyager/core/stack/StackEvent;)V\nPLcafe/adriel/voyager/core/stack/SnapshotStateStack;->setLastEvent(Lcafe/adriel/voyager/core/stack/StackEvent;)V\nLcafe/adriel/voyager/core/stack/SnapshotStateStack$canPop$2;\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack$canPop$2;-><init>(Lcafe/adriel/voyager/core/stack/SnapshotStateStack;)V\nPLcafe/adriel/voyager/core/stack/SnapshotStateStack$canPop$2;-><init>(Lcafe/adriel/voyager/core/stack/SnapshotStateStack;)V\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack$canPop$2;->invoke()Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack$canPop$2;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/core/stack/SnapshotStateStack$size$2;\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack$size$2;-><init>(Lcafe/adriel/voyager/core/stack/SnapshotStateStack;I)V\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack$size$2;-><init>(Lcafe/adriel/voyager/core/stack/SnapshotStateStack;I)V\nHSPLcafe/adriel/voyager/core/stack/SnapshotStateStack$size$2;->invoke()Ljava/lang/Object;\nHPLcafe/adriel/voyager/core/stack/SnapshotStateStack$size$2;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/core/stack/StackEvent;\nHSPLcafe/adriel/voyager/core/stack/StackEvent;-><clinit>()V\nPLcafe/adriel/voyager/core/stack/StackEvent;-><clinit>()V\nHSPLcafe/adriel/voyager/core/stack/StackEvent;-><init>(Ljava/lang/String;I)V\nPLcafe/adriel/voyager/core/stack/StackEvent;-><init>(Ljava/lang/String;I)V\nLcafe/adriel/voyager/navigator/Navigator;\nHSPLcafe/adriel/voyager/navigator/Navigator;-><init>(Ljava/util/List;Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)V\nHPLcafe/adriel/voyager/navigator/Navigator;-><init>(Ljava/util/List;Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLcafe/adriel/voyager/navigator/Navigator;->access$getStateHolder$p(Lcafe/adriel/voyager/navigator/Navigator;)Landroidx/compose/runtime/saveable/SaveableStateHolder;\nPLcafe/adriel/voyager/navigator/Navigator;->access$getStateHolder$p(Lcafe/adriel/voyager/navigator/Navigator;)Landroidx/compose/runtime/saveable/SaveableStateHolder;\nHSPLcafe/adriel/voyager/navigator/Navigator;->access$saveableState$provideSaveableState(Ljava/lang/String;Lcafe/adriel/voyager/navigator/Navigator;Ljava/lang/String;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/navigator/Navigator;->access$saveableState$provideSaveableState(Ljava/lang/String;Lcafe/adriel/voyager/navigator/Navigator;Ljava/lang/String;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nPLcafe/adriel/voyager/navigator/Navigator;->clearEvent()V\nPLcafe/adriel/voyager/navigator/Navigator;->dispose(Lcafe/adriel/voyager/core/screen/Screen;)V\nHSPLcafe/adriel/voyager/navigator/Navigator;->getCanPop()Z\nPLcafe/adriel/voyager/navigator/Navigator;->getCanPop()Z\nHSPLcafe/adriel/voyager/navigator/Navigator;->getDisposeBehavior()Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;\nPLcafe/adriel/voyager/navigator/Navigator;->getDisposeBehavior()Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;\nHSPLcafe/adriel/voyager/navigator/Navigator;->getItems()Ljava/util/List;\nPLcafe/adriel/voyager/navigator/Navigator;->getItems()Ljava/util/List;\nHSPLcafe/adriel/voyager/navigator/Navigator;->getLastEvent()Lcafe/adriel/voyager/core/stack/StackEvent;\nPLcafe/adriel/voyager/navigator/Navigator;->getLastEvent()Lcafe/adriel/voyager/core/stack/StackEvent;\nHSPLcafe/adriel/voyager/navigator/Navigator;->getLastItem()Lcafe/adriel/voyager/core/screen/Screen;\nHPLcafe/adriel/voyager/navigator/Navigator;->getLastItem()Lcafe/adriel/voyager/core/screen/Screen;\nHSPLcafe/adriel/voyager/navigator/Navigator;->getLastItemOrNull()Lcafe/adriel/voyager/core/screen/Screen;\nPLcafe/adriel/voyager/navigator/Navigator;->getLastItemOrNull()Lcafe/adriel/voyager/core/screen/Screen;\nHSPLcafe/adriel/voyager/navigator/Navigator;->getParent()Lcafe/adriel/voyager/navigator/Navigator;\nPLcafe/adriel/voyager/navigator/Navigator;->getParent()Lcafe/adriel/voyager/navigator/Navigator;\nPLcafe/adriel/voyager/navigator/Navigator;->push(Lcafe/adriel/voyager/core/screen/Screen;)V\nHSPLcafe/adriel/voyager/navigator/Navigator;->replaceAll(Lcafe/adriel/voyager/core/screen/Screen;)V\nPLcafe/adriel/voyager/navigator/Navigator;->replaceAll(Lcafe/adriel/voyager/core/screen/Screen;)V\nHSPLcafe/adriel/voyager/navigator/Navigator;->saveableState(Ljava/lang/String;Lcafe/adriel/voyager/core/screen/Screen;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLcafe/adriel/voyager/navigator/Navigator;->saveableState(Ljava/lang/String;Lcafe/adriel/voyager/core/screen/Screen;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nPLcafe/adriel/voyager/navigator/Navigator$dispose$1;-><init>(Lcafe/adriel/voyager/core/screen/Screen;)V\nHPLcafe/adriel/voyager/navigator/Navigator$dispose$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/Navigator$last$2;\nHSPLcafe/adriel/voyager/navigator/Navigator$last$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nPLcafe/adriel/voyager/navigator/Navigator$last$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nHSPLcafe/adriel/voyager/navigator/Navigator$last$2;->invoke()Lcafe/adriel/voyager/core/screen/Screen;\nPLcafe/adriel/voyager/navigator/Navigator$last$2;->invoke()Lcafe/adriel/voyager/core/screen/Screen;\nHSPLcafe/adriel/voyager/navigator/Navigator$last$2;->invoke()Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/Navigator$last$2;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/Navigator$saveableState$1;\nHSPLcafe/adriel/voyager/navigator/Navigator$saveableState$1;-><init>(Ljava/lang/String;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/Navigator$saveableState$1;-><init>(Ljava/lang/String;Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLcafe/adriel/voyager/navigator/Navigator$saveableState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/Navigator$saveableState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/Navigator$saveableState$2;\nHSPLcafe/adriel/voyager/navigator/Navigator$saveableState$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Ljava/lang/String;Lkotlin/jvm/functions/Function2;I)V\nPLcafe/adriel/voyager/navigator/Navigator$saveableState$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Ljava/lang/String;Lkotlin/jvm/functions/Function2;I)V\nHSPLcafe/adriel/voyager/navigator/Navigator$saveableState$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/Navigator$saveableState$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/Navigator$saveableState$3;\nLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;\nHSPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;-><init>(ZZ)V\nPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;-><init>(ZZ)V\nPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;->equals(Ljava/lang/Object;)Z\nHSPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;->getDisposeNestedNavigators()Z\nPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;->getDisposeNestedNavigators()Z\nHSPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;->getDisposeSteps()Z\nPLcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;->getDisposeSteps()Z\nLcafe/adriel/voyager/navigator/NavigatorKt;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt;-><clinit>()V\nPLcafe/adriel/voyager/navigator/NavigatorKt;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt;->Navigator(Lcafe/adriel/voyager/core/screen/Screen;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLcafe/adriel/voyager/navigator/NavigatorKt;->Navigator(Lcafe/adriel/voyager/core/screen/Screen;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt;->Navigator(Ljava/util/List;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLcafe/adriel/voyager/navigator/NavigatorKt;->Navigator(Ljava/util/List;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt;->compositionUniqueId(Landroidx/compose/runtime/Composer;)Ljava/lang/String;\nHPLcafe/adriel/voyager/navigator/NavigatorKt;->compositionUniqueId(Landroidx/compose/runtime/Composer;)Ljava/lang/String;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt;->getCurrentOrThrow(Landroidx/compose/runtime/StaticProvidableCompositionLocal;Landroidx/compose/runtime/Composer;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/NavigatorKt;->getCurrentOrThrow(Landroidx/compose/runtime/StaticProvidableCompositionLocal;Landroidx/compose/runtime/Composer;)Ljava/lang/Object;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt;->getLocalNavigator()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLcafe/adriel/voyager/navigator/NavigatorKt;->getLocalNavigator()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;-><clinit>()V\nPLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;-><init>(I)V\nPLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;-><init>(I)V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;->invoke()Ljava/lang/Object;\nPLcafe/adriel/voyager/navigator/NavigatorKt$LocalNavigator$1;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$1;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$1;-><clinit>()V\nPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$1;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$1;-><init>()V\nPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$1;-><init>()V\nLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6;-><init>(Ljava/util/List;Ljava/lang/String;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;ILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)V\nPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6;-><init>(Ljava/util/List;Ljava/lang/String;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;ILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6$1;\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6$1;-><init>(Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function3;)V\nPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6$1;-><init>(Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function3;)V\nHSPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/NavigatorKt$Navigator$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/NavigatorSaver;\nLcafe/adriel/voyager/navigator/NavigatorSaverKt;\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt;-><clinit>()V\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt;->getLocalNavigatorSaver()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt;->getLocalNavigatorSaver()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;-><clinit>()V\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;-><init>()V\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;-><init>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;->saver(Ljava/util/List;Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1;->saver(Ljava/util/List;Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)Landroidx/compose/runtime/saveable/SaverKt$Saver$1;\nLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;-><clinit>()V\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;-><init>()V\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;-><init>()V\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$2;\nHSPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$2;-><init>(Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/NavigatorSaverKt$defaultNavigatorSaver$1$saver$2;-><init>(Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)V\nLcafe/adriel/voyager/navigator/internal/ActualsKt;\nHSPLcafe/adriel/voyager/navigator/internal/ActualsKt;->BackHandler(ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/navigator/internal/ActualsKt;->BackHandler(ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/navigator/internal/ActualsKt;->NavigatorBackHandler(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/navigator/internal/ActualsKt;->NavigatorBackHandler(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$1;-><init>(Lkotlin/jvm/functions/Function1;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$1;-><init>(Lkotlin/jvm/functions/Function1;Lcafe/adriel/voyager/navigator/Navigator;)V\nLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$2;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;I)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;I)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorBackHandlerKt$NavigatorBackHandler$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;-><clinit>()V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;->NavigatorDisposableEffect(Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;->NavigatorDisposableEffect(Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;->StepDisposableEffect(Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nHPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;->StepDisposableEffect(Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt;->access$getDisposableEvents$p()Ljava/util/Set;\nLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1$invoke$$inlined$onDispose$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1$invoke$$inlined$onDispose$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1$invoke$$inlined$onDispose$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$NavigatorDisposableEffect$1$invoke$$inlined$onDispose$1;->dispose()V\nLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Ljava/util/List;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Ljava/util/List;)V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1$invoke$$inlined$onDispose$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1$invoke$$inlined$onDispose$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Ljava/util/List;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1$invoke$$inlined$onDispose$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Ljava/util/List;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1$invoke$$inlined$onDispose$1;->dispose()V\nHPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$1$invoke$$inlined$onDispose$1;->dispose()V\nLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$2;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;II)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;II)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorDisposableKt$StepDisposableEffect$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;-><clinit>()V\nPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;->getLocalNavigatorStateHolder()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;->getLocalNavigatorStateHolder()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;->rememberNavigator(Ljava/util/List;Ljava/lang/String;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)Lcafe/adriel/voyager/navigator/Navigator;\nHPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt;->rememberNavigator(Ljava/util/List;Ljava/lang/String;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)Lcafe/adriel/voyager/navigator/Navigator;\nLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$LocalNavigatorStateHolder$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$LocalNavigatorStateHolder$1;-><clinit>()V\nPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$LocalNavigatorStateHolder$1;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$LocalNavigatorStateHolder$1;-><init>()V\nPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$LocalNavigatorStateHolder$1;-><init>()V\nLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$rememberNavigator$1;\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$rememberNavigator$1;-><init>(Ljava/util/List;Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$rememberNavigator$1;-><init>(Ljava/util/List;Ljava/lang/String;Landroidx/compose/runtime/saveable/SaveableStateHolder;Lcafe/adriel/voyager/navigator/NavigatorDisposeBehavior;Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$rememberNavigator$1;->invoke()Ljava/lang/Object;\nPLcafe/adriel/voyager/navigator/internal/NavigatorSaverInternalKt$rememberNavigator$1;->invoke()Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/tab/Tab;\nLcafe/adriel/voyager/navigator/tab/TabNavigator;\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigator;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLcafe/adriel/voyager/navigator/tab/TabNavigator;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigator;->getCurrent()Lcafe/adriel/voyager/navigator/tab/Tab;\nHPLcafe/adriel/voyager/navigator/tab/TabNavigator;->getCurrent()Lcafe/adriel/voyager/navigator/tab/Tab;\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigator;->saveableState(Ljava/lang/String;Lcafe/adriel/voyager/navigator/tab/Tab;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLcafe/adriel/voyager/navigator/tab/TabNavigator;->saveableState(Ljava/lang/String;Lcafe/adriel/voyager/navigator/tab/Tab;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigator;->setCurrent(Leu/kanade/presentation/util/Tab;)V\nPLcafe/adriel/voyager/navigator/tab/TabNavigator;->setCurrent(Leu/kanade/presentation/util/Tab;)V\nLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;-><clinit>()V\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;->TabNavigator(Lcafe/adriel/voyager/navigator/tab/Tab;ZLkotlin/jvm/functions/Function3;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;->TabNavigator(Lcafe/adriel/voyager/navigator/tab/Tab;ZLkotlin/jvm/functions/Function3;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;->getLocalTabNavigator()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt;->getLocalTabNavigator()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$LocalTabNavigator$1;\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$LocalTabNavigator$1;-><clinit>()V\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$LocalTabNavigator$1;-><clinit>()V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$LocalTabNavigator$1;-><init>()V\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$LocalTabNavigator$1;-><init>()V\nLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1;\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1;-><init>(Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function3;)V\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1;-><init>(Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function3;)V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1$1;\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1$1;-><init>(Lkotlin/jvm/functions/Function3;Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1$1;-><init>(Lkotlin/jvm/functions/Function3;Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nHSPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLcafe/adriel/voyager/navigator/tab/TabNavigatorKt$TabNavigator$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLcafe/adriel/voyager/navigator/tab/TabOptions;\nHSPLcafe/adriel/voyager/navigator/tab/TabOptions;-><init>(SLjava/lang/String;Landroidx/compose/ui/graphics/vector/VectorPainter;)V\nHPLcafe/adriel/voyager/navigator/tab/TabOptions;-><init>(SLjava/lang/String;Landroidx/compose/ui/graphics/vector/VectorPainter;)V\nHSPLcafe/adriel/voyager/navigator/tab/TabOptions;->getIcon()Landroidx/compose/ui/graphics/painter/Painter;\nPLcafe/adriel/voyager/navigator/tab/TabOptions;->getIcon()Landroidx/compose/ui/graphics/painter/Painter;\nHSPLcafe/adriel/voyager/navigator/tab/TabOptions;->getTitle()Ljava/lang/String;\nPLcafe/adriel/voyager/navigator/tab/TabOptions;->getTitle()Ljava/lang/String;\nLcoil/EventListener$Factory$$ExternalSyntheticLambda0;\nHSPLcoil/EventListener$Factory$$ExternalSyntheticLambda0;-><init>(I)V\nPLcoil/EventListener$Factory$$ExternalSyntheticLambda0;-><init>(I)V\nHSPLcoil/EventListener$Factory$$ExternalSyntheticLambda0;->invoke(D)D\nPLcoil/EventListener$Factory$$ExternalSyntheticLambda0;->invoke(D)D\nLcoil/ImageLoaderFactory;\nLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/String;\nPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/String;\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;\nPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;\nPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V\nHPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V\nHSPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Z)V\nHPLcoil/decode/ImageDecoderDecoder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Z)V\nLcoil/network/NetworkObserver;\nLcoil/request/RequestService;\nHSPLcoil/request/RequestService;-><init>()V\nHPLcoil/request/RequestService;-><init>()V\nHSPLcoil/request/RequestService;-><init>(Landroidx/lifecycle/ViewModelStore;Landroidx/lifecycle/ViewModelProvider$Factory;)V\nPLcoil/request/RequestService;-><init>(Landroidx/lifecycle/ViewModelStore;Landroidx/lifecycle/ViewModelProvider$Factory;)V\nHSPLcoil/request/RequestService;-><init>(Landroidx/lifecycle/ViewModelStore;Landroidx/lifecycle/ViewModelProvider$Factory;Landroidx/lifecycle/viewmodel/CreationExtras;)V\nHPLcoil/request/RequestService;-><init>(Landroidx/lifecycle/ViewModelStore;Landroidx/lifecycle/ViewModelProvider$Factory;Landroidx/lifecycle/viewmodel/CreationExtras;)V\nHSPLcoil/request/RequestService;-><init>(Ljava/lang/Runnable;)V\nPLcoil/request/RequestService;-><init>(Ljava/lang/Runnable;)V\nHSPLcoil/request/RequestService;->get(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;\nPLcoil/request/RequestService;->get(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;\nHSPLcoil/request/RequestService;->get(Ljava/lang/Class;Ljava/lang/String;)Landroidx/lifecycle/ViewModel;\nHPLcoil/request/RequestService;->get(Ljava/lang/Class;Ljava/lang/String;)Landroidx/lifecycle/ViewModel;\nHSPLcoil/request/RequestService;->parsePathString(Ljava/lang/String;)V\nHPLcoil/request/RequestService;->parsePathString(Ljava/lang/String;)V\nHSPLcoil/request/RequestService;->toNodes()Ljava/util/List;\nPLcoil/request/RequestService;->toNodes()Ljava/util/List;\nLcoil/size/-Sizes;\nHSPLcoil/size/-Sizes;->bind(Landroidx/sqlite/db/SupportSQLiteProgram;[Ljava/lang/Object;)V\nPLcoil/size/-Sizes;->bind(Landroidx/sqlite/db/SupportSQLiteProgram;[Ljava/lang/Object;)V\nHSPLcoil/size/-Sizes;->execute$default(Lapp/cash/sqldelight/db/SqlDriver;Ljava/lang/Integer;Ljava/lang/String;)V\nPLcoil/size/-Sizes;->execute$default(Lapp/cash/sqldelight/db/SqlDriver;Ljava/lang/Integer;Ljava/lang/String;)V\nHSPLcoil/size/-Sizes;->generationalId(Landroidx/work/impl/model/WorkSpec;)Landroidx/work/impl/model/WorkGenerationalId;\nPLcoil/size/-Sizes;->generationalId(Landroidx/work/impl/model/WorkSpec;)Landroidx/work/impl/model/WorkGenerationalId;\nHSPLcoil/size/-Sizes;->getColumnIndex(Landroid/database/Cursor;Ljava/lang/String;)I\nPLcoil/size/-Sizes;->getColumnIndex(Landroid/database/Cursor;Ljava/lang/String;)I\nHSPLcoil/size/-Sizes;->getColumnIndexOrThrow(Landroid/database/Cursor;Ljava/lang/String;)I\nPLcoil/size/-Sizes;->getColumnIndexOrThrow(Landroid/database/Cursor;Ljava/lang/String;)I\nHSPLcoil/size/-Sizes;->getKey(Lcafe/adriel/voyager/core/screen/Screen;)Ljava/lang/String;\nHPLcoil/size/-Sizes;->getKey(Lcafe/adriel/voyager/core/screen/Screen;)Ljava/lang/String;\nHSPLcoil/size/-Sizes;->getMultiplatformName(Lkotlin/reflect/KClass;)Ljava/lang/String;\nHPLcoil/size/-Sizes;->getMultiplatformName(Lkotlin/reflect/KClass;)Ljava/lang/String;\nHSPLcoil/size/-Sizes;->query(Landroidx/room/RoomDatabase;Landroidx/sqlite/db/SupportSQLiteQuery;Z)Landroid/database/Cursor;\nPLcoil/size/-Sizes;->query(Landroidx/room/RoomDatabase;Landroidx/sqlite/db/SupportSQLiteQuery;Z)Landroid/database/Cursor;\nLcoil/size/Scale$EnumUnboxingLocalUtility;\nHSPLcoil/size/Scale$EnumUnboxingLocalUtility;->m(Ljava/lang/String;J)Ljava/lang/String;\nPLcoil/size/Scale$EnumUnboxingLocalUtility;->m(Ljava/lang/String;J)Ljava/lang/String;\nLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;\nHSPLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/job/JobInfo$Builder;Z)V\nPLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/job/JobInfo$Builder;Z)V\nHSPLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nPLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;\nHSPLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/job/JobInfo$Builder;Z)V\nPLcom/github/junrar/Archive$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/job/JobInfo$Builder;Z)V\nLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;\nHSPLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;-><init>(Landroid/view/View;Landroid/view/Window;)V\nPLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;-><init>(Landroid/view/View;Landroid/view/Window;)V\nHSPLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;->setNavigationBarColor-Iv8Zu3U(JZLkotlin/jvm/functions/Function1;)V\nPLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;->setNavigationBarColor-Iv8Zu3U(JZLkotlin/jvm/functions/Function1;)V\nHSPLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;->setStatusBarColor-ek8zF_U(JZLkotlin/jvm/functions/Function1;)V\nPLcom/google/accompanist/systemuicontroller/AndroidSystemUiController;->setStatusBarColor-ek8zF_U(JZLkotlin/jvm/functions/Function1;)V\nLcom/google/accompanist/systemuicontroller/SystemUiControllerKt;\nHSPLcom/google/accompanist/systemuicontroller/SystemUiControllerKt;-><clinit>()V\nPLcom/google/accompanist/systemuicontroller/SystemUiControllerKt;-><clinit>()V\nLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;\nHSPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;-><init>(Landroidx/compose/ui/text/font/FontFamily;)V\nPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;-><init>(Landroidx/compose/ui/text/font/FontFamily;)V\nHSPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;-><init>(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;)V\nHPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;-><init>(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;)V\nHSPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;->getFontFamily()Landroidx/compose/ui/text/font/FontFamily;\nHSPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;->getWeight()Landroidx/compose/ui/text/font/FontWeight;\nPLcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;->getWeight()Landroidx/compose/ui/text/font/FontWeight;\nLcom/google/accompanist/themeadapter/core/R$styleable;\nHSPLcom/google/accompanist/themeadapter/core/R$styleable;-><clinit>()V\nPLcom/google/accompanist/themeadapter/core/R$styleable;-><clinit>()V\nLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;-><clinit>()V\nPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;-><clinit>()V\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseColor-mxwnekA$default(Landroid/content/res/TypedArray;I)J\nHPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseColor-mxwnekA$default(Landroid/content/res/TypedArray;I)J\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseCornerSize(Landroid/content/res/TypedArray;I)Landroidx/compose/foundation/shape/CornerSize;\nHPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseCornerSize(Landroid/content/res/TypedArray;I)Landroidx/compose/foundation/shape/CornerSize;\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseFontFamily(Landroid/content/res/TypedArray;I)Lcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;\nHPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseFontFamily(Landroid/content/res/TypedArray;I)Lcom/google/accompanist/themeadapter/core/FontFamilyWithWeight;\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseShapeAppearance(Landroid/content/Context;ILandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/foundation/shape/CornerBasedShape;)Landroidx/compose/foundation/shape/CornerBasedShape;\nHPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseShapeAppearance(Landroid/content/Context;ILandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/foundation/shape/CornerBasedShape;)Landroidx/compose/foundation/shape/CornerBasedShape;\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseTextAppearance(Landroid/content/Context;ILandroidx/compose/ui/unit/Density;ZLandroidx/compose/ui/text/font/FontFamily;)Landroidx/compose/ui/text/TextStyle;\nHPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseTextAppearance(Landroid/content/Context;ILandroidx/compose/ui/unit/Density;ZLandroidx/compose/ui/text/font/FontFamily;)Landroidx/compose/ui/text/TextStyle;\nHSPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseTextUnit-lGoEivg(Landroid/content/res/TypedArray;ILandroidx/compose/ui/unit/Density;J)J\nHPLcom/google/accompanist/themeadapter/core/ResourceUtilsKt;->parseTextUnit-lGoEivg(Landroid/content/res/TypedArray;ILandroidx/compose/ui/unit/Density;J)J\nLcom/google/accompanist/themeadapter/material3/Mdc3Theme;\nHSPLcom/google/accompanist/themeadapter/material3/Mdc3Theme;-><clinit>()V\nPLcom/google/accompanist/themeadapter/material3/Mdc3Theme;-><clinit>()V\nHSPLcom/google/accompanist/themeadapter/material3/Mdc3Theme;->createMdc3Theme$default(Landroid/content/Context;Landroidx/compose/ui/unit/LayoutDirection;)Lcom/google/accompanist/themeadapter/material3/Theme3Parameters;\nHPLcom/google/accompanist/themeadapter/material3/Mdc3Theme;->createMdc3Theme$default(Landroid/content/Context;Landroidx/compose/ui/unit/LayoutDirection;)Lcom/google/accompanist/themeadapter/material3/Theme3Parameters;\nLcom/google/accompanist/themeadapter/material3/R$styleable;\nHSPLcom/google/accompanist/themeadapter/material3/R$styleable;-><clinit>()V\nPLcom/google/accompanist/themeadapter/material3/R$styleable;-><clinit>()V\nLcom/google/accompanist/themeadapter/material3/Theme3Parameters;\nHSPLcom/google/accompanist/themeadapter/material3/Theme3Parameters;-><init>(Landroidx/compose/material3/ColorScheme;Landroidx/compose/material3/Typography;Landroidx/compose/material3/Shapes;)V\nPLcom/google/accompanist/themeadapter/material3/Theme3Parameters;-><init>(Landroidx/compose/material3/ColorScheme;Landroidx/compose/material3/Typography;Landroidx/compose/material3/Shapes;)V\nHSPLcom/google/accompanist/themeadapter/material3/Theme3Parameters;->component1()Landroidx/compose/material3/ColorScheme;\nPLcom/google/accompanist/themeadapter/material3/Theme3Parameters;->component1()Landroidx/compose/material3/ColorScheme;\nHSPLcom/google/accompanist/themeadapter/material3/Theme3Parameters;->component2()Landroidx/compose/material3/Typography;\nPLcom/google/accompanist/themeadapter/material3/Theme3Parameters;->component2()Landroidx/compose/material3/Typography;\nLcom/google/android/material/color/DynamicColors;\nHSPLcom/google/android/material/color/DynamicColors;-><clinit>()V\nPLcom/google/android/material/color/DynamicColors;-><clinit>()V\nHSPLcom/google/android/material/color/DynamicColors;->isDynamicColorAvailable()Z\nPLcom/google/android/material/color/DynamicColors;->isDynamicColorAvailable()Z\nLcom/google/android/material/color/DynamicColors$1;\nHSPLcom/google/android/material/color/DynamicColors$1;-><init>()V\nPLcom/google/android/material/color/DynamicColors$1;-><init>()V\nLcom/google/android/material/color/DynamicColors$2;\nHSPLcom/google/android/material/color/DynamicColors$2;-><init>()V\nPLcom/google/android/material/color/DynamicColors$2;-><init>()V\nLcom/google/android/material/color/DynamicColors$DeviceSupportCondition;\nLcom/google/android/material/theme/MaterialComponentsViewInflater;\nHSPLcom/google/android/material/theme/MaterialComponentsViewInflater;-><init>()V\nPLcom/google/android/material/theme/MaterialComponentsViewInflater;-><init>()V\nLcom/google/common/util/concurrent/ListenableFuture;\nLcom/hippo/unifile/RawFile;\nHSPLcom/hippo/unifile/RawFile;-><init>(Ljava/io/File;)V\nPLcom/hippo/unifile/RawFile;-><init>(Ljava/io/File;)V\nHSPLcom/hippo/unifile/RawFile;->exists()Z\nPLcom/hippo/unifile/RawFile;->exists()Z\nLcom/hippo/unifile/UniFile;\nHSPLcom/hippo/unifile/UniFile;-><init>()V\nPLcom/hippo/unifile/UniFile;-><init>()V\nHSPLcom/hippo/unifile/UniFile;->fromUri(Landroid/content/Context;Landroid/net/Uri;)Lcom/hippo/unifile/UniFile;\nPLcom/hippo/unifile/UniFile;->fromUri(Landroid/content/Context;Landroid/net/Uri;)Lcom/hippo/unifile/UniFile;\nLcom/jakewharton/disklrucache/DiskLruCache;\nHSPLcom/jakewharton/disklrucache/DiskLruCache;-><clinit>()V\nPLcom/jakewharton/disklrucache/DiskLruCache;-><clinit>()V\nHSPLcom/jakewharton/disklrucache/DiskLruCache;-><init>(Ljava/io/File;)V\nPLcom/jakewharton/disklrucache/DiskLruCache;-><init>(Ljava/io/File;)V\nHSPLcom/jakewharton/disklrucache/DiskLruCache;->getDirectory()Ljava/io/File;\nPLcom/jakewharton/disklrucache/DiskLruCache;->getDirectory()Ljava/io/File;\nHSPLcom/jakewharton/disklrucache/DiskLruCache;->open(Ljava/io/File;)Lcom/jakewharton/disklrucache/DiskLruCache;\nPLcom/jakewharton/disklrucache/DiskLruCache;->open(Ljava/io/File;)Lcom/jakewharton/disklrucache/DiskLruCache;\nHSPLcom/jakewharton/disklrucache/DiskLruCache;->rebuildJournal()V\nPLcom/jakewharton/disklrucache/DiskLruCache;->rebuildJournal()V\nHSPLcom/jakewharton/disklrucache/DiskLruCache;->renameTo(Ljava/io/File;Ljava/io/File;Z)V\nPLcom/jakewharton/disklrucache/DiskLruCache;->renameTo(Ljava/io/File;Ljava/io/File;Z)V\nLcom/jakewharton/disklrucache/DiskLruCache$1;\nHSPLcom/jakewharton/disklrucache/DiskLruCache$1;-><init>(Lcom/jakewharton/disklrucache/DiskLruCache;)V\nPLcom/jakewharton/disklrucache/DiskLruCache$1;-><init>(Lcom/jakewharton/disklrucache/DiskLruCache;)V\nLcom/jakewharton/disklrucache/DiskLruCache$2;\nHSPLcom/jakewharton/disklrucache/DiskLruCache$2;-><init>()V\nPLcom/jakewharton/disklrucache/DiskLruCache$2;-><init>()V\nLcom/jakewharton/disklrucache/Util;\nHSPLcom/jakewharton/disklrucache/Util;-><clinit>()V\nPLcom/jakewharton/disklrucache/Util;-><clinit>()V\nLcom/mikepenz/aboutlibraries/entity/Library;\nLeu/kanade/core/preference/PreferenceMutableState;\nHSPLeu/kanade/core/preference/PreferenceMutableState;-><init>(Ltachiyomi/core/preference/Preference;Lkotlinx/coroutines/CoroutineScope;)V\nPLeu/kanade/core/preference/PreferenceMutableState;-><init>(Ltachiyomi/core/preference/Preference;Lkotlinx/coroutines/CoroutineScope;)V\nHSPLeu/kanade/core/preference/PreferenceMutableState;->access$getState$p(Leu/kanade/core/preference/PreferenceMutableState;)Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nPLeu/kanade/core/preference/PreferenceMutableState;->access$getState$p(Leu/kanade/core/preference/PreferenceMutableState;)Landroidx/compose/runtime/ParcelableSnapshotMutableState;\nHSPLeu/kanade/core/preference/PreferenceMutableState;->getValue()Ljava/lang/Object;\nPLeu/kanade/core/preference/PreferenceMutableState;->getValue()Ljava/lang/Object;\nLeu/kanade/core/preference/PreferenceMutableState$1;\nHSPLeu/kanade/core/preference/PreferenceMutableState$1;-><init>(Leu/kanade/core/preference/PreferenceMutableState;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/core/preference/PreferenceMutableState$1;-><init>(Leu/kanade/core/preference/PreferenceMutableState;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/core/preference/PreferenceMutableState$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/core/preference/PreferenceMutableState$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/core/preference/PreferenceMutableState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/core/preference/PreferenceMutableState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/core/preference/PreferenceMutableState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/core/preference/PreferenceMutableState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/core/preference/PreferenceMutableStateKt;\nHSPLeu/kanade/core/preference/PreferenceMutableStateKt;->asState(Ltachiyomi/core/preference/Preference;Lkotlinx/coroutines/CoroutineScope;)Leu/kanade/core/preference/PreferenceMutableState;\nPLeu/kanade/core/preference/PreferenceMutableStateKt;->asState(Ltachiyomi/core/preference/Preference;Lkotlinx/coroutines/CoroutineScope;)Leu/kanade/core/preference/PreferenceMutableState;\nLeu/kanade/core/util/CollectionUtilsKt;\nHSPLeu/kanade/core/util/CollectionUtilsKt;->insertSeparators(Ljava/util/ArrayList;Lkotlin/jvm/functions/Function2;)Ljava/util/List;\nPLeu/kanade/core/util/CollectionUtilsKt;->insertSeparators(Ljava/util/ArrayList;Lkotlin/jvm/functions/Function2;)Ljava/util/List;\nLeu/kanade/domain/DomainModule;\nHSPLeu/kanade/domain/DomainModule;-><init>()V\nPLeu/kanade/domain/DomainModule;-><init>()V\nHSPLeu/kanade/domain/DomainModule;->registerInjectables(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule;->registerInjectables(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule;->registerWith(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule;->registerWith(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$10;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$10;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$10;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$11;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$11;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$11;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$12;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$12;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$12;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$13;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$13;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$13;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$14;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$14;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$14;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$15;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$15;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$15;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$16;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$16;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$16;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$17;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$17;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$17;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$18;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$18;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$18;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$19;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$19;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$19;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$20;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$20;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$20;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$21;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$21;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$21;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$22;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$22;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$22;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$23;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$23;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$23;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$24;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$24;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$24;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$25;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$25;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$25;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$26;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$26;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$26;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$27;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$27;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$27;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$28;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$28;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$28;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$29;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$29;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$29;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$3;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$3;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$3;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$30;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$30;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$30;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$31;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$31;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$31;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$32;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$32;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$32;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$33;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$33;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$33;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$34;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$34;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$34;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$35;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$35;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$35;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$36;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$36;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$36;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$37;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$37;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$37;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$38;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$38;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$38;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$39;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$39;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$39;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$4;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$4;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$4;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$40;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$40;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$40;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$41;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$41;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$41;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$42;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$42;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$42;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$43;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$43;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$43;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$44;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$44;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$44;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$45;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$45;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$45;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$46;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$46;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$46;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$47;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$47;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$47;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$48;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$48;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$48;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$49;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$49;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$49;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$5;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$5;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$5;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$50;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$50;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$50;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$51;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$51;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$51;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$52;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$52;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$52;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$53;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$53;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$53;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$54;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$54;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$54;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$6;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$6;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$6;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$7;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$7;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$7;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$8;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$8;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$8;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$9;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$9;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addFactory$9;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$3;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$3;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$3;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$4;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$4;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$4;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$5;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$5;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$5;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$6;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$6;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$6;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$7;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$7;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$7;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$8;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$8;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$8;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$9;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$9;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$$inlined$addSingletonFactory$9;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$1;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$1;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$1;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$1$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$1$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$1$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$10;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$10;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$10;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$11;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$11;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$11;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$11;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$11;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$11$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$11$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$11$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$12;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$12;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$12;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$13;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$13;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$13;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$14;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$14;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$14;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$14;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$14;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$14$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$14$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$14$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$15;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$15;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$15;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$16;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$16;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$16;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$16;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$16;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$16$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$16$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$16$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$17;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$17;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$17;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$17;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$17;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$3;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$3;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$17$invoke$$inlined$get$3;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$18;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$18;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$18;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$19;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$19;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$19;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$2;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$2;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$2;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$2$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$2$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$2$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$20;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$20;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$20;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$20;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$20;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$20$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$20$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$20$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$21;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$21;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$21;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$22;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$22;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$22;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$23;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$23;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$23;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$24;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$24;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$24;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$24;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$24;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$24$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$24$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$24$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$24$invoke$$inlined$get$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$24$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$24$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$25;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$25;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$25;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$25;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$25;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$25$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$25$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$25$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$26;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$26;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$26;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$27;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$27;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$27;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$28;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$28;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$28;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$28;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$28;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$28$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$28$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$28$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$29;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$29;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$29;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$3;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$3;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$3;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$30;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$30;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$30;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$31;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$31;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$31;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$31;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$31;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$31$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$31$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$31$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$32;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$32;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$32;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$33;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$33;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$33;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$34;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$34;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$34;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$34;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$34;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$34$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$34$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$34$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$35;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$35;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$35;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$35;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$35;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$35$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$35$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$35$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$36;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$36;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$36;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$36;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$36;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$36$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$36$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$36$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$37;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$37;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$37;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$37;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$37;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$37$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$37$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$37$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$38;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$38;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$38;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$38;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$38;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$3;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$3;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$3;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$4;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$4;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$38$invoke$$inlined$get$4;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$39;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$39;-><clinit>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$39;-><clinit>()V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$39;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$39;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$4;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$4;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$4;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$4;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$4;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$4$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$4$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$4$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$40;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$40;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$40;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$41;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$41;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$41;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$42;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$42;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$42;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$42;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$42;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$42$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$42$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$42$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$43;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$43;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$43;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$43;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$43;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$43$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$43$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$43$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$44;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$44;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$44;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$45;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$45;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$45;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$45;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$45;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$45$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$45$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$45$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$46;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$46;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$46;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$47;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$47;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$47;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$47;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$47;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$47$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$47$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$47$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$47$invoke$$inlined$get$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$47$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$47$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$48;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$48;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$48;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$49;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$49;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$49;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$5;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$5;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$5;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$5;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$5;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$5$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$5$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$5$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$5$invoke$$inlined$get$2;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$5$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$5$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$50;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$50;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$50;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$51;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$51;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$51;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$51;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$51;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$51$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$51$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$51$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$52;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$52;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$52;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$52;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$52;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$52$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$52$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$52$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$53;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$53;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$53;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$54;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$54;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$54;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/domain/DomainModule$registerInjectables$54;->invoke()Ljava/lang/Object;\nPLeu/kanade/domain/DomainModule$registerInjectables$54;->invoke()Ljava/lang/Object;\nLeu/kanade/domain/DomainModule$registerInjectables$54$invoke$$inlined$get$1;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$54$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/domain/DomainModule$registerInjectables$54$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/domain/DomainModule$registerInjectables$55;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$55;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$55;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$56;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$56;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$56;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$57;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$57;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$57;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$58;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$58;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$58;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$59;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$59;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$59;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$6;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$6;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$6;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$60;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$60;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$60;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$61;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$61;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$61;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$62;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$62;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$62;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$63;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$63;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$63;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$7;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$7;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$7;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$8;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$8;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$8;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/DomainModule$registerInjectables$9;\nHSPLeu/kanade/domain/DomainModule$registerInjectables$9;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/domain/DomainModule$registerInjectables$9;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/domain/base/BasePreferences;\nHSPLeu/kanade/domain/base/BasePreferences;-><init>(Landroid/app/Application;Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/domain/base/BasePreferences;-><init>(Landroid/app/Application;Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLeu/kanade/domain/base/BasePreferences;->downloadedOnly()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/base/BasePreferences;->downloadedOnly()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/base/BasePreferences;->incognitoMode()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/base/BasePreferences;->incognitoMode()Ltachiyomi/core/preference/Preference;\nLeu/kanade/domain/chapter/interactor/SetReadStatus;\nHSPLeu/kanade/domain/chapter/interactor/SetReadStatus;-><init>(Ltachiyomi/domain/download/service/DownloadPreferences;Leu/kanade/domain/download/interactor/DeleteDownload;Ltachiyomi/domain/manga/repository/MangaRepository;Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nPLeu/kanade/domain/chapter/interactor/SetReadStatus;-><init>(Ltachiyomi/domain/download/service/DownloadPreferences;Leu/kanade/domain/download/interactor/DeleteDownload;Ltachiyomi/domain/manga/repository/MangaRepository;Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nLeu/kanade/domain/chapter/interactor/SetReadStatus$mapper$1;\nHSPLeu/kanade/domain/chapter/interactor/SetReadStatus$mapper$1;-><clinit>()V\nPLeu/kanade/domain/chapter/interactor/SetReadStatus$mapper$1;-><clinit>()V\nHSPLeu/kanade/domain/chapter/interactor/SetReadStatus$mapper$1;-><init>()V\nPLeu/kanade/domain/chapter/interactor/SetReadStatus$mapper$1;-><init>()V\nLeu/kanade/domain/chapter/interactor/SyncChaptersWithSource;\nLeu/kanade/domain/chapter/interactor/SyncChaptersWithTrackServiceTwoWay;\nLeu/kanade/domain/download/interactor/DeleteDownload;\nHSPLeu/kanade/domain/download/interactor/DeleteDownload;-><init>(Ltachiyomi/domain/source/service/SourceManager;Leu/kanade/tachiyomi/data/download/DownloadManager;)V\nPLeu/kanade/domain/download/interactor/DeleteDownload;-><init>(Ltachiyomi/domain/source/service/SourceManager;Leu/kanade/tachiyomi/data/download/DownloadManager;)V\nLeu/kanade/domain/extension/interactor/GetExtensionLanguages;\nLeu/kanade/domain/extension/interactor/GetExtensionSources;\nLeu/kanade/domain/extension/interactor/GetExtensionsByType;\nLeu/kanade/domain/manga/interactor/SetMangaViewerFlags;\nLeu/kanade/domain/manga/interactor/UpdateManga;\nHSPLeu/kanade/domain/manga/interactor/UpdateManga;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;Ltachiyomi/domain/manga/interactor/SetFetchInterval;)V\nPLeu/kanade/domain/manga/interactor/UpdateManga;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;Ltachiyomi/domain/manga/interactor/SetFetchInterval;)V\nLeu/kanade/domain/source/interactor/GetEnabledSources;\nLeu/kanade/domain/source/interactor/GetLanguagesWithSources;\nLeu/kanade/domain/source/interactor/GetSourcesWithFavoriteCount;\nLeu/kanade/domain/source/interactor/SetMigrateSorting;\nLeu/kanade/domain/source/interactor/ToggleLanguage;\nLeu/kanade/domain/source/interactor/ToggleSource;\nLeu/kanade/domain/source/interactor/ToggleSourcePin;\nLeu/kanade/domain/source/service/SourcePreferences;\nHSPLeu/kanade/domain/source/service/SourcePreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/domain/source/service/SourcePreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLeu/kanade/domain/source/service/SourcePreferences;->enabledLanguages()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/source/service/SourcePreferences;->enabledLanguages()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/source/service/SourcePreferences;->extensionUpdatesCount()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/source/service/SourcePreferences;->extensionUpdatesCount()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/source/service/SourcePreferences;->trustedSignatures()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/source/service/SourcePreferences;->trustedSignatures()Ltachiyomi/core/preference/Preference;\nLeu/kanade/domain/track/interactor/TrackChapter;\nLeu/kanade/domain/track/service/TrackPreferences;\nHSPLeu/kanade/domain/track/service/TrackPreferences;-><clinit>()V\nPLeu/kanade/domain/track/service/TrackPreferences;-><clinit>()V\nHSPLeu/kanade/domain/track/service/TrackPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/domain/track/service/TrackPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLeu/kanade/domain/track/service/TrackPreferences;->anilistScoreType()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/track/service/TrackPreferences;->anilistScoreType()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/track/service/TrackPreferences;->trackUsername(Leu/kanade/tachiyomi/data/track/TrackService;)Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/track/service/TrackPreferences;->trackUsername(Leu/kanade/tachiyomi/data/track/TrackService;)Ltachiyomi/core/preference/Preference;\nLeu/kanade/domain/track/service/TrackPreferences$Companion;\nHSPLeu/kanade/domain/track/service/TrackPreferences$Companion;-><init>()V\nPLeu/kanade/domain/track/service/TrackPreferences$Companion;-><init>()V\nHSPLeu/kanade/domain/track/service/TrackPreferences$Companion;-><init>(I)V\nPLeu/kanade/domain/track/service/TrackPreferences$Companion;-><init>(I)V\nLeu/kanade/domain/track/store/DelayedTrackingStore;\nLeu/kanade/domain/ui/UiPreferences;\nHSPLeu/kanade/domain/ui/UiPreferences;-><clinit>()V\nPLeu/kanade/domain/ui/UiPreferences;-><clinit>()V\nHSPLeu/kanade/domain/ui/UiPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/domain/ui/UiPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLeu/kanade/domain/ui/UiPreferences;->appTheme()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/ui/UiPreferences;->appTheme()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/ui/UiPreferences;->tabletUiMode()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/ui/UiPreferences;->tabletUiMode()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/ui/UiPreferences;->themeDarkAmoled()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/ui/UiPreferences;->themeDarkAmoled()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/domain/ui/UiPreferences;->themeMode()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/domain/ui/UiPreferences;->themeMode()Ltachiyomi/core/preference/Preference;\nLeu/kanade/domain/ui/UiPreferences$Companion;\nHSPLeu/kanade/domain/ui/UiPreferences$Companion;-><init>()V\nPLeu/kanade/domain/ui/UiPreferences$Companion;-><init>()V\nHSPLeu/kanade/domain/ui/UiPreferences$Companion;-><init>(I)V\nPLeu/kanade/domain/ui/UiPreferences$Companion;-><init>(I)V\nLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$1;\nHSPLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$1;-><clinit>()V\nPLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$1;-><clinit>()V\nHSPLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$1;-><init>()V\nPLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$1;-><init>()V\nLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$2;\nHSPLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$2;-><init>(Leu/kanade/domain/ui/model/AppTheme;)V\nPLeu/kanade/domain/ui/UiPreferences$appTheme$$inlined$getEnum$2;-><init>(Leu/kanade/domain/ui/model/AppTheme;)V\nLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$1;\nHSPLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$1;-><clinit>()V\nPLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$1;-><clinit>()V\nHSPLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$1;-><init>()V\nPLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$1;-><init>()V\nLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$2;\nHSPLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$2;-><init>()V\nPLeu/kanade/domain/ui/UiPreferences$tabletUiMode$$inlined$getEnum$2;-><init>()V\nLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$1;\nHSPLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$1;-><clinit>()V\nPLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$1;-><clinit>()V\nHSPLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$1;-><init>()V\nPLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$1;-><init>()V\nLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$2;\nHSPLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$2;-><init>(Leu/kanade/domain/ui/model/ThemeMode;)V\nPLeu/kanade/domain/ui/UiPreferences$themeMode$$inlined$getEnum$2;-><init>(Leu/kanade/domain/ui/model/ThemeMode;)V\nLeu/kanade/domain/ui/model/AppTheme;\nHSPLeu/kanade/domain/ui/model/AppTheme;-><clinit>()V\nPLeu/kanade/domain/ui/model/AppTheme;-><clinit>()V\nHSPLeu/kanade/domain/ui/model/AppTheme;-><init>(Ljava/lang/String;ILjava/lang/Integer;)V\nPLeu/kanade/domain/ui/model/AppTheme;-><init>(Ljava/lang/String;ILjava/lang/Integer;)V\nLeu/kanade/domain/ui/model/TabletUiMode;\nHSPLeu/kanade/domain/ui/model/TabletUiMode;-><clinit>()V\nPLeu/kanade/domain/ui/model/TabletUiMode;-><clinit>()V\nHSPLeu/kanade/domain/ui/model/TabletUiMode;-><init>(Ljava/lang/String;II)V\nPLeu/kanade/domain/ui/model/TabletUiMode;-><init>(Ljava/lang/String;II)V\nLeu/kanade/domain/ui/model/ThemeMode;\nHSPLeu/kanade/domain/ui/model/ThemeMode;-><clinit>()V\nPLeu/kanade/domain/ui/model/ThemeMode;-><clinit>()V\nHSPLeu/kanade/domain/ui/model/ThemeMode;-><init>(Ljava/lang/String;I)V\nPLeu/kanade/domain/ui/model/ThemeMode;-><init>(Ljava/lang/String;I)V\nLeu/kanade/domain/ui/model/ThemeModeKt;\nHSPLeu/kanade/domain/ui/model/ThemeModeKt;->setAppCompatDelegateThemeMode(Leu/kanade/domain/ui/model/ThemeMode;)V\nPLeu/kanade/domain/ui/model/ThemeModeKt;->setAppCompatDelegateThemeMode(Leu/kanade/domain/ui/model/ThemeMode;)V\nLeu/kanade/presentation/components/AppBar$Action;\nHSPLeu/kanade/presentation/components/AppBar$Action;-><init>(Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/ui/graphics/Color;Lkotlin/jvm/functions/Function0;ZI)V\nHPLeu/kanade/presentation/components/AppBar$Action;-><init>(Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/ui/graphics/Color;Lkotlin/jvm/functions/Function0;ZI)V\nHSPLeu/kanade/presentation/components/AppBar$Action;->getEnabled()Z\nPLeu/kanade/presentation/components/AppBar$Action;->getEnabled()Z\nHSPLeu/kanade/presentation/components/AppBar$Action;->getIcon()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLeu/kanade/presentation/components/AppBar$Action;->getIcon()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLeu/kanade/presentation/components/AppBar$Action;->getIconTint-QN2ZGVo()Landroidx/compose/ui/graphics/Color;\nPLeu/kanade/presentation/components/AppBar$Action;->getIconTint-QN2ZGVo()Landroidx/compose/ui/graphics/Color;\nHSPLeu/kanade/presentation/components/AppBar$Action;->getOnClick()Lkotlin/jvm/functions/Function0;\nPLeu/kanade/presentation/components/AppBar$Action;->getOnClick()Lkotlin/jvm/functions/Function0;\nHSPLeu/kanade/presentation/components/AppBar$Action;->getTitle()Ljava/lang/String;\nPLeu/kanade/presentation/components/AppBar$Action;->getTitle()Ljava/lang/String;\nLeu/kanade/presentation/components/AppBar$AppBarAction;\nLeu/kanade/presentation/components/AppBar$OverflowAction;\nHSPLeu/kanade/presentation/components/AppBar$OverflowAction;-><init>(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nHPLeu/kanade/presentation/components/AppBar$OverflowAction;-><init>(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nLeu/kanade/presentation/components/AppBarKt;\nHSPLeu/kanade/presentation/components/AppBarKt;->AppBar(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/components/AppBarKt;->AppBar(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/components/AppBarKt;->AppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ZLkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/components/AppBarKt;->AppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ZLkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/components/AppBarKt;->AppBarActions(Ljava/util/List;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/components/AppBarKt;->AppBarActions(Ljava/util/List;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/presentation/components/AppBarKt;->AppBarTitle(Ljava/lang/String;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/components/AppBarKt;->AppBarTitle(Ljava/lang/String;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/components/AppBarKt;->SearchToolbar(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/ui/text/input/VisualTransformation;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/Composer;III)V\nHPLeu/kanade/presentation/components/AppBarKt;->SearchToolbar(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/ui/text/input/VisualTransformation;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/runtime/Composer;III)V\nPLeu/kanade/presentation/components/AppBarKt;->UpIcon(Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/components/AppBarKt;->UpIcon(Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/components/AppBarKt;->access$AppBar$lambda$1(Landroidx/compose/runtime/State;)Z\nPLeu/kanade/presentation/components/AppBarKt;->access$AppBar$lambda$1(Landroidx/compose/runtime/State;)Z\nLeu/kanade/presentation/components/AppBarKt$AppBar$2;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$2;-><init>(ILjava/lang/String;Ljava/lang/String;ILandroidx/compose/runtime/State;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$2;-><init>(ILjava/lang/String;Ljava/lang/String;ILandroidx/compose/runtime/State;)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$AppBar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBar$3;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$3;-><init>(Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function3;Landroidx/compose/runtime/State;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$3;-><init>(Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function3;Landroidx/compose/runtime/State;)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$AppBar$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBar$4;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$4;-><init>(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$4;-><init>(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nLeu/kanade/presentation/components/AppBarKt$AppBar$5;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$5;-><clinit>()V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$5;-><clinit>()V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$5;-><init>()V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$5;-><init>()V\nLeu/kanade/presentation/components/AppBarKt$AppBar$6$1;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$6$1;-><init>(ZLkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$6$1;-><init>(ZLkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$AppBar$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBar$7;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$7;-><init>(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ZLkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$7;-><init>(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function3;ZLkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nLeu/kanade/presentation/components/AppBarKt$AppBar$isActionMode$2$1;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$isActionMode$2$1;-><init>(I)V\nPLeu/kanade/presentation/components/AppBarKt$AppBar$isActionMode$2$1;-><init>(I)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBar$isActionMode$2$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/presentation/components/AppBarKt$AppBar$isActionMode$2$1;->invoke()Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$1;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$1;-><init>(Leu/kanade/presentation/components/AppBar$Action;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$1;-><init>(Leu/kanade/presentation/components/AppBar$Action;)V\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2;-><init>(Leu/kanade/presentation/components/AppBar$Action;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2;-><init>(Leu/kanade/presentation/components/AppBar$Action;)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2$1;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2$1;-><init>(Leu/kanade/presentation/components/AppBar$Action;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2$1;-><init>(Leu/kanade/presentation/components/AppBar$Action;)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$AppBarActions$1$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$2;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$2;-><init>(Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$2;-><init>(Landroidx/compose/runtime/MutableState;)V\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$AppBarActions$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$2$1$1;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$2$1$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$2$1$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$3$1;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$3$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$3$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$4;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$4;-><init>(Landroidx/compose/runtime/MutableState;Ljava/util/ArrayList;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$4;-><init>(Landroidx/compose/runtime/MutableState;Ljava/util/ArrayList;)V\nLeu/kanade/presentation/components/AppBarKt$AppBarActions$5;\nHSPLeu/kanade/presentation/components/AppBarKt$AppBarActions$5;-><init>(ILjava/util/List;)V\nPLeu/kanade/presentation/components/AppBarKt$AppBarActions$5;-><init>(ILjava/util/List;)V\nLeu/kanade/presentation/components/AppBarKt$SearchToolbar$1;\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$1;-><clinit>()V\nPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$1;-><init>()V\nPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$1;-><init>()V\nLeu/kanade/presentation/components/AppBarKt$SearchToolbar$2$1;\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$2$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$2$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/components/AppBarKt$SearchToolbar$4;\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$4;-><init>(Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILandroidx/compose/ui/focus/FocusRequester;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/text/input/VisualTransformation;Landroidx/compose/foundation/interaction/MutableInteractionSource;ILkotlin/jvm/functions/Function1;Ljava/lang/String;)V\nHPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$4;-><init>(Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILandroidx/compose/ui/focus/FocusRequester;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/text/input/VisualTransformation;Landroidx/compose/foundation/interaction/MutableInteractionSource;ILkotlin/jvm/functions/Function1;Ljava/lang/String;)V\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5;\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5;-><init>(Lkotlin/jvm/functions/Function1;IZLjava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/focus/FocusRequester;)V\nHPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5;-><init>(Lkotlin/jvm/functions/Function1;IZLjava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/focus/FocusRequester;)V\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$1;\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$onClick$1$1;\nHSPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$onClick$1$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/components/AppBarKt$SearchToolbar$5$onClick$1$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/components/AppBarKt$UpIcon$1;-><init>(Landroidx/compose/ui/graphics/vector/ImageVector;II)V\nLeu/kanade/presentation/components/BannersKt;\nHSPLeu/kanade/presentation/components/BannersKt;->AppStateBanners(ZZZLandroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/components/BannersKt;->AppStateBanners(ZZZLandroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1;-><init>(ZILandroidx/compose/foundation/layout/AndroidWindowInsets;ZIZ)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1;-><init>(ZILandroidx/compose/foundation/layout/AndroidWindowInsets;ZIZ)V\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$1;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;II)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$1;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;II)V\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1;-><init>(IIIZ)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1;-><init>(IIIZ)V\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1$1;-><init>(II)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$downloadedOnlyPlaceable$1$1;-><init>(II)V\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1;-><init>(IIIIZ)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1;-><init>(IIIIZ)V\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1$1;-><init>(III)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$incognitoPlaceable$1$1;-><init>(III)V\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1;-><init>(ZILandroidx/compose/foundation/layout/WindowInsets;)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1;-><init>(ZILandroidx/compose/foundation/layout/WindowInsets;)V\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1$1;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$1$1$indexingPlaceable$1$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;)V\nLeu/kanade/presentation/components/BannersKt$AppStateBanners$2;\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$2;-><init>(ZZZLandroidx/compose/ui/Modifier;II)V\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$2;-><init>(ZZZLandroidx/compose/ui/Modifier;II)V\nHSPLeu/kanade/presentation/components/BannersKt$AppStateBanners$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/components/BannersKt$AppStateBanners$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-1$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-1$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-1$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-1$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-1$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;-><init>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-10$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-11$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-11$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-11$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-11$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-11$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-12$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-12$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-12$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-12$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-12$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-2$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-2$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-2$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-2$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-2$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-3$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-3$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-3$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-3$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-3$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-4$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-4$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-4$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-4$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-4$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-5$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-5$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-5$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-5$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-5$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;-><init>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-7$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-7$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-7$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-7$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-7$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-8$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-8$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-8$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-8$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-8$1;-><init>()V\nLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-9$1;\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-9$1;-><clinit>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-9$1;-><clinit>()V\nHSPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-9$1;-><init>()V\nPLeu/kanade/presentation/components/ComposableSingletons$AppBarKt$lambda-9$1;-><init>()V\nLeu/kanade/presentation/components/DropdownMenuKt;\nHSPLeu/kanade/presentation/components/DropdownMenuKt;->DropdownMenu-ILWXrKs(ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/window/PopupProperties;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/components/DropdownMenuKt;->DropdownMenu-ILWXrKs(ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/window/PopupProperties;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt;\nHSPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt;-><clinit>()V\nPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt;-><clinit>()V\nHSPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt;-><init>()V\nPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt;-><init>()V\nLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;\nHSPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;-><clinit>()V\nPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;-><clinit>()V\nHSPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;-><init>()V\nPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;-><init>()V\nHSPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/history/ComposableSingletons$HistoryScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/history/HistoryScreenKt;\nHSPLeu/kanade/presentation/history/HistoryScreenKt;->HistoryScreen(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Landroidx/compose/material3/SnackbarHostState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/history/HistoryScreenKt;->HistoryScreen(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Landroidx/compose/material3/SnackbarHostState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1;\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function1;)V\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function1;)V\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1;\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1;-><init>(ILkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1;-><init>(ILkotlin/jvm/functions/Function1;)V\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1$1$1;\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1$1$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$1$1$1$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$2;\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$2;-><init>(Landroidx/compose/material3/SnackbarHostState;I)V\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$2;-><init>(Landroidx/compose/material3/SnackbarHostState;I)V\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$3;\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$3;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$3;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V\nHSPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/history/HistoryScreenKt$HistoryScreen$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/library/components/LibraryToolbarKt;\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt;->LibraryRegularToolbar(Leu/kanade/presentation/library/components/LibraryToolbarTitle;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/library/components/LibraryToolbarKt;->LibraryRegularToolbar(Leu/kanade/presentation/library/components/LibraryToolbarTitle;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt;->LibraryToolbar(ZILeu/kanade/presentation/library/components/LibraryToolbarTitle;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/library/components/LibraryToolbarKt;->LibraryToolbar(ZILeu/kanade/presentation/library/components/LibraryToolbarTitle;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$1;\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$1;-><init>(Leu/kanade/presentation/library/components/LibraryToolbarTitle;F)V\nPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$1;-><init>(Leu/kanade/presentation/library/components/LibraryToolbarTitle;F)V\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$2;\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$2;-><init>(ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$2;-><init>(ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$3;\nHSPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$3;-><init>(Leu/kanade/presentation/library/components/LibraryToolbarTitle;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;I)V\nPLeu/kanade/presentation/library/components/LibraryToolbarKt$LibraryRegularToolbar$3;-><init>(Leu/kanade/presentation/library/components/LibraryToolbarTitle;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;I)V\nLeu/kanade/presentation/library/components/LibraryToolbarTitle;\nHSPLeu/kanade/presentation/library/components/LibraryToolbarTitle;-><init>(Ljava/lang/String;Ljava/lang/Integer;)V\nPLeu/kanade/presentation/library/components/LibraryToolbarTitle;-><init>(Ljava/lang/String;Ljava/lang/Integer;)V\nHSPLeu/kanade/presentation/library/components/LibraryToolbarTitle;->equals(Ljava/lang/Object;)Z\nPLeu/kanade/presentation/library/components/LibraryToolbarTitle;->equals(Ljava/lang/Object;)Z\nHSPLeu/kanade/presentation/library/components/LibraryToolbarTitle;->getNumberOfManga()Ljava/lang/Integer;\nPLeu/kanade/presentation/library/components/LibraryToolbarTitle;->getNumberOfManga()Ljava/lang/Integer;\nHSPLeu/kanade/presentation/library/components/LibraryToolbarTitle;->getText()Ljava/lang/String;\nPLeu/kanade/presentation/library/components/LibraryToolbarTitle;->getText()Ljava/lang/String;\nLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt;\nHSPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt;->LibraryBottomActionMenu(ZLandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt;->LibraryBottomActionMenu(ZLandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt;->MangaBottomActionMenu(ZLandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt;->MangaBottomActionMenu(ZLandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt$LibraryBottomActionMenu$1;\nHSPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt$LibraryBottomActionMenu$1;-><init>(Landroidx/compose/ui/Modifier;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt$LibraryBottomActionMenu$1;-><init>(Landroidx/compose/ui/Modifier;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt$MangaBottomActionMenu$1;\nHSPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt$MangaBottomActionMenu$1;-><init>(Landroidx/compose/ui/Modifier;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/manga/components/MangaBottomActionMenuKt$MangaBottomActionMenu$1;-><init>(Landroidx/compose/ui/Modifier;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt;\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt;-><clinit>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt;-><clinit>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt;-><init>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt;-><init>()V\nLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;-><clinit>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;-><clinit>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;-><init>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;-><init>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;-><clinit>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;-><clinit>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;-><init>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;-><init>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;-><clinit>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;-><clinit>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;-><init>()V\nPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;-><init>()V\nHSPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/ComposableSingletons$MoreScreenKt$lambda-3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/LogoHeaderKt;\nHSPLeu/kanade/presentation/more/LogoHeaderKt;->LogoHeader(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/more/LogoHeaderKt;->LogoHeader(Landroidx/compose/runtime/Composer;I)V\nLeu/kanade/presentation/more/LogoHeaderKt$LogoHeader$2;\nHSPLeu/kanade/presentation/more/LogoHeaderKt$LogoHeader$2;-><init>(I)V\nPLeu/kanade/presentation/more/LogoHeaderKt$LogoHeader$2;-><init>(I)V\nLeu/kanade/presentation/more/MoreScreenKt;\nHSPLeu/kanade/presentation/more/MoreScreenKt;->MoreScreen(Lkotlin/jvm/functions/Function0;ZLkotlin/jvm/functions/Function1;ZLkotlin/jvm/functions/Function1;ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/more/MoreScreenKt;->MoreScreen(Lkotlin/jvm/functions/Function0;ZLkotlin/jvm/functions/Function1;ZLkotlin/jvm/functions/Function1;ZLkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$1;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$1;-><init>(ZLandroidx/compose/ui/platform/UriHandler;)V\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$1;-><init>(ZLandroidx/compose/ui/platform/UriHandler;)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2;-><init>(ZLkotlin/jvm/functions/Function1;IZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Landroidx/compose/ui/platform/UriHandler;)V\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2;-><init>(ZLkotlin/jvm/functions/Function1;IZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Landroidx/compose/ui/platform/UriHandler;)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1;-><init>(ZLkotlin/jvm/functions/Function1;IZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Landroidx/compose/ui/platform/UriHandler;)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1;-><init>(ZLkotlin/jvm/functions/Function1;IZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Landroidx/compose/ui/platform/UriHandler;)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$1;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$1;-><init>(ILkotlin/jvm/functions/Function1;Z)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$1;-><init>(ILkotlin/jvm/functions/Function1;Z)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$2;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$2;-><init>(ILkotlin/jvm/functions/Function1;Z)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$2;-><init>(ILkotlin/jvm/functions/Function1;Z)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$3;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$3;-><init>(ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$3;-><init>(ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$4;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$4;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$4;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$5;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$5;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$5;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$6;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$6;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$6;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$6;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$6;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$7;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$7;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$7;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$7;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$7;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$8;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$8;-><init>(Lkotlin/jvm/functions/Function0;I)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$8;-><init>(Lkotlin/jvm/functions/Function0;I)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$8;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$8;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9;-><init>(Landroidx/compose/ui/platform/UriHandler;)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9;-><init>(Landroidx/compose/ui/platform/UriHandler;)V\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9$1;\nHSPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9$1;-><init>(Landroidx/compose/ui/platform/UriHandler;)V\nPLeu/kanade/presentation/more/MoreScreenKt$MoreScreen$2$1$9$1;-><init>(Landroidx/compose/ui/platform/UriHandler;)V\nLeu/kanade/presentation/more/settings/PreferenceItemKt;\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt;-><clinit>()V\nPLeu/kanade/presentation/more/settings/PreferenceItemKt;-><clinit>()V\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt;->getLocalPreferenceHighlighted()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLeu/kanade/presentation/more/settings/PreferenceItemKt;->getLocalPreferenceHighlighted()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt;->getLocalPreferenceMinHeight()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nPLeu/kanade/presentation/more/settings/PreferenceItemKt;->getLocalPreferenceMinHeight()Landroidx/compose/runtime/DynamicProvidableCompositionLocal;\nLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;-><clinit>()V\nPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;-><clinit>()V\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;-><init>()V\nPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;-><init>()V\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceHighlighted$1;->invoke()Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;-><clinit>()V\nPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;-><clinit>()V\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;-><init>()V\nPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;-><init>()V\nHSPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/PreferenceItemKt$LocalPreferenceMinHeight$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-1$1;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-1$1;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-2$1;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-2$1;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/ComposableSingletons$SettingsMainScreenKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsBackupScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsBackupScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsBrowseScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsBrowseScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsDownloadScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsDownloadScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsLibraryScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsLibraryScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen;->Content(Landroidx/compose/runtime/Composer;I)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen;->Content(ZLandroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen;->Content(ZLandroidx/compose/runtime/Composer;I)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen;->access$getItems$p()Ljava/util/List;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2;-><init>(Lkotlin/jvm/functions/Function0;Lcafe/adriel/voyager/navigator/Navigator;Z)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$1$1$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Z)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$2$2$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Z)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3;-><init>(ZLcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/material3/TopAppBarState;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1;-><init>(Ljava/lang/Integer;ZLcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$1;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$1;-><init>()V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$2$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Leu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;Lcafe/adriel/voyager/navigator/Navigator;Z)V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$2$1$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Leu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;Z)V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$2$1$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Leu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;Z)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$invoke$$inlined$itemsIndexed$default$1;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$invoke$$inlined$itemsIndexed$default$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$invoke$$inlined$itemsIndexed$default$2;-><init>(Ljava/util/List;)V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$invoke$$inlined$itemsIndexed$default$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$invoke$$inlined$itemsIndexed$default$3;-><init>(Ljava/util/List;Ljava/lang/Integer;ZLcafe/adriel/voyager/navigator/Navigator;)V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$3$1$invoke$$inlined$itemsIndexed$default$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Content$4;-><init>(Leu/kanade/presentation/more/settings/screen/SettingsMainScreen;ZI)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;-><init>(IILandroidx/compose/ui/graphics/vector/ImageVector;Leu/kanade/presentation/more/settings/screen/SearchableSettings;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;-><init>(IILkotlin/jvm/functions/Function2;Landroidx/compose/ui/graphics/vector/ImageVector;Lcafe/adriel/voyager/core/screen/Screen;)V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;->getFormatSubtitle()Lkotlin/jvm/functions/Function2;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;->getIcon()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;->getTitleRes()I\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item;->hashCode()I\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item$1;-><init>(I)V\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$Item$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$items$1;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$items$1;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$items$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/screen/SettingsMainScreen$items$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/more/settings/screen/SettingsReaderScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsReaderScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsSecurityScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsSecurityScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsTrackingScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/SettingsTrackingScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/about/AboutScreen;-><clinit>()V\nPLeu/kanade/presentation/more/settings/screen/about/AboutScreen;-><init>()V\nPLeu/kanade/presentation/more/settings/screen/about/AboutScreen;->getVersionName(Z)Ljava/lang/String;\nLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;-><clinit>()V\nPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;-><clinit>()V\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;->BasePreferenceWidget(Landroidx/compose/ui/Modifier;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;->BasePreferenceWidget(Landroidx/compose/ui/Modifier;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;->getPrefsHorizontalPadding()F\nPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;->getPrefsHorizontalPadding()F\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;->getTrailingWidgetBuffer()F\nPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt;->getTrailingWidgetBuffer()F\nLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$BasePreferenceWidget$1$1;\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$BasePreferenceWidget$1$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$BasePreferenceWidget$1$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$BasePreferenceWidget$1$1;->invoke()Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$BasePreferenceWidget$3;\nLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1;\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1;-><init>(Z)V\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1;-><init>(Z)V\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;-><init>(ZLandroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;-><init>(ZLandroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/widget/BasePreferenceWidgetKt$highlightBackground$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt;\nHSPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt;->SwitchPreferenceWidget(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt;->SwitchPreferenceWidget(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$1;\nHSPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$1;-><init>(IZ)V\nPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$1;-><init>(IZ)V\nHSPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$2$1;\nHSPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$2$1;-><init>(ZLkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/more/settings/widget/SwitchPreferenceWidgetKt$SwitchPreferenceWidget$2$1;-><init>(ZLkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt;\nHSPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt;->TextPreferenceWidget-3f6hBDE(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;JLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt;->TextPreferenceWidget-3f6hBDE(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;JLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$1;\nHSPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$1;-><init>(Ljava/lang/String;I)V\nPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$1;-><init>(Ljava/lang/String;I)V\nHSPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$2;\nHSPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$2;-><init>(IJLandroidx/compose/ui/graphics/vector/ImageVector;)V\nPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$2;-><init>(IJLandroidx/compose/ui/graphics/vector/ImageVector;)V\nHSPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$3;\nHSPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$3;-><init>(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;JLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;II)V\nPLeu/kanade/presentation/more/settings/widget/TextPreferenceWidgetKt$TextPreferenceWidget$3;-><init>(Landroidx/compose/ui/Modifier;Ljava/lang/String;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;JLkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;II)V\nLeu/kanade/presentation/theme/TachiyomiThemeKt;\nHSPLeu/kanade/presentation/theme/TachiyomiThemeKt;->TachiyomiTheme(Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nPLeu/kanade/presentation/theme/TachiyomiThemeKt;->TachiyomiTheme(Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nLeu/kanade/presentation/updates/UpdatesScreenKt;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt;->UpdateScreen(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Landroidx/compose/material3/SnackbarHostState;JLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt;->UpdateScreen(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Landroidx/compose/material3/SnackbarHostState;JLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt;->access$UpdatesAppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt;->access$UpdatesAppBar(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;Landroidx/compose/runtime/Composer;II)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt;->access$UpdatesBottomBar(Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt;->access$UpdatesBottomBar(Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$1$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$1$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$1$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2;-><init>(Lkotlin/jvm/functions/Function0;ILeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2;-><init>(Lkotlin/jvm/functions/Function0;ILeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$1$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$1$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$1$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$2$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$2$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$2$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$3$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$3$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$3$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$4$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$4$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$2$4$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$3;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$3;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;II)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$3;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;II)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$4;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$4;-><init>(Landroidx/compose/material3/SnackbarHostState;I)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$4;-><init>(Landroidx/compose/material3/SnackbarHostState;I)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$5;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$5;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Lkotlin/jvm/functions/Function0;JLandroid/content/Context;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$5;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Lkotlin/jvm/functions/Function0;JLandroid/content/Context;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdateScreen$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$2;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$2;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$2;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$3;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$3;-><init>(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesAppBar$3;-><init>(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/material3/TopAppBarScrollBehavior;II)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$1;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$1;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$1;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$11;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$11;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$11;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$3;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$3;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$3;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$5;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$5;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$5;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$7;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$7;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$7;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$9;\nHSPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$9;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/presentation/updates/UpdatesScreenKt$UpdatesBottomBar$9;-><init>(Ljava/util/List;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt;\nHSPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt;-><clinit>()V\nPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt;-><clinit>()V\nHSPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt;-><init>()V\nPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt;-><init>()V\nLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;\nHSPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;-><clinit>()V\nPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;-><clinit>()V\nHSPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;-><init>()V\nPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;-><init>()V\nHSPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/util/ComposableSingletons$NavigatorKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/util/NavigatorKt;\nHSPLeu/kanade/presentation/util/NavigatorKt;-><clinit>()V\nPLeu/kanade/presentation/util/NavigatorKt;-><clinit>()V\nHSPLeu/kanade/presentation/util/NavigatorKt;->DefaultNavigatorScreenTransition(Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/presentation/util/NavigatorKt;->DefaultNavigatorScreenTransition(Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/presentation/util/NavigatorKt;->ScreenTransition(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V\nHPLeu/kanade/presentation/util/NavigatorKt;->ScreenTransition(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V\nPLeu/kanade/presentation/util/NavigatorKt;->getLocalBackPress()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLeu/kanade/presentation/util/NavigatorKt$DefaultNavigatorScreenTransition$1;\nHSPLeu/kanade/presentation/util/NavigatorKt$DefaultNavigatorScreenTransition$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nPLeu/kanade/presentation/util/NavigatorKt$DefaultNavigatorScreenTransition$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nHSPLeu/kanade/presentation/util/NavigatorKt$DefaultNavigatorScreenTransition$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/util/NavigatorKt$DefaultNavigatorScreenTransition$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/util/NavigatorKt$LocalBackPress$1;\nHSPLeu/kanade/presentation/util/NavigatorKt$LocalBackPress$1;-><clinit>()V\nPLeu/kanade/presentation/util/NavigatorKt$LocalBackPress$1;-><clinit>()V\nHSPLeu/kanade/presentation/util/NavigatorKt$LocalBackPress$1;-><init>()V\nPLeu/kanade/presentation/util/NavigatorKt$LocalBackPress$1;-><init>()V\nLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1;\nHSPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;ILkotlin/jvm/functions/Function4;)V\nPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;ILkotlin/jvm/functions/Function4;)V\nHSPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1$1;\nHSPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1$1;-><init>(Lkotlin/jvm/functions/Function4;Landroidx/compose/animation/AnimatedContentScope;Lcafe/adriel/voyager/core/screen/Screen;I)V\nHPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1$1;-><init>(Lkotlin/jvm/functions/Function4;Landroidx/compose/animation/AnimatedContentScope;Lcafe/adriel/voyager/core/screen/Screen;I)V\nHSPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$2;\nHSPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function4;II)V\nPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function4;II)V\nPLeu/kanade/presentation/util/NavigatorKt$ScreenTransition$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/presentation/util/Screen;\nHSPLeu/kanade/presentation/util/Screen;-><init>()V\nHPLeu/kanade/presentation/util/Screen;-><init>()V\nHSPLeu/kanade/presentation/util/Screen;->getKey()Ljava/lang/String;\nHPLeu/kanade/presentation/util/Screen;->getKey()Ljava/lang/String;\nLeu/kanade/presentation/util/Tab;\nLeu/kanade/presentation/util/WindowSizeKt;\nHSPLeu/kanade/presentation/util/WindowSizeKt;->isTabletUi(Landroidx/compose/runtime/Composer;)Z\nHPLeu/kanade/presentation/util/WindowSizeKt;->isTabletUi(Landroidx/compose/runtime/Composer;)Z\nLeu/kanade/tachiyomi/App;\nHSPLeu/kanade/tachiyomi/App;-><init>()V\nPLeu/kanade/tachiyomi/App;-><init>()V\nHSPLeu/kanade/tachiyomi/App;->access$getDisableIncognitoReceiver$p(Leu/kanade/tachiyomi/App;)Leu/kanade/tachiyomi/App$DisableIncognitoReceiver;\nPLeu/kanade/tachiyomi/App;->access$getDisableIncognitoReceiver$p(Leu/kanade/tachiyomi/App;)Leu/kanade/tachiyomi/App$DisableIncognitoReceiver;\nHSPLeu/kanade/tachiyomi/App;->getPackageName()Ljava/lang/String;\nHPLeu/kanade/tachiyomi/App;->getPackageName()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/App;->onCreate()V\nPLeu/kanade/tachiyomi/App;->onCreate()V\nHSPLeu/kanade/tachiyomi/App;->onStart(Landroidx/lifecycle/LifecycleOwner;)V\nPLeu/kanade/tachiyomi/App;->onStart(Landroidx/lifecycle/LifecycleOwner;)V\nPLeu/kanade/tachiyomi/App;->onStop(Landroidx/lifecycle/LifecycleOwner;)V\nLeu/kanade/tachiyomi/App$DisableIncognitoReceiver;\nHSPLeu/kanade/tachiyomi/App$DisableIncognitoReceiver;-><init>(Leu/kanade/tachiyomi/App;)V\nPLeu/kanade/tachiyomi/App$DisableIncognitoReceiver;-><init>(Leu/kanade/tachiyomi/App;)V\nHSPLeu/kanade/tachiyomi/App$DisableIncognitoReceiver;->unregister()V\nPLeu/kanade/tachiyomi/App$DisableIncognitoReceiver;->unregister()V\nLeu/kanade/tachiyomi/App$onCreate$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/App$onCreate$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/App$onCreate$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/App$onCreate$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/App$onCreate$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/App$onCreate$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/App$onCreate$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/App$onCreate$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/App$onCreate$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/App$onCreate$1;\nHSPLeu/kanade/tachiyomi/App$onCreate$1;-><init>(Leu/kanade/tachiyomi/App;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/App$onCreate$1;-><init>(Leu/kanade/tachiyomi/App;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/App$onCreate$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/App$onCreate$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/App$onCreate$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/App$onCreate$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/App$onCreate$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/App$onCreate$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;-><init>()V\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1$1;\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1$1;-><init>()V\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$1$1;-><init>()V\nLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;-><clinit>()V\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;-><init>()V\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;-><init>()V\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2$1;\nHSPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2$1;-><init>()V\nPLeu/kanade/tachiyomi/App$special$$inlined$injectLazy$2$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule;\nHSPLeu/kanade/tachiyomi/AppModule;->$r8$lambda$0RHLTm-bvsDpST_-bhuVCJga1ss(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule;->$r8$lambda$0RHLTm-bvsDpST_-bhuVCJga1ss(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/AppModule;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/AppModule;->getApp()Landroid/app/Application;\nPLeu/kanade/tachiyomi/AppModule;->getApp()Landroid/app/Application;\nHSPLeu/kanade/tachiyomi/AppModule;->registerInjectables(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule;->registerInjectables(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule;->registerWith(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule;->registerWith(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingleton$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingleton$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingleton$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$10;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$10;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$10;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$11;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$11;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$11;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$12;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$12;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$12;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$13;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$13;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$13;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$14;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$14;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$14;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$15;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$15;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$15;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$16;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$16;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$16;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$17;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$17;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$17;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$18;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$18;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$18;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$19;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$19;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$19;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$2;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$2;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$2;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$3;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$3;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$3;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$4;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$4;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$4;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$5;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$5;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$5;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$6;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$6;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$6;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$7;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$7;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$7;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$8;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$8;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$8;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$9;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$9;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$$inlined$addSingletonFactory$9;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$1;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$1;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;-><init>(Ltachiyomi/data/data/DatabaseImpl$Schema;[Lapp/cash/sqldelight/db/AfterVersion;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;-><init>(Ltachiyomi/data/data/DatabaseImpl$Schema;[Lapp/cash/sqldelight/db/AfterVersion;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;->setPragma(Landroidx/sqlite/db/SupportSQLiteDatabase;Ljava/lang/String;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$1$1;->setPragma(Landroidx/sqlite/db/SupportSQLiteDatabase;Ljava/lang/String;)V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$10;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$10;-><init>(Leu/kanade/tachiyomi/AppModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$10;-><init>(Leu/kanade/tachiyomi/AppModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$10;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$10;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$10$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$10$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$10$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$10$invoke$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$10$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$10$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$11;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$11;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$11;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$11;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$11;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$12;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$12;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$12;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$12;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$12;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$13;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$13;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$13;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$13;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$13;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$14;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$14;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$14;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$14;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$14;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$15;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$15;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$15;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$15;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$15;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$16;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$16;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$16;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$17;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$17;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$17;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$18;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$18;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$18;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$18;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$18;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$19;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$19;-><init>(Leu/kanade/tachiyomi/AppModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$19;-><init>(Leu/kanade/tachiyomi/AppModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$19;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$19;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$19$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$19$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$19$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$2;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$2;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$2;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$2$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$2$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$2$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$3;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$3;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$3;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$3;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$3;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$3$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$3$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$3$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$3$invoke$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$3$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$3$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$4;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$4;-><clinit>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$4;-><clinit>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$4;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$4;-><init>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$4;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$4;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;-><clinit>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;-><init>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$5;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$5;-><clinit>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$5;-><clinit>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$5;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$5;-><init>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$5;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$5;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;-><clinit>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;-><init>()V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$5$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$6;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$6;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$6;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$6;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$6;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$7;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$7;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$7;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$7;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$7;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$8;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$8;-><init>(Leu/kanade/tachiyomi/AppModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$8;-><init>(Leu/kanade/tachiyomi/AppModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$8;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$8;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/AppModule$registerInjectables$8$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$8$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$8$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$9;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$9;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$9;-><init>(Leu/kanade/tachiyomi/AppModule;)V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/AppModule$registerInjectables$lambda$0$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/Migrations;\nHSPLeu/kanade/tachiyomi/Migrations;-><clinit>()V\nPLeu/kanade/tachiyomi/Migrations;-><clinit>()V\nHSPLeu/kanade/tachiyomi/Migrations;-><init>()V\nPLeu/kanade/tachiyomi/Migrations;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule;\nHSPLeu/kanade/tachiyomi/PreferenceModule;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/PreferenceModule;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule;->getApplication()Landroid/app/Application;\nPLeu/kanade/tachiyomi/PreferenceModule;->getApplication()Landroid/app/Application;\nHSPLeu/kanade/tachiyomi/PreferenceModule;->registerInjectables(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule;->registerInjectables(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule;->registerWith(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule;->registerWith(Luy/kohesive/injekt/api/InjektRegistrar;)V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$10;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$10;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$10;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$11;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$11;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$11;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$12;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$12;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$12;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$13;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$13;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$13;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$2;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$2;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$2;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$3;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$3;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$3;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$4;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$4;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$4;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$5;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$5;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$5;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$6;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$6;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$6;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$7;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$7;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$7;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$8;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$8;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$8;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$9;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$9;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$$inlined$addSingletonFactory$9;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$1;-><init>(Leu/kanade/tachiyomi/PreferenceModule;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$1;-><init>(Leu/kanade/tachiyomi/PreferenceModule;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$10;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$10;-><init>(Leu/kanade/tachiyomi/PreferenceModule;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$10;-><init>(Leu/kanade/tachiyomi/PreferenceModule;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$10;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$10;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11$invoke$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$11$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$12$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13;-><init>(Leu/kanade/tachiyomi/PreferenceModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13;-><init>(Leu/kanade/tachiyomi/PreferenceModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$13$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$2$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$3$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$4$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$5$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$6$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$7$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$8;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$8;-><init>(Leu/kanade/tachiyomi/PreferenceModule;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$8;-><init>(Leu/kanade/tachiyomi/PreferenceModule;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$8;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$8;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9$invoke$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9$invoke$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9$invoke$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9$invoke$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9$invoke$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/PreferenceModule$registerInjectables$9$invoke$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/core/security/SecurityPreferences;\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences;->secureScreen()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences;->secureScreen()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences;->useAuthenticator()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences;->useAuthenticator()Ltachiyomi/core/preference/Preference;\nLeu/kanade/tachiyomi/core/security/SecurityPreferences$SecureScreenMode;\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences$SecureScreenMode;-><clinit>()V\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences$SecureScreenMode;-><clinit>()V\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences$SecureScreenMode;-><init>(Ljava/lang/String;II)V\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences$SecureScreenMode;-><init>(Ljava/lang/String;II)V\nLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$1;\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$1;-><clinit>()V\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$1;-><init>()V\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$1;-><init>()V\nLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$2;\nHSPLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$2;-><init>()V\nPLeu/kanade/tachiyomi/core/security/SecurityPreferences$secureScreen$$inlined$getEnum$2;-><init>()V\nLeu/kanade/tachiyomi/crash/CrashActivity;\nLeu/kanade/tachiyomi/crash/GlobalExceptionHandler;\nHSPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler;-><clinit>()V\nPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler;-><clinit>()V\nHSPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler;-><init>(Landroid/content/Context;Ljava/lang/Thread$UncaughtExceptionHandler;)V\nPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler;-><init>(Landroid/content/Context;Ljava/lang/Thread$UncaughtExceptionHandler;)V\nLeu/kanade/tachiyomi/crash/GlobalExceptionHandler$Companion;\nHSPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler$Companion;-><init>()V\nPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/crash/GlobalExceptionHandler$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/backup/BackupCreateJob;\nHSPLeu/kanade/tachiyomi/data/backup/BackupCreateJob;-><clinit>()V\nPLeu/kanade/tachiyomi/data/backup/BackupCreateJob;-><clinit>()V\nLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;\nHSPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;-><init>(I)V\nHSPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;->setupTask(Landroid/content/Context;Ljava/lang/Integer;)V\nPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion;->setupTask(Landroid/content/Context;Ljava/lang/Integer;)V\nLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion$setupTask$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion$setupTask$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/backup/BackupCreateJob$Companion$setupTask$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/cache/ChapterCache;\nHSPLeu/kanade/tachiyomi/data/cache/ChapterCache;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/cache/ChapterCache;-><init>(Landroid/app/Application;)V\nLeu/kanade/tachiyomi/data/cache/ChapterCache$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/cache/ChapterCache$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/cache/ChapterCache$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/cache/ChapterCache$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/cache/ChapterCache$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/cache/CoverCache;\nHSPLeu/kanade/tachiyomi/data/cache/CoverCache;-><clinit>()V\nPLeu/kanade/tachiyomi/data/cache/CoverCache;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/cache/CoverCache;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/cache/CoverCache;-><init>(Landroid/app/Application;)V\nLeu/kanade/tachiyomi/data/cache/CoverCache$Companion;\nHSPLeu/kanade/tachiyomi/data/cache/CoverCache$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/cache/CoverCache$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/cache/CoverCache$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/cache/CoverCache$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/download/DownloadCache;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/download/DownloadCache;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$getDirectoryFromPreference(Leu/kanade/tachiyomi/data/download/DownloadCache;)Lcom/hippo/unifile/UniFile;\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$getDirectoryFromPreference(Leu/kanade/tachiyomi/data/download/DownloadCache;)Lcom/hippo/unifile/UniFile;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$getDiskCacheFile(Leu/kanade/tachiyomi/data/download/DownloadCache;)Ljava/io/File;\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$getDiskCacheFile(Leu/kanade/tachiyomi/data/download/DownloadCache;)Ljava/io/File;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$getRootDownloadsDirLock$p(Leu/kanade/tachiyomi/data/download/DownloadCache;)Lkotlinx/coroutines/sync/Mutex;\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$getRootDownloadsDirLock$p(Leu/kanade/tachiyomi/data/download/DownloadCache;)Lkotlinx/coroutines/sync/Mutex;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$setRootDownloadsDir$p(Leu/kanade/tachiyomi/data/download/DownloadCache;Leu/kanade/tachiyomi/data/download/RootDirectory;)V\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->access$setRootDownloadsDir$p(Leu/kanade/tachiyomi/data/download/DownloadCache;Leu/kanade/tachiyomi/data/download/RootDirectory;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->getChanges()Lkotlinx/coroutines/flow/SharedFlow;\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->getChanges()Lkotlinx/coroutines/flow/SharedFlow;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->invalidateCache()V\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->invalidateCache()V\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache;->isInitializing()Lkotlinx/coroutines/flow/StateFlow;\nPLeu/kanade/tachiyomi/data/download/DownloadCache;->isInitializing()Lkotlinx/coroutines/flow/StateFlow;\nLeu/kanade/tachiyomi/data/download/DownloadCache$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$1;-><init>(Leu/kanade/tachiyomi/data/download/DownloadCache;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$1;-><init>(Leu/kanade/tachiyomi/data/download/DownloadCache;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadCache$2;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$2;-><init>(Leu/kanade/tachiyomi/data/download/DownloadCache;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$2;-><init>(Leu/kanade/tachiyomi/data/download/DownloadCache;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadCache$changes$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadCache$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadManager;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/download/DownloadManager;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager;->getQueueState()Lkotlinx/coroutines/flow/StateFlow;\nPLeu/kanade/tachiyomi/data/download/DownloadManager;->getQueueState()Lkotlinx/coroutines/flow/StateFlow;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager;->progressFlow()Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;\nPLeu/kanade/tachiyomi/data/download/DownloadManager;->progressFlow()Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager;->statusFlow()Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;\nPLeu/kanade/tachiyomi/data/download/DownloadManager;->statusFlow()Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;\nLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;-><init>(Leu/kanade/tachiyomi/data/download/DownloadManager;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;-><init>(Leu/kanade/tachiyomi/data/download/DownloadManager;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$progressFlow$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$5;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$5;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$special$$inlined$get$5;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;-><init>(Leu/kanade/tachiyomi/data/download/DownloadManager;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;-><init>(Leu/kanade/tachiyomi/data/download/DownloadManager;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadManager$statusFlow$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadPendingDeleter;\nHSPLeu/kanade/tachiyomi/data/download/DownloadPendingDeleter;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/download/DownloadPendingDeleter;-><init>(Landroid/app/Application;)V\nLeu/kanade/tachiyomi/data/download/DownloadPendingDeleter$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadPendingDeleter$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadPendingDeleter$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadProvider;\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/download/DownloadProvider;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider;->access$getContext$p(Leu/kanade/tachiyomi/data/download/DownloadProvider;)Landroid/content/Context;\nPLeu/kanade/tachiyomi/data/download/DownloadProvider;->access$getContext$p(Leu/kanade/tachiyomi/data/download/DownloadProvider;)Landroid/content/Context;\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider;->access$setDownloadsDir$p(Leu/kanade/tachiyomi/data/download/DownloadProvider;Lcom/hippo/unifile/UniFile;)V\nPLeu/kanade/tachiyomi/data/download/DownloadProvider;->access$setDownloadsDir$p(Leu/kanade/tachiyomi/data/download/DownloadProvider;Lcom/hippo/unifile/UniFile;)V\nLeu/kanade/tachiyomi/data/download/DownloadProvider$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;-><init>(Leu/kanade/tachiyomi/data/download/DownloadProvider;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;-><init>(Leu/kanade/tachiyomi/data/download/DownloadProvider;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/DownloadProvider$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/DownloadProvider$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadProvider$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadProvider$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadService;\nHSPLeu/kanade/tachiyomi/data/download/DownloadService;-><clinit>()V\nPLeu/kanade/tachiyomi/data/download/DownloadService;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/download/DownloadService;->access$isRunning$cp()Lkotlinx/coroutines/flow/StateFlow;\nPLeu/kanade/tachiyomi/data/download/DownloadService;->access$isRunning$cp()Lkotlinx/coroutines/flow/StateFlow;\nLeu/kanade/tachiyomi/data/download/DownloadService$Companion;\nHSPLeu/kanade/tachiyomi/data/download/DownloadService$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadService$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/download/DownloadService$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/download/DownloadService$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/download/DownloadStore;\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/download/DownloadStore;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore;->addAll(Ljava/util/List;)V\nPLeu/kanade/tachiyomi/data/download/DownloadStore;->addAll(Ljava/util/List;)V\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore;->clear()V\nPLeu/kanade/tachiyomi/data/download/DownloadStore;->clear()V\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore;->restore()Ljava/util/ArrayList;\nPLeu/kanade/tachiyomi/data/download/DownloadStore;->restore()Ljava/util/ArrayList;\nLeu/kanade/tachiyomi/data/download/DownloadStore$restore$$inlined$sortedBy$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore$restore$$inlined$sortedBy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadStore$restore$$inlined$sortedBy$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/data/download/DownloadStore$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/data/download/Downloader;\nHSPLeu/kanade/tachiyomi/data/download/Downloader;-><clinit>()V\nPLeu/kanade/tachiyomi/data/download/Downloader;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/download/Downloader;-><init>(Landroid/app/Application;Leu/kanade/tachiyomi/data/download/DownloadProvider;Leu/kanade/tachiyomi/data/download/DownloadCache;)V\nPLeu/kanade/tachiyomi/data/download/Downloader;-><init>(Landroid/app/Application;Leu/kanade/tachiyomi/data/download/DownloadProvider;Leu/kanade/tachiyomi/data/download/DownloadCache;)V\nHSPLeu/kanade/tachiyomi/data/download/Downloader;->access$addAllToQueue(Leu/kanade/tachiyomi/data/download/Downloader;Ljava/util/List;)V\nPLeu/kanade/tachiyomi/data/download/Downloader;->access$addAllToQueue(Leu/kanade/tachiyomi/data/download/Downloader;Ljava/util/List;)V\nHSPLeu/kanade/tachiyomi/data/download/Downloader;->access$getStore$p(Leu/kanade/tachiyomi/data/download/Downloader;)Leu/kanade/tachiyomi/data/download/DownloadStore;\nPLeu/kanade/tachiyomi/data/download/Downloader;->access$getStore$p(Leu/kanade/tachiyomi/data/download/Downloader;)Leu/kanade/tachiyomi/data/download/DownloadStore;\nHSPLeu/kanade/tachiyomi/data/download/Downloader;->addAllToQueue(Ljava/util/List;)V\nPLeu/kanade/tachiyomi/data/download/Downloader;->addAllToQueue(Ljava/util/List;)V\nHSPLeu/kanade/tachiyomi/data/download/Downloader;->getQueueState()Lkotlinx/coroutines/flow/StateFlow;\nPLeu/kanade/tachiyomi/data/download/Downloader;->getQueueState()Lkotlinx/coroutines/flow/StateFlow;\nLeu/kanade/tachiyomi/data/download/Downloader$1;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1;-><init>(Leu/kanade/tachiyomi/data/download/Downloader;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/Downloader$1;-><init>(Leu/kanade/tachiyomi/data/download/Downloader;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/Downloader$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/Downloader$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/Downloader$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;-><init>(Leu/kanade/tachiyomi/data/download/Downloader;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;-><init>(Leu/kanade/tachiyomi/data/download/Downloader;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/download/Downloader$1$chapters$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/download/Downloader$Companion;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/download/Downloader$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/download/Downloader$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/download/Downloader$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/download/Downloader$notifier$2;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$notifier$2;-><init>(Leu/kanade/tachiyomi/data/download/Downloader;)V\nPLeu/kanade/tachiyomi/data/download/Downloader$notifier$2;-><init>(Leu/kanade/tachiyomi/data/download/Downloader;)V\nLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$5;\nHSPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$5;-><init>()V\nPLeu/kanade/tachiyomi/data/download/Downloader$special$$inlined$get$5;-><init>()V\nLeu/kanade/tachiyomi/data/download/RootDirectory;\nHSPLeu/kanade/tachiyomi/data/download/RootDirectory;-><clinit>()V\nPLeu/kanade/tachiyomi/data/download/RootDirectory;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/download/RootDirectory;-><init>(Lcom/hippo/unifile/UniFile;)V\nPLeu/kanade/tachiyomi/data/download/RootDirectory;-><init>(Lcom/hippo/unifile/UniFile;)V\nLeu/kanade/tachiyomi/data/download/RootDirectory$Companion;\nHSPLeu/kanade/tachiyomi/data/download/RootDirectory$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/download/RootDirectory$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/download/RootDirectory$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/download/RootDirectory$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;\nHSPLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;-><clinit>()V\nPLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;-><init>()V\nPLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;-><init>()V\nHSPLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLeu/kanade/tachiyomi/data/download/SourceDirectory$$serializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLeu/kanade/tachiyomi/data/library/LibraryUpdateJob;\nHSPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob;-><clinit>()V\nPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob;-><clinit>()V\nLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;\nHSPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;-><init>(I)V\nHSPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;->setupTask(Landroid/content/Context;Ljava/lang/Integer;)V\nPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion;->setupTask(Landroid/content/Context;Ljava/lang/Integer;)V\nLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion$setupTask$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion$setupTask$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/data/library/LibraryUpdateJob$Companion$setupTask$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/data/notification/Notifications;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications;-><clinit>()V\nPLeu/kanade/tachiyomi/data/notification/Notifications;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications;-><init>()V\nPLeu/kanade/tachiyomi/data/notification/Notifications;-><init>()V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications;->createChannels(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications;->createChannels(Landroid/content/Context;)V\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$10;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$10;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$10;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$10;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$10;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$11;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$11;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$11;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$11;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$11;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$12;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$12;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$12;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$12;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$12;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$13;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$13;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$13;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$13;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$13;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$14;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$14;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$14;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$14;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$14;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$15;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$15;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$15;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$15;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$15;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$16;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$16;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$16;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$16;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$16;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$17;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$17;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$17;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$17;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$17;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$2;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$2;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$2;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$3;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$3;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$3;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$4;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$4;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$4;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$4;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$4;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$5;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$5;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$5;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$5;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$5;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$6;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$6;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$6;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$6;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$6;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$7;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$7;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$7;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$7;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$7;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$8;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$8;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$8;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$8;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$8;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$9;\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$9;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$9;-><init>(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$9;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/notification/Notifications$createChannels$9;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/saver/ImageSaver;\nLeu/kanade/tachiyomi/data/track/DeletableTrackService;\nLeu/kanade/tachiyomi/data/track/EnhancedTrackService;\nLeu/kanade/tachiyomi/data/track/TrackManager;\nHSPLeu/kanade/tachiyomi/data/track/TrackManager;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/TrackManager;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackManager;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/track/TrackManager;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/data/track/TrackManager;->getServices()Ljava/util/List;\nPLeu/kanade/tachiyomi/data/track/TrackManager;->getServices()Ljava/util/List;\nLeu/kanade/tachiyomi/data/track/TrackManager$Companion;\nHSPLeu/kanade/tachiyomi/data/track/TrackManager$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/TrackManager$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackManager$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/TrackManager$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/TrackService;\nHSPLeu/kanade/tachiyomi/data/track/TrackService;-><init>(J)V\nPLeu/kanade/tachiyomi/data/track/TrackService;-><init>(J)V\nHSPLeu/kanade/tachiyomi/data/track/TrackService;->getId()J\nPLeu/kanade/tachiyomi/data/track/TrackService;->getId()J\nHSPLeu/kanade/tachiyomi/data/track/TrackService;->getNetworkService()Leu/kanade/tachiyomi/network/NetworkHelper;\nPLeu/kanade/tachiyomi/data/track/TrackService;->getNetworkService()Leu/kanade/tachiyomi/network/NetworkHelper;\nHSPLeu/kanade/tachiyomi/data/track/TrackService;->getTrackPreferences()Leu/kanade/domain/track/service/TrackPreferences;\nPLeu/kanade/tachiyomi/data/track/TrackService;->getTrackPreferences()Leu/kanade/domain/track/service/TrackPreferences;\nHSPLeu/kanade/tachiyomi/data/track/TrackService;->getUsername()Ljava/lang/String;\nPLeu/kanade/tachiyomi/data/track/TrackService;->getUsername()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/data/track/TrackService;->isLogged()Z\nPLeu/kanade/tachiyomi/data/track/TrackService;->isLogged()Z\nLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;-><init>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2$1;\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$2$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;-><init>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3$1;\nHSPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/TrackService$special$$inlined$injectLazy$3$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/anilist/Anilist;\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist;-><init>()V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist;-><init>()V\nLeu/kanade/tachiyomi/data/track/anilist/Anilist$Companion;\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/anilist/Anilist$api$2;\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist$api$2;-><init>(Leu/kanade/tachiyomi/data/track/anilist/Anilist;)V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist$api$2;-><init>(Leu/kanade/tachiyomi/data/track/anilist/Anilist;)V\nLeu/kanade/tachiyomi/data/track/anilist/Anilist$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/anilist/Anilist;)V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/anilist/Anilist;)V\nLeu/kanade/tachiyomi/data/track/anilist/Anilist$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/anilist/Anilist$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/anilist/Anilist$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/bangumi/Bangumi;\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi;-><init>()V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi;-><init>()V\nLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$Companion;\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$api$2;\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$api$2;-><init>(Leu/kanade/tachiyomi/data/track/bangumi/Bangumi;)V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$api$2;-><init>(Leu/kanade/tachiyomi/data/track/bangumi/Bangumi;)V\nLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/bangumi/Bangumi;)V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/bangumi/Bangumi;)V\nLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/bangumi/Bangumi$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/kavita/Kavita;\nHSPLeu/kanade/tachiyomi/data/track/kavita/Kavita;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/kavita/Kavita;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/kavita/Kavita;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/track/kavita/Kavita;-><init>(Landroid/app/Application;)V\nLeu/kanade/tachiyomi/data/track/kavita/Kavita$Companion;\nHSPLeu/kanade/tachiyomi/data/track/kavita/Kavita$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/kavita/Kavita$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/kavita/Kavita$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/kavita/Kavita$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/kavita/Kavita$api$2;\nHSPLeu/kanade/tachiyomi/data/track/kavita/Kavita$api$2;-><init>(Leu/kanade/tachiyomi/data/track/kavita/Kavita;)V\nPLeu/kanade/tachiyomi/data/track/kavita/Kavita$api$2;-><init>(Leu/kanade/tachiyomi/data/track/kavita/Kavita;)V\nLeu/kanade/tachiyomi/data/track/kavita/Kavita$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/kavita/Kavita$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/kavita/Kavita;)V\nPLeu/kanade/tachiyomi/data/track/kavita/Kavita$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/kavita/Kavita;)V\nLeu/kanade/tachiyomi/data/track/kitsu/Kitsu;\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu;-><init>()V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu;-><init>()V\nLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$Companion;\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$api$2;\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$api$2;-><init>(Leu/kanade/tachiyomi/data/track/kitsu/Kitsu;)V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$api$2;-><init>(Leu/kanade/tachiyomi/data/track/kitsu/Kitsu;)V\nLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/kitsu/Kitsu;)V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/kitsu/Kitsu;)V\nLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/kitsu/Kitsu$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/komga/Komga;\nHSPLeu/kanade/tachiyomi/data/track/komga/Komga;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/komga/Komga;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/komga/Komga;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/data/track/komga/Komga;-><init>(Landroid/app/Application;)V\nLeu/kanade/tachiyomi/data/track/komga/Komga$Companion;\nHSPLeu/kanade/tachiyomi/data/track/komga/Komga$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/komga/Komga$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/komga/Komga$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/komga/Komga$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/komga/Komga$api$2;\nHSPLeu/kanade/tachiyomi/data/track/komga/Komga$api$2;-><init>(Leu/kanade/tachiyomi/data/track/komga/Komga;)V\nPLeu/kanade/tachiyomi/data/track/komga/Komga$api$2;-><init>(Leu/kanade/tachiyomi/data/track/komga/Komga;)V\nLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;\nHSPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;-><init>()V\nHPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;-><init>()V\nLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$Companion;\nHSPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$api$2;\nHSPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$api$2;-><init>(Leu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;)V\nPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$api$2;-><init>(Leu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;)V\nLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;)V\nPLeu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates;)V\nLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;-><init>()V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;-><init>()V\nLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$Companion;\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$api$2;\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$api$2;-><init>(Leu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;)V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$api$2;-><init>(Leu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;)V\nLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;)V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList;)V\nLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/shikimori/Shikimori;\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori;-><init>()V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori;-><init>()V\nLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$Companion;\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$api$2;\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$api$2;-><init>(Leu/kanade/tachiyomi/data/track/shikimori/Shikimori;)V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$api$2;-><init>(Leu/kanade/tachiyomi/data/track/shikimori/Shikimori;)V\nLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$interceptor$2;\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/shikimori/Shikimori;)V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$interceptor$2;-><init>(Leu/kanade/tachiyomi/data/track/shikimori/Shikimori;)V\nLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/data/track/shikimori/Shikimori$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi;\nHSPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi;-><init>()V\nPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi;-><init>()V\nLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$Companion;\nHSPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$Companion;-><init>()V\nPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$api$2;\nHSPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$api$2;-><clinit>()V\nPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$api$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$api$2;-><init>()V\nPLeu/kanade/tachiyomi/data/track/suwayomi/Suwayomi$api$2;-><init>()V\nLeu/kanade/tachiyomi/extension/ExtensionManager;\nHSPLeu/kanade/tachiyomi/extension/ExtensionManager;-><init>(Landroid/app/Application;)V\nPLeu/kanade/tachiyomi/extension/ExtensionManager;-><init>(Landroid/app/Application;)V\nHSPLeu/kanade/tachiyomi/extension/ExtensionManager;->getInstalledExtensionsFlow()Lkotlinx/coroutines/flow/StateFlow;\nPLeu/kanade/tachiyomi/extension/ExtensionManager;->getInstalledExtensionsFlow()Lkotlinx/coroutines/flow/StateFlow;\nLeu/kanade/tachiyomi/extension/ExtensionManager$InstallationListener;\nHSPLeu/kanade/tachiyomi/extension/ExtensionManager$InstallationListener;-><init>(Leu/kanade/tachiyomi/extension/ExtensionManager;)V\nPLeu/kanade/tachiyomi/extension/ExtensionManager$InstallationListener;-><init>(Leu/kanade/tachiyomi/extension/ExtensionManager;)V\nLeu/kanade/tachiyomi/extension/ExtensionManager$installer$2;\nHSPLeu/kanade/tachiyomi/extension/ExtensionManager$installer$2;-><init>(Leu/kanade/tachiyomi/extension/ExtensionManager;)V\nPLeu/kanade/tachiyomi/extension/ExtensionManager$installer$2;-><init>(Leu/kanade/tachiyomi/extension/ExtensionManager;)V\nLeu/kanade/tachiyomi/extension/ExtensionManager$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/extension/ExtensionManager$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/ExtensionManager$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getJson(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Lkotlinx/serialization/json/Json;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getJson(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Lkotlinx/serialization/json/Json;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getNetworkService(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Leu/kanade/tachiyomi/network/NetworkHelper;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getNetworkService(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Leu/kanade/tachiyomi/network/NetworkHelper;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getPreferenceStore(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Ltachiyomi/core/preference/PreferenceStore;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getPreferenceStore(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Ltachiyomi/core/preference/PreferenceStore;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getRequiresFallbackSource$p(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Z\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$getRequiresFallbackSource$p(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)Z\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$toExtensions(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;Ljava/util/List;)Ljava/util/ArrayList;\nHPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->access$toExtensions(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;Ljava/util/List;)Ljava/util/ArrayList;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->checkForUpdates(Landroid/content/Context;Lkotlin/coroutines/Continuation;Z)Ljava/io/Serializable;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->checkForUpdates(Landroid/content/Context;Lkotlin/coroutines/Continuation;Z)Ljava/io/Serializable;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->findExtensions(Lkotlin/coroutines/jvm/internal/ContinuationImpl;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi;->findExtensions(Lkotlin/coroutines/jvm/internal/ContinuationImpl;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$checkForUpdates$1;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$checkForUpdates$1;-><init>(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$checkForUpdates$1;-><init>(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$checkForUpdates$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$checkForUpdates$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;-><init>(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;-><init>(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$findExtensions$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$lastExtCheck$2;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$lastExtCheck$2;-><init>(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$lastExtCheck$2;-><init>(Leu/kanade/tachiyomi/extension/api/ExtensionGithubApi;)V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$lastExtCheck$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$lastExtCheck$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1$1;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$1$1;-><init>()V\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2$1;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$2$1;-><init>()V\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$3;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$3;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$3;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$3;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$3;-><init>()V\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4$1;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApi$special$$inlined$injectLazy$4$1;-><init>()V\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt;->access$getExtensionSourceMapper$p()Lkotlin/jvm/functions/Function1;\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt;->access$getExtensionSourceMapper$p()Lkotlin/jvm/functions/Function1;\nLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/extension/api/ExtensionGithubApiKt$extensionSourceMapper$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;IIILjava/util/List;)V\nHPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;IIILjava/util/List;)V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->access$get$childSerializers$cp()[Lkotlinx/serialization/KSerializer;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->access$get$childSerializers$cp()[Lkotlinx/serialization/KSerializer;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getApk()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getApk()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getCode()J\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getCode()J\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getHasChangelog()I\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getHasChangelog()I\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getHasReadme()I\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getHasReadme()I\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getLang()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getLang()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getName()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getName()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getNsfw()I\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getNsfw()I\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getPkg()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getPkg()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getSources()Ljava/util/List;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getSources()Ljava/util/List;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getVersion()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject;->getVersion()Ljava/lang/String;\nLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Leu/kanade/tachiyomi/extension/api/ExtensionJsonObject;\nHPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Leu/kanade/tachiyomi/extension/api/ExtensionJsonObject;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$$serializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;-><init>(I)V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;->serializer()Lkotlinx/serialization/KSerializer;\nPLeu/kanade/tachiyomi/extension/api/ExtensionJsonObject$Companion;->serializer()Lkotlinx/serialization/KSerializer;\nLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;-><init>(IJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\nHPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;-><init>(IJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getBaseUrl()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getBaseUrl()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getId()J\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getId()J\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getLang()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getLang()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getName()Ljava/lang/String;\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;->getName()Ljava/lang/String;\nLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->childSerializers()[Lkotlinx/serialization/KSerializer;\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->childSerializers()[Lkotlinx/serialization/KSerializer;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Leu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;\nHPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Leu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->typeParametersSerializers()[Lkotlinx/serialization/KSerializer;\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$$serializer;->typeParametersSerializers()[Lkotlinx/serialization/KSerializer;\nLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$Companion;\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$Companion;-><init>()V\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/extension/api/ExtensionSourceJsonObject$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/extension/model/Extension;\nHSPLeu/kanade/tachiyomi/extension/model/Extension;-><init>()V\nPLeu/kanade/tachiyomi/extension/model/Extension;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/model/Extension;-><init>(I)V\nPLeu/kanade/tachiyomi/extension/model/Extension;-><init>(I)V\nLeu/kanade/tachiyomi/extension/model/Extension$Available;\nHSPLeu/kanade/tachiyomi/extension/model/Extension$Available;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JDLjava/lang/String;ZZZLjava/util/List;Ljava/lang/String;Ljava/lang/String;)V\nHPLeu/kanade/tachiyomi/extension/model/Extension$Available;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JDLjava/lang/String;ZZZLjava/util/List;Ljava/lang/String;Ljava/lang/String;)V\nLeu/kanade/tachiyomi/extension/model/Extension$Available$Source;\nHSPLeu/kanade/tachiyomi/extension/model/Extension$Available$Source;-><init>(JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\nHPLeu/kanade/tachiyomi/extension/model/Extension$Available$Source;-><init>(JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\nLeu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver;\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver;-><init>(Leu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver$Listener;)V\nPLeu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver;-><init>(Leu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver$Listener;)V\nLeu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver$Listener;\nLeu/kanade/tachiyomi/extension/util/ExtensionLoader;\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;-><init>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;->isPackageAnExtension(Landroid/content/pm/PackageInfo;)Z\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;->isPackageAnExtension(Landroid/content/pm/PackageInfo;)Z\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;->loadExtensions(Landroid/content/Context;)Ljava/util/List;\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader;->loadExtensions(Landroid/content/Context;)Ljava/util/List;\nLeu/kanade/tachiyomi/extension/util/ExtensionLoader$loadNsfwSource$2;\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$loadNsfwSource$2;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$loadNsfwSource$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$loadNsfwSource$2;-><init>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$loadNsfwSource$2;-><init>()V\nLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;-><init>()V\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1$1;\nHSPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1$1;-><init>()V\nPLeu/kanade/tachiyomi/extension/util/ExtensionLoader$special$$inlined$injectLazy$1$1;-><init>()V\nLeu/kanade/tachiyomi/network/AndroidCookieJar;\nHSPLeu/kanade/tachiyomi/network/AndroidCookieJar;-><init>()V\nPLeu/kanade/tachiyomi/network/AndroidCookieJar;-><init>()V\nHSPLeu/kanade/tachiyomi/network/AndroidCookieJar;->get(Lokhttp3/HttpUrl;)Ljava/util/List;\nPLeu/kanade/tachiyomi/network/AndroidCookieJar;->get(Lokhttp3/HttpUrl;)Ljava/util/List;\nHSPLeu/kanade/tachiyomi/network/AndroidCookieJar;->loadForRequest(Lokhttp3/HttpUrl;)Ljava/util/List;\nPLeu/kanade/tachiyomi/network/AndroidCookieJar;->loadForRequest(Lokhttp3/HttpUrl;)Ljava/util/List;\nLeu/kanade/tachiyomi/network/JavaScriptEngine;\nLeu/kanade/tachiyomi/network/NetworkHelper;\nHSPLeu/kanade/tachiyomi/network/NetworkHelper;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/network/NetworkPreferences;)V\nPLeu/kanade/tachiyomi/network/NetworkHelper;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/network/NetworkPreferences;)V\nHSPLeu/kanade/tachiyomi/network/NetworkHelper;->defaultUserAgentProvider()Ljava/lang/String;\nPLeu/kanade/tachiyomi/network/NetworkHelper;->defaultUserAgentProvider()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/network/NetworkHelper;->getClient()Lokhttp3/OkHttpClient;\nPLeu/kanade/tachiyomi/network/NetworkHelper;->getClient()Lokhttp3/OkHttpClient;\nLeu/kanade/tachiyomi/network/NetworkHelper$client$1$1;\nHSPLeu/kanade/tachiyomi/network/NetworkHelper$client$1$1;-><init>(Ljava/lang/Object;)V\nPLeu/kanade/tachiyomi/network/NetworkHelper$client$1$1;-><init>(Ljava/lang/Object;)V\nLeu/kanade/tachiyomi/network/NetworkHelper$client$1$builder$1;\nHSPLeu/kanade/tachiyomi/network/NetworkHelper$client$1$builder$1;-><init>(Ljava/lang/Object;)V\nPLeu/kanade/tachiyomi/network/NetworkHelper$client$1$builder$1;-><init>(Ljava/lang/Object;)V\nHSPLeu/kanade/tachiyomi/network/NetworkHelper$client$1$builder$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/network/NetworkHelper$client$1$builder$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/network/NetworkPreferences;\nHSPLeu/kanade/tachiyomi/network/NetworkPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/tachiyomi/network/NetworkPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLeu/kanade/tachiyomi/network/NetworkPreferences;->defaultUserAgent()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/tachiyomi/network/NetworkPreferences;->defaultUserAgent()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/tachiyomi/network/NetworkPreferences;->dohProvider()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/tachiyomi/network/NetworkPreferences;->dohProvider()Ltachiyomi/core/preference/Preference;\nHSPLeu/kanade/tachiyomi/network/NetworkPreferences;->verboseLogging()Ltachiyomi/core/preference/Preference;\nPLeu/kanade/tachiyomi/network/NetworkPreferences;->verboseLogging()Ltachiyomi/core/preference/Preference;\nLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;-><clinit>()V\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;-><clinit>()V\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;->await(Lokhttp3/Call;[Ljava/lang/StackTraceElement;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;->await(Lokhttp3/Call;[Ljava/lang/StackTraceElement;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;->awaitSuccess(Lokhttp3/Call;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;->awaitSuccess(Lokhttp3/Call;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;->decodeFromJsonResponse(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/DeserializationStrategy;Lokhttp3/Response;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt;->decodeFromJsonResponse(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/DeserializationStrategy;Lokhttp3/Response;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$1;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$1;-><init>(Lokhttp3/Call;)V\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$1;-><init>(Lokhttp3/Call;)V\nLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;[Ljava/lang/StackTraceElement;)V\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;[Ljava/lang/StackTraceElement;)V\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1;->onResponse(Lokhttp3/Call;Lokhttp3/Response;)V\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1;->onResponse(Lokhttp3/Call;Lokhttp3/Response;)V\nLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1$onResponse$1;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1$onResponse$1;-><init>(Lokhttp3/Response;)V\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$await$2$callback$1$onResponse$1;-><init>(Lokhttp3/Response;)V\nLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$awaitSuccess$1;\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$awaitSuccess$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$awaitSuccess$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$awaitSuccess$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/network/OkHttpExtensionsKt$awaitSuccess$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/network/RequestsKt;\nHSPLeu/kanade/tachiyomi/network/RequestsKt;-><clinit>()V\nPLeu/kanade/tachiyomi/network/RequestsKt;-><clinit>()V\nHSPLeu/kanade/tachiyomi/network/RequestsKt;->GET$default(Ljava/lang/String;Lokhttp3/Headers;Lokhttp3/CacheControl;ILjava/lang/Object;)Lokhttp3/Request;\nPLeu/kanade/tachiyomi/network/RequestsKt;->GET$default(Ljava/lang/String;Lokhttp3/Headers;Lokhttp3/CacheControl;ILjava/lang/Object;)Lokhttp3/Request;\nHSPLeu/kanade/tachiyomi/network/RequestsKt;->GET(Ljava/lang/String;Lokhttp3/Headers;Lokhttp3/CacheControl;)Lokhttp3/Request;\nPLeu/kanade/tachiyomi/network/RequestsKt;->GET(Ljava/lang/String;Lokhttp3/Headers;Lokhttp3/CacheControl;)Lokhttp3/Request;\nHSPLeu/kanade/tachiyomi/network/RequestsKt;->GET(Lokhttp3/HttpUrl;Lokhttp3/Headers;Lokhttp3/CacheControl;)Lokhttp3/Request;\nPLeu/kanade/tachiyomi/network/RequestsKt;->GET(Lokhttp3/HttpUrl;Lokhttp3/Headers;Lokhttp3/CacheControl;)Lokhttp3/Request;\nLeu/kanade/tachiyomi/network/interceptor/CloudflareBypassException;\nLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor;\nHSPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/network/AndroidCookieJar;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/network/AndroidCookieJar;Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor;->shouldIntercept(Lokhttp3/Response;)Z\nPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor;->shouldIntercept(Lokhttp3/Response;)Z\nLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptorKt;\nHSPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptorKt;-><clinit>()V\nPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptorKt;-><clinit>()V\nHSPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptorKt;->access$getERROR_CODES$p()Ljava/util/List;\nPLeu/kanade/tachiyomi/network/interceptor/CloudflareInterceptorKt;->access$getERROR_CODES$p()Ljava/util/List;\nLeu/kanade/tachiyomi/network/interceptor/UncaughtExceptionInterceptor;\nHSPLeu/kanade/tachiyomi/network/interceptor/UncaughtExceptionInterceptor;-><init>()V\nPLeu/kanade/tachiyomi/network/interceptor/UncaughtExceptionInterceptor;-><init>()V\nHSPLeu/kanade/tachiyomi/network/interceptor/UncaughtExceptionInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLeu/kanade/tachiyomi/network/interceptor/UncaughtExceptionInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLeu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor;\nHSPLeu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLeu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;\nHSPLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;-><init>(Landroid/content/Context;Lkotlin/jvm/functions/Function0;)V\nPLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;-><init>(Landroid/content/Context;Lkotlin/jvm/functions/Function0;)V\nHSPLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor$initWebView$2;\nHSPLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor$initWebView$2;-><init>(Leu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;)V\nPLeu/kanade/tachiyomi/network/interceptor/WebViewInterceptor$initWebView$2;-><init>(Leu/kanade/tachiyomi/network/interceptor/WebViewInterceptor;)V\nLeu/kanade/tachiyomi/source/AndroidSourceManager;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager;-><init>(Landroid/app/Application;Leu/kanade/tachiyomi/extension/ExtensionManager;Ltachiyomi/domain/source/repository/StubSourceRepository;)V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager;-><init>(Landroid/app/Application;Leu/kanade/tachiyomi/extension/ExtensionManager;Ltachiyomi/domain/source/repository/StubSourceRepository;)V\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getContext$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Landroid/content/Context;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getContext$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Landroid/content/Context;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getExtensionManager$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Leu/kanade/tachiyomi/extension/ExtensionManager;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getExtensionManager$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Leu/kanade/tachiyomi/extension/ExtensionManager;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getSourceRepository$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Ltachiyomi/domain/source/repository/StubSourceRepository;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getSourceRepository$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Ltachiyomi/domain/source/repository/StubSourceRepository;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getSourcesMapFlow$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getSourcesMapFlow$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getStubSourcesMap$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Ljava/util/concurrent/ConcurrentHashMap;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager;->access$getStubSourcesMap$p(Leu/kanade/tachiyomi/source/AndroidSourceManager;)Ljava/util/concurrent/ConcurrentHashMap;\nLeu/kanade/tachiyomi/source/AndroidSourceManager$1;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1$invokeSuspend$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1$invokeSuspend$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1$invokeSuspend$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1$invokeSuspend$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1$invokeSuspend$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$1$1$invokeSuspend$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/source/AndroidSourceManager$2;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;-><init>(Leu/kanade/tachiyomi/source/AndroidSourceManager;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$injectLazy$1;-><init>()V\nLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$map$1;\nHSPLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/MutableStateFlow;)V\nPLeu/kanade/tachiyomi/source/AndroidSourceManager$special$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/MutableStateFlow;)V\nLeu/kanade/tachiyomi/source/CatalogueSource;\nLeu/kanade/tachiyomi/source/Source;\nLeu/kanade/tachiyomi/source/UnmeteredSource;\nLeu/kanade/tachiyomi/source/model/Filter;\nHSPLeu/kanade/tachiyomi/source/model/Filter;-><init>(Ljava/lang/String;Ljava/lang/Object;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLeu/kanade/tachiyomi/source/model/Filter;-><init>(Ljava/lang/String;Ljava/lang/Object;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLeu/kanade/tachiyomi/source/model/Filter$Sort;\nHSPLeu/kanade/tachiyomi/source/model/Filter$Sort;-><init>(Ljava/lang/String;[Ljava/lang/String;Leu/kanade/tachiyomi/source/model/Filter$Sort$Selection;)V\nPLeu/kanade/tachiyomi/source/model/Filter$Sort;-><init>(Ljava/lang/String;[Ljava/lang/String;Leu/kanade/tachiyomi/source/model/Filter$Sort$Selection;)V\nLeu/kanade/tachiyomi/source/model/Filter$Sort$Selection;\nHSPLeu/kanade/tachiyomi/source/model/Filter$Sort$Selection;-><init>(IZ)V\nPLeu/kanade/tachiyomi/source/model/Filter$Sort$Selection;-><init>(IZ)V\nLeu/kanade/tachiyomi/source/model/FilterList;\nHSPLeu/kanade/tachiyomi/source/model/FilterList;-><init>(Ljava/util/List;)V\nPLeu/kanade/tachiyomi/source/model/FilterList;-><init>(Ljava/util/List;)V\nHSPLeu/kanade/tachiyomi/source/model/FilterList;-><init>([Leu/kanade/tachiyomi/source/model/Filter;)V\nPLeu/kanade/tachiyomi/source/model/FilterList;-><init>([Leu/kanade/tachiyomi/source/model/Filter;)V\nLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;\nHSPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;->attachBaseContext(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;->attachBaseContext(Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;->onCreate(Landroid/os/Bundle;)V\nPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;->onCreate(Landroid/os/Bundle;)V\nHSPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;->registerSecureActivity(Landroidx/appcompat/app/AppCompatActivity;)V\nPLeu/kanade/tachiyomi/ui/base/activity/BaseActivity;->registerSecureActivity(Landroidx/appcompat/app/AppCompatActivity;)V\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate;-><clinit>()V\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;->onApplicationStart()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;->onApplicationStart()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion;->onApplicationStopped()V\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion$onApplicationStart$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion$onApplicationStart$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion$onApplicationStart$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate$Companion$onApplicationStopped$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;->onCreate(Landroidx/lifecycle/LifecycleOwner;)V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;->onCreate(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;->onResume(Landroidx/lifecycle/LifecycleOwner;)V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;->registerSecureActivity(Landroidx/appcompat/app/AppCompatActivity;)V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl;->registerSecureActivity(Landroidx/appcompat/app/AppCompatActivity;)V\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$2;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$2;-><init>(Landroid/view/Window;)V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$2;-><init>(Landroid/view/Window;)V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$setSecureScreen$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1$1;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$1$1;-><init>()V\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2$1;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegateImpl$special$$inlined$injectLazy$2$1;-><init>()V\nLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate;-><clinit>()V\nLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;->getThemeResIds(Leu/kanade/domain/ui/model/AppTheme;Z)Ljava/util/ArrayList;\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate$Companion;->getThemeResIds(Leu/kanade/domain/ui/model/AppTheme;Z)Ljava/util/ArrayList;\nLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl;->applyAppTheme(Landroid/app/Activity;)V\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl;->applyAppTheme(Landroid/app/Activity;)V\nLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl$applyAppTheme$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl$applyAppTheme$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/base/delegate/ThemingDelegateImpl$applyAppTheme$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/browse/BrowseTab;\nHSPLeu/kanade/tachiyomi/ui/browse/BrowseTab;-><init>(Z)V\nPLeu/kanade/tachiyomi/ui/browse/BrowseTab;-><init>(Z)V\nHSPLeu/kanade/tachiyomi/ui/browse/BrowseTab;->equals(Ljava/lang/Object;)Z\nPLeu/kanade/tachiyomi/ui/browse/BrowseTab;->equals(Ljava/lang/Object;)Z\nHSPLeu/kanade/tachiyomi/ui/browse/BrowseTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nHPLeu/kanade/tachiyomi/ui/browse/BrowseTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;-><init>(I)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;->access$getGetHistory$p(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)Ltachiyomi/domain/history/interactor/GetHistory;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;->access$getGetHistory$p(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)Ltachiyomi/domain/history/interactor/GetHistory;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;->access$getMutableState(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;->access$getMutableState(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;->getEvents()Lkotlinx/coroutines/flow/Flow;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel;->getEvents()Lkotlinx/coroutines/flow/Flow;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$3;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$3;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$3;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$3;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$3;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/StateFlow;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/StateFlow;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$1$invokeSuspend$lambda$2$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog$Delete;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog$DeleteAll;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;-><init>(Ljava/lang/String;Ljava/util/List;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;-><init>(Ljava/lang/String;Ljava/util/List;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->copy$default(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Ljava/lang/String;Ljava/util/List;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;I)Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->copy$default(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;Ljava/lang/String;Ljava/util/List;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;I)Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->equals(Ljava/lang/Object;)Z\nHPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->equals(Ljava/lang/Object;)Z\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->getDialog()Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->getDialog()Leu/kanade/tachiyomi/ui/history/HistoryScreenModel$Dialog;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->getList()Ljava/util/List;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->getList()Ljava/util/List;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->getSearchQuery()Ljava/lang/String;\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$State;->getSearchQuery()Ljava/lang/String;\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$toHistoryUiModels$2;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$toHistoryUiModels$2;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$toHistoryUiModels$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$toHistoryUiModels$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryScreenModel$toHistoryUiModels$2;-><init>()V\nLeu/kanade/tachiyomi/ui/history/HistoryTab;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab;-><init>()V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/history/HistoryTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab;->access$getResumeLastChapterReadEvent$p()Lkotlinx/coroutines/channels/Channel;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab;->access$getResumeLastChapterReadEvent$p()Lkotlinx/coroutines/channels/Channel;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab;->getKey()Ljava/lang/String;\nHPLeu/kanade/tachiyomi/ui/history/HistoryTab;->getKey()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nHPLeu/kanade/tachiyomi/ui/history/HistoryTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$10;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$10;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryTab;I)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$10;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryTab;I)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$10;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$10;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$2;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$3;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$3;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$3;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$4;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$4;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$4;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;-><init>(Landroid/content/Context;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;-><init>(Landroid/content/Context;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$7;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8$1;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$8$1;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9$1;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$9$1;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$onDismissRequest$1;\nHSPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$onDismissRequest$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/history/HistoryTab$Content$onDismissRequest$1;-><init>(Leu/kanade/tachiyomi/ui/history/HistoryScreenModel;)V\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt;-><init>()V\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;-><init>(Landroidx/compose/runtime/ProduceStateScope;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;-><init>(Landroidx/compose/runtime/ProduceStateScope;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-3$1$bottomNavVisible$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-4$1;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-4$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-4$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-4$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-4$1;-><init>()V\nLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/ComposableSingletons$HomeScreenKt$lambda-5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->Content(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen;->Content(Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$NavigationBarItem(Leu/kanade/tachiyomi/ui/home/HomeScreen;Landroidx/compose/foundation/layout/RowScope;Leu/kanade/presentation/util/Tab;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$NavigationBarItem(Leu/kanade/tachiyomi/ui/home/HomeScreen;Landroidx/compose/foundation/layout/RowScope;Leu/kanade/presentation/util/Tab;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$NavigationIconItem(Leu/kanade/tachiyomi/ui/home/HomeScreen;Leu/kanade/presentation/util/Tab;Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$NavigationIconItem(Leu/kanade/tachiyomi/ui/home/HomeScreen;Leu/kanade/presentation/util/Tab;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getLibrarySearchEvent$p()Lkotlinx/coroutines/channels/Channel;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getLibrarySearchEvent$p()Lkotlinx/coroutines/channels/Channel;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getOpenTabEvent$p()Lkotlinx/coroutines/channels/Channel;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getOpenTabEvent$p()Lkotlinx/coroutines/channels/Channel;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getShowBottomNavEvent$p()Lkotlinx/coroutines/channels/Channel;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getShowBottomNavEvent$p()Lkotlinx/coroutines/channels/Channel;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getTabs$p()Ljava/util/List;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;->access$getTabs$p()Ljava/util/List;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen;->showBottomNav(ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen;->showBottomNav(ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2$1;-><init>(Lcafe/adriel/voyager/navigator/tab/Tab;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2$1;-><init>(Lcafe/adriel/voyager/navigator/tab/Tab;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$1$1$1$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;-><init>(Lkotlin/jvm/functions/Function0;Lcafe/adriel/voyager/navigator/tab/TabNavigator;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;-><init>(Lkotlin/jvm/functions/Function0;Lcafe/adriel/voyager/navigator/tab/TabNavigator;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$1$1;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$2$2$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$goToLibraryTab$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$goToLibraryTab$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$Content$1$goToLibraryTab$1;-><init>(Lcafe/adriel/voyager/navigator/tab/TabNavigator;)V\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$1;-><init>(ZLcafe/adriel/voyager/navigator/tab/TabNavigator;Leu/kanade/presentation/util/Tab;Lkotlinx/coroutines/CoroutineScope;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$1;-><init>(ZLcafe/adriel/voyager/navigator/tab/TabNavigator;Leu/kanade/presentation/util/Tab;Lkotlinx/coroutines/CoroutineScope;Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$2;-><init>(Leu/kanade/presentation/util/Tab;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$2;-><init>(Leu/kanade/presentation/util/Tab;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$3;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$3;-><init>(Leu/kanade/presentation/util/Tab;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$3;-><init>(Leu/kanade/presentation/util/Tab;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$4;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$4;-><init>(Leu/kanade/tachiyomi/ui/home/HomeScreen;Landroidx/compose/foundation/layout/RowScope;Leu/kanade/presentation/util/Tab;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$4;-><init>(Leu/kanade/tachiyomi/ui/home/HomeScreen;Landroidx/compose/foundation/layout/RowScope;Leu/kanade/presentation/util/Tab;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationBarItem$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1;-><init>(Leu/kanade/presentation/util/Tab;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1;-><init>(Leu/kanade/presentation/util/Tab;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;-><init>(Landroidx/compose/runtime/ProduceStateScope;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;-><init>(Landroidx/compose/runtime/ProduceStateScope;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$invokeSuspend$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$invokeSuspend$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$2$invokeSuspend$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;-><init>(Landroidx/compose/runtime/ProduceStateScope;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;-><init>(Landroidx/compose/runtime/ProduceStateScope;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$invokeSuspend$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$invokeSuspend$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$1$count$4$invokeSuspend$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$2;\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$2;-><init>(Leu/kanade/presentation/util/Tab;I)V\nPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$2;-><init>(Leu/kanade/presentation/util/Tab;I)V\nHSPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/home/HomeScreen$NavigationIconItem$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;-><init>(I)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$applyFilters(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/io/Serializable;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$applyFilters(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/io/Serializable;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getDownloadCache$p(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadCache;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getDownloadCache$p(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadCache;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getGetTracksPerManga$p(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Ltachiyomi/domain/track/interactor/GetTracksPerManga;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getGetTracksPerManga$p(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Ltachiyomi/domain/track/interactor/GetTracksPerManga;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getLibraryFlow(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Lkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getLibraryFlow(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Lkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getMutableState(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getMutableState(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getTrackingFilterFlow(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Lkotlinx/coroutines/flow/Flow;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->access$getTrackingFilterFlow(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)Lkotlinx/coroutines/flow/Flow;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->getActiveCategoryIndex()I\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->getActiveCategoryIndex()I\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->getLibraryItemPreferencesFlow()Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->getLibraryItemPreferencesFlow()Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->getTrackingFilterFlow()Lkotlinx/coroutines/flow/Flow;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel;->getTrackingFilterFlow()Lkotlinx/coroutines/flow/Flow;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/StateFlow;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/StateFlow;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$1$invokeSuspend$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$5;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog$ChangeCategory;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog$DeleteManga;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog$SettingsSheet;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;-><init>(ZZZZLtachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;-><init>(ZZZZLtachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;Ltachiyomi/core/preference/TriState;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterBookmarked()Ltachiyomi/core/preference/TriState;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterBookmarked()Ltachiyomi/core/preference/TriState;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterCompleted()Ltachiyomi/core/preference/TriState;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterCompleted()Ltachiyomi/core/preference/TriState;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterDownloaded()Ltachiyomi/core/preference/TriState;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterDownloaded()Ltachiyomi/core/preference/TriState;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterStarted()Ltachiyomi/core/preference/TriState;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterStarted()Ltachiyomi/core/preference/TriState;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterUnread()Ltachiyomi/core/preference/TriState;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getFilterUnread()Ltachiyomi/core/preference/TriState;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getGlobalFilterDownloaded()Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$ItemPreferences;->getGlobalFilterDownloaded()Z\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;-><init>(I)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;-><init>(ZLjava/util/Map;Ljava/lang/String;Ljava/util/List;ZZZZLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;-><init>(ZLjava/util/Map;Ljava/lang/String;Ljava/util/List;ZZZZLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->access$getLibraryCount(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;)I\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->access$getLibraryCount(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;)I\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->copy$default(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;Ljava/util/Map;Ljava/lang/String;Ljava/util/List;ZZZZLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;I)Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->copy$default(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;Ljava/util/Map;Ljava/lang/String;Ljava/util/List;ZZZZLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;I)Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->equals(Ljava/lang/Object;)Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->equals(Ljava/lang/Object;)Z\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getCategories()Ljava/util/List;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getCategories()Ljava/util/List;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getDialog()Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getDialog()Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$Dialog;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getHasActiveFilters()Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getHasActiveFilters()Z\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getLibrary()Ljava/util/Map;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getLibrary()Ljava/util/Map;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getSearchQuery()Ljava/lang/String;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getSearchQuery()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getSelection()Ljava/util/List;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getSelection()Ljava/util/List;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getSelectionMode()Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getSelectionMode()Z\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getShowCategoryTabs()Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getShowCategoryTabs()Z\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getToolbarTitle(ILjava/lang/String;Ljava/lang/String;)Leu/kanade/presentation/library/components/LibraryToolbarTitle;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->getToolbarTitle(ILjava/lang/String;Ljava/lang/String;)Leu/kanade/presentation/library/components/LibraryToolbarTitle;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->isLibraryEmpty()Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->isLibraryEmpty()Z\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->isLoading()Z\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;->isLoading()Z\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$isLibraryEmpty$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$isLibraryEmpty$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$isLibraryEmpty$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$isLibraryEmpty$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$isLibraryEmpty$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$libraryCount$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$libraryCount$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$libraryCount$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$libraryCount$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$State$libraryCount$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFn$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFn$1;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFn$1;-><init>(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnBookmarked$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnBookmarked$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnBookmarked$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnCompleted$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnCompleted$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnCompleted$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnDownloaded$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnDownloaded$1;-><init>(Ltachiyomi/core/preference/TriState;Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnDownloaded$1;-><init>(Ltachiyomi/core/preference/TriState;Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnStarted$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnStarted$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnStarted$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnTracking$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnTracking$1;-><init>(ZZLjava/util/Map;Ljava/util/ArrayList;Ljava/util/ArrayList;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnTracking$1;-><init>(ZZLjava/util/Map;Ljava/util/ArrayList;Ljava/util/ArrayList;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnUnread$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnUnread$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applyFilters$filterFnUnread$1;-><init>(Ltachiyomi/core/preference/TriState;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$lambda$7$$inlined$thenComparator$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$lambda$7$$inlined$thenComparator$1;-><init>(Ljava/util/Comparator;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$lambda$7$$inlined$thenComparator$1;-><init>(Ljava/util/Comparator;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$sortAlphabetically$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$sortAlphabetically$1;-><init>(Ljava/text/Collator;Ljava/util/Locale;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$sortAlphabetically$1;-><init>(Ljava/text/Collator;Ljava/util/Locale;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$sortFn$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$sortFn$1;-><init>(Ljava/util/Map;Lkotlin/jvm/functions/Function2;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$applySort$sortFn$1;-><init>(Ljava/util/Map;Lkotlin/jvm/functions/Function2;)V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryFlow$libraryMangasFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;-><init>([Lkotlinx/coroutines/flow/Flow;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;-><init>([Lkotlinx/coroutines/flow/Flow;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$2;-><init>([Lkotlinx/coroutines/flow/Flow;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$2;-><init>([Lkotlinx/coroutines/flow/Flow;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$getLibraryItemPreferencesFlow$$inlined$combine$1$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$10;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$10;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$10;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$11;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$11;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$11;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$12;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$12;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$12;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$13;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$13;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$13;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$14;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$14;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$14;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$15;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$15;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$15;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$5;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$5;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$5;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$6;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$6;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$6;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$7;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$7;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$7;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$8;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$8;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$8;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$9;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$9;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryScreenModel$special$$inlined$get$9;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel;\nHSPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel;-><init>(I)V\nLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$5;\nHSPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$5;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel$special$$inlined$get$5;-><init>()V\nLeu/kanade/tachiyomi/ui/library/LibraryTab;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;-><init>()V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/library/LibraryTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;->access$Content$lambda$2(Landroidx/compose/runtime/State;)Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;\nHPLeu/kanade/tachiyomi/ui/library/LibraryTab;->access$Content$lambda$2(Landroidx/compose/runtime/State;)Leu/kanade/tachiyomi/ui/library/LibraryScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;->access$getQueryEvent$p()Lkotlinx/coroutines/channels/Channel;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab;->access$getQueryEvent$p()Lkotlinx/coroutines/channels/Channel;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;->access$getRequestSettingsSheetEvent$p()Lkotlinx/coroutines/channels/Channel;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab;->access$getRequestSettingsSheetEvent$p()Lkotlinx/coroutines/channels/Channel;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;->getKey()Ljava/lang/String;\nHPLeu/kanade/tachiyomi/ui/library/LibraryTab;->getKey()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nHPLeu/kanade/tachiyomi/ui/library/LibraryTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/MutableState;Lkotlinx/coroutines/CoroutineScope;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/material3/SnackbarHostState;Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/MutableState;Lkotlinx/coroutines/CoroutineScope;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/material3/SnackbarHostState;Landroid/content/Context;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$4;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$4;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$4;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$5;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$5;-><init>(Lkotlin/jvm/functions/Function1;Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Landroidx/compose/runtime/State;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$5;-><init>(Lkotlin/jvm/functions/Function1;Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Landroidx/compose/runtime/State;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$6$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$6$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$6$1;-><init>(Lkotlin/jvm/functions/Function1;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$7;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$7;-><init>(Lkotlinx/coroutines/CoroutineScope;Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/material3/SnackbarHostState;Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$7;-><init>(Lkotlinx/coroutines/CoroutineScope;Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/material3/SnackbarHostState;Landroid/content/Context;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$8;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$8;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$1$8;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$10;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$10;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$10;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Landroidx/compose/runtime/MutableState;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;-><init>(Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;-><init>(Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$11$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;-><init>(Landroid/content/Context;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;-><init>(Landroid/content/Context;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$12;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$1$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$13$2$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$14;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$14;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryTab;I)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$14;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryTab;I)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$14;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$14;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Landroidx/compose/runtime/MutableState;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$2;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$2;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$3;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$4;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$4;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$4;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$6;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$6;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$2$6;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$3;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$3;-><init>(Landroidx/compose/material3/SnackbarHostState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$3;-><init>(Landroidx/compose/material3/SnackbarHostState;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/MutableState;Lcafe/adriel/voyager/navigator/Navigator;Lkotlinx/coroutines/CoroutineScope;Landroid/content/Context;Landroidx/compose/material3/SnackbarHostState;Landroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/MutableState;Lcafe/adriel/voyager/navigator/Navigator;Lkotlinx/coroutines/CoroutineScope;Landroid/content/Context;Landroidx/compose/material3/SnackbarHostState;Landroidx/compose/ui/hapticfeedback/PlatformHapticFeedback;)V\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4$1;-><init>(Landroidx/compose/ui/platform/UriHandler;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$4$1;-><init>(Landroidx/compose/ui/platform/UriHandler;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$onClickRefresh$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$onClickRefresh$1;-><init>(Landroid/content/Context;Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/material3/SnackbarHostState;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$onClickRefresh$1;-><init>(Landroid/content/Context;Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/material3/SnackbarHostState;)V\nLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$onDismissRequest$1;\nHSPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$onDismissRequest$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nPLeu/kanade/tachiyomi/ui/library/LibraryTab$Content$onDismissRequest$1;-><init>(Leu/kanade/tachiyomi/ui/library/LibraryScreenModel;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$CheckForUpdates(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroidx/compose/runtime/Composer;I)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$CheckForUpdates(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$HandleOnNewIntent(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroid/content/Context;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$HandleOnNewIntent(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroid/content/Context;Lcafe/adriel/voyager/navigator/Navigator;Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$getDownloadCache(Leu/kanade/tachiyomi/ui/main/MainActivity;)Leu/kanade/tachiyomi/data/download/DownloadCache;\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$getDownloadCache(Leu/kanade/tachiyomi/ui/main/MainActivity;)Leu/kanade/tachiyomi/data/download/DownloadCache;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$getPreferences(Leu/kanade/tachiyomi/ui/main/MainActivity;)Leu/kanade/domain/base/BasePreferences;\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$getPreferences(Leu/kanade/tachiyomi/ui/main/MainActivity;)Leu/kanade/domain/base/BasePreferences;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$handleIntentAction(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroid/content/Intent;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$handleIntentAction(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroid/content/Intent;Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$setNavigator$p(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->access$setNavigator$p(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->getReady()Z\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->getReady()Z\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->onCreate(Landroid/os/Bundle;)V\nHPLeu/kanade/tachiyomi/ui/main/MainActivity;->onCreate(Landroid/os/Bundle;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity;->setReady()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity;->setReady()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;-><init>(Landroid/content/Context;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;-><init>(Landroid/content/Context;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$CheckForUpdates$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$Companion;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$Companion;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$Companion;-><init>(I)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$1;-><init>(Landroidx/activity/ComponentActivity;Leu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$1;-><init>(Landroidx/activity/ComponentActivity;Leu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$$ExternalSyntheticLambda0;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$1$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$2;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$HandleOnNewIntent$1$2;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$5;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$5;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$5;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$6;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$6;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$get$6;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;ZZ)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;ZZ)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;ZZ)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;ZZ)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;ZZ)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;ZZ)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$$inlined$setComposeContent$default$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;-><init>(Lcom/google/accompanist/systemuicontroller/AndroidSystemUiController;JLkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;-><init>(Lcom/google/accompanist/systemuicontroller/AndroidSystemUiController;JLkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$1$1$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;-><init>(Lcom/google/accompanist/systemuicontroller/AndroidSystemUiController;Landroid/content/Context;JZLkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;-><init>(Lcom/google/accompanist/systemuicontroller/AndroidSystemUiController;Landroid/content/Context;JZLkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$2$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroid/content/Context;ZLandroidx/compose/runtime/MutableState;Landroidx/compose/runtime/MutableState;Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Landroid/content/Context;ZLandroidx/compose/runtime/MutableState;Landroidx/compose/runtime/MutableState;Landroidx/compose/runtime/MutableState;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;ZLkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;ZLkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$2;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$2;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$3;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$3;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$3;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;-><init>(Leu/kanade/tachiyomi/ui/main/MainActivity;Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$2;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1;-><init>(Lkotlinx/coroutines/flow/Flow;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1;-><init>(Lkotlinx/coroutines/flow/Flow;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$1$3$4$invokeSuspend$$inlined$filter$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$2;-><init>(JLeu/kanade/tachiyomi/ui/main/MainActivity;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$2;-><init>(JLeu/kanade/tachiyomi/ui/main/MainActivity;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$2;->shouldKeepOnScreen()Z\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$onCreate$2;->shouldKeepOnScreen()Z\nLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1;-><init>(Landroid/view/View;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1;-><init>(Landroid/view/View;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1;->onSplashScreenExit(Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1;->onSplashScreenExit(Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$$ExternalSyntheticLambda0;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;I)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V\nHPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;-><init>(Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;-><init>(Landroidx/core/splashscreen/SplashScreenViewProvider;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;->onAnimationEnd(Landroid/animation/Animator;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;->onAnimationEnd(Landroid/animation/Animator;)V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;->onAnimationStart(Landroid/animation/Animator;)V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$setSplashScreenExitAnimation$1$onSplashScreenExit$lambda$4$$inlined$doOnEnd$1;->onAnimationStart(Landroid/animation/Animator;)V\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$1$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$2$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$3$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$4$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5$1;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$5$1;-><init>()V\nLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$6;\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$6;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$6;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$6;-><init>()V\nPLeu/kanade/tachiyomi/ui/main/MainActivity$special$$inlined$injectLazy$6;-><init>()V\nLeu/kanade/tachiyomi/ui/more/DownloadQueueState;\nLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;\nHSPLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;-><init>()V\nPLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;->equals(Ljava/lang/Object;)Z\nPLeu/kanade/tachiyomi/ui/more/DownloadQueueState$Stopped;->equals(Ljava/lang/Object;)Z\nLeu/kanade/tachiyomi/ui/more/MoreScreenModel;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;-><init>(I)V\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->access$getDownloadManager$p(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadManager;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->access$getDownloadManager$p(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadManager;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->access$get_state$p(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->access$get_state$p(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->getDownloadQueueState()Lkotlinx/coroutines/flow/StateFlow;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->getDownloadQueueState()Lkotlinx/coroutines/flow/StateFlow;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->getDownloadedOnly()Z\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->getDownloadedOnly()Z\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->getIncognitoMode()Z\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel;->getIncognitoMode()Z\nLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/more/MoreScreenModel$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/more/MoreScreenModel$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/more/MoreScreenModel$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/ui/more/MoreTab;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/more/MoreTab;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab;-><init>()V\nPLeu/kanade/tachiyomi/ui/more/MoreTab;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/more/MoreTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab;->getKey()Ljava/lang/String;\nHPLeu/kanade/tachiyomi/ui/more/MoreTab;->getKey()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nHPLeu/kanade/tachiyomi/ui/more/MoreTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$1$1;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$1$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$1$1;-><init>(Landroidx/compose/runtime/MutableState;)V\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$1$1;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$1$1;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$10;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$10;-><init>(Leu/kanade/tachiyomi/ui/more/MoreTab;I)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$10;-><init>(Leu/kanade/tachiyomi/ui/more/MoreTab;I)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$2;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$2;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$2;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$3;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$3;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$3;-><init>(Leu/kanade/tachiyomi/ui/more/MoreScreenModel;)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$4;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$4;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$4;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$5;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$5;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$5;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$6;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$6;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$6;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$7;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$7;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$7;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$8;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$8;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$8;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$8;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/more/MoreTab$Content$9;\nHSPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$9;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/more/MoreTab$Content$9;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences;\nHSPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences$Companion;\nHSPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences$Companion;-><init>()V\nPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences$Companion;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen;-><init>(ZZ)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen;->Content(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/setting/SettingsScreen;->Content(Landroidx/compose/runtime/Composer;I)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Companion;-><init>()V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Companion;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;I)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$1$pop$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/setting/SettingsScreen$Content$3;-><init>(Leu/kanade/tachiyomi/ui/setting/SettingsScreen;I)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;-><init>(I)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getDownloadCache$p(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadCache;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getDownloadCache$p(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadCache;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getDownloadManager$p(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadManager;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getDownloadManager$p(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Leu/kanade/tachiyomi/data/download/DownloadManager;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getGetUpdates$p(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Ltachiyomi/domain/updates/interactor/GetUpdates;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getGetUpdates$p(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Ltachiyomi/domain/updates/interactor/GetUpdates;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getMutableState(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$getMutableState(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$toUpdateItems(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Ljava/util/List;)Ljava/util/ArrayList;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->access$toUpdateItems(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Ljava/util/List;)Ljava/util/ArrayList;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->getEvents()Lkotlinx/coroutines/flow/Flow;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->getEvents()Lkotlinx/coroutines/flow/Flow;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->getLastUpdated()J\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->getLastUpdated()J\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->getSnackbarHostState()Landroidx/compose/material3/SnackbarHostState;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->getSnackbarHostState()Landroidx/compose/material3/SnackbarHostState;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->resetNewUpdatesCount()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;->resetNewUpdatesCount()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$2;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$1$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2$1;-><init>(Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2$2;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$2$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog;\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog$DeleteConfirmation;\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;-><init>(I)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;-><init>(I)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;-><init>(ZLjava/util/List;Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;-><init>(ZLjava/util/List;Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->copy$default(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Ljava/util/List;Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog$DeleteConfirmation;I)Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->copy$default(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;Ljava/util/List;Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog$DeleteConfirmation;I)Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->equals(Ljava/lang/Object;)Z\nHPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->equals(Ljava/lang/Object;)Z\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getDialog()Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getDialog()Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$Dialog;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getItems()Ljava/util/List;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getItems()Ljava/util/List;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getSelected()Ljava/util/ArrayList;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getSelected()Ljava/util/ArrayList;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getSelectionMode()Z\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->getSelectionMode()Z\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->isLoading()Z\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$State;->isLoading()Z\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$2;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$2;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$2;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$3;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$3;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$3;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$4;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$4;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$4;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$5;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$5;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$5;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$6;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$6;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$6;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$7;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$7;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$7;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$8;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$8;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$8;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$9;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$9;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesScreenModel$special$$inlined$get$9;-><init>()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;-><clinit>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;-><clinit>()V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;-><init>()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;-><init>()V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;->Content(Landroidx/compose/runtime/Composer;I)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;->getKey()Ljava/lang/String;\nHPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;->getKey()Ljava/lang/String;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nHPLeu/kanade/tachiyomi/ui/updates/UpdatesTab;->getOptions(Landroidx/compose/runtime/Composer;)Lcafe/adriel/voyager/navigator/tab/TabOptions;\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$1;-><init>(Lcafe/adriel/voyager/navigator/Navigator;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$10;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$10;-><init>(Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$10;-><init>(Landroid/content/Context;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$12$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;-><init>(Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;-><init>(Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$13$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;-><init>(Landroid/content/Context;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;-><init>(Landroid/content/Context;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$14;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15$invoke$$inlined$onDispose$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15$invoke$$inlined$onDispose$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15$invoke$$inlined$onDispose$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15$invoke$$inlined$onDispose$1;->dispose()V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$15$invoke$$inlined$onDispose$1;->dispose()V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$16;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$16;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesTab;I)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$16;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesTab;I)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$2;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$2;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$3;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$3;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$3;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$4;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$4;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$4;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$5;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$5;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$5;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$6;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$6;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$6;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$7;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$7;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$7;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$8;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$8;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$8;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$9;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$9;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$9;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$onDismissDialog$1;\nHSPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$onDismissDialog$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nPLeu/kanade/tachiyomi/ui/updates/UpdatesTab$Content$onDismissDialog$1;-><init>(Leu/kanade/tachiyomi/ui/updates/UpdatesScreenModel;)V\nLeu/kanade/tachiyomi/util/storage/DiskUtil;\nHSPLeu/kanade/tachiyomi/util/storage/DiskUtil;-><clinit>()V\nPLeu/kanade/tachiyomi/util/storage/DiskUtil;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/storage/DiskUtil;-><init>()V\nPLeu/kanade/tachiyomi/util/storage/DiskUtil;-><init>()V\nHSPLeu/kanade/tachiyomi/util/storage/DiskUtil;->createNoMediaFile(Lcom/hippo/unifile/UniFile;Landroid/content/Context;)V\nPLeu/kanade/tachiyomi/util/storage/DiskUtil;->createNoMediaFile(Lcom/hippo/unifile/UniFile;Landroid/content/Context;)V\nLeu/kanade/tachiyomi/util/system/ContextExtensionsKt;\nHSPLeu/kanade/tachiyomi/util/system/ContextExtensionsKt;->isInstalledFromFDroid(Landroid/content/Context;)Z\nHPLeu/kanade/tachiyomi/util/system/ContextExtensionsKt;->isInstalledFromFDroid(Landroid/content/Context;)Z\nLeu/kanade/tachiyomi/util/system/DensityExtensionsKt;\nHSPLeu/kanade/tachiyomi/util/system/DensityExtensionsKt;->getDpToPx(I)I\nPLeu/kanade/tachiyomi/util/system/DensityExtensionsKt;->getDpToPx(I)I\nLeu/kanade/tachiyomi/util/system/DeviceUtil;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil;-><init>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil;->isSamsung()Z\nPLeu/kanade/tachiyomi/util/system/DeviceUtil;->isSamsung()Z\nLeu/kanade/tachiyomi/util/system/DeviceUtil$isMiui$2;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$isMiui$2;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$isMiui$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$isMiui$2;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$isMiui$2;-><init>()V\nLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;-><init>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$isSamsung$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/util/system/DeviceUtil$miuiMajorVersion$2;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$miuiMajorVersion$2;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$miuiMajorVersion$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$miuiMajorVersion$2;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$miuiMajorVersion$2;-><init>()V\nLeu/kanade/tachiyomi/util/system/DeviceUtil$oneUiVersion$2;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$oneUiVersion$2;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$oneUiVersion$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtil$oneUiVersion$2;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtil$oneUiVersion$2;-><init>()V\nLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt;->isDynamicColorAvailable(Leu/kanade/tachiyomi/util/system/DeviceUtil;)Z\nPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt;->isDynamicColorAvailable(Leu/kanade/tachiyomi/util/system/DeviceUtil;)Z\nLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;-><init>()V\nHSPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;->invoke()Ljava/lang/Object;\nPLeu/kanade/tachiyomi/util/system/DeviceUtilExtensionsKt$isDynamicColorAvailable$2;->invoke()Ljava/lang/Object;\nLeu/kanade/tachiyomi/util/system/DisplayExtensionsKt;\nHSPLeu/kanade/tachiyomi/util/system/DisplayExtensionsKt;->prepareTabletUiContext(Landroid/content/Context;)Landroid/content/Context;\nPLeu/kanade/tachiyomi/util/system/DisplayExtensionsKt;->prepareTabletUiContext(Landroid/content/Context;)Landroid/content/Context;\nLeu/kanade/tachiyomi/util/system/DisplayExtensionsKt$prepareTabletUiContext$$inlined$get$1;\nHSPLeu/kanade/tachiyomi/util/system/DisplayExtensionsKt$prepareTabletUiContext$$inlined$get$1;-><init>()V\nPLeu/kanade/tachiyomi/util/system/DisplayExtensionsKt$prepareTabletUiContext$$inlined$get$1;-><init>()V\nLeu/kanade/tachiyomi/util/system/InternalResourceHelper;\nHSPLeu/kanade/tachiyomi/util/system/InternalResourceHelper;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/InternalResourceHelper;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/InternalResourceHelper;-><init>()V\nPLeu/kanade/tachiyomi/util/system/InternalResourceHelper;-><init>()V\nLeu/kanade/tachiyomi/util/system/LocaleHelper;\nHSPLeu/kanade/tachiyomi/util/system/LocaleHelper;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/LocaleHelper;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/LocaleHelper;-><init>()V\nPLeu/kanade/tachiyomi/util/system/LocaleHelper;-><init>()V\nLeu/kanade/tachiyomi/util/system/LocaleHelper$comparator$1;\nHSPLeu/kanade/tachiyomi/util/system/LocaleHelper$comparator$1;-><clinit>()V\nPLeu/kanade/tachiyomi/util/system/LocaleHelper$comparator$1;-><clinit>()V\nHSPLeu/kanade/tachiyomi/util/system/LocaleHelper$comparator$1;-><init>()V\nPLeu/kanade/tachiyomi/util/system/LocaleHelper$comparator$1;-><init>()V\nLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;\nHSPLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;->buildNotificationChannel(Ljava/lang/String;ILkotlin/jvm/functions/Function1;)Landroidx/core/app/NotificationChannelCompat;\nPLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;->buildNotificationChannel(Ljava/lang/String;ILkotlin/jvm/functions/Function1;)Landroidx/core/app/NotificationChannelCompat;\nHSPLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;->buildNotificationChannelGroup(Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Landroidx/core/app/NotificationChannelGroupCompat;\nPLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;->buildNotificationChannelGroup(Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Landroidx/core/app/NotificationChannelGroupCompat;\nHSPLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;->cancelNotification(Landroid/content/Context;I)V\nPLeu/kanade/tachiyomi/util/system/NotificationExtensionsKt;->cancelNotification(Landroid/content/Context;I)V\nLeu/kanade/tachiyomi/util/system/WorkManagerExtensionsKt;\nHSPLeu/kanade/tachiyomi/util/system/WorkManagerExtensionsKt;->getWorkManager(Landroid/content/Context;)Landroidx/work/impl/WorkManagerImpl;\nPLeu/kanade/tachiyomi/util/system/WorkManagerExtensionsKt;->getWorkManager(Landroid/content/Context;)Landroidx/work/impl/WorkManagerImpl;\nLeu/kanade/tachiyomi/util/view/WindowExtensionsKt;\nLio/requery/android/database/AbstractCursor;\nHSPLio/requery/android/database/AbstractCursor;-><init>()V\nPLio/requery/android/database/AbstractCursor;-><init>()V\nHSPLio/requery/android/database/AbstractCursor;->checkPosition()V\nPLio/requery/android/database/AbstractCursor;->checkPosition()V\nHSPLio/requery/android/database/AbstractCursor;->close()V\nPLio/requery/android/database/AbstractCursor;->close()V\nHSPLio/requery/android/database/AbstractCursor;->finalize()V\nPLio/requery/android/database/AbstractCursor;->finalize()V\nHSPLio/requery/android/database/AbstractCursor;->moveToFirst()Z\nPLio/requery/android/database/AbstractCursor;->moveToFirst()Z\nHSPLio/requery/android/database/AbstractCursor;->moveToNext()Z\nPLio/requery/android/database/AbstractCursor;->moveToNext()Z\nHSPLio/requery/android/database/AbstractCursor;->moveToPosition(I)Z\nPLio/requery/android/database/AbstractCursor;->moveToPosition(I)Z\nHSPLio/requery/android/database/AbstractCursor;->onDeactivateOrClose()V\nPLio/requery/android/database/AbstractCursor;->onDeactivateOrClose()V\nLio/requery/android/database/AbstractWindowedCursor;\nHSPLio/requery/android/database/AbstractWindowedCursor;-><init>()V\nPLio/requery/android/database/AbstractWindowedCursor;-><init>()V\nHSPLio/requery/android/database/AbstractWindowedCursor;->checkPosition()V\nPLio/requery/android/database/AbstractWindowedCursor;->checkPosition()V\nHSPLio/requery/android/database/AbstractWindowedCursor;->clearOrCreateWindow(Ljava/lang/String;)V\nPLio/requery/android/database/AbstractWindowedCursor;->clearOrCreateWindow(Ljava/lang/String;)V\nHSPLio/requery/android/database/AbstractWindowedCursor;->closeWindow()V\nPLio/requery/android/database/AbstractWindowedCursor;->closeWindow()V\nHSPLio/requery/android/database/AbstractWindowedCursor;->getLong(I)J\nPLio/requery/android/database/AbstractWindowedCursor;->getLong(I)J\nHSPLio/requery/android/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String;\nPLio/requery/android/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String;\nHSPLio/requery/android/database/AbstractWindowedCursor;->isNull(I)Z\nPLio/requery/android/database/AbstractWindowedCursor;->isNull(I)Z\nHSPLio/requery/android/database/AbstractWindowedCursor;->onDeactivateOrClose()V\nPLio/requery/android/database/AbstractWindowedCursor;->onDeactivateOrClose()V\nLio/requery/android/database/CursorWindow;\nHSPLio/requery/android/database/CursorWindow;-><init>(Ljava/lang/String;)V\nPLio/requery/android/database/CursorWindow;-><init>(Ljava/lang/String;)V\nHSPLio/requery/android/database/CursorWindow;-><init>(Ljava/lang/String;I)V\nPLio/requery/android/database/CursorWindow;-><init>(Ljava/lang/String;I)V\nHSPLio/requery/android/database/CursorWindow;->dispose()V\nPLio/requery/android/database/CursorWindow;->dispose()V\nHSPLio/requery/android/database/CursorWindow;->finalize()V\nPLio/requery/android/database/CursorWindow;->finalize()V\nHSPLio/requery/android/database/CursorWindow;->getLong(II)J\nPLio/requery/android/database/CursorWindow;->getLong(II)J\nHSPLio/requery/android/database/CursorWindow;->getNumRows()I\nPLio/requery/android/database/CursorWindow;->getNumRows()I\nHSPLio/requery/android/database/CursorWindow;->getStartPosition()I\nPLio/requery/android/database/CursorWindow;->getStartPosition()I\nHSPLio/requery/android/database/CursorWindow;->getString(II)Ljava/lang/String;\nPLio/requery/android/database/CursorWindow;->getString(II)Ljava/lang/String;\nHSPLio/requery/android/database/CursorWindow;->getType(II)I\nPLio/requery/android/database/CursorWindow;->getType(II)I\nHSPLio/requery/android/database/CursorWindow;->onAllReferencesReleased()V\nPLio/requery/android/database/CursorWindow;->onAllReferencesReleased()V\nHSPLio/requery/android/database/CursorWindow;->setStartPosition(I)V\nPLio/requery/android/database/CursorWindow;->setStartPosition(I)V\nLio/requery/android/database/DatabaseErrorHandler;\nLio/requery/android/database/sqlite/CloseGuard;\nHSPLio/requery/android/database/sqlite/CloseGuard;-><clinit>()V\nPLio/requery/android/database/sqlite/CloseGuard;-><clinit>()V\nHSPLio/requery/android/database/sqlite/CloseGuard;-><init>()V\nPLio/requery/android/database/sqlite/CloseGuard;-><init>()V\nHSPLio/requery/android/database/sqlite/CloseGuard;->get()Lio/requery/android/database/sqlite/CloseGuard;\nPLio/requery/android/database/sqlite/CloseGuard;->get()Lio/requery/android/database/sqlite/CloseGuard;\nHSPLio/requery/android/database/sqlite/CloseGuard;->open(Ljava/lang/String;)V\nPLio/requery/android/database/sqlite/CloseGuard;->open(Ljava/lang/String;)V\nLio/requery/android/database/sqlite/CloseGuard$DefaultReporter;\nHSPLio/requery/android/database/sqlite/CloseGuard$DefaultReporter;-><init>()V\nPLio/requery/android/database/sqlite/CloseGuard$DefaultReporter;-><init>()V\nHSPLio/requery/android/database/sqlite/CloseGuard$DefaultReporter;-><init>(I)V\nPLio/requery/android/database/sqlite/CloseGuard$DefaultReporter;-><init>(I)V\nLio/requery/android/database/sqlite/CloseGuard$Reporter;\nLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;-><init>()V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;-><init>()V\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;-><init>(Ljava/lang/Iterable;)V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;-><init>(Ljava/lang/Iterable;)V\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;->create(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory;->create(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration;)Landroidx/sqlite/db/SupportSQLiteOpenHelper;\nLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackDatabaseErrorHandler;\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackDatabaseErrorHandler;-><init>(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;)V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackDatabaseErrorHandler;-><init>(Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;)V\nLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;Ljava/lang/Iterable;)V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;Ljava/lang/Iterable;)V\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->createConfiguration(Ljava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->createConfiguration(Ljava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->onConfigure(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->onConfigure(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->onCreate(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->onCreate(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nHSPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->onOpen(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nPLio/requery/android/database/sqlite/RequerySQLiteOpenHelperFactory$CallbackSQLiteOpenHelper;->onOpen(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nLio/requery/android/database/sqlite/SQLiteClosable;\nHSPLio/requery/android/database/sqlite/SQLiteClosable;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteClosable;-><init>()V\nHSPLio/requery/android/database/sqlite/SQLiteClosable;->acquireReference()V\nPLio/requery/android/database/sqlite/SQLiteClosable;->acquireReference()V\nHSPLio/requery/android/database/sqlite/SQLiteClosable;->close()V\nPLio/requery/android/database/sqlite/SQLiteClosable;->close()V\nHSPLio/requery/android/database/sqlite/SQLiteClosable;->releaseReference()V\nPLio/requery/android/database/sqlite/SQLiteClosable;->releaseReference()V\nLio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnection;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteConnection;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;-><init>(Lio/requery/android/database/sqlite/SQLiteConnectionPool;Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;IZ)V\nPLio/requery/android/database/sqlite/SQLiteConnection;-><init>(Lio/requery/android/database/sqlite/SQLiteConnectionPool;Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;IZ)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;\nPLio/requery/android/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->bindArguments(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->bindArguments(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)I\nPLio/requery/android/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)I\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Lio/requery/android/database/CursorWindow;IIZLandroidx/core/os/CancellationSignal;)I\nPLio/requery/android/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Lio/requery/android/database/CursorWindow;IIZLandroidx/core/os/CancellationSignal;)I\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)J\nPLio/requery/android/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)J\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->getTypeOfObject(Ljava/lang/Object;)I\nPLio/requery/android/database/sqlite/SQLiteConnection;->getTypeOfObject(Ljava/lang/Object;)I\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->hasCodec()Z\nPLio/requery/android/database/sqlite/SQLiteConnection;->hasCodec()Z\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->isCacheable(I)Z\nPLio/requery/android/database/sqlite/SQLiteConnection;->isCacheable(I)Z\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z\nPLio/requery/android/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->obtainPreparedStatement(Ljava/lang/String;JIIZ)Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;\nPLio/requery/android/database/sqlite/SQLiteConnection;->obtainPreparedStatement(Ljava/lang/String;JIIZ)Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->open()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->open()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->open(Lio/requery/android/database/sqlite/SQLiteConnectionPool;Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;IZ)Lio/requery/android/database/sqlite/SQLiteConnection;\nPLio/requery/android/database/sqlite/SQLiteConnection;->open(Lio/requery/android/database/sqlite/SQLiteConnectionPool;Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;IZ)Lio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteStatementInfo;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteStatementInfo;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->recyclePreparedStatement(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->recyclePreparedStatement(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->releasePreparedStatement(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->releasePreparedStatement(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setOnlyAllowReadOnlyOperations(Z)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setOnlyAllowReadOnlyOperations(Z)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setPageSize()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setPageSize()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V\nPLio/requery/android/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nPLio/requery/android/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Lio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;)V\nLio/requery/android/database/sqlite/SQLiteConnection$Operation;\nHSPLio/requery/android/database/sqlite/SQLiteConnection$Operation;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteConnection$Operation;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection$Operation;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteConnection$Operation;-><init>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection$Operation;-><init>(I)V\nPLio/requery/android/database/sqlite/SQLiteConnection$Operation;-><init>(I)V\nLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;-><init>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;-><init>(I)V\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;-><init>(I)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->endOperation(I)V\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->endOperation(I)V\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLogLocked(I)Z\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLogLocked(I)Z\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->getOperationLocked(I)Lio/requery/android/database/sqlite/SQLiteConnection$Operation;\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->getOperationLocked(I)Lio/requery/android/database/sqlite/SQLiteConnection$Operation;\nHSPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->newOperationCookieLocked(I)I\nPLio/requery/android/database/sqlite/SQLiteConnection$OperationLog;->newOperationCookieLocked(I)I\nLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;\nHSPLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;-><init>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;-><init>(I)V\nPLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatement;-><init>(I)V\nLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatementCache;\nHSPLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Lio/requery/android/database/sqlite/SQLiteConnection;I)V\nPLio/requery/android/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Lio/requery/android/database/sqlite/SQLiteConnection;I)V\nLio/requery/android/database/sqlite/SQLiteConnectionPool;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->acquireConnection(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;)Lio/requery/android/database/sqlite/SQLiteConnection;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->acquireConnection(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;)Lio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Lio/requery/android/database/sqlite/SQLiteConnection;I)V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Lio/requery/android/database/sqlite/SQLiteConnection;I)V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->getPriority(I)I\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->getPriority(I)I\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->obtainConnectionWaiterLocked(Ljava/lang/Thread;JIZLjava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->obtainConnectionWaiterLocked(Ljava/lang/Thread;JIZLjava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->open()V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->open()V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->open(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)Lio/requery/android/database/sqlite/SQLiteConnectionPool;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->open(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)Lio/requery/android/database/sqlite/SQLiteConnectionPool;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->openConnectionLocked(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;Z)Lio/requery/android/database/sqlite/SQLiteConnection;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->openConnectionLocked(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;Z)Lio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Lio/requery/android/database/sqlite/SQLiteConnection;Lio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Lio/requery/android/database/sqlite/SQLiteConnection;Lio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Lio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Lio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->releaseConnection(Lio/requery/android/database/sqlite/SQLiteConnection;)V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->releaseConnection(Lio/requery/android/database/sqlite/SQLiteConnection;)V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->throwIfClosedLocked()V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->throwIfClosedLocked()V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteConnection;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Lio/requery/android/database/sqlite/SQLiteConnection;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Lio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;)Lio/requery/android/database/sqlite/SQLiteConnection;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;)Lio/requery/android/database/sqlite/SQLiteConnection;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V\nLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->$values()[Lio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;\nPLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->$values()[Lio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;-><init>(Ljava/lang/String;I)V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;-><init>(Ljava/lang/String;I)V\nLio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V\nHSPLio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(I)V\nPLio/requery/android/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(I)V\nLio/requery/android/database/sqlite/SQLiteCursor;\nHSPLio/requery/android/database/sqlite/SQLiteCursor;-><init>(Lio/requery/android/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteQuery;)V\nPLio/requery/android/database/sqlite/SQLiteCursor;-><init>(Lio/requery/android/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteQuery;)V\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->close()V\nPLio/requery/android/database/sqlite/SQLiteCursor;->close()V\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->cursorPickFillWindowStartPosition(II)I\nPLio/requery/android/database/sqlite/SQLiteCursor;->cursorPickFillWindowStartPosition(II)I\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->fillWindow(I)V\nPLio/requery/android/database/sqlite/SQLiteCursor;->fillWindow(I)V\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->finalize()V\nPLio/requery/android/database/sqlite/SQLiteCursor;->finalize()V\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->getCount()I\nPLio/requery/android/database/sqlite/SQLiteCursor;->getCount()I\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->getDatabase()Lio/requery/android/database/sqlite/SQLiteDatabase;\nPLio/requery/android/database/sqlite/SQLiteCursor;->getDatabase()Lio/requery/android/database/sqlite/SQLiteDatabase;\nHSPLio/requery/android/database/sqlite/SQLiteCursor;->onMove(II)Z\nPLio/requery/android/database/sqlite/SQLiteCursor;->onMove(II)Z\nLio/requery/android/database/sqlite/SQLiteCursorDriver;\nLio/requery/android/database/sqlite/SQLiteCustomFunction;\nLio/requery/android/database/sqlite/SQLiteDatabase;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->-$$Nest$fgetmCursorFactory(Lio/requery/android/database/sqlite/SQLiteDatabase;)Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->-$$Nest$fgetmCursorFactory(Lio/requery/android/database/sqlite/SQLiteDatabase;)Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;Lio/requery/android/database/DatabaseErrorHandler;)V\nPLio/requery/android/database/sqlite/SQLiteDatabase;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;Lio/requery/android/database/DatabaseErrorHandler;)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->beginTransaction()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->beginTransaction()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;I)V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;I)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroidx/sqlite/db/SupportSQLiteStatement;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroidx/sqlite/db/SupportSQLiteStatement;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Lio/requery/android/database/sqlite/SQLiteStatement;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Lio/requery/android/database/sqlite/SQLiteStatement;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->createSession()Lio/requery/android/database/sqlite/SQLiteSession;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->createSession()Lio/requery/android/database/sqlite/SQLiteSession;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->endTransaction()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->endTransaction()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->ensureFile(Ljava/lang/String;)V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->ensureFile(Ljava/lang/String;)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->executeSql(Ljava/lang/String;[Ljava/lang/Object;)I\nPLio/requery/android/database/sqlite/SQLiteDatabase;->executeSql(Ljava/lang/String;[Ljava/lang/Object;)I\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->getPath()Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->getPath()Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I\nPLio/requery/android/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->getThreadSession()Lio/requery/android/database/sqlite/SQLiteSession;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->getThreadSession()Lio/requery/android/database/sqlite/SQLiteSession;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->getVersion()I\nPLio/requery/android/database/sqlite/SQLiteDatabase;->getVersion()I\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->hasCodec()Z\nPLio/requery/android/database/sqlite/SQLiteDatabase;->hasCodec()Z\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->isMainThread()Z\nPLio/requery/android/database/sqlite/SQLiteDatabase;->isMainThread()Z\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->isReadOnly()Z\nPLio/requery/android/database/sqlite/SQLiteDatabase;->isReadOnly()Z\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z\nPLio/requery/android/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->longForQuery(Lio/requery/android/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J\nPLio/requery/android/database/sqlite/SQLiteDatabase;->longForQuery(Lio/requery/android/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->longForQuery(Ljava/lang/String;[Ljava/lang/String;)J\nPLio/requery/android/database/sqlite/SQLiteDatabase;->longForQuery(Ljava/lang/String;[Ljava/lang/String;)J\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->open()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->open()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->openDatabase(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;Lio/requery/android/database/DatabaseErrorHandler;)Lio/requery/android/database/sqlite/SQLiteDatabase;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->openDatabase(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;Lio/requery/android/database/DatabaseErrorHandler;)Lio/requery/android/database/sqlite/SQLiteDatabase;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->openInner()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->openInner()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;)Landroid/database/Cursor;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;)Landroid/database/Cursor;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;Landroidx/core/os/CancellationSignal;)Landroid/database/Cursor;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->query(Landroidx/sqlite/db/SupportSQLiteQuery;Landroidx/core/os/CancellationSignal;)Landroid/database/Cursor;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;)Landroid/database/Cursor;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;)Landroid/database/Cursor;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Landroidx/core/os/CancellationSignal;)Landroid/database/Cursor;\nPLio/requery/android/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Landroidx/core/os/CancellationSignal;)Landroid/database/Cursor;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->setVersion(I)V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->setVersion(I)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V\nPLio/requery/android/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V\nLio/requery/android/database/sqlite/SQLiteDatabase$1;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase$1;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nPLio/requery/android/database/sqlite/SQLiteDatabase$1;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase$1;->initialValue()Lio/requery/android/database/sqlite/SQLiteSession;\nPLio/requery/android/database/sqlite/SQLiteDatabase$1;->initialValue()Lio/requery/android/database/sqlite/SQLiteSession;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase$1;->initialValue()Ljava/lang/Object;\nPLio/requery/android/database/sqlite/SQLiteDatabase$1;->initialValue()Ljava/lang/Object;\nLio/requery/android/database/sqlite/SQLiteDatabase$4;\nHSPLio/requery/android/database/sqlite/SQLiteDatabase$4;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Landroidx/sqlite/db/SupportSQLiteQuery;)V\nPLio/requery/android/database/sqlite/SQLiteDatabase$4;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Landroidx/sqlite/db/SupportSQLiteQuery;)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabase$4;->newCursor(Lio/requery/android/database/sqlite/SQLiteDatabase;Lio/requery/android/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteQuery;)Landroid/database/Cursor;\nPLio/requery/android/database/sqlite/SQLiteDatabase$4;->newCursor(Lio/requery/android/database/sqlite/SQLiteDatabase;Lio/requery/android/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteQuery;)Landroid/database/Cursor;\nLio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;\nLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;\nHSPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)V\nPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Ljava/lang/String;I)V\nPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Ljava/lang/String;I)V\nHSPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z\nPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z\nHSPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)V\nPLio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;)V\nLio/requery/android/database/sqlite/SQLiteDebug;\nHSPLio/requery/android/database/sqlite/SQLiteDebug;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteDebug;-><clinit>()V\nLio/requery/android/database/sqlite/SQLiteDebug$PagerStats;\nLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;\nHSPLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V\nPLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V\nHSPLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;->query(Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/Object;)Landroid/database/Cursor;\nPLio/requery/android/database/sqlite/SQLiteDirectCursorDriver;->query(Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/Object;)Landroid/database/Cursor;\nLio/requery/android/database/sqlite/SQLiteFunction;\nLio/requery/android/database/sqlite/SQLiteGlobal;\nHSPLio/requery/android/database/sqlite/SQLiteGlobal;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteGlobal;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteGlobal;->getDefaultJournalMode()Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteGlobal;->getDefaultJournalMode()Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteGlobal;->getDefaultPageSize()I\nPLio/requery/android/database/sqlite/SQLiteGlobal;->getDefaultPageSize()I\nHSPLio/requery/android/database/sqlite/SQLiteGlobal;->getDefaultSyncMode()Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteGlobal;->getDefaultSyncMode()Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteGlobal;->getJournalSizeLimit()I\nPLio/requery/android/database/sqlite/SQLiteGlobal;->getJournalSizeLimit()I\nHSPLio/requery/android/database/sqlite/SQLiteGlobal;->getWALAutoCheckpoint()I\nPLio/requery/android/database/sqlite/SQLiteGlobal;->getWALAutoCheckpoint()I\nLio/requery/android/database/sqlite/SQLiteOpenHelper;\nHSPLio/requery/android/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;ILio/requery/android/database/DatabaseErrorHandler;)V\nPLio/requery/android/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Lio/requery/android/database/sqlite/SQLiteDatabase$CursorFactory;ILio/requery/android/database/DatabaseErrorHandler;)V\nHSPLio/requery/android/database/sqlite/SQLiteOpenHelper;->createConfiguration(Ljava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;\nPLio/requery/android/database/sqlite/SQLiteOpenHelper;->createConfiguration(Ljava/lang/String;I)Lio/requery/android/database/sqlite/SQLiteDatabaseConfiguration;\nHSPLio/requery/android/database/sqlite/SQLiteOpenHelper;->getDatabaseLocked(Z)Lio/requery/android/database/sqlite/SQLiteDatabase;\nPLio/requery/android/database/sqlite/SQLiteOpenHelper;->getDatabaseLocked(Z)Lio/requery/android/database/sqlite/SQLiteDatabase;\nHSPLio/requery/android/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroidx/sqlite/db/SupportSQLiteDatabase;\nPLio/requery/android/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroidx/sqlite/db/SupportSQLiteDatabase;\nHSPLio/requery/android/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Lio/requery/android/database/sqlite/SQLiteDatabase;\nPLio/requery/android/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Lio/requery/android/database/sqlite/SQLiteDatabase;\nLio/requery/android/database/sqlite/SQLiteProgram;\nHSPLio/requery/android/database/sqlite/SQLiteProgram;-><clinit>()V\nPLio/requery/android/database/sqlite/SQLiteProgram;-><clinit>()V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteProgram;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V\nPLio/requery/android/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V\nPLio/requery/android/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->bindLong(IJ)V\nPLio/requery/android/database/sqlite/SQLiteProgram;->bindLong(IJ)V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->bindString(ILjava/lang/String;)V\nPLio/requery/android/database/sqlite/SQLiteProgram;->bindString(ILjava/lang/String;)V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->clearBindings()V\nPLio/requery/android/database/sqlite/SQLiteProgram;->clearBindings()V\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->getBindArgs()[Ljava/lang/Object;\nPLio/requery/android/database/sqlite/SQLiteProgram;->getBindArgs()[Ljava/lang/Object;\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->getColumnNames()[Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteProgram;->getColumnNames()[Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->getConnectionFlags()I\nPLio/requery/android/database/sqlite/SQLiteProgram;->getConnectionFlags()I\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->getDatabase()Lio/requery/android/database/sqlite/SQLiteDatabase;\nPLio/requery/android/database/sqlite/SQLiteProgram;->getDatabase()Lio/requery/android/database/sqlite/SQLiteDatabase;\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->getSession()Lio/requery/android/database/sqlite/SQLiteSession;\nPLio/requery/android/database/sqlite/SQLiteProgram;->getSession()Lio/requery/android/database/sqlite/SQLiteSession;\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->getSql()Ljava/lang/String;\nPLio/requery/android/database/sqlite/SQLiteProgram;->getSql()Ljava/lang/String;\nHSPLio/requery/android/database/sqlite/SQLiteProgram;->onAllReferencesReleased()V\nPLio/requery/android/database/sqlite/SQLiteProgram;->onAllReferencesReleased()V\nLio/requery/android/database/sqlite/SQLiteQuery;\nHSPLio/requery/android/database/sqlite/SQLiteQuery;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteQuery;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteQuery;->fillWindow(Lio/requery/android/database/CursorWindow;IIZ)I\nPLio/requery/android/database/sqlite/SQLiteQuery;->fillWindow(Lio/requery/android/database/CursorWindow;IIZ)I\nLio/requery/android/database/sqlite/SQLiteSession;\nHSPLio/requery/android/database/sqlite/SQLiteSession;-><init>(Lio/requery/android/database/sqlite/SQLiteConnectionPool;)V\nPLio/requery/android/database/sqlite/SQLiteSession;-><init>(Lio/requery/android/database/sqlite/SQLiteConnectionPool;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteSession;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->endTransaction(Landroidx/core/os/CancellationSignal;)V\nPLio/requery/android/database/sqlite/SQLiteSession;->endTransaction(Landroidx/core/os/CancellationSignal;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroidx/core/os/CancellationSignal;Z)V\nPLio/requery/android/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroidx/core/os/CancellationSignal;Z)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroidx/core/os/CancellationSignal;)I\nPLio/requery/android/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroidx/core/os/CancellationSignal;)I\nHSPLio/requery/android/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Lio/requery/android/database/CursorWindow;IIZILandroidx/core/os/CancellationSignal;)I\nPLio/requery/android/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Lio/requery/android/database/CursorWindow;IIZILandroidx/core/os/CancellationSignal;)I\nHSPLio/requery/android/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroidx/core/os/CancellationSignal;)J\nPLio/requery/android/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroidx/core/os/CancellationSignal;)J\nHSPLio/requery/android/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroidx/core/os/CancellationSignal;)Z\nPLio/requery/android/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroidx/core/os/CancellationSignal;)Z\nHSPLio/requery/android/database/sqlite/SQLiteSession;->obtainTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;)Lio/requery/android/database/sqlite/SQLiteSession$Transaction;\nPLio/requery/android/database/sqlite/SQLiteSession;->obtainTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;)Lio/requery/android/database/sqlite/SQLiteSession$Transaction;\nHSPLio/requery/android/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;Lio/requery/android/database/sqlite/SQLiteStatementInfo;)V\nPLio/requery/android/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroidx/core/os/CancellationSignal;Lio/requery/android/database/sqlite/SQLiteStatementInfo;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->recycleTransaction(Lio/requery/android/database/sqlite/SQLiteSession$Transaction;)V\nPLio/requery/android/database/sqlite/SQLiteSession;->recycleTransaction(Lio/requery/android/database/sqlite/SQLiteSession$Transaction;)V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->releaseConnection()V\nPLio/requery/android/database/sqlite/SQLiteSession;->releaseConnection()V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->setTransactionSuccessful()V\nPLio/requery/android/database/sqlite/SQLiteSession;->setTransactionSuccessful()V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->throwIfNoTransaction()V\nPLio/requery/android/database/sqlite/SQLiteSession;->throwIfNoTransaction()V\nHSPLio/requery/android/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V\nPLio/requery/android/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V\nLio/requery/android/database/sqlite/SQLiteSession$Transaction;\nHSPLio/requery/android/database/sqlite/SQLiteSession$Transaction;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteSession$Transaction;-><init>()V\nHSPLio/requery/android/database/sqlite/SQLiteSession$Transaction;-><init>(I)V\nPLio/requery/android/database/sqlite/SQLiteSession$Transaction;-><init>(I)V\nLio/requery/android/database/sqlite/SQLiteStatement;\nHSPLio/requery/android/database/sqlite/SQLiteStatement;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V\nPLio/requery/android/database/sqlite/SQLiteStatement;-><init>(Lio/requery/android/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V\nHSPLio/requery/android/database/sqlite/SQLiteStatement;->executeUpdateDelete()I\nPLio/requery/android/database/sqlite/SQLiteStatement;->executeUpdateDelete()I\nHSPLio/requery/android/database/sqlite/SQLiteStatement;->simpleQueryForLong()J\nPLio/requery/android/database/sqlite/SQLiteStatement;->simpleQueryForLong()J\nLio/requery/android/database/sqlite/SQLiteStatementInfo;\nHSPLio/requery/android/database/sqlite/SQLiteStatementInfo;-><init>()V\nPLio/requery/android/database/sqlite/SQLiteStatementInfo;-><init>()V\nLio/requery/android/database/sqlite/SQLiteStatementType;\nHSPLio/requery/android/database/sqlite/SQLiteStatementType;->getSqlStatementType(Ljava/lang/String;)I\nHPLio/requery/android/database/sqlite/SQLiteStatementType;->getSqlStatementType(Ljava/lang/String;)I\nHSPLio/requery/android/database/sqlite/SQLiteStatementType;->stripLeadingSqlComments(Ljava/lang/String;)Ljava/lang/String;\nHPLio/requery/android/database/sqlite/SQLiteStatementType;->stripLeadingSqlComments(Ljava/lang/String;)Ljava/lang/String;\nLj$/time/Duration;\nHSPLj$/time/Duration;-><clinit>()V\nPLj$/time/Duration;-><clinit>()V\nHSPLj$/time/Duration;-><init>(JI)V\nPLj$/time/Duration;-><init>(JI)V\nHSPLj$/time/Duration;->l(JI)Lj$/time/Duration;\nPLj$/time/Duration;->l(JI)Lj$/time/Duration;\nHSPLj$/time/Duration;->ofSeconds(JJ)Lj$/time/Duration;\nPLj$/time/Duration;->ofSeconds(JJ)Lj$/time/Duration;\nHSPLj$/time/Duration;->toMillis()J\nPLj$/time/Duration;->toMillis()J\nLj$/util/DesugarTimeZone;\nHSPLj$/util/DesugarTimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;\nPLj$/util/DesugarTimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;\nLkotlin/ExceptionsKt;\nLkotlin/ExceptionsKt__ExceptionsKt;\nLkotlin/Function;\nLkotlin/InitializedLazyImpl;\nHSPLkotlin/InitializedLazyImpl;-><init>(Ljava/lang/Object;)V\nPLkotlin/InitializedLazyImpl;-><init>(Ljava/lang/Object;)V\nLkotlin/KotlinNothingValueException;\nLkotlin/KotlinVersion;\nHSPLkotlin/KotlinVersion;-><clinit>()V\nPLkotlin/KotlinVersion;-><clinit>()V\nHSPLkotlin/KotlinVersion;-><init>(III)V\nPLkotlin/KotlinVersion;-><init>(III)V\nHSPLkotlin/KotlinVersion;->compareTo(Lkotlin/KotlinVersion;)I\nPLkotlin/KotlinVersion;->compareTo(Lkotlin/KotlinVersion;)I\nLkotlin/KotlinVersion$Companion;\nHSPLkotlin/KotlinVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/KotlinVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/KotlinVersionCurrentValue;\nHSPLkotlin/KotlinVersionCurrentValue;-><clinit>()V\nPLkotlin/KotlinVersionCurrentValue;-><clinit>()V\nHSPLkotlin/KotlinVersionCurrentValue;-><init>()V\nPLkotlin/KotlinVersionCurrentValue;-><init>()V\nHSPLkotlin/KotlinVersionCurrentValue;->get()Lkotlin/KotlinVersion;\nPLkotlin/KotlinVersionCurrentValue;->get()Lkotlin/KotlinVersion;\nLkotlin/Lazy;\nLkotlin/LazyKt;\nLkotlin/LazyKt__LazyJVMKt;\nHSPLkotlin/LazyKt__LazyJVMKt;->lazy(Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;\nHPLkotlin/LazyKt__LazyJVMKt;->lazy(Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;\nHSPLkotlin/LazyKt__LazyJVMKt;->lazy(Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;\nHPLkotlin/LazyKt__LazyJVMKt;->lazy(Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;\nLkotlin/LazyKt__LazyJVMKt$WhenMappings;\nHSPLkotlin/LazyKt__LazyJVMKt$WhenMappings;-><clinit>()V\nPLkotlin/LazyKt__LazyJVMKt$WhenMappings;-><clinit>()V\nLkotlin/LazyKt__LazyKt;\nLkotlin/LazyThreadSafetyMode;\nHSPLkotlin/LazyThreadSafetyMode;-><clinit>()V\nPLkotlin/LazyThreadSafetyMode;-><clinit>()V\nHSPLkotlin/LazyThreadSafetyMode;-><init>(Ljava/lang/String;I)V\nPLkotlin/LazyThreadSafetyMode;-><init>(Ljava/lang/String;I)V\nHSPLkotlin/LazyThreadSafetyMode;->values()[Lkotlin/LazyThreadSafetyMode;\nPLkotlin/LazyThreadSafetyMode;->values()[Lkotlin/LazyThreadSafetyMode;\nLkotlin/NoWhenBranchMatchedException;\nLkotlin/Pair;\nHSPLkotlin/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHPLkotlin/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLkotlin/Pair;->component1()Ljava/lang/Object;\nPLkotlin/Pair;->component1()Ljava/lang/Object;\nHSPLkotlin/Pair;->component2()Ljava/lang/Object;\nPLkotlin/Pair;->component2()Ljava/lang/Object;\nHSPLkotlin/Pair;->getFirst()Ljava/lang/Object;\nPLkotlin/Pair;->getFirst()Ljava/lang/Object;\nHSPLkotlin/Pair;->getSecond()Ljava/lang/Object;\nPLkotlin/Pair;->getSecond()Ljava/lang/Object;\nLkotlin/Result;\nHSPLkotlin/Result;-><clinit>()V\nPLkotlin/Result;-><clinit>()V\nHSPLkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;\nHPLkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;\nLkotlin/Result$Companion;\nHSPLkotlin/Result$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/Result$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/Result$Failure;\nHSPLkotlin/Result$Failure;-><init>(Ljava/lang/Throwable;)V\nPLkotlin/Result$Failure;-><init>(Ljava/lang/Throwable;)V\nLkotlin/ResultKt;\nHSPLkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;\nHPLkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;\nHSPLkotlin/ResultKt;->throwOnFailure(Ljava/lang/Object;)V\nHPLkotlin/ResultKt;->throwOnFailure(Ljava/lang/Object;)V\nLkotlin/SafePublicationLazyImpl;\nHSPLkotlin/SafePublicationLazyImpl;-><clinit>()V\nPLkotlin/SafePublicationLazyImpl;-><clinit>()V\nHSPLkotlin/SafePublicationLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;)V\nHPLkotlin/SafePublicationLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/SafePublicationLazyImpl;->getValue()Ljava/lang/Object;\nHPLkotlin/SafePublicationLazyImpl;->getValue()Ljava/lang/Object;\nLkotlin/SafePublicationLazyImpl$Companion;\nHSPLkotlin/SafePublicationLazyImpl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/SafePublicationLazyImpl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/SynchronizedLazyImpl;\nHSPLkotlin/SynchronizedLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;Ljava/lang/Object;)V\nHPLkotlin/SynchronizedLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;Ljava/lang/Object;)V\nHSPLkotlin/SynchronizedLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;Ljava/lang/Object;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/SynchronizedLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;Ljava/lang/Object;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/SynchronizedLazyImpl;->getValue()Ljava/lang/Object;\nHPLkotlin/SynchronizedLazyImpl;->getValue()Ljava/lang/Object;\nHSPLkotlin/SynchronizedLazyImpl;->isInitialized()Z\nPLkotlin/SynchronizedLazyImpl;->isInitialized()Z\nLkotlin/UByte;\nHSPLkotlin/UByte;-><clinit>()V\nPLkotlin/UByte;-><clinit>()V\nLkotlin/UByte$Companion;\nHSPLkotlin/UByte$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/UByte$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/UByteArray;\nLkotlin/UInt;\nHSPLkotlin/UInt;-><clinit>()V\nPLkotlin/UInt;-><clinit>()V\nLkotlin/UInt$Companion;\nHSPLkotlin/UInt$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/UInt$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/UIntArray;\nLkotlin/ULong;\nHSPLkotlin/ULong;-><clinit>()V\nPLkotlin/ULong;-><clinit>()V\nHSPLkotlin/ULong;->equals-impl0(JJ)Z\nHPLkotlin/ULong;->equals-impl0(JJ)Z\nLkotlin/ULong$Companion;\nHSPLkotlin/ULong$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/ULong$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/ULongArray;\nLkotlin/UNINITIALIZED_VALUE;\nHSPLkotlin/UNINITIALIZED_VALUE;-><clinit>()V\nPLkotlin/UNINITIALIZED_VALUE;-><clinit>()V\nHSPLkotlin/UNINITIALIZED_VALUE;-><init>()V\nPLkotlin/UNINITIALIZED_VALUE;-><init>()V\nLkotlin/UShort;\nHSPLkotlin/UShort;-><clinit>()V\nPLkotlin/UShort;-><clinit>()V\nLkotlin/UShort$Companion;\nHSPLkotlin/UShort$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/UShort$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/UShortArray;\nLkotlin/UninitializedPropertyAccessException;\nLkotlin/Unit;\nHSPLkotlin/Unit;-><clinit>()V\nPLkotlin/Unit;-><clinit>()V\nHSPLkotlin/Unit;-><init>()V\nPLkotlin/Unit;-><init>()V\nLkotlin/UnsafeLazyImpl;\nHSPLkotlin/UnsafeLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLkotlin/UnsafeLazyImpl;-><init>(Lkotlin/jvm/functions/Function0;)V\nLkotlin/UnsignedKt;\nHSPLkotlin/UnsignedKt;->ulongToDouble(J)D\nPLkotlin/UnsignedKt;->ulongToDouble(J)D\nLkotlin/collections/AbstractCollection;\nHSPLkotlin/collections/AbstractCollection;-><init>()V\nHPLkotlin/collections/AbstractCollection;-><init>()V\nHSPLkotlin/collections/AbstractCollection;->isEmpty()Z\nPLkotlin/collections/AbstractCollection;->isEmpty()Z\nHSPLkotlin/collections/AbstractCollection;->size()I\nHPLkotlin/collections/AbstractCollection;->size()I\nLkotlin/collections/AbstractList;\nHSPLkotlin/collections/AbstractList;-><clinit>()V\nPLkotlin/collections/AbstractList;-><clinit>()V\nHSPLkotlin/collections/AbstractList;-><init>()V\nPLkotlin/collections/AbstractList;-><init>()V\nHSPLkotlin/collections/AbstractList;->equals(Ljava/lang/Object;)Z\nHPLkotlin/collections/AbstractList;->equals(Ljava/lang/Object;)Z\nLkotlin/collections/AbstractList$Companion;\nHSPLkotlin/collections/AbstractList$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/AbstractList$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/collections/AbstractList$Companion;->checkBoundsIndexes$kotlin_stdlib(III)V\nHPLkotlin/collections/AbstractList$Companion;->checkBoundsIndexes$kotlin_stdlib(III)V\nHSPLkotlin/collections/AbstractList$Companion;->checkElementIndex$kotlin_stdlib(II)V\nPLkotlin/collections/AbstractList$Companion;->checkElementIndex$kotlin_stdlib(II)V\nHSPLkotlin/collections/AbstractList$Companion;->orderedEquals$kotlin_stdlib(Ljava/util/Collection;Ljava/util/Collection;)Z\nHPLkotlin/collections/AbstractList$Companion;->orderedEquals$kotlin_stdlib(Ljava/util/Collection;Ljava/util/Collection;)Z\nLkotlin/collections/AbstractMap;\nHSPLkotlin/collections/AbstractMap;-><clinit>()V\nPLkotlin/collections/AbstractMap;-><clinit>()V\nHSPLkotlin/collections/AbstractMap;-><init>()V\nHPLkotlin/collections/AbstractMap;-><init>()V\nHSPLkotlin/collections/AbstractMap;->containsEntry$kotlin_stdlib(Ljava/util/Map$Entry;)Z\nHPLkotlin/collections/AbstractMap;->containsEntry$kotlin_stdlib(Ljava/util/Map$Entry;)Z\nHSPLkotlin/collections/AbstractMap;->entrySet()Ljava/util/Set;\nPLkotlin/collections/AbstractMap;->entrySet()Ljava/util/Set;\nHSPLkotlin/collections/AbstractMap;->equals(Ljava/lang/Object;)Z\nHPLkotlin/collections/AbstractMap;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/collections/AbstractMap;->size()I\nHPLkotlin/collections/AbstractMap;->size()I\nLkotlin/collections/AbstractMap$Companion;\nHSPLkotlin/collections/AbstractMap$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/AbstractMap$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/collections/AbstractMutableList;\nHSPLkotlin/collections/AbstractMutableList;-><init>()V\nHPLkotlin/collections/AbstractMutableList;-><init>()V\nHSPLkotlin/collections/AbstractMutableList;->size()I\nHPLkotlin/collections/AbstractMutableList;->size()I\nLkotlin/collections/AbstractMutableMap;\nHSPLkotlin/collections/AbstractMutableMap;-><init>()V\nHPLkotlin/collections/AbstractMutableMap;-><init>()V\nHSPLkotlin/collections/AbstractMutableMap;->size()I\nPLkotlin/collections/AbstractMutableMap;->size()I\nLkotlin/collections/AbstractMutableSet;\nHSPLkotlin/collections/AbstractMutableSet;-><init>()V\nPLkotlin/collections/AbstractMutableSet;-><init>()V\nLkotlin/collections/AbstractSet;\nHSPLkotlin/collections/AbstractSet;-><clinit>()V\nPLkotlin/collections/AbstractSet;-><clinit>()V\nHSPLkotlin/collections/AbstractSet;-><init>()V\nPLkotlin/collections/AbstractSet;-><init>()V\nHSPLkotlin/collections/AbstractSet;->equals(Ljava/lang/Object;)Z\nPLkotlin/collections/AbstractSet;->equals(Ljava/lang/Object;)Z\nLkotlin/collections/AbstractSet$Companion;\nHSPLkotlin/collections/AbstractSet$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/AbstractSet$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/collections/AbstractSet$Companion;->setEquals$kotlin_stdlib(Ljava/util/Set;Ljava/util/Set;)Z\nPLkotlin/collections/AbstractSet$Companion;->setEquals$kotlin_stdlib(Ljava/util/Set;Ljava/util/Set;)Z\nLkotlin/collections/ArrayAsCollection;\nHSPLkotlin/collections/ArrayAsCollection;-><init>([Ljava/lang/Object;Z)V\nPLkotlin/collections/ArrayAsCollection;-><init>([Ljava/lang/Object;Z)V\nHSPLkotlin/collections/ArrayAsCollection;->toArray()[Ljava/lang/Object;\nHPLkotlin/collections/ArrayAsCollection;->toArray()[Ljava/lang/Object;\nLkotlin/collections/ArrayDeque;\nHSPLkotlin/collections/ArrayDeque;-><clinit>()V\nPLkotlin/collections/ArrayDeque;-><clinit>()V\nHSPLkotlin/collections/ArrayDeque;-><init>()V\nHPLkotlin/collections/ArrayDeque;-><init>()V\nHSPLkotlin/collections/ArrayDeque;->addFirst(Ljava/lang/Object;)V\nPLkotlin/collections/ArrayDeque;->addFirst(Ljava/lang/Object;)V\nHSPLkotlin/collections/ArrayDeque;->addLast(Ljava/lang/Object;)V\nHPLkotlin/collections/ArrayDeque;->addLast(Ljava/lang/Object;)V\nHSPLkotlin/collections/ArrayDeque;->ensureCapacity(I)V\nHPLkotlin/collections/ArrayDeque;->ensureCapacity(I)V\nHSPLkotlin/collections/ArrayDeque;->first()Ljava/lang/Object;\nHPLkotlin/collections/ArrayDeque;->first()Ljava/lang/Object;\nHSPLkotlin/collections/ArrayDeque;->get(I)Ljava/lang/Object;\nHPLkotlin/collections/ArrayDeque;->get(I)Ljava/lang/Object;\nHSPLkotlin/collections/ArrayDeque;->getSize()I\nHPLkotlin/collections/ArrayDeque;->getSize()I\nHSPLkotlin/collections/ArrayDeque;->incremented(I)I\nHPLkotlin/collections/ArrayDeque;->incremented(I)I\nHSPLkotlin/collections/ArrayDeque;->indexOf(Ljava/lang/Object;)I\nHPLkotlin/collections/ArrayDeque;->indexOf(Ljava/lang/Object;)I\nHSPLkotlin/collections/ArrayDeque;->isEmpty()Z\nHPLkotlin/collections/ArrayDeque;->isEmpty()Z\nHSPLkotlin/collections/ArrayDeque;->positiveMod(I)I\nHPLkotlin/collections/ArrayDeque;->positiveMod(I)I\nHSPLkotlin/collections/ArrayDeque;->remove(Ljava/lang/Object;)Z\nPLkotlin/collections/ArrayDeque;->remove(Ljava/lang/Object;)Z\nHSPLkotlin/collections/ArrayDeque;->removeAt(I)Ljava/lang/Object;\nHPLkotlin/collections/ArrayDeque;->removeAt(I)Ljava/lang/Object;\nHSPLkotlin/collections/ArrayDeque;->removeFirst()Ljava/lang/Object;\nHPLkotlin/collections/ArrayDeque;->removeFirst()Ljava/lang/Object;\nHSPLkotlin/collections/ArrayDeque;->removeFirstOrNull()Ljava/lang/Object;\nPLkotlin/collections/ArrayDeque;->removeFirstOrNull()Ljava/lang/Object;\nHSPLkotlin/collections/ArrayDeque;->removeLast()Ljava/lang/Object;\nPLkotlin/collections/ArrayDeque;->removeLast()Ljava/lang/Object;\nHSPLkotlin/collections/ArrayDeque;->removeLastOrNull()Ljava/lang/Object;\nPLkotlin/collections/ArrayDeque;->removeLastOrNull()Ljava/lang/Object;\nLkotlin/collections/ArrayDeque$Companion;\nHSPLkotlin/collections/ArrayDeque$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/ArrayDeque$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/collections/ArrayDeque$Companion;->newCapacity$kotlin_stdlib(II)I\nPLkotlin/collections/ArrayDeque$Companion;->newCapacity$kotlin_stdlib(II)I\nLkotlin/collections/ArraysKt;\nHSPLkotlin/collections/ArraysKt;->copyInto$default([B[BIII)V\nPLkotlin/collections/ArraysKt;->copyInto$default([B[BIII)V\nHSPLkotlin/collections/ArraysKt;->copyInto$default([F[F)V\nPLkotlin/collections/ArraysKt;->copyInto$default([F[F)V\nHSPLkotlin/collections/ArraysKt;->copyInto$default([I[III)V\nPLkotlin/collections/ArraysKt;->copyInto$default([I[III)V\nHSPLkotlin/collections/ArraysKt;->copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;II)[Ljava/lang/Object;\nPLkotlin/collections/ArraysKt;->copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;II)[Ljava/lang/Object;\nHSPLkotlin/collections/ArraysKt;->copyInto([C[CIII)V\nPLkotlin/collections/ArraysKt;->copyInto([C[CIII)V\nHSPLkotlin/collections/ArraysKt;->copyInto([I[IIII)V\nHPLkotlin/collections/ArraysKt;->copyInto([I[IIII)V\nHSPLkotlin/collections/ArraysKt;->fill$default([II)V\nPLkotlin/collections/ArraysKt;->fill$default([II)V\nHSPLkotlin/collections/ArraysKt;->fill$default([Ljava/lang/Object;Lkotlinx/coroutines/internal/Symbol;)V\nHPLkotlin/collections/ArraysKt;->fill$default([Ljava/lang/Object;Lkotlinx/coroutines/internal/Symbol;)V\nHSPLkotlin/collections/ArraysKt;->sortWith([Ljava/lang/Object;Ljava/util/Comparator;I)V\nPLkotlin/collections/ArraysKt;->sortWith([Ljava/lang/Object;Ljava/util/Comparator;I)V\nLkotlin/collections/ArraysKt__ArraysJVMKt;\nHSPLkotlin/collections/ArraysKt__ArraysJVMKt;->copyOfRangeToIndexCheck(II)V\nPLkotlin/collections/ArraysKt__ArraysJVMKt;->copyOfRangeToIndexCheck(II)V\nLkotlin/collections/ArraysKt__ArraysKt;\nLkotlin/collections/ArraysKt___ArraysJvmKt;\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->asList([Ljava/lang/Object;)Ljava/util/List;\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->asList([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([B[BIIIILjava/lang/Object;)[B\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([B[BIIIILjava/lang/Object;)[B\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([F[FIIIILjava/lang/Object;)[F\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([F[FIIIILjava/lang/Object;)[F\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([I[IIIIILjava/lang/Object;)[I\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([I[IIIIILjava/lang/Object;)[I\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/lang/Object;)[Ljava/lang/Object;\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/lang/Object;)[Ljava/lang/Object;\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([B[BIII)[B\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([B[BIII)[B\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([C[CIII)[C\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([C[CIII)[C\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([F[FIII)[F\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([F[FIII)[F\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([I[IIII)[I\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([I[IIII)[I\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([Ljava/lang/Object;[Ljava/lang/Object;III)[Ljava/lang/Object;\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyInto([Ljava/lang/Object;[Ljava/lang/Object;III)[Ljava/lang/Object;\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyOfRange([BII)[B\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyOfRange([BII)[B\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill$default([IIIIILjava/lang/Object;)V\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill$default([IIIIILjava/lang/Object;)V\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill$default([Ljava/lang/Object;Ljava/lang/Object;IIILjava/lang/Object;)V\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill$default([Ljava/lang/Object;Ljava/lang/Object;IIILjava/lang/Object;)V\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill([IIII)V\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill([IIII)V\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill([Ljava/lang/Object;Ljava/lang/Object;II)V\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->fill([Ljava/lang/Object;Ljava/lang/Object;II)V\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->plus([II)[I\nPLkotlin/collections/ArraysKt___ArraysJvmKt;->plus([II)[I\nHSPLkotlin/collections/ArraysKt___ArraysJvmKt;->sortWith([Ljava/lang/Object;Ljava/util/Comparator;II)V\nHPLkotlin/collections/ArraysKt___ArraysJvmKt;->sortWith([Ljava/lang/Object;Ljava/util/Comparator;II)V\nLkotlin/collections/ArraysKt___ArraysKt;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->asIterable([Ljava/lang/Object;)Ljava/lang/Iterable;\nPLkotlin/collections/ArraysKt___ArraysKt;->asIterable([Ljava/lang/Object;)Ljava/lang/Iterable;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->filterNotNull([Ljava/lang/Object;)Ljava/util/List;\nPLkotlin/collections/ArraysKt___ArraysKt;->filterNotNull([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->filterNotNullTo([Ljava/lang/Object;Ljava/util/Collection;)Ljava/util/Collection;\nPLkotlin/collections/ArraysKt___ArraysKt;->filterNotNullTo([Ljava/lang/Object;Ljava/util/Collection;)Ljava/util/Collection;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->getLastIndex([I)I\nPLkotlin/collections/ArraysKt___ArraysKt;->getLastIndex([I)I\nHSPLkotlin/collections/ArraysKt___ArraysKt;->getLastIndex([Ljava/lang/Object;)I\nHPLkotlin/collections/ArraysKt___ArraysKt;->getLastIndex([Ljava/lang/Object;)I\nHSPLkotlin/collections/ArraysKt___ArraysKt;->getOrNull([II)Ljava/lang/Integer;\nPLkotlin/collections/ArraysKt___ArraysKt;->getOrNull([II)Ljava/lang/Integer;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->getOrNull([Ljava/lang/Object;I)Ljava/lang/Object;\nPLkotlin/collections/ArraysKt___ArraysKt;->getOrNull([Ljava/lang/Object;I)Ljava/lang/Object;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I\nHPLkotlin/collections/ArraysKt___ArraysKt;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I\nHSPLkotlin/collections/ArraysKt___ArraysKt;->map([Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/util/List;\nPLkotlin/collections/ArraysKt___ArraysKt;->map([Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/util/List;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->toCollection([Ljava/lang/Object;Ljava/util/Collection;)Ljava/util/Collection;\nPLkotlin/collections/ArraysKt___ArraysKt;->toCollection([Ljava/lang/Object;Ljava/util/Collection;)Ljava/util/Collection;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->toList([Ljava/lang/Object;)Ljava/util/List;\nPLkotlin/collections/ArraysKt___ArraysKt;->toList([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->toMutableList([Ljava/lang/Object;)Ljava/util/List;\nPLkotlin/collections/ArraysKt___ArraysKt;->toMutableList([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->toSet([Ljava/lang/Object;)Ljava/util/Set;\nPLkotlin/collections/ArraysKt___ArraysKt;->toSet([Ljava/lang/Object;)Ljava/util/Set;\nHSPLkotlin/collections/ArraysKt___ArraysKt;->withIndex([Ljava/lang/Object;)Ljava/lang/Iterable;\nPLkotlin/collections/ArraysKt___ArraysKt;->withIndex([Ljava/lang/Object;)Ljava/lang/Iterable;\nLkotlin/collections/ArraysKt___ArraysKt$asIterable$$inlined$Iterable$1;\nHSPLkotlin/collections/ArraysKt___ArraysKt$asIterable$$inlined$Iterable$1;-><init>([Ljava/lang/Object;)V\nPLkotlin/collections/ArraysKt___ArraysKt$asIterable$$inlined$Iterable$1;-><init>([Ljava/lang/Object;)V\nHSPLkotlin/collections/ArraysKt___ArraysKt$asIterable$$inlined$Iterable$1;->iterator()Ljava/util/Iterator;\nPLkotlin/collections/ArraysKt___ArraysKt$asIterable$$inlined$Iterable$1;->iterator()Ljava/util/Iterator;\nLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;\nHSPLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;-><init>([Ljava/lang/Object;)V\nPLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;-><init>([Ljava/lang/Object;)V\nHSPLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;->invoke()Ljava/lang/Object;\nPLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;->invoke()Ljava/util/Iterator;\nPLkotlin/collections/ArraysKt___ArraysKt$withIndex$1;->invoke()Ljava/util/Iterator;\nLkotlin/collections/CollectionsKt;\nHSPLkotlin/collections/CollectionsKt;->addAll(Ljava/util/Collection;Ljava/lang/Iterable;)V\nPLkotlin/collections/CollectionsKt;->addAll(Ljava/util/Collection;Ljava/lang/Iterable;)V\nHSPLkotlin/collections/CollectionsKt;->addAll(Ljava/util/List;[Ljava/lang/Object;)V\nPLkotlin/collections/CollectionsKt;->addAll(Ljava/util/List;[Ljava/lang/Object;)V\nHSPLkotlin/collections/CollectionsKt;->binarySearch$default(Ljava/util/List;Ljava/lang/Comparable;)I\nPLkotlin/collections/CollectionsKt;->binarySearch$default(Ljava/util/List;Ljava/lang/Comparable;)I\nHSPLkotlin/collections/CollectionsKt;->collectionSizeOrDefault(Ljava/lang/Iterable;)I\nHPLkotlin/collections/CollectionsKt;->collectionSizeOrDefault(Ljava/lang/Iterable;)I\nHSPLkotlin/collections/CollectionsKt;->filterNotNull(Ljava/util/List;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt;->filterNotNull(Ljava/util/List;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt;->toBooleanArray(Ljava/util/List;)[Z\nPLkotlin/collections/CollectionsKt;->toBooleanArray(Ljava/util/List;)[Z\nHSPLkotlin/collections/CollectionsKt;->toHashSet(Ljava/util/List;)Ljava/util/HashSet;\nPLkotlin/collections/CollectionsKt;->toHashSet(Ljava/util/List;)Ljava/util/HashSet;\nHSPLkotlin/collections/CollectionsKt;->toIntArray(Ljava/util/List;)[I\nPLkotlin/collections/CollectionsKt;->toIntArray(Ljava/util/List;)[I\nLkotlin/collections/CollectionsKt__CollectionsJVMKt;\nHSPLkotlin/collections/CollectionsKt__CollectionsJVMKt;->build(Ljava/util/List;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt__CollectionsJVMKt;->build(Ljava/util/List;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt__CollectionsJVMKt;->copyToArrayOfAny([Ljava/lang/Object;Z)[Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt__CollectionsJVMKt;->copyToArrayOfAny([Ljava/lang/Object;Z)[Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt__CollectionsJVMKt;->listOf(Ljava/lang/Object;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt__CollectionsJVMKt;->listOf(Ljava/lang/Object;)Ljava/util/List;\nLkotlin/collections/CollectionsKt__CollectionsKt;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->arrayListOf([Ljava/lang/Object;)Ljava/util/ArrayList;\nPLkotlin/collections/CollectionsKt__CollectionsKt;->arrayListOf([Ljava/lang/Object;)Ljava/util/ArrayList;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->asCollection([Ljava/lang/Object;)Ljava/util/Collection;\nPLkotlin/collections/CollectionsKt__CollectionsKt;->asCollection([Ljava/lang/Object;)Ljava/util/Collection;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->binarySearch$default(Ljava/util/List;Ljava/lang/Comparable;IIILjava/lang/Object;)I\nPLkotlin/collections/CollectionsKt__CollectionsKt;->binarySearch$default(Ljava/util/List;Ljava/lang/Comparable;IIILjava/lang/Object;)I\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->binarySearch(Ljava/util/List;Ljava/lang/Comparable;II)I\nPLkotlin/collections/CollectionsKt__CollectionsKt;->binarySearch(Ljava/util/List;Ljava/lang/Comparable;II)I\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->getLastIndex(Ljava/util/List;)I\nHPLkotlin/collections/CollectionsKt__CollectionsKt;->getLastIndex(Ljava/util/List;)I\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->listOf([Ljava/lang/Object;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt__CollectionsKt;->listOf([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->listOfNotNull([Ljava/lang/Object;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt__CollectionsKt;->listOfNotNull([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->mutableListOf([Ljava/lang/Object;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt__CollectionsKt;->mutableListOf([Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->optimizeReadOnlyList(Ljava/util/List;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt__CollectionsKt;->optimizeReadOnlyList(Ljava/util/List;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt__CollectionsKt;->rangeCheck$CollectionsKt__CollectionsKt(III)V\nPLkotlin/collections/CollectionsKt__CollectionsKt;->rangeCheck$CollectionsKt__CollectionsKt(III)V\nLkotlin/collections/CollectionsKt__IterablesKt;\nHSPLkotlin/collections/CollectionsKt__IterablesKt;->collectionSizeOrDefault(Ljava/lang/Iterable;I)I\nHPLkotlin/collections/CollectionsKt__IterablesKt;->collectionSizeOrDefault(Ljava/lang/Iterable;I)I\nHSPLkotlin/collections/CollectionsKt__IterablesKt;->collectionSizeOrNull(Ljava/lang/Iterable;)Ljava/lang/Integer;\nPLkotlin/collections/CollectionsKt__IterablesKt;->collectionSizeOrNull(Ljava/lang/Iterable;)Ljava/lang/Integer;\nHSPLkotlin/collections/CollectionsKt__IterablesKt;->flatten(Ljava/lang/Iterable;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt__IterablesKt;->flatten(Ljava/lang/Iterable;)Ljava/util/List;\nLkotlin/collections/CollectionsKt__IteratorsJVMKt;\nLkotlin/collections/CollectionsKt__IteratorsKt;\nLkotlin/collections/CollectionsKt__MutableCollectionsJVMKt;\nHSPLkotlin/collections/CollectionsKt__MutableCollectionsJVMKt;->sort(Ljava/util/List;)V\nPLkotlin/collections/CollectionsKt__MutableCollectionsJVMKt;->sort(Ljava/util/List;)V\nHSPLkotlin/collections/CollectionsKt__MutableCollectionsJVMKt;->sortWith(Ljava/util/List;Ljava/util/Comparator;)V\nHPLkotlin/collections/CollectionsKt__MutableCollectionsJVMKt;->sortWith(Ljava/util/List;Ljava/util/Comparator;)V\nLkotlin/collections/CollectionsKt__MutableCollectionsKt;\nHSPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->addAll(Ljava/util/Collection;Ljava/lang/Iterable;)Z\nPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->addAll(Ljava/util/Collection;Ljava/lang/Iterable;)Z\nHSPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z\nPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z\nHSPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->removeFirst(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->removeFirst(Ljava/util/List;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->removeFirstOrNull(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt__MutableCollectionsKt;->removeFirstOrNull(Ljava/util/List;)Ljava/lang/Object;\nLkotlin/collections/CollectionsKt__ReversedViewsKt;\nLkotlin/collections/CollectionsKt___CollectionsJvmKt;\nLkotlin/collections/CollectionsKt___CollectionsKt;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->asSequence(Ljava/lang/Iterable;)Lkotlin/sequences/Sequence;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->filterNotNull(Ljava/lang/Iterable;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->filterNotNull(Ljava/lang/Iterable;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->filterNotNullTo(Ljava/lang/Iterable;Ljava/util/Collection;)Ljava/util/Collection;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->filterNotNullTo(Ljava/lang/Iterable;Ljava/util/Collection;)Ljava/util/Collection;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->first(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->first(Ljava/util/List;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->firstOrNull(Ljava/lang/Iterable;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->firstOrNull(Ljava/lang/Iterable;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->firstOrNull(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->firstOrNull(Ljava/util/List;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->getOrNull(Ljava/util/List;I)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->getOrNull(Ljava/util/List;I)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->last(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->last(Ljava/util/List;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->lastOrNull(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->lastOrNull(Ljava/util/List;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->minus(Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->minus(Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->plus(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->plus(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->plus(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->plus(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->singleOrNull(Ljava/util/List;)Ljava/lang/Object;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->singleOrNull(Ljava/util/List;)Ljava/lang/Object;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->sortedWith(Ljava/lang/Iterable;Ljava/util/Comparator;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->sortedWith(Ljava/lang/Iterable;Ljava/util/Comparator;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toBooleanArray(Ljava/util/Collection;)[Z\nPLkotlin/collections/CollectionsKt___CollectionsKt;->toBooleanArray(Ljava/util/Collection;)[Z\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toCollection(Ljava/lang/Iterable;Ljava/util/Collection;)Ljava/util/Collection;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->toCollection(Ljava/lang/Iterable;Ljava/util/Collection;)Ljava/util/Collection;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toHashSet(Ljava/lang/Iterable;)Ljava/util/HashSet;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->toHashSet(Ljava/lang/Iterable;)Ljava/util/HashSet;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toIntArray(Ljava/util/Collection;)[I\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->toIntArray(Ljava/util/Collection;)[I\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toList(Ljava/lang/Iterable;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->toList(Ljava/lang/Iterable;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toMutableList(Ljava/lang/Iterable;)Ljava/util/List;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->toMutableList(Ljava/lang/Iterable;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toMutableList(Ljava/util/Collection;)Ljava/util/List;\nHPLkotlin/collections/CollectionsKt___CollectionsKt;->toMutableList(Ljava/util/Collection;)Ljava/util/List;\nHSPLkotlin/collections/CollectionsKt___CollectionsKt;->toSet(Ljava/lang/Iterable;)Ljava/util/Set;\nPLkotlin/collections/CollectionsKt___CollectionsKt;->toSet(Ljava/lang/Iterable;)Ljava/util/Set;\nPLkotlin/collections/CollectionsKt___CollectionsKt$asSequence$$inlined$Sequence$1;-><init>(Ljava/lang/Iterable;)V\nPLkotlin/collections/CollectionsKt___CollectionsKt$asSequence$$inlined$Sequence$1;->iterator()Ljava/util/Iterator;\nLkotlin/collections/EmptyIterator;\nHSPLkotlin/collections/EmptyIterator;-><clinit>()V\nPLkotlin/collections/EmptyIterator;-><clinit>()V\nHSPLkotlin/collections/EmptyIterator;-><init>()V\nPLkotlin/collections/EmptyIterator;-><init>()V\nHSPLkotlin/collections/EmptyIterator;->hasNext()Z\nPLkotlin/collections/EmptyIterator;->hasNext()Z\nLkotlin/collections/EmptyList;\nHSPLkotlin/collections/EmptyList;-><clinit>()V\nPLkotlin/collections/EmptyList;-><clinit>()V\nHSPLkotlin/collections/EmptyList;-><init>()V\nPLkotlin/collections/EmptyList;-><init>()V\nHSPLkotlin/collections/EmptyList;->contains(Ljava/lang/Object;)Z\nPLkotlin/collections/EmptyList;->contains(Ljava/lang/Object;)Z\nHSPLkotlin/collections/EmptyList;->equals(Ljava/lang/Object;)Z\nHPLkotlin/collections/EmptyList;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/collections/EmptyList;->hashCode()I\nHPLkotlin/collections/EmptyList;->hashCode()I\nHSPLkotlin/collections/EmptyList;->isEmpty()Z\nHPLkotlin/collections/EmptyList;->isEmpty()Z\nHSPLkotlin/collections/EmptyList;->iterator()Ljava/util/Iterator;\nPLkotlin/collections/EmptyList;->iterator()Ljava/util/Iterator;\nHSPLkotlin/collections/EmptyList;->size()I\nHPLkotlin/collections/EmptyList;->size()I\nHSPLkotlin/collections/EmptyList;->toArray()[Ljava/lang/Object;\nPLkotlin/collections/EmptyList;->toArray()[Ljava/lang/Object;\nLkotlin/collections/EmptyMap;\nHSPLkotlin/collections/EmptyMap;-><clinit>()V\nPLkotlin/collections/EmptyMap;-><clinit>()V\nHSPLkotlin/collections/EmptyMap;-><init>()V\nPLkotlin/collections/EmptyMap;-><init>()V\nHSPLkotlin/collections/EmptyMap;->containsKey(Ljava/lang/Object;)Z\nPLkotlin/collections/EmptyMap;->containsKey(Ljava/lang/Object;)Z\nHSPLkotlin/collections/EmptyMap;->entrySet()Ljava/util/Set;\nPLkotlin/collections/EmptyMap;->entrySet()Ljava/util/Set;\nHSPLkotlin/collections/EmptyMap;->equals(Ljava/lang/Object;)Z\nPLkotlin/collections/EmptyMap;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/collections/EmptyMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlin/collections/EmptyMap;->get(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/collections/EmptyMap;->isEmpty()Z\nPLkotlin/collections/EmptyMap;->isEmpty()Z\nHSPLkotlin/collections/EmptyMap;->keySet()Ljava/util/Set;\nPLkotlin/collections/EmptyMap;->keySet()Ljava/util/Set;\nHSPLkotlin/collections/EmptyMap;->size()I\nHPLkotlin/collections/EmptyMap;->size()I\nHSPLkotlin/collections/EmptyMap;->values()Ljava/util/Collection;\nPLkotlin/collections/EmptyMap;->values()Ljava/util/Collection;\nLkotlin/collections/EmptySet;\nHSPLkotlin/collections/EmptySet;-><clinit>()V\nPLkotlin/collections/EmptySet;-><clinit>()V\nHSPLkotlin/collections/EmptySet;-><init>()V\nPLkotlin/collections/EmptySet;-><init>()V\nHSPLkotlin/collections/EmptySet;->contains(Ljava/lang/Object;)Z\nPLkotlin/collections/EmptySet;->contains(Ljava/lang/Object;)Z\nHSPLkotlin/collections/EmptySet;->hashCode()I\nPLkotlin/collections/EmptySet;->hashCode()I\nHSPLkotlin/collections/EmptySet;->isEmpty()Z\nPLkotlin/collections/EmptySet;->isEmpty()Z\nHSPLkotlin/collections/EmptySet;->iterator()Ljava/util/Iterator;\nPLkotlin/collections/EmptySet;->iterator()Ljava/util/Iterator;\nHSPLkotlin/collections/EmptySet;->size()I\nPLkotlin/collections/EmptySet;->size()I\nLkotlin/collections/IndexedValue;\nHSPLkotlin/collections/IndexedValue;-><init>(ILjava/lang/Object;)V\nPLkotlin/collections/IndexedValue;-><init>(ILjava/lang/Object;)V\nHSPLkotlin/collections/IndexedValue;->getIndex()I\nPLkotlin/collections/IndexedValue;->getIndex()I\nHSPLkotlin/collections/IndexedValue;->getValue()Ljava/lang/Object;\nPLkotlin/collections/IndexedValue;->getValue()Ljava/lang/Object;\nLkotlin/collections/IndexingIterable;\nHSPLkotlin/collections/IndexingIterable;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLkotlin/collections/IndexingIterable;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/collections/IndexingIterable;->iterator()Ljava/util/Iterator;\nPLkotlin/collections/IndexingIterable;->iterator()Ljava/util/Iterator;\nLkotlin/collections/IndexingIterator;\nHSPLkotlin/collections/IndexingIterator;-><init>(Ljava/util/Iterator;)V\nPLkotlin/collections/IndexingIterator;-><init>(Ljava/util/Iterator;)V\nHSPLkotlin/collections/IndexingIterator;->hasNext()Z\nPLkotlin/collections/IndexingIterator;->hasNext()Z\nHSPLkotlin/collections/IndexingIterator;->next()Ljava/lang/Object;\nPLkotlin/collections/IndexingIterator;->next()Ljava/lang/Object;\nHSPLkotlin/collections/IndexingIterator;->next()Lkotlin/collections/IndexedValue;\nPLkotlin/collections/IndexingIterator;->next()Lkotlin/collections/IndexedValue;\nLkotlin/collections/IntIterator;\nHSPLkotlin/collections/IntIterator;-><init>()V\nHPLkotlin/collections/IntIterator;-><init>()V\nLkotlin/collections/MapWithDefault;\nLkotlin/collections/MapsKt;\nLkotlin/collections/MapsKt__MapWithDefaultKt;\nHSPLkotlin/collections/MapsKt__MapWithDefaultKt;->getOrImplicitDefaultNullable(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlin/collections/MapsKt__MapWithDefaultKt;->getOrImplicitDefaultNullable(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/collections/MapsKt__MapsJVMKt;\nHSPLkotlin/collections/MapsKt__MapsJVMKt;->mapCapacity(I)I\nPLkotlin/collections/MapsKt__MapsJVMKt;->mapCapacity(I)I\nHSPLkotlin/collections/MapsKt__MapsJVMKt;->mapOf(Lkotlin/Pair;)Ljava/util/Map;\nPLkotlin/collections/MapsKt__MapsJVMKt;->mapOf(Lkotlin/Pair;)Ljava/util/Map;\nLkotlin/collections/MapsKt__MapsKt;\nHSPLkotlin/collections/MapsKt__MapsKt;->emptyMap()Ljava/util/Map;\nHPLkotlin/collections/MapsKt__MapsKt;->emptyMap()Ljava/util/Map;\nHSPLkotlin/collections/MapsKt__MapsKt;->getValue(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/collections/MapsKt__MapsKt;->getValue(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/collections/MapsKt__MapsKt;->hashMapOf([Lkotlin/Pair;)Ljava/util/HashMap;\nPLkotlin/collections/MapsKt__MapsKt;->hashMapOf([Lkotlin/Pair;)Ljava/util/HashMap;\nHSPLkotlin/collections/MapsKt__MapsKt;->mapOf([Lkotlin/Pair;)Ljava/util/Map;\nPLkotlin/collections/MapsKt__MapsKt;->mapOf([Lkotlin/Pair;)Ljava/util/Map;\nHSPLkotlin/collections/MapsKt__MapsKt;->putAll(Ljava/util/Map;Ljava/lang/Iterable;)V\nPLkotlin/collections/MapsKt__MapsKt;->putAll(Ljava/util/Map;Ljava/lang/Iterable;)V\nHSPLkotlin/collections/MapsKt__MapsKt;->putAll(Ljava/util/Map;[Lkotlin/Pair;)V\nHPLkotlin/collections/MapsKt__MapsKt;->putAll(Ljava/util/Map;[Lkotlin/Pair;)V\nHSPLkotlin/collections/MapsKt__MapsKt;->toMap(Ljava/lang/Iterable;)Ljava/util/Map;\nPLkotlin/collections/MapsKt__MapsKt;->toMap(Ljava/lang/Iterable;)Ljava/util/Map;\nHSPLkotlin/collections/MapsKt__MapsKt;->toMap(Ljava/lang/Iterable;Ljava/util/Map;)Ljava/util/Map;\nPLkotlin/collections/MapsKt__MapsKt;->toMap(Ljava/lang/Iterable;Ljava/util/Map;)Ljava/util/Map;\nHSPLkotlin/collections/MapsKt__MapsKt;->toMap(Ljava/util/Map;)Ljava/util/Map;\nPLkotlin/collections/MapsKt__MapsKt;->toMap(Ljava/util/Map;)Ljava/util/Map;\nHSPLkotlin/collections/MapsKt__MapsKt;->toMap([Lkotlin/Pair;Ljava/util/Map;)Ljava/util/Map;\nPLkotlin/collections/MapsKt__MapsKt;->toMap([Lkotlin/Pair;Ljava/util/Map;)Ljava/util/Map;\nHSPLkotlin/collections/MapsKt__MapsKt;->toMutableMap(Ljava/util/Map;)Ljava/util/Map;\nHPLkotlin/collections/MapsKt__MapsKt;->toMutableMap(Ljava/util/Map;)Ljava/util/Map;\nLkotlin/collections/MapsKt___MapsJvmKt;\nLkotlin/collections/MapsKt___MapsKt;\nPLkotlin/collections/MapsKt___MapsKt;->asSequence(Ljava/util/Map;)Lkotlin/sequences/Sequence;\nLkotlin/collections/SetsKt;\nHSPLkotlin/collections/SetsKt;->build(Lkotlin/collections/builders/SetBuilder;)Ljava/util/Set;\nPLkotlin/collections/SetsKt;->build(Lkotlin/collections/builders/SetBuilder;)Ljava/util/Set;\nLkotlin/collections/SetsKt__SetsJVMKt;\nHSPLkotlin/collections/SetsKt__SetsJVMKt;->build(Ljava/util/Set;)Ljava/util/Set;\nPLkotlin/collections/SetsKt__SetsJVMKt;->build(Ljava/util/Set;)Ljava/util/Set;\nHSPLkotlin/collections/SetsKt__SetsJVMKt;->setOf(Ljava/lang/Object;)Ljava/util/Set;\nPLkotlin/collections/SetsKt__SetsJVMKt;->setOf(Ljava/lang/Object;)Ljava/util/Set;\nLkotlin/collections/SetsKt__SetsKt;\nHSPLkotlin/collections/SetsKt__SetsKt;->mutableSetOf([Ljava/lang/Object;)Ljava/util/Set;\nPLkotlin/collections/SetsKt__SetsKt;->mutableSetOf([Ljava/lang/Object;)Ljava/util/Set;\nHSPLkotlin/collections/SetsKt__SetsKt;->setOf([Ljava/lang/Object;)Ljava/util/Set;\nPLkotlin/collections/SetsKt__SetsKt;->setOf([Ljava/lang/Object;)Ljava/util/Set;\nLkotlin/collections/SetsKt___SetsKt;\nHSPLkotlin/collections/SetsKt___SetsKt;->plus(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;\nPLkotlin/collections/SetsKt___SetsKt;->plus(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;\nHSPLkotlin/collections/SetsKt___SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set;\nPLkotlin/collections/SetsKt___SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set;\nLkotlin/collections/builders/ListBuilder;\nHSPLkotlin/collections/builders/ListBuilder;-><clinit>()V\nPLkotlin/collections/builders/ListBuilder;-><clinit>()V\nHSPLkotlin/collections/builders/ListBuilder;-><init>()V\nPLkotlin/collections/builders/ListBuilder;-><init>()V\nHSPLkotlin/collections/builders/ListBuilder;-><init>(I)V\nPLkotlin/collections/builders/ListBuilder;-><init>(I)V\nHSPLkotlin/collections/builders/ListBuilder;-><init>([Ljava/lang/Object;IIZLkotlin/collections/builders/ListBuilder;Lkotlin/collections/builders/ListBuilder;)V\nPLkotlin/collections/builders/ListBuilder;-><init>([Ljava/lang/Object;IIZLkotlin/collections/builders/ListBuilder;Lkotlin/collections/builders/ListBuilder;)V\nHSPLkotlin/collections/builders/ListBuilder;->access$getArray$p(Lkotlin/collections/builders/ListBuilder;)[Ljava/lang/Object;\nPLkotlin/collections/builders/ListBuilder;->access$getArray$p(Lkotlin/collections/builders/ListBuilder;)[Ljava/lang/Object;\nHSPLkotlin/collections/builders/ListBuilder;->access$getLength$p(Lkotlin/collections/builders/ListBuilder;)I\nPLkotlin/collections/builders/ListBuilder;->access$getLength$p(Lkotlin/collections/builders/ListBuilder;)I\nHSPLkotlin/collections/builders/ListBuilder;->access$getOffset$p(Lkotlin/collections/builders/ListBuilder;)I\nPLkotlin/collections/builders/ListBuilder;->access$getOffset$p(Lkotlin/collections/builders/ListBuilder;)I\nHSPLkotlin/collections/builders/ListBuilder;->add(Ljava/lang/Object;)Z\nPLkotlin/collections/builders/ListBuilder;->add(Ljava/lang/Object;)Z\nHSPLkotlin/collections/builders/ListBuilder;->addAtInternal(ILjava/lang/Object;)V\nPLkotlin/collections/builders/ListBuilder;->addAtInternal(ILjava/lang/Object;)V\nHSPLkotlin/collections/builders/ListBuilder;->build()Ljava/util/List;\nPLkotlin/collections/builders/ListBuilder;->build()Ljava/util/List;\nHSPLkotlin/collections/builders/ListBuilder;->checkIsMutable()V\nPLkotlin/collections/builders/ListBuilder;->checkIsMutable()V\nHSPLkotlin/collections/builders/ListBuilder;->insertAtInternal(II)V\nPLkotlin/collections/builders/ListBuilder;->insertAtInternal(II)V\nHSPLkotlin/collections/builders/ListBuilder;->iterator()Ljava/util/Iterator;\nPLkotlin/collections/builders/ListBuilder;->iterator()Ljava/util/Iterator;\nLkotlin/collections/builders/ListBuilder$Companion;\nHSPLkotlin/collections/builders/ListBuilder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/builders/ListBuilder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/collections/builders/ListBuilder$Itr;\nHSPLkotlin/collections/builders/ListBuilder$Itr;-><init>(Lkotlin/collections/builders/ListBuilder;I)V\nPLkotlin/collections/builders/ListBuilder$Itr;-><init>(Lkotlin/collections/builders/ListBuilder;I)V\nHSPLkotlin/collections/builders/ListBuilder$Itr;->hasNext()Z\nPLkotlin/collections/builders/ListBuilder$Itr;->hasNext()Z\nHSPLkotlin/collections/builders/ListBuilder$Itr;->next()Ljava/lang/Object;\nPLkotlin/collections/builders/ListBuilder$Itr;->next()Ljava/lang/Object;\nLkotlin/collections/builders/ListBuilderKt;\nHSPLkotlin/collections/builders/ListBuilderKt;->arrayOfUninitializedElements(I)[Ljava/lang/Object;\nPLkotlin/collections/builders/ListBuilderKt;->arrayOfUninitializedElements(I)[Ljava/lang/Object;\nLkotlin/collections/builders/MapBuilder;\nHSPLkotlin/collections/builders/MapBuilder;-><clinit>()V\nPLkotlin/collections/builders/MapBuilder;-><clinit>()V\nHSPLkotlin/collections/builders/MapBuilder;-><init>()V\nPLkotlin/collections/builders/MapBuilder;-><init>()V\nHSPLkotlin/collections/builders/MapBuilder;-><init>(I)V\nPLkotlin/collections/builders/MapBuilder;-><init>(I)V\nHSPLkotlin/collections/builders/MapBuilder;->access$getEmpty$cp()Lkotlin/collections/builders/MapBuilder;\nPLkotlin/collections/builders/MapBuilder;->access$getEmpty$cp()Lkotlin/collections/builders/MapBuilder;\nHSPLkotlin/collections/builders/MapBuilder;->build()Ljava/util/Map;\nPLkotlin/collections/builders/MapBuilder;->build()Ljava/util/Map;\nHSPLkotlin/collections/builders/MapBuilder;->checkIsMutable$kotlin_stdlib()V\nPLkotlin/collections/builders/MapBuilder;->checkIsMutable$kotlin_stdlib()V\nHSPLkotlin/collections/builders/MapBuilder;->isEmpty()Z\nPLkotlin/collections/builders/MapBuilder;->isEmpty()Z\nHSPLkotlin/collections/builders/MapBuilder;->size()I\nPLkotlin/collections/builders/MapBuilder;->size()I\nLkotlin/collections/builders/MapBuilder$Companion;\nHSPLkotlin/collections/builders/MapBuilder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/builders/MapBuilder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/collections/builders/MapBuilder$Companion;->access$computeHashSize(Lkotlin/collections/builders/MapBuilder$Companion;I)I\nPLkotlin/collections/builders/MapBuilder$Companion;->access$computeHashSize(Lkotlin/collections/builders/MapBuilder$Companion;I)I\nHSPLkotlin/collections/builders/MapBuilder$Companion;->access$computeShift(Lkotlin/collections/builders/MapBuilder$Companion;I)I\nPLkotlin/collections/builders/MapBuilder$Companion;->access$computeShift(Lkotlin/collections/builders/MapBuilder$Companion;I)I\nLkotlin/collections/builders/SetBuilder;\nHSPLkotlin/collections/builders/SetBuilder;-><clinit>()V\nPLkotlin/collections/builders/SetBuilder;-><clinit>()V\nHSPLkotlin/collections/builders/SetBuilder;-><init>()V\nPLkotlin/collections/builders/SetBuilder;-><init>()V\nHSPLkotlin/collections/builders/SetBuilder;-><init>(Lkotlin/collections/builders/MapBuilder;)V\nPLkotlin/collections/builders/SetBuilder;-><init>(Lkotlin/collections/builders/MapBuilder;)V\nHSPLkotlin/collections/builders/SetBuilder;->build()Ljava/util/Set;\nPLkotlin/collections/builders/SetBuilder;->build()Ljava/util/Set;\nHSPLkotlin/collections/builders/SetBuilder;->getSize()I\nPLkotlin/collections/builders/SetBuilder;->getSize()I\nHSPLkotlin/collections/builders/SetBuilder;->isEmpty()Z\nPLkotlin/collections/builders/SetBuilder;->isEmpty()Z\nLkotlin/collections/builders/SetBuilder$Companion;\nHSPLkotlin/collections/builders/SetBuilder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/collections/builders/SetBuilder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/comparisons/ComparisonsKt;\nLkotlin/comparisons/ComparisonsKt__ComparisonsKt;\nHSPLkotlin/comparisons/ComparisonsKt__ComparisonsKt;->compareValues(Ljava/lang/Comparable;Ljava/lang/Comparable;)I\nHPLkotlin/comparisons/ComparisonsKt__ComparisonsKt;->compareValues(Ljava/lang/Comparable;Ljava/lang/Comparable;)I\nHSPLkotlin/comparisons/ComparisonsKt__ComparisonsKt;->naturalOrder()Ljava/util/Comparator;\nPLkotlin/comparisons/ComparisonsKt__ComparisonsKt;->naturalOrder()Ljava/util/Comparator;\nLkotlin/comparisons/ComparisonsKt___ComparisonsJvmKt;\nHSPLkotlin/comparisons/ComparisonsKt___ComparisonsJvmKt;->maxOf(F[F)F\nHPLkotlin/comparisons/ComparisonsKt___ComparisonsJvmKt;->maxOf(F[F)F\nHSPLkotlin/comparisons/ComparisonsKt___ComparisonsJvmKt;->minOf(F[F)F\nHPLkotlin/comparisons/ComparisonsKt___ComparisonsJvmKt;->minOf(F[F)F\nLkotlin/comparisons/ComparisonsKt___ComparisonsKt;\nLkotlin/comparisons/NaturalOrderComparator;\nHSPLkotlin/comparisons/NaturalOrderComparator;-><clinit>()V\nPLkotlin/comparisons/NaturalOrderComparator;-><clinit>()V\nHSPLkotlin/comparisons/NaturalOrderComparator;-><init>()V\nPLkotlin/comparisons/NaturalOrderComparator;-><init>()V\nHSPLkotlin/comparisons/NaturalOrderComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I\nPLkotlin/comparisons/NaturalOrderComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I\nHSPLkotlin/comparisons/NaturalOrderComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nPLkotlin/comparisons/NaturalOrderComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nLkotlin/coroutines/AbstractCoroutineContextElement;\nHSPLkotlin/coroutines/AbstractCoroutineContextElement;-><init>(Lkotlin/coroutines/CoroutineContext$Key;)V\nPLkotlin/coroutines/AbstractCoroutineContextElement;-><init>(Lkotlin/coroutines/CoroutineContext$Key;)V\nHSPLkotlin/coroutines/AbstractCoroutineContextElement;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlin/coroutines/AbstractCoroutineContextElement;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLkotlin/coroutines/AbstractCoroutineContextElement;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nPLkotlin/coroutines/AbstractCoroutineContextElement;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlin/coroutines/AbstractCoroutineContextElement;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nHPLkotlin/coroutines/AbstractCoroutineContextElement;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nHSPLkotlin/coroutines/AbstractCoroutineContextElement;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nPLkotlin/coroutines/AbstractCoroutineContextElement;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlin/coroutines/AbstractCoroutineContextElement;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nPLkotlin/coroutines/AbstractCoroutineContextElement;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/AbstractCoroutineContextKey;\nHSPLkotlin/coroutines/AbstractCoroutineContextKey;-><init>(Lkotlin/coroutines/CoroutineContext$Key;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/coroutines/AbstractCoroutineContextKey;-><init>(Lkotlin/coroutines/CoroutineContext$Key;Lkotlin/jvm/functions/Function1;)V\nLkotlin/coroutines/CombinedContext;\nHSPLkotlin/coroutines/CombinedContext;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)V\nHPLkotlin/coroutines/CombinedContext;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)V\nHSPLkotlin/coroutines/CombinedContext;->equals(Ljava/lang/Object;)Z\nPLkotlin/coroutines/CombinedContext;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/coroutines/CombinedContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlin/coroutines/CombinedContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLkotlin/coroutines/CombinedContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLkotlin/coroutines/CombinedContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlin/coroutines/CombinedContext;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/CombinedContext;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlin/coroutines/CombinedContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/CombinedContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/Continuation;\nLkotlin/coroutines/ContinuationInterceptor;\nHSPLkotlin/coroutines/ContinuationInterceptor;-><clinit>()V\nPLkotlin/coroutines/ContinuationInterceptor;-><clinit>()V\nLkotlin/coroutines/ContinuationInterceptor$DefaultImpls;\nHSPLkotlin/coroutines/ContinuationInterceptor$DefaultImpls;->get(Lkotlin/coroutines/ContinuationInterceptor;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLkotlin/coroutines/ContinuationInterceptor$DefaultImpls;->get(Lkotlin/coroutines/ContinuationInterceptor;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlin/coroutines/ContinuationInterceptor$DefaultImpls;->minusKey(Lkotlin/coroutines/ContinuationInterceptor;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/ContinuationInterceptor$DefaultImpls;->minusKey(Lkotlin/coroutines/ContinuationInterceptor;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/ContinuationInterceptor$Key;\nHSPLkotlin/coroutines/ContinuationInterceptor$Key;-><clinit>()V\nPLkotlin/coroutines/ContinuationInterceptor$Key;-><clinit>()V\nHSPLkotlin/coroutines/ContinuationInterceptor$Key;-><init>()V\nPLkotlin/coroutines/ContinuationInterceptor$Key;-><init>()V\nLkotlin/coroutines/ContinuationKt;\nHSPLkotlin/coroutines/ContinuationKt;->createCoroutine(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLkotlin/coroutines/ContinuationKt;->createCoroutine(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlin/coroutines/ContinuationKt;->startCoroutine(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/ContinuationKt;->startCoroutine(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nLkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/CoroutineContext$DefaultImpls;\nHSPLkotlin/coroutines/CoroutineContext$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/CoroutineContext$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/CoroutineContext$Element;\nLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;\nHSPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->fold(Lkotlin/coroutines/CoroutineContext$Element;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->fold(Lkotlin/coroutines/CoroutineContext$Element;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->get(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->get(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->minusKey(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->minusKey(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nPLkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/CoroutineContext$Key;\nLkotlin/coroutines/CoroutineContext$plus$1;\nHSPLkotlin/coroutines/CoroutineContext$plus$1;-><clinit>()V\nPLkotlin/coroutines/CoroutineContext$plus$1;-><clinit>()V\nHSPLkotlin/coroutines/CoroutineContext$plus$1;-><init>()V\nPLkotlin/coroutines/CoroutineContext$plus$1;-><init>()V\nHSPLkotlin/coroutines/CoroutineContext$plus$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlin/coroutines/CoroutineContext$plus$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/coroutines/CoroutineContext$plus$1;->invoke(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/CoroutineContext$plus$1;->invoke(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/EmptyCoroutineContext;\nHSPLkotlin/coroutines/EmptyCoroutineContext;-><clinit>()V\nPLkotlin/coroutines/EmptyCoroutineContext;-><clinit>()V\nHSPLkotlin/coroutines/EmptyCoroutineContext;-><init>()V\nPLkotlin/coroutines/EmptyCoroutineContext;-><init>()V\nHSPLkotlin/coroutines/EmptyCoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlin/coroutines/EmptyCoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLkotlin/coroutines/EmptyCoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLkotlin/coroutines/EmptyCoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlin/coroutines/EmptyCoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/EmptyCoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/SafeContinuation;\nHSPLkotlin/coroutines/SafeContinuation;-><clinit>()V\nPLkotlin/coroutines/SafeContinuation;-><clinit>()V\nHSPLkotlin/coroutines/SafeContinuation;-><init>(Lkotlin/coroutines/Continuation;Ljava/lang/Object;)V\nHPLkotlin/coroutines/SafeContinuation;-><init>(Lkotlin/coroutines/Continuation;Ljava/lang/Object;)V\nHSPLkotlin/coroutines/SafeContinuation;->resumeWith(Ljava/lang/Object;)V\nHPLkotlin/coroutines/SafeContinuation;->resumeWith(Ljava/lang/Object;)V\nLkotlin/coroutines/SafeContinuation$Companion;\nHSPLkotlin/coroutines/SafeContinuation$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/coroutines/SafeContinuation$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/coroutines/intrinsics/CoroutineSingletons;\nHSPLkotlin/coroutines/intrinsics/CoroutineSingletons;-><clinit>()V\nPLkotlin/coroutines/intrinsics/CoroutineSingletons;-><clinit>()V\nHSPLkotlin/coroutines/intrinsics/CoroutineSingletons;-><init>(Ljava/lang/String;I)V\nPLkotlin/coroutines/intrinsics/CoroutineSingletons;-><init>(Ljava/lang/String;I)V\nLkotlin/coroutines/intrinsics/IntrinsicsKt;\nLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt;\nHSPLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt;->createCoroutineUnintercepted(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt;->createCoroutineUnintercepted(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$3;\nLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$4;\nLkotlin/coroutines/intrinsics/IntrinsicsKt__IntrinsicsKt;\nLkotlin/coroutines/jvm/internal/BaseContinuationImpl;\nHSPLkotlin/coroutines/jvm/internal/BaseContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/BaseContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlin/coroutines/jvm/internal/BaseContinuationImpl;->releaseIntercepted()V\nHPLkotlin/coroutines/jvm/internal/BaseContinuationImpl;->releaseIntercepted()V\nHSPLkotlin/coroutines/jvm/internal/BaseContinuationImpl;->resumeWith(Ljava/lang/Object;)V\nHPLkotlin/coroutines/jvm/internal/BaseContinuationImpl;->resumeWith(Ljava/lang/Object;)V\nLkotlin/coroutines/jvm/internal/CompletedContinuation;\nHSPLkotlin/coroutines/jvm/internal/CompletedContinuation;-><clinit>()V\nPLkotlin/coroutines/jvm/internal/CompletedContinuation;-><clinit>()V\nHSPLkotlin/coroutines/jvm/internal/CompletedContinuation;-><init>()V\nPLkotlin/coroutines/jvm/internal/CompletedContinuation;-><init>()V\nLkotlin/coroutines/jvm/internal/ContinuationImpl;\nHSPLkotlin/coroutines/jvm/internal/ContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/ContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlin/coroutines/jvm/internal/ContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/coroutines/CoroutineContext;)V\nHPLkotlin/coroutines/jvm/internal/ContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlin/coroutines/jvm/internal/ContinuationImpl;->getContext()Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/jvm/internal/ContinuationImpl;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlin/coroutines/jvm/internal/ContinuationImpl;->intercepted()Lkotlin/coroutines/Continuation;\nHPLkotlin/coroutines/jvm/internal/ContinuationImpl;->intercepted()Lkotlin/coroutines/Continuation;\nHSPLkotlin/coroutines/jvm/internal/ContinuationImpl;->releaseIntercepted()V\nHPLkotlin/coroutines/jvm/internal/ContinuationImpl;->releaseIntercepted()V\nLkotlin/coroutines/jvm/internal/CoroutineStackFrame;\nLkotlin/coroutines/jvm/internal/DebugProbesKt;\nHSPLkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineResumed(Lkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineResumed(Lkotlin/coroutines/Continuation;)V\nHSPLkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V\nLkotlin/coroutines/jvm/internal/RestrictedContinuationImpl;\nHSPLkotlin/coroutines/jvm/internal/RestrictedContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/RestrictedContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlin/coroutines/jvm/internal/RestrictedContinuationImpl;->getContext()Lkotlin/coroutines/CoroutineContext;\nHPLkotlin/coroutines/jvm/internal/RestrictedContinuationImpl;->getContext()Lkotlin/coroutines/CoroutineContext;\nLkotlin/coroutines/jvm/internal/RestrictedSuspendLambda;\nHSPLkotlin/coroutines/jvm/internal/RestrictedSuspendLambda;-><init>(ILkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/RestrictedSuspendLambda;-><init>(ILkotlin/coroutines/Continuation;)V\nLkotlin/coroutines/jvm/internal/SuspendFunction;\nLkotlin/coroutines/jvm/internal/SuspendLambda;\nHSPLkotlin/coroutines/jvm/internal/SuspendLambda;-><init>(ILkotlin/coroutines/Continuation;)V\nHPLkotlin/coroutines/jvm/internal/SuspendLambda;-><init>(ILkotlin/coroutines/Continuation;)V\nHSPLkotlin/coroutines/jvm/internal/SuspendLambda;->getArity()I\nHPLkotlin/coroutines/jvm/internal/SuspendLambda;->getArity()I\nLkotlin/enums/EnumEntries;\nLkotlin/enums/EnumEntriesKt;\nHSPLkotlin/enums/EnumEntriesKt;->enumEntries([Ljava/lang/Enum;)Lkotlin/enums/EnumEntries;\nPLkotlin/enums/EnumEntriesKt;->enumEntries([Ljava/lang/Enum;)Lkotlin/enums/EnumEntries;\nLkotlin/enums/EnumEntriesList;\nHSPLkotlin/enums/EnumEntriesList;-><init>([Ljava/lang/Enum;)V\nPLkotlin/enums/EnumEntriesList;-><init>([Ljava/lang/Enum;)V\nLkotlin/internal/PlatformImplementations;\nHSPLkotlin/internal/PlatformImplementations;-><init>()V\nPLkotlin/internal/PlatformImplementations;-><init>()V\nLkotlin/internal/PlatformImplementationsKt;\nHSPLkotlin/internal/PlatformImplementationsKt;-><clinit>()V\nPLkotlin/internal/PlatformImplementationsKt;-><clinit>()V\nLkotlin/internal/ProgressionUtilKt;\nHSPLkotlin/internal/ProgressionUtilKt;->getProgressionLastElement(III)I\nHPLkotlin/internal/ProgressionUtilKt;->getProgressionLastElement(III)I\nHSPLkotlin/internal/ProgressionUtilKt;->getProgressionLastElement(JJJ)J\nPLkotlin/internal/ProgressionUtilKt;->getProgressionLastElement(JJJ)J\nLkotlin/internal/jdk7/JDK7PlatformImplementations;\nHSPLkotlin/internal/jdk7/JDK7PlatformImplementations;-><init>()V\nPLkotlin/internal/jdk7/JDK7PlatformImplementations;-><init>()V\nLkotlin/internal/jdk8/JDK8PlatformImplementations;\nHSPLkotlin/internal/jdk8/JDK8PlatformImplementations;-><init>()V\nPLkotlin/internal/jdk8/JDK8PlatformImplementations;-><init>()V\nHSPLkotlin/internal/jdk8/JDK8PlatformImplementations;->defaultPlatformRandom()Lkotlin/random/Random;\nPLkotlin/internal/jdk8/JDK8PlatformImplementations;->defaultPlatformRandom()Lkotlin/random/Random;\nLkotlin/internal/jdk8/JDK8PlatformImplementations$ReflectSdkVersion;\nHSPLkotlin/internal/jdk8/JDK8PlatformImplementations$ReflectSdkVersion;-><clinit>()V\nPLkotlin/internal/jdk8/JDK8PlatformImplementations$ReflectSdkVersion;-><clinit>()V\nHSPLkotlin/internal/jdk8/JDK8PlatformImplementations$ReflectSdkVersion;-><init>()V\nPLkotlin/internal/jdk8/JDK8PlatformImplementations$ReflectSdkVersion;-><init>()V\nLkotlin/io/CloseableKt;\nHSPLkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V\nPLkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V\nLkotlin/io/FileSystemException;\nLkotlin/io/FilesKt;\nLkotlin/io/FilesKt__FilePathComponentsKt;\nLkotlin/io/FilesKt__FileReadWriteKt;\nLkotlin/io/FilesKt__FileTreeWalkKt;\nLkotlin/io/FilesKt__UtilsKt;\nHSPLkotlin/io/FilesKt__UtilsKt;->getExtension(Ljava/io/File;)Ljava/lang/String;\nPLkotlin/io/FilesKt__UtilsKt;->getExtension(Ljava/io/File;)Ljava/lang/String;\nLkotlin/io/TerminateException;\nLkotlin/jvm/JvmClassMappingKt;\nHSPLkotlin/jvm/JvmClassMappingKt;->getJavaClass(Lkotlin/reflect/KClass;)Ljava/lang/Class;\nPLkotlin/jvm/JvmClassMappingKt;->getJavaClass(Lkotlin/reflect/KClass;)Ljava/lang/Class;\nHSPLkotlin/jvm/JvmClassMappingKt;->getJavaObjectType(Lkotlin/reflect/KClass;)Ljava/lang/Class;\nHPLkotlin/jvm/JvmClassMappingKt;->getJavaObjectType(Lkotlin/reflect/KClass;)Ljava/lang/Class;\nHSPLkotlin/jvm/JvmClassMappingKt;->getJavaPrimitiveType(Lkotlin/reflect/KClass;)Ljava/lang/Class;\nPLkotlin/jvm/JvmClassMappingKt;->getJavaPrimitiveType(Lkotlin/reflect/KClass;)Ljava/lang/Class;\nLkotlin/jvm/functions/Function0;\nLkotlin/jvm/functions/Function1;\nLkotlin/jvm/functions/Function10;\nLkotlin/jvm/functions/Function11;\nLkotlin/jvm/functions/Function12;\nLkotlin/jvm/functions/Function13;\nLkotlin/jvm/functions/Function14;\nLkotlin/jvm/functions/Function15;\nLkotlin/jvm/functions/Function16;\nLkotlin/jvm/functions/Function17;\nLkotlin/jvm/functions/Function18;\nLkotlin/jvm/functions/Function19;\nLkotlin/jvm/functions/Function2;\nLkotlin/jvm/functions/Function20;\nLkotlin/jvm/functions/Function21;\nLkotlin/jvm/functions/Function22;\nLkotlin/jvm/functions/Function3;\nLkotlin/jvm/functions/Function4;\nLkotlin/jvm/functions/Function5;\nLkotlin/jvm/functions/Function6;\nLkotlin/jvm/functions/Function7;\nLkotlin/jvm/functions/Function8;\nLkotlin/jvm/functions/Function9;\nLkotlin/jvm/functions/FunctionN;\nLkotlin/jvm/internal/AdaptedFunctionReference;\nHSPLkotlin/jvm/internal/AdaptedFunctionReference;-><init>(ILjava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/AdaptedFunctionReference;-><init>(ILjava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/ArrayIterator;\nHSPLkotlin/jvm/internal/ArrayIterator;-><init>([Ljava/lang/Object;)V\nPLkotlin/jvm/internal/ArrayIterator;-><init>([Ljava/lang/Object;)V\nHSPLkotlin/jvm/internal/ArrayIterator;->hasNext()Z\nPLkotlin/jvm/internal/ArrayIterator;->hasNext()Z\nHSPLkotlin/jvm/internal/ArrayIterator;->next()Ljava/lang/Object;\nPLkotlin/jvm/internal/ArrayIterator;->next()Ljava/lang/Object;\nLkotlin/jvm/internal/ArrayIteratorKt;\nHSPLkotlin/jvm/internal/ArrayIteratorKt;->iterator([Ljava/lang/Object;)Ljava/util/Iterator;\nPLkotlin/jvm/internal/ArrayIteratorKt;->iterator([Ljava/lang/Object;)Ljava/util/Iterator;\nLkotlin/jvm/internal/BooleanCompanionObject;\nHSPLkotlin/jvm/internal/BooleanCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/BooleanCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/BooleanCompanionObject;-><init>()V\nPLkotlin/jvm/internal/BooleanCompanionObject;-><init>()V\nLkotlin/jvm/internal/ByteCompanionObject;\nHSPLkotlin/jvm/internal/ByteCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/ByteCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/ByteCompanionObject;-><init>()V\nPLkotlin/jvm/internal/ByteCompanionObject;-><init>()V\nLkotlin/jvm/internal/CallableReference;\nHSPLkotlin/jvm/internal/CallableReference;-><clinit>()V\nPLkotlin/jvm/internal/CallableReference;-><clinit>()V\nHSPLkotlin/jvm/internal/CallableReference;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Z)V\nHPLkotlin/jvm/internal/CallableReference;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Z)V\nHSPLkotlin/jvm/internal/CallableReference;->getBoundReceiver()Ljava/lang/Object;\nPLkotlin/jvm/internal/CallableReference;->getBoundReceiver()Ljava/lang/Object;\nHSPLkotlin/jvm/internal/CallableReference;->getName()Ljava/lang/String;\nHPLkotlin/jvm/internal/CallableReference;->getName()Ljava/lang/String;\nHSPLkotlin/jvm/internal/CallableReference;->getOwner()Lkotlin/reflect/KDeclarationContainer;\nHPLkotlin/jvm/internal/CallableReference;->getOwner()Lkotlin/reflect/KDeclarationContainer;\nHSPLkotlin/jvm/internal/CallableReference;->getSignature()Ljava/lang/String;\nHPLkotlin/jvm/internal/CallableReference;->getSignature()Ljava/lang/String;\nLkotlin/jvm/internal/CallableReference$NoReceiver;\nHSPLkotlin/jvm/internal/CallableReference$NoReceiver;-><clinit>()V\nPLkotlin/jvm/internal/CallableReference$NoReceiver;-><clinit>()V\nHSPLkotlin/jvm/internal/CallableReference$NoReceiver;-><init>()V\nPLkotlin/jvm/internal/CallableReference$NoReceiver;-><init>()V\nHSPLkotlin/jvm/internal/CallableReference$NoReceiver;->access$000()Lkotlin/jvm/internal/CallableReference$NoReceiver;\nPLkotlin/jvm/internal/CallableReference$NoReceiver;->access$000()Lkotlin/jvm/internal/CallableReference$NoReceiver;\nLkotlin/jvm/internal/CharCompanionObject;\nHSPLkotlin/jvm/internal/CharCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/CharCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/CharCompanionObject;-><init>()V\nPLkotlin/jvm/internal/CharCompanionObject;-><init>()V\nLkotlin/jvm/internal/ClassBasedDeclarationContainer;\nLkotlin/jvm/internal/CollectionToArray;\nHSPLkotlin/jvm/internal/CollectionToArray;-><clinit>()V\nPLkotlin/jvm/internal/CollectionToArray;-><clinit>()V\nHSPLkotlin/jvm/internal/CollectionToArray;->toArray(Ljava/util/Collection;)[Ljava/lang/Object;\nPLkotlin/jvm/internal/CollectionToArray;->toArray(Ljava/util/Collection;)[Ljava/lang/Object;\nLkotlin/jvm/internal/DefaultConstructorMarker;\nLkotlin/jvm/internal/DoubleCompanionObject;\nHSPLkotlin/jvm/internal/DoubleCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/DoubleCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/DoubleCompanionObject;-><init>()V\nPLkotlin/jvm/internal/DoubleCompanionObject;-><init>()V\nLkotlin/jvm/internal/FloatCompanionObject;\nHSPLkotlin/jvm/internal/FloatCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/FloatCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/FloatCompanionObject;-><init>()V\nPLkotlin/jvm/internal/FloatCompanionObject;-><init>()V\nLkotlin/jvm/internal/FunctionAdapter;\nLkotlin/jvm/internal/FunctionBase;\nLkotlin/jvm/internal/FunctionReference;\nHSPLkotlin/jvm/internal/FunctionReference;-><init>(I)V\nPLkotlin/jvm/internal/FunctionReference;-><init>(I)V\nHSPLkotlin/jvm/internal/FunctionReference;-><init>(ILjava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHPLkotlin/jvm/internal/FunctionReference;-><init>(ILjava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHSPLkotlin/jvm/internal/FunctionReference;->equals(Ljava/lang/Object;)Z\nHPLkotlin/jvm/internal/FunctionReference;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/jvm/internal/FunctionReference;->getArity()I\nHPLkotlin/jvm/internal/FunctionReference;->getArity()I\nLkotlin/jvm/internal/FunctionReferenceImpl;\nHSPLkotlin/jvm/internal/FunctionReferenceImpl;-><init>(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/FunctionReferenceImpl;-><init>(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHSPLkotlin/jvm/internal/FunctionReferenceImpl;-><init>(ILjava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHPLkotlin/jvm/internal/FunctionReferenceImpl;-><init>(ILjava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/IntCompanionObject;\nHSPLkotlin/jvm/internal/IntCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/IntCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/IntCompanionObject;-><init>()V\nPLkotlin/jvm/internal/IntCompanionObject;-><init>()V\nLkotlin/jvm/internal/Intrinsics;\nHSPLkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Float;F)Z\nHPLkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Float;F)Z\nHSPLkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z\nHSPLkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nPLkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nHSPLkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V\nHPLkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V\nHSPLkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nHPLkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nHSPLkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V\nHPLkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V\nHSPLkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V\nHPLkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V\nHSPLkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nPLkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V\nHSPLkotlin/jvm/internal/Intrinsics;->compare(II)I\nHPLkotlin/jvm/internal/Intrinsics;->compare(II)I\nHSPLkotlin/jvm/internal/Intrinsics;->sanitizeStackTrace(Ljava/lang/String;Ljava/lang/Throwable;)V\nPLkotlin/jvm/internal/Intrinsics;->sanitizeStackTrace(Ljava/lang/String;Ljava/lang/Throwable;)V\nHSPLkotlin/jvm/internal/Intrinsics;->stringPlus(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;\nPLkotlin/jvm/internal/Intrinsics;->stringPlus(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;\nLkotlin/jvm/internal/KTypeBase;\nLkotlin/jvm/internal/Lambda;\nHSPLkotlin/jvm/internal/Lambda;-><init>(I)V\nHPLkotlin/jvm/internal/Lambda;-><init>(I)V\nHSPLkotlin/jvm/internal/Lambda;->getArity()I\nHPLkotlin/jvm/internal/Lambda;->getArity()I\nLkotlin/jvm/internal/LongCompanionObject;\nHSPLkotlin/jvm/internal/LongCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/LongCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/LongCompanionObject;-><init>()V\nPLkotlin/jvm/internal/LongCompanionObject;-><init>()V\nLkotlin/jvm/internal/MutablePropertyReference;\nHSPLkotlin/jvm/internal/MutablePropertyReference;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/MutablePropertyReference;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/MutablePropertyReference1;\nHSPLkotlin/jvm/internal/MutablePropertyReference1;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/MutablePropertyReference1;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/MutablePropertyReference1Impl;\nHSPLkotlin/jvm/internal/MutablePropertyReference1Impl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/MutablePropertyReference1Impl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHSPLkotlin/jvm/internal/MutablePropertyReference1Impl;-><init>(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V\nPLkotlin/jvm/internal/MutablePropertyReference1Impl;-><init>(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V\nLkotlin/jvm/internal/PropertyReference;\nHSPLkotlin/jvm/internal/PropertyReference;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHPLkotlin/jvm/internal/PropertyReference;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHSPLkotlin/jvm/internal/PropertyReference;->equals(Ljava/lang/Object;)Z\nHPLkotlin/jvm/internal/PropertyReference;->equals(Ljava/lang/Object;)Z\nLkotlin/jvm/internal/PropertyReference0;\nHSPLkotlin/jvm/internal/PropertyReference0;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/PropertyReference0;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nHSPLkotlin/jvm/internal/PropertyReference0;->invoke()Ljava/lang/Object;\nHPLkotlin/jvm/internal/PropertyReference0;->invoke()Ljava/lang/Object;\nLkotlin/jvm/internal/PropertyReference0Impl;\nHSPLkotlin/jvm/internal/PropertyReference0Impl;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/PropertyReference0Impl;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/PropertyReference1;\nHSPLkotlin/jvm/internal/PropertyReference1;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/PropertyReference1;-><init>(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/PropertyReference1Impl;\nHSPLkotlin/jvm/internal/PropertyReference1Impl;-><init>(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V\nPLkotlin/jvm/internal/PropertyReference1Impl;-><init>(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V\nLkotlin/jvm/internal/PropertyReference2;\nHSPLkotlin/jvm/internal/PropertyReference2;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/PropertyReference2;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/PropertyReference2Impl;\nHSPLkotlin/jvm/internal/PropertyReference2Impl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nPLkotlin/jvm/internal/PropertyReference2Impl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V\nLkotlin/jvm/internal/Ref$BooleanRef;\nHSPLkotlin/jvm/internal/Ref$BooleanRef;-><init>()V\nPLkotlin/jvm/internal/Ref$BooleanRef;-><init>()V\nLkotlin/jvm/internal/Ref$FloatRef;\nHSPLkotlin/jvm/internal/Ref$FloatRef;-><init>()V\nPLkotlin/jvm/internal/Ref$FloatRef;-><init>()V\nLkotlin/jvm/internal/Ref$IntRef;\nHSPLkotlin/jvm/internal/Ref$IntRef;-><init>()V\nPLkotlin/jvm/internal/Ref$IntRef;-><init>()V\nLkotlin/jvm/internal/Ref$LongRef;\nHSPLkotlin/jvm/internal/Ref$LongRef;-><init>()V\nPLkotlin/jvm/internal/Ref$LongRef;-><init>()V\nLkotlin/jvm/internal/Ref$ObjectRef;\nHSPLkotlin/jvm/internal/Ref$ObjectRef;-><init>()V\nHPLkotlin/jvm/internal/Ref$ObjectRef;-><init>()V\nLkotlin/jvm/internal/Reflection;\nHSPLkotlin/jvm/internal/Reflection;-><clinit>()V\nPLkotlin/jvm/internal/Reflection;-><clinit>()V\nHSPLkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;\nHPLkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;\nHSPLkotlin/jvm/internal/Reflection;->getOrCreateKotlinPackage(Ljava/lang/Class;)Lkotlin/reflect/KDeclarationContainer;\nPLkotlin/jvm/internal/Reflection;->getOrCreateKotlinPackage(Ljava/lang/Class;)Lkotlin/reflect/KDeclarationContainer;\nHSPLkotlin/jvm/internal/Reflection;->mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1;\nPLkotlin/jvm/internal/Reflection;->mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1;\nHSPLkotlin/jvm/internal/Reflection;->property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;\nPLkotlin/jvm/internal/Reflection;->property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;\nHSPLkotlin/jvm/internal/Reflection;->property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;\nPLkotlin/jvm/internal/Reflection;->property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;\nHSPLkotlin/jvm/internal/Reflection;->typeOf(Ljava/lang/Class;)Lkotlin/reflect/KType;\nPLkotlin/jvm/internal/Reflection;->typeOf(Ljava/lang/Class;)Lkotlin/reflect/KType;\nLkotlin/jvm/internal/ReflectionFactory;\nHSPLkotlin/jvm/internal/ReflectionFactory;-><init>()V\nPLkotlin/jvm/internal/ReflectionFactory;-><init>()V\nLkotlin/jvm/internal/ShortCompanionObject;\nHSPLkotlin/jvm/internal/ShortCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/ShortCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/ShortCompanionObject;-><init>()V\nPLkotlin/jvm/internal/ShortCompanionObject;-><init>()V\nLkotlin/jvm/internal/StringCompanionObject;\nHSPLkotlin/jvm/internal/StringCompanionObject;-><clinit>()V\nPLkotlin/jvm/internal/StringCompanionObject;-><clinit>()V\nHSPLkotlin/jvm/internal/StringCompanionObject;-><init>()V\nPLkotlin/jvm/internal/StringCompanionObject;-><init>()V\nLkotlin/jvm/internal/TypeIntrinsics;\nHSPLkotlin/jvm/internal/TypeIntrinsics;->asMutableCollection(Ljava/lang/Object;)Ljava/util/Collection;\nHPLkotlin/jvm/internal/TypeIntrinsics;->asMutableCollection(Ljava/lang/Object;)Ljava/util/Collection;\nHSPLkotlin/jvm/internal/TypeIntrinsics;->beforeCheckcastToFunctionOfArity(Ljava/lang/Object;I)Ljava/lang/Object;\nHPLkotlin/jvm/internal/TypeIntrinsics;->beforeCheckcastToFunctionOfArity(Ljava/lang/Object;I)Ljava/lang/Object;\nHSPLkotlin/jvm/internal/TypeIntrinsics;->castToCollection(Ljava/lang/Object;)Ljava/util/Collection;\nHPLkotlin/jvm/internal/TypeIntrinsics;->castToCollection(Ljava/lang/Object;)Ljava/util/Collection;\nHSPLkotlin/jvm/internal/TypeIntrinsics;->getFunctionArity(Ljava/lang/Object;)I\nHPLkotlin/jvm/internal/TypeIntrinsics;->getFunctionArity(Ljava/lang/Object;)I\nHSPLkotlin/jvm/internal/TypeIntrinsics;->isFunctionOfArity(Ljava/lang/Object;I)Z\nHPLkotlin/jvm/internal/TypeIntrinsics;->isFunctionOfArity(Ljava/lang/Object;I)Z\nHSPLkotlin/jvm/internal/TypeIntrinsics;->isMutableSet(Ljava/lang/Object;)Z\nPLkotlin/jvm/internal/TypeIntrinsics;->isMutableSet(Ljava/lang/Object;)Z\nLkotlin/jvm/internal/markers/KMappedMarker;\nLkotlin/jvm/internal/markers/KMutableCollection;\nLkotlin/jvm/internal/markers/KMutableIterable;\nLkotlin/jvm/internal/markers/KMutableIterator;\nLkotlin/jvm/internal/markers/KMutableList;\nLkotlin/jvm/internal/markers/KMutableListIterator;\nLkotlin/jvm/internal/markers/KMutableMap;\nLkotlin/jvm/internal/markers/KMutableSet;\nLkotlin/math/MathKt;\nLkotlin/math/MathKt__MathHKt;\nLkotlin/math/MathKt__MathJVMKt;\nHSPLkotlin/math/MathKt__MathJVMKt;->getSign(I)I\nHPLkotlin/math/MathKt__MathJVMKt;->getSign(I)I\nHSPLkotlin/math/MathKt__MathJVMKt;->roundToInt(F)I\nHPLkotlin/math/MathKt__MathJVMKt;->roundToInt(F)I\nLkotlin/properties/ObservableProperty;\nHSPLkotlin/properties/ObservableProperty;-><init>(Ljava/lang/Object;)V\nHPLkotlin/properties/ObservableProperty;-><init>(Ljava/lang/Object;)V\nHSPLkotlin/properties/ObservableProperty;->afterChange(Lkotlin/reflect/KProperty;Ljava/lang/Object;Ljava/lang/Object;)V\nPLkotlin/properties/ObservableProperty;->afterChange(Lkotlin/reflect/KProperty;Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLkotlin/properties/ObservableProperty;->getValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;\nPLkotlin/properties/ObservableProperty;->getValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;\nHSPLkotlin/properties/ObservableProperty;->setValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V\nPLkotlin/properties/ObservableProperty;->setValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V\nLkotlin/properties/ReadOnlyProperty;\nLkotlin/properties/ReadWriteProperty;\nLkotlin/random/AbstractPlatformRandom;\nHSPLkotlin/random/AbstractPlatformRandom;-><init>()V\nPLkotlin/random/AbstractPlatformRandom;-><init>()V\nHSPLkotlin/random/AbstractPlatformRandom;->nextInt()I\nPLkotlin/random/AbstractPlatformRandom;->nextInt()I\nHSPLkotlin/random/AbstractPlatformRandom;->nextInt(I)I\nPLkotlin/random/AbstractPlatformRandom;->nextInt(I)I\nLkotlin/random/FallbackThreadLocalRandom;\nHSPLkotlin/random/FallbackThreadLocalRandom;-><init>()V\nPLkotlin/random/FallbackThreadLocalRandom;-><init>()V\nHSPLkotlin/random/FallbackThreadLocalRandom;->getImpl()Ljava/util/Random;\nPLkotlin/random/FallbackThreadLocalRandom;->getImpl()Ljava/util/Random;\nLkotlin/random/FallbackThreadLocalRandom$implStorage$1;\nHSPLkotlin/random/FallbackThreadLocalRandom$implStorage$1;-><init>()V\nPLkotlin/random/FallbackThreadLocalRandom$implStorage$1;-><init>()V\nHSPLkotlin/random/FallbackThreadLocalRandom$implStorage$1;->initialValue()Ljava/lang/Object;\nPLkotlin/random/FallbackThreadLocalRandom$implStorage$1;->initialValue()Ljava/lang/Object;\nLkotlin/random/Random;\nHSPLkotlin/random/Random;-><clinit>()V\nPLkotlin/random/Random;-><clinit>()V\nHSPLkotlin/random/Random;-><init>()V\nPLkotlin/random/Random;-><init>()V\nHSPLkotlin/random/Random;->access$getDefaultRandom$cp()Lkotlin/random/Random;\nPLkotlin/random/Random;->access$getDefaultRandom$cp()Lkotlin/random/Random;\nLkotlin/random/Random$Default;\nHSPLkotlin/random/Random$Default;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/random/Random$Default;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/random/Random$Default;->nextInt()I\nPLkotlin/random/Random$Default;->nextInt()I\nHSPLkotlin/random/Random$Default;->nextInt(I)I\nPLkotlin/random/Random$Default;->nextInt(I)I\nLkotlin/ranges/ClosedRange;\nLkotlin/ranges/IntProgression;\nHSPLkotlin/ranges/IntProgression;-><clinit>()V\nPLkotlin/ranges/IntProgression;-><clinit>()V\nHSPLkotlin/ranges/IntProgression;-><init>(III)V\nHPLkotlin/ranges/IntProgression;-><init>(III)V\nHSPLkotlin/ranges/IntProgression;->getFirst()I\nPLkotlin/ranges/IntProgression;->getFirst()I\nHSPLkotlin/ranges/IntProgression;->getLast()I\nPLkotlin/ranges/IntProgression;->getLast()I\nHSPLkotlin/ranges/IntProgression;->getStep()I\nPLkotlin/ranges/IntProgression;->getStep()I\nHSPLkotlin/ranges/IntProgression;->iterator()Ljava/util/Iterator;\nPLkotlin/ranges/IntProgression;->iterator()Ljava/util/Iterator;\nHSPLkotlin/ranges/IntProgression;->iterator()Lkotlin/collections/IntIterator;\nPLkotlin/ranges/IntProgression;->iterator()Lkotlin/collections/IntIterator;\nLkotlin/ranges/IntProgression$Companion;\nHSPLkotlin/ranges/IntProgression$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/ranges/IntProgression$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/ranges/IntProgressionIterator;\nHSPLkotlin/ranges/IntProgressionIterator;-><init>(III)V\nHPLkotlin/ranges/IntProgressionIterator;-><init>(III)V\nHSPLkotlin/ranges/IntProgressionIterator;->hasNext()Z\nPLkotlin/ranges/IntProgressionIterator;->hasNext()Z\nHSPLkotlin/ranges/IntProgressionIterator;->nextInt()I\nPLkotlin/ranges/IntProgressionIterator;->nextInt()I\nLkotlin/ranges/IntRange;\nHSPLkotlin/ranges/IntRange;-><clinit>()V\nPLkotlin/ranges/IntRange;-><clinit>()V\nHSPLkotlin/ranges/IntRange;-><init>(II)V\nHPLkotlin/ranges/IntRange;-><init>(II)V\nHSPLkotlin/ranges/IntRange;->contains(I)Z\nPLkotlin/ranges/IntRange;->contains(I)Z\nHSPLkotlin/ranges/IntRange;->getStart()Ljava/lang/Integer;\nPLkotlin/ranges/IntRange;->getStart()Ljava/lang/Integer;\nLkotlin/ranges/IntRange$Companion;\nHSPLkotlin/ranges/IntRange$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/ranges/IntRange$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/ranges/LongProgression;\nHSPLkotlin/ranges/LongProgression;-><clinit>()V\nPLkotlin/ranges/LongProgression;-><clinit>()V\nHSPLkotlin/ranges/LongProgression;-><init>(JJJ)V\nPLkotlin/ranges/LongProgression;-><init>(JJJ)V\nHSPLkotlin/ranges/LongProgression;->getFirst()J\nPLkotlin/ranges/LongProgression;->getFirst()J\nHSPLkotlin/ranges/LongProgression;->getLast()J\nPLkotlin/ranges/LongProgression;->getLast()J\nLkotlin/ranges/LongProgression$Companion;\nHSPLkotlin/ranges/LongProgression$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/ranges/LongProgression$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/ranges/LongRange;\nHSPLkotlin/ranges/LongRange;-><clinit>()V\nPLkotlin/ranges/LongRange;-><clinit>()V\nHSPLkotlin/ranges/LongRange;-><init>(JJ)V\nPLkotlin/ranges/LongRange;-><init>(JJ)V\nHSPLkotlin/ranges/LongRange;->contains(J)Z\nPLkotlin/ranges/LongRange;->contains(J)Z\nLkotlin/ranges/LongRange$Companion;\nHSPLkotlin/ranges/LongRange$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/ranges/LongRange$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/ranges/OpenEndRange;\nLkotlin/ranges/RangesKt;\nHSPLkotlin/ranges/RangesKt;->step(Lkotlin/ranges/IntRange;I)Lkotlin/ranges/IntProgression;\nPLkotlin/ranges/RangesKt;->step(Lkotlin/ranges/IntRange;I)Lkotlin/ranges/IntProgression;\nLkotlin/ranges/RangesKt__RangesKt;\nHSPLkotlin/ranges/RangesKt__RangesKt;->checkStepIsPositive(ZLjava/lang/Number;)V\nPLkotlin/ranges/RangesKt__RangesKt;->checkStepIsPositive(ZLjava/lang/Number;)V\nLkotlin/ranges/RangesKt___RangesKt;\nHSPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(DDD)D\nHPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(DDD)D\nHSPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(FFF)F\nHPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(FFF)F\nHSPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(III)I\nHPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(III)I\nHSPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(JJJ)J\nHPLkotlin/ranges/RangesKt___RangesKt;->coerceIn(JJJ)J\nHSPLkotlin/ranges/RangesKt___RangesKt;->step(Lkotlin/ranges/IntProgression;I)Lkotlin/ranges/IntProgression;\nPLkotlin/ranges/RangesKt___RangesKt;->step(Lkotlin/ranges/IntProgression;I)Lkotlin/ranges/IntProgression;\nHSPLkotlin/ranges/RangesKt___RangesKt;->until(II)Lkotlin/ranges/IntRange;\nPLkotlin/ranges/RangesKt___RangesKt;->until(II)Lkotlin/ranges/IntRange;\nLkotlin/reflect/KAnnotatedElement;\nLkotlin/reflect/KCallable;\nLkotlin/reflect/KClass;\nLkotlin/reflect/KClassifier;\nLkotlin/reflect/KDeclarationContainer;\nLkotlin/reflect/KFunction;\nLkotlin/reflect/KMutableProperty;\nLkotlin/reflect/KMutableProperty1;\nLkotlin/reflect/KProperty;\nLkotlin/reflect/KProperty0;\nLkotlin/reflect/KProperty1;\nLkotlin/reflect/KProperty2;\nLkotlin/reflect/KType;\nLkotlin/reflect/full/KClassifiers;\nHSPLkotlin/reflect/full/KClassifiers;->createType(Lkotlin/reflect/KClassifier;Ljava/util/List;ZLjava/util/List;)Lkotlin/reflect/KType;\nPLkotlin/reflect/full/KClassifiers;->createType(Lkotlin/reflect/KClassifier;Ljava/util/List;ZLjava/util/List;)Lkotlin/reflect/KType;\nLkotlin/reflect/jvm/internal/CacheByClass;\nHSPLkotlin/reflect/jvm/internal/CacheByClass;-><init>()V\nPLkotlin/reflect/jvm/internal/CacheByClass;-><init>()V\nLkotlin/reflect/jvm/internal/CacheByClassKt;\nHSPLkotlin/reflect/jvm/internal/CacheByClassKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CacheByClassKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CacheByClassKt;->createCache(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/CacheByClass;\nPLkotlin/reflect/jvm/internal/CacheByClassKt;->createCache(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/CacheByClass;\nLkotlin/reflect/jvm/internal/CachesKt;\nHSPLkotlin/reflect/jvm/internal/CachesKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CachesKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt;->getOrCreateKType(Ljava/lang/Class;Ljava/util/List;Z)Lkotlin/reflect/KType;\nHPLkotlin/reflect/jvm/internal/CachesKt;->getOrCreateKType(Ljava/lang/Class;Ljava/util/List;Z)Lkotlin/reflect/KType;\nHSPLkotlin/reflect/jvm/internal/CachesKt;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KClassImpl;\nHPLkotlin/reflect/jvm/internal/CachesKt;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KClassImpl;\nHSPLkotlin/reflect/jvm/internal/CachesKt;->getOrCreateKotlinPackage(Ljava/lang/Class;)Lkotlin/reflect/KDeclarationContainer;\nPLkotlin/reflect/jvm/internal/CachesKt;->getOrCreateKotlinPackage(Ljava/lang/Class;)Lkotlin/reflect/KDeclarationContainer;\nLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;-><init>()V\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;->invoke(Ljava/lang/Class;)Lkotlin/reflect/KType;\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;->invoke(Ljava/lang/Class;)Lkotlin/reflect/KType;\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_BASE_CLASSIFIERS$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_GENERIC_CLASSIFIERS$1;\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_GENERIC_CLASSIFIERS$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_GENERIC_CLASSIFIERS$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_GENERIC_CLASSIFIERS$1;-><init>()V\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_GENERIC_CLASSIFIERS$1;-><init>()V\nLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_NULLABLE_BASE_CLASSIFIERS$1;\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_NULLABLE_BASE_CLASSIFIERS$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_NULLABLE_BASE_CLASSIFIERS$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_NULLABLE_BASE_CLASSIFIERS$1;-><init>()V\nPLkotlin/reflect/jvm/internal/CachesKt$CACHE_FOR_NULLABLE_BASE_CLASSIFIERS$1;-><init>()V\nLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;-><init>()V\nPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;->invoke(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KClassImpl;\nPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;->invoke(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KClassImpl;\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/CachesKt$K_CLASS_CACHE$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;-><init>()V\nPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;->invoke(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KPackageImpl;\nPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;->invoke(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KPackageImpl;\nHSPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/CachesKt$K_PACKAGE_CACHE$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/ConcurrentHashMapCache;\nHSPLkotlin/reflect/jvm/internal/ConcurrentHashMapCache;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/ConcurrentHashMapCache;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/ConcurrentHashMapCache;->get(Ljava/lang/Class;)Ljava/lang/Object;\nHPLkotlin/reflect/jvm/internal/ConcurrentHashMapCache;->get(Ljava/lang/Class;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/KCallableImpl;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl;-><init>()V\nPLkotlin/reflect/jvm/internal/KCallableImpl;-><init>()V\nLkotlin/reflect/jvm/internal/KCallableImpl$_absentArguments$1;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl$_absentArguments$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nPLkotlin/reflect/jvm/internal/KCallableImpl$_absentArguments$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nLkotlin/reflect/jvm/internal/KCallableImpl$_annotations$1;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl$_annotations$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nPLkotlin/reflect/jvm/internal/KCallableImpl$_annotations$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nLkotlin/reflect/jvm/internal/KCallableImpl$_parameters$1;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl$_parameters$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nPLkotlin/reflect/jvm/internal/KCallableImpl$_parameters$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nLkotlin/reflect/jvm/internal/KCallableImpl$_returnType$1;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl$_returnType$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nPLkotlin/reflect/jvm/internal/KCallableImpl$_returnType$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nLkotlin/reflect/jvm/internal/KCallableImpl$_typeParameters$1;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl$_typeParameters$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nPLkotlin/reflect/jvm/internal/KCallableImpl$_typeParameters$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nLkotlin/reflect/jvm/internal/KCallableImpl$parametersNeedMFVCFlattening$1;\nHSPLkotlin/reflect/jvm/internal/KCallableImpl$parametersNeedMFVCFlattening$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nPLkotlin/reflect/jvm/internal/KCallableImpl$parametersNeedMFVCFlattening$1;-><init>(Lkotlin/reflect/jvm/internal/KCallableImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;-><init>(Ljava/lang/Class;)V\nPLkotlin/reflect/jvm/internal/KClassImpl;-><init>(Ljava/lang/Class;)V\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->access$getClassId(Lkotlin/reflect/jvm/internal/KClassImpl;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/KClassImpl;->access$getClassId(Lkotlin/reflect/jvm/internal/KClassImpl;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->equals(Ljava/lang/Object;)Z\nHPLkotlin/reflect/jvm/internal/KClassImpl;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->getData()Lkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;\nPLkotlin/reflect/jvm/internal/KClassImpl;->getData()Lkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/KClassImpl;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nPLkotlin/reflect/jvm/internal/KClassImpl;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->getJClass()Ljava/lang/Class;\nPLkotlin/reflect/jvm/internal/KClassImpl;->getJClass()Ljava/lang/Class;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->getQualifiedName()Ljava/lang/String;\nHPLkotlin/reflect/jvm/internal/KClassImpl;->getQualifiedName()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->getSimpleName()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/KClassImpl;->getSimpleName()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->hashCode()I\nHPLkotlin/reflect/jvm/internal/KClassImpl;->hashCode()I\nHSPLkotlin/reflect/jvm/internal/KClassImpl;->isInstance(Ljava/lang/Object;)Z\nPLkotlin/reflect/jvm/internal/KClassImpl;->isInstance(Ljava/lang/Object;)Z\nLkotlin/reflect/jvm/internal/KClassImpl$Data;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data;-><clinit>()V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data;->getQualifiedName()Ljava/lang/String;\nHPLkotlin/reflect/jvm/internal/KClassImpl$Data;->getQualifiedName()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data;->getSimpleName()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data;->getSimpleName()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/KClassImpl$Data$allMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$allMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$allMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$allNonStaticMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$allNonStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$allNonStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$allStaticMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$allStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$allStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$annotations$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$annotations$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$annotations$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$constructors$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$constructors$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$constructors$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredNonStaticMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredNonStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredNonStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredStaticMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$declaredStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;->invoke()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$descriptor$2;->invoke()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nLkotlin/reflect/jvm/internal/KClassImpl$Data$inheritedNonStaticMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$inheritedNonStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$inheritedNonStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$inheritedStaticMembers$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$inheritedStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$inheritedStaticMembers$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$nestedClasses$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$nestedClasses$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$nestedClasses$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$objectInstance$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$objectInstance$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$objectInstance$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;->invoke()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$qualifiedName$2;->invoke()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/KClassImpl$Data$sealedSubclasses$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$sealedSubclasses$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$sealedSubclasses$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;->invoke()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$simpleName$2;->invoke()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/KClassImpl$Data$supertypes$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$supertypes$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$supertypes$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$Data$typeParameters$2;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$Data$typeParameters$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$Data$typeParameters$2;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl$Data;Lkotlin/reflect/jvm/internal/KClassImpl;)V\nLkotlin/reflect/jvm/internal/KClassImpl$data$1;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$data$1;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nPLkotlin/reflect/jvm/internal/KClassImpl$data$1;-><init>(Lkotlin/reflect/jvm/internal/KClassImpl;)V\nHSPLkotlin/reflect/jvm/internal/KClassImpl$data$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KClassImpl$data$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KClassImpl$data$1;->invoke()Lkotlin/reflect/jvm/internal/KClassImpl$Data;\nPLkotlin/reflect/jvm/internal/KClassImpl$data$1;->invoke()Lkotlin/reflect/jvm/internal/KClassImpl$Data;\nLkotlin/reflect/jvm/internal/KClassifierImpl;\nLkotlin/reflect/jvm/internal/KDeclarationContainerImpl;\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl;-><clinit>()V\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl;-><init>()V\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl;-><init>()V\nLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Companion;\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;-><clinit>()V\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;)V\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;)V\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;->getModuleData()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data;->getModuleData()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;)V\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;)V\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;->invoke()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nPLkotlin/reflect/jvm/internal/KDeclarationContainerImpl$Data$moduleData$2;->invoke()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nLkotlin/reflect/jvm/internal/KMutableProperty1Impl;\nHSPLkotlin/reflect/jvm/internal/KMutableProperty1Impl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V\nHPLkotlin/reflect/jvm/internal/KMutableProperty1Impl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V\nLkotlin/reflect/jvm/internal/KMutableProperty1Impl$_setter$1;\nHSPLkotlin/reflect/jvm/internal/KMutableProperty1Impl$_setter$1;-><init>(Lkotlin/reflect/jvm/internal/KMutableProperty1Impl;)V\nPLkotlin/reflect/jvm/internal/KMutableProperty1Impl$_setter$1;-><init>(Lkotlin/reflect/jvm/internal/KMutableProperty1Impl;)V\nLkotlin/reflect/jvm/internal/KPackageImpl;\nHSPLkotlin/reflect/jvm/internal/KPackageImpl;-><init>(Ljava/lang/Class;)V\nPLkotlin/reflect/jvm/internal/KPackageImpl;-><init>(Ljava/lang/Class;)V\nLkotlin/reflect/jvm/internal/KPackageImpl$data$1;\nHSPLkotlin/reflect/jvm/internal/KPackageImpl$data$1;-><init>(Lkotlin/reflect/jvm/internal/KPackageImpl;)V\nPLkotlin/reflect/jvm/internal/KPackageImpl$data$1;-><init>(Lkotlin/reflect/jvm/internal/KPackageImpl;)V\nLkotlin/reflect/jvm/internal/KProperty1Impl;\nHSPLkotlin/reflect/jvm/internal/KProperty1Impl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V\nHPLkotlin/reflect/jvm/internal/KProperty1Impl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V\nLkotlin/reflect/jvm/internal/KProperty1Impl$_getter$1;\nHSPLkotlin/reflect/jvm/internal/KProperty1Impl$_getter$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty1Impl;)V\nPLkotlin/reflect/jvm/internal/KProperty1Impl$_getter$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty1Impl;)V\nLkotlin/reflect/jvm/internal/KProperty1Impl$delegateSource$1;\nHSPLkotlin/reflect/jvm/internal/KProperty1Impl$delegateSource$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty1Impl;)V\nPLkotlin/reflect/jvm/internal/KProperty1Impl$delegateSource$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty1Impl;)V\nLkotlin/reflect/jvm/internal/KProperty2Impl;\nHSPLkotlin/reflect/jvm/internal/KProperty2Impl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/KProperty2Impl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;)V\nLkotlin/reflect/jvm/internal/KProperty2Impl$_getter$1;\nHSPLkotlin/reflect/jvm/internal/KProperty2Impl$_getter$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty2Impl;)V\nPLkotlin/reflect/jvm/internal/KProperty2Impl$_getter$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty2Impl;)V\nLkotlin/reflect/jvm/internal/KProperty2Impl$delegateSource$1;\nHSPLkotlin/reflect/jvm/internal/KProperty2Impl$delegateSource$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty2Impl;)V\nPLkotlin/reflect/jvm/internal/KProperty2Impl$delegateSource$1;-><init>(Lkotlin/reflect/jvm/internal/KProperty2Impl;)V\nLkotlin/reflect/jvm/internal/KPropertyImpl;\nHSPLkotlin/reflect/jvm/internal/KPropertyImpl;-><clinit>()V\nPLkotlin/reflect/jvm/internal/KPropertyImpl;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/KPropertyImpl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V\nHPLkotlin/reflect/jvm/internal/KPropertyImpl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V\nHSPLkotlin/reflect/jvm/internal/KPropertyImpl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/descriptors/PropertyDescriptor;Ljava/lang/Object;)V\nPLkotlin/reflect/jvm/internal/KPropertyImpl;-><init>(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/descriptors/PropertyDescriptor;Ljava/lang/Object;)V\nLkotlin/reflect/jvm/internal/KPropertyImpl$Companion;\nHSPLkotlin/reflect/jvm/internal/KPropertyImpl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/KPropertyImpl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/KPropertyImpl$_descriptor$1;\nHSPLkotlin/reflect/jvm/internal/KPropertyImpl$_descriptor$1;-><init>(Lkotlin/reflect/jvm/internal/KPropertyImpl;)V\nPLkotlin/reflect/jvm/internal/KPropertyImpl$_descriptor$1;-><init>(Lkotlin/reflect/jvm/internal/KPropertyImpl;)V\nLkotlin/reflect/jvm/internal/KPropertyImpl$_javaField$1;\nHSPLkotlin/reflect/jvm/internal/KPropertyImpl$_javaField$1;-><init>(Lkotlin/reflect/jvm/internal/KPropertyImpl;)V\nPLkotlin/reflect/jvm/internal/KPropertyImpl$_javaField$1;-><init>(Lkotlin/reflect/jvm/internal/KPropertyImpl;)V\nLkotlin/reflect/jvm/internal/KTypeImpl;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;-><clinit>()V\nPLkotlin/reflect/jvm/internal/KTypeImpl;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/KTypeImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/KTypeImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;->access$convert(Lkotlin/reflect/jvm/internal/KTypeImpl;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Lkotlin/reflect/KClassifier;\nPLkotlin/reflect/jvm/internal/KTypeImpl;->access$convert(Lkotlin/reflect/jvm/internal/KTypeImpl;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Lkotlin/reflect/KClassifier;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;->convert(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Lkotlin/reflect/KClassifier;\nPLkotlin/reflect/jvm/internal/KTypeImpl;->convert(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Lkotlin/reflect/KClassifier;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;->getArguments()Ljava/util/List;\nHPLkotlin/reflect/jvm/internal/KTypeImpl;->getArguments()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;->getClassifier()Lkotlin/reflect/KClassifier;\nHPLkotlin/reflect/jvm/internal/KTypeImpl;->getClassifier()Lkotlin/reflect/KClassifier;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;->getType()Lkotlin/reflect/jvm/internal/impl/types/KotlinType;\nPLkotlin/reflect/jvm/internal/KTypeImpl;->getType()Lkotlin/reflect/jvm/internal/impl/types/KotlinType;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl;->hashCode()I\nHPLkotlin/reflect/jvm/internal/KTypeImpl;->hashCode()I\nLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;-><init>(Lkotlin/reflect/jvm/internal/KTypeImpl;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;-><init>(Lkotlin/reflect/jvm/internal/KTypeImpl;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;->invoke()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/KTypeImpl$arguments$2;->invoke()Ljava/util/List;\nLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;-><init>(Lkotlin/reflect/jvm/internal/KTypeImpl;)V\nPLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;-><init>(Lkotlin/reflect/jvm/internal/KTypeImpl;)V\nHSPLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;->invoke()Lkotlin/reflect/KClassifier;\nPLkotlin/reflect/jvm/internal/KTypeImpl$classifier$2;->invoke()Lkotlin/reflect/KClassifier;\nLkotlin/reflect/jvm/internal/KTypeParameterOwnerImpl;\nLkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;\nHSPLkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->getOrCreateModule(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nPLkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->getOrCreateModule(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nLkotlin/reflect/jvm/internal/ReflectProperties;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties;->lazy(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;\nPLkotlin/reflect/jvm/internal/ReflectProperties;->lazy(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties;->lazySoft(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;\nPLkotlin/reflect/jvm/internal/ReflectProperties;->lazySoft(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties;->lazySoft(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;\nPLkotlin/reflect/jvm/internal/ReflectProperties;->lazySoft(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;\nLkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)V\nHPLkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;->invoke()Ljava/lang/Object;\nHPLkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;->invoke()Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;->invoke()Ljava/lang/Object;\nHPLkotlin/reflect/jvm/internal/ReflectProperties$LazyVal;->invoke()Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/ReflectProperties$Val;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$Val;-><clinit>()V\nPLkotlin/reflect/jvm/internal/ReflectProperties$Val;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$Val;-><init>()V\nHPLkotlin/reflect/jvm/internal/ReflectProperties$Val;-><init>()V\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$Val;->escape(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/ReflectProperties$Val;->escape(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$Val;->unescape(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlin/reflect/jvm/internal/ReflectProperties$Val;->unescape(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/ReflectProperties$Val$1;\nHSPLkotlin/reflect/jvm/internal/ReflectProperties$Val$1;-><init>()V\nPLkotlin/reflect/jvm/internal/ReflectProperties$Val$1;-><init>()V\nLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;-><init>()V\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;-><init>()V\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;\nHPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOrCreateKotlinPackage(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KDeclarationContainer;\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOrCreateKotlinPackage(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KDeclarationContainer;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1;\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;\nHSPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;\nPLkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;\nLkotlin/reflect/jvm/internal/RuntimeTypeMapper;\nHSPLkotlin/reflect/jvm/internal/RuntimeTypeMapper;-><clinit>()V\nPLkotlin/reflect/jvm/internal/RuntimeTypeMapper;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/RuntimeTypeMapper;-><init>()V\nPLkotlin/reflect/jvm/internal/RuntimeTypeMapper;-><init>()V\nHSPLkotlin/reflect/jvm/internal/RuntimeTypeMapper;->mapJvmClassToKotlinClassId(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/RuntimeTypeMapper;->mapJvmClassToKotlinClassId(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/UtilKt;\nHSPLkotlin/reflect/jvm/internal/UtilKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/UtilKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/UtilKt;->toJavaClass(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;)Ljava/lang/Class;\nPLkotlin/reflect/jvm/internal/UtilKt;->toJavaClass(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;)Ljava/lang/Class;\nLkotlin/reflect/jvm/internal/WeakClassLoaderBox;\nHSPLkotlin/reflect/jvm/internal/WeakClassLoaderBox;-><init>(Ljava/lang/ClassLoader;)V\nPLkotlin/reflect/jvm/internal/WeakClassLoaderBox;-><init>(Ljava/lang/ClassLoader;)V\nHSPLkotlin/reflect/jvm/internal/WeakClassLoaderBox;->hashCode()I\nPLkotlin/reflect/jvm/internal/WeakClassLoaderBox;->hashCode()I\nLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;->allClassesWithIntrinsicCompanions()Ljava/util/Set;\nPLkotlin/reflect/jvm/internal/impl/builtins/CompanionObjectMapping;->allClassesWithIntrinsicCompanions()Ljava/util/Set;\nLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->access$200(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->access$200(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->access$202(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->access$202(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->getBuiltInsModule()Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->getBuiltInsModule()Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->setBuiltInsModule(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;->setBuiltInsModule(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$1;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$1;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$1;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)V\nLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)V\nLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$3;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$3;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$3;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;)V\nLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;->invoke()Ljava/lang/Void;\nPLkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns$4;->invoke()Ljava/lang/Void;\nLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;->getArrayTypeName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;->getArrayTypeName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;->getTypeName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;->getTypeName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;->values()[Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;->values()[Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;\nLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$arrayTypeFqName$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$arrayTypeFqName$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$arrayTypeFqName$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;)V\nLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$typeFqName$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$typeFqName$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType$typeFqName$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;)V\nLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$ClassLookup;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$ClassLookup;-><init>(I)V\nPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$ClassLookup;-><init>(I)V\nLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$kotlinReflectScope$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$kotlinReflectScope$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes$kotlinReflectScope$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;->getFunctionClassId(I)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;->getFunctionClassId(I)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;->getFunctionName(I)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;->getFunctionName(I)Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;->getPrimitiveFqName(Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames;->getPrimitiveFqName(Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->annotationName(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->annotationName(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->collectionsFqName(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->collectionsFqName(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->fqName(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->fqName(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->fqNameUnsafe(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->fqNameUnsafe(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->reflect(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/builtins/StandardNames$FqNames;->reflect(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nLkotlin/reflect/jvm/internal/impl/builtins/functions/BuiltInFictitiousFunctionClassFactory;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/BuiltInFictitiousFunctionClassFactory;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/BuiltInFictitiousFunctionClassFactory;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/lang/String;ZLkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/lang/String;ZLkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;->getClassNamePrefix()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;->getClassNamePrefix()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;->getPackageFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind;->getPackageFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$Function;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$Function;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$Function;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$Function;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$Function;-><init>()V\nLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KFunction;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KFunction;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KFunction;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KFunction;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KFunction;-><init>()V\nLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KSuspendFunction;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KSuspendFunction;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KSuspendFunction;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KSuspendFunction;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$KSuspendFunction;-><init>()V\nLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$SuspendFunction;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$SuspendFunction;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$SuspendFunction;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$SuspendFunction;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/functions/FunctionTypeKind$SuspendFunction;-><init>()V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->add(Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->add(Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->addKotlinToJava(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->addKotlinToJava(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->addTopLevel(Ljava/lang/Class;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->addTopLevel(Ljava/lang/Class;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->addTopLevel(Ljava/lang/Class;Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->addTopLevel(Ljava/lang/Class;Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->classId(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->classId(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->mapJavaToKotlin(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap;->mapJavaToKotlin(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;-><init>(Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;-><init>(Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;->component1()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;->component1()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;->component2()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;->component2()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;->component3()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMap$PlatformMutabilityMapping;->component3()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMapper;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMapper;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMapper;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMapper;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JavaToKotlinClassMapper;-><init>()V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$1;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$cloneable$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$cloneable$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory$cloneable$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInClassDescriptorFactory;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;->getCustomizer()Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;->getCustomizer()Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;->initialize(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Z)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;->initialize(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;->setPostponedSettingsComputation(Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;->setPostponedSettingsComputation(Lkotlin/jvm/functions/Function0;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;-><init>(Ljava/lang/String;I)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;->values()[Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;->values()[Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$Kind;\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$WhenMappings;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$WhenMappings;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$WhenMappings;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;->invoke()Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2;->invoke()Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2$1;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2$1;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$customizer$2$1;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$initialize$1;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$initialize$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Z)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltIns$initialize$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Z)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function0;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$cloneableType$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$cloneableType$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$cloneableType$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$createMockJavaIoSerializableType$mockJavaIoPackageFragment$1;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$createMockJavaIoSerializableType$mockJavaIoPackageFragment$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$createMockJavaIoSerializableType$mockJavaIoPackageFragment$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$createMockJavaIoSerializableType$superTypes$1;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$createMockJavaIoSerializableType$superTypes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$createMockJavaIoSerializableType$superTypes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$notConsideredDeprecation$2;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$notConsideredDeprecation$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer$notConsideredDeprecation$2;-><init>(Lkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsCustomizer;)V\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;)V\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;->findPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializedPackageFragment;\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider;->findPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializedPackageFragment;\nLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/builtins/jvm/JvmBuiltInsPackageFragmentProvider$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/CallableDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/descriptors/ClassConstructorDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptorWithTypeParameters;\nLkotlin/reflect/jvm/internal/impl/descriptors/ConstructorDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorNonRoot;\nLkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorVisitor;\nLkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorWithSource;\nLkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorWithVisibility;\nLkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;->getDelegate()Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;\nPLkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;->getDelegate()Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;->recordVisibilityMapping(Lkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;->recordVisibilityMapping(Lkotlin/reflect/jvm/internal/impl/descriptors/DelegatedDescriptorVisibility;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;->toDescriptorVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities;->toDescriptorVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$10;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$10;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$10;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$11;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$11;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$11;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$12;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$12;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$12;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$2;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$3;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$3;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$3;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$4;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$4;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$4;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$5;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$5;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$5;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$6;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$6;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$6;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$7;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$7;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$7;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$8;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$8;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$8;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$9;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$9;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibilities$9;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/FindClassInModuleKt;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/FindClassInModuleKt;->findClassAcrossModuleDependencies(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/FindClassInModuleKt;->findClassAcrossModuleDependencies(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/FindClassInModuleKt;->findClassifierAcrossModuleDependencies(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/FindClassInModuleKt;->findClassifierAcrossModuleDependencies(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/FunctionDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/MemberDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/Modality;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Modality;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Modality;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Modality;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Modality;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/descriptors/Modality$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Modality$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Modality$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Modality$Companion;->convertFromFlags(ZZZ)Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;\nPLkotlin/reflect/jvm/internal/impl/descriptors/Modality$Companion;->convertFromFlags(ZZZ)Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;\nLkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;-><init>(Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;-><init>(Ljava/lang/String;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor$DefaultImpls;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor$DefaultImpls;->accept(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorVisitor;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor$DefaultImpls;->accept(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorVisitor;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/descriptors/Named;\nLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses$classes$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses$classes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses$classes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses$packageFragments$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses$packageFragments$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses$packageFragments$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;\nLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;->collectPackageFragmentsOptimizedIfPossible(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;->collectPackageFragmentsOptimizedIfPossible(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;->isEmpty(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;->isEmpty(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;->packageFragments(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderKt;->packageFragments(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProviderOptimized;\nLkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/PropertyDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function1;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function1;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;->access$getKotlinTypeRefinerForOwnerModule$p(Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;)Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;->access$getKotlinTypeRefinerForOwnerModule$p(Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;)Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;->access$getScopeFactory$p(Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;)Lkotlin/jvm/functions/Function1;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;->access$getScopeFactory$p(Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;)Lkotlin/jvm/functions/Function1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;->getScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;->getScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$Companion;->create(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$Companion;->create(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;\nLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;->invoke()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/descriptors/ScopesHolderForClass$scopeForOwnerModule$2;->invoke()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Substitutable;\nLkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker;\nLkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker$EMPTY;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker$EMPTY;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker$EMPTY;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker$EMPTY;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker$EMPTY;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/TypeParameterDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/TypeParameterUtilsKt;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/TypeParameterUtilsKt;->computeConstructorTypeParameters(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptorWithTypeParameters;)Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/TypeParameterUtilsKt;->computeConstructorTypeParameters(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptorWithTypeParameters;)Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/descriptors/ValueDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/VariableDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/VariableDescriptorWithAccessors;\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Inherited;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Internal;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$InvisibleFake;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Local;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Private;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$PrivateToThis;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Protected;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Public;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibilities$Unknown;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/Visibility;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/Visibility;-><init>(Ljava/lang/String;Z)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/Visibility;-><init>(Ljava/lang/String;Z)V\nLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotated;\nLkotlin/reflect/jvm/internal/impl/descriptors/annotations/AnnotatedImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/AnnotatedImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/AnnotatedImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;->getEMPTY()Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;\nPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion;->getEMPTY()Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;\nLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion$EMPTY$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion$EMPTY$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations$Companion$EMPTY$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;\nLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/ClassDescriptorFactory;\nLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;\nLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer;\nLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer$None;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer$None;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer$None;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer$None;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer$None;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getContextReceivers()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getContextReceivers()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getDefaultType()Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getDefaultType()Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getUnsubstitutedMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;->getUnsubstitutedMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;->invoke()Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;->invoke()Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$1;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$2;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$3;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$3;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor$3;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/AbstractClassDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ConstructorDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;ZLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ConstructorDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;ZLkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->calculateDispatchReceiverParameter()Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->calculateDispatchReceiverParameter()Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->create(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;ZLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->create(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;ZLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->initialize(Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->initialize(Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->initialize(Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;Ljava/util/List;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;->initialize(Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;Ljava/util/List;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassConstructorDescriptorImpl;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;Z)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;->getSource()Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorBase;->getSource()Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;Ljava/util/Collection;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;ZLkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;Ljava/util/Collection;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;ZLkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->getDeclaredTypeParameters()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->getDeclaredTypeParameters()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->getTypeConstructor()Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->getTypeConstructor()Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->getUnsubstitutedMemberScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->getUnsubstitutedMemberScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->initialize(Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Ljava/util/Set;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassConstructorDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->initialize(Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Ljava/util/Set;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassConstructorDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->isInner()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ClassDescriptorImpl;->isInner()Z\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;-><init>(Ljava/util/List;Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;-><init>(Ljava/util/List;Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;->collectPackageFragments(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;->collectPackageFragments(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;->isEmpty(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;->isEmpty(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;->toString(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorImpl;->toString(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorNonRootImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorNonRootImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorNonRootImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorNonRootImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/DeclarationDescriptorNonRootImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/FunctionDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/FunctionDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;->initialize(Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;->initialize(Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;->setReturnType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/FunctionDescriptorImpl;->setReturnType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getEmpty()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getEmpty()Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getFragments()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getFragments()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;->invoke()Ljava/lang/Boolean;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;->invoke()Ljava/lang/Boolean;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$empty$2;->invoke()Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;->invoke()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$fragments$2;->invoke()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;->invoke()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/LazyPackageViewDescriptorImpl$memberScope$1;->invoke()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleAwareClassDescriptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependencies;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependenciesImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependenciesImpl;-><init>(Ljava/util/List;Ljava/util/Set;Ljava/util/List;Ljava/util/Set;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependenciesImpl;-><init>(Ljava/util/List;Ljava/util/Set;Ljava/util/List;Ljava/util/Set;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependenciesImpl;->getAllDependencies()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependenciesImpl;->getAllDependencies()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/platform/TargetPlatform;Ljava/util/Map;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/platform/TargetPlatform;Ljava/util/Map;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/platform/TargetPlatform;Ljava/util/Map;Lkotlin/reflect/jvm/internal/impl/name/Name;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;Lkotlin/reflect/jvm/internal/impl/platform/TargetPlatform;Ljava/util/Map;Lkotlin/reflect/jvm/internal/impl/name/Name;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->accept(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorVisitor;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->accept(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptorVisitor;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getDependencies$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependencies;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getDependencies$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependencies;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getPackageFragmentProviderForModuleContent$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getPackageFragmentProviderForModuleContent$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getPackageViewDescriptorFactory$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getPackageViewDescriptorFactory$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getStorageManager$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$getStorageManager$p(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$isInitialized(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->access$isInitialized(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->assertValid()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->assertValid()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getBuiltIns()Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getBuiltIns()Lkotlin/reflect/jvm/internal/impl/builtins/KotlinBuiltIns;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getCapability(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getCapability(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getPackageFragmentProvider()Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->getPackageFragmentProvider()Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->initialize(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->initialize(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies(Ljava/util/List;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies(Ljava/util/List;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies(Ljava/util/List;Ljava/util/Set;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies(Ljava/util/List;Ljava/util/Set;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependencies;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDependencies;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies([Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->setDependencies([Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->toString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;->toString()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;->invoke()Lkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packageFragmentProviderForWholeModuleWithDependencies$2;->invoke()Lkotlin/reflect/jvm/internal/impl/descriptors/impl/CompositePackageFragmentProvider;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl$packages$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;->getContainingDeclaration()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageFragmentDescriptorImpl;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;->getCAPABILITY()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Companion;->getCAPABILITY()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;->compute(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PackageViewDescriptorFactory$Default;->compute(Lkotlin/reflect/jvm/internal/impl/descriptors/impl/ModuleDescriptorImpl;Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageViewDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/PropertyDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;ZLkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;ZZZZZZ)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/PropertyDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;ZLkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;ZZZZZZ)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;->create(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;ZLkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;ZZZZZZ)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;->create(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/descriptors/Modality;Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;ZLkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor$Kind;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;ZZZZZZ)Lkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;->setType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Ljava/util/List;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/PropertyDescriptorImpl;->setType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;Ljava/util/List;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/SubpackagesScope;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/SubpackagesScope;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/SubpackagesScope;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;Lkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorImpl;->setOutType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorImpl;->setOutType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorWithInitializerImpl;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorWithInitializerImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;ZLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/impl/VariableDescriptorWithInitializerImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/types/KotlinType;ZLkotlin/reflect/jvm/internal/impl/descriptors/SourceElement;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/PackagePartScopeCache;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/PackagePartScopeCache;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/PackagePartScopeCache;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;->loadClassAnnotations(Ljava/lang/Class;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinaryClass$AnnotationVisitor;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectClassStructure;->loadClassAnnotations(Ljava/lang/Class;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinaryClass$AnnotationVisitor;)V\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;-><init>(Ljava/lang/ClassLoader;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;-><init>(Ljava/lang/ClassLoader;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;->findClass(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;)Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;->findClass(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;)Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;->findPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;Z)Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;->findPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;Z)Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;->knownClassNamesInPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/util/Set;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinder;->knownClassNamesInPackage(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/util/Set;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinderKt;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinderKt;->tryLoadClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectJavaClassFinderKt;->tryLoadClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass$Factory;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass$Factory;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass$Factory;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass$Factory;->create(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass$Factory;->create(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClass;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;-><init>(Ljava/lang/ClassLoader;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;-><init>(Ljava/lang/ClassLoader;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;->findBuiltInsData(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/io/InputStream;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;->findBuiltInsData(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/io/InputStream;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;->findKotlinClassOrContent(Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder$Result;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinder;->findKotlinClassOrContent(Lkotlin/reflect/jvm/internal/impl/name/ClassId;Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder$Result;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinderKt;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinderKt;->access$toRuntimeFqName(Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/ReflectKotlinClassFinderKt;->access$toRuntimeFqName(Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeErrorReporter;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeErrorReporter;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeErrorReporter;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeErrorReporter;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeErrorReporter;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/PackagePartScopeCache;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/PackagePartScopeCache;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion;->create(Ljava/lang/ClassLoader;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion;->create(Ljava/lang/ClassLoader;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;->source(Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaElement;)Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElement;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory;->source(Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaElement;)Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElement;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory$RuntimeSourceElement;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory$RuntimeSourceElement;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory$RuntimeSourceElement;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory$RuntimeSourceElement;->getJavaElement()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeSourceElementFactory$RuntimeSourceElement;->getJavaElement()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;->initCache()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;->initCache()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;->loadIsSealed(Ljava/lang/Class;)Ljava/lang/Boolean;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader;->loadIsSealed(Ljava/lang/Class;)Ljava/lang/Boolean;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;-><init>(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;-><init>(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;->isSealed()Ljava/lang/reflect/Method;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/Java16SealedRecordLoader$Cache;->isSealed()Ljava/lang/reflect/Method;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getClassId(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getClassId(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getFunctionClassArity(Ljava/lang/Class;)Ljava/lang/Integer;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getFunctionClassArity(Ljava/lang/Class;)Ljava/lang/Integer;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getPrimitiveByWrapper(Ljava/lang/Class;)Ljava/lang/Class;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getPrimitiveByWrapper(Ljava/lang/Class;)Ljava/lang/Class;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getSafeClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getSafeClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getWrapperByPrimitive(Ljava/lang/Class;)Ljava/lang/Class;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getWrapperByPrimitive(Ljava/lang/Class;)Ljava/lang/Class;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaAnnotationOwner;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;-><init>(Ljava/lang/Class;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;-><init>(Ljava/lang/Class;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getElement()Ljava/lang/Class;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getElement()Ljava/lang/Class;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getLightClassOriginKind()Lkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getLightClassOriginKind()Lkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getModifiers()I\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getModifiers()I\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getOuterClass()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getOuterClass()Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getOuterClass()Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getOuterClass()Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getTypeParameters()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getTypeParameters()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getVisibility()Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->getVisibility()Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isAbstract()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isAbstract()Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isAnnotationType()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isAnnotationType()Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isEnum()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isEnum()Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isFinal()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isFinal()Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isInterface()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isInterface()Z\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isSealed()Z\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaClass;->isSealed()Z\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaElement;-><init>()V\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaModifierListOwner;\nLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaPackage;\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaPackage;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaPackage;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nHSPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaPackage;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectJavaPackage;->getFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nLkotlin/reflect/jvm/internal/impl/incremental/UtilsKt;\nHSPLkotlin/reflect/jvm/internal/impl/incremental/UtilsKt;->record(Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentDescriptor;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/incremental/UtilsKt;->record(Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentDescriptor;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nHSPLkotlin/reflect/jvm/internal/impl/incremental/UtilsKt;->recordPackageLookup(Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;Ljava/lang/String;Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/incremental/UtilsKt;->recordPackageLookup(Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;Ljava/lang/String;Ljava/lang/String;)V\nLkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;\nLkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;\nLkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker$DO_NOTHING;\nHSPLkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker$DO_NOTHING;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker$DO_NOTHING;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker$DO_NOTHING;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker$DO_NOTHING;-><init>()V\nLkotlin/reflect/jvm/internal/impl/incremental/components/NoLookupLocation;\nHSPLkotlin/reflect/jvm/internal/impl/incremental/components/NoLookupLocation;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/incremental/components/NoLookupLocation;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/incremental/components/NoLookupLocation;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/incremental/components/NoLookupLocation;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;)V\nLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/AbstractAnnotationTypeQualifierResolver$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;->getJavaTarget()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;->getJavaTarget()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;->values()[Lkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;\nPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;->values()[Lkotlin/reflect/jvm/internal/impl/load/java/AnnotationQualifierApplicabilityType;\nLkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;)V\nLkotlin/reflect/jvm/internal/impl/load/java/ErasedOverridabilityCondition;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/ErasedOverridabilityCondition;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/ErasedOverridabilityCondition;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/FieldOverridabilityCondition;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/FieldOverridabilityCondition;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/FieldOverridabilityCondition;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$$Util;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$$Util;->findPackage$default(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/name/FqName;ZILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$$Util;->findPackage$default(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/name/FqName;ZILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;-><init>(Lkotlin/reflect/jvm/internal/impl/name/ClassId;[BLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;-><init>(Lkotlin/reflect/jvm/internal/impl/name/ClassId;[BLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;-><init>(Lkotlin/reflect/jvm/internal/impl/name/ClassId;[BLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;-><init>(Lkotlin/reflect/jvm/internal/impl/name/ClassId;[BLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;->getClassId()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder$Request;->getClassId()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;->reportClass(Lkotlin/reflect/jvm/internal/impl/load/java/descriptors/JavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker$Default;->reportClass(Lkotlin/reflect/jvm/internal/impl/load/java/descriptors/JavaClassDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities;->toDescriptorVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities;->toDescriptorVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$1;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$PackageVisibility;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$2;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedStaticVisibility;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$3;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$3;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaDescriptorVisibilities$3;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/java/JavaVisibilities$ProtectedAndPackage;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaIncompatibilityRulesOverridabilityCondition$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaModuleAnnotationsProvider;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultJsr305Settings$default(Lkotlin/KotlinVersion;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultJsr305Settings$default(Lkotlin/KotlinVersion;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultJsr305Settings(Lkotlin/KotlinVersion;)Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultJsr305Settings(Lkotlin/KotlinVersion;)Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultMigrationJsr305ReportLevelForGivenGlobal(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultMigrationJsr305ReportLevelForGivenGlobal(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultReportLevelForAnnotation(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getDefaultReportLevelForAnnotation(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getJSPECIFY_ANNOTATIONS_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getJSPECIFY_ANNOTATIONS_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getReportLevelForAnnotation$default(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;Lkotlin/KotlinVersion;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getReportLevelForAnnotation$default(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;Lkotlin/KotlinVersion;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getReportLevelForAnnotation(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;Lkotlin/KotlinVersion;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationSettingsKt;->getReportLevelForAnnotation(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;Lkotlin/KotlinVersion;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/KotlinVersion;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/KotlinVersion;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/KotlinVersion;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/KotlinVersion;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;->access$getDEFAULT$cp()Lkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;->access$getDEFAULT$cp()Lkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;->getReportLevelBefore()Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;->getReportLevelBefore()Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;->getSinceVersion()Lkotlin/KotlinVersion;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus;->getSinceVersion()Lkotlin/KotlinVersion;\nLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaNullabilityAnnotationsStatus$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;->access$getDEFAULT$cp()Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;->access$getDEFAULT$cp()Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;->getDisabledDefaultAnnotations()Z\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;->getDisabledDefaultAnnotations()Z\nLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nPLkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState$Companion$DEFAULT$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Ljava/util/Map;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Ljava/util/Map;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Lkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;->isDisabled()Z\nPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;->isDisabled()Z\nLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings$description$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings$description$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings$description$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/Jsr305Settings;)V\nLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;->getEMPTY()Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates$Companion;->getEMPTY()Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStates;\nLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;-><init>(Ljava/util/Map;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;-><init>(Ljava/util/Map;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;->get(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;->get(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;->getStates()Ljava/util/Map;\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;->getStates()Ljava/util/Map;\nLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/NullabilityAnnotationStatesImpl$cache$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/ReportLevel$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/UtilsKt;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/UtilsKt;->toDescriptorVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nPLkotlin/reflect/jvm/internal/impl/load/java/UtilsKt;->toDescriptorVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/Visibility;)Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nLkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator;\nLkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator$DoNothing;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator$DoNothing;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator$DoNothing;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator$DoNothing;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator$DoNothing;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache$1;->recordClass(Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache$1;->recordClass(Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/descriptors/JavaClassDescriptor;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt;->childForClassOrPackage$default(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;IILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt;->childForClassOrPackage$default(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;IILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt;->childForClassOrPackage(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;I)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt;->childForClassOrPackage(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;I)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt$childForClassOrPackage$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt$childForClassOrPackage$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/ContextKt$childForClassOrPackage$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassOrPackageFragmentDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;Lkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;Lkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;Lkotlin/reflect/jvm/internal/impl/load/java/JavaModuleAnnotationsProvider;Lkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;Lkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;Lkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;Lkotlin/reflect/jvm/internal/impl/load/java/JavaModuleAnnotationsProvider;Lkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;Lkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;Lkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;Lkotlin/reflect/jvm/internal/impl/load/java/JavaModuleAnnotationsProvider;Lkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/load/java/components/SignaturePropagator;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaPropertyInitializerEvaluator;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/SupertypeLoopChecker;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/builtins/ReflectionTypes;Lkotlin/reflect/jvm/internal/impl/load/java/AnnotationTypeQualifierResolver;Lkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;Lkotlin/reflect/jvm/internal/impl/load/java/JavaModuleAnnotationsProvider;Lkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getDeserializedDescriptorResolver()Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getDeserializedDescriptorResolver()Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getFinder()Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getFinder()Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getJavaClassesTracker()Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getJavaClassesTracker()Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassesTracker;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getJavaResolverCache()Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getJavaResolverCache()Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getJavaTypeEnhancementState()Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getJavaTypeEnhancementState()Lkotlin/reflect/jvm/internal/impl/load/java/JavaTypeEnhancementState;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getKotlinClassFinder()Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getKotlinClassFinder()Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getKotlinTypeChecker()Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getKotlinTypeChecker()Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getLookupTracker()Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getLookupTracker()Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getSourceElementFactory()Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getSourceElementFactory()Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getStorageManager()Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;->getStorageManager()Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings$Default;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings$Default;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;Z)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations$annotationDescriptors$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations$annotationDescriptors$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations$annotationDescriptors$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotations;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotationsKt;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotationsKt;->resolveAnnotations(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;)Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaAnnotationsKt;->resolveAnnotations(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;)Lkotlin/reflect/jvm/internal/impl/descriptors/annotations/Annotations;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->access$getC$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->access$getC$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->collectPackageFragments(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->collectPackageFragments(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->getPackageFragment(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->getPackageFragment(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->isEmpty(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;->isEmpty(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;->invoke()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider$getPackageFragment$1;->invoke()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;Lkotlin/Lazy;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;Lkotlin/Lazy;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getComponents()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getComponents()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverComponents;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getStorageManager()Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getStorageManager()Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getTypeParameterResolver()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;->getTypeParameterResolver()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;I)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;I)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver$resolve$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver$resolve$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver$resolve$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaTypeParameterResolver;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/SingleModuleClassResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/SingleModuleClassResolver;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/SingleModuleClassResolver;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/SingleModuleClassResolver;->setResolver(Lkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/SingleModuleClassResolver;->setResolver(Lkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver$EMPTY;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver$EMPTY;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver$EMPTY;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver$EMPTY;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver$EMPTY;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;->recordLookup(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;->recordLookup(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope$kotlinScopes$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope$kotlinScopes$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope$kotlinScopes$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/JvmPackageScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->access$getAdditionalSupertypeClassDescriptor$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->access$getAdditionalSupertypeClassDescriptor$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->access$getC$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->access$getC$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->access$getUnsubstitutedMemberScope$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->access$getUnsubstitutedMemberScope$p(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getDeclaredTypeParameters()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getDeclaredTypeParameters()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getJClass()Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getJClass()Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getKind()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getKind()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getTypeConstructor()Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getTypeConstructor()Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getUnsubstitutedMemberScope(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getVisibility()Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->getVisibility()Lkotlin/reflect/jvm/internal/impl/descriptors/DescriptorVisibility;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->isExpect()Z\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->isExpect()Z\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->isInner()Z\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;->isInner()Z\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;->getDeclarationDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;->getDeclarationDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;->getParameters()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor;->getParameters()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;->invoke()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$parameters$1;->invoke()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;->invoke()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$declaredParameters$1;->invoke()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$moduleAnnotations$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$moduleAnnotations$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$moduleAnnotations$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;->invoke(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassDescriptor$scopeHolder$1;->invoke(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;ZLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;ZLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;ZLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;ZLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$constructors$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$constructors$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$constructors$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$enumEntryIndex$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$enumEntryIndex$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$enumEntryIndex$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$generatedNestedClassNames$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$generatedNestedClassNames$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$generatedNestedClassNames$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClassIndex$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClassIndex$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClassIndex$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClasses$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClasses$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClasses$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;->getMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;->getMemberScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$binaryClasses$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$binaryClasses$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$binaryClasses$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$partToFacade$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$partToFacade$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$partToFacade$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$subPackages$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$subPackages$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment$subPackages$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->access$getJvmMetadataVersion(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;)Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->access$getJvmMetadataVersion(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;)Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->access$resolveKotlinBinaryClass(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinaryClass;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->access$resolveKotlinBinaryClass(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinaryClass;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->findClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->findClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->getOwnerDescriptor()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;->getOwnerDescriptor()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageFragment;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;->getJavaClass()Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;->getJavaClass()Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;->getName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;->hashCode()I\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$Found;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$NotFound;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$NotFound;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$NotFound;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$NotFound;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$NotFound;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$KotlinClassLookupResult$SyntheticClass;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;->invoke(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$classes$1;->invoke(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$FindClassRequest;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;->invoke()Ljava/util/Set;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaPackageScope$knownClassNamesInPackage$1;->invoke()Ljava/util/Set;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;->getC()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;->getC()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$allDescriptors$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$allDescriptors$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$allDescriptors$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$classNamesLazy$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$classNamesLazy$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$classNamesLazy$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredField$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredField$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredField$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredFunctions$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredFunctions$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredFunctions$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredMemberIndex$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredMemberIndex$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$declaredMemberIndex$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$functionNamesLazy$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$functionNamesLazy$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$functionNamesLazy$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$functions$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$functions$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$functions$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$properties$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$properties$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$properties$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$propertyNamesLazy$2;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$propertyNamesLazy$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope$propertyNamesLazy$2;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaScope;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaStaticClassScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaStaticClassScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/load/java/descriptors/JavaClassDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaStaticClassScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;Lkotlin/reflect/jvm/internal/impl/load/java/descriptors/JavaClassDescriptor;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaStaticScope;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaStaticScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaStaticScope;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/types/JavaTypeResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/types/JavaTypeResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/types/JavaTypeResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaResolverContext;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/TypeParameterResolver;)V\nLkotlin/reflect/jvm/internal/impl/load/java/lazy/types/RawProjectionComputer;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/lazy/types/RawProjectionComputer;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/lazy/types/RawProjectionComputer;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElement;\nLkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaAnnotationOwner;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClass;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaClassifier;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaElement;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaModifierListOwner;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaNamedElement;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaPackage;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/JavaTypeParameterListOwner;\nLkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/load/java/structure/LightClassOriginKind;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/JavaTypeEnhancement;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/JavaTypeEnhancement;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/JavaTypeEnhancement;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/JavaResolverSettings;)V\nLkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;\nHSPLkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/JavaTypeEnhancement;)V\nPLkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/SignatureEnhancement;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/typeEnhancement/JavaTypeEnhancement;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader$storage$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader$storage$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader$storage$1;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationLoader;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationLoader;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/AbstractBinaryClassAnnotationLoader;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;->setJvmMetadataVersion(Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;->setJvmMetadataVersion(Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImplKt;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImplKt;->createBinaryClassAnnotationAndConstantLoader(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImplKt;->createBinaryClassAnnotationAndConstantLoader(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/load/kotlin/JavaClassDataFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/load/kotlin/JavaClassDataFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/BinaryClassAnnotationAndConstantLoaderImpl;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;->getComponents()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;->getComponents()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion;->createModuleData(Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion;->createModuleData(Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;->getDeserializationComponentsForJava()Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;->getDeserializationComponentsForJava()Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;->getDeserializedDescriptorResolver()Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava$Companion$ModuleData;->getDeserializedDescriptorResolver()Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;->makeDeserializationComponentsForJava(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;->makeDeserializationComponentsForJava(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;->makeLazyJavaPackageFragmentProvider$default(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;->makeLazyJavaPackageFragmentProvider$default(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;->makeLazyJavaPackageFragmentProvider(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt;->makeLazyJavaPackageFragmentProvider(Lkotlin/reflect/jvm/internal/impl/load/java/JavaClassFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/load/java/sources/JavaSourceElementFactory;Lkotlin/reflect/jvm/internal/impl/load/java/lazy/ModuleClassResolver;Lkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;)Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt$makeLazyJavaPackageFragmentProvider$javaResolverComponents$1;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt$makeLazyJavaPackageFragmentProvider$javaResolverComponents$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJavaKt$makeLazyJavaPackageFragmentProvider$javaResolverComponents$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;->getComponents()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;->getComponents()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;->setComponents(Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;->setComponents(Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializationComponentsForJava;)V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;->setComponents(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;->setComponents(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaClassDataFinder;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaClassDataFinder;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaClassDataFinder;-><init>(Lkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;Lkotlin/reflect/jvm/internal/impl/load/kotlin/DeserializedDescriptorResolver;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaFlexibleTypeDeserializer;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaFlexibleTypeDeserializer;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaFlexibleTypeDeserializer;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaFlexibleTypeDeserializer;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/JavaFlexibleTypeDeserializer;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder$Result;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinClassFinder$Result$ClassFileContent;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinaryClass;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinaryClass$AnnotationVisitor;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/KotlinJvmBinarySourceElement;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider$Empty;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider$Empty;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider$Empty;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider$Empty;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/PackagePartProvider$Empty;-><init>()V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;-><init>(Ljava/lang/String;II)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;-><init>(Ljava/lang/String;II)V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;->values()[Lkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;->values()[Lkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind;\nLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader$Kind$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;->createHeader(Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;->createHeader(Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;)Lkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;->createHeaderWithDefaultMetadataVersion()Lkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader;\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;->createHeaderWithDefaultMetadataVersion()Lkotlin/reflect/jvm/internal/impl/load/kotlin/header/KotlinClassHeader;\nHSPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;->visitEnd()V\nPLkotlin/reflect/jvm/internal/impl/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor;->visitEnd()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$Type;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$Type;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$Type;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$Type;-><init>(Ljava/lang/String;II)V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$Value$Type;-><init>(Ljava/lang/String;II)V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Annotation$Argument$ValueOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$AnnotationOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Class$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ClassOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Constructor$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ConstructorOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Contract$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ContractOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntry$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$EnumEntryOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Function$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$FunctionOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Package$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$PackageOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Property$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$PropertyOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$Type$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$Variance;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$Variance;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$Variance;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$Variance;-><init>(Ljava/lang/String;II)V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameter$Variance;-><init>(Ljava/lang/String;II)V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeParameterOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTable$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$TypeTableOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameter$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$ValueParameterOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable;\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTable$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/ProtoBuf$VersionRequirementTableOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/builtins/BuiltInsProtoBuf;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/builtins/BuiltInsProtoBuf;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/builtins/BuiltInsProtoBuf;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/builtins/BuiltInsProtoBuf;->registerAllExtensions(Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;)V\nPLkotlin/reflect/jvm/internal/impl/metadata/builtins/BuiltInsProtoBuf;->registerAllExtensions(Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;)V\nLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;-><init>([I)V\nPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;-><init>([I)V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;->getMajor()I\nPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;->getMajor()I\nHSPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;->getMinor()I\nPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;->getMinor()I\nLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf;->registerAllExtensions(Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;)V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf;->registerAllExtensions(Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;)V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature;\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignature$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmFieldSignatureOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature;\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignature$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmMethodSignatureOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;->getDefaultInstance()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;->initFields()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature;->initFields()V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature$1;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignature$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/JvmProtoBuf$JvmPropertySignatureOrBuilder;\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;-><init>([I)V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;-><init>([I)V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;-><init>([IZ)V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;-><init>([IZ)V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;->next()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;->next()Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;->getEXTENSION_REGISTRY()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nPLkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmProtoBufUtil;->getEXTENSION_REGISTRY()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nLkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;Z)V\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->asSingleFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->asSingleFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->createNestedClassId(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->createNestedClassId(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->getPackageFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->getPackageFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->getRelativeClassName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->getRelativeClassName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->getShortClassName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->getShortClassName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->hashCode()I\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->isLocal()Z\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->isLocal()Z\nHSPLkotlin/reflect/jvm/internal/impl/name/ClassId;->topLevel(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/ClassId;->topLevel(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/name/FqName;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;-><init>(Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/name/FqName;-><init>(Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;)V\nPLkotlin/reflect/jvm/internal/impl/name/FqName;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nPLkotlin/reflect/jvm/internal/impl/name/FqName;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;Lkotlin/reflect/jvm/internal/impl/name/FqName;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->asString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->asString()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->child(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->child(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->equals(Ljava/lang/Object;)Z\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->hashCode()I\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->isRoot()Z\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->isRoot()Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->parent()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->parent()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->pathSegments()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->pathSegments()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->shortName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->shortName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->shortNameOrSpecial()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->shortNameOrSpecial()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->startsWith(Lkotlin/reflect/jvm/internal/impl/name/Name;)Z\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->startsWith(Lkotlin/reflect/jvm/internal/impl/name/Name;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->toString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->toString()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->toUnsafe()Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->toUnsafe()Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqName;->topLevel(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/FqName;->topLevel(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><init>(Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><init>(Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><init>(Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><init>(Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;-><init>(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->asString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->asString()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->child(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->child(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->compute()V\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->compute()V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->equals(Ljava/lang/Object;)Z\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->hashCode()I\nHPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->hashCode()I\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->isRoot()Z\nHPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->isRoot()Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->parent()Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->parent()Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->pathSegments()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->pathSegments()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->shortName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->shortName()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->shortNameOrSpecial()Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->shortNameOrSpecial()Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->startsWith(Lkotlin/reflect/jvm/internal/impl/name/Name;)Z\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->startsWith(Lkotlin/reflect/jvm/internal/impl/name/Name;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->toSafe()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->toSafe()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->toString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->toString()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->topLevel(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;->topLevel(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe$1;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->findValueForMostSpecificFqname(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Map;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->findValueForMostSpecificFqname(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Map;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->isChildOf(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->isChildOf(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->isSubpackageOf(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->isSubpackageOf(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->parentOrNull(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->parentOrNull(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->tail(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/FqNamesUtilKt;->tail(Lkotlin/reflect/jvm/internal/impl/name/FqName;Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nLkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;-><init>(Ljava/lang/String;Z)V\nPLkotlin/reflect/jvm/internal/impl/name/Name;-><init>(Ljava/lang/String;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->asString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/Name;->asString()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->equals(Ljava/lang/Object;)Z\nPLkotlin/reflect/jvm/internal/impl/name/Name;->equals(Ljava/lang/Object;)Z\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->getIdentifier()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/Name;->getIdentifier()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->guessByFirstCharacter(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/Name;->guessByFirstCharacter(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/name/Name;->hashCode()I\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->identifier(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/Name;->identifier(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->isSpecial()Z\nPLkotlin/reflect/jvm/internal/impl/name/Name;->isSpecial()Z\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->special(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/Name;\nPLkotlin/reflect/jvm/internal/impl/name/Name;->special(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/Name;\nHSPLkotlin/reflect/jvm/internal/impl/name/Name;->toString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/name/Name;->toString()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/name/SpecialNames;\nHSPLkotlin/reflect/jvm/internal/impl/name/SpecialNames;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/name/SpecialNames;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/SpecialNames;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/name/SpecialNames;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/SpecialNames;->isSafeIdentifier(Lkotlin/reflect/jvm/internal/impl/name/Name;)Z\nPLkotlin/reflect/jvm/internal/impl/name/SpecialNames;->isSafeIdentifier(Lkotlin/reflect/jvm/internal/impl/name/Name;)Z\nLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getArray()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getArray()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_ANNOTATION_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_ANNOTATION_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_COLLECTIONS_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_COLLECTIONS_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_COROUTINES_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_COROUTINES_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_ENUMS_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_ENUMS_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_KOTLIN_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_KOTLIN_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_RANGES_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_RANGES_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_REFLECT_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getBASE_REFLECT_PACKAGE()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getKClass()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getKClass()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getKFunction()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIds;->getKFunction()Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$annotationId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$annotationId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$baseId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$baseId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$collectionsId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$collectionsId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$coroutinesId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$coroutinesId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$enumsId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$enumsId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$inverseMap(Ljava/util/Map;)Ljava/util/Map;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$inverseMap(Ljava/util/Map;)Ljava/util/Map;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$primitiveArrayId(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$primitiveArrayId(Lkotlin/reflect/jvm/internal/impl/name/Name;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$rangesId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$rangesId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$reflectId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$reflectId(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nHSPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$unsignedId(Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nPLkotlin/reflect/jvm/internal/impl/name/StandardClassIdsKt;->access$unsignedId(Lkotlin/reflect/jvm/internal/impl/name/ClassId;)Lkotlin/reflect/jvm/internal/impl/name/ClassId;\nLkotlin/reflect/jvm/internal/impl/protobuf/AbstractMessageLite;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/AbstractMessageLite;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/AbstractMessageLite;-><init>()V\nLkotlin/reflect/jvm/internal/impl/protobuf/AbstractParser;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/AbstractParser;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/AbstractParser;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/AbstractParser;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/AbstractParser;-><init>()V\nLkotlin/reflect/jvm/internal/impl/protobuf/ByteString;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ByteString;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ByteString;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ByteString;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ByteString;-><init>()V\nLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;-><init>(I)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;-><init>(I)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;->add(Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;->add(Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;->getEmptyRegistry()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;->getEmptyRegistry()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;->newInstance()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;->newInstance()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite$ObjectIntPair;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite$ObjectIntPair;-><init>(Ljava/lang/Object;I)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite$ObjectIntPair;-><init>(Ljava/lang/Object;I)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite$ObjectIntPair;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite$ObjectIntPair;->hashCode()I\nLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;-><init>(I)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;-><init>(I)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;->makeImmutable()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;->makeImmutable()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;->newFieldSet()Lkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;\nPLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;->newFieldSet()Lkotlin/reflect/jvm/internal/impl/protobuf/FieldSet;\nLkotlin/reflect/jvm/internal/impl/protobuf/FieldSet$FieldDescriptorLite;\nLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;->newRepeatedGeneratedExtension(Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLiteMap;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;ZLjava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;\nPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;->newRepeatedGeneratedExtension(Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLiteMap;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;ZLjava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;->newSingularGeneratedExtension(Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Ljava/lang/Object;Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLiteMap;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;\nPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite;->newSingularGeneratedExtension(Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Ljava/lang/Object;Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLiteMap;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;\nLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtendableMessage;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtendableMessage;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtendableMessage;-><init>()V\nLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder;\nLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtensionDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtensionDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLiteMap;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;ZZ)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtensionDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLiteMap;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;ZZ)V\nLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Ljava/lang/Object;Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtensionDescriptor;Ljava/lang/Class;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Ljava/lang/Object;Lkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$ExtensionDescriptor;Ljava/lang/Class;)V\nLkotlin/reflect/jvm/internal/impl/protobuf/Internal$EnumLite;\nLkotlin/reflect/jvm/internal/impl/protobuf/InvalidProtocolBufferException;\nLkotlin/reflect/jvm/internal/impl/protobuf/LiteralByteString;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/LiteralByteString;-><init>([B)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/LiteralByteString;-><init>([B)V\nLkotlin/reflect/jvm/internal/impl/protobuf/MessageLite;\nLkotlin/reflect/jvm/internal/impl/protobuf/MessageLiteOrBuilder;\nLkotlin/reflect/jvm/internal/impl/protobuf/Parser;\nLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;-><init>(I)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;-><init>(I)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->getNumArrayEntries()I\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->getNumArrayEntries()I\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->getOverflowEntries()Ljava/lang/Iterable;\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->getOverflowEntries()Ljava/lang/Iterable;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->isImmutable()Z\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->isImmutable()Z\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->makeImmutable()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap;->makeImmutable()V\nLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$1;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$1;-><init>(I)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$1;-><init>(I)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$1;->makeImmutable()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$1;->makeImmutable()V\nLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;->access$700()Ljava/util/Iterator;\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;->access$700()Ljava/util/Iterator;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;->iterable()Ljava/lang/Iterable;\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet;->iterable()Ljava/lang/Iterable;\nLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$1;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$1;->hasNext()Z\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$1;->hasNext()Z\nLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$2;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$2;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$2;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$2;->iterator()Ljava/util/Iterator;\nPLkotlin/reflect/jvm/internal/impl/protobuf/SmallSortedMap$EmptySet$2;->iterator()Ljava/util/Iterator;\nLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;-><init>(Ljava/lang/String;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;I)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;-><init>(Ljava/lang/String;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;I)V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;-><init>(Ljava/lang/String;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;II)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType;-><init>(Ljava/lang/String;ILkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;II)V\nLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$1;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$1;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$1;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$2;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$2;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$2;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$3;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$3;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$3;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$4;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$4;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$FieldType$4;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;)V\nLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;-><init>(Ljava/lang/Object;ILjava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/protobuf/WireFormat$JavaType;-><init>(Ljava/lang/Object;ILjava/lang/String;)V\nLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;-><init>(Ljava/lang/String;IZI)V\nPLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;-><init>(Ljava/lang/String;IZI)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;-><init>(Ljava/lang/String;IZZ)V\nPLkotlin/reflect/jvm/internal/impl/renderer/AnnotationArgumentsRenderingPolicy;-><init>(Ljava/lang/String;IZZ)V\nLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy;\nLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$FULLY_QUALIFIED;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$FULLY_QUALIFIED;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$FULLY_QUALIFIED;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$FULLY_QUALIFIED;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$FULLY_QUALIFIED;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SHORT;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SHORT;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SHORT;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SHORT;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SHORT;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SOURCE_CODE_QUALIFIED;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SOURCE_CODE_QUALIFIED;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SOURCE_CODE_QUALIFIED;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SOURCE_CODE_QUALIFIED;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy$SOURCE_CODE_QUALIFIED;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion;->withOptions(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion;->withOptions(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITHOUT_SUPERTYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$DEBUG_TEXT$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES_WITH_ANNOTATIONS$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$HTML$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1;->invoke(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$ValueParametersHandler;\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$ValueParametersHandler$DEFAULT;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$ValueParametersHandler$DEFAULT;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$ValueParametersHandler$DEFAULT;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$ValueParametersHandler$DEFAULT;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer$ValueParametersHandler$DEFAULT;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->access$renderName(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Ljava/lang/StringBuilder;Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->access$renderName(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Ljava/lang/StringBuilder;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->escape(Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->escape(Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->getBoldOnlyForNamesInHtml()Z\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->getBoldOnlyForNamesInHtml()Z\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->getTextFormat()Lkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->getTextFormat()Lkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->getWithDefinedIn()Z\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->getWithDefinedIn()Z\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->render(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->render(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->renderName(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Ljava/lang/StringBuilder;Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->renderName(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Ljava/lang/StringBuilder;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->renderName(Lkotlin/reflect/jvm/internal/impl/name/Name;Z)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;->renderName(Lkotlin/reflect/jvm/internal/impl/name/Name;Z)Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;-><init>(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;-><init>(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;->visitModuleDeclaration(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;->visitModuleDeclaration(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;->visitModuleDeclaration(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Ljava/lang/StringBuilder;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$RenderDeclarationDescriptorVisitor;->visitModuleDeclaration(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Ljava/lang/StringBuilder;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$functionTypeAnnotationsRenderer$2;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$functionTypeAnnotationsRenderer$2;-><init>(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl$functionTypeAnnotationsRenderer$2;-><init>(Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;-><init>(ILjava/lang/String;Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;-><init>(ILjava/lang/String;Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;->values()[Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;->values()[Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier;\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererModifier$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptions;\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->getBoldOnlyForNamesInHtml()Z\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->getBoldOnlyForNamesInHtml()Z\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->getTextFormat()Lkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->getTextFormat()Lkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->getWithDefinedIn()Z\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->getWithDefinedIn()Z\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->isLocked()Z\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->isLocked()Z\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->lock()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->lock()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setClassifierNamePolicy(Lkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setClassifierNamePolicy(Lkotlin/reflect/jvm/internal/impl/renderer/ClassifierNamePolicy;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setDebugMode(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setDebugMode(Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setModifiers(Ljava/util/Set;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setModifiers(Ljava/util/Set;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setParameterNameRenderingPolicy(Lkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setParameterNameRenderingPolicy(Lkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setReceiverAfterName(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setReceiverAfterName(Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setRenderCompanionObjectName(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setRenderCompanionObjectName(Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setStartFromName(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setStartFromName(Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setTextFormat(Lkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setTextFormat(Lkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setWithDefinedIn(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setWithDefinedIn(Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setWithoutSuperTypes(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setWithoutSuperTypes(Z)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setWithoutTypeParameters(Z)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;->setWithoutTypeParameters(Z)V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$defaultParameterValueRenderer$2;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$defaultParameterValueRenderer$2;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$defaultParameterValueRenderer$2;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$defaultParameterValueRenderer$2;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$defaultParameterValueRenderer$2;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$property$$inlined$vetoable$1;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$property$$inlined$vetoable$1;-><init>(Ljava/lang/Object;Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$property$$inlined$vetoable$1;-><init>(Ljava/lang/Object;Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl;)V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$property$$inlined$vetoable$1;->beforeChange(Lkotlin/reflect/KProperty;Ljava/lang/Object;Ljava/lang/Object;)Z\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$property$$inlined$vetoable$1;->beforeChange(Lkotlin/reflect/KProperty;Ljava/lang/Object;Ljava/lang/Object;)Z\nLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$typeNormalizer$2;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$typeNormalizer$2;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$typeNormalizer$2;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$typeNormalizer$2;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererOptionsImpl$typeNormalizer$2;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;->getInternalAnnotationsForResolve()Ljava/util/Set;\nPLkotlin/reflect/jvm/internal/impl/renderer/ExcludedTypeAnnotations;->getInternalAnnotationsForResolve()Ljava/util/Set;\nLkotlin/reflect/jvm/internal/impl/renderer/KeywordStringsGenerated;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/KeywordStringsGenerated;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/KeywordStringsGenerated;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/renderer/OverrideRenderingPolicy;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/OverrideRenderingPolicy;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/OverrideRenderingPolicy;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/OverrideRenderingPolicy;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/renderer/OverrideRenderingPolicy;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/renderer/ParameterNameRenderingPolicy;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/renderer/PropertyAccessorRenderingPolicy;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/PropertyAccessorRenderingPolicy;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/PropertyAccessorRenderingPolicy;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/PropertyAccessorRenderingPolicy;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/renderer/PropertyAccessorRenderingPolicy;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;-><init>(Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat;-><init>(Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$HTML;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$HTML;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$HTML;-><init>()V\nLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$PLAIN;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$PLAIN;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$PLAIN;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$PLAIN;->escape(Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/renderer/RenderingFormat$PLAIN;->escape(Ljava/lang/String;)Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/renderer/RenderingUtilsKt;\nHSPLkotlin/reflect/jvm/internal/impl/renderer/RenderingUtilsKt;->render(Lkotlin/reflect/jvm/internal/impl/name/Name;)Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/renderer/RenderingUtilsKt;->render(Lkotlin/reflect/jvm/internal/impl/name/Name;)Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getContainingModule(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getContainingModule(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getContainingModuleOrNull(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getContainingModuleOrNull(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getFqName(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getFqName(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getFqNameSafeIfPossible(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getFqNameSafeIfPossible(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getFqNameUnsafe(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->getFqNameUnsafe(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/name/FqNameUnsafe;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isAnonymousObject(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isAnonymousObject(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isClass(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isClass(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isDescriptorWithLocalVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isDescriptorWithLocalVisibility(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isKindOf(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;)Z\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isKindOf(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/ClassKind;)Z\nHSPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isLocal(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nPLkotlin/reflect/jvm/internal/impl/resolve/DescriptorUtils;->isLocal(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nLkotlin/reflect/jvm/internal/impl/resolve/ExternalOverridabilityCondition;\nLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;-><init>(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeChecker$TypeConstructorEquality;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;-><init>(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeChecker$TypeConstructorEquality;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;->createWithTypeRefiner(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;\nPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;->createWithTypeRefiner(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil;\nLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil$1;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/OverridingUtil$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/resolve/ResolutionAnchorProvider;\nLkotlin/reflect/jvm/internal/impl/resolve/ResolutionAnchorProviderKt;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/ResolutionAnchorProviderKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/ResolutionAnchorProviderKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/ResolutionAnchorProviderKt;->getResolutionAnchorIfAny(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/resolve/ResolutionAnchorProviderKt;->getResolutionAnchorIfAny(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;->getKotlinTypeRefiner(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nPLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;->getKotlinTypeRefiner(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;->getModule(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/resolve/descriptorUtil/DescriptorUtilsKt;->getModule(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nLkotlin/reflect/jvm/internal/impl/resolve/jvm/CompositeSyntheticJavaPartsProvider;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/CompositeSyntheticJavaPartsProvider;-><init>(Ljava/util/List;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/CompositeSyntheticJavaPartsProvider;-><init>(Ljava/util/List;)V\nLkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;-><init>(Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/load/java/components/JavaResolverCache;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;->getPackageFragmentProvider()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JavaDescriptorResolver;->getPackageFragmentProvider()Lkotlin/reflect/jvm/internal/impl/load/java/lazy/LazyJavaPackageFragmentProvider;\nLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;-><init>(Ljava/lang/String;ILkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;-><init>(Ljava/lang/String;ILkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->get(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->get(Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getDesc()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getDesc()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getJavaKeywordName()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getJavaKeywordName()Ljava/lang/String;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getPrimitiveType()Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getPrimitiveType()Lkotlin/reflect/jvm/internal/impl/builtins/PrimitiveType;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getWrapperFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->getWrapperFqName()Lkotlin/reflect/jvm/internal/impl/name/FqName;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->values()[Lkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;->values()[Lkotlin/reflect/jvm/internal/impl/resolve/jvm/JvmPrimitiveType;\nLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;->getEMPTY()Lkotlin/reflect/jvm/internal/impl/resolve/jvm/CompositeSyntheticJavaPartsProvider;\nPLkotlin/reflect/jvm/internal/impl/resolve/jvm/SyntheticJavaPartsProvider$Companion;->getEMPTY()Lkotlin/reflect/jvm/internal/impl/resolve/jvm/CompositeSyntheticJavaPartsProvider;\nLkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;\nLkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolverImpl;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolverImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Ljava/lang/Iterable;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolverImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Ljava/lang/Iterable;)V\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/AbstractScopeAdapter;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/AbstractScopeAdapter;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/AbstractScopeAdapter;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/AbstractScopeAdapter;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/AbstractScopeAdapter;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;-><init>(Ljava/lang/String;[Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;-><init>(Ljava/lang/String;[Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope;->getContributedClassifier(Lkotlin/reflect/jvm/internal/impl/name/Name;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupLocation;)Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;->create(Ljava/lang/String;Ljava/lang/Iterable;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;->create(Ljava/lang/String;Ljava/lang/Iterable;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;->createOrSingle$descriptors(Ljava/lang/String;Ljava/util/List;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/ChainedMemberScope$Companion;->createOrSingle$descriptors(Ljava/lang/String;Ljava/util/List;)Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/InnerClassesScopeWrapper;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/InnerClassesScopeWrapper;-><init>(Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/InnerClassesScopeWrapper;-><init>(Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;)V\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter;->getWorkerScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter;->getWorkerScope()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;->invoke()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/LazyScopeAdapter$lazyScope$1;->invoke()Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope$Empty;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope$Empty;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope$Empty;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope$Empty;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope$Empty;-><init>()V\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScopeImpl;\nHSPLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScopeImpl;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScopeImpl;-><init>()V\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/ResolutionScope;\nLkotlin/reflect/jvm/internal/impl/resolve/scopes/receivers/ReceiverValue;\nLkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;-><init>(Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;Lkotlin/reflect/jvm/internal/impl/protobuf/GeneratedMessageLite$GeneratedExtension;)V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;->getExtensionRegistry()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nPLkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;->getExtensionRegistry()Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/KotlinMetadataFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/KotlinMetadataFinder;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;->collectPackageFragments(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;->collectPackageFragments(Lkotlin/reflect/jvm/internal/impl/name/FqName;Ljava/util/Collection;)V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;->getFinder()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/KotlinMetadataFinder;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;->getFinder()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/KotlinMetadataFinder;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;->setComponents(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;->setComponents(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider;)V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentDescriptor;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AbstractDeserializedPackageFragmentProvider$fragments$1;->invoke(Lkotlin/reflect/jvm/internal/impl/name/FqName;)Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentDescriptor;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoader;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoaderImpl;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoaderImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoaderImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/SerializerExtensionProtocol;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationDeserializer;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationDeserializer;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationDeserializer;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationLoader;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDataFinder;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer$classes$1;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer$classes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer$classes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDeserializer;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;->getDEFAULT()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion;->getDEFAULT()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion$DEFAULT$1;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion$DEFAULT$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer$Companion$DEFAULT$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDataFinder;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoader;Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer;Ljava/lang/Iterable;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/EnumEntriesDeserializationSupport;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDataFinder;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoader;Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer;Ljava/lang/Iterable;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/EnumEntriesDeserializationSupport;)V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDataFinder;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoader;Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer;Ljava/lang/Iterable;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/EnumEntriesDeserializationSupport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ClassDataFinder;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/AnnotationAndConstantLoader;Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;Lkotlin/reflect/jvm/internal/impl/incremental/components/LookupTracker;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer;Ljava/lang/Iterable;Lkotlin/reflect/jvm/internal/impl/descriptors/NotFoundClasses;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/ContractDeserializer;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/AdditionalClassPartsProvider;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentDeclarationFilter;Lkotlin/reflect/jvm/internal/impl/protobuf/ExtensionRegistryLite;Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;Lkotlin/reflect/jvm/internal/impl/resolve/sam/SamConversionResolver;Lkotlin/reflect/jvm/internal/impl/descriptors/deserialization/PlatformDependentTypeTransformer;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/EnumEntriesDeserializationSupport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;->getConfiguration()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;->getConfiguration()Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;->getModuleDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;->getModuleDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;->getStorageManager()Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationComponents;->getStorageManager()Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;->getBinaryVersion()Lkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration$Default;->getBinaryVersion()Lkotlin/reflect/jvm/internal/impl/metadata/deserialization/BinaryVersion;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializedClassDataFinder;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializedClassDataFinder;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;)V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializedClassDataFinder;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/PackageFragmentProvider;)V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/EnumEntriesDeserializationSupport;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter$1;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/ErrorReporter$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer$ThrowException;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer$ThrowException;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer$ThrowException;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer$ThrowException;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/FlexibleTypeDeserializer$ThrowException;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/JvmEnumEntriesDeserializationSupport;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/JvmEnumEntriesDeserializationSupport;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/JvmEnumEntriesDeserializationSupport;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/JvmEnumEntriesDeserializationSupport;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/JvmEnumEntriesDeserializationSupport;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/KotlinMetadataFinder;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings;\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings$Default;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/LocalClassifierTypeSettings$Default;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInSerializerProtocol;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInSerializerProtocol;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInSerializerProtocol;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInSerializerProtocol;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInSerializerProtocol;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader;\nHSPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader;-><init>()V\nLkotlin/reflect/jvm/internal/impl/serialization/deserialization/descriptors/DeserializedContainerSource;\nLkotlin/reflect/jvm/internal/impl/storage/CacheWithNotNullValues;\nLkotlin/reflect/jvm/internal/impl/storage/CacheWithNullableValues;\nLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;\nHSPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;-><init>(Ljava/util/concurrent/locks/Lock;)V\nPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;-><init>(Ljava/util/concurrent/locks/Lock;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;-><init>(Ljava/util/concurrent/locks/Lock;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;-><init>(Ljava/util/concurrent/locks/Lock;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;->lock()V\nPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;->lock()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;->unlock()V\nPLkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;->unlock()V\nLkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;\nHSPLkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;-><init>()V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><init>(Ljava/lang/String;Ljava/lang/Runnable;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><init>(Ljava/lang/String;Ljava/lang/Runnable;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><init>(Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;Lkotlin/reflect/jvm/internal/impl/storage/SimpleLock;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><init>(Ljava/lang/String;Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;Lkotlin/reflect/jvm/internal/impl/storage/SimpleLock;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;Lkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;Lkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->compute(Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->compute(Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createCacheWithNotNullValues()Lkotlin/reflect/jvm/internal/impl/storage/CacheWithNotNullValues;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createCacheWithNotNullValues()Lkotlin/reflect/jvm/internal/impl/storage/CacheWithNotNullValues;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createCacheWithNullableValues()Lkotlin/reflect/jvm/internal/impl/storage/CacheWithNullableValues;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createCacheWithNullableValues()Lkotlin/reflect/jvm/internal/impl/storage/CacheWithNullableValues;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createLazyValue(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createLazyValue(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createLazyValueWithPostCompute(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createLazyValueWithPostCompute(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunction(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNotNull;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunction(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNotNull;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunction(Lkotlin/jvm/functions/Function1;Ljava/util/concurrent/ConcurrentMap;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNotNull;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunction(Lkotlin/jvm/functions/Function1;Ljava/util/concurrent/ConcurrentMap;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNotNull;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunctionWithNullableValues(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNullable;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunctionWithNullableValues(Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNullable;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunctionWithNullableValues(Lkotlin/jvm/functions/Function1;Ljava/util/concurrent/ConcurrentMap;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNullable;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createMemoizedFunctionWithNullableValues(Lkotlin/jvm/functions/Function1;Ljava/util/concurrent/ConcurrentMap;)Lkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNullable;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createNullableLazyValue(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/impl/storage/NullableLazyValue;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createNullableLazyValue(Lkotlin/jvm/functions/Function0;)Lkotlin/reflect/jvm/internal/impl/storage/NullableLazyValue;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createRecursionTolerantLazyValue(Lkotlin/jvm/functions/Function0;Ljava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;->createRecursionTolerantLazyValue(Lkotlin/jvm/functions/Function0;Ljava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$1;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$1;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;Lkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$1;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;Lkotlin/reflect/jvm/internal/impl/storage/EmptySimpleLock;)V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$4;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$4;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;Ljava/lang/Object;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$4;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;Ljava/lang/Object;)V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$5;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$5;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$5;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNotNullValuesBasedOnMemoizedFunction;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNotNullValuesBasedOnMemoizedFunction;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentHashMap;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNotNullValuesBasedOnMemoizedFunction;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentHashMap;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNotNullValuesBasedOnMemoizedFunction;->computeIfAbsent(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNotNullValuesBasedOnMemoizedFunction;->computeIfAbsent(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentHashMap;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentHashMap;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction;->computeIfAbsent(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction;->computeIfAbsent(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;->invoke(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$CacheWithNullableValuesBasedOnMemoizedFunction$1;->invoke(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy$1;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$ExceptionHandlingStrategy$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;->access$400(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;)Lkotlin/jvm/functions/Function0;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;->access$400(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;)Lkotlin/jvm/functions/Function0;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$KeyWithComputation;->hashCode()I\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;->invoke()Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;->postCompute(Ljava/lang/Object;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValue;->postCompute(Ljava/lang/Object;)V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValueWithPostCompute;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValueWithPostCompute;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedLazyValueWithPostCompute;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValue;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValue;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValue;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValue;->invoke()Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValue;->invoke()Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValueWithPostCompute;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValueWithPostCompute;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$LockBasedNotNullLazyValueWithPostCompute;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Lkotlin/jvm/functions/Function0;)V\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunction;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunction;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentMap;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunction;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentMap;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunction;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunction;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentMap;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager;Ljava/util/concurrent/ConcurrentMap;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$NotValue;\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$NotValue;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$NotValue;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$NotValue;-><init>(Ljava/lang/String;I)V\nPLkotlin/reflect/jvm/internal/impl/storage/LockBasedStorageManager$NotValue;-><init>(Ljava/lang/String;I)V\nLkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNotNull;\nLkotlin/reflect/jvm/internal/impl/storage/MemoizedFunctionToNullable;\nLkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;\nLkotlin/reflect/jvm/internal/impl/storage/NullableLazyValue;\nLkotlin/reflect/jvm/internal/impl/storage/SimpleLock;\nHSPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;->simpleLock(Ljava/lang/Runnable;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;\nPLkotlin/reflect/jvm/internal/impl/storage/SimpleLock$Companion;->simpleLock(Ljava/lang/Runnable;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/storage/DefaultSimpleLock;\nLkotlin/reflect/jvm/internal/impl/storage/StorageKt;\nHSPLkotlin/reflect/jvm/internal/impl/storage/StorageKt;->getValue(Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/storage/StorageKt;->getValue(Lkotlin/reflect/jvm/internal/impl/storage/NotNullLazyValue;Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/storage/StorageManager;\nLkotlin/reflect/jvm/internal/impl/types/AbstractClassTypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractClassTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractClassTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nLkotlin/reflect/jvm/internal/impl/types/AbstractStubType;\nLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$1;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;)V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$1;-><init>(Lkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;)V\nLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$2;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$2;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$2;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$2;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$2;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$3;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$3;-><init>(Lkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;)V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor$supertypes$3;-><init>(Lkotlin/reflect/jvm/internal/impl/types/AbstractTypeConstructor;)V\nLkotlin/reflect/jvm/internal/impl/types/AbstractTypePreparator;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypePreparator;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypePreparator;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/AbstractTypeRefiner;\nHSPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeRefiner;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/AbstractTypeRefiner;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/ClassTypeConstructorImpl;\nHSPLkotlin/reflect/jvm/internal/impl/types/ClassTypeConstructorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Ljava/util/List;Ljava/util/Collection;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nPLkotlin/reflect/jvm/internal/impl/types/ClassTypeConstructorImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassDescriptor;Ljava/util/List;Ljava/util/Collection;Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/ClassTypeConstructorImpl;->getParameters()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/types/ClassTypeConstructorImpl;->getParameters()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/types/ClassifierBasedTypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/types/ClassifierBasedTypeConstructor;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/ClassifierBasedTypeConstructor;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/ClassifierBasedTypeConstructor;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/types/ClassifierBasedTypeConstructor;->hashCode()I\nLkotlin/reflect/jvm/internal/impl/types/CustomTypeParameter;\nLkotlin/reflect/jvm/internal/impl/types/DefaultTypeAttributeTranslator;\nHSPLkotlin/reflect/jvm/internal/impl/types/DefaultTypeAttributeTranslator;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/DefaultTypeAttributeTranslator;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/DefaultTypeAttributeTranslator;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/DefaultTypeAttributeTranslator;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/DefinitelyNotNullType;\nLkotlin/reflect/jvm/internal/impl/types/DelegatingSimpleType;\nHSPLkotlin/reflect/jvm/internal/impl/types/DelegatingSimpleType;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/DelegatingSimpleType;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;\nHSPLkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/FlexibleType;\nLkotlin/reflect/jvm/internal/impl/types/FlexibleTypesKt;\nHSPLkotlin/reflect/jvm/internal/impl/types/FlexibleTypesKt;->isFlexible(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nPLkotlin/reflect/jvm/internal/impl/types/FlexibleTypesKt;->isFlexible(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nLkotlin/reflect/jvm/internal/impl/types/IntersectionTypeConstructor;\nLkotlin/reflect/jvm/internal/impl/types/KotlinType;\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinType;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/KotlinType;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinType;->hashCode()I\nPLkotlin/reflect/jvm/internal/impl/types/KotlinType;->hashCode()I\nLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;->simpleType$default(Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;->simpleType$default(Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;ILjava/lang/Object;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;->simpleType(Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;->simpleType(Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;->simpleTypeWithNonTrivialMemberScope(Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory;->simpleTypeWithNonTrivialMemberScope(Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory$EMPTY_REFINED_TYPE_FACTORY$1;\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory$EMPTY_REFINED_TYPE_FACTORY$1;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory$EMPTY_REFINED_TYPE_FACTORY$1;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory$EMPTY_REFINED_TYPE_FACTORY$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeFactory$EMPTY_REFINED_TYPE_FACTORY$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/KotlinTypeKt;\nHSPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeKt;->isError(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nPLkotlin/reflect/jvm/internal/impl/types/KotlinTypeKt;->isError(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nLkotlin/reflect/jvm/internal/impl/types/LazyWrappedType;\nHSPLkotlin/reflect/jvm/internal/impl/types/LazyWrappedType;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function0;)V\nPLkotlin/reflect/jvm/internal/impl/types/LazyWrappedType;-><init>(Lkotlin/reflect/jvm/internal/impl/storage/StorageManager;Lkotlin/jvm/functions/Function0;)V\nLkotlin/reflect/jvm/internal/impl/types/SimpleType;\nHSPLkotlin/reflect/jvm/internal/impl/types/SimpleType;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/SimpleType;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;\nHSPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)V\nPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Ljava/util/List;ZLkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;->getArguments()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;->getArguments()Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;->getConstructor()Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;->getConstructor()Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;->isMarkedNullable()Z\nPLkotlin/reflect/jvm/internal/impl/types/SimpleTypeImpl;->isMarkedNullable()Z\nLkotlin/reflect/jvm/internal/impl/types/SpecialTypesKt;\nHSPLkotlin/reflect/jvm/internal/impl/types/SpecialTypesKt;->isDefinitelyNotNullType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nPLkotlin/reflect/jvm/internal/impl/types/SpecialTypesKt;->isDefinitelyNotNullType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nLkotlin/reflect/jvm/internal/impl/types/TypeAttributeTranslator;\nLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;-><init>(Ljava/util/List;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;-><init>(Ljava/util/List;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;->access$getEmpty$cp()Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;\nPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes;->access$getEmpty$cp()Lkotlin/reflect/jvm/internal/impl/types/TypeAttributes;\nLkotlin/reflect/jvm/internal/impl/types/TypeAttributes$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeAttributes$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/types/TypeConstructor;\nLkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;-><init>(ZZ)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;-><init>(ZZ)V\nLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;-><init>(Lkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;Lkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;-><init>(Lkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;Lkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;-><init>(Lkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;Lkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;-><init>(Lkotlin/reflect/jvm/internal/impl/types/ErasureProjectionComputer;Lkotlin/reflect/jvm/internal/impl/types/TypeParameterErasureOptions;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$erroneousErasedBound$2;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$erroneousErasedBound$2;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$erroneousErasedBound$2;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;)V\nLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$getErasedUpperBound$1;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$getErasedUpperBound$1;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser$getErasedUpperBound$1;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeParameterUpperBoundEraser;)V\nLkotlin/reflect/jvm/internal/impl/types/TypeUtils;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->getDefaultTypeProjections(Ljava/util/List;)Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->getDefaultTypeProjections(Ljava/util/List;)Ljava/util/List;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->getTypeParameterDescriptorOrNull(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Lkotlin/reflect/jvm/internal/impl/descriptors/TypeParameterDescriptor;\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->getTypeParameterDescriptorOrNull(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Lkotlin/reflect/jvm/internal/impl/descriptors/TypeParameterDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->isNullableType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->isNullableType(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->isTypeParameter(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->isTypeParameter(Lkotlin/reflect/jvm/internal/impl/types/KotlinType;)Z\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->makeUnsubstitutedType(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->makeUnsubstitutedType(Lkotlin/reflect/jvm/internal/impl/descriptors/ClassifierDescriptor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->makeUnsubstitutedType(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils;->makeUnsubstitutedType(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/jvm/functions/Function1;)Lkotlin/reflect/jvm/internal/impl/types/SimpleType;\nLkotlin/reflect/jvm/internal/impl/types/TypeUtils$SpecialType;\nHSPLkotlin/reflect/jvm/internal/impl/types/TypeUtils$SpecialType;-><init>(Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/types/TypeUtils$SpecialType;-><init>(Ljava/lang/String;)V\nLkotlin/reflect/jvm/internal/impl/types/UnwrappedType;\nHSPLkotlin/reflect/jvm/internal/impl/types/UnwrappedType;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/UnwrappedType;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/UnwrappedType;->unwrap()Lkotlin/reflect/jvm/internal/impl/types/UnwrappedType;\nPLkotlin/reflect/jvm/internal/impl/types/UnwrappedType;->unwrap()Lkotlin/reflect/jvm/internal/impl/types/UnwrappedType;\nLkotlin/reflect/jvm/internal/impl/types/WrappedType;\nHSPLkotlin/reflect/jvm/internal/impl/types/WrappedType;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/WrappedType;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeChecker;\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeChecker$TypeConstructorEquality;\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator$Default;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;->isRefinementNeededForModule(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)Z\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner$Default;->isRefinementNeededForModule(Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;)Z\nLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefinerKt;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefinerKt;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefinerKt;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefinerKt;->getREFINER_CAPABILITY()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;\nPLkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefinerKt;->getREFINER_CAPABILITY()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleCapability;\nLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker;-><clinit>()V\nLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;->getDefault()Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeChecker$Companion;->getDefault()Lkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;\nLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;)V\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;-><init>(Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypePreparator;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;->getKotlinTypeRefiner()Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nPLkotlin/reflect/jvm/internal/impl/types/checker/NewKotlinTypeCheckerImpl;->getKotlinTypeRefiner()Lkotlin/reflect/jvm/internal/impl/types/checker/KotlinTypeRefiner;\nLkotlin/reflect/jvm/internal/impl/types/checker/NewTypeVariableConstructor;\nLkotlin/reflect/jvm/internal/impl/types/checker/Ref;\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorClassDescriptor;-><init>(Lkotlin/reflect/jvm/internal/impl/name/Name;)V\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;->getDebugText()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorEntity;->getDebugText()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor$builtIns$2;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor$builtIns$2;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor$builtIns$2;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor$builtIns$2;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorModuleDescriptor$builtIns$2;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorPropertyDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorPropertyDescriptor;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorPropertyDescriptor;-><init>()V\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;-><init>(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;[Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;-><init>(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;[Ljava/lang/String;)V\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;->getDebugMessage()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;->getDebugMessage()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorType;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;Z[Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorType;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;Z[Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorType;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;Z[Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorType;-><init>(Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;Lkotlin/reflect/jvm/internal/impl/resolve/scopes/MemberScope;Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;Z[Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;[Ljava/lang/String;)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;-><init>(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;[Ljava/lang/String;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;->toString()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;->toString()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;-><init>(Ljava/lang/String;Ljava/lang/String;IZ)V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;-><init>(Ljava/lang/String;Ljava/lang/String;IZ)V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;->getDebugMessage()Ljava/lang/String;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;->getDebugMessage()Ljava/lang/String;\nLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorScope(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;Z[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorScope(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;Z[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorScope(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorScope(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScopeKind;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorScope;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorType(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorType(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorTypeConstructor(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorTypeConstructor(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeConstructor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorTypeWithArguments(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorTypeWithArguments(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;Lkotlin/reflect/jvm/internal/impl/types/TypeConstructor;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorTypeWithArguments(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->createErrorTypeWithArguments(Lkotlin/reflect/jvm/internal/impl/types/error/ErrorTypeKind;Ljava/util/List;[Ljava/lang/String;)Lkotlin/reflect/jvm/internal/impl/types/error/ErrorType;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->getErrorClass()Lkotlin/reflect/jvm/internal/impl/types/error/ErrorClassDescriptor;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->getErrorClass()Lkotlin/reflect/jvm/internal/impl/types/error/ErrorClassDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->getErrorModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->getErrorModule()Lkotlin/reflect/jvm/internal/impl/descriptors/ModuleDescriptor;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->getErrorPropertyType()Lkotlin/reflect/jvm/internal/impl/types/KotlinType;\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->getErrorPropertyType()Lkotlin/reflect/jvm/internal/impl/types/KotlinType;\nHSPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->isError(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nPLkotlin/reflect/jvm/internal/impl/types/error/ErrorUtils;->isError(Lkotlin/reflect/jvm/internal/impl/descriptors/DeclarationDescriptor;)Z\nLkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;\nHSPLkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;-><init>(Ljava/util/List;)V\nPLkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;-><init>(Ljava/util/List;)V\nHSPLkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;->getTranslators()Ljava/util/List;\nPLkotlin/reflect/jvm/internal/impl/types/extensions/TypeAttributeTranslators;->getTranslators()Ljava/util/List;\nLkotlin/reflect/jvm/internal/impl/types/model/DefinitelyNotNullTypeMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/FlexibleTypeMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/IntersectionTypeConstructorMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/KotlinTypeMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/SimpleTypeMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/TypeArgumentListMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/TypeConstructorMarker;\nLkotlin/reflect/jvm/internal/impl/types/model/TypeParameterMarker;\nLkotlin/reflect/jvm/internal/impl/util/AbstractArrayMapOwner;\nHSPLkotlin/reflect/jvm/internal/impl/util/AbstractArrayMapOwner;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/util/AbstractArrayMapOwner;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/util/AbstractArrayMapOwner;->isEmpty()Z\nPLkotlin/reflect/jvm/internal/impl/util/AbstractArrayMapOwner;->isEmpty()Z\nLkotlin/reflect/jvm/internal/impl/util/ArrayMap;\nHSPLkotlin/reflect/jvm/internal/impl/util/ArrayMap;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/reflect/jvm/internal/impl/util/ArrayMap;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;\nHSPLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;-><init>(Lkotlin/reflect/jvm/internal/impl/util/ArrayMap;)V\nPLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;-><init>(Lkotlin/reflect/jvm/internal/impl/util/ArrayMap;)V\nHSPLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;->getArrayMap()Lkotlin/reflect/jvm/internal/impl/util/ArrayMap;\nPLkotlin/reflect/jvm/internal/impl/util/AttributeArrayOwner;->getArrayMap()Lkotlin/reflect/jvm/internal/impl/util/ArrayMap;\nLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;\nHSPLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;->getSize()I\nPLkotlin/reflect/jvm/internal/impl/util/EmptyArrayMap;->getSize()I\nLkotlin/reflect/jvm/internal/impl/util/ModuleVisibilityHelper;\nLkotlin/reflect/jvm/internal/impl/util/ModuleVisibilityHelper$EMPTY;\nHSPLkotlin/reflect/jvm/internal/impl/util/ModuleVisibilityHelper$EMPTY;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/util/ModuleVisibilityHelper$EMPTY;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/util/ModuleVisibilityHelper$EMPTY;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/util/ModuleVisibilityHelper$EMPTY;-><init>()V\nLkotlin/reflect/jvm/internal/impl/util/TypeRegistry;\nHSPLkotlin/reflect/jvm/internal/impl/util/TypeRegistry;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/util/TypeRegistry;-><init>()V\nLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;\nHSPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->addIfNotNull(Ljava/util/Collection;Ljava/lang/Object;)V\nPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->addIfNotNull(Ljava/util/Collection;Ljava/lang/Object;)V\nHSPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->mapToIndex(Ljava/lang/Iterable;)Ljava/util/Map;\nPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->mapToIndex(Ljava/lang/Iterable;)Ljava/util/Map;\nHSPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->newHashMapWithExpectedSize(I)Ljava/util/HashMap;\nPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->newHashMapWithExpectedSize(I)Ljava/util/HashMap;\nHSPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->newHashSetWithExpectedSize(I)Ljava/util/HashSet;\nPLkotlin/reflect/jvm/internal/impl/utils/CollectionsKt;->newHashSetWithExpectedSize(I)Ljava/util/HashSet;\nLkotlin/reflect/jvm/internal/impl/utils/DeserializationHelpersKt;\nHSPLkotlin/reflect/jvm/internal/impl/utils/DeserializationHelpersKt;->jvmMetadataVersionOrDefault(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;)Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nPLkotlin/reflect/jvm/internal/impl/utils/DeserializationHelpersKt;->jvmMetadataVersionOrDefault(Lkotlin/reflect/jvm/internal/impl/serialization/deserialization/DeserializationConfiguration;)Lkotlin/reflect/jvm/internal/impl/metadata/jvm/deserialization/JvmMetadataVersion;\nLkotlin/reflect/jvm/internal/impl/utils/SmartList;\nHSPLkotlin/reflect/jvm/internal/impl/utils/SmartList;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/utils/SmartList;-><init>()V\nHSPLkotlin/reflect/jvm/internal/impl/utils/SmartList;->add(Ljava/lang/Object;)Z\nPLkotlin/reflect/jvm/internal/impl/utils/SmartList;->add(Ljava/lang/Object;)Z\nHSPLkotlin/reflect/jvm/internal/impl/utils/SmartList;->size()I\nPLkotlin/reflect/jvm/internal/impl/utils/SmartList;->size()I\nHSPLkotlin/reflect/jvm/internal/impl/utils/SmartList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/utils/SmartList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;\nHSPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;-><clinit>()V\nPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;-><clinit>()V\nHSPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;->escapeNull(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;->escapeNull(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;->unescapeThrowable(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues;->unescapeThrowable(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/reflect/jvm/internal/impl/utils/WrappedValues$1;\nHSPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues$1;-><init>()V\nPLkotlin/reflect/jvm/internal/impl/utils/WrappedValues$1;-><init>()V\nLkotlin/reflect/jvm/internal/impl/utils/WrappedValues$ThrowableWrapper;\nLkotlin/sequences/ConstrainedOnceSequence;\nHSPLkotlin/sequences/ConstrainedOnceSequence;-><init>(Lkotlin/sequences/Sequence;)V\nPLkotlin/sequences/ConstrainedOnceSequence;-><init>(Lkotlin/sequences/Sequence;)V\nHSPLkotlin/sequences/ConstrainedOnceSequence;->iterator()Ljava/util/Iterator;\nPLkotlin/sequences/ConstrainedOnceSequence;->iterator()Ljava/util/Iterator;\nLkotlin/sequences/FilteringSequence;\nHSPLkotlin/sequences/FilteringSequence;-><init>(Lkotlin/sequences/Sequence;ZLkotlin/jvm/functions/Function1;)V\nHPLkotlin/sequences/FilteringSequence;-><init>(Lkotlin/sequences/Sequence;ZLkotlin/jvm/functions/Function1;)V\nHSPLkotlin/sequences/FilteringSequence;->access$getPredicate$p(Lkotlin/sequences/FilteringSequence;)Lkotlin/jvm/functions/Function1;\nPLkotlin/sequences/FilteringSequence;->access$getPredicate$p(Lkotlin/sequences/FilteringSequence;)Lkotlin/jvm/functions/Function1;\nHSPLkotlin/sequences/FilteringSequence;->access$getSendWhen$p(Lkotlin/sequences/FilteringSequence;)Z\nPLkotlin/sequences/FilteringSequence;->access$getSendWhen$p(Lkotlin/sequences/FilteringSequence;)Z\nHSPLkotlin/sequences/FilteringSequence;->access$getSequence$p(Lkotlin/sequences/FilteringSequence;)Lkotlin/sequences/Sequence;\nPLkotlin/sequences/FilteringSequence;->access$getSequence$p(Lkotlin/sequences/FilteringSequence;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/FilteringSequence;->iterator()Ljava/util/Iterator;\nPLkotlin/sequences/FilteringSequence;->iterator()Ljava/util/Iterator;\nLkotlin/sequences/FilteringSequence$iterator$1;\nHSPLkotlin/sequences/FilteringSequence$iterator$1;-><init>(Lkotlin/sequences/FilteringSequence;)V\nHPLkotlin/sequences/FilteringSequence$iterator$1;-><init>(Lkotlin/sequences/FilteringSequence;)V\nHSPLkotlin/sequences/FilteringSequence$iterator$1;->calcNext()V\nHPLkotlin/sequences/FilteringSequence$iterator$1;->calcNext()V\nHSPLkotlin/sequences/FilteringSequence$iterator$1;->hasNext()Z\nHPLkotlin/sequences/FilteringSequence$iterator$1;->hasNext()Z\nHSPLkotlin/sequences/FilteringSequence$iterator$1;->next()Ljava/lang/Object;\nPLkotlin/sequences/FilteringSequence$iterator$1;->next()Ljava/lang/Object;\nLkotlin/sequences/GeneratorSequence;\nHSPLkotlin/sequences/GeneratorSequence;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V\nHPLkotlin/sequences/GeneratorSequence;-><init>(Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/sequences/GeneratorSequence;->access$getGetInitialValue$p(Lkotlin/sequences/GeneratorSequence;)Lkotlin/jvm/functions/Function0;\nPLkotlin/sequences/GeneratorSequence;->access$getGetInitialValue$p(Lkotlin/sequences/GeneratorSequence;)Lkotlin/jvm/functions/Function0;\nHSPLkotlin/sequences/GeneratorSequence;->access$getGetNextValue$p(Lkotlin/sequences/GeneratorSequence;)Lkotlin/jvm/functions/Function1;\nPLkotlin/sequences/GeneratorSequence;->access$getGetNextValue$p(Lkotlin/sequences/GeneratorSequence;)Lkotlin/jvm/functions/Function1;\nHSPLkotlin/sequences/GeneratorSequence;->iterator()Ljava/util/Iterator;\nPLkotlin/sequences/GeneratorSequence;->iterator()Ljava/util/Iterator;\nLkotlin/sequences/GeneratorSequence$iterator$1;\nHSPLkotlin/sequences/GeneratorSequence$iterator$1;-><init>(Lkotlin/sequences/GeneratorSequence;)V\nHPLkotlin/sequences/GeneratorSequence$iterator$1;-><init>(Lkotlin/sequences/GeneratorSequence;)V\nHSPLkotlin/sequences/GeneratorSequence$iterator$1;->calcNext()V\nHPLkotlin/sequences/GeneratorSequence$iterator$1;->calcNext()V\nHSPLkotlin/sequences/GeneratorSequence$iterator$1;->hasNext()Z\nHPLkotlin/sequences/GeneratorSequence$iterator$1;->hasNext()Z\nHSPLkotlin/sequences/GeneratorSequence$iterator$1;->next()Ljava/lang/Object;\nHPLkotlin/sequences/GeneratorSequence$iterator$1;->next()Ljava/lang/Object;\nLkotlin/sequences/Sequence;\nLkotlin/sequences/SequenceBuilderIterator;\nHSPLkotlin/sequences/SequenceBuilderIterator;-><init>()V\nPLkotlin/sequences/SequenceBuilderIterator;-><init>()V\nHSPLkotlin/sequences/SequenceBuilderIterator;->getContext()Lkotlin/coroutines/CoroutineContext;\nPLkotlin/sequences/SequenceBuilderIterator;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlin/sequences/SequenceBuilderIterator;->hasNext()Z\nHPLkotlin/sequences/SequenceBuilderIterator;->hasNext()Z\nHSPLkotlin/sequences/SequenceBuilderIterator;->next()Ljava/lang/Object;\nHPLkotlin/sequences/SequenceBuilderIterator;->next()Ljava/lang/Object;\nHSPLkotlin/sequences/SequenceBuilderIterator;->resumeWith(Ljava/lang/Object;)V\nHPLkotlin/sequences/SequenceBuilderIterator;->resumeWith(Ljava/lang/Object;)V\nHSPLkotlin/sequences/SequenceBuilderIterator;->setNextStep(Lkotlin/coroutines/Continuation;)V\nPLkotlin/sequences/SequenceBuilderIterator;->setNextStep(Lkotlin/coroutines/Continuation;)V\nHSPLkotlin/sequences/SequenceBuilderIterator;->yield(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlin/sequences/SequenceBuilderIterator;->yield(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlin/sequences/SequenceScope;\nHSPLkotlin/sequences/SequenceScope;-><init>()V\nHPLkotlin/sequences/SequenceScope;-><init>()V\nLkotlin/sequences/SequencesKt;\nLkotlin/sequences/SequencesKt__SequenceBuilderKt;\nHSPLkotlin/sequences/SequencesKt__SequenceBuilderKt;->iterator(Lkotlin/jvm/functions/Function2;)Ljava/util/Iterator;\nHPLkotlin/sequences/SequencesKt__SequenceBuilderKt;->iterator(Lkotlin/jvm/functions/Function2;)Ljava/util/Iterator;\nHSPLkotlin/sequences/SequencesKt__SequenceBuilderKt;->sequence(Lkotlin/jvm/functions/Function2;)Lkotlin/sequences/Sequence;\nHPLkotlin/sequences/SequencesKt__SequenceBuilderKt;->sequence(Lkotlin/jvm/functions/Function2;)Lkotlin/sequences/Sequence;\nLkotlin/sequences/SequencesKt__SequenceBuilderKt$sequence$$inlined$Sequence$1;\nHSPLkotlin/sequences/SequencesKt__SequenceBuilderKt$sequence$$inlined$Sequence$1;-><init>(Lkotlin/jvm/functions/Function2;)V\nHPLkotlin/sequences/SequencesKt__SequenceBuilderKt$sequence$$inlined$Sequence$1;-><init>(Lkotlin/jvm/functions/Function2;)V\nHSPLkotlin/sequences/SequencesKt__SequenceBuilderKt$sequence$$inlined$Sequence$1;->iterator()Ljava/util/Iterator;\nPLkotlin/sequences/SequencesKt__SequenceBuilderKt$sequence$$inlined$Sequence$1;->iterator()Ljava/util/Iterator;\nLkotlin/sequences/SequencesKt__SequencesJVMKt;\nLkotlin/sequences/SequencesKt__SequencesKt;\nHSPLkotlin/sequences/SequencesKt__SequencesKt;->asSequence(Ljava/util/Iterator;)Lkotlin/sequences/Sequence;\nPLkotlin/sequences/SequencesKt__SequencesKt;->asSequence(Ljava/util/Iterator;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt__SequencesKt;->constrainOnce(Lkotlin/sequences/Sequence;)Lkotlin/sequences/Sequence;\nPLkotlin/sequences/SequencesKt__SequencesKt;->constrainOnce(Lkotlin/sequences/Sequence;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt__SequencesKt;->generateSequence(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHPLkotlin/sequences/SequencesKt__SequencesKt;->generateSequence(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nLkotlin/sequences/SequencesKt__SequencesKt$asSequence$$inlined$Sequence$1;\nHSPLkotlin/sequences/SequencesKt__SequencesKt$asSequence$$inlined$Sequence$1;-><init>(Ljava/util/Iterator;)V\nPLkotlin/sequences/SequencesKt__SequencesKt$asSequence$$inlined$Sequence$1;-><init>(Ljava/util/Iterator;)V\nHSPLkotlin/sequences/SequencesKt__SequencesKt$asSequence$$inlined$Sequence$1;->iterator()Ljava/util/Iterator;\nPLkotlin/sequences/SequencesKt__SequencesKt$asSequence$$inlined$Sequence$1;->iterator()Ljava/util/Iterator;\nLkotlin/sequences/SequencesKt__SequencesKt$generateSequence$2;\nHSPLkotlin/sequences/SequencesKt__SequencesKt$generateSequence$2;-><init>(Ljava/lang/Object;)V\nHPLkotlin/sequences/SequencesKt__SequencesKt$generateSequence$2;-><init>(Ljava/lang/Object;)V\nHSPLkotlin/sequences/SequencesKt__SequencesKt$generateSequence$2;->invoke()Ljava/lang/Object;\nPLkotlin/sequences/SequencesKt__SequencesKt$generateSequence$2;->invoke()Ljava/lang/Object;\nLkotlin/sequences/SequencesKt___SequencesJvmKt;\nLkotlin/sequences/SequencesKt___SequencesKt;\nHPLkotlin/sequences/SequencesKt___SequencesKt;->filter(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt___SequencesKt;->filterNot(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHPLkotlin/sequences/SequencesKt___SequencesKt;->filterNot(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt___SequencesKt;->filterNotNull(Lkotlin/sequences/Sequence;)Lkotlin/sequences/Sequence;\nHPLkotlin/sequences/SequencesKt___SequencesKt;->filterNotNull(Lkotlin/sequences/Sequence;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt___SequencesKt;->firstOrNull(Lkotlin/sequences/Sequence;)Ljava/lang/Object;\nHPLkotlin/sequences/SequencesKt___SequencesKt;->firstOrNull(Lkotlin/sequences/Sequence;)Ljava/lang/Object;\nHPLkotlin/sequences/SequencesKt___SequencesKt;->map(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt___SequencesKt;->mapNotNull(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHPLkotlin/sequences/SequencesKt___SequencesKt;->mapNotNull(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/SequencesKt___SequencesKt;->toList(Lkotlin/sequences/Sequence;)Ljava/util/List;\nPLkotlin/sequences/SequencesKt___SequencesKt;->toList(Lkotlin/sequences/Sequence;)Ljava/util/List;\nLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;\nHSPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;-><clinit>()V\nPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;-><clinit>()V\nHSPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;-><init>()V\nPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;-><init>()V\nHSPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;->invoke(Ljava/lang/Object;)Ljava/lang/Boolean;\nHPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;->invoke(Ljava/lang/Object;)Ljava/lang/Boolean;\nHSPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlin/sequences/SequencesKt___SequencesKt$filterNotNull$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlin/sequences/TransformingSequence;\nHSPLkotlin/sequences/TransformingSequence;-><init>(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)V\nHPLkotlin/sequences/TransformingSequence;-><init>(Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlin/sequences/TransformingSequence;->access$getSequence$p(Lkotlin/sequences/TransformingSequence;)Lkotlin/sequences/Sequence;\nPLkotlin/sequences/TransformingSequence;->access$getSequence$p(Lkotlin/sequences/TransformingSequence;)Lkotlin/sequences/Sequence;\nHSPLkotlin/sequences/TransformingSequence;->access$getTransformer$p(Lkotlin/sequences/TransformingSequence;)Lkotlin/jvm/functions/Function1;\nPLkotlin/sequences/TransformingSequence;->access$getTransformer$p(Lkotlin/sequences/TransformingSequence;)Lkotlin/jvm/functions/Function1;\nHSPLkotlin/sequences/TransformingSequence;->iterator()Ljava/util/Iterator;\nPLkotlin/sequences/TransformingSequence;->iterator()Ljava/util/Iterator;\nLkotlin/sequences/TransformingSequence$iterator$1;\nHSPLkotlin/sequences/TransformingSequence$iterator$1;-><init>(Lkotlin/sequences/TransformingSequence;)V\nHPLkotlin/sequences/TransformingSequence$iterator$1;-><init>(Lkotlin/sequences/TransformingSequence;)V\nHSPLkotlin/sequences/TransformingSequence$iterator$1;->hasNext()Z\nPLkotlin/sequences/TransformingSequence$iterator$1;->hasNext()Z\nHSPLkotlin/sequences/TransformingSequence$iterator$1;->next()Ljava/lang/Object;\nPLkotlin/sequences/TransformingSequence$iterator$1;->next()Ljava/lang/Object;\nLkotlin/text/CharsKt;\nLkotlin/text/CharsKt__CharJVMKt;\nHSPLkotlin/text/CharsKt__CharJVMKt;->checkRadix(I)I\nHPLkotlin/text/CharsKt__CharJVMKt;->checkRadix(I)I\nHSPLkotlin/text/CharsKt__CharJVMKt;->isWhitespace(C)Z\nHPLkotlin/text/CharsKt__CharJVMKt;->isWhitespace(C)Z\nLkotlin/text/CharsKt__CharKt;\nLkotlin/text/Charsets;\nHSPLkotlin/text/Charsets;-><clinit>()V\nPLkotlin/text/Charsets;-><clinit>()V\nHSPLkotlin/text/Charsets;-><init>()V\nPLkotlin/text/Charsets;-><init>()V\nLkotlin/text/MatchGroup;\nHSPLkotlin/text/MatchGroup;-><init>(Ljava/lang/String;Lkotlin/ranges/IntRange;)V\nPLkotlin/text/MatchGroup;-><init>(Ljava/lang/String;Lkotlin/ranges/IntRange;)V\nHSPLkotlin/text/MatchGroup;->getValue()Ljava/lang/String;\nPLkotlin/text/MatchGroup;->getValue()Ljava/lang/String;\nLkotlin/text/MatchGroupCollection;\nLkotlin/text/MatchNamedGroupCollection;\nLkotlin/text/MatchResult;\nLkotlin/text/MatcherMatchResult;\nHSPLkotlin/text/MatcherMatchResult;-><init>(Ljava/util/regex/Matcher;Ljava/lang/CharSequence;)V\nPLkotlin/text/MatcherMatchResult;-><init>(Ljava/util/regex/Matcher;Ljava/lang/CharSequence;)V\nHSPLkotlin/text/MatcherMatchResult;->access$getMatchResult(Lkotlin/text/MatcherMatchResult;)Ljava/util/regex/MatchResult;\nPLkotlin/text/MatcherMatchResult;->access$getMatchResult(Lkotlin/text/MatcherMatchResult;)Ljava/util/regex/MatchResult;\nHSPLkotlin/text/MatcherMatchResult;->getGroupValues()Ljava/util/List;\nPLkotlin/text/MatcherMatchResult;->getGroupValues()Ljava/util/List;\nHSPLkotlin/text/MatcherMatchResult;->getGroups()Lkotlin/text/MatchGroupCollection;\nPLkotlin/text/MatcherMatchResult;->getGroups()Lkotlin/text/MatchGroupCollection;\nHSPLkotlin/text/MatcherMatchResult;->getRange()Lkotlin/ranges/IntRange;\nPLkotlin/text/MatcherMatchResult;->getRange()Lkotlin/ranges/IntRange;\nLkotlin/text/MatcherMatchResult$groupValues$1;\nHSPLkotlin/text/MatcherMatchResult$groupValues$1;-><init>(Lkotlin/text/MatcherMatchResult;)V\nPLkotlin/text/MatcherMatchResult$groupValues$1;-><init>(Lkotlin/text/MatcherMatchResult;)V\nHSPLkotlin/text/MatcherMatchResult$groupValues$1;->get(I)Ljava/lang/Object;\nPLkotlin/text/MatcherMatchResult$groupValues$1;->get(I)Ljava/lang/Object;\nHSPLkotlin/text/MatcherMatchResult$groupValues$1;->get(I)Ljava/lang/String;\nPLkotlin/text/MatcherMatchResult$groupValues$1;->get(I)Ljava/lang/String;\nLkotlin/text/MatcherMatchResult$groups$1;\nHSPLkotlin/text/MatcherMatchResult$groups$1;-><init>(Lkotlin/text/MatcherMatchResult;)V\nPLkotlin/text/MatcherMatchResult$groups$1;-><init>(Lkotlin/text/MatcherMatchResult;)V\nHSPLkotlin/text/MatcherMatchResult$groups$1;->get(I)Lkotlin/text/MatchGroup;\nPLkotlin/text/MatcherMatchResult$groups$1;->get(I)Lkotlin/text/MatchGroup;\nLkotlin/text/Regex;\nHSPLkotlin/text/Regex;-><clinit>()V\nPLkotlin/text/Regex;-><clinit>()V\nHSPLkotlin/text/Regex;-><init>(Ljava/lang/String;)V\nPLkotlin/text/Regex;-><init>(Ljava/lang/String;)V\nHSPLkotlin/text/Regex;-><init>(Ljava/util/regex/Pattern;)V\nPLkotlin/text/Regex;-><init>(Ljava/util/regex/Pattern;)V\nHSPLkotlin/text/Regex;->find(Ljava/lang/CharSequence;I)Lkotlin/text/MatchResult;\nPLkotlin/text/Regex;->find(Ljava/lang/CharSequence;I)Lkotlin/text/MatchResult;\nHSPLkotlin/text/Regex;->matches(Ljava/lang/CharSequence;)Z\nPLkotlin/text/Regex;->matches(Ljava/lang/CharSequence;)Z\nHSPLkotlin/text/Regex;->replace(Ljava/lang/CharSequence;Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/text/Regex;->replace(Ljava/lang/CharSequence;Ljava/lang/String;)Ljava/lang/String;\nLkotlin/text/Regex$Companion;\nHSPLkotlin/text/Regex$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/text/Regex$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/text/RegexKt;\nHSPLkotlin/text/RegexKt;->access$findNext(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Lkotlin/text/MatchResult;\nPLkotlin/text/RegexKt;->access$findNext(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Lkotlin/text/MatchResult;\nHSPLkotlin/text/RegexKt;->access$range(Ljava/util/regex/MatchResult;)Lkotlin/ranges/IntRange;\nPLkotlin/text/RegexKt;->access$range(Ljava/util/regex/MatchResult;)Lkotlin/ranges/IntRange;\nHSPLkotlin/text/RegexKt;->access$range(Ljava/util/regex/MatchResult;I)Lkotlin/ranges/IntRange;\nPLkotlin/text/RegexKt;->access$range(Ljava/util/regex/MatchResult;I)Lkotlin/ranges/IntRange;\nLkotlin/text/StringsKt;\nHSPLkotlin/text/StringsKt;->contains$default(Ljava/lang/CharSequence;C)Z\nPLkotlin/text/StringsKt;->contains$default(Ljava/lang/CharSequence;C)Z\nHSPLkotlin/text/StringsKt;->contains$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z\nPLkotlin/text/StringsKt;->contains$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z\nHSPLkotlin/text/StringsKt;->endsWith$default(Ljava/lang/CharSequence;)Z\nPLkotlin/text/StringsKt;->endsWith$default(Ljava/lang/CharSequence;)Z\nHSPLkotlin/text/StringsKt;->endsWith$default(Ljava/lang/String;Ljava/lang/String;)Z\nPLkotlin/text/StringsKt;->endsWith$default(Ljava/lang/String;Ljava/lang/String;)Z\nHSPLkotlin/text/StringsKt;->equals(Ljava/lang/String;Ljava/lang/String;)Z\nPLkotlin/text/StringsKt;->equals(Ljava/lang/String;Ljava/lang/String;)Z\nHSPLkotlin/text/StringsKt;->indexOf$default(Ljava/lang/CharSequence;CII)I\nPLkotlin/text/StringsKt;->indexOf$default(Ljava/lang/CharSequence;CII)I\nHSPLkotlin/text/StringsKt;->lastIndexOf$default(Ljava/lang/CharSequence;CII)I\nPLkotlin/text/StringsKt;->lastIndexOf$default(Ljava/lang/CharSequence;CII)I\nHSPLkotlin/text/StringsKt;->removeSuffix(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/text/StringsKt;->removeSuffix(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt;->repeat(Ljava/lang/String;I)Ljava/lang/String;\nPLkotlin/text/StringsKt;->repeat(Ljava/lang/String;I)Ljava/lang/String;\nHSPLkotlin/text/StringsKt;->replace$default(Ljava/lang/String;CC)Ljava/lang/String;\nPLkotlin/text/StringsKt;->replace$default(Ljava/lang/String;CC)Ljava/lang/String;\nHSPLkotlin/text/StringsKt;->split$default(Ljava/lang/CharSequence;[C)Ljava/util/List;\nPLkotlin/text/StringsKt;->split$default(Ljava/lang/CharSequence;[C)Ljava/util/List;\nHSPLkotlin/text/StringsKt;->startsWith$default(Ljava/lang/String;Ljava/lang/String;)Z\nPLkotlin/text/StringsKt;->startsWith$default(Ljava/lang/String;Ljava/lang/String;)Z\nHSPLkotlin/text/StringsKt;->startsWith(Ljava/lang/String;Ljava/lang/String;I)Z\nPLkotlin/text/StringsKt;->startsWith(Ljava/lang/String;Ljava/lang/String;I)Z\nHSPLkotlin/text/StringsKt;->substringAfter$default(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/text/StringsKt;->substringAfter$default(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt;->substringAfterLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/text/StringsKt;->substringAfterLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt;->substringBeforeLast$1(Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/text/StringsKt;->substringBeforeLast$1(Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt;->substringBeforeLast$default(Ljava/lang/String;C)Ljava/lang/String;\nPLkotlin/text/StringsKt;->substringBeforeLast$default(Ljava/lang/String;C)Ljava/lang/String;\nLkotlin/text/StringsKt__AppendableKt;\nLkotlin/text/StringsKt__IndentKt;\nLkotlin/text/StringsKt__RegexExtensionsJVMKt;\nLkotlin/text/StringsKt__RegexExtensionsKt;\nLkotlin/text/StringsKt__StringBuilderJVMKt;\nLkotlin/text/StringsKt__StringBuilderKt;\nLkotlin/text/StringsKt__StringNumberConversionsJVMKt;\nLkotlin/text/StringsKt__StringNumberConversionsKt;\nHSPLkotlin/text/StringsKt__StringNumberConversionsKt;->toIntOrNull(Ljava/lang/String;)Ljava/lang/Integer;\nPLkotlin/text/StringsKt__StringNumberConversionsKt;->toIntOrNull(Ljava/lang/String;)Ljava/lang/Integer;\nHSPLkotlin/text/StringsKt__StringNumberConversionsKt;->toIntOrNull(Ljava/lang/String;I)Ljava/lang/Integer;\nPLkotlin/text/StringsKt__StringNumberConversionsKt;->toIntOrNull(Ljava/lang/String;I)Ljava/lang/Integer;\nLkotlin/text/StringsKt__StringsJVMKt;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->concatToString([C)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsJVMKt;->concatToString([C)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->concatToString([CII)Ljava/lang/String;\nHPLkotlin/text/StringsKt__StringsJVMKt;->concatToString([CII)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->endsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z\nPLkotlin/text/StringsKt__StringsJVMKt;->endsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->endsWith(Ljava/lang/String;Ljava/lang/String;Z)Z\nPLkotlin/text/StringsKt__StringsJVMKt;->endsWith(Ljava/lang/String;Ljava/lang/String;Z)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->equals(Ljava/lang/String;Ljava/lang/String;Z)Z\nPLkotlin/text/StringsKt__StringsJVMKt;->equals(Ljava/lang/String;Ljava/lang/String;Z)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->getCASE_INSENSITIVE_ORDER(Lkotlin/jvm/internal/StringCompanionObject;)Ljava/util/Comparator;\nPLkotlin/text/StringsKt__StringsJVMKt;->getCASE_INSENSITIVE_ORDER(Lkotlin/jvm/internal/StringCompanionObject;)Ljava/util/Comparator;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->isBlank(Ljava/lang/CharSequence;)Z\nHPLkotlin/text/StringsKt__StringsJVMKt;->isBlank(Ljava/lang/CharSequence;)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->regionMatches(Ljava/lang/String;ILjava/lang/String;IIZ)Z\nPLkotlin/text/StringsKt__StringsJVMKt;->regionMatches(Ljava/lang/String;ILjava/lang/String;IIZ)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->repeat(Ljava/lang/CharSequence;I)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsJVMKt;->repeat(Ljava/lang/CharSequence;I)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->replace$default(Ljava/lang/String;CCZILjava/lang/Object;)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsJVMKt;->replace$default(Ljava/lang/String;CCZILjava/lang/Object;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->replace(Ljava/lang/String;CCZ)Ljava/lang/String;\nHPLkotlin/text/StringsKt__StringsJVMKt;->replace(Ljava/lang/String;CCZ)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsJVMKt;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z\nPLkotlin/text/StringsKt__StringsJVMKt;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->startsWith(Ljava/lang/String;Ljava/lang/String;IZ)Z\nPLkotlin/text/StringsKt__StringsJVMKt;->startsWith(Ljava/lang/String;Ljava/lang/String;IZ)Z\nHSPLkotlin/text/StringsKt__StringsJVMKt;->startsWith(Ljava/lang/String;Ljava/lang/String;Z)Z\nHPLkotlin/text/StringsKt__StringsJVMKt;->startsWith(Ljava/lang/String;Ljava/lang/String;Z)Z\nLkotlin/text/StringsKt__StringsKt;\nHSPLkotlin/text/StringsKt__StringsKt;->contains$default(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z\nPLkotlin/text/StringsKt__StringsKt;->contains$default(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z\nHSPLkotlin/text/StringsKt__StringsKt;->contains$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z\nPLkotlin/text/StringsKt__StringsKt;->contains$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z\nHSPLkotlin/text/StringsKt__StringsKt;->contains(Ljava/lang/CharSequence;CZ)Z\nPLkotlin/text/StringsKt__StringsKt;->contains(Ljava/lang/CharSequence;CZ)Z\nHSPLkotlin/text/StringsKt__StringsKt;->contains(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z\nPLkotlin/text/StringsKt__StringsKt;->contains(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z\nHSPLkotlin/text/StringsKt__StringsKt;->endsWith$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z\nPLkotlin/text/StringsKt__StringsKt;->endsWith$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z\nHSPLkotlin/text/StringsKt__StringsKt;->endsWith(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z\nPLkotlin/text/StringsKt__StringsKt;->endsWith(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z\nHSPLkotlin/text/StringsKt__StringsKt;->getIndices(Ljava/lang/CharSequence;)Lkotlin/ranges/IntRange;\nHPLkotlin/text/StringsKt__StringsKt;->getIndices(Ljava/lang/CharSequence;)Lkotlin/ranges/IntRange;\nHSPLkotlin/text/StringsKt__StringsKt;->getLastIndex(Ljava/lang/CharSequence;)I\nHPLkotlin/text/StringsKt__StringsKt;->getLastIndex(Ljava/lang/CharSequence;)I\nHSPLkotlin/text/StringsKt__StringsKt;->indexOf$default(Ljava/lang/CharSequence;CIZILjava/lang/Object;)I\nPLkotlin/text/StringsKt__StringsKt;->indexOf$default(Ljava/lang/CharSequence;CIZILjava/lang/Object;)I\nHSPLkotlin/text/StringsKt__StringsKt;->indexOf$default(Ljava/lang/CharSequence;Ljava/lang/String;IZILjava/lang/Object;)I\nPLkotlin/text/StringsKt__StringsKt;->indexOf$default(Ljava/lang/CharSequence;Ljava/lang/String;IZILjava/lang/Object;)I\nHSPLkotlin/text/StringsKt__StringsKt;->indexOf(Ljava/lang/CharSequence;CIZ)I\nHPLkotlin/text/StringsKt__StringsKt;->indexOf(Ljava/lang/CharSequence;CIZ)I\nHSPLkotlin/text/StringsKt__StringsKt;->indexOf(Ljava/lang/CharSequence;Ljava/lang/String;IZ)I\nHPLkotlin/text/StringsKt__StringsKt;->indexOf(Ljava/lang/CharSequence;Ljava/lang/String;IZ)I\nHSPLkotlin/text/StringsKt__StringsKt;->lastIndexOf$default(Ljava/lang/CharSequence;CIZILjava/lang/Object;)I\nPLkotlin/text/StringsKt__StringsKt;->lastIndexOf$default(Ljava/lang/CharSequence;CIZILjava/lang/Object;)I\nHSPLkotlin/text/StringsKt__StringsKt;->lastIndexOf$default(Ljava/lang/CharSequence;Ljava/lang/String;IZILjava/lang/Object;)I\nPLkotlin/text/StringsKt__StringsKt;->lastIndexOf$default(Ljava/lang/CharSequence;Ljava/lang/String;IZILjava/lang/Object;)I\nHSPLkotlin/text/StringsKt__StringsKt;->lastIndexOf(Ljava/lang/CharSequence;CIZ)I\nHPLkotlin/text/StringsKt__StringsKt;->lastIndexOf(Ljava/lang/CharSequence;CIZ)I\nHSPLkotlin/text/StringsKt__StringsKt;->lastIndexOf(Ljava/lang/CharSequence;Ljava/lang/String;IZ)I\nPLkotlin/text/StringsKt__StringsKt;->lastIndexOf(Ljava/lang/CharSequence;Ljava/lang/String;IZ)I\nHSPLkotlin/text/StringsKt__StringsKt;->removePrefix(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsKt;->removePrefix(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->removeSuffix(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsKt;->removeSuffix(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->requireNonNegativeLimit(I)V\nPLkotlin/text/StringsKt__StringsKt;->requireNonNegativeLimit(I)V\nHSPLkotlin/text/StringsKt__StringsKt;->split$StringsKt__StringsKt(Ljava/lang/CharSequence;Ljava/lang/String;IZ)Ljava/util/List;\nPLkotlin/text/StringsKt__StringsKt;->split$StringsKt__StringsKt(Ljava/lang/CharSequence;Ljava/lang/String;IZ)Ljava/util/List;\nHSPLkotlin/text/StringsKt__StringsKt;->split$default(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;\nPLkotlin/text/StringsKt__StringsKt;->split$default(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;\nHSPLkotlin/text/StringsKt__StringsKt;->split(Ljava/lang/CharSequence;[CZI)Ljava/util/List;\nPLkotlin/text/StringsKt__StringsKt;->split(Ljava/lang/CharSequence;[CZI)Ljava/util/List;\nHSPLkotlin/text/StringsKt__StringsKt;->startsWith$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z\nPLkotlin/text/StringsKt__StringsKt;->startsWith$default(Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z\nHSPLkotlin/text/StringsKt__StringsKt;->startsWith(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z\nPLkotlin/text/StringsKt__StringsKt;->startsWith(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z\nHSPLkotlin/text/StringsKt__StringsKt;->substringAfter$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;\nHPLkotlin/text/StringsKt__StringsKt;->substringAfter$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->substringAfter(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHPLkotlin/text/StringsKt__StringsKt;->substringAfter(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->substringAfterLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsKt;->substringAfterLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->substringBeforeLast$default(Ljava/lang/String;CLjava/lang/String;ILjava/lang/Object;)Ljava/lang/String;\nHPLkotlin/text/StringsKt__StringsKt;->substringBeforeLast$default(Ljava/lang/String;CLjava/lang/String;ILjava/lang/Object;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->substringBeforeLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String;\nHPLkotlin/text/StringsKt__StringsKt;->substringBeforeLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->substringBeforeLast(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLkotlin/text/StringsKt__StringsKt;->substringBeforeLast(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlin/text/StringsKt__StringsKt;->trim(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;\nPLkotlin/text/StringsKt__StringsKt;->trim(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;\nLkotlin/text/StringsKt___StringsJvmKt;\nLkotlin/text/StringsKt___StringsKt;\nHSPLkotlin/text/StringsKt___StringsKt;->last(Ljava/lang/CharSequence;)C\nHPLkotlin/text/StringsKt___StringsKt;->last(Ljava/lang/CharSequence;)C\nLkotlin/time/Duration;\nHSPLkotlin/time/Duration;-><clinit>()V\nPLkotlin/time/Duration;-><clinit>()V\nHSPLkotlin/time/Duration;->getInWholeMilliseconds-impl(J)J\nPLkotlin/time/Duration;->getInWholeMilliseconds-impl(J)J\nHSPLkotlin/time/Duration;->getInWholeSeconds-impl(J)J\nPLkotlin/time/Duration;->getInWholeSeconds-impl(J)J\nHSPLkotlin/time/Duration;->getNanosecondsComponent-impl(J)I\nPLkotlin/time/Duration;->getNanosecondsComponent-impl(J)I\nHSPLkotlin/time/Duration;->getStorageUnit-impl(J)Lkotlin/time/DurationUnit;\nPLkotlin/time/Duration;->getStorageUnit-impl(J)Lkotlin/time/DurationUnit;\nHSPLkotlin/time/Duration;->isInfinite-impl(J)Z\nPLkotlin/time/Duration;->isInfinite-impl(J)Z\nHSPLkotlin/time/Duration;->toLong-impl(JLkotlin/time/DurationUnit;)J\nPLkotlin/time/Duration;->toLong-impl(JLkotlin/time/DurationUnit;)J\nLkotlin/time/Duration$Companion;\nHSPLkotlin/time/Duration$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlin/time/Duration$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlin/time/DurationJvmKt;\nHSPLkotlin/time/DurationJvmKt;-><clinit>()V\nPLkotlin/time/DurationJvmKt;-><clinit>()V\nLkotlin/time/DurationKt;\nHSPLkotlin/time/DurationKt;->access$durationOfMillis(J)J\nPLkotlin/time/DurationKt;->access$durationOfMillis(J)J\nHSPLkotlin/time/DurationKt;->durationOfNanos(J)J\nPLkotlin/time/DurationKt;->durationOfNanos(J)J\nHSPLkotlin/time/DurationKt;->toDuration(ILkotlin/time/DurationUnit;)J\nPLkotlin/time/DurationKt;->toDuration(ILkotlin/time/DurationUnit;)J\nHSPLkotlin/time/DurationKt;->toDuration(JLkotlin/time/DurationUnit;)J\nPLkotlin/time/DurationKt;->toDuration(JLkotlin/time/DurationUnit;)J\nLkotlin/time/DurationUnit;\nHSPLkotlin/time/DurationUnit;-><clinit>()V\nPLkotlin/time/DurationUnit;-><clinit>()V\nHSPLkotlin/time/DurationUnit;-><init>(Ljava/lang/String;ILjava/util/concurrent/TimeUnit;)V\nPLkotlin/time/DurationUnit;-><init>(Ljava/lang/String;ILjava/util/concurrent/TimeUnit;)V\nHSPLkotlin/time/DurationUnit;->getTimeUnit$kotlin_stdlib()Ljava/util/concurrent/TimeUnit;\nPLkotlin/time/DurationUnit;->getTimeUnit$kotlin_stdlib()Ljava/util/concurrent/TimeUnit;\nLkotlin/time/DurationUnitKt__DurationUnitJvmKt;\nHSPLkotlin/time/DurationUnitKt__DurationUnitJvmKt;->convertDurationUnit(JLkotlin/time/DurationUnit;Lkotlin/time/DurationUnit;)J\nPLkotlin/time/DurationUnitKt__DurationUnitJvmKt;->convertDurationUnit(JLkotlin/time/DurationUnit;Lkotlin/time/DurationUnit;)J\nHSPLkotlin/time/DurationUnitKt__DurationUnitJvmKt;->convertDurationUnitOverflow(JLkotlin/time/DurationUnit;Lkotlin/time/DurationUnit;)J\nPLkotlin/time/DurationUnitKt__DurationUnitJvmKt;->convertDurationUnitOverflow(JLkotlin/time/DurationUnit;Lkotlin/time/DurationUnit;)J\nLkotlinx/collections/immutable/implementations/immutableList/ObjectRef;\nHSPLkotlinx/collections/immutable/implementations/immutableList/ObjectRef;-><init>(FF)V\nHPLkotlinx/collections/immutable/implementations/immutableList/ObjectRef;-><init>(FF)V\nHSPLkotlinx/collections/immutable/implementations/immutableList/ObjectRef;->get(I)Landroidx/compose/animation/core/FloatAnimationSpec;\nHPLkotlinx/collections/immutable/implementations/immutableList/ObjectRef;->get(I)Landroidx/compose/animation/core/FloatAnimationSpec;\nLkotlinx/coroutines/AbstractCoroutine;\nHSPLkotlinx/coroutines/AbstractCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;ZZ)V\nHPLkotlinx/coroutines/AbstractCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;ZZ)V\nHSPLkotlinx/coroutines/AbstractCoroutine;->afterResume(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/AbstractCoroutine;->afterResume(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/AbstractCoroutine;->cancellationExceptionMessage()Ljava/lang/String;\nPLkotlinx/coroutines/AbstractCoroutine;->cancellationExceptionMessage()Ljava/lang/String;\nHSPLkotlinx/coroutines/AbstractCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/AbstractCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/AbstractCoroutine;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/AbstractCoroutine;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/AbstractCoroutine;->isActive()Z\nHPLkotlinx/coroutines/AbstractCoroutine;->isActive()Z\nHSPLkotlinx/coroutines/AbstractCoroutine;->onCancelled(Ljava/lang/Throwable;Z)V\nHPLkotlinx/coroutines/AbstractCoroutine;->onCancelled(Ljava/lang/Throwable;Z)V\nHSPLkotlinx/coroutines/AbstractCoroutine;->onCompleted(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/AbstractCoroutine;->onCompleted(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/AbstractCoroutine;->onCompletionInternal(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/AbstractCoroutine;->onCompletionInternal(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/AbstractCoroutine;->resumeWith(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/AbstractCoroutine;->resumeWith(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/AbstractCoroutine;->start(Lkotlinx/coroutines/CoroutineStart;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nHPLkotlinx/coroutines/AbstractCoroutine;->start(Lkotlinx/coroutines/CoroutineStart;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V\nLkotlinx/coroutines/AbstractTimeSourceKt;\nHSPLkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;\nPLkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;\nLkotlinx/coroutines/Active;\nHSPLkotlinx/coroutines/Active;-><clinit>()V\nPLkotlinx/coroutines/Active;-><clinit>()V\nHSPLkotlinx/coroutines/Active;-><init>()V\nPLkotlinx/coroutines/Active;-><init>()V\nLkotlinx/coroutines/BlockingEventLoop;\nHSPLkotlinx/coroutines/BlockingEventLoop;-><init>(Ljava/lang/Thread;)V\nPLkotlinx/coroutines/BlockingEventLoop;-><init>(Ljava/lang/Thread;)V\nLkotlinx/coroutines/BuildersKt;\nHSPLkotlinx/coroutines/BuildersKt;->async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;\nPLkotlinx/coroutines/BuildersKt;->async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;\nHSPLkotlinx/coroutines/BuildersKt;->launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;\nHPLkotlinx/coroutines/BuildersKt;->launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/BuildersKt;->launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/BuildersKt;->launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/BuildersKt;->withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/BuildersKt;->withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/BuildersKt__Builders_commonKt;\nHSPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;\nPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;\nHSPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->async(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Deferred;\nPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->async(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Deferred;\nHSPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;\nHPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;\nHPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/BuildersKt__Builders_commonKt;->withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/CancelHandler;\nHSPLkotlinx/coroutines/CancelHandler;-><init>()V\nPLkotlinx/coroutines/CancelHandler;-><init>()V\nLkotlinx/coroutines/CancelHandlerBase;\nHSPLkotlinx/coroutines/CancelHandlerBase;-><init>()V\nHPLkotlinx/coroutines/CancelHandlerBase;-><init>()V\nLkotlinx/coroutines/CancellableContinuation;\nLkotlinx/coroutines/CancellableContinuation$DefaultImpls;\nLkotlinx/coroutines/CancellableContinuationImpl;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;-><clinit>()V\nPLkotlinx/coroutines/CancellableContinuationImpl;-><clinit>()V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->callCancelHandler(Lkotlinx/coroutines/CancelHandler;Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->callCancelHandler(Lkotlinx/coroutines/CancelHandler;Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->callSegmentOnCancellation(Lkotlinx/coroutines/internal/Segment;Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->callSegmentOnCancellation(Lkotlinx/coroutines/internal/Segment;Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->cancel(Ljava/lang/Throwable;)Z\nHPLkotlinx/coroutines/CancellableContinuationImpl;->cancel(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->cancelCompletedResult$kotlinx_coroutines_core(Ljava/lang/Object;Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->cancelCompletedResult$kotlinx_coroutines_core(Ljava/lang/Object;Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->completeResume(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->completeResume(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->detachChild$kotlinx_coroutines_core()V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->detachChild$kotlinx_coroutines_core()V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->dispatchResume(I)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->dispatchResume(I)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getContext()Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/CancellableContinuationImpl;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getContinuationCancellationCause(Lkotlinx/coroutines/Job;)Ljava/lang/Throwable;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->getContinuationCancellationCause(Lkotlinx/coroutines/Job;)Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;\nPLkotlinx/coroutines/CancellableContinuationImpl;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getResult()Ljava/lang/Object;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->getResult()Ljava/lang/Object;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getState$kotlinx_coroutines_core()Ljava/lang/Object;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->getState$kotlinx_coroutines_core()Ljava/lang/Object;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/CancellableContinuationImpl;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->initCancellability()V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->initCancellability()V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->installParentHandle()Lkotlinx/coroutines/DisposableHandle;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->installParentHandle()Lkotlinx/coroutines/DisposableHandle;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->invokeOnCancellation(Lkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->invokeOnCancellation(Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->invokeOnCancellationImpl(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->invokeOnCancellationImpl(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->isCompleted()Z\nHPLkotlinx/coroutines/CancellableContinuationImpl;->isCompleted()Z\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->isReusable()Z\nHPLkotlinx/coroutines/CancellableContinuationImpl;->isReusable()Z\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->parentCancelled$kotlinx_coroutines_core(Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->parentCancelled$kotlinx_coroutines_core(Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->releaseClaimedReusableContinuation$kotlinx_coroutines_core()V\nPLkotlinx/coroutines/CancellableContinuationImpl;->releaseClaimedReusableContinuation$kotlinx_coroutines_core()V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->resetStateReusable()Z\nHPLkotlinx/coroutines/CancellableContinuationImpl;->resetStateReusable()Z\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->resume(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/CancellableContinuationImpl;->resume(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->resumeImpl(Ljava/lang/Object;ILkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->resumeImpl(Ljava/lang/Object;ILkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->resumeUndispatched(Lkotlinx/coroutines/CoroutineDispatcher;Ljava/lang/Object;)V\nPLkotlinx/coroutines/CancellableContinuationImpl;->resumeUndispatched(Lkotlinx/coroutines/CoroutineDispatcher;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->resumeWith(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/CancellableContinuationImpl;->resumeWith(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->resumedState(Lkotlinx/coroutines/NotCompleted;Ljava/lang/Object;ILkotlin/jvm/functions/Function1;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->resumedState(Lkotlinx/coroutines/NotCompleted;Ljava/lang/Object;ILkotlin/jvm/functions/Function1;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->takeState$kotlinx_coroutines_core()Ljava/lang/Object;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->takeState$kotlinx_coroutines_core()Ljava/lang/Object;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CancellableContinuationImpl;->tryResumeImpl(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/internal/Symbol;\nHPLkotlinx/coroutines/CancellableContinuationImpl;->tryResumeImpl(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/internal/Symbol;\nLkotlinx/coroutines/CancellableContinuationImplKt;\nHSPLkotlinx/coroutines/CancellableContinuationImplKt;-><clinit>()V\nPLkotlinx/coroutines/CancellableContinuationImplKt;-><clinit>()V\nLkotlinx/coroutines/CancellableContinuationKt;\nHSPLkotlinx/coroutines/CancellableContinuationKt;->disposeOnCancellation(Lkotlinx/coroutines/CancellableContinuation;Lkotlinx/coroutines/DisposableHandle;)V\nPLkotlinx/coroutines/CancellableContinuationKt;->disposeOnCancellation(Lkotlinx/coroutines/CancellableContinuation;Lkotlinx/coroutines/DisposableHandle;)V\nHSPLkotlinx/coroutines/CancellableContinuationKt;->getOrCreateCancellableContinuation(Lkotlin/coroutines/Continuation;)Lkotlinx/coroutines/CancellableContinuationImpl;\nHPLkotlinx/coroutines/CancellableContinuationKt;->getOrCreateCancellableContinuation(Lkotlin/coroutines/Continuation;)Lkotlinx/coroutines/CancellableContinuationImpl;\nLkotlinx/coroutines/CancelledContinuation;\nHSPLkotlinx/coroutines/CancelledContinuation;-><clinit>()V\nPLkotlinx/coroutines/CancelledContinuation;-><clinit>()V\nHSPLkotlinx/coroutines/CancelledContinuation;-><init>(Lkotlin/coroutines/Continuation;Ljava/lang/Throwable;Z)V\nHPLkotlinx/coroutines/CancelledContinuation;-><init>(Lkotlin/coroutines/Continuation;Ljava/lang/Throwable;Z)V\nHSPLkotlinx/coroutines/CancelledContinuation;->makeResumed()Z\nPLkotlinx/coroutines/CancelledContinuation;->makeResumed()Z\nLkotlinx/coroutines/ChildContinuation;\nHSPLkotlinx/coroutines/ChildContinuation;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nPLkotlinx/coroutines/ChildContinuation;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHSPLkotlinx/coroutines/ChildContinuation;->invoke(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/ChildContinuation;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/ChildHandle;\nLkotlinx/coroutines/ChildHandleNode;\nHSPLkotlinx/coroutines/ChildHandleNode;-><init>(Lkotlinx/coroutines/ChildJob;)V\nPLkotlinx/coroutines/ChildHandleNode;-><init>(Lkotlinx/coroutines/ChildJob;)V\nHSPLkotlinx/coroutines/ChildHandleNode;->childCancelled(Ljava/lang/Throwable;)Z\nPLkotlinx/coroutines/ChildHandleNode;->childCancelled(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/ChildHandleNode;->invoke(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/ChildHandleNode;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/ChildJob;\nLkotlinx/coroutines/CompletableJob;\nLkotlinx/coroutines/CompletedContinuation;\nHSPLkotlinx/coroutines/CompletedContinuation;-><init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/CompletedContinuation;-><init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/CompletedContinuation;-><init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHPLkotlinx/coroutines/CompletedContinuation;-><init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/CompletedContinuation;->copy$default(Lkotlinx/coroutines/CompletedContinuation;Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;ILjava/lang/Object;)Lkotlinx/coroutines/CompletedContinuation;\nHPLkotlinx/coroutines/CompletedContinuation;->copy$default(Lkotlinx/coroutines/CompletedContinuation;Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;ILjava/lang/Object;)Lkotlinx/coroutines/CompletedContinuation;\nHSPLkotlinx/coroutines/CompletedContinuation;->copy(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)Lkotlinx/coroutines/CompletedContinuation;\nHPLkotlinx/coroutines/CompletedContinuation;->copy(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)Lkotlinx/coroutines/CompletedContinuation;\nHSPLkotlinx/coroutines/CompletedContinuation;->getCancelled()Z\nPLkotlinx/coroutines/CompletedContinuation;->getCancelled()Z\nHSPLkotlinx/coroutines/CompletedContinuation;->invokeHandlers(Lkotlinx/coroutines/CancellableContinuationImpl;Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/CompletedContinuation;->invokeHandlers(Lkotlinx/coroutines/CancellableContinuationImpl;Ljava/lang/Throwable;)V\nLkotlinx/coroutines/CompletedExceptionally;\nHSPLkotlinx/coroutines/CompletedExceptionally;-><clinit>()V\nPLkotlinx/coroutines/CompletedExceptionally;-><clinit>()V\nHSPLkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;Z)V\nHPLkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;Z)V\nHSPLkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHPLkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/CompletedExceptionally;->getHandled()Z\nHPLkotlinx/coroutines/CompletedExceptionally;->getHandled()Z\nHSPLkotlinx/coroutines/CompletedExceptionally;->makeHandled()Z\nHPLkotlinx/coroutines/CompletedExceptionally;->makeHandled()Z\nLkotlinx/coroutines/CompletedWithCancellation;\nLkotlinx/coroutines/CompletionHandlerBase;\nHSPLkotlinx/coroutines/CompletionHandlerBase;-><init>()V\nHPLkotlinx/coroutines/CompletionHandlerBase;-><init>()V\nLkotlinx/coroutines/CompletionHandlerException;\nLkotlinx/coroutines/CompletionStateKt;\nHSPLkotlinx/coroutines/CompletionStateKt;->recoverResult(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/CompletionStateKt;->recoverResult(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CompletionStateKt;->toState$default(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/CompletionStateKt;->toState$default(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHPLkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlinx/coroutines/CancellableContinuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlinx/coroutines/CancellableContinuation;)Ljava/lang/Object;\nLkotlinx/coroutines/CopyableThreadContextElement;\nLkotlinx/coroutines/CopyableThrowable;\nLkotlinx/coroutines/CoroutineContextKt;\nHSPLkotlinx/coroutines/CoroutineContextKt;->foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/CoroutineContextKt;->foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nLkotlinx/coroutines/CoroutineContextKt$foldCopies$1;\nLkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;\nLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;\nHSPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;-><clinit>()V\nPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;-><clinit>()V\nHSPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;-><init>()V\nPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;-><init>()V\nHSPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->invoke(ZLkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Boolean;\nHPLkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->invoke(ZLkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Boolean;\nLkotlinx/coroutines/CoroutineDispatcher;\nHSPLkotlinx/coroutines/CoroutineDispatcher;-><clinit>()V\nPLkotlinx/coroutines/CoroutineDispatcher;-><clinit>()V\nHSPLkotlinx/coroutines/CoroutineDispatcher;-><init>()V\nPLkotlinx/coroutines/CoroutineDispatcher;-><init>()V\nHSPLkotlinx/coroutines/CoroutineDispatcher;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/CoroutineDispatcher;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/CoroutineDispatcher;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLkotlinx/coroutines/CoroutineDispatcher;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlinx/coroutines/CoroutineDispatcher;->interceptContinuation(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/CoroutineDispatcher;->interceptContinuation(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/CoroutineDispatcher;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z\nHPLkotlinx/coroutines/CoroutineDispatcher;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z\nHSPLkotlinx/coroutines/CoroutineDispatcher;->limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher;\nPLkotlinx/coroutines/CoroutineDispatcher;->limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher;\nHSPLkotlinx/coroutines/CoroutineDispatcher;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/CoroutineDispatcher;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/CoroutineDispatcher;->releaseInterceptedContinuation(Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/CoroutineDispatcher;->releaseInterceptedContinuation(Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/CoroutineDispatcher$Key;\nHSPLkotlinx/coroutines/CoroutineDispatcher$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/CoroutineDispatcher$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/coroutines/CoroutineDispatcher$Key$1;\nHSPLkotlinx/coroutines/CoroutineDispatcher$Key$1;-><clinit>()V\nPLkotlinx/coroutines/CoroutineDispatcher$Key$1;-><clinit>()V\nHSPLkotlinx/coroutines/CoroutineDispatcher$Key$1;-><init>()V\nPLkotlinx/coroutines/CoroutineDispatcher$Key$1;-><init>()V\nLkotlinx/coroutines/CoroutineExceptionHandler;\nHSPLkotlinx/coroutines/CoroutineExceptionHandler;-><clinit>()V\nPLkotlinx/coroutines/CoroutineExceptionHandler;-><clinit>()V\nLkotlinx/coroutines/CoroutineExceptionHandler$Key;\nHSPLkotlinx/coroutines/CoroutineExceptionHandler$Key;-><clinit>()V\nPLkotlinx/coroutines/CoroutineExceptionHandler$Key;-><clinit>()V\nHSPLkotlinx/coroutines/CoroutineExceptionHandler$Key;-><init>()V\nPLkotlinx/coroutines/CoroutineExceptionHandler$Key;-><init>()V\nLkotlinx/coroutines/CoroutineExceptionHandlerKt;\nLkotlinx/coroutines/CoroutineName;\nHSPLkotlinx/coroutines/CoroutineName;-><clinit>()V\nPLkotlinx/coroutines/CoroutineName;-><clinit>()V\nHSPLkotlinx/coroutines/CoroutineName;-><init>(Ljava/lang/String;)V\nPLkotlinx/coroutines/CoroutineName;-><init>(Ljava/lang/String;)V\nLkotlinx/coroutines/CoroutineName$Key;\nHSPLkotlinx/coroutines/CoroutineName$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/CoroutineName$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/coroutines/CoroutineScope;\nLkotlinx/coroutines/CoroutineScopeKt;\nHSPLkotlinx/coroutines/CoroutineScopeKt;->CoroutineScope(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineScope;\nHPLkotlinx/coroutines/CoroutineScopeKt;->CoroutineScope(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineScope;\nHSPLkotlinx/coroutines/CoroutineScopeKt;->MainScope()Lkotlinx/coroutines/CoroutineScope;\nPLkotlinx/coroutines/CoroutineScopeKt;->MainScope()Lkotlinx/coroutines/CoroutineScope;\nHSPLkotlinx/coroutines/CoroutineScopeKt;->cancel(Lkotlinx/coroutines/CoroutineScope;Ljava/util/concurrent/CancellationException;)V\nHPLkotlinx/coroutines/CoroutineScopeKt;->cancel(Lkotlinx/coroutines/CoroutineScope;Ljava/util/concurrent/CancellationException;)V\nHSPLkotlinx/coroutines/CoroutineScopeKt;->coroutineScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/CoroutineScopeKt;->coroutineScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/CoroutineScopeKt;->ensureActive(Lkotlinx/coroutines/CoroutineScope;)V\nPLkotlinx/coroutines/CoroutineScopeKt;->ensureActive(Lkotlinx/coroutines/CoroutineScope;)V\nHSPLkotlinx/coroutines/CoroutineScopeKt;->isActive(Lkotlinx/coroutines/CoroutineScope;)Z\nHPLkotlinx/coroutines/CoroutineScopeKt;->isActive(Lkotlinx/coroutines/CoroutineScope;)Z\nHSPLkotlinx/coroutines/CoroutineScopeKt;->plus(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineScope;\nPLkotlinx/coroutines/CoroutineScopeKt;->plus(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineScope;\nLkotlinx/coroutines/CoroutineStart;\nHSPLkotlinx/coroutines/CoroutineStart;-><clinit>()V\nPLkotlinx/coroutines/CoroutineStart;-><clinit>()V\nHSPLkotlinx/coroutines/CoroutineStart;-><init>(Ljava/lang/String;I)V\nPLkotlinx/coroutines/CoroutineStart;-><init>(Ljava/lang/String;I)V\nHSPLkotlinx/coroutines/CoroutineStart;->invoke(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/CoroutineStart;->invoke(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/CoroutineStart;->isLazy()Z\nPLkotlinx/coroutines/CoroutineStart;->isLazy()Z\nHSPLkotlinx/coroutines/CoroutineStart;->values()[Lkotlinx/coroutines/CoroutineStart;\nPLkotlinx/coroutines/CoroutineStart;->values()[Lkotlinx/coroutines/CoroutineStart;\nLkotlinx/coroutines/CoroutineStart$WhenMappings;\nHSPLkotlinx/coroutines/CoroutineStart$WhenMappings;-><clinit>()V\nPLkotlinx/coroutines/CoroutineStart$WhenMappings;-><clinit>()V\nLkotlinx/coroutines/CoroutinesInternalError;\nLkotlinx/coroutines/DebugStringsKt;\nHSPLkotlinx/coroutines/DebugStringsKt;->getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;\nHPLkotlinx/coroutines/DebugStringsKt;->getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;\nLkotlinx/coroutines/DefaultExecutor;\nHSPLkotlinx/coroutines/DefaultExecutor;-><clinit>()V\nPLkotlinx/coroutines/DefaultExecutor;-><clinit>()V\nHSPLkotlinx/coroutines/DefaultExecutor;-><init>()V\nPLkotlinx/coroutines/DefaultExecutor;-><init>()V\nHSPLkotlinx/coroutines/DefaultExecutor;->acknowledgeShutdownIfNeeded()V\nPLkotlinx/coroutines/DefaultExecutor;->acknowledgeShutdownIfNeeded()V\nHSPLkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread;\nHPLkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread;\nHSPLkotlinx/coroutines/DefaultExecutor;->invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;\nPLkotlinx/coroutines/DefaultExecutor;->invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;\nHSPLkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z\nPLkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z\nHSPLkotlinx/coroutines/DefaultExecutor;->run()V\nHPLkotlinx/coroutines/DefaultExecutor;->run()V\nLkotlinx/coroutines/DefaultExecutorKt;\nHSPLkotlinx/coroutines/DefaultExecutorKt;-><clinit>()V\nPLkotlinx/coroutines/DefaultExecutorKt;-><clinit>()V\nHSPLkotlinx/coroutines/DefaultExecutorKt;->getDefaultDelay()Lkotlinx/coroutines/Delay;\nPLkotlinx/coroutines/DefaultExecutorKt;->getDefaultDelay()Lkotlinx/coroutines/Delay;\nLkotlinx/coroutines/Deferred;\nLkotlinx/coroutines/DeferredCoroutine;\nHSPLkotlinx/coroutines/DeferredCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Z)V\nPLkotlinx/coroutines/DeferredCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Z)V\nHSPLkotlinx/coroutines/DeferredCoroutine;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/DeferredCoroutine;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/Delay;\nLkotlinx/coroutines/DelayKt;\nHSPLkotlinx/coroutines/DelayKt;->delay(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/DelayKt;->delay(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/DelayKt;->getDelay(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Delay;\nPLkotlinx/coroutines/DelayKt;->getDelay(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Delay;\nLkotlinx/coroutines/DispatchedCoroutine;\nHSPLkotlinx/coroutines/DispatchedCoroutine;-><clinit>()V\nPLkotlinx/coroutines/DispatchedCoroutine;-><clinit>()V\nHSPLkotlinx/coroutines/DispatchedCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/DispatchedCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/DispatchedCoroutine;->afterResume(Ljava/lang/Object;)V\nPLkotlinx/coroutines/DispatchedCoroutine;->afterResume(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/DispatchedCoroutine;->getResult$kotlinx_coroutines_core()Ljava/lang/Object;\nPLkotlinx/coroutines/DispatchedCoroutine;->getResult$kotlinx_coroutines_core()Ljava/lang/Object;\nLkotlinx/coroutines/DispatchedTask;\nHSPLkotlinx/coroutines/DispatchedTask;-><init>(I)V\nPLkotlinx/coroutines/DispatchedTask;-><init>(I)V\nHSPLkotlinx/coroutines/DispatchedTask;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;\nPLkotlinx/coroutines/DispatchedTask;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/DispatchedTask;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/DispatchedTask;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/DispatchedTask;->handleFatalException$kotlinx_coroutines_core(Ljava/lang/Throwable;Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/DispatchedTask;->handleFatalException$kotlinx_coroutines_core(Ljava/lang/Throwable;Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/DispatchedTask;->run()V\nHPLkotlinx/coroutines/DispatchedTask;->run()V\nLkotlinx/coroutines/DispatchedTaskKt;\nHSPLkotlinx/coroutines/DispatchedTaskKt;->dispatch(Lkotlinx/coroutines/DispatchedTask;I)V\nHPLkotlinx/coroutines/DispatchedTaskKt;->dispatch(Lkotlinx/coroutines/DispatchedTask;I)V\nHSPLkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z\nPLkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z\nHSPLkotlinx/coroutines/DispatchedTaskKt;->isReusableMode(I)Z\nPLkotlinx/coroutines/DispatchedTaskKt;->isReusableMode(I)Z\nHSPLkotlinx/coroutines/DispatchedTaskKt;->resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V\nHPLkotlinx/coroutines/DispatchedTaskKt;->resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V\nLkotlinx/coroutines/Dispatchers;\nHSPLkotlinx/coroutines/Dispatchers;-><clinit>()V\nPLkotlinx/coroutines/Dispatchers;-><clinit>()V\nHSPLkotlinx/coroutines/Dispatchers;-><init>()V\nPLkotlinx/coroutines/Dispatchers;-><init>()V\nHSPLkotlinx/coroutines/Dispatchers;->getDefault()Lkotlinx/coroutines/CoroutineDispatcher;\nPLkotlinx/coroutines/Dispatchers;->getDefault()Lkotlinx/coroutines/CoroutineDispatcher;\nHSPLkotlinx/coroutines/Dispatchers;->getIO()Lkotlinx/coroutines/CoroutineDispatcher;\nPLkotlinx/coroutines/Dispatchers;->getIO()Lkotlinx/coroutines/CoroutineDispatcher;\nLkotlinx/coroutines/DisposableHandle;\nLkotlinx/coroutines/DisposeOnCancel;\nHSPLkotlinx/coroutines/DisposeOnCancel;-><init>(Lkotlinx/coroutines/DisposableHandle;)V\nPLkotlinx/coroutines/DisposeOnCancel;-><init>(Lkotlinx/coroutines/DisposableHandle;)V\nPLkotlinx/coroutines/DisposeOnCancel;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/Empty;\nHSPLkotlinx/coroutines/Empty;-><init>(Z)V\nPLkotlinx/coroutines/Empty;-><init>(Z)V\nHSPLkotlinx/coroutines/Empty;->getList()Lkotlinx/coroutines/NodeList;\nHPLkotlinx/coroutines/Empty;->getList()Lkotlinx/coroutines/NodeList;\nHSPLkotlinx/coroutines/Empty;->isActive()Z\nHPLkotlinx/coroutines/Empty;->isActive()Z\nLkotlinx/coroutines/EventLoop;\nHSPLkotlinx/coroutines/EventLoop;-><init>()V\nPLkotlinx/coroutines/EventLoop;-><init>()V\nHSPLkotlinx/coroutines/EventLoop;->decrementUseCount(Z)V\nPLkotlinx/coroutines/EventLoop;->decrementUseCount(Z)V\nHSPLkotlinx/coroutines/EventLoop;->dispatchUnconfined(Lkotlinx/coroutines/DispatchedTask;)V\nPLkotlinx/coroutines/EventLoop;->dispatchUnconfined(Lkotlinx/coroutines/DispatchedTask;)V\nHSPLkotlinx/coroutines/EventLoop;->getNextTime()J\nPLkotlinx/coroutines/EventLoop;->getNextTime()J\nHSPLkotlinx/coroutines/EventLoop;->incrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V\nPLkotlinx/coroutines/EventLoop;->incrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V\nHSPLkotlinx/coroutines/EventLoop;->incrementUseCount(Z)V\nPLkotlinx/coroutines/EventLoop;->incrementUseCount(Z)V\nHSPLkotlinx/coroutines/EventLoop;->isUnconfinedLoopActive()Z\nPLkotlinx/coroutines/EventLoop;->isUnconfinedLoopActive()Z\nHSPLkotlinx/coroutines/EventLoop;->isUnconfinedQueueEmpty()Z\nPLkotlinx/coroutines/EventLoop;->isUnconfinedQueueEmpty()Z\nHSPLkotlinx/coroutines/EventLoop;->processUnconfinedEvent()Z\nPLkotlinx/coroutines/EventLoop;->processUnconfinedEvent()Z\nLkotlinx/coroutines/EventLoopImplBase;\nHSPLkotlinx/coroutines/EventLoopImplBase;-><clinit>()V\nPLkotlinx/coroutines/EventLoopImplBase;-><clinit>()V\nHSPLkotlinx/coroutines/EventLoopImplBase;-><init>()V\nPLkotlinx/coroutines/EventLoopImplBase;-><init>()V\nHSPLkotlinx/coroutines/EventLoopImplBase;->access$isCompleted(Lkotlinx/coroutines/EventLoopImplBase;)Z\nHPLkotlinx/coroutines/EventLoopImplBase;->access$isCompleted(Lkotlinx/coroutines/EventLoopImplBase;)Z\nHSPLkotlinx/coroutines/EventLoopImplBase;->enqueueImpl(Ljava/lang/Runnable;)Z\nPLkotlinx/coroutines/EventLoopImplBase;->enqueueImpl(Ljava/lang/Runnable;)Z\nHSPLkotlinx/coroutines/EventLoopImplBase;->getNextTime()J\nHPLkotlinx/coroutines/EventLoopImplBase;->getNextTime()J\nHSPLkotlinx/coroutines/EventLoopImplBase;->isEmpty()Z\nPLkotlinx/coroutines/EventLoopImplBase;->isEmpty()Z\nHSPLkotlinx/coroutines/EventLoopImplBase;->processNextEvent()J\nHPLkotlinx/coroutines/EventLoopImplBase;->processNextEvent()J\nHSPLkotlinx/coroutines/EventLoopImplBase;->schedule(JLkotlinx/coroutines/EventLoopImplBase$DelayedTask;)V\nHPLkotlinx/coroutines/EventLoopImplBase;->schedule(JLkotlinx/coroutines/EventLoopImplBase$DelayedTask;)V\nHSPLkotlinx/coroutines/EventLoopImplBase;->scheduleInvokeOnTimeout(JLjava/lang/Runnable;)Lkotlinx/coroutines/DisposableHandle;\nPLkotlinx/coroutines/EventLoopImplBase;->scheduleInvokeOnTimeout(JLjava/lang/Runnable;)Lkotlinx/coroutines/DisposableHandle;\nHSPLkotlinx/coroutines/EventLoopImplBase;->scheduleResumeAfterDelay(JLkotlinx/coroutines/CancellableContinuation;)V\nHPLkotlinx/coroutines/EventLoopImplBase;->scheduleResumeAfterDelay(JLkotlinx/coroutines/CancellableContinuation;)V\nLkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;-><init>(Lkotlinx/coroutines/EventLoopImplBase;JLkotlinx/coroutines/CancellableContinuation;)V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;-><init>(Lkotlinx/coroutines/EventLoopImplBase;JLkotlinx/coroutines/CancellableContinuation;)V\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->run()V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->run()V\nLkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;-><init>(JLjava/lang/Runnable;)V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;-><init>(JLjava/lang/Runnable;)V\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;->run()V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;->run()V\nLkotlinx/coroutines/EventLoopImplBase$DelayedTask;\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;-><init>(J)V\nHPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;-><init>(J)V\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->compareTo(Ljava/lang/Object;)I\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->compareTo(Ljava/lang/Object;)I\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->compareTo(Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;)I\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->compareTo(Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;)I\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->dispose()V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->getHeap()Lkotlinx/coroutines/internal/ThreadSafeHeap;\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->getIndex()I\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->scheduleTask(JLkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;Lkotlinx/coroutines/EventLoopImplBase;)I\nHPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->scheduleTask(JLkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;Lkotlinx/coroutines/EventLoopImplBase;)I\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->setHeap(Lkotlinx/coroutines/internal/ThreadSafeHeap;)V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->setHeap(Lkotlinx/coroutines/internal/ThreadSafeHeap;)V\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->setIndex(I)V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->setIndex(I)V\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->timeToExecute(J)Z\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTask;->timeToExecute(J)Z\nLkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;\nHSPLkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;-><init>(J)V\nPLkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;-><init>(J)V\nLkotlinx/coroutines/EventLoopImplPlatform;\nHSPLkotlinx/coroutines/EventLoopImplPlatform;-><init>()V\nPLkotlinx/coroutines/EventLoopImplPlatform;-><init>()V\nHSPLkotlinx/coroutines/EventLoopImplPlatform;->unpark()V\nHPLkotlinx/coroutines/EventLoopImplPlatform;->unpark()V\nLkotlinx/coroutines/EventLoopKt;\nHSPLkotlinx/coroutines/EventLoopKt;->createEventLoop()Lkotlinx/coroutines/EventLoop;\nPLkotlinx/coroutines/EventLoopKt;->createEventLoop()Lkotlinx/coroutines/EventLoop;\nLkotlinx/coroutines/EventLoop_commonKt;\nHSPLkotlinx/coroutines/EventLoop_commonKt;-><clinit>()V\nPLkotlinx/coroutines/EventLoop_commonKt;-><clinit>()V\nHSPLkotlinx/coroutines/EventLoop_commonKt;->access$getCLOSED_EMPTY$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/EventLoop_commonKt;->access$getCLOSED_EMPTY$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/EventLoop_commonKt;->access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/EventLoop_commonKt;->access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/EventLoop_commonKt;->delayToNanos(J)J\nPLkotlinx/coroutines/EventLoop_commonKt;->delayToNanos(J)J\nLkotlinx/coroutines/ExceptionsKt;\nPLkotlinx/coroutines/ExceptionsKt;->CancellationException(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;\nLkotlinx/coroutines/ExecutorCoroutineDispatcher;\nHSPLkotlinx/coroutines/ExecutorCoroutineDispatcher;-><clinit>()V\nPLkotlinx/coroutines/ExecutorCoroutineDispatcher;-><clinit>()V\nHSPLkotlinx/coroutines/ExecutorCoroutineDispatcher;-><init>()V\nPLkotlinx/coroutines/ExecutorCoroutineDispatcher;-><init>()V\nLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;\nHSPLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;\nHSPLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;-><clinit>()V\nPLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;-><clinit>()V\nHSPLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;-><init>()V\nPLkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;-><init>()V\nLkotlinx/coroutines/GlobalScope;\nHSPLkotlinx/coroutines/GlobalScope;-><clinit>()V\nPLkotlinx/coroutines/GlobalScope;-><clinit>()V\nHSPLkotlinx/coroutines/GlobalScope;-><init>()V\nPLkotlinx/coroutines/GlobalScope;-><init>()V\nHSPLkotlinx/coroutines/GlobalScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/GlobalScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nLkotlinx/coroutines/InactiveNodeList;\nLkotlinx/coroutines/Incomplete;\nLkotlinx/coroutines/IncompleteStateBox;\nLkotlinx/coroutines/InvokeOnCancel;\nHSPLkotlinx/coroutines/InvokeOnCancel;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/InvokeOnCancel;-><init>(Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/InvokeOnCancel;->invoke(Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/InvokeOnCancel;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/InvokeOnCancelling;\nLkotlinx/coroutines/InvokeOnCompletion;\nHSPLkotlinx/coroutines/InvokeOnCompletion;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/InvokeOnCompletion;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/InvokeOnCompletion;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/Job;-><clinit>()V\nPLkotlinx/coroutines/Job;-><clinit>()V\nLkotlinx/coroutines/Job$DefaultImpls;\nPLkotlinx/coroutines/Job$DefaultImpls;->cancel$default(Lkotlinx/coroutines/Job;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V\nHSPLkotlinx/coroutines/Job$DefaultImpls;->invokeOnCompletion$default(Lkotlinx/coroutines/Job;ZZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/DisposableHandle;\nHPLkotlinx/coroutines/Job$DefaultImpls;->invokeOnCompletion$default(Lkotlinx/coroutines/Job;ZZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/DisposableHandle;\nLkotlinx/coroutines/Job$Key;\nHSPLkotlinx/coroutines/Job$Key;-><clinit>()V\nPLkotlinx/coroutines/Job$Key;-><clinit>()V\nHSPLkotlinx/coroutines/Job$Key;-><init>()V\nPLkotlinx/coroutines/Job$Key;-><init>()V\nLkotlinx/coroutines/JobCancellationException;\nHSPLkotlinx/coroutines/JobCancellationException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;Lkotlinx/coroutines/Job;)V\nPLkotlinx/coroutines/JobCancellationException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;Lkotlinx/coroutines/Job;)V\nPLkotlinx/coroutines/JobCancellationException;->equals(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/JobCancellationException;->equals(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/JobCancellationException;->fillInStackTrace()Ljava/lang/Throwable;\nPLkotlinx/coroutines/JobCancellationException;->fillInStackTrace()Ljava/lang/Throwable;\nLkotlinx/coroutines/JobCancellingNode;\nHSPLkotlinx/coroutines/JobCancellingNode;-><init>()V\nPLkotlinx/coroutines/JobCancellingNode;-><init>()V\nLkotlinx/coroutines/JobImpl;\nHSPLkotlinx/coroutines/JobImpl;-><init>(Lkotlinx/coroutines/Job;)V\nHPLkotlinx/coroutines/JobImpl;-><init>(Lkotlinx/coroutines/Job;)V\nHSPLkotlinx/coroutines/JobImpl;->getHandlesException$kotlinx_coroutines_core()Z\nPLkotlinx/coroutines/JobImpl;->getHandlesException$kotlinx_coroutines_core()Z\nHSPLkotlinx/coroutines/JobImpl;->getOnCancelComplete$kotlinx_coroutines_core()Z\nHPLkotlinx/coroutines/JobImpl;->getOnCancelComplete$kotlinx_coroutines_core()Z\nLkotlinx/coroutines/JobKt;\nHSPLkotlinx/coroutines/JobKt;->Job$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;\nPLkotlinx/coroutines/JobKt;->Job$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;\nPLkotlinx/coroutines/JobKt;->cancel$default(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V\nPLkotlinx/coroutines/JobKt;->cancelAndJoin(Lkotlinx/coroutines/Job;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V\nPLkotlinx/coroutines/JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/JobKt;->ensureActive(Lkotlinx/coroutines/Job;)V\nHPLkotlinx/coroutines/JobKt;->ensureActive(Lkotlinx/coroutines/Job;)V\nHSPLkotlinx/coroutines/JobKt;->getJob(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/JobKt;->getJob(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/JobKt;->isActive(Lkotlin/coroutines/CoroutineContext;)Z\nPLkotlinx/coroutines/JobKt;->isActive(Lkotlin/coroutines/CoroutineContext;)Z\nLkotlinx/coroutines/JobKt__JobKt;\nHSPLkotlinx/coroutines/JobKt__JobKt;->Job$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;\nPLkotlinx/coroutines/JobKt__JobKt;->Job$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;\nPLkotlinx/coroutines/JobKt__JobKt;->cancel$default(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V\nPLkotlinx/coroutines/JobKt__JobKt;->cancel(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/CancellationException;)V\nPLkotlinx/coroutines/JobKt__JobKt;->cancelAndJoin(Lkotlinx/coroutines/Job;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobKt__JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V\nHPLkotlinx/coroutines/JobKt__JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/JobKt__JobKt;->ensureActive(Lkotlinx/coroutines/Job;)V\nHPLkotlinx/coroutines/JobKt__JobKt;->ensureActive(Lkotlinx/coroutines/Job;)V\nHSPLkotlinx/coroutines/JobKt__JobKt;->getJob(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/JobKt__JobKt;->getJob(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/JobKt__JobKt;->isActive(Lkotlin/coroutines/CoroutineContext;)Z\nHPLkotlinx/coroutines/JobKt__JobKt;->isActive(Lkotlin/coroutines/CoroutineContext;)Z\nLkotlinx/coroutines/JobNode;\nHSPLkotlinx/coroutines/JobNode;-><init>()V\nPLkotlinx/coroutines/JobNode;-><init>()V\nHSPLkotlinx/coroutines/JobNode;->dispose()V\nHPLkotlinx/coroutines/JobNode;->dispose()V\nHSPLkotlinx/coroutines/JobNode;->getJob()Lkotlinx/coroutines/JobSupport;\nHPLkotlinx/coroutines/JobNode;->getJob()Lkotlinx/coroutines/JobSupport;\nHSPLkotlinx/coroutines/JobNode;->getList()Lkotlinx/coroutines/NodeList;\nHPLkotlinx/coroutines/JobNode;->getList()Lkotlinx/coroutines/NodeList;\nHSPLkotlinx/coroutines/JobNode;->isActive()Z\nHPLkotlinx/coroutines/JobNode;->isActive()Z\nHSPLkotlinx/coroutines/JobNode;->setJob(Lkotlinx/coroutines/JobSupport;)V\nPLkotlinx/coroutines/JobNode;->setJob(Lkotlinx/coroutines/JobSupport;)V\nLkotlinx/coroutines/JobSupport;\nHSPLkotlinx/coroutines/JobSupport;-><clinit>()V\nPLkotlinx/coroutines/JobSupport;-><clinit>()V\nHSPLkotlinx/coroutines/JobSupport;-><init>(Z)V\nHPLkotlinx/coroutines/JobSupport;-><init>(Z)V\nHSPLkotlinx/coroutines/JobSupport;->access$cancellationExceptionMessage(Lkotlinx/coroutines/JobSupport;)Ljava/lang/String;\nPLkotlinx/coroutines/JobSupport;->access$cancellationExceptionMessage(Lkotlinx/coroutines/JobSupport;)Ljava/lang/String;\nHSPLkotlinx/coroutines/JobSupport;->access$continueCompleting(Lkotlinx/coroutines/JobSupport;Lkotlinx/coroutines/JobSupport$Finishing;Lkotlinx/coroutines/ChildHandleNode;Ljava/lang/Object;)V\nPLkotlinx/coroutines/JobSupport;->access$continueCompleting(Lkotlinx/coroutines/JobSupport;Lkotlinx/coroutines/JobSupport$Finishing;Lkotlinx/coroutines/ChildHandleNode;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/JobSupport;->afterCompletion(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/JobSupport;->afterCompletion(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/JobSupport;->attachChild(Lkotlinx/coroutines/ChildJob;)Lkotlinx/coroutines/ChildHandle;\nHPLkotlinx/coroutines/JobSupport;->attachChild(Lkotlinx/coroutines/ChildJob;)Lkotlinx/coroutines/ChildHandle;\nHSPLkotlinx/coroutines/JobSupport;->awaitInternal(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupport;->awaitInternal(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->awaitSuspend(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupport;->awaitSuspend(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->cancel(Ljava/util/concurrent/CancellationException;)V\nHPLkotlinx/coroutines/JobSupport;->cancel(Ljava/util/concurrent/CancellationException;)V\nHSPLkotlinx/coroutines/JobSupport;->cancelCoroutine(Ljava/lang/Throwable;)Z\nPLkotlinx/coroutines/JobSupport;->cancelCoroutine(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/JobSupport;->cancelImpl$kotlinx_coroutines_core(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/JobSupport;->cancelImpl$kotlinx_coroutines_core(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/JobSupport;->cancelInternal(Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/JobSupport;->cancelInternal(Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/JobSupport;->cancelParent(Ljava/lang/Throwable;)Z\nHPLkotlinx/coroutines/JobSupport;->cancelParent(Ljava/lang/Throwable;)Z\nPLkotlinx/coroutines/JobSupport;->cancellationExceptionMessage()Ljava/lang/String;\nHSPLkotlinx/coroutines/JobSupport;->childCancelled(Ljava/lang/Throwable;)Z\nHPLkotlinx/coroutines/JobSupport;->childCancelled(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/JobSupport;->completeStateFinalization(Lkotlinx/coroutines/Incomplete;Ljava/lang/Object;)V\nHPLkotlinx/coroutines/JobSupport;->completeStateFinalization(Lkotlinx/coroutines/Incomplete;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/JobSupport;->createCauseException(Ljava/lang/Object;)Ljava/lang/Throwable;\nHPLkotlinx/coroutines/JobSupport;->createCauseException(Ljava/lang/Object;)Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/JobSupport;->finalizeFinishingState(Lkotlinx/coroutines/JobSupport$Finishing;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/JobSupport;->finalizeFinishingState(Lkotlinx/coroutines/JobSupport$Finishing;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlinx/coroutines/JobSupport;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHPLkotlinx/coroutines/JobSupport;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlinx/coroutines/JobSupport;->getCancellationException()Ljava/util/concurrent/CancellationException;\nHPLkotlinx/coroutines/JobSupport;->getCancellationException()Ljava/util/concurrent/CancellationException;\nHSPLkotlinx/coroutines/JobSupport;->getChildJobCancellationCause()Ljava/util/concurrent/CancellationException;\nHPLkotlinx/coroutines/JobSupport;->getChildJobCancellationCause()Ljava/util/concurrent/CancellationException;\nHSPLkotlinx/coroutines/JobSupport;->getFinalRootCause(Lkotlinx/coroutines/JobSupport$Finishing;Ljava/util/List;)Ljava/lang/Throwable;\nHPLkotlinx/coroutines/JobSupport;->getFinalRootCause(Lkotlinx/coroutines/JobSupport$Finishing;Ljava/util/List;)Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/JobSupport;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nHPLkotlinx/coroutines/JobSupport;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nHSPLkotlinx/coroutines/JobSupport;->getOnCancelComplete$kotlinx_coroutines_core()Z\nHPLkotlinx/coroutines/JobSupport;->getOnCancelComplete$kotlinx_coroutines_core()Z\nHSPLkotlinx/coroutines/JobSupport;->getOrPromoteCancellingList(Lkotlinx/coroutines/Incomplete;)Lkotlinx/coroutines/NodeList;\nHPLkotlinx/coroutines/JobSupport;->getOrPromoteCancellingList(Lkotlinx/coroutines/Incomplete;)Lkotlinx/coroutines/NodeList;\nHSPLkotlinx/coroutines/JobSupport;->getParentHandle$kotlinx_coroutines_core()Lkotlinx/coroutines/ChildHandle;\nHPLkotlinx/coroutines/JobSupport;->getParentHandle$kotlinx_coroutines_core()Lkotlinx/coroutines/ChildHandle;\nHSPLkotlinx/coroutines/JobSupport;->getState$kotlinx_coroutines_core()Ljava/lang/Object;\nHPLkotlinx/coroutines/JobSupport;->getState$kotlinx_coroutines_core()Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->initParentJob(Lkotlinx/coroutines/Job;)V\nHPLkotlinx/coroutines/JobSupport;->initParentJob(Lkotlinx/coroutines/Job;)V\nHSPLkotlinx/coroutines/JobSupport;->invokeOnCompletion(Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;\nPLkotlinx/coroutines/JobSupport;->invokeOnCompletion(Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;\nHSPLkotlinx/coroutines/JobSupport;->invokeOnCompletion(ZZLkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;\nHPLkotlinx/coroutines/JobSupport;->invokeOnCompletion(ZZLkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;\nHSPLkotlinx/coroutines/JobSupport;->isActive()Z\nHPLkotlinx/coroutines/JobSupport;->isActive()Z\nHSPLkotlinx/coroutines/JobSupport;->isCancelled()Z\nHPLkotlinx/coroutines/JobSupport;->isCancelled()Z\nHSPLkotlinx/coroutines/JobSupport;->isCompleted()Z\nHPLkotlinx/coroutines/JobSupport;->isCompleted()Z\nHSPLkotlinx/coroutines/JobSupport;->isScopedCoroutine()Z\nHPLkotlinx/coroutines/JobSupport;->isScopedCoroutine()Z\nHSPLkotlinx/coroutines/JobSupport;->join(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/JobSupport;->join(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->joinSuspend(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupport;->joinSuspend(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->makeCompletingOnce$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/JobSupport;->makeCompletingOnce$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/JobSupport;->minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/JobSupport;->nextChild(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)Lkotlinx/coroutines/ChildHandleNode;\nHPLkotlinx/coroutines/JobSupport;->nextChild(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)Lkotlinx/coroutines/ChildHandleNode;\nHSPLkotlinx/coroutines/JobSupport;->notifyCancelling(Lkotlinx/coroutines/NodeList;Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/JobSupport;->notifyCancelling(Lkotlinx/coroutines/NodeList;Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/JobSupport;->onCancelling(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/JobSupport;->onCancelling(Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/JobSupport;->onCompletionInternal(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/JobSupport;->onCompletionInternal(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/JobSupport;->parentCancelled(Lkotlinx/coroutines/ParentJob;)V\nPLkotlinx/coroutines/JobSupport;->parentCancelled(Lkotlinx/coroutines/ParentJob;)V\nHSPLkotlinx/coroutines/JobSupport;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/JobSupport;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/JobSupport;->removeNode$kotlinx_coroutines_core(Lkotlinx/coroutines/JobNode;)V\nHPLkotlinx/coroutines/JobSupport;->removeNode$kotlinx_coroutines_core(Lkotlinx/coroutines/JobNode;)V\nHSPLkotlinx/coroutines/JobSupport;->setParentHandle$kotlinx_coroutines_core(Lkotlinx/coroutines/ChildHandle;)V\nHPLkotlinx/coroutines/JobSupport;->setParentHandle$kotlinx_coroutines_core(Lkotlinx/coroutines/ChildHandle;)V\nHSPLkotlinx/coroutines/JobSupport;->start()Z\nHPLkotlinx/coroutines/JobSupport;->start()Z\nHSPLkotlinx/coroutines/JobSupport;->startInternal(Ljava/lang/Object;)I\nHPLkotlinx/coroutines/JobSupport;->startInternal(Ljava/lang/Object;)I\nHSPLkotlinx/coroutines/JobSupport;->toCancellationException$default(Lkotlinx/coroutines/JobSupport;Ljava/lang/Throwable;Ljava/lang/String;ILjava/lang/Object;)Ljava/util/concurrent/CancellationException;\nPLkotlinx/coroutines/JobSupport;->toCancellationException$default(Lkotlinx/coroutines/JobSupport;Ljava/lang/Throwable;Ljava/lang/String;ILjava/lang/Object;)Ljava/util/concurrent/CancellationException;\nHSPLkotlinx/coroutines/JobSupport;->toCancellationException(Ljava/lang/Throwable;Ljava/lang/String;)Ljava/util/concurrent/CancellationException;\nPLkotlinx/coroutines/JobSupport;->toCancellationException(Ljava/lang/Throwable;Ljava/lang/String;)Ljava/util/concurrent/CancellationException;\nHSPLkotlinx/coroutines/JobSupport;->tryMakeCompleting(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/JobSupport;->tryMakeCompleting(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport;->tryWaitForChild(Lkotlinx/coroutines/JobSupport$Finishing;Lkotlinx/coroutines/ChildHandleNode;Ljava/lang/Object;)Z\nPLkotlinx/coroutines/JobSupport;->tryWaitForChild(Lkotlinx/coroutines/JobSupport$Finishing;Lkotlinx/coroutines/ChildHandleNode;Ljava/lang/Object;)Z\nLkotlinx/coroutines/JobSupport$AwaitContinuation;\nHSPLkotlinx/coroutines/JobSupport$AwaitContinuation;-><init>(Lkotlin/coroutines/Continuation;Lkotlinx/coroutines/JobSupport;)V\nPLkotlinx/coroutines/JobSupport$AwaitContinuation;-><init>(Lkotlin/coroutines/Continuation;Lkotlinx/coroutines/JobSupport;)V\nLkotlinx/coroutines/JobSupport$ChildCompletion;\nHSPLkotlinx/coroutines/JobSupport$ChildCompletion;-><init>(Lkotlinx/coroutines/JobSupport;Lkotlinx/coroutines/JobSupport$Finishing;Lkotlinx/coroutines/ChildHandleNode;Ljava/lang/Object;)V\nPLkotlinx/coroutines/JobSupport$ChildCompletion;-><init>(Lkotlinx/coroutines/JobSupport;Lkotlinx/coroutines/JobSupport$Finishing;Lkotlinx/coroutines/ChildHandleNode;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/JobSupport$ChildCompletion;->invoke(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/JobSupport$ChildCompletion;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/JobSupport$Finishing;\nHSPLkotlinx/coroutines/JobSupport$Finishing;-><clinit>()V\nPLkotlinx/coroutines/JobSupport$Finishing;-><clinit>()V\nHSPLkotlinx/coroutines/JobSupport$Finishing;-><init>(Lkotlinx/coroutines/NodeList;ZLjava/lang/Throwable;)V\nHPLkotlinx/coroutines/JobSupport$Finishing;-><init>(Lkotlinx/coroutines/NodeList;ZLjava/lang/Throwable;)V\nHSPLkotlinx/coroutines/JobSupport$Finishing;->addExceptionLocked(Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/JobSupport$Finishing;->addExceptionLocked(Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/JobSupport$Finishing;->getList()Lkotlinx/coroutines/NodeList;\nHPLkotlinx/coroutines/JobSupport$Finishing;->getList()Lkotlinx/coroutines/NodeList;\nHSPLkotlinx/coroutines/JobSupport$Finishing;->getRootCause()Ljava/lang/Throwable;\nHPLkotlinx/coroutines/JobSupport$Finishing;->getRootCause()Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/JobSupport$Finishing;->isActive()Z\nHPLkotlinx/coroutines/JobSupport$Finishing;->isActive()Z\nHSPLkotlinx/coroutines/JobSupport$Finishing;->isCancelling()Z\nPLkotlinx/coroutines/JobSupport$Finishing;->isCancelling()Z\nHSPLkotlinx/coroutines/JobSupport$Finishing;->isCompleting()Z\nPLkotlinx/coroutines/JobSupport$Finishing;->isCompleting()Z\nHSPLkotlinx/coroutines/JobSupport$Finishing;->isSealed()Z\nPLkotlinx/coroutines/JobSupport$Finishing;->isSealed()Z\nHSPLkotlinx/coroutines/JobSupport$Finishing;->sealLocked(Ljava/lang/Throwable;)Ljava/util/List;\nHPLkotlinx/coroutines/JobSupport$Finishing;->sealLocked(Ljava/lang/Throwable;)Ljava/util/List;\nHSPLkotlinx/coroutines/JobSupport$Finishing;->setCompleting(Z)V\nPLkotlinx/coroutines/JobSupport$Finishing;->setCompleting(Z)V\nHSPLkotlinx/coroutines/JobSupport$Finishing;->setRootCause(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/JobSupport$Finishing;->setRootCause(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;\nHSPLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;-><init>(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/JobSupport;Ljava/lang/Object;)V\nPLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;-><init>(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/JobSupport;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;->prepare(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;->prepare(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;->prepare(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupport$addLastAtomic$$inlined$addLastIf$1;->prepare(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)Ljava/lang/Object;\nLkotlinx/coroutines/JobSupportKt;\nHSPLkotlinx/coroutines/JobSupportKt;-><clinit>()V\nPLkotlinx/coroutines/JobSupportKt;-><clinit>()V\nHSPLkotlinx/coroutines/JobSupportKt;->access$getCOMPLETING_ALREADY$p()Lkotlinx/coroutines/internal/Symbol;\nHPLkotlinx/coroutines/JobSupportKt;->access$getCOMPLETING_ALREADY$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/JobSupportKt;->access$getCOMPLETING_RETRY$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/JobSupportKt;->access$getCOMPLETING_RETRY$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/JobSupportKt;->access$getEMPTY_ACTIVE$p()Lkotlinx/coroutines/Empty;\nPLkotlinx/coroutines/JobSupportKt;->access$getEMPTY_ACTIVE$p()Lkotlinx/coroutines/Empty;\nHSPLkotlinx/coroutines/JobSupportKt;->access$getSEALED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/JobSupportKt;->access$getSEALED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/JobSupportKt;->access$getTOO_LATE_TO_CANCEL$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/JobSupportKt;->access$getTOO_LATE_TO_CANCEL$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/JobSupportKt;->boxIncomplete(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupportKt;->boxIncomplete(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/JobSupportKt;->unboxState(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/JobSupportKt;->unboxState(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/LazyStandaloneCoroutine;\nLkotlinx/coroutines/MainCoroutineDispatcher;\nHSPLkotlinx/coroutines/MainCoroutineDispatcher;-><init>()V\nPLkotlinx/coroutines/MainCoroutineDispatcher;-><init>()V\nLkotlinx/coroutines/NodeList;\nHSPLkotlinx/coroutines/NodeList;-><init>()V\nPLkotlinx/coroutines/NodeList;-><init>()V\nHSPLkotlinx/coroutines/NodeList;->getList()Lkotlinx/coroutines/NodeList;\nHPLkotlinx/coroutines/NodeList;->getList()Lkotlinx/coroutines/NodeList;\nHSPLkotlinx/coroutines/NodeList;->isActive()Z\nHPLkotlinx/coroutines/NodeList;->isActive()Z\nLkotlinx/coroutines/NonDisposableHandle;\nHSPLkotlinx/coroutines/NonDisposableHandle;-><clinit>()V\nPLkotlinx/coroutines/NonDisposableHandle;-><clinit>()V\nHSPLkotlinx/coroutines/NonDisposableHandle;-><init>()V\nPLkotlinx/coroutines/NonDisposableHandle;-><init>()V\nHSPLkotlinx/coroutines/NonDisposableHandle;->dispose()V\nPLkotlinx/coroutines/NonDisposableHandle;->dispose()V\nLkotlinx/coroutines/NotCompleted;\nLkotlinx/coroutines/ParentJob;\nLkotlinx/coroutines/ResumeAwaitOnCompletion;\nHSPLkotlinx/coroutines/ResumeAwaitOnCompletion;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nPLkotlinx/coroutines/ResumeAwaitOnCompletion;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHSPLkotlinx/coroutines/ResumeAwaitOnCompletion;->invoke(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/ResumeAwaitOnCompletion;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/ResumeOnCompletion;\nHSPLkotlinx/coroutines/ResumeOnCompletion;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/ResumeOnCompletion;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/ResumeOnCompletion;->invoke(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/ResumeOnCompletion;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/StandaloneCoroutine;\nHSPLkotlinx/coroutines/StandaloneCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Z)V\nHPLkotlinx/coroutines/StandaloneCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Z)V\nLkotlinx/coroutines/SupervisorJobImpl;\nHSPLkotlinx/coroutines/SupervisorJobImpl;-><init>(Lkotlinx/coroutines/Job;)V\nPLkotlinx/coroutines/SupervisorJobImpl;-><init>(Lkotlinx/coroutines/Job;)V\nPLkotlinx/coroutines/SupervisorJobImpl;->childCancelled(Ljava/lang/Throwable;)Z\nLkotlinx/coroutines/SupervisorKt;\nHSPLkotlinx/coroutines/SupervisorKt;->SupervisorJob$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;\nPLkotlinx/coroutines/SupervisorKt;->SupervisorJob$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;\nHSPLkotlinx/coroutines/SupervisorKt;->SupervisorJob(Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/CompletableJob;\nPLkotlinx/coroutines/SupervisorKt;->SupervisorJob(Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/CompletableJob;\nLkotlinx/coroutines/ThreadContextElement;\nLkotlinx/coroutines/ThreadLocalEventLoop;\nHSPLkotlinx/coroutines/ThreadLocalEventLoop;-><clinit>()V\nPLkotlinx/coroutines/ThreadLocalEventLoop;-><clinit>()V\nHSPLkotlinx/coroutines/ThreadLocalEventLoop;-><init>()V\nPLkotlinx/coroutines/ThreadLocalEventLoop;-><init>()V\nHSPLkotlinx/coroutines/ThreadLocalEventLoop;->getEventLoop$kotlinx_coroutines_core()Lkotlinx/coroutines/EventLoop;\nPLkotlinx/coroutines/ThreadLocalEventLoop;->getEventLoop$kotlinx_coroutines_core()Lkotlinx/coroutines/EventLoop;\nHSPLkotlinx/coroutines/ThreadLocalEventLoop;->setEventLoop$kotlinx_coroutines_core(Lkotlinx/coroutines/EventLoop;)V\nPLkotlinx/coroutines/ThreadLocalEventLoop;->setEventLoop$kotlinx_coroutines_core(Lkotlinx/coroutines/EventLoop;)V\nLkotlinx/coroutines/TimeoutCancellationException;\nLkotlinx/coroutines/Unconfined;\nHSPLkotlinx/coroutines/Unconfined;-><clinit>()V\nPLkotlinx/coroutines/Unconfined;-><clinit>()V\nHSPLkotlinx/coroutines/Unconfined;-><init>()V\nPLkotlinx/coroutines/Unconfined;-><init>()V\nLkotlinx/coroutines/UndispatchedCoroutine;\nHSPLkotlinx/coroutines/UndispatchedCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/UndispatchedCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/UndispatchedCoroutine;->afterResume(Ljava/lang/Object;)V\nLkotlinx/coroutines/UndispatchedMarker;\nHSPLkotlinx/coroutines/UndispatchedMarker;-><clinit>()V\nPLkotlinx/coroutines/UndispatchedMarker;-><clinit>()V\nHSPLkotlinx/coroutines/UndispatchedMarker;-><init>()V\nPLkotlinx/coroutines/UndispatchedMarker;-><init>()V\nHSPLkotlinx/coroutines/UndispatchedMarker;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nPLkotlinx/coroutines/UndispatchedMarker;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/UndispatchedMarker;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nPLkotlinx/coroutines/UndispatchedMarker;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;\nHSPLkotlinx/coroutines/UndispatchedMarker;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nPLkotlinx/coroutines/UndispatchedMarker;->getKey()Lkotlin/coroutines/CoroutineContext$Key;\nLkotlinx/coroutines/Waiter;\nLkotlinx/coroutines/YieldContext;\nHSPLkotlinx/coroutines/YieldContext;-><clinit>()V\nPLkotlinx/coroutines/YieldContext;-><clinit>()V\nHSPLkotlinx/coroutines/YieldContext;-><init>()V\nPLkotlinx/coroutines/YieldContext;-><init>()V\nLkotlinx/coroutines/YieldContext$Key;\nHSPLkotlinx/coroutines/YieldContext$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/YieldContext$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/coroutines/YieldKt;\nHSPLkotlinx/coroutines/YieldKt;->yield(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/YieldKt;->yield(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/android/AndroidDispatcherFactory;\nHSPLkotlinx/coroutines/android/AndroidDispatcherFactory;-><init>()V\nPLkotlinx/coroutines/android/AndroidDispatcherFactory;-><init>()V\nHSPLkotlinx/coroutines/android/AndroidDispatcherFactory;->createDispatcher(Ljava/util/List;)Lkotlinx/coroutines/MainCoroutineDispatcher;\nPLkotlinx/coroutines/android/AndroidDispatcherFactory;->createDispatcher(Ljava/util/List;)Lkotlinx/coroutines/MainCoroutineDispatcher;\nLkotlinx/coroutines/android/HandlerContext;\nHSPLkotlinx/coroutines/android/HandlerContext;-><init>(Landroid/os/Handler;Ljava/lang/String;)V\nPLkotlinx/coroutines/android/HandlerContext;-><init>(Landroid/os/Handler;Ljava/lang/String;)V\nHSPLkotlinx/coroutines/android/HandlerContext;-><init>(Landroid/os/Handler;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/android/HandlerContext;-><init>(Landroid/os/Handler;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/android/HandlerContext;-><init>(Landroid/os/Handler;Ljava/lang/String;Z)V\nPLkotlinx/coroutines/android/HandlerContext;-><init>(Landroid/os/Handler;Ljava/lang/String;Z)V\nHSPLkotlinx/coroutines/android/HandlerContext;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHPLkotlinx/coroutines/android/HandlerContext;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/android/HandlerContext;->equals(Ljava/lang/Object;)Z\nPLkotlinx/coroutines/android/HandlerContext;->equals(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/android/HandlerContext;->getImmediate()Lkotlinx/coroutines/MainCoroutineDispatcher;\nPLkotlinx/coroutines/android/HandlerContext;->getImmediate()Lkotlinx/coroutines/MainCoroutineDispatcher;\nHSPLkotlinx/coroutines/android/HandlerContext;->getImmediate()Lkotlinx/coroutines/android/HandlerDispatcher;\nPLkotlinx/coroutines/android/HandlerContext;->getImmediate()Lkotlinx/coroutines/android/HandlerDispatcher;\nHSPLkotlinx/coroutines/android/HandlerContext;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z\nHPLkotlinx/coroutines/android/HandlerContext;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z\nLkotlinx/coroutines/android/HandlerDispatcher;\nHSPLkotlinx/coroutines/android/HandlerDispatcher;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/android/HandlerDispatcher;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/coroutines/android/HandlerDispatcherKt;\nHSPLkotlinx/coroutines/android/HandlerDispatcherKt;-><clinit>()V\nPLkotlinx/coroutines/android/HandlerDispatcherKt;-><clinit>()V\nHSPLkotlinx/coroutines/android/HandlerDispatcherKt;->asHandler(Landroid/os/Looper;Z)Landroid/os/Handler;\nPLkotlinx/coroutines/android/HandlerDispatcherKt;->asHandler(Landroid/os/Looper;Z)Landroid/os/Handler;\nLkotlinx/coroutines/channels/BufferOverflow;\nHSPLkotlinx/coroutines/channels/BufferOverflow;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferOverflow;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferOverflow;-><init>(Ljava/lang/String;I)V\nPLkotlinx/coroutines/channels/BufferOverflow;-><init>(Ljava/lang/String;I)V\nLkotlinx/coroutines/channels/BufferedChannel;\nHSPLkotlinx/coroutines/channels/BufferedChannel;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannel;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel;-><init>(ILkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/channels/BufferedChannel;-><init>(ILkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$findSegmentReceive(Lkotlinx/coroutines/channels/BufferedChannel;JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$findSegmentReceive(Lkotlinx/coroutines/channels/BufferedChannel;JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$findSegmentSend(Lkotlinx/coroutines/channels/BufferedChannel;JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nHPLkotlinx/coroutines/channels/BufferedChannel;->access$findSegmentSend(Lkotlinx/coroutines/channels/BufferedChannel;JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$getReceiveSegment$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$getReceiveSegment$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$getReceivers$FU$p()Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$getReceivers$FU$p()Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$getSendSegment$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$getSendSegment$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$getSendersAndCloseStatus$FU$p()Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$getSendersAndCloseStatus$FU$p()Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$isClosedForSend0(Lkotlinx/coroutines/channels/BufferedChannel;J)Z\nPLkotlinx/coroutines/channels/BufferedChannel;->access$isClosedForSend0(Lkotlinx/coroutines/channels/BufferedChannel;J)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$prepareReceiverForSuspension(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/Waiter;Lkotlinx/coroutines/channels/ChannelSegment;I)V\nPLkotlinx/coroutines/channels/BufferedChannel;->access$prepareReceiverForSuspension(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/Waiter;Lkotlinx/coroutines/channels/ChannelSegment;I)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$prepareSenderForSuspension(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/Waiter;Lkotlinx/coroutines/channels/ChannelSegment;I)V\nPLkotlinx/coroutines/channels/BufferedChannel;->access$prepareSenderForSuspension(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/Waiter;Lkotlinx/coroutines/channels/ChannelSegment;I)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$processResultSelectReceive(Lkotlinx/coroutines/channels/BufferedChannel;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->access$processResultSelectReceive(Lkotlinx/coroutines/channels/BufferedChannel;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$processResultSelectReceiveCatching(Lkotlinx/coroutines/channels/BufferedChannel;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$processResultSelectReceiveCatching(Lkotlinx/coroutines/channels/BufferedChannel;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$receiveCatchingOnNoWaiterSuspend-GKJJFZk(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel;->access$receiveCatchingOnNoWaiterSuspend-GKJJFZk(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$registerSelectForReceive(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/selects/SelectInstance;Ljava/lang/Object;)V\nHPLkotlinx/coroutines/channels/BufferedChannel;->access$registerSelectForReceive(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/selects/SelectInstance;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$updateCellReceive(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/channels/ChannelSegment;IJLjava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->access$updateCellReceive(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/channels/ChannelSegment;IJLjava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->access$updateCellSend(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;JLjava/lang/Object;Z)I\nHPLkotlinx/coroutines/channels/BufferedChannel;->access$updateCellSend(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;JLjava/lang/Object;Z)I\nHSPLkotlinx/coroutines/channels/BufferedChannel;->bufferOrRendezvousSend(J)Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->bufferOrRendezvousSend(J)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->cancel(Ljava/util/concurrent/CancellationException;)V\nPLkotlinx/coroutines/channels/BufferedChannel;->cancel(Ljava/util/concurrent/CancellationException;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->cancelImpl$kotlinx_coroutines_core(Ljava/lang/Throwable;)Z\nPLkotlinx/coroutines/channels/BufferedChannel;->cancelImpl$kotlinx_coroutines_core(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->close(Ljava/lang/Throwable;)Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->close(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->closeOrCancelImpl(Ljava/lang/Throwable;Z)Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->closeOrCancelImpl(Ljava/lang/Throwable;Z)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->completeClose(J)Lkotlinx/coroutines/channels/ChannelSegment;\nHPLkotlinx/coroutines/channels/BufferedChannel;->completeClose(J)Lkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->dropFirstElementUntilTheSpecifiedCellIsInTheBuffer(J)V\nHPLkotlinx/coroutines/channels/BufferedChannel;->dropFirstElementUntilTheSpecifiedCellIsInTheBuffer(J)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->expandBuffer()V\nHPLkotlinx/coroutines/channels/BufferedChannel;->expandBuffer()V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->findSegmentReceive(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nHPLkotlinx/coroutines/channels/BufferedChannel;->findSegmentReceive(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->getBufferEndCounter()J\nHPLkotlinx/coroutines/channels/BufferedChannel;->getBufferEndCounter()J\nHSPLkotlinx/coroutines/channels/BufferedChannel;->getCloseCause()Ljava/lang/Throwable;\nPLkotlinx/coroutines/channels/BufferedChannel;->getCloseCause()Ljava/lang/Throwable;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->getOnReceive()Lkotlinx/coroutines/selects/SelectClause1;\nHPLkotlinx/coroutines/channels/BufferedChannel;->getOnReceive()Lkotlinx/coroutines/selects/SelectClause1;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->getOnReceiveCatching()Lkotlinx/coroutines/selects/SelectClause1;\nHPLkotlinx/coroutines/channels/BufferedChannel;->getOnReceiveCatching()Lkotlinx/coroutines/selects/SelectClause1;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->getReceiversCounter$kotlinx_coroutines_core()J\nHPLkotlinx/coroutines/channels/BufferedChannel;->getReceiversCounter$kotlinx_coroutines_core()J\nHSPLkotlinx/coroutines/channels/BufferedChannel;->getSendersCounter$kotlinx_coroutines_core()J\nHPLkotlinx/coroutines/channels/BufferedChannel;->getSendersCounter$kotlinx_coroutines_core()J\nHSPLkotlinx/coroutines/channels/BufferedChannel;->incCompletedExpandBufferAttempts(J)V\nHPLkotlinx/coroutines/channels/BufferedChannel;->incCompletedExpandBufferAttempts(J)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->invokeOnClose(Lkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/channels/BufferedChannel;->invokeOnClose(Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->isClosed(JZ)Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->isClosed(JZ)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->isClosedForReceive()Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->isClosedForReceive()Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->isClosedForSend()Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->isClosedForSend()Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->isConflatedDropOldest()Z\nPLkotlinx/coroutines/channels/BufferedChannel;->isConflatedDropOldest()Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->isRendezvousOrUnlimited()Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->isRendezvousOrUnlimited()Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->iterator()Lkotlinx/coroutines/channels/ChannelIterator;\nHPLkotlinx/coroutines/channels/BufferedChannel;->iterator()Lkotlinx/coroutines/channels/ChannelIterator;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->onClosedIdempotent()V\nPLkotlinx/coroutines/channels/BufferedChannel;->onClosedIdempotent()V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->onReceiveDequeued()V\nPLkotlinx/coroutines/channels/BufferedChannel;->onReceiveDequeued()V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->onReceiveEnqueued()V\nPLkotlinx/coroutines/channels/BufferedChannel;->onReceiveEnqueued()V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->receive(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->receive(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->receiveCatching-JP2dKIU$suspendImpl(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->receiveCatching-JP2dKIU$suspendImpl(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->receiveCatching-JP2dKIU(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel;->receiveCatching-JP2dKIU(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->receiveCatchingOnNoWaiterSuspend-GKJJFZk(Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->receiveCatchingOnNoWaiterSuspend-GKJJFZk(Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->receiveOnNoWaiterSuspend(Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->receiveOnNoWaiterSuspend(Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->resumeWaiterOnClosedChannel(Lkotlinx/coroutines/Waiter;Z)V\nPLkotlinx/coroutines/channels/BufferedChannel;->resumeWaiterOnClosedChannel(Lkotlinx/coroutines/Waiter;Z)V\nHSPLkotlinx/coroutines/channels/BufferedChannel;->send(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->send(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->sendOnNoWaiterSuspend(Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel;->sendOnNoWaiterSuspend(Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->tryReceive-PtdJZtk()Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->tryReceive-PtdJZtk()Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->tryResumeReceiver(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/channels/BufferedChannel;->tryResumeReceiver(Ljava/lang/Object;Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->tryResumeSender(Ljava/lang/Object;Lkotlinx/coroutines/channels/ChannelSegment;I)Z\nPLkotlinx/coroutines/channels/BufferedChannel;->tryResumeSender(Ljava/lang/Object;Lkotlinx/coroutines/channels/ChannelSegment;I)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel;->trySend-JP2dKIU(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->trySend-JP2dKIU(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel;->updateCellReceive(Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;J)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel;->updateCellReceive(Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;J)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel;->updateCellSendSlow(Lkotlinx/coroutines/channels/ChannelSegment;ILjava/lang/Object;JLjava/lang/Object;Z)I\nHSPLkotlinx/coroutines/channels/BufferedChannel;->waitExpandBufferCompletion$kotlinx_coroutines_core(J)V\nHPLkotlinx/coroutines/channels/BufferedChannel;->waitExpandBufferCompletion$kotlinx_coroutines_core(J)V\nLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;-><init>(Lkotlinx/coroutines/channels/BufferedChannel;)V\nHPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;-><init>(Lkotlinx/coroutines/channels/BufferedChannel;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->hasNext(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->hasNext(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->hasNextOnNoWaiterSuspend(Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->hasNextOnNoWaiterSuspend(Lkotlinx/coroutines/channels/ChannelSegment;IJLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->next()Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->next()Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->tryResumeHasNext(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->tryResumeHasNext(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->tryResumeHasNextOnClosedChannel()V\nHPLkotlinx/coroutines/channels/BufferedChannel$BufferedChannelIterator;->tryResumeHasNextOnClosedChannel()V\nLkotlinx/coroutines/channels/BufferedChannel$SendBroadcast;\nLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;-><init>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;-><init>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel$onReceive$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;-><init>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;-><init>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel$onReceive$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;-><init>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;-><init>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;-><init>()V\nPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;-><init>()V\nHSPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel$onReceiveCatching$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/BufferedChannel$receiveCatching$1;\nHSPLkotlinx/coroutines/channels/BufferedChannel$receiveCatching$1;-><init>(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/channels/BufferedChannel$receiveCatching$1;-><init>(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel$receiveCatching$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel$receiveCatching$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/BufferedChannel$receiveCatchingOnNoWaiterSuspend$1;\nHSPLkotlinx/coroutines/channels/BufferedChannel$receiveCatchingOnNoWaiterSuspend$1;-><init>(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/channels/BufferedChannel$receiveCatchingOnNoWaiterSuspend$1;-><init>(Lkotlinx/coroutines/channels/BufferedChannel;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/channels/BufferedChannel$receiveCatchingOnNoWaiterSuspend$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/BufferedChannel$receiveCatchingOnNoWaiterSuspend$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/BufferedChannelKt;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannelKt;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$createSegment(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$createSegment(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getCLOSE_HANDLER_CLOSED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getCLOSE_HANDLER_CLOSED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getCLOSE_HANDLER_INVOKED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getCLOSE_HANDLER_INVOKED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getDONE_RCV$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getDONE_RCV$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getEXPAND_BUFFER_COMPLETION_WAIT_ITERATIONS$p()I\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getEXPAND_BUFFER_COMPLETION_WAIT_ITERATIONS$p()I\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getFAILED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getFAILED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getINTERRUPTED_RCV$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getINTERRUPTED_RCV$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getINTERRUPTED_SEND$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getINTERRUPTED_SEND$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getIN_BUFFER$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getIN_BUFFER$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getNO_CLOSE_CAUSE$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getNO_CLOSE_CAUSE$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getNO_RECEIVE_RESULT$p()Lkotlinx/coroutines/internal/Symbol;\nHPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getNO_RECEIVE_RESULT$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getNULL_SEGMENT$p()Lkotlinx/coroutines/channels/ChannelSegment;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getNULL_SEGMENT$p()Lkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getRESUMING_BY_EB$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getRESUMING_BY_EB$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getRESUMING_BY_RCV$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getRESUMING_BY_RCV$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getSUSPEND$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getSUSPEND$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getSUSPEND_NO_WAITER$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$getSUSPEND_NO_WAITER$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$initialBufferEnd(I)J\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$initialBufferEnd(I)J\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->access$tryResume0(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Z\nPLkotlinx/coroutines/channels/BufferedChannelKt;->access$tryResume0(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Z\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->getCHANNEL_CLOSED()Lkotlinx/coroutines/internal/Symbol;\nHPLkotlinx/coroutines/channels/BufferedChannelKt;->getCHANNEL_CLOSED()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt;->tryResume0$default(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;)Z\nPLkotlinx/coroutines/channels/BufferedChannelKt;->tryResume0$default(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;)Z\nLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;\nHSPLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;-><clinit>()V\nPLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;-><clinit>()V\nHSPLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;-><init>()V\nPLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;-><init>()V\nHSPLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/Channel;\nHSPLkotlinx/coroutines/channels/Channel;-><clinit>()V\nPLkotlinx/coroutines/channels/Channel;-><clinit>()V\nLkotlinx/coroutines/channels/Channel$Factory;\nHSPLkotlinx/coroutines/channels/Channel$Factory;-><clinit>()V\nPLkotlinx/coroutines/channels/Channel$Factory;-><clinit>()V\nHSPLkotlinx/coroutines/channels/Channel$Factory;-><init>()V\nPLkotlinx/coroutines/channels/Channel$Factory;-><init>()V\nHSPLkotlinx/coroutines/channels/Channel$Factory;->getCHANNEL_DEFAULT_CAPACITY$kotlinx_coroutines_core()I\nPLkotlinx/coroutines/channels/Channel$Factory;->getCHANNEL_DEFAULT_CAPACITY$kotlinx_coroutines_core()I\nLkotlinx/coroutines/channels/ChannelCoroutine;\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/channels/Channel;ZZ)V\nHPLkotlinx/coroutines/channels/ChannelCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/channels/Channel;ZZ)V\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->cancel(Ljava/util/concurrent/CancellationException;)V\nHPLkotlinx/coroutines/channels/ChannelCoroutine;->cancel(Ljava/util/concurrent/CancellationException;)V\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->cancelInternal(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/channels/ChannelCoroutine;->cancelInternal(Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->getOnReceive()Lkotlinx/coroutines/selects/SelectClause1;\nPLkotlinx/coroutines/channels/ChannelCoroutine;->getOnReceive()Lkotlinx/coroutines/selects/SelectClause1;\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->getOnReceiveCatching()Lkotlinx/coroutines/selects/SelectClause1;\nPLkotlinx/coroutines/channels/ChannelCoroutine;->getOnReceiveCatching()Lkotlinx/coroutines/selects/SelectClause1;\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->get_channel()Lkotlinx/coroutines/channels/Channel;\nPLkotlinx/coroutines/channels/ChannelCoroutine;->get_channel()Lkotlinx/coroutines/channels/Channel;\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->invokeOnClose(Lkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/channels/ChannelCoroutine;->invokeOnClose(Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->iterator()Lkotlinx/coroutines/channels/ChannelIterator;\nPLkotlinx/coroutines/channels/ChannelCoroutine;->iterator()Lkotlinx/coroutines/channels/ChannelIterator;\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->send(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ChannelCoroutine;->send(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ChannelCoroutine;->trySend-JP2dKIU(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/ChannelCoroutine;->trySend-JP2dKIU(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/ChannelIterator;\nLkotlinx/coroutines/channels/ChannelKt;\nHSPLkotlinx/coroutines/channels/ChannelKt;->Channel$default(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/channels/Channel;\nPLkotlinx/coroutines/channels/ChannelKt;->Channel$default(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/channels/Channel;\nHSPLkotlinx/coroutines/channels/ChannelKt;->Channel(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/channels/Channel;\nHPLkotlinx/coroutines/channels/ChannelKt;->Channel(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/channels/Channel;\nLkotlinx/coroutines/channels/ChannelResult;\nHSPLkotlinx/coroutines/channels/ChannelResult;-><clinit>()V\nPLkotlinx/coroutines/channels/ChannelResult;-><clinit>()V\nHSPLkotlinx/coroutines/channels/ChannelResult;-><init>(Ljava/lang/Object;)V\nPLkotlinx/coroutines/channels/ChannelResult;-><init>(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/channels/ChannelResult;->access$getFailed$cp()Lkotlinx/coroutines/channels/ChannelResult$Failed;\nPLkotlinx/coroutines/channels/ChannelResult;->access$getFailed$cp()Lkotlinx/coroutines/channels/ChannelResult$Failed;\nHSPLkotlinx/coroutines/channels/ChannelResult;->box-impl(Ljava/lang/Object;)Lkotlinx/coroutines/channels/ChannelResult;\nPLkotlinx/coroutines/channels/ChannelResult;->box-impl(Ljava/lang/Object;)Lkotlinx/coroutines/channels/ChannelResult;\nHSPLkotlinx/coroutines/channels/ChannelResult;->getOrNull-impl(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/ChannelResult;->getOrNull-impl(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ChannelResult;->unbox-impl()Ljava/lang/Object;\nPLkotlinx/coroutines/channels/ChannelResult;->unbox-impl()Ljava/lang/Object;\nLkotlinx/coroutines/channels/ChannelResult$Closed;\nPLkotlinx/coroutines/channels/ChannelResult$Closed;-><init>(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/channels/ChannelResult$Companion;\nHSPLkotlinx/coroutines/channels/ChannelResult$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/channels/ChannelResult$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/channels/ChannelResult$Companion;->closed-JP2dKIU(Ljava/lang/Throwable;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/ChannelResult$Failed;\nHSPLkotlinx/coroutines/channels/ChannelResult$Failed;-><init>()V\nPLkotlinx/coroutines/channels/ChannelResult$Failed;-><init>()V\nLkotlinx/coroutines/channels/ChannelSegment;\nHSPLkotlinx/coroutines/channels/ChannelSegment;-><init>(JLkotlinx/coroutines/channels/ChannelSegment;Lkotlinx/coroutines/channels/BufferedChannel;I)V\nHPLkotlinx/coroutines/channels/ChannelSegment;-><init>(JLkotlinx/coroutines/channels/ChannelSegment;Lkotlinx/coroutines/channels/BufferedChannel;I)V\nHSPLkotlinx/coroutines/channels/ChannelSegment;->casState$kotlinx_coroutines_core(ILjava/lang/Object;Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/channels/ChannelSegment;->casState$kotlinx_coroutines_core(ILjava/lang/Object;Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/channels/ChannelSegment;->cleanElement$kotlinx_coroutines_core(I)V\nPLkotlinx/coroutines/channels/ChannelSegment;->cleanElement$kotlinx_coroutines_core(I)V\nHSPLkotlinx/coroutines/channels/ChannelSegment;->getChannel()Lkotlinx/coroutines/channels/BufferedChannel;\nHPLkotlinx/coroutines/channels/ChannelSegment;->getChannel()Lkotlinx/coroutines/channels/BufferedChannel;\nHSPLkotlinx/coroutines/channels/ChannelSegment;->getElement$kotlinx_coroutines_core(I)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ChannelSegment;->getElement$kotlinx_coroutines_core(I)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ChannelSegment;->getNumberOfSlots()I\nHPLkotlinx/coroutines/channels/ChannelSegment;->getNumberOfSlots()I\nHSPLkotlinx/coroutines/channels/ChannelSegment;->getState$kotlinx_coroutines_core(I)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ChannelSegment;->getState$kotlinx_coroutines_core(I)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ChannelSegment;->onCancellation(ILjava/lang/Throwable;Lkotlin/coroutines/CoroutineContext;)V\nHPLkotlinx/coroutines/channels/ChannelSegment;->onCancellation(ILjava/lang/Throwable;Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/channels/ChannelSegment;->onCancelledRequest(IZ)V\nHPLkotlinx/coroutines/channels/ChannelSegment;->onCancelledRequest(IZ)V\nHSPLkotlinx/coroutines/channels/ChannelSegment;->retrieveElement$kotlinx_coroutines_core(I)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ChannelSegment;->retrieveElement$kotlinx_coroutines_core(I)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ChannelSegment;->setState$kotlinx_coroutines_core(ILjava/lang/Object;)V\nPLkotlinx/coroutines/channels/ChannelSegment;->setState$kotlinx_coroutines_core(ILjava/lang/Object;)V\nHSPLkotlinx/coroutines/channels/ChannelSegment;->storeElement$kotlinx_coroutines_core(ILjava/lang/Object;)V\nHPLkotlinx/coroutines/channels/ChannelSegment;->storeElement$kotlinx_coroutines_core(ILjava/lang/Object;)V\nLkotlinx/coroutines/channels/ChannelsKt;\nHSPLkotlinx/coroutines/channels/ChannelsKt;->cancelConsumed(Lkotlinx/coroutines/channels/ReceiveChannel;Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/channels/ChannelsKt;->cancelConsumed(Lkotlinx/coroutines/channels/ReceiveChannel;Ljava/lang/Throwable;)V\nLkotlinx/coroutines/channels/ChannelsKt__Channels_commonKt;\nHSPLkotlinx/coroutines/channels/ChannelsKt__Channels_commonKt;->cancelConsumed(Lkotlinx/coroutines/channels/ReceiveChannel;Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/channels/ChannelsKt__Channels_commonKt;->cancelConsumed(Lkotlinx/coroutines/channels/ReceiveChannel;Ljava/lang/Throwable;)V\nLkotlinx/coroutines/channels/ClosedReceiveChannelException;\nLkotlinx/coroutines/channels/ClosedSendChannelException;\nLkotlinx/coroutines/channels/ConflatedBufferedChannel;\nHSPLkotlinx/coroutines/channels/ConflatedBufferedChannel;-><init>(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/channels/ConflatedBufferedChannel;-><init>(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->isConflatedDropOldest()Z\nPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->isConflatedDropOldest()Z\nHSPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->send(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->send(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->trySend-JP2dKIU(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->trySend-JP2dKIU(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->trySendImpl-Mj0NB7M(Ljava/lang/Object;Z)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ConflatedBufferedChannel;->trySendImpl-Mj0NB7M(Ljava/lang/Object;Z)Ljava/lang/Object;\nLkotlinx/coroutines/channels/ProduceKt;\nHSPLkotlinx/coroutines/channels/ProduceKt;->awaitClose(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ProduceKt;->awaitClose(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ProduceKt;->produce$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/channels/ReceiveChannel;\nPLkotlinx/coroutines/channels/ProduceKt;->produce$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/channels/ReceiveChannel;\nHSPLkotlinx/coroutines/channels/ProduceKt;->produce$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/channels/ReceiveChannel;\nHPLkotlinx/coroutines/channels/ProduceKt;->produce$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/channels/ReceiveChannel;\nHSPLkotlinx/coroutines/channels/ProduceKt;->produce(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/channels/ReceiveChannel;\nPLkotlinx/coroutines/channels/ProduceKt;->produce(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/channels/ReceiveChannel;\nHSPLkotlinx/coroutines/channels/ProduceKt;->produce(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/channels/ReceiveChannel;\nHPLkotlinx/coroutines/channels/ProduceKt;->produce(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/channels/ReceiveChannel;\nLkotlinx/coroutines/channels/ProduceKt$awaitClose$1;\nHSPLkotlinx/coroutines/channels/ProduceKt$awaitClose$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/channels/ProduceKt$awaitClose$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/channels/ProduceKt$awaitClose$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/channels/ProduceKt$awaitClose$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;\nHSPLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nPLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHSPLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;->invoke(Ljava/lang/Throwable;)V\nPLkotlinx/coroutines/channels/ProduceKt$awaitClose$4$1;->invoke(Ljava/lang/Throwable;)V\nLkotlinx/coroutines/channels/ProducerCoroutine;\nHSPLkotlinx/coroutines/channels/ProducerCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/channels/Channel;)V\nPLkotlinx/coroutines/channels/ProducerCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/channels/Channel;)V\nHSPLkotlinx/coroutines/channels/ProducerCoroutine;->getChannel()Lkotlinx/coroutines/channels/SendChannel;\nPLkotlinx/coroutines/channels/ProducerCoroutine;->getChannel()Lkotlinx/coroutines/channels/SendChannel;\nHSPLkotlinx/coroutines/channels/ProducerCoroutine;->isActive()Z\nPLkotlinx/coroutines/channels/ProducerCoroutine;->isActive()Z\nHSPLkotlinx/coroutines/channels/ProducerCoroutine;->onCancelled(Ljava/lang/Throwable;Z)V\nHPLkotlinx/coroutines/channels/ProducerCoroutine;->onCancelled(Ljava/lang/Throwable;Z)V\nHSPLkotlinx/coroutines/channels/ProducerCoroutine;->onCompleted(Ljava/lang/Object;)V\nPLkotlinx/coroutines/channels/ProducerCoroutine;->onCompleted(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/channels/ProducerCoroutine;->onCompleted(Lkotlin/Unit;)V\nPLkotlinx/coroutines/channels/ProducerCoroutine;->onCompleted(Lkotlin/Unit;)V\nLkotlinx/coroutines/channels/ProducerScope;\nLkotlinx/coroutines/channels/ReceiveCatching;\nHSPLkotlinx/coroutines/channels/ReceiveCatching;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nPLkotlinx/coroutines/channels/ReceiveCatching;-><init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V\nHSPLkotlinx/coroutines/channels/ReceiveCatching;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nPLkotlinx/coroutines/channels/ReceiveCatching;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nLkotlinx/coroutines/channels/ReceiveChannel;\nLkotlinx/coroutines/channels/SendChannel;\nLkotlinx/coroutines/channels/SendChannel$DefaultImpls;\nHSPLkotlinx/coroutines/channels/SendChannel$DefaultImpls;->close$default(Lkotlinx/coroutines/channels/SendChannel;Ljava/lang/Throwable;ILjava/lang/Object;)Z\nPLkotlinx/coroutines/channels/SendChannel$DefaultImpls;->close$default(Lkotlinx/coroutines/channels/SendChannel;Ljava/lang/Throwable;ILjava/lang/Object;)Z\nLkotlinx/coroutines/channels/WaiterEB;\nLkotlinx/coroutines/flow/AbstractFlow;\nHSPLkotlinx/coroutines/flow/AbstractFlow;-><init>()V\nHPLkotlinx/coroutines/flow/AbstractFlow;-><init>()V\nHSPLkotlinx/coroutines/flow/AbstractFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/AbstractFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/AbstractFlow$collect$1;\nHSPLkotlinx/coroutines/flow/AbstractFlow$collect$1;-><init>(Lkotlinx/coroutines/flow/AbstractFlow;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/AbstractFlow$collect$1;-><init>(Lkotlinx/coroutines/flow/AbstractFlow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/AbstractFlow$collect$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/AbstractFlow$collect$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/CallbackFlowBuilder;\nHSPLkotlinx/coroutines/flow/CallbackFlowBuilder;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/CallbackFlowBuilder;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/CallbackFlowBuilder;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/flow/CallbackFlowBuilder;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/flow/CallbackFlowBuilder;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/CallbackFlowBuilder;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/CallbackFlowBuilder$collectTo$1;\nHSPLkotlinx/coroutines/flow/CallbackFlowBuilder$collectTo$1;-><init>(Lkotlinx/coroutines/flow/CallbackFlowBuilder;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/CallbackFlowBuilder$collectTo$1;-><init>(Lkotlinx/coroutines/flow/CallbackFlowBuilder;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/CallbackFlowBuilder$collectTo$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/CallbackFlowBuilder$collectTo$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/CancellableFlow;\nLkotlinx/coroutines/flow/ChannelAsFlow;\nHSPLkotlinx/coroutines/flow/ChannelAsFlow;-><clinit>()V\nPLkotlinx/coroutines/flow/ChannelAsFlow;-><clinit>()V\nHSPLkotlinx/coroutines/flow/ChannelAsFlow;-><init>(Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/ChannelAsFlow;-><init>(Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/ChannelAsFlow;-><init>(Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/flow/ChannelAsFlow;-><init>(Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/flow/ChannelAsFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/ChannelAsFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/ChannelAsFlow;->markConsumed()V\nPLkotlinx/coroutines/flow/ChannelAsFlow;->markConsumed()V\nLkotlinx/coroutines/flow/ChannelFlowBuilder;\nHSPLkotlinx/coroutines/flow/ChannelFlowBuilder;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/ChannelFlowBuilder;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/ChannelFlowBuilder;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/ChannelFlowBuilder;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/DistinctFlowImpl;\nHSPLkotlinx/coroutines/flow/DistinctFlowImpl;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/flow/DistinctFlowImpl;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/flow/DistinctFlowImpl;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/DistinctFlowImpl;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;\nHSPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;-><init>(Lkotlinx/coroutines/flow/DistinctFlowImpl;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;-><init>(Lkotlinx/coroutines/flow/DistinctFlowImpl;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2$emit$1;\nHSPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2$emit$1;-><init>(Lkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2$emit$1;-><init>(Lkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/DistinctFlowImpl$collect$2$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowCollector;\nLkotlinx/coroutines/flow/FlowKt;\nHSPLkotlinx/coroutines/flow/FlowKt;->asStateFlow(Lkotlinx/coroutines/flow/MutableStateFlow;)Lkotlinx/coroutines/flow/StateFlow;\nPLkotlinx/coroutines/flow/FlowKt;->asStateFlow(Lkotlinx/coroutines/flow/MutableStateFlow;)Lkotlinx/coroutines/flow/StateFlow;\nHSPLkotlinx/coroutines/flow/FlowKt;->callbackFlow(Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->callbackFlow(Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->collectLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt;->collectLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function4;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function4;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function6;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function6;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->conflate(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->conflate(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->debounce(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->debounce(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->distinctUntilChanged(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->distinctUntilChanged(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->drop(Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->drop(Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt;->firstOrNull(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt;->firstOrNull(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt;->flow(Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->flow(Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->flowOn(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->flowOn(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->launchIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/flow/FlowKt;->launchIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/flow/FlowKt;->merge(Ljava/lang/Iterable;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->merge(Ljava/lang/Iterable;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->merge([Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->merge([Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->receiveAsFlow(Lkotlinx/coroutines/channels/ReceiveChannel;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->receiveAsFlow(Lkotlinx/coroutines/channels/ReceiveChannel;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->sample(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->sample(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt;->shareIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;I)Lkotlinx/coroutines/flow/SharedFlow;\nPLkotlinx/coroutines/flow/FlowKt;->shareIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;I)Lkotlinx/coroutines/flow/SharedFlow;\nHSPLkotlinx/coroutines/flow/FlowKt;->stateIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;Ljava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;\nPLkotlinx/coroutines/flow/FlowKt;->stateIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;Ljava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;\nHSPLkotlinx/coroutines/flow/FlowKt;->transformLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt;->transformLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__BuildersKt;\nHSPLkotlinx/coroutines/flow/FlowKt__BuildersKt;->callbackFlow(Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__BuildersKt;->callbackFlow(Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;\nHSPLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;-><init>(Ljava/lang/Iterable;)V\nPLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;-><init>(Ljava/lang/Iterable;)V\nHSPLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3$1;\nHSPLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3;Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$2;\nHSPLkotlinx/coroutines/flow/FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$2;-><init>(Ljava/lang/Object;)V\nPLkotlinx/coroutines/flow/FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$2;-><init>(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/flow/FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$2;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$2;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ChannelsKt;\nHSPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->access$emitAllImpl$FlowKt__ChannelsKt(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->access$emitAllImpl$FlowKt__ChannelsKt(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->emitAllImpl$FlowKt__ChannelsKt(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->emitAllImpl$FlowKt__ChannelsKt(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/channels/ReceiveChannel;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->receiveAsFlow(Lkotlinx/coroutines/channels/ReceiveChannel;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ChannelsKt;->receiveAsFlow(Lkotlinx/coroutines/channels/ReceiveChannel;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__ChannelsKt$emitAllImpl$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ChannelsKt$emitAllImpl$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ChannelsKt$emitAllImpl$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ChannelsKt$emitAllImpl$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__ChannelsKt$emitAllImpl$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__CollectKt;\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt;->collect(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__CollectKt;->collect(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt;->collectLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__CollectKt;->collectLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__CollectKt;->emitAll(Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt;->launchIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/flow/FlowKt__CollectKt;->launchIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/Job;\nLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__CollectKt$launchIn$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ContextKt;\nHSPLkotlinx/coroutines/flow/FlowKt__ContextKt;->buffer$default(Lkotlinx/coroutines/flow/Flow;ILkotlinx/coroutines/channels/BufferOverflow;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ContextKt;->buffer$default(Lkotlinx/coroutines/flow/Flow;ILkotlinx/coroutines/channels/BufferOverflow;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__ContextKt;->buffer(Lkotlinx/coroutines/flow/Flow;ILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ContextKt;->buffer(Lkotlinx/coroutines/flow/Flow;ILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__ContextKt;->conflate(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ContextKt;->conflate(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__ContextKt;->flowOn(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ContextKt;->flowOn(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__DelayKt;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt;->debounce(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt;->debounce(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt;->fixedPeriodTicker$default(Lkotlinx/coroutines/CoroutineScope;JJILjava/lang/Object;)Lkotlinx/coroutines/channels/ReceiveChannel;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt;->fixedPeriodTicker$default(Lkotlinx/coroutines/CoroutineScope;JJILjava/lang/Object;)Lkotlinx/coroutines/channels/ReceiveChannel;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt;->fixedPeriodTicker(Lkotlinx/coroutines/CoroutineScope;JJ)Lkotlinx/coroutines/channels/ReceiveChannel;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt;->fixedPeriodTicker(Lkotlinx/coroutines/CoroutineScope;JJ)Lkotlinx/coroutines/channels/ReceiveChannel;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt;->sample(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt;->sample(Lkotlinx/coroutines/flow/Flow;J)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;-><init>(J)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;-><init>(J)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;->invoke(Ljava/lang/Object;)Ljava/lang/Long;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;->invoke(Ljava/lang/Object;)Ljava/lang/Long;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounce$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;-><init>(Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;-><init>(Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->invoke(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->invoke(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->invoke-WpGqRn0(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->invoke-WpGqRn0(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$3$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1$emit$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$debounceInternal$1$values$1$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;-><init>(JJLkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;-><init>(JJLkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__DelayKt$fixedPeriodTicker$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;-><init>(JLkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;-><init>(JLkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/channels/ReceiveChannel;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/channels/ReceiveChannel;Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nHPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->invoke(Lkotlin/Unit;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->invoke(Lkotlin/Unit;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1$1;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nPLkotlinx/coroutines/flow/FlowKt__DelayKt$sample$2$values$1$1;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nLkotlinx/coroutines/flow/FlowKt__DistinctKt;\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt;-><clinit>()V\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt;-><clinit>()V\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt;->distinctUntilChanged(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt;->distinctUntilChanged(Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt;->distinctUntilChangedBy$FlowKt__DistinctKt(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt;->distinctUntilChangedBy$FlowKt__DistinctKt(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;-><clinit>()V\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;-><clinit>()V\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;-><init>()V\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;-><init>()V\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Boolean;\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Boolean;\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultAreEquivalent$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;-><clinit>()V\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;-><clinit>()V\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;-><init>()V\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;-><init>()V\nHSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__EmittersKt;\nHSPLkotlinx/coroutines/flow/FlowKt__EmittersKt;->ensureActive(Lkotlinx/coroutines/flow/FlowCollector;)V\nHPLkotlinx/coroutines/flow/FlowKt__EmittersKt;->ensureActive(Lkotlinx/coroutines/flow/FlowCollector;)V\nLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;\nHSPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;-><init>(Lkotlin/jvm/functions/Function2;Lkotlinx/coroutines/flow/Flow;)V\nHPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;-><init>(Lkotlin/jvm/functions/Function2;Lkotlinx/coroutines/flow/Flow;)V\nHSPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ErrorsKt;\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt;->catchImpl(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt;->catchImpl(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)V\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$1;-><init>(Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2$emit$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__LimitKt;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt;->drop(Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__LimitKt;->drop(Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$$inlined$unsafeFlow$1;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;I)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;I)V\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;-><init>(Lkotlin/jvm/internal/Ref$IntRef;ILkotlinx/coroutines/flow/FlowCollector;)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;-><init>(Lkotlin/jvm/internal/Ref$IntRef;ILkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1$emit$1;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__LimitKt$drop$2$1;Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;-><init>(Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;-><init>(Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1$emit$1;\nHSPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1$emit$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__LimitKt$dropWhile$1$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__MergeKt;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt;-><clinit>()V\nPLkotlinx/coroutines/flow/FlowKt__MergeKt;-><clinit>()V\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt;->mapLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt;->mapLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt;->merge(Ljava/lang/Iterable;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt;->merge(Ljava/lang/Iterable;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt;->merge([Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt;->merge([Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt;->transformLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt;->transformLatest(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__MergeKt$mapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt;->first(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt;->firstOrNull(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt;->firstOrNull(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;-><init>(Lkotlin/jvm/functions/Function2;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__ReduceKt$first$$inlined$collectWhile$2;Lkotlin/coroutines/Continuation;)V\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$3;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$3;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$3;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$first$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$$inlined$collectWhile$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$$inlined$collectWhile$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$$inlined$collectWhile$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$$inlined$collectWhile$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$$inlined$collectWhile$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ReduceKt$firstOrNull$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ShareKt;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt;->asStateFlow(Lkotlinx/coroutines/flow/MutableStateFlow;)Lkotlinx/coroutines/flow/StateFlow;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt;->asStateFlow(Lkotlinx/coroutines/flow/MutableStateFlow;)Lkotlinx/coroutines/flow/StateFlow;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt;->configureSharing$FlowKt__ShareKt(Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/SharingConfig;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt;->configureSharing$FlowKt__ShareKt(Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/SharingConfig;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt;->launchSharing$FlowKt__ShareKt(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/MutableSharedFlow;Lkotlinx/coroutines/flow/SharingStarted;Ljava/lang/Object;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt;->launchSharing$FlowKt__ShareKt(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/MutableSharedFlow;Lkotlinx/coroutines/flow/SharingStarted;Ljava/lang/Object;)Lkotlinx/coroutines/Job;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt;->shareIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;I)Lkotlinx/coroutines/flow/SharedFlow;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt;->shareIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;I)Lkotlinx/coroutines/flow/SharedFlow;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt;->stateIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;Ljava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt;->stateIn(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/SharingStarted;Ljava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;\nLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;-><init>(Lkotlinx/coroutines/flow/SharingStarted;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/MutableSharedFlow;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;-><init>(Lkotlinx/coroutines/flow/SharingStarted;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/MutableSharedFlow;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/MutableSharedFlow;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/MutableSharedFlow;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->invoke(Lkotlinx/coroutines/flow/SharingCommand;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->invoke(Lkotlinx/coroutines/flow/SharingCommand;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2$WhenMappings;\nHSPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2$WhenMappings;-><clinit>()V\nPLkotlinx/coroutines/flow/FlowKt__ShareKt$launchSharing$1$2$WhenMappings;-><clinit>()V\nLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1;\nHSPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;\nHSPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2$1;\nHSPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function4;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function4;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function6;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt;->combine(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function6;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;-><init>([Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function4;)V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;-><init>([Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function4;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function4;)V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function4;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invoke(Lkotlinx/coroutines/flow/FlowCollector;[Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invoke(Lkotlinx/coroutines/flow/FlowCollector;[Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3;-><init>([Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function6;)V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3;-><init>([Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function6;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function6;)V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function6;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;->invoke(Lkotlinx/coroutines/flow/FlowCollector;[Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;->invoke(Lkotlinx/coroutines/flow/FlowCollector;[Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$3$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;-><init>(Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;-><init>(Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;[Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;[Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;-><clinit>()V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;-><clinit>()V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;-><init>()V\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;-><init>()V\nHSPLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;->invoke()Ljava/lang/Object;\nPLkotlinx/coroutines/flow/FlowKt__ZipKt$nullArrayFactory$1;->invoke()Ljava/lang/Object;\nLkotlinx/coroutines/flow/MutableSharedFlow;\nLkotlinx/coroutines/flow/MutableStateFlow;\nLkotlinx/coroutines/flow/ReadonlySharedFlow;\nHSPLkotlinx/coroutines/flow/ReadonlySharedFlow;-><init>(Lkotlinx/coroutines/flow/SharedFlow;Lkotlinx/coroutines/Job;)V\nPLkotlinx/coroutines/flow/ReadonlySharedFlow;-><init>(Lkotlinx/coroutines/flow/SharedFlow;Lkotlinx/coroutines/Job;)V\nHSPLkotlinx/coroutines/flow/ReadonlySharedFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/ReadonlySharedFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/ReadonlyStateFlow;\nHSPLkotlinx/coroutines/flow/ReadonlyStateFlow;-><init>(Lkotlinx/coroutines/flow/StateFlow;Lkotlinx/coroutines/Job;)V\nPLkotlinx/coroutines/flow/ReadonlyStateFlow;-><init>(Lkotlinx/coroutines/flow/StateFlow;Lkotlinx/coroutines/Job;)V\nHSPLkotlinx/coroutines/flow/ReadonlyStateFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/ReadonlyStateFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/ReadonlyStateFlow;->getValue()Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/ReadonlyStateFlow;->getValue()Ljava/lang/Object;\nLkotlinx/coroutines/flow/SafeFlow;\nHSPLkotlinx/coroutines/flow/SafeFlow;-><init>(Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/flow/SafeFlow;-><init>(Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/flow/SafeFlow;->collectSafely(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/SafeFlow;->collectSafely(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/SharedFlow;\nLkotlinx/coroutines/flow/SharedFlowImpl;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;-><init>(IILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/SharedFlowImpl;-><init>(IILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->awaitValue(Lkotlinx/coroutines/flow/SharedFlowSlot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->awaitValue(Lkotlinx/coroutines/flow/SharedFlowSlot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->cleanupTailLocked()V\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->cleanupTailLocked()V\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->collect$suspendImpl(Lkotlinx/coroutines/flow/SharedFlowImpl;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/intrinsics/CoroutineSingletons;\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->collect$suspendImpl(Lkotlinx/coroutines/flow/SharedFlowImpl;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/intrinsics/CoroutineSingletons;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlot()Lkotlinx/coroutines/flow/SharedFlowSlot;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlot()Lkotlinx/coroutines/flow/SharedFlowSlot;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlot()Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlot()Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlotArray(I)[Lkotlinx/coroutines/flow/SharedFlowSlot;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlotArray(I)[Lkotlinx/coroutines/flow/SharedFlowSlot;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlotArray(I)[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->createSlotArray(I)[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->dropOldestLocked()V\nPLkotlinx/coroutines/flow/SharedFlowImpl;->dropOldestLocked()V\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->enqueueLocked(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->enqueueLocked(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->findSlotsToResumeLocked([Lkotlin/coroutines/Continuation;)[Lkotlin/coroutines/Continuation;\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->findSlotsToResumeLocked([Lkotlin/coroutines/Continuation;)[Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->getHead()J\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->getHead()J\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->getLastReplayedLocked()Ljava/lang/Object;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->getLastReplayedLocked()Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->growBuffer(II[Ljava/lang/Object;)[Ljava/lang/Object;\nPLkotlinx/coroutines/flow/SharedFlowImpl;->growBuffer(II[Ljava/lang/Object;)[Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->tryEmit(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->tryEmit(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->tryEmitLocked(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->tryEmitLocked(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->tryPeekLocked(Lkotlinx/coroutines/flow/SharedFlowSlot;)J\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->tryPeekLocked(Lkotlinx/coroutines/flow/SharedFlowSlot;)J\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->tryTakeValue(Lkotlinx/coroutines/flow/SharedFlowSlot;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->tryTakeValue(Lkotlinx/coroutines/flow/SharedFlowSlot;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->updateBufferLocked(JJJJ)V\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->updateBufferLocked(JJJJ)V\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->updateCollectorIndexLocked$kotlinx_coroutines_core(J)[Lkotlin/coroutines/Continuation;\nHPLkotlinx/coroutines/flow/SharedFlowImpl;->updateCollectorIndexLocked$kotlinx_coroutines_core(J)[Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl;->updateNewCollectorIndexLocked$kotlinx_coroutines_core()J\nPLkotlinx/coroutines/flow/SharedFlowImpl;->updateNewCollectorIndexLocked$kotlinx_coroutines_core()J\nLkotlinx/coroutines/flow/SharedFlowImpl$Emitter;\nLkotlinx/coroutines/flow/SharedFlowImpl$collect$1;\nHSPLkotlinx/coroutines/flow/SharedFlowImpl$collect$1;-><init>(Lkotlinx/coroutines/flow/SharedFlowImpl;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/SharedFlowImpl$collect$1;-><init>(Lkotlinx/coroutines/flow/SharedFlowImpl;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/SharedFlowImpl$collect$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/SharedFlowImpl$collect$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/SharedFlowKt;\nHSPLkotlinx/coroutines/flow/SharedFlowKt;-><clinit>()V\nPLkotlinx/coroutines/flow/SharedFlowKt;-><clinit>()V\nHSPLkotlinx/coroutines/flow/SharedFlowKt;->MutableSharedFlow$default(IILkotlinx/coroutines/channels/BufferOverflow;ILjava/lang/Object;)Lkotlinx/coroutines/flow/MutableSharedFlow;\nPLkotlinx/coroutines/flow/SharedFlowKt;->MutableSharedFlow$default(IILkotlinx/coroutines/channels/BufferOverflow;ILjava/lang/Object;)Lkotlinx/coroutines/flow/MutableSharedFlow;\nHSPLkotlinx/coroutines/flow/SharedFlowKt;->MutableSharedFlow(IILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/MutableSharedFlow;\nHPLkotlinx/coroutines/flow/SharedFlowKt;->MutableSharedFlow(IILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/MutableSharedFlow;\nHSPLkotlinx/coroutines/flow/SharedFlowKt;->access$getBufferAt([Ljava/lang/Object;J)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/SharedFlowKt;->access$getBufferAt([Ljava/lang/Object;J)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/SharedFlowKt;->access$setBufferAt([Ljava/lang/Object;JLjava/lang/Object;)V\nPLkotlinx/coroutines/flow/SharedFlowKt;->access$setBufferAt([Ljava/lang/Object;JLjava/lang/Object;)V\nLkotlinx/coroutines/flow/SharedFlowSlot;\nHSPLkotlinx/coroutines/flow/SharedFlowSlot;-><init>()V\nHPLkotlinx/coroutines/flow/SharedFlowSlot;-><init>()V\nHSPLkotlinx/coroutines/flow/SharedFlowSlot;->allocateLocked(Ljava/lang/Object;)Z\nPLkotlinx/coroutines/flow/SharedFlowSlot;->allocateLocked(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/flow/SharedFlowSlot;->allocateLocked(Lkotlinx/coroutines/flow/SharedFlowImpl;)Z\nPLkotlinx/coroutines/flow/SharedFlowSlot;->allocateLocked(Lkotlinx/coroutines/flow/SharedFlowImpl;)Z\nHSPLkotlinx/coroutines/flow/SharedFlowSlot;->freeLocked(Ljava/lang/Object;)[Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/SharedFlowSlot;->freeLocked(Ljava/lang/Object;)[Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/SharedFlowSlot;->freeLocked(Lkotlinx/coroutines/flow/SharedFlowImpl;)[Lkotlin/coroutines/Continuation;\nHPLkotlinx/coroutines/flow/SharedFlowSlot;->freeLocked(Lkotlinx/coroutines/flow/SharedFlowImpl;)[Lkotlin/coroutines/Continuation;\nLkotlinx/coroutines/flow/SharingCommand;\nHSPLkotlinx/coroutines/flow/SharingCommand;-><clinit>()V\nPLkotlinx/coroutines/flow/SharingCommand;-><clinit>()V\nHSPLkotlinx/coroutines/flow/SharingCommand;-><init>(Ljava/lang/String;I)V\nPLkotlinx/coroutines/flow/SharingCommand;-><init>(Ljava/lang/String;I)V\nHSPLkotlinx/coroutines/flow/SharingCommand;->values()[Lkotlinx/coroutines/flow/SharingCommand;\nPLkotlinx/coroutines/flow/SharingCommand;->values()[Lkotlinx/coroutines/flow/SharingCommand;\nLkotlinx/coroutines/flow/SharingConfig;\nHSPLkotlinx/coroutines/flow/SharingConfig;-><init>(Lkotlinx/coroutines/flow/Flow;ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/coroutines/CoroutineContext;)V\nPLkotlinx/coroutines/flow/SharingConfig;-><init>(Lkotlinx/coroutines/flow/Flow;ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/coroutines/CoroutineContext;)V\nLkotlinx/coroutines/flow/SharingStarted;\nHSPLkotlinx/coroutines/flow/SharingStarted;-><clinit>()V\nPLkotlinx/coroutines/flow/SharingStarted;-><clinit>()V\nLkotlinx/coroutines/flow/SharingStarted$Companion;\nHSPLkotlinx/coroutines/flow/SharingStarted$Companion;-><clinit>()V\nPLkotlinx/coroutines/flow/SharingStarted$Companion;-><clinit>()V\nHSPLkotlinx/coroutines/flow/SharingStarted$Companion;-><init>()V\nPLkotlinx/coroutines/flow/SharingStarted$Companion;-><init>()V\nHSPLkotlinx/coroutines/flow/SharingStarted$Companion;->WhileSubscribed$default(Lkotlinx/coroutines/flow/SharingStarted$Companion;JJILjava/lang/Object;)Lkotlinx/coroutines/flow/SharingStarted;\nPLkotlinx/coroutines/flow/SharingStarted$Companion;->WhileSubscribed$default(Lkotlinx/coroutines/flow/SharingStarted$Companion;JJILjava/lang/Object;)Lkotlinx/coroutines/flow/SharingStarted;\nHSPLkotlinx/coroutines/flow/SharingStarted$Companion;->getEagerly()Lkotlinx/coroutines/flow/SharingStarted;\nPLkotlinx/coroutines/flow/SharingStarted$Companion;->getEagerly()Lkotlinx/coroutines/flow/SharingStarted;\nHSPLkotlinx/coroutines/flow/SharingStarted$Companion;->getLazily()Lkotlinx/coroutines/flow/SharingStarted;\nPLkotlinx/coroutines/flow/SharingStarted$Companion;->getLazily()Lkotlinx/coroutines/flow/SharingStarted;\nLkotlinx/coroutines/flow/StartedEagerly;\nHSPLkotlinx/coroutines/flow/StartedEagerly;-><init>()V\nPLkotlinx/coroutines/flow/StartedEagerly;-><init>()V\nLkotlinx/coroutines/flow/StartedLazily;\nHSPLkotlinx/coroutines/flow/StartedLazily;-><init>()V\nPLkotlinx/coroutines/flow/StartedLazily;-><init>()V\nLkotlinx/coroutines/flow/StartedWhileSubscribed;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed;-><init>(JJ)V\nPLkotlinx/coroutines/flow/StartedWhileSubscribed;-><init>(JJ)V\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed;->access$getReplayExpiration$p(Lkotlinx/coroutines/flow/StartedWhileSubscribed;)J\nPLkotlinx/coroutines/flow/StartedWhileSubscribed;->access$getReplayExpiration$p(Lkotlinx/coroutines/flow/StartedWhileSubscribed;)J\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed;->access$getStopTimeout$p(Lkotlinx/coroutines/flow/StartedWhileSubscribed;)J\nPLkotlinx/coroutines/flow/StartedWhileSubscribed;->access$getStopTimeout$p(Lkotlinx/coroutines/flow/StartedWhileSubscribed;)J\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed;->command(Lkotlinx/coroutines/flow/StateFlow;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed;->command(Lkotlinx/coroutines/flow/StateFlow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed;->equals(Ljava/lang/Object;)Z\nPLkotlinx/coroutines/flow/StartedWhileSubscribed;->equals(Ljava/lang/Object;)Z\nLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;-><init>(Lkotlinx/coroutines/flow/StartedWhileSubscribed;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;-><init>(Lkotlinx/coroutines/flow/StartedWhileSubscribed;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;ILkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;->invoke(Lkotlinx/coroutines/flow/FlowCollector;ILkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;-><init>(Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->invoke(Lkotlinx/coroutines/flow/SharingCommand;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->invoke(Lkotlinx/coroutines/flow/SharingCommand;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StartedWhileSubscribed$command$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/StateFlow;\nLkotlinx/coroutines/flow/StateFlowImpl;\nHSPLkotlinx/coroutines/flow/StateFlowImpl;-><clinit>()V\nPLkotlinx/coroutines/flow/StateFlowImpl;-><clinit>()V\nHSPLkotlinx/coroutines/flow/StateFlowImpl;-><init>(Ljava/lang/Object;)V\nPLkotlinx/coroutines/flow/StateFlowImpl;-><init>(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/StateFlowImpl;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z\nPLkotlinx/coroutines/flow/StateFlowImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->createSlot()Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nPLkotlinx/coroutines/flow/StateFlowImpl;->createSlot()Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->createSlotArray(I)[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nPLkotlinx/coroutines/flow/StateFlowImpl;->createSlotArray(I)[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/StateFlowImpl;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->getValue()Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/StateFlowImpl;->getValue()Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->setValue(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/flow/StateFlowImpl;->setValue(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/flow/StateFlowImpl;->updateState(Ljava/lang/Object;Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/flow/StateFlowImpl;->updateState(Ljava/lang/Object;Ljava/lang/Object;)Z\nLkotlinx/coroutines/flow/StateFlowImpl$collect$1;\nHSPLkotlinx/coroutines/flow/StateFlowImpl$collect$1;-><init>(Lkotlinx/coroutines/flow/StateFlowImpl;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/StateFlowImpl$collect$1;-><init>(Lkotlinx/coroutines/flow/StateFlowImpl;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/StateFlowImpl$collect$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/StateFlowImpl$collect$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/StateFlowKt;\nHSPLkotlinx/coroutines/flow/StateFlowKt;-><clinit>()V\nPLkotlinx/coroutines/flow/StateFlowKt;-><clinit>()V\nHSPLkotlinx/coroutines/flow/StateFlowKt;->MutableStateFlow(Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow;\nPLkotlinx/coroutines/flow/StateFlowKt;->MutableStateFlow(Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow;\nHSPLkotlinx/coroutines/flow/StateFlowKt;->access$getNONE$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/flow/StateFlowKt;->access$getNONE$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/flow/StateFlowKt;->access$getPENDING$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/flow/StateFlowKt;->access$getPENDING$p()Lkotlinx/coroutines/internal/Symbol;\nLkotlinx/coroutines/flow/StateFlowSlot;\nHSPLkotlinx/coroutines/flow/StateFlowSlot;-><clinit>()V\nPLkotlinx/coroutines/flow/StateFlowSlot;-><clinit>()V\nHSPLkotlinx/coroutines/flow/StateFlowSlot;-><init>()V\nPLkotlinx/coroutines/flow/StateFlowSlot;-><init>()V\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->allocateLocked(Ljava/lang/Object;)Z\nPLkotlinx/coroutines/flow/StateFlowSlot;->allocateLocked(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->allocateLocked(Lkotlinx/coroutines/flow/StateFlowImpl;)Z\nHPLkotlinx/coroutines/flow/StateFlowSlot;->allocateLocked(Lkotlinx/coroutines/flow/StateFlowImpl;)Z\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->awaitPending(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/StateFlowSlot;->awaitPending(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->freeLocked(Ljava/lang/Object;)[Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/StateFlowSlot;->freeLocked(Ljava/lang/Object;)[Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->freeLocked(Lkotlinx/coroutines/flow/StateFlowImpl;)[Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/StateFlowSlot;->freeLocked(Lkotlinx/coroutines/flow/StateFlowImpl;)[Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->makePending()V\nHPLkotlinx/coroutines/flow/StateFlowSlot;->makePending()V\nHSPLkotlinx/coroutines/flow/StateFlowSlot;->takePending()Z\nHPLkotlinx/coroutines/flow/StateFlowSlot;->takePending()Z\nLkotlinx/coroutines/flow/SubscribedFlowCollector;\nLkotlinx/coroutines/flow/ThrowingCollector;\nLkotlinx/coroutines/flow/internal/AbortFlowException;\nHSPLkotlinx/coroutines/flow/internal/AbortFlowException;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nPLkotlinx/coroutines/flow/internal/AbortFlowException;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/internal/AbortFlowException;->fillInStackTrace()Ljava/lang/Throwable;\nPLkotlinx/coroutines/flow/internal/AbortFlowException;->fillInStackTrace()Ljava/lang/Throwable;\nLkotlinx/coroutines/flow/internal/AbstractSharedFlow;\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;-><init>()V\nHPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;-><init>()V\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->access$getNCollectors(Lkotlinx/coroutines/flow/internal/AbstractSharedFlow;)I\nPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->access$getNCollectors(Lkotlinx/coroutines/flow/internal/AbstractSharedFlow;)I\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->access$getSlots(Lkotlinx/coroutines/flow/internal/AbstractSharedFlow;)[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->access$getSlots(Lkotlinx/coroutines/flow/internal/AbstractSharedFlow;)[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->allocateSlot()Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->allocateSlot()Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->freeSlot(Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;)V\nHPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->freeSlot(Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;)V\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->getNCollectors()I\nPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->getNCollectors()I\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->getSlots()[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->getSlots()[Lkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->getSubscriptionCount()Lkotlinx/coroutines/flow/StateFlow;\nPLkotlinx/coroutines/flow/internal/AbstractSharedFlow;->getSubscriptionCount()Lkotlinx/coroutines/flow/StateFlow;\nLkotlinx/coroutines/flow/internal/AbstractSharedFlowKt;\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlowKt;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/AbstractSharedFlowKt;-><clinit>()V\nLkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;\nHSPLkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;-><init>()V\nHPLkotlinx/coroutines/flow/internal/AbstractSharedFlowSlot;-><init>()V\nLkotlinx/coroutines/flow/internal/ChannelFlow;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow;-><init>(Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHPLkotlinx/coroutines/flow/internal/ChannelFlow;-><init>(Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow;->fuse(Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/Flow;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow;->fuse(Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/Flow;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow;->getCollectToFun$kotlinx_coroutines_core()Lkotlin/jvm/functions/Function2;\nPLkotlinx/coroutines/flow/internal/ChannelFlow;->getCollectToFun$kotlinx_coroutines_core()Lkotlin/jvm/functions/Function2;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow;->getProduceCapacity$kotlinx_coroutines_core()I\nPLkotlinx/coroutines/flow/internal/ChannelFlow;->getProduceCapacity$kotlinx_coroutines_core()I\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow;->produceImpl(Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/channels/ReceiveChannel;\nPLkotlinx/coroutines/flow/internal/ChannelFlow;->produceImpl(Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/channels/ReceiveChannel;\nLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/flow/internal/ChannelFlow;)V\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;-><init>(Lkotlin/coroutines/Continuation;Lkotlinx/coroutines/flow/FlowCollector;Lkotlinx/coroutines/flow/internal/ChannelFlow;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collect$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlow;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlow;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlow$collectToFun$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowOperator;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowOperator;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/internal/ChannelFlowOperator;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowOperator;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowOperator;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowOperator;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowOperator;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowOperatorImpl;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowOperatorImpl;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/flow/internal/ChannelFlowOperatorImpl;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowOperatorImpl;->flowCollect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowOperatorImpl;->flowCollect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;-><init>(Lkotlin/jvm/functions/Function3;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;-><init>(Lkotlin/jvm/functions/Function3;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;-><init>(Lkotlin/jvm/functions/Function3;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;-><init>(Lkotlin/jvm/functions/Function3;Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;->access$getTransform$p(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;)Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;->access$getTransform$p(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;)Lkotlin/jvm/functions/Function3;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;->create(Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/internal/ChannelFlow;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;->create(Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)Lkotlinx/coroutines/flow/internal/ChannelFlow;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;->flowCollect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;->flowCollect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;Lkotlinx/coroutines/flow/FlowCollector;)V\nHPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;Lkotlinx/coroutines/flow/FlowCollector;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest;Lkotlinx/coroutines/flow/FlowCollector;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$emit$1;\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$emit$1;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$emit$1;-><init>(Lkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelFlowTransformLatest$flowCollect$3$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;-><init>(Ljava/lang/Iterable;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;-><init>(Ljava/lang/Iterable;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;-><init>(Ljava/lang/Iterable;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;-><init>(Ljava/lang/Iterable;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;->collectTo(Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;->produceImpl(Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/channels/ReceiveChannel;\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge;->produceImpl(Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/channels/ReceiveChannel;\nLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/internal/SendingCollector;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;-><init>(Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/internal/SendingCollector;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/ChannelLimitedFlowMerge$collectTo$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/ChildCancelledException;\nHSPLkotlinx/coroutines/flow/internal/ChildCancelledException;-><init>()V\nPLkotlinx/coroutines/flow/internal/ChildCancelledException;-><init>()V\nHSPLkotlinx/coroutines/flow/internal/ChildCancelledException;->fillInStackTrace()Ljava/lang/Throwable;\nPLkotlinx/coroutines/flow/internal/ChildCancelledException;->fillInStackTrace()Ljava/lang/Throwable;\nLkotlinx/coroutines/flow/internal/CombineKt;\nHSPLkotlinx/coroutines/flow/internal/CombineKt;->combineInternal(Lkotlinx/coroutines/flow/FlowCollector;[Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/CombineKt;->combineInternal(Lkotlinx/coroutines/flow/FlowCollector;[Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;[Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;[Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;-><init>([Lkotlinx/coroutines/flow/Flow;ILjava/util/concurrent/atomic/AtomicInteger;Lkotlinx/coroutines/channels/Channel;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;-><init>([Lkotlinx/coroutines/flow/Flow;ILjava/util/concurrent/atomic/AtomicInteger;Lkotlinx/coroutines/channels/Channel;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;-><init>(Lkotlinx/coroutines/channels/Channel;I)V\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;-><init>(Lkotlinx/coroutines/channels/Channel;I)V\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1$emit$1;\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1$emit$1;-><init>(Lkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1$emit$1;-><init>(Lkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/CombineKt$combineInternal$2$1$1$emit$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/DownstreamExceptionContext;\nHSPLkotlinx/coroutines/flow/internal/DownstreamExceptionContext;-><init>(Ljava/lang/Throwable;Lkotlin/coroutines/CoroutineContext;)V\nPLkotlinx/coroutines/flow/internal/DownstreamExceptionContext;-><init>(Ljava/lang/Throwable;Lkotlin/coroutines/CoroutineContext;)V\nLkotlinx/coroutines/flow/internal/FlowCoroutine;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/FlowCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutine;->childCancelled(Ljava/lang/Throwable;)Z\nHPLkotlinx/coroutines/flow/internal/FlowCoroutine;->childCancelled(Ljava/lang/Throwable;)Z\nLkotlinx/coroutines/flow/internal/FlowCoroutineKt;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt;->flowScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/FlowCoroutineKt;->flowScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$$inlined$unsafeFlow$1;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$$inlined$unsafeFlow$1;-><init>(Lkotlin/jvm/functions/Function3;)V\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$$inlined$unsafeFlow$1;-><init>(Lkotlin/jvm/functions/Function3;)V\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;-><init>(Lkotlin/jvm/functions/Function3;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;-><init>(Lkotlin/jvm/functions/Function3;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/FlowCoroutineKt$scopedFlow$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/FlowExceptions_commonKt;\nHSPLkotlinx/coroutines/flow/internal/FlowExceptions_commonKt;->checkOwnership(Lkotlinx/coroutines/flow/internal/AbortFlowException;Lkotlinx/coroutines/flow/FlowCollector;)V\nPLkotlinx/coroutines/flow/internal/FlowExceptions_commonKt;->checkOwnership(Lkotlinx/coroutines/flow/internal/AbortFlowException;Lkotlinx/coroutines/flow/FlowCollector;)V\nLkotlinx/coroutines/flow/internal/FusibleFlow;\nLkotlinx/coroutines/flow/internal/FusibleFlow$DefaultImpls;\nHSPLkotlinx/coroutines/flow/internal/FusibleFlow$DefaultImpls;->fuse$default(Lkotlinx/coroutines/flow/internal/FusibleFlow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;\nPLkotlinx/coroutines/flow/internal/FusibleFlow$DefaultImpls;->fuse$default(Lkotlinx/coroutines/flow/internal/FusibleFlow;Lkotlin/coroutines/CoroutineContext;ILkotlinx/coroutines/channels/BufferOverflow;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;\nLkotlinx/coroutines/flow/internal/NoOpContinuation;\nHSPLkotlinx/coroutines/flow/internal/NoOpContinuation;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/NoOpContinuation;-><clinit>()V\nHSPLkotlinx/coroutines/flow/internal/NoOpContinuation;-><init>()V\nPLkotlinx/coroutines/flow/internal/NoOpContinuation;-><init>()V\nLkotlinx/coroutines/flow/internal/NopCollector;\nHSPLkotlinx/coroutines/flow/internal/NopCollector;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/NopCollector;-><clinit>()V\nHSPLkotlinx/coroutines/flow/internal/NopCollector;-><init>()V\nPLkotlinx/coroutines/flow/internal/NopCollector;-><init>()V\nHSPLkotlinx/coroutines/flow/internal/NopCollector;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/NopCollector;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/NullSurrogateKt;\nHSPLkotlinx/coroutines/flow/internal/NullSurrogateKt;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/NullSurrogateKt;-><clinit>()V\nLkotlinx/coroutines/flow/internal/SafeCollector;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/CoroutineContext;)V\nHPLkotlinx/coroutines/flow/internal/SafeCollector;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/flow/internal/SafeCollector;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/SafeCollector;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector;->emit(Lkotlin/coroutines/Continuation;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/SafeCollector;->emit(Lkotlin/coroutines/Continuation;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector;->getContext()Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/flow/internal/SafeCollector;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/SafeCollector;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector;->releaseIntercepted()V\nHPLkotlinx/coroutines/flow/internal/SafeCollector;->releaseIntercepted()V\nLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;-><clinit>()V\nHSPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;-><init>()V\nPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;-><init>()V\nHSPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;->invoke(ILkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Integer;\nHPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;->invoke(ILkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Integer;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/SafeCollector$collectContextSize$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/SafeCollectorKt;\nHSPLkotlinx/coroutines/flow/internal/SafeCollectorKt;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/SafeCollectorKt;-><clinit>()V\nHSPLkotlinx/coroutines/flow/internal/SafeCollectorKt;->access$getEmitFun$p()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/flow/internal/SafeCollectorKt;->access$getEmitFun$p()Lkotlin/jvm/functions/Function3;\nLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;\nHSPLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;-><clinit>()V\nPLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;-><clinit>()V\nHSPLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;-><init>()V\nPLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;-><init>()V\nHSPLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/SafeCollectorKt$emitFun$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/SafeCollector_commonKt;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt;->checkContext(Lkotlinx/coroutines/flow/internal/SafeCollector;Lkotlin/coroutines/CoroutineContext;)V\nHPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt;->checkContext(Lkotlinx/coroutines/flow/internal/SafeCollector;Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt;->transitiveCoroutineParent(Lkotlinx/coroutines/Job;Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/Job;\nPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt;->transitiveCoroutineParent(Lkotlinx/coroutines/Job;Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/Job;\nLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;-><init>(Lkotlinx/coroutines/flow/internal/SafeCollector;)V\nHPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;-><init>(Lkotlinx/coroutines/flow/internal/SafeCollector;)V\nHSPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;->invoke(ILkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Integer;\nHPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;->invoke(ILkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Integer;\nHSPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/flow/internal/SafeCollector_commonKt$checkContext$result$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/SendingCollector;\nHSPLkotlinx/coroutines/flow/internal/SendingCollector;-><init>(Lkotlinx/coroutines/channels/SendChannel;)V\nPLkotlinx/coroutines/flow/internal/SendingCollector;-><init>(Lkotlinx/coroutines/channels/SendChannel;)V\nHSPLkotlinx/coroutines/flow/internal/SendingCollector;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/flow/internal/SendingCollector;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/flow/internal/SubscriptionCountStateFlow;\nHSPLkotlinx/coroutines/flow/internal/SubscriptionCountStateFlow;-><init>(I)V\nPLkotlinx/coroutines/flow/internal/SubscriptionCountStateFlow;-><init>(I)V\nHSPLkotlinx/coroutines/flow/internal/SubscriptionCountStateFlow;->increment(I)Z\nHPLkotlinx/coroutines/flow/internal/SubscriptionCountStateFlow;->increment(I)Z\nLkotlinx/coroutines/internal/AtomicKt;\nHSPLkotlinx/coroutines/internal/AtomicKt;-><clinit>()V\nPLkotlinx/coroutines/internal/AtomicKt;-><clinit>()V\nLkotlinx/coroutines/internal/AtomicOp;\nHSPLkotlinx/coroutines/internal/AtomicOp;-><clinit>()V\nPLkotlinx/coroutines/internal/AtomicOp;-><clinit>()V\nHSPLkotlinx/coroutines/internal/AtomicOp;-><init>()V\nPLkotlinx/coroutines/internal/AtomicOp;-><init>()V\nHSPLkotlinx/coroutines/internal/AtomicOp;->perform(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/AtomicOp;->perform(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/internal/ConcurrentLinkedListKt;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;-><clinit>()V\nPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;->access$getCLOSED$p()Lkotlinx/coroutines/internal/Symbol;\nHPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;->access$getCLOSED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;->close(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;->close(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;->findSegmentInternal(Lkotlinx/coroutines/internal/Segment;JLkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/ConcurrentLinkedListKt;->findSegmentInternal(Lkotlinx/coroutines/internal/Segment;JLkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nLkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;-><clinit>()V\nPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;-><init>(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)V\nHPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;-><init>(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)V\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->access$getNextOrClosed(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->access$getNextOrClosed(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->cleanPrev()V\nHPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->cleanPrev()V\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->getNext()Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->getNext()Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->getPrev()Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->getPrev()Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->markAsClosed()Z\nPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->markAsClosed()Z\nHSPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->trySetNext(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)Z\nHPLkotlinx/coroutines/internal/ConcurrentLinkedListNode;->trySetNext(Lkotlinx/coroutines/internal/ConcurrentLinkedListNode;)Z\nLkotlinx/coroutines/internal/ContextScope;\nHSPLkotlinx/coroutines/internal/ContextScope;-><init>(Lkotlin/coroutines/CoroutineContext;)V\nPLkotlinx/coroutines/internal/ContextScope;-><init>(Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/internal/ContextScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/internal/ContextScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;\nLkotlinx/coroutines/internal/DispatchedContinuation;\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;-><clinit>()V\nPLkotlinx/coroutines/internal/DispatchedContinuation;-><clinit>()V\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)V\nPLkotlinx/coroutines/internal/DispatchedContinuation;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->awaitReusability$kotlinx_coroutines_core()V\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->awaitReusability$kotlinx_coroutines_core()V\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->claimReusableCancellableContinuation$kotlinx_coroutines_core()Lkotlinx/coroutines/CancellableContinuationImpl;\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->claimReusableCancellableContinuation$kotlinx_coroutines_core()Lkotlinx/coroutines/CancellableContinuationImpl;\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->dispatchYield$kotlinx_coroutines_core(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V\nPLkotlinx/coroutines/internal/DispatchedContinuation;->dispatchYield$kotlinx_coroutines_core(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->getContext()Lkotlin/coroutines/CoroutineContext;\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->getContext()Lkotlin/coroutines/CoroutineContext;\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;\nPLkotlinx/coroutines/internal/DispatchedContinuation;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->isReusable$kotlinx_coroutines_core()Z\nPLkotlinx/coroutines/internal/DispatchedContinuation;->isReusable$kotlinx_coroutines_core()Z\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->postponeCancellation$kotlinx_coroutines_core(Ljava/lang/Throwable;)Z\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->postponeCancellation$kotlinx_coroutines_core(Ljava/lang/Throwable;)Z\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->release$kotlinx_coroutines_core()V\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->release$kotlinx_coroutines_core()V\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->resumeWith(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->resumeWith(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->takeState$kotlinx_coroutines_core()Ljava/lang/Object;\nPLkotlinx/coroutines/internal/DispatchedContinuation;->takeState$kotlinx_coroutines_core()Ljava/lang/Object;\nHSPLkotlinx/coroutines/internal/DispatchedContinuation;->tryReleaseClaimedContinuation$kotlinx_coroutines_core(Lkotlinx/coroutines/CancellableContinuation;)Ljava/lang/Throwable;\nHPLkotlinx/coroutines/internal/DispatchedContinuation;->tryReleaseClaimedContinuation$kotlinx_coroutines_core(Lkotlinx/coroutines/CancellableContinuation;)Ljava/lang/Throwable;\nLkotlinx/coroutines/internal/DispatchedContinuationKt;\nHSPLkotlinx/coroutines/internal/DispatchedContinuationKt;-><clinit>()V\nPLkotlinx/coroutines/internal/DispatchedContinuationKt;-><clinit>()V\nHSPLkotlinx/coroutines/internal/DispatchedContinuationKt;->access$getUNDEFINED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/internal/DispatchedContinuationKt;->access$getUNDEFINED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/internal/DispatchedContinuationKt;->resumeCancellableWith$default(Lkotlin/coroutines/Continuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V\nPLkotlinx/coroutines/internal/DispatchedContinuationKt;->resumeCancellableWith$default(Lkotlin/coroutines/Continuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/DispatchedContinuationKt;->resumeCancellableWith(Lkotlin/coroutines/Continuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/internal/DispatchedContinuationKt;->resumeCancellableWith(Lkotlin/coroutines/Continuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V\nLkotlinx/coroutines/internal/InlineList;\nHSPLkotlinx/coroutines/internal/InlineList;->plus-FjFbRPM(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/internal/InlineList;->plus-FjFbRPM(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/internal/LimitedDispatcher;\nHSPLkotlinx/coroutines/internal/LimitedDispatcher;-><clinit>()V\nPLkotlinx/coroutines/internal/LimitedDispatcher;-><clinit>()V\nHSPLkotlinx/coroutines/internal/LimitedDispatcher;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;I)V\nPLkotlinx/coroutines/internal/LimitedDispatcher;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;I)V\nHSPLkotlinx/coroutines/internal/LimitedDispatcher;->access$obtainTaskOrDeallocateWorker(Lkotlinx/coroutines/internal/LimitedDispatcher;)Ljava/lang/Runnable;\nPLkotlinx/coroutines/internal/LimitedDispatcher;->access$obtainTaskOrDeallocateWorker(Lkotlinx/coroutines/internal/LimitedDispatcher;)Ljava/lang/Runnable;\nHSPLkotlinx/coroutines/internal/LimitedDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHPLkotlinx/coroutines/internal/LimitedDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/internal/LimitedDispatcher;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/internal/LimitedDispatcher;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/internal/LimitedDispatcher;->obtainTaskOrDeallocateWorker()Ljava/lang/Runnable;\nHPLkotlinx/coroutines/internal/LimitedDispatcher;->obtainTaskOrDeallocateWorker()Ljava/lang/Runnable;\nLkotlinx/coroutines/internal/LimitedDispatcher$Worker;\nHSPLkotlinx/coroutines/internal/LimitedDispatcher$Worker;-><init>(Lkotlinx/coroutines/internal/LimitedDispatcher;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/internal/LimitedDispatcher$Worker;-><init>(Lkotlinx/coroutines/internal/LimitedDispatcher;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/internal/LimitedDispatcher$Worker;->run()V\nPLkotlinx/coroutines/internal/LimitedDispatcher$Worker;->run()V\nLkotlinx/coroutines/internal/LimitedDispatcherKt;\nHSPLkotlinx/coroutines/internal/LimitedDispatcherKt;->checkParallelism(I)V\nPLkotlinx/coroutines/internal/LimitedDispatcherKt;->checkParallelism(I)V\nLkotlinx/coroutines/internal/LockFreeLinkedListHead;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListHead;-><init>()V\nHPLkotlinx/coroutines/internal/LockFreeLinkedListHead;-><init>()V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListHead;->isRemoved()Z\nHPLkotlinx/coroutines/internal/LockFreeLinkedListHead;->isRemoved()Z\nLkotlinx/coroutines/internal/LockFreeLinkedListKt;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListKt;-><clinit>()V\nPLkotlinx/coroutines/internal/LockFreeLinkedListKt;-><clinit>()V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListKt;->unwrap(Ljava/lang/Object;)Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nPLkotlinx/coroutines/internal/LockFreeLinkedListKt;->unwrap(Ljava/lang/Object;)Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nLkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;-><clinit>()V\nPLkotlinx/coroutines/internal/LockFreeLinkedListNode;-><clinit>()V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;-><init>()V\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;-><init>()V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->access$finishAdd(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->access$finishAdd(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->access$get_next$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->access$get_next$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->addOneIfEmpty(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)Z\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->addOneIfEmpty(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)Z\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->correctPrev()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->correctPrev()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->finishAdd(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->finishAdd(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->getNext()Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->getNext()Ljava/lang/Object;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->getNextNode()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->getNextNode()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->getPrevNode()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->getPrevNode()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->isRemoved()Z\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->isRemoved()Z\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->remove()Z\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->remove()Z\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->removeOrNext()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->removeOrNext()Lkotlinx/coroutines/internal/LockFreeLinkedListNode;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->tryCondAddNext(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;)I\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode;->tryCondAddNext(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Lkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;)I\nLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;-><init>(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nPLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;-><init>(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;->complete(Ljava/lang/Object;Ljava/lang/Object;)V\nPLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;->complete(Ljava/lang/Object;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;->complete(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Ljava/lang/Object;)V\nHPLkotlinx/coroutines/internal/LockFreeLinkedListNode$CondAddOp;->complete(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;Ljava/lang/Object;)V\nLkotlinx/coroutines/internal/LockFreeTaskQueue;\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueue;-><clinit>()V\nPLkotlinx/coroutines/internal/LockFreeTaskQueue;-><clinit>()V\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueue;-><init>(Z)V\nPLkotlinx/coroutines/internal/LockFreeTaskQueue;-><init>(Z)V\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueue;->addLast(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/internal/LockFreeTaskQueue;->addLast(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueue;->getSize()I\nPLkotlinx/coroutines/internal/LockFreeTaskQueue;->getSize()I\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueue;->removeFirstOrNull()Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/LockFreeTaskQueue;->removeFirstOrNull()Ljava/lang/Object;\nLkotlinx/coroutines/internal/LockFreeTaskQueueCore;\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;-><clinit>()V\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;-><clinit>()V\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;-><init>(IZ)V\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;-><init>(IZ)V\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->addLast(Ljava/lang/Object;)I\nHPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->addLast(Ljava/lang/Object;)I\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->getSize()I\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->getSize()I\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->next()Lkotlinx/coroutines/internal/LockFreeTaskQueueCore;\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->next()Lkotlinx/coroutines/internal/LockFreeTaskQueueCore;\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->removeFirstOrNull()Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/LockFreeTaskQueueCore;->removeFirstOrNull()Ljava/lang/Object;\nLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;->addFailReason(J)I\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;->addFailReason(J)I\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;->updateHead(JI)J\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;->updateHead(JI)J\nHSPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;->updateTail(JI)J\nPLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Companion;->updateTail(JI)J\nLkotlinx/coroutines/internal/LockFreeTaskQueueCore$Placeholder;\nLkotlinx/coroutines/internal/MainDispatcherFactory;\nLkotlinx/coroutines/internal/MainDispatcherLoader;\nHSPLkotlinx/coroutines/internal/MainDispatcherLoader;-><clinit>()V\nPLkotlinx/coroutines/internal/MainDispatcherLoader;-><clinit>()V\nHSPLkotlinx/coroutines/internal/MainDispatcherLoader;-><init>()V\nPLkotlinx/coroutines/internal/MainDispatcherLoader;-><init>()V\nLkotlinx/coroutines/internal/MainDispatchersKt;\nHSPLkotlinx/coroutines/internal/MainDispatchersKt;->tryCreateDispatcher(Lkotlinx/coroutines/internal/MainDispatcherFactory;Ljava/util/List;)Lkotlinx/coroutines/MainCoroutineDispatcher;\nPLkotlinx/coroutines/internal/MainDispatchersKt;->tryCreateDispatcher(Lkotlinx/coroutines/internal/MainDispatcherFactory;Ljava/util/List;)Lkotlinx/coroutines/MainCoroutineDispatcher;\nLkotlinx/coroutines/internal/OnUndeliveredElementKt;\nLkotlinx/coroutines/internal/OpDescriptor;\nHSPLkotlinx/coroutines/internal/OpDescriptor;-><init>()V\nPLkotlinx/coroutines/internal/OpDescriptor;-><init>()V\nLkotlinx/coroutines/internal/Removed;\nHSPLkotlinx/coroutines/internal/Removed;-><init>(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nPLkotlinx/coroutines/internal/Removed;-><init>(Lkotlinx/coroutines/internal/LockFreeLinkedListNode;)V\nLkotlinx/coroutines/internal/ResizableAtomicArray;\nHSPLkotlinx/coroutines/internal/ResizableAtomicArray;-><init>(I)V\nPLkotlinx/coroutines/internal/ResizableAtomicArray;-><init>(I)V\nHSPLkotlinx/coroutines/internal/ResizableAtomicArray;->get(I)Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/ResizableAtomicArray;->get(I)Ljava/lang/Object;\nHSPLkotlinx/coroutines/internal/ResizableAtomicArray;->setSynchronized(ILjava/lang/Object;)V\nPLkotlinx/coroutines/internal/ResizableAtomicArray;->setSynchronized(ILjava/lang/Object;)V\nLkotlinx/coroutines/internal/ScopeCoroutine;\nHSPLkotlinx/coroutines/internal/ScopeCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/internal/ScopeCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/internal/ScopeCoroutine;->afterCompletion(Ljava/lang/Object;)V\nPLkotlinx/coroutines/internal/ScopeCoroutine;->afterCompletion(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/ScopeCoroutine;->afterResume(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/internal/ScopeCoroutine;->afterResume(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/ScopeCoroutine;->isScopedCoroutine()Z\nHPLkotlinx/coroutines/internal/ScopeCoroutine;->isScopedCoroutine()Z\nLkotlinx/coroutines/internal/Segment;\nHSPLkotlinx/coroutines/internal/Segment;-><clinit>()V\nPLkotlinx/coroutines/internal/Segment;-><clinit>()V\nHSPLkotlinx/coroutines/internal/Segment;-><init>(JLkotlinx/coroutines/internal/Segment;I)V\nHPLkotlinx/coroutines/internal/Segment;-><init>(JLkotlinx/coroutines/internal/Segment;I)V\nHSPLkotlinx/coroutines/internal/Segment;->decPointers$kotlinx_coroutines_core()Z\nPLkotlinx/coroutines/internal/Segment;->decPointers$kotlinx_coroutines_core()Z\nHSPLkotlinx/coroutines/internal/Segment;->isRemoved()Z\nHPLkotlinx/coroutines/internal/Segment;->isRemoved()Z\nHSPLkotlinx/coroutines/internal/Segment;->onSlotCleaned()V\nHPLkotlinx/coroutines/internal/Segment;->onSlotCleaned()V\nHSPLkotlinx/coroutines/internal/Segment;->tryIncPointers$kotlinx_coroutines_core()Z\nHPLkotlinx/coroutines/internal/Segment;->tryIncPointers$kotlinx_coroutines_core()Z\nLkotlinx/coroutines/internal/SegmentOrClosed;\nHSPLkotlinx/coroutines/internal/SegmentOrClosed;->getSegment-impl(Ljava/lang/Object;)Lkotlinx/coroutines/internal/Segment;\nHPLkotlinx/coroutines/internal/SegmentOrClosed;->getSegment-impl(Ljava/lang/Object;)Lkotlinx/coroutines/internal/Segment;\nHSPLkotlinx/coroutines/internal/SegmentOrClosed;->isClosed-impl(Ljava/lang/Object;)Z\nPLkotlinx/coroutines/internal/SegmentOrClosed;->isClosed-impl(Ljava/lang/Object;)Z\nLkotlinx/coroutines/internal/StackTraceRecoveryKt;\nLkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/internal/Symbol;-><init>(Ljava/lang/String;)V\nPLkotlinx/coroutines/internal/Symbol;-><init>(Ljava/lang/String;)V\nLkotlinx/coroutines/internal/SystemPropsKt;\nHSPLkotlinx/coroutines/internal/SystemPropsKt;->getAVAILABLE_PROCESSORS()I\nPLkotlinx/coroutines/internal/SystemPropsKt;->getAVAILABLE_PROCESSORS()I\nHSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I\nPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I\nHSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J\nPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J\nHSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;III)I\nPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;III)I\nHSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;Z)Z\nPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;Z)Z\nLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;-><clinit>()V\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;-><clinit>()V\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;->getAVAILABLE_PROCESSORS()I\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;->getAVAILABLE_PROCESSORS()I\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;->systemProp(Ljava/lang/String;)Ljava/lang/String;\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemPropsKt;->systemProp(Ljava/lang/String;)Ljava/lang/String;\nLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;III)I\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;III)I\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;JJJ)J\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;JJJ)J\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;Z)Z\nPLkotlinx/coroutines/internal/SystemPropsKt__SystemProps_commonKt;->systemProp(Ljava/lang/String;Z)Z\nLkotlinx/coroutines/internal/ThreadContextKt;\nHSPLkotlinx/coroutines/internal/ThreadContextKt;-><clinit>()V\nPLkotlinx/coroutines/internal/ThreadContextKt;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V\nHPLkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/internal/ThreadContextKt;->threadContextElements(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/Object;\nPLkotlinx/coroutines/internal/ThreadContextKt;->threadContextElements(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;\nHSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;-><clinit>()V\nPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;-><init>()V\nPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;-><init>()V\nHSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->invoke(Ljava/lang/Object;Lkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Object;\nPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->invoke(Ljava/lang/Object;Lkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Object;\nLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;\nHSPLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;-><clinit>()V\nPLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;-><init>()V\nPLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;-><init>()V\nLkotlinx/coroutines/internal/ThreadContextKt$updateState$1;\nHSPLkotlinx/coroutines/internal/ThreadContextKt$updateState$1;-><clinit>()V\nPLkotlinx/coroutines/internal/ThreadContextKt$updateState$1;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ThreadContextKt$updateState$1;-><init>()V\nPLkotlinx/coroutines/internal/ThreadContextKt$updateState$1;-><init>()V\nLkotlinx/coroutines/internal/ThreadSafeHeap;\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;-><clinit>()V\nPLkotlinx/coroutines/internal/ThreadSafeHeap;-><clinit>()V\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;-><init>()V\nPLkotlinx/coroutines/internal/ThreadSafeHeap;-><init>()V\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->addImpl(Lkotlinx/coroutines/internal/ThreadSafeHeapNode;)V\nHPLkotlinx/coroutines/internal/ThreadSafeHeap;->addImpl(Lkotlinx/coroutines/internal/ThreadSafeHeapNode;)V\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->firstImpl()Lkotlinx/coroutines/internal/ThreadSafeHeapNode;\nPLkotlinx/coroutines/internal/ThreadSafeHeap;->firstImpl()Lkotlinx/coroutines/internal/ThreadSafeHeapNode;\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->getSize()I\nHPLkotlinx/coroutines/internal/ThreadSafeHeap;->getSize()I\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->isEmpty()Z\nPLkotlinx/coroutines/internal/ThreadSafeHeap;->isEmpty()Z\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->peek()Lkotlinx/coroutines/internal/ThreadSafeHeapNode;\nPLkotlinx/coroutines/internal/ThreadSafeHeap;->peek()Lkotlinx/coroutines/internal/ThreadSafeHeapNode;\nPLkotlinx/coroutines/internal/ThreadSafeHeap;->remove(Lkotlinx/coroutines/internal/ThreadSafeHeapNode;)Z\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->removeAtImpl(I)Lkotlinx/coroutines/internal/ThreadSafeHeapNode;\nHPLkotlinx/coroutines/internal/ThreadSafeHeap;->removeAtImpl(I)Lkotlinx/coroutines/internal/ThreadSafeHeapNode;\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->siftUpFrom(I)V\nHPLkotlinx/coroutines/internal/ThreadSafeHeap;->siftUpFrom(I)V\nHSPLkotlinx/coroutines/internal/ThreadSafeHeap;->swap(II)V\nPLkotlinx/coroutines/internal/ThreadSafeHeap;->swap(II)V\nLkotlinx/coroutines/internal/ThreadSafeHeapNode;\nLkotlinx/coroutines/internal/ThreadState;\nLkotlinx/coroutines/intrinsics/CancellableKt;\nHSPLkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable$default(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V\nHPLkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable$default(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V\nHSPLkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function1;)V\nHPLkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function1;)V\nLkotlinx/coroutines/intrinsics/UndispatchedKt;\nHSPLkotlinx/coroutines/intrinsics/UndispatchedKt;->startCoroutineUndispatched(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/intrinsics/UndispatchedKt;->startCoroutineUndispatched(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/intrinsics/UndispatchedKt;->startUndispatchedOrReturn(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nHPLkotlinx/coroutines/intrinsics/UndispatchedKt;->startUndispatchedOrReturn(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;\nLkotlinx/coroutines/scheduling/CoroutineScheduler;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;-><clinit>()V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;-><init>(IIJLjava/lang/String;)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;-><init>(IIJLjava/lang/String;)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->access$getControlState$FU$p()Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->access$getControlState$FU$p()Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->createNewWorker()I\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->createNewWorker()I\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->createTask(Ljava/lang/Runnable;Lkotlinx/coroutines/scheduling/TaskContext;)Lkotlinx/coroutines/scheduling/Task;\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->createTask(Ljava/lang/Runnable;Lkotlinx/coroutines/scheduling/TaskContext;)Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->dispatch(Ljava/lang/Runnable;Lkotlinx/coroutines/scheduling/TaskContext;Z)V\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler;->dispatch(Ljava/lang/Runnable;Lkotlinx/coroutines/scheduling/TaskContext;Z)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->isTerminated()Z\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler;->isTerminated()Z\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->parkedWorkersStackPush(Lkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;)Z\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler;->parkedWorkersStackPush(Lkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;)Z\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->parkedWorkersStackTopUpdate(Lkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;II)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->runSafely(Lkotlinx/coroutines/scheduling/Task;)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->runSafely(Lkotlinx/coroutines/scheduling/Task;)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->signalCpuWork()V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->signalCpuWork()V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->tryCreateWorker(J)Z\nPLkotlinx/coroutines/scheduling/CoroutineScheduler;->tryCreateWorker(J)Z\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler;->tryUnpark()Z\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler;->tryUnpark()Z\nLkotlinx/coroutines/scheduling/CoroutineScheduler$Companion;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;-><clinit>()V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;-><init>(Lkotlinx/coroutines/scheduling/CoroutineScheduler;I)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;-><init>(Lkotlinx/coroutines/scheduling/CoroutineScheduler;I)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->findTask(Z)Lkotlinx/coroutines/scheduling/Task;\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->findTask(Z)Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->getIndexInArray()I\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->getIndexInArray()I\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->getNextParkedWorker()Ljava/lang/Object;\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->getNextParkedWorker()Ljava/lang/Object;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->getWorkerCtl$FU()Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->getWorkerCtl$FU()Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->nextInt(I)I\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->nextInt(I)I\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->pollGlobalQueues()Lkotlinx/coroutines/scheduling/Task;\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->pollGlobalQueues()Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->run()V\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->run()V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->setIndexInArray(I)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->setIndexInArray(I)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->setNextParkedWorker(Ljava/lang/Object;)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->setNextParkedWorker(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->tryReleaseCpu(Lkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;)Z\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->tryReleaseCpu(Lkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;)Z\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->trySteal(I)Lkotlinx/coroutines/scheduling/Task;\nHPLkotlinx/coroutines/scheduling/CoroutineScheduler$Worker;->trySteal(I)Lkotlinx/coroutines/scheduling/Task;\nLkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;-><clinit>()V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;-><init>(Ljava/lang/String;I)V\nPLkotlinx/coroutines/scheduling/CoroutineScheduler$WorkerState;-><init>(Ljava/lang/String;I)V\nLkotlinx/coroutines/scheduling/DefaultIoScheduler;\nHSPLkotlinx/coroutines/scheduling/DefaultIoScheduler;-><clinit>()V\nPLkotlinx/coroutines/scheduling/DefaultIoScheduler;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/DefaultIoScheduler;-><init>()V\nPLkotlinx/coroutines/scheduling/DefaultIoScheduler;-><init>()V\nHSPLkotlinx/coroutines/scheduling/DefaultIoScheduler;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/scheduling/DefaultIoScheduler;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/scheduling/DefaultIoScheduler;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/scheduling/DefaultIoScheduler;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nLkotlinx/coroutines/scheduling/DefaultScheduler;\nHSPLkotlinx/coroutines/scheduling/DefaultScheduler;-><clinit>()V\nPLkotlinx/coroutines/scheduling/DefaultScheduler;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/DefaultScheduler;-><init>()V\nPLkotlinx/coroutines/scheduling/DefaultScheduler;-><init>()V\nLkotlinx/coroutines/scheduling/GlobalQueue;\nHSPLkotlinx/coroutines/scheduling/GlobalQueue;-><init>()V\nPLkotlinx/coroutines/scheduling/GlobalQueue;-><init>()V\nLkotlinx/coroutines/scheduling/NanoTimeSource;\nHSPLkotlinx/coroutines/scheduling/NanoTimeSource;-><clinit>()V\nPLkotlinx/coroutines/scheduling/NanoTimeSource;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/NanoTimeSource;-><init>()V\nPLkotlinx/coroutines/scheduling/NanoTimeSource;-><init>()V\nHSPLkotlinx/coroutines/scheduling/NanoTimeSource;->nanoTime()J\nHPLkotlinx/coroutines/scheduling/NanoTimeSource;->nanoTime()J\nLkotlinx/coroutines/scheduling/SchedulerCoroutineDispatcher;\nHSPLkotlinx/coroutines/scheduling/SchedulerCoroutineDispatcher;-><init>(IIJLjava/lang/String;)V\nPLkotlinx/coroutines/scheduling/SchedulerCoroutineDispatcher;-><init>(IIJLjava/lang/String;)V\nHSPLkotlinx/coroutines/scheduling/SchedulerCoroutineDispatcher;->dispatchWithContext$kotlinx_coroutines_core(Ljava/lang/Runnable;Lkotlinx/coroutines/scheduling/TaskContext;Z)V\nPLkotlinx/coroutines/scheduling/SchedulerCoroutineDispatcher;->dispatchWithContext$kotlinx_coroutines_core(Ljava/lang/Runnable;Lkotlinx/coroutines/scheduling/TaskContext;Z)V\nLkotlinx/coroutines/scheduling/SchedulerTimeSource;\nHSPLkotlinx/coroutines/scheduling/SchedulerTimeSource;-><init>()V\nPLkotlinx/coroutines/scheduling/SchedulerTimeSource;-><init>()V\nLkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/Task;-><init>()V\nPLkotlinx/coroutines/scheduling/Task;-><init>()V\nHSPLkotlinx/coroutines/scheduling/Task;-><init>(JLkotlinx/coroutines/scheduling/TaskContext;)V\nHPLkotlinx/coroutines/scheduling/Task;-><init>(JLkotlinx/coroutines/scheduling/TaskContext;)V\nLkotlinx/coroutines/scheduling/TaskContext;\nLkotlinx/coroutines/scheduling/TaskContextImpl;\nHSPLkotlinx/coroutines/scheduling/TaskContextImpl;-><init>(I)V\nPLkotlinx/coroutines/scheduling/TaskContextImpl;-><init>(I)V\nHSPLkotlinx/coroutines/scheduling/TaskContextImpl;->afterTask()V\nPLkotlinx/coroutines/scheduling/TaskContextImpl;->afterTask()V\nHSPLkotlinx/coroutines/scheduling/TaskContextImpl;->getTaskMode()I\nPLkotlinx/coroutines/scheduling/TaskContextImpl;->getTaskMode()I\nLkotlinx/coroutines/scheduling/TaskImpl;\nHSPLkotlinx/coroutines/scheduling/TaskImpl;-><init>(Ljava/lang/Runnable;JLkotlinx/coroutines/scheduling/TaskContext;)V\nPLkotlinx/coroutines/scheduling/TaskImpl;-><init>(Ljava/lang/Runnable;JLkotlinx/coroutines/scheduling/TaskContext;)V\nHSPLkotlinx/coroutines/scheduling/TaskImpl;->run()V\nPLkotlinx/coroutines/scheduling/TaskImpl;->run()V\nLkotlinx/coroutines/scheduling/TasksKt;\nHSPLkotlinx/coroutines/scheduling/TasksKt;-><clinit>()V\nPLkotlinx/coroutines/scheduling/TasksKt;-><clinit>()V\nLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;\nHSPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;-><clinit>()V\nPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;-><init>()V\nPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;-><init>()V\nHSPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V\nHSPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher;\nPLkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher;\nLkotlinx/coroutines/scheduling/WorkQueue;\nHSPLkotlinx/coroutines/scheduling/WorkQueue;-><clinit>()V\nPLkotlinx/coroutines/scheduling/WorkQueue;-><clinit>()V\nHSPLkotlinx/coroutines/scheduling/WorkQueue;-><init>()V\nPLkotlinx/coroutines/scheduling/WorkQueue;-><init>()V\nHSPLkotlinx/coroutines/scheduling/WorkQueue;->add(Lkotlinx/coroutines/scheduling/Task;Z)Lkotlinx/coroutines/scheduling/Task;\nPLkotlinx/coroutines/scheduling/WorkQueue;->add(Lkotlinx/coroutines/scheduling/Task;Z)Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/WorkQueue;->addLast(Lkotlinx/coroutines/scheduling/Task;)Lkotlinx/coroutines/scheduling/Task;\nPLkotlinx/coroutines/scheduling/WorkQueue;->addLast(Lkotlinx/coroutines/scheduling/Task;)Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/WorkQueue;->poll()Lkotlinx/coroutines/scheduling/Task;\nPLkotlinx/coroutines/scheduling/WorkQueue;->poll()Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/WorkQueue;->pollBuffer()Lkotlinx/coroutines/scheduling/Task;\nHPLkotlinx/coroutines/scheduling/WorkQueue;->pollBuffer()Lkotlinx/coroutines/scheduling/Task;\nHSPLkotlinx/coroutines/scheduling/WorkQueue;->trySteal(ILkotlin/jvm/internal/Ref$ObjectRef;)J\nHPLkotlinx/coroutines/scheduling/WorkQueue;->trySteal(ILkotlin/jvm/internal/Ref$ObjectRef;)J\nLkotlinx/coroutines/selects/OnTimeout;\nHSPLkotlinx/coroutines/selects/OnTimeout;-><init>(J)V\nPLkotlinx/coroutines/selects/OnTimeout;-><init>(J)V\nHSPLkotlinx/coroutines/selects/OnTimeout;->access$register(Lkotlinx/coroutines/selects/OnTimeout;Lkotlinx/coroutines/selects/SelectInstance;Ljava/lang/Object;)V\nPLkotlinx/coroutines/selects/OnTimeout;->access$register(Lkotlinx/coroutines/selects/OnTimeout;Lkotlinx/coroutines/selects/SelectInstance;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/selects/OnTimeout;->getSelectClause()Lkotlinx/coroutines/selects/SelectClause0;\nPLkotlinx/coroutines/selects/OnTimeout;->getSelectClause()Lkotlinx/coroutines/selects/SelectClause0;\nLkotlinx/coroutines/selects/OnTimeout$register$$inlined$Runnable$1;\nHSPLkotlinx/coroutines/selects/OnTimeout$register$$inlined$Runnable$1;-><init>(Lkotlinx/coroutines/selects/SelectInstance;Lkotlinx/coroutines/selects/OnTimeout;)V\nPLkotlinx/coroutines/selects/OnTimeout$register$$inlined$Runnable$1;-><init>(Lkotlinx/coroutines/selects/SelectInstance;Lkotlinx/coroutines/selects/OnTimeout;)V\nHSPLkotlinx/coroutines/selects/OnTimeout$register$$inlined$Runnable$1;->run()V\nPLkotlinx/coroutines/selects/OnTimeout$register$$inlined$Runnable$1;->run()V\nLkotlinx/coroutines/selects/OnTimeout$selectClause$1;\nHSPLkotlinx/coroutines/selects/OnTimeout$selectClause$1;-><clinit>()V\nPLkotlinx/coroutines/selects/OnTimeout$selectClause$1;-><clinit>()V\nHSPLkotlinx/coroutines/selects/OnTimeout$selectClause$1;-><init>()V\nPLkotlinx/coroutines/selects/OnTimeout$selectClause$1;-><init>()V\nHSPLkotlinx/coroutines/selects/OnTimeout$selectClause$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/selects/OnTimeout$selectClause$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/selects/OnTimeoutKt;\nHSPLkotlinx/coroutines/selects/OnTimeoutKt;->onTimeout(Lkotlinx/coroutines/selects/SelectBuilder;JLkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/selects/OnTimeoutKt;->onTimeout(Lkotlinx/coroutines/selects/SelectBuilder;JLkotlin/jvm/functions/Function1;)V\nLkotlinx/coroutines/selects/SelectBuilder;\nLkotlinx/coroutines/selects/SelectClause;\nLkotlinx/coroutines/selects/SelectClause0;\nLkotlinx/coroutines/selects/SelectClause0Impl;\nHSPLkotlinx/coroutines/selects/SelectClause0Impl;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;)V\nPLkotlinx/coroutines/selects/SelectClause0Impl;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;)V\nHSPLkotlinx/coroutines/selects/SelectClause0Impl;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/coroutines/selects/SelectClause0Impl;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/coroutines/selects/SelectClause0Impl;->getClauseObject()Ljava/lang/Object;\nPLkotlinx/coroutines/selects/SelectClause0Impl;->getClauseObject()Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectClause0Impl;->getOnCancellationConstructor()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectClause0Impl;->getOnCancellationConstructor()Lkotlin/jvm/functions/Function3;\nHSPLkotlinx/coroutines/selects/SelectClause0Impl;->getProcessResFunc()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectClause0Impl;->getProcessResFunc()Lkotlin/jvm/functions/Function3;\nHSPLkotlinx/coroutines/selects/SelectClause0Impl;->getRegFunc()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectClause0Impl;->getRegFunc()Lkotlin/jvm/functions/Function3;\nLkotlinx/coroutines/selects/SelectClause1;\nLkotlinx/coroutines/selects/SelectClause1Impl;\nHSPLkotlinx/coroutines/selects/SelectClause1Impl;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;)V\nHPLkotlinx/coroutines/selects/SelectClause1Impl;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;)V\nHSPLkotlinx/coroutines/selects/SelectClause1Impl;->getClauseObject()Ljava/lang/Object;\nPLkotlinx/coroutines/selects/SelectClause1Impl;->getClauseObject()Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectClause1Impl;->getOnCancellationConstructor()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectClause1Impl;->getOnCancellationConstructor()Lkotlin/jvm/functions/Function3;\nHSPLkotlinx/coroutines/selects/SelectClause1Impl;->getProcessResFunc()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectClause1Impl;->getProcessResFunc()Lkotlin/jvm/functions/Function3;\nHSPLkotlinx/coroutines/selects/SelectClause1Impl;->getRegFunc()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectClause1Impl;->getRegFunc()Lkotlin/jvm/functions/Function3;\nLkotlinx/coroutines/selects/SelectImplementation;\nHSPLkotlinx/coroutines/selects/SelectImplementation;-><clinit>()V\nPLkotlinx/coroutines/selects/SelectImplementation;-><clinit>()V\nHSPLkotlinx/coroutines/selects/SelectImplementation;-><init>(Lkotlin/coroutines/CoroutineContext;)V\nHPLkotlinx/coroutines/selects/SelectImplementation;-><init>(Lkotlin/coroutines/CoroutineContext;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->access$doSelectSuspend(Lkotlinx/coroutines/selects/SelectImplementation;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLkotlinx/coroutines/selects/SelectImplementation;->access$doSelectSuspend(Lkotlinx/coroutines/selects/SelectImplementation;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation;->access$getInternalResult$p(Lkotlinx/coroutines/selects/SelectImplementation;)Ljava/lang/Object;\nPLkotlinx/coroutines/selects/SelectImplementation;->access$getInternalResult$p(Lkotlinx/coroutines/selects/SelectImplementation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation;->complete(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/selects/SelectImplementation;->complete(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation;->disposeOnCompletion(Lkotlinx/coroutines/DisposableHandle;)V\nPLkotlinx/coroutines/selects/SelectImplementation;->disposeOnCompletion(Lkotlinx/coroutines/DisposableHandle;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->doSelect(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/selects/SelectImplementation;->doSelect(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation;->doSelectSuspend(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/selects/SelectImplementation;->doSelectSuspend(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation;->findClause(Ljava/lang/Object;)Lkotlinx/coroutines/selects/SelectImplementation$ClauseData;\nHPLkotlinx/coroutines/selects/SelectImplementation;->findClause(Ljava/lang/Object;)Lkotlinx/coroutines/selects/SelectImplementation$ClauseData;\nHSPLkotlinx/coroutines/selects/SelectImplementation;->getContext()Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/selects/SelectImplementation;->getContext()Lkotlin/coroutines/CoroutineContext;\nPLkotlinx/coroutines/selects/SelectImplementation;->invoke(Ljava/lang/Throwable;)V\nHPLkotlinx/coroutines/selects/SelectImplementation;->invoke(Ljava/lang/Throwable;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->invoke(Lkotlinx/coroutines/selects/SelectClause0;Lkotlin/jvm/functions/Function1;)V\nPLkotlinx/coroutines/selects/SelectImplementation;->invoke(Lkotlinx/coroutines/selects/SelectClause0;Lkotlin/jvm/functions/Function1;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->invoke(Lkotlinx/coroutines/selects/SelectClause1;Lkotlin/jvm/functions/Function2;)V\nPLkotlinx/coroutines/selects/SelectImplementation;->invoke(Lkotlinx/coroutines/selects/SelectClause1;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nHPLkotlinx/coroutines/selects/SelectImplementation;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->register$default(Lkotlinx/coroutines/selects/SelectImplementation;Lkotlinx/coroutines/selects/SelectImplementation$ClauseData;ZILjava/lang/Object;)V\nHPLkotlinx/coroutines/selects/SelectImplementation;->register$default(Lkotlinx/coroutines/selects/SelectImplementation;Lkotlinx/coroutines/selects/SelectImplementation$ClauseData;ZILjava/lang/Object;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->register(Lkotlinx/coroutines/selects/SelectImplementation$ClauseData;Z)V\nHPLkotlinx/coroutines/selects/SelectImplementation;->register(Lkotlinx/coroutines/selects/SelectImplementation$ClauseData;Z)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->selectInRegistrationPhase(Ljava/lang/Object;)V\nPLkotlinx/coroutines/selects/SelectImplementation;->selectInRegistrationPhase(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation;->trySelect(Ljava/lang/Object;Ljava/lang/Object;)Z\nPLkotlinx/coroutines/selects/SelectImplementation;->trySelect(Ljava/lang/Object;Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/selects/SelectImplementation;->trySelectInternal(Ljava/lang/Object;Ljava/lang/Object;)I\nHPLkotlinx/coroutines/selects/SelectImplementation;->trySelectInternal(Ljava/lang/Object;Ljava/lang/Object;)I\nHSPLkotlinx/coroutines/selects/SelectImplementation;->waitUntilSelected(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/selects/SelectImplementation;->waitUntilSelected(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLkotlinx/coroutines/selects/SelectImplementation$ClauseData;\nHSPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;-><init>(Lkotlinx/coroutines/selects/SelectImplementation;Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function3;)V\nHPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;-><init>(Lkotlinx/coroutines/selects/SelectImplementation;Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function3;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->createOnCancellationAction(Lkotlinx/coroutines/selects/SelectInstance;Ljava/lang/Object;)Lkotlin/jvm/functions/Function1;\nPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->createOnCancellationAction(Lkotlinx/coroutines/selects/SelectInstance;Ljava/lang/Object;)Lkotlin/jvm/functions/Function1;\nHSPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->dispose()V\nHPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->dispose()V\nHSPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->invokeBlock(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->invokeBlock(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->processResult(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->processResult(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->tryRegisterAsWaiter(Lkotlinx/coroutines/selects/SelectImplementation;)Z\nPLkotlinx/coroutines/selects/SelectImplementation$ClauseData;->tryRegisterAsWaiter(Lkotlinx/coroutines/selects/SelectImplementation;)Z\nLkotlinx/coroutines/selects/SelectImplementation$doSelectSuspend$1;\nHSPLkotlinx/coroutines/selects/SelectImplementation$doSelectSuspend$1;-><init>(Lkotlinx/coroutines/selects/SelectImplementation;Lkotlin/coroutines/Continuation;)V\nHPLkotlinx/coroutines/selects/SelectImplementation$doSelectSuspend$1;-><init>(Lkotlinx/coroutines/selects/SelectImplementation;Lkotlin/coroutines/Continuation;)V\nHSPLkotlinx/coroutines/selects/SelectImplementation$doSelectSuspend$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/coroutines/selects/SelectImplementation$doSelectSuspend$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/selects/SelectInstance;\nLkotlinx/coroutines/selects/SelectInstanceInternal;\nLkotlinx/coroutines/selects/SelectKt;\nHSPLkotlinx/coroutines/selects/SelectKt;-><clinit>()V\nPLkotlinx/coroutines/selects/SelectKt;-><clinit>()V\nHSPLkotlinx/coroutines/selects/SelectKt;->access$getDUMMY_PROCESS_RESULT_FUNCTION$p()Lkotlin/jvm/functions/Function3;\nPLkotlinx/coroutines/selects/SelectKt;->access$getDUMMY_PROCESS_RESULT_FUNCTION$p()Lkotlin/jvm/functions/Function3;\nHSPLkotlinx/coroutines/selects/SelectKt;->access$getNO_RESULT$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/selects/SelectKt;->access$getNO_RESULT$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/selects/SelectKt;->access$getSTATE_CANCELLED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/selects/SelectKt;->access$getSTATE_COMPLETED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/selects/SelectKt;->access$getSTATE_COMPLETED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/selects/SelectKt;->access$getSTATE_REG$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/selects/SelectKt;->access$getSTATE_REG$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/selects/SelectKt;->access$tryResume(Lkotlinx/coroutines/CancellableContinuation;Lkotlin/jvm/functions/Function1;)Z\nHPLkotlinx/coroutines/selects/SelectKt;->access$tryResume(Lkotlinx/coroutines/CancellableContinuation;Lkotlin/jvm/functions/Function1;)Z\nHSPLkotlinx/coroutines/selects/SelectKt;->getPARAM_CLAUSE_0()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/selects/SelectKt;->getPARAM_CLAUSE_0()Lkotlinx/coroutines/internal/Symbol;\nLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;\nHSPLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;-><clinit>()V\nPLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;-><clinit>()V\nHSPLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;-><init>()V\nPLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;-><init>()V\nHSPLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/selects/SelectKt$DUMMY_PROCESS_RESULT_FUNCTION$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLkotlinx/coroutines/sync/Mutex;\nLkotlinx/coroutines/sync/Mutex$DefaultImpls;\nHSPLkotlinx/coroutines/sync/Mutex$DefaultImpls;->lock$default(Lkotlinx/coroutines/sync/Mutex;Ljava/lang/Object;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/coroutines/sync/Mutex$DefaultImpls;->lock$default(Lkotlinx/coroutines/sync/Mutex;Ljava/lang/Object;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/sync/Mutex$DefaultImpls;->unlock$default(Lkotlinx/coroutines/sync/Mutex;Ljava/lang/Object;ILjava/lang/Object;)V\nPLkotlinx/coroutines/sync/Mutex$DefaultImpls;->unlock$default(Lkotlinx/coroutines/sync/Mutex;Ljava/lang/Object;ILjava/lang/Object;)V\nLkotlinx/coroutines/sync/MutexImpl;\nHSPLkotlinx/coroutines/sync/MutexImpl;-><clinit>()V\nPLkotlinx/coroutines/sync/MutexImpl;-><clinit>()V\nHSPLkotlinx/coroutines/sync/MutexImpl;-><init>(Z)V\nHPLkotlinx/coroutines/sync/MutexImpl;-><init>(Z)V\nHSPLkotlinx/coroutines/sync/MutexImpl;->access$getOwner$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nPLkotlinx/coroutines/sync/MutexImpl;->access$getOwner$FU$p()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;\nHSPLkotlinx/coroutines/sync/MutexImpl;->isLocked()Z\nPLkotlinx/coroutines/sync/MutexImpl;->isLocked()Z\nHSPLkotlinx/coroutines/sync/MutexImpl;->lock(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/sync/MutexImpl;->lock(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/sync/MutexImpl;->lockSuspend(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLkotlinx/coroutines/sync/MutexImpl;->lockSuspend(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/sync/MutexImpl;->tryLock(Ljava/lang/Object;)Z\nHPLkotlinx/coroutines/sync/MutexImpl;->tryLock(Ljava/lang/Object;)Z\nHSPLkotlinx/coroutines/sync/MutexImpl;->unlock(Ljava/lang/Object;)V\nHPLkotlinx/coroutines/sync/MutexImpl;->unlock(Ljava/lang/Object;)V\nLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;\nHSPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;-><init>(Lkotlinx/coroutines/sync/MutexImpl;Lkotlinx/coroutines/CancellableContinuationImpl;Ljava/lang/Object;)V\nHPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;-><init>(Lkotlinx/coroutines/sync/MutexImpl;Lkotlinx/coroutines/CancellableContinuationImpl;Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->completeResume(Ljava/lang/Object;)V\nPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->completeResume(Ljava/lang/Object;)V\nHSPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->invokeOnCancellation(Lkotlinx/coroutines/internal/Segment;I)V\nHSPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nHSPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->tryResume(Lkotlin/Unit;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;->tryResume(Lkotlin/Unit;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;\nLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner$tryResume$token$1;\nHSPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner$tryResume$token$1;-><init>(Lkotlinx/coroutines/sync/MutexImpl;Lkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;)V\nPLkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner$tryResume$token$1;-><init>(Lkotlinx/coroutines/sync/MutexImpl;Lkotlinx/coroutines/sync/MutexImpl$CancellableContinuationWithOwner;)V\nLkotlinx/coroutines/sync/MutexImpl$onSelectCancellationUnlockConstructor$1;\nHSPLkotlinx/coroutines/sync/MutexImpl$onSelectCancellationUnlockConstructor$1;-><init>(Lkotlinx/coroutines/sync/MutexImpl;)V\nHPLkotlinx/coroutines/sync/MutexImpl$onSelectCancellationUnlockConstructor$1;-><init>(Lkotlinx/coroutines/sync/MutexImpl;)V\nLkotlinx/coroutines/sync/MutexKt;\nHSPLkotlinx/coroutines/sync/MutexKt;-><clinit>()V\nPLkotlinx/coroutines/sync/MutexKt;-><clinit>()V\nHSPLkotlinx/coroutines/sync/MutexKt;->Mutex$default(ZILjava/lang/Object;)Lkotlinx/coroutines/sync/Mutex;\nPLkotlinx/coroutines/sync/MutexKt;->Mutex$default(ZILjava/lang/Object;)Lkotlinx/coroutines/sync/Mutex;\nHSPLkotlinx/coroutines/sync/MutexKt;->access$getNO_OWNER$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/sync/MutexKt;->access$getNO_OWNER$p()Lkotlinx/coroutines/internal/Symbol;\nLkotlinx/coroutines/sync/Semaphore;\nLkotlinx/coroutines/sync/SemaphoreImpl;\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;-><clinit>()V\nPLkotlinx/coroutines/sync/SemaphoreImpl;-><clinit>()V\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;-><init>(II)V\nHPLkotlinx/coroutines/sync/SemaphoreImpl;-><init>(II)V\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;->acquire(Lkotlinx/coroutines/CancellableContinuation;)V\nHPLkotlinx/coroutines/sync/SemaphoreImpl;->acquire(Lkotlinx/coroutines/CancellableContinuation;)V\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;->addAcquireToQueue(Lkotlinx/coroutines/Waiter;)Z\nHPLkotlinx/coroutines/sync/SemaphoreImpl;->addAcquireToQueue(Lkotlinx/coroutines/Waiter;)Z\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;->getAvailablePermits()I\nHPLkotlinx/coroutines/sync/SemaphoreImpl;->getAvailablePermits()I\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;->release()V\nHPLkotlinx/coroutines/sync/SemaphoreImpl;->release()V\nHSPLkotlinx/coroutines/sync/SemaphoreImpl;->tryAcquire()Z\nHPLkotlinx/coroutines/sync/SemaphoreImpl;->tryAcquire()Z\nLkotlinx/coroutines/sync/SemaphoreImpl$addAcquireToQueue$createNewSegment$1;\nHSPLkotlinx/coroutines/sync/SemaphoreImpl$addAcquireToQueue$createNewSegment$1;-><clinit>()V\nPLkotlinx/coroutines/sync/SemaphoreImpl$addAcquireToQueue$createNewSegment$1;-><clinit>()V\nHSPLkotlinx/coroutines/sync/SemaphoreImpl$addAcquireToQueue$createNewSegment$1;-><init>()V\nPLkotlinx/coroutines/sync/SemaphoreImpl$addAcquireToQueue$createNewSegment$1;-><init>()V\nLkotlinx/coroutines/sync/SemaphoreImpl$onCancellationRelease$1;\nHSPLkotlinx/coroutines/sync/SemaphoreImpl$onCancellationRelease$1;-><init>(Lkotlinx/coroutines/sync/SemaphoreImpl;)V\nHPLkotlinx/coroutines/sync/SemaphoreImpl$onCancellationRelease$1;-><init>(Lkotlinx/coroutines/sync/SemaphoreImpl;)V\nLkotlinx/coroutines/sync/SemaphoreImpl$tryResumeNextFromQueue$createNewSegment$1;\nHSPLkotlinx/coroutines/sync/SemaphoreImpl$tryResumeNextFromQueue$createNewSegment$1;-><clinit>()V\nPLkotlinx/coroutines/sync/SemaphoreImpl$tryResumeNextFromQueue$createNewSegment$1;-><clinit>()V\nHSPLkotlinx/coroutines/sync/SemaphoreImpl$tryResumeNextFromQueue$createNewSegment$1;-><init>()V\nPLkotlinx/coroutines/sync/SemaphoreImpl$tryResumeNextFromQueue$createNewSegment$1;-><init>()V\nLkotlinx/coroutines/sync/SemaphoreKt;\nHSPLkotlinx/coroutines/sync/SemaphoreKt;-><clinit>()V\nPLkotlinx/coroutines/sync/SemaphoreKt;-><clinit>()V\nHSPLkotlinx/coroutines/sync/SemaphoreKt;->access$getCANCELLED$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/sync/SemaphoreKt;->access$getCANCELLED$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/sync/SemaphoreKt;->access$getPERMIT$p()Lkotlinx/coroutines/internal/Symbol;\nPLkotlinx/coroutines/sync/SemaphoreKt;->access$getPERMIT$p()Lkotlinx/coroutines/internal/Symbol;\nHSPLkotlinx/coroutines/sync/SemaphoreKt;->access$getSEGMENT_SIZE$p()I\nPLkotlinx/coroutines/sync/SemaphoreKt;->access$getSEGMENT_SIZE$p()I\nLkotlinx/coroutines/sync/SemaphoreSegment;\nHSPLkotlinx/coroutines/sync/SemaphoreSegment;-><init>(JLkotlinx/coroutines/sync/SemaphoreSegment;I)V\nHPLkotlinx/coroutines/sync/SemaphoreSegment;-><init>(JLkotlinx/coroutines/sync/SemaphoreSegment;I)V\nHSPLkotlinx/coroutines/sync/SemaphoreSegment;->getAcquirers()Ljava/util/concurrent/atomic/AtomicReferenceArray;\nPLkotlinx/coroutines/sync/SemaphoreSegment;->getAcquirers()Ljava/util/concurrent/atomic/AtomicReferenceArray;\nHSPLkotlinx/coroutines/sync/SemaphoreSegment;->getNumberOfSlots()I\nPLkotlinx/coroutines/sync/SemaphoreSegment;->getNumberOfSlots()I\nLkotlinx/serialization/DeserializationStrategy;\nLkotlinx/serialization/KSerializer;\nLkotlinx/serialization/MissingFieldException;\nLkotlinx/serialization/SerialFormat;\nLkotlinx/serialization/SerializationException;\nLkotlinx/serialization/SerializationStrategy;\nLkotlinx/serialization/StringFormat;\nLkotlinx/serialization/UnknownFieldException;\nLkotlinx/serialization/builtins/BuiltinSerializersKt;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->BooleanArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->BooleanArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ByteArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ByteArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->CharArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->CharArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->DoubleArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->DoubleArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->FloatArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->FloatArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->IntArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->IntArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ListSerializer(Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ListSerializer(Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->LongArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->LongArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->MapSerializer(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->MapSerializer(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->NothingSerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->NothingSerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ShortArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ShortArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->UByteArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->UByteArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->UIntArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->UIntArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ULongArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->ULongArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->UShortArraySerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->UShortArraySerializer()Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/UByte$Companion;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/UByte$Companion;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/UInt$Companion;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/UInt$Companion;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/ULong$Companion;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/ULong$Companion;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/UShort$Companion;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/UShort$Companion;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/Unit;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/Unit;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/BooleanCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/BooleanCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/ByteCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/ByteCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/CharCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/CharCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/DoubleCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/DoubleCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/FloatCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/FloatCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/IntCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/IntCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/LongCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/LongCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/ShortCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/ShortCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/StringCompanionObject;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/jvm/internal/StringCompanionObject;)Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/time/Duration$Companion;)Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/builtins/BuiltinSerializersKt;->serializer(Lkotlin/time/Duration$Companion;)Lkotlinx/serialization/KSerializer;\nLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;-><init>(Ljava/lang/String;)V\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;-><init>(Ljava/lang/String;)V\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->element$default(Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Ljava/util/List;ZILjava/lang/Object;)V\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->element$default(Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Ljava/util/List;ZILjava/lang/Object;)V\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->element(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Ljava/util/List;Z)V\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->element(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Ljava/util/List;Z)V\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getAnnotations()Ljava/util/List;\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getAnnotations()Ljava/util/List;\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementAnnotations$kotlinx_serialization_core()Ljava/util/List;\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementAnnotations$kotlinx_serialization_core()Ljava/util/List;\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementDescriptors$kotlinx_serialization_core()Ljava/util/List;\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementDescriptors$kotlinx_serialization_core()Ljava/util/List;\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementNames$kotlinx_serialization_core()Ljava/util/List;\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementNames$kotlinx_serialization_core()Ljava/util/List;\nHSPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementOptionality$kotlinx_serialization_core()Ljava/util/List;\nPLkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;->getElementOptionality$kotlinx_serialization_core()Ljava/util/List;\nLkotlinx/serialization/descriptors/PolymorphicKind;\nHSPLkotlinx/serialization/descriptors/PolymorphicKind;-><init>()V\nPLkotlinx/serialization/descriptors/PolymorphicKind;-><init>()V\nHSPLkotlinx/serialization/descriptors/PolymorphicKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/descriptors/PolymorphicKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/descriptors/PolymorphicKind$SEALED;\nHSPLkotlinx/serialization/descriptors/PolymorphicKind$SEALED;-><clinit>()V\nPLkotlinx/serialization/descriptors/PolymorphicKind$SEALED;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PolymorphicKind$SEALED;-><init>()V\nPLkotlinx/serialization/descriptors/PolymorphicKind$SEALED;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind;-><init>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/descriptors/PrimitiveKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/descriptors/PrimitiveKind$BOOLEAN;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$BOOLEAN;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$BOOLEAN;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$BOOLEAN;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$BOOLEAN;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$BYTE;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$BYTE;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$BYTE;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$BYTE;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$BYTE;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$CHAR;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$CHAR;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$CHAR;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$CHAR;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$CHAR;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$DOUBLE;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$DOUBLE;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$DOUBLE;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$DOUBLE;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$DOUBLE;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$FLOAT;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$FLOAT;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$FLOAT;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$FLOAT;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$FLOAT;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$INT;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$INT;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$INT;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$INT;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$INT;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$LONG;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$LONG;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$LONG;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$LONG;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$LONG;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$SHORT;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$SHORT;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$SHORT;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$SHORT;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$SHORT;-><init>()V\nLkotlinx/serialization/descriptors/PrimitiveKind$STRING;\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$STRING;-><clinit>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$STRING;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/PrimitiveKind$STRING;-><init>()V\nPLkotlinx/serialization/descriptors/PrimitiveKind$STRING;-><init>()V\nLkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/descriptors/SerialDescriptor$DefaultImpls;\nHSPLkotlinx/serialization/descriptors/SerialDescriptor$DefaultImpls;->isNullable(Lkotlinx/serialization/descriptors/SerialDescriptor;)Z\nPLkotlinx/serialization/descriptors/SerialDescriptor$DefaultImpls;->isNullable(Lkotlinx/serialization/descriptors/SerialDescriptor;)Z\nLkotlinx/serialization/descriptors/SerialDescriptorImpl;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorImpl;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialKind;ILjava/util/List;Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;)V\nPLkotlinx/serialization/descriptors/SerialDescriptorImpl;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialKind;ILjava/util/List;Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;)V\nLkotlinx/serialization/descriptors/SerialDescriptorImpl$_hashCode$2;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorImpl$_hashCode$2;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptorImpl;)V\nPLkotlinx/serialization/descriptors/SerialDescriptorImpl$_hashCode$2;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptorImpl;)V\nLkotlinx/serialization/descriptors/SerialDescriptorKt;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt;->getElementDescriptors(Lkotlinx/serialization/descriptors/SerialDescriptor;)Ljava/lang/Iterable;\nPLkotlinx/serialization/descriptors/SerialDescriptorKt;->getElementDescriptors(Lkotlinx/serialization/descriptors/SerialDescriptor;)Ljava/lang/Iterable;\nLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;->hasNext()Z\nPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;->hasNext()Z\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;->next()Ljava/lang/Object;\nPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;->next()Ljava/lang/Object;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;->next()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/descriptors/SerialDescriptorKt$elementDescriptors$1$1;->next()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/descriptors/SerialDescriptorKt$special$$inlined$Iterable$1;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt$special$$inlined$Iterable$1;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/descriptors/SerialDescriptorKt$special$$inlined$Iterable$1;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/descriptors/SerialDescriptorKt$special$$inlined$Iterable$1;->iterator()Ljava/util/Iterator;\nPLkotlinx/serialization/descriptors/SerialDescriptorKt$special$$inlined$Iterable$1;->iterator()Ljava/util/Iterator;\nLkotlinx/serialization/descriptors/SerialDescriptorsKt;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorsKt;->PrimitiveSerialDescriptor(Ljava/lang/String;Lkotlinx/serialization/descriptors/PrimitiveKind;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/descriptors/SerialDescriptorsKt;->PrimitiveSerialDescriptor(Ljava/lang/String;Lkotlinx/serialization/descriptors/PrimitiveKind;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorsKt;->buildClassSerialDescriptor(Ljava/lang/String;[Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/functions/Function1;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/descriptors/SerialDescriptorsKt;->buildClassSerialDescriptor(Ljava/lang/String;[Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/functions/Function1;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLkotlinx/serialization/descriptors/SerialDescriptorsKt;->buildSerialDescriptor(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialKind;[Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/functions/Function1;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/descriptors/SerialDescriptorsKt;->buildSerialDescriptor(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialKind;[Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/functions/Function1;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/descriptors/SerialKind;\nHSPLkotlinx/serialization/descriptors/SerialKind;-><init>()V\nPLkotlinx/serialization/descriptors/SerialKind;-><init>()V\nHSPLkotlinx/serialization/descriptors/SerialKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/descriptors/SerialKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/descriptors/SerialKind;->hashCode()I\nPLkotlinx/serialization/descriptors/SerialKind;->hashCode()I\nHSPLkotlinx/serialization/descriptors/SerialKind;->toString()Ljava/lang/String;\nPLkotlinx/serialization/descriptors/SerialKind;->toString()Ljava/lang/String;\nLkotlinx/serialization/descriptors/SerialKind$CONTEXTUAL;\nHSPLkotlinx/serialization/descriptors/SerialKind$CONTEXTUAL;-><clinit>()V\nPLkotlinx/serialization/descriptors/SerialKind$CONTEXTUAL;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/SerialKind$CONTEXTUAL;-><init>()V\nPLkotlinx/serialization/descriptors/SerialKind$CONTEXTUAL;-><init>()V\nLkotlinx/serialization/descriptors/SerialKind$ENUM;\nLkotlinx/serialization/descriptors/StructureKind;\nHSPLkotlinx/serialization/descriptors/StructureKind;-><init>()V\nPLkotlinx/serialization/descriptors/StructureKind;-><init>()V\nHSPLkotlinx/serialization/descriptors/StructureKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/descriptors/StructureKind;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/descriptors/StructureKind$CLASS;\nHSPLkotlinx/serialization/descriptors/StructureKind$CLASS;-><clinit>()V\nPLkotlinx/serialization/descriptors/StructureKind$CLASS;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/StructureKind$CLASS;-><init>()V\nPLkotlinx/serialization/descriptors/StructureKind$CLASS;-><init>()V\nLkotlinx/serialization/descriptors/StructureKind$LIST;\nHSPLkotlinx/serialization/descriptors/StructureKind$LIST;-><clinit>()V\nPLkotlinx/serialization/descriptors/StructureKind$LIST;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/StructureKind$LIST;-><init>()V\nPLkotlinx/serialization/descriptors/StructureKind$LIST;-><init>()V\nLkotlinx/serialization/descriptors/StructureKind$MAP;\nHSPLkotlinx/serialization/descriptors/StructureKind$MAP;-><clinit>()V\nPLkotlinx/serialization/descriptors/StructureKind$MAP;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/StructureKind$MAP;-><init>()V\nPLkotlinx/serialization/descriptors/StructureKind$MAP;-><init>()V\nLkotlinx/serialization/descriptors/StructureKind$OBJECT;\nHSPLkotlinx/serialization/descriptors/StructureKind$OBJECT;-><clinit>()V\nPLkotlinx/serialization/descriptors/StructureKind$OBJECT;-><clinit>()V\nHSPLkotlinx/serialization/descriptors/StructureKind$OBJECT;-><init>()V\nPLkotlinx/serialization/descriptors/StructureKind$OBJECT;-><init>()V\nLkotlinx/serialization/encoding/AbstractDecoder;\nHSPLkotlinx/serialization/encoding/AbstractDecoder;-><init>()V\nPLkotlinx/serialization/encoding/AbstractDecoder;-><init>()V\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeIntElement(Lkotlinx/serialization/descriptors/SerialDescriptor;I)I\nHPLkotlinx/serialization/encoding/AbstractDecoder;->decodeIntElement(Lkotlinx/serialization/descriptors/SerialDescriptor;I)I\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeLongElement(Lkotlinx/serialization/descriptors/SerialDescriptor;I)J\nHPLkotlinx/serialization/encoding/AbstractDecoder;->decodeLongElement(Lkotlinx/serialization/descriptors/SerialDescriptor;I)J\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeNullableSerializableElement(Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/serialization/encoding/AbstractDecoder;->decodeNullableSerializableElement(Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeSequentially()Z\nPLkotlinx/serialization/encoding/AbstractDecoder;->decodeSequentially()Z\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeSerializableElement(Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/serialization/encoding/AbstractDecoder;->decodeSerializableElement(Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeSerializableValue(Lkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/serialization/encoding/AbstractDecoder;->decodeSerializableValue(Lkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/serialization/encoding/AbstractDecoder;->decodeStringElement(Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;\nHPLkotlinx/serialization/encoding/AbstractDecoder;->decodeStringElement(Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;\nLkotlinx/serialization/encoding/ChunkedDecoder;\nLkotlinx/serialization/encoding/CompositeDecoder;\nLkotlinx/serialization/encoding/CompositeDecoder$DefaultImpls;\nHSPLkotlinx/serialization/encoding/CompositeDecoder$DefaultImpls;->decodeSequentially(Lkotlinx/serialization/encoding/CompositeDecoder;)Z\nPLkotlinx/serialization/encoding/CompositeDecoder$DefaultImpls;->decodeSequentially(Lkotlinx/serialization/encoding/CompositeDecoder;)Z\nHSPLkotlinx/serialization/encoding/CompositeDecoder$DefaultImpls;->decodeSerializableElement$default(Lkotlinx/serialization/encoding/CompositeDecoder;Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/serialization/encoding/CompositeDecoder$DefaultImpls;->decodeSerializableElement$default(Lkotlinx/serialization/encoding/CompositeDecoder;Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;\nLkotlinx/serialization/encoding/Decoder;\nLkotlinx/serialization/internal/AbstractCollectionSerializer;\nHSPLkotlinx/serialization/internal/AbstractCollectionSerializer;-><init>()V\nPLkotlinx/serialization/internal/AbstractCollectionSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/AbstractCollectionSerializer;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/internal/AbstractCollectionSerializer;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/internal/AbstractCollectionSerializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;\nHPLkotlinx/serialization/internal/AbstractCollectionSerializer;->deserialize(Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;\nHSPLkotlinx/serialization/internal/AbstractCollectionSerializer;->merge(Lkotlinx/serialization/encoding/Decoder;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/serialization/internal/AbstractCollectionSerializer;->merge(Lkotlinx/serialization/encoding/Decoder;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/serialization/internal/AbstractCollectionSerializer;->readElement$default(Lkotlinx/serialization/internal/AbstractCollectionSerializer;Lkotlinx/serialization/encoding/CompositeDecoder;ILjava/lang/Object;ZILjava/lang/Object;)V\nHPLkotlinx/serialization/internal/AbstractCollectionSerializer;->readElement$default(Lkotlinx/serialization/internal/AbstractCollectionSerializer;Lkotlinx/serialization/encoding/CompositeDecoder;ILjava/lang/Object;ZILjava/lang/Object;)V\nLkotlinx/serialization/internal/AbstractPolymorphicSerializer;\nLkotlinx/serialization/internal/ArrayListClassDesc;\nHSPLkotlinx/serialization/internal/ArrayListClassDesc;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/internal/ArrayListClassDesc;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nLkotlinx/serialization/internal/ArrayListSerializer;\nHSPLkotlinx/serialization/internal/ArrayListSerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/ArrayListSerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->builder()Ljava/lang/Object;\nPLkotlinx/serialization/internal/ArrayListSerializer;->builder()Ljava/lang/Object;\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->builder()Ljava/util/ArrayList;\nPLkotlinx/serialization/internal/ArrayListSerializer;->builder()Ljava/util/ArrayList;\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->builderSize(Ljava/lang/Object;)I\nPLkotlinx/serialization/internal/ArrayListSerializer;->builderSize(Ljava/lang/Object;)I\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->builderSize(Ljava/util/ArrayList;)I\nHPLkotlinx/serialization/internal/ArrayListSerializer;->builderSize(Ljava/util/ArrayList;)I\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nHPLkotlinx/serialization/internal/ArrayListSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->insert(Ljava/lang/Object;ILjava/lang/Object;)V\nHPLkotlinx/serialization/internal/ArrayListSerializer;->insert(Ljava/lang/Object;ILjava/lang/Object;)V\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->insert(Ljava/util/ArrayList;ILjava/lang/Object;)V\nHPLkotlinx/serialization/internal/ArrayListSerializer;->insert(Ljava/util/ArrayList;ILjava/lang/Object;)V\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->toResult(Ljava/lang/Object;)Ljava/lang/Object;\nPLkotlinx/serialization/internal/ArrayListSerializer;->toResult(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/serialization/internal/ArrayListSerializer;->toResult(Ljava/util/ArrayList;)Ljava/util/List;\nPLkotlinx/serialization/internal/ArrayListSerializer;->toResult(Ljava/util/ArrayList;)Ljava/util/List;\nLkotlinx/serialization/internal/BooleanArraySerializer;\nHSPLkotlinx/serialization/internal/BooleanArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/BooleanArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/BooleanArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/BooleanArraySerializer;-><init>()V\nLkotlinx/serialization/internal/BooleanSerializer;\nHSPLkotlinx/serialization/internal/BooleanSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/BooleanSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/BooleanSerializer;-><init>()V\nPLkotlinx/serialization/internal/BooleanSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/BooleanSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/BooleanSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/ByteArraySerializer;\nHSPLkotlinx/serialization/internal/ByteArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/ByteArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/ByteArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/ByteArraySerializer;-><init>()V\nLkotlinx/serialization/internal/ByteSerializer;\nHSPLkotlinx/serialization/internal/ByteSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/ByteSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/ByteSerializer;-><init>()V\nPLkotlinx/serialization/internal/ByteSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/ByteSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/ByteSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/CachedNames;\nLkotlinx/serialization/internal/CharArraySerializer;\nHSPLkotlinx/serialization/internal/CharArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/CharArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/CharArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/CharArraySerializer;-><init>()V\nLkotlinx/serialization/internal/CharSerializer;\nHSPLkotlinx/serialization/internal/CharSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/CharSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/CharSerializer;-><init>()V\nPLkotlinx/serialization/internal/CharSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/CharSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/CharSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/CollectionLikeSerializer;\nHSPLkotlinx/serialization/internal/CollectionLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/CollectionLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nHSPLkotlinx/serialization/internal/CollectionLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/internal/CollectionLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/internal/CollectionLikeSerializer;->readElement(Lkotlinx/serialization/encoding/CompositeDecoder;ILjava/lang/Object;Z)V\nHPLkotlinx/serialization/internal/CollectionLikeSerializer;->readElement(Lkotlinx/serialization/encoding/CompositeDecoder;ILjava/lang/Object;Z)V\nLkotlinx/serialization/internal/CollectionSerializer;\nHSPLkotlinx/serialization/internal/CollectionSerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/CollectionSerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nLkotlinx/serialization/internal/DoubleArraySerializer;\nHSPLkotlinx/serialization/internal/DoubleArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/DoubleArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/DoubleArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/DoubleArraySerializer;-><init>()V\nLkotlinx/serialization/internal/DoubleSerializer;\nHSPLkotlinx/serialization/internal/DoubleSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/DoubleSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/DoubleSerializer;-><init>()V\nPLkotlinx/serialization/internal/DoubleSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/DoubleSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/DoubleSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/DurationSerializer;\nHSPLkotlinx/serialization/internal/DurationSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/DurationSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/DurationSerializer;-><init>()V\nPLkotlinx/serialization/internal/DurationSerializer;-><init>()V\nLkotlinx/serialization/internal/ElementMarker;\nHSPLkotlinx/serialization/internal/ElementMarker;-><clinit>()V\nPLkotlinx/serialization/internal/ElementMarker;-><clinit>()V\nHSPLkotlinx/serialization/internal/ElementMarker;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/functions/Function2;)V\nHPLkotlinx/serialization/internal/ElementMarker;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/functions/Function2;)V\nHSPLkotlinx/serialization/internal/ElementMarker;->mark(I)V\nPLkotlinx/serialization/internal/ElementMarker;->mark(I)V\nHSPLkotlinx/serialization/internal/ElementMarker;->nextUnmarkedIndex()I\nHPLkotlinx/serialization/internal/ElementMarker;->nextUnmarkedIndex()I\nLkotlinx/serialization/internal/ElementMarker$Companion;\nHSPLkotlinx/serialization/internal/ElementMarker$Companion;-><init>()V\nPLkotlinx/serialization/internal/ElementMarker$Companion;-><init>()V\nHSPLkotlinx/serialization/internal/ElementMarker$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/internal/ElementMarker$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/internal/FloatArraySerializer;\nHSPLkotlinx/serialization/internal/FloatArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/FloatArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/FloatArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/FloatArraySerializer;-><init>()V\nLkotlinx/serialization/internal/FloatSerializer;\nHSPLkotlinx/serialization/internal/FloatSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/FloatSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/FloatSerializer;-><init>()V\nPLkotlinx/serialization/internal/FloatSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/FloatSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/FloatSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/GeneratedSerializer;\nLkotlinx/serialization/internal/GeneratedSerializer$DefaultImpls;\nHSPLkotlinx/serialization/internal/GeneratedSerializer$DefaultImpls;->typeParametersSerializers(Lkotlinx/serialization/internal/GeneratedSerializer;)[Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/internal/GeneratedSerializer$DefaultImpls;->typeParametersSerializers(Lkotlinx/serialization/internal/GeneratedSerializer;)[Lkotlinx/serialization/KSerializer;\nLkotlinx/serialization/internal/InlineClassDescriptor;\nHSPLkotlinx/serialization/internal/InlineClassDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;)V\nPLkotlinx/serialization/internal/InlineClassDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;)V\nLkotlinx/serialization/internal/InlineClassDescriptorKt;\nHSPLkotlinx/serialization/internal/InlineClassDescriptorKt;->InlinePrimitiveDescriptor(Ljava/lang/String;Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/InlineClassDescriptorKt;->InlinePrimitiveDescriptor(Ljava/lang/String;Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/InlineClassDescriptorKt$InlinePrimitiveDescriptor$1;\nHSPLkotlinx/serialization/internal/InlineClassDescriptorKt$InlinePrimitiveDescriptor$1;-><init>(Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/InlineClassDescriptorKt$InlinePrimitiveDescriptor$1;-><init>(Lkotlinx/serialization/KSerializer;)V\nLkotlinx/serialization/internal/IntArraySerializer;\nHSPLkotlinx/serialization/internal/IntArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/IntArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/IntArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/IntArraySerializer;-><init>()V\nLkotlinx/serialization/internal/IntSerializer;\nHSPLkotlinx/serialization/internal/IntSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/IntSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/IntSerializer;-><init>()V\nPLkotlinx/serialization/internal/IntSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/IntSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/IntSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/LinkedHashMapClassDesc;\nHSPLkotlinx/serialization/internal/LinkedHashMapClassDesc;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/internal/LinkedHashMapClassDesc;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nLkotlinx/serialization/internal/LinkedHashMapSerializer;\nHSPLkotlinx/serialization/internal/LinkedHashMapSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/LinkedHashMapSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)V\nHSPLkotlinx/serialization/internal/LinkedHashMapSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/LinkedHashMapSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/ListLikeDescriptor;\nHSPLkotlinx/serialization/internal/ListLikeDescriptor;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/internal/ListLikeDescriptor;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/internal/ListLikeDescriptor;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/internal/ListLikeDescriptor;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/internal/ListLikeDescriptor;->getElementsCount()I\nPLkotlinx/serialization/internal/ListLikeDescriptor;->getElementsCount()I\nHSPLkotlinx/serialization/internal/ListLikeDescriptor;->getKind()Lkotlinx/serialization/descriptors/SerialKind;\nPLkotlinx/serialization/internal/ListLikeDescriptor;->getKind()Lkotlinx/serialization/descriptors/SerialKind;\nHSPLkotlinx/serialization/internal/ListLikeDescriptor;->isNullable()Z\nPLkotlinx/serialization/internal/ListLikeDescriptor;->isNullable()Z\nLkotlinx/serialization/internal/LongArraySerializer;\nHSPLkotlinx/serialization/internal/LongArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/LongArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/LongArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/LongArraySerializer;-><init>()V\nLkotlinx/serialization/internal/LongSerializer;\nHSPLkotlinx/serialization/internal/LongSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/LongSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/LongSerializer;-><init>()V\nPLkotlinx/serialization/internal/LongSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/LongSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/LongSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/MapLikeDescriptor;\nHSPLkotlinx/serialization/internal/MapLikeDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/internal/MapLikeDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/internal/MapLikeDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/internal/MapLikeDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/internal/MapLikeSerializer;\nHSPLkotlinx/serialization/internal/MapLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/MapLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)V\nHSPLkotlinx/serialization/internal/MapLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/internal/MapLikeSerializer;-><init>(Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/internal/NothingSerialDescriptor;\nHSPLkotlinx/serialization/internal/NothingSerialDescriptor;-><clinit>()V\nPLkotlinx/serialization/internal/NothingSerialDescriptor;-><clinit>()V\nHSPLkotlinx/serialization/internal/NothingSerialDescriptor;-><init>()V\nPLkotlinx/serialization/internal/NothingSerialDescriptor;-><init>()V\nLkotlinx/serialization/internal/NothingSerializer;\nHSPLkotlinx/serialization/internal/NothingSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/NothingSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/NothingSerializer;-><init>()V\nPLkotlinx/serialization/internal/NothingSerializer;-><init>()V\nLkotlinx/serialization/internal/ObjectSerializer;\nHSPLkotlinx/serialization/internal/ObjectSerializer;-><init>(Ljava/lang/String;Ljava/lang/Object;)V\nPLkotlinx/serialization/internal/ObjectSerializer;-><init>(Ljava/lang/String;Ljava/lang/Object;)V\nLkotlinx/serialization/internal/ObjectSerializer$descriptor$2;\nHSPLkotlinx/serialization/internal/ObjectSerializer$descriptor$2;-><init>(Ljava/lang/String;Lkotlinx/serialization/internal/ObjectSerializer;)V\nPLkotlinx/serialization/internal/ObjectSerializer$descriptor$2;-><init>(Ljava/lang/String;Lkotlinx/serialization/internal/ObjectSerializer;)V\nLkotlinx/serialization/internal/Platform_commonKt;\nHSPLkotlinx/serialization/internal/Platform_commonKt;-><clinit>()V\nPLkotlinx/serialization/internal/Platform_commonKt;-><clinit>()V\nHSPLkotlinx/serialization/internal/Platform_commonKt;->compactArray(Ljava/util/List;)[Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/Platform_commonKt;->compactArray(Ljava/util/List;)[Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/PluginExceptionsKt;\nLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->access$getGeneratedSerializer$p(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)Lkotlinx/serialization/internal/GeneratedSerializer;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->access$getGeneratedSerializer$p(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)Lkotlinx/serialization/internal/GeneratedSerializer;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->addElement(Ljava/lang/String;Z)V\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->addElement(Ljava/lang/String;Z)V\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->buildIndices()Ljava/util/Map;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->buildIndices()Ljava/util/Map;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getChildSerializers()[Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getChildSerializers()[Lkotlinx/serialization/KSerializer;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementAnnotations(I)Ljava/util/List;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementAnnotations(I)Ljava/util/List;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementDescriptor(I)Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementDescriptor(I)Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementIndex(Ljava/lang/String;)I\nHPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementIndex(Ljava/lang/String;)I\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementsCount()I\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getElementsCount()I\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getKind()Lkotlinx/serialization/descriptors/SerialKind;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getKind()Lkotlinx/serialization/descriptors/SerialKind;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getSerialName()Ljava/lang/String;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getSerialName()Ljava/lang/String;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getTypeParameterDescriptors$kotlinx_serialization_core()[Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->getTypeParameterDescriptors$kotlinx_serialization_core()[Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->get_hashCode()I\nHPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->get_hashCode()I\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->hashCode()I\nHPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;->hashCode()I\nLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;-><init>(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)V\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;-><init>(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)V\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;->invoke()Ljava/lang/Integer;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;->invoke()Ljava/lang/Integer;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;->invoke()Ljava/lang/Object;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$_hashCode$2;->invoke()Ljava/lang/Object;\nLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;-><init>(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)V\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;-><init>(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)V\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;->invoke()Ljava/lang/Object;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;->invoke()Ljava/lang/Object;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;->invoke()[Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$childSerializers$2;->invoke()[Lkotlinx/serialization/KSerializer;\nLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;-><init>(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)V\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;-><init>(Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)V\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;->invoke()Ljava/lang/Object;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;->invoke()Ljava/lang/Object;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;->invoke()[Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptor$typeParameterDescriptors$2;->invoke()[Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/PluginGeneratedSerialDescriptorKt;\nHSPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptorKt;->hashCodeImpl(Lkotlinx/serialization/descriptors/SerialDescriptor;[Lkotlinx/serialization/descriptors/SerialDescriptor;)I\nPLkotlinx/serialization/internal/PluginGeneratedSerialDescriptorKt;->hashCodeImpl(Lkotlinx/serialization/descriptors/SerialDescriptor;[Lkotlinx/serialization/descriptors/SerialDescriptor;)I\nLkotlinx/serialization/internal/PluginHelperInterfacesKt;\nHSPLkotlinx/serialization/internal/PluginHelperInterfacesKt;-><clinit>()V\nPLkotlinx/serialization/internal/PluginHelperInterfacesKt;-><clinit>()V\nLkotlinx/serialization/internal/PrimitiveArrayDescriptor;\nHSPLkotlinx/serialization/internal/PrimitiveArrayDescriptor;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nPLkotlinx/serialization/internal/PrimitiveArrayDescriptor;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nLkotlinx/serialization/internal/PrimitiveArraySerializer;\nHSPLkotlinx/serialization/internal/PrimitiveArraySerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/internal/PrimitiveArraySerializer;-><init>(Lkotlinx/serialization/KSerializer;)V\nLkotlinx/serialization/internal/PrimitiveSerialDescriptor;\nHSPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/PrimitiveKind;)V\nPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;-><init>(Ljava/lang/String;Lkotlinx/serialization/descriptors/PrimitiveKind;)V\nHSPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;->getKind()Lkotlinx/serialization/descriptors/PrimitiveKind;\nPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;->getKind()Lkotlinx/serialization/descriptors/PrimitiveKind;\nHSPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;->getKind()Lkotlinx/serialization/descriptors/SerialKind;\nPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;->getKind()Lkotlinx/serialization/descriptors/SerialKind;\nHSPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;->getSerialName()Ljava/lang/String;\nPLkotlinx/serialization/internal/PrimitiveSerialDescriptor;->getSerialName()Ljava/lang/String;\nLkotlinx/serialization/internal/PrimitivesKt;\nHSPLkotlinx/serialization/internal/PrimitivesKt;-><clinit>()V\nPLkotlinx/serialization/internal/PrimitivesKt;-><clinit>()V\nHSPLkotlinx/serialization/internal/PrimitivesKt;->PrimitiveDescriptorSafe(Ljava/lang/String;Lkotlinx/serialization/descriptors/PrimitiveKind;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/PrimitivesKt;->PrimitiveDescriptorSafe(Ljava/lang/String;Lkotlinx/serialization/descriptors/PrimitiveKind;)Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLkotlinx/serialization/internal/PrimitivesKt;->capitalize(Ljava/lang/String;)Ljava/lang/String;\nPLkotlinx/serialization/internal/PrimitivesKt;->capitalize(Ljava/lang/String;)Ljava/lang/String;\nHSPLkotlinx/serialization/internal/PrimitivesKt;->checkName(Ljava/lang/String;)V\nPLkotlinx/serialization/internal/PrimitivesKt;->checkName(Ljava/lang/String;)V\nLkotlinx/serialization/internal/ShortArraySerializer;\nHSPLkotlinx/serialization/internal/ShortArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/ShortArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/ShortArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/ShortArraySerializer;-><init>()V\nLkotlinx/serialization/internal/ShortSerializer;\nHSPLkotlinx/serialization/internal/ShortSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/ShortSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/ShortSerializer;-><init>()V\nPLkotlinx/serialization/internal/ShortSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/ShortSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/ShortSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/StringSerializer;\nHSPLkotlinx/serialization/internal/StringSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/StringSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/StringSerializer;-><init>()V\nPLkotlinx/serialization/internal/StringSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/StringSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/StringSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/UByteArraySerializer;\nHSPLkotlinx/serialization/internal/UByteArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UByteArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UByteArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/UByteArraySerializer;-><init>()V\nLkotlinx/serialization/internal/UByteSerializer;\nHSPLkotlinx/serialization/internal/UByteSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UByteSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UByteSerializer;-><init>()V\nPLkotlinx/serialization/internal/UByteSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/UByteSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/UByteSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/UIntArraySerializer;\nHSPLkotlinx/serialization/internal/UIntArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UIntArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UIntArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/UIntArraySerializer;-><init>()V\nLkotlinx/serialization/internal/UIntSerializer;\nHSPLkotlinx/serialization/internal/UIntSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UIntSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UIntSerializer;-><init>()V\nPLkotlinx/serialization/internal/UIntSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/UIntSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/UIntSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/ULongArraySerializer;\nHSPLkotlinx/serialization/internal/ULongArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/ULongArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/ULongArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/ULongArraySerializer;-><init>()V\nLkotlinx/serialization/internal/ULongSerializer;\nHSPLkotlinx/serialization/internal/ULongSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/ULongSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/ULongSerializer;-><init>()V\nPLkotlinx/serialization/internal/ULongSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/ULongSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/ULongSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/UShortArraySerializer;\nHSPLkotlinx/serialization/internal/UShortArraySerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UShortArraySerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UShortArraySerializer;-><init>()V\nPLkotlinx/serialization/internal/UShortArraySerializer;-><init>()V\nLkotlinx/serialization/internal/UShortSerializer;\nHSPLkotlinx/serialization/internal/UShortSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UShortSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UShortSerializer;-><init>()V\nPLkotlinx/serialization/internal/UShortSerializer;-><init>()V\nHSPLkotlinx/serialization/internal/UShortSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLkotlinx/serialization/internal/UShortSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLkotlinx/serialization/internal/UnitSerializer;\nHSPLkotlinx/serialization/internal/UnitSerializer;-><clinit>()V\nPLkotlinx/serialization/internal/UnitSerializer;-><clinit>()V\nHSPLkotlinx/serialization/internal/UnitSerializer;-><init>()V\nPLkotlinx/serialization/internal/UnitSerializer;-><init>()V\nLkotlinx/serialization/json/Json;\nHSPLkotlinx/serialization/json/Json;-><clinit>()V\nPLkotlinx/serialization/json/Json;-><clinit>()V\nHSPLkotlinx/serialization/json/Json;-><init>(Lkotlinx/serialization/json/JsonConfiguration;Lkotlinx/serialization/modules/SerializersModule;)V\nPLkotlinx/serialization/json/Json;-><init>(Lkotlinx/serialization/json/JsonConfiguration;Lkotlinx/serialization/modules/SerializersModule;)V\nHSPLkotlinx/serialization/json/Json;-><init>(Lkotlinx/serialization/json/JsonConfiguration;Lkotlinx/serialization/modules/SerializersModule;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/json/Json;-><init>(Lkotlinx/serialization/json/JsonConfiguration;Lkotlinx/serialization/modules/SerializersModule;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/json/Json;->getConfiguration()Lkotlinx/serialization/json/JsonConfiguration;\nPLkotlinx/serialization/json/Json;->getConfiguration()Lkotlinx/serialization/json/JsonConfiguration;\nHSPLkotlinx/serialization/json/Json;->getSerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nPLkotlinx/serialization/json/Json;->getSerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nHSPLkotlinx/serialization/json/Json;->get_schemaCache$kotlinx_serialization_json()Lkotlinx/serialization/json/internal/DescriptorSchemaCache;\nPLkotlinx/serialization/json/Json;->get_schemaCache$kotlinx_serialization_json()Lkotlinx/serialization/json/internal/DescriptorSchemaCache;\nLkotlinx/serialization/json/Json$Default;\nHSPLkotlinx/serialization/json/Json$Default;-><init>()V\nPLkotlinx/serialization/json/Json$Default;-><init>()V\nHSPLkotlinx/serialization/json/Json$Default;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/json/Json$Default;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/json/JsonBuilder;\nHSPLkotlinx/serialization/json/JsonBuilder;-><init>(Lkotlinx/serialization/json/Json;)V\nPLkotlinx/serialization/json/JsonBuilder;-><init>(Lkotlinx/serialization/json/Json;)V\nHSPLkotlinx/serialization/json/JsonBuilder;->build$kotlinx_serialization_json()Lkotlinx/serialization/json/JsonConfiguration;\nPLkotlinx/serialization/json/JsonBuilder;->build$kotlinx_serialization_json()Lkotlinx/serialization/json/JsonConfiguration;\nHSPLkotlinx/serialization/json/JsonBuilder;->getSerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nPLkotlinx/serialization/json/JsonBuilder;->getSerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nHSPLkotlinx/serialization/json/JsonBuilder;->setExplicitNulls(Z)V\nPLkotlinx/serialization/json/JsonBuilder;->setExplicitNulls(Z)V\nHSPLkotlinx/serialization/json/JsonBuilder;->setIgnoreUnknownKeys(Z)V\nPLkotlinx/serialization/json/JsonBuilder;->setIgnoreUnknownKeys(Z)V\nLkotlinx/serialization/json/JsonConfiguration;\nHSPLkotlinx/serialization/json/JsonConfiguration;-><init>(ZZZZZZLjava/lang/String;ZZLjava/lang/String;ZZLkotlinx/serialization/json/JsonNamingStrategy;)V\nPLkotlinx/serialization/json/JsonConfiguration;-><init>(ZZZZZZLjava/lang/String;ZZLjava/lang/String;ZZLkotlinx/serialization/json/JsonNamingStrategy;)V\nHSPLkotlinx/serialization/json/JsonConfiguration;-><init>(ZZZZZZLjava/lang/String;ZZLjava/lang/String;ZZLkotlinx/serialization/json/JsonNamingStrategy;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/json/JsonConfiguration;-><init>(ZZZZZZLjava/lang/String;ZZLjava/lang/String;ZZLkotlinx/serialization/json/JsonNamingStrategy;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/json/JsonConfiguration;->getAllowSpecialFloatingPointValues()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getAllowSpecialFloatingPointValues()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getAllowStructuredMapKeys()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getAllowStructuredMapKeys()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getClassDiscriminator()Ljava/lang/String;\nPLkotlinx/serialization/json/JsonConfiguration;->getClassDiscriminator()Ljava/lang/String;\nHSPLkotlinx/serialization/json/JsonConfiguration;->getCoerceInputValues()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getCoerceInputValues()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getEncodeDefaults()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getEncodeDefaults()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getExplicitNulls()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getExplicitNulls()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getIgnoreUnknownKeys()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getIgnoreUnknownKeys()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getNamingStrategy()Lkotlinx/serialization/json/JsonNamingStrategy;\nPLkotlinx/serialization/json/JsonConfiguration;->getNamingStrategy()Lkotlinx/serialization/json/JsonNamingStrategy;\nHSPLkotlinx/serialization/json/JsonConfiguration;->getPrettyPrint()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getPrettyPrint()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getPrettyPrintIndent()Ljava/lang/String;\nPLkotlinx/serialization/json/JsonConfiguration;->getPrettyPrintIndent()Ljava/lang/String;\nHSPLkotlinx/serialization/json/JsonConfiguration;->getUseAlternativeNames()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getUseAlternativeNames()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->getUseArrayPolymorphism()Z\nPLkotlinx/serialization/json/JsonConfiguration;->getUseArrayPolymorphism()Z\nHSPLkotlinx/serialization/json/JsonConfiguration;->isLenient()Z\nHPLkotlinx/serialization/json/JsonConfiguration;->isLenient()Z\nLkotlinx/serialization/json/JsonDecoder;\nLkotlinx/serialization/json/JsonImpl;\nHSPLkotlinx/serialization/json/JsonImpl;-><init>(Lkotlinx/serialization/json/JsonConfiguration;Lkotlinx/serialization/modules/SerializersModule;)V\nPLkotlinx/serialization/json/JsonImpl;-><init>(Lkotlinx/serialization/json/JsonConfiguration;Lkotlinx/serialization/modules/SerializersModule;)V\nHSPLkotlinx/serialization/json/JsonImpl;->validateConfiguration()V\nPLkotlinx/serialization/json/JsonImpl;->validateConfiguration()V\nLkotlinx/serialization/json/JsonKt;\nHSPLkotlinx/serialization/json/JsonKt;->Json$default(Lkotlinx/serialization/json/Json;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/serialization/json/Json;\nPLkotlinx/serialization/json/JsonKt;->Json$default(Lkotlinx/serialization/json/Json;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/serialization/json/Json;\nHSPLkotlinx/serialization/json/JsonKt;->Json(Lkotlinx/serialization/json/Json;Lkotlin/jvm/functions/Function1;)Lkotlinx/serialization/json/Json;\nPLkotlinx/serialization/json/JsonKt;->Json(Lkotlinx/serialization/json/Json;Lkotlin/jvm/functions/Function1;)Lkotlinx/serialization/json/Json;\nLkotlinx/serialization/json/JsonNames;\nLkotlinx/serialization/json/JsonSchemaCacheKt;\nHSPLkotlinx/serialization/json/JsonSchemaCacheKt;->getSchemaCache(Lkotlinx/serialization/json/Json;)Lkotlinx/serialization/json/internal/DescriptorSchemaCache;\nPLkotlinx/serialization/json/JsonSchemaCacheKt;->getSchemaCache(Lkotlinx/serialization/json/Json;)Lkotlinx/serialization/json/internal/DescriptorSchemaCache;\nLkotlinx/serialization/json/internal/AbstractJsonLexer;\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;-><init>()V\nPLkotlinx/serialization/json/internal/AbstractJsonLexer;-><init>()V\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeNextToken(C)V\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeNextToken(C)V\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeNumericLiteral()J\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeNumericLiteral()J\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeString()Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeString()Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeStringLenient()Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->consumeStringLenient()Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->expectEof()V\nPLkotlinx/serialization/json/internal/AbstractJsonLexer;->expectEof()V\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->isValidValueStart(C)Z\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->isValidValueStart(C)Z\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->peekNextToken()B\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->peekNextToken()B\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->skipElement(Z)V\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->skipElement(Z)V\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->skipWhitespaces()I\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->skipWhitespaces()I\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->tryConsumeNull$default(Lkotlinx/serialization/json/internal/AbstractJsonLexer;ZILjava/lang/Object;)Z\nPLkotlinx/serialization/json/internal/AbstractJsonLexer;->tryConsumeNull$default(Lkotlinx/serialization/json/internal/AbstractJsonLexer;ZILjava/lang/Object;)Z\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexer;->tryConsumeNull(Z)Z\nHPLkotlinx/serialization/json/internal/AbstractJsonLexer;->tryConsumeNull(Z)Z\nLkotlinx/serialization/json/internal/AbstractJsonLexerKt;\nHSPLkotlinx/serialization/json/internal/AbstractJsonLexerKt;->charToTokenClass(C)B\nPLkotlinx/serialization/json/internal/AbstractJsonLexerKt;->charToTokenClass(C)B\nLkotlinx/serialization/json/internal/ArrayAsSequence;\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;-><init>([C)V\nPLkotlinx/serialization/json/internal/ArrayAsSequence;-><init>([C)V\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->access$getBuffer$p(Lkotlinx/serialization/json/internal/ArrayAsSequence;)[C\nPLkotlinx/serialization/json/internal/ArrayAsSequence;->access$getBuffer$p(Lkotlinx/serialization/json/internal/ArrayAsSequence;)[C\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->charAt(I)C\nHPLkotlinx/serialization/json/internal/ArrayAsSequence;->charAt(I)C\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->get(I)C\nHPLkotlinx/serialization/json/internal/ArrayAsSequence;->get(I)C\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->getLength()I\nHPLkotlinx/serialization/json/internal/ArrayAsSequence;->getLength()I\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->length()I\nHPLkotlinx/serialization/json/internal/ArrayAsSequence;->length()I\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->setLength(I)V\nPLkotlinx/serialization/json/internal/ArrayAsSequence;->setLength(I)V\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->substring(II)Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/ArrayAsSequence;->substring(II)Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/ArrayAsSequence;->trim(I)V\nPLkotlinx/serialization/json/internal/ArrayAsSequence;->trim(I)V\nLkotlinx/serialization/json/internal/ArrayPoolsKt;\nHSPLkotlinx/serialization/json/internal/ArrayPoolsKt;-><clinit>()V\nPLkotlinx/serialization/json/internal/ArrayPoolsKt;-><clinit>()V\nHSPLkotlinx/serialization/json/internal/ArrayPoolsKt;->access$getMAX_CHARS_IN_POOL$p()I\nPLkotlinx/serialization/json/internal/ArrayPoolsKt;->access$getMAX_CHARS_IN_POOL$p()I\nLkotlinx/serialization/json/internal/CharArrayPoolBase;\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBase;-><init>()V\nPLkotlinx/serialization/json/internal/CharArrayPoolBase;-><init>()V\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBase;->releaseImpl([C)V\nPLkotlinx/serialization/json/internal/CharArrayPoolBase;->releaseImpl([C)V\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBase;->take(I)[C\nPLkotlinx/serialization/json/internal/CharArrayPoolBase;->take(I)[C\nLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;-><clinit>()V\nPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;-><clinit>()V\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;-><init>()V\nPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;-><init>()V\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;->release([C)V\nPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;->release([C)V\nHSPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;->take()[C\nPLkotlinx/serialization/json/internal/CharArrayPoolBatchSize;->take()[C\nLkotlinx/serialization/json/internal/CharMappings;\nHSPLkotlinx/serialization/json/internal/CharMappings;-><clinit>()V\nPLkotlinx/serialization/json/internal/CharMappings;-><clinit>()V\nHSPLkotlinx/serialization/json/internal/CharMappings;-><init>()V\nPLkotlinx/serialization/json/internal/CharMappings;-><init>()V\nHSPLkotlinx/serialization/json/internal/CharMappings;->initC2ESC(CC)V\nPLkotlinx/serialization/json/internal/CharMappings;->initC2ESC(CC)V\nHSPLkotlinx/serialization/json/internal/CharMappings;->initC2ESC(IC)V\nPLkotlinx/serialization/json/internal/CharMappings;->initC2ESC(IC)V\nHSPLkotlinx/serialization/json/internal/CharMappings;->initC2TC(CB)V\nPLkotlinx/serialization/json/internal/CharMappings;->initC2TC(CB)V\nHSPLkotlinx/serialization/json/internal/CharMappings;->initC2TC(IB)V\nPLkotlinx/serialization/json/internal/CharMappings;->initC2TC(IB)V\nHSPLkotlinx/serialization/json/internal/CharMappings;->initCharToToken()V\nPLkotlinx/serialization/json/internal/CharMappings;->initCharToToken()V\nHSPLkotlinx/serialization/json/internal/CharMappings;->initEscape()V\nPLkotlinx/serialization/json/internal/CharMappings;->initEscape()V\nLkotlinx/serialization/json/internal/CreateMapForCacheKt;\nHSPLkotlinx/serialization/json/internal/CreateMapForCacheKt;->createMapForCache(I)Ljava/util/Map;\nPLkotlinx/serialization/json/internal/CreateMapForCacheKt;->createMapForCache(I)Ljava/util/Map;\nLkotlinx/serialization/json/internal/DescriptorSchemaCache;\nHSPLkotlinx/serialization/json/internal/DescriptorSchemaCache;-><init>()V\nPLkotlinx/serialization/json/internal/DescriptorSchemaCache;-><init>()V\nHSPLkotlinx/serialization/json/internal/DescriptorSchemaCache;->get(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;)Ljava/lang/Object;\nHPLkotlinx/serialization/json/internal/DescriptorSchemaCache;->get(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;)Ljava/lang/Object;\nHSPLkotlinx/serialization/json/internal/DescriptorSchemaCache;->getOrPut(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nHPLkotlinx/serialization/json/internal/DescriptorSchemaCache;->getOrPut(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;\nHSPLkotlinx/serialization/json/internal/DescriptorSchemaCache;->set(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;Ljava/lang/Object;)V\nPLkotlinx/serialization/json/internal/DescriptorSchemaCache;->set(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;Ljava/lang/Object;)V\nLkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;\nHSPLkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;-><init>()V\nPLkotlinx/serialization/json/internal/DescriptorSchemaCache$Key;-><init>()V\nLkotlinx/serialization/json/internal/JsonElementMarker;\nHSPLkotlinx/serialization/json/internal/JsonElementMarker;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHPLkotlinx/serialization/json/internal/JsonElementMarker;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/json/internal/JsonElementMarker;->isUnmarkedNull$kotlinx_serialization_json()Z\nPLkotlinx/serialization/json/internal/JsonElementMarker;->isUnmarkedNull$kotlinx_serialization_json()Z\nHSPLkotlinx/serialization/json/internal/JsonElementMarker;->mark$kotlinx_serialization_json(I)V\nPLkotlinx/serialization/json/internal/JsonElementMarker;->mark$kotlinx_serialization_json(I)V\nHSPLkotlinx/serialization/json/internal/JsonElementMarker;->nextUnmarkedIndex$kotlinx_serialization_json()I\nPLkotlinx/serialization/json/internal/JsonElementMarker;->nextUnmarkedIndex$kotlinx_serialization_json()I\nLkotlinx/serialization/json/internal/JsonElementMarker$origin$1;\nHSPLkotlinx/serialization/json/internal/JsonElementMarker$origin$1;-><init>(Ljava/lang/Object;)V\nPLkotlinx/serialization/json/internal/JsonElementMarker$origin$1;-><init>(Ljava/lang/Object;)V\nLkotlinx/serialization/json/internal/JsonExceptionsKt;\nLkotlinx/serialization/json/internal/JsonNamesMapKt;\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;-><clinit>()V\nPLkotlinx/serialization/json/internal/JsonNamesMapKt;-><clinit>()V\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;->access$buildDeserializationNamesMap(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)Ljava/util/Map;\nPLkotlinx/serialization/json/internal/JsonNamesMapKt;->access$buildDeserializationNamesMap(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)Ljava/util/Map;\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;->buildDeserializationNamesMap(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)Ljava/util/Map;\nPLkotlinx/serialization/json/internal/JsonNamesMapKt;->buildDeserializationNamesMap(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)Ljava/util/Map;\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;->deserializationNamesMap(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/descriptors/SerialDescriptor;)Ljava/util/Map;\nPLkotlinx/serialization/json/internal/JsonNamesMapKt;->deserializationNamesMap(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/descriptors/SerialDescriptor;)Ljava/util/Map;\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;->getJsonNameIndex$getJsonNameIndexSlowPath(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/descriptors/SerialDescriptor;Ljava/lang/String;)I\nPLkotlinx/serialization/json/internal/JsonNamesMapKt;->getJsonNameIndex$getJsonNameIndexSlowPath(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/descriptors/SerialDescriptor;Ljava/lang/String;)I\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;->getJsonNameIndex(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;Ljava/lang/String;)I\nHPLkotlinx/serialization/json/internal/JsonNamesMapKt;->getJsonNameIndex(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;Ljava/lang/String;)I\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt;->namingStrategy(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)Lkotlinx/serialization/json/JsonNamingStrategy;\nHPLkotlinx/serialization/json/internal/JsonNamesMapKt;->namingStrategy(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)Lkotlinx/serialization/json/JsonNamingStrategy;\nLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)V\nPLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;-><init>(Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/Json;)V\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;->invoke()Ljava/lang/Object;\nPLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;->invoke()Ljava/lang/Object;\nHSPLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;->invoke()Ljava/util/Map;\nPLkotlinx/serialization/json/internal/JsonNamesMapKt$deserializationNamesMap$1;->invoke()Ljava/util/Map;\nLkotlinx/serialization/json/internal/JsonPath;\nHSPLkotlinx/serialization/json/internal/JsonPath;-><init>()V\nPLkotlinx/serialization/json/internal/JsonPath;-><init>()V\nHSPLkotlinx/serialization/json/internal/JsonPath;->popDescriptor()V\nPLkotlinx/serialization/json/internal/JsonPath;->popDescriptor()V\nHSPLkotlinx/serialization/json/internal/JsonPath;->pushDescriptor(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHPLkotlinx/serialization/json/internal/JsonPath;->pushDescriptor(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/json/internal/JsonPath;->updateDescriptorIndex(I)V\nPLkotlinx/serialization/json/internal/JsonPath;->updateDescriptorIndex(I)V\nLkotlinx/serialization/json/internal/JsonPath$Tombstone;\nLkotlinx/serialization/json/internal/JsonStreamsKt;\nHSPLkotlinx/serialization/json/internal/JsonStreamsKt;->decodeByReader(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/DeserializationStrategy;Lkotlinx/serialization/json/internal/SerialReader;)Ljava/lang/Object;\nPLkotlinx/serialization/json/internal/JsonStreamsKt;->decodeByReader(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/DeserializationStrategy;Lkotlinx/serialization/json/internal/SerialReader;)Ljava/lang/Object;\nLkotlinx/serialization/json/internal/PolymorphicKt;\nLkotlinx/serialization/json/internal/ReaderJsonLexer;\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;-><init>(Lkotlinx/serialization/json/internal/SerialReader;[C)V\nPLkotlinx/serialization/json/internal/ReaderJsonLexer;-><init>(Lkotlinx/serialization/json/internal/SerialReader;[C)V\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;-><init>(Lkotlinx/serialization/json/internal/SerialReader;[CILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/json/internal/ReaderJsonLexer;-><init>(Lkotlinx/serialization/json/internal/SerialReader;[CILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->canConsumeValue()Z\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->canConsumeValue()Z\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->consumeKeyString()Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->consumeKeyString()Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->consumeNextToken()B\nPLkotlinx/serialization/json/internal/ReaderJsonLexer;->consumeNextToken()B\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->ensureHaveChars()V\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->ensureHaveChars()V\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->getSource()Ljava/lang/CharSequence;\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->getSource()Ljava/lang/CharSequence;\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->getSource()Lkotlinx/serialization/json/internal/ArrayAsSequence;\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->getSource()Lkotlinx/serialization/json/internal/ArrayAsSequence;\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->indexOf(CI)I\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->indexOf(CI)I\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->prefetchOrEof(I)I\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->prefetchOrEof(I)I\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->preload(I)V\nPLkotlinx/serialization/json/internal/ReaderJsonLexer;->preload(I)V\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->release()V\nPLkotlinx/serialization/json/internal/ReaderJsonLexer;->release()V\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->substring(II)Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->substring(II)Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/ReaderJsonLexer;->tryConsumeComma()Z\nHPLkotlinx/serialization/json/internal/ReaderJsonLexer;->tryConsumeComma()Z\nLkotlinx/serialization/json/internal/SerialReader;\nLkotlinx/serialization/json/internal/StreamingJsonDecoder;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;-><init>(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/json/internal/WriteMode;Lkotlinx/serialization/json/internal/AbstractJsonLexer;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/StreamingJsonDecoder$DiscriminatorHolder;)V\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;-><init>(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/json/internal/WriteMode;Lkotlinx/serialization/json/internal/AbstractJsonLexer;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/json/internal/StreamingJsonDecoder$DiscriminatorHolder;)V\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->beginStructure(Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->beginStructure(Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->checkLeadingComma()V\nPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->checkLeadingComma()V\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeElementIndex(Lkotlinx/serialization/descriptors/SerialDescriptor;)I\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeElementIndex(Lkotlinx/serialization/descriptors/SerialDescriptor;)I\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeInt()I\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeInt()I\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeListIndex()I\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeListIndex()I\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeLong()J\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeLong()J\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeNotNullMark()Z\nPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeNotNullMark()Z\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeObjectIndex(Lkotlinx/serialization/descriptors/SerialDescriptor;)I\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeObjectIndex(Lkotlinx/serialization/descriptors/SerialDescriptor;)I\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeSerializableElement(Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeSerializableElement(Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeSerializableValue(Lkotlinx/serialization/DeserializationStrategy;)Ljava/lang/Object;\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeSerializableValue(Lkotlinx/serialization/DeserializationStrategy;)Ljava/lang/Object;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeString()Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeString()Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeStringKey()Ljava/lang/String;\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->decodeStringKey()Ljava/lang/String;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->endStructure(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->endStructure(Lkotlinx/serialization/descriptors/SerialDescriptor;)V\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->handleUnknown(Ljava/lang/String;)Z\nHPLkotlinx/serialization/json/internal/StreamingJsonDecoder;->handleUnknown(Ljava/lang/String;)Z\nLkotlinx/serialization/json/internal/StreamingJsonDecoder$DiscriminatorHolder;\nLkotlinx/serialization/json/internal/StreamingJsonDecoder$WhenMappings;\nHSPLkotlinx/serialization/json/internal/StreamingJsonDecoder$WhenMappings;-><clinit>()V\nPLkotlinx/serialization/json/internal/StreamingJsonDecoder$WhenMappings;-><clinit>()V\nLkotlinx/serialization/json/internal/WriteMode;\nHSPLkotlinx/serialization/json/internal/WriteMode;->$values()[Lkotlinx/serialization/json/internal/WriteMode;\nPLkotlinx/serialization/json/internal/WriteMode;->$values()[Lkotlinx/serialization/json/internal/WriteMode;\nHSPLkotlinx/serialization/json/internal/WriteMode;-><clinit>()V\nPLkotlinx/serialization/json/internal/WriteMode;-><clinit>()V\nHSPLkotlinx/serialization/json/internal/WriteMode;-><init>(Ljava/lang/String;ICC)V\nPLkotlinx/serialization/json/internal/WriteMode;-><init>(Ljava/lang/String;ICC)V\nHSPLkotlinx/serialization/json/internal/WriteMode;->values()[Lkotlinx/serialization/json/internal/WriteMode;\nPLkotlinx/serialization/json/internal/WriteMode;->values()[Lkotlinx/serialization/json/internal/WriteMode;\nLkotlinx/serialization/json/internal/WriteModeKt;\nHSPLkotlinx/serialization/json/internal/WriteModeKt;->switchMode(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/json/internal/WriteMode;\nHPLkotlinx/serialization/json/internal/WriteModeKt;->switchMode(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/json/internal/WriteMode;\nLkotlinx/serialization/json/okio/OkioStreamsKt;\nHSPLkotlinx/serialization/json/okio/OkioStreamsKt;->decodeFromBufferedSource(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/DeserializationStrategy;Lokio/BufferedSource;)Ljava/lang/Object;\nPLkotlinx/serialization/json/okio/OkioStreamsKt;->decodeFromBufferedSource(Lkotlinx/serialization/json/Json;Lkotlinx/serialization/DeserializationStrategy;Lokio/BufferedSource;)Ljava/lang/Object;\nLkotlinx/serialization/json/okio/internal/OkioSerialReader;\nHSPLkotlinx/serialization/json/okio/internal/OkioSerialReader;-><init>(Lokio/BufferedSource;)V\nPLkotlinx/serialization/json/okio/internal/OkioSerialReader;-><init>(Lokio/BufferedSource;)V\nHSPLkotlinx/serialization/json/okio/internal/OkioSerialReader;->read([CII)I\nHPLkotlinx/serialization/json/okio/internal/OkioSerialReader;->read([CII)I\nLkotlinx/serialization/modules/ContextualProvider;\nHSPLkotlinx/serialization/modules/ContextualProvider;-><init>()V\nPLkotlinx/serialization/modules/ContextualProvider;-><init>()V\nHSPLkotlinx/serialization/modules/ContextualProvider;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/modules/ContextualProvider;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/modules/ContextualProvider$Argless;\nHSPLkotlinx/serialization/modules/ContextualProvider$Argless;-><init>(Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/modules/ContextualProvider$Argless;-><init>(Lkotlinx/serialization/KSerializer;)V\nHSPLkotlinx/serialization/modules/ContextualProvider$Argless;->getSerializer()Lkotlinx/serialization/KSerializer;\nPLkotlinx/serialization/modules/ContextualProvider$Argless;->getSerializer()Lkotlinx/serialization/KSerializer;\nLkotlinx/serialization/modules/SerialModuleImpl;\nHSPLkotlinx/serialization/modules/SerialModuleImpl;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V\nPLkotlinx/serialization/modules/SerialModuleImpl;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V\nHSPLkotlinx/serialization/modules/SerialModuleImpl;->dumpTo(Lkotlinx/serialization/modules/SerializersModuleCollector;)V\nPLkotlinx/serialization/modules/SerialModuleImpl;->dumpTo(Lkotlinx/serialization/modules/SerializersModuleCollector;)V\nLkotlinx/serialization/modules/SerializersModule;\nHSPLkotlinx/serialization/modules/SerializersModule;-><init>()V\nPLkotlinx/serialization/modules/SerializersModule;-><init>()V\nHSPLkotlinx/serialization/modules/SerializersModule;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLkotlinx/serialization/modules/SerializersModule;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLkotlinx/serialization/modules/SerializersModuleBuilder;\nHSPLkotlinx/serialization/modules/SerializersModuleBuilder;-><init>()V\nPLkotlinx/serialization/modules/SerializersModuleBuilder;-><init>()V\nHSPLkotlinx/serialization/modules/SerializersModuleBuilder;->build()Lkotlinx/serialization/modules/SerializersModule;\nPLkotlinx/serialization/modules/SerializersModuleBuilder;->build()Lkotlinx/serialization/modules/SerializersModule;\nHSPLkotlinx/serialization/modules/SerializersModuleBuilder;->contextual(Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;)V\nPLkotlinx/serialization/modules/SerializersModuleBuilder;->contextual(Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;)V\nHSPLkotlinx/serialization/modules/SerializersModuleBuilder;->include(Lkotlinx/serialization/modules/SerializersModule;)V\nPLkotlinx/serialization/modules/SerializersModuleBuilder;->include(Lkotlinx/serialization/modules/SerializersModule;)V\nHSPLkotlinx/serialization/modules/SerializersModuleBuilder;->registerSerializer$default(Lkotlinx/serialization/modules/SerializersModuleBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/modules/ContextualProvider;ZILjava/lang/Object;)V\nPLkotlinx/serialization/modules/SerializersModuleBuilder;->registerSerializer$default(Lkotlinx/serialization/modules/SerializersModuleBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/modules/ContextualProvider;ZILjava/lang/Object;)V\nHSPLkotlinx/serialization/modules/SerializersModuleBuilder;->registerSerializer(Lkotlin/reflect/KClass;Lkotlinx/serialization/modules/ContextualProvider;Z)V\nPLkotlinx/serialization/modules/SerializersModuleBuilder;->registerSerializer(Lkotlin/reflect/KClass;Lkotlinx/serialization/modules/ContextualProvider;Z)V\nLkotlinx/serialization/modules/SerializersModuleBuildersKt;\nHSPLkotlinx/serialization/modules/SerializersModuleBuildersKt;->EmptySerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nPLkotlinx/serialization/modules/SerializersModuleBuildersKt;->EmptySerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nLkotlinx/serialization/modules/SerializersModuleCollector;\nLkotlinx/serialization/modules/SerializersModuleKt;\nHSPLkotlinx/serialization/modules/SerializersModuleKt;-><clinit>()V\nPLkotlinx/serialization/modules/SerializersModuleKt;-><clinit>()V\nHSPLkotlinx/serialization/modules/SerializersModuleKt;->getEmptySerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nPLkotlinx/serialization/modules/SerializersModuleKt;->getEmptySerializersModule()Lkotlinx/serialization/modules/SerializersModule;\nHSPLkotlinx/serialization/modules/SerializersModuleKt;->plus(Lkotlinx/serialization/modules/SerializersModule;Lkotlinx/serialization/modules/SerializersModule;)Lkotlinx/serialization/modules/SerializersModule;\nPLkotlinx/serialization/modules/SerializersModuleKt;->plus(Lkotlinx/serialization/modules/SerializersModule;Lkotlinx/serialization/modules/SerializersModule;)Lkotlinx/serialization/modules/SerializersModule;\nLleakcanary/AndroidLeakFixes;\nHSPLleakcanary/AndroidLeakFixes;-><clinit>()V\nPLleakcanary/AndroidLeakFixes;-><clinit>()V\nHSPLleakcanary/AndroidLeakFixes;-><init>(Ljava/lang/String;I)V\nPLleakcanary/AndroidLeakFixes;-><init>(Ljava/lang/String;I)V\nHSPLleakcanary/AndroidLeakFixes;->access$getApplied$p(Lleakcanary/AndroidLeakFixes;)Z\nPLleakcanary/AndroidLeakFixes;->access$getApplied$p(Lleakcanary/AndroidLeakFixes;)Z\nHSPLleakcanary/AndroidLeakFixes;->access$getBackgroundHandler$cp()Lkotlin/Lazy;\nPLleakcanary/AndroidLeakFixes;->access$getBackgroundHandler$cp()Lkotlin/Lazy;\nHSPLleakcanary/AndroidLeakFixes;->access$setApplied$p(Lleakcanary/AndroidLeakFixes;)V\nPLleakcanary/AndroidLeakFixes;->access$setApplied$p(Lleakcanary/AndroidLeakFixes;)V\nHSPLleakcanary/AndroidLeakFixes;->values()[Lleakcanary/AndroidLeakFixes;\nPLleakcanary/AndroidLeakFixes;->values()[Lleakcanary/AndroidLeakFixes;\nLleakcanary/AndroidLeakFixes$ACCESSIBILITY_NODE_INFO;\nHSPLleakcanary/AndroidLeakFixes$ACCESSIBILITY_NODE_INFO;-><init>()V\nPLleakcanary/AndroidLeakFixes$ACCESSIBILITY_NODE_INFO;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$ACCESSIBILITY_NODE_INFO;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$ACCESSIBILITY_NODE_INFO;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$ACTIVITY_MANAGER;\nHSPLleakcanary/AndroidLeakFixes$ACTIVITY_MANAGER;-><init>()V\nPLleakcanary/AndroidLeakFixes$ACTIVITY_MANAGER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$ACTIVITY_MANAGER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$ACTIVITY_MANAGER;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$BUBBLE_POPUP;\nHSPLleakcanary/AndroidLeakFixes$BUBBLE_POPUP;-><init>()V\nPLleakcanary/AndroidLeakFixes$BUBBLE_POPUP;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$BUBBLE_POPUP;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$BUBBLE_POPUP;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$CONNECTIVITY_MANAGER;\nHSPLleakcanary/AndroidLeakFixes$CONNECTIVITY_MANAGER;-><init>()V\nPLleakcanary/AndroidLeakFixes$CONNECTIVITY_MANAGER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$CONNECTIVITY_MANAGER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$CONNECTIVITY_MANAGER;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;\nHSPLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;-><clinit>()V\nPLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;-><clinit>()V\nHSPLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;-><init>()V\nPLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;->invoke()Ljava/lang/Object;\nPLleakcanary/AndroidLeakFixes$Companion$backgroundHandler$2;->invoke()Ljava/lang/Object;\nLleakcanary/AndroidLeakFixes$Companion$onEachIdle$1$1;\nHSPLleakcanary/AndroidLeakFixes$Companion$onEachIdle$1$1;-><init>(Lleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;)V\nPLleakcanary/AndroidLeakFixes$Companion$onEachIdle$1$1;-><init>(Lleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;)V\nHSPLleakcanary/AndroidLeakFixes$Companion$onEachIdle$1$1;->queueIdle()Z\nPLleakcanary/AndroidLeakFixes$Companion$onEachIdle$1$1;->queueIdle()Z\nLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS;\nHSPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS;-><init>()V\nPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;\nHSPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;-><init>(Ljava/lang/Object;I)V\nPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;-><init>(Ljava/lang/Object;I)V\nHSPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;->run()V\nHPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1;->run()V\nLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1$run$1$3;\nHSPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1$run$1$3;-><init>(Landroid/os/HandlerThread;Lkotlin/jvm/internal/Ref$BooleanRef;Landroid/os/Handler;)V\nPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1$run$1$3;-><init>(Landroid/os/HandlerThread;Lkotlin/jvm/internal/Ref$BooleanRef;Landroid/os/Handler;)V\nHSPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1$run$1$3;->invoke()Ljava/lang/Object;\nPLleakcanary/AndroidLeakFixes$FLUSH_HANDLER_THREADS$apply$flushNewHandlerThread$1$run$1$3;->invoke()Ljava/lang/Object;\nLleakcanary/AndroidLeakFixes$IMM_CUR_ROOT_VIEW;\nHSPLleakcanary/AndroidLeakFixes$IMM_CUR_ROOT_VIEW;-><init>()V\nPLleakcanary/AndroidLeakFixes$IMM_CUR_ROOT_VIEW;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$IMM_CUR_ROOT_VIEW;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$IMM_CUR_ROOT_VIEW;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$IMM_FOCUSED_VIEW;\nHSPLleakcanary/AndroidLeakFixes$IMM_FOCUSED_VIEW;-><init>()V\nPLleakcanary/AndroidLeakFixes$IMM_FOCUSED_VIEW;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$IMM_FOCUSED_VIEW;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$IMM_FOCUSED_VIEW;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$LAST_HOVERED_VIEW;\nHSPLleakcanary/AndroidLeakFixes$LAST_HOVERED_VIEW;-><init>()V\nPLleakcanary/AndroidLeakFixes$LAST_HOVERED_VIEW;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$LAST_HOVERED_VIEW;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$LAST_HOVERED_VIEW;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$MEDIA_SESSION_LEGACY_HELPER;\nHSPLleakcanary/AndroidLeakFixes$MEDIA_SESSION_LEGACY_HELPER;-><init>()V\nPLleakcanary/AndroidLeakFixes$MEDIA_SESSION_LEGACY_HELPER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$MEDIA_SESSION_LEGACY_HELPER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$MEDIA_SESSION_LEGACY_HELPER;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$SAMSUNG_CLIPBOARD_MANAGER;\nHSPLleakcanary/AndroidLeakFixes$SAMSUNG_CLIPBOARD_MANAGER;-><init>()V\nPLleakcanary/AndroidLeakFixes$SAMSUNG_CLIPBOARD_MANAGER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$SAMSUNG_CLIPBOARD_MANAGER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$SAMSUNG_CLIPBOARD_MANAGER;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$SPELL_CHECKER;\nHSPLleakcanary/AndroidLeakFixes$SPELL_CHECKER;-><init>()V\nPLleakcanary/AndroidLeakFixes$SPELL_CHECKER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$SPELL_CHECKER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$SPELL_CHECKER;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$TEXT_LINE_POOL;\nHSPLleakcanary/AndroidLeakFixes$TEXT_LINE_POOL;-><init>()V\nPLleakcanary/AndroidLeakFixes$TEXT_LINE_POOL;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$TEXT_LINE_POOL;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$TEXT_LINE_POOL;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$USER_MANAGER;\nHSPLleakcanary/AndroidLeakFixes$USER_MANAGER;-><init>()V\nPLleakcanary/AndroidLeakFixes$USER_MANAGER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$USER_MANAGER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$USER_MANAGER;->apply(Landroid/app/Application;)V\nLleakcanary/AndroidLeakFixes$VIEW_LOCATION_HOLDER;\nHSPLleakcanary/AndroidLeakFixes$VIEW_LOCATION_HOLDER;-><init>()V\nPLleakcanary/AndroidLeakFixes$VIEW_LOCATION_HOLDER;-><init>()V\nHSPLleakcanary/AndroidLeakFixes$VIEW_LOCATION_HOLDER;->apply(Landroid/app/Application;)V\nPLleakcanary/AndroidLeakFixes$VIEW_LOCATION_HOLDER;->apply(Landroid/app/Application;)V\nLleakcanary/ViewLocationHolderLeakFix;\nHSPLleakcanary/ViewLocationHolderLeakFix;-><clinit>()V\nPLleakcanary/ViewLocationHolderLeakFix;-><clinit>()V\nHSPLleakcanary/ViewLocationHolderLeakFix;-><init>()V\nPLleakcanary/ViewLocationHolderLeakFix;-><init>()V\nHSPLleakcanary/ViewLocationHolderLeakFix;->applyFixes$default(Landroid/app/Application;)V\nPLleakcanary/ViewLocationHolderLeakFix;->applyFixes$default(Landroid/app/Application;)V\nLleakcanary/internal/HandlersKt;\nHSPLleakcanary/internal/HandlersKt;-><clinit>()V\nPLleakcanary/internal/HandlersKt;-><clinit>()V\nLleakcanary/internal/HandlersKt$mainHandler$2;\nHSPLleakcanary/internal/HandlersKt$mainHandler$2;-><clinit>()V\nPLleakcanary/internal/HandlersKt$mainHandler$2;-><clinit>()V\nHSPLleakcanary/internal/HandlersKt$mainHandler$2;-><init>(I)V\nPLleakcanary/internal/HandlersKt$mainHandler$2;-><init>(I)V\nLleakcanary/internal/PlumberInstaller;\nHSPLleakcanary/internal/PlumberInstaller;-><init>()V\nPLleakcanary/internal/PlumberInstaller;-><init>()V\nHSPLleakcanary/internal/PlumberInstaller;->onCreate()Z\nPLleakcanary/internal/PlumberInstaller;->onCreate()Z\nLlogcat/AndroidLogcatLogger;\nHSPLlogcat/AndroidLogcatLogger;-><init>()V\nPLlogcat/AndroidLogcatLogger;-><init>()V\nLlogcat/LogPriority;\nHSPLlogcat/LogPriority;-><clinit>()V\nPLlogcat/LogPriority;-><clinit>()V\nHSPLlogcat/LogPriority;-><init>(Ljava/lang/String;II)V\nPLlogcat/LogPriority;-><init>(Ljava/lang/String;II)V\nHSPLlogcat/LogPriority;->getPriorityInt()I\nPLlogcat/LogPriority;->getPriorityInt()I\nLlogcat/LogcatLogger;\nHSPLlogcat/LogcatLogger;-><clinit>()V\nPLlogcat/LogcatLogger;-><clinit>()V\nLlogcat/LogcatLogger$Companion;\nHSPLlogcat/LogcatLogger$Companion;-><clinit>()V\nPLlogcat/LogcatLogger$Companion;-><clinit>()V\nHSPLlogcat/LogcatLogger$Companion;-><init>()V\nPLlogcat/LogcatLogger$Companion;-><init>()V\nHSPLlogcat/LogcatLogger$Companion;->install(Llogcat/AndroidLogcatLogger;)V\nPLlogcat/LogcatLogger$Companion;->install(Llogcat/AndroidLogcatLogger;)V\nHSPLlogcat/LogcatLogger$Companion;->isInstalled()Z\nPLlogcat/LogcatLogger$Companion;->isInstalled()Z\nLlogcat/LogcatLogger$NoLog;\nHSPLlogcat/LogcatLogger$NoLog;-><clinit>()V\nPLlogcat/LogcatLogger$NoLog;-><clinit>()V\nHSPLlogcat/LogcatLogger$NoLog;-><init>()V\nPLlogcat/LogcatLogger$NoLog;-><init>()V\nLnl/adaptivity/xmlutil/Namespace;\nHSPLnl/adaptivity/xmlutil/Namespace;-><clinit>()V\nPLnl/adaptivity/xmlutil/Namespace;-><clinit>()V\nLnl/adaptivity/xmlutil/Namespace$Companion;\nHSPLnl/adaptivity/xmlutil/Namespace$Companion;-><clinit>()V\nPLnl/adaptivity/xmlutil/Namespace$Companion;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/Namespace$Companion;-><init>()V\nPLnl/adaptivity/xmlutil/Namespace$Companion;-><init>()V\nHSPLnl/adaptivity/xmlutil/Namespace$Companion;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLnl/adaptivity/xmlutil/Namespace$Companion;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLnl/adaptivity/xmlutil/QNameSerializer;\nHSPLnl/adaptivity/xmlutil/QNameSerializer;-><clinit>()V\nPLnl/adaptivity/xmlutil/QNameSerializer;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/QNameSerializer;-><init>()V\nPLnl/adaptivity/xmlutil/QNameSerializer;-><init>()V\nLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;\nHSPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;-><clinit>()V\nPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;-><init>(I)V\nPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;-><init>(I)V\nHSPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;->invoke(Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;)V\nPLnl/adaptivity/xmlutil/QNameSerializer$descriptor$1;->invoke(Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;)V\nLnl/adaptivity/xmlutil/XmlDeclMode;\nHSPLnl/adaptivity/xmlutil/XmlDeclMode;-><clinit>()V\nPLnl/adaptivity/xmlutil/XmlDeclMode;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/XmlDeclMode;-><init>(Ljava/lang/String;I)V\nPLnl/adaptivity/xmlutil/XmlDeclMode;-><init>(Ljava/lang/String;I)V\nLnl/adaptivity/xmlutil/XmlException;\nLnl/adaptivity/xmlutil/core/XmlVersion;\nHSPLnl/adaptivity/xmlutil/core/XmlVersion;-><clinit>()V\nPLnl/adaptivity/xmlutil/core/XmlVersion;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/core/XmlVersion;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLnl/adaptivity/xmlutil/core/XmlVersion;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;\nHSPLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;-><init>()V\nPLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;-><init>()V\nHSPLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;->access$getNamespacesSerializer$p()Lkotlinx/serialization/KSerializer;\nPLnl/adaptivity/xmlutil/serialization/CompactFragmentSerializer;->access$getNamespacesSerializer$p()Lkotlinx/serialization/KSerializer;\nLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;\nHSPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;-><init>(ZZLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Ljavax/xml/namespace/QName;I)V\nPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;-><init>(ZZLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Ljavax/xml/namespace/QName;I)V\nHSPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;-><init>(ZZLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Ljavax/xml/namespace/QName;Z)V\nPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;-><init>(ZZLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Ljavax/xml/namespace/QName;Z)V\nHSPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;->copy$default(Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;Z)Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;\nPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;->copy$default(Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;Z)Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;\nLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;\nHSPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;-><init>(ZZLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Ljavax/xml/namespace/QName;Z)V\nPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;-><init>(ZZLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Ljavax/xml/namespace/QName;Z)V\nHSPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;->build()Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;\nPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;->build()Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy;\nHSPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;->ignoreUnknownChildren()V\nPLnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;->ignoreUnknownChildren()V\nLnl/adaptivity/xmlutil/serialization/ElementSerializer;\nHSPLnl/adaptivity/xmlutil/serialization/ElementSerializer;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/ElementSerializer;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/ElementSerializer;-><init>()V\nPLnl/adaptivity/xmlutil/serialization/ElementSerializer;-><init>()V\nHSPLnl/adaptivity/xmlutil/serialization/ElementSerializer;->access$getAttrSerializer$p()Lkotlinx/serialization/KSerializer;\nPLnl/adaptivity/xmlutil/serialization/ElementSerializer;->access$getAttrSerializer$p()Lkotlinx/serialization/KSerializer;\nLnl/adaptivity/xmlutil/serialization/NodeSerializer;\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer;-><init>()V\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer;-><init>()V\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer;->getDescriptor()Lkotlinx/serialization/descriptors/SerialDescriptor;\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer;->getEd()Lkotlinx/serialization/descriptors/SerialDescriptor;\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer;->getEd()Lkotlinx/serialization/descriptors/SerialDescriptor;\nLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;-><init>()V\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;-><init>()V\nHSPLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLnl/adaptivity/xmlutil/serialization/NodeSerializer$ed$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLnl/adaptivity/xmlutil/serialization/UnknownChildHandler;\nLnl/adaptivity/xmlutil/serialization/XML;\nHSPLnl/adaptivity/xmlutil/serialization/XML;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/XML;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/XML;-><init>(Lkotlin/jvm/functions/Function1;)V\nPLnl/adaptivity/xmlutil/serialization/XML;-><init>(Lkotlin/jvm/functions/Function1;)V\nLnl/adaptivity/xmlutil/serialization/XML$1;\nHSPLnl/adaptivity/xmlutil/serialization/XML$1;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/XML$1;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/XML$1;-><init>(I)V\nPLnl/adaptivity/xmlutil/serialization/XML$1;-><init>(I)V\nHSPLnl/adaptivity/xmlutil/serialization/XML$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLnl/adaptivity/xmlutil/serialization/XML$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHSPLnl/adaptivity/xmlutil/serialization/XML$1;->invoke(Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;)V\nPLnl/adaptivity/xmlutil/serialization/XML$1;->invoke(Lkotlinx/serialization/descriptors/ClassSerialDescriptorBuilder;)V\nLnl/adaptivity/xmlutil/serialization/XMLKt;\nHSPLnl/adaptivity/xmlutil/serialization/XMLKt;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/XMLKt;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/XMLKt;->access$getDefaultXmlModule$p()Lkotlinx/serialization/modules/SerializersModule;\nPLnl/adaptivity/xmlutil/serialization/XMLKt;->access$getDefaultXmlModule$p()Lkotlinx/serialization/modules/SerializersModule;\nLnl/adaptivity/xmlutil/serialization/XmlConfig;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig;-><init>(Lnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;)V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig;-><init>(Lnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;)V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig;->access$getDEFAULT_UNKNOWN_CHILD_HANDLER$cp()Lcoil/EventListener$Factory$$ExternalSyntheticLambda0;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig;->access$getDEFAULT_UNKNOWN_CHILD_HANDLER$cp()Lcoil/EventListener$Factory$$ExternalSyntheticLambda0;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig;->access$getIGNORING_UNKNOWN_CHILD_HANDLER$cp()Lcoil/EventListener$Factory$$ExternalSyntheticLambda0;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig;->access$getIGNORING_UNKNOWN_CHILD_HANDLER$cp()Lcoil/EventListener$Factory$$ExternalSyntheticLambda0;\nLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;-><init>(ZLnl/adaptivity/xmlutil/XmlDeclMode;Ljava/lang/String;Ljava/lang/Boolean;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;)V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;-><init>(ZLnl/adaptivity/xmlutil/XmlDeclMode;Ljava/lang/String;Ljava/lang/Boolean;Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;)V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getAutoPolymorphic()Ljava/lang/Boolean;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getAutoPolymorphic()Ljava/lang/Boolean;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getEncodeDefault()Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getEncodeDefault()Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getIndentString()Ljava/lang/String;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getIndentString()Ljava/lang/String;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getNilAttribute()Lkotlin/Pair;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getNilAttribute()Lkotlin/Pair;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getPolicy()Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getPolicy()Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getRepairNamespaces()Z\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getRepairNamespaces()Z\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getUnknownChildHandler()Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getUnknownChildHandler()Lnl/adaptivity/xmlutil/serialization/UnknownChildHandler;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getXmlDeclMode()Lnl/adaptivity/xmlutil/XmlDeclMode;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getXmlDeclMode()Lnl/adaptivity/xmlutil/XmlDeclMode;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getXmlVersion()Lnl/adaptivity/xmlutil/core/XmlVersion;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->getXmlVersion()Lnl/adaptivity/xmlutil/core/XmlVersion;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->isCollectingNSAttributes()Z\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->isCollectingNSAttributes()Z\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->isInlineCollapsed()Z\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->isInlineCollapsed()Z\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->policyBuilder()Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->policyBuilder()Lnl/adaptivity/xmlutil/serialization/DefaultXmlSerializationPolicy$Builder;\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setAutoPolymorphic(Ljava/lang/Boolean;)V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setAutoPolymorphic(Ljava/lang/Boolean;)V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setIndent()V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setIndent()V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setPolicy(Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;)V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setPolicy(Lnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;)V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setXmlDeclMode()V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setXmlDeclMode()V\nHSPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setXmlVersion()V\nPLnl/adaptivity/xmlutil/serialization/XmlConfig$Builder;->setXmlVersion()V\nLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy;\nLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;\nHSPLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;-><init>(Ljava/lang/String;I)V\nPLnl/adaptivity/xmlutil/serialization/XmlSerializationPolicy$XmlEncodeDefault;-><init>(Ljava/lang/String;I)V\nLnl/adaptivity/xmlutil/serialization/impl/XmlQNameSerializer;\nHSPLnl/adaptivity/xmlutil/serialization/impl/XmlQNameSerializer;-><clinit>()V\nPLnl/adaptivity/xmlutil/serialization/impl/XmlQNameSerializer;-><clinit>()V\nHSPLnl/adaptivity/xmlutil/serialization/impl/XmlQNameSerializer;-><init>()V\nPLnl/adaptivity/xmlutil/serialization/impl/XmlQNameSerializer;-><init>()V\nLnl/adaptivity/xmlutil/util/CompactFragment;\nLnl/adaptivity/xmlutil/util/ICompactFragment;\nLokhttp3/Address;\nHSPLokhttp3/Address;-><init>(Ljava/lang/String;ILokhttp3/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lokhttp3/CertificatePinner;Lokhttp3/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V\nPLokhttp3/Address;-><init>(Ljava/lang/String;ILokhttp3/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lokhttp3/CertificatePinner;Lokhttp3/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V\nHSPLokhttp3/Address;->certificatePinner()Lokhttp3/CertificatePinner;\nPLokhttp3/Address;->certificatePinner()Lokhttp3/CertificatePinner;\nHSPLokhttp3/Address;->connectionSpecs()Ljava/util/List;\nPLokhttp3/Address;->connectionSpecs()Ljava/util/List;\nHSPLokhttp3/Address;->dns()Lokhttp3/Dns;\nPLokhttp3/Address;->dns()Lokhttp3/Dns;\nHSPLokhttp3/Address;->hashCode()I\nPLokhttp3/Address;->hashCode()I\nHSPLokhttp3/Address;->hostnameVerifier()Ljavax/net/ssl/HostnameVerifier;\nPLokhttp3/Address;->hostnameVerifier()Ljavax/net/ssl/HostnameVerifier;\nHSPLokhttp3/Address;->protocols()Ljava/util/List;\nPLokhttp3/Address;->protocols()Ljava/util/List;\nHSPLokhttp3/Address;->proxy()Ljava/net/Proxy;\nPLokhttp3/Address;->proxy()Ljava/net/Proxy;\nHSPLokhttp3/Address;->proxySelector()Ljava/net/ProxySelector;\nPLokhttp3/Address;->proxySelector()Ljava/net/ProxySelector;\nHSPLokhttp3/Address;->socketFactory()Ljavax/net/SocketFactory;\nPLokhttp3/Address;->socketFactory()Ljavax/net/SocketFactory;\nHSPLokhttp3/Address;->sslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;\nPLokhttp3/Address;->sslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;\nHSPLokhttp3/Address;->url()Lokhttp3/HttpUrl;\nPLokhttp3/Address;->url()Lokhttp3/HttpUrl;\nLokhttp3/Authenticator;\nHSPLokhttp3/Authenticator;-><clinit>()V\nPLokhttp3/Authenticator;-><clinit>()V\nLokhttp3/Authenticator$Companion;\nHSPLokhttp3/Authenticator$Companion;-><clinit>()V\nPLokhttp3/Authenticator$Companion;-><clinit>()V\nHSPLokhttp3/Authenticator$Companion;-><init>()V\nPLokhttp3/Authenticator$Companion;-><init>()V\nLokhttp3/Authenticator$Companion$AuthenticatorNone;\nHSPLokhttp3/Authenticator$Companion$AuthenticatorNone;-><init>()V\nPLokhttp3/Authenticator$Companion$AuthenticatorNone;-><init>()V\nLokhttp3/Cache;\nHSPLokhttp3/Cache;-><clinit>()V\nPLokhttp3/Cache;-><clinit>()V\nHSPLokhttp3/Cache;-><init>(Ljava/io/File;J)V\nPLokhttp3/Cache;-><init>(Ljava/io/File;J)V\nHSPLokhttp3/Cache;-><init>(Lokio/Path;JLokio/FileSystem;)V\nPLokhttp3/Cache;-><init>(Lokio/Path;JLokio/FileSystem;)V\nHSPLokhttp3/Cache;->get$okhttp(Lokhttp3/Request;)Lokhttp3/Response;\nPLokhttp3/Cache;->get$okhttp(Lokhttp3/Request;)Lokhttp3/Response;\nHSPLokhttp3/Cache;->getWriteSuccessCount$okhttp()I\nPLokhttp3/Cache;->getWriteSuccessCount$okhttp()I\nHSPLokhttp3/Cache;->put$okhttp(Lokhttp3/Response;)Lokhttp3/internal/cache/CacheRequest;\nPLokhttp3/Cache;->put$okhttp(Lokhttp3/Response;)Lokhttp3/internal/cache/CacheRequest;\nHSPLokhttp3/Cache;->setWriteSuccessCount$okhttp(I)V\nPLokhttp3/Cache;->setWriteSuccessCount$okhttp(I)V\nHSPLokhttp3/Cache;->trackResponse$okhttp(Lokhttp3/internal/cache/CacheStrategy;)V\nPLokhttp3/Cache;->trackResponse$okhttp(Lokhttp3/internal/cache/CacheStrategy;)V\nLokhttp3/Cache$Companion;\nHSPLokhttp3/Cache$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/Cache$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/Cache$Companion;->hasVaryAll(Lokhttp3/Response;)Z\nPLokhttp3/Cache$Companion;->hasVaryAll(Lokhttp3/Response;)Z\nHSPLokhttp3/Cache$Companion;->key(Lokhttp3/HttpUrl;)Ljava/lang/String;\nPLokhttp3/Cache$Companion;->key(Lokhttp3/HttpUrl;)Ljava/lang/String;\nHSPLokhttp3/Cache$Companion;->varyFields(Lokhttp3/Headers;)Ljava/util/Set;\nPLokhttp3/Cache$Companion;->varyFields(Lokhttp3/Headers;)Ljava/util/Set;\nHSPLokhttp3/Cache$Companion;->varyHeaders(Lokhttp3/Response;)Lokhttp3/Headers;\nPLokhttp3/Cache$Companion;->varyHeaders(Lokhttp3/Response;)Lokhttp3/Headers;\nLokhttp3/Cache$Entry;\nHSPLokhttp3/Cache$Entry;-><clinit>()V\nPLokhttp3/Cache$Entry;-><clinit>()V\nHSPLokhttp3/Cache$Entry;-><init>(Lokhttp3/Response;)V\nPLokhttp3/Cache$Entry;-><init>(Lokhttp3/Response;)V\nHSPLokhttp3/Cache$Entry;->writeCertList(Lokio/BufferedSink;Ljava/util/List;)V\nPLokhttp3/Cache$Entry;->writeCertList(Lokio/BufferedSink;Ljava/util/List;)V\nHSPLokhttp3/Cache$Entry;->writeTo(Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nPLokhttp3/Cache$Entry;->writeTo(Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nLokhttp3/Cache$Entry$Companion;\nHSPLokhttp3/Cache$Entry$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/Cache$Entry$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/Cache$RealCacheRequest;\nHSPLokhttp3/Cache$RealCacheRequest;-><init>(Lokhttp3/Cache;Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nPLokhttp3/Cache$RealCacheRequest;-><init>(Lokhttp3/Cache;Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nHSPLokhttp3/Cache$RealCacheRequest;->access$getEditor$p(Lokhttp3/Cache$RealCacheRequest;)Lokhttp3/internal/cache/DiskLruCache$Editor;\nPLokhttp3/Cache$RealCacheRequest;->access$getEditor$p(Lokhttp3/Cache$RealCacheRequest;)Lokhttp3/internal/cache/DiskLruCache$Editor;\nHSPLokhttp3/Cache$RealCacheRequest;->body()Lokio/Sink;\nPLokhttp3/Cache$RealCacheRequest;->body()Lokio/Sink;\nHSPLokhttp3/Cache$RealCacheRequest;->getDone()Z\nPLokhttp3/Cache$RealCacheRequest;->getDone()Z\nHSPLokhttp3/Cache$RealCacheRequest;->setDone(Z)V\nPLokhttp3/Cache$RealCacheRequest;->setDone(Z)V\nLokhttp3/Cache$RealCacheRequest$1;\nHSPLokhttp3/Cache$RealCacheRequest$1;-><init>(Lokhttp3/Cache;Lokhttp3/Cache$RealCacheRequest;Lokio/Sink;)V\nPLokhttp3/Cache$RealCacheRequest$1;-><init>(Lokhttp3/Cache;Lokhttp3/Cache$RealCacheRequest;Lokio/Sink;)V\nHSPLokhttp3/Cache$RealCacheRequest$1;->close()V\nPLokhttp3/Cache$RealCacheRequest$1;->close()V\nLokhttp3/CacheControl;\nHSPLokhttp3/CacheControl;-><clinit>()V\nPLokhttp3/CacheControl;-><clinit>()V\nHSPLokhttp3/CacheControl;-><init>(ZZIIZZZIIZZZLjava/lang/String;)V\nPLokhttp3/CacheControl;-><init>(ZZIIZZZIIZZZLjava/lang/String;)V\nHSPLokhttp3/CacheControl;->getHeaderValue$okhttp()Ljava/lang/String;\nPLokhttp3/CacheControl;->getHeaderValue$okhttp()Ljava/lang/String;\nHSPLokhttp3/CacheControl;->immutable()Z\nPLokhttp3/CacheControl;->immutable()Z\nHSPLokhttp3/CacheControl;->isPrivate()Z\nPLokhttp3/CacheControl;->isPrivate()Z\nHSPLokhttp3/CacheControl;->isPublic()Z\nPLokhttp3/CacheControl;->isPublic()Z\nHSPLokhttp3/CacheControl;->maxAgeSeconds()I\nPLokhttp3/CacheControl;->maxAgeSeconds()I\nHSPLokhttp3/CacheControl;->maxStaleSeconds()I\nPLokhttp3/CacheControl;->maxStaleSeconds()I\nHSPLokhttp3/CacheControl;->minFreshSeconds()I\nPLokhttp3/CacheControl;->minFreshSeconds()I\nHSPLokhttp3/CacheControl;->mustRevalidate()Z\nPLokhttp3/CacheControl;->mustRevalidate()Z\nHSPLokhttp3/CacheControl;->noCache()Z\nPLokhttp3/CacheControl;->noCache()Z\nHSPLokhttp3/CacheControl;->noStore()Z\nPLokhttp3/CacheControl;->noStore()Z\nHSPLokhttp3/CacheControl;->noTransform()Z\nPLokhttp3/CacheControl;->noTransform()Z\nHSPLokhttp3/CacheControl;->onlyIfCached()Z\nPLokhttp3/CacheControl;->onlyIfCached()Z\nHSPLokhttp3/CacheControl;->sMaxAgeSeconds()I\nPLokhttp3/CacheControl;->sMaxAgeSeconds()I\nHSPLokhttp3/CacheControl;->setHeaderValue$okhttp(Ljava/lang/String;)V\nPLokhttp3/CacheControl;->setHeaderValue$okhttp(Ljava/lang/String;)V\nLokhttp3/CacheControl$Builder;\nHSPLokhttp3/CacheControl$Builder;-><init>()V\nPLokhttp3/CacheControl$Builder;-><init>()V\nHSPLokhttp3/CacheControl$Builder;->getImmutable$okhttp()Z\nPLokhttp3/CacheControl$Builder;->getImmutable$okhttp()Z\nHSPLokhttp3/CacheControl$Builder;->getMaxAgeSeconds$okhttp()I\nPLokhttp3/CacheControl$Builder;->getMaxAgeSeconds$okhttp()I\nHSPLokhttp3/CacheControl$Builder;->getMaxStaleSeconds$okhttp()I\nPLokhttp3/CacheControl$Builder;->getMaxStaleSeconds$okhttp()I\nHSPLokhttp3/CacheControl$Builder;->getMinFreshSeconds$okhttp()I\nPLokhttp3/CacheControl$Builder;->getMinFreshSeconds$okhttp()I\nHSPLokhttp3/CacheControl$Builder;->getNoCache$okhttp()Z\nPLokhttp3/CacheControl$Builder;->getNoCache$okhttp()Z\nHSPLokhttp3/CacheControl$Builder;->getNoStore$okhttp()Z\nPLokhttp3/CacheControl$Builder;->getNoStore$okhttp()Z\nHSPLokhttp3/CacheControl$Builder;->getNoTransform$okhttp()Z\nPLokhttp3/CacheControl$Builder;->getNoTransform$okhttp()Z\nHSPLokhttp3/CacheControl$Builder;->getOnlyIfCached$okhttp()Z\nPLokhttp3/CacheControl$Builder;->getOnlyIfCached$okhttp()Z\nHSPLokhttp3/CacheControl$Builder;->maxAge(ILjava/util/concurrent/TimeUnit;)Lokhttp3/CacheControl$Builder;\nPLokhttp3/CacheControl$Builder;->maxAge(ILjava/util/concurrent/TimeUnit;)Lokhttp3/CacheControl$Builder;\nHSPLokhttp3/CacheControl$Builder;->maxStale(ILkotlin/time/DurationUnit;)Lokhttp3/CacheControl$Builder;\nPLokhttp3/CacheControl$Builder;->maxStale(ILkotlin/time/DurationUnit;)Lokhttp3/CacheControl$Builder;\nHSPLokhttp3/CacheControl$Builder;->setMaxStaleSeconds$okhttp(I)V\nPLokhttp3/CacheControl$Builder;->setMaxStaleSeconds$okhttp(I)V\nHSPLokhttp3/CacheControl$Builder;->setNoCache$okhttp(Z)V\nPLokhttp3/CacheControl$Builder;->setNoCache$okhttp(Z)V\nHSPLokhttp3/CacheControl$Builder;->setOnlyIfCached$okhttp(Z)V\nPLokhttp3/CacheControl$Builder;->setOnlyIfCached$okhttp(Z)V\nLokhttp3/CacheControl$Companion;\nHSPLokhttp3/CacheControl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/CacheControl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/CacheControl$Companion;->parse(Lokhttp3/Headers;)Lokhttp3/CacheControl;\nPLokhttp3/CacheControl$Companion;->parse(Lokhttp3/Headers;)Lokhttp3/CacheControl;\nLokhttp3/Call;\nLokhttp3/Call$Factory;\nLokhttp3/Callback;\nLokhttp3/CertificatePinner;\nHSPLokhttp3/CertificatePinner;-><clinit>()V\nPLokhttp3/CertificatePinner;-><clinit>()V\nHSPLokhttp3/CertificatePinner;-><init>(Ljava/util/Set;Lokhttp3/internal/tls/CertificateChainCleaner;)V\nPLokhttp3/CertificatePinner;-><init>(Ljava/util/Set;Lokhttp3/internal/tls/CertificateChainCleaner;)V\nHSPLokhttp3/CertificatePinner;-><init>(Ljava/util/Set;Lokhttp3/internal/tls/CertificateChainCleaner;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/CertificatePinner;-><init>(Ljava/util/Set;Lokhttp3/internal/tls/CertificateChainCleaner;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/CertificatePinner;->check$okhttp(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nPLokhttp3/CertificatePinner;->check$okhttp(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/CertificatePinner;->findMatchingPins(Ljava/lang/String;)Ljava/util/List;\nPLokhttp3/CertificatePinner;->findMatchingPins(Ljava/lang/String;)Ljava/util/List;\nHSPLokhttp3/CertificatePinner;->getCertificateChainCleaner$okhttp()Lokhttp3/internal/tls/CertificateChainCleaner;\nPLokhttp3/CertificatePinner;->getCertificateChainCleaner$okhttp()Lokhttp3/internal/tls/CertificateChainCleaner;\nHSPLokhttp3/CertificatePinner;->hashCode()I\nPLokhttp3/CertificatePinner;->hashCode()I\nHSPLokhttp3/CertificatePinner;->withCertificateChainCleaner$okhttp(Lokhttp3/internal/tls/CertificateChainCleaner;)Lokhttp3/CertificatePinner;\nPLokhttp3/CertificatePinner;->withCertificateChainCleaner$okhttp(Lokhttp3/internal/tls/CertificateChainCleaner;)Lokhttp3/CertificatePinner;\nLokhttp3/CertificatePinner$Builder;\nHSPLokhttp3/CertificatePinner$Builder;-><init>()V\nPLokhttp3/CertificatePinner$Builder;-><init>()V\nHSPLokhttp3/CertificatePinner$Builder;->build()Lokhttp3/CertificatePinner;\nPLokhttp3/CertificatePinner$Builder;->build()Lokhttp3/CertificatePinner;\nLokhttp3/CertificatePinner$Companion;\nHSPLokhttp3/CertificatePinner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/CertificatePinner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/CipherSuite;\nHSPLokhttp3/CipherSuite;-><clinit>()V\nPLokhttp3/CipherSuite;-><clinit>()V\nHSPLokhttp3/CipherSuite;-><init>(Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/CipherSuite;-><init>(Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/CipherSuite;->access$getINSTANCES$cp()Ljava/util/Map;\nPLokhttp3/CipherSuite;->access$getINSTANCES$cp()Ljava/util/Map;\nHSPLokhttp3/CipherSuite;->access$getORDER_BY_NAME$cp()Ljava/util/Comparator;\nPLokhttp3/CipherSuite;->access$getORDER_BY_NAME$cp()Ljava/util/Comparator;\nHSPLokhttp3/CipherSuite;->javaName()Ljava/lang/String;\nPLokhttp3/CipherSuite;->javaName()Ljava/lang/String;\nLokhttp3/CipherSuite$Companion;\nHSPLokhttp3/CipherSuite$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/CipherSuite$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/CipherSuite$Companion;->access$init(Lokhttp3/CipherSuite$Companion;Ljava/lang/String;I)Lokhttp3/CipherSuite;\nPLokhttp3/CipherSuite$Companion;->access$init(Lokhttp3/CipherSuite$Companion;Ljava/lang/String;I)Lokhttp3/CipherSuite;\nHSPLokhttp3/CipherSuite$Companion;->forJavaName(Ljava/lang/String;)Lokhttp3/CipherSuite;\nPLokhttp3/CipherSuite$Companion;->forJavaName(Ljava/lang/String;)Lokhttp3/CipherSuite;\nLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;\nHSPLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;-><init>()V\nPLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;-><init>()V\nHSPLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nPLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nHSPLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;->compare(Ljava/lang/String;Ljava/lang/String;)I\nHPLokhttp3/CipherSuite$Companion$ORDER_BY_NAME$1;->compare(Ljava/lang/String;Ljava/lang/String;)I\nLokhttp3/Connection;\nLokhttp3/ConnectionPool;\nHSPLokhttp3/ConnectionPool;-><init>()V\nPLokhttp3/ConnectionPool;-><init>()V\nHSPLokhttp3/ConnectionPool;-><init>(IJLjava/util/concurrent/TimeUnit;)V\nPLokhttp3/ConnectionPool;-><init>(IJLjava/util/concurrent/TimeUnit;)V\nHSPLokhttp3/ConnectionPool;-><init>(Lokhttp3/internal/connection/RealConnectionPool;)V\nPLokhttp3/ConnectionPool;-><init>(Lokhttp3/internal/connection/RealConnectionPool;)V\nHSPLokhttp3/ConnectionPool;->getDelegate$okhttp()Lokhttp3/internal/connection/RealConnectionPool;\nPLokhttp3/ConnectionPool;->getDelegate$okhttp()Lokhttp3/internal/connection/RealConnectionPool;\nLokhttp3/ConnectionSpec;\nHSPLokhttp3/ConnectionSpec;-><clinit>()V\nPLokhttp3/ConnectionSpec;-><clinit>()V\nHSPLokhttp3/ConnectionSpec;-><init>(ZZ[Ljava/lang/String;[Ljava/lang/String;)V\nPLokhttp3/ConnectionSpec;-><init>(ZZ[Ljava/lang/String;[Ljava/lang/String;)V\nHSPLokhttp3/ConnectionSpec;->access$getTlsVersionsAsString$p(Lokhttp3/ConnectionSpec;)[Ljava/lang/String;\nPLokhttp3/ConnectionSpec;->access$getTlsVersionsAsString$p(Lokhttp3/ConnectionSpec;)[Ljava/lang/String;\nHSPLokhttp3/ConnectionSpec;->apply$okhttp(Ljavax/net/ssl/SSLSocket;Z)V\nPLokhttp3/ConnectionSpec;->apply$okhttp(Ljavax/net/ssl/SSLSocket;Z)V\nHSPLokhttp3/ConnectionSpec;->cipherSuites()Ljava/util/List;\nPLokhttp3/ConnectionSpec;->cipherSuites()Ljava/util/List;\nHSPLokhttp3/ConnectionSpec;->getCipherSuitesAsString$okhttp()[Ljava/lang/String;\nPLokhttp3/ConnectionSpec;->getCipherSuitesAsString$okhttp()[Ljava/lang/String;\nHSPLokhttp3/ConnectionSpec;->hashCode()I\nPLokhttp3/ConnectionSpec;->hashCode()I\nHSPLokhttp3/ConnectionSpec;->isCompatible(Ljavax/net/ssl/SSLSocket;)Z\nPLokhttp3/ConnectionSpec;->isCompatible(Ljavax/net/ssl/SSLSocket;)Z\nHSPLokhttp3/ConnectionSpec;->isTls()Z\nPLokhttp3/ConnectionSpec;->isTls()Z\nHSPLokhttp3/ConnectionSpec;->supportsTlsExtensions()Z\nPLokhttp3/ConnectionSpec;->supportsTlsExtensions()Z\nHSPLokhttp3/ConnectionSpec;->tlsVersions()Ljava/util/List;\nPLokhttp3/ConnectionSpec;->tlsVersions()Ljava/util/List;\nLokhttp3/ConnectionSpec$Builder;\nHSPLokhttp3/ConnectionSpec$Builder;-><init>(Lokhttp3/ConnectionSpec;)V\nPLokhttp3/ConnectionSpec$Builder;-><init>(Lokhttp3/ConnectionSpec;)V\nHSPLokhttp3/ConnectionSpec$Builder;-><init>(Z)V\nPLokhttp3/ConnectionSpec$Builder;-><init>(Z)V\nHSPLokhttp3/ConnectionSpec$Builder;->build()Lokhttp3/ConnectionSpec;\nPLokhttp3/ConnectionSpec$Builder;->build()Lokhttp3/ConnectionSpec;\nHSPLokhttp3/ConnectionSpec$Builder;->cipherSuites([Ljava/lang/String;)Lokhttp3/ConnectionSpec$Builder;\nPLokhttp3/ConnectionSpec$Builder;->cipherSuites([Ljava/lang/String;)Lokhttp3/ConnectionSpec$Builder;\nHSPLokhttp3/ConnectionSpec$Builder;->cipherSuites([Lokhttp3/CipherSuite;)Lokhttp3/ConnectionSpec$Builder;\nPLokhttp3/ConnectionSpec$Builder;->cipherSuites([Lokhttp3/CipherSuite;)Lokhttp3/ConnectionSpec$Builder;\nHSPLokhttp3/ConnectionSpec$Builder;->supportsTlsExtensions(Z)Lokhttp3/ConnectionSpec$Builder;\nPLokhttp3/ConnectionSpec$Builder;->supportsTlsExtensions(Z)Lokhttp3/ConnectionSpec$Builder;\nHSPLokhttp3/ConnectionSpec$Builder;->tlsVersions([Ljava/lang/String;)Lokhttp3/ConnectionSpec$Builder;\nPLokhttp3/ConnectionSpec$Builder;->tlsVersions([Ljava/lang/String;)Lokhttp3/ConnectionSpec$Builder;\nHSPLokhttp3/ConnectionSpec$Builder;->tlsVersions([Lokhttp3/TlsVersion;)Lokhttp3/ConnectionSpec$Builder;\nPLokhttp3/ConnectionSpec$Builder;->tlsVersions([Lokhttp3/TlsVersion;)Lokhttp3/ConnectionSpec$Builder;\nLokhttp3/ConnectionSpec$Companion;\nHSPLokhttp3/ConnectionSpec$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/ConnectionSpec$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/Cookie;\nHSPLokhttp3/Cookie;-><clinit>()V\nPLokhttp3/Cookie;-><clinit>()V\nLokhttp3/Cookie$Companion;\nHSPLokhttp3/Cookie$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/Cookie$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/Cookie$Companion;->parseAll(Lokhttp3/HttpUrl;Lokhttp3/Headers;)Ljava/util/List;\nPLokhttp3/Cookie$Companion;->parseAll(Lokhttp3/HttpUrl;Lokhttp3/Headers;)Ljava/util/List;\nLokhttp3/CookieJar;\nHSPLokhttp3/CookieJar;-><clinit>()V\nPLokhttp3/CookieJar;-><clinit>()V\nLokhttp3/CookieJar$Companion;\nHSPLokhttp3/CookieJar$Companion;-><clinit>()V\nPLokhttp3/CookieJar$Companion;-><clinit>()V\nHSPLokhttp3/CookieJar$Companion;-><init>()V\nPLokhttp3/CookieJar$Companion;-><init>()V\nLokhttp3/CookieJar$Companion$NoCookies;\nHSPLokhttp3/CookieJar$Companion$NoCookies;-><init>()V\nPLokhttp3/CookieJar$Companion$NoCookies;-><init>()V\nLokhttp3/Dispatcher;\nHSPLokhttp3/Dispatcher;-><init>()V\nPLokhttp3/Dispatcher;-><init>()V\nHSPLokhttp3/Dispatcher;->enqueue$okhttp(Lokhttp3/internal/connection/RealCall$AsyncCall;)V\nPLokhttp3/Dispatcher;->enqueue$okhttp(Lokhttp3/internal/connection/RealCall$AsyncCall;)V\nHSPLokhttp3/Dispatcher;->executorService()Ljava/util/concurrent/ExecutorService;\nPLokhttp3/Dispatcher;->executorService()Ljava/util/concurrent/ExecutorService;\nHSPLokhttp3/Dispatcher;->finished$okhttp(Lokhttp3/internal/connection/RealCall$AsyncCall;)V\nPLokhttp3/Dispatcher;->finished$okhttp(Lokhttp3/internal/connection/RealCall$AsyncCall;)V\nHSPLokhttp3/Dispatcher;->finished(Ljava/util/ArrayDeque;Ljava/lang/Object;)V\nPLokhttp3/Dispatcher;->finished(Ljava/util/ArrayDeque;Ljava/lang/Object;)V\nHSPLokhttp3/Dispatcher;->promoteAndExecute()Z\nPLokhttp3/Dispatcher;->promoteAndExecute()Z\nHSPLokhttp3/Dispatcher;->runningCallsCount()I\nPLokhttp3/Dispatcher;->runningCallsCount()I\nLokhttp3/Dns;\nHSPLokhttp3/Dns;-><clinit>()V\nPLokhttp3/Dns;-><clinit>()V\nLokhttp3/Dns$Companion;\nHSPLokhttp3/Dns$Companion;-><clinit>()V\nPLokhttp3/Dns$Companion;-><clinit>()V\nHSPLokhttp3/Dns$Companion;-><init>()V\nPLokhttp3/Dns$Companion;-><init>()V\nLokhttp3/Dns$Companion$DnsSystem;\nHSPLokhttp3/Dns$Companion$DnsSystem;-><init>()V\nPLokhttp3/Dns$Companion$DnsSystem;-><init>()V\nHSPLokhttp3/Dns$Companion$DnsSystem;->lookup(Ljava/lang/String;)Ljava/util/List;\nPLokhttp3/Dns$Companion$DnsSystem;->lookup(Ljava/lang/String;)Ljava/util/List;\nLokhttp3/EventListener;\nHSPLokhttp3/EventListener;-><clinit>()V\nPLokhttp3/EventListener;-><clinit>()V\nHSPLokhttp3/EventListener;-><init>()V\nPLokhttp3/EventListener;-><init>()V\nHSPLokhttp3/EventListener;->cacheMiss(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->cacheMiss(Lokhttp3/Call;)V\nHSPLokhttp3/EventListener;->callEnd(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->callEnd(Lokhttp3/Call;)V\nHSPLokhttp3/EventListener;->callStart(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->callStart(Lokhttp3/Call;)V\nHSPLokhttp3/EventListener;->connectEnd(Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;Lokhttp3/Protocol;)V\nPLokhttp3/EventListener;->connectEnd(Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;Lokhttp3/Protocol;)V\nHSPLokhttp3/EventListener;->connectFailed(Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;Lokhttp3/Protocol;Ljava/io/IOException;)V\nPLokhttp3/EventListener;->connectFailed(Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;Lokhttp3/Protocol;Ljava/io/IOException;)V\nHSPLokhttp3/EventListener;->connectStart(Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;)V\nPLokhttp3/EventListener;->connectStart(Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;)V\nHSPLokhttp3/EventListener;->connectionAcquired(Lokhttp3/Call;Lokhttp3/Connection;)V\nPLokhttp3/EventListener;->connectionAcquired(Lokhttp3/Call;Lokhttp3/Connection;)V\nHSPLokhttp3/EventListener;->connectionReleased(Lokhttp3/Call;Lokhttp3/Connection;)V\nPLokhttp3/EventListener;->connectionReleased(Lokhttp3/Call;Lokhttp3/Connection;)V\nHSPLokhttp3/EventListener;->dnsEnd(Lokhttp3/Call;Ljava/lang/String;Ljava/util/List;)V\nPLokhttp3/EventListener;->dnsEnd(Lokhttp3/Call;Ljava/lang/String;Ljava/util/List;)V\nHSPLokhttp3/EventListener;->dnsStart(Lokhttp3/Call;Ljava/lang/String;)V\nPLokhttp3/EventListener;->dnsStart(Lokhttp3/Call;Ljava/lang/String;)V\nHSPLokhttp3/EventListener;->proxySelectEnd(Lokhttp3/Call;Lokhttp3/HttpUrl;Ljava/util/List;)V\nPLokhttp3/EventListener;->proxySelectEnd(Lokhttp3/Call;Lokhttp3/HttpUrl;Ljava/util/List;)V\nHSPLokhttp3/EventListener;->proxySelectStart(Lokhttp3/Call;Lokhttp3/HttpUrl;)V\nPLokhttp3/EventListener;->proxySelectStart(Lokhttp3/Call;Lokhttp3/HttpUrl;)V\nHSPLokhttp3/EventListener;->requestHeadersEnd(Lokhttp3/Call;Lokhttp3/Request;)V\nPLokhttp3/EventListener;->requestHeadersEnd(Lokhttp3/Call;Lokhttp3/Request;)V\nHSPLokhttp3/EventListener;->requestHeadersStart(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->requestHeadersStart(Lokhttp3/Call;)V\nHSPLokhttp3/EventListener;->responseBodyEnd(Lokhttp3/Call;J)V\nPLokhttp3/EventListener;->responseBodyEnd(Lokhttp3/Call;J)V\nHSPLokhttp3/EventListener;->responseBodyStart(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->responseBodyStart(Lokhttp3/Call;)V\nHSPLokhttp3/EventListener;->responseHeadersEnd(Lokhttp3/Call;Lokhttp3/Response;)V\nPLokhttp3/EventListener;->responseHeadersEnd(Lokhttp3/Call;Lokhttp3/Response;)V\nHSPLokhttp3/EventListener;->responseHeadersStart(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->responseHeadersStart(Lokhttp3/Call;)V\nHSPLokhttp3/EventListener;->secureConnectEnd(Lokhttp3/Call;Lokhttp3/Handshake;)V\nPLokhttp3/EventListener;->secureConnectEnd(Lokhttp3/Call;Lokhttp3/Handshake;)V\nHSPLokhttp3/EventListener;->secureConnectStart(Lokhttp3/Call;)V\nPLokhttp3/EventListener;->secureConnectStart(Lokhttp3/Call;)V\nLokhttp3/EventListener$Companion;\nHSPLokhttp3/EventListener$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/EventListener$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/EventListener$Companion$NONE$1;\nHSPLokhttp3/EventListener$Companion$NONE$1;-><init>()V\nPLokhttp3/EventListener$Companion$NONE$1;-><init>()V\nLokhttp3/EventListener$Factory;\nLokhttp3/FormBody;\nHSPLokhttp3/FormBody;-><clinit>()V\nPLokhttp3/FormBody;-><clinit>()V\nHSPLokhttp3/FormBody;-><init>(Ljava/util/List;Ljava/util/List;)V\nPLokhttp3/FormBody;-><init>(Ljava/util/List;Ljava/util/List;)V\nLokhttp3/FormBody$Builder;\nHSPLokhttp3/FormBody$Builder;-><init>(Ljava/nio/charset/Charset;)V\nPLokhttp3/FormBody$Builder;-><init>(Ljava/nio/charset/Charset;)V\nHSPLokhttp3/FormBody$Builder;-><init>(Ljava/nio/charset/Charset;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/FormBody$Builder;-><init>(Ljava/nio/charset/Charset;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/FormBody$Builder;->build()Lokhttp3/FormBody;\nPLokhttp3/FormBody$Builder;->build()Lokhttp3/FormBody;\nLokhttp3/FormBody$Companion;\nHSPLokhttp3/FormBody$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/FormBody$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/Handshake;\nHSPLokhttp3/Handshake;-><clinit>()V\nPLokhttp3/Handshake;-><clinit>()V\nHSPLokhttp3/Handshake;-><init>(Lokhttp3/TlsVersion;Lokhttp3/CipherSuite;Ljava/util/List;Lkotlin/jvm/functions/Function0;)V\nPLokhttp3/Handshake;-><init>(Lokhttp3/TlsVersion;Lokhttp3/CipherSuite;Ljava/util/List;Lkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/Handshake;->cipherSuite()Lokhttp3/CipherSuite;\nPLokhttp3/Handshake;->cipherSuite()Lokhttp3/CipherSuite;\nHSPLokhttp3/Handshake;->localCertificates()Ljava/util/List;\nPLokhttp3/Handshake;->localCertificates()Ljava/util/List;\nHSPLokhttp3/Handshake;->peerCertificates()Ljava/util/List;\nPLokhttp3/Handshake;->peerCertificates()Ljava/util/List;\nHSPLokhttp3/Handshake;->tlsVersion()Lokhttp3/TlsVersion;\nPLokhttp3/Handshake;->tlsVersion()Lokhttp3/TlsVersion;\nLokhttp3/Handshake$Companion;\nHSPLokhttp3/Handshake$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/Handshake$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/Handshake$Companion;->get(Ljavax/net/ssl/SSLSession;)Lokhttp3/Handshake;\nPLokhttp3/Handshake$Companion;->get(Ljavax/net/ssl/SSLSession;)Lokhttp3/Handshake;\nLokhttp3/Handshake$Companion$handshake$1;\nHSPLokhttp3/Handshake$Companion$handshake$1;-><init>(Ljava/util/List;)V\nPLokhttp3/Handshake$Companion$handshake$1;-><init>(Ljava/util/List;)V\nHSPLokhttp3/Handshake$Companion$handshake$1;->invoke()Ljava/lang/Object;\nPLokhttp3/Handshake$Companion$handshake$1;->invoke()Ljava/lang/Object;\nLokhttp3/Handshake$peerCertificates$2;\nHSPLokhttp3/Handshake$peerCertificates$2;-><init>(Lkotlin/jvm/functions/Function0;)V\nPLokhttp3/Handshake$peerCertificates$2;-><init>(Lkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/Handshake$peerCertificates$2;->invoke()Ljava/lang/Object;\nPLokhttp3/Handshake$peerCertificates$2;->invoke()Ljava/lang/Object;\nHSPLokhttp3/Handshake$peerCertificates$2;->invoke()Ljava/util/List;\nPLokhttp3/Handshake$peerCertificates$2;->invoke()Ljava/util/List;\nLokhttp3/Headers;\nHSPLokhttp3/Headers;-><clinit>()V\nPLokhttp3/Headers;-><clinit>()V\nHSPLokhttp3/Headers;-><init>([Ljava/lang/String;)V\nPLokhttp3/Headers;-><init>([Ljava/lang/String;)V\nHSPLokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;\nHSPLokhttp3/Headers;->getNamesAndValues$okhttp()[Ljava/lang/String;\nPLokhttp3/Headers;->getNamesAndValues$okhttp()[Ljava/lang/String;\nHSPLokhttp3/Headers;->size()I\nPLokhttp3/Headers;->size()I\nHSPLokhttp3/Headers;->values(Ljava/lang/String;)Ljava/util/List;\nPLokhttp3/Headers;->values(Ljava/lang/String;)Ljava/util/List;\nLokhttp3/Headers$Builder;\nHSPLokhttp3/Headers$Builder;-><init>()V\nPLokhttp3/Headers$Builder;-><init>()V\nHSPLokhttp3/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/Headers$Builder;->addLenient$okhttp(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/Headers$Builder;->addLenient$okhttp(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/Headers$Builder;->getNamesAndValues$okhttp()Ljava/util/List;\nPLokhttp3/Headers$Builder;->getNamesAndValues$okhttp()Ljava/util/List;\nHSPLokhttp3/Headers$Builder;->removeAll(Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/Headers$Builder;->removeAll(Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/Headers$Builder;->set(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/Headers$Builder;->set(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nLokhttp3/Headers$Companion;\nHSPLokhttp3/Headers$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/Headers$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/Headers$Companion;->of([Ljava/lang/String;)Lokhttp3/Headers;\nPLokhttp3/Headers$Companion;->of([Ljava/lang/String;)Lokhttp3/Headers;\nLokhttp3/HttpUrl;\nHSPLokhttp3/HttpUrl;-><clinit>()V\nPLokhttp3/HttpUrl;-><clinit>()V\nHSPLokhttp3/HttpUrl;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V\nPLokhttp3/HttpUrl;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V\nHSPLokhttp3/HttpUrl;->encodedFragment()Ljava/lang/String;\nPLokhttp3/HttpUrl;->encodedFragment()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->encodedPassword()Ljava/lang/String;\nPLokhttp3/HttpUrl;->encodedPassword()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->encodedPath()Ljava/lang/String;\nPLokhttp3/HttpUrl;->encodedPath()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->encodedPathSegments()Ljava/util/List;\nPLokhttp3/HttpUrl;->encodedPathSegments()Ljava/util/List;\nHSPLokhttp3/HttpUrl;->encodedQuery()Ljava/lang/String;\nPLokhttp3/HttpUrl;->encodedQuery()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->encodedUsername()Ljava/lang/String;\nPLokhttp3/HttpUrl;->encodedUsername()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->hashCode()I\nPLokhttp3/HttpUrl;->hashCode()I\nHSPLokhttp3/HttpUrl;->host()Ljava/lang/String;\nPLokhttp3/HttpUrl;->host()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->isHttps()Z\nPLokhttp3/HttpUrl;->isHttps()Z\nHSPLokhttp3/HttpUrl;->newBuilder()Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl;->newBuilder()Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl;->newBuilder(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl;->newBuilder(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl;->port()I\nPLokhttp3/HttpUrl;->port()I\nHSPLokhttp3/HttpUrl;->redact()Ljava/lang/String;\nPLokhttp3/HttpUrl;->redact()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->scheme()Ljava/lang/String;\nPLokhttp3/HttpUrl;->scheme()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->toString()Ljava/lang/String;\nPLokhttp3/HttpUrl;->toString()Ljava/lang/String;\nHSPLokhttp3/HttpUrl;->uri()Ljava/net/URI;\nPLokhttp3/HttpUrl;->uri()Ljava/net/URI;\nLokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;-><clinit>()V\nPLokhttp3/HttpUrl$Builder;-><clinit>()V\nHSPLokhttp3/HttpUrl$Builder;-><init>()V\nPLokhttp3/HttpUrl$Builder;-><init>()V\nHSPLokhttp3/HttpUrl$Builder;->build()Lokhttp3/HttpUrl;\nPLokhttp3/HttpUrl$Builder;->build()Lokhttp3/HttpUrl;\nHSPLokhttp3/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->getEncodedPathSegments$okhttp()Ljava/util/List;\nPLokhttp3/HttpUrl$Builder;->getEncodedPathSegments$okhttp()Ljava/util/List;\nHSPLokhttp3/HttpUrl$Builder;->host(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->host(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->isDot(Ljava/lang/String;)Z\nPLokhttp3/HttpUrl$Builder;->isDot(Ljava/lang/String;)Z\nHSPLokhttp3/HttpUrl$Builder;->isDotDot(Ljava/lang/String;)Z\nPLokhttp3/HttpUrl$Builder;->isDotDot(Ljava/lang/String;)Z\nHSPLokhttp3/HttpUrl$Builder;->parse$okhttp(Lokhttp3/HttpUrl;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->parse$okhttp(Lokhttp3/HttpUrl;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->password(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->password(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->port(I)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->port(I)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->push(Ljava/lang/String;IIZZ)V\nPLokhttp3/HttpUrl$Builder;->push(Ljava/lang/String;IIZZ)V\nHSPLokhttp3/HttpUrl$Builder;->reencodeForUri$okhttp()Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->reencodeForUri$okhttp()Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->resolvePath(IILjava/lang/String;)V\nPLokhttp3/HttpUrl$Builder;->resolvePath(IILjava/lang/String;)V\nHSPLokhttp3/HttpUrl$Builder;->scheme(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->scheme(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nHSPLokhttp3/HttpUrl$Builder;->setEncodedFragment$okhttp(Ljava/lang/String;)V\nPLokhttp3/HttpUrl$Builder;->setEncodedFragment$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/HttpUrl$Builder;->setEncodedPassword$okhttp(Ljava/lang/String;)V\nPLokhttp3/HttpUrl$Builder;->setEncodedPassword$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/HttpUrl$Builder;->setEncodedUsername$okhttp(Ljava/lang/String;)V\nPLokhttp3/HttpUrl$Builder;->setEncodedUsername$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/HttpUrl$Builder;->setHost$okhttp(Ljava/lang/String;)V\nPLokhttp3/HttpUrl$Builder;->setHost$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/HttpUrl$Builder;->setPort$okhttp(I)V\nPLokhttp3/HttpUrl$Builder;->setPort$okhttp(I)V\nHSPLokhttp3/HttpUrl$Builder;->setScheme$okhttp(Ljava/lang/String;)V\nPLokhttp3/HttpUrl$Builder;->setScheme$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/HttpUrl$Builder;->toString()Ljava/lang/String;\nPLokhttp3/HttpUrl$Builder;->toString()Ljava/lang/String;\nHSPLokhttp3/HttpUrl$Builder;->username(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nPLokhttp3/HttpUrl$Builder;->username(Ljava/lang/String;)Lokhttp3/HttpUrl$Builder;\nLokhttp3/HttpUrl$Builder$Companion;\nHSPLokhttp3/HttpUrl$Builder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/HttpUrl$Builder$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/HttpUrl$Builder$Companion;->access$portColonOffset(Lokhttp3/HttpUrl$Builder$Companion;Ljava/lang/String;II)I\nPLokhttp3/HttpUrl$Builder$Companion;->access$portColonOffset(Lokhttp3/HttpUrl$Builder$Companion;Ljava/lang/String;II)I\nHSPLokhttp3/HttpUrl$Builder$Companion;->access$schemeDelimiterOffset(Lokhttp3/HttpUrl$Builder$Companion;Ljava/lang/String;II)I\nPLokhttp3/HttpUrl$Builder$Companion;->access$schemeDelimiterOffset(Lokhttp3/HttpUrl$Builder$Companion;Ljava/lang/String;II)I\nHSPLokhttp3/HttpUrl$Builder$Companion;->access$slashCount(Lokhttp3/HttpUrl$Builder$Companion;Ljava/lang/String;II)I\nPLokhttp3/HttpUrl$Builder$Companion;->access$slashCount(Lokhttp3/HttpUrl$Builder$Companion;Ljava/lang/String;II)I\nLokhttp3/HttpUrl$Companion;\nHSPLokhttp3/HttpUrl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/HttpUrl$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/HttpUrl$Companion;->canonicalize$okhttp$default(Lokhttp3/HttpUrl$Companion;Ljava/lang/String;IILjava/lang/String;ZZZZLjava/nio/charset/Charset;ILjava/lang/Object;)Ljava/lang/String;\nPLokhttp3/HttpUrl$Companion;->canonicalize$okhttp$default(Lokhttp3/HttpUrl$Companion;Ljava/lang/String;IILjava/lang/String;ZZZZLjava/nio/charset/Charset;ILjava/lang/Object;)Ljava/lang/String;\nHSPLokhttp3/HttpUrl$Companion;->canonicalize$okhttp(Ljava/lang/String;IILjava/lang/String;ZZZZLjava/nio/charset/Charset;)Ljava/lang/String;\nPLokhttp3/HttpUrl$Companion;->canonicalize$okhttp(Ljava/lang/String;IILjava/lang/String;ZZZZLjava/nio/charset/Charset;)Ljava/lang/String;\nHSPLokhttp3/HttpUrl$Companion;->defaultPort(Ljava/lang/String;)I\nPLokhttp3/HttpUrl$Companion;->defaultPort(Ljava/lang/String;)I\nHSPLokhttp3/HttpUrl$Companion;->get(Ljava/lang/String;)Lokhttp3/HttpUrl;\nPLokhttp3/HttpUrl$Companion;->get(Ljava/lang/String;)Lokhttp3/HttpUrl;\nHSPLokhttp3/HttpUrl$Companion;->percentDecode$okhttp$default(Lokhttp3/HttpUrl$Companion;Ljava/lang/String;IIZILjava/lang/Object;)Ljava/lang/String;\nPLokhttp3/HttpUrl$Companion;->percentDecode$okhttp$default(Lokhttp3/HttpUrl$Companion;Ljava/lang/String;IIZILjava/lang/Object;)Ljava/lang/String;\nHSPLokhttp3/HttpUrl$Companion;->percentDecode$okhttp(Ljava/lang/String;IIZ)Ljava/lang/String;\nPLokhttp3/HttpUrl$Companion;->percentDecode$okhttp(Ljava/lang/String;IIZ)Ljava/lang/String;\nHSPLokhttp3/HttpUrl$Companion;->toPathString$okhttp(Ljava/util/List;Ljava/lang/StringBuilder;)V\nPLokhttp3/HttpUrl$Companion;->toPathString$okhttp(Ljava/util/List;Ljava/lang/StringBuilder;)V\nLokhttp3/Interceptor;\nLokhttp3/Interceptor$Chain;\nLokhttp3/MediaType;\nHSPLokhttp3/MediaType;-><clinit>()V\nPLokhttp3/MediaType;-><clinit>()V\nHSPLokhttp3/MediaType;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V\nPLokhttp3/MediaType;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V\nLokhttp3/MediaType$Companion;\nHSPLokhttp3/MediaType$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/MediaType$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/MediaType$Companion;->get(Ljava/lang/String;)Lokhttp3/MediaType;\nPLokhttp3/MediaType$Companion;->get(Ljava/lang/String;)Lokhttp3/MediaType;\nHSPLokhttp3/MediaType$Companion;->parse(Ljava/lang/String;)Lokhttp3/MediaType;\nPLokhttp3/MediaType$Companion;->parse(Ljava/lang/String;)Lokhttp3/MediaType;\nLokhttp3/OkHttpClient;\nHSPLokhttp3/OkHttpClient;-><clinit>()V\nPLokhttp3/OkHttpClient;-><clinit>()V\nHSPLokhttp3/OkHttpClient;-><init>(Lokhttp3/OkHttpClient$Builder;)V\nPLokhttp3/OkHttpClient;-><init>(Lokhttp3/OkHttpClient$Builder;)V\nHSPLokhttp3/OkHttpClient;->access$getDEFAULT_CONNECTION_SPECS$cp()Ljava/util/List;\nPLokhttp3/OkHttpClient;->access$getDEFAULT_CONNECTION_SPECS$cp()Ljava/util/List;\nHSPLokhttp3/OkHttpClient;->access$getDEFAULT_PROTOCOLS$cp()Ljava/util/List;\nPLokhttp3/OkHttpClient;->access$getDEFAULT_PROTOCOLS$cp()Ljava/util/List;\nHSPLokhttp3/OkHttpClient;->access$getSslSocketFactoryOrNull$p(Lokhttp3/OkHttpClient;)Ljavax/net/ssl/SSLSocketFactory;\nPLokhttp3/OkHttpClient;->access$getSslSocketFactoryOrNull$p(Lokhttp3/OkHttpClient;)Ljavax/net/ssl/SSLSocketFactory;\nHSPLokhttp3/OkHttpClient;->authenticator()Lokhttp3/Authenticator;\nPLokhttp3/OkHttpClient;->authenticator()Lokhttp3/Authenticator;\nHSPLokhttp3/OkHttpClient;->cache()Lokhttp3/Cache;\nPLokhttp3/OkHttpClient;->cache()Lokhttp3/Cache;\nHSPLokhttp3/OkHttpClient;->callTimeoutMillis()I\nPLokhttp3/OkHttpClient;->callTimeoutMillis()I\nHSPLokhttp3/OkHttpClient;->certificateChainCleaner()Lokhttp3/internal/tls/CertificateChainCleaner;\nPLokhttp3/OkHttpClient;->certificateChainCleaner()Lokhttp3/internal/tls/CertificateChainCleaner;\nHSPLokhttp3/OkHttpClient;->certificatePinner()Lokhttp3/CertificatePinner;\nPLokhttp3/OkHttpClient;->certificatePinner()Lokhttp3/CertificatePinner;\nHSPLokhttp3/OkHttpClient;->connectTimeoutMillis()I\nPLokhttp3/OkHttpClient;->connectTimeoutMillis()I\nHSPLokhttp3/OkHttpClient;->connectionPool()Lokhttp3/ConnectionPool;\nPLokhttp3/OkHttpClient;->connectionPool()Lokhttp3/ConnectionPool;\nHSPLokhttp3/OkHttpClient;->connectionSpecs()Ljava/util/List;\nPLokhttp3/OkHttpClient;->connectionSpecs()Ljava/util/List;\nHSPLokhttp3/OkHttpClient;->cookieJar()Lokhttp3/CookieJar;\nPLokhttp3/OkHttpClient;->cookieJar()Lokhttp3/CookieJar;\nHSPLokhttp3/OkHttpClient;->dispatcher()Lokhttp3/Dispatcher;\nPLokhttp3/OkHttpClient;->dispatcher()Lokhttp3/Dispatcher;\nHSPLokhttp3/OkHttpClient;->dns()Lokhttp3/Dns;\nPLokhttp3/OkHttpClient;->dns()Lokhttp3/Dns;\nHSPLokhttp3/OkHttpClient;->eventListenerFactory()Lokhttp3/EventListener$Factory;\nPLokhttp3/OkHttpClient;->eventListenerFactory()Lokhttp3/EventListener$Factory;\nHSPLokhttp3/OkHttpClient;->fastFallback()Z\nPLokhttp3/OkHttpClient;->fastFallback()Z\nHSPLokhttp3/OkHttpClient;->followRedirects()Z\nPLokhttp3/OkHttpClient;->followRedirects()Z\nHSPLokhttp3/OkHttpClient;->followSslRedirects()Z\nPLokhttp3/OkHttpClient;->followSslRedirects()Z\nHSPLokhttp3/OkHttpClient;->getRouteDatabase$okhttp()Lokhttp3/internal/connection/RouteDatabase;\nPLokhttp3/OkHttpClient;->getRouteDatabase$okhttp()Lokhttp3/internal/connection/RouteDatabase;\nHSPLokhttp3/OkHttpClient;->getTaskRunner$okhttp()Lokhttp3/internal/concurrent/TaskRunner;\nPLokhttp3/OkHttpClient;->getTaskRunner$okhttp()Lokhttp3/internal/concurrent/TaskRunner;\nHSPLokhttp3/OkHttpClient;->hostnameVerifier()Ljavax/net/ssl/HostnameVerifier;\nPLokhttp3/OkHttpClient;->hostnameVerifier()Ljavax/net/ssl/HostnameVerifier;\nHSPLokhttp3/OkHttpClient;->interceptors()Ljava/util/List;\nPLokhttp3/OkHttpClient;->interceptors()Ljava/util/List;\nHSPLokhttp3/OkHttpClient;->minWebSocketMessageToCompress()J\nPLokhttp3/OkHttpClient;->minWebSocketMessageToCompress()J\nHSPLokhttp3/OkHttpClient;->networkInterceptors()Ljava/util/List;\nPLokhttp3/OkHttpClient;->networkInterceptors()Ljava/util/List;\nHSPLokhttp3/OkHttpClient;->newCall(Lokhttp3/Request;)Lokhttp3/Call;\nPLokhttp3/OkHttpClient;->newCall(Lokhttp3/Request;)Lokhttp3/Call;\nHSPLokhttp3/OkHttpClient;->pingIntervalMillis()I\nPLokhttp3/OkHttpClient;->pingIntervalMillis()I\nHSPLokhttp3/OkHttpClient;->protocols()Ljava/util/List;\nPLokhttp3/OkHttpClient;->protocols()Ljava/util/List;\nHSPLokhttp3/OkHttpClient;->proxy()Ljava/net/Proxy;\nPLokhttp3/OkHttpClient;->proxy()Ljava/net/Proxy;\nHSPLokhttp3/OkHttpClient;->proxyAuthenticator()Lokhttp3/Authenticator;\nPLokhttp3/OkHttpClient;->proxyAuthenticator()Lokhttp3/Authenticator;\nHSPLokhttp3/OkHttpClient;->proxySelector()Ljava/net/ProxySelector;\nPLokhttp3/OkHttpClient;->proxySelector()Ljava/net/ProxySelector;\nHSPLokhttp3/OkHttpClient;->readTimeoutMillis()I\nPLokhttp3/OkHttpClient;->readTimeoutMillis()I\nHSPLokhttp3/OkHttpClient;->retryOnConnectionFailure()Z\nPLokhttp3/OkHttpClient;->retryOnConnectionFailure()Z\nHSPLokhttp3/OkHttpClient;->socketFactory()Ljavax/net/SocketFactory;\nPLokhttp3/OkHttpClient;->socketFactory()Ljavax/net/SocketFactory;\nHSPLokhttp3/OkHttpClient;->sslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;\nPLokhttp3/OkHttpClient;->sslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;\nHSPLokhttp3/OkHttpClient;->writeTimeoutMillis()I\nPLokhttp3/OkHttpClient;->writeTimeoutMillis()I\nHSPLokhttp3/OkHttpClient;->x509TrustManager()Ljavax/net/ssl/X509TrustManager;\nPLokhttp3/OkHttpClient;->x509TrustManager()Ljavax/net/ssl/X509TrustManager;\nLokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;-><init>()V\nPLokhttp3/OkHttpClient$Builder;-><init>()V\nHSPLokhttp3/OkHttpClient$Builder;-><init>(Lokhttp3/OkHttpClient;)V\nPLokhttp3/OkHttpClient$Builder;-><init>(Lokhttp3/OkHttpClient;)V\nHSPLokhttp3/OkHttpClient$Builder;->addInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->addInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->addNetworkInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->addNetworkInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->cache(Lokhttp3/Cache;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->cache(Lokhttp3/Cache;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->callTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->callTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->connectTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->connectTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->cookieJar(Lokhttp3/CookieJar;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->cookieJar(Lokhttp3/CookieJar;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->dns(Lokhttp3/Dns;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->dns(Lokhttp3/Dns;)Lokhttp3/OkHttpClient$Builder;\nHSPLokhttp3/OkHttpClient$Builder;->getAuthenticator$okhttp()Lokhttp3/Authenticator;\nPLokhttp3/OkHttpClient$Builder;->getAuthenticator$okhttp()Lokhttp3/Authenticator;\nHSPLokhttp3/OkHttpClient$Builder;->getCache$okhttp()Lokhttp3/Cache;\nPLokhttp3/OkHttpClient$Builder;->getCache$okhttp()Lokhttp3/Cache;\nHSPLokhttp3/OkHttpClient$Builder;->getCallTimeout$okhttp()I\nPLokhttp3/OkHttpClient$Builder;->getCallTimeout$okhttp()I\nHSPLokhttp3/OkHttpClient$Builder;->getCertificateChainCleaner$okhttp()Lokhttp3/internal/tls/CertificateChainCleaner;\nPLokhttp3/OkHttpClient$Builder;->getCertificateChainCleaner$okhttp()Lokhttp3/internal/tls/CertificateChainCleaner;\nHSPLokhttp3/OkHttpClient$Builder;->getCertificatePinner$okhttp()Lokhttp3/CertificatePinner;\nPLokhttp3/OkHttpClient$Builder;->getCertificatePinner$okhttp()Lokhttp3/CertificatePinner;\nHSPLokhttp3/OkHttpClient$Builder;->getConnectTimeout$okhttp()I\nPLokhttp3/OkHttpClient$Builder;->getConnectTimeout$okhttp()I\nHSPLokhttp3/OkHttpClient$Builder;->getConnectionPool$okhttp()Lokhttp3/ConnectionPool;\nPLokhttp3/OkHttpClient$Builder;->getConnectionPool$okhttp()Lokhttp3/ConnectionPool;\nHSPLokhttp3/OkHttpClient$Builder;->getConnectionSpecs$okhttp()Ljava/util/List;\nPLokhttp3/OkHttpClient$Builder;->getConnectionSpecs$okhttp()Ljava/util/List;\nHSPLokhttp3/OkHttpClient$Builder;->getCookieJar$okhttp()Lokhttp3/CookieJar;\nPLokhttp3/OkHttpClient$Builder;->getCookieJar$okhttp()Lokhttp3/CookieJar;\nHSPLokhttp3/OkHttpClient$Builder;->getDispatcher$okhttp()Lokhttp3/Dispatcher;\nPLokhttp3/OkHttpClient$Builder;->getDispatcher$okhttp()Lokhttp3/Dispatcher;\nHSPLokhttp3/OkHttpClient$Builder;->getDns$okhttp()Lokhttp3/Dns;\nPLokhttp3/OkHttpClient$Builder;->getDns$okhttp()Lokhttp3/Dns;\nHSPLokhttp3/OkHttpClient$Builder;->getEventListenerFactory$okhttp()Lokhttp3/EventListener$Factory;\nPLokhttp3/OkHttpClient$Builder;->getEventListenerFactory$okhttp()Lokhttp3/EventListener$Factory;\nHSPLokhttp3/OkHttpClient$Builder;->getFastFallback$okhttp()Z\nPLokhttp3/OkHttpClient$Builder;->getFastFallback$okhttp()Z\nHSPLokhttp3/OkHttpClient$Builder;->getFollowRedirects$okhttp()Z\nPLokhttp3/OkHttpClient$Builder;->getFollowRedirects$okhttp()Z\nHSPLokhttp3/OkHttpClient$Builder;->getFollowSslRedirects$okhttp()Z\nPLokhttp3/OkHttpClient$Builder;->getFollowSslRedirects$okhttp()Z\nHSPLokhttp3/OkHttpClient$Builder;->getHostnameVerifier$okhttp()Ljavax/net/ssl/HostnameVerifier;\nPLokhttp3/OkHttpClient$Builder;->getHostnameVerifier$okhttp()Ljavax/net/ssl/HostnameVerifier;\nHSPLokhttp3/OkHttpClient$Builder;->getInterceptors$okhttp()Ljava/util/List;\nPLokhttp3/OkHttpClient$Builder;->getInterceptors$okhttp()Ljava/util/List;\nHSPLokhttp3/OkHttpClient$Builder;->getMinWebSocketMessageToCompress$okhttp()J\nPLokhttp3/OkHttpClient$Builder;->getMinWebSocketMessageToCompress$okhttp()J\nHSPLokhttp3/OkHttpClient$Builder;->getNetworkInterceptors$okhttp()Ljava/util/List;\nPLokhttp3/OkHttpClient$Builder;->getNetworkInterceptors$okhttp()Ljava/util/List;\nHSPLokhttp3/OkHttpClient$Builder;->getPingInterval$okhttp()I\nPLokhttp3/OkHttpClient$Builder;->getPingInterval$okhttp()I\nHSPLokhttp3/OkHttpClient$Builder;->getProtocols$okhttp()Ljava/util/List;\nPLokhttp3/OkHttpClient$Builder;->getProtocols$okhttp()Ljava/util/List;\nHSPLokhttp3/OkHttpClient$Builder;->getProxy$okhttp()Ljava/net/Proxy;\nPLokhttp3/OkHttpClient$Builder;->getProxy$okhttp()Ljava/net/Proxy;\nHSPLokhttp3/OkHttpClient$Builder;->getProxyAuthenticator$okhttp()Lokhttp3/Authenticator;\nPLokhttp3/OkHttpClient$Builder;->getProxyAuthenticator$okhttp()Lokhttp3/Authenticator;\nHSPLokhttp3/OkHttpClient$Builder;->getProxySelector$okhttp()Ljava/net/ProxySelector;\nPLokhttp3/OkHttpClient$Builder;->getProxySelector$okhttp()Ljava/net/ProxySelector;\nHSPLokhttp3/OkHttpClient$Builder;->getReadTimeout$okhttp()I\nPLokhttp3/OkHttpClient$Builder;->getReadTimeout$okhttp()I\nHSPLokhttp3/OkHttpClient$Builder;->getRetryOnConnectionFailure$okhttp()Z\nPLokhttp3/OkHttpClient$Builder;->getRetryOnConnectionFailure$okhttp()Z\nHSPLokhttp3/OkHttpClient$Builder;->getRouteDatabase$okhttp()Lokhttp3/internal/connection/RouteDatabase;\nPLokhttp3/OkHttpClient$Builder;->getRouteDatabase$okhttp()Lokhttp3/internal/connection/RouteDatabase;\nHSPLokhttp3/OkHttpClient$Builder;->getSocketFactory$okhttp()Ljavax/net/SocketFactory;\nPLokhttp3/OkHttpClient$Builder;->getSocketFactory$okhttp()Ljavax/net/SocketFactory;\nHSPLokhttp3/OkHttpClient$Builder;->getSslSocketFactoryOrNull$okhttp()Ljavax/net/ssl/SSLSocketFactory;\nPLokhttp3/OkHttpClient$Builder;->getSslSocketFactoryOrNull$okhttp()Ljavax/net/ssl/SSLSocketFactory;\nHSPLokhttp3/OkHttpClient$Builder;->getTaskRunner$okhttp()Lokhttp3/internal/concurrent/TaskRunner;\nPLokhttp3/OkHttpClient$Builder;->getTaskRunner$okhttp()Lokhttp3/internal/concurrent/TaskRunner;\nHSPLokhttp3/OkHttpClient$Builder;->getWriteTimeout$okhttp()I\nPLokhttp3/OkHttpClient$Builder;->getWriteTimeout$okhttp()I\nHSPLokhttp3/OkHttpClient$Builder;->getX509TrustManagerOrNull$okhttp()Ljavax/net/ssl/X509TrustManager;\nPLokhttp3/OkHttpClient$Builder;->getX509TrustManagerOrNull$okhttp()Ljavax/net/ssl/X509TrustManager;\nHSPLokhttp3/OkHttpClient$Builder;->readTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;\nPLokhttp3/OkHttpClient$Builder;->readTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;\nLokhttp3/OkHttpClient$Companion;\nHSPLokhttp3/OkHttpClient$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/OkHttpClient$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/Protocol;\nHSPLokhttp3/Protocol;-><clinit>()V\nPLokhttp3/Protocol;-><clinit>()V\nHSPLokhttp3/Protocol;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLokhttp3/Protocol;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nHSPLokhttp3/Protocol;->access$getProtocol$p(Lokhttp3/Protocol;)Ljava/lang/String;\nPLokhttp3/Protocol;->access$getProtocol$p(Lokhttp3/Protocol;)Ljava/lang/String;\nHSPLokhttp3/Protocol;->toString()Ljava/lang/String;\nPLokhttp3/Protocol;->toString()Ljava/lang/String;\nLokhttp3/Protocol$Companion;\nHSPLokhttp3/Protocol$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/Protocol$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/Protocol$Companion;->get(Ljava/lang/String;)Lokhttp3/Protocol;\nPLokhttp3/Protocol$Companion;->get(Ljava/lang/String;)Lokhttp3/Protocol;\nLokhttp3/Request;\nHSPLokhttp3/Request;-><init>(Lokhttp3/Request$Builder;)V\nPLokhttp3/Request;-><init>(Lokhttp3/Request$Builder;)V\nHSPLokhttp3/Request;->body()Lokhttp3/RequestBody;\nPLokhttp3/Request;->body()Lokhttp3/RequestBody;\nHSPLokhttp3/Request;->cacheControl()Lokhttp3/CacheControl;\nPLokhttp3/Request;->cacheControl()Lokhttp3/CacheControl;\nHSPLokhttp3/Request;->getTags$okhttp()Ljava/util/Map;\nPLokhttp3/Request;->getTags$okhttp()Ljava/util/Map;\nHSPLokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;\nHSPLokhttp3/Request;->headers()Lokhttp3/Headers;\nPLokhttp3/Request;->headers()Lokhttp3/Headers;\nHSPLokhttp3/Request;->method()Ljava/lang/String;\nPLokhttp3/Request;->method()Ljava/lang/String;\nHSPLokhttp3/Request;->url()Lokhttp3/HttpUrl;\nPLokhttp3/Request;->url()Lokhttp3/HttpUrl;\nLokhttp3/Request$Builder;\nHSPLokhttp3/Request$Builder;-><init>()V\nPLokhttp3/Request$Builder;-><init>()V\nHSPLokhttp3/Request$Builder;-><init>(Lokhttp3/Request;)V\nPLokhttp3/Request$Builder;-><init>(Lokhttp3/Request;)V\nHSPLokhttp3/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nPLokhttp3/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nHSPLokhttp3/Request$Builder;->cacheControl(Lokhttp3/CacheControl;)Lokhttp3/Request$Builder;\nPLokhttp3/Request$Builder;->cacheControl(Lokhttp3/CacheControl;)Lokhttp3/Request$Builder;\nHSPLokhttp3/Request$Builder;->getBody$okhttp()Lokhttp3/RequestBody;\nPLokhttp3/Request$Builder;->getBody$okhttp()Lokhttp3/RequestBody;\nHSPLokhttp3/Request$Builder;->getHeaders$okhttp()Lokhttp3/Headers$Builder;\nPLokhttp3/Request$Builder;->getHeaders$okhttp()Lokhttp3/Headers$Builder;\nHSPLokhttp3/Request$Builder;->getMethod$okhttp()Ljava/lang/String;\nPLokhttp3/Request$Builder;->getMethod$okhttp()Ljava/lang/String;\nHSPLokhttp3/Request$Builder;->getTags$okhttp()Ljava/util/Map;\nPLokhttp3/Request$Builder;->getTags$okhttp()Ljava/util/Map;\nHSPLokhttp3/Request$Builder;->getUrl$okhttp()Lokhttp3/HttpUrl;\nPLokhttp3/Request$Builder;->getUrl$okhttp()Lokhttp3/HttpUrl;\nHSPLokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nPLokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nHSPLokhttp3/Request$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Request$Builder;\nPLokhttp3/Request$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Request$Builder;\nHSPLokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;\nPLokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;\nHSPLokhttp3/Request$Builder;->setHeaders$okhttp(Lokhttp3/Headers$Builder;)V\nPLokhttp3/Request$Builder;->setHeaders$okhttp(Lokhttp3/Headers$Builder;)V\nHSPLokhttp3/Request$Builder;->url(Lokhttp3/HttpUrl;)Lokhttp3/Request$Builder;\nPLokhttp3/Request$Builder;->url(Lokhttp3/HttpUrl;)Lokhttp3/Request$Builder;\nLokhttp3/RequestBody;\nHSPLokhttp3/RequestBody;-><clinit>()V\nPLokhttp3/RequestBody;-><clinit>()V\nHSPLokhttp3/RequestBody;-><init>()V\nPLokhttp3/RequestBody;-><init>()V\nLokhttp3/RequestBody$Companion;\nHSPLokhttp3/RequestBody$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/RequestBody$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/RequestBody$Companion;->create$default(Lokhttp3/RequestBody$Companion;[BLokhttp3/MediaType;IIILjava/lang/Object;)Lokhttp3/RequestBody;\nPLokhttp3/RequestBody$Companion;->create$default(Lokhttp3/RequestBody$Companion;[BLokhttp3/MediaType;IIILjava/lang/Object;)Lokhttp3/RequestBody;\nHSPLokhttp3/RequestBody$Companion;->create([BLokhttp3/MediaType;II)Lokhttp3/RequestBody;\nPLokhttp3/RequestBody$Companion;->create([BLokhttp3/MediaType;II)Lokhttp3/RequestBody;\nLokhttp3/Response;\nHSPLokhttp3/Response;-><init>(Lokhttp3/Request;Lokhttp3/Protocol;Ljava/lang/String;ILokhttp3/Handshake;Lokhttp3/Headers;Lokhttp3/ResponseBody;Lokhttp3/Response;Lokhttp3/Response;Lokhttp3/Response;JJLokhttp3/internal/connection/Exchange;Lkotlin/jvm/functions/Function0;)V\nPLokhttp3/Response;-><init>(Lokhttp3/Request;Lokhttp3/Protocol;Ljava/lang/String;ILokhttp3/Handshake;Lokhttp3/Headers;Lokhttp3/ResponseBody;Lokhttp3/Response;Lokhttp3/Response;Lokhttp3/Response;JJLokhttp3/internal/connection/Exchange;Lkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/Response;->access$getTrailersFn$p(Lokhttp3/Response;)Lkotlin/jvm/functions/Function0;\nPLokhttp3/Response;->access$getTrailersFn$p(Lokhttp3/Response;)Lkotlin/jvm/functions/Function0;\nHSPLokhttp3/Response;->body()Lokhttp3/ResponseBody;\nPLokhttp3/Response;->body()Lokhttp3/ResponseBody;\nHSPLokhttp3/Response;->cacheResponse()Lokhttp3/Response;\nPLokhttp3/Response;->cacheResponse()Lokhttp3/Response;\nHSPLokhttp3/Response;->code()I\nPLokhttp3/Response;->code()I\nHSPLokhttp3/Response;->exchange()Lokhttp3/internal/connection/Exchange;\nPLokhttp3/Response;->exchange()Lokhttp3/internal/connection/Exchange;\nHSPLokhttp3/Response;->getLazyCacheControl$okhttp()Lokhttp3/CacheControl;\nPLokhttp3/Response;->getLazyCacheControl$okhttp()Lokhttp3/CacheControl;\nHSPLokhttp3/Response;->handshake()Lokhttp3/Handshake;\nPLokhttp3/Response;->handshake()Lokhttp3/Handshake;\nHSPLokhttp3/Response;->header$default(Lokhttp3/Response;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;\nPLokhttp3/Response;->header$default(Lokhttp3/Response;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;\nHSPLokhttp3/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLokhttp3/Response;->headers()Lokhttp3/Headers;\nPLokhttp3/Response;->headers()Lokhttp3/Headers;\nHSPLokhttp3/Response;->isSuccessful()Z\nPLokhttp3/Response;->isSuccessful()Z\nHSPLokhttp3/Response;->message()Ljava/lang/String;\nPLokhttp3/Response;->message()Ljava/lang/String;\nHSPLokhttp3/Response;->networkResponse()Lokhttp3/Response;\nPLokhttp3/Response;->networkResponse()Lokhttp3/Response;\nHSPLokhttp3/Response;->priorResponse()Lokhttp3/Response;\nPLokhttp3/Response;->priorResponse()Lokhttp3/Response;\nHSPLokhttp3/Response;->protocol()Lokhttp3/Protocol;\nPLokhttp3/Response;->protocol()Lokhttp3/Protocol;\nHSPLokhttp3/Response;->receivedResponseAtMillis()J\nPLokhttp3/Response;->receivedResponseAtMillis()J\nHSPLokhttp3/Response;->request()Lokhttp3/Request;\nPLokhttp3/Response;->request()Lokhttp3/Request;\nHSPLokhttp3/Response;->sentRequestAtMillis()J\nPLokhttp3/Response;->sentRequestAtMillis()J\nHSPLokhttp3/Response;->setLazyCacheControl$okhttp(Lokhttp3/CacheControl;)V\nPLokhttp3/Response;->setLazyCacheControl$okhttp(Lokhttp3/CacheControl;)V\nLokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;-><init>()V\nPLokhttp3/Response$Builder;-><init>()V\nHSPLokhttp3/Response$Builder;-><init>(Lokhttp3/Response;)V\nPLokhttp3/Response$Builder;-><init>(Lokhttp3/Response;)V\nHSPLokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->build()Lokhttp3/Response;\nPLokhttp3/Response$Builder;->build()Lokhttp3/Response;\nHSPLokhttp3/Response$Builder;->handshake(Lokhttp3/Handshake;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->handshake(Lokhttp3/Handshake;)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->initExchange$okhttp(Lokhttp3/internal/connection/Exchange;)V\nPLokhttp3/Response$Builder;->initExchange$okhttp(Lokhttp3/internal/connection/Exchange;)V\nHSPLokhttp3/Response$Builder;->message(Ljava/lang/String;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->message(Ljava/lang/String;)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->protocol(Lokhttp3/Protocol;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->protocol(Lokhttp3/Protocol;)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->receivedResponseAtMillis(J)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->receivedResponseAtMillis(J)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->request(Lokhttp3/Request;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->request(Lokhttp3/Request;)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->sentRequestAtMillis(J)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->sentRequestAtMillis(J)Lokhttp3/Response$Builder;\nHSPLokhttp3/Response$Builder;->setBody$okhttp(Lokhttp3/ResponseBody;)V\nPLokhttp3/Response$Builder;->setBody$okhttp(Lokhttp3/ResponseBody;)V\nHSPLokhttp3/Response$Builder;->setCacheResponse$okhttp(Lokhttp3/Response;)V\nPLokhttp3/Response$Builder;->setCacheResponse$okhttp(Lokhttp3/Response;)V\nHSPLokhttp3/Response$Builder;->setCode$okhttp(I)V\nPLokhttp3/Response$Builder;->setCode$okhttp(I)V\nHSPLokhttp3/Response$Builder;->setHeaders$okhttp(Lokhttp3/Headers$Builder;)V\nPLokhttp3/Response$Builder;->setHeaders$okhttp(Lokhttp3/Headers$Builder;)V\nHSPLokhttp3/Response$Builder;->setMessage$okhttp(Ljava/lang/String;)V\nPLokhttp3/Response$Builder;->setMessage$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/Response$Builder;->setNetworkResponse$okhttp(Lokhttp3/Response;)V\nPLokhttp3/Response$Builder;->setNetworkResponse$okhttp(Lokhttp3/Response;)V\nHSPLokhttp3/Response$Builder;->setPriorResponse$okhttp(Lokhttp3/Response;)V\nPLokhttp3/Response$Builder;->setPriorResponse$okhttp(Lokhttp3/Response;)V\nHSPLokhttp3/Response$Builder;->setProtocol$okhttp(Lokhttp3/Protocol;)V\nPLokhttp3/Response$Builder;->setProtocol$okhttp(Lokhttp3/Protocol;)V\nHSPLokhttp3/Response$Builder;->setRequest$okhttp(Lokhttp3/Request;)V\nPLokhttp3/Response$Builder;->setRequest$okhttp(Lokhttp3/Request;)V\nHSPLokhttp3/Response$Builder;->setTrailersFn$okhttp(Lkotlin/jvm/functions/Function0;)V\nPLokhttp3/Response$Builder;->setTrailersFn$okhttp(Lkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/Response$Builder;->trailers(Lkotlin/jvm/functions/Function0;)Lokhttp3/Response$Builder;\nPLokhttp3/Response$Builder;->trailers(Lkotlin/jvm/functions/Function0;)Lokhttp3/Response$Builder;\nLokhttp3/Response$Builder$initExchange$1;\nHSPLokhttp3/Response$Builder$initExchange$1;-><init>(Lokhttp3/internal/connection/Exchange;)V\nPLokhttp3/Response$Builder$initExchange$1;-><init>(Lokhttp3/internal/connection/Exchange;)V\nLokhttp3/Response$Builder$trailersFn$1;\nHSPLokhttp3/Response$Builder$trailersFn$1;-><clinit>()V\nPLokhttp3/Response$Builder$trailersFn$1;-><clinit>()V\nHSPLokhttp3/Response$Builder$trailersFn$1;-><init>()V\nPLokhttp3/Response$Builder$trailersFn$1;-><init>()V\nLokhttp3/ResponseBody;\nHSPLokhttp3/ResponseBody;-><clinit>()V\nPLokhttp3/ResponseBody;-><clinit>()V\nHSPLokhttp3/ResponseBody;-><init>()V\nPLokhttp3/ResponseBody;-><init>()V\nLokhttp3/ResponseBody$Companion;\nHSPLokhttp3/ResponseBody$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/ResponseBody$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/ResponseBody$Companion;->create$default(Lokhttp3/ResponseBody$Companion;[BLokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/ResponseBody;\nPLokhttp3/ResponseBody$Companion;->create$default(Lokhttp3/ResponseBody$Companion;[BLokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/ResponseBody;\nHSPLokhttp3/ResponseBody$Companion;->create(Lokio/BufferedSource;Lokhttp3/MediaType;J)Lokhttp3/ResponseBody;\nPLokhttp3/ResponseBody$Companion;->create(Lokio/BufferedSource;Lokhttp3/MediaType;J)Lokhttp3/ResponseBody;\nHSPLokhttp3/ResponseBody$Companion;->create([BLokhttp3/MediaType;)Lokhttp3/ResponseBody;\nPLokhttp3/ResponseBody$Companion;->create([BLokhttp3/MediaType;)Lokhttp3/ResponseBody;\nLokhttp3/Route;\nHSPLokhttp3/Route;-><init>(Lokhttp3/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V\nPLokhttp3/Route;-><init>(Lokhttp3/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V\nHSPLokhttp3/Route;->address()Lokhttp3/Address;\nPLokhttp3/Route;->address()Lokhttp3/Address;\nHSPLokhttp3/Route;->hashCode()I\nPLokhttp3/Route;->hashCode()I\nHSPLokhttp3/Route;->proxy()Ljava/net/Proxy;\nPLokhttp3/Route;->proxy()Ljava/net/Proxy;\nHSPLokhttp3/Route;->requiresTunnel()Z\nPLokhttp3/Route;->requiresTunnel()Z\nHSPLokhttp3/Route;->socketAddress()Ljava/net/InetSocketAddress;\nPLokhttp3/Route;->socketAddress()Ljava/net/InetSocketAddress;\nLokhttp3/TlsVersion;\nHSPLokhttp3/TlsVersion;-><clinit>()V\nPLokhttp3/TlsVersion;-><clinit>()V\nHSPLokhttp3/TlsVersion;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nPLokhttp3/TlsVersion;-><init>(Ljava/lang/String;ILjava/lang/String;)V\nHSPLokhttp3/TlsVersion;->javaName()Ljava/lang/String;\nPLokhttp3/TlsVersion;->javaName()Ljava/lang/String;\nLokhttp3/TlsVersion$Companion;\nHSPLokhttp3/TlsVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/TlsVersion$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/TlsVersion$Companion;->forJavaName(Ljava/lang/String;)Lokhttp3/TlsVersion;\nPLokhttp3/TlsVersion$Companion;->forJavaName(Ljava/lang/String;)Lokhttp3/TlsVersion;\nLokhttp3/WebSocket$Factory;\nLokhttp3/internal/Internal;\nHSPLokhttp3/internal/Internal;->effectiveCipherSuites(Lokhttp3/ConnectionSpec;[Ljava/lang/String;)[Ljava/lang/String;\nPLokhttp3/internal/Internal;->effectiveCipherSuites(Lokhttp3/ConnectionSpec;[Ljava/lang/String;)[Ljava/lang/String;\nLokhttp3/internal/UnreadableResponseBody;\nHSPLokhttp3/internal/UnreadableResponseBody;-><init>(Lokhttp3/MediaType;J)V\nPLokhttp3/internal/UnreadableResponseBody;-><init>(Lokhttp3/MediaType;J)V\nLokhttp3/internal/_CacheControlCommonKt;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonBuild(Lokhttp3/CacheControl$Builder;)Lokhttp3/CacheControl;\nPLokhttp3/internal/_CacheControlCommonKt;->commonBuild(Lokhttp3/CacheControl$Builder;)Lokhttp3/CacheControl;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonClampToInt(J)I\nPLokhttp3/internal/_CacheControlCommonKt;->commonClampToInt(J)I\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonForceCache(Lokhttp3/CacheControl$Companion;)Lokhttp3/CacheControl;\nPLokhttp3/internal/_CacheControlCommonKt;->commonForceCache(Lokhttp3/CacheControl$Companion;)Lokhttp3/CacheControl;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonForceNetwork(Lokhttp3/CacheControl$Companion;)Lokhttp3/CacheControl;\nPLokhttp3/internal/_CacheControlCommonKt;->commonForceNetwork(Lokhttp3/CacheControl$Companion;)Lokhttp3/CacheControl;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonMaxStale(Lokhttp3/CacheControl$Builder;ILkotlin/time/DurationUnit;)Lokhttp3/CacheControl$Builder;\nPLokhttp3/internal/_CacheControlCommonKt;->commonMaxStale(Lokhttp3/CacheControl$Builder;ILkotlin/time/DurationUnit;)Lokhttp3/CacheControl$Builder;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonNoCache(Lokhttp3/CacheControl$Builder;)Lokhttp3/CacheControl$Builder;\nPLokhttp3/internal/_CacheControlCommonKt;->commonNoCache(Lokhttp3/CacheControl$Builder;)Lokhttp3/CacheControl$Builder;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonOnlyIfCached(Lokhttp3/CacheControl$Builder;)Lokhttp3/CacheControl$Builder;\nPLokhttp3/internal/_CacheControlCommonKt;->commonOnlyIfCached(Lokhttp3/CacheControl$Builder;)Lokhttp3/CacheControl$Builder;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonParse(Lokhttp3/CacheControl$Companion;Lokhttp3/Headers;)Lokhttp3/CacheControl;\nPLokhttp3/internal/_CacheControlCommonKt;->commonParse(Lokhttp3/CacheControl$Companion;Lokhttp3/Headers;)Lokhttp3/CacheControl;\nHSPLokhttp3/internal/_CacheControlCommonKt;->commonToString(Lokhttp3/CacheControl;)Ljava/lang/String;\nPLokhttp3/internal/_CacheControlCommonKt;->commonToString(Lokhttp3/CacheControl;)Ljava/lang/String;\nLokhttp3/internal/_HeadersCommonKt;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonAdd(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/internal/_HeadersCommonKt;->commonAdd(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonAddLenient(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/internal/_HeadersCommonKt;->commonAddLenient(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonBuild(Lokhttp3/Headers$Builder;)Lokhttp3/Headers;\nPLokhttp3/internal/_HeadersCommonKt;->commonBuild(Lokhttp3/Headers$Builder;)Lokhttp3/Headers;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonHeadersGet([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/internal/_HeadersCommonKt;->commonHeadersGet([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonHeadersOf([Ljava/lang/String;)Lokhttp3/Headers;\nPLokhttp3/internal/_HeadersCommonKt;->commonHeadersOf([Ljava/lang/String;)Lokhttp3/Headers;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonName(Lokhttp3/Headers;I)Ljava/lang/String;\nPLokhttp3/internal/_HeadersCommonKt;->commonName(Lokhttp3/Headers;I)Ljava/lang/String;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonNewBuilder(Lokhttp3/Headers;)Lokhttp3/Headers$Builder;\nPLokhttp3/internal/_HeadersCommonKt;->commonNewBuilder(Lokhttp3/Headers;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonRemoveAll(Lokhttp3/Headers$Builder;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/internal/_HeadersCommonKt;->commonRemoveAll(Lokhttp3/Headers$Builder;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonSet(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nPLokhttp3/internal/_HeadersCommonKt;->commonSet(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonValue(Lokhttp3/Headers;I)Ljava/lang/String;\nPLokhttp3/internal/_HeadersCommonKt;->commonValue(Lokhttp3/Headers;I)Ljava/lang/String;\nHSPLokhttp3/internal/_HeadersCommonKt;->commonValues(Lokhttp3/Headers;Ljava/lang/String;)Ljava/util/List;\nPLokhttp3/internal/_HeadersCommonKt;->commonValues(Lokhttp3/Headers;Ljava/lang/String;)Ljava/util/List;\nHSPLokhttp3/internal/_HeadersCommonKt;->headersCheckName(Ljava/lang/String;)V\nPLokhttp3/internal/_HeadersCommonKt;->headersCheckName(Ljava/lang/String;)V\nHSPLokhttp3/internal/_HeadersCommonKt;->headersCheckValue(Ljava/lang/String;Ljava/lang/String;)V\nPLokhttp3/internal/_HeadersCommonKt;->headersCheckValue(Ljava/lang/String;Ljava/lang/String;)V\nLokhttp3/internal/_HostnamesCommonKt;\nHSPLokhttp3/internal/_HostnamesCommonKt;-><clinit>()V\nPLokhttp3/internal/_HostnamesCommonKt;-><clinit>()V\nHSPLokhttp3/internal/_HostnamesCommonKt;->canParseAsIpAddress(Ljava/lang/String;)Z\nPLokhttp3/internal/_HostnamesCommonKt;->canParseAsIpAddress(Ljava/lang/String;)Z\nHSPLokhttp3/internal/_HostnamesCommonKt;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z\nPLokhttp3/internal/_HostnamesCommonKt;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z\nHSPLokhttp3/internal/_HostnamesCommonKt;->containsInvalidLabelLengths(Ljava/lang/String;)Z\nPLokhttp3/internal/_HostnamesCommonKt;->containsInvalidLabelLengths(Ljava/lang/String;)Z\nLokhttp3/internal/_HostnamesJvmKt;\nHSPLokhttp3/internal/_HostnamesJvmKt;->toCanonicalHost(Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/internal/_HostnamesJvmKt;->toCanonicalHost(Ljava/lang/String;)Ljava/lang/String;\nLokhttp3/internal/_MediaTypeCommonKt;\nHSPLokhttp3/internal/_MediaTypeCommonKt;-><clinit>()V\nPLokhttp3/internal/_MediaTypeCommonKt;-><clinit>()V\nHSPLokhttp3/internal/_MediaTypeCommonKt;->commonToMediaType(Ljava/lang/String;)Lokhttp3/MediaType;\nPLokhttp3/internal/_MediaTypeCommonKt;->commonToMediaType(Ljava/lang/String;)Lokhttp3/MediaType;\nHSPLokhttp3/internal/_MediaTypeCommonKt;->commonToMediaTypeOrNull(Ljava/lang/String;)Lokhttp3/MediaType;\nPLokhttp3/internal/_MediaTypeCommonKt;->commonToMediaTypeOrNull(Ljava/lang/String;)Lokhttp3/MediaType;\nLokhttp3/internal/_RequestBodyCommonKt;\nHSPLokhttp3/internal/_RequestBodyCommonKt;->commonToRequestBody([BLokhttp3/MediaType;II)Lokhttp3/RequestBody;\nPLokhttp3/internal/_RequestBodyCommonKt;->commonToRequestBody([BLokhttp3/MediaType;II)Lokhttp3/RequestBody;\nLokhttp3/internal/_RequestBodyCommonKt$commonToRequestBody$1;\nHSPLokhttp3/internal/_RequestBodyCommonKt$commonToRequestBody$1;-><init>(Lokhttp3/MediaType;[BII)V\nPLokhttp3/internal/_RequestBodyCommonKt$commonToRequestBody$1;-><init>(Lokhttp3/MediaType;[BII)V\nLokhttp3/internal/_RequestCommonKt;\nHSPLokhttp3/internal/_RequestCommonKt;->commonAddHeader(Lokhttp3/Request$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nPLokhttp3/internal/_RequestCommonKt;->commonAddHeader(Lokhttp3/Request$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nHSPLokhttp3/internal/_RequestCommonKt;->commonCacheControl(Lokhttp3/Request$Builder;Lokhttp3/CacheControl;)Lokhttp3/Request$Builder;\nPLokhttp3/internal/_RequestCommonKt;->commonCacheControl(Lokhttp3/Request$Builder;Lokhttp3/CacheControl;)Lokhttp3/Request$Builder;\nHSPLokhttp3/internal/_RequestCommonKt;->commonHeader(Lokhttp3/Request$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nPLokhttp3/internal/_RequestCommonKt;->commonHeader(Lokhttp3/Request$Builder;Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;\nHSPLokhttp3/internal/_RequestCommonKt;->commonHeader(Lokhttp3/Request;Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/internal/_RequestCommonKt;->commonHeader(Lokhttp3/Request;Ljava/lang/String;)Ljava/lang/String;\nHSPLokhttp3/internal/_RequestCommonKt;->commonHeaders(Lokhttp3/Request$Builder;Lokhttp3/Headers;)Lokhttp3/Request$Builder;\nPLokhttp3/internal/_RequestCommonKt;->commonHeaders(Lokhttp3/Request$Builder;Lokhttp3/Headers;)Lokhttp3/Request$Builder;\nHSPLokhttp3/internal/_RequestCommonKt;->commonRemoveHeader(Lokhttp3/Request$Builder;Ljava/lang/String;)Lokhttp3/Request$Builder;\nPLokhttp3/internal/_RequestCommonKt;->commonRemoveHeader(Lokhttp3/Request$Builder;Ljava/lang/String;)Lokhttp3/Request$Builder;\nLokhttp3/internal/_ResponseBodyCommonKt;\nHSPLokhttp3/internal/_ResponseBodyCommonKt;->commonAsResponseBody(Lokio/BufferedSource;Lokhttp3/MediaType;J)Lokhttp3/ResponseBody;\nPLokhttp3/internal/_ResponseBodyCommonKt;->commonAsResponseBody(Lokio/BufferedSource;Lokhttp3/MediaType;J)Lokhttp3/ResponseBody;\nHSPLokhttp3/internal/_ResponseBodyCommonKt;->commonToResponseBody([BLokhttp3/MediaType;)Lokhttp3/ResponseBody;\nPLokhttp3/internal/_ResponseBodyCommonKt;->commonToResponseBody([BLokhttp3/MediaType;)Lokhttp3/ResponseBody;\nLokhttp3/internal/_ResponseBodyCommonKt$commonAsResponseBody$1;\nHSPLokhttp3/internal/_ResponseBodyCommonKt$commonAsResponseBody$1;-><init>(Lokhttp3/MediaType;JLokio/BufferedSource;)V\nPLokhttp3/internal/_ResponseBodyCommonKt$commonAsResponseBody$1;-><init>(Lokhttp3/MediaType;JLokio/BufferedSource;)V\nLokhttp3/internal/_ResponseCommonKt;\nHSPLokhttp3/internal/_ResponseCommonKt;->checkSupportResponse(Lokhttp3/Response;Ljava/lang/String;)V\nPLokhttp3/internal/_ResponseCommonKt;->checkSupportResponse(Lokhttp3/Response;Ljava/lang/String;)V\nHSPLokhttp3/internal/_ResponseCommonKt;->commonBody(Lokhttp3/Response$Builder;Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonBody(Lokhttp3/Response$Builder;Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonCacheResponse(Lokhttp3/Response$Builder;Lokhttp3/Response;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonCacheResponse(Lokhttp3/Response$Builder;Lokhttp3/Response;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonCode(Lokhttp3/Response$Builder;I)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonCode(Lokhttp3/Response$Builder;I)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonHeader(Lokhttp3/Response;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nPLokhttp3/internal/_ResponseCommonKt;->commonHeader(Lokhttp3/Response;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonHeaders(Lokhttp3/Response$Builder;Lokhttp3/Headers;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonHeaders(Lokhttp3/Response$Builder;Lokhttp3/Headers;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonMessage(Lokhttp3/Response$Builder;Ljava/lang/String;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonMessage(Lokhttp3/Response$Builder;Ljava/lang/String;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonNetworkResponse(Lokhttp3/Response$Builder;Lokhttp3/Response;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonNetworkResponse(Lokhttp3/Response$Builder;Lokhttp3/Response;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonNewBuilder(Lokhttp3/Response;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonNewBuilder(Lokhttp3/Response;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonPriorResponse(Lokhttp3/Response$Builder;Lokhttp3/Response;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonPriorResponse(Lokhttp3/Response$Builder;Lokhttp3/Response;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonProtocol(Lokhttp3/Response$Builder;Lokhttp3/Protocol;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonProtocol(Lokhttp3/Response$Builder;Lokhttp3/Protocol;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonRequest(Lokhttp3/Response$Builder;Lokhttp3/Request;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonRequest(Lokhttp3/Response$Builder;Lokhttp3/Request;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->commonTrailers(Lokhttp3/Response$Builder;Lkotlin/jvm/functions/Function0;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/_ResponseCommonKt;->commonTrailers(Lokhttp3/Response$Builder;Lkotlin/jvm/functions/Function0;)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/_ResponseCommonKt;->getCommonCacheControl(Lokhttp3/Response;)Lokhttp3/CacheControl;\nPLokhttp3/internal/_ResponseCommonKt;->getCommonCacheControl(Lokhttp3/Response;)Lokhttp3/CacheControl;\nHSPLokhttp3/internal/_ResponseCommonKt;->getCommonIsRedirect(Lokhttp3/Response;)Z\nPLokhttp3/internal/_ResponseCommonKt;->getCommonIsRedirect(Lokhttp3/Response;)Z\nHSPLokhttp3/internal/_ResponseCommonKt;->getCommonIsSuccessful(Lokhttp3/Response;)Z\nPLokhttp3/internal/_ResponseCommonKt;->getCommonIsSuccessful(Lokhttp3/Response;)Z\nHSPLokhttp3/internal/_ResponseCommonKt;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;\nPLokhttp3/internal/_ResponseCommonKt;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;\nLokhttp3/internal/_UtilCommonKt;\nHSPLokhttp3/internal/_UtilCommonKt;-><clinit>()V\nPLokhttp3/internal/_UtilCommonKt;-><clinit>()V\nHSPLokhttp3/internal/_UtilCommonKt;->addIfAbsent(Ljava/util/List;Ljava/lang/Object;)V\nPLokhttp3/internal/_UtilCommonKt;->addIfAbsent(Ljava/util/List;Ljava/lang/Object;)V\nHSPLokhttp3/internal/_UtilCommonKt;->checkOffsetAndCount(JJJ)V\nPLokhttp3/internal/_UtilCommonKt;->checkOffsetAndCount(JJJ)V\nHSPLokhttp3/internal/_UtilCommonKt;->delimiterOffset(Ljava/lang/String;CII)I\nPLokhttp3/internal/_UtilCommonKt;->delimiterOffset(Ljava/lang/String;CII)I\nHSPLokhttp3/internal/_UtilCommonKt;->delimiterOffset(Ljava/lang/String;Ljava/lang/String;II)I\nPLokhttp3/internal/_UtilCommonKt;->delimiterOffset(Ljava/lang/String;Ljava/lang/String;II)I\nHSPLokhttp3/internal/_UtilCommonKt;->getCommonEmptyHeaders()Lokhttp3/Headers;\nPLokhttp3/internal/_UtilCommonKt;->getCommonEmptyHeaders()Lokhttp3/Headers;\nHSPLokhttp3/internal/_UtilCommonKt;->getCommonEmptyRequestBody()Lokhttp3/RequestBody;\nPLokhttp3/internal/_UtilCommonKt;->getCommonEmptyRequestBody()Lokhttp3/RequestBody;\nHSPLokhttp3/internal/_UtilCommonKt;->getCommonEmptyResponse()Lokhttp3/ResponseBody;\nPLokhttp3/internal/_UtilCommonKt;->getCommonEmptyResponse()Lokhttp3/ResponseBody;\nHSPLokhttp3/internal/_UtilCommonKt;->hasIntersection([Ljava/lang/String;[Ljava/lang/String;Ljava/util/Comparator;)Z\nPLokhttp3/internal/_UtilCommonKt;->hasIntersection([Ljava/lang/String;[Ljava/lang/String;Ljava/util/Comparator;)Z\nHSPLokhttp3/internal/_UtilCommonKt;->indexOf([Ljava/lang/String;Ljava/lang/String;Ljava/util/Comparator;)I\nPLokhttp3/internal/_UtilCommonKt;->indexOf([Ljava/lang/String;Ljava/lang/String;Ljava/util/Comparator;)I\nHSPLokhttp3/internal/_UtilCommonKt;->indexOfFirstNonAsciiWhitespace$default(Ljava/lang/String;IIILjava/lang/Object;)I\nPLokhttp3/internal/_UtilCommonKt;->indexOfFirstNonAsciiWhitespace$default(Ljava/lang/String;IIILjava/lang/Object;)I\nHSPLokhttp3/internal/_UtilCommonKt;->indexOfFirstNonAsciiWhitespace(Ljava/lang/String;II)I\nPLokhttp3/internal/_UtilCommonKt;->indexOfFirstNonAsciiWhitespace(Ljava/lang/String;II)I\nHSPLokhttp3/internal/_UtilCommonKt;->indexOfLastNonAsciiWhitespace$default(Ljava/lang/String;IIILjava/lang/Object;)I\nPLokhttp3/internal/_UtilCommonKt;->indexOfLastNonAsciiWhitespace$default(Ljava/lang/String;IIILjava/lang/Object;)I\nHSPLokhttp3/internal/_UtilCommonKt;->indexOfLastNonAsciiWhitespace(Ljava/lang/String;II)I\nPLokhttp3/internal/_UtilCommonKt;->indexOfLastNonAsciiWhitespace(Ljava/lang/String;II)I\nHSPLokhttp3/internal/_UtilCommonKt;->indexOfNonWhitespace(Ljava/lang/String;I)I\nPLokhttp3/internal/_UtilCommonKt;->indexOfNonWhitespace(Ljava/lang/String;I)I\nHSPLokhttp3/internal/_UtilCommonKt;->interleave(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/util/List;\nPLokhttp3/internal/_UtilCommonKt;->interleave(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/util/List;\nHSPLokhttp3/internal/_UtilCommonKt;->intersect([Ljava/lang/String;[Ljava/lang/String;Ljava/util/Comparator;)[Ljava/lang/String;\nPLokhttp3/internal/_UtilCommonKt;->intersect([Ljava/lang/String;[Ljava/lang/String;Ljava/util/Comparator;)[Ljava/lang/String;\nHSPLokhttp3/internal/_UtilCommonKt;->isCivilized(Lokio/FileSystem;Lokio/Path;)Z\nPLokhttp3/internal/_UtilCommonKt;->isCivilized(Lokio/FileSystem;Lokio/Path;)Z\nHSPLokhttp3/internal/_UtilCommonKt;->matchAtPolyfill(Lkotlin/text/Regex;Ljava/lang/CharSequence;I)Lkotlin/text/MatchResult;\nPLokhttp3/internal/_UtilCommonKt;->matchAtPolyfill(Lkotlin/text/Regex;Ljava/lang/CharSequence;I)Lkotlin/text/MatchResult;\nHSPLokhttp3/internal/_UtilCommonKt;->readMedium(Lokio/BufferedSource;)I\nPLokhttp3/internal/_UtilCommonKt;->readMedium(Lokio/BufferedSource;)I\nHSPLokhttp3/internal/_UtilCommonKt;->toLongOrDefault(Ljava/lang/String;J)J\nPLokhttp3/internal/_UtilCommonKt;->toLongOrDefault(Ljava/lang/String;J)J\nHSPLokhttp3/internal/_UtilCommonKt;->toNonNegativeInt(Ljava/lang/String;I)I\nPLokhttp3/internal/_UtilCommonKt;->toNonNegativeInt(Ljava/lang/String;I)I\nHSPLokhttp3/internal/_UtilCommonKt;->writeMedium(Lokio/BufferedSink;I)V\nPLokhttp3/internal/_UtilCommonKt;->writeMedium(Lokio/BufferedSink;I)V\nLokhttp3/internal/_UtilJvmKt;\nHSPLokhttp3/internal/_UtilJvmKt;-><clinit>()V\nPLokhttp3/internal/_UtilJvmKt;-><clinit>()V\nHSPLokhttp3/internal/_UtilJvmKt;->asFactory(Lokhttp3/EventListener;)Lokhttp3/EventListener$Factory;\nPLokhttp3/internal/_UtilJvmKt;->asFactory(Lokhttp3/EventListener;)Lokhttp3/EventListener$Factory;\nHSPLokhttp3/internal/_UtilJvmKt;->checkDuration(Ljava/lang/String;JLjava/util/concurrent/TimeUnit;)I\nPLokhttp3/internal/_UtilJvmKt;->checkDuration(Ljava/lang/String;JLjava/util/concurrent/TimeUnit;)I\nHSPLokhttp3/internal/_UtilJvmKt;->closeQuietly(Ljava/net/Socket;)V\nPLokhttp3/internal/_UtilJvmKt;->closeQuietly(Ljava/net/Socket;)V\nHSPLokhttp3/internal/_UtilJvmKt;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\nHPLokhttp3/internal/_UtilJvmKt;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\nHSPLokhttp3/internal/_UtilJvmKt;->headersContentLength(Lokhttp3/Response;)J\nPLokhttp3/internal/_UtilJvmKt;->headersContentLength(Lokhttp3/Response;)J\nHSPLokhttp3/internal/_UtilJvmKt;->immutableListOf([Ljava/lang/Object;)Ljava/util/List;\nPLokhttp3/internal/_UtilJvmKt;->immutableListOf([Ljava/lang/Object;)Ljava/util/List;\nHSPLokhttp3/internal/_UtilJvmKt;->threadFactory(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;\nPLokhttp3/internal/_UtilJvmKt;->threadFactory(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;\nHSPLokhttp3/internal/_UtilJvmKt;->toHeaders(Ljava/util/List;)Lokhttp3/Headers;\nPLokhttp3/internal/_UtilJvmKt;->toHeaders(Ljava/util/List;)Lokhttp3/Headers;\nHSPLokhttp3/internal/_UtilJvmKt;->toHostHeader$default(Lokhttp3/HttpUrl;ZILjava/lang/Object;)Ljava/lang/String;\nPLokhttp3/internal/_UtilJvmKt;->toHostHeader$default(Lokhttp3/HttpUrl;ZILjava/lang/Object;)Ljava/lang/String;\nHSPLokhttp3/internal/_UtilJvmKt;->toHostHeader(Lokhttp3/HttpUrl;Z)Ljava/lang/String;\nPLokhttp3/internal/_UtilJvmKt;->toHostHeader(Lokhttp3/HttpUrl;Z)Ljava/lang/String;\nHSPLokhttp3/internal/_UtilJvmKt;->toImmutableList(Ljava/util/List;)Ljava/util/List;\nPLokhttp3/internal/_UtilJvmKt;->toImmutableList(Ljava/util/List;)Ljava/util/List;\nLokhttp3/internal/_UtilJvmKt$$ExternalSyntheticLambda0;\nHSPLokhttp3/internal/_UtilJvmKt$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;Z)V\nPLokhttp3/internal/_UtilJvmKt$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;Z)V\nHSPLokhttp3/internal/_UtilJvmKt$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;\nPLokhttp3/internal/_UtilJvmKt$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;\nLokhttp3/internal/authenticator/JavaNetAuthenticator;\nHSPLokhttp3/internal/authenticator/JavaNetAuthenticator;-><init>(Lokhttp3/Dns;)V\nPLokhttp3/internal/authenticator/JavaNetAuthenticator;-><init>(Lokhttp3/Dns;)V\nHSPLokhttp3/internal/authenticator/JavaNetAuthenticator;-><init>(Lokhttp3/Dns;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/authenticator/JavaNetAuthenticator;-><init>(Lokhttp3/Dns;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/cache/CacheInterceptor;\nHSPLokhttp3/internal/cache/CacheInterceptor;-><clinit>()V\nPLokhttp3/internal/cache/CacheInterceptor;-><clinit>()V\nHSPLokhttp3/internal/cache/CacheInterceptor;-><init>(Lokhttp3/Cache;)V\nPLokhttp3/internal/cache/CacheInterceptor;-><init>(Lokhttp3/Cache;)V\nHSPLokhttp3/internal/cache/CacheInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLokhttp3/internal/cache/CacheInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLokhttp3/internal/cache/CacheInterceptor$Companion;\nHSPLokhttp3/internal/cache/CacheInterceptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/cache/CacheInterceptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;\nHSPLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;-><init>(Lokio/BufferedSource;Lokhttp3/internal/cache/CacheRequest;Lokio/BufferedSink;)V\nPLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;-><init>(Lokio/BufferedSource;Lokhttp3/internal/cache/CacheRequest;Lokio/BufferedSink;)V\nHSPLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;->close()V\nPLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;->close()V\nHSPLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;->read(Lokio/Buffer;J)J\nPLokhttp3/internal/cache/CacheInterceptor$cacheWritingResponse$cacheWritingSource$1;->read(Lokio/Buffer;J)J\nLokhttp3/internal/cache/CacheRequest;\nLokhttp3/internal/cache/CacheStrategy;\nHSPLokhttp3/internal/cache/CacheStrategy;-><clinit>()V\nPLokhttp3/internal/cache/CacheStrategy;-><clinit>()V\nHSPLokhttp3/internal/cache/CacheStrategy;-><init>(Lokhttp3/Request;Lokhttp3/Response;)V\nPLokhttp3/internal/cache/CacheStrategy;-><init>(Lokhttp3/Request;Lokhttp3/Response;)V\nHSPLokhttp3/internal/cache/CacheStrategy;->getCacheResponse()Lokhttp3/Response;\nPLokhttp3/internal/cache/CacheStrategy;->getCacheResponse()Lokhttp3/Response;\nHSPLokhttp3/internal/cache/CacheStrategy;->getNetworkRequest()Lokhttp3/Request;\nPLokhttp3/internal/cache/CacheStrategy;->getNetworkRequest()Lokhttp3/Request;\nLokhttp3/internal/cache/CacheStrategy$Companion;\nHSPLokhttp3/internal/cache/CacheStrategy$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/cache/CacheStrategy$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/cache/CacheStrategy$Companion;->isCacheable(Lokhttp3/Response;Lokhttp3/Request;)Z\nPLokhttp3/internal/cache/CacheStrategy$Companion;->isCacheable(Lokhttp3/Response;Lokhttp3/Request;)Z\nLokhttp3/internal/cache/CacheStrategy$Factory;\nHSPLokhttp3/internal/cache/CacheStrategy$Factory;-><init>(JLokhttp3/Request;Lokhttp3/Response;)V\nPLokhttp3/internal/cache/CacheStrategy$Factory;-><init>(JLokhttp3/Request;Lokhttp3/Response;)V\nHSPLokhttp3/internal/cache/CacheStrategy$Factory;->compute()Lokhttp3/internal/cache/CacheStrategy;\nPLokhttp3/internal/cache/CacheStrategy$Factory;->compute()Lokhttp3/internal/cache/CacheStrategy;\nLokhttp3/internal/cache/DiskLruCache;\nHSPLokhttp3/internal/cache/DiskLruCache;-><clinit>()V\nPLokhttp3/internal/cache/DiskLruCache;-><clinit>()V\nHSPLokhttp3/internal/cache/DiskLruCache;-><init>(Lokio/FileSystem;Lokio/Path;IIJLokhttp3/internal/concurrent/TaskRunner;)V\nPLokhttp3/internal/cache/DiskLruCache;-><init>(Lokio/FileSystem;Lokio/Path;IIJLokhttp3/internal/concurrent/TaskRunner;)V\nHSPLokhttp3/internal/cache/DiskLruCache;->checkNotClosed()V\nPLokhttp3/internal/cache/DiskLruCache;->checkNotClosed()V\nHSPLokhttp3/internal/cache/DiskLruCache;->completeEdit$okhttp(Lokhttp3/internal/cache/DiskLruCache$Editor;Z)V\nPLokhttp3/internal/cache/DiskLruCache;->completeEdit$okhttp(Lokhttp3/internal/cache/DiskLruCache$Editor;Z)V\nHSPLokhttp3/internal/cache/DiskLruCache;->edit$default(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;JILjava/lang/Object;)Lokhttp3/internal/cache/DiskLruCache$Editor;\nPLokhttp3/internal/cache/DiskLruCache;->edit$default(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;JILjava/lang/Object;)Lokhttp3/internal/cache/DiskLruCache$Editor;\nHSPLokhttp3/internal/cache/DiskLruCache;->edit(Ljava/lang/String;J)Lokhttp3/internal/cache/DiskLruCache$Editor;\nPLokhttp3/internal/cache/DiskLruCache;->edit(Ljava/lang/String;J)Lokhttp3/internal/cache/DiskLruCache$Editor;\nHSPLokhttp3/internal/cache/DiskLruCache;->get(Ljava/lang/String;)Lokhttp3/internal/cache/DiskLruCache$Snapshot;\nPLokhttp3/internal/cache/DiskLruCache;->get(Ljava/lang/String;)Lokhttp3/internal/cache/DiskLruCache$Snapshot;\nHSPLokhttp3/internal/cache/DiskLruCache;->getDirectory()Lokio/Path;\nPLokhttp3/internal/cache/DiskLruCache;->getDirectory()Lokio/Path;\nHSPLokhttp3/internal/cache/DiskLruCache;->getFileSystem$okhttp()Lokio/FileSystem;\nPLokhttp3/internal/cache/DiskLruCache;->getFileSystem$okhttp()Lokio/FileSystem;\nHSPLokhttp3/internal/cache/DiskLruCache;->getValueCount$okhttp()I\nPLokhttp3/internal/cache/DiskLruCache;->getValueCount$okhttp()I\nHSPLokhttp3/internal/cache/DiskLruCache;->initialize()V\nPLokhttp3/internal/cache/DiskLruCache;->initialize()V\nHSPLokhttp3/internal/cache/DiskLruCache;->journalRebuildRequired()Z\nPLokhttp3/internal/cache/DiskLruCache;->journalRebuildRequired()Z\nHSPLokhttp3/internal/cache/DiskLruCache;->rebuildJournal$okhttp()V\nPLokhttp3/internal/cache/DiskLruCache;->rebuildJournal$okhttp()V\nHSPLokhttp3/internal/cache/DiskLruCache;->validateKey(Ljava/lang/String;)V\nPLokhttp3/internal/cache/DiskLruCache;->validateKey(Ljava/lang/String;)V\nLokhttp3/internal/cache/DiskLruCache$Companion;\nHSPLokhttp3/internal/cache/DiskLruCache$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/cache/DiskLruCache$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/cache/DiskLruCache$Editor;\nHSPLokhttp3/internal/cache/DiskLruCache$Editor;-><init>(Lokhttp3/internal/cache/DiskLruCache;Lokhttp3/internal/cache/DiskLruCache$Entry;)V\nPLokhttp3/internal/cache/DiskLruCache$Editor;-><init>(Lokhttp3/internal/cache/DiskLruCache;Lokhttp3/internal/cache/DiskLruCache$Entry;)V\nHSPLokhttp3/internal/cache/DiskLruCache$Editor;->commit()V\nPLokhttp3/internal/cache/DiskLruCache$Editor;->commit()V\nHSPLokhttp3/internal/cache/DiskLruCache$Editor;->getEntry$okhttp()Lokhttp3/internal/cache/DiskLruCache$Entry;\nPLokhttp3/internal/cache/DiskLruCache$Editor;->getEntry$okhttp()Lokhttp3/internal/cache/DiskLruCache$Entry;\nHSPLokhttp3/internal/cache/DiskLruCache$Editor;->getWritten$okhttp()[Z\nPLokhttp3/internal/cache/DiskLruCache$Editor;->getWritten$okhttp()[Z\nHSPLokhttp3/internal/cache/DiskLruCache$Editor;->newSink(I)Lokio/Sink;\nPLokhttp3/internal/cache/DiskLruCache$Editor;->newSink(I)Lokio/Sink;\nLokhttp3/internal/cache/DiskLruCache$Editor$newSink$1$1;\nHSPLokhttp3/internal/cache/DiskLruCache$Editor$newSink$1$1;-><init>(Lokhttp3/internal/cache/DiskLruCache;Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nPLokhttp3/internal/cache/DiskLruCache$Editor$newSink$1$1;-><init>(Lokhttp3/internal/cache/DiskLruCache;Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nLokhttp3/internal/cache/DiskLruCache$Entry;\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;-><init>(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;)V\nPLokhttp3/internal/cache/DiskLruCache$Entry;-><init>(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;)V\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getCleanFiles$okhttp()Ljava/util/List;\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getCleanFiles$okhttp()Ljava/util/List;\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getCurrentEditor$okhttp()Lokhttp3/internal/cache/DiskLruCache$Editor;\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getCurrentEditor$okhttp()Lokhttp3/internal/cache/DiskLruCache$Editor;\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getDirtyFiles$okhttp()Ljava/util/List;\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getDirtyFiles$okhttp()Ljava/util/List;\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getKey$okhttp()Ljava/lang/String;\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getKey$okhttp()Ljava/lang/String;\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getLengths$okhttp()[J\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getLengths$okhttp()[J\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getReadable$okhttp()Z\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getReadable$okhttp()Z\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->getZombie$okhttp()Z\nPLokhttp3/internal/cache/DiskLruCache$Entry;->getZombie$okhttp()Z\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->setCurrentEditor$okhttp(Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nPLokhttp3/internal/cache/DiskLruCache$Entry;->setCurrentEditor$okhttp(Lokhttp3/internal/cache/DiskLruCache$Editor;)V\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->setReadable$okhttp(Z)V\nPLokhttp3/internal/cache/DiskLruCache$Entry;->setReadable$okhttp(Z)V\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->setSequenceNumber$okhttp(J)V\nPLokhttp3/internal/cache/DiskLruCache$Entry;->setSequenceNumber$okhttp(J)V\nHSPLokhttp3/internal/cache/DiskLruCache$Entry;->writeLengths$okhttp(Lokio/BufferedSink;)V\nPLokhttp3/internal/cache/DiskLruCache$Entry;->writeLengths$okhttp(Lokio/BufferedSink;)V\nLokhttp3/internal/cache/DiskLruCache$cleanupTask$1;\nHSPLokhttp3/internal/cache/DiskLruCache$cleanupTask$1;-><init>(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;)V\nPLokhttp3/internal/cache/DiskLruCache$cleanupTask$1;-><init>(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;)V\nLokhttp3/internal/cache/DiskLruCache$fileSystem$1;\nHSPLokhttp3/internal/cache/DiskLruCache$fileSystem$1;-><init>(Lokio/FileSystem;)V\nPLokhttp3/internal/cache/DiskLruCache$fileSystem$1;-><init>(Lokio/FileSystem;)V\nHSPLokhttp3/internal/cache/DiskLruCache$fileSystem$1;->sink(Lokio/Path;Z)Lokio/Sink;\nPLokhttp3/internal/cache/DiskLruCache$fileSystem$1;->sink(Lokio/Path;Z)Lokio/Sink;\nLokhttp3/internal/cache/DiskLruCache$newJournalWriter$faultHidingSink$1;\nHSPLokhttp3/internal/cache/DiskLruCache$newJournalWriter$faultHidingSink$1;-><init>(Lokhttp3/internal/cache/DiskLruCache;)V\nPLokhttp3/internal/cache/DiskLruCache$newJournalWriter$faultHidingSink$1;-><init>(Lokhttp3/internal/cache/DiskLruCache;)V\nLokhttp3/internal/cache/FaultHidingSink;\nHSPLokhttp3/internal/cache/FaultHidingSink;-><init>(Lokio/Sink;Lkotlin/jvm/functions/Function1;)V\nPLokhttp3/internal/cache/FaultHidingSink;-><init>(Lokio/Sink;Lkotlin/jvm/functions/Function1;)V\nHSPLokhttp3/internal/cache/FaultHidingSink;->close()V\nPLokhttp3/internal/cache/FaultHidingSink;->close()V\nHSPLokhttp3/internal/cache/FaultHidingSink;->flush()V\nPLokhttp3/internal/cache/FaultHidingSink;->flush()V\nHSPLokhttp3/internal/cache/FaultHidingSink;->write(Lokio/Buffer;J)V\nPLokhttp3/internal/cache/FaultHidingSink;->write(Lokio/Buffer;J)V\nLokhttp3/internal/concurrent/Task;\nHSPLokhttp3/internal/concurrent/Task;-><init>(Ljava/lang/String;Z)V\nPLokhttp3/internal/concurrent/Task;-><init>(Ljava/lang/String;Z)V\nHSPLokhttp3/internal/concurrent/Task;-><init>(Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/concurrent/Task;-><init>(Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/concurrent/Task;->getName()Ljava/lang/String;\nPLokhttp3/internal/concurrent/Task;->getName()Ljava/lang/String;\nHSPLokhttp3/internal/concurrent/Task;->getNextExecuteNanoTime$okhttp()J\nPLokhttp3/internal/concurrent/Task;->getNextExecuteNanoTime$okhttp()J\nHSPLokhttp3/internal/concurrent/Task;->getQueue$okhttp()Lokhttp3/internal/concurrent/TaskQueue;\nPLokhttp3/internal/concurrent/Task;->getQueue$okhttp()Lokhttp3/internal/concurrent/TaskQueue;\nHSPLokhttp3/internal/concurrent/Task;->initQueue$okhttp(Lokhttp3/internal/concurrent/TaskQueue;)V\nPLokhttp3/internal/concurrent/Task;->initQueue$okhttp(Lokhttp3/internal/concurrent/TaskQueue;)V\nHSPLokhttp3/internal/concurrent/Task;->setNextExecuteNanoTime$okhttp(J)V\nPLokhttp3/internal/concurrent/Task;->setNextExecuteNanoTime$okhttp(J)V\nLokhttp3/internal/concurrent/TaskQueue;\nHSPLokhttp3/internal/concurrent/TaskQueue;-><init>(Lokhttp3/internal/concurrent/TaskRunner;Ljava/lang/String;)V\nPLokhttp3/internal/concurrent/TaskQueue;-><init>(Lokhttp3/internal/concurrent/TaskRunner;Ljava/lang/String;)V\nHSPLokhttp3/internal/concurrent/TaskQueue;->execute$default(Lokhttp3/internal/concurrent/TaskQueue;Ljava/lang/String;JZLkotlin/jvm/functions/Function0;ILjava/lang/Object;)V\nPLokhttp3/internal/concurrent/TaskQueue;->execute$default(Lokhttp3/internal/concurrent/TaskQueue;Ljava/lang/String;JZLkotlin/jvm/functions/Function0;ILjava/lang/Object;)V\nHSPLokhttp3/internal/concurrent/TaskQueue;->execute(Ljava/lang/String;JZLkotlin/jvm/functions/Function0;)V\nPLokhttp3/internal/concurrent/TaskQueue;->execute(Ljava/lang/String;JZLkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/internal/concurrent/TaskQueue;->getActiveTask$okhttp()Lokhttp3/internal/concurrent/Task;\nPLokhttp3/internal/concurrent/TaskQueue;->getActiveTask$okhttp()Lokhttp3/internal/concurrent/Task;\nHSPLokhttp3/internal/concurrent/TaskQueue;->getCancelActiveTask$okhttp()Z\nPLokhttp3/internal/concurrent/TaskQueue;->getCancelActiveTask$okhttp()Z\nHSPLokhttp3/internal/concurrent/TaskQueue;->getFutureTasks$okhttp()Ljava/util/List;\nPLokhttp3/internal/concurrent/TaskQueue;->getFutureTasks$okhttp()Ljava/util/List;\nHSPLokhttp3/internal/concurrent/TaskQueue;->getShutdown$okhttp()Z\nPLokhttp3/internal/concurrent/TaskQueue;->getShutdown$okhttp()Z\nHSPLokhttp3/internal/concurrent/TaskQueue;->schedule$default(Lokhttp3/internal/concurrent/TaskQueue;Lokhttp3/internal/concurrent/Task;JILjava/lang/Object;)V\nPLokhttp3/internal/concurrent/TaskQueue;->schedule$default(Lokhttp3/internal/concurrent/TaskQueue;Lokhttp3/internal/concurrent/Task;JILjava/lang/Object;)V\nHSPLokhttp3/internal/concurrent/TaskQueue;->schedule(Lokhttp3/internal/concurrent/Task;J)V\nPLokhttp3/internal/concurrent/TaskQueue;->schedule(Lokhttp3/internal/concurrent/Task;J)V\nHSPLokhttp3/internal/concurrent/TaskQueue;->scheduleAndDecide$okhttp(Lokhttp3/internal/concurrent/Task;JZ)Z\nPLokhttp3/internal/concurrent/TaskQueue;->scheduleAndDecide$okhttp(Lokhttp3/internal/concurrent/Task;JZ)Z\nHSPLokhttp3/internal/concurrent/TaskQueue;->setActiveTask$okhttp(Lokhttp3/internal/concurrent/Task;)V\nPLokhttp3/internal/concurrent/TaskQueue;->setActiveTask$okhttp(Lokhttp3/internal/concurrent/Task;)V\nHSPLokhttp3/internal/concurrent/TaskQueue;->setCancelActiveTask$okhttp(Z)V\nPLokhttp3/internal/concurrent/TaskQueue;->setCancelActiveTask$okhttp(Z)V\nLokhttp3/internal/concurrent/TaskQueue$execute$1;\nHSPLokhttp3/internal/concurrent/TaskQueue$execute$1;-><init>(Ljava/lang/String;ZLkotlin/jvm/functions/Function0;)V\nPLokhttp3/internal/concurrent/TaskQueue$execute$1;-><init>(Ljava/lang/String;ZLkotlin/jvm/functions/Function0;)V\nHSPLokhttp3/internal/concurrent/TaskQueue$execute$1;->runOnce()J\nPLokhttp3/internal/concurrent/TaskQueue$execute$1;->runOnce()J\nLokhttp3/internal/concurrent/TaskRunner;\nHSPLokhttp3/internal/concurrent/TaskRunner;-><clinit>()V\nPLokhttp3/internal/concurrent/TaskRunner;-><clinit>()V\nHSPLokhttp3/internal/concurrent/TaskRunner;-><init>(Lokhttp3/internal/concurrent/TaskRunner$Backend;Ljava/util/logging/Logger;)V\nPLokhttp3/internal/concurrent/TaskRunner;-><init>(Lokhttp3/internal/concurrent/TaskRunner$Backend;Ljava/util/logging/Logger;)V\nHSPLokhttp3/internal/concurrent/TaskRunner;-><init>(Lokhttp3/internal/concurrent/TaskRunner$Backend;Ljava/util/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/concurrent/TaskRunner;-><init>(Lokhttp3/internal/concurrent/TaskRunner$Backend;Ljava/util/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/concurrent/TaskRunner;->access$runTask(Lokhttp3/internal/concurrent/TaskRunner;Lokhttp3/internal/concurrent/Task;)V\nPLokhttp3/internal/concurrent/TaskRunner;->access$runTask(Lokhttp3/internal/concurrent/TaskRunner;Lokhttp3/internal/concurrent/Task;)V\nHSPLokhttp3/internal/concurrent/TaskRunner;->afterRun(Lokhttp3/internal/concurrent/Task;J)V\nPLokhttp3/internal/concurrent/TaskRunner;->afterRun(Lokhttp3/internal/concurrent/Task;J)V\nHSPLokhttp3/internal/concurrent/TaskRunner;->awaitTaskToRun()Lokhttp3/internal/concurrent/Task;\nPLokhttp3/internal/concurrent/TaskRunner;->awaitTaskToRun()Lokhttp3/internal/concurrent/Task;\nHSPLokhttp3/internal/concurrent/TaskRunner;->getBackend()Lokhttp3/internal/concurrent/TaskRunner$Backend;\nPLokhttp3/internal/concurrent/TaskRunner;->getBackend()Lokhttp3/internal/concurrent/TaskRunner$Backend;\nHSPLokhttp3/internal/concurrent/TaskRunner;->getLogger$okhttp()Ljava/util/logging/Logger;\nPLokhttp3/internal/concurrent/TaskRunner;->getLogger$okhttp()Ljava/util/logging/Logger;\nHSPLokhttp3/internal/concurrent/TaskRunner;->kickCoordinator$okhttp(Lokhttp3/internal/concurrent/TaskQueue;)V\nPLokhttp3/internal/concurrent/TaskRunner;->kickCoordinator$okhttp(Lokhttp3/internal/concurrent/TaskQueue;)V\nHSPLokhttp3/internal/concurrent/TaskRunner;->newQueue()Lokhttp3/internal/concurrent/TaskQueue;\nPLokhttp3/internal/concurrent/TaskRunner;->newQueue()Lokhttp3/internal/concurrent/TaskQueue;\nLokhttp3/internal/concurrent/TaskRunner$Backend;\nLokhttp3/internal/concurrent/TaskRunner$Companion;\nHSPLokhttp3/internal/concurrent/TaskRunner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/concurrent/TaskRunner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/concurrent/TaskRunner$RealBackend;\nHSPLokhttp3/internal/concurrent/TaskRunner$RealBackend;-><init>(Ljava/util/concurrent/ThreadFactory;)V\nPLokhttp3/internal/concurrent/TaskRunner$RealBackend;-><init>(Ljava/util/concurrent/ThreadFactory;)V\nHSPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->coordinatorNotify(Lokhttp3/internal/concurrent/TaskRunner;)V\nPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->coordinatorNotify(Lokhttp3/internal/concurrent/TaskRunner;)V\nHSPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->coordinatorWait(Lokhttp3/internal/concurrent/TaskRunner;J)V\nPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->coordinatorWait(Lokhttp3/internal/concurrent/TaskRunner;J)V\nHSPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->decorate(Ljava/util/concurrent/BlockingQueue;)Ljava/util/concurrent/BlockingQueue;\nPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->decorate(Ljava/util/concurrent/BlockingQueue;)Ljava/util/concurrent/BlockingQueue;\nHSPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->execute(Lokhttp3/internal/concurrent/TaskRunner;Ljava/lang/Runnable;)V\nPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->execute(Lokhttp3/internal/concurrent/TaskRunner;Ljava/lang/Runnable;)V\nHSPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->nanoTime()J\nPLokhttp3/internal/concurrent/TaskRunner$RealBackend;->nanoTime()J\nLokhttp3/internal/concurrent/TaskRunner$runnable$1;\nHSPLokhttp3/internal/concurrent/TaskRunner$runnable$1;-><init>(Lokhttp3/internal/concurrent/TaskRunner;)V\nPLokhttp3/internal/concurrent/TaskRunner$runnable$1;-><init>(Lokhttp3/internal/concurrent/TaskRunner;)V\nHSPLokhttp3/internal/concurrent/TaskRunner$runnable$1;->run()V\nPLokhttp3/internal/concurrent/TaskRunner$runnable$1;->run()V\nLokhttp3/internal/connection/ConnectInterceptor;\nHSPLokhttp3/internal/connection/ConnectInterceptor;-><clinit>()V\nPLokhttp3/internal/connection/ConnectInterceptor;-><clinit>()V\nHSPLokhttp3/internal/connection/ConnectInterceptor;-><init>()V\nPLokhttp3/internal/connection/ConnectInterceptor;-><init>()V\nHSPLokhttp3/internal/connection/ConnectInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLokhttp3/internal/connection/ConnectInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLokhttp3/internal/connection/ConnectPlan;\nHSPLokhttp3/internal/connection/ConnectPlan;-><clinit>()V\nPLokhttp3/internal/connection/ConnectPlan;-><clinit>()V\nHSPLokhttp3/internal/connection/ConnectPlan;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/internal/connection/RealCall;Lokhttp3/internal/connection/RealRoutePlanner;Lokhttp3/Route;Ljava/util/List;ILokhttp3/Request;IZ)V\nPLokhttp3/internal/connection/ConnectPlan;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/internal/connection/RealCall;Lokhttp3/internal/connection/RealRoutePlanner;Lokhttp3/Route;Ljava/util/List;ILokhttp3/Request;IZ)V\nHSPLokhttp3/internal/connection/ConnectPlan;->connectSocket()V\nPLokhttp3/internal/connection/ConnectPlan;->connectSocket()V\nHSPLokhttp3/internal/connection/ConnectPlan;->connectTcp()Lokhttp3/internal/connection/RoutePlanner$ConnectResult;\nPLokhttp3/internal/connection/ConnectPlan;->connectTcp()Lokhttp3/internal/connection/RoutePlanner$ConnectResult;\nHSPLokhttp3/internal/connection/ConnectPlan;->connectTls(Ljavax/net/ssl/SSLSocket;Lokhttp3/ConnectionSpec;)V\nPLokhttp3/internal/connection/ConnectPlan;->connectTls(Ljavax/net/ssl/SSLSocket;Lokhttp3/ConnectionSpec;)V\nHSPLokhttp3/internal/connection/ConnectPlan;->connectTlsEtc()Lokhttp3/internal/connection/RoutePlanner$ConnectResult;\nPLokhttp3/internal/connection/ConnectPlan;->connectTlsEtc()Lokhttp3/internal/connection/RoutePlanner$ConnectResult;\nHSPLokhttp3/internal/connection/ConnectPlan;->copy$default(Lokhttp3/internal/connection/ConnectPlan;ILokhttp3/Request;IZI)Lokhttp3/internal/connection/ConnectPlan;\nPLokhttp3/internal/connection/ConnectPlan;->copy$default(Lokhttp3/internal/connection/ConnectPlan;ILokhttp3/Request;IZI)Lokhttp3/internal/connection/ConnectPlan;\nHSPLokhttp3/internal/connection/ConnectPlan;->getRoutes$okhttp()Ljava/util/List;\nPLokhttp3/internal/connection/ConnectPlan;->getRoutes$okhttp()Ljava/util/List;\nHSPLokhttp3/internal/connection/ConnectPlan;->handleSuccess()Lokhttp3/internal/connection/RealConnection;\nPLokhttp3/internal/connection/ConnectPlan;->handleSuccess()Lokhttp3/internal/connection/RealConnection;\nHSPLokhttp3/internal/connection/ConnectPlan;->isReady()Z\nPLokhttp3/internal/connection/ConnectPlan;->isReady()Z\nHSPLokhttp3/internal/connection/ConnectPlan;->nextConnectionSpec$okhttp(Ljava/util/List;Ljavax/net/ssl/SSLSocket;)Lokhttp3/internal/connection/ConnectPlan;\nPLokhttp3/internal/connection/ConnectPlan;->nextConnectionSpec$okhttp(Ljava/util/List;Ljavax/net/ssl/SSLSocket;)Lokhttp3/internal/connection/ConnectPlan;\nHSPLokhttp3/internal/connection/ConnectPlan;->planWithCurrentOrInitialConnectionSpec$okhttp(Ljava/util/List;Ljavax/net/ssl/SSLSocket;)Lokhttp3/internal/connection/ConnectPlan;\nPLokhttp3/internal/connection/ConnectPlan;->planWithCurrentOrInitialConnectionSpec$okhttp(Ljava/util/List;Ljavax/net/ssl/SSLSocket;)Lokhttp3/internal/connection/ConnectPlan;\nLokhttp3/internal/connection/ConnectPlan$Companion;\nHSPLokhttp3/internal/connection/ConnectPlan$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/connection/ConnectPlan$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/connection/ConnectPlan$WhenMappings;\nHSPLokhttp3/internal/connection/ConnectPlan$WhenMappings;-><clinit>()V\nPLokhttp3/internal/connection/ConnectPlan$WhenMappings;-><clinit>()V\nLokhttp3/internal/connection/ConnectPlan$connectTls$1;\nHSPLokhttp3/internal/connection/ConnectPlan$connectTls$1;-><init>(Lokhttp3/Handshake;)V\nPLokhttp3/internal/connection/ConnectPlan$connectTls$1;-><init>(Lokhttp3/Handshake;)V\nLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;\nHSPLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;-><init>(Lokhttp3/CertificatePinner;Lokhttp3/Handshake;Lokhttp3/Address;)V\nPLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;-><init>(Lokhttp3/CertificatePinner;Lokhttp3/Handshake;Lokhttp3/Address;)V\nHSPLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;->invoke()Ljava/lang/Object;\nPLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;->invoke()Ljava/lang/Object;\nHSPLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;->invoke()Ljava/util/List;\nPLokhttp3/internal/connection/ConnectPlan$connectTls$handshake$1;->invoke()Ljava/util/List;\nLokhttp3/internal/connection/Exchange;\nHSPLokhttp3/internal/connection/Exchange;-><init>(Lokhttp3/internal/connection/RealCall;Lokhttp3/EventListener;Lokhttp3/internal/connection/ExchangeFinder;Lokhttp3/internal/http/ExchangeCodec;)V\nPLokhttp3/internal/connection/Exchange;-><init>(Lokhttp3/internal/connection/RealCall;Lokhttp3/EventListener;Lokhttp3/internal/connection/ExchangeFinder;Lokhttp3/internal/http/ExchangeCodec;)V\nHSPLokhttp3/internal/connection/Exchange;->bodyComplete(JZZLjava/io/IOException;)Ljava/io/IOException;\nPLokhttp3/internal/connection/Exchange;->bodyComplete(JZZLjava/io/IOException;)Ljava/io/IOException;\nHSPLokhttp3/internal/connection/Exchange;->finishRequest()V\nPLokhttp3/internal/connection/Exchange;->finishRequest()V\nHSPLokhttp3/internal/connection/Exchange;->getCall$okhttp()Lokhttp3/internal/connection/RealCall;\nPLokhttp3/internal/connection/Exchange;->getCall$okhttp()Lokhttp3/internal/connection/RealCall;\nHSPLokhttp3/internal/connection/Exchange;->getConnection$okhttp()Lokhttp3/internal/connection/RealConnection;\nPLokhttp3/internal/connection/Exchange;->getConnection$okhttp()Lokhttp3/internal/connection/RealConnection;\nHSPLokhttp3/internal/connection/Exchange;->getEventListener$okhttp()Lokhttp3/EventListener;\nPLokhttp3/internal/connection/Exchange;->getEventListener$okhttp()Lokhttp3/EventListener;\nHSPLokhttp3/internal/connection/Exchange;->getFinder$okhttp()Lokhttp3/internal/connection/ExchangeFinder;\nPLokhttp3/internal/connection/Exchange;->getFinder$okhttp()Lokhttp3/internal/connection/ExchangeFinder;\nHSPLokhttp3/internal/connection/Exchange;->isDuplex$okhttp()Z\nPLokhttp3/internal/connection/Exchange;->isDuplex$okhttp()Z\nHSPLokhttp3/internal/connection/Exchange;->noRequestBody()V\nPLokhttp3/internal/connection/Exchange;->noRequestBody()V\nHSPLokhttp3/internal/connection/Exchange;->openResponseBody(Lokhttp3/Response;)Lokhttp3/ResponseBody;\nPLokhttp3/internal/connection/Exchange;->openResponseBody(Lokhttp3/Response;)Lokhttp3/ResponseBody;\nHSPLokhttp3/internal/connection/Exchange;->readResponseHeaders(Z)Lokhttp3/Response$Builder;\nPLokhttp3/internal/connection/Exchange;->readResponseHeaders(Z)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/connection/Exchange;->responseHeadersEnd(Lokhttp3/Response;)V\nPLokhttp3/internal/connection/Exchange;->responseHeadersEnd(Lokhttp3/Response;)V\nHSPLokhttp3/internal/connection/Exchange;->responseHeadersStart()V\nPLokhttp3/internal/connection/Exchange;->responseHeadersStart()V\nHSPLokhttp3/internal/connection/Exchange;->writeRequestHeaders(Lokhttp3/Request;)V\nPLokhttp3/internal/connection/Exchange;->writeRequestHeaders(Lokhttp3/Request;)V\nLokhttp3/internal/connection/Exchange$ResponseBodySource;\nHSPLokhttp3/internal/connection/Exchange$ResponseBodySource;-><init>(Lokhttp3/internal/connection/Exchange;Lokio/Source;J)V\nPLokhttp3/internal/connection/Exchange$ResponseBodySource;-><init>(Lokhttp3/internal/connection/Exchange;Lokio/Source;J)V\nHSPLokhttp3/internal/connection/Exchange$ResponseBodySource;->close()V\nPLokhttp3/internal/connection/Exchange$ResponseBodySource;->close()V\nHSPLokhttp3/internal/connection/Exchange$ResponseBodySource;->complete(Ljava/io/IOException;)Ljava/io/IOException;\nPLokhttp3/internal/connection/Exchange$ResponseBodySource;->complete(Ljava/io/IOException;)Ljava/io/IOException;\nHSPLokhttp3/internal/connection/Exchange$ResponseBodySource;->read(Lokio/Buffer;J)J\nPLokhttp3/internal/connection/Exchange$ResponseBodySource;->read(Lokio/Buffer;J)J\nLokhttp3/internal/connection/ExchangeFinder;\nLokhttp3/internal/connection/FailedPlan;\nLokhttp3/internal/connection/FastFallbackExchangeFinder;\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;-><init>(Lokhttp3/internal/connection/RoutePlanner;Lokhttp3/internal/concurrent/TaskRunner;)V\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;-><init>(Lokhttp3/internal/connection/RoutePlanner;Lokhttp3/internal/concurrent/TaskRunner;)V\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;->access$getConnectResults$p(Lokhttp3/internal/connection/FastFallbackExchangeFinder;)Ljava/util/concurrent/BlockingQueue;\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;->access$getConnectResults$p(Lokhttp3/internal/connection/FastFallbackExchangeFinder;)Ljava/util/concurrent/BlockingQueue;\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;->access$getTcpConnectsInFlight$p(Lokhttp3/internal/connection/FastFallbackExchangeFinder;)Ljava/util/concurrent/CopyOnWriteArrayList;\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;->access$getTcpConnectsInFlight$p(Lokhttp3/internal/connection/FastFallbackExchangeFinder;)Ljava/util/concurrent/CopyOnWriteArrayList;\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;->cancelInFlightConnects()V\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;->cancelInFlightConnects()V\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;->find()Lokhttp3/internal/connection/RealConnection;\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;->find()Lokhttp3/internal/connection/RealConnection;\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;->getRoutePlanner()Lokhttp3/internal/connection/RoutePlanner;\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;->getRoutePlanner()Lokhttp3/internal/connection/RoutePlanner;\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder;->launchTcpConnect()Lokhttp3/internal/connection/RoutePlanner$ConnectResult;\nPLokhttp3/internal/connection/FastFallbackExchangeFinder;->launchTcpConnect()Lokhttp3/internal/connection/RoutePlanner$ConnectResult;\nLokhttp3/internal/connection/FastFallbackExchangeFinder$launchTcpConnect$1;\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder$launchTcpConnect$1;-><init>(Ljava/lang/String;Lokhttp3/internal/connection/RoutePlanner$Plan;Lokhttp3/internal/connection/FastFallbackExchangeFinder;)V\nPLokhttp3/internal/connection/FastFallbackExchangeFinder$launchTcpConnect$1;-><init>(Ljava/lang/String;Lokhttp3/internal/connection/RoutePlanner$Plan;Lokhttp3/internal/connection/FastFallbackExchangeFinder;)V\nHSPLokhttp3/internal/connection/FastFallbackExchangeFinder$launchTcpConnect$1;->runOnce()J\nPLokhttp3/internal/connection/FastFallbackExchangeFinder$launchTcpConnect$1;->runOnce()J\nLokhttp3/internal/connection/InetAddressOrderKt;\nHSPLokhttp3/internal/connection/InetAddressOrderKt;->reorderForHappyEyeballs(Ljava/util/List;)Ljava/util/List;\nPLokhttp3/internal/connection/InetAddressOrderKt;->reorderForHappyEyeballs(Ljava/util/List;)Ljava/util/List;\nLokhttp3/internal/connection/RealCall;\nHSPLokhttp3/internal/connection/RealCall;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/Request;Z)V\nPLokhttp3/internal/connection/RealCall;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/Request;Z)V\nHSPLokhttp3/internal/connection/RealCall;->access$getTimeout$p(Lokhttp3/internal/connection/RealCall;)Lokhttp3/internal/connection/RealCall$timeout$1;\nPLokhttp3/internal/connection/RealCall;->access$getTimeout$p(Lokhttp3/internal/connection/RealCall;)Lokhttp3/internal/connection/RealCall$timeout$1;\nHSPLokhttp3/internal/connection/RealCall;->acquireConnectionNoEvents(Lokhttp3/internal/connection/RealConnection;)V\nPLokhttp3/internal/connection/RealCall;->acquireConnectionNoEvents(Lokhttp3/internal/connection/RealConnection;)V\nHSPLokhttp3/internal/connection/RealCall;->callDone(Ljava/io/IOException;)Ljava/io/IOException;\nPLokhttp3/internal/connection/RealCall;->callDone(Ljava/io/IOException;)Ljava/io/IOException;\nHSPLokhttp3/internal/connection/RealCall;->enqueue(Lokhttp3/Callback;)V\nPLokhttp3/internal/connection/RealCall;->enqueue(Lokhttp3/Callback;)V\nHSPLokhttp3/internal/connection/RealCall;->enterNetworkInterceptorExchange(Lokhttp3/Request;ZLokhttp3/internal/http/RealInterceptorChain;)V\nPLokhttp3/internal/connection/RealCall;->enterNetworkInterceptorExchange(Lokhttp3/Request;ZLokhttp3/internal/http/RealInterceptorChain;)V\nHSPLokhttp3/internal/connection/RealCall;->exitNetworkInterceptorExchange$okhttp(Z)V\nPLokhttp3/internal/connection/RealCall;->exitNetworkInterceptorExchange$okhttp(Z)V\nHSPLokhttp3/internal/connection/RealCall;->getClient()Lokhttp3/OkHttpClient;\nPLokhttp3/internal/connection/RealCall;->getClient()Lokhttp3/OkHttpClient;\nHSPLokhttp3/internal/connection/RealCall;->getConnection()Lokhttp3/internal/connection/RealConnection;\nPLokhttp3/internal/connection/RealCall;->getConnection()Lokhttp3/internal/connection/RealConnection;\nHSPLokhttp3/internal/connection/RealCall;->getEventListener$okhttp()Lokhttp3/EventListener;\nPLokhttp3/internal/connection/RealCall;->getEventListener$okhttp()Lokhttp3/EventListener;\nHSPLokhttp3/internal/connection/RealCall;->getForWebSocket()Z\nPLokhttp3/internal/connection/RealCall;->getForWebSocket()Z\nHSPLokhttp3/internal/connection/RealCall;->getInterceptorScopedExchange$okhttp()Lokhttp3/internal/connection/Exchange;\nPLokhttp3/internal/connection/RealCall;->getInterceptorScopedExchange$okhttp()Lokhttp3/internal/connection/Exchange;\nHSPLokhttp3/internal/connection/RealCall;->getOriginalRequest()Lokhttp3/Request;\nPLokhttp3/internal/connection/RealCall;->getOriginalRequest()Lokhttp3/Request;\nHSPLokhttp3/internal/connection/RealCall;->getPlansToCancel$okhttp()Ljava/util/concurrent/CopyOnWriteArrayList;\nPLokhttp3/internal/connection/RealCall;->getPlansToCancel$okhttp()Ljava/util/concurrent/CopyOnWriteArrayList;\nHSPLokhttp3/internal/connection/RealCall;->getResponseWithInterceptorChain$okhttp()Lokhttp3/Response;\nPLokhttp3/internal/connection/RealCall;->getResponseWithInterceptorChain$okhttp()Lokhttp3/Response;\nHSPLokhttp3/internal/connection/RealCall;->initExchange$okhttp(Lokhttp3/internal/http/RealInterceptorChain;)Lokhttp3/internal/connection/Exchange;\nPLokhttp3/internal/connection/RealCall;->initExchange$okhttp(Lokhttp3/internal/http/RealInterceptorChain;)Lokhttp3/internal/connection/Exchange;\nHSPLokhttp3/internal/connection/RealCall;->isCanceled()Z\nPLokhttp3/internal/connection/RealCall;->isCanceled()Z\nHSPLokhttp3/internal/connection/RealCall;->messageDone$okhttp(Lokhttp3/internal/connection/Exchange;ZZLjava/io/IOException;)Ljava/io/IOException;\nPLokhttp3/internal/connection/RealCall;->messageDone$okhttp(Lokhttp3/internal/connection/Exchange;ZZLjava/io/IOException;)Ljava/io/IOException;\nHSPLokhttp3/internal/connection/RealCall;->noMoreExchanges$okhttp(Ljava/io/IOException;)Ljava/io/IOException;\nPLokhttp3/internal/connection/RealCall;->noMoreExchanges$okhttp(Ljava/io/IOException;)Ljava/io/IOException;\nHSPLokhttp3/internal/connection/RealCall;->redactedUrl$okhttp()Ljava/lang/String;\nPLokhttp3/internal/connection/RealCall;->redactedUrl$okhttp()Ljava/lang/String;\nHSPLokhttp3/internal/connection/RealCall;->releaseConnectionNoEvents$okhttp()Ljava/net/Socket;\nPLokhttp3/internal/connection/RealCall;->releaseConnectionNoEvents$okhttp()Ljava/net/Socket;\nLokhttp3/internal/connection/RealCall$AsyncCall;\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;-><init>(Lokhttp3/internal/connection/RealCall;Lokhttp3/Callback;)V\nPLokhttp3/internal/connection/RealCall$AsyncCall;-><init>(Lokhttp3/internal/connection/RealCall;Lokhttp3/Callback;)V\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;->executeOn(Ljava/util/concurrent/ExecutorService;)V\nPLokhttp3/internal/connection/RealCall$AsyncCall;->executeOn(Ljava/util/concurrent/ExecutorService;)V\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;->getCall()Lokhttp3/internal/connection/RealCall;\nPLokhttp3/internal/connection/RealCall$AsyncCall;->getCall()Lokhttp3/internal/connection/RealCall;\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;->getCallsPerHost()Ljava/util/concurrent/atomic/AtomicInteger;\nPLokhttp3/internal/connection/RealCall$AsyncCall;->getCallsPerHost()Ljava/util/concurrent/atomic/AtomicInteger;\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;->getHost()Ljava/lang/String;\nPLokhttp3/internal/connection/RealCall$AsyncCall;->getHost()Ljava/lang/String;\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;->reuseCallsPerHostFrom(Lokhttp3/internal/connection/RealCall$AsyncCall;)V\nPLokhttp3/internal/connection/RealCall$AsyncCall;->reuseCallsPerHostFrom(Lokhttp3/internal/connection/RealCall$AsyncCall;)V\nHSPLokhttp3/internal/connection/RealCall$AsyncCall;->run()V\nPLokhttp3/internal/connection/RealCall$AsyncCall;->run()V\nLokhttp3/internal/connection/RealCall$CallReference;\nHSPLokhttp3/internal/connection/RealCall$CallReference;-><init>(Lokhttp3/internal/connection/RealCall;Ljava/lang/Object;)V\nPLokhttp3/internal/connection/RealCall$CallReference;-><init>(Lokhttp3/internal/connection/RealCall;Ljava/lang/Object;)V\nLokhttp3/internal/connection/RealCall$timeout$1;\nHSPLokhttp3/internal/connection/RealCall$timeout$1;-><init>(Lokhttp3/internal/connection/RealCall;)V\nPLokhttp3/internal/connection/RealCall$timeout$1;-><init>(Lokhttp3/internal/connection/RealCall;)V\nLokhttp3/internal/connection/RealConnection;\nHSPLokhttp3/internal/connection/RealConnection;-><clinit>()V\nPLokhttp3/internal/connection/RealConnection;-><clinit>()V\nHSPLokhttp3/internal/connection/RealConnection;-><init>(Lokhttp3/internal/concurrent/TaskRunner;Lokhttp3/internal/connection/RealConnectionPool;Lokhttp3/Route;Ljava/net/Socket;Ljava/net/Socket;Lokhttp3/Handshake;Lokhttp3/Protocol;Lokio/BufferedSource;Lokio/BufferedSink;I)V\nPLokhttp3/internal/connection/RealConnection;-><init>(Lokhttp3/internal/concurrent/TaskRunner;Lokhttp3/internal/connection/RealConnectionPool;Lokhttp3/Route;Ljava/net/Socket;Ljava/net/Socket;Lokhttp3/Handshake;Lokhttp3/Protocol;Lokio/BufferedSource;Lokio/BufferedSink;I)V\nHSPLokhttp3/internal/connection/RealConnection;->getCalls()Ljava/util/List;\nPLokhttp3/internal/connection/RealConnection;->getCalls()Ljava/util/List;\nHSPLokhttp3/internal/connection/RealConnection;->getIdleAtNs()J\nPLokhttp3/internal/connection/RealConnection;->getIdleAtNs()J\nHSPLokhttp3/internal/connection/RealConnection;->getNoNewExchanges()Z\nPLokhttp3/internal/connection/RealConnection;->getNoNewExchanges()Z\nHSPLokhttp3/internal/connection/RealConnection;->handshake()Lokhttp3/Handshake;\nPLokhttp3/internal/connection/RealConnection;->handshake()Lokhttp3/Handshake;\nHSPLokhttp3/internal/connection/RealConnection;->incrementSuccessCount$okhttp()V\nPLokhttp3/internal/connection/RealConnection;->incrementSuccessCount$okhttp()V\nHSPLokhttp3/internal/connection/RealConnection;->newCodec$okhttp(Lokhttp3/OkHttpClient;Lokhttp3/internal/http/RealInterceptorChain;)Lokhttp3/internal/http/ExchangeCodec;\nPLokhttp3/internal/connection/RealConnection;->newCodec$okhttp(Lokhttp3/OkHttpClient;Lokhttp3/internal/http/RealInterceptorChain;)Lokhttp3/internal/http/ExchangeCodec;\nHSPLokhttp3/internal/connection/RealConnection;->onSettings(Lokhttp3/internal/http2/Http2Connection;Lokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/connection/RealConnection;->onSettings(Lokhttp3/internal/http2/Http2Connection;Lokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/connection/RealConnection;->protocol()Lokhttp3/Protocol;\nPLokhttp3/internal/connection/RealConnection;->protocol()Lokhttp3/Protocol;\nHSPLokhttp3/internal/connection/RealConnection;->route()Lokhttp3/Route;\nPLokhttp3/internal/connection/RealConnection;->route()Lokhttp3/Route;\nHSPLokhttp3/internal/connection/RealConnection;->setIdleAtNs(J)V\nPLokhttp3/internal/connection/RealConnection;->setIdleAtNs(J)V\nHSPLokhttp3/internal/connection/RealConnection;->start()V\nPLokhttp3/internal/connection/RealConnection;->start()V\nLokhttp3/internal/connection/RealConnection$Companion;\nHSPLokhttp3/internal/connection/RealConnection$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/connection/RealConnection$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/connection/RealConnectionPool;\nHSPLokhttp3/internal/connection/RealConnectionPool;-><clinit>()V\nPLokhttp3/internal/connection/RealConnectionPool;-><clinit>()V\nHSPLokhttp3/internal/connection/RealConnectionPool;-><init>(Lokhttp3/internal/concurrent/TaskRunner;IJLjava/util/concurrent/TimeUnit;)V\nPLokhttp3/internal/connection/RealConnectionPool;-><init>(Lokhttp3/internal/concurrent/TaskRunner;IJLjava/util/concurrent/TimeUnit;)V\nHSPLokhttp3/internal/connection/RealConnectionPool;->callAcquirePooledConnection(ZLokhttp3/Address;Lokhttp3/internal/connection/RealCall;Ljava/util/List;Z)Lokhttp3/internal/connection/RealConnection;\nPLokhttp3/internal/connection/RealConnectionPool;->callAcquirePooledConnection(ZLokhttp3/Address;Lokhttp3/internal/connection/RealCall;Ljava/util/List;Z)Lokhttp3/internal/connection/RealConnection;\nHSPLokhttp3/internal/connection/RealConnectionPool;->cleanup(J)J\nPLokhttp3/internal/connection/RealConnectionPool;->cleanup(J)J\nHSPLokhttp3/internal/connection/RealConnectionPool;->connectionBecameIdle(Lokhttp3/internal/connection/RealConnection;)Z\nPLokhttp3/internal/connection/RealConnectionPool;->connectionBecameIdle(Lokhttp3/internal/connection/RealConnection;)Z\nHSPLokhttp3/internal/connection/RealConnectionPool;->pruneAndGetAllocationCount(Lokhttp3/internal/connection/RealConnection;J)I\nPLokhttp3/internal/connection/RealConnectionPool;->pruneAndGetAllocationCount(Lokhttp3/internal/connection/RealConnection;J)I\nHSPLokhttp3/internal/connection/RealConnectionPool;->put(Lokhttp3/internal/connection/RealConnection;)V\nPLokhttp3/internal/connection/RealConnectionPool;->put(Lokhttp3/internal/connection/RealConnection;)V\nLokhttp3/internal/connection/RealConnectionPool$Companion;\nHSPLokhttp3/internal/connection/RealConnectionPool$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/connection/RealConnectionPool$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/connection/RealConnectionPool$cleanupTask$1;\nHSPLokhttp3/internal/connection/RealConnectionPool$cleanupTask$1;-><init>(Lokhttp3/internal/connection/RealConnectionPool;Ljava/lang/String;)V\nPLokhttp3/internal/connection/RealConnectionPool$cleanupTask$1;-><init>(Lokhttp3/internal/connection/RealConnectionPool;Ljava/lang/String;)V\nHSPLokhttp3/internal/connection/RealConnectionPool$cleanupTask$1;->runOnce()J\nPLokhttp3/internal/connection/RealConnectionPool$cleanupTask$1;->runOnce()J\nLokhttp3/internal/connection/RealRoutePlanner;\nHSPLokhttp3/internal/connection/RealRoutePlanner;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/Address;Lokhttp3/internal/connection/RealCall;Lokhttp3/internal/http/RealInterceptorChain;)V\nPLokhttp3/internal/connection/RealRoutePlanner;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/Address;Lokhttp3/internal/connection/RealCall;Lokhttp3/internal/http/RealInterceptorChain;)V\nHSPLokhttp3/internal/connection/RealRoutePlanner;->getAddress()Lokhttp3/Address;\nPLokhttp3/internal/connection/RealRoutePlanner;->getAddress()Lokhttp3/Address;\nHSPLokhttp3/internal/connection/RealRoutePlanner;->hasNext(Lokhttp3/internal/connection/RealConnection;)Z\nPLokhttp3/internal/connection/RealRoutePlanner;->hasNext(Lokhttp3/internal/connection/RealConnection;)Z\nHSPLokhttp3/internal/connection/RealRoutePlanner;->isCanceled()Z\nPLokhttp3/internal/connection/RealRoutePlanner;->isCanceled()Z\nHSPLokhttp3/internal/connection/RealRoutePlanner;->plan()Lokhttp3/internal/connection/RoutePlanner$Plan;\nPLokhttp3/internal/connection/RealRoutePlanner;->plan()Lokhttp3/internal/connection/RoutePlanner$Plan;\nHSPLokhttp3/internal/connection/RealRoutePlanner;->planConnectToRoute$okhttp$default(Lokhttp3/internal/connection/RealRoutePlanner;Lokhttp3/Route;Ljava/util/List;ILjava/lang/Object;)Lokhttp3/internal/connection/ConnectPlan;\nPLokhttp3/internal/connection/RealRoutePlanner;->planConnectToRoute$okhttp$default(Lokhttp3/internal/connection/RealRoutePlanner;Lokhttp3/Route;Ljava/util/List;ILjava/lang/Object;)Lokhttp3/internal/connection/ConnectPlan;\nHSPLokhttp3/internal/connection/RealRoutePlanner;->planConnectToRoute$okhttp(Lokhttp3/Route;Ljava/util/List;)Lokhttp3/internal/connection/ConnectPlan;\nPLokhttp3/internal/connection/RealRoutePlanner;->planConnectToRoute$okhttp(Lokhttp3/Route;Ljava/util/List;)Lokhttp3/internal/connection/ConnectPlan;\nHSPLokhttp3/internal/connection/RealRoutePlanner;->planReusePooledConnection$okhttp$default(Lokhttp3/internal/connection/RealRoutePlanner;Lokhttp3/internal/connection/ConnectPlan;Ljava/util/List;ILjava/lang/Object;)Lokhttp3/internal/connection/ReusePlan;\nPLokhttp3/internal/connection/RealRoutePlanner;->planReusePooledConnection$okhttp$default(Lokhttp3/internal/connection/RealRoutePlanner;Lokhttp3/internal/connection/ConnectPlan;Ljava/util/List;ILjava/lang/Object;)Lokhttp3/internal/connection/ReusePlan;\nHSPLokhttp3/internal/connection/RealRoutePlanner;->planReusePooledConnection$okhttp(Lokhttp3/internal/connection/ConnectPlan;Ljava/util/List;)Lokhttp3/internal/connection/ReusePlan;\nPLokhttp3/internal/connection/RealRoutePlanner;->planReusePooledConnection$okhttp(Lokhttp3/internal/connection/ConnectPlan;Ljava/util/List;)Lokhttp3/internal/connection/ReusePlan;\nHSPLokhttp3/internal/connection/RealRoutePlanner;->sameHostAndPort(Lokhttp3/HttpUrl;)Z\nPLokhttp3/internal/connection/RealRoutePlanner;->sameHostAndPort(Lokhttp3/HttpUrl;)Z\nLokhttp3/internal/connection/RouteDatabase;\nHSPLokhttp3/internal/connection/RouteDatabase;-><init>()V\nPLokhttp3/internal/connection/RouteDatabase;-><init>()V\nHSPLokhttp3/internal/connection/RouteDatabase;->connected(Lokhttp3/Route;)V\nPLokhttp3/internal/connection/RouteDatabase;->connected(Lokhttp3/Route;)V\nHSPLokhttp3/internal/connection/RouteDatabase;->shouldPostpone(Lokhttp3/Route;)Z\nPLokhttp3/internal/connection/RouteDatabase;->shouldPostpone(Lokhttp3/Route;)Z\nLokhttp3/internal/connection/RoutePlanner;\nHSPLokhttp3/internal/connection/RoutePlanner;->hasNext$default(Lokhttp3/internal/connection/RoutePlanner;Lokhttp3/internal/connection/RealConnection;ILjava/lang/Object;)Z\nPLokhttp3/internal/connection/RoutePlanner;->hasNext$default(Lokhttp3/internal/connection/RoutePlanner;Lokhttp3/internal/connection/RealConnection;ILjava/lang/Object;)Z\nLokhttp3/internal/connection/RoutePlanner$ConnectResult;\nHSPLokhttp3/internal/connection/RoutePlanner$ConnectResult;-><init>(Lokhttp3/internal/connection/RoutePlanner$Plan;Lokhttp3/internal/connection/RoutePlanner$Plan;Ljava/lang/Throwable;)V\nPLokhttp3/internal/connection/RoutePlanner$ConnectResult;-><init>(Lokhttp3/internal/connection/RoutePlanner$Plan;Lokhttp3/internal/connection/RoutePlanner$Plan;Ljava/lang/Throwable;)V\nHSPLokhttp3/internal/connection/RoutePlanner$ConnectResult;-><init>(Lokhttp3/internal/connection/RoutePlanner$Plan;Lokhttp3/internal/connection/RoutePlanner$Plan;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/connection/RoutePlanner$ConnectResult;-><init>(Lokhttp3/internal/connection/RoutePlanner$Plan;Lokhttp3/internal/connection/RoutePlanner$Plan;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->getNextPlan()Lokhttp3/internal/connection/RoutePlanner$Plan;\nPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->getNextPlan()Lokhttp3/internal/connection/RoutePlanner$Plan;\nHSPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->getPlan()Lokhttp3/internal/connection/RoutePlanner$Plan;\nPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->getPlan()Lokhttp3/internal/connection/RoutePlanner$Plan;\nHSPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->getThrowable()Ljava/lang/Throwable;\nPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->getThrowable()Ljava/lang/Throwable;\nHSPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->isSuccess()Z\nPLokhttp3/internal/connection/RoutePlanner$ConnectResult;->isSuccess()Z\nLokhttp3/internal/connection/RoutePlanner$Plan;\nLokhttp3/internal/connection/RouteSelector;\nHSPLokhttp3/internal/connection/RouteSelector;-><clinit>()V\nPLokhttp3/internal/connection/RouteSelector;-><clinit>()V\nHSPLokhttp3/internal/connection/RouteSelector;-><init>(Lokhttp3/Address;Lokhttp3/internal/connection/RouteDatabase;Lokhttp3/Call;ZLokhttp3/EventListener;)V\nPLokhttp3/internal/connection/RouteSelector;-><init>(Lokhttp3/Address;Lokhttp3/internal/connection/RouteDatabase;Lokhttp3/Call;ZLokhttp3/EventListener;)V\nHSPLokhttp3/internal/connection/RouteSelector;->hasNext()Z\nPLokhttp3/internal/connection/RouteSelector;->hasNext()Z\nHSPLokhttp3/internal/connection/RouteSelector;->next()Lokhttp3/internal/connection/RouteSelector$Selection;\nPLokhttp3/internal/connection/RouteSelector;->next()Lokhttp3/internal/connection/RouteSelector$Selection;\nLokhttp3/internal/connection/RouteSelector$Companion;\nHSPLokhttp3/internal/connection/RouteSelector$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/connection/RouteSelector$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/connection/RouteSelector$Selection;\nHSPLokhttp3/internal/connection/RouteSelector$Selection;-><init>(Ljava/util/List;)V\nPLokhttp3/internal/connection/RouteSelector$Selection;-><init>(Ljava/util/List;)V\nHSPLokhttp3/internal/connection/RouteSelector$Selection;->getRoutes()Ljava/util/List;\nPLokhttp3/internal/connection/RouteSelector$Selection;->getRoutes()Ljava/util/List;\nHSPLokhttp3/internal/connection/RouteSelector$Selection;->hasNext()Z\nPLokhttp3/internal/connection/RouteSelector$Selection;->hasNext()Z\nHSPLokhttp3/internal/connection/RouteSelector$Selection;->next()Lokhttp3/Route;\nPLokhttp3/internal/connection/RouteSelector$Selection;->next()Lokhttp3/Route;\nLokhttp3/internal/http/BridgeInterceptor;\nHSPLokhttp3/internal/http/BridgeInterceptor;-><init>(Lokhttp3/CookieJar;)V\nPLokhttp3/internal/http/BridgeInterceptor;-><init>(Lokhttp3/CookieJar;)V\nHSPLokhttp3/internal/http/BridgeInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLokhttp3/internal/http/BridgeInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLokhttp3/internal/http/CallServerInterceptor;\nHSPLokhttp3/internal/http/CallServerInterceptor;-><init>(Z)V\nPLokhttp3/internal/http/CallServerInterceptor;-><init>(Z)V\nHSPLokhttp3/internal/http/CallServerInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLokhttp3/internal/http/CallServerInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLokhttp3/internal/http/ExchangeCodec;\nLokhttp3/internal/http/ExchangeCodec$Carrier;\nLokhttp3/internal/http/HttpHeaders;\nHSPLokhttp3/internal/http/HttpHeaders;-><clinit>()V\nPLokhttp3/internal/http/HttpHeaders;-><clinit>()V\nHSPLokhttp3/internal/http/HttpHeaders;->promisesBody(Lokhttp3/Response;)Z\nPLokhttp3/internal/http/HttpHeaders;->promisesBody(Lokhttp3/Response;)Z\nHSPLokhttp3/internal/http/HttpHeaders;->receiveHeaders(Lokhttp3/CookieJar;Lokhttp3/HttpUrl;Lokhttp3/Headers;)V\nPLokhttp3/internal/http/HttpHeaders;->receiveHeaders(Lokhttp3/CookieJar;Lokhttp3/HttpUrl;Lokhttp3/Headers;)V\nLokhttp3/internal/http/HttpMethod;\nHSPLokhttp3/internal/http/HttpMethod;-><clinit>()V\nPLokhttp3/internal/http/HttpMethod;-><clinit>()V\nHSPLokhttp3/internal/http/HttpMethod;-><init>()V\nPLokhttp3/internal/http/HttpMethod;-><init>()V\nHSPLokhttp3/internal/http/HttpMethod;->invalidatesCache(Ljava/lang/String;)Z\nPLokhttp3/internal/http/HttpMethod;->invalidatesCache(Ljava/lang/String;)Z\nHSPLokhttp3/internal/http/HttpMethod;->permitsRequestBody(Ljava/lang/String;)Z\nPLokhttp3/internal/http/HttpMethod;->permitsRequestBody(Ljava/lang/String;)Z\nLokhttp3/internal/http/RealInterceptorChain;\nHSPLokhttp3/internal/http/RealInterceptorChain;-><init>(Lokhttp3/internal/connection/RealCall;Ljava/util/List;ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;III)V\nPLokhttp3/internal/http/RealInterceptorChain;-><init>(Lokhttp3/internal/connection/RealCall;Ljava/util/List;ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;III)V\nHSPLokhttp3/internal/http/RealInterceptorChain;->call()Lokhttp3/Call;\nPLokhttp3/internal/http/RealInterceptorChain;->call()Lokhttp3/Call;\nHSPLokhttp3/internal/http/RealInterceptorChain;->connection()Lokhttp3/Connection;\nPLokhttp3/internal/http/RealInterceptorChain;->connection()Lokhttp3/Connection;\nHSPLokhttp3/internal/http/RealInterceptorChain;->copy$okhttp$default(Lokhttp3/internal/http/RealInterceptorChain;ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;IIIILjava/lang/Object;)Lokhttp3/internal/http/RealInterceptorChain;\nPLokhttp3/internal/http/RealInterceptorChain;->copy$okhttp$default(Lokhttp3/internal/http/RealInterceptorChain;ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;IIIILjava/lang/Object;)Lokhttp3/internal/http/RealInterceptorChain;\nHSPLokhttp3/internal/http/RealInterceptorChain;->copy$okhttp(ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;III)Lokhttp3/internal/http/RealInterceptorChain;\nPLokhttp3/internal/http/RealInterceptorChain;->copy$okhttp(ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;III)Lokhttp3/internal/http/RealInterceptorChain;\nHSPLokhttp3/internal/http/RealInterceptorChain;->getCall$okhttp()Lokhttp3/internal/connection/RealCall;\nPLokhttp3/internal/http/RealInterceptorChain;->getCall$okhttp()Lokhttp3/internal/connection/RealCall;\nHSPLokhttp3/internal/http/RealInterceptorChain;->getExchange$okhttp()Lokhttp3/internal/connection/Exchange;\nPLokhttp3/internal/http/RealInterceptorChain;->getExchange$okhttp()Lokhttp3/internal/connection/Exchange;\nHSPLokhttp3/internal/http/RealInterceptorChain;->getReadTimeoutMillis$okhttp()I\nPLokhttp3/internal/http/RealInterceptorChain;->getReadTimeoutMillis$okhttp()I\nHSPLokhttp3/internal/http/RealInterceptorChain;->getRequest$okhttp()Lokhttp3/Request;\nPLokhttp3/internal/http/RealInterceptorChain;->getRequest$okhttp()Lokhttp3/Request;\nHSPLokhttp3/internal/http/RealInterceptorChain;->getWriteTimeoutMillis$okhttp()I\nPLokhttp3/internal/http/RealInterceptorChain;->getWriteTimeoutMillis$okhttp()I\nHSPLokhttp3/internal/http/RealInterceptorChain;->proceed(Lokhttp3/Request;)Lokhttp3/Response;\nPLokhttp3/internal/http/RealInterceptorChain;->proceed(Lokhttp3/Request;)Lokhttp3/Response;\nHSPLokhttp3/internal/http/RealInterceptorChain;->request()Lokhttp3/Request;\nPLokhttp3/internal/http/RealInterceptorChain;->request()Lokhttp3/Request;\nLokhttp3/internal/http/RealResponseBody;\nHSPLokhttp3/internal/http/RealResponseBody;-><init>(Ljava/lang/String;JLokio/BufferedSource;)V\nPLokhttp3/internal/http/RealResponseBody;-><init>(Ljava/lang/String;JLokio/BufferedSource;)V\nHSPLokhttp3/internal/http/RealResponseBody;->contentLength()J\nPLokhttp3/internal/http/RealResponseBody;->contentLength()J\nHSPLokhttp3/internal/http/RealResponseBody;->contentType()Lokhttp3/MediaType;\nPLokhttp3/internal/http/RealResponseBody;->contentType()Lokhttp3/MediaType;\nHSPLokhttp3/internal/http/RealResponseBody;->source()Lokio/BufferedSource;\nPLokhttp3/internal/http/RealResponseBody;->source()Lokio/BufferedSource;\nLokhttp3/internal/http/RequestLine;\nHSPLokhttp3/internal/http/RequestLine;-><clinit>()V\nPLokhttp3/internal/http/RequestLine;-><clinit>()V\nHSPLokhttp3/internal/http/RequestLine;-><init>()V\nPLokhttp3/internal/http/RequestLine;-><init>()V\nHSPLokhttp3/internal/http/RequestLine;->requestPath(Lokhttp3/HttpUrl;)Ljava/lang/String;\nPLokhttp3/internal/http/RequestLine;->requestPath(Lokhttp3/HttpUrl;)Ljava/lang/String;\nLokhttp3/internal/http/RetryAndFollowUpInterceptor;\nHSPLokhttp3/internal/http/RetryAndFollowUpInterceptor;-><clinit>()V\nPLokhttp3/internal/http/RetryAndFollowUpInterceptor;-><clinit>()V\nHSPLokhttp3/internal/http/RetryAndFollowUpInterceptor;-><init>(Lokhttp3/OkHttpClient;)V\nPLokhttp3/internal/http/RetryAndFollowUpInterceptor;-><init>(Lokhttp3/OkHttpClient;)V\nHSPLokhttp3/internal/http/RetryAndFollowUpInterceptor;->followUpRequest(Lokhttp3/Response;Lokhttp3/internal/connection/Exchange;)Lokhttp3/Request;\nPLokhttp3/internal/http/RetryAndFollowUpInterceptor;->followUpRequest(Lokhttp3/Response;Lokhttp3/internal/connection/Exchange;)Lokhttp3/Request;\nHSPLokhttp3/internal/http/RetryAndFollowUpInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLokhttp3/internal/http/RetryAndFollowUpInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nLokhttp3/internal/http/RetryAndFollowUpInterceptor$Companion;\nHSPLokhttp3/internal/http/RetryAndFollowUpInterceptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http/RetryAndFollowUpInterceptor$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http/StatusLine;\nHSPLokhttp3/internal/http/StatusLine;-><clinit>()V\nPLokhttp3/internal/http/StatusLine;-><clinit>()V\nHSPLokhttp3/internal/http/StatusLine;-><init>(Lokhttp3/Protocol;ILjava/lang/String;)V\nPLokhttp3/internal/http/StatusLine;-><init>(Lokhttp3/Protocol;ILjava/lang/String;)V\nHSPLokhttp3/internal/http/StatusLine;->toString()Ljava/lang/String;\nPLokhttp3/internal/http/StatusLine;->toString()Ljava/lang/String;\nLokhttp3/internal/http/StatusLine$Companion;\nHSPLokhttp3/internal/http/StatusLine$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http/StatusLine$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/http/StatusLine$Companion;->parse(Ljava/lang/String;)Lokhttp3/internal/http/StatusLine;\nPLokhttp3/internal/http/StatusLine$Companion;->parse(Ljava/lang/String;)Lokhttp3/internal/http/StatusLine;\nLokhttp3/internal/http2/ErrorCode;\nHSPLokhttp3/internal/http2/ErrorCode;-><clinit>()V\nPLokhttp3/internal/http2/ErrorCode;-><clinit>()V\nHSPLokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V\nPLokhttp3/internal/http2/ErrorCode;-><init>(Ljava/lang/String;II)V\nLokhttp3/internal/http2/ErrorCode$Companion;\nHSPLokhttp3/internal/http2/ErrorCode$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/ErrorCode$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http2/Header;\nHSPLokhttp3/internal/http2/Header;-><clinit>()V\nPLokhttp3/internal/http2/Header;-><clinit>()V\nHSPLokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nPLokhttp3/internal/http2/Header;-><init>(Ljava/lang/String;Ljava/lang/String;)V\nHSPLokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V\nPLokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Ljava/lang/String;)V\nHSPLokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V\nPLokhttp3/internal/http2/Header;-><init>(Lokio/ByteString;Lokio/ByteString;)V\nLokhttp3/internal/http2/Header$Companion;\nHSPLokhttp3/internal/http2/Header$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Header$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http2/Hpack;\nHSPLokhttp3/internal/http2/Hpack;-><clinit>()V\nPLokhttp3/internal/http2/Hpack;-><clinit>()V\nHSPLokhttp3/internal/http2/Hpack;-><init>()V\nPLokhttp3/internal/http2/Hpack;-><init>()V\nHSPLokhttp3/internal/http2/Hpack;->checkLowercase(Lokio/ByteString;)Lokio/ByteString;\nPLokhttp3/internal/http2/Hpack;->checkLowercase(Lokio/ByteString;)Lokio/ByteString;\nHSPLokhttp3/internal/http2/Hpack;->getNAME_TO_FIRST_INDEX()Ljava/util/Map;\nPLokhttp3/internal/http2/Hpack;->getNAME_TO_FIRST_INDEX()Ljava/util/Map;\nHSPLokhttp3/internal/http2/Hpack;->getSTATIC_HEADER_TABLE()[Lokhttp3/internal/http2/Header;\nPLokhttp3/internal/http2/Hpack;->getSTATIC_HEADER_TABLE()[Lokhttp3/internal/http2/Header;\nLokhttp3/internal/http2/Hpack$Reader;\nHSPLokhttp3/internal/http2/Hpack$Reader;-><init>(Lokio/Source;II)V\nPLokhttp3/internal/http2/Hpack$Reader;-><init>(Lokio/Source;II)V\nHSPLokhttp3/internal/http2/Hpack$Reader;-><init>(Lokio/Source;IIILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Hpack$Reader;-><init>(Lokio/Source;IIILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/http2/Hpack$Reader;->evictToRecoverBytes(I)I\nPLokhttp3/internal/http2/Hpack$Reader;->evictToRecoverBytes(I)I\nHSPLokhttp3/internal/http2/Hpack$Reader;->getAndResetHeaderList()Ljava/util/List;\nPLokhttp3/internal/http2/Hpack$Reader;->getAndResetHeaderList()Ljava/util/List;\nHSPLokhttp3/internal/http2/Hpack$Reader;->getName(I)Lokio/ByteString;\nPLokhttp3/internal/http2/Hpack$Reader;->getName(I)Lokio/ByteString;\nHSPLokhttp3/internal/http2/Hpack$Reader;->insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V\nPLokhttp3/internal/http2/Hpack$Reader;->insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V\nHSPLokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;\nPLokhttp3/internal/http2/Hpack$Reader;->readByteString()Lokio/ByteString;\nHSPLokhttp3/internal/http2/Hpack$Reader;->readHeaders()V\nPLokhttp3/internal/http2/Hpack$Reader;->readHeaders()V\nHSPLokhttp3/internal/http2/Hpack$Reader;->readInt(II)I\nPLokhttp3/internal/http2/Hpack$Reader;->readInt(II)I\nLokhttp3/internal/http2/Hpack$Writer;\nHSPLokhttp3/internal/http2/Hpack$Writer;-><init>(IZLokio/Buffer;)V\nPLokhttp3/internal/http2/Hpack$Writer;-><init>(IZLokio/Buffer;)V\nHSPLokhttp3/internal/http2/Hpack$Writer;-><init>(IZLokio/Buffer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Hpack$Writer;-><init>(IZLokio/Buffer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/http2/Hpack$Writer;->evictToRecoverBytes(I)V\nPLokhttp3/internal/http2/Hpack$Writer;->evictToRecoverBytes(I)V\nHSPLokhttp3/internal/http2/Hpack$Writer;->insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V\nPLokhttp3/internal/http2/Hpack$Writer;->insertIntoDynamicTable(Lokhttp3/internal/http2/Header;)V\nHSPLokhttp3/internal/http2/Hpack$Writer;->writeByteString(Lokio/ByteString;)V\nPLokhttp3/internal/http2/Hpack$Writer;->writeByteString(Lokio/ByteString;)V\nHSPLokhttp3/internal/http2/Hpack$Writer;->writeHeaders(Ljava/util/List;)V\nPLokhttp3/internal/http2/Hpack$Writer;->writeHeaders(Ljava/util/List;)V\nHSPLokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V\nPLokhttp3/internal/http2/Hpack$Writer;->writeInt(III)V\nLokhttp3/internal/http2/Http2;\nHSPLokhttp3/internal/http2/Http2;-><clinit>()V\nPLokhttp3/internal/http2/Http2;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2;-><init>()V\nPLokhttp3/internal/http2/Http2;-><init>()V\nLokhttp3/internal/http2/Http2Connection;\nHSPLokhttp3/internal/http2/Http2Connection;-><clinit>()V\nPLokhttp3/internal/http2/Http2Connection;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2Connection;-><init>(Lokhttp3/internal/http2/Http2Connection$Builder;)V\nPLokhttp3/internal/http2/Http2Connection;-><init>(Lokhttp3/internal/http2/Http2Connection$Builder;)V\nHSPLokhttp3/internal/http2/Http2Connection;->access$getDEFAULT_SETTINGS$cp()Lokhttp3/internal/http2/Settings;\nPLokhttp3/internal/http2/Http2Connection;->access$getDEFAULT_SETTINGS$cp()Lokhttp3/internal/http2/Settings;\nHSPLokhttp3/internal/http2/Http2Connection;->access$getSettingsListenerQueue$p(Lokhttp3/internal/http2/Http2Connection;)Lokhttp3/internal/concurrent/TaskQueue;\nPLokhttp3/internal/http2/Http2Connection;->access$getSettingsListenerQueue$p(Lokhttp3/internal/http2/Http2Connection;)Lokhttp3/internal/concurrent/TaskQueue;\nHSPLokhttp3/internal/http2/Http2Connection;->access$getWriterQueue$p(Lokhttp3/internal/http2/Http2Connection;)Lokhttp3/internal/concurrent/TaskQueue;\nPLokhttp3/internal/http2/Http2Connection;->access$getWriterQueue$p(Lokhttp3/internal/http2/Http2Connection;)Lokhttp3/internal/concurrent/TaskQueue;\nHSPLokhttp3/internal/http2/Http2Connection;->access$setWriteBytesMaximum$p(Lokhttp3/internal/http2/Http2Connection;J)V\nPLokhttp3/internal/http2/Http2Connection;->access$setWriteBytesMaximum$p(Lokhttp3/internal/http2/Http2Connection;J)V\nHSPLokhttp3/internal/http2/Http2Connection;->flush()V\nPLokhttp3/internal/http2/Http2Connection;->flush()V\nHSPLokhttp3/internal/http2/Http2Connection;->getClient$okhttp()Z\nPLokhttp3/internal/http2/Http2Connection;->getClient$okhttp()Z\nHSPLokhttp3/internal/http2/Http2Connection;->getConnectionName$okhttp()Ljava/lang/String;\nPLokhttp3/internal/http2/Http2Connection;->getConnectionName$okhttp()Ljava/lang/String;\nHSPLokhttp3/internal/http2/Http2Connection;->getListener$okhttp()Lokhttp3/internal/http2/Http2Connection$Listener;\nPLokhttp3/internal/http2/Http2Connection;->getListener$okhttp()Lokhttp3/internal/http2/Http2Connection$Listener;\nHSPLokhttp3/internal/http2/Http2Connection;->getOkHttpSettings()Lokhttp3/internal/http2/Settings;\nPLokhttp3/internal/http2/Http2Connection;->getOkHttpSettings()Lokhttp3/internal/http2/Settings;\nHSPLokhttp3/internal/http2/Http2Connection;->getPeerSettings()Lokhttp3/internal/http2/Settings;\nPLokhttp3/internal/http2/Http2Connection;->getPeerSettings()Lokhttp3/internal/http2/Settings;\nHSPLokhttp3/internal/http2/Http2Connection;->getStream(I)Lokhttp3/internal/http2/Http2Stream;\nPLokhttp3/internal/http2/Http2Connection;->getStream(I)Lokhttp3/internal/http2/Http2Stream;\nHSPLokhttp3/internal/http2/Http2Connection;->getWriteBytesMaximum()J\nPLokhttp3/internal/http2/Http2Connection;->getWriteBytesMaximum()J\nHSPLokhttp3/internal/http2/Http2Connection;->getWriter()Lokhttp3/internal/http2/Http2Writer;\nPLokhttp3/internal/http2/Http2Connection;->getWriter()Lokhttp3/internal/http2/Http2Writer;\nHSPLokhttp3/internal/http2/Http2Connection;->newStream(ILjava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;\nPLokhttp3/internal/http2/Http2Connection;->newStream(ILjava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;\nHSPLokhttp3/internal/http2/Http2Connection;->newStream(Ljava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;\nPLokhttp3/internal/http2/Http2Connection;->newStream(Ljava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;\nHSPLokhttp3/internal/http2/Http2Connection;->pushedStream$okhttp(I)Z\nPLokhttp3/internal/http2/Http2Connection;->pushedStream$okhttp(I)Z\nHSPLokhttp3/internal/http2/Http2Connection;->removeStream$okhttp(I)Lokhttp3/internal/http2/Http2Stream;\nPLokhttp3/internal/http2/Http2Connection;->removeStream$okhttp(I)Lokhttp3/internal/http2/Http2Stream;\nHSPLokhttp3/internal/http2/Http2Connection;->setPeerSettings(Lokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Http2Connection;->setPeerSettings(Lokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Http2Connection;->start$default(Lokhttp3/internal/http2/Http2Connection;ZILjava/lang/Object;)V\nPLokhttp3/internal/http2/Http2Connection;->start$default(Lokhttp3/internal/http2/Http2Connection;ZILjava/lang/Object;)V\nHSPLokhttp3/internal/http2/Http2Connection;->start(Z)V\nPLokhttp3/internal/http2/Http2Connection;->start(Z)V\nHSPLokhttp3/internal/http2/Http2Connection;->updateConnectionFlowControl$okhttp(J)V\nPLokhttp3/internal/http2/Http2Connection;->updateConnectionFlowControl$okhttp(J)V\nLokhttp3/internal/http2/Http2Connection$Builder;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;-><init>(ZLokhttp3/internal/concurrent/TaskRunner;)V\nPLokhttp3/internal/http2/Http2Connection$Builder;-><init>(ZLokhttp3/internal/concurrent/TaskRunner;)V\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getClient$okhttp()Z\nPLokhttp3/internal/http2/Http2Connection$Builder;->getClient$okhttp()Z\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getConnectionName$okhttp()Ljava/lang/String;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getConnectionName$okhttp()Ljava/lang/String;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getListener$okhttp()Lokhttp3/internal/http2/Http2Connection$Listener;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getListener$okhttp()Lokhttp3/internal/http2/Http2Connection$Listener;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getPingIntervalMillis$okhttp()I\nPLokhttp3/internal/http2/Http2Connection$Builder;->getPingIntervalMillis$okhttp()I\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getPushObserver$okhttp()Lokhttp3/internal/http2/PushObserver;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getPushObserver$okhttp()Lokhttp3/internal/http2/PushObserver;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getSink$okhttp()Lokio/BufferedSink;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getSink$okhttp()Lokio/BufferedSink;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getSocket$okhttp()Ljava/net/Socket;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getSocket$okhttp()Ljava/net/Socket;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getSource$okhttp()Lokio/BufferedSource;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getSource$okhttp()Lokio/BufferedSource;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->getTaskRunner$okhttp()Lokhttp3/internal/concurrent/TaskRunner;\nPLokhttp3/internal/http2/Http2Connection$Builder;->getTaskRunner$okhttp()Lokhttp3/internal/concurrent/TaskRunner;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->listener(Lokhttp3/internal/http2/Http2Connection$Listener;)Lokhttp3/internal/http2/Http2Connection$Builder;\nPLokhttp3/internal/http2/Http2Connection$Builder;->listener(Lokhttp3/internal/http2/Http2Connection$Listener;)Lokhttp3/internal/http2/Http2Connection$Builder;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->pingIntervalMillis(I)Lokhttp3/internal/http2/Http2Connection$Builder;\nPLokhttp3/internal/http2/Http2Connection$Builder;->pingIntervalMillis(I)Lokhttp3/internal/http2/Http2Connection$Builder;\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->setConnectionName$okhttp(Ljava/lang/String;)V\nPLokhttp3/internal/http2/Http2Connection$Builder;->setConnectionName$okhttp(Ljava/lang/String;)V\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->setSink$okhttp(Lokio/BufferedSink;)V\nPLokhttp3/internal/http2/Http2Connection$Builder;->setSink$okhttp(Lokio/BufferedSink;)V\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->setSocket$okhttp(Ljava/net/Socket;)V\nPLokhttp3/internal/http2/Http2Connection$Builder;->setSocket$okhttp(Ljava/net/Socket;)V\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->setSource$okhttp(Lokio/BufferedSource;)V\nPLokhttp3/internal/http2/Http2Connection$Builder;->setSource$okhttp(Lokio/BufferedSource;)V\nHSPLokhttp3/internal/http2/Http2Connection$Builder;->socket(Ljava/net/Socket;Ljava/lang/String;Lokio/BufferedSource;Lokio/BufferedSink;)Lokhttp3/internal/http2/Http2Connection$Builder;\nPLokhttp3/internal/http2/Http2Connection$Builder;->socket(Ljava/net/Socket;Ljava/lang/String;Lokio/BufferedSource;Lokio/BufferedSink;)Lokhttp3/internal/http2/Http2Connection$Builder;\nLokhttp3/internal/http2/Http2Connection$Companion;\nHSPLokhttp3/internal/http2/Http2Connection$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Http2Connection$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http2/Http2Connection$Listener;\nHSPLokhttp3/internal/http2/Http2Connection$Listener;-><clinit>()V\nPLokhttp3/internal/http2/Http2Connection$Listener;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2Connection$Listener;-><init>()V\nPLokhttp3/internal/http2/Http2Connection$Listener;-><init>()V\nLokhttp3/internal/http2/Http2Connection$Listener$Companion;\nHSPLokhttp3/internal/http2/Http2Connection$Listener$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Http2Connection$Listener$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http2/Http2Connection$Listener$Companion$REFUSE_INCOMING_STREAMS$1;\nHSPLokhttp3/internal/http2/Http2Connection$Listener$Companion$REFUSE_INCOMING_STREAMS$1;-><init>()V\nPLokhttp3/internal/http2/Http2Connection$Listener$Companion$REFUSE_INCOMING_STREAMS$1;-><init>()V\nLokhttp3/internal/http2/Http2Connection$ReaderRunnable;\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;-><init>(Lokhttp3/internal/http2/Http2Connection;Lokhttp3/internal/http2/Http2Reader;)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;-><init>(Lokhttp3/internal/http2/Http2Connection;Lokhttp3/internal/http2/Http2Reader;)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->ackSettings()V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->ackSettings()V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->applyAndAckSettings(ZLokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->applyAndAckSettings(ZLokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->data(ZILokio/BufferedSource;I)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->data(ZILokio/BufferedSource;I)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->headers(ZIILjava/util/List;)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->headers(ZIILjava/util/List;)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->invoke()Ljava/lang/Object;\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->invoke()Ljava/lang/Object;\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->invoke()V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->invoke()V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->settings(ZLokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->settings(ZLokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->windowUpdate(IJ)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable;->windowUpdate(IJ)V\nLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;-><init>(Lokhttp3/internal/http2/Http2Connection;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;-><init>(Lokhttp3/internal/http2/Http2Connection;Lkotlin/jvm/internal/Ref$ObjectRef;)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;->invoke()Ljava/lang/Object;\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;->invoke()Ljava/lang/Object;\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;->invoke()V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$applyAndAckSettings$1$1$2;->invoke()V\nLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;-><init>(Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;ZLokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;-><init>(Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;ZLokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;->invoke()Ljava/lang/Object;\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;->invoke()Ljava/lang/Object;\nHSPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;->invoke()V\nPLokhttp3/internal/http2/Http2Connection$ReaderRunnable$settings$1;->invoke()V\nLokhttp3/internal/http2/Http2ExchangeCodec;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;-><clinit>()V\nPLokhttp3/internal/http2/Http2ExchangeCodec;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/internal/http/ExchangeCodec$Carrier;Lokhttp3/internal/http/RealInterceptorChain;Lokhttp3/internal/http2/Http2Connection;)V\nPLokhttp3/internal/http2/Http2ExchangeCodec;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/internal/http/ExchangeCodec$Carrier;Lokhttp3/internal/http/RealInterceptorChain;Lokhttp3/internal/http2/Http2Connection;)V\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->access$getHTTP_2_SKIPPED_REQUEST_HEADERS$cp()Ljava/util/List;\nPLokhttp3/internal/http2/Http2ExchangeCodec;->access$getHTTP_2_SKIPPED_REQUEST_HEADERS$cp()Ljava/util/List;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->access$getHTTP_2_SKIPPED_RESPONSE_HEADERS$cp()Ljava/util/List;\nPLokhttp3/internal/http2/Http2ExchangeCodec;->access$getHTTP_2_SKIPPED_RESPONSE_HEADERS$cp()Ljava/util/List;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->finishRequest()V\nPLokhttp3/internal/http2/Http2ExchangeCodec;->finishRequest()V\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->getCarrier()Lokhttp3/internal/http/ExchangeCodec$Carrier;\nPLokhttp3/internal/http2/Http2ExchangeCodec;->getCarrier()Lokhttp3/internal/http/ExchangeCodec$Carrier;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->openResponseBodySource(Lokhttp3/Response;)Lokio/Source;\nPLokhttp3/internal/http2/Http2ExchangeCodec;->openResponseBodySource(Lokhttp3/Response;)Lokio/Source;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->readResponseHeaders(Z)Lokhttp3/Response$Builder;\nPLokhttp3/internal/http2/Http2ExchangeCodec;->readResponseHeaders(Z)Lokhttp3/Response$Builder;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->reportedContentLength(Lokhttp3/Response;)J\nPLokhttp3/internal/http2/Http2ExchangeCodec;->reportedContentLength(Lokhttp3/Response;)J\nHSPLokhttp3/internal/http2/Http2ExchangeCodec;->writeRequestHeaders(Lokhttp3/Request;)V\nPLokhttp3/internal/http2/Http2ExchangeCodec;->writeRequestHeaders(Lokhttp3/Request;)V\nLokhttp3/internal/http2/Http2ExchangeCodec$Companion;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Http2ExchangeCodec$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/http2/Http2ExchangeCodec$Companion;->http2HeadersList(Lokhttp3/Request;)Ljava/util/List;\nPLokhttp3/internal/http2/Http2ExchangeCodec$Companion;->http2HeadersList(Lokhttp3/Request;)Ljava/util/List;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec$Companion;->readHttp2HeadersList(Lokhttp3/Headers;Lokhttp3/Protocol;)Lokhttp3/Response$Builder;\nPLokhttp3/internal/http2/Http2ExchangeCodec$Companion;->readHttp2HeadersList(Lokhttp3/Headers;Lokhttp3/Protocol;)Lokhttp3/Response$Builder;\nLokhttp3/internal/http2/Http2ExchangeCodec$Companion$readHttp2HeadersList$1;\nHSPLokhttp3/internal/http2/Http2ExchangeCodec$Companion$readHttp2HeadersList$1;-><clinit>()V\nPLokhttp3/internal/http2/Http2ExchangeCodec$Companion$readHttp2HeadersList$1;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2ExchangeCodec$Companion$readHttp2HeadersList$1;-><init>()V\nPLokhttp3/internal/http2/Http2ExchangeCodec$Companion$readHttp2HeadersList$1;-><init>()V\nLokhttp3/internal/http2/Http2Reader;\nHSPLokhttp3/internal/http2/Http2Reader;-><clinit>()V\nPLokhttp3/internal/http2/Http2Reader;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2Reader;-><init>(Lokio/BufferedSource;Z)V\nPLokhttp3/internal/http2/Http2Reader;-><init>(Lokio/BufferedSource;Z)V\nHSPLokhttp3/internal/http2/Http2Reader;->nextFrame(ZLokhttp3/internal/http2/Http2Reader$Handler;)Z\nPLokhttp3/internal/http2/Http2Reader;->nextFrame(ZLokhttp3/internal/http2/Http2Reader$Handler;)Z\nHSPLokhttp3/internal/http2/Http2Reader;->readConnectionPreface(Lokhttp3/internal/http2/Http2Reader$Handler;)V\nPLokhttp3/internal/http2/Http2Reader;->readConnectionPreface(Lokhttp3/internal/http2/Http2Reader$Handler;)V\nHSPLokhttp3/internal/http2/Http2Reader;->readHeaderBlock(IIII)Ljava/util/List;\nPLokhttp3/internal/http2/Http2Reader;->readHeaderBlock(IIII)Ljava/util/List;\nLokhttp3/internal/http2/Http2Reader$Companion;\nHSPLokhttp3/internal/http2/Http2Reader$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Http2Reader$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/http2/Http2Reader$Companion;->lengthWithoutPadding(III)I\nPLokhttp3/internal/http2/Http2Reader$Companion;->lengthWithoutPadding(III)I\nLokhttp3/internal/http2/Http2Reader$ContinuationSource;\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;-><init>(Lokio/BufferedSource;)V\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;-><init>(Lokio/BufferedSource;)V\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->getLeft()I\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->getLeft()I\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->read(Lokio/Buffer;J)J\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->read(Lokio/Buffer;J)J\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setFlags(I)V\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setFlags(I)V\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setLeft(I)V\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setLeft(I)V\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setLength(I)V\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setLength(I)V\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setPadding(I)V\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setPadding(I)V\nHSPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setStreamId(I)V\nPLokhttp3/internal/http2/Http2Reader$ContinuationSource;->setStreamId(I)V\nLokhttp3/internal/http2/Http2Reader$Handler;\nLokhttp3/internal/http2/Http2Stream;\nHSPLokhttp3/internal/http2/Http2Stream;-><clinit>()V\nPLokhttp3/internal/http2/Http2Stream;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2Stream;-><init>(ILokhttp3/internal/http2/Http2Connection;ZZLokhttp3/Headers;)V\nPLokhttp3/internal/http2/Http2Stream;-><init>(ILokhttp3/internal/http2/Http2Connection;ZZLokhttp3/Headers;)V\nHSPLokhttp3/internal/http2/Http2Stream;->access$doReadTimeout(Lokhttp3/internal/http2/Http2Stream;)Z\nPLokhttp3/internal/http2/Http2Stream;->access$doReadTimeout(Lokhttp3/internal/http2/Http2Stream;)Z\nHSPLokhttp3/internal/http2/Http2Stream;->cancelStreamIfNecessary$okhttp()V\nPLokhttp3/internal/http2/Http2Stream;->cancelStreamIfNecessary$okhttp()V\nHSPLokhttp3/internal/http2/Http2Stream;->getConnection()Lokhttp3/internal/http2/Http2Connection;\nPLokhttp3/internal/http2/Http2Stream;->getConnection()Lokhttp3/internal/http2/Http2Connection;\nHSPLokhttp3/internal/http2/Http2Stream;->getErrorCode$okhttp()Lokhttp3/internal/http2/ErrorCode;\nPLokhttp3/internal/http2/Http2Stream;->getErrorCode$okhttp()Lokhttp3/internal/http2/ErrorCode;\nHSPLokhttp3/internal/http2/Http2Stream;->getReadBytesAcknowledged()J\nPLokhttp3/internal/http2/Http2Stream;->getReadBytesAcknowledged()J\nHSPLokhttp3/internal/http2/Http2Stream;->getReadBytesTotal()J\nPLokhttp3/internal/http2/Http2Stream;->getReadBytesTotal()J\nHSPLokhttp3/internal/http2/Http2Stream;->getReadTimeout$okhttp()Lokhttp3/internal/http2/Http2Stream$StreamTimeout;\nPLokhttp3/internal/http2/Http2Stream;->getReadTimeout$okhttp()Lokhttp3/internal/http2/Http2Stream$StreamTimeout;\nHSPLokhttp3/internal/http2/Http2Stream;->getSink$okhttp()Lokhttp3/internal/http2/Http2Stream$FramingSink;\nPLokhttp3/internal/http2/Http2Stream;->getSink$okhttp()Lokhttp3/internal/http2/Http2Stream$FramingSink;\nHSPLokhttp3/internal/http2/Http2Stream;->getSink()Lokio/Sink;\nPLokhttp3/internal/http2/Http2Stream;->getSink()Lokio/Sink;\nHSPLokhttp3/internal/http2/Http2Stream;->getSource$okhttp()Lokhttp3/internal/http2/Http2Stream$FramingSource;\nPLokhttp3/internal/http2/Http2Stream;->getSource$okhttp()Lokhttp3/internal/http2/Http2Stream$FramingSource;\nHSPLokhttp3/internal/http2/Http2Stream;->isLocallyInitiated()Z\nPLokhttp3/internal/http2/Http2Stream;->isLocallyInitiated()Z\nHSPLokhttp3/internal/http2/Http2Stream;->isOpen()Z\nPLokhttp3/internal/http2/Http2Stream;->isOpen()Z\nHSPLokhttp3/internal/http2/Http2Stream;->readTimeout()Lokio/Timeout;\nPLokhttp3/internal/http2/Http2Stream;->readTimeout()Lokio/Timeout;\nHSPLokhttp3/internal/http2/Http2Stream;->receiveData(Lokio/BufferedSource;I)V\nPLokhttp3/internal/http2/Http2Stream;->receiveData(Lokio/BufferedSource;I)V\nHSPLokhttp3/internal/http2/Http2Stream;->receiveHeaders(Lokhttp3/Headers;Z)V\nPLokhttp3/internal/http2/Http2Stream;->receiveHeaders(Lokhttp3/Headers;Z)V\nHSPLokhttp3/internal/http2/Http2Stream;->setReadBytesTotal$okhttp(J)V\nPLokhttp3/internal/http2/Http2Stream;->setReadBytesTotal$okhttp(J)V\nHSPLokhttp3/internal/http2/Http2Stream;->takeHeaders(Z)Lokhttp3/Headers;\nPLokhttp3/internal/http2/Http2Stream;->takeHeaders(Z)Lokhttp3/Headers;\nHSPLokhttp3/internal/http2/Http2Stream;->waitForIo$okhttp()V\nPLokhttp3/internal/http2/Http2Stream;->waitForIo$okhttp()V\nHSPLokhttp3/internal/http2/Http2Stream;->writeTimeout()Lokio/Timeout;\nPLokhttp3/internal/http2/Http2Stream;->writeTimeout()Lokio/Timeout;\nLokhttp3/internal/http2/Http2Stream$Companion;\nHSPLokhttp3/internal/http2/Http2Stream$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Http2Stream$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http2/Http2Stream$FramingSink;\nHSPLokhttp3/internal/http2/Http2Stream$FramingSink;-><init>(Lokhttp3/internal/http2/Http2Stream;Z)V\nPLokhttp3/internal/http2/Http2Stream$FramingSink;-><init>(Lokhttp3/internal/http2/Http2Stream;Z)V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSink;->close()V\nPLokhttp3/internal/http2/Http2Stream$FramingSink;->close()V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSink;->getClosed()Z\nPLokhttp3/internal/http2/Http2Stream$FramingSink;->getClosed()Z\nHSPLokhttp3/internal/http2/Http2Stream$FramingSink;->getFinished()Z\nPLokhttp3/internal/http2/Http2Stream$FramingSink;->getFinished()Z\nLokhttp3/internal/http2/Http2Stream$FramingSource;\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;-><init>(Lokhttp3/internal/http2/Http2Stream;JZ)V\nPLokhttp3/internal/http2/Http2Stream$FramingSource;-><init>(Lokhttp3/internal/http2/Http2Stream;JZ)V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->close()V\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->close()V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->getClosed$okhttp()Z\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->getClosed$okhttp()Z\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->getFinished$okhttp()Z\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->getFinished$okhttp()Z\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->read(Lokio/Buffer;J)J\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->read(Lokio/Buffer;J)J\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->receive$okhttp(Lokio/BufferedSource;J)V\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->receive$okhttp(Lokio/BufferedSource;J)V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->setFinished$okhttp(Z)V\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->setFinished$okhttp(Z)V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->setTrailers(Lokhttp3/Headers;)V\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->setTrailers(Lokhttp3/Headers;)V\nHSPLokhttp3/internal/http2/Http2Stream$FramingSource;->updateConnectionFlowControl(J)V\nPLokhttp3/internal/http2/Http2Stream$FramingSource;->updateConnectionFlowControl(J)V\nLokhttp3/internal/http2/Http2Stream$StreamTimeout;\nHSPLokhttp3/internal/http2/Http2Stream$StreamTimeout;-><init>(Lokhttp3/internal/http2/Http2Stream;)V\nPLokhttp3/internal/http2/Http2Stream$StreamTimeout;-><init>(Lokhttp3/internal/http2/Http2Stream;)V\nHSPLokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V\nPLokhttp3/internal/http2/Http2Stream$StreamTimeout;->exitAndThrowIfTimedOut()V\nLokhttp3/internal/http2/Http2Writer;\nHSPLokhttp3/internal/http2/Http2Writer;-><clinit>()V\nPLokhttp3/internal/http2/Http2Writer;-><clinit>()V\nHSPLokhttp3/internal/http2/Http2Writer;-><init>(Lokio/BufferedSink;Z)V\nPLokhttp3/internal/http2/Http2Writer;-><init>(Lokio/BufferedSink;Z)V\nHSPLokhttp3/internal/http2/Http2Writer;->applyAndAckSettings(Lokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Http2Writer;->applyAndAckSettings(Lokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Http2Writer;->connectionPreface()V\nPLokhttp3/internal/http2/Http2Writer;->connectionPreface()V\nHSPLokhttp3/internal/http2/Http2Writer;->flush()V\nPLokhttp3/internal/http2/Http2Writer;->flush()V\nHSPLokhttp3/internal/http2/Http2Writer;->frameHeader(IIII)V\nPLokhttp3/internal/http2/Http2Writer;->frameHeader(IIII)V\nHSPLokhttp3/internal/http2/Http2Writer;->headers(ZILjava/util/List;)V\nPLokhttp3/internal/http2/Http2Writer;->headers(ZILjava/util/List;)V\nHSPLokhttp3/internal/http2/Http2Writer;->settings(Lokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Http2Writer;->settings(Lokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Http2Writer;->windowUpdate(IJ)V\nPLokhttp3/internal/http2/Http2Writer;->windowUpdate(IJ)V\nLokhttp3/internal/http2/Http2Writer$Companion;\nHSPLokhttp3/internal/http2/Http2Writer$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Http2Writer$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/http2/Huffman;\nHSPLokhttp3/internal/http2/Huffman;-><clinit>()V\nPLokhttp3/internal/http2/Huffman;-><clinit>()V\nHSPLokhttp3/internal/http2/Huffman;-><init>()V\nPLokhttp3/internal/http2/Huffman;-><init>()V\nHSPLokhttp3/internal/http2/Huffman;->addCode(III)V\nPLokhttp3/internal/http2/Huffman;->addCode(III)V\nHSPLokhttp3/internal/http2/Huffman;->decode(Lokio/BufferedSource;JLokio/BufferedSink;)V\nHPLokhttp3/internal/http2/Huffman;->decode(Lokio/BufferedSource;JLokio/BufferedSink;)V\nHSPLokhttp3/internal/http2/Huffman;->encode(Lokio/ByteString;Lokio/BufferedSink;)V\nPLokhttp3/internal/http2/Huffman;->encode(Lokio/ByteString;Lokio/BufferedSink;)V\nHSPLokhttp3/internal/http2/Huffman;->encodedLength(Lokio/ByteString;)I\nPLokhttp3/internal/http2/Huffman;->encodedLength(Lokio/ByteString;)I\nLokhttp3/internal/http2/Huffman$Node;\nHSPLokhttp3/internal/http2/Huffman$Node;-><init>()V\nPLokhttp3/internal/http2/Huffman$Node;-><init>()V\nHSPLokhttp3/internal/http2/Huffman$Node;-><init>(II)V\nPLokhttp3/internal/http2/Huffman$Node;-><init>(II)V\nHSPLokhttp3/internal/http2/Huffman$Node;->getChildren()[Lokhttp3/internal/http2/Huffman$Node;\nPLokhttp3/internal/http2/Huffman$Node;->getChildren()[Lokhttp3/internal/http2/Huffman$Node;\nHSPLokhttp3/internal/http2/Huffman$Node;->getSymbol()I\nPLokhttp3/internal/http2/Huffman$Node;->getSymbol()I\nHSPLokhttp3/internal/http2/Huffman$Node;->getTerminalBitCount()I\nPLokhttp3/internal/http2/Huffman$Node;->getTerminalBitCount()I\nLokhttp3/internal/http2/PushObserver;\nHSPLokhttp3/internal/http2/PushObserver;-><clinit>()V\nPLokhttp3/internal/http2/PushObserver;-><clinit>()V\nLokhttp3/internal/http2/PushObserver$Companion;\nHSPLokhttp3/internal/http2/PushObserver$Companion;-><clinit>()V\nPLokhttp3/internal/http2/PushObserver$Companion;-><clinit>()V\nHSPLokhttp3/internal/http2/PushObserver$Companion;-><init>()V\nPLokhttp3/internal/http2/PushObserver$Companion;-><init>()V\nLokhttp3/internal/http2/PushObserver$Companion$PushObserverCancel;\nHSPLokhttp3/internal/http2/PushObserver$Companion$PushObserverCancel;-><init>()V\nPLokhttp3/internal/http2/PushObserver$Companion$PushObserverCancel;-><init>()V\nLokhttp3/internal/http2/Settings;\nHSPLokhttp3/internal/http2/Settings;-><clinit>()V\nPLokhttp3/internal/http2/Settings;-><clinit>()V\nHSPLokhttp3/internal/http2/Settings;-><init>()V\nPLokhttp3/internal/http2/Settings;-><init>()V\nHSPLokhttp3/internal/http2/Settings;->get(I)I\nPLokhttp3/internal/http2/Settings;->get(I)I\nHSPLokhttp3/internal/http2/Settings;->getHeaderTableSize()I\nPLokhttp3/internal/http2/Settings;->getHeaderTableSize()I\nHSPLokhttp3/internal/http2/Settings;->getInitialWindowSize()I\nPLokhttp3/internal/http2/Settings;->getInitialWindowSize()I\nHSPLokhttp3/internal/http2/Settings;->getMaxConcurrentStreams()I\nPLokhttp3/internal/http2/Settings;->getMaxConcurrentStreams()I\nHSPLokhttp3/internal/http2/Settings;->getMaxFrameSize(I)I\nPLokhttp3/internal/http2/Settings;->getMaxFrameSize(I)I\nHSPLokhttp3/internal/http2/Settings;->isSet(I)Z\nPLokhttp3/internal/http2/Settings;->isSet(I)Z\nHSPLokhttp3/internal/http2/Settings;->merge(Lokhttp3/internal/http2/Settings;)V\nPLokhttp3/internal/http2/Settings;->merge(Lokhttp3/internal/http2/Settings;)V\nHSPLokhttp3/internal/http2/Settings;->set(II)Lokhttp3/internal/http2/Settings;\nPLokhttp3/internal/http2/Settings;->set(II)Lokhttp3/internal/http2/Settings;\nHSPLokhttp3/internal/http2/Settings;->size()I\nPLokhttp3/internal/http2/Settings;->size()I\nLokhttp3/internal/http2/Settings$Companion;\nHSPLokhttp3/internal/http2/Settings$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/http2/Settings$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/platform/Android10Platform;\nHSPLokhttp3/internal/platform/Android10Platform;-><clinit>()V\nPLokhttp3/internal/platform/Android10Platform;-><clinit>()V\nHSPLokhttp3/internal/platform/Android10Platform;-><init>()V\nPLokhttp3/internal/platform/Android10Platform;-><init>()V\nHSPLokhttp3/internal/platform/Android10Platform;->access$isSupported$cp()Z\nPLokhttp3/internal/platform/Android10Platform;->access$isSupported$cp()Z\nHSPLokhttp3/internal/platform/Android10Platform;->buildCertificateChainCleaner(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/tls/CertificateChainCleaner;\nPLokhttp3/internal/platform/Android10Platform;->buildCertificateChainCleaner(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/tls/CertificateChainCleaner;\nHSPLokhttp3/internal/platform/Android10Platform;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V\nPLokhttp3/internal/platform/Android10Platform;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V\nHSPLokhttp3/internal/platform/Android10Platform;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;\nPLokhttp3/internal/platform/Android10Platform;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;\nHSPLokhttp3/internal/platform/Android10Platform;->getStackTraceForCloseable(Ljava/lang/String;)Ljava/lang/Object;\nPLokhttp3/internal/platform/Android10Platform;->getStackTraceForCloseable(Ljava/lang/String;)Ljava/lang/Object;\nLokhttp3/internal/platform/Android10Platform$Companion;\nHSPLokhttp3/internal/platform/Android10Platform$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/Android10Platform$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/platform/Android10Platform$Companion;->buildIfSupported()Lokhttp3/internal/platform/Platform;\nPLokhttp3/internal/platform/Android10Platform$Companion;->buildIfSupported()Lokhttp3/internal/platform/Platform;\nLokhttp3/internal/platform/Platform;\nHSPLokhttp3/internal/platform/Platform;-><clinit>()V\nPLokhttp3/internal/platform/Platform;-><clinit>()V\nHSPLokhttp3/internal/platform/Platform;-><init>()V\nPLokhttp3/internal/platform/Platform;-><init>()V\nHSPLokhttp3/internal/platform/Platform;->access$getPlatform$cp()Lokhttp3/internal/platform/Platform;\nPLokhttp3/internal/platform/Platform;->access$getPlatform$cp()Lokhttp3/internal/platform/Platform;\nHSPLokhttp3/internal/platform/Platform;->afterHandshake(Ljavax/net/ssl/SSLSocket;)V\nPLokhttp3/internal/platform/Platform;->afterHandshake(Ljavax/net/ssl/SSLSocket;)V\nHSPLokhttp3/internal/platform/Platform;->connectSocket(Ljava/net/Socket;Ljava/net/InetSocketAddress;I)V\nPLokhttp3/internal/platform/Platform;->connectSocket(Ljava/net/Socket;Ljava/net/InetSocketAddress;I)V\nHSPLokhttp3/internal/platform/Platform;->getPrefix()Ljava/lang/String;\nPLokhttp3/internal/platform/Platform;->getPrefix()Ljava/lang/String;\nHSPLokhttp3/internal/platform/Platform;->log$default(Lokhttp3/internal/platform/Platform;Ljava/lang/String;ILjava/lang/Throwable;ILjava/lang/Object;)V\nPLokhttp3/internal/platform/Platform;->log$default(Lokhttp3/internal/platform/Platform;Ljava/lang/String;ILjava/lang/Throwable;ILjava/lang/Object;)V\nHSPLokhttp3/internal/platform/Platform;->log(Ljava/lang/String;ILjava/lang/Throwable;)V\nPLokhttp3/internal/platform/Platform;->log(Ljava/lang/String;ILjava/lang/Throwable;)V\nHSPLokhttp3/internal/platform/Platform;->newSSLContext()Ljavax/net/ssl/SSLContext;\nPLokhttp3/internal/platform/Platform;->newSSLContext()Ljavax/net/ssl/SSLContext;\nHSPLokhttp3/internal/platform/Platform;->newSslSocketFactory(Ljavax/net/ssl/X509TrustManager;)Ljavax/net/ssl/SSLSocketFactory;\nPLokhttp3/internal/platform/Platform;->newSslSocketFactory(Ljavax/net/ssl/X509TrustManager;)Ljavax/net/ssl/SSLSocketFactory;\nHSPLokhttp3/internal/platform/Platform;->platformTrustManager()Ljavax/net/ssl/X509TrustManager;\nPLokhttp3/internal/platform/Platform;->platformTrustManager()Ljavax/net/ssl/X509TrustManager;\nLokhttp3/internal/platform/Platform$Companion;\nHSPLokhttp3/internal/platform/Platform$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/Platform$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/platform/Platform$Companion;->access$findPlatform(Lokhttp3/internal/platform/Platform$Companion;)Lokhttp3/internal/platform/Platform;\nPLokhttp3/internal/platform/Platform$Companion;->access$findPlatform(Lokhttp3/internal/platform/Platform$Companion;)Lokhttp3/internal/platform/Platform;\nHSPLokhttp3/internal/platform/Platform$Companion;->alpnProtocolNames(Ljava/util/List;)Ljava/util/List;\nPLokhttp3/internal/platform/Platform$Companion;->alpnProtocolNames(Ljava/util/List;)Ljava/util/List;\nHSPLokhttp3/internal/platform/Platform$Companion;->findPlatform()Lokhttp3/internal/platform/Platform;\nPLokhttp3/internal/platform/Platform$Companion;->findPlatform()Lokhttp3/internal/platform/Platform;\nHSPLokhttp3/internal/platform/Platform$Companion;->isAndroid()Z\nPLokhttp3/internal/platform/Platform$Companion;->isAndroid()Z\nLokhttp3/internal/platform/android/Android10SocketAdapter;\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter;-><clinit>()V\nPLokhttp3/internal/platform/android/Android10SocketAdapter;-><clinit>()V\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter;-><init>()V\nPLokhttp3/internal/platform/android/Android10SocketAdapter;-><init>()V\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V\nPLokhttp3/internal/platform/android/Android10SocketAdapter;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;\nPLokhttp3/internal/platform/android/Android10SocketAdapter;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter;->isSupported()Z\nPLokhttp3/internal/platform/android/Android10SocketAdapter;->isSupported()Z\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter;->matchesSocket(Ljavax/net/ssl/SSLSocket;)Z\nPLokhttp3/internal/platform/android/Android10SocketAdapter;->matchesSocket(Ljavax/net/ssl/SSLSocket;)Z\nLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;->buildIfSupported()Lokhttp3/internal/platform/android/SocketAdapter;\nPLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;->buildIfSupported()Lokhttp3/internal/platform/android/SocketAdapter;\nHSPLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;->isSupported()Z\nPLokhttp3/internal/platform/android/Android10SocketAdapter$Companion;->isSupported()Z\nLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;-><clinit>()V\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;-><clinit>()V\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;-><init>(Ljavax/net/ssl/X509TrustManager;Landroid/net/http/X509TrustManagerExtensions;)V\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;-><init>(Ljavax/net/ssl/X509TrustManager;Landroid/net/http/X509TrustManagerExtensions;)V\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;->clean(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;->clean(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;->equals(Ljava/lang/Object;)Z\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;->equals(Ljava/lang/Object;)Z\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;->hashCode()I\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner;->hashCode()I\nLokhttp3/internal/platform/android/AndroidCertificateChainCleaner$Companion;\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner$Companion;->buildIfSupported(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/platform/android/AndroidCertificateChainCleaner;\nPLokhttp3/internal/platform/android/AndroidCertificateChainCleaner$Companion;->buildIfSupported(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/platform/android/AndroidCertificateChainCleaner;\nLokhttp3/internal/platform/android/AndroidLog;\nHSPLokhttp3/internal/platform/android/AndroidLog;-><clinit>()V\nPLokhttp3/internal/platform/android/AndroidLog;-><clinit>()V\nHSPLokhttp3/internal/platform/android/AndroidLog;-><init>()V\nPLokhttp3/internal/platform/android/AndroidLog;-><init>()V\nHSPLokhttp3/internal/platform/android/AndroidLog;->androidLog$okhttp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V\nPLokhttp3/internal/platform/android/AndroidLog;->androidLog$okhttp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V\nHSPLokhttp3/internal/platform/android/AndroidLog;->enable()V\nPLokhttp3/internal/platform/android/AndroidLog;->enable()V\nLokhttp3/internal/platform/android/AndroidLogHandler;\nHSPLokhttp3/internal/platform/android/AndroidLogHandler;-><clinit>()V\nPLokhttp3/internal/platform/android/AndroidLogHandler;-><clinit>()V\nHSPLokhttp3/internal/platform/android/AndroidLogHandler;-><init>()V\nPLokhttp3/internal/platform/android/AndroidLogHandler;-><init>()V\nHSPLokhttp3/internal/platform/android/AndroidLogHandler;->publish(Ljava/util/logging/LogRecord;)V\nPLokhttp3/internal/platform/android/AndroidLogHandler;->publish(Ljava/util/logging/LogRecord;)V\nLokhttp3/internal/platform/android/AndroidLogKt;\nHSPLokhttp3/internal/platform/android/AndroidLogKt;->access$getAndroidLevel(Ljava/util/logging/LogRecord;)I\nPLokhttp3/internal/platform/android/AndroidLogKt;->access$getAndroidLevel(Ljava/util/logging/LogRecord;)I\nLokhttp3/internal/platform/android/AndroidSocketAdapter;\nHSPLokhttp3/internal/platform/android/AndroidSocketAdapter;-><clinit>()V\nPLokhttp3/internal/platform/android/AndroidSocketAdapter;-><clinit>()V\nHSPLokhttp3/internal/platform/android/AndroidSocketAdapter;->access$getPlayProviderFactory$cp()Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nPLokhttp3/internal/platform/android/AndroidSocketAdapter;->access$getPlayProviderFactory$cp()Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion;\nHSPLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion;->factory(Ljava/lang/String;)Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nPLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion;->factory(Ljava/lang/String;)Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion$factory$1;\nHSPLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion$factory$1;-><init>(Ljava/lang/String;)V\nPLokhttp3/internal/platform/android/AndroidSocketAdapter$Companion$factory$1;-><init>(Ljava/lang/String;)V\nLokhttp3/internal/platform/android/BouncyCastleSocketAdapter;\nHSPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter;-><clinit>()V\nPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter;-><clinit>()V\nHSPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter;->access$getFactory$cp()Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter;->access$getFactory$cp()Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nLokhttp3/internal/platform/android/BouncyCastleSocketAdapter$Companion;\nHSPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/platform/android/BouncyCastleSocketAdapter$Companion$factory$1;\nHSPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter$Companion$factory$1;-><init>()V\nPLokhttp3/internal/platform/android/BouncyCastleSocketAdapter$Companion$factory$1;-><init>()V\nLokhttp3/internal/platform/android/ConscryptSocketAdapter;\nHSPLokhttp3/internal/platform/android/ConscryptSocketAdapter;-><clinit>()V\nPLokhttp3/internal/platform/android/ConscryptSocketAdapter;-><clinit>()V\nHSPLokhttp3/internal/platform/android/ConscryptSocketAdapter;->access$getFactory$cp()Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nPLokhttp3/internal/platform/android/ConscryptSocketAdapter;->access$getFactory$cp()Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nLokhttp3/internal/platform/android/ConscryptSocketAdapter$Companion;\nHSPLokhttp3/internal/platform/android/ConscryptSocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/platform/android/ConscryptSocketAdapter$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokhttp3/internal/platform/android/ConscryptSocketAdapter$Companion$factory$1;\nHSPLokhttp3/internal/platform/android/ConscryptSocketAdapter$Companion$factory$1;-><init>()V\nPLokhttp3/internal/platform/android/ConscryptSocketAdapter$Companion$factory$1;-><init>()V\nLokhttp3/internal/platform/android/DeferredSocketAdapter;\nHSPLokhttp3/internal/platform/android/DeferredSocketAdapter;-><init>(Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;)V\nPLokhttp3/internal/platform/android/DeferredSocketAdapter;-><init>(Lokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;)V\nHSPLokhttp3/internal/platform/android/DeferredSocketAdapter;->isSupported()Z\nPLokhttp3/internal/platform/android/DeferredSocketAdapter;->isSupported()Z\nLokhttp3/internal/platform/android/DeferredSocketAdapter$Factory;\nLokhttp3/internal/platform/android/SocketAdapter;\nLokhttp3/internal/tls/CertificateChainCleaner;\nHSPLokhttp3/internal/tls/CertificateChainCleaner;-><clinit>()V\nPLokhttp3/internal/tls/CertificateChainCleaner;-><clinit>()V\nHSPLokhttp3/internal/tls/CertificateChainCleaner;-><init>()V\nPLokhttp3/internal/tls/CertificateChainCleaner;-><init>()V\nLokhttp3/internal/tls/CertificateChainCleaner$Companion;\nHSPLokhttp3/internal/tls/CertificateChainCleaner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/internal/tls/CertificateChainCleaner$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/internal/tls/CertificateChainCleaner$Companion;->get(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/tls/CertificateChainCleaner;\nPLokhttp3/internal/tls/CertificateChainCleaner$Companion;->get(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/tls/CertificateChainCleaner;\nLokhttp3/internal/tls/OkHostnameVerifier;\nHSPLokhttp3/internal/tls/OkHostnameVerifier;-><clinit>()V\nPLokhttp3/internal/tls/OkHostnameVerifier;-><clinit>()V\nHSPLokhttp3/internal/tls/OkHostnameVerifier;-><init>()V\nPLokhttp3/internal/tls/OkHostnameVerifier;-><init>()V\nHSPLokhttp3/internal/tls/OkHostnameVerifier;->getSubjectAltNames(Ljava/security/cert/X509Certificate;I)Ljava/util/List;\nPLokhttp3/internal/tls/OkHostnameVerifier;->getSubjectAltNames(Ljava/security/cert/X509Certificate;I)Ljava/util/List;\nHSPLokhttp3/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z\nPLokhttp3/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z\nHSPLokhttp3/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z\nPLokhttp3/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z\nLokhttp3/logging/HttpLoggingInterceptor;\nHSPLokhttp3/logging/HttpLoggingInterceptor;-><init>(Lokhttp3/logging/HttpLoggingInterceptor$Logger;)V\nPLokhttp3/logging/HttpLoggingInterceptor;-><init>(Lokhttp3/logging/HttpLoggingInterceptor$Logger;)V\nHSPLokhttp3/logging/HttpLoggingInterceptor;-><init>(Lokhttp3/logging/HttpLoggingInterceptor$Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokhttp3/logging/HttpLoggingInterceptor;-><init>(Lokhttp3/logging/HttpLoggingInterceptor$Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokhttp3/logging/HttpLoggingInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nPLokhttp3/logging/HttpLoggingInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;\nHSPLokhttp3/logging/HttpLoggingInterceptor;->level(Lokhttp3/logging/HttpLoggingInterceptor$Level;)V\nPLokhttp3/logging/HttpLoggingInterceptor;->level(Lokhttp3/logging/HttpLoggingInterceptor$Level;)V\nHSPLokhttp3/logging/HttpLoggingInterceptor;->logHeader(Lokhttp3/Headers;I)V\nPLokhttp3/logging/HttpLoggingInterceptor;->logHeader(Lokhttp3/Headers;I)V\nLokhttp3/logging/HttpLoggingInterceptor$Level;\nHSPLokhttp3/logging/HttpLoggingInterceptor$Level;-><clinit>()V\nPLokhttp3/logging/HttpLoggingInterceptor$Level;-><clinit>()V\nHSPLokhttp3/logging/HttpLoggingInterceptor$Level;-><init>(Ljava/lang/String;I)V\nPLokhttp3/logging/HttpLoggingInterceptor$Level;-><init>(Ljava/lang/String;I)V\nLokhttp3/logging/HttpLoggingInterceptor$Logger;\nHSPLokhttp3/logging/HttpLoggingInterceptor$Logger;-><clinit>()V\nPLokhttp3/logging/HttpLoggingInterceptor$Logger;-><clinit>()V\nLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion;\nHSPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion;-><clinit>()V\nPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion;-><clinit>()V\nHSPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion;-><init>()V\nPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion;-><init>()V\nLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion$DefaultLogger;\nHSPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion$DefaultLogger;-><init>()V\nPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion$DefaultLogger;-><init>()V\nHSPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion$DefaultLogger;->log(Ljava/lang/String;)V\nPLokhttp3/logging/HttpLoggingInterceptor$Logger$Companion$DefaultLogger;->log(Ljava/lang/String;)V\nLokio/-Base64;\nHSPLokio/-Base64;-><clinit>()V\nPLokio/-Base64;-><clinit>()V\nHSPLokio/-Base64;->encodeBase64$default([B[BILjava/lang/Object;)Ljava/lang/String;\nPLokio/-Base64;->encodeBase64$default([B[BILjava/lang/Object;)Ljava/lang/String;\nHSPLokio/-Base64;->encodeBase64([B[B)Ljava/lang/String;\nPLokio/-Base64;->encodeBase64([B[B)Ljava/lang/String;\nLokio/-SegmentedByteString;\nHSPLokio/-SegmentedByteString;-><clinit>()V\nPLokio/-SegmentedByteString;-><clinit>()V\nHSPLokio/-SegmentedByteString;->arrayRangeEquals([BI[BII)Z\nHPLokio/-SegmentedByteString;->arrayRangeEquals([BI[BII)Z\nHSPLokio/-SegmentedByteString;->checkOffsetAndCount(JJJ)V\nHPLokio/-SegmentedByteString;->checkOffsetAndCount(JJJ)V\nHSPLokio/-SegmentedByteString;->getDEFAULT__ByteString_size()I\nPLokio/-SegmentedByteString;->getDEFAULT__ByteString_size()I\nHSPLokio/-SegmentedByteString;->resolveDefaultParameter(Lokio/ByteString;I)I\nPLokio/-SegmentedByteString;->resolveDefaultParameter(Lokio/ByteString;I)I\nHSPLokio/-SegmentedByteString;->resolveDefaultParameter([BI)I\nPLokio/-SegmentedByteString;->resolveDefaultParameter([BI)I\nHSPLokio/-SegmentedByteString;->reverseBytes(I)I\nPLokio/-SegmentedByteString;->reverseBytes(I)I\nLokio/AsyncTimeout;\nHSPLokio/AsyncTimeout;-><clinit>()V\nPLokio/AsyncTimeout;-><clinit>()V\nHSPLokio/AsyncTimeout;-><init>()V\nPLokio/AsyncTimeout;-><init>()V\nHSPLokio/AsyncTimeout;->access$getCondition$cp()Ljava/util/concurrent/locks/Condition;\nPLokio/AsyncTimeout;->access$getCondition$cp()Ljava/util/concurrent/locks/Condition;\nHSPLokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;\nPLokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;\nHSPLokio/AsyncTimeout;->access$getIDLE_TIMEOUT_MILLIS$cp()J\nPLokio/AsyncTimeout;->access$getIDLE_TIMEOUT_MILLIS$cp()J\nHSPLokio/AsyncTimeout;->access$getIDLE_TIMEOUT_NANOS$cp()J\nPLokio/AsyncTimeout;->access$getIDLE_TIMEOUT_NANOS$cp()J\nHSPLokio/AsyncTimeout;->access$getInQueue$p(Lokio/AsyncTimeout;)Z\nPLokio/AsyncTimeout;->access$getInQueue$p(Lokio/AsyncTimeout;)Z\nHSPLokio/AsyncTimeout;->access$getLock$cp()Ljava/util/concurrent/locks/ReentrantLock;\nPLokio/AsyncTimeout;->access$getLock$cp()Ljava/util/concurrent/locks/ReentrantLock;\nHSPLokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;\nPLokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;\nHSPLokio/AsyncTimeout;->access$remainingNanos(Lokio/AsyncTimeout;J)J\nPLokio/AsyncTimeout;->access$remainingNanos(Lokio/AsyncTimeout;J)J\nHSPLokio/AsyncTimeout;->access$setHead$cp(Lokio/AsyncTimeout;)V\nPLokio/AsyncTimeout;->access$setHead$cp(Lokio/AsyncTimeout;)V\nHSPLokio/AsyncTimeout;->access$setInQueue$p(Lokio/AsyncTimeout;Z)V\nPLokio/AsyncTimeout;->access$setInQueue$p(Lokio/AsyncTimeout;Z)V\nHSPLokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V\nPLokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V\nHSPLokio/AsyncTimeout;->access$setTimeoutAt$p(Lokio/AsyncTimeout;J)V\nPLokio/AsyncTimeout;->access$setTimeoutAt$p(Lokio/AsyncTimeout;J)V\nHSPLokio/AsyncTimeout;->enter()V\nPLokio/AsyncTimeout;->enter()V\nHSPLokio/AsyncTimeout;->exit()Z\nPLokio/AsyncTimeout;->exit()Z\nHSPLokio/AsyncTimeout;->sink(Lokio/Sink;)Lokio/Sink;\nPLokio/AsyncTimeout;->sink(Lokio/Sink;)Lokio/Sink;\nHSPLokio/AsyncTimeout;->source(Lokio/Source;)Lokio/Source;\nPLokio/AsyncTimeout;->source(Lokio/Source;)Lokio/Source;\nLokio/AsyncTimeout$Companion;\nHSPLokio/AsyncTimeout$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/AsyncTimeout$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokio/AsyncTimeout$Companion;->access$cancelScheduledTimeout(Lokio/AsyncTimeout$Companion;Lokio/AsyncTimeout;)Z\nPLokio/AsyncTimeout$Companion;->access$cancelScheduledTimeout(Lokio/AsyncTimeout$Companion;Lokio/AsyncTimeout;)Z\nHSPLokio/AsyncTimeout$Companion;->access$scheduleTimeout(Lokio/AsyncTimeout$Companion;Lokio/AsyncTimeout;JZ)V\nPLokio/AsyncTimeout$Companion;->access$scheduleTimeout(Lokio/AsyncTimeout$Companion;Lokio/AsyncTimeout;JZ)V\nHSPLokio/AsyncTimeout$Companion;->awaitTimeout$okio()Lokio/AsyncTimeout;\nPLokio/AsyncTimeout$Companion;->awaitTimeout$okio()Lokio/AsyncTimeout;\nLokio/AsyncTimeout$Watchdog;\nHSPLokio/AsyncTimeout$Watchdog;-><init>()V\nPLokio/AsyncTimeout$Watchdog;-><init>()V\nHSPLokio/AsyncTimeout$Watchdog;->run()V\nPLokio/AsyncTimeout$Watchdog;->run()V\nLokio/AsyncTimeout$sink$1;\nHSPLokio/AsyncTimeout$sink$1;-><init>(Lokio/AsyncTimeout;Lokio/Sink;)V\nPLokio/AsyncTimeout$sink$1;-><init>(Lokio/AsyncTimeout;Lokio/Sink;)V\nHSPLokio/AsyncTimeout$sink$1;->flush()V\nPLokio/AsyncTimeout$sink$1;->flush()V\nHSPLokio/AsyncTimeout$sink$1;->write(Lokio/Buffer;J)V\nPLokio/AsyncTimeout$sink$1;->write(Lokio/Buffer;J)V\nLokio/AsyncTimeout$source$1;\nHSPLokio/AsyncTimeout$source$1;-><init>(Lokio/AsyncTimeout;Lokio/Source;)V\nPLokio/AsyncTimeout$source$1;-><init>(Lokio/AsyncTimeout;Lokio/Source;)V\nHSPLokio/AsyncTimeout$source$1;->read(Lokio/Buffer;J)J\nPLokio/AsyncTimeout$source$1;->read(Lokio/Buffer;J)J\nLokio/Buffer;\nHSPLokio/Buffer;-><init>()V\nPLokio/Buffer;-><init>()V\nHSPLokio/Buffer;->clear()V\nPLokio/Buffer;->clear()V\nHSPLokio/Buffer;->completeSegmentByteCount()J\nPLokio/Buffer;->completeSegmentByteCount()J\nHSPLokio/Buffer;->copyTo(Lokio/Buffer;JJ)Lokio/Buffer;\nPLokio/Buffer;->copyTo(Lokio/Buffer;JJ)Lokio/Buffer;\nHSPLokio/Buffer;->exhausted()Z\nHPLokio/Buffer;->exhausted()Z\nHSPLokio/Buffer;->getByte(J)B\nHPLokio/Buffer;->getByte(J)B\nHSPLokio/Buffer;->indexOfElement(Lokio/ByteString;)J\nPLokio/Buffer;->indexOfElement(Lokio/ByteString;)J\nHSPLokio/Buffer;->indexOfElement(Lokio/ByteString;J)J\nPLokio/Buffer;->indexOfElement(Lokio/ByteString;J)J\nHSPLokio/Buffer;->rangeEquals(JLokio/ByteString;)Z\nPLokio/Buffer;->rangeEquals(JLokio/ByteString;)Z\nHSPLokio/Buffer;->rangeEquals(JLokio/ByteString;II)Z\nPLokio/Buffer;->rangeEquals(JLokio/ByteString;II)Z\nHSPLokio/Buffer;->read(Lokio/Buffer;J)J\nPLokio/Buffer;->read(Lokio/Buffer;J)J\nHSPLokio/Buffer;->read([BII)I\nPLokio/Buffer;->read([BII)I\nHSPLokio/Buffer;->readByte()B\nPLokio/Buffer;->readByte()B\nHSPLokio/Buffer;->readByteArray(J)[B\nPLokio/Buffer;->readByteArray(J)[B\nHSPLokio/Buffer;->readByteString()Lokio/ByteString;\nPLokio/Buffer;->readByteString()Lokio/ByteString;\nHSPLokio/Buffer;->readByteString(J)Lokio/ByteString;\nPLokio/Buffer;->readByteString(J)Lokio/ByteString;\nHSPLokio/Buffer;->readFully([B)V\nPLokio/Buffer;->readFully([B)V\nHSPLokio/Buffer;->readInt()I\nPLokio/Buffer;->readInt()I\nHSPLokio/Buffer;->readIntLe()I\nPLokio/Buffer;->readIntLe()I\nHSPLokio/Buffer;->readShort()S\nPLokio/Buffer;->readShort()S\nHSPLokio/Buffer;->readUtf8CodePoint()I\nHPLokio/Buffer;->readUtf8CodePoint()I\nHSPLokio/Buffer;->setSize$okio(J)V\nPLokio/Buffer;->setSize$okio(J)V\nHSPLokio/Buffer;->size()J\nHPLokio/Buffer;->size()J\nHSPLokio/Buffer;->skip(J)V\nHPLokio/Buffer;->skip(J)V\nHSPLokio/Buffer;->writableSegment$okio(I)Lokio/Segment;\nHPLokio/Buffer;->writableSegment$okio(I)Lokio/Segment;\nHSPLokio/Buffer;->write(Lokio/Buffer;J)V\nHPLokio/Buffer;->write(Lokio/Buffer;J)V\nHSPLokio/Buffer;->write(Lokio/ByteString;)Lokio/Buffer;\nPLokio/Buffer;->write(Lokio/ByteString;)Lokio/Buffer;\nHSPLokio/Buffer;->write([B)Lokio/Buffer;\nPLokio/Buffer;->write([B)Lokio/Buffer;\nHSPLokio/Buffer;->write([BII)Lokio/Buffer;\nPLokio/Buffer;->write([BII)Lokio/Buffer;\nHSPLokio/Buffer;->writeAll(Lokio/Source;)J\nPLokio/Buffer;->writeAll(Lokio/Source;)J\nHSPLokio/Buffer;->writeByte(I)Lokio/Buffer;\nPLokio/Buffer;->writeByte(I)Lokio/Buffer;\nHSPLokio/Buffer;->writeByte(I)Lokio/BufferedSink;\nPLokio/Buffer;->writeByte(I)Lokio/BufferedSink;\nHSPLokio/Buffer;->writeDecimalLong(J)Lokio/Buffer;\nPLokio/Buffer;->writeDecimalLong(J)Lokio/Buffer;\nHSPLokio/Buffer;->writeInt(I)Lokio/Buffer;\nPLokio/Buffer;->writeInt(I)Lokio/Buffer;\nHSPLokio/Buffer;->writeShort(I)Lokio/Buffer;\nPLokio/Buffer;->writeShort(I)Lokio/Buffer;\nHSPLokio/Buffer;->writeUtf8(Ljava/lang/String;)Lokio/Buffer;\nPLokio/Buffer;->writeUtf8(Ljava/lang/String;)Lokio/Buffer;\nHSPLokio/Buffer;->writeUtf8(Ljava/lang/String;II)Lokio/Buffer;\nHPLokio/Buffer;->writeUtf8(Ljava/lang/String;II)Lokio/Buffer;\nLokio/Buffer$UnsafeCursor;\nHSPLokio/Buffer$UnsafeCursor;-><init>()V\nPLokio/Buffer$UnsafeCursor;-><init>()V\nLokio/BufferedSink;\nLokio/BufferedSource;\nLokio/ByteString;\nHSPLokio/ByteString;-><clinit>()V\nPLokio/ByteString;-><clinit>()V\nHSPLokio/ByteString;-><init>([B)V\nHPLokio/ByteString;-><init>([B)V\nHSPLokio/ByteString;->base64()Ljava/lang/String;\nPLokio/ByteString;->base64()Ljava/lang/String;\nHSPLokio/ByteString;->compareTo(Ljava/lang/Object;)I\nPLokio/ByteString;->compareTo(Ljava/lang/Object;)I\nHSPLokio/ByteString;->compareTo(Lokio/ByteString;)I\nPLokio/ByteString;->compareTo(Lokio/ByteString;)I\nHSPLokio/ByteString;->digest$okio(Ljava/lang/String;)Lokio/ByteString;\nPLokio/ByteString;->digest$okio(Ljava/lang/String;)Lokio/ByteString;\nHSPLokio/ByteString;->endsWith(Lokio/ByteString;)Z\nPLokio/ByteString;->endsWith(Lokio/ByteString;)Z\nHSPLokio/ByteString;->equals(Ljava/lang/Object;)Z\nPLokio/ByteString;->equals(Ljava/lang/Object;)Z\nHSPLokio/ByteString;->getByte(I)B\nPLokio/ByteString;->getByte(I)B\nHSPLokio/ByteString;->getData$okio()[B\nPLokio/ByteString;->getData$okio()[B\nHSPLokio/ByteString;->getHashCode$okio()I\nPLokio/ByteString;->getHashCode$okio()I\nHSPLokio/ByteString;->getSize$okio()I\nPLokio/ByteString;->getSize$okio()I\nHSPLokio/ByteString;->getUtf8$okio()Ljava/lang/String;\nPLokio/ByteString;->getUtf8$okio()Ljava/lang/String;\nHSPLokio/ByteString;->hashCode()I\nPLokio/ByteString;->hashCode()I\nHSPLokio/ByteString;->hex()Ljava/lang/String;\nPLokio/ByteString;->hex()Ljava/lang/String;\nHSPLokio/ByteString;->indexOf$default(Lokio/ByteString;Lokio/ByteString;IILjava/lang/Object;)I\nPLokio/ByteString;->indexOf$default(Lokio/ByteString;Lokio/ByteString;IILjava/lang/Object;)I\nHSPLokio/ByteString;->indexOf(Lokio/ByteString;I)I\nPLokio/ByteString;->indexOf(Lokio/ByteString;I)I\nHSPLokio/ByteString;->indexOf([BI)I\nPLokio/ByteString;->indexOf([BI)I\nHSPLokio/ByteString;->internalArray$okio()[B\nPLokio/ByteString;->internalArray$okio()[B\nHSPLokio/ByteString;->internalGet$okio(I)B\nPLokio/ByteString;->internalGet$okio(I)B\nHSPLokio/ByteString;->lastIndexOf$default(Lokio/ByteString;Lokio/ByteString;IILjava/lang/Object;)I\nPLokio/ByteString;->lastIndexOf$default(Lokio/ByteString;Lokio/ByteString;IILjava/lang/Object;)I\nHSPLokio/ByteString;->lastIndexOf(Lokio/ByteString;I)I\nPLokio/ByteString;->lastIndexOf(Lokio/ByteString;I)I\nHSPLokio/ByteString;->lastIndexOf([BI)I\nPLokio/ByteString;->lastIndexOf([BI)I\nHSPLokio/ByteString;->md5()Lokio/ByteString;\nPLokio/ByteString;->md5()Lokio/ByteString;\nHSPLokio/ByteString;->rangeEquals(ILokio/ByteString;II)Z\nPLokio/ByteString;->rangeEquals(ILokio/ByteString;II)Z\nHSPLokio/ByteString;->rangeEquals(I[BII)Z\nPLokio/ByteString;->rangeEquals(I[BII)Z\nHSPLokio/ByteString;->setHashCode$okio(I)V\nPLokio/ByteString;->setHashCode$okio(I)V\nHSPLokio/ByteString;->setUtf8$okio(Ljava/lang/String;)V\nPLokio/ByteString;->setUtf8$okio(Ljava/lang/String;)V\nHSPLokio/ByteString;->size()I\nPLokio/ByteString;->size()I\nHSPLokio/ByteString;->startsWith(Lokio/ByteString;)Z\nPLokio/ByteString;->startsWith(Lokio/ByteString;)Z\nHSPLokio/ByteString;->substring$default(Lokio/ByteString;IIILjava/lang/Object;)Lokio/ByteString;\nPLokio/ByteString;->substring$default(Lokio/ByteString;IIILjava/lang/Object;)Lokio/ByteString;\nHSPLokio/ByteString;->substring(II)Lokio/ByteString;\nPLokio/ByteString;->substring(II)Lokio/ByteString;\nHSPLokio/ByteString;->toAsciiLowercase()Lokio/ByteString;\nPLokio/ByteString;->toAsciiLowercase()Lokio/ByteString;\nHSPLokio/ByteString;->utf8()Ljava/lang/String;\nPLokio/ByteString;->utf8()Ljava/lang/String;\nHSPLokio/ByteString;->write$okio(Lokio/Buffer;II)V\nPLokio/ByteString;->write$okio(Lokio/Buffer;II)V\nLokio/ByteString$Companion;\nHSPLokio/ByteString$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/ByteString$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokio/ByteString$Companion;->decodeHex(Ljava/lang/String;)Lokio/ByteString;\nPLokio/ByteString$Companion;->decodeHex(Ljava/lang/String;)Lokio/ByteString;\nHSPLokio/ByteString$Companion;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;\nPLokio/ByteString$Companion;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;\nHSPLokio/ByteString$Companion;->of$default(Lokio/ByteString$Companion;[BIIILjava/lang/Object;)Lokio/ByteString;\nPLokio/ByteString$Companion;->of$default(Lokio/ByteString$Companion;[BIIILjava/lang/Object;)Lokio/ByteString;\nHSPLokio/ByteString$Companion;->of([BII)Lokio/ByteString;\nPLokio/ByteString$Companion;->of([BII)Lokio/ByteString;\nLokio/FileMetadata;\nHSPLokio/FileMetadata;-><init>(ZZLokio/Path;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/util/Map;)V\nPLokio/FileMetadata;-><init>(ZZLokio/Path;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/util/Map;)V\nHSPLokio/FileMetadata;-><init>(ZZLokio/Path;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/FileMetadata;-><init>(ZZLokio/Path;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokio/FileMetadata;->getSize()Ljava/lang/Long;\nPLokio/FileMetadata;->getSize()Ljava/lang/Long;\nHSPLokio/FileMetadata;->getSymlinkTarget()Lokio/Path;\nPLokio/FileMetadata;->getSymlinkTarget()Lokio/Path;\nLokio/FileSystem;\nHSPLokio/FileSystem;-><clinit>()V\nPLokio/FileSystem;-><clinit>()V\nHSPLokio/FileSystem;-><init>()V\nPLokio/FileSystem;-><init>()V\nHSPLokio/FileSystem;->appendingSink(Lokio/Path;)Lokio/Sink;\nPLokio/FileSystem;->appendingSink(Lokio/Path;)Lokio/Sink;\nHSPLokio/FileSystem;->createDirectories(Lokio/Path;)V\nPLokio/FileSystem;->createDirectories(Lokio/Path;)V\nHSPLokio/FileSystem;->createDirectories(Lokio/Path;Z)V\nPLokio/FileSystem;->createDirectories(Lokio/Path;Z)V\nHSPLokio/FileSystem;->createDirectory(Lokio/Path;)V\nPLokio/FileSystem;->createDirectory(Lokio/Path;)V\nHSPLokio/FileSystem;->delete(Lokio/Path;)V\nPLokio/FileSystem;->delete(Lokio/Path;)V\nHSPLokio/FileSystem;->exists(Lokio/Path;)Z\nPLokio/FileSystem;->exists(Lokio/Path;)Z\nHSPLokio/FileSystem;->metadata(Lokio/Path;)Lokio/FileMetadata;\nPLokio/FileSystem;->metadata(Lokio/Path;)Lokio/FileMetadata;\nHSPLokio/FileSystem;->sink(Lokio/Path;)Lokio/Sink;\nPLokio/FileSystem;->sink(Lokio/Path;)Lokio/Sink;\nLokio/FileSystem$Companion;\nHSPLokio/FileSystem$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/FileSystem$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokio/ForwardingFileSystem;\nHSPLokio/ForwardingFileSystem;-><init>(Lokio/FileSystem;)V\nPLokio/ForwardingFileSystem;-><init>(Lokio/FileSystem;)V\nHSPLokio/ForwardingFileSystem;->appendingSink(Lokio/Path;Z)Lokio/Sink;\nPLokio/ForwardingFileSystem;->appendingSink(Lokio/Path;Z)Lokio/Sink;\nHSPLokio/ForwardingFileSystem;->atomicMove(Lokio/Path;Lokio/Path;)V\nPLokio/ForwardingFileSystem;->atomicMove(Lokio/Path;Lokio/Path;)V\nHSPLokio/ForwardingFileSystem;->createDirectory(Lokio/Path;Z)V\nPLokio/ForwardingFileSystem;->createDirectory(Lokio/Path;Z)V\nHSPLokio/ForwardingFileSystem;->delete(Lokio/Path;Z)V\nPLokio/ForwardingFileSystem;->delete(Lokio/Path;Z)V\nHSPLokio/ForwardingFileSystem;->metadataOrNull(Lokio/Path;)Lokio/FileMetadata;\nPLokio/ForwardingFileSystem;->metadataOrNull(Lokio/Path;)Lokio/FileMetadata;\nHSPLokio/ForwardingFileSystem;->onPathParameter(Lokio/Path;Ljava/lang/String;Ljava/lang/String;)Lokio/Path;\nPLokio/ForwardingFileSystem;->onPathParameter(Lokio/Path;Ljava/lang/String;Ljava/lang/String;)Lokio/Path;\nHSPLokio/ForwardingFileSystem;->sink(Lokio/Path;Z)Lokio/Sink;\nPLokio/ForwardingFileSystem;->sink(Lokio/Path;Z)Lokio/Sink;\nLokio/ForwardingSink;\nHSPLokio/ForwardingSink;-><init>(Lokio/Sink;)V\nPLokio/ForwardingSink;-><init>(Lokio/Sink;)V\nHSPLokio/ForwardingSink;->close()V\nPLokio/ForwardingSink;->close()V\nHSPLokio/ForwardingSink;->flush()V\nPLokio/ForwardingSink;->flush()V\nHSPLokio/ForwardingSink;->write(Lokio/Buffer;J)V\nPLokio/ForwardingSink;->write(Lokio/Buffer;J)V\nLokio/ForwardingSource;\nHSPLokio/ForwardingSource;-><init>(Lokio/Source;)V\nPLokio/ForwardingSource;-><init>(Lokio/Source;)V\nHSPLokio/ForwardingSource;->close()V\nPLokio/ForwardingSource;->close()V\nHSPLokio/ForwardingSource;->delegate()Lokio/Source;\nPLokio/ForwardingSource;->delegate()Lokio/Source;\nLokio/GzipSource;\nHSPLokio/GzipSource;-><init>(Lokio/Source;)V\nPLokio/GzipSource;-><init>(Lokio/Source;)V\nHSPLokio/GzipSource;->checkEqual(IILjava/lang/String;)V\nPLokio/GzipSource;->checkEqual(IILjava/lang/String;)V\nHSPLokio/GzipSource;->close()V\nPLokio/GzipSource;->close()V\nHSPLokio/GzipSource;->read(Lokio/Buffer;J)J\nPLokio/GzipSource;->read(Lokio/Buffer;J)J\nHSPLokio/GzipSource;->updateCrc(JLokio/Buffer;J)V\nPLokio/GzipSource;->updateCrc(JLokio/Buffer;J)V\nLokio/InflaterSource;\nHSPLokio/InflaterSource;-><init>(Lokio/BufferedSource;Ljava/util/zip/Inflater;)V\nPLokio/InflaterSource;-><init>(Lokio/BufferedSource;Ljava/util/zip/Inflater;)V\nHSPLokio/InflaterSource;->close()V\nPLokio/InflaterSource;->close()V\nHSPLokio/InflaterSource;->read(Lokio/Buffer;J)J\nPLokio/InflaterSource;->read(Lokio/Buffer;J)J\nHSPLokio/InflaterSource;->readOrInflate(Lokio/Buffer;J)J\nPLokio/InflaterSource;->readOrInflate(Lokio/Buffer;J)J\nHSPLokio/InflaterSource;->refill()Z\nPLokio/InflaterSource;->refill()Z\nLokio/InputStreamSource;\nHSPLokio/InputStreamSource;-><init>(Ljava/io/InputStream;Lokio/Timeout;)V\nPLokio/InputStreamSource;-><init>(Ljava/io/InputStream;Lokio/Timeout;)V\nHSPLokio/InputStreamSource;->read(Lokio/Buffer;J)J\nPLokio/InputStreamSource;->read(Lokio/Buffer;J)J\nLokio/JvmSystemFileSystem;\nHSPLokio/JvmSystemFileSystem;-><init>()V\nPLokio/JvmSystemFileSystem;-><init>()V\nHSPLokio/JvmSystemFileSystem;->appendingSink(Lokio/Path;Z)Lokio/Sink;\nPLokio/JvmSystemFileSystem;->appendingSink(Lokio/Path;Z)Lokio/Sink;\nHSPLokio/JvmSystemFileSystem;->createDirectory(Lokio/Path;Z)V\nPLokio/JvmSystemFileSystem;->createDirectory(Lokio/Path;Z)V\nHSPLokio/JvmSystemFileSystem;->delete(Lokio/Path;Z)V\nPLokio/JvmSystemFileSystem;->delete(Lokio/Path;Z)V\nHSPLokio/JvmSystemFileSystem;->sink(Lokio/Path;Z)Lokio/Sink;\nPLokio/JvmSystemFileSystem;->sink(Lokio/Path;Z)Lokio/Sink;\nLokio/JvmSystemFileSystem$$ExternalSyntheticOutline0;\nHSPLokio/JvmSystemFileSystem$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nPLokio/JvmSystemFileSystem$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Lcafe/adriel/voyager/core/concurrent/ThreadSafeMap;\nLokio/NioSystemFileSystem;\nHSPLokio/NioSystemFileSystem;-><init>()V\nPLokio/NioSystemFileSystem;-><init>()V\nHSPLokio/NioSystemFileSystem;->atomicMove(Lokio/Path;Lokio/Path;)V\nPLokio/NioSystemFileSystem;->atomicMove(Lokio/Path;Lokio/Path;)V\nHSPLokio/NioSystemFileSystem;->metadataOrNull(Ljava/nio/file/Path;)Lokio/FileMetadata;\nPLokio/NioSystemFileSystem;->metadataOrNull(Ljava/nio/file/Path;)Lokio/FileMetadata;\nHSPLokio/NioSystemFileSystem;->metadataOrNull(Lokio/Path;)Lokio/FileMetadata;\nPLokio/NioSystemFileSystem;->metadataOrNull(Lokio/Path;)Lokio/FileMetadata;\nHSPLokio/NioSystemFileSystem;->zeroToNull(Ljava/nio/file/attribute/FileTime;)Ljava/lang/Long;\nPLokio/NioSystemFileSystem;->zeroToNull(Ljava/nio/file/attribute/FileTime;)Ljava/lang/Long;\nLokio/Okio;\nHSPLokio/Okio;->buffer(Lokio/Sink;)Lokio/BufferedSink;\nPLokio/Okio;->buffer(Lokio/Sink;)Lokio/BufferedSink;\nHSPLokio/Okio;->buffer(Lokio/Source;)Lokio/BufferedSource;\nPLokio/Okio;->buffer(Lokio/Source;)Lokio/BufferedSource;\nHSPLokio/Okio;->sink(Ljava/net/Socket;)Lokio/Sink;\nPLokio/Okio;->sink(Ljava/net/Socket;)Lokio/Sink;\nHSPLokio/Okio;->source(Ljava/net/Socket;)Lokio/Source;\nPLokio/Okio;->source(Ljava/net/Socket;)Lokio/Source;\nLokio/Okio__JvmOkioKt;\nHSPLokio/Okio__JvmOkioKt;-><clinit>()V\nPLokio/Okio__JvmOkioKt;-><clinit>()V\nHSPLokio/Okio__JvmOkioKt;->sink$default(Ljava/io/File;ZILjava/lang/Object;)Lokio/Sink;\nPLokio/Okio__JvmOkioKt;->sink$default(Ljava/io/File;ZILjava/lang/Object;)Lokio/Sink;\nHSPLokio/Okio__JvmOkioKt;->sink(Ljava/io/File;Z)Lokio/Sink;\nPLokio/Okio__JvmOkioKt;->sink(Ljava/io/File;Z)Lokio/Sink;\nHSPLokio/Okio__JvmOkioKt;->sink(Ljava/io/OutputStream;)Lokio/Sink;\nPLokio/Okio__JvmOkioKt;->sink(Ljava/io/OutputStream;)Lokio/Sink;\nHSPLokio/Okio__JvmOkioKt;->sink(Ljava/net/Socket;)Lokio/Sink;\nPLokio/Okio__JvmOkioKt;->sink(Ljava/net/Socket;)Lokio/Sink;\nHSPLokio/Okio__JvmOkioKt;->source(Ljava/net/Socket;)Lokio/Source;\nPLokio/Okio__JvmOkioKt;->source(Ljava/net/Socket;)Lokio/Source;\nLokio/Okio__OkioKt;\nHSPLokio/Okio__OkioKt;->buffer(Lokio/Sink;)Lokio/BufferedSink;\nPLokio/Okio__OkioKt;->buffer(Lokio/Sink;)Lokio/BufferedSink;\nHSPLokio/Okio__OkioKt;->buffer(Lokio/Source;)Lokio/BufferedSource;\nPLokio/Okio__OkioKt;->buffer(Lokio/Source;)Lokio/BufferedSource;\nLokio/Options;\nHSPLokio/Options;-><clinit>()V\nPLokio/Options;-><clinit>()V\nHSPLokio/Options;-><init>([Lokio/ByteString;[ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/Options;-><init>([Lokio/ByteString;[ILkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokio/Options$Companion;\nHSPLokio/Options$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/Options$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokio/Options$Companion;->buildTrieRecursive(JLokio/Buffer;ILjava/util/List;IILjava/util/List;)V\nPLokio/Options$Companion;->buildTrieRecursive(JLokio/Buffer;ILjava/util/List;IILjava/util/List;)V\nHSPLokio/Options$Companion;->of([Lokio/ByteString;)Lokio/Options;\nPLokio/Options$Companion;->of([Lokio/ByteString;)Lokio/Options;\nLokio/OutputStreamSink;\nHSPLokio/OutputStreamSink;-><init>(Ljava/io/OutputStream;Lokio/Timeout;)V\nPLokio/OutputStreamSink;-><init>(Ljava/io/OutputStream;Lokio/Timeout;)V\nHSPLokio/OutputStreamSink;->close()V\nPLokio/OutputStreamSink;->close()V\nHSPLokio/OutputStreamSink;->flush()V\nPLokio/OutputStreamSink;->flush()V\nHSPLokio/OutputStreamSink;->write(Lokio/Buffer;J)V\nPLokio/OutputStreamSink;->write(Lokio/Buffer;J)V\nLokio/Path;\nHSPLokio/Path;-><clinit>()V\nPLokio/Path;-><clinit>()V\nHSPLokio/Path;-><init>(Lokio/ByteString;)V\nPLokio/Path;-><init>(Lokio/ByteString;)V\nHSPLokio/Path;->getBytes$okio()Lokio/ByteString;\nPLokio/Path;->getBytes$okio()Lokio/ByteString;\nHSPLokio/Path;->isAbsolute()Z\nPLokio/Path;->isAbsolute()Z\nHSPLokio/Path;->parent()Lokio/Path;\nPLokio/Path;->parent()Lokio/Path;\nHSPLokio/Path;->resolve(Ljava/lang/String;)Lokio/Path;\nPLokio/Path;->resolve(Ljava/lang/String;)Lokio/Path;\nHSPLokio/Path;->toFile()Ljava/io/File;\nPLokio/Path;->toFile()Ljava/io/File;\nHSPLokio/Path;->toNioPath()Ljava/nio/file/Path;\nPLokio/Path;->toNioPath()Ljava/nio/file/Path;\nHSPLokio/Path;->toString()Ljava/lang/String;\nPLokio/Path;->toString()Ljava/lang/String;\nHSPLokio/Path;->volumeLetter()Ljava/lang/Character;\nPLokio/Path;->volumeLetter()Ljava/lang/Character;\nLokio/Path$$ExternalSyntheticApiModelOutline0;\nHSPLokio/Path$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;\nPLokio/Path$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;\nHSPLokio/Path$$ExternalSyntheticApiModelOutline0;->m(Ljava/nio/file/attribute/FileTime;)J\nPLokio/Path$$ExternalSyntheticApiModelOutline0;->m(Ljava/nio/file/attribute/FileTime;)J\nLokio/Path$Companion;\nHSPLokio/Path$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/Path$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nHSPLokio/Path$Companion;->get$default(Lokio/Path$Companion;Ljava/io/File;ZILjava/lang/Object;)Lokio/Path;\nPLokio/Path$Companion;->get$default(Lokio/Path$Companion;Ljava/io/File;ZILjava/lang/Object;)Lokio/Path;\nHSPLokio/Path$Companion;->get$default(Lokio/Path$Companion;Ljava/lang/String;ZILjava/lang/Object;)Lokio/Path;\nPLokio/Path$Companion;->get$default(Lokio/Path$Companion;Ljava/lang/String;ZILjava/lang/Object;)Lokio/Path;\nHSPLokio/Path$Companion;->get(Ljava/io/File;Z)Lokio/Path;\nPLokio/Path$Companion;->get(Ljava/io/File;Z)Lokio/Path;\nHSPLokio/Path$Companion;->get(Ljava/lang/String;Z)Lokio/Path;\nPLokio/Path$Companion;->get(Ljava/lang/String;Z)Lokio/Path;\nLokio/RealBufferedSink;\nHSPLokio/RealBufferedSink;-><init>(Lokio/Sink;)V\nPLokio/RealBufferedSink;-><init>(Lokio/Sink;)V\nHSPLokio/RealBufferedSink;->close()V\nPLokio/RealBufferedSink;->close()V\nHSPLokio/RealBufferedSink;->emitCompleteSegments()Lokio/BufferedSink;\nPLokio/RealBufferedSink;->emitCompleteSegments()Lokio/BufferedSink;\nHSPLokio/RealBufferedSink;->flush()V\nPLokio/RealBufferedSink;->flush()V\nHSPLokio/RealBufferedSink;->getBuffer()Lokio/Buffer;\nPLokio/RealBufferedSink;->getBuffer()Lokio/Buffer;\nHSPLokio/RealBufferedSink;->write(Lokio/Buffer;J)V\nPLokio/RealBufferedSink;->write(Lokio/Buffer;J)V\nHSPLokio/RealBufferedSink;->write(Lokio/ByteString;)Lokio/BufferedSink;\nPLokio/RealBufferedSink;->write(Lokio/ByteString;)Lokio/BufferedSink;\nHSPLokio/RealBufferedSink;->writeByte(I)Lokio/BufferedSink;\nPLokio/RealBufferedSink;->writeByte(I)Lokio/BufferedSink;\nHSPLokio/RealBufferedSink;->writeDecimalLong(J)Lokio/BufferedSink;\nPLokio/RealBufferedSink;->writeDecimalLong(J)Lokio/BufferedSink;\nHSPLokio/RealBufferedSink;->writeInt(I)Lokio/BufferedSink;\nPLokio/RealBufferedSink;->writeInt(I)Lokio/BufferedSink;\nHSPLokio/RealBufferedSink;->writeShort(I)Lokio/BufferedSink;\nPLokio/RealBufferedSink;->writeShort(I)Lokio/BufferedSink;\nHSPLokio/RealBufferedSink;->writeUtf8(Ljava/lang/String;)Lokio/BufferedSink;\nPLokio/RealBufferedSink;->writeUtf8(Ljava/lang/String;)Lokio/BufferedSink;\nLokio/RealBufferedSource;\nHSPLokio/RealBufferedSource;-><init>(Lokio/Source;)V\nPLokio/RealBufferedSource;-><init>(Lokio/Source;)V\nHSPLokio/RealBufferedSource;->close()V\nPLokio/RealBufferedSource;->close()V\nHSPLokio/RealBufferedSource;->exhausted()Z\nHPLokio/RealBufferedSource;->exhausted()Z\nHSPLokio/RealBufferedSource;->getBuffer()Lokio/Buffer;\nPLokio/RealBufferedSource;->getBuffer()Lokio/Buffer;\nHSPLokio/RealBufferedSource;->read(Lokio/Buffer;J)J\nPLokio/RealBufferedSource;->read(Lokio/Buffer;J)J\nHSPLokio/RealBufferedSource;->readByte()B\nPLokio/RealBufferedSource;->readByte()B\nHSPLokio/RealBufferedSource;->readByteString(J)Lokio/ByteString;\nPLokio/RealBufferedSource;->readByteString(J)Lokio/ByteString;\nHSPLokio/RealBufferedSource;->readInt()I\nPLokio/RealBufferedSource;->readInt()I\nHSPLokio/RealBufferedSource;->readIntLe()I\nPLokio/RealBufferedSource;->readIntLe()I\nHSPLokio/RealBufferedSource;->readShort()S\nPLokio/RealBufferedSource;->readShort()S\nHSPLokio/RealBufferedSource;->readUtf8CodePoint()I\nHPLokio/RealBufferedSource;->readUtf8CodePoint()I\nHSPLokio/RealBufferedSource;->request(J)Z\nHPLokio/RealBufferedSource;->request(J)Z\nHSPLokio/RealBufferedSource;->require(J)V\nHPLokio/RealBufferedSource;->require(J)V\nHSPLokio/RealBufferedSource;->skip(J)V\nPLokio/RealBufferedSource;->skip(J)V\nLokio/Segment;\nHSPLokio/Segment;-><clinit>()V\nPLokio/Segment;-><clinit>()V\nHSPLokio/Segment;-><init>()V\nPLokio/Segment;-><init>()V\nHSPLokio/Segment;-><init>([BIIZZ)V\nPLokio/Segment;-><init>([BIIZZ)V\nHSPLokio/Segment;->compact()V\nPLokio/Segment;->compact()V\nHSPLokio/Segment;->pop()Lokio/Segment;\nPLokio/Segment;->pop()Lokio/Segment;\nHSPLokio/Segment;->push(Lokio/Segment;)Lokio/Segment;\nPLokio/Segment;->push(Lokio/Segment;)Lokio/Segment;\nHSPLokio/Segment;->sharedCopy()Lokio/Segment;\nPLokio/Segment;->sharedCopy()Lokio/Segment;\nHSPLokio/Segment;->split(I)Lokio/Segment;\nPLokio/Segment;->split(I)Lokio/Segment;\nHSPLokio/Segment;->writeTo(Lokio/Segment;I)V\nPLokio/Segment;->writeTo(Lokio/Segment;I)V\nLokio/Segment$Companion;\nHSPLokio/Segment$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/Segment$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokio/SegmentPool;\nHSPLokio/SegmentPool;-><clinit>()V\nPLokio/SegmentPool;-><clinit>()V\nHSPLokio/SegmentPool;-><init>()V\nPLokio/SegmentPool;-><init>()V\nHSPLokio/SegmentPool;->firstRef()Ljava/util/concurrent/atomic/AtomicReference;\nHPLokio/SegmentPool;->firstRef()Ljava/util/concurrent/atomic/AtomicReference;\nHSPLokio/SegmentPool;->recycle(Lokio/Segment;)V\nHPLokio/SegmentPool;->recycle(Lokio/Segment;)V\nHSPLokio/SegmentPool;->take()Lokio/Segment;\nHPLokio/SegmentPool;->take()Lokio/Segment;\nLokio/Sink;\nLokio/SocketAsyncTimeout;\nHSPLokio/SocketAsyncTimeout;-><init>(Ljava/net/Socket;)V\nPLokio/SocketAsyncTimeout;-><init>(Ljava/net/Socket;)V\nLokio/Source;\nLokio/Timeout;\nHSPLokio/Timeout;-><clinit>()V\nPLokio/Timeout;-><clinit>()V\nHSPLokio/Timeout;-><init>()V\nPLokio/Timeout;-><init>()V\nHSPLokio/Timeout;->hasDeadline()Z\nPLokio/Timeout;->hasDeadline()Z\nHSPLokio/Timeout;->throwIfReached()V\nPLokio/Timeout;->throwIfReached()V\nHSPLokio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;\nPLokio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;\nHSPLokio/Timeout;->timeoutNanos()J\nPLokio/Timeout;->timeoutNanos()J\nLokio/Timeout$Companion;\nHSPLokio/Timeout$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/Timeout$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokio/Timeout$Companion$NONE$1;\nHSPLokio/Timeout$Companion$NONE$1;-><init>()V\nPLokio/Timeout$Companion$NONE$1;-><init>()V\nLokio/Utf8;\nHSPLokio/Utf8;->size$default(Ljava/lang/String;IIILjava/lang/Object;)J\nPLokio/Utf8;->size$default(Ljava/lang/String;IIILjava/lang/Object;)J\nHSPLokio/Utf8;->size(Ljava/lang/String;II)J\nPLokio/Utf8;->size(Ljava/lang/String;II)J\nLokio/_JvmPlatformKt;\nHSPLokio/_JvmPlatformKt;->asUtf8ToByteArray(Ljava/lang/String;)[B\nPLokio/_JvmPlatformKt;->asUtf8ToByteArray(Ljava/lang/String;)[B\nHSPLokio/_JvmPlatformKt;->toUtf8String([B)Ljava/lang/String;\nPLokio/_JvmPlatformKt;->toUtf8String([B)Ljava/lang/String;\nLokio/internal/-Buffer;\nHSPLokio/internal/-Buffer;-><clinit>()V\nPLokio/internal/-Buffer;-><clinit>()V\nHSPLokio/internal/-Buffer;->getHEX_DIGIT_BYTES()[B\nPLokio/internal/-Buffer;->getHEX_DIGIT_BYTES()[B\nLokio/internal/-ByteString;\nHSPLokio/internal/-ByteString;-><clinit>()V\nPLokio/internal/-ByteString;-><clinit>()V\nHSPLokio/internal/-ByteString;->access$decodeHexDigit(C)I\nPLokio/internal/-ByteString;->access$decodeHexDigit(C)I\nHSPLokio/internal/-ByteString;->commonWrite(Lokio/ByteString;Lokio/Buffer;II)V\nPLokio/internal/-ByteString;->commonWrite(Lokio/ByteString;Lokio/Buffer;II)V\nHSPLokio/internal/-ByteString;->getHEX_DIGIT_CHARS()[C\nPLokio/internal/-ByteString;->getHEX_DIGIT_CHARS()[C\nLokio/internal/-FileSystem;\nHSPLokio/internal/-FileSystem;->commonCreateDirectories(Lokio/FileSystem;Lokio/Path;Z)V\nPLokio/internal/-FileSystem;->commonCreateDirectories(Lokio/FileSystem;Lokio/Path;Z)V\nHSPLokio/internal/-FileSystem;->commonExists(Lokio/FileSystem;Lokio/Path;)Z\nPLokio/internal/-FileSystem;->commonExists(Lokio/FileSystem;Lokio/Path;)Z\nHSPLokio/internal/-FileSystem;->commonMetadata(Lokio/FileSystem;Lokio/Path;)Lokio/FileMetadata;\nPLokio/internal/-FileSystem;->commonMetadata(Lokio/FileSystem;Lokio/Path;)Lokio/FileMetadata;\nLokio/internal/-Path;\nHSPLokio/internal/-Path;-><clinit>()V\nPLokio/internal/-Path;-><clinit>()V\nHSPLokio/internal/-Path;->access$getBACKSLASH$p()Lokio/ByteString;\nPLokio/internal/-Path;->access$getBACKSLASH$p()Lokio/ByteString;\nHSPLokio/internal/-Path;->access$getDOT$p()Lokio/ByteString;\nPLokio/internal/-Path;->access$getDOT$p()Lokio/ByteString;\nHSPLokio/internal/-Path;->access$getIndexOfLastSlash(Lokio/Path;)I\nPLokio/internal/-Path;->access$getIndexOfLastSlash(Lokio/Path;)I\nHSPLokio/internal/-Path;->access$getSLASH$p()Lokio/ByteString;\nPLokio/internal/-Path;->access$getSLASH$p()Lokio/ByteString;\nHSPLokio/internal/-Path;->access$lastSegmentIsDotDot(Lokio/Path;)Z\nPLokio/internal/-Path;->access$lastSegmentIsDotDot(Lokio/Path;)Z\nHSPLokio/internal/-Path;->access$rootLength(Lokio/Path;)I\nPLokio/internal/-Path;->access$rootLength(Lokio/Path;)I\nHSPLokio/internal/-Path;->commonResolve(Lokio/Path;Lokio/Path;Z)Lokio/Path;\nPLokio/internal/-Path;->commonResolve(Lokio/Path;Lokio/Path;Z)Lokio/Path;\nHSPLokio/internal/-Path;->commonToPath(Ljava/lang/String;Z)Lokio/Path;\nPLokio/internal/-Path;->commonToPath(Ljava/lang/String;Z)Lokio/Path;\nHSPLokio/internal/-Path;->getSlash(Lokio/Path;)Lokio/ByteString;\nPLokio/internal/-Path;->getSlash(Lokio/Path;)Lokio/ByteString;\nHSPLokio/internal/-Path;->toPath(Lokio/Buffer;Z)Lokio/Path;\nPLokio/internal/-Path;->toPath(Lokio/Buffer;Z)Lokio/Path;\nHSPLokio/internal/-Path;->toSlash(B)Lokio/ByteString;\nPLokio/internal/-Path;->toSlash(B)Lokio/ByteString;\nHSPLokio/internal/-Path;->toSlash(Ljava/lang/String;)Lokio/ByteString;\nPLokio/internal/-Path;->toSlash(Ljava/lang/String;)Lokio/ByteString;\nLokio/internal/ResourceFileSystem;\nHSPLokio/internal/ResourceFileSystem;-><clinit>()V\nPLokio/internal/ResourceFileSystem;-><clinit>()V\nHSPLokio/internal/ResourceFileSystem;-><init>(Ljava/lang/ClassLoader;Z)V\nPLokio/internal/ResourceFileSystem;-><init>(Ljava/lang/ClassLoader;Z)V\nLokio/internal/ResourceFileSystem$Companion;\nHSPLokio/internal/ResourceFileSystem$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nPLokio/internal/ResourceFileSystem$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V\nLokio/internal/ResourceFileSystem$roots$2;\nHSPLokio/internal/ResourceFileSystem$roots$2;-><init>(Ljava/lang/ClassLoader;)V\nPLokio/internal/ResourceFileSystem$roots$2;-><init>(Ljava/lang/ClassLoader;)V\nLorg/acra/builder/ReportExecutor$$ExternalSyntheticLambda0;\nHSPLorg/acra/builder/ReportExecutor$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nPLorg/acra/builder/ReportExecutor$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V\nHSPLorg/acra/builder/ReportExecutor$$ExternalSyntheticLambda0;->run()V\nPLorg/acra/builder/ReportExecutor$$ExternalSyntheticLambda0;->run()V\nLorg/acra/file/CrashReportPersister;\nHSPLorg/acra/file/CrashReportPersister;-><init>(I)V\nHPLorg/acra/file/CrashReportPersister;-><init>(I)V\nHSPLorg/acra/file/CrashReportPersister;->computeScaleFactor-H7hwNQA(JJ)J\nHPLorg/acra/file/CrashReportPersister;->computeScaleFactor-H7hwNQA(JJ)J\nHSPLorg/acra/file/CrashReportPersister;->createOutline-Pq9zytI(JLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)Landroidx/compose/ui/graphics/BrushKt;\nHPLorg/acra/file/CrashReportPersister;->createOutline-Pq9zytI(JLandroidx/compose/ui/unit/LayoutDirection;Landroidx/compose/ui/unit/Density;)Landroidx/compose/ui/graphics/BrushKt;\nHSPLorg/acra/file/CrashReportPersister;->entityType-OLwlOKw()I\nPLorg/acra/file/CrashReportPersister;->entityType-OLwlOKw()I\nLorg/acra/file/ReportLocator$special$$inlined$sortedBy$1;\nHSPLorg/acra/file/ReportLocator$special$$inlined$sortedBy$1;-><init>(I)V\nHPLorg/acra/file/ReportLocator$special$$inlined$sortedBy$1;-><init>(I)V\nHSPLorg/acra/file/ReportLocator$special$$inlined$sortedBy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nHPLorg/acra/file/ReportLocator$special$$inlined$sortedBy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I\nLorg/acra/log/AndroidLogDelegate;\nHSPLorg/acra/log/AndroidLogDelegate;-><init>()V\nPLorg/acra/log/AndroidLogDelegate;-><init>()V\nLorg/acra/startup/Report;\nLorg/acra/util/Installation;\nHSPLorg/acra/util/Installation;-><init>()V\nPLorg/acra/util/Installation;-><init>()V\nPLorg/acra/util/Installation;->getChromeReaderMode()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLorg/acra/util/Installation;->getCloudOff()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLorg/acra/util/Installation;->getCloudOff()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLorg/acra/util/Installation;->getCollectionsBookmark()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLorg/acra/util/Installation;->getDeleteSweep()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLorg/acra/util/Installation;->getDeleteSweep()Landroidx/compose/ui/graphics/vector/ImageVector;\nLorg/acra/util/StubCreator;\nHSPLorg/acra/util/StubCreator;->finalConstraints-tfFHcEY(JZIF)J\nHPLorg/acra/util/StubCreator;->finalConstraints-tfFHcEY(JZIF)J\nPLorg/acra/util/StubCreator;->getArrowBack()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLorg/acra/util/StubCreator;->getCode()Landroidx/compose/ui/graphics/vector/ImageVector;\nLorg/commonmark/node/SourceSpans;\nHSPLorg/commonmark/node/SourceSpans;-><init>()V\nHPLorg/commonmark/node/SourceSpans;-><init>()V\nHSPLorg/commonmark/node/SourceSpans;-><init>(I)V\nPLorg/commonmark/node/SourceSpans;-><init>(I)V\nHSPLorg/commonmark/node/SourceSpans;-><init>(Ljava/util/List;)V\nHPLorg/commonmark/node/SourceSpans;-><init>(Ljava/util/List;)V\nHSPLorg/commonmark/node/SourceSpans;->add(I)V\nHPLorg/commonmark/node/SourceSpans;->add(I)V\nHSPLorg/commonmark/node/SourceSpans;->addInitializer(Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)V\nHPLorg/commonmark/node/SourceSpans;->addInitializer(Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)V\nHSPLorg/commonmark/node/SourceSpans;->build()Landroidx/lifecycle/viewmodel/InitializerViewModelFactory;\nPLorg/commonmark/node/SourceSpans;->build()Landroidx/lifecycle/viewmodel/InitializerViewModelFactory;\nHSPLorg/commonmark/node/SourceSpans;->isNotEmpty()Z\nHPLorg/commonmark/node/SourceSpans;->isNotEmpty()Z\nHSPLorg/commonmark/node/SourceSpans;->peek()I\nHPLorg/commonmark/node/SourceSpans;->peek()I\nHSPLorg/commonmark/node/SourceSpans;->takeMax()I\nHPLorg/commonmark/node/SourceSpans;->takeMax()I\nLorg/jsoup/nodes/Element$$ExternalSyntheticLambda0;\nHSPLorg/jsoup/nodes/Element$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;)V\nPLorg/jsoup/nodes/Element$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;)V\nHSPLorg/jsoup/nodes/Element$$ExternalSyntheticLambda0;->create(Lokhttp3/Call;)Lokhttp3/EventListener;\nPLorg/jsoup/nodes/Element$$ExternalSyntheticLambda0;->create(Lokhttp3/Call;)Lokhttp3/EventListener;\nLorg/jsoup/select/NodeFilter;\nLorg/nibor/autolink/internal/Scanner;\nLorg/slf4j/ILoggerFactory;\nLrikka/shizuku/ShizukuProvider;\nHSPLrikka/shizuku/ShizukuProvider;-><init>()V\nPLrikka/shizuku/ShizukuProvider;-><init>()V\nHSPLrikka/shizuku/ShizukuProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V\nPLrikka/shizuku/ShizukuProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V\nHSPLrikka/shizuku/ShizukuProvider;->onCreate()Z\nPLrikka/shizuku/ShizukuProvider;->onCreate()Z\nLrikka/shizuku/SystemServiceHelper;\nHSPLrikka/shizuku/SystemServiceHelper;-><clinit>()V\nPLrikka/shizuku/SystemServiceHelper;-><clinit>()V\nHSPLrikka/shizuku/SystemServiceHelper;->getSystemService()Landroid/os/IBinder;\nPLrikka/shizuku/SystemServiceHelper;->getSystemService()Landroid/os/IBinder;\nLrikka/sui/Sui;\nHSPLrikka/sui/Sui;->byteArrayToSetOfTriggers([B)Ljava/util/LinkedHashSet;\nPLrikka/sui/Sui;->byteArrayToSetOfTriggers([B)Ljava/util/LinkedHashSet;\nHSPLrikka/sui/Sui;->init(Ljava/lang/String;)Z\nPLrikka/sui/Sui;->init(Ljava/lang/String;)Z\nHSPLrikka/sui/Sui;->intToBackoffPolicy(I)Landroidx/work/BackoffPolicy;\nPLrikka/sui/Sui;->intToBackoffPolicy(I)Landroidx/work/BackoffPolicy;\nHSPLrikka/sui/Sui;->intToNetworkType(I)Landroidx/work/NetworkType;\nPLrikka/sui/Sui;->intToNetworkType(I)Landroidx/work/NetworkType;\nHSPLrikka/sui/Sui;->intToOutOfQuotaPolicy(I)Landroidx/work/OutOfQuotaPolicy;\nPLrikka/sui/Sui;->intToOutOfQuotaPolicy(I)Landroidx/work/OutOfQuotaPolicy;\nHSPLrikka/sui/Sui;->intToState(I)Landroidx/work/WorkInfo$State;\nPLrikka/sui/Sui;->intToState(I)Landroidx/work/WorkInfo$State;\nHSPLrikka/sui/Sui;->isEnabled()Z\nPLrikka/sui/Sui;->isEnabled()Z\nHSPLrikka/sui/Sui;->isSui()Z\nPLrikka/sui/Sui;->isSui()Z\nHSPLrikka/sui/Sui;->networkTypeToInt(Landroidx/work/NetworkType;)I\nPLrikka/sui/Sui;->networkTypeToInt(Landroidx/work/NetworkType;)I\nHSPLrikka/sui/Sui;->setOfTriggersToByteArray(Ljava/util/Set;)[B\nPLrikka/sui/Sui;->setOfTriggersToByteArray(Ljava/util/Set;)[B\nHSPLrikka/sui/Sui;->stateToInt(Landroidx/work/WorkInfo$State;)I\nPLrikka/sui/Sui;->stateToInt(Landroidx/work/WorkInfo$State;)I\nLsoup/compose/material/motion/MotionConstants;\nHSPLsoup/compose/material/motion/MotionConstants;-><clinit>()V\nPLsoup/compose/material/motion/MotionConstants;-><clinit>()V\nHSPLsoup/compose/material/motion/MotionConstants;->getDefaultSlideDistance-D9Ej5fM()F\nPLsoup/compose/material/motion/MotionConstants;->getDefaultSlideDistance-D9Ej5fM()F\nLsoup/compose/material/motion/animation/MaterialSharedAxisKt;\nHSPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->getForOutgoing$1()I\nPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->getForOutgoing$1()I\nHSPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->materialFadeThroughIn()Landroidx/compose/animation/EnterTransition;\nHPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->materialFadeThroughIn()Landroidx/compose/animation/EnterTransition;\nHSPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->materialFadeThroughOut()Landroidx/compose/animation/ExitTransition;\nHPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->materialFadeThroughOut()Landroidx/compose/animation/ExitTransition;\nHSPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->materialSharedAxisX$default(ZI)Landroidx/compose/animation/ContentTransform;\nHPLsoup/compose/material/motion/animation/MaterialSharedAxisKt;->materialSharedAxisX$default(ZI)Landroidx/compose/animation/ContentTransform;\nLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;\nHSPLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;-><init>(IIZ)V\nHPLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;-><init>(IIZ)V\nPLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;->invoke(I)Ljava/lang/Integer;\nHPLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;->invoke(I)Ljava/lang/Integer;\nPLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLsoup/compose/material/motion/animation/MaterialSharedAxisKt$materialSharedAxisXIn$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference;\nHSPLtachiyomi/core/preference/AndroidPreference;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/lang/Object;)V\nHPLtachiyomi/core/preference/AndroidPreference;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/lang/Object;)V\nHSPLtachiyomi/core/preference/AndroidPreference;->access$getKey$p(Ltachiyomi/core/preference/AndroidPreference;)Ljava/lang/String;\nPLtachiyomi/core/preference/AndroidPreference;->access$getKey$p(Ltachiyomi/core/preference/AndroidPreference;)Ljava/lang/String;\nHSPLtachiyomi/core/preference/AndroidPreference;->changes()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/core/preference/AndroidPreference;->changes()Lkotlinx/coroutines/flow/Flow;\nHSPLtachiyomi/core/preference/AndroidPreference;->get()Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference;->get()Ljava/lang/Object;\nHSPLtachiyomi/core/preference/AndroidPreference;->isSet()Z\nPLtachiyomi/core/preference/AndroidPreference;->isSet()Z\nHSPLtachiyomi/core/preference/AndroidPreference;->set(Ljava/lang/Object;)V\nPLtachiyomi/core/preference/AndroidPreference;->set(Ljava/lang/Object;)V\nLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Z)V\nHPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Z)V\nHSPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;->write(Ljava/lang/Object;Ljava/lang/String;)Lkotlin/jvm/functions/Function1;\nPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive;->write(Ljava/lang/Object;Ljava/lang/String;)Lkotlin/jvm/functions/Function1;\nLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive$write$1;\nHSPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive$write$1;-><init>(Ljava/lang/String;Z)V\nPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive$write$1;-><init>(Ljava/lang/String;Z)V\nHSPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive$write$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$BooleanPrimitive$write$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$IntPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreference$IntPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;I)V\nHPLtachiyomi/core/preference/AndroidPreference$IntPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;I)V\nHSPLtachiyomi/core/preference/AndroidPreference$IntPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/core/preference/AndroidPreference$IntPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/core/preference/AndroidPreference$IntPrimitive;->write(Ljava/lang/Object;Ljava/lang/String;)Lkotlin/jvm/functions/Function1;\nPLtachiyomi/core/preference/AndroidPreference$IntPrimitive;->write(Ljava/lang/Object;Ljava/lang/String;)Lkotlin/jvm/functions/Function1;\nLtachiyomi/core/preference/AndroidPreference$IntPrimitive$write$1;\nHSPLtachiyomi/core/preference/AndroidPreference$IntPrimitive$write$1;-><init>(Ljava/lang/String;I)V\nPLtachiyomi/core/preference/AndroidPreference$IntPrimitive$write$1;-><init>(Ljava/lang/String;I)V\nHSPLtachiyomi/core/preference/AndroidPreference$IntPrimitive$write$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$IntPrimitive$write$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$LongPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreference$LongPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;J)V\nPLtachiyomi/core/preference/AndroidPreference$LongPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;J)V\nHSPLtachiyomi/core/preference/AndroidPreference$LongPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$LongPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/core/preference/AndroidPreference$LongPrimitive;->write(Ljava/lang/Object;Ljava/lang/String;)Lkotlin/jvm/functions/Function1;\nPLtachiyomi/core/preference/AndroidPreference$LongPrimitive;->write(Ljava/lang/Object;Ljava/lang/String;)Lkotlin/jvm/functions/Function1;\nLtachiyomi/core/preference/AndroidPreference$LongPrimitive$write$1;\nHSPLtachiyomi/core/preference/AndroidPreference$LongPrimitive$write$1;-><init>(JLjava/lang/String;)V\nPLtachiyomi/core/preference/AndroidPreference$LongPrimitive$write$1;-><init>(JLjava/lang/String;)V\nHSPLtachiyomi/core/preference/AndroidPreference$LongPrimitive$write$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$LongPrimitive$write$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$Object;\nHSPLtachiyomi/core/preference/AndroidPreference$Object;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHPLtachiyomi/core/preference/AndroidPreference$Object;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V\nHSPLtachiyomi/core/preference/AndroidPreference$Object;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/core/preference/AndroidPreference$Object;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$StringPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreference$StringPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/lang/String;)V\nPLtachiyomi/core/preference/AndroidPreference$StringPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/lang/String;)V\nHSPLtachiyomi/core/preference/AndroidPreference$StringPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$StringPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$StringSetPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreference$StringSetPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/util/Set;)V\nPLtachiyomi/core/preference/AndroidPreference$StringSetPrimitive;-><init>(Landroid/content/SharedPreferences;Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;Ljava/util/Set;)V\nHSPLtachiyomi/core/preference/AndroidPreference$StringSetPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$StringSetPrimitive;->read(Landroid/content/SharedPreferences;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1;-><init>(Lkotlinx/coroutines/flow/Flow;Ltachiyomi/core/preference/AndroidPreference;)V\nHPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1;-><init>(Lkotlinx/coroutines/flow/Flow;Ltachiyomi/core/preference/AndroidPreference;)V\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Ltachiyomi/core/preference/AndroidPreference;)V\nHPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Ltachiyomi/core/preference/AndroidPreference;)V\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2$1;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2$1;-><init>(Ltachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2$1;-><init>(Ltachiyomi/core/preference/AndroidPreference$changes$$inlined$filter$1$2;Lkotlin/coroutines/Continuation;)V\nLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;Ltachiyomi/core/preference/AndroidPreference;)V\nHPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1;Ltachiyomi/core/preference/AndroidPreference;)V\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Ltachiyomi/core/preference/AndroidPreference;)V\nHPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;Ltachiyomi/core/preference/AndroidPreference;)V\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nHPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2$1;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2$1;-><init>(Ltachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2$1;-><init>(Ltachiyomi/core/preference/AndroidPreference$changes$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nLtachiyomi/core/preference/AndroidPreference$changes$2;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHPLtachiyomi/core/preference/AndroidPreference$changes$2;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLtachiyomi/core/preference/AndroidPreference$changes$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLtachiyomi/core/preference/AndroidPreference$changes$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreference$changes$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/core/preference/AndroidPreference$changes$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/core/preference/AndroidPreference$changes$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreferenceStore;\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;-><init>(Landroid/app/Application;)V\nPLtachiyomi/core/preference/AndroidPreferenceStore;-><init>(Landroid/app/Application;)V\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;->getBoolean(Ljava/lang/String;Z)Ltachiyomi/core/preference/AndroidPreference$BooleanPrimitive;\nHPLtachiyomi/core/preference/AndroidPreferenceStore;->getBoolean(Ljava/lang/String;Z)Ltachiyomi/core/preference/AndroidPreference$BooleanPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;->getInt(ILjava/lang/String;)Ltachiyomi/core/preference/AndroidPreference$IntPrimitive;\nPLtachiyomi/core/preference/AndroidPreferenceStore;->getInt(ILjava/lang/String;)Ltachiyomi/core/preference/AndroidPreference$IntPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;->getLong(JLjava/lang/String;)Ltachiyomi/core/preference/AndroidPreference$LongPrimitive;\nPLtachiyomi/core/preference/AndroidPreferenceStore;->getLong(JLjava/lang/String;)Ltachiyomi/core/preference/AndroidPreference$LongPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;->getObject(Ljava/lang/String;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ltachiyomi/core/preference/AndroidPreference$Object;\nHPLtachiyomi/core/preference/AndroidPreferenceStore;->getObject(Ljava/lang/String;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ltachiyomi/core/preference/AndroidPreference$Object;\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;->getString(Ljava/lang/String;Ljava/lang/String;)Ltachiyomi/core/preference/AndroidPreference$StringPrimitive;\nPLtachiyomi/core/preference/AndroidPreferenceStore;->getString(Ljava/lang/String;Ljava/lang/String;)Ltachiyomi/core/preference/AndroidPreference$StringPrimitive;\nHSPLtachiyomi/core/preference/AndroidPreferenceStore;->getStringSet(Ljava/lang/String;Ljava/util/Set;)Ltachiyomi/core/preference/AndroidPreference$StringSetPrimitive;\nPLtachiyomi/core/preference/AndroidPreferenceStore;->getStringSet(Ljava/lang/String;Ljava/util/Set;)Ltachiyomi/core/preference/AndroidPreference$StringSetPrimitive;\nLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;-><init>(Landroid/content/SharedPreferences;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;-><init>(Landroid/content/SharedPreferences;Lkotlin/coroutines/Continuation;)V\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nHPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;-><init>(Lkotlinx/coroutines/channels/ProducerScope;)V\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;->onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V\nPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;->onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V\nLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$1;\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$1;-><init>(Landroid/content/SharedPreferences;Ltachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;)V\nHPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$1;-><init>(Landroid/content/SharedPreferences;Ltachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$$ExternalSyntheticLambda0;)V\nHSPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$1;->invoke()Ljava/lang/Object;\nPLtachiyomi/core/preference/AndroidPreferenceStoreKt$keyFlow$1$1;->invoke()Ljava/lang/Object;\nLtachiyomi/core/preference/Preference;\nLtachiyomi/core/preference/PreferenceStore;\nLtachiyomi/core/preference/TriState;\nHSPLtachiyomi/core/preference/TriState;-><clinit>()V\nPLtachiyomi/core/preference/TriState;-><clinit>()V\nHSPLtachiyomi/core/preference/TriState;-><init>(Ljava/lang/String;I)V\nPLtachiyomi/core/preference/TriState;-><init>(Ljava/lang/String;I)V\nLtachiyomi/core/provider/AndroidBackupFolderProvider;\nHSPLtachiyomi/core/provider/AndroidBackupFolderProvider;-><init>(Landroid/app/Application;)V\nPLtachiyomi/core/provider/AndroidBackupFolderProvider;-><init>(Landroid/app/Application;)V\nLtachiyomi/core/provider/AndroidDownloadFolderProvider;\nHSPLtachiyomi/core/provider/AndroidDownloadFolderProvider;-><init>(Landroid/app/Application;)V\nPLtachiyomi/core/provider/AndroidDownloadFolderProvider;-><init>(Landroid/app/Application;)V\nHSPLtachiyomi/core/provider/AndroidDownloadFolderProvider;->path()Ljava/lang/String;\nPLtachiyomi/core/provider/AndroidDownloadFolderProvider;->path()Ljava/lang/String;\nLtachiyomi/core/provider/FolderProvider;\nLtachiyomi/core/util/lang/CoroutinesExtensionsKt;\nHSPLtachiyomi/core/util/lang/CoroutinesExtensionsKt;->launchIO(Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;\nPLtachiyomi/core/util/lang/CoroutinesExtensionsKt;->launchIO(Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;\nHSPLtachiyomi/core/util/lang/CoroutinesExtensionsKt;->launchNow(Lkotlin/jvm/functions/Function2;)V\nPLtachiyomi/core/util/lang/CoroutinesExtensionsKt;->launchNow(Lkotlin/jvm/functions/Function2;)V\nHSPLtachiyomi/core/util/lang/CoroutinesExtensionsKt;->withIOContext(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLtachiyomi/core/util/lang/CoroutinesExtensionsKt;->withIOContext(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/data/AndroidDatabaseHandler;\nHSPLtachiyomi/data/AndroidDatabaseHandler;-><init>(Ltachiyomi/data/Database;Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/data/AndroidDatabaseHandler;-><init>(Ltachiyomi/data/Database;Lapp/cash/sqldelight/db/SqlDriver;)V\nHSPLtachiyomi/data/AndroidDatabaseHandler;->subscribeToList(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;\nPLtachiyomi/data/AndroidDatabaseHandler;->subscribeToList(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/coroutines/FlowQuery$mapToOne$$inlined$map$1;\nLtachiyomi/data/CategoriesQueries;\nHSPLtachiyomi/data/CategoriesQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/data/CategoriesQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nHSPLtachiyomi/data/CategoriesQueries;->getCategories(Lkotlin/jvm/functions/Function4;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/data/CategoriesQueries;->getCategories(Lkotlin/jvm/functions/Function4;)Lapp/cash/sqldelight/Query;\nLtachiyomi/data/CategoriesQueries$getCategories$1;\nHSPLtachiyomi/data/CategoriesQueries$getCategories$1;-><init>(Lkotlin/jvm/functions/Function4;)V\nPLtachiyomi/data/CategoriesQueries$getCategories$1;-><init>(Lkotlin/jvm/functions/Function4;)V\nHSPLtachiyomi/data/CategoriesQueries$getCategories$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/CategoriesQueries$getCategories$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/ChaptersQueries;\nHSPLtachiyomi/data/ChaptersQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/data/ChaptersQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nLtachiyomi/data/Database;\nHSPLtachiyomi/data/Database;-><clinit>()V\nPLtachiyomi/data/Database;-><clinit>()V\nLtachiyomi/data/Database$Companion;\nHSPLtachiyomi/data/Database$Companion;-><clinit>()V\nPLtachiyomi/data/Database$Companion;-><clinit>()V\nHSPLtachiyomi/data/Database$Companion;-><init>()V\nPLtachiyomi/data/Database$Companion;-><init>()V\nLtachiyomi/data/DatabaseHandler;\nLtachiyomi/data/DateColumnAdapter;\nHSPLtachiyomi/data/DateColumnAdapter;-><clinit>()V\nPLtachiyomi/data/DateColumnAdapter;-><clinit>()V\nHSPLtachiyomi/data/DateColumnAdapter;-><init>()V\nPLtachiyomi/data/DateColumnAdapter;-><init>()V\nLtachiyomi/data/History$Adapter;\nHSPLtachiyomi/data/History$Adapter;-><init>(Ltachiyomi/data/DateColumnAdapter;)V\nPLtachiyomi/data/History$Adapter;-><init>(Ltachiyomi/data/DateColumnAdapter;)V\nLtachiyomi/data/HistoryQueries;\nHSPLtachiyomi/data/HistoryQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;)V\nPLtachiyomi/data/HistoryQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;)V\nLtachiyomi/data/Manga_syncQueries;\nHSPLtachiyomi/data/Manga_syncQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/data/Manga_syncQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nHSPLtachiyomi/data/Manga_syncQueries;->getTracks(Lkotlin/jvm/functions/Function13;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/data/Manga_syncQueries;->getTracks(Lkotlin/jvm/functions/Function13;)Lapp/cash/sqldelight/Query;\nLtachiyomi/data/Manga_syncQueries$getTracks$1;\nHSPLtachiyomi/data/Manga_syncQueries$getTracks$1;-><init>(Lkotlin/jvm/functions/Function13;)V\nPLtachiyomi/data/Manga_syncQueries$getTracks$1;-><init>(Lkotlin/jvm/functions/Function13;)V\nLtachiyomi/data/Mangas$Adapter;\nHSPLtachiyomi/data/Mangas$Adapter;-><init>(Ltachiyomi/data/StringListColumnAdapter;Ltachiyomi/data/UpdateStrategyColumnAdapter;)V\nPLtachiyomi/data/Mangas$Adapter;-><init>(Ltachiyomi/data/StringListColumnAdapter;Ltachiyomi/data/UpdateStrategyColumnAdapter;)V\nLtachiyomi/data/MangasQueries;\nHSPLtachiyomi/data/MangasQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/Mangas$Adapter;)V\nPLtachiyomi/data/MangasQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/Mangas$Adapter;)V\nLtachiyomi/data/Mangas_categoriesQueries;\nHSPLtachiyomi/data/Mangas_categoriesQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/data/Mangas_categoriesQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nLtachiyomi/data/SourcesQueries;\nHSPLtachiyomi/data/SourcesQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/data/SourcesQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nHSPLtachiyomi/data/SourcesQueries;->findAll(Lkotlin/jvm/functions/Function3;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/data/SourcesQueries;->findAll(Lkotlin/jvm/functions/Function3;)Lapp/cash/sqldelight/Query;\nLtachiyomi/data/SourcesQueries$findAll$1;\nHSPLtachiyomi/data/SourcesQueries$findAll$1;-><init>(Lkotlin/jvm/functions/Function3;)V\nPLtachiyomi/data/SourcesQueries$findAll$1;-><init>(Lkotlin/jvm/functions/Function3;)V\nLtachiyomi/data/StringListColumnAdapter;\nHSPLtachiyomi/data/StringListColumnAdapter;-><clinit>()V\nPLtachiyomi/data/StringListColumnAdapter;-><clinit>()V\nHSPLtachiyomi/data/StringListColumnAdapter;-><init>()V\nPLtachiyomi/data/StringListColumnAdapter;-><init>()V\nLtachiyomi/data/UpdateStrategyColumnAdapter;\nHSPLtachiyomi/data/UpdateStrategyColumnAdapter;-><clinit>()V\nPLtachiyomi/data/UpdateStrategyColumnAdapter;-><clinit>()V\nHSPLtachiyomi/data/UpdateStrategyColumnAdapter;-><init>()V\nPLtachiyomi/data/UpdateStrategyColumnAdapter;-><init>()V\nLtachiyomi/data/category/CategoryMapperKt;\nHSPLtachiyomi/data/category/CategoryMapperKt;-><clinit>()V\nPLtachiyomi/data/category/CategoryMapperKt;-><clinit>()V\nHSPLtachiyomi/data/category/CategoryMapperKt;->getCategoryMapper()Lkotlin/jvm/functions/Function4;\nPLtachiyomi/data/category/CategoryMapperKt;->getCategoryMapper()Lkotlin/jvm/functions/Function4;\nLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;\nHSPLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;-><clinit>()V\nPLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;-><clinit>()V\nHSPLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;-><init>()V\nPLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;-><init>()V\nHSPLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/category/CategoryMapperKt$categoryMapper$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/category/CategoryRepositoryImpl;\nHSPLtachiyomi/data/category/CategoryRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/category/CategoryRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nHSPLtachiyomi/data/category/CategoryRepositoryImpl;->getAllAsFlow()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/category/CategoryRepositoryImpl;->getAllAsFlow()Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;\nHSPLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;-><clinit>()V\nPLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;-><clinit>()V\nHSPLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;-><init>()V\nPLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;-><init>()V\nHSPLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/category/CategoryRepositoryImpl$getAllAsFlow$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/chapter/ChapterRepositoryImpl;\nHSPLtachiyomi/data/chapter/ChapterRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/chapter/ChapterRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nLtachiyomi/data/data/DatabaseImpl;\nHSPLtachiyomi/data/data/DatabaseImpl;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;Ltachiyomi/data/Mangas$Adapter;)V\nPLtachiyomi/data/data/DatabaseImpl;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;Ltachiyomi/data/Mangas$Adapter;)V\nHSPLtachiyomi/data/data/DatabaseImpl;->getCategoriesQueries()Ltachiyomi/data/CategoriesQueries;\nPLtachiyomi/data/data/DatabaseImpl;->getCategoriesQueries()Ltachiyomi/data/CategoriesQueries;\nHSPLtachiyomi/data/data/DatabaseImpl;->getHistoryViewQueries()Ltachiyomi/view/HistoryViewQueries;\nPLtachiyomi/data/data/DatabaseImpl;->getHistoryViewQueries()Ltachiyomi/view/HistoryViewQueries;\nHSPLtachiyomi/data/data/DatabaseImpl;->getLibraryViewQueries()Ltachiyomi/view/LibraryViewQueries;\nPLtachiyomi/data/data/DatabaseImpl;->getLibraryViewQueries()Ltachiyomi/view/LibraryViewQueries;\nHSPLtachiyomi/data/data/DatabaseImpl;->getManga_syncQueries()Ltachiyomi/data/Manga_syncQueries;\nPLtachiyomi/data/data/DatabaseImpl;->getManga_syncQueries()Ltachiyomi/data/Manga_syncQueries;\nHSPLtachiyomi/data/data/DatabaseImpl;->getSourcesQueries()Ltachiyomi/data/SourcesQueries;\nPLtachiyomi/data/data/DatabaseImpl;->getSourcesQueries()Ltachiyomi/data/SourcesQueries;\nHSPLtachiyomi/data/data/DatabaseImpl;->getUpdatesViewQueries()Ltachiyomi/view/UpdatesViewQueries;\nPLtachiyomi/data/data/DatabaseImpl;->getUpdatesViewQueries()Ltachiyomi/view/UpdatesViewQueries;\nLtachiyomi/data/data/DatabaseImpl$Schema;\nHSPLtachiyomi/data/data/DatabaseImpl$Schema;-><clinit>()V\nPLtachiyomi/data/data/DatabaseImpl$Schema;-><clinit>()V\nHSPLtachiyomi/data/data/DatabaseImpl$Schema;-><init>()V\nPLtachiyomi/data/data/DatabaseImpl$Schema;-><init>()V\nLtachiyomi/data/data/DatabaseImplKt;\nHSPLtachiyomi/data/data/DatabaseImplKt;->newInstance(Lkotlin/reflect/KClass;Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;Ltachiyomi/data/Mangas$Adapter;)Ltachiyomi/data/Database;\nPLtachiyomi/data/data/DatabaseImplKt;->newInstance(Lkotlin/reflect/KClass;Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;Ltachiyomi/data/Mangas$Adapter;)Ltachiyomi/data/Database;\nLtachiyomi/data/history/HistoryMapperKt;\nHSPLtachiyomi/data/history/HistoryMapperKt;-><clinit>()V\nPLtachiyomi/data/history/HistoryMapperKt;-><clinit>()V\nHSPLtachiyomi/data/history/HistoryMapperKt;->getHistoryWithRelationsMapper()Lkotlin/jvm/functions/Function11;\nPLtachiyomi/data/history/HistoryMapperKt;->getHistoryWithRelationsMapper()Lkotlin/jvm/functions/Function11;\nLtachiyomi/data/history/HistoryMapperKt$historyMapper$1;\nHSPLtachiyomi/data/history/HistoryMapperKt$historyMapper$1;-><clinit>()V\nPLtachiyomi/data/history/HistoryMapperKt$historyMapper$1;-><clinit>()V\nHSPLtachiyomi/data/history/HistoryMapperKt$historyMapper$1;-><init>()V\nPLtachiyomi/data/history/HistoryMapperKt$historyMapper$1;-><init>()V\nLtachiyomi/data/history/HistoryMapperKt$historyWithRelationsMapper$1;\nHSPLtachiyomi/data/history/HistoryMapperKt$historyWithRelationsMapper$1;-><clinit>()V\nPLtachiyomi/data/history/HistoryMapperKt$historyWithRelationsMapper$1;-><clinit>()V\nHSPLtachiyomi/data/history/HistoryMapperKt$historyWithRelationsMapper$1;-><init>()V\nPLtachiyomi/data/history/HistoryMapperKt$historyWithRelationsMapper$1;-><init>()V\nLtachiyomi/data/history/HistoryRepositoryImpl;\nHSPLtachiyomi/data/history/HistoryRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/history/HistoryRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nHSPLtachiyomi/data/history/HistoryRepositoryImpl;->getHistory(Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/history/HistoryRepositoryImpl;->getHistory(Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/data/history/HistoryRepositoryImpl$getHistory$1;\nHSPLtachiyomi/data/history/HistoryRepositoryImpl$getHistory$1;-><init>(Ljava/lang/String;)V\nPLtachiyomi/data/history/HistoryRepositoryImpl$getHistory$1;-><init>(Ljava/lang/String;)V\nHSPLtachiyomi/data/history/HistoryRepositoryImpl$getHistory$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/history/HistoryRepositoryImpl$getHistory$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/manga/MangaMapperKt;\nHSPLtachiyomi/data/manga/MangaMapperKt;-><clinit>()V\nPLtachiyomi/data/manga/MangaMapperKt;-><clinit>()V\nHSPLtachiyomi/data/manga/MangaMapperKt;->getLibraryManga()Lkotlin/jvm/functions/FunctionN;\nPLtachiyomi/data/manga/MangaMapperKt;->getLibraryManga()Lkotlin/jvm/functions/FunctionN;\nLtachiyomi/data/manga/MangaMapperKt$libraryManga$1;\nHSPLtachiyomi/data/manga/MangaMapperKt$libraryManga$1;-><clinit>()V\nPLtachiyomi/data/manga/MangaMapperKt$libraryManga$1;-><clinit>()V\nHSPLtachiyomi/data/manga/MangaMapperKt$libraryManga$1;-><init>()V\nPLtachiyomi/data/manga/MangaMapperKt$libraryManga$1;-><init>()V\nLtachiyomi/data/manga/MangaMapperKt$mangaMapper$1;\nHSPLtachiyomi/data/manga/MangaMapperKt$mangaMapper$1;-><clinit>()V\nPLtachiyomi/data/manga/MangaMapperKt$mangaMapper$1;-><clinit>()V\nHSPLtachiyomi/data/manga/MangaMapperKt$mangaMapper$1;-><init>()V\nPLtachiyomi/data/manga/MangaMapperKt$mangaMapper$1;-><init>()V\nLtachiyomi/data/manga/MangaRepositoryImpl;\nHSPLtachiyomi/data/manga/MangaRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/manga/MangaRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nHSPLtachiyomi/data/manga/MangaRepositoryImpl;->getLibraryMangaAsFlow()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/manga/MangaRepositoryImpl;->getLibraryMangaAsFlow()Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;\nHSPLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;-><clinit>()V\nPLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;-><clinit>()V\nHSPLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;-><init>()V\nPLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;-><init>()V\nHSPLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/manga/MangaRepositoryImpl$getLibraryMangaAsFlow$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/source/SourceMapperKt;\nHSPLtachiyomi/data/source/SourceMapperKt;-><clinit>()V\nPLtachiyomi/data/source/SourceMapperKt;-><clinit>()V\nHSPLtachiyomi/data/source/SourceMapperKt;->getSourceDataMapper()Lkotlin/jvm/functions/Function3;\nPLtachiyomi/data/source/SourceMapperKt;->getSourceDataMapper()Lkotlin/jvm/functions/Function3;\nLtachiyomi/data/source/SourceMapperKt$sourceDataMapper$1;\nHSPLtachiyomi/data/source/SourceMapperKt$sourceDataMapper$1;-><clinit>()V\nPLtachiyomi/data/source/SourceMapperKt$sourceDataMapper$1;-><clinit>()V\nHSPLtachiyomi/data/source/SourceMapperKt$sourceDataMapper$1;-><init>()V\nPLtachiyomi/data/source/SourceMapperKt$sourceDataMapper$1;-><init>()V\nLtachiyomi/data/source/SourceMapperKt$sourceMapper$1;\nHSPLtachiyomi/data/source/SourceMapperKt$sourceMapper$1;-><clinit>()V\nPLtachiyomi/data/source/SourceMapperKt$sourceMapper$1;-><clinit>()V\nHSPLtachiyomi/data/source/SourceMapperKt$sourceMapper$1;-><init>()V\nPLtachiyomi/data/source/SourceMapperKt$sourceMapper$1;-><init>()V\nLtachiyomi/data/source/StubSourceRepositoryImpl;\nHSPLtachiyomi/data/source/StubSourceRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/source/StubSourceRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nHSPLtachiyomi/data/source/StubSourceRepositoryImpl;->subscribeAll()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/source/StubSourceRepositoryImpl;->subscribeAll()Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;\nHSPLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;-><clinit>()V\nPLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;-><clinit>()V\nHSPLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;-><init>()V\nPLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;-><init>()V\nHSPLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/source/StubSourceRepositoryImpl$subscribeAll$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/track/TrackMapperKt;\nHSPLtachiyomi/data/track/TrackMapperKt;-><clinit>()V\nPLtachiyomi/data/track/TrackMapperKt;-><clinit>()V\nHSPLtachiyomi/data/track/TrackMapperKt;->getTrackMapper()Lkotlin/jvm/functions/Function13;\nPLtachiyomi/data/track/TrackMapperKt;->getTrackMapper()Lkotlin/jvm/functions/Function13;\nLtachiyomi/data/track/TrackMapperKt$trackMapper$1;\nHSPLtachiyomi/data/track/TrackMapperKt$trackMapper$1;-><clinit>()V\nPLtachiyomi/data/track/TrackMapperKt$trackMapper$1;-><clinit>()V\nHSPLtachiyomi/data/track/TrackMapperKt$trackMapper$1;-><init>()V\nPLtachiyomi/data/track/TrackMapperKt$trackMapper$1;-><init>()V\nLtachiyomi/data/track/TrackRepositoryImpl;\nHSPLtachiyomi/data/track/TrackRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/track/TrackRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nHSPLtachiyomi/data/track/TrackRepositoryImpl;->getTracksAsFlow()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/track/TrackRepositoryImpl;->getTracksAsFlow()Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;\nHSPLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;-><clinit>()V\nPLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;-><clinit>()V\nHSPLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;-><init>()V\nPLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;-><init>()V\nHSPLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/track/TrackRepositoryImpl$getTracksAsFlow$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/updates/UpdatesMapperKt;\nHSPLtachiyomi/data/updates/UpdatesMapperKt;-><clinit>()V\nPLtachiyomi/data/updates/UpdatesMapperKt;-><clinit>()V\nHSPLtachiyomi/data/updates/UpdatesMapperKt;->getUpdateWithRelationMapper()Lkotlin/jvm/functions/Function14;\nPLtachiyomi/data/updates/UpdatesMapperKt;->getUpdateWithRelationMapper()Lkotlin/jvm/functions/Function14;\nLtachiyomi/data/updates/UpdatesMapperKt$updateWithRelationMapper$1;\nHSPLtachiyomi/data/updates/UpdatesMapperKt$updateWithRelationMapper$1;-><clinit>()V\nPLtachiyomi/data/updates/UpdatesMapperKt$updateWithRelationMapper$1;-><clinit>()V\nHSPLtachiyomi/data/updates/UpdatesMapperKt$updateWithRelationMapper$1;-><init>()V\nPLtachiyomi/data/updates/UpdatesMapperKt$updateWithRelationMapper$1;-><init>()V\nLtachiyomi/data/updates/UpdatesRepositoryImpl;\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nPLtachiyomi/data/updates/UpdatesRepositoryImpl;-><init>(Ltachiyomi/data/DatabaseHandler;)V\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl;->subscribeAll(J)Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/updates/UpdatesRepositoryImpl;->subscribeAll(J)Lkotlinx/coroutines/flow/Flow;\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl;->subscribeWithRead(J)Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/data/updates/UpdatesRepositoryImpl;->subscribeWithRead(J)Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeAll$1;\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeAll$1;-><init>(J)V\nPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeAll$1;-><init>(J)V\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeAll$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeAll$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeWithRead$1;\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeWithRead$1;-><init>(J)V\nPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeWithRead$1;-><init>(J)V\nHSPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeWithRead$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/data/updates/UpdatesRepositoryImpl$subscribeWithRead$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/domain/backup/service/BackupPreferences;\nHSPLtachiyomi/domain/backup/service/BackupPreferences;-><init>(Ltachiyomi/core/provider/FolderProvider;Ltachiyomi/core/preference/PreferenceStore;)V\nPLtachiyomi/domain/backup/service/BackupPreferences;-><init>(Ltachiyomi/core/provider/FolderProvider;Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLtachiyomi/domain/backup/service/BackupPreferences;->backupInterval()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/backup/service/BackupPreferences;->backupInterval()Ltachiyomi/core/preference/Preference;\nLtachiyomi/domain/category/interactor/CreateCategoryWithName;\nLtachiyomi/domain/category/interactor/DeleteCategory;\nLtachiyomi/domain/category/interactor/GetCategories;\nHSPLtachiyomi/domain/category/interactor/GetCategories;-><init>(Ltachiyomi/domain/category/repository/CategoryRepository;)V\nPLtachiyomi/domain/category/interactor/GetCategories;-><init>(Ltachiyomi/domain/category/repository/CategoryRepository;)V\nHSPLtachiyomi/domain/category/interactor/GetCategories;->subscribe()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/domain/category/interactor/GetCategories;->subscribe()Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/domain/category/interactor/RenameCategory;\nLtachiyomi/domain/category/interactor/ReorderCategory;\nLtachiyomi/domain/category/interactor/ResetCategoryFlags;\nLtachiyomi/domain/category/interactor/SetDisplayMode;\nHSPLtachiyomi/domain/category/interactor/SetDisplayMode;-><init>(Ltachiyomi/domain/library/service/LibraryPreferences;)V\nPLtachiyomi/domain/category/interactor/SetDisplayMode;-><init>(Ltachiyomi/domain/library/service/LibraryPreferences;)V\nLtachiyomi/domain/category/interactor/SetMangaCategories;\nHSPLtachiyomi/domain/category/interactor/SetMangaCategories;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;)V\nPLtachiyomi/domain/category/interactor/SetMangaCategories;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;)V\nLtachiyomi/domain/category/interactor/SetSortModeForCategory;\nHSPLtachiyomi/domain/category/interactor/SetSortModeForCategory;-><init>(Ltachiyomi/domain/category/repository/CategoryRepository;Ltachiyomi/domain/library/service/LibraryPreferences;)V\nPLtachiyomi/domain/category/interactor/SetSortModeForCategory;-><init>(Ltachiyomi/domain/category/repository/CategoryRepository;Ltachiyomi/domain/library/service/LibraryPreferences;)V\nLtachiyomi/domain/category/interactor/UpdateCategory;\nLtachiyomi/domain/category/model/Category;\nHSPLtachiyomi/domain/category/model/Category;-><clinit>()V\nPLtachiyomi/domain/category/model/Category;-><clinit>()V\nHSPLtachiyomi/domain/category/model/Category;-><init>(Ljava/lang/String;JJJ)V\nPLtachiyomi/domain/category/model/Category;-><init>(Ljava/lang/String;JJJ)V\nHSPLtachiyomi/domain/category/model/Category;->getFlags()J\nPLtachiyomi/domain/category/model/Category;->getFlags()J\nHSPLtachiyomi/domain/category/model/Category;->getId()J\nPLtachiyomi/domain/category/model/Category;->getId()J\nHSPLtachiyomi/domain/category/model/Category;->hashCode()I\nPLtachiyomi/domain/category/model/Category;->hashCode()I\nHSPLtachiyomi/domain/category/model/Category;->isSystemCategory()Z\nPLtachiyomi/domain/category/model/Category;->isSystemCategory()Z\nLtachiyomi/domain/category/model/Category$Companion;\nHSPLtachiyomi/domain/category/model/Category$Companion;-><init>()V\nPLtachiyomi/domain/category/model/Category$Companion;-><init>()V\nHSPLtachiyomi/domain/category/model/Category$Companion;-><init>(I)V\nPLtachiyomi/domain/category/model/Category$Companion;-><init>(I)V\nLtachiyomi/domain/category/repository/CategoryRepository;\nLtachiyomi/domain/chapter/interactor/GetChapter;\nHSPLtachiyomi/domain/chapter/interactor/GetChapter;-><init>(Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nPLtachiyomi/domain/chapter/interactor/GetChapter;-><init>(Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nLtachiyomi/domain/chapter/interactor/GetChapterByMangaId;\nHSPLtachiyomi/domain/chapter/interactor/GetChapterByMangaId;-><init>(Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nPLtachiyomi/domain/chapter/interactor/GetChapterByMangaId;-><init>(Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nLtachiyomi/domain/chapter/interactor/SetMangaDefaultChapterFlags;\nLtachiyomi/domain/chapter/interactor/ShouldUpdateDbChapter;\nLtachiyomi/domain/chapter/interactor/UpdateChapter;\nHSPLtachiyomi/domain/chapter/interactor/UpdateChapter;-><init>(Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nPLtachiyomi/domain/chapter/interactor/UpdateChapter;-><init>(Ltachiyomi/domain/chapter/repository/ChapterRepository;)V\nLtachiyomi/domain/chapter/repository/ChapterRepository;\nLtachiyomi/domain/download/service/DownloadPreferences;\nHSPLtachiyomi/domain/download/service/DownloadPreferences;-><init>(Ltachiyomi/core/provider/FolderProvider;Ltachiyomi/core/preference/PreferenceStore;)V\nPLtachiyomi/domain/download/service/DownloadPreferences;-><init>(Ltachiyomi/core/provider/FolderProvider;Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLtachiyomi/domain/download/service/DownloadPreferences;->downloadsDirectory()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/download/service/DownloadPreferences;->downloadsDirectory()Ltachiyomi/core/preference/Preference;\nLtachiyomi/domain/history/interactor/GetHistory;\nHSPLtachiyomi/domain/history/interactor/GetHistory;-><init>(Ltachiyomi/domain/history/repository/HistoryRepository;)V\nPLtachiyomi/domain/history/interactor/GetHistory;-><init>(Ltachiyomi/domain/history/repository/HistoryRepository;)V\nHSPLtachiyomi/domain/history/interactor/GetHistory;->subscribe(Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/domain/history/interactor/GetHistory;->subscribe(Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/domain/history/interactor/GetNextChapters;\nHSPLtachiyomi/domain/history/interactor/GetNextChapters;-><init>(Ltachiyomi/domain/chapter/interactor/GetChapterByMangaId;Ltachiyomi/domain/manga/interactor/GetManga;Ltachiyomi/domain/history/repository/HistoryRepository;)V\nPLtachiyomi/domain/history/interactor/GetNextChapters;-><init>(Ltachiyomi/domain/chapter/interactor/GetChapterByMangaId;Ltachiyomi/domain/manga/interactor/GetManga;Ltachiyomi/domain/history/repository/HistoryRepository;)V\nLtachiyomi/domain/history/interactor/GetTotalReadDuration;\nLtachiyomi/domain/history/interactor/RemoveHistory;\nHSPLtachiyomi/domain/history/interactor/RemoveHistory;-><init>(Ltachiyomi/domain/history/repository/HistoryRepository;)V\nPLtachiyomi/domain/history/interactor/RemoveHistory;-><init>(Ltachiyomi/domain/history/repository/HistoryRepository;)V\nLtachiyomi/domain/history/interactor/UpsertHistory;\nLtachiyomi/domain/history/repository/HistoryRepository;\nLtachiyomi/domain/library/model/Flag;\nLtachiyomi/domain/library/model/FlagWithMask;\nLtachiyomi/domain/library/model/LibrarySort;\nHSPLtachiyomi/domain/library/model/LibrarySort;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort;-><init>(Ltachiyomi/domain/library/model/LibrarySort$Type;Ltachiyomi/domain/library/model/LibrarySort$Direction;)V\nPLtachiyomi/domain/library/model/LibrarySort;-><init>(Ltachiyomi/domain/library/model/LibrarySort$Type;Ltachiyomi/domain/library/model/LibrarySort$Direction;)V\nHSPLtachiyomi/domain/library/model/LibrarySort;->access$getDirections$delegate$cp()Lkotlin/Lazy;\nPLtachiyomi/domain/library/model/LibrarySort;->access$getDirections$delegate$cp()Lkotlin/Lazy;\nHSPLtachiyomi/domain/library/model/LibrarySort;->access$getTypes$delegate$cp()Lkotlin/Lazy;\nPLtachiyomi/domain/library/model/LibrarySort;->access$getTypes$delegate$cp()Lkotlin/Lazy;\nHSPLtachiyomi/domain/library/model/LibrarySort;->isAscending()Z\nPLtachiyomi/domain/library/model/LibrarySort;->isAscending()Z\nLtachiyomi/domain/library/model/LibrarySort$Companion;\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Companion;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion;-><init>(I)V\nPLtachiyomi/domain/library/model/LibrarySort$Companion;-><init>(I)V\nLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;->invoke()Ljava/lang/Object;\nPLtachiyomi/domain/library/model/LibrarySort$Companion$directions$2;->invoke()Ljava/lang/Object;\nLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;->invoke()Ljava/lang/Object;\nPLtachiyomi/domain/library/model/LibrarySort$Companion$types$2;->invoke()Ljava/lang/Object;\nLtachiyomi/domain/library/model/LibrarySort$Direction;\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Direction;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction;-><init>(J)V\nPLtachiyomi/domain/library/model/LibrarySort$Direction;-><init>(J)V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction;->getFlag()J\nPLtachiyomi/domain/library/model/LibrarySort$Direction;->getFlag()J\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction;->getMask()J\nPLtachiyomi/domain/library/model/LibrarySort$Direction;->getMask()J\nLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Ascending;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Direction$Companion;\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Companion;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Companion;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Companion;-><init>(I)V\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Companion;-><init>(I)V\nLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;->equals(Ljava/lang/Object;)Z\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;->equals(Ljava/lang/Object;)Z\nHSPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Direction$Descending;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type;-><init>(J)V\nPLtachiyomi/domain/library/model/LibrarySort$Type;-><init>(J)V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type;->getFlag()J\nPLtachiyomi/domain/library/model/LibrarySort$Type;->getFlag()J\nHSPLtachiyomi/domain/library/model/LibrarySort$Type;->getMask()J\nPLtachiyomi/domain/library/model/LibrarySort$Type;->getMask()J\nLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$Alphabetical;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$ChapterFetchDate;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$Companion;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$Companion;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$Companion;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$Companion;-><init>(I)V\nPLtachiyomi/domain/library/model/LibrarySort$Type$Companion;-><init>(I)V\nLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$DateAdded;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$LastRead;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$LastUpdate;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$LatestChapter;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$TotalChapters;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;-><clinit>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;-><clinit>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;-><init>()V\nPLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;-><init>()V\nHSPLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;->hashCode()I\nPLtachiyomi/domain/library/model/LibrarySort$Type$UnreadCount;->hashCode()I\nLtachiyomi/domain/library/model/LibrarySortModeKt;\nHSPLtachiyomi/domain/library/model/LibrarySortModeKt;->getSort(Ltachiyomi/domain/category/model/Category;)Ltachiyomi/domain/library/model/LibrarySort;\nPLtachiyomi/domain/library/model/LibrarySortModeKt;->getSort(Ltachiyomi/domain/category/model/Category;)Ltachiyomi/domain/library/model/LibrarySort;\nLtachiyomi/domain/library/model/Mask;\nLtachiyomi/domain/library/service/LibraryPreferences;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;-><clinit>()V\nPLtachiyomi/domain/library/service/LibraryPreferences;-><clinit>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nPLtachiyomi/domain/library/service/LibraryPreferences;-><init>(Ltachiyomi/core/preference/PreferenceStore;)V\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->autoClearChapterCache()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->autoClearChapterCache()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->categoryNumberOfItems()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->categoryNumberOfItems()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->categoryTabs()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->categoryTabs()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->downloadBadge()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->downloadBadge()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->filterBookmarked()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->filterBookmarked()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->filterCompleted()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->filterCompleted()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->filterDownloaded()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->filterDownloaded()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->filterStarted()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->filterStarted()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->filterUnread()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->filterUnread()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->languageBadge()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->languageBadge()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->lastUsedCategory()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->lastUsedCategory()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->libraryUpdateInterval()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->libraryUpdateInterval()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->libraryUpdateLastTimestamp()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->libraryUpdateLastTimestamp()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->localBadge()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->localBadge()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->newShowUpdatesCount()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->newShowUpdatesCount()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->newUpdatesCount()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->newUpdatesCount()Ltachiyomi/core/preference/Preference;\nHSPLtachiyomi/domain/library/service/LibraryPreferences;->showContinueReadingButton()Ltachiyomi/core/preference/Preference;\nPLtachiyomi/domain/library/service/LibraryPreferences;->showContinueReadingButton()Ltachiyomi/core/preference/Preference;\nLtachiyomi/domain/library/service/LibraryPreferences$Companion;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$Companion;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$Companion;-><init>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences$Companion;-><init>(I)V\nPLtachiyomi/domain/library/service/LibraryPreferences$Companion;-><init>(I)V\nLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$1;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$1;-><clinit>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$1;-><clinit>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$1;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$1;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$2;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$2;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterBookmarked$$inlined$getEnum$2;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$1;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$1;-><clinit>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$1;-><clinit>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$1;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$1;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$2;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$2;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterCompleted$$inlined$getEnum$2;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$1;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$1;-><clinit>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$1;-><clinit>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$1;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$1;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$2;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$2;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterDownloaded$$inlined$getEnum$2;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$1;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$1;-><clinit>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$1;-><clinit>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$1;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$1;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$2;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$2;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterStarted$$inlined$getEnum$2;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$1;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$1;-><clinit>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$1;-><clinit>()V\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$1;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$1;-><init>()V\nLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$2;\nHSPLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$2;-><init>()V\nPLtachiyomi/domain/library/service/LibraryPreferences$filterUnread$$inlined$getEnum$2;-><init>()V\nLtachiyomi/domain/manga/interactor/GetDuplicateLibraryManga;\nLtachiyomi/domain/manga/interactor/GetFavorites;\nLtachiyomi/domain/manga/interactor/GetLibraryManga;\nHSPLtachiyomi/domain/manga/interactor/GetLibraryManga;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;)V\nPLtachiyomi/domain/manga/interactor/GetLibraryManga;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;)V\nHSPLtachiyomi/domain/manga/interactor/GetLibraryManga;->subscribe()Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/domain/manga/interactor/GetLibraryManga;->subscribe()Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/domain/manga/interactor/GetManga;\nHSPLtachiyomi/domain/manga/interactor/GetManga;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;)V\nPLtachiyomi/domain/manga/interactor/GetManga;-><init>(Ltachiyomi/domain/manga/repository/MangaRepository;)V\nLtachiyomi/domain/manga/interactor/GetMangaWithChapters;\nLtachiyomi/domain/manga/interactor/NetworkToLocalManga;\nLtachiyomi/domain/manga/interactor/ResetViewerFlags;\nLtachiyomi/domain/manga/interactor/SetFetchInterval;\nHSPLtachiyomi/domain/manga/interactor/SetFetchInterval;-><init>(Ltachiyomi/domain/chapter/interactor/GetChapterByMangaId;)V\nPLtachiyomi/domain/manga/interactor/SetFetchInterval;-><init>(Ltachiyomi/domain/chapter/interactor/GetChapterByMangaId;)V\nLtachiyomi/domain/manga/interactor/SetMangaChapterFlags;\nLtachiyomi/domain/manga/repository/MangaRepository;\nLtachiyomi/domain/release/interactor/GetApplicationRelease;\nLtachiyomi/domain/release/service/ReleaseService;\nLtachiyomi/domain/source/interactor/GetRemoteManga;\nLtachiyomi/domain/source/interactor/GetSourcesWithNonLibraryManga;\nLtachiyomi/domain/source/repository/SourceRepository;\nLtachiyomi/domain/source/repository/StubSourceRepository;\nLtachiyomi/domain/source/service/SourceManager;\nLtachiyomi/domain/track/interactor/DeleteTrack;\nLtachiyomi/domain/track/interactor/GetTracks;\nLtachiyomi/domain/track/interactor/GetTracksPerManga;\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga;-><init>(Ltachiyomi/domain/track/repository/TrackRepository;)V\nPLtachiyomi/domain/track/interactor/GetTracksPerManga;-><init>(Ltachiyomi/domain/track/repository/TrackRepository;)V\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga;->subscribe()Ltachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;\nPLtachiyomi/domain/track/interactor/GetTracksPerManga;->subscribe()Ltachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;\nLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/Flow;)V\nPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;-><init>(Lkotlinx/coroutines/flow/Flow;)V\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;-><init>(Lkotlinx/coroutines/flow/FlowCollector;)V\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;\nLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2$1;\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2$1;-><init>(Ltachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2$1;-><init>(Ltachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V\nHSPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/domain/track/interactor/GetTracksPerManga$subscribe$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/domain/track/interactor/InsertTrack;\nLtachiyomi/domain/track/repository/TrackRepository;\nLtachiyomi/domain/updates/interactor/GetUpdates;\nHSPLtachiyomi/domain/updates/interactor/GetUpdates;-><init>(Ltachiyomi/domain/updates/repository/UpdatesRepository;)V\nPLtachiyomi/domain/updates/interactor/GetUpdates;-><init>(Ltachiyomi/domain/updates/repository/UpdatesRepository;)V\nHSPLtachiyomi/domain/updates/interactor/GetUpdates;->subscribe(J)Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/domain/updates/interactor/GetUpdates;->subscribe(J)Lkotlinx/coroutines/flow/Flow;\nHSPLtachiyomi/domain/updates/interactor/GetUpdates;->subscribe(Ljava/util/Calendar;)Lkotlinx/coroutines/flow/Flow;\nPLtachiyomi/domain/updates/interactor/GetUpdates;->subscribe(Ljava/util/Calendar;)Lkotlinx/coroutines/flow/Flow;\nLtachiyomi/domain/updates/repository/UpdatesRepository;\nLtachiyomi/presentation/core/components/ActionButtonKt;\nHSPLtachiyomi/presentation/core/components/ActionButtonKt;->ActionButton(Landroidx/compose/ui/Modifier;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nHPLtachiyomi/presentation/core/components/ActionButtonKt;->ActionButton(Landroidx/compose/ui/Modifier;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V\nLtachiyomi/presentation/core/components/ActionButtonKt$ActionButton$1;\nHSPLtachiyomi/presentation/core/components/ActionButtonKt$ActionButton$1;-><init>(ILandroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;)V\nPLtachiyomi/presentation/core/components/ActionButtonKt$ActionButton$1;-><init>(ILandroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;)V\nHSPLtachiyomi/presentation/core/components/ActionButtonKt$ActionButton$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/ActionButtonKt$ActionButton$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/LazyListKt;\nHSPLtachiyomi/presentation/core/components/LazyListKt;->ScrollbarLazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nHPLtachiyomi/presentation/core/components/LazyListKt;->ScrollbarLazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V\nLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt;\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt;-><init>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt;-><init>()V\nLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;-><init>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;-><init>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;-><init>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-3$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;-><init>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-4$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;-><init>()V\nPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ComposableSingletons$ScaffoldKt$lambda-5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ConstantsKt;\nHSPLtachiyomi/presentation/core/components/material/ConstantsKt;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ConstantsKt;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ConstantsKt;->getPadding()Ltachiyomi/presentation/core/components/material/Padding;\nPLtachiyomi/presentation/core/components/material/ConstantsKt;->getPadding()Ltachiyomi/presentation/core/components/material/Padding;\nLtachiyomi/presentation/core/components/material/FabPosition;\nHSPLtachiyomi/presentation/core/components/material/FabPosition;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/FabPosition;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/FabPosition;-><init>(I)V\nPLtachiyomi/presentation/core/components/material/FabPosition;-><init>(I)V\nHSPLtachiyomi/presentation/core/components/material/FabPosition;->access$getEnd$cp()I\nPLtachiyomi/presentation/core/components/material/FabPosition;->access$getEnd$cp()I\nHSPLtachiyomi/presentation/core/components/material/FabPosition;->box-impl(I)Ltachiyomi/presentation/core/components/material/FabPosition;\nPLtachiyomi/presentation/core/components/material/FabPosition;->box-impl(I)Ltachiyomi/presentation/core/components/material/FabPosition;\nPLtachiyomi/presentation/core/components/material/FabPosition;->equals(Ljava/lang/Object;)Z\nLtachiyomi/presentation/core/components/material/FabPosition$Companion;\nHSPLtachiyomi/presentation/core/components/material/FabPosition$Companion;-><init>()V\nPLtachiyomi/presentation/core/components/material/FabPosition$Companion;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/FabPosition$Companion;-><init>(I)V\nPLtachiyomi/presentation/core/components/material/FabPosition$Companion;-><init>(I)V\nLtachiyomi/presentation/core/components/material/NavigationBarKt;\nHSPLtachiyomi/presentation/core/components/material/NavigationBarKt;->NavigationBar-HsRjFd4(Landroidx/compose/ui/Modifier;JJFLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nHPLtachiyomi/presentation/core/components/material/NavigationBarKt;->NavigationBar-HsRjFd4(Landroidx/compose/ui/Modifier;JJFLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V\nLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$1;\nHSPLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;I)V\nPLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;I)V\nHSPLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$2;\nHSPLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$2;-><init>(Landroidx/compose/ui/Modifier;JJFLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;II)V\nPLtachiyomi/presentation/core/components/material/NavigationBarKt$NavigationBar$2;-><init>(Landroidx/compose/ui/Modifier;JJFLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;II)V\nLtachiyomi/presentation/core/components/material/Padding;\nHSPLtachiyomi/presentation/core/components/material/Padding;-><init>()V\nPLtachiyomi/presentation/core/components/material/Padding;-><init>()V\nHSPLtachiyomi/presentation/core/components/material/Padding;->getSmall-D9Ej5fM()F\nPLtachiyomi/presentation/core/components/material/Padding;->getSmall-D9Ej5fM()F\nLtachiyomi/presentation/core/components/material/ScaffoldKt;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ScaffoldKt;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt;->Scaffold-UynuKms(Landroidx/compose/ui/Modifier;Landroidx/compose/material3/TopAppBarScrollBehavior;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;IJJLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt;->Scaffold-UynuKms(Landroidx/compose/ui/Modifier;Landroidx/compose/material3/TopAppBarScrollBehavior;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;IJJLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt;->access$ScaffoldLayout-sqSdXeA(ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt;->access$ScaffoldLayout-sqSdXeA(ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt;->getLocalFabPlacement()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nPLtachiyomi/presentation/core/components/material/ScaffoldKt;->getLocalFabPlacement()Landroidx/compose/runtime/StaticProvidableCompositionLocal;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$LocalFabPlacement$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$LocalFabPlacement$1;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ScaffoldKt$LocalFabPlacement$1;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$LocalFabPlacement$1;-><init>()V\nPLtachiyomi/presentation/core/components/material/ScaffoldKt$LocalFabPlacement$1;-><init>()V\nLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$1$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$1$1;-><init>(Landroidx/compose/foundation/layout/MutableWindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$1$1;-><init>(Landroidx/compose/foundation/layout/MutableWindowInsets;Landroidx/compose/foundation/layout/WindowInsets;)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2;-><init>(ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/layout/MutableWindowInsets;Lkotlin/jvm/functions/Function2;IILkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2;-><init>(ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/foundation/layout/MutableWindowInsets;Lkotlin/jvm/functions/Function2;IILkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2$1;-><init>(Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;I)V\nPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2$1;-><init>(Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/TopAppBarScrollBehavior;I)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$2$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$3;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$3;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/material3/TopAppBarScrollBehavior;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;IJJLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;III)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$Scaffold$3;-><init>(Landroidx/compose/ui/Modifier;Landroidx/compose/material3/TopAppBarScrollBehavior;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;IJJLandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function3;III)V\nLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1;-><init>(IILandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;)V\nPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1;-><init>(IILandroidx/compose/foundation/layout/WindowInsets;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/layout/SubcomposeMeasureScope;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;IJJLkotlin/jvm/functions/Function2;ILkotlin/jvm/functions/Function3;I)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/layout/SubcomposeMeasureScope;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;IJJLkotlin/jvm/functions/Function2;ILkotlin/jvm/functions/Function3;I)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bodyContentPlaceables$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bodyContentPlaceables$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/layout/SubcomposeMeasureScope;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;ILjava/util/ArrayList;ILkotlin/jvm/functions/Function3;I)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bodyContentPlaceables$1;-><init>(Landroidx/compose/foundation/layout/WindowInsets;Landroidx/compose/ui/layout/SubcomposeMeasureScope;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;ILjava/util/ArrayList;ILkotlin/jvm/functions/Function3;I)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bodyContentPlaceables$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bodyContentPlaceables$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bottomBarPlaceables$1;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bottomBarPlaceables$1;-><init>(Ltachiyomi/presentation/core/components/material/FabPlacement;Lkotlin/jvm/functions/Function2;I)V\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bottomBarPlaceables$1;-><init>(Ltachiyomi/presentation/core/components/material/FabPlacement;Lkotlin/jvm/functions/Function2;I)V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bottomBarPlaceables$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/components/material/ScaffoldKt$ScaffoldLayout$1$1$1$bottomBarPlaceables$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/components/material/ScaffoldLayoutContent;\nHSPLtachiyomi/presentation/core/components/material/ScaffoldLayoutContent;-><clinit>()V\nPLtachiyomi/presentation/core/components/material/ScaffoldLayoutContent;-><clinit>()V\nHSPLtachiyomi/presentation/core/components/material/ScaffoldLayoutContent;-><init>(Ljava/lang/String;I)V\nPLtachiyomi/presentation/core/components/material/ScaffoldLayoutContent;-><init>(Ljava/lang/String;I)V\nLtachiyomi/presentation/core/screens/EmptyScreenAction;\nHSPLtachiyomi/presentation/core/screens/EmptyScreenAction;-><init>(ILandroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function0;)V\nPLtachiyomi/presentation/core/screens/EmptyScreenAction;-><init>(ILandroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function0;)V\nHSPLtachiyomi/presentation/core/screens/EmptyScreenAction;->getIcon()Landroidx/compose/ui/graphics/vector/ImageVector;\nPLtachiyomi/presentation/core/screens/EmptyScreenAction;->getIcon()Landroidx/compose/ui/graphics/vector/ImageVector;\nHSPLtachiyomi/presentation/core/screens/EmptyScreenAction;->getOnClick()Lkotlin/jvm/functions/Function0;\nPLtachiyomi/presentation/core/screens/EmptyScreenAction;->getOnClick()Lkotlin/jvm/functions/Function0;\nHSPLtachiyomi/presentation/core/screens/EmptyScreenAction;->getStringResId()I\nPLtachiyomi/presentation/core/screens/EmptyScreenAction;->getStringResId()I\nLtachiyomi/presentation/core/screens/EmptyScreenKt;\nHSPLtachiyomi/presentation/core/screens/EmptyScreenKt;-><clinit>()V\nPLtachiyomi/presentation/core/screens/EmptyScreenKt;-><clinit>()V\nHSPLtachiyomi/presentation/core/screens/EmptyScreenKt;->EmptyScreen(ILandroidx/compose/ui/Modifier;Ljava/util/List;Landroidx/compose/runtime/Composer;II)V\nHPLtachiyomi/presentation/core/screens/EmptyScreenKt;->EmptyScreen(ILandroidx/compose/ui/Modifier;Ljava/util/List;Landroidx/compose/runtime/Composer;II)V\nHSPLtachiyomi/presentation/core/screens/EmptyScreenKt;->EmptyScreen(Ljava/lang/String;Landroidx/compose/ui/Modifier;Ljava/util/List;Landroidx/compose/runtime/Composer;II)V\nHPLtachiyomi/presentation/core/screens/EmptyScreenKt;->EmptyScreen(Ljava/lang/String;Landroidx/compose/ui/Modifier;Ljava/util/List;Landroidx/compose/runtime/Composer;II)V\nLtachiyomi/presentation/core/screens/EmptyScreenKt$EmptyScreen$1;\nHSPLtachiyomi/presentation/core/screens/EmptyScreenKt$EmptyScreen$1;-><init>(ILandroidx/compose/ui/Modifier;Ljava/util/List;II)V\nPLtachiyomi/presentation/core/screens/EmptyScreenKt$EmptyScreen$1;-><init>(ILandroidx/compose/ui/Modifier;Ljava/util/List;II)V\nLtachiyomi/presentation/core/screens/EmptyScreenKt$EmptyScreen$3;\nHSPLtachiyomi/presentation/core/screens/EmptyScreenKt$EmptyScreen$3;-><init>(Ljava/lang/String;Landroidx/compose/ui/Modifier;Ljava/util/List;II)V\nPLtachiyomi/presentation/core/screens/EmptyScreenKt$EmptyScreen$3;-><init>(Ljava/lang/String;Landroidx/compose/ui/Modifier;Ljava/util/List;II)V\nLtachiyomi/presentation/core/screens/LoadingScreenKt;\nHSPLtachiyomi/presentation/core/screens/LoadingScreenKt;->LoadingScreen(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V\nPLtachiyomi/presentation/core/screens/LoadingScreenKt;->LoadingScreen(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V\nLtachiyomi/presentation/core/util/ModifierKt;\nHSPLtachiyomi/presentation/core/util/ModifierKt;->secondaryItemAlpha(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nHPLtachiyomi/presentation/core/util/ModifierKt;->secondaryItemAlpha(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;\nLtachiyomi/presentation/core/util/PreferenceKt;\nHSPLtachiyomi/presentation/core/util/PreferenceKt;->collectAsState(Ltachiyomi/core/preference/Preference;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nHPLtachiyomi/presentation/core/util/PreferenceKt;->collectAsState(Ltachiyomi/core/preference/Preference;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/MutableState;\nLtachiyomi/presentation/core/util/ScrollbarKt;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt;-><clinit>()V\nPLtachiyomi/presentation/core/util/ScrollbarKt;-><clinit>()V\nHSPLtachiyomi/presentation/core/util/ScrollbarKt;->drawVerticalScrollbar(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;ZF)Landroidx/compose/ui/Modifier;\nHPLtachiyomi/presentation/core/util/ScrollbarKt;->drawVerticalScrollbar(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;ZF)Landroidx/compose/ui/Modifier;\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$1;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/gestures/Orientation;F)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$1;-><init>(Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/gestures/Orientation;F)V\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2;-><init>(Landroidx/compose/foundation/gestures/Orientation;ZLkotlin/jvm/functions/Function6;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2;-><init>(Landroidx/compose/foundation/gestures/Orientation;ZLkotlin/jvm/functions/Function6;)V\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;-><init>(Lkotlinx/coroutines/flow/MutableSharedFlow;Landroidx/compose/animation/core/Animatable;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;-><init>(Lkotlinx/coroutines/flow/MutableSharedFlow;Landroidx/compose/animation/core/Animatable;Lkotlin/coroutines/Continuation;)V\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1$1;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1$1;-><init>(Landroidx/compose/animation/core/Animatable;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$1$1;-><init>(Landroidx/compose/animation/core/Animatable;Lkotlin/coroutines/Continuation;)V\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2;-><init>(Lkotlin/jvm/functions/Function6;ZZFJLandroidx/compose/animation/core/Animatable;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2;-><init>(Lkotlin/jvm/functions/Function6;ZZFJLandroidx/compose/animation/core/Animatable;)V\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2$1;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2$1;-><init>(Landroidx/compose/animation/core/Animatable;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$2$1;-><init>(Landroidx/compose/animation/core/Animatable;)V\nLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$nestedScrollConnection$1$1;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$nestedScrollConnection$1$1;-><init>(Landroidx/compose/foundation/gestures/Orientation;Lkotlinx/coroutines/flow/MutableSharedFlow;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$drawScrollbar$2$nestedScrollConnection$1$1;-><init>(Landroidx/compose/foundation/gestures/Orientation;Lkotlinx/coroutines/flow/MutableSharedFlow;)V\nLtachiyomi/presentation/core/util/ScrollbarKt$onDrawScrollbar$1;\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$onDrawScrollbar$1;-><init>(ZJJJLkotlin/jvm/functions/Function0;)V\nPLtachiyomi/presentation/core/util/ScrollbarKt$onDrawScrollbar$1;-><init>(ZJJJLkotlin/jvm/functions/Function0;)V\nHSPLtachiyomi/presentation/core/util/ScrollbarKt$onDrawScrollbar$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nHPLtachiyomi/presentation/core/util/ScrollbarKt$onDrawScrollbar$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/widget/TachiyomiWidgetManager;\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager;-><init>(Ltachiyomi/domain/updates/interactor/GetUpdates;Leu/kanade/tachiyomi/core/security/SecurityPreferences;)V\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager;-><init>(Ltachiyomi/domain/updates/interactor/GetUpdates;Leu/kanade/tachiyomi/core/security/SecurityPreferences;)V\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager;->init(Landroid/content/Context;Landroidx/lifecycle/LifecycleCoroutineScopeImpl;)V\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager;->init(Landroid/content/Context;Landroidx/lifecycle/LifecycleCoroutineScopeImpl;)V\nLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;-><init>(Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;-><init>(Lkotlin/coroutines/Continuation;)V\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;-><init>(Landroid/content/Context;Lkotlin/coroutines/Continuation;)V\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\nHSPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/presentation/widget/TachiyomiWidgetManager$init$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/presentation/widget/UpdatesGridGlanceWidget;\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget;-><clinit>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget;-><clinit>()V\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget;-><init>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget;-><init>()V\nLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$Companion;\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$Companion;-><init>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$Companion;-><init>()V\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$Companion;-><init>(I)V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$Companion;-><init>(I)V\nLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$1;\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$1;-><clinit>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$1;-><init>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$1;-><init>()V\nLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$2;\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$2;-><clinit>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$2;-><init>()V\nPLtachiyomi/presentation/widget/UpdatesGridGlanceWidget$special$$inlined$injectLazy$2;-><init>()V\nLtachiyomi/source/local/LocalSource;\nHSPLtachiyomi/source/local/LocalSource;-><clinit>()V\nPLtachiyomi/source/local/LocalSource;-><clinit>()V\nHSPLtachiyomi/source/local/LocalSource;-><init>(Landroid/content/Context;Ltachiyomi/source/local/io/LocalSourceFileSystem;Ltachiyomi/source/local/image/LocalCoverManager;)V\nPLtachiyomi/source/local/LocalSource;-><init>(Landroid/content/Context;Ltachiyomi/source/local/io/LocalSourceFileSystem;Ltachiyomi/source/local/image/LocalCoverManager;)V\nLtachiyomi/source/local/LocalSource$$ExternalSyntheticLambda0;\nHSPLtachiyomi/source/local/LocalSource$$ExternalSyntheticLambda0;-><init>(Lkotlin/jvm/functions/Function2;I)V\nPLtachiyomi/source/local/LocalSource$$ExternalSyntheticLambda0;-><init>(Lkotlin/jvm/functions/Function2;I)V\nLtachiyomi/source/local/LocalSource$Companion;\nHSPLtachiyomi/source/local/LocalSource$Companion;-><init>()V\nPLtachiyomi/source/local/LocalSource$Companion;-><init>()V\nHSPLtachiyomi/source/local/LocalSource$Companion;-><init>(I)V\nPLtachiyomi/source/local/LocalSource$Companion;-><init>(I)V\nLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$1;\nHSPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$1;-><clinit>()V\nPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$1;-><clinit>()V\nHSPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$1;-><init>()V\nPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$1;-><init>()V\nLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$2;\nHSPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$2;-><clinit>()V\nPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$2;-><clinit>()V\nHSPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$2;-><init>()V\nPLtachiyomi/source/local/LocalSource$special$$inlined$injectLazy$2;-><init>()V\nLtachiyomi/source/local/filter/OrderBy;\nHSPLtachiyomi/source/local/filter/OrderBy;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/source/model/Filter$Sort$Selection;)V\nPLtachiyomi/source/local/filter/OrderBy;-><init>(Landroid/content/Context;Leu/kanade/tachiyomi/source/model/Filter$Sort$Selection;)V\nLtachiyomi/source/local/filter/OrderBy$Latest;\nHSPLtachiyomi/source/local/filter/OrderBy$Latest;-><init>(Landroid/content/Context;)V\nPLtachiyomi/source/local/filter/OrderBy$Latest;-><init>(Landroid/content/Context;)V\nLtachiyomi/source/local/filter/OrderBy$Popular;\nHSPLtachiyomi/source/local/filter/OrderBy$Popular;-><init>(Landroid/content/Context;)V\nPLtachiyomi/source/local/filter/OrderBy$Popular;-><init>(Landroid/content/Context;)V\nLtachiyomi/source/local/image/LocalCoverManager;\nHSPLtachiyomi/source/local/image/LocalCoverManager;-><init>(Landroid/app/Application;Ltachiyomi/source/local/io/LocalSourceFileSystem;)V\nPLtachiyomi/source/local/image/LocalCoverManager;-><init>(Landroid/app/Application;Ltachiyomi/source/local/io/LocalSourceFileSystem;)V\nLtachiyomi/source/local/io/Format$UnknownFormatException;\nLtachiyomi/source/local/io/LocalSourceFileSystem;\nHSPLtachiyomi/source/local/io/LocalSourceFileSystem;-><init>(Landroid/app/Application;)V\nPLtachiyomi/source/local/io/LocalSourceFileSystem;-><init>(Landroid/app/Application;)V\nLtachiyomi/view/HistoryViewQueries;\nHSPLtachiyomi/view/HistoryViewQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;)V\nPLtachiyomi/view/HistoryViewQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/History$Adapter;)V\nHSPLtachiyomi/view/HistoryViewQueries;->access$getDriver(Ltachiyomi/view/HistoryViewQueries;)Lapp/cash/sqldelight/db/SqlDriver;\nPLtachiyomi/view/HistoryViewQueries;->access$getDriver(Ltachiyomi/view/HistoryViewQueries;)Lapp/cash/sqldelight/db/SqlDriver;\nHSPLtachiyomi/view/HistoryViewQueries;->history(Ljava/lang/String;Lkotlin/jvm/functions/Function11;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/view/HistoryViewQueries;->history(Ljava/lang/String;Lkotlin/jvm/functions/Function11;)Lapp/cash/sqldelight/Query;\nLtachiyomi/view/HistoryViewQueries$HistoryQuery;\nHSPLtachiyomi/view/HistoryViewQueries$HistoryQuery;-><init>(Ltachiyomi/view/HistoryViewQueries;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V\nPLtachiyomi/view/HistoryViewQueries$HistoryQuery;-><init>(Ltachiyomi/view/HistoryViewQueries;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V\nHSPLtachiyomi/view/HistoryViewQueries$HistoryQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nPLtachiyomi/view/HistoryViewQueries$HistoryQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nHSPLtachiyomi/view/HistoryViewQueries$HistoryQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLtachiyomi/view/HistoryViewQueries$HistoryQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nHSPLtachiyomi/view/HistoryViewQueries$HistoryQuery;->getQuery()Ljava/lang/String;\nPLtachiyomi/view/HistoryViewQueries$HistoryQuery;->getQuery()Ljava/lang/String;\nLtachiyomi/view/HistoryViewQueries$HistoryQuery$execute$1;\nHSPLtachiyomi/view/HistoryViewQueries$HistoryQuery$execute$1;-><init>(Ltachiyomi/view/HistoryViewQueries$HistoryQuery;)V\nPLtachiyomi/view/HistoryViewQueries$HistoryQuery$execute$1;-><init>(Ltachiyomi/view/HistoryViewQueries$HistoryQuery;)V\nHSPLtachiyomi/view/HistoryViewQueries$HistoryQuery$execute$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/view/HistoryViewQueries$HistoryQuery$execute$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/view/HistoryViewQueries$history$1;\nHSPLtachiyomi/view/HistoryViewQueries$history$1;-><init>(Lkotlin/jvm/functions/Function11;Ltachiyomi/view/HistoryViewQueries;)V\nPLtachiyomi/view/HistoryViewQueries$history$1;-><init>(Lkotlin/jvm/functions/Function11;Ltachiyomi/view/HistoryViewQueries;)V\nLtachiyomi/view/LibraryViewQueries;\nHSPLtachiyomi/view/LibraryViewQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/Mangas$Adapter;)V\nPLtachiyomi/view/LibraryViewQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;Ltachiyomi/data/Mangas$Adapter;)V\nHSPLtachiyomi/view/LibraryViewQueries;->library(Lkotlin/jvm/functions/FunctionN;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/view/LibraryViewQueries;->library(Lkotlin/jvm/functions/FunctionN;)Lapp/cash/sqldelight/Query;\nLtachiyomi/view/LibraryViewQueries$library$1;\nHSPLtachiyomi/view/LibraryViewQueries$library$1;-><init>(Lkotlin/jvm/functions/FunctionN;Ltachiyomi/view/LibraryViewQueries;)V\nPLtachiyomi/view/LibraryViewQueries$library$1;-><init>(Lkotlin/jvm/functions/FunctionN;Ltachiyomi/view/LibraryViewQueries;)V\nLtachiyomi/view/UpdatesViewQueries;\nHSPLtachiyomi/view/UpdatesViewQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nPLtachiyomi/view/UpdatesViewQueries;-><init>(Lapp/cash/sqldelight/db/SqlDriver;)V\nHSPLtachiyomi/view/UpdatesViewQueries;->access$getDriver(Ltachiyomi/view/UpdatesViewQueries;)Lapp/cash/sqldelight/db/SqlDriver;\nPLtachiyomi/view/UpdatesViewQueries;->access$getDriver(Ltachiyomi/view/UpdatesViewQueries;)Lapp/cash/sqldelight/db/SqlDriver;\nHSPLtachiyomi/view/UpdatesViewQueries;->getRecentUpdates(JJLkotlin/jvm/functions/Function14;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/view/UpdatesViewQueries;->getRecentUpdates(JJLkotlin/jvm/functions/Function14;)Lapp/cash/sqldelight/Query;\nHSPLtachiyomi/view/UpdatesViewQueries;->getUpdatesByReadStatus(ZJLkotlin/jvm/functions/Function14;)Lapp/cash/sqldelight/Query;\nPLtachiyomi/view/UpdatesViewQueries;->getUpdatesByReadStatus(ZJLkotlin/jvm/functions/Function14;)Lapp/cash/sqldelight/Query;\nLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;-><init>(Ltachiyomi/view/UpdatesViewQueries;JJLkotlin/jvm/functions/Function1;)V\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;-><init>(Ltachiyomi/view/UpdatesViewQueries;JJLkotlin/jvm/functions/Function1;)V\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->getAfter()J\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->getAfter()J\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->getLimit()J\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;->getLimit()J\nLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery$execute$1;\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery$execute$1;-><init>(Ltachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;)V\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery$execute$1;-><init>(Ltachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery;)V\nHSPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery$execute$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/view/UpdatesViewQueries$GetRecentUpdatesQuery$execute$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;-><init>(Ltachiyomi/view/UpdatesViewQueries;ZJLkotlin/jvm/functions/Function1;)V\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;-><init>(Ltachiyomi/view/UpdatesViewQueries;ZJLkotlin/jvm/functions/Function1;)V\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->addListener(Lapp/cash/sqldelight/coroutines/FlowQuery$asFlow$1$$ExternalSyntheticLambda0;)V\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->execute(Lkotlin/jvm/functions/Function1;)Lapp/cash/sqldelight/db/QueryResult$Value;\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->getAfter()J\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->getAfter()J\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->getRead()Z\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;->getRead()Z\nLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery$execute$1;\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery$execute$1;-><init>(Ltachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;)V\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery$execute$1;-><init>(Ltachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery;)V\nHSPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery$execute$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nPLtachiyomi/view/UpdatesViewQueries$GetUpdatesByReadStatusQuery$execute$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;\nLtachiyomi/view/UpdatesViewQueries$getRecentUpdates$1;\nHSPLtachiyomi/view/UpdatesViewQueries$getRecentUpdates$1;-><init>(Lkotlin/jvm/functions/Function14;)V\nPLtachiyomi/view/UpdatesViewQueries$getRecentUpdates$1;-><init>(Lkotlin/jvm/functions/Function14;)V\nLtachiyomi/view/UpdatesViewQueries$getUpdatesByReadStatus$1;\nHSPLtachiyomi/view/UpdatesViewQueries$getUpdatesByReadStatus$1;-><init>(Lkotlin/jvm/functions/Function14;)V\nPLtachiyomi/view/UpdatesViewQueries$getUpdatesByReadStatus$1;-><init>(Lkotlin/jvm/functions/Function14;)V\nLuy/kohesive/injekt/InjektKt;\nHSPLuy/kohesive/injekt/InjektKt;-><clinit>()V\nPLuy/kohesive/injekt/InjektKt;-><clinit>()V\nHSPLuy/kohesive/injekt/InjektKt;->getInjekt()Luy/kohesive/injekt/api/InjektScope;\nPLuy/kohesive/injekt/InjektKt;->getInjekt()Luy/kohesive/injekt/api/InjektScope;\nLuy/kohesive/injekt/api/FullTypeReference;\nHSPLuy/kohesive/injekt/api/FullTypeReference;-><init>()V\nHPLuy/kohesive/injekt/api/FullTypeReference;-><init>()V\nHSPLuy/kohesive/injekt/api/FullTypeReference;->getType()Ljava/lang/reflect/Type;\nPLuy/kohesive/injekt/api/FullTypeReference;->getType()Ljava/lang/reflect/Type;\nLuy/kohesive/injekt/api/InjektFactory;\nLuy/kohesive/injekt/api/InjektModule;\nLuy/kohesive/injekt/api/InjektModule$DefaultImpls;\nHSPLuy/kohesive/injekt/api/InjektModule$DefaultImpls;->registerWith(Luy/kohesive/injekt/api/InjektModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLuy/kohesive/injekt/api/InjektModule$DefaultImpls;->registerWith(Luy/kohesive/injekt/api/InjektModule;Luy/kohesive/injekt/api/InjektRegistrar;)V\nLuy/kohesive/injekt/api/InjektRegistrar;\nLuy/kohesive/injekt/api/InjektRegistrar$DefaultImpls;\nHSPLuy/kohesive/injekt/api/InjektRegistrar$DefaultImpls;->importModule(Luy/kohesive/injekt/api/InjektRegistrar;Luy/kohesive/injekt/api/InjektModule;)V\nPLuy/kohesive/injekt/api/InjektRegistrar$DefaultImpls;->importModule(Luy/kohesive/injekt/api/InjektRegistrar;Luy/kohesive/injekt/api/InjektModule;)V\nLuy/kohesive/injekt/api/InjektRegistry;\nLuy/kohesive/injekt/api/InjektScope;\nHSPLuy/kohesive/injekt/api/InjektScope;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nPLuy/kohesive/injekt/api/InjektScope;-><init>(Luy/kohesive/injekt/api/InjektRegistrar;)V\nHSPLuy/kohesive/injekt/api/InjektScope;->getInstance(Ljava/lang/reflect/Type;)Ljava/lang/Object;\nPLuy/kohesive/injekt/api/InjektScope;->getInstance(Ljava/lang/reflect/Type;)Ljava/lang/Object;\nHSPLuy/kohesive/injekt/api/InjektScope;->importModule(Luy/kohesive/injekt/api/InjektModule;)V\nPLuy/kohesive/injekt/api/InjektScope;->importModule(Luy/kohesive/injekt/api/InjektModule;)V\nLuy/kohesive/injekt/api/TypeReference;\nLuy/kohesive/injekt/registry/default/DefaultRegistrar;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;-><init>()V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;-><init>()V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->access$getExistingValues$p(Luy/kohesive/injekt/registry/default/DefaultRegistrar;)Ljava/util/concurrent/ConcurrentHashMap;\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->access$getExistingValues$p(Luy/kohesive/injekt/registry/default/DefaultRegistrar;)Ljava/util/concurrent/ConcurrentHashMap;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->access$getNOKEY$p(Luy/kohesive/injekt/registry/default/DefaultRegistrar;)Luy/kohesive/injekt/registry/default/DefaultRegistrar$NOKEY$1;\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->access$getNOKEY$p(Luy/kohesive/injekt/registry/default/DefaultRegistrar;)Luy/kohesive/injekt/registry/default/DefaultRegistrar$NOKEY$1;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->addFactory(Luy/kohesive/injekt/api/TypeReference;Lkotlin/jvm/functions/Function0;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->addFactory(Luy/kohesive/injekt/api/TypeReference;Lkotlin/jvm/functions/Function0;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->addSingleton(Luy/kohesive/injekt/api/TypeReference;Ljava/lang/Object;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->addSingleton(Luy/kohesive/injekt/api/TypeReference;Ljava/lang/Object;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->addSingletonFactory(Luy/kohesive/injekt/api/TypeReference;Lkotlin/jvm/functions/Function0;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->addSingletonFactory(Luy/kohesive/injekt/api/TypeReference;Lkotlin/jvm/functions/Function0;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->getInstance(Ljava/lang/reflect/Type;)Ljava/lang/Object;\nHPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->getInstance(Ljava/lang/reflect/Type;)Ljava/lang/Object;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->importModule(Luy/kohesive/injekt/api/InjektModule;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar;->importModule(Luy/kohesive/injekt/api/InjektModule;)V\nLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;-><init>(Ljava/lang/reflect/Type;Ljava/lang/Object;)V\nHPLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;-><init>(Ljava/lang/reflect/Type;Ljava/lang/Object;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;->equals(Ljava/lang/Object;)Z\nHPLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;->equals(Ljava/lang/Object;)Z\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;->hashCode()I\nHPLuy/kohesive/injekt/registry/default/DefaultRegistrar$Instance;->hashCode()I\nLuy/kohesive/injekt/registry/default/DefaultRegistrar$NOKEY$1;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$NOKEY$1;-><init>()V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$NOKEY$1;-><init>()V\nLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingleton$1;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingleton$1;-><init>(Ljava/lang/Object;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingleton$1;-><init>(Ljava/lang/Object;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingleton$1;->invoke()Ljava/lang/Object;\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingleton$1;->invoke()Ljava/lang/Object;\nLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;-><init>(Luy/kohesive/injekt/registry/default/DefaultRegistrar;Luy/kohesive/injekt/api/TypeReference;Lkotlin/jvm/functions/Function0;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;-><init>(Luy/kohesive/injekt/registry/default/DefaultRegistrar;Luy/kohesive/injekt/api/TypeReference;Lkotlin/jvm/functions/Function0;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;->invoke()Ljava/lang/Object;\nHPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;->invoke()Ljava/lang/Object;\nLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1;-><init>(Luy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;)V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1;-><init>(Luy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1;)V\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1;->invoke()Ljava/lang/Object;\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1;->invoke()Ljava/lang/Object;\nLuy/kohesive/injekt/registry/default/DefaultRegistrar$threadedValues$1;\nHSPLuy/kohesive/injekt/registry/default/DefaultRegistrar$threadedValues$1;-><init>()V\nPLuy/kohesive/injekt/registry/default/DefaultRegistrar$threadedValues$1;-><init>()V"
  },
  {
    "path": "app/src/main/java/eu/kanade/core/preference/CheckboxState.kt",
    "content": "package eu.kanade.core.preference\n\nimport androidx.compose.ui.state.ToggleableState\nimport tachiyomi.core.common.preference.CheckboxState\n\nfun <T> CheckboxState.TriState<T>.asToggleableState() = when (this) {\n    is CheckboxState.TriState.Exclude -> ToggleableState.Indeterminate\n    is CheckboxState.TriState.Include -> ToggleableState.On\n    is CheckboxState.TriState.None -> ToggleableState.Off\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/core/preference/PreferenceMutableState.kt",
    "content": "package eu.kanade.core.preference\n\nimport androidx.compose.runtime.MutableState\nimport androidx.compose.runtime.mutableStateOf\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport tachiyomi.core.common.preference.Preference\n\nclass PreferenceMutableState<T>(\n    private val preference: Preference<T>,\n    scope: CoroutineScope,\n) : MutableState<T> {\n\n    private val state = mutableStateOf(preference.get())\n\n    init {\n        preference.changes()\n            .onEach { state.value = it }\n            .launchIn(scope)\n    }\n\n    override var value: T\n        get() = state.value\n        set(value) {\n            preference.set(value)\n        }\n\n    override fun component1(): T {\n        return state.value\n    }\n\n    override fun component2(): (T) -> Unit {\n        return preference::set\n    }\n}\n\nfun <T> Preference<T>.asState(scope: CoroutineScope) = PreferenceMutableState(this, scope)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/core/util/CollectionUtils.kt",
    "content": "package eu.kanade.core.util\n\nimport androidx.compose.ui.util.fastFilter\nimport androidx.compose.ui.util.fastForEach\nimport kotlin.contracts.ExperimentalContracts\nimport kotlin.contracts.contract\n\nfun <T : R, R : Any> List<T>.insertSeparators(\n    generator: (before: T?, after: T?) -> R?,\n): List<R> {\n    if (isEmpty()) return emptyList()\n    val newList = mutableListOf<R>()\n    for (i in -1..lastIndex) {\n        val before = getOrNull(i)\n        before?.let(newList::add)\n        val after = getOrNull(i + 1)\n        val separator = generator.invoke(before, after)\n        separator?.let(newList::add)\n    }\n    return newList\n}\n\n/**\n * Similar to [eu.kanade.core.util.insertSeparators] but iterates from last to first element\n */\nfun <T : R, R : Any> List<T>.insertSeparatorsReversed(\n    generator: (before: T?, after: T?) -> R?,\n): List<R> {\n    if (isEmpty()) return emptyList()\n    val newList = mutableListOf<R>()\n    for (i in size downTo 0) {\n        val after = getOrNull(i)\n        after?.let(newList::add)\n        val before = getOrNull(i - 1)\n        val separator = generator.invoke(before, after)\n        separator?.let(newList::add)\n    }\n    return newList.asReversed()\n}\n\nfun <E> HashSet<E>.addOrRemove(value: E, shouldAdd: Boolean) {\n    if (shouldAdd) {\n        add(value)\n    } else {\n        remove(value)\n    }\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n *\n * **Do not use for collections that come from public APIs**, since they may not support random\n * access in an efficient way, and this method may actually be a lot slower. Only use for\n * collections that are created by code we control and are known to support random access.\n */\n@OptIn(ExperimentalContracts::class)\ninline fun <T> List<T>.fastFilterNot(predicate: (T) -> Boolean): List<T> {\n    contract { callsInPlace(predicate) }\n    return fastFilter { !predicate(it) }\n}\n\n/**\n * Splits the original collection into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n *\n * **Do not use for collections that come from public APIs**, since they may not support random\n * access in an efficient way, and this method may actually be a lot slower. Only use for\n * collections that are created by code we control and are known to support random access.\n */\n@OptIn(ExperimentalContracts::class)\ninline fun <T> List<T>.fastPartition(predicate: (T) -> Boolean): Pair<List<T>, List<T>> {\n    contract { callsInPlace(predicate) }\n    val first = ArrayList<T>()\n    val second = ArrayList<T>()\n    fastForEach {\n        if (predicate(it)) {\n            first.add(it)\n        } else {\n            second.add(it)\n        }\n    }\n    return Pair(first, second)\n}\n\n/**\n * Returns the number of entries not matching the given [predicate].\n *\n * **Do not use for collections that come from public APIs**, since they may not support random\n * access in an efficient way, and this method may actually be a lot slower. Only use for\n * collections that are created by code we control and are known to support random access.\n */\n@OptIn(ExperimentalContracts::class)\ninline fun <T> List<T>.fastCountNot(predicate: (T) -> Boolean): Int {\n    contract { callsInPlace(predicate) }\n    var count = size\n    fastForEach { if (predicate(it)) --count }\n    return count\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/core/util/SourceUtil.kt",
    "content": "package eu.kanade.core.util\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.remember\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n@Composable\nfun ifSourcesLoaded(): Boolean {\n    return remember { Injekt.get<SourceManager>().isInitialized }.collectAsState().value\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/DomainModule.kt",
    "content": "package eu.kanade.domain\n\nimport eu.kanade.domain.chapter.interactor.GetAvailableScanlators\nimport eu.kanade.domain.chapter.interactor.SetReadStatus\nimport eu.kanade.domain.chapter.interactor.SyncChaptersWithSource\nimport eu.kanade.domain.download.interactor.DeleteDownload\nimport eu.kanade.domain.extension.interactor.GetExtensionLanguages\nimport eu.kanade.domain.extension.interactor.GetExtensionSources\nimport eu.kanade.domain.extension.interactor.GetExtensionsByType\nimport eu.kanade.domain.extension.interactor.TrustExtension\nimport eu.kanade.domain.manga.interactor.GetExcludedScanlators\nimport eu.kanade.domain.manga.interactor.SetExcludedScanlators\nimport eu.kanade.domain.manga.interactor.SetMangaViewerFlags\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.source.interactor.GetEnabledSources\nimport eu.kanade.domain.source.interactor.GetIncognitoState\nimport eu.kanade.domain.source.interactor.GetLanguagesWithSources\nimport eu.kanade.domain.source.interactor.GetSourcesWithFavoriteCount\nimport eu.kanade.domain.source.interactor.SetMigrateSorting\nimport eu.kanade.domain.source.interactor.ToggleIncognito\nimport eu.kanade.domain.source.interactor.ToggleLanguage\nimport eu.kanade.domain.source.interactor.ToggleSource\nimport eu.kanade.domain.source.interactor.ToggleSourcePin\nimport eu.kanade.domain.track.interactor.AddTracks\nimport eu.kanade.domain.track.interactor.RefreshTracks\nimport eu.kanade.domain.track.interactor.SyncChapterProgressWithTrack\nimport eu.kanade.domain.track.interactor.TrackChapter\nimport mihon.data.repository.ExtensionRepoRepositoryImpl\nimport mihon.domain.chapter.interactor.FilterChaptersForDownload\nimport mihon.domain.extensionrepo.interactor.CreateExtensionRepo\nimport mihon.domain.extensionrepo.interactor.DeleteExtensionRepo\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepo\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepoCount\nimport mihon.domain.extensionrepo.interactor.ReplaceExtensionRepo\nimport mihon.domain.extensionrepo.interactor.UpdateExtensionRepo\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\nimport mihon.domain.extensionrepo.service.ExtensionRepoService\nimport mihon.domain.migration.usecases.MigrateMangaUseCase\nimport mihon.domain.upcoming.interactor.GetUpcomingManga\nimport tachiyomi.data.category.CategoryRepositoryImpl\nimport tachiyomi.data.chapter.ChapterRepositoryImpl\nimport tachiyomi.data.history.HistoryRepositoryImpl\nimport tachiyomi.data.manga.MangaRepositoryImpl\nimport tachiyomi.data.release.ReleaseServiceImpl\nimport tachiyomi.data.source.SourceRepositoryImpl\nimport tachiyomi.data.source.StubSourceRepositoryImpl\nimport tachiyomi.data.track.TrackRepositoryImpl\nimport tachiyomi.data.updates.UpdatesRepositoryImpl\nimport tachiyomi.domain.category.interactor.CreateCategoryWithName\nimport tachiyomi.domain.category.interactor.DeleteCategory\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.RenameCategory\nimport tachiyomi.domain.category.interactor.ReorderCategory\nimport tachiyomi.domain.category.interactor.ResetCategoryFlags\nimport tachiyomi.domain.category.interactor.SetDisplayMode\nimport tachiyomi.domain.category.interactor.SetMangaCategories\nimport tachiyomi.domain.category.interactor.SetSortModeForCategory\nimport tachiyomi.domain.category.interactor.UpdateCategory\nimport tachiyomi.domain.category.repository.CategoryRepository\nimport tachiyomi.domain.chapter.interactor.GetBookmarkedChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.GetChapter\nimport tachiyomi.domain.chapter.interactor.GetChapterByUrlAndMangaId\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.SetMangaDefaultChapterFlags\nimport tachiyomi.domain.chapter.interactor.ShouldUpdateDbChapter\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.repository.ChapterRepository\nimport tachiyomi.domain.history.interactor.GetHistory\nimport tachiyomi.domain.history.interactor.GetNextChapters\nimport tachiyomi.domain.history.interactor.GetTotalReadDuration\nimport tachiyomi.domain.history.interactor.RemoveHistory\nimport tachiyomi.domain.history.interactor.UpsertHistory\nimport tachiyomi.domain.history.repository.HistoryRepository\nimport tachiyomi.domain.manga.interactor.FetchInterval\nimport tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga\nimport tachiyomi.domain.manga.interactor.GetFavorites\nimport tachiyomi.domain.manga.interactor.GetLibraryManga\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.interactor.GetMangaByUrlAndSourceId\nimport tachiyomi.domain.manga.interactor.GetMangaWithChapters\nimport tachiyomi.domain.manga.interactor.NetworkToLocalManga\nimport tachiyomi.domain.manga.interactor.ResetViewerFlags\nimport tachiyomi.domain.manga.interactor.SetMangaChapterFlags\nimport tachiyomi.domain.manga.interactor.UpdateMangaNotes\nimport tachiyomi.domain.manga.repository.MangaRepository\nimport tachiyomi.domain.release.interactor.GetApplicationRelease\nimport tachiyomi.domain.release.service.ReleaseService\nimport tachiyomi.domain.source.interactor.GetRemoteManga\nimport tachiyomi.domain.source.interactor.GetSourcesWithNonLibraryManga\nimport tachiyomi.domain.source.repository.SourceRepository\nimport tachiyomi.domain.source.repository.StubSourceRepository\nimport tachiyomi.domain.track.interactor.DeleteTrack\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.interactor.GetTracksPerManga\nimport tachiyomi.domain.track.interactor.InsertTrack\nimport tachiyomi.domain.track.repository.TrackRepository\nimport tachiyomi.domain.updates.interactor.GetUpdates\nimport tachiyomi.domain.updates.repository.UpdatesRepository\nimport uy.kohesive.injekt.api.InjektModule\nimport uy.kohesive.injekt.api.InjektRegistrar\nimport uy.kohesive.injekt.api.addFactory\nimport uy.kohesive.injekt.api.addSingletonFactory\nimport uy.kohesive.injekt.api.get\n\nclass DomainModule : InjektModule {\n\n    override fun InjektRegistrar.registerInjectables() {\n        addSingletonFactory<CategoryRepository> { CategoryRepositoryImpl(get()) }\n        addFactory { GetCategories(get()) }\n        addFactory { ResetCategoryFlags(get(), get()) }\n        addFactory { SetDisplayMode(get()) }\n        addFactory { SetSortModeForCategory(get(), get()) }\n        addFactory { CreateCategoryWithName(get(), get()) }\n        addFactory { RenameCategory(get()) }\n        addFactory { ReorderCategory(get()) }\n        addFactory { UpdateCategory(get()) }\n        addFactory { DeleteCategory(get(), get(), get()) }\n\n        addSingletonFactory<MangaRepository> { MangaRepositoryImpl(get()) }\n        addFactory { GetDuplicateLibraryManga(get()) }\n        addFactory { GetFavorites(get()) }\n        addFactory { GetLibraryManga(get()) }\n        addFactory { GetMangaWithChapters(get(), get()) }\n        addFactory { GetMangaByUrlAndSourceId(get()) }\n        addFactory { GetManga(get()) }\n        addFactory { GetNextChapters(get(), get(), get()) }\n        addFactory { GetUpcomingManga(get()) }\n        addFactory { ResetViewerFlags(get()) }\n        addFactory { SetMangaChapterFlags(get()) }\n        addFactory { FetchInterval(get()) }\n        addFactory { SetMangaDefaultChapterFlags(get(), get(), get()) }\n        addFactory { SetMangaViewerFlags(get()) }\n        addFactory { NetworkToLocalManga(get()) }\n        addFactory { UpdateManga(get(), get()) }\n        addFactory { UpdateMangaNotes(get()) }\n        addFactory { SetMangaCategories(get()) }\n        addFactory { GetExcludedScanlators(get()) }\n        addFactory { SetExcludedScanlators(get()) }\n        addFactory {\n            MigrateMangaUseCase(\n                get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(),\n            )\n        }\n\n        addSingletonFactory<ReleaseService> { ReleaseServiceImpl(get(), get()) }\n        addFactory { GetApplicationRelease(get(), get()) }\n\n        addSingletonFactory<TrackRepository> { TrackRepositoryImpl(get()) }\n        addFactory { TrackChapter(get(), get(), get(), get()) }\n        addFactory { AddTracks(get(), get(), get(), get()) }\n        addFactory { RefreshTracks(get(), get(), get(), get()) }\n        addFactory { DeleteTrack(get()) }\n        addFactory { GetTracksPerManga(get()) }\n        addFactory { GetTracks(get()) }\n        addFactory { InsertTrack(get()) }\n        addFactory { SyncChapterProgressWithTrack(get(), get(), get()) }\n\n        addSingletonFactory<ChapterRepository> { ChapterRepositoryImpl(get()) }\n        addFactory { GetChapter(get()) }\n        addFactory { GetChaptersByMangaId(get()) }\n        addFactory { GetBookmarkedChaptersByMangaId(get()) }\n        addFactory { GetChapterByUrlAndMangaId(get()) }\n        addFactory { UpdateChapter(get()) }\n        addFactory { SetReadStatus(get(), get(), get(), get()) }\n        addFactory { ShouldUpdateDbChapter() }\n        addFactory { SyncChaptersWithSource(get(), get(), get(), get(), get(), get(), get(), get(), get()) }\n        addFactory { GetAvailableScanlators(get()) }\n        addFactory { FilterChaptersForDownload(get(), get(), get()) }\n\n        addSingletonFactory<HistoryRepository> { HistoryRepositoryImpl(get()) }\n        addFactory { GetHistory(get()) }\n        addFactory { UpsertHistory(get()) }\n        addFactory { RemoveHistory(get()) }\n        addFactory { GetTotalReadDuration(get()) }\n\n        addFactory { DeleteDownload(get(), get()) }\n\n        addFactory { GetExtensionsByType(get(), get()) }\n        addFactory { GetExtensionSources(get()) }\n        addFactory { GetExtensionLanguages(get(), get()) }\n\n        addSingletonFactory<UpdatesRepository> { UpdatesRepositoryImpl(get()) }\n        addFactory { GetUpdates(get()) }\n\n        addSingletonFactory<SourceRepository> { SourceRepositoryImpl(get(), get()) }\n        addSingletonFactory<StubSourceRepository> { StubSourceRepositoryImpl(get()) }\n        addFactory { GetEnabledSources(get(), get()) }\n        addFactory { GetLanguagesWithSources(get(), get()) }\n        addFactory { GetRemoteManga(get()) }\n        addFactory { GetSourcesWithFavoriteCount(get(), get()) }\n        addFactory { GetSourcesWithNonLibraryManga(get()) }\n        addFactory { SetMigrateSorting(get()) }\n        addFactory { ToggleLanguage(get()) }\n        addFactory { ToggleSource(get()) }\n        addFactory { ToggleSourcePin(get()) }\n        addFactory { TrustExtension(get(), get()) }\n\n        addSingletonFactory<ExtensionRepoRepository> { ExtensionRepoRepositoryImpl(get()) }\n        addFactory { ExtensionRepoService(get(), get()) }\n        addFactory { GetExtensionRepo(get()) }\n        addFactory { GetExtensionRepoCount(get()) }\n        addFactory { CreateExtensionRepo(get(), get()) }\n        addFactory { DeleteExtensionRepo(get()) }\n        addFactory { ReplaceExtensionRepo(get()) }\n        addFactory { UpdateExtensionRepo(get(), get()) }\n        addFactory { ToggleIncognito(get()) }\n        addFactory { GetIncognitoState(get(), get(), get()) }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/base/BasePreferences.kt",
    "content": "package eu.kanade.domain.base\n\nimport android.content.Context\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.util.system.GLUtil\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.i18n.MR\n\nclass BasePreferences(\n    val context: Context,\n    preferenceStore: PreferenceStore,\n) {\n\n    val downloadedOnly: Preference<Boolean> = preferenceStore.getBoolean(\n        Preference.appStateKey(\"pref_downloaded_only\"),\n        false,\n    )\n\n    val incognitoMode: Preference<Boolean> = preferenceStore.getBoolean(Preference.appStateKey(\"incognito_mode\"), false)\n\n    val extensionInstaller: ExtensionInstallerPreference = ExtensionInstallerPreference(context, preferenceStore)\n\n    val shownOnboardingFlow: Preference<Boolean> = preferenceStore.getBoolean(\n        Preference.appStateKey(\"onboarding_complete\"),\n        false,\n    )\n\n    enum class ExtensionInstaller(val titleRes: StringResource, val requiresSystemPermission: Boolean) {\n        LEGACY(MR.strings.ext_installer_legacy, true),\n        PACKAGEINSTALLER(MR.strings.ext_installer_packageinstaller, true),\n        SHIZUKU(MR.strings.ext_installer_shizuku, false),\n        PRIVATE(MR.strings.ext_installer_private, false),\n    }\n\n    val displayProfile: Preference<String> = preferenceStore.getString(\"pref_display_profile_key\", \"\")\n\n    val hardwareBitmapThreshold: Preference<Int> = preferenceStore.getInt(\n        \"pref_hardware_bitmap_threshold\",\n        GLUtil.SAFE_TEXTURE_LIMIT,\n    )\n\n    val alwaysDecodeLongStripWithSSIV: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_always_decode_long_strip_with_ssiv\",\n        false,\n    )\n\n    val installationId: Preference<String> = preferenceStore.getString(Preference.appStateKey(\"installation_id\"), \"\")\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/base/ExtensionInstallerPreference.kt",
    "content": "package eu.kanade.domain.base\n\nimport android.content.Context\nimport eu.kanade.domain.base.BasePreferences.ExtensionInstaller\nimport eu.kanade.tachiyomi.util.system.hasMiuiPackageInstaller\nimport eu.kanade.tachiyomi.util.system.isShizukuInstalled\nimport kotlinx.coroutines.CoroutineScope\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.getEnum\n\nclass ExtensionInstallerPreference(\n    private val context: Context,\n    preferenceStore: PreferenceStore,\n) : Preference<ExtensionInstaller> {\n\n    private val basePref = preferenceStore.getEnum(key(), defaultValue())\n\n    override fun key() = \"extension_installer\"\n\n    val entries get() = ExtensionInstaller.entries.run {\n        if (context.hasMiuiPackageInstaller) {\n            filter { it != ExtensionInstaller.PACKAGEINSTALLER }\n        } else {\n            toList()\n        }\n    }\n\n    override fun defaultValue() = if (context.hasMiuiPackageInstaller) {\n        ExtensionInstaller.LEGACY\n    } else {\n        ExtensionInstaller.PACKAGEINSTALLER\n    }\n\n    private fun check(value: ExtensionInstaller): ExtensionInstaller {\n        when (value) {\n            ExtensionInstaller.PACKAGEINSTALLER -> {\n                if (context.hasMiuiPackageInstaller) return ExtensionInstaller.LEGACY\n            }\n            ExtensionInstaller.SHIZUKU -> {\n                if (!context.isShizukuInstalled) return defaultValue()\n            }\n            else -> {}\n        }\n        return value\n    }\n\n    override fun get(): ExtensionInstaller {\n        val value = basePref.get()\n        val checkedValue = check(value)\n        if (value != checkedValue) {\n            basePref.set(checkedValue)\n        }\n        return checkedValue\n    }\n\n    override fun set(value: ExtensionInstaller) {\n        basePref.set(check(value))\n    }\n\n    override fun isSet() = basePref.isSet()\n\n    override fun delete() = basePref.delete()\n\n    override fun changes() = basePref.changes()\n\n    override fun stateIn(scope: CoroutineScope) = basePref.stateIn(scope)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/chapter/interactor/GetAvailableScanlators.kt",
    "content": "package eu.kanade.domain.chapter.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.map\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass GetAvailableScanlators(\n    private val repository: ChapterRepository,\n) {\n\n    private fun List<String>.cleanupAvailableScanlators(): Set<String> {\n        return mapNotNull { it.ifBlank { null } }.toSet()\n    }\n\n    suspend fun await(mangaId: Long): Set<String> {\n        return repository.getScanlatorsByMangaId(mangaId)\n            .cleanupAvailableScanlators()\n    }\n\n    fun subscribe(mangaId: Long): Flow<Set<String>> {\n        return repository.getScanlatorsByMangaIdAsFlow(mangaId)\n            .map { it.cleanupAvailableScanlators() }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt",
    "content": "package eu.kanade.domain.chapter.interactor\n\nimport eu.kanade.domain.download.interactor.DeleteDownload\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.ChapterUpdate\nimport tachiyomi.domain.chapter.repository.ChapterRepository\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass SetReadStatus(\n    private val downloadPreferences: DownloadPreferences,\n    private val deleteDownload: DeleteDownload,\n    private val mangaRepository: MangaRepository,\n    private val chapterRepository: ChapterRepository,\n) {\n\n    private val mapper = { chapter: Chapter, read: Boolean ->\n        ChapterUpdate(\n            read = read,\n            lastPageRead = if (!read) 0 else null,\n            id = chapter.id,\n        )\n    }\n\n    suspend fun await(read: Boolean, vararg chapters: Chapter): Result = withNonCancellableContext {\n        val chaptersToUpdate = chapters.filter {\n            when (read) {\n                true -> !it.read\n                false -> it.read || it.lastPageRead > 0\n            }\n        }\n        if (chaptersToUpdate.isEmpty()) {\n            return@withNonCancellableContext Result.NoChapters\n        }\n\n        try {\n            chapterRepository.updateAll(\n                chaptersToUpdate.map { mapper(it, read) },\n            )\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            return@withNonCancellableContext Result.InternalError(e)\n        }\n\n        if (read && downloadPreferences.removeAfterMarkedAsRead.get()) {\n            chaptersToUpdate\n                .groupBy { it.mangaId }\n                .forEach { (mangaId, chapters) ->\n                    deleteDownload.awaitAll(\n                        manga = mangaRepository.getMangaById(mangaId),\n                        chapters = chapters.toTypedArray(),\n                    )\n                }\n        }\n\n        Result.Success\n    }\n\n    suspend fun await(mangaId: Long, read: Boolean): Result = withNonCancellableContext {\n        await(\n            read = read,\n            chapters = chapterRepository\n                .getChapterByMangaId(mangaId)\n                .toTypedArray(),\n        )\n    }\n\n    suspend fun await(manga: Manga, read: Boolean) =\n        await(manga.id, read)\n\n    sealed interface Result {\n        data object Success : Result\n        data object NoChapters : Result\n        data class InternalError(val error: Throwable) : Result\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt",
    "content": "package eu.kanade.domain.chapter.interactor\n\nimport eu.kanade.domain.chapter.model.copyFromSChapter\nimport eu.kanade.domain.chapter.model.toSChapter\nimport eu.kanade.domain.manga.interactor.GetExcludedScanlators\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.DownloadProvider\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport tachiyomi.data.chapter.ChapterSanitizer\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.ShouldUpdateDbChapter\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.NoChaptersException\nimport tachiyomi.domain.chapter.model.toChapterUpdate\nimport tachiyomi.domain.chapter.repository.ChapterRepository\nimport tachiyomi.domain.chapter.service.ChapterRecognition\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.source.local.isLocal\nimport java.lang.Long.max\nimport java.time.ZonedDateTime\nimport java.util.TreeSet\n\nclass SyncChaptersWithSource(\n    private val downloadManager: DownloadManager,\n    private val downloadProvider: DownloadProvider,\n    private val chapterRepository: ChapterRepository,\n    private val shouldUpdateDbChapter: ShouldUpdateDbChapter,\n    private val updateManga: UpdateManga,\n    private val updateChapter: UpdateChapter,\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n    private val getExcludedScanlators: GetExcludedScanlators,\n    private val libraryPreferences: LibraryPreferences,\n) {\n\n    /**\n     * Method to synchronize db chapters with source ones\n     *\n     * @param rawSourceChapters the chapters from the source.\n     * @param manga the manga the chapters belong to.\n     * @param source the source the manga belongs to.\n     * @return Newly added chapters\n     */\n    suspend fun await(\n        rawSourceChapters: List<SChapter>,\n        manga: Manga,\n        source: Source,\n        manualFetch: Boolean = false,\n        fetchWindow: Pair<Long, Long> = Pair(0, 0),\n    ): List<Chapter> {\n        if (rawSourceChapters.isEmpty() && !source.isLocal()) {\n            throw NoChaptersException()\n        }\n\n        val now = ZonedDateTime.now()\n        val nowMillis = now.toInstant().toEpochMilli()\n\n        val sourceChapters = rawSourceChapters\n            .distinctBy { it.url }\n            .mapIndexed { i, sChapter ->\n                Chapter.create()\n                    .copyFromSChapter(sChapter)\n                    .copy(name = with(ChapterSanitizer) { sChapter.name.sanitize(manga.title) })\n                    .copy(mangaId = manga.id, sourceOrder = i.toLong())\n            }\n\n        val dbChapters = getChaptersByMangaId.await(manga.id)\n\n        val newChapters = mutableListOf<Chapter>()\n        val updatedChapters = mutableListOf<Chapter>()\n        val removedChapters = dbChapters.filterNot { dbChapter ->\n            sourceChapters.any { sourceChapter ->\n                dbChapter.url == sourceChapter.url\n            }\n        }\n\n        // Used to not set upload date of older chapters\n        // to a higher value than newer chapters\n        var maxSeenUploadDate = 0L\n\n        for (sourceChapter in sourceChapters) {\n            var chapter = sourceChapter\n\n            // Update metadata from source if necessary.\n            if (source is HttpSource) {\n                val sChapter = chapter.toSChapter()\n                source.prepareNewChapter(sChapter, manga.toSManga())\n                chapter = chapter.copyFromSChapter(sChapter)\n            }\n\n            // Recognize chapter number for the chapter.\n            val chapterNumber = ChapterRecognition.parseChapterNumber(manga.title, chapter.name, chapter.chapterNumber)\n            chapter = chapter.copy(chapterNumber = chapterNumber)\n\n            val dbChapter = dbChapters.find { it.url == chapter.url }\n\n            if (dbChapter == null) {\n                val toAddChapter = if (chapter.dateUpload == 0L) {\n                    val altDateUpload = if (maxSeenUploadDate == 0L) nowMillis else maxSeenUploadDate\n                    chapter.copy(dateUpload = altDateUpload)\n                } else {\n                    maxSeenUploadDate = max(maxSeenUploadDate, sourceChapter.dateUpload)\n                    chapter\n                }\n                newChapters.add(toAddChapter)\n            } else {\n                if (shouldUpdateDbChapter.await(dbChapter, chapter)) {\n                    val shouldRenameChapter = downloadProvider.isChapterDirNameChanged(dbChapter, chapter) &&\n                        downloadManager.isChapterDownloaded(\n                            dbChapter.name,\n                            dbChapter.scanlator,\n                            dbChapter.url,\n                            manga.title,\n                            manga.source,\n                        )\n\n                    if (shouldRenameChapter) {\n                        downloadManager.renameChapter(source, manga, dbChapter, chapter)\n                    }\n\n                    var toChangeChapter = dbChapter.copy(\n                        name = chapter.name,\n                        chapterNumber = chapter.chapterNumber,\n                        scanlator = chapter.scanlator,\n                        sourceOrder = chapter.sourceOrder,\n                    )\n\n                    if (chapter.dateUpload != 0L) {\n                        toChangeChapter = toChangeChapter.copy(dateUpload = chapter.dateUpload)\n                    }\n                    updatedChapters.add(toChangeChapter)\n                }\n            }\n        }\n\n        // Return if there's nothing to add, delete, or update to avoid unnecessary db transactions.\n        if (newChapters.isEmpty() && removedChapters.isEmpty() && updatedChapters.isEmpty()) {\n            if (manualFetch || manga.fetchInterval == 0 || manga.nextUpdate < fetchWindow.first) {\n                updateManga.awaitUpdateFetchInterval(\n                    manga,\n                    now,\n                    fetchWindow,\n                )\n            }\n            return emptyList()\n        }\n\n        val changedOrDuplicateReadUrls = mutableSetOf<String>()\n\n        val deletedChapterNumbers = TreeSet<Double>()\n        val deletedReadChapterNumbers = TreeSet<Double>()\n        val deletedBookmarkedChapterNumbers = TreeSet<Double>()\n\n        val readChapterNumbers = dbChapters\n            .asSequence()\n            .filter { it.read && it.isRecognizedNumber }\n            .map { it.chapterNumber }\n            .toSet()\n\n        removedChapters.forEach { chapter ->\n            if (chapter.read) deletedReadChapterNumbers.add(chapter.chapterNumber)\n            if (chapter.bookmark) deletedBookmarkedChapterNumbers.add(chapter.chapterNumber)\n            deletedChapterNumbers.add(chapter.chapterNumber)\n        }\n\n        val deletedChapterNumberDateFetchMap = removedChapters.sortedByDescending { it.dateFetch }\n            .associate { it.chapterNumber to it.dateFetch }\n\n        val markDuplicateAsRead = libraryPreferences.markDuplicateReadChapterAsRead.get()\n            .contains(LibraryPreferences.MARK_DUPLICATE_CHAPTER_READ_NEW)\n\n        // Date fetch is set in such a way that the upper ones will have bigger value than the lower ones\n        // Sources MUST return the chapters from most to less recent, which is common.\n        var itemCount = newChapters.size\n        var updatedToAdd = newChapters.map { toAddItem ->\n            var chapter = toAddItem.copy(dateFetch = nowMillis + itemCount--)\n\n            if (chapter.chapterNumber in readChapterNumbers && markDuplicateAsRead) {\n                changedOrDuplicateReadUrls.add(chapter.url)\n                chapter = chapter.copy(read = true)\n            }\n\n            if (!chapter.isRecognizedNumber || chapter.chapterNumber !in deletedChapterNumbers) return@map chapter\n\n            chapter = chapter.copy(\n                read = chapter.chapterNumber in deletedReadChapterNumbers,\n                bookmark = chapter.chapterNumber in deletedBookmarkedChapterNumbers,\n            )\n\n            // Try to to use the fetch date of the original entry to not pollute 'Updates' tab\n            deletedChapterNumberDateFetchMap[chapter.chapterNumber]?.let {\n                chapter = chapter.copy(dateFetch = it)\n            }\n\n            changedOrDuplicateReadUrls.add(chapter.url)\n\n            chapter\n        }\n\n        if (removedChapters.isNotEmpty()) {\n            val toDeleteIds = removedChapters.map { it.id }\n            chapterRepository.removeChaptersWithIds(toDeleteIds)\n        }\n\n        if (updatedToAdd.isNotEmpty()) {\n            updatedToAdd = chapterRepository.addAll(updatedToAdd)\n        }\n\n        if (updatedChapters.isNotEmpty()) {\n            val chapterUpdates = updatedChapters.map { it.toChapterUpdate() }\n            updateChapter.awaitAll(chapterUpdates)\n        }\n        updateManga.awaitUpdateFetchInterval(manga, now, fetchWindow)\n\n        // Set this manga as updated since chapters were changed\n        // Note that last_update actually represents last time the chapter list changed at all\n        updateManga.awaitUpdateLastUpdate(manga.id)\n\n        val excludedScanlators = getExcludedScanlators.await(manga.id).toHashSet()\n\n        return updatedToAdd.filterNot { it.url in changedOrDuplicateReadUrls || it.scanlator in excludedScanlators }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt",
    "content": "package eu.kanade.domain.chapter.model\n\nimport eu.kanade.tachiyomi.data.database.models.ChapterImpl\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport tachiyomi.domain.chapter.model.Chapter\nimport eu.kanade.tachiyomi.data.database.models.Chapter as DbChapter\n\n// TODO: Remove when all deps are migrated\nfun Chapter.toSChapter(): SChapter {\n    return SChapter.create().also {\n        it.url = url\n        it.name = name\n        it.date_upload = dateUpload\n        it.chapter_number = chapterNumber.toFloat()\n        it.scanlator = scanlator\n    }\n}\n\nfun Chapter.copyFromSChapter(sChapter: SChapter): Chapter {\n    return this.copy(\n        name = sChapter.name,\n        url = sChapter.url,\n        dateUpload = sChapter.date_upload,\n        chapterNumber = sChapter.chapter_number.toDouble(),\n        scanlator = sChapter.scanlator?.ifBlank { null }?.trim(),\n    )\n}\n\nfun Chapter.toDbChapter(): DbChapter = ChapterImpl().also {\n    it.id = id\n    it.manga_id = mangaId\n    it.url = url\n    it.name = name\n    it.scanlator = scanlator\n    it.read = read\n    it.bookmark = bookmark\n    it.last_page_read = lastPageRead.toInt()\n    it.date_fetch = dateFetch\n    it.date_upload = dateUpload\n    it.chapter_number = chapterNumber.toFloat()\n    it.source_order = sourceOrder.toInt()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/chapter/model/ChapterFilter.kt",
    "content": "package eu.kanade.domain.chapter.model\n\nimport eu.kanade.domain.manga.model.downloadedFilter\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.ui.manga.ChapterList\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.service.getChapterSort\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.applyFilter\nimport tachiyomi.source.local.isLocal\n\n/**\n * Applies the view filters to the list of chapters obtained from the database.\n * @return an observable of the list of chapters filtered and sorted.\n */\nfun List<Chapter>.applyFilters(manga: Manga, downloadManager: DownloadManager): List<Chapter> {\n    val isLocalManga = manga.isLocal()\n    val unreadFilter = manga.unreadFilter\n    val downloadedFilter = manga.downloadedFilter\n    val bookmarkedFilter = manga.bookmarkedFilter\n\n    return filter { chapter -> applyFilter(unreadFilter) { !chapter.read } }\n        .filter { chapter -> applyFilter(bookmarkedFilter) { chapter.bookmark } }\n        .filter { chapter ->\n            applyFilter(downloadedFilter) {\n                val downloaded = downloadManager.isChapterDownloaded(\n                    chapter.name,\n                    chapter.scanlator,\n                    chapter.url,\n                    manga.title,\n                    manga.source,\n                )\n                downloaded || isLocalManga\n            }\n        }\n        .sortedWith(getChapterSort(manga))\n}\n\n/**\n * Applies the view filters to the list of chapters obtained from the database.\n * @return an observable of the list of chapters filtered and sorted.\n */\nfun List<ChapterList.Item>.applyFilters(manga: Manga): Sequence<ChapterList.Item> {\n    val isLocalManga = manga.isLocal()\n    val unreadFilter = manga.unreadFilter\n    val downloadedFilter = manga.downloadedFilter\n    val bookmarkedFilter = manga.bookmarkedFilter\n    return asSequence()\n        .filter { (chapter) -> applyFilter(unreadFilter) { !chapter.read } }\n        .filter { (chapter) -> applyFilter(bookmarkedFilter) { chapter.bookmark } }\n        .filter { applyFilter(downloadedFilter) { it.isDownloaded || isLocalManga } }\n        .sortedWith { (chapter1), (chapter2) -> getChapterSort(manga).invoke(chapter1, chapter2) }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/download/interactor/DeleteDownload.kt",
    "content": "package eu.kanade.domain.download.interactor\n\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\n\nclass DeleteDownload(\n    private val sourceManager: SourceManager,\n    private val downloadManager: DownloadManager,\n) {\n\n    suspend fun awaitAll(manga: Manga, vararg chapters: Chapter) = withNonCancellableContext {\n        sourceManager.get(manga.source)?.let { source ->\n            downloadManager.deleteChapters(chapters.toList(), manga, source)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt",
    "content": "package eu.kanade.domain.extension.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\n\nclass GetExtensionLanguages(\n    private val preferences: SourcePreferences,\n    private val extensionManager: ExtensionManager,\n) {\n    fun subscribe(): Flow<List<String>> {\n        return combine(\n            preferences.enabledLanguages.changes(),\n            extensionManager.availableExtensionsFlow,\n        ) { enabledLanguage, availableExtensions ->\n            availableExtensions\n                .flatMap { ext ->\n                    if (ext.sources.isEmpty()) {\n                        listOf(ext.lang)\n                    } else {\n                        ext.sources.map { it.lang }\n                    }\n                }\n                .distinct()\n                .sortedWith(\n                    compareBy<String> { it !in enabledLanguage }.then(LocaleHelper.comparator),\n                )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionSources.kt",
    "content": "package eu.kanade.domain.extension.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.map\n\nclass GetExtensionSources(\n    private val preferences: SourcePreferences,\n) {\n\n    fun subscribe(extension: Extension.Installed): Flow<List<ExtensionSourceItem>> {\n        val isMultiSource = extension.sources.size > 1\n        val isMultiLangSingleSource =\n            isMultiSource && extension.sources.map { it.name }.distinct().size == 1\n\n        return preferences.disabledSources.changes().map { disabledSources ->\n            fun Source.isEnabled() = id.toString() !in disabledSources\n\n            extension.sources\n                .map { source ->\n                    ExtensionSourceItem(\n                        source = source,\n                        enabled = source.isEnabled(),\n                        labelAsName = isMultiSource && !isMultiLangSingleSource,\n                    )\n                }\n        }\n    }\n}\n\ndata class ExtensionSourceItem(\n    val source: Source,\n    val enabled: Boolean,\n    val labelAsName: Boolean,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionsByType.kt",
    "content": "package eu.kanade.domain.extension.interactor\n\nimport eu.kanade.domain.extension.model.Extensions\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\n\nclass GetExtensionsByType(\n    private val preferences: SourcePreferences,\n    private val extensionManager: ExtensionManager,\n) {\n\n    fun subscribe(): Flow<Extensions> {\n        val showNsfwSources = preferences.showNsfwSource.get()\n\n        return combine(\n            preferences.enabledLanguages.changes(),\n            extensionManager.installedExtensionsFlow,\n            extensionManager.untrustedExtensionsFlow,\n            extensionManager.availableExtensionsFlow,\n        ) { enabledLanguages, _installed, _untrusted, _available ->\n            val (updates, installed) = _installed\n                .filter { (showNsfwSources || !it.isNsfw) }\n                .sortedWith(\n                    compareBy<Extension.Installed> { !it.isObsolete }\n                        .thenBy(String.CASE_INSENSITIVE_ORDER) { it.name },\n                )\n                .partition { it.hasUpdate }\n\n            val untrusted = _untrusted\n                .sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.name })\n\n            val available = _available\n                .filter { extension ->\n                    _installed.none { it.pkgName == extension.pkgName } &&\n                        _untrusted.none { it.pkgName == extension.pkgName } &&\n                        (showNsfwSources || !extension.isNsfw)\n                }\n                .flatMap { ext ->\n                    if (ext.sources.isEmpty()) {\n                        return@flatMap if (ext.lang in enabledLanguages) listOf(ext) else emptyList()\n                    }\n                    ext.sources.filter { it.lang in enabledLanguages }\n                        .map {\n                            ext.copy(\n                                name = it.name,\n                                lang = it.lang,\n                                pkgName = \"${ext.pkgName}-${it.id}\",\n                                sources = listOf(it),\n                            )\n                        }\n                }\n                .sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.name })\n\n            Extensions(updates, installed, available, untrusted)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/extension/interactor/TrustExtension.kt",
    "content": "package eu.kanade.domain.extension.interactor\n\nimport android.content.pm.PackageInfo\nimport androidx.core.content.pm.PackageInfoCompat\nimport eu.kanade.domain.source.service.SourcePreferences\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\nimport tachiyomi.core.common.preference.getAndSet\n\nclass TrustExtension(\n    private val extensionRepoRepository: ExtensionRepoRepository,\n    private val preferences: SourcePreferences,\n) {\n\n    suspend fun isTrusted(pkgInfo: PackageInfo, fingerprints: List<String>): Boolean {\n        val trustedFingerprints = extensionRepoRepository.getAll().map { it.signingKeyFingerprint }.toHashSet()\n        val key = \"${pkgInfo.packageName}:${PackageInfoCompat.getLongVersionCode(pkgInfo)}:${fingerprints.last()}\"\n        return trustedFingerprints.any { fingerprints.contains(it) } || key in preferences.trustedExtensions.get()\n    }\n\n    fun trust(pkgName: String, versionCode: Long, signatureHash: String) {\n        preferences.trustedExtensions.getAndSet { exts ->\n            // Remove previously trusted versions\n            val removed = exts.filterNot { it.startsWith(\"$pkgName:\") }.toMutableSet()\n\n            removed.also { it += \"$pkgName:$versionCode:$signatureHash\" }\n        }\n    }\n\n    fun revokeAll() {\n        preferences.trustedExtensions.delete()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/extension/model/Extensions.kt",
    "content": "package eu.kanade.domain.extension.model\n\nimport eu.kanade.tachiyomi.extension.model.Extension\n\ndata class Extensions(\n    val updates: List<Extension.Installed>,\n    val installed: List<Extension.Installed>,\n    val available: List<Extension.Available>,\n    val untrusted: List<Extension.Untrusted>,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/manga/interactor/GetExcludedScanlators.kt",
    "content": "package eu.kanade.domain.manga.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.map\nimport tachiyomi.data.DatabaseHandler\n\nclass GetExcludedScanlators(\n    private val handler: DatabaseHandler,\n) {\n\n    suspend fun await(mangaId: Long): Set<String> {\n        return handler.awaitList {\n            excluded_scanlatorsQueries.getExcludedScanlatorsByMangaId(mangaId)\n        }\n            .toSet()\n    }\n\n    fun subscribe(mangaId: Long): Flow<Set<String>> {\n        return handler.subscribeToList {\n            excluded_scanlatorsQueries.getExcludedScanlatorsByMangaId(mangaId)\n        }\n            .map { it.toSet() }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/manga/interactor/SetExcludedScanlators.kt",
    "content": "package eu.kanade.domain.manga.interactor\n\nimport tachiyomi.data.DatabaseHandler\n\nclass SetExcludedScanlators(\n    private val handler: DatabaseHandler,\n) {\n\n    suspend fun await(mangaId: Long, excludedScanlators: Set<String>) {\n        handler.await(inTransaction = true) {\n            val currentExcluded = handler.awaitList {\n                excluded_scanlatorsQueries.getExcludedScanlatorsByMangaId(mangaId)\n            }.toSet()\n            val toAdd = excludedScanlators.minus(currentExcluded)\n            for (scanlator in toAdd) {\n                excluded_scanlatorsQueries.insert(mangaId, scanlator)\n            }\n            val toRemove = currentExcluded.minus(excludedScanlators)\n            excluded_scanlatorsQueries.remove(mangaId, toRemove)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/manga/interactor/SetMangaViewerFlags.kt",
    "content": "package eu.kanade.domain.manga.interactor\n\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass SetMangaViewerFlags(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun awaitSetReadingMode(id: Long, flag: Long) {\n        val manga = mangaRepository.getMangaById(id)\n        mangaRepository.update(\n            MangaUpdate(\n                id = id,\n                viewerFlags = manga.viewerFlags.setFlag(flag, ReadingMode.MASK.toLong()),\n            ),\n        )\n    }\n\n    suspend fun awaitSetOrientation(id: Long, flag: Long) {\n        val manga = mangaRepository.getMangaById(id)\n        mangaRepository.update(\n            MangaUpdate(\n                id = id,\n                viewerFlags = manga.viewerFlags.setFlag(flag, ReaderOrientation.MASK.toLong()),\n            ),\n        )\n    }\n\n    private fun Long.setFlag(flag: Long, mask: Long): Long {\n        return this and mask.inv() or (flag and mask)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/manga/interactor/UpdateManga.kt",
    "content": "package eu.kanade.domain.manga.interactor\n\nimport eu.kanade.domain.manga.model.hasCustomCover\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.source.model.SManga\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.FetchInterval\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.repository.MangaRepository\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.ZonedDateTime\n\nclass UpdateManga(\n    private val mangaRepository: MangaRepository,\n    private val fetchInterval: FetchInterval,\n) {\n\n    suspend fun await(mangaUpdate: MangaUpdate): Boolean {\n        return mangaRepository.update(mangaUpdate)\n    }\n\n    suspend fun awaitAll(mangaUpdates: List<MangaUpdate>): Boolean {\n        return mangaRepository.updateAll(mangaUpdates)\n    }\n\n    suspend fun awaitUpdateFromSource(\n        localManga: Manga,\n        remoteManga: SManga,\n        manualFetch: Boolean,\n        coverCache: CoverCache = Injekt.get(),\n        libraryPreferences: LibraryPreferences = Injekt.get(),\n        downloadManager: DownloadManager = Injekt.get(),\n    ): Boolean {\n        val remoteTitle = try {\n            remoteManga.title\n        } catch (_: UninitializedPropertyAccessException) {\n            \"\"\n        }\n\n        // if the manga isn't a favorite (or 'update titles' preference is enabled), set its title from source and update in db\n        val title =\n            if (remoteTitle.isNotEmpty() && (!localManga.favorite || libraryPreferences.updateMangaTitles.get())) {\n                remoteTitle\n            } else {\n                null\n            }\n\n        val coverLastModified =\n            when {\n                // Never refresh covers if the url is empty to avoid \"losing\" existing covers\n                remoteManga.thumbnail_url.isNullOrEmpty() -> null\n                !manualFetch && localManga.thumbnailUrl == remoteManga.thumbnail_url -> null\n                localManga.isLocal() -> Instant.now().toEpochMilli()\n                localManga.hasCustomCover(coverCache) -> {\n                    coverCache.deleteFromCache(localManga, false)\n                    null\n                }\n                else -> {\n                    coverCache.deleteFromCache(localManga, false)\n                    Instant.now().toEpochMilli()\n                }\n            }\n\n        val thumbnailUrl = remoteManga.thumbnail_url?.takeIf { it.isNotEmpty() }\n\n        val success = mangaRepository.update(\n            MangaUpdate(\n                id = localManga.id,\n                title = title,\n                coverLastModified = coverLastModified,\n                author = remoteManga.author,\n                artist = remoteManga.artist,\n                description = remoteManga.description,\n                genre = remoteManga.getGenres(),\n                thumbnailUrl = thumbnailUrl,\n                status = remoteManga.status.toLong(),\n                updateStrategy = remoteManga.update_strategy,\n                initialized = true,\n            ),\n        )\n        if (success && title != null) {\n            downloadManager.renameManga(localManga, title)\n        }\n        return success\n    }\n\n    suspend fun awaitUpdateFetchInterval(\n        manga: Manga,\n        dateTime: ZonedDateTime = ZonedDateTime.now(),\n        window: Pair<Long, Long> = fetchInterval.getWindow(dateTime),\n    ): Boolean {\n        return mangaRepository.update(\n            fetchInterval.toMangaUpdate(manga, dateTime, window),\n        )\n    }\n\n    suspend fun awaitUpdateLastUpdate(mangaId: Long): Boolean {\n        return mangaRepository.update(MangaUpdate(id = mangaId, lastUpdate = Instant.now().toEpochMilli()))\n    }\n\n    suspend fun awaitUpdateCoverLastModified(mangaId: Long): Boolean {\n        return mangaRepository.update(MangaUpdate(id = mangaId, coverLastModified = Instant.now().toEpochMilli()))\n    }\n\n    suspend fun awaitUpdateFavorite(mangaId: Long, favorite: Boolean): Boolean {\n        val dateAdded = when (favorite) {\n            true -> Instant.now().toEpochMilli()\n            false -> 0\n        }\n        return mangaRepository.update(\n            MangaUpdate(id = mangaId, favorite = favorite, dateAdded = dateAdded),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/manga/model/Manga.kt",
    "content": "package eu.kanade.domain.manga.model\n\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.metadata.comicinfo.ComicInfo\nimport tachiyomi.core.metadata.comicinfo.ComicInfoPublishingStatus\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n// TODO: move these into the domain model\nval Manga.readingMode: Long\n    get() = viewerFlags and ReadingMode.MASK.toLong()\n\nval Manga.readerOrientation: Long\n    get() = viewerFlags and ReaderOrientation.MASK.toLong()\n\nval Manga.downloadedFilter: TriState\n    get() {\n        if (Injekt.get<BasePreferences>().downloadedOnly.get()) return TriState.ENABLED_IS\n        return when (downloadedFilterRaw) {\n            Manga.CHAPTER_SHOW_DOWNLOADED -> TriState.ENABLED_IS\n            Manga.CHAPTER_SHOW_NOT_DOWNLOADED -> TriState.ENABLED_NOT\n            else -> TriState.DISABLED\n        }\n    }\nfun Manga.chaptersFiltered(): Boolean {\n    return unreadFilter != TriState.DISABLED ||\n        downloadedFilter != TriState.DISABLED ||\n        bookmarkedFilter != TriState.DISABLED\n}\n\nfun Manga.toSManga(): SManga = SManga.create().also {\n    it.url = url\n    it.title = title\n    it.artist = artist\n    it.author = author\n    it.description = description\n    it.genre = genre.orEmpty().joinToString()\n    it.status = status.toInt()\n    it.thumbnail_url = thumbnailUrl\n    it.initialized = initialized\n}\n\nfun Manga.copyFrom(other: SManga): Manga {\n    val author = other.author ?: author\n    val artist = other.artist ?: artist\n    val description = other.description ?: description\n    val genres = if (other.genre != null) {\n        other.getGenres()\n    } else {\n        genre\n    }\n    val thumbnailUrl = other.thumbnail_url ?: thumbnailUrl\n    return this.copy(\n        author = author,\n        artist = artist,\n        description = description,\n        genre = genres,\n        thumbnailUrl = thumbnailUrl,\n        status = other.status.toLong(),\n        updateStrategy = other.update_strategy,\n        initialized = other.initialized && initialized,\n    )\n}\n\nfun Manga.hasCustomCover(coverCache: CoverCache = Injekt.get()): Boolean {\n    return coverCache.getCustomCoverFile(id).exists()\n}\n\n/**\n * Creates a ComicInfo instance based on the manga and chapter metadata.\n */\nfun getComicInfo(\n    manga: Manga,\n    chapter: Chapter,\n    urls: List<String>,\n    categories: List<String>?,\n    sourceName: String,\n) = ComicInfo(\n    title = ComicInfo.Title(chapter.name),\n    series = ComicInfo.Series(manga.title),\n    number = chapter.chapterNumber.takeIf { it >= 0 }?.let {\n        if ((it.rem(1) == 0.0)) {\n            ComicInfo.Number(it.toInt().toString())\n        } else {\n            ComicInfo.Number(it.toString())\n        }\n    },\n    web = ComicInfo.Web(urls.joinToString(\" \")),\n    summary = manga.description?.let { ComicInfo.Summary(it) },\n    writer = manga.author?.let { ComicInfo.Writer(it) },\n    penciller = manga.artist?.let { ComicInfo.Penciller(it) },\n    translator = chapter.scanlator?.let { ComicInfo.Translator(it) },\n    genre = manga.genre?.let { ComicInfo.Genre(it.joinToString()) },\n    publishingStatus = ComicInfo.PublishingStatusTachiyomi(\n        ComicInfoPublishingStatus.toComicInfoValue(manga.status),\n    ),\n    categories = categories?.let { ComicInfo.CategoriesTachiyomi(it.joinToString()) },\n    source = ComicInfo.SourceMihon(sourceName),\n    inker = null,\n    colorist = null,\n    letterer = null,\n    coverArtist = null,\n    tags = null,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport tachiyomi.domain.source.model.Pin\nimport tachiyomi.domain.source.model.Pins\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.domain.source.repository.SourceRepository\nimport tachiyomi.source.local.isLocal\n\nclass GetEnabledSources(\n    private val repository: SourceRepository,\n    private val preferences: SourcePreferences,\n) {\n\n    fun subscribe(): Flow<List<Source>> {\n        return combine(\n            preferences.pinnedSources.changes(),\n            preferences.enabledLanguages.changes(),\n            preferences.disabledSources.changes(),\n            preferences.lastUsedSource.changes(),\n            repository.getSources(),\n        ) { pinnedSourceIds, enabledLanguages, disabledSources, lastUsedSource, sources ->\n            sources\n                .filter { it.lang in enabledLanguages || it.isLocal() }\n                .filterNot { it.id.toString() in disabledSources }\n                .sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.name })\n                .flatMap {\n                    val flag = if (\"${it.id}\" in pinnedSourceIds) Pins.pinned else Pins.unpinned\n                    val source = it.copy(pin = flag)\n                    val toFlatten = mutableListOf(source)\n                    if (source.id == lastUsedSource) {\n                        toFlatten.add(source.copy(isUsedLast = true, pin = source.pin - Pin.Actual))\n                    }\n                    toFlatten\n                }\n        }\n            .distinctUntilChanged()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/GetIncognitoState.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\n\nclass GetIncognitoState(\n    private val basePreferences: BasePreferences,\n    private val sourcePreferences: SourcePreferences,\n    private val extensionManager: ExtensionManager,\n) {\n    fun await(sourceId: Long?): Boolean {\n        if (basePreferences.incognitoMode.get()) return true\n        if (sourceId == null) return false\n        val extensionPackage = extensionManager.getExtensionPackage(sourceId) ?: return false\n\n        return extensionPackage in sourcePreferences.incognitoExtensions.get()\n    }\n\n    fun subscribe(sourceId: Long?): Flow<Boolean> {\n        if (sourceId == null) return basePreferences.incognitoMode.changes()\n\n        return combine(\n            basePreferences.incognitoMode.changes(),\n            sourcePreferences.incognitoExtensions.changes(),\n            extensionManager.getExtensionPackageAsFlow(sourceId),\n        ) { incognito, incognitoExtensions, extensionPackage ->\n            incognito || (extensionPackage in incognitoExtensions)\n        }\n            .distinctUntilChanged()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.domain.source.repository.SourceRepository\nimport java.util.SortedMap\n\nclass GetLanguagesWithSources(\n    private val repository: SourceRepository,\n    private val preferences: SourcePreferences,\n) {\n\n    fun subscribe(): Flow<SortedMap<String, List<Source>>> {\n        return combine(\n            preferences.enabledLanguages.changes(),\n            preferences.disabledSources.changes(),\n            repository.getOnlineSources(),\n        ) { enabledLanguage, disabledSource, onlineSources ->\n            val sortedSources = onlineSources.sortedWith(\n                compareBy<Source> { it.id.toString() in disabledSource }\n                    .thenBy(String.CASE_INSENSITIVE_ORDER) { it.name },\n            )\n\n            sortedSources\n                .groupBy { it.lang }\n                .toSortedMap(\n                    compareBy<String> { it !in enabledLanguage }.then(LocaleHelper.comparator),\n                )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/GetSourcesWithFavoriteCount.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport tachiyomi.core.common.util.lang.compareToWithCollator\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.domain.source.repository.SourceRepository\nimport tachiyomi.source.local.isLocal\nimport java.util.Collections\n\nclass GetSourcesWithFavoriteCount(\n    private val repository: SourceRepository,\n    private val preferences: SourcePreferences,\n) {\n\n    fun subscribe(): Flow<List<Pair<Source, Long>>> {\n        return combine(\n            preferences.migrationSortingDirection.changes(),\n            preferences.migrationSortingMode.changes(),\n            repository.getSourcesWithFavoriteCount(),\n        ) { direction, mode, list ->\n            list\n                .filterNot { it.first.isLocal() }\n                .sortedWith(sortFn(direction, mode))\n        }\n    }\n\n    private fun sortFn(\n        direction: SetMigrateSorting.Direction,\n        sorting: SetMigrateSorting.Mode,\n    ): java.util.Comparator<Pair<Source, Long>> {\n        val sortFn: (Pair<Source, Long>, Pair<Source, Long>) -> Int = { a, b ->\n            when (sorting) {\n                SetMigrateSorting.Mode.ALPHABETICAL -> {\n                    when {\n                        a.first.isStub && !b.first.isStub -> -1\n                        b.first.isStub && !a.first.isStub -> 1\n                        else -> a.first.name.lowercase().compareToWithCollator(b.first.name.lowercase())\n                    }\n                }\n                SetMigrateSorting.Mode.TOTAL -> {\n                    when {\n                        a.first.isStub && !b.first.isStub -> -1\n                        b.first.isStub && !a.first.isStub -> 1\n                        else -> a.second.compareTo(b.second)\n                    }\n                }\n            }\n        }\n\n        return when (direction) {\n            SetMigrateSorting.Direction.ASCENDING -> Comparator(sortFn)\n            SetMigrateSorting.Direction.DESCENDING -> Collections.reverseOrder(sortFn)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/SetMigrateSorting.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\n\nclass SetMigrateSorting(\n    private val preferences: SourcePreferences,\n) {\n\n    fun await(mode: Mode, direction: Direction) {\n        preferences.migrationSortingMode.set(mode)\n        preferences.migrationSortingDirection.set(direction)\n    }\n\n    enum class Mode {\n        ALPHABETICAL,\n        TOTAL,\n    }\n\n    enum class Direction {\n        ASCENDING,\n        DESCENDING,\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/ToggleIncognito.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport tachiyomi.core.common.preference.getAndSet\n\nclass ToggleIncognito(\n    private val preferences: SourcePreferences,\n) {\n    fun await(extensions: String, enable: Boolean) {\n        preferences.incognitoExtensions.getAndSet {\n            if (enable) it.plus(extensions) else it.minus(extensions)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/ToggleLanguage.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport tachiyomi.core.common.preference.getAndSet\n\nclass ToggleLanguage(\n    val preferences: SourcePreferences,\n) {\n\n    fun await(language: String) {\n        val isEnabled = language in preferences.enabledLanguages.get()\n        preferences.enabledLanguages.getAndSet { enabled ->\n            if (isEnabled) enabled.minus(language) else enabled.plus(language)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/ToggleSource.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.domain.source.model.Source\n\nclass ToggleSource(\n    private val preferences: SourcePreferences,\n) {\n\n    fun await(source: Source, enable: Boolean = isEnabled(source.id)) {\n        await(source.id, enable)\n    }\n\n    fun await(sourceId: Long, enable: Boolean = isEnabled(sourceId)) {\n        preferences.disabledSources.getAndSet { disabled ->\n            if (enable) disabled.minus(\"$sourceId\") else disabled.plus(\"$sourceId\")\n        }\n    }\n\n    fun await(sourceIds: List<Long>, enable: Boolean) {\n        val transformedSourceIds = sourceIds.map { it.toString() }\n        preferences.disabledSources.getAndSet { disabled ->\n            if (enable) disabled.minus(transformedSourceIds) else disabled.plus(transformedSourceIds)\n        }\n    }\n\n    private fun isEnabled(sourceId: Long): Boolean {\n        return sourceId.toString() in preferences.disabledSources.get()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/interactor/ToggleSourcePin.kt",
    "content": "package eu.kanade.domain.source.interactor\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.domain.source.model.Source\n\nclass ToggleSourcePin(\n    private val preferences: SourcePreferences,\n) {\n\n    fun await(source: Source) {\n        val isPinned = source.id.toString() in preferences.pinnedSources.get()\n        preferences.pinnedSources.getAndSet { pinned ->\n            if (isPinned) pinned.minus(\"${source.id}\") else pinned.plus(\"${source.id}\")\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/model/Source.kt",
    "content": "package eu.kanade.domain.source.model\n\nimport androidx.compose.ui.graphics.ImageBitmap\nimport androidx.compose.ui.graphics.asImageBitmap\nimport androidx.core.graphics.drawable.toBitmap\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport tachiyomi.domain.source.model.Source\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nval Source.icon: ImageBitmap?\n    get() {\n        return Injekt.get<ExtensionManager>().getAppIconForSource(id)\n            ?.toBitmap()\n            ?.asImageBitmap()\n    }\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt",
    "content": "package eu.kanade.domain.source.service\n\nimport eu.kanade.domain.source.interactor.SetMigrateSorting\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport mihon.domain.migration.models.MigrationFlag\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.getEnum\nimport tachiyomi.core.common.preference.getLongArray\nimport tachiyomi.domain.library.model.LibraryDisplayMode\n\nclass SourcePreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    val sourceDisplayMode: Preference<LibraryDisplayMode> = preferenceStore.getObjectFromString(\n        \"pref_display_mode_catalogue\",\n        LibraryDisplayMode.default,\n        LibraryDisplayMode.Serializer::serialize,\n        LibraryDisplayMode.Serializer::deserialize,\n    )\n\n    val enabledLanguages: Preference<Set<String>> = preferenceStore.getStringSet(\n        \"source_languages\",\n        LocaleHelper.getDefaultEnabledLanguages(),\n    )\n\n    val disabledSources: Preference<Set<String>> = preferenceStore.getStringSet(\"hidden_catalogues\", emptySet())\n\n    val incognitoExtensions: Preference<Set<String>> = preferenceStore.getStringSet(\"incognito_extensions\", emptySet())\n\n    val pinnedSources: Preference<Set<String>> = preferenceStore.getStringSet(\"pinned_catalogues\", emptySet())\n\n    val lastUsedSource: Preference<Long> = preferenceStore.getLong(\n        Preference.appStateKey(\"last_catalogue_source\"),\n        -1,\n    )\n\n    val showNsfwSource: Preference<Boolean> = preferenceStore.getBoolean(\"show_nsfw_source\", true)\n\n    val migrationSortingMode: Preference<SetMigrateSorting.Mode> = preferenceStore.getEnum(\n        \"pref_migration_sorting\",\n        SetMigrateSorting.Mode.ALPHABETICAL,\n    )\n\n    val migrationSortingDirection: Preference<SetMigrateSorting.Direction> = preferenceStore.getEnum(\n        \"pref_migration_direction\",\n        SetMigrateSorting.Direction.ASCENDING,\n    )\n\n    val hideInLibraryItems: Preference<Boolean> = preferenceStore.getBoolean(\"browse_hide_in_library_items\", false)\n\n    val extensionRepos: Preference<Set<String>> = preferenceStore.getStringSet(\"extension_repos\", emptySet())\n\n    val extensionUpdatesCount: Preference<Int> = preferenceStore.getInt(\"ext_updates_count\", 0)\n\n    val trustedExtensions: Preference<Set<String>> = preferenceStore.getStringSet(\n        Preference.appStateKey(\"trusted_extensions\"),\n        emptySet(),\n    )\n\n    val globalSearchFilterState: Preference<Boolean> = preferenceStore.getBoolean(\n        Preference.appStateKey(\"has_filters_toggle_state\"),\n        false,\n    )\n\n    val migrationSources: Preference<List<Long>> = preferenceStore.getLongArray(\"migration_sources\", emptyList())\n\n    val migrationFlags: Preference<Set<MigrationFlag>> = preferenceStore.getObjectFromInt(\n        key = \"migration_flags\",\n        defaultValue = MigrationFlag.entries.toSet(),\n        serializer = { MigrationFlag.toBit(it) },\n        deserializer = { value: Int -> MigrationFlag.fromBit(value) },\n    )\n\n    val migrationDeepSearchMode: Preference<Boolean> = preferenceStore.getBoolean(\"migration_deep_search\", false)\n\n    val migrationPrioritizeByChapters: Preference<Boolean> = preferenceStore.getBoolean(\n        \"migration_prioritize_by_chapters\",\n        false,\n    )\n\n    val migrationHideUnmatched: Preference<Boolean> = preferenceStore.getBoolean(\"migration_hide_unmatched\", false)\n\n    val migrationHideWithoutUpdates: Preference<Boolean> = preferenceStore.getBoolean(\n        \"migration_hide_without_updates\",\n        false,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/interactor/AddTracks.kt",
    "content": "package eu.kanade.domain.track.interactor\n\nimport eu.kanade.domain.track.model.toDbTrack\nimport eu.kanade.domain.track.model.toDomainTrack\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.util.lang.convertEpochMillisZone\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.history.interactor.GetHistory\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.track.interactor.InsertTrack\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.ZoneOffset\n\nclass AddTracks(\n    private val insertTrack: InsertTrack,\n    private val syncChapterProgressWithTrack: SyncChapterProgressWithTrack,\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n    private val trackerManager: TrackerManager,\n) {\n\n    // TODO: update all trackers based on common data\n    suspend fun bind(tracker: Tracker, item: Track, mangaId: Long) = withNonCancellableContext {\n        withIOContext {\n            val allChapters = getChaptersByMangaId.await(mangaId)\n            val hasReadChapters = allChapters.any { it.read }\n            tracker.bind(item, hasReadChapters)\n\n            var track = item.toDomainTrack(idRequired = false) ?: return@withIOContext\n\n            insertTrack.await(track)\n\n            // TODO: merge into [SyncChapterProgressWithTrack]?\n            // Update chapter progress if newer chapters marked read locally\n            if (hasReadChapters) {\n                val latestLocalReadChapterNumber = allChapters\n                    .sortedBy { it.chapterNumber }\n                    .takeWhile { it.read }\n                    .lastOrNull()\n                    ?.chapterNumber ?: -1.0\n\n                if (latestLocalReadChapterNumber > track.lastChapterRead) {\n                    track = track.copy(\n                        lastChapterRead = latestLocalReadChapterNumber,\n                    )\n                    tracker.setRemoteLastChapterRead(track.toDbTrack(), latestLocalReadChapterNumber.toInt())\n                }\n\n                if (track.startDate <= 0) {\n                    val firstReadChapterDate = Injekt.get<GetHistory>().await(mangaId)\n                        .sortedBy { it.readAt }\n                        .firstOrNull()\n                        ?.readAt\n\n                    firstReadChapterDate?.let {\n                        val startDate = firstReadChapterDate.time.convertEpochMillisZone(\n                            ZoneOffset.systemDefault(),\n                            ZoneOffset.UTC,\n                        )\n                        track = track.copy(\n                            startDate = startDate,\n                        )\n                        tracker.setRemoteStartDate(track.toDbTrack(), startDate)\n                    }\n                }\n            }\n\n            syncChapterProgressWithTrack.await(mangaId, track, tracker)\n        }\n    }\n\n    suspend fun bindEnhancedTrackers(manga: Manga, source: Source) = withNonCancellableContext {\n        withIOContext {\n            trackerManager.loggedInTrackers()\n                .filterIsInstance<EnhancedTracker>()\n                .filter { it.accept(source) }\n                .forEach { service ->\n                    try {\n                        service.match(manga)?.let { track ->\n                            track.manga_id = manga.id\n                            (service as Tracker).bind(track)\n                            insertTrack.await(track.toDomainTrack(idRequired = false)!!)\n\n                            syncChapterProgressWithTrack.await(\n                                manga.id,\n                                track.toDomainTrack(idRequired = false)!!,\n                                service,\n                            )\n                        }\n                    } catch (e: Exception) {\n                        logcat(\n                            LogPriority.WARN,\n                            e,\n                        ) { \"Could not match manga: ${manga.title} with service $service\" }\n                    }\n                }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/interactor/RefreshTracks.kt",
    "content": "package eu.kanade.domain.track.interactor\n\nimport eu.kanade.domain.track.model.toDbTrack\nimport eu.kanade.domain.track.model.toDomainTrack\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.supervisorScope\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.interactor.InsertTrack\n\nclass RefreshTracks(\n    private val getTracks: GetTracks,\n    private val trackerManager: TrackerManager,\n    private val insertTrack: InsertTrack,\n    private val syncChapterProgressWithTrack: SyncChapterProgressWithTrack,\n) {\n\n    /**\n     * Fetches updated tracking data from all logged in trackers.\n     *\n     * @return Failed updates.\n     */\n    suspend fun await(mangaId: Long): List<Pair<Tracker?, Throwable>> {\n        return supervisorScope {\n            return@supervisorScope getTracks.await(mangaId)\n                .map { it to trackerManager.get(it.trackerId) }\n                .filter { (_, service) -> service?.isLoggedIn == true }\n                .map { (track, service) ->\n                    async {\n                        return@async try {\n                            val updatedTrack = service!!.refresh(track.toDbTrack()).toDomainTrack()!!\n                            insertTrack.await(updatedTrack)\n                            syncChapterProgressWithTrack.await(mangaId, updatedTrack, service)\n                            null\n                        } catch (e: Throwable) {\n                            service to e\n                        }\n                    }\n                }\n                .awaitAll()\n                .filterNotNull()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/interactor/SyncChapterProgressWithTrack.kt",
    "content": "package eu.kanade.domain.track.interactor\n\nimport eu.kanade.domain.track.model.toDbTrack\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.toChapterUpdate\nimport tachiyomi.domain.track.interactor.InsertTrack\nimport tachiyomi.domain.track.model.Track\nimport kotlin.math.max\n\nclass SyncChapterProgressWithTrack(\n    private val updateChapter: UpdateChapter,\n    private val insertTrack: InsertTrack,\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n) {\n\n    suspend fun await(\n        mangaId: Long,\n        remoteTrack: Track,\n        tracker: Tracker,\n    ) {\n        if (tracker !is EnhancedTracker) {\n            return\n        }\n\n        val sortedChapters = getChaptersByMangaId.await(mangaId)\n            .sortedBy { it.chapterNumber }\n            .filter { it.isRecognizedNumber }\n\n        val chapterUpdates = sortedChapters\n            .filter { chapter -> chapter.chapterNumber <= remoteTrack.lastChapterRead && !chapter.read }\n            .map { it.copy(read = true).toChapterUpdate() }\n\n        // only take into account continuous reading\n        val localLastRead = sortedChapters.takeWhile { it.read }.lastOrNull()?.chapterNumber ?: 0F\n        val lastRead = max(remoteTrack.lastChapterRead, localLastRead.toDouble())\n        val updatedTrack = remoteTrack.copy(lastChapterRead = lastRead)\n\n        try {\n            tracker.update(updatedTrack.toDbTrack())\n            updateChapter.awaitAll(chapterUpdates)\n            insertTrack.await(updatedTrack)\n        } catch (e: Throwable) {\n            logcat(LogPriority.WARN, e)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/interactor/TrackChapter.kt",
    "content": "package eu.kanade.domain.track.interactor\n\nimport android.content.Context\nimport eu.kanade.domain.track.model.toDbTrack\nimport eu.kanade.domain.track.model.toDomainTrack\nimport eu.kanade.domain.track.service.DelayedTrackingUpdateJob\nimport eu.kanade.domain.track.store.DelayedTrackingStore\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.interactor.InsertTrack\n\nclass TrackChapter(\n    private val getTracks: GetTracks,\n    private val trackerManager: TrackerManager,\n    private val insertTrack: InsertTrack,\n    private val delayedTrackingStore: DelayedTrackingStore,\n) {\n\n    suspend fun await(context: Context, mangaId: Long, chapterNumber: Double, setupJobOnFailure: Boolean = true) {\n        withNonCancellableContext {\n            val tracks = getTracks.await(mangaId)\n            if (tracks.isEmpty()) return@withNonCancellableContext\n\n            tracks.mapNotNull { track ->\n                val service = trackerManager.get(track.trackerId)\n                if (service == null || !service.isLoggedIn || chapterNumber <= track.lastChapterRead) {\n                    return@mapNotNull null\n                }\n\n                async {\n                    runCatching {\n                        try {\n                            val updatedTrack = service.refresh(track.toDbTrack())\n                                .toDomainTrack(idRequired = true)!!\n                                .copy(lastChapterRead = chapterNumber)\n                            service.update(updatedTrack.toDbTrack(), true)\n                            insertTrack.await(updatedTrack)\n                            delayedTrackingStore.remove(track.id)\n                        } catch (e: Exception) {\n                            delayedTrackingStore.add(track.id, chapterNumber)\n                            if (setupJobOnFailure) {\n                                DelayedTrackingUpdateJob.setupTask(context)\n                            }\n                            throw e\n                        }\n                    }\n                }\n            }\n                .awaitAll()\n                .mapNotNull { it.exceptionOrNull() }\n                .forEach { logcat(LogPriority.WARN, it) }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/model/AutoTrackState.kt",
    "content": "package eu.kanade.domain.track.model\n\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.i18n.MR\n\nenum class AutoTrackState(val titleRes: StringResource) {\n    ALWAYS(MR.strings.lock_always),\n    ASK(MR.strings.default_category_summary),\n    NEVER(MR.strings.lock_never),\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/model/Track.kt",
    "content": "package eu.kanade.domain.track.model\n\nimport tachiyomi.domain.track.model.Track\nimport eu.kanade.tachiyomi.data.database.models.Track as DbTrack\n\nfun Track.copyPersonalFrom(other: Track): Track {\n    return this.copy(\n        lastChapterRead = other.lastChapterRead,\n        score = other.score,\n        status = other.status,\n        startDate = other.startDate,\n        finishDate = other.finishDate,\n        private = other.private,\n    )\n}\n\nfun Track.toDbTrack(): DbTrack = DbTrack.create(trackerId).also {\n    it.id = id\n    it.manga_id = mangaId\n    it.remote_id = remoteId\n    it.library_id = libraryId\n    it.title = title\n    it.last_chapter_read = lastChapterRead\n    it.total_chapters = totalChapters\n    it.status = status\n    it.score = score\n    it.tracking_url = remoteUrl\n    it.started_reading_date = startDate\n    it.finished_reading_date = finishDate\n    it.private = private\n}\n\nfun DbTrack.toDomainTrack(idRequired: Boolean = true): Track? {\n    val trackId = id ?: if (!idRequired) -1 else return null\n    return Track(\n        id = trackId,\n        mangaId = manga_id,\n        trackerId = tracker_id,\n        remoteId = remote_id,\n        libraryId = library_id,\n        title = title,\n        lastChapterRead = last_chapter_read,\n        totalChapters = total_chapters,\n        status = status,\n        score = score,\n        remoteUrl = tracking_url,\n        startDate = started_reading_date,\n        finishDate = finished_reading_date,\n        private = private,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/service/DelayedTrackingUpdateJob.kt",
    "content": "package eu.kanade.domain.track.service\n\nimport android.content.Context\nimport androidx.work.BackoffPolicy\nimport androidx.work.Constraints\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.NetworkType\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.WorkerParameters\nimport eu.kanade.domain.track.interactor.TrackChapter\nimport eu.kanade.domain.track.store.DelayedTrackingStore\nimport eu.kanade.tachiyomi.util.system.workManager\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.track.interactor.GetTracks\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.concurrent.TimeUnit\n\nclass DelayedTrackingUpdateJob(private val context: Context, workerParams: WorkerParameters) :\n    CoroutineWorker(context, workerParams) {\n\n    override suspend fun doWork(): Result {\n        if (runAttemptCount > 3) {\n            return Result.failure()\n        }\n\n        val getTracks = Injekt.get<GetTracks>()\n        val trackChapter = Injekt.get<TrackChapter>()\n\n        val delayedTrackingStore = Injekt.get<DelayedTrackingStore>()\n\n        withIOContext {\n            delayedTrackingStore.getItems()\n                .mapNotNull {\n                    val track = getTracks.awaitOne(it.trackId)\n                    if (track == null) {\n                        delayedTrackingStore.remove(it.trackId)\n                    }\n                    track?.copy(lastChapterRead = it.lastChapterRead.toDouble())\n                }\n                .forEach { track ->\n                    logcat(LogPriority.DEBUG) {\n                        \"Updating delayed track item: ${track.mangaId}, last chapter read: ${track.lastChapterRead}\"\n                    }\n                    trackChapter.await(context, track.mangaId, track.lastChapterRead, setupJobOnFailure = false)\n                }\n        }\n\n        return if (delayedTrackingStore.getItems().isEmpty()) Result.success() else Result.retry()\n    }\n\n    companion object {\n        private const val TAG = \"DelayedTrackingUpdate\"\n\n        fun setupTask(context: Context) {\n            val constraints = Constraints(\n                requiredNetworkType = NetworkType.CONNECTED,\n            )\n\n            val request = OneTimeWorkRequestBuilder<DelayedTrackingUpdateJob>()\n                .setConstraints(constraints)\n                .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 5, TimeUnit.MINUTES)\n                .addTag(TAG)\n                .build()\n\n            context.workManager.enqueueUniqueWork(TAG, ExistingWorkPolicy.REPLACE, request)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt",
    "content": "package eu.kanade.domain.track.service\n\nimport eu.kanade.domain.track.model.AutoTrackState\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.data.track.anilist.Anilist\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.getEnum\n\nclass TrackPreferences(\n    private val preferenceStore: PreferenceStore,\n) {\n\n    fun trackUsername(tracker: Tracker) = preferenceStore.getString(\n        Preference.privateKey(\"pref_mangasync_username_${tracker.id}\"),\n        \"\",\n    )\n\n    fun trackPassword(tracker: Tracker) = preferenceStore.getString(\n        Preference.privateKey(\"pref_mangasync_password_${tracker.id}\"),\n        \"\",\n    )\n\n    fun trackAuthExpired(tracker: Tracker) = preferenceStore.getBoolean(\n        Preference.privateKey(\"pref_tracker_auth_expired_${tracker.id}\"),\n        false,\n    )\n\n    fun setCredentials(tracker: Tracker, username: String, password: String) {\n        trackUsername(tracker).set(username)\n        trackPassword(tracker).set(password)\n        trackAuthExpired(tracker).set(false)\n    }\n\n    fun trackToken(tracker: Tracker) = preferenceStore.getString(Preference.privateKey(\"track_token_${tracker.id}\"), \"\")\n\n    val anilistScoreType: Preference<String> = preferenceStore.getString(\"anilist_score_type\", Anilist.POINT_10)\n\n    val autoUpdateTrack: Preference<Boolean> = preferenceStore.getBoolean(\"pref_auto_update_manga_sync_key\", true)\n\n    val autoUpdateTrackOnMarkRead: Preference<AutoTrackState> = preferenceStore.getEnum(\n        \"pref_auto_update_manga_on_mark_read\",\n        AutoTrackState.ALWAYS,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/track/store/DelayedTrackingStore.kt",
    "content": "package eu.kanade.domain.track.store\n\nimport android.content.Context\nimport androidx.core.content.edit\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\n\nclass DelayedTrackingStore(context: Context) {\n\n    /**\n     * Preference file where queued tracking updates are stored.\n     */\n    private val preferences = context.getSharedPreferences(\"tracking_queue\", Context.MODE_PRIVATE)\n\n    fun add(trackId: Long, lastChapterRead: Double) {\n        val previousLastChapterRead = preferences.getFloat(trackId.toString(), 0f)\n        if (lastChapterRead > previousLastChapterRead) {\n            logcat(LogPriority.DEBUG) { \"Queuing track item: $trackId, last chapter read: $lastChapterRead\" }\n            preferences.edit {\n                putFloat(trackId.toString(), lastChapterRead.toFloat())\n            }\n        }\n    }\n\n    fun remove(trackId: Long) {\n        preferences.edit {\n            remove(trackId.toString())\n        }\n    }\n\n    fun getItems(): List<DelayedTrackingItem> {\n        return preferences.all.mapNotNull {\n            DelayedTrackingItem(\n                trackId = it.key.toLong(),\n                lastChapterRead = it.value.toString().toFloat(),\n            )\n        }\n    }\n\n    data class DelayedTrackingItem(\n        val trackId: Long,\n        val lastChapterRead: Float,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt",
    "content": "package eu.kanade.domain.ui\n\nimport eu.kanade.domain.ui.model.AppTheme\nimport eu.kanade.domain.ui.model.TabletUiMode\nimport eu.kanade.domain.ui.model.ThemeMode\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.isDynamicColorAvailable\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.getEnum\nimport java.time.format.DateTimeFormatter\nimport java.time.format.FormatStyle\nimport java.util.Locale\n\nclass UiPreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    val themeMode: Preference<ThemeMode> = preferenceStore.getEnum(\"pref_theme_mode_key\", ThemeMode.SYSTEM)\n\n    val appTheme: Preference<AppTheme> = preferenceStore.getEnum(\n        \"pref_app_theme\",\n        if (DeviceUtil.isDynamicColorAvailable) {\n            AppTheme.MONET\n        } else {\n            AppTheme.DEFAULT\n        },\n    )\n\n    val themeDarkAmoled: Preference<Boolean> = preferenceStore.getBoolean(\"pref_theme_dark_amoled_key\", false)\n\n    val relativeTime: Preference<Boolean> = preferenceStore.getBoolean(\"relative_time_v2\", true)\n\n    val dateFormat: Preference<String> = preferenceStore.getString(\"app_date_format\", \"\")\n\n    val tabletUiMode: Preference<TabletUiMode> = preferenceStore.getEnum(\"tablet_ui_mode\", TabletUiMode.AUTOMATIC)\n\n    val imagesInDescription: Preference<Boolean> = preferenceStore.getBoolean(\"pref_render_images_description\", true)\n\n    companion object {\n        fun dateFormat(format: String): DateTimeFormatter = when (format) {\n            \"\" -> DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT)\n            else -> DateTimeFormatter.ofPattern(format, Locale.getDefault())\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/ui/model/AppTheme.kt",
    "content": "package eu.kanade.domain.ui.model\n\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.i18n.MR\n\nenum class AppTheme(val titleRes: StringResource?) {\n    DEFAULT(MR.strings.label_default),\n    MONET(MR.strings.theme_monet),\n    CATPPUCCIN(MR.strings.theme_catppuccin),\n    GREEN_APPLE(MR.strings.theme_greenapple),\n    LAVENDER(MR.strings.theme_lavender),\n    MIDNIGHT_DUSK(MR.strings.theme_midnightdusk),\n    NORD(MR.strings.theme_nord),\n    STRAWBERRY_DAIQUIRI(MR.strings.theme_strawberrydaiquiri),\n    TAKO(MR.strings.theme_tako),\n    TEALTURQUOISE(MR.strings.theme_tealturquoise),\n    TIDAL_WAVE(MR.strings.theme_tidalwave),\n    YINYANG(MR.strings.theme_yinyang),\n    YOTSUBA(MR.strings.theme_yotsuba),\n    MONOCHROME(MR.strings.theme_monochrome),\n\n    // Deprecated\n    DARK_BLUE(null),\n    HOT_PINK(null),\n    BLUE(null),\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/ui/model/TabletUiMode.kt",
    "content": "package eu.kanade.domain.ui.model\n\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.i18n.MR\n\nenum class TabletUiMode(val titleRes: StringResource) {\n    AUTOMATIC(MR.strings.automatic_background),\n    ALWAYS(MR.strings.lock_always),\n    LANDSCAPE(MR.strings.landscape),\n    NEVER(MR.strings.lock_never),\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/domain/ui/model/ThemeMode.kt",
    "content": "package eu.kanade.domain.ui.model\n\nimport androidx.appcompat.app.AppCompatDelegate\n\nenum class ThemeMode {\n    LIGHT,\n    DARK,\n    SYSTEM,\n}\n\nfun setAppCompatDelegateThemeMode(themeMode: ThemeMode) {\n    AppCompatDelegate.setDefaultNightMode(\n        when (themeMode) {\n            ThemeMode.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO\n            ThemeMode.DARK -> AppCompatDelegate.MODE_NIGHT_YES\n            ThemeMode.SYSTEM -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material.icons.outlined.Public\nimport androidx.compose.material.icons.outlined.Refresh\nimport androidx.compose.material3.SnackbarDuration\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.SnackbarResult\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.paging.LoadState\nimport androidx.paging.compose.LazyPagingItems\nimport eu.kanade.presentation.browse.components.BrowseSourceComfortableGrid\nimport eu.kanade.presentation.browse.components.BrowseSourceCompactGrid\nimport eu.kanade.presentation.browse.components.BrowseSourceList\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.util.formattedMessage\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.flow.StateFlow\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.EmptyScreenAction\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.source.local.LocalSource\n\n@Composable\nfun BrowseSourceContent(\n    source: Source?,\n    mangaList: LazyPagingItems<StateFlow<Manga>>,\n    columns: GridCells,\n    displayMode: LibraryDisplayMode,\n    snackbarHostState: SnackbarHostState,\n    contentPadding: PaddingValues,\n    onWebViewClick: () -> Unit,\n    onHelpClick: () -> Unit,\n    onLocalSourceHelpClick: () -> Unit,\n    onMangaClick: (Manga) -> Unit,\n    onMangaLongClick: (Manga) -> Unit,\n) {\n    val context = LocalContext.current\n\n    val errorState = mangaList.loadState.refresh.takeIf { it is LoadState.Error }\n        ?: mangaList.loadState.append.takeIf { it is LoadState.Error }\n\n    val getErrorMessage: (LoadState.Error) -> String = { state ->\n        with(context) { state.error.formattedMessage }\n    }\n\n    LaunchedEffect(errorState) {\n        if (mangaList.itemCount > 0 && errorState != null && errorState is LoadState.Error) {\n            val result = snackbarHostState.showSnackbar(\n                message = getErrorMessage(errorState),\n                actionLabel = context.stringResource(MR.strings.action_retry),\n                duration = SnackbarDuration.Indefinite,\n            )\n            when (result) {\n                SnackbarResult.Dismissed -> snackbarHostState.currentSnackbarData?.dismiss()\n                SnackbarResult.ActionPerformed -> mangaList.retry()\n            }\n        }\n    }\n\n    if (mangaList.itemCount == 0 && mangaList.loadState.refresh is LoadState.Loading) {\n        LoadingScreen(Modifier.padding(contentPadding))\n        return\n    }\n\n    if (mangaList.itemCount == 0) {\n        EmptyScreen(\n            modifier = Modifier.padding(contentPadding),\n            message = when (errorState) {\n                is LoadState.Error -> getErrorMessage(errorState)\n                else -> stringResource(MR.strings.no_results_found)\n            },\n            actions = if (source is LocalSource) {\n                persistentListOf(\n                    EmptyScreenAction(\n                        stringRes = MR.strings.local_source_help_guide,\n                        icon = Icons.AutoMirrored.Outlined.HelpOutline,\n                        onClick = onLocalSourceHelpClick,\n                    ),\n                )\n            } else {\n                persistentListOf(\n                    EmptyScreenAction(\n                        stringRes = MR.strings.action_retry,\n                        icon = Icons.Outlined.Refresh,\n                        onClick = mangaList::refresh,\n                    ),\n                    EmptyScreenAction(\n                        stringRes = MR.strings.action_open_in_web_view,\n                        icon = Icons.Outlined.Public,\n                        onClick = onWebViewClick,\n                    ),\n                    EmptyScreenAction(\n                        stringRes = MR.strings.label_help,\n                        icon = Icons.AutoMirrored.Outlined.HelpOutline,\n                        onClick = onHelpClick,\n                    ),\n                )\n            },\n        )\n\n        return\n    }\n\n    when (displayMode) {\n        LibraryDisplayMode.ComfortableGrid -> {\n            BrowseSourceComfortableGrid(\n                mangaList = mangaList,\n                columns = columns,\n                contentPadding = contentPadding,\n                onMangaClick = onMangaClick,\n                onMangaLongClick = onMangaLongClick,\n            )\n        }\n        LibraryDisplayMode.List -> {\n            BrowseSourceList(\n                mangaList = mangaList,\n                contentPadding = contentPadding,\n                onMangaClick = onMangaClick,\n                onMangaLongClick = onMangaLongClick,\n            )\n        }\n        LibraryDisplayMode.CompactGrid, LibraryDisplayMode.CoverOnlyGrid -> {\n            BrowseSourceCompactGrid(\n                mangaList = mangaList,\n                columns = columns,\n                contentPadding = contentPadding,\n                onMangaClick = onMangaClick,\n                onMangaLongClick = onMangaLongClick,\n            )\n        }\n    }\n}\n\n@Composable\ninternal fun MissingSourceScreen(\n    source: StubSource,\n    navigateUp: () -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                title = source.name,\n                navigateUp = navigateUp,\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { paddingValues ->\n        EmptyScreen(\n            message = stringResource(MR.strings.source_not_installed, source.toString()),\n            modifier = Modifier.padding(paddingValues),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport android.content.Intent\nimport android.net.Uri\nimport android.provider.Settings\nimport android.util.DisplayMetrics\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.Launch\nimport androidx.compose.material.icons.outlined.Settings\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedButton\nimport androidx.compose.material3.Switch\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.material3.VerticalDivider\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.res.vectorResource\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.domain.extension.interactor.ExtensionSourceItem\nimport eu.kanade.presentation.browse.components.ExtensionIcon\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.WarningBanner\nimport eu.kanade.presentation.more.settings.widget.TextPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.TrailingWidgetBuffer\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.source.ConfigurableSource\nimport eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreenModel\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\n\n@Composable\nfun ExtensionDetailsScreen(\n    navigateUp: () -> Unit,\n    state: ExtensionDetailsScreenModel.State,\n    onClickSourcePreferences: (sourceId: Long) -> Unit,\n    onClickEnableAll: () -> Unit,\n    onClickDisableAll: () -> Unit,\n    onClickClearCookies: () -> Unit,\n    onClickUninstall: () -> Unit,\n    onClickSource: (sourceId: Long) -> Unit,\n    onClickIncognito: (Boolean) -> Unit,\n) {\n    val uriHandler = LocalUriHandler.current\n    val url = remember(state.extension) {\n        val regex = \"\"\"https://raw.githubusercontent.com/(.+?)/(.+?)/.+\"\"\".toRegex()\n        regex.find(state.extension?.repoUrl.orEmpty())\n            ?.let {\n                val (user, repo) = it.destructured\n                \"https://github.com/$user/$repo\"\n            }\n            ?: state.extension?.repoUrl\n    }\n\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                title = stringResource(MR.strings.label_extension_info),\n                navigateUp = navigateUp,\n                actions = {\n                    AppBarActions(\n                        actions = persistentListOf<AppBar.AppBarAction>().builder()\n                            .apply {\n                                if (url != null) {\n                                    add(\n                                        AppBar.Action(\n                                            title = stringResource(MR.strings.action_open_repo),\n                                            icon = Icons.AutoMirrored.Outlined.Launch,\n                                            onClick = {\n                                                uriHandler.openUri(url)\n                                            },\n                                        ),\n                                    )\n                                }\n                                addAll(\n                                    listOf(\n                                        AppBar.OverflowAction(\n                                            title = stringResource(MR.strings.action_enable_all),\n                                            onClick = onClickEnableAll,\n                                        ),\n                                        AppBar.OverflowAction(\n                                            title = stringResource(MR.strings.action_disable_all),\n                                            onClick = onClickDisableAll,\n                                        ),\n                                        AppBar.OverflowAction(\n                                            title = stringResource(MR.strings.pref_clear_cookies),\n                                            onClick = onClickClearCookies,\n                                        ),\n                                    ),\n                                )\n                            }\n                            .build(),\n                    )\n                },\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { paddingValues ->\n        if (state.extension == null) {\n            EmptyScreen(\n                MR.strings.empty_screen,\n                modifier = Modifier.padding(paddingValues),\n            )\n            return@Scaffold\n        }\n\n        ExtensionDetails(\n            contentPadding = paddingValues,\n            extension = state.extension,\n            sources = state.sources,\n            incognitoMode = state.isIncognito,\n            onClickSourcePreferences = onClickSourcePreferences,\n            onClickUninstall = onClickUninstall,\n            onClickSource = onClickSource,\n            onClickIncognito = onClickIncognito,\n        )\n    }\n}\n\n@Composable\nprivate fun ExtensionDetails(\n    contentPadding: PaddingValues,\n    extension: Extension.Installed,\n    sources: ImmutableList<ExtensionSourceItem>,\n    incognitoMode: Boolean,\n    onClickSourcePreferences: (sourceId: Long) -> Unit,\n    onClickUninstall: () -> Unit,\n    onClickSource: (sourceId: Long) -> Unit,\n    onClickIncognito: (Boolean) -> Unit,\n) {\n    val context = LocalContext.current\n    var showNsfwWarning by remember { mutableStateOf(false) }\n\n    ScrollbarLazyColumn(\n        contentPadding = contentPadding,\n    ) {\n        if (extension.isObsolete) {\n            item {\n                WarningBanner(MR.strings.obsolete_extension_message)\n            }\n        }\n\n        item {\n            DetailsHeader(\n                extension = extension,\n                extIncognitoMode = incognitoMode,\n                onClickUninstall = onClickUninstall,\n                onClickAppInfo = {\n                    Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {\n                        data = Uri.fromParts(\"package\", extension.pkgName, null)\n                        context.startActivity(this)\n                    }\n                    Unit\n                }.takeIf { extension.isShared },\n                onClickAgeRating = {\n                    showNsfwWarning = true\n                },\n                onExtIncognitoChange = onClickIncognito,\n            )\n        }\n\n        items(\n            items = sources,\n            key = { it.source.id },\n        ) { source ->\n            SourceSwitchPreference(\n                modifier = Modifier.animateItem(),\n                source = source,\n                onClickSourcePreferences = onClickSourcePreferences,\n                onClickSource = onClickSource,\n            )\n        }\n    }\n    if (showNsfwWarning) {\n        NsfwWarningDialog(\n            onClickConfirm = {\n                showNsfwWarning = false\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun DetailsHeader(\n    extension: Extension,\n    extIncognitoMode: Boolean,\n    onClickAgeRating: () -> Unit,\n    onClickUninstall: () -> Unit,\n    onClickAppInfo: (() -> Unit)?,\n    onExtIncognitoChange: (Boolean) -> Unit,\n) {\n    val context = LocalContext.current\n\n    Column {\n        Column(\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(horizontal = MaterialTheme.padding.medium)\n                .padding(\n                    top = MaterialTheme.padding.medium,\n                    bottom = MaterialTheme.padding.small,\n                )\n                .clickable {\n                    val extDebugInfo = buildString {\n                        append(\n                            \"\"\"\n                            Extension name: ${extension.name} (lang: ${extension.lang}; package: ${extension.pkgName})\n                            Extension version: ${extension.versionName} (lib: ${extension.libVersion}; version code: ${extension.versionCode})\n                            NSFW: ${extension.isNsfw}\n                            \"\"\".trimIndent(),\n                        )\n\n                        if (extension is Extension.Installed) {\n                            append(\"\\n\\n\")\n                            append(\n                                \"\"\"\n                                Update available: ${extension.hasUpdate}\n                                Obsolete: ${extension.isObsolete}\n                                Shared: ${extension.isShared}\n                                Repository: ${extension.repoUrl}\n                                \"\"\".trimIndent(),\n                            )\n                        }\n                    }\n                    context.copyToClipboard(\"Extension Debug information\", extDebugInfo)\n                },\n            horizontalAlignment = Alignment.CenterHorizontally,\n        ) {\n            ExtensionIcon(\n                modifier = Modifier\n                    .size(112.dp),\n                extension = extension,\n                density = DisplayMetrics.DENSITY_XXXHIGH,\n            )\n\n            Text(\n                text = extension.name,\n                style = MaterialTheme.typography.headlineSmall,\n                textAlign = TextAlign.Center,\n            )\n\n            val strippedPkgName = extension.pkgName.substringAfter(\"eu.kanade.tachiyomi.extension.\")\n\n            Text(\n                text = strippedPkgName,\n                style = MaterialTheme.typography.bodySmall,\n            )\n        }\n\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(\n                    horizontal = MaterialTheme.padding.extraLarge,\n                    vertical = MaterialTheme.padding.small,\n                ),\n            horizontalArrangement = Arrangement.SpaceEvenly,\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            InfoText(\n                modifier = Modifier.weight(1f),\n                primaryText = extension.versionName,\n                secondaryText = stringResource(MR.strings.ext_info_version),\n            )\n\n            InfoDivider()\n\n            InfoText(\n                modifier = Modifier.weight(if (extension.isNsfw) 1.5f else 1f),\n                primaryText = LocaleHelper.getSourceDisplayName(extension.lang, context),\n                secondaryText = stringResource(MR.strings.ext_info_language),\n            )\n\n            if (extension.isNsfw) {\n                InfoDivider()\n\n                InfoText(\n                    modifier = Modifier.weight(1f),\n                    primaryText = stringResource(MR.strings.ext_nsfw_short),\n                    primaryTextStyle = MaterialTheme.typography.bodyLarge.copy(\n                        color = MaterialTheme.colorScheme.error,\n                        fontWeight = FontWeight.Medium,\n                    ),\n                    secondaryText = stringResource(MR.strings.ext_info_age_rating),\n                    onClick = onClickAgeRating,\n                )\n            }\n        }\n\n        Row(\n            modifier = Modifier\n                .padding(horizontal = MaterialTheme.padding.medium)\n                .padding(top = MaterialTheme.padding.small),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.medium),\n        ) {\n            OutlinedButton(\n                modifier = Modifier.weight(1f),\n                onClick = onClickUninstall,\n            ) {\n                Text(stringResource(MR.strings.ext_uninstall))\n            }\n\n            if (onClickAppInfo != null) {\n                Button(\n                    modifier = Modifier.weight(1f),\n                    onClick = onClickAppInfo,\n                ) {\n                    Text(\n                        text = stringResource(MR.strings.ext_app_info),\n                        color = MaterialTheme.colorScheme.onPrimary,\n                    )\n                }\n            }\n        }\n\n        TextPreferenceWidget(\n            modifier = Modifier.padding(horizontal = MaterialTheme.padding.small),\n            title = stringResource(MR.strings.pref_incognito_mode),\n            subtitle = stringResource(MR.strings.pref_incognito_mode_extension_summary),\n            icon = ImageVector.vectorResource(R.drawable.ic_glasses_24dp),\n            widget = {\n                Row(\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    Switch(\n                        checked = extIncognitoMode,\n                        onCheckedChange = onExtIncognitoChange,\n                        modifier = Modifier.padding(start = TrailingWidgetBuffer),\n                    )\n                }\n            },\n        )\n\n        HorizontalDivider()\n    }\n}\n\n@Composable\nprivate fun InfoText(\n    primaryText: String,\n    secondaryText: String,\n    modifier: Modifier = Modifier,\n    primaryTextStyle: TextStyle = MaterialTheme.typography.bodyLarge,\n    onClick: (() -> Unit)? = null,\n) {\n    val clickableModifier = if (onClick != null) {\n        Modifier.clickable(interactionSource = null, indication = null, onClick = onClick)\n    } else {\n        Modifier\n    }\n\n    Column(\n        modifier = modifier.then(clickableModifier),\n        horizontalAlignment = Alignment.CenterHorizontally,\n        verticalArrangement = Arrangement.Center,\n    ) {\n        Text(\n            text = primaryText,\n            textAlign = TextAlign.Center,\n            style = primaryTextStyle,\n        )\n\n        Text(\n            text = secondaryText + if (onClick != null) \" ⓘ\" else \"\",\n            textAlign = TextAlign.Center,\n            style = MaterialTheme.typography.bodyMedium,\n            color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.5f),\n        )\n    }\n}\n\n@Composable\nprivate fun InfoDivider() {\n    VerticalDivider(\n        modifier = Modifier.height(20.dp),\n    )\n}\n\n@Composable\nprivate fun SourceSwitchPreference(\n    source: ExtensionSourceItem,\n    onClickSourcePreferences: (sourceId: Long) -> Unit,\n    onClickSource: (sourceId: Long) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val context = LocalContext.current\n\n    TextPreferenceWidget(\n        modifier = modifier,\n        title = if (source.labelAsName) {\n            source.source.toString()\n        } else {\n            LocaleHelper.getSourceDisplayName(source.source.lang, context)\n        },\n        widget = {\n            Row(\n                verticalAlignment = Alignment.CenterVertically,\n            ) {\n                if (source.source is ConfigurableSource) {\n                    IconButton(onClick = { onClickSourcePreferences(source.source.id) }) {\n                        Icon(\n                            imageVector = Icons.Outlined.Settings,\n                            contentDescription = stringResource(MR.strings.label_settings),\n                            tint = MaterialTheme.colorScheme.onSurface,\n                        )\n                    }\n                }\n\n                Switch(\n                    checked = source.enabled,\n                    onCheckedChange = null,\n                    modifier = Modifier.padding(start = TrailingWidgetBuffer),\n                )\n            }\n        },\n        onPreferenceClick = { onClickSource(source.source.id) },\n    )\n}\n\n@Composable\nprivate fun NsfwWarningDialog(\n    onClickConfirm: () -> Unit,\n) {\n    AlertDialog(\n        text = {\n            Text(text = stringResource(MR.strings.ext_nsfw_warning))\n        },\n        confirmButton = {\n            TextButton(onClick = onClickConfirm) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        onDismissRequest = onClickConfirm,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget\nimport eu.kanade.tachiyomi.ui.browse.extension.ExtensionFilterState\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\n\n@Composable\nfun ExtensionFilterScreen(\n    navigateUp: () -> Unit,\n    state: ExtensionFilterState.Success,\n    onClickToggle: (String) -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                title = stringResource(MR.strings.label_extensions),\n                navigateUp = navigateUp,\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { contentPadding ->\n        if (state.isEmpty) {\n            EmptyScreen(\n                stringRes = MR.strings.empty_screen,\n                modifier = Modifier.padding(contentPadding),\n            )\n            return@Scaffold\n        }\n        ExtensionFilterContent(\n            contentPadding = contentPadding,\n            state = state,\n            onClickLang = onClickToggle,\n        )\n    }\n}\n\n@Composable\nprivate fun ExtensionFilterContent(\n    contentPadding: PaddingValues,\n    state: ExtensionFilterState.Success,\n    onClickLang: (String) -> Unit,\n) {\n    val context = LocalContext.current\n    LazyColumn(\n        contentPadding = contentPadding,\n    ) {\n        items(state.languages) { language ->\n            SwitchPreferenceWidget(\n                modifier = Modifier.animateItem(),\n                title = LocaleHelper.getSourceDisplayName(language, context),\n                checked = language in state.enabledLanguages,\n                onCheckedChanged = { onClickLang(language) },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.animation.core.animateDpAsState\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.FlowRow\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material.icons.outlined.GetApp\nimport androidx.compose.material.icons.outlined.Public\nimport androidx.compose.material.icons.outlined.Refresh\nimport androidx.compose.material.icons.outlined.Settings\nimport androidx.compose.material.icons.outlined.VerifiedUser\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProvideTextStyle\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.presentation.browse.components.BaseBrowseItem\nimport eu.kanade.presentation.browse.components.ExtensionIcon\nimport eu.kanade.presentation.components.WarningBanner\nimport eu.kanade.presentation.manga.components.DotSeparatorNoSpaceText\nimport eu.kanade.presentation.more.settings.screen.browse.ExtensionReposScreen\nimport eu.kanade.presentation.util.animateItemFastScroll\nimport eu.kanade.presentation.util.rememberRequestPackageInstallsPermissionState\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.ui.browse.extension.ExtensionUiModel\nimport eu.kanade.tachiyomi.ui.browse.extension.ExtensionsScreenModel\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.material.PullRefresh\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.components.material.topSmallPaddingValues\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.EmptyScreenAction\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.theme.header\nimport tachiyomi.presentation.core.util.plus\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun ExtensionScreen(\n    state: ExtensionsScreenModel.State,\n    contentPadding: PaddingValues,\n    searchQuery: String?,\n    onLongClickItem: (Extension) -> Unit,\n    onClickItemCancel: (Extension) -> Unit,\n    onOpenWebView: (Extension.Available) -> Unit,\n    onInstallExtension: (Extension.Available) -> Unit,\n    onUninstallExtension: (Extension) -> Unit,\n    onUpdateExtension: (Extension.Installed) -> Unit,\n    onTrustExtension: (Extension.Untrusted) -> Unit,\n    onOpenExtension: (Extension.Installed) -> Unit,\n    onClickUpdateAll: () -> Unit,\n    onRefresh: () -> Unit,\n) {\n    val navigator = LocalNavigator.currentOrThrow\n\n    PullRefresh(\n        refreshing = state.isRefreshing,\n        onRefresh = onRefresh,\n        enabled = !state.isLoading,\n    ) {\n        when {\n            state.isLoading -> LoadingScreen(Modifier.padding(contentPadding))\n            state.isEmpty -> {\n                val msg = if (!searchQuery.isNullOrEmpty()) {\n                    MR.strings.no_results_found\n                } else {\n                    MR.strings.empty_screen\n                }\n                EmptyScreen(\n                    stringRes = msg,\n                    modifier = Modifier.padding(contentPadding),\n                    actions = persistentListOf(\n                        EmptyScreenAction(\n                            stringRes = MR.strings.label_extension_repos,\n                            icon = Icons.Outlined.Settings,\n                            onClick = { navigator.push(ExtensionReposScreen()) },\n                        ),\n                    ),\n                )\n            }\n            else -> {\n                ExtensionContent(\n                    state = state,\n                    contentPadding = contentPadding,\n                    onLongClickItem = onLongClickItem,\n                    onClickItemCancel = onClickItemCancel,\n                    onOpenWebView = onOpenWebView,\n                    onInstallExtension = onInstallExtension,\n                    onUninstallExtension = onUninstallExtension,\n                    onUpdateExtension = onUpdateExtension,\n                    onTrustExtension = onTrustExtension,\n                    onOpenExtension = onOpenExtension,\n                    onClickUpdateAll = onClickUpdateAll,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ExtensionContent(\n    state: ExtensionsScreenModel.State,\n    contentPadding: PaddingValues,\n    onLongClickItem: (Extension) -> Unit,\n    onClickItemCancel: (Extension) -> Unit,\n    onOpenWebView: (Extension.Available) -> Unit,\n    onInstallExtension: (Extension.Available) -> Unit,\n    onUninstallExtension: (Extension) -> Unit,\n    onUpdateExtension: (Extension.Installed) -> Unit,\n    onTrustExtension: (Extension.Untrusted) -> Unit,\n    onOpenExtension: (Extension.Installed) -> Unit,\n    onClickUpdateAll: () -> Unit,\n) {\n    val context = LocalContext.current\n    var trustState by remember { mutableStateOf<Extension.Untrusted?>(null) }\n    val installGranted = rememberRequestPackageInstallsPermissionState(initialValue = true)\n\n    FastScrollLazyColumn(\n        contentPadding = contentPadding + topSmallPaddingValues,\n    ) {\n        if (!installGranted && state.installer?.requiresSystemPermission == true) {\n            item(key = \"extension-permissions-warning\") {\n                WarningBanner(\n                    textRes = MR.strings.ext_permission_install_apps_warning,\n                    modifier = Modifier.clickable {\n                        context.launchRequestPackageInstallsPermission()\n                    },\n                )\n            }\n        }\n\n        state.items.forEach { (header, items) ->\n            item(\n                contentType = \"header\",\n                key = \"extensionHeader-${header.hashCode()}\",\n            ) {\n                when (header) {\n                    is ExtensionUiModel.Header.Resource -> {\n                        val action: @Composable RowScope.() -> Unit =\n                            if (header.textRes == MR.strings.ext_updates_pending) {\n                                {\n                                    Button(onClick = { onClickUpdateAll() }) {\n                                        Text(\n                                            text = stringResource(MR.strings.ext_update_all),\n                                            style = LocalTextStyle.current.copy(\n                                                color = MaterialTheme.colorScheme.onPrimary,\n                                            ),\n                                        )\n                                    }\n                                }\n                            } else {\n                                {}\n                            }\n                        ExtensionHeader(\n                            textRes = header.textRes,\n                            modifier = Modifier.animateItemFastScroll(),\n                            action = action,\n                        )\n                    }\n                    is ExtensionUiModel.Header.Text -> {\n                        ExtensionHeader(\n                            text = header.text,\n                            modifier = Modifier.animateItemFastScroll(),\n                        )\n                    }\n                }\n            }\n\n            items(\n                items = items,\n                contentType = { \"item\" },\n                key = { item ->\n                    when (item.extension) {\n                        is Extension.Untrusted -> \"extension-untrusted-${item.hashCode()}\"\n                        is Extension.Installed -> \"extension-installed-${item.hashCode()}\"\n                        is Extension.Available -> \"extension-available-${item.hashCode()}\"\n                    }\n                },\n            ) { item ->\n                ExtensionItem(\n                    modifier = Modifier.animateItemFastScroll(),\n                    item = item,\n                    onClickItem = {\n                        when (it) {\n                            is Extension.Available -> onInstallExtension(it)\n                            is Extension.Installed -> onOpenExtension(it)\n                            is Extension.Untrusted -> {\n                                trustState = it\n                            }\n                        }\n                    },\n                    onLongClickItem = onLongClickItem,\n                    onClickItemSecondaryAction = {\n                        when (it) {\n                            is Extension.Available -> onOpenWebView(it)\n                            is Extension.Installed -> onOpenExtension(it)\n                            else -> {}\n                        }\n                    },\n                    onClickItemCancel = onClickItemCancel,\n                    onClickItemAction = {\n                        when (it) {\n                            is Extension.Available -> onInstallExtension(it)\n                            is Extension.Installed -> {\n                                if (it.hasUpdate) {\n                                    onUpdateExtension(it)\n                                } else {\n                                    onOpenExtension(it)\n                                }\n                            }\n                            is Extension.Untrusted -> {\n                                trustState = it\n                            }\n                        }\n                    },\n                )\n            }\n        }\n    }\n    if (trustState != null) {\n        ExtensionTrustDialog(\n            onClickConfirm = {\n                onTrustExtension(trustState!!)\n                trustState = null\n            },\n            onClickDismiss = {\n                onUninstallExtension(trustState!!)\n                trustState = null\n            },\n            onDismissRequest = {\n                trustState = null\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun ExtensionItem(\n    item: ExtensionUiModel.Item,\n    onClickItem: (Extension) -> Unit,\n    onLongClickItem: (Extension) -> Unit,\n    onClickItemCancel: (Extension) -> Unit,\n    onClickItemAction: (Extension) -> Unit,\n    onClickItemSecondaryAction: (Extension) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val (extension, installStep) = item\n    BaseBrowseItem(\n        modifier = modifier\n            .combinedClickable(\n                onClick = { onClickItem(extension) },\n                onLongClick = { onLongClickItem(extension) },\n            ),\n        onClickItem = { onClickItem(extension) },\n        onLongClickItem = { onLongClickItem(extension) },\n        icon = {\n            Box(\n                modifier = Modifier\n                    .size(40.dp),\n                contentAlignment = Alignment.Center,\n            ) {\n                val idle = installStep.isCompleted()\n                if (!idle) {\n                    CircularProgressIndicator(\n                        modifier = Modifier.size(40.dp),\n                        strokeWidth = 2.dp,\n                    )\n                }\n\n                val padding by animateDpAsState(\n                    targetValue = if (idle) 0.dp else 8.dp,\n                    label = \"iconPadding\",\n                )\n                ExtensionIcon(\n                    extension = extension,\n                    modifier = Modifier\n                        .matchParentSize()\n                        .padding(padding),\n                )\n            }\n        },\n        action = {\n            ExtensionItemActions(\n                extension = extension,\n                installStep = installStep,\n                onClickItemCancel = onClickItemCancel,\n                onClickItemAction = onClickItemAction,\n                onClickItemSecondaryAction = onClickItemSecondaryAction,\n            )\n        },\n    ) {\n        ExtensionItemContent(\n            extension = extension,\n            installStep = installStep,\n            modifier = Modifier.weight(1f),\n        )\n    }\n}\n\n@Composable\nprivate fun ExtensionItemContent(\n    extension: Extension,\n    installStep: InstallStep,\n    modifier: Modifier = Modifier,\n) {\n    Column(\n        modifier = modifier.padding(start = MaterialTheme.padding.medium),\n    ) {\n        Text(\n            text = extension.name,\n            maxLines = 1,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n        // Won't look good but it's not like we can ellipsize overflowing content\n        FlowRow(\n            modifier = Modifier.secondaryItemAlpha(),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n        ) {\n            ProvideTextStyle(value = MaterialTheme.typography.bodySmall) {\n                var hasAlreadyShownAnElement by remember { mutableStateOf(false) }\n                if (extension is Extension.Installed && extension.lang.isNotEmpty()) {\n                    hasAlreadyShownAnElement = true\n                    Text(\n                        text = LocaleHelper.getSourceDisplayName(extension.lang, LocalContext.current),\n                    )\n                }\n\n                if (extension.versionName.isNotEmpty()) {\n                    if (hasAlreadyShownAnElement) DotSeparatorNoSpaceText()\n                    hasAlreadyShownAnElement = true\n                    Text(\n                        text = extension.versionName,\n                    )\n                }\n\n                val warning = when {\n                    extension is Extension.Untrusted -> MR.strings.ext_untrusted\n                    extension is Extension.Installed && extension.isObsolete -> MR.strings.ext_obsolete\n                    extension.isNsfw -> MR.strings.ext_nsfw_short\n                    else -> null\n                }\n                if (warning != null) {\n                    if (hasAlreadyShownAnElement) DotSeparatorNoSpaceText()\n                    hasAlreadyShownAnElement = true\n                    Text(\n                        text = stringResource(warning).uppercase(),\n                        color = MaterialTheme.colorScheme.error,\n                        maxLines = 1,\n                        overflow = TextOverflow.Ellipsis,\n                    )\n                }\n                if (extension is Extension.Installed && !extension.isShared) {\n                    if (hasAlreadyShownAnElement) DotSeparatorNoSpaceText()\n                    Text(\n                        text = stringResource(MR.strings.ext_installer_private),\n                    )\n                }\n\n                if (!installStep.isCompleted()) {\n                    DotSeparatorNoSpaceText()\n                    Text(\n                        text = when (installStep) {\n                            InstallStep.Pending -> stringResource(MR.strings.ext_pending)\n                            InstallStep.Downloading -> stringResource(MR.strings.ext_downloading)\n                            InstallStep.Installing -> stringResource(MR.strings.ext_installing)\n                            else -> error(\"Must not show non-install process text\")\n                        },\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ExtensionItemActions(\n    extension: Extension,\n    installStep: InstallStep,\n    modifier: Modifier = Modifier,\n    onClickItemCancel: (Extension) -> Unit = {},\n    onClickItemAction: (Extension) -> Unit = {},\n    onClickItemSecondaryAction: (Extension) -> Unit = {},\n) {\n    val isIdle = installStep.isCompleted()\n\n    Row(\n        modifier = modifier,\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n    ) {\n        when {\n            !isIdle -> {\n                IconButton(onClick = { onClickItemCancel(extension) }) {\n                    Icon(\n                        imageVector = Icons.Outlined.Close,\n                        contentDescription = stringResource(MR.strings.action_cancel),\n                    )\n                }\n            }\n            installStep == InstallStep.Error -> {\n                IconButton(onClick = { onClickItemAction(extension) }) {\n                    Icon(\n                        imageVector = Icons.Outlined.Refresh,\n                        contentDescription = stringResource(MR.strings.action_retry),\n                    )\n                }\n            }\n            installStep == InstallStep.Idle -> {\n                when (extension) {\n                    is Extension.Installed -> {\n                        IconButton(onClick = { onClickItemSecondaryAction(extension) }) {\n                            Icon(\n                                imageVector = Icons.Outlined.Settings,\n                                contentDescription = stringResource(MR.strings.action_settings),\n                            )\n                        }\n\n                        if (extension.hasUpdate) {\n                            IconButton(onClick = { onClickItemAction(extension) }) {\n                                Icon(\n                                    imageVector = Icons.Outlined.GetApp,\n                                    contentDescription = stringResource(MR.strings.ext_update),\n                                )\n                            }\n                        }\n                    }\n                    is Extension.Untrusted -> {\n                        IconButton(onClick = { onClickItemAction(extension) }) {\n                            Icon(\n                                imageVector = Icons.Outlined.VerifiedUser,\n                                contentDescription = stringResource(MR.strings.ext_trust),\n                            )\n                        }\n                    }\n                    is Extension.Available -> {\n                        if (extension.sources.isNotEmpty()) {\n                            IconButton(\n                                onClick = { onClickItemSecondaryAction(extension) },\n                            ) {\n                                Icon(\n                                    imageVector = Icons.Outlined.Public,\n                                    contentDescription = stringResource(MR.strings.action_open_in_web_view),\n                                )\n                            }\n                        }\n\n                        IconButton(onClick = { onClickItemAction(extension) }) {\n                            Icon(\n                                imageVector = Icons.Outlined.GetApp,\n                                contentDescription = stringResource(MR.strings.ext_install),\n                            )\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ExtensionHeader(\n    textRes: StringResource,\n    modifier: Modifier = Modifier,\n    action: @Composable RowScope.() -> Unit = {},\n) {\n    ExtensionHeader(\n        text = stringResource(textRes),\n        modifier = modifier,\n        action = action,\n    )\n}\n\n@Composable\nprivate fun ExtensionHeader(\n    text: String,\n    modifier: Modifier = Modifier,\n    action: @Composable RowScope.() -> Unit = {},\n) {\n    Row(\n        modifier = modifier.padding(horizontal = MaterialTheme.padding.medium),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        Text(\n            text = text,\n            modifier = Modifier\n                .padding(vertical = 8.dp)\n                .weight(1f),\n            style = MaterialTheme.typography.header,\n        )\n        action()\n    }\n}\n\n@Composable\nprivate fun ExtensionTrustDialog(\n    onClickConfirm: () -> Unit,\n    onClickDismiss: () -> Unit,\n    onDismissRequest: () -> Unit,\n) {\n    AlertDialog(\n        title = {\n            Text(text = stringResource(MR.strings.untrusted_extension))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.untrusted_extension_message))\n        },\n        confirmButton = {\n            TextButton(onClick = onClickConfirm) {\n                Text(text = stringResource(MR.strings.ext_trust))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onClickDismiss) {\n                Text(text = stringResource(MR.strings.ext_uninstall))\n            }\n        },\n        onDismissRequest = onDismissRequest,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/GlobalSearchScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.State\nimport androidx.compose.ui.Modifier\nimport eu.kanade.presentation.browse.components.GlobalSearchCardRow\nimport eu.kanade.presentation.browse.components.GlobalSearchErrorResultItem\nimport eu.kanade.presentation.browse.components.GlobalSearchLoadingResultItem\nimport eu.kanade.presentation.browse.components.GlobalSearchResultItem\nimport eu.kanade.presentation.browse.components.GlobalSearchToolbar\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchItemResult\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchScreenModel\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.presentation.core.components.material.Scaffold\n\n@Composable\nfun GlobalSearchScreen(\n    state: SearchScreenModel.State,\n    navigateUp: () -> Unit,\n    onChangeSearchQuery: (String?) -> Unit,\n    onSearch: (String) -> Unit,\n    onChangeSearchFilter: (SourceFilter) -> Unit,\n    onToggleResults: () -> Unit,\n    getManga: @Composable (Manga) -> State<Manga>,\n    onClickSource: (CatalogueSource) -> Unit,\n    onClickItem: (Manga) -> Unit,\n    onLongClickItem: (Manga) -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            GlobalSearchToolbar(\n                searchQuery = state.searchQuery,\n                progress = state.progress,\n                total = state.total,\n                navigateUp = navigateUp,\n                onChangeSearchQuery = onChangeSearchQuery,\n                onSearch = onSearch,\n                hideSourceFilter = false,\n                sourceFilter = state.sourceFilter,\n                onChangeSearchFilter = onChangeSearchFilter,\n                onlyShowHasResults = state.onlyShowHasResults,\n                onToggleResults = onToggleResults,\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { paddingValues ->\n        GlobalSearchContent(\n            items = state.filteredItems,\n            contentPadding = paddingValues,\n            getManga = getManga,\n            onClickSource = onClickSource,\n            onClickItem = onClickItem,\n            onLongClickItem = onLongClickItem,\n        )\n    }\n}\n\n@Composable\ninternal fun GlobalSearchContent(\n    items: Map<CatalogueSource, SearchItemResult>,\n    contentPadding: PaddingValues,\n    getManga: @Composable (Manga) -> State<Manga>,\n    onClickSource: (CatalogueSource) -> Unit,\n    onClickItem: (Manga) -> Unit,\n    onLongClickItem: (Manga) -> Unit,\n    fromSourceId: Long? = null,\n) {\n    LazyColumn(\n        contentPadding = contentPadding,\n    ) {\n        items.forEach { (source, result) ->\n            item(key = source.id) {\n                GlobalSearchResultItem(\n                    title = fromSourceId?.let {\n                        \"▶ ${source.name}\".takeIf { source.id == fromSourceId }\n                    } ?: source.name,\n                    subtitle = LocaleHelper.getLocalizedDisplayName(source.lang),\n                    onClick = { onClickSource(source) },\n                    modifier = Modifier.animateItem(),\n                ) {\n                    when (result) {\n                        SearchItemResult.Loading -> {\n                            GlobalSearchLoadingResultItem()\n                        }\n                        is SearchItemResult.Success -> {\n                            GlobalSearchCardRow(\n                                titles = result.result,\n                                getManga = getManga,\n                                onClick = onClickItem,\n                                onLongClick = onLongClickItem,\n                            )\n                        }\n                        is SearchItemResult.Error -> {\n                            GlobalSearchErrorResultItem(message = result.throwable.message)\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/MigrateSearchScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.State\nimport eu.kanade.presentation.browse.components.GlobalSearchToolbar\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchScreenModel\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.presentation.core.components.material.Scaffold\n\n@Composable\nfun MigrateSearchScreen(\n    state: SearchScreenModel.State,\n    fromSourceId: Long?,\n    navigateUp: () -> Unit,\n    onChangeSearchQuery: (String?) -> Unit,\n    onSearch: (String) -> Unit,\n    onChangeSearchFilter: (SourceFilter) -> Unit,\n    onToggleResults: () -> Unit,\n    getManga: @Composable (Manga) -> State<Manga>,\n    onClickSource: (CatalogueSource) -> Unit,\n    onClickItem: (Manga) -> Unit,\n    onLongClickItem: (Manga) -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            GlobalSearchToolbar(\n                searchQuery = state.searchQuery,\n                progress = state.progress,\n                total = state.total,\n                navigateUp = navigateUp,\n                onChangeSearchQuery = onChangeSearchQuery,\n                onSearch = onSearch,\n                hideSourceFilter = true,\n                sourceFilter = state.sourceFilter,\n                onChangeSearchFilter = onChangeSearchFilter,\n                onlyShowHasResults = state.onlyShowHasResults,\n                onToggleResults = onToggleResults,\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { paddingValues ->\n        GlobalSearchContent(\n            fromSourceId = fromSourceId,\n            items = state.filteredItems,\n            contentPadding = paddingValues,\n            getManga = getManga,\n            onClickSource = onClickSource,\n            onClickItem = onClickItem,\n            onLongClickItem = onLongClickItem,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/MigrateSourceScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.ArrowDownward\nimport androidx.compose.material.icons.outlined.ArrowUpward\nimport androidx.compose.material.icons.outlined.Numbers\nimport androidx.compose.material.icons.outlined.SortByAlpha\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.style.TextOverflow\nimport eu.kanade.domain.source.interactor.SetMigrateSorting\nimport eu.kanade.presentation.browse.components.BaseSourceItem\nimport eu.kanade.presentation.browse.components.SourceIcon\nimport eu.kanade.tachiyomi.ui.browse.migration.sources.MigrateSourceScreenModel\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport kotlinx.collections.immutable.ImmutableList\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.Badge\nimport tachiyomi.presentation.core.components.BadgeGroup\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.Scroller.STICKY_HEADER_KEY_PREFIX\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.components.material.topSmallPaddingValues\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.theme.header\nimport tachiyomi.presentation.core.util.plus\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun MigrateSourceScreen(\n    state: MigrateSourceScreenModel.State,\n    contentPadding: PaddingValues,\n    onClickItem: (Source) -> Unit,\n    onToggleSortingDirection: () -> Unit,\n    onToggleSortingMode: () -> Unit,\n) {\n    val context = LocalContext.current\n    when {\n        state.isLoading -> LoadingScreen(Modifier.padding(contentPadding))\n        state.isEmpty -> EmptyScreen(\n            stringRes = MR.strings.information_empty_library,\n            modifier = Modifier.padding(contentPadding),\n        )\n        else ->\n            MigrateSourceList(\n                list = state.items,\n                contentPadding = contentPadding,\n                onClickItem = onClickItem,\n                onLongClickItem = { source ->\n                    val sourceId = source.id.toString()\n                    context.copyToClipboard(sourceId, sourceId)\n                },\n                sortingMode = state.sortingMode,\n                onToggleSortingMode = onToggleSortingMode,\n                sortingDirection = state.sortingDirection,\n                onToggleSortingDirection = onToggleSortingDirection,\n            )\n    }\n}\n\n@Composable\nprivate fun MigrateSourceList(\n    list: ImmutableList<Pair<Source, Long>>,\n    contentPadding: PaddingValues,\n    onClickItem: (Source) -> Unit,\n    onLongClickItem: (Source) -> Unit,\n    sortingMode: SetMigrateSorting.Mode,\n    onToggleSortingMode: () -> Unit,\n    sortingDirection: SetMigrateSorting.Direction,\n    onToggleSortingDirection: () -> Unit,\n) {\n    ScrollbarLazyColumn(\n        contentPadding = contentPadding + topSmallPaddingValues,\n    ) {\n        stickyHeader(key = STICKY_HEADER_KEY_PREFIX) {\n            Row(\n                modifier = Modifier\n                    .background(MaterialTheme.colorScheme.background)\n                    .padding(start = MaterialTheme.padding.medium),\n                verticalAlignment = Alignment.CenterVertically,\n            ) {\n                Text(\n                    text = stringResource(MR.strings.migration_selection_prompt),\n                    modifier = Modifier.weight(1f),\n                    style = MaterialTheme.typography.header,\n                )\n\n                IconButton(onClick = onToggleSortingMode) {\n                    when (sortingMode) {\n                        SetMigrateSorting.Mode.ALPHABETICAL -> Icon(\n                            Icons.Outlined.SortByAlpha,\n                            contentDescription = stringResource(MR.strings.action_sort_alpha),\n                        )\n                        SetMigrateSorting.Mode.TOTAL -> Icon(\n                            Icons.Outlined.Numbers,\n                            contentDescription = stringResource(MR.strings.action_sort_count),\n                        )\n                    }\n                }\n                IconButton(onClick = onToggleSortingDirection) {\n                    when (sortingDirection) {\n                        SetMigrateSorting.Direction.ASCENDING -> Icon(\n                            Icons.Outlined.ArrowUpward,\n                            contentDescription = stringResource(MR.strings.action_asc),\n                        )\n                        SetMigrateSorting.Direction.DESCENDING -> Icon(\n                            Icons.Outlined.ArrowDownward,\n                            contentDescription = stringResource(MR.strings.action_desc),\n                        )\n                    }\n                }\n            }\n        }\n\n        items(\n            items = list,\n            key = { (source, _) -> \"migrate-${source.id}\" },\n        ) { (source, count) ->\n            MigrateSourceItem(\n                modifier = Modifier.animateItem(),\n                source = source,\n                count = count,\n                onClickItem = { onClickItem(source) },\n                onLongClickItem = { onLongClickItem(source) },\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun MigrateSourceItem(\n    source: Source,\n    count: Long,\n    onClickItem: () -> Unit,\n    onLongClickItem: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    BaseSourceItem(\n        modifier = modifier,\n        source = source,\n        showLanguageInContent = source.lang != \"\",\n        onClickItem = onClickItem,\n        onLongClickItem = onLongClickItem,\n        icon = { SourceIcon(source = source) },\n        action = {\n            BadgeGroup {\n                Badge(text = \"$count\")\n            }\n        },\n        content = { _, sourceLangString ->\n            Column(\n                modifier = Modifier\n                    .padding(horizontal = MaterialTheme.padding.medium)\n                    .weight(1f),\n            ) {\n                Text(\n                    text = source.name.ifBlank { source.id.toString() },\n                    maxLines = 1,\n                    overflow = TextOverflow.Ellipsis,\n                    style = MaterialTheme.typography.bodyMedium,\n                )\n                Row(\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    if (sourceLangString != null) {\n                        Text(\n                            modifier = Modifier.secondaryItemAlpha(),\n                            text = sourceLangString,\n                            maxLines = 1,\n                            overflow = TextOverflow.Ellipsis,\n                            style = MaterialTheme.typography.bodySmall,\n                        )\n                    }\n                    if (source.isStub) {\n                        Text(\n                            modifier = Modifier.secondaryItemAlpha(),\n                            text = stringResource(MR.strings.not_installed),\n                            maxLines = 1,\n                            overflow = TextOverflow.Ellipsis,\n                            style = MaterialTheme.typography.bodySmall,\n                            color = MaterialTheme.colorScheme.error,\n                        )\n                    }\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material3.Checkbox\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.presentation.browse.components.BaseSourceItem\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget\nimport eu.kanade.presentation.util.animateItemFastScroll\nimport eu.kanade.tachiyomi.ui.browse.source.SourcesFilterScreenModel\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\n\n@Composable\nfun SourcesFilterScreen(\n    navigateUp: () -> Unit,\n    state: SourcesFilterScreenModel.State.Success,\n    onClickLanguage: (String) -> Unit,\n    onClickSource: (Source) -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                title = stringResource(MR.strings.label_sources),\n                navigateUp = navigateUp,\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { contentPadding ->\n        if (state.isEmpty) {\n            EmptyScreen(\n                stringRes = MR.strings.source_filter_empty_screen,\n                modifier = Modifier.padding(contentPadding),\n            )\n            return@Scaffold\n        }\n        SourcesFilterContent(\n            contentPadding = contentPadding,\n            state = state,\n            onClickLanguage = onClickLanguage,\n            onClickSource = onClickSource,\n        )\n    }\n}\n\n@Composable\nprivate fun SourcesFilterContent(\n    contentPadding: PaddingValues,\n    state: SourcesFilterScreenModel.State.Success,\n    onClickLanguage: (String) -> Unit,\n    onClickSource: (Source) -> Unit,\n) {\n    FastScrollLazyColumn(\n        contentPadding = contentPadding,\n    ) {\n        state.items.forEach { (language, sources) ->\n            val enabled = language in state.enabledLanguages\n            item(\n                key = language,\n                contentType = \"source-filter-header\",\n            ) {\n                SourcesFilterHeader(\n                    modifier = Modifier.animateItemFastScroll(),\n                    language = language,\n                    enabled = enabled,\n                    onClickItem = onClickLanguage,\n                )\n            }\n            if (enabled) {\n                items(\n                    items = sources,\n                    key = { \"source-filter-${it.key()}\" },\n                    contentType = { \"source-filter-item\" },\n                ) { source ->\n                    SourcesFilterItem(\n                        modifier = Modifier.animateItemFastScroll(),\n                        source = source,\n                        enabled = \"${source.id}\" !in state.disabledSources,\n                        onClickItem = onClickSource,\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun SourcesFilterHeader(\n    language: String,\n    enabled: Boolean,\n    onClickItem: (String) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    SwitchPreferenceWidget(\n        modifier = modifier,\n        title = LocaleHelper.getSourceDisplayName(language, LocalContext.current),\n        checked = enabled,\n        onCheckedChanged = { onClickItem(language) },\n    )\n}\n\n@Composable\nprivate fun SourcesFilterItem(\n    source: Source,\n    enabled: Boolean,\n    onClickItem: (Source) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    BaseSourceItem(\n        modifier = modifier,\n        source = source,\n        showLanguageInContent = false,\n        onClickItem = { onClickItem(source) },\n        action = {\n            Checkbox(checked = enabled, onCheckedChange = null)\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt",
    "content": "package eu.kanade.presentation.browse\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.PushPin\nimport androidx.compose.material.icons.outlined.PushPin\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.browse.components.BaseSourceItem\nimport eu.kanade.tachiyomi.ui.browse.source.SourcesScreenModel\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel.Listing\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport tachiyomi.domain.source.model.Pin\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.material.SECONDARY_ALPHA\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.components.material.topSmallPaddingValues\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.theme.header\nimport tachiyomi.presentation.core.util.plus\nimport tachiyomi.source.local.isLocal\n\n@Composable\nfun SourcesScreen(\n    state: SourcesScreenModel.State,\n    contentPadding: PaddingValues,\n    onClickItem: (Source, Listing) -> Unit,\n    onClickPin: (Source) -> Unit,\n    onLongClickItem: (Source) -> Unit,\n) {\n    when {\n        state.isLoading -> LoadingScreen(Modifier.padding(contentPadding))\n        state.isEmpty -> EmptyScreen(\n            stringRes = MR.strings.source_empty_screen,\n            modifier = Modifier.padding(contentPadding),\n        )\n        else -> {\n            ScrollbarLazyColumn(\n                contentPadding = contentPadding + topSmallPaddingValues,\n            ) {\n                items(\n                    items = state.items,\n                    contentType = {\n                        when (it) {\n                            is SourceUiModel.Header -> \"header\"\n                            is SourceUiModel.Item -> \"item\"\n                        }\n                    },\n                    key = {\n                        when (it) {\n                            is SourceUiModel.Header -> it.hashCode()\n                            is SourceUiModel.Item -> \"source-${it.source.key()}\"\n                        }\n                    },\n                ) { model ->\n                    when (model) {\n                        is SourceUiModel.Header -> {\n                            SourceHeader(\n                                modifier = Modifier.animateItem(),\n                                language = model.language,\n                            )\n                        }\n                        is SourceUiModel.Item -> SourceItem(\n                            modifier = Modifier.animateItem(),\n                            source = model.source,\n                            onClickItem = onClickItem,\n                            onLongClickItem = onLongClickItem,\n                            onClickPin = onClickPin,\n                        )\n                    }\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun SourceHeader(\n    language: String,\n    modifier: Modifier = Modifier,\n) {\n    val context = LocalContext.current\n    Text(\n        text = LocaleHelper.getSourceDisplayName(language, context),\n        modifier = modifier\n            .padding(horizontal = MaterialTheme.padding.medium, vertical = MaterialTheme.padding.small),\n        style = MaterialTheme.typography.header,\n    )\n}\n\n@Composable\nprivate fun SourceItem(\n    source: Source,\n    onClickItem: (Source, Listing) -> Unit,\n    onLongClickItem: (Source) -> Unit,\n    onClickPin: (Source) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    BaseSourceItem(\n        modifier = modifier,\n        source = source,\n        onClickItem = { onClickItem(source, Listing.Popular) },\n        onLongClickItem = { onLongClickItem(source) },\n        action = {\n            if (source.supportsLatest) {\n                TextButton(onClick = { onClickItem(source, Listing.Latest) }) {\n                    Text(\n                        text = stringResource(MR.strings.latest),\n                        style = LocalTextStyle.current.copy(\n                            color = MaterialTheme.colorScheme.primary,\n                        ),\n                    )\n                }\n            }\n            SourcePinButton(\n                isPinned = Pin.Pinned in source.pin,\n                onClick = { onClickPin(source) },\n            )\n        },\n    )\n}\n\n@Composable\nprivate fun SourcePinButton(\n    isPinned: Boolean,\n    onClick: () -> Unit,\n) {\n    val icon = if (isPinned) Icons.Filled.PushPin else Icons.Outlined.PushPin\n    val tint = if (isPinned) {\n        MaterialTheme.colorScheme.primary\n    } else {\n        MaterialTheme.colorScheme.onBackground.copy(\n            alpha = SECONDARY_ALPHA,\n        )\n    }\n    val description = if (isPinned) MR.strings.action_unpin else MR.strings.action_pin\n    IconButton(onClick = onClick) {\n        Icon(\n            imageVector = icon,\n            tint = tint,\n            contentDescription = stringResource(description),\n        )\n    }\n}\n\n@Composable\nfun SourceOptionsDialog(\n    source: Source,\n    onClickPin: () -> Unit,\n    onClickDisable: () -> Unit,\n    onDismiss: () -> Unit,\n) {\n    AlertDialog(\n        title = {\n            Text(text = source.visualName)\n        },\n        text = {\n            Column {\n                val textId = if (Pin.Pinned in source.pin) MR.strings.action_unpin else MR.strings.action_pin\n                Text(\n                    text = stringResource(textId),\n                    modifier = Modifier\n                        .clickable(onClick = onClickPin)\n                        .fillMaxWidth()\n                        .padding(vertical = 16.dp),\n                )\n                if (!source.isLocal()) {\n                    Text(\n                        text = stringResource(MR.strings.action_disable),\n                        modifier = Modifier\n                            .clickable(onClick = onClickDisable)\n                            .fillMaxWidth()\n                            .padding(vertical = 16.dp),\n                    )\n                }\n            }\n        },\n        onDismissRequest = onDismiss,\n        confirmButton = {},\n    )\n}\n\nsealed interface SourceUiModel {\n    data class Item(val source: Source) : SourceUiModel\n    data class Header(val language: String) : SourceUiModel\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BaseBrowseItem.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport tachiyomi.presentation.core.components.material.padding\n\n@Composable\nfun BaseBrowseItem(\n    modifier: Modifier = Modifier,\n    onClickItem: () -> Unit = {},\n    onLongClickItem: () -> Unit = {},\n    icon: @Composable RowScope.() -> Unit = {},\n    action: @Composable RowScope.() -> Unit = {},\n    content: @Composable RowScope.() -> Unit = {},\n) {\n    Row(\n        modifier = modifier\n            .combinedClickable(\n                onClick = onClickItem,\n                onLongClick = onLongClickItem,\n            )\n            .padding(horizontal = MaterialTheme.padding.medium, vertical = MaterialTheme.padding.small),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        icon()\n        content()\n        action()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BaseSourceItem.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.style.TextOverflow\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun BaseSourceItem(\n    source: Source,\n    modifier: Modifier = Modifier,\n    showLanguageInContent: Boolean = true,\n    onClickItem: () -> Unit = {},\n    onLongClickItem: () -> Unit = {},\n    icon: @Composable RowScope.(Source) -> Unit = defaultIcon,\n    action: @Composable RowScope.(Source) -> Unit = {},\n    content: @Composable RowScope.(Source, String?) -> Unit = defaultContent,\n) {\n    val sourceLangString = LocaleHelper.getSourceDisplayName(source.lang, LocalContext.current).takeIf {\n        showLanguageInContent\n    }\n    BaseBrowseItem(\n        modifier = modifier,\n        onClickItem = onClickItem,\n        onLongClickItem = onLongClickItem,\n        icon = { icon.invoke(this, source) },\n        action = { action.invoke(this, source) },\n        content = { content.invoke(this, source, sourceLangString) },\n    )\n}\n\nprivate val defaultIcon: @Composable RowScope.(Source) -> Unit = { source ->\n    SourceIcon(source = source)\n}\n\nprivate val defaultContent: @Composable RowScope.(Source, String?) -> Unit = { source, sourceLangString ->\n    Column(\n        modifier = Modifier\n            .padding(horizontal = MaterialTheme.padding.medium)\n            .weight(1f),\n    ) {\n        Text(\n            text = source.name,\n            maxLines = 1,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n        if (sourceLangString != null) {\n            Text(\n                modifier = Modifier.secondaryItemAlpha(),\n                text = sourceLangString,\n                maxLines = 1,\n                overflow = TextOverflow.Ellipsis,\n                style = MaterialTheme.typography.bodySmall,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseBadges.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.CollectionsBookmark\nimport androidx.compose.runtime.Composable\nimport tachiyomi.presentation.core.components.Badge\n\n@Composable\ninternal fun InLibraryBadge(enabled: Boolean) {\n    if (enabled) {\n        Badge(\n            imageVector = Icons.Outlined.CollectionsBookmark,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport android.util.DisplayMetrics\nimport androidx.compose.foundation.Image\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.aspectRatio\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Dangerous\nimport androidx.compose.material.icons.filled.Warning\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.State\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.produceState\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.ColorFilter\nimport androidx.compose.ui.graphics.ImageBitmap\nimport androidx.compose.ui.graphics.asImageBitmap\nimport androidx.compose.ui.graphics.painter.ColorPainter\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.res.imageResource\nimport androidx.compose.ui.res.painterResource\nimport androidx.compose.ui.unit.dp\nimport androidx.core.graphics.drawable.toBitmap\nimport coil3.compose.AsyncImage\nimport eu.kanade.domain.source.model.icon\nimport eu.kanade.presentation.util.rememberResourceBitmapPainter\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.util.ExtensionLoader\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.source.local.isLocal\n\nprivate val defaultModifier = Modifier\n    .height(40.dp)\n    .aspectRatio(1f)\n\n@Composable\nfun SourceIcon(\n    source: Source,\n    modifier: Modifier = Modifier,\n) {\n    val icon = source.icon\n\n    when {\n        source.isStub && icon == null -> {\n            Image(\n                imageVector = Icons.Filled.Warning,\n                contentDescription = null,\n                colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error),\n                modifier = modifier.then(defaultModifier),\n            )\n        }\n        icon != null -> {\n            Image(\n                bitmap = icon,\n                contentDescription = null,\n                modifier = modifier.then(defaultModifier),\n            )\n        }\n        source.isLocal() -> {\n            Image(\n                painter = painterResource(R.mipmap.ic_local_source),\n                contentDescription = null,\n                modifier = modifier.then(defaultModifier),\n            )\n        }\n        else -> {\n            Image(\n                painter = painterResource(R.mipmap.ic_default_source),\n                contentDescription = null,\n                modifier = modifier.then(defaultModifier),\n            )\n        }\n    }\n}\n\n@Composable\nfun ExtensionIcon(\n    extension: Extension,\n    modifier: Modifier = Modifier,\n    density: Int = DisplayMetrics.DENSITY_DEFAULT,\n) {\n    when (extension) {\n        is Extension.Available -> {\n            AsyncImage(\n                model = extension.iconUrl,\n                contentDescription = null,\n                placeholder = ColorPainter(Color(0x1F888888)),\n                error = rememberResourceBitmapPainter(id = R.drawable.cover_error),\n                modifier = modifier\n                    .clip(MaterialTheme.shapes.extraSmall),\n            )\n        }\n        is Extension.Installed -> {\n            val icon by extension.getIcon(density)\n            when (icon) {\n                Result.Loading -> Box(modifier = modifier)\n                is Result.Success -> Image(\n                    bitmap = (icon as Result.Success<ImageBitmap>).value,\n                    contentDescription = null,\n                    modifier = modifier,\n                )\n                Result.Error -> Image(\n                    bitmap = ImageBitmap.imageResource(id = R.mipmap.ic_default_source),\n                    contentDescription = null,\n                    modifier = modifier,\n                )\n            }\n        }\n        is Extension.Untrusted -> Image(\n            imageVector = Icons.Filled.Dangerous,\n            contentDescription = null,\n            colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error),\n            modifier = modifier.then(defaultModifier),\n        )\n    }\n}\n\n@Composable\nprivate fun Extension.getIcon(density: Int = DisplayMetrics.DENSITY_DEFAULT): State<Result<ImageBitmap>> {\n    val context = LocalContext.current\n    return produceState<Result<ImageBitmap>>(initialValue = Result.Loading, this) {\n        withIOContext {\n            value = try {\n                val appInfo = ExtensionLoader.getExtensionPackageInfoFromPkgName(context, pkgName)!!.applicationInfo!!\n                val appResources = context.packageManager.getResourcesForApplication(appInfo)\n                Result.Success(\n                    appResources.getDrawableForDensity(appInfo.icon, density, null)!!\n                        .toBitmap()\n                        .asImageBitmap(),\n                )\n            } catch (e: Exception) {\n                Result.Error\n            }\n        }\n    }\n}\n\nsealed class Result<out T> {\n    data object Loading : Result<Nothing>()\n    data object Error : Result<Nothing>()\n    data class Success<out T>(val value: T) : Result<T>()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.foundation.lazy.grid.GridItemSpan\nimport androidx.compose.foundation.lazy.grid.LazyVerticalGrid\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.unit.dp\nimport androidx.paging.LoadState\nimport androidx.paging.compose.LazyPagingItems\nimport eu.kanade.presentation.library.components.CommonMangaItemDefaults\nimport eu.kanade.presentation.library.components.MangaComfortableGridItem\nimport kotlinx.coroutines.flow.StateFlow\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun BrowseSourceComfortableGrid(\n    mangaList: LazyPagingItems<StateFlow<Manga>>,\n    columns: GridCells,\n    contentPadding: PaddingValues,\n    onMangaClick: (Manga) -> Unit,\n    onMangaLongClick: (Manga) -> Unit,\n) {\n    LazyVerticalGrid(\n        columns = columns,\n        contentPadding = contentPadding + PaddingValues(8.dp),\n        verticalArrangement = Arrangement.spacedBy(CommonMangaItemDefaults.GridVerticalSpacer),\n        horizontalArrangement = Arrangement.spacedBy(CommonMangaItemDefaults.GridHorizontalSpacer),\n    ) {\n        if (mangaList.loadState.prepend is LoadState.Loading) {\n            item(span = { GridItemSpan(maxLineSpan) }) {\n                BrowseSourceLoadingItem()\n            }\n        }\n\n        items(count = mangaList.itemCount) { index ->\n            val manga by mangaList[index]?.collectAsState() ?: return@items\n            BrowseSourceComfortableGridItem(\n                manga = manga,\n                onClick = { onMangaClick(manga) },\n                onLongClick = { onMangaLongClick(manga) },\n            )\n        }\n\n        if (mangaList.loadState.refresh is LoadState.Loading || mangaList.loadState.append is LoadState.Loading) {\n            item(span = { GridItemSpan(maxLineSpan) }) {\n                BrowseSourceLoadingItem()\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun BrowseSourceComfortableGridItem(\n    manga: Manga,\n    onClick: () -> Unit = {},\n    onLongClick: () -> Unit = onClick,\n) {\n    MangaComfortableGridItem(\n        title = manga.title,\n        coverData = MangaCover(\n            mangaId = manga.id,\n            sourceId = manga.source,\n            isMangaFavorite = manga.favorite,\n            url = manga.thumbnailUrl,\n            lastModified = manga.coverLastModified,\n        ),\n        coverAlpha = if (manga.favorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f,\n        coverBadgeStart = {\n            InLibraryBadge(enabled = manga.favorite)\n        },\n        onLongClick = onLongClick,\n        onClick = onClick,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.foundation.lazy.grid.GridItemSpan\nimport androidx.compose.foundation.lazy.grid.LazyVerticalGrid\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.unit.dp\nimport androidx.paging.LoadState\nimport androidx.paging.compose.LazyPagingItems\nimport eu.kanade.presentation.library.components.CommonMangaItemDefaults\nimport eu.kanade.presentation.library.components.MangaCompactGridItem\nimport kotlinx.coroutines.flow.StateFlow\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun BrowseSourceCompactGrid(\n    mangaList: LazyPagingItems<StateFlow<Manga>>,\n    columns: GridCells,\n    contentPadding: PaddingValues,\n    onMangaClick: (Manga) -> Unit,\n    onMangaLongClick: (Manga) -> Unit,\n) {\n    LazyVerticalGrid(\n        columns = columns,\n        contentPadding = contentPadding + PaddingValues(8.dp),\n        verticalArrangement = Arrangement.spacedBy(CommonMangaItemDefaults.GridVerticalSpacer),\n        horizontalArrangement = Arrangement.spacedBy(CommonMangaItemDefaults.GridHorizontalSpacer),\n    ) {\n        if (mangaList.loadState.prepend is LoadState.Loading) {\n            item(span = { GridItemSpan(maxLineSpan) }) {\n                BrowseSourceLoadingItem()\n            }\n        }\n\n        items(count = mangaList.itemCount) { index ->\n            val manga by mangaList[index]?.collectAsState() ?: return@items\n            BrowseSourceCompactGridItem(\n                manga = manga,\n                onClick = { onMangaClick(manga) },\n                onLongClick = { onMangaLongClick(manga) },\n            )\n        }\n\n        if (mangaList.loadState.refresh is LoadState.Loading || mangaList.loadState.append is LoadState.Loading) {\n            item(span = { GridItemSpan(maxLineSpan) }) {\n                BrowseSourceLoadingItem()\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun BrowseSourceCompactGridItem(\n    manga: Manga,\n    onClick: () -> Unit = {},\n    onLongClick: () -> Unit = onClick,\n) {\n    MangaCompactGridItem(\n        title = manga.title,\n        coverData = MangaCover(\n            mangaId = manga.id,\n            sourceId = manga.source,\n            isMangaFavorite = manga.favorite,\n            url = manga.thumbnailUrl,\n            lastModified = manga.coverLastModified,\n        ),\n        coverAlpha = if (manga.favorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f,\n        coverBadgeStart = {\n            InLibraryBadge(enabled = manga.favorite)\n        },\n        onLongClick = onLongClick,\n        onClick = onClick,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceDialogs.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun RemoveMangaDialog(\n    onDismissRequest: () -> Unit,\n    onConfirm: () -> Unit,\n    mangaToRemove: Manga,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    onDismissRequest()\n                    onConfirm()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_remove))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.are_you_sure))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.remove_manga, mangaToRemove.title))\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.unit.dp\nimport androidx.paging.LoadState\nimport androidx.paging.compose.LazyPagingItems\nimport eu.kanade.presentation.library.components.CommonMangaItemDefaults\nimport eu.kanade.presentation.library.components.MangaListItem\nimport kotlinx.coroutines.flow.StateFlow\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun BrowseSourceList(\n    mangaList: LazyPagingItems<StateFlow<Manga>>,\n    contentPadding: PaddingValues,\n    onMangaClick: (Manga) -> Unit,\n    onMangaLongClick: (Manga) -> Unit,\n) {\n    LazyColumn(\n        contentPadding = contentPadding + PaddingValues(vertical = 8.dp),\n    ) {\n        item {\n            if (mangaList.loadState.prepend is LoadState.Loading) {\n                BrowseSourceLoadingItem()\n            }\n        }\n\n        items(count = mangaList.itemCount) { index ->\n            val manga by mangaList[index]?.collectAsState() ?: return@items\n            BrowseSourceListItem(\n                manga = manga,\n                onClick = { onMangaClick(manga) },\n                onLongClick = { onMangaLongClick(manga) },\n            )\n        }\n\n        item {\n            if (mangaList.loadState.refresh is LoadState.Loading || mangaList.loadState.append is LoadState.Loading) {\n                BrowseSourceLoadingItem()\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun BrowseSourceListItem(\n    manga: Manga,\n    onClick: () -> Unit = {},\n    onLongClick: () -> Unit = onClick,\n) {\n    MangaListItem(\n        title = manga.title,\n        coverData = MangaCover(\n            mangaId = manga.id,\n            sourceId = manga.source,\n            isMangaFavorite = manga.favorite,\n            url = manga.thumbnailUrl,\n            lastModified = manga.coverLastModified,\n        ),\n        coverAlpha = if (manga.favorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f,\n        badge = {\n            InLibraryBadge(enabled = manga.favorite)\n        },\n        onLongClick = onLongClick,\n        onClick = onClick,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceLoadingItem.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\n\n@Composable\ninternal fun BrowseSourceLoadingItem() {\n    Row(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(vertical = 16.dp),\n        horizontalArrangement = Arrangement.Center,\n    ) {\n        CircularProgressIndicator()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.filled.ViewList\nimport androidx.compose.material.icons.filled.ViewModule\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TopAppBarScrollBehavior\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.AppBarTitle\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.presentation.components.RadioMenuItem\nimport eu.kanade.presentation.components.SearchToolbar\nimport eu.kanade.tachiyomi.source.ConfigurableSource\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.source.local.LocalSource\n\n@Composable\nfun BrowseSourceToolbar(\n    searchQuery: String?,\n    onSearchQueryChange: (String?) -> Unit,\n    source: Source?,\n    displayMode: LibraryDisplayMode,\n    onDisplayModeChange: (LibraryDisplayMode) -> Unit,\n    navigateUp: () -> Unit,\n    onWebViewClick: () -> Unit,\n    onHelpClick: () -> Unit,\n    onSettingsClick: () -> Unit,\n    onSearch: (String) -> Unit,\n    scrollBehavior: TopAppBarScrollBehavior? = null,\n) {\n    // Avoid capturing unstable source in actions lambda\n    val title = source?.name\n    val isLocalSource = source is LocalSource\n    val isConfigurableSource = source is ConfigurableSource\n\n    var selectingDisplayMode by remember { mutableStateOf(false) }\n\n    SearchToolbar(\n        navigateUp = navigateUp,\n        titleContent = { AppBarTitle(title) },\n        searchQuery = searchQuery,\n        onChangeSearchQuery = onSearchQueryChange,\n        onSearch = onSearch,\n        onClickCloseSearch = navigateUp,\n        actions = {\n            AppBarActions(\n                actions = persistentListOf<AppBar.AppBarAction>().builder()\n                    .apply {\n                        add(\n                            AppBar.Action(\n                                title = stringResource(MR.strings.action_display_mode),\n                                icon = if (displayMode == LibraryDisplayMode.List) {\n                                    Icons.AutoMirrored.Filled.ViewList\n                                } else {\n                                    Icons.Filled.ViewModule\n                                },\n                                onClick = { selectingDisplayMode = true },\n                            ),\n                        )\n                        if (isLocalSource) {\n                            add(\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.label_help),\n                                    onClick = onHelpClick,\n                                ),\n                            )\n                        } else {\n                            add(\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.action_open_in_web_view),\n                                    onClick = onWebViewClick,\n                                ),\n                            )\n                        }\n                        if (isConfigurableSource) {\n                            add(\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.action_settings),\n                                    onClick = onSettingsClick,\n                                ),\n                            )\n                        }\n                    }\n                    .build(),\n            )\n\n            DropdownMenu(\n                expanded = selectingDisplayMode,\n                onDismissRequest = { selectingDisplayMode = false },\n            ) {\n                RadioMenuItem(\n                    text = { Text(text = stringResource(MR.strings.action_display_comfortable_grid)) },\n                    isChecked = displayMode == LibraryDisplayMode.ComfortableGrid,\n                ) {\n                    selectingDisplayMode = false\n                    onDisplayModeChange(LibraryDisplayMode.ComfortableGrid)\n                }\n                RadioMenuItem(\n                    text = { Text(text = stringResource(MR.strings.action_display_grid)) },\n                    isChecked = displayMode == LibraryDisplayMode.CompactGrid,\n                ) {\n                    selectingDisplayMode = false\n                    onDisplayModeChange(LibraryDisplayMode.CompactGrid)\n                }\n                RadioMenuItem(\n                    text = { Text(text = stringResource(MR.strings.action_display_list)) },\n                    isChecked = displayMode == LibraryDisplayMode.List,\n                ) {\n                    selectingDisplayMode = false\n                    onDisplayModeChange(LibraryDisplayMode.List)\n                }\n            }\n        },\n        scrollBehavior = scrollBehavior,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchCardRow.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.lazy.LazyRow\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.State\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.library.components.CommonMangaItemDefaults\nimport eu.kanade.presentation.library.components.MangaComfortableGridItem\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.domain.manga.model.asMangaCover\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun GlobalSearchCardRow(\n    titles: List<Manga>,\n    getManga: @Composable (Manga) -> State<Manga>,\n    onClick: (Manga) -> Unit,\n    onLongClick: (Manga) -> Unit,\n) {\n    if (titles.isEmpty()) {\n        EmptyResultItem()\n        return\n    }\n\n    LazyRow(\n        contentPadding = PaddingValues(MaterialTheme.padding.small),\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n    ) {\n        items(titles) {\n            val title by getManga(it)\n            MangaItem(\n                title = title.title,\n                cover = title.asMangaCover(),\n                isFavorite = title.favorite,\n                onClick = { onClick(title) },\n                onLongClick = { onLongClick(title) },\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun MangaItem(\n    title: String,\n    cover: MangaCover,\n    isFavorite: Boolean,\n    onClick: () -> Unit,\n    onLongClick: () -> Unit,\n) {\n    Box(modifier = Modifier.width(96.dp)) {\n        MangaComfortableGridItem(\n            title = title,\n            titleMaxLines = 3,\n            coverData = cover,\n            coverBadgeStart = {\n                InLibraryBadge(enabled = isFavorite)\n            },\n            coverAlpha = if (isFavorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f,\n            onClick = onClick,\n            onLongClick = onLongClick,\n        )\n    }\n}\n\n@Composable\nprivate fun EmptyResultItem() {\n    Text(\n        text = stringResource(MR.strings.no_results_found),\n        modifier = Modifier\n            .padding(\n                horizontal = MaterialTheme.padding.medium,\n                vertical = MaterialTheme.padding.small,\n            ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowForward\nimport androidx.compose.material.icons.outlined.Error\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun GlobalSearchResultItem(\n    title: String,\n    subtitle: String,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n    content: @Composable () -> Unit,\n) {\n    Column(modifier = modifier) {\n        Row(\n            modifier = Modifier\n                .padding(\n                    start = MaterialTheme.padding.medium,\n                    end = MaterialTheme.padding.extraSmall,\n                )\n                .fillMaxWidth()\n                .clickable(onClick = onClick),\n            horizontalArrangement = Arrangement.SpaceBetween,\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Column {\n                Text(\n                    text = title,\n                    style = MaterialTheme.typography.titleMedium,\n                )\n                Text(text = subtitle)\n            }\n            IconButton(onClick = onClick) {\n                Icon(imageVector = Icons.AutoMirrored.Outlined.ArrowForward, contentDescription = null)\n            }\n        }\n        content()\n    }\n}\n\n@Composable\nfun GlobalSearchLoadingResultItem() {\n    Box(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(vertical = MaterialTheme.padding.medium),\n    ) {\n        CircularProgressIndicator(\n            modifier = Modifier\n                .size(16.dp)\n                .align(Alignment.Center),\n            strokeWidth = 2.dp,\n        )\n    }\n}\n\n@Composable\nfun GlobalSearchErrorResultItem(message: String?) {\n    Column(\n        modifier = Modifier\n            .padding(\n                horizontal = MaterialTheme.padding.medium,\n                vertical = MaterialTheme.padding.small,\n            )\n            .fillMaxWidth(),\n        horizontalAlignment = Alignment.CenterHorizontally,\n        verticalArrangement = Arrangement.Center,\n    ) {\n        Icon(imageVector = Icons.Outlined.Error, contentDescription = null)\n        Spacer(Modifier.height(4.dp))\n        Text(\n            text = message ?: stringResource(MR.strings.unknown_error),\n            textAlign = TextAlign.Center,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchToolbar.kt",
    "content": "package eu.kanade.presentation.browse.components\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.horizontalScroll\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.DoneAll\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material.icons.outlined.PushPin\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.FilterChipDefaults\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LinearProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TopAppBarScrollBehavior\nimport androidx.compose.material3.VerticalDivider\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport eu.kanade.presentation.components.SearchToolbar\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun GlobalSearchToolbar(\n    searchQuery: String?,\n    progress: Int,\n    total: Int,\n    navigateUp: () -> Unit,\n    onChangeSearchQuery: (String?) -> Unit,\n    onSearch: (String) -> Unit,\n    hideSourceFilter: Boolean,\n    sourceFilter: SourceFilter,\n    onChangeSearchFilter: (SourceFilter) -> Unit,\n    onlyShowHasResults: Boolean,\n    onToggleResults: () -> Unit,\n    scrollBehavior: TopAppBarScrollBehavior,\n) {\n    Column(modifier = Modifier.background(MaterialTheme.colorScheme.surface)) {\n        Box {\n            SearchToolbar(\n                searchQuery = searchQuery,\n                onChangeSearchQuery = onChangeSearchQuery,\n                onSearch = onSearch,\n                onClickCloseSearch = navigateUp,\n                navigateUp = navigateUp,\n                scrollBehavior = scrollBehavior,\n            )\n            if (progress in 1..<total) {\n                LinearProgressIndicator(\n                    progress = { progress / total.toFloat() },\n                    modifier = Modifier\n                        .align(Alignment.BottomStart)\n                        .fillMaxWidth(),\n                )\n            }\n        }\n\n        Row(\n            modifier = Modifier\n                .horizontalScroll(rememberScrollState())\n                .padding(horizontal = MaterialTheme.padding.small),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        ) {\n            // TODO: make this UX better; it only applies when triggering a new search\n            if (!hideSourceFilter) {\n                FilterChip(\n                    selected = sourceFilter == SourceFilter.PinnedOnly,\n                    onClick = { onChangeSearchFilter(SourceFilter.PinnedOnly) },\n                    leadingIcon = {\n                        Icon(\n                            imageVector = Icons.Outlined.PushPin,\n                            contentDescription = null,\n                            modifier = Modifier\n                                .size(FilterChipDefaults.IconSize),\n                        )\n                    },\n                    label = {\n                        Text(text = stringResource(MR.strings.pinned_sources))\n                    },\n                )\n                FilterChip(\n                    selected = sourceFilter == SourceFilter.All,\n                    onClick = { onChangeSearchFilter(SourceFilter.All) },\n                    leadingIcon = {\n                        Icon(\n                            imageVector = Icons.Outlined.DoneAll,\n                            contentDescription = null,\n                            modifier = Modifier\n                                .size(FilterChipDefaults.IconSize),\n                        )\n                    },\n                    label = {\n                        Text(text = stringResource(MR.strings.all))\n                    },\n                )\n\n                VerticalDivider()\n            }\n\n            FilterChip(\n                selected = onlyShowHasResults,\n                onClick = { onToggleResults() },\n                leadingIcon = {\n                    Icon(\n                        imageVector = Icons.Outlined.FilterList,\n                        contentDescription = null,\n                        modifier = Modifier\n                            .size(FilterChipDefaults.IconSize),\n                    )\n                },\n                label = {\n                    Text(text = stringResource(MR.strings.has_results))\n                },\n            )\n        }\n\n        HorizontalDivider()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/category/CategoryExtensions.kt",
    "content": "package eu.kanade.presentation.category\n\nimport android.content.Context\nimport androidx.compose.runtime.Composable\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\nval Category.visualName: String\n    @Composable\n    get() = when {\n        isSystemCategory -> stringResource(MR.strings.label_default)\n        else -> name\n    }\n\nfun Category.visualName(context: Context): String =\n    when {\n        isSystemCategory -> context.stringResource(MR.strings.label_default)\n        else -> name\n    }\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt",
    "content": "package eu.kanade.presentation.category\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.toMutableStateList\nimport androidx.compose.ui.Modifier\nimport eu.kanade.presentation.category.components.CategoryFloatingActionButton\nimport eu.kanade.presentation.category.components.CategoryListItem\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.tachiyomi.ui.category.CategoryScreenState\nimport sh.calvin.reorderable.ReorderableItem\nimport sh.calvin.reorderable.rememberReorderableLazyListState\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.components.material.topSmallPaddingValues\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun CategoryScreen(\n    state: CategoryScreenState.Success,\n    onClickCreate: () -> Unit,\n    onClickRename: (Category) -> Unit,\n    onClickDelete: (Category) -> Unit,\n    onChangeOrder: (Category, Int) -> Unit,\n    navigateUp: () -> Unit,\n) {\n    val lazyListState = rememberLazyListState()\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                title = stringResource(MR.strings.action_edit_categories),\n                navigateUp = navigateUp,\n                scrollBehavior = scrollBehavior,\n            )\n        },\n        floatingActionButton = {\n            CategoryFloatingActionButton(\n                lazyListState = lazyListState,\n                onCreate = onClickCreate,\n            )\n        },\n    ) { paddingValues ->\n        if (state.isEmpty) {\n            EmptyScreen(\n                stringRes = MR.strings.information_empty_category,\n                modifier = Modifier.padding(paddingValues),\n            )\n            return@Scaffold\n        }\n\n        CategoryContent(\n            categories = state.categories,\n            lazyListState = lazyListState,\n            paddingValues = paddingValues,\n            onClickRename = onClickRename,\n            onClickDelete = onClickDelete,\n            onChangeOrder = onChangeOrder,\n        )\n    }\n}\n\n@Composable\nprivate fun CategoryContent(\n    categories: List<Category>,\n    lazyListState: LazyListState,\n    paddingValues: PaddingValues,\n    onClickRename: (Category) -> Unit,\n    onClickDelete: (Category) -> Unit,\n    onChangeOrder: (Category, Int) -> Unit,\n) {\n    val categoriesState = remember { categories.toMutableStateList() }\n    val reorderableState = rememberReorderableLazyListState(lazyListState, paddingValues) { from, to ->\n        val item = categoriesState.removeAt(from.index)\n        categoriesState.add(to.index, item)\n        onChangeOrder(item, to.index)\n    }\n\n    LaunchedEffect(categories) {\n        if (!reorderableState.isAnyItemDragging) {\n            categoriesState.clear()\n            categoriesState.addAll(categories)\n        }\n    }\n\n    LazyColumn(\n        modifier = Modifier.fillMaxSize(),\n        state = lazyListState,\n        contentPadding = paddingValues +\n            topSmallPaddingValues +\n            PaddingValues(horizontal = MaterialTheme.padding.medium),\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n    ) {\n        items(\n            items = categoriesState,\n            key = { category -> category.key },\n        ) { category ->\n            ReorderableItem(reorderableState, category.key) {\n                CategoryListItem(\n                    modifier = Modifier.animateItem(),\n                    category = category,\n                    onRename = { onClickRename(category) },\n                    onDelete = { onClickDelete(category) },\n                )\n            }\n        }\n    }\n}\n\nprivate val Category.key inline get() = \"category-$id\"\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt",
    "content": "package eu.kanade.presentation.category.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Checkbox\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.material3.TriStateCheckbox\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport eu.kanade.core.preference.asToggleableState\nimport eu.kanade.presentation.category.visualName\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.delay\nimport tachiyomi.core.common.preference.CheckboxState\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport kotlin.time.Duration.Companion.seconds\n\n@Composable\nfun CategoryCreateDialog(\n    onDismissRequest: () -> Unit,\n    onCreate: (String) -> Unit,\n    categories: ImmutableList<String>,\n) {\n    var name by remember { mutableStateOf(\"\") }\n\n    val focusRequester = remember { FocusRequester() }\n    val nameAlreadyExists = remember(name) { categories.contains(name) }\n\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(\n                enabled = name.isNotEmpty() && !nameAlreadyExists,\n                onClick = {\n                    onCreate(name)\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_add))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_add_category))\n        },\n        text = {\n            OutlinedTextField(\n                modifier = Modifier\n                    .focusRequester(focusRequester),\n                value = name,\n                onValueChange = { name = it },\n                label = {\n                    Text(text = stringResource(MR.strings.name))\n                },\n                supportingText = {\n                    val msgRes = if (name.isNotEmpty() && nameAlreadyExists) {\n                        MR.strings.error_category_exists\n                    } else {\n                        MR.strings.information_required_plain\n                    }\n                    Text(text = stringResource(msgRes))\n                },\n                isError = name.isNotEmpty() && nameAlreadyExists,\n                singleLine = true,\n            )\n        },\n    )\n\n    LaunchedEffect(focusRequester) {\n        // TODO: https://issuetracker.google.com/issues/204502668\n        delay(0.1.seconds)\n        focusRequester.requestFocus()\n    }\n}\n\n@Composable\nfun CategoryRenameDialog(\n    onDismissRequest: () -> Unit,\n    onRename: (String) -> Unit,\n    categories: ImmutableList<String>,\n    category: String,\n) {\n    var name by remember { mutableStateOf(category) }\n    var valueHasChanged by remember { mutableStateOf(false) }\n\n    val focusRequester = remember { FocusRequester() }\n    val nameAlreadyExists = remember(name) { categories.contains(name) }\n\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(\n                enabled = valueHasChanged && !nameAlreadyExists,\n                onClick = {\n                    onRename(name)\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_rename_category))\n        },\n        text = {\n            OutlinedTextField(\n                modifier = Modifier.focusRequester(focusRequester),\n                value = name,\n                onValueChange = {\n                    valueHasChanged = name != it\n                    name = it\n                },\n                label = { Text(text = stringResource(MR.strings.name)) },\n                supportingText = {\n                    val msgRes = if (valueHasChanged && nameAlreadyExists) {\n                        MR.strings.error_category_exists\n                    } else {\n                        MR.strings.information_required_plain\n                    }\n                    Text(text = stringResource(msgRes))\n                },\n                isError = valueHasChanged && nameAlreadyExists,\n                singleLine = true,\n            )\n        },\n    )\n\n    LaunchedEffect(focusRequester) {\n        // TODO: https://issuetracker.google.com/issues/204502668\n        delay(0.1.seconds)\n        focusRequester.requestFocus()\n    }\n}\n\n@Composable\nfun CategoryDeleteDialog(\n    onDismissRequest: () -> Unit,\n    onDelete: () -> Unit,\n    category: String,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(onClick = {\n                onDelete()\n                onDismissRequest()\n            }) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.delete_category))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.delete_category_confirmation, category))\n        },\n    )\n}\n\n@Composable\nfun ChangeCategoryDialog(\n    initialSelection: ImmutableList<CheckboxState<Category>>,\n    onDismissRequest: () -> Unit,\n    onEditCategories: () -> Unit,\n    onConfirm: (List<Long>, List<Long>) -> Unit,\n) {\n    if (initialSelection.isEmpty()) {\n        AlertDialog(\n            onDismissRequest = onDismissRequest,\n            confirmButton = {\n                tachiyomi.presentation.core.components.material.TextButton(\n                    onClick = {\n                        onDismissRequest()\n                        onEditCategories()\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.action_edit_categories))\n                }\n            },\n            title = {\n                Text(text = stringResource(MR.strings.action_move_category))\n            },\n            text = {\n                Text(text = stringResource(MR.strings.information_empty_category_dialog))\n            },\n        )\n        return\n    }\n    var selection by remember { mutableStateOf(initialSelection) }\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            Row {\n                tachiyomi.presentation.core.components.material.TextButton(onClick = {\n                    onDismissRequest()\n                    onEditCategories()\n                }) {\n                    Text(text = stringResource(MR.strings.action_edit))\n                }\n                Spacer(modifier = Modifier.weight(1f))\n                tachiyomi.presentation.core.components.material.TextButton(onClick = onDismissRequest) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n                tachiyomi.presentation.core.components.material.TextButton(\n                    onClick = {\n                        onDismissRequest()\n                        onConfirm(\n                            selection\n                                .filter { it is CheckboxState.State.Checked || it is CheckboxState.TriState.Include }\n                                .map { it.value.id },\n                            selection\n                                .filter { it is CheckboxState.State.None || it is CheckboxState.TriState.None }\n                                .map { it.value.id },\n                        )\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.action_ok))\n                }\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_move_category))\n        },\n        text = {\n            Column(\n                modifier = Modifier.verticalScroll(rememberScrollState()),\n            ) {\n                selection.forEach { checkbox ->\n                    val onChange: (CheckboxState<Category>) -> Unit = {\n                        val index = selection.indexOf(it)\n                        if (index != -1) {\n                            val mutableList = selection.toMutableList()\n                            mutableList[index] = it.next()\n                            selection = mutableList.toList().toImmutableList()\n                        }\n                    }\n                    Row(\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .clickable { onChange(checkbox) },\n                        verticalAlignment = Alignment.CenterVertically,\n                    ) {\n                        when (checkbox) {\n                            is CheckboxState.TriState -> {\n                                TriStateCheckbox(\n                                    state = checkbox.asToggleableState(),\n                                    onClick = { onChange(checkbox) },\n                                )\n                            }\n                            is CheckboxState.State -> {\n                                Checkbox(\n                                    checked = checkbox.isChecked,\n                                    onCheckedChange = { onChange(checkbox) },\n                                )\n                            }\n                        }\n\n                        Text(\n                            text = checkbox.value.visualName,\n                            modifier = Modifier.padding(horizontal = MaterialTheme.padding.medium),\n                        )\n                    }\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/category/components/CategoryFloatingActionButton.kt",
    "content": "package eu.kanade.presentation.category.components\n\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Add\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.SmallExtendedFloatingActionButton\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.shouldExpandFAB\n\n@Composable\nfun CategoryFloatingActionButton(\n    lazyListState: LazyListState,\n    onCreate: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    SmallExtendedFloatingActionButton(\n        text = { Text(text = stringResource(MR.strings.action_add)) },\n        icon = { Icon(imageVector = Icons.Outlined.Add, contentDescription = null) },\n        onClick = onCreate,\n        expanded = lazyListState.shouldExpandFAB(),\n        modifier = modifier,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/category/components/CategoryListItem.kt",
    "content": "package eu.kanade.presentation.category.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Delete\nimport androidx.compose.material.icons.outlined.DragHandle\nimport androidx.compose.material.icons.outlined.Edit\nimport androidx.compose.material3.ElevatedCard\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport sh.calvin.reorderable.ReorderableCollectionItemScope\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ReorderableCollectionItemScope.CategoryListItem(\n    category: Category,\n    onRename: () -> Unit,\n    onDelete: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    ElevatedCard(modifier = modifier) {\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .clickable(onClick = onRename)\n                .padding(vertical = MaterialTheme.padding.small)\n                .padding(\n                    start = MaterialTheme.padding.small,\n                    end = MaterialTheme.padding.medium,\n                ),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Icon(\n                imageVector = Icons.Outlined.DragHandle,\n                contentDescription = null,\n                modifier = Modifier\n                    .padding(MaterialTheme.padding.medium)\n                    .draggableHandle(),\n            )\n            Text(\n                text = category.name,\n                modifier = Modifier.weight(1f),\n            )\n            IconButton(onClick = onRename) {\n                Icon(\n                    imageVector = Icons.Outlined.Edit,\n                    contentDescription = stringResource(MR.strings.action_rename_category),\n                )\n            }\n            IconButton(onClick = onDelete) {\n                Icon(\n                    imageVector = Icons.Outlined.Delete,\n                    contentDescription = stringResource(MR.strings.action_delete),\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/AdaptiveSheet.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.animation.core.tween\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.togetherWith\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.window.Dialog\nimport androidx.compose.ui.window.DialogProperties\nimport cafe.adriel.voyager.core.annotation.InternalVoyagerApi\nimport cafe.adriel.voyager.core.lifecycle.DisposableEffectIgnoringConfiguration\nimport cafe.adriel.voyager.core.screen.Screen\nimport cafe.adriel.voyager.navigator.Navigator\nimport eu.kanade.presentation.util.ScreenTransition\nimport eu.kanade.presentation.util.isTabletUi\nimport tachiyomi.presentation.core.components.AdaptiveSheet as AdaptiveSheetImpl\n\n@OptIn(InternalVoyagerApi::class)\n@Composable\nfun NavigatorAdaptiveSheet(\n    screen: Screen,\n    enableSwipeDismiss: (Navigator) -> Boolean = { true },\n    onDismissRequest: () -> Unit,\n) {\n    Navigator(\n        screen = screen,\n        content = { sheetNavigator ->\n            AdaptiveSheet(\n                onDismissRequest = onDismissRequest,\n                enableSwipeDismiss = enableSwipeDismiss(sheetNavigator),\n            ) {\n                ScreenTransition(\n                    navigator = sheetNavigator,\n                    transition = {\n                        fadeIn(animationSpec = tween(220, delayMillis = 90)) togetherWith\n                            fadeOut(animationSpec = tween(90))\n                    },\n                )\n            }\n\n            // Make sure screens are disposed no matter what\n            if (sheetNavigator.parent?.disposeBehavior?.disposeNestedNavigators == false) {\n                DisposableEffectIgnoringConfiguration {\n                    onDispose {\n                        sheetNavigator.items\n                            .asReversed()\n                            .forEach(sheetNavigator::dispose)\n                    }\n                }\n            }\n        },\n    )\n}\n\n/**\n * Sheet with adaptive position aligned to bottom on small screen, otherwise aligned to center\n * and will not be able to dismissed with swipe gesture.\n *\n * Max width of the content is set to 460 dp.\n */\n@Composable\nfun AdaptiveSheet(\n    onDismissRequest: () -> Unit,\n    modifier: Modifier = Modifier,\n    enableSwipeDismiss: Boolean = true,\n    content: @Composable () -> Unit,\n) {\n    val isTabletUi = isTabletUi()\n\n    Dialog(\n        onDismissRequest = onDismissRequest,\n        properties = dialogProperties,\n    ) {\n        AdaptiveSheetImpl(\n            isTabletUi = isTabletUi,\n            enableSwipeDismiss = enableSwipeDismiss,\n            onDismissRequest = onDismissRequest,\n            modifier = modifier,\n        ) {\n            content()\n        }\n    }\n}\n\nprivate val dialogProperties = DialogProperties(\n    usePlatformDefaultWidth = false,\n    decorFitsSystemWindows = true,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/AppBar.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.foundation.basicMarquee\nimport androidx.compose.foundation.interaction.MutableInteractionSource\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.text.BasicTextField\nimport androidx.compose.foundation.text.KeyboardActions\nimport androidx.compose.foundation.text.KeyboardOptions\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowBack\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material.icons.outlined.MoreVert\nimport androidx.compose.material.icons.outlined.Search\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.PlainTooltip\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextFieldDefaults\nimport androidx.compose.material3.TooltipAnchorPosition\nimport androidx.compose.material3.TooltipBox\nimport androidx.compose.material3.TooltipDefaults.rememberTooltipPositionProvider\nimport androidx.compose.material3.TopAppBar\nimport androidx.compose.material3.TopAppBarDefaults\nimport androidx.compose.material3.TopAppBarScrollBehavior\nimport androidx.compose.material3.rememberTooltipState\nimport androidx.compose.material3.surfaceColorAtElevation\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.derivedStateOf\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.key\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.focus.FocusDirection\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalFocusManager\nimport androidx.compose.ui.platform.LocalSoftwareKeyboardController\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.input.ImeAction\nimport androidx.compose.ui.text.input.VisualTransformation\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport kotlinx.collections.immutable.ImmutableList\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.clearFocusOnSoftKeyboardHide\nimport tachiyomi.presentation.core.util.runOnEnterKeyPressed\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport tachiyomi.presentation.core.util.showSoftKeyboard\n\nconst val SEARCH_DEBOUNCE_MILLIS = 250L\n\n@Composable\nfun AppBar(\n    title: String?,\n\n    modifier: Modifier = Modifier,\n    backgroundColor: Color? = null,\n    // Text\n    subtitle: String? = null,\n    // Up button\n    navigateUp: (() -> Unit)? = null,\n    navigationIcon: ImageVector? = null,\n    // Menu\n    actions: @Composable RowScope.() -> Unit = {},\n    // Action mode\n    actionModeCounter: Int = 0,\n    onCancelActionMode: () -> Unit = {},\n    actionModeActions: @Composable RowScope.() -> Unit = {},\n\n    scrollBehavior: TopAppBarScrollBehavior? = null,\n) {\n    val isActionMode by remember(actionModeCounter) {\n        derivedStateOf { actionModeCounter > 0 }\n    }\n\n    AppBar(\n        modifier = modifier,\n        backgroundColor = backgroundColor,\n        titleContent = {\n            if (isActionMode) {\n                AppBarTitle(actionModeCounter.toString())\n            } else {\n                AppBarTitle(title, subtitle = subtitle)\n            }\n        },\n        navigateUp = navigateUp,\n        navigationIcon = navigationIcon,\n        actions = {\n            if (isActionMode) {\n                actionModeActions()\n            } else {\n                actions()\n            }\n        },\n        isActionMode = isActionMode,\n        onCancelActionMode = onCancelActionMode,\n        scrollBehavior = scrollBehavior,\n    )\n}\n\n@Composable\nfun AppBar(\n    // Title\n    titleContent: @Composable () -> Unit,\n\n    modifier: Modifier = Modifier,\n    backgroundColor: Color? = null,\n    // Up button\n    navigateUp: (() -> Unit)? = null,\n    navigationIcon: ImageVector? = null,\n    // Menu\n    actions: @Composable RowScope.() -> Unit = {},\n    // Action mode\n    isActionMode: Boolean = false,\n    onCancelActionMode: () -> Unit = {},\n\n    scrollBehavior: TopAppBarScrollBehavior? = null,\n) {\n    Column(\n        modifier = modifier,\n    ) {\n        TopAppBar(\n            navigationIcon = {\n                if (isActionMode) {\n                    IconButton(onClick = onCancelActionMode) {\n                        Icon(\n                            imageVector = Icons.Outlined.Close,\n                            contentDescription = stringResource(MR.strings.action_cancel),\n                        )\n                    }\n                } else {\n                    navigateUp?.let {\n                        IconButton(onClick = it) {\n                            UpIcon(navigationIcon = navigationIcon)\n                        }\n                    }\n                }\n            },\n            title = titleContent,\n            actions = actions,\n            colors = TopAppBarDefaults.topAppBarColors(\n                containerColor = backgroundColor ?: MaterialTheme.colorScheme.surfaceColorAtElevation(\n                    elevation = if (isActionMode) 3.dp else 0.dp,\n                ),\n            ),\n            scrollBehavior = scrollBehavior,\n        )\n    }\n}\n\n@Composable\nfun AppBarTitle(\n    title: String?,\n    modifier: Modifier = Modifier,\n    subtitle: String? = null,\n) {\n    Column(modifier = modifier) {\n        title?.let {\n            Text(\n                text = it,\n                maxLines = 1,\n                overflow = TextOverflow.Ellipsis,\n            )\n        }\n        subtitle?.let {\n            Text(\n                text = it,\n                style = MaterialTheme.typography.bodyMedium,\n                maxLines = 1,\n                overflow = TextOverflow.Ellipsis,\n                modifier = Modifier.basicMarquee(\n                    repeatDelayMillis = 2_000,\n                ),\n            )\n        }\n    }\n}\n\n@Composable\nfun AppBarActions(\n    actions: ImmutableList<AppBar.AppBarAction>,\n) {\n    var showMenu by remember { mutableStateOf(false) }\n\n    actions.filterIsInstance<AppBar.Action>().map {\n        TooltipBox(\n            positionProvider = rememberTooltipPositionProvider(TooltipAnchorPosition.Above),\n            tooltip = {\n                PlainTooltip {\n                    Text(it.title)\n                }\n            },\n            state = rememberTooltipState(),\n            focusable = false,\n        ) {\n            IconButton(\n                onClick = it.onClick,\n                enabled = it.enabled,\n            ) {\n                Icon(\n                    imageVector = it.icon,\n                    tint = it.iconTint ?: LocalContentColor.current,\n                    contentDescription = it.title,\n                )\n            }\n        }\n    }\n\n    val overflowActions = actions.filterIsInstance<AppBar.OverflowAction>()\n    if (overflowActions.isNotEmpty()) {\n        TooltipBox(\n            positionProvider = rememberTooltipPositionProvider(TooltipAnchorPosition.Above),\n            tooltip = {\n                PlainTooltip {\n                    Text(stringResource(MR.strings.action_menu_overflow_description))\n                }\n            },\n            state = rememberTooltipState(),\n            focusable = false,\n        ) {\n            IconButton(\n                onClick = { showMenu = !showMenu },\n            ) {\n                Icon(\n                    Icons.Outlined.MoreVert,\n                    contentDescription = stringResource(MR.strings.action_menu_overflow_description),\n                )\n            }\n        }\n\n        DropdownMenu(\n            expanded = showMenu,\n            onDismissRequest = { showMenu = false },\n        ) {\n            overflowActions.map {\n                DropdownMenuItem(\n                    onClick = {\n                        it.onClick()\n                        showMenu = false\n                    },\n                    text = { Text(it.title, fontWeight = FontWeight.Normal) },\n                )\n            }\n        }\n    }\n}\n\n/**\n * @param searchEnabled Set to false if you don't want to show search action.\n * @param searchQuery If null, use normal toolbar.\n * @param placeholderText If null, [MR.strings.action_search_hint] is used.\n */\n@Composable\nfun SearchToolbar(\n    searchQuery: String?,\n    onChangeSearchQuery: (String?) -> Unit,\n    modifier: Modifier = Modifier,\n    titleContent: @Composable () -> Unit = {},\n    navigateUp: (() -> Unit)? = null,\n    searchEnabled: Boolean = true,\n    placeholderText: String? = null,\n    onSearch: (String) -> Unit = {},\n    onClickCloseSearch: () -> Unit = { onChangeSearchQuery(null) },\n    actions: @Composable RowScope.() -> Unit = {},\n    scrollBehavior: TopAppBarScrollBehavior? = null,\n    visualTransformation: VisualTransformation = VisualTransformation.None,\n    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },\n) {\n    val focusRequester = remember { FocusRequester() }\n\n    AppBar(\n        modifier = modifier,\n        titleContent = {\n            if (searchQuery == null) return@AppBar titleContent()\n\n            val keyboardController = LocalSoftwareKeyboardController.current\n            val focusManager = LocalFocusManager.current\n\n            val searchAndClearFocus: () -> Unit = f@{\n                if (searchQuery.isBlank()) return@f\n                onSearch(searchQuery)\n                focusManager.clearFocus()\n                keyboardController?.hide()\n                focusManager.moveFocus(FocusDirection.Next)\n            }\n\n            BasicTextField(\n                value = searchQuery,\n                onValueChange = onChangeSearchQuery,\n                modifier = Modifier\n                    .fillMaxWidth()\n                    .focusRequester(focusRequester)\n                    .runOnEnterKeyPressed(action = searchAndClearFocus)\n                    .showSoftKeyboard(remember { searchQuery.isEmpty() })\n                    .clearFocusOnSoftKeyboardHide(),\n                textStyle = MaterialTheme.typography.titleMedium.copy(\n                    color = MaterialTheme.colorScheme.onBackground,\n                    fontWeight = FontWeight.Normal,\n                    fontSize = 18.sp,\n                ),\n                keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search),\n                keyboardActions = KeyboardActions(onSearch = { searchAndClearFocus() }),\n                singleLine = true,\n                cursorBrush = SolidColor(MaterialTheme.colorScheme.onBackground),\n                visualTransformation = visualTransformation,\n                interactionSource = interactionSource,\n                decorationBox = { innerTextField ->\n                    TextFieldDefaults.DecorationBox(\n                        value = searchQuery,\n                        innerTextField = innerTextField,\n                        enabled = true,\n                        singleLine = true,\n                        visualTransformation = visualTransformation,\n                        interactionSource = interactionSource,\n                        placeholder = {\n                            Text(\n                                modifier = Modifier.secondaryItemAlpha(),\n                                text = (placeholderText ?: stringResource(MR.strings.action_search_hint)),\n                                maxLines = 1,\n                                overflow = TextOverflow.Ellipsis,\n                                style = MaterialTheme.typography.titleMedium.copy(\n                                    fontSize = 18.sp,\n                                    fontWeight = FontWeight.Normal,\n                                ),\n                            )\n                        },\n                        container = {},\n                    )\n                },\n            )\n        },\n        navigateUp = if (searchQuery == null) navigateUp else onClickCloseSearch,\n        actions = {\n            key(\"search\") {\n                val onClick = { onChangeSearchQuery(\"\") }\n\n                if (!searchEnabled) {\n                    // Don't show search action\n                } else if (searchQuery == null) {\n                    TooltipBox(\n                        positionProvider = rememberTooltipPositionProvider(TooltipAnchorPosition.Above),\n                        tooltip = {\n                            PlainTooltip {\n                                Text(stringResource(MR.strings.action_search))\n                            }\n                        },\n                        state = rememberTooltipState(),\n                        focusable = false,\n                    ) {\n                        IconButton(\n                            onClick = onClick,\n                        ) {\n                            Icon(\n                                Icons.Outlined.Search,\n                                contentDescription = stringResource(MR.strings.action_search),\n                            )\n                        }\n                    }\n                } else if (searchQuery.isNotEmpty()) {\n                    TooltipBox(\n                        positionProvider = rememberTooltipPositionProvider(TooltipAnchorPosition.Above),\n                        tooltip = {\n                            PlainTooltip {\n                                Text(stringResource(MR.strings.action_reset))\n                            }\n                        },\n                        state = rememberTooltipState(),\n                        focusable = false,\n                    ) {\n                        IconButton(\n                            onClick = {\n                                onClick()\n                                focusRequester.requestFocus()\n                            },\n                        ) {\n                            Icon(\n                                Icons.Outlined.Close,\n                                contentDescription = stringResource(MR.strings.action_reset),\n                            )\n                        }\n                    }\n                }\n            }\n\n            key(\"actions\") { actions() }\n        },\n        isActionMode = false,\n        scrollBehavior = scrollBehavior,\n    )\n}\n\n@Composable\nfun UpIcon(\n    modifier: Modifier = Modifier,\n    navigationIcon: ImageVector? = null,\n) {\n    val icon = navigationIcon\n        ?: Icons.AutoMirrored.Outlined.ArrowBack\n    Icon(\n        imageVector = icon,\n        contentDescription = stringResource(MR.strings.action_bar_up_description),\n        modifier = modifier,\n    )\n}\n\nsealed interface AppBar {\n    sealed interface AppBarAction\n\n    data class Action(\n        val title: String,\n        val icon: ImageVector,\n        val iconTint: Color? = null,\n        val onClick: () -> Unit,\n        val enabled: Boolean = true,\n    ) : AppBarAction\n\n    data class OverflowAction(\n        val title: String,\n        val onClick: () -> Unit,\n    ) : AppBarAction\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/Banners.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.animation.expandVertically\nimport androidx.compose.animation.shrinkVertically\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.requiredSize\nimport androidx.compose.foundation.layout.statusBars\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.layout.SubcomposeLayout\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastForEach\nimport androidx.compose.ui.util.fastMap\nimport androidx.compose.ui.util.fastMaxBy\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\nval DownloadedOnlyBannerBackgroundColor\n    @Composable get() = MaterialTheme.colorScheme.tertiary\nval IncognitoModeBannerBackgroundColor\n    @Composable get() = MaterialTheme.colorScheme.primary\nval IndexingBannerBackgroundColor\n    @Composable get() = MaterialTheme.colorScheme.secondary\n\n@Composable\nfun WarningBanner(\n    textRes: StringResource,\n    modifier: Modifier = Modifier,\n) {\n    Text(\n        text = stringResource(textRes),\n        modifier = modifier\n            .fillMaxWidth()\n            .background(MaterialTheme.colorScheme.error)\n            .padding(16.dp),\n        color = MaterialTheme.colorScheme.onError,\n        style = MaterialTheme.typography.bodyMedium,\n        textAlign = TextAlign.Center,\n    )\n}\n\n@Composable\nfun AppStateBanners(\n    downloadedOnlyMode: Boolean,\n    incognitoMode: Boolean,\n    indexing: Boolean,\n    modifier: Modifier = Modifier,\n) {\n    val density = LocalDensity.current\n    val mainInsets = WindowInsets.statusBars\n    val mainInsetsTop = mainInsets.getTop(density)\n    SubcomposeLayout(modifier = modifier) { constraints ->\n        val indexingPlaceable = subcompose(0) {\n            AnimatedVisibility(\n                visible = indexing,\n                enter = expandVertically(),\n                exit = shrinkVertically(),\n            ) {\n                IndexingDownloadBanner(\n                    modifier = Modifier.windowInsetsPadding(mainInsets),\n                )\n            }\n        }.fastMap { it.measure(constraints) }\n        val indexingHeight = indexingPlaceable.fastMaxBy { it.height }?.height ?: 0\n\n        val downloadedOnlyPlaceable = subcompose(1) {\n            AnimatedVisibility(\n                visible = downloadedOnlyMode,\n                enter = expandVertically(),\n                exit = shrinkVertically(),\n            ) {\n                val top = (mainInsetsTop - indexingHeight).coerceAtLeast(0)\n                DownloadedOnlyModeBanner(\n                    modifier = Modifier.windowInsetsPadding(WindowInsets(top = top)),\n                )\n            }\n        }.fastMap { it.measure(constraints) }\n        val downloadedOnlyHeight = downloadedOnlyPlaceable.fastMaxBy { it.height }?.height ?: 0\n\n        val incognitoPlaceable = subcompose(2) {\n            AnimatedVisibility(\n                visible = incognitoMode,\n                enter = expandVertically(),\n                exit = shrinkVertically(),\n            ) {\n                val top = (mainInsetsTop - indexingHeight - downloadedOnlyHeight).coerceAtLeast(0)\n                IncognitoModeBanner(\n                    modifier = Modifier.windowInsetsPadding(WindowInsets(top = top)),\n                )\n            }\n        }.fastMap { it.measure(constraints) }\n        val incognitoHeight = incognitoPlaceable.fastMaxBy { it.height }?.height ?: 0\n\n        layout(constraints.maxWidth, indexingHeight + downloadedOnlyHeight + incognitoHeight) {\n            indexingPlaceable.fastForEach {\n                it.place(0, 0)\n            }\n            downloadedOnlyPlaceable.fastForEach {\n                it.place(0, indexingHeight)\n            }\n            incognitoPlaceable.fastForEach {\n                it.place(0, indexingHeight + downloadedOnlyHeight)\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun DownloadedOnlyModeBanner(modifier: Modifier = Modifier) {\n    Text(\n        text = stringResource(MR.strings.label_downloaded_only),\n        modifier = Modifier\n            .background(DownloadedOnlyBannerBackgroundColor)\n            .fillMaxWidth()\n            .padding(4.dp)\n            .then(modifier),\n        color = MaterialTheme.colorScheme.onTertiary,\n        textAlign = TextAlign.Center,\n        style = MaterialTheme.typography.labelMedium,\n    )\n}\n\n@Composable\nprivate fun IncognitoModeBanner(modifier: Modifier = Modifier) {\n    Text(\n        text = stringResource(MR.strings.pref_incognito_mode),\n        modifier = Modifier\n            .background(IncognitoModeBannerBackgroundColor)\n            .fillMaxWidth()\n            .padding(4.dp)\n            .then(modifier),\n        color = MaterialTheme.colorScheme.onPrimary,\n        textAlign = TextAlign.Center,\n        style = MaterialTheme.typography.labelMedium,\n    )\n}\n\n@Composable\nprivate fun IndexingDownloadBanner(modifier: Modifier = Modifier) {\n    val density = LocalDensity.current\n    Row(\n        modifier = Modifier\n            .background(color = IndexingBannerBackgroundColor)\n            .fillMaxWidth()\n            .padding(8.dp)\n            .then(modifier),\n        horizontalArrangement = Arrangement.Center,\n    ) {\n        var textHeight by remember { mutableStateOf(0.dp) }\n        CircularProgressIndicator(\n            modifier = Modifier.requiredSize(textHeight),\n            color = MaterialTheme.colorScheme.onSecondary,\n            strokeWidth = textHeight / 8,\n        )\n        Spacer(modifier = Modifier.width(8.dp))\n        Text(\n            text = stringResource(MR.strings.download_notifier_cache_renewal),\n            color = MaterialTheme.colorScheme.onSecondary,\n            textAlign = TextAlign.Center,\n            style = MaterialTheme.typography.labelMedium,\n            onTextLayout = {\n                with(density) {\n                    textHeight = it.size.height.toDp()\n                }\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/DateText.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.tachiyomi.util.lang.toRelativeString\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.LocalDate\nimport java.time.ZoneId\n\n@Composable\nfun relativeDateText(\n    dateEpochMillis: Long,\n): String {\n    return relativeDateText(\n        localDate = LocalDate.ofInstant(\n            Instant.ofEpochMilli(dateEpochMillis),\n            ZoneId.systemDefault(),\n        )\n            .takeIf { dateEpochMillis != 0L },\n    )\n}\n\n@Composable\nfun relativeDateText(\n    localDate: LocalDate?,\n): String {\n    val context = LocalContext.current\n\n    val preferences = remember { Injekt.get<UiPreferences>() }\n    val relativeTime = remember { preferences.relativeTime.get() }\n    val dateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat.get()) }\n\n    return localDate?.toRelativeString(\n        context = context,\n        relative = relativeTime,\n        dateFormat = dateFormat,\n    )\n        ?: stringResource(MR.strings.not_applicable)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/DownloadDropdownMenu.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.DpOffset\nimport eu.kanade.presentation.manga.DownloadAction\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun DownloadDropdownMenu(\n    modifier: Modifier = Modifier,\n    expanded: Boolean,\n    onDismissRequest: () -> Unit,\n    onDownloadClicked: (DownloadAction) -> Unit,\n    offset: DpOffset? = null,\n) {\n    if (offset != null) {\n        DropdownMenu(\n            expanded = expanded,\n            onDismissRequest = onDismissRequest,\n            modifier = modifier,\n            offset = offset,\n            content = {\n                DownloadDropdownMenuItems(\n                    onDismissRequest = onDismissRequest,\n                    onDownloadClicked = onDownloadClicked,\n                )\n            },\n        )\n    } else {\n        DropdownMenu(\n            expanded = expanded,\n            onDismissRequest = onDismissRequest,\n            modifier = modifier,\n            content = {\n                DownloadDropdownMenuItems(\n                    onDismissRequest = onDismissRequest,\n                    onDownloadClicked = onDownloadClicked,\n                )\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun DownloadDropdownMenuItems(\n    onDismissRequest: () -> Unit,\n    onDownloadClicked: (DownloadAction) -> Unit,\n) {\n    val options = persistentListOf(\n        DownloadAction.NEXT_1_CHAPTER to pluralStringResource(MR.plurals.download_amount, 1, 1),\n        DownloadAction.NEXT_5_CHAPTERS to pluralStringResource(MR.plurals.download_amount, 5, 5),\n        DownloadAction.NEXT_10_CHAPTERS to pluralStringResource(MR.plurals.download_amount, 10, 10),\n        DownloadAction.NEXT_25_CHAPTERS to pluralStringResource(MR.plurals.download_amount, 25, 25),\n        DownloadAction.UNREAD_CHAPTERS to stringResource(MR.strings.download_unread),\n        DownloadAction.BOOKMARKED_CHAPTERS to stringResource(MR.strings.download_bookmarked),\n    )\n\n    options.map { (downloadAction, string) ->\n        DropdownMenuItem(\n            text = { Text(text = string) },\n            onClick = {\n                onDownloadClicked(downloadAction)\n                onDismissRequest()\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/DropdownMenu.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.foundation.ScrollState\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.sizeIn\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowRight\nimport androidx.compose.material.icons.outlined.RadioButtonChecked\nimport androidx.compose.material.icons.outlined.RadioButtonUnchecked\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.DpOffset\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.window.PopupProperties\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport androidx.compose.material3.DropdownMenu as ComposeDropdownMenu\n\n/**\n * DropdownMenu but overlaps anchor and has width constraints to better\n * match non-Compose implementation.\n */\n@Composable\nfun DropdownMenu(\n    expanded: Boolean,\n    onDismissRequest: () -> Unit,\n    modifier: Modifier = Modifier,\n    offset: DpOffset = DpOffset(8.dp, (-56).dp),\n    scrollState: ScrollState = rememberScrollState(),\n    properties: PopupProperties = PopupProperties(focusable = true),\n    content: @Composable ColumnScope.() -> Unit,\n) {\n    ComposeDropdownMenu(\n        expanded = expanded,\n        onDismissRequest = onDismissRequest,\n        modifier = modifier.sizeIn(minWidth = 196.dp, maxWidth = 196.dp),\n        offset = offset,\n        scrollState = scrollState,\n        properties = properties,\n        content = content,\n    )\n}\n\n@Composable\nfun RadioMenuItem(\n    text: @Composable () -> Unit,\n    isChecked: Boolean,\n    modifier: Modifier = Modifier,\n    onClick: () -> Unit,\n) {\n    DropdownMenuItem(\n        text = text,\n        onClick = onClick,\n        trailingIcon = {\n            if (isChecked) {\n                Icon(\n                    imageVector = Icons.Outlined.RadioButtonChecked,\n                    contentDescription = stringResource(MR.strings.selected),\n                    tint = MaterialTheme.colorScheme.primary,\n                )\n            } else {\n                Icon(\n                    imageVector = Icons.Outlined.RadioButtonUnchecked,\n                    contentDescription = stringResource(MR.strings.not_selected),\n                )\n            }\n        },\n        modifier = modifier,\n    )\n}\n\n@Composable\nfun NestedMenuItem(\n    text: @Composable () -> Unit,\n    children: @Composable ColumnScope.(() -> Unit) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    var nestedExpanded by remember { mutableStateOf(false) }\n    val closeMenu = { nestedExpanded = false }\n\n    Box {\n        DropdownMenuItem(\n            text = text,\n            onClick = { nestedExpanded = true },\n            trailingIcon = {\n                Icon(\n                    imageVector = Icons.AutoMirrored.Outlined.ArrowRight,\n                    contentDescription = null,\n                )\n            },\n        )\n\n        DropdownMenu(\n            expanded = nestedExpanded,\n            onDismissRequest = closeMenu,\n            modifier = modifier,\n        ) {\n            children(closeMenu)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/EmptyScreen.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material.icons.outlined.Refresh\nimport androidx.compose.material3.Surface\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.EmptyScreenAction\n\n@PreviewLightDark\n@Composable\nprivate fun NoActionPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            EmptyScreen(\n                stringRes = MR.strings.empty_screen,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun WithActionPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            EmptyScreen(\n                stringRes = MR.strings.empty_screen,\n                actions = persistentListOf(\n                    EmptyScreenAction(\n                        stringRes = MR.strings.action_retry,\n                        icon = Icons.Outlined.Refresh,\n                        onClick = {},\n                    ),\n                    EmptyScreenAction(\n                        stringRes = MR.strings.getting_started_guide,\n                        icon = Icons.AutoMirrored.Outlined.HelpOutline,\n                        onClick = {},\n                    ),\n                ),\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/TabbedDialog.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.animation.animateContentSize\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.wrapContentSize\nimport androidx.compose.foundation.pager.HorizontalPager\nimport androidx.compose.foundation.pager.PagerState\nimport androidx.compose.foundation.pager.rememberPagerState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.MoreVert\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.PrimaryTabRow\nimport androidx.compose.material3.Tab\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastForEachIndexed\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.TabText\nimport tachiyomi.presentation.core.i18n.stringResource\n\nobject TabbedDialogPaddings {\n    val Horizontal = 24.dp\n    val Vertical = 8.dp\n}\n\n@Composable\nfun TabbedDialog(\n    onDismissRequest: () -> Unit,\n    tabTitles: ImmutableList<String>,\n    modifier: Modifier = Modifier,\n    tabOverflowMenuContent: (@Composable ColumnScope.(() -> Unit) -> Unit)? = null,\n    pagerState: PagerState = rememberPagerState { tabTitles.size },\n    content: @Composable (Int) -> Unit,\n) {\n    AdaptiveSheet(\n        modifier = modifier,\n        onDismissRequest = onDismissRequest,\n    ) {\n        val scope = rememberCoroutineScope()\n\n        Column {\n            Row {\n                PrimaryTabRow(\n                    modifier = Modifier.weight(1f),\n                    selectedTabIndex = pagerState.currentPage,\n                    containerColor = MaterialTheme.colorScheme.surfaceContainerHigh,\n                    divider = {},\n                ) {\n                    tabTitles.fastForEachIndexed { index, tab ->\n                        Tab(\n                            selected = pagerState.currentPage == index,\n                            onClick = { scope.launch { pagerState.animateScrollToPage(index) } },\n                            text = { TabText(text = tab) },\n                            unselectedContentColor = MaterialTheme.colorScheme.onSurface,\n                        )\n                    }\n                }\n\n                tabOverflowMenuContent?.let { MoreMenu(it) }\n            }\n            HorizontalDivider()\n\n            HorizontalPager(\n                modifier = Modifier.animateContentSize(),\n                state = pagerState,\n                verticalAlignment = Alignment.Top,\n                pageContent = { page -> content(page) },\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun MoreMenu(\n    content: @Composable ColumnScope.(() -> Unit) -> Unit,\n) {\n    var expanded by remember { mutableStateOf(false) }\n    Box(modifier = Modifier.wrapContentSize(Alignment.TopStart)) {\n        IconButton(onClick = { expanded = true }) {\n            Icon(\n                imageVector = Icons.Default.MoreVert,\n                contentDescription = stringResource(MR.strings.label_more),\n            )\n        }\n        DropdownMenu(\n            expanded = expanded,\n            onDismissRequest = { expanded = false },\n        ) {\n            content { expanded = false }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/components/TabbedScreen.kt",
    "content": "package eu.kanade.presentation.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.pager.HorizontalPager\nimport androidx.compose.foundation.pager.PagerState\nimport androidx.compose.foundation.pager.rememberPagerState\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.PrimaryTabRow\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.Tab\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.zIndex\nimport dev.icerock.moko.resources.StringResource\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.launch\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.TabText\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun TabbedScreen(\n    titleRes: StringResource,\n    tabs: ImmutableList<TabContent>,\n    state: PagerState = rememberPagerState { tabs.size },\n    searchQuery: String? = null,\n    onChangeSearchQuery: (String?) -> Unit = {},\n) {\n    val scope = rememberCoroutineScope()\n    val snackbarHostState = remember { SnackbarHostState() }\n\n    Scaffold(\n        topBar = {\n            val tab = tabs[state.currentPage]\n            val searchEnabled = tab.searchEnabled\n\n            SearchToolbar(\n                titleContent = { AppBarTitle(stringResource(titleRes)) },\n                searchEnabled = searchEnabled,\n                searchQuery = if (searchEnabled) searchQuery else null,\n                onChangeSearchQuery = onChangeSearchQuery,\n                actions = { AppBarActions(tab.actions) },\n            )\n        },\n        snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n    ) { contentPadding ->\n        Column(\n            modifier = Modifier.padding(\n                top = contentPadding.calculateTopPadding(),\n                start = contentPadding.calculateStartPadding(LocalLayoutDirection.current),\n                end = contentPadding.calculateEndPadding(LocalLayoutDirection.current),\n            ),\n        ) {\n            PrimaryTabRow(\n                selectedTabIndex = state.currentPage,\n                modifier = Modifier.zIndex(1f),\n            ) {\n                tabs.forEachIndexed { index, tab ->\n                    Tab(\n                        selected = state.currentPage == index,\n                        onClick = { scope.launch { state.animateScrollToPage(index) } },\n                        text = { TabText(text = stringResource(tab.titleRes), badgeCount = tab.badgeNumber) },\n                        unselectedContentColor = MaterialTheme.colorScheme.onSurface,\n                    )\n                }\n            }\n\n            HorizontalPager(\n                modifier = Modifier.fillMaxSize(),\n                state = state,\n                verticalAlignment = Alignment.Top,\n            ) { page ->\n                tabs[page].content(\n                    PaddingValues(bottom = contentPadding.calculateBottomPadding()),\n                    snackbarHostState,\n                )\n            }\n        }\n    }\n}\n\ndata class TabContent(\n    val titleRes: StringResource,\n    val badgeNumber: Int? = null,\n    val searchEnabled: Boolean = false,\n    val actions: ImmutableList<AppBar.AppBarAction> = persistentListOf(),\n    val content: @Composable (contentPadding: PaddingValues, snackbarHostState: SnackbarHostState) -> Unit,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/crash/CrashScreen.kt",
    "content": "package eu.kanade.presentation.crash\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.BugReport\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.tachiyomi.util.CrashLogUtil\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.InfoScreen\n\n@Composable\nfun CrashScreen(\n    exception: Throwable?,\n    onRestartClick: () -> Unit,\n) {\n    val scope = rememberCoroutineScope()\n    val context = LocalContext.current\n\n    InfoScreen(\n        icon = Icons.Outlined.BugReport,\n        headingText = stringResource(MR.strings.crash_screen_title),\n        subtitleText = stringResource(MR.strings.crash_screen_description, stringResource(MR.strings.app_name)),\n        acceptText = stringResource(MR.strings.pref_dump_crash_logs),\n        onAcceptClick = {\n            scope.launch {\n                CrashLogUtil(context).dumpLogs(exception)\n            }\n        },\n        rejectText = stringResource(MR.strings.crash_screen_restart_application),\n        onRejectClick = onRestartClick,\n    ) {\n        Box(\n            modifier = Modifier\n                .padding(vertical = MaterialTheme.padding.small)\n                .clip(MaterialTheme.shapes.small)\n                .fillMaxSize()\n                .background(MaterialTheme.colorScheme.surfaceVariant),\n        ) {\n            Text(\n                text = exception.toString(),\n                modifier = Modifier\n                    .padding(all = MaterialTheme.padding.small),\n                color = MaterialTheme.colorScheme.onSurfaceVariant,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun CrashScreenPreview() {\n    TachiyomiPreviewTheme {\n        CrashScreen(exception = RuntimeException(\"Dummy\")) {}\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt",
    "content": "package eu.kanade.presentation.history\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.DeleteSweep\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.tooling.preview.PreviewParameter\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.AppBarTitle\nimport eu.kanade.presentation.components.SearchToolbar\nimport eu.kanade.presentation.components.relativeDateText\nimport eu.kanade.presentation.history.components.HistoryItem\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.presentation.util.animateItemFastScroll\nimport eu.kanade.tachiyomi.ui.history.HistoryScreenModel\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.ListGroupHeader\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport java.time.LocalDate\n\n@Composable\nfun HistoryScreen(\n    state: HistoryScreenModel.State,\n    snackbarHostState: SnackbarHostState,\n    onSearchQueryChange: (String?) -> Unit,\n    onClickCover: (mangaId: Long) -> Unit,\n    onClickResume: (mangaId: Long, chapterId: Long) -> Unit,\n    onClickFavorite: (mangaId: Long) -> Unit,\n    onDialogChange: (HistoryScreenModel.Dialog?) -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            SearchToolbar(\n                titleContent = { AppBarTitle(stringResource(MR.strings.history)) },\n                searchQuery = state.searchQuery,\n                onChangeSearchQuery = onSearchQueryChange,\n                actions = {\n                    AppBarActions(\n                        persistentListOf(\n                            AppBar.Action(\n                                title = stringResource(MR.strings.pref_clear_history),\n                                icon = Icons.Outlined.DeleteSweep,\n                                onClick = {\n                                    onDialogChange(HistoryScreenModel.Dialog.DeleteAll)\n                                },\n                            ),\n                        ),\n                    )\n                },\n                scrollBehavior = scrollBehavior,\n            )\n        },\n        snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n    ) { contentPadding ->\n        state.list.let {\n            if (it == null) {\n                LoadingScreen(Modifier.padding(contentPadding))\n            } else if (it.isEmpty()) {\n                val msg = if (!state.searchQuery.isNullOrEmpty()) {\n                    MR.strings.no_results_found\n                } else {\n                    MR.strings.information_no_recent_manga\n                }\n                EmptyScreen(\n                    stringRes = msg,\n                    modifier = Modifier.padding(contentPadding),\n                )\n            } else {\n                HistoryScreenContent(\n                    history = it,\n                    contentPadding = contentPadding,\n                    onClickCover = { history -> onClickCover(history.mangaId) },\n                    onClickResume = { history -> onClickResume(history.mangaId, history.chapterId) },\n                    onClickDelete = { item -> onDialogChange(HistoryScreenModel.Dialog.Delete(item)) },\n                    onClickFavorite = { history -> onClickFavorite(history.mangaId) },\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun HistoryScreenContent(\n    history: List<HistoryUiModel>,\n    contentPadding: PaddingValues,\n    onClickCover: (HistoryWithRelations) -> Unit,\n    onClickResume: (HistoryWithRelations) -> Unit,\n    onClickDelete: (HistoryWithRelations) -> Unit,\n    onClickFavorite: (HistoryWithRelations) -> Unit,\n) {\n    FastScrollLazyColumn(\n        contentPadding = contentPadding,\n    ) {\n        items(\n            items = history,\n            key = { \"history-${it.hashCode()}\" },\n            contentType = {\n                when (it) {\n                    is HistoryUiModel.Header -> \"header\"\n                    is HistoryUiModel.Item -> \"item\"\n                }\n            },\n        ) { item ->\n            when (item) {\n                is HistoryUiModel.Header -> {\n                    ListGroupHeader(\n                        modifier = Modifier.animateItemFastScroll(),\n                        text = relativeDateText(item.date),\n                    )\n                }\n                is HistoryUiModel.Item -> {\n                    val value = item.item\n                    HistoryItem(\n                        modifier = Modifier.animateItemFastScroll(),\n                        history = value,\n                        onClickCover = { onClickCover(value) },\n                        onClickResume = { onClickResume(value) },\n                        onClickDelete = { onClickDelete(value) },\n                        onClickFavorite = { onClickFavorite(value) },\n                    )\n                }\n            }\n        }\n    }\n}\n\nsealed interface HistoryUiModel {\n    data class Header(val date: LocalDate) : HistoryUiModel\n    data class Item(val item: HistoryWithRelations) : HistoryUiModel\n}\n\n@PreviewLightDark\n@Composable\ninternal fun HistoryScreenPreviews(\n    @PreviewParameter(HistoryScreenModelStateProvider::class)\n    historyState: HistoryScreenModel.State,\n) {\n    TachiyomiPreviewTheme {\n        HistoryScreen(\n            state = historyState,\n            snackbarHostState = SnackbarHostState(),\n            onSearchQueryChange = {},\n            onClickCover = {},\n            onClickResume = { _, _ -> run {} },\n            onDialogChange = {},\n            onClickFavorite = {},\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/history/HistoryScreenModelStateProvider.kt",
    "content": "package eu.kanade.presentation.history\n\nimport androidx.compose.ui.tooling.preview.PreviewParameterProvider\nimport eu.kanade.tachiyomi.ui.history.HistoryScreenModel\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.domain.manga.model.MangaCover\nimport java.time.Instant\nimport java.time.LocalDate\nimport java.time.temporal.ChronoUnit\nimport java.util.Date\nimport kotlin.random.Random\n\nclass HistoryScreenModelStateProvider : PreviewParameterProvider<HistoryScreenModel.State> {\n\n    private val multiPage = HistoryScreenModel.State(\n        searchQuery = null,\n        list =\n        listOf(HistoryUiModelExamples.headerToday)\n            .asSequence()\n            .plus(HistoryUiModelExamples.items().take(3))\n            .plus(HistoryUiModelExamples.header { it.minus(1, ChronoUnit.DAYS) })\n            .plus(HistoryUiModelExamples.items().take(1))\n            .plus(HistoryUiModelExamples.header { it.minus(2, ChronoUnit.DAYS) })\n            .plus(HistoryUiModelExamples.items().take(7))\n            .toList(),\n        dialog = null,\n    )\n\n    private val shortRecent = HistoryScreenModel.State(\n        searchQuery = null,\n        list = listOf(\n            HistoryUiModelExamples.headerToday,\n            HistoryUiModelExamples.items().first(),\n        ),\n        dialog = null,\n    )\n\n    private val shortFuture = HistoryScreenModel.State(\n        searchQuery = null,\n        list = listOf(\n            HistoryUiModelExamples.headerTomorrow,\n            HistoryUiModelExamples.items().first(),\n        ),\n        dialog = null,\n    )\n\n    private val empty = HistoryScreenModel.State(\n        searchQuery = null,\n        list = listOf(),\n        dialog = null,\n    )\n\n    private val loadingWithSearchQuery = HistoryScreenModel.State(\n        searchQuery = \"Example Search Query\",\n    )\n\n    private val loading = HistoryScreenModel.State(\n        searchQuery = null,\n        list = null,\n        dialog = null,\n    )\n\n    override val values: Sequence<HistoryScreenModel.State> = sequenceOf(\n        multiPage,\n        shortRecent,\n        shortFuture,\n        empty,\n        loadingWithSearchQuery,\n        loading,\n    )\n\n    private object HistoryUiModelExamples {\n        val headerToday = header()\n        val headerTomorrow =\n            HistoryUiModel.Header(LocalDate.now().plusDays(1))\n\n        fun header(instantBuilder: (Instant) -> Instant = { it }) =\n            HistoryUiModel.Header(LocalDate.from(instantBuilder(Instant.now())))\n\n        fun items() = sequence {\n            var count = 1\n            while (true) {\n                yield(randItem { it.copy(title = \"Example Title $count\") })\n                count += 1\n            }\n        }\n\n        fun randItem(historyBuilder: (HistoryWithRelations) -> HistoryWithRelations = { it }) =\n            HistoryUiModel.Item(\n                historyBuilder(\n                    HistoryWithRelations(\n                        id = Random.nextLong(),\n                        chapterId = Random.nextLong(),\n                        mangaId = Random.nextLong(),\n                        title = \"Test Title\",\n                        chapterNumber = Random.nextDouble(),\n                        readAt = Date.from(Instant.now()),\n                        readDuration = Random.nextLong(),\n                        coverData = MangaCover(\n                            mangaId = Random.nextLong(),\n                            sourceId = Random.nextLong(),\n                            isMangaFavorite = Random.nextBoolean(),\n                            url = \"https://example.com/cover.png\",\n                            lastModified = Random.nextLong(),\n                        ),\n                    ),\n                ),\n            )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/history/components/HistoryDialogs.kt",
    "content": "package eu.kanade.presentation.history.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun HistoryDeleteDialog(\n    onDismissRequest: () -> Unit,\n    onDelete: (Boolean) -> Unit,\n) {\n    var removeEverything by remember { mutableStateOf(false) }\n\n    AlertDialog(\n        title = {\n            Text(text = stringResource(MR.strings.action_remove))\n        },\n        text = {\n            Column(\n                verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n            ) {\n                Text(text = stringResource(MR.strings.dialog_with_checkbox_remove_description))\n\n                LabeledCheckbox(\n                    label = stringResource(MR.strings.dialog_with_checkbox_reset),\n                    checked = removeEverything,\n                    onCheckedChange = { removeEverything = it },\n                )\n            }\n        },\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(onClick = {\n                onDelete(removeEverything)\n                onDismissRequest()\n            }) {\n                Text(text = stringResource(MR.strings.action_remove))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n    )\n}\n\n@Composable\nfun HistoryDeleteAllDialog(\n    onDismissRequest: () -> Unit,\n    onDelete: () -> Unit,\n) {\n    AlertDialog(\n        title = {\n            Text(text = stringResource(MR.strings.action_remove_everything))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.clear_history_confirmation))\n        },\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(onClick = {\n                onDelete()\n                onDismissRequest()\n            }) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n    )\n}\n\n@PreviewLightDark\n@Composable\nprivate fun HistoryDeleteDialogPreview() {\n    TachiyomiPreviewTheme {\n        HistoryDeleteDialog(\n            onDismissRequest = {},\n            onDelete = {},\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt",
    "content": "package eu.kanade.presentation.history.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Delete\nimport androidx.compose.material.icons.outlined.FavoriteBorder\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.tooling.preview.PreviewParameter\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.manga.components.MangaCover\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.presentation.util.formatChapterNumber\nimport eu.kanade.tachiyomi.util.lang.toTimestampString\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\nprivate val HistoryItemHeight = 96.dp\n\n@Composable\nfun HistoryItem(\n    history: HistoryWithRelations,\n    onClickCover: () -> Unit,\n    onClickResume: () -> Unit,\n    onClickDelete: () -> Unit,\n    onClickFavorite: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Row(\n        modifier = modifier\n            .clickable(onClick = onClickResume)\n            .height(HistoryItemHeight)\n            .padding(horizontal = MaterialTheme.padding.medium, vertical = MaterialTheme.padding.small),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        MangaCover.Book(\n            modifier = Modifier.fillMaxHeight(),\n            data = history.coverData,\n            onClick = onClickCover,\n        )\n        Column(\n            modifier = Modifier\n                .weight(1f)\n                .padding(start = MaterialTheme.padding.medium, end = MaterialTheme.padding.small),\n        ) {\n            val textStyle = MaterialTheme.typography.bodyMedium\n            Text(\n                text = history.title,\n                fontWeight = FontWeight.SemiBold,\n                maxLines = 2,\n                overflow = TextOverflow.Ellipsis,\n                style = textStyle,\n            )\n            val readAt = remember { history.readAt?.toTimestampString() ?: \"\" }\n            Text(\n                text = if (history.chapterNumber > -1) {\n                    stringResource(\n                        MR.strings.recent_manga_time,\n                        formatChapterNumber(history.chapterNumber),\n                        readAt,\n                    )\n                } else {\n                    readAt\n                },\n                modifier = Modifier.padding(top = 4.dp),\n                style = textStyle,\n            )\n        }\n\n        if (!history.coverData.isMangaFavorite) {\n            IconButton(onClick = onClickFavorite) {\n                Icon(\n                    imageVector = Icons.Outlined.FavoriteBorder,\n                    contentDescription = stringResource(MR.strings.add_to_library),\n                    tint = MaterialTheme.colorScheme.onSurface,\n                )\n            }\n        }\n\n        IconButton(onClick = onClickDelete) {\n            Icon(\n                imageVector = Icons.Outlined.Delete,\n                contentDescription = stringResource(MR.strings.action_delete),\n                tint = MaterialTheme.colorScheme.onSurface,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun HistoryItemPreviews(\n    @PreviewParameter(HistoryWithRelationsProvider::class)\n    historyWithRelations: HistoryWithRelations,\n) {\n    TachiyomiPreviewTheme {\n        Surface {\n            HistoryItem(\n                history = historyWithRelations,\n                onClickCover = {},\n                onClickResume = {},\n                onClickDelete = {},\n                onClickFavorite = {},\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/history/components/HistoryWithRelationsProvider.kt",
    "content": "package eu.kanade.presentation.history.components\n\nimport androidx.compose.ui.tooling.preview.PreviewParameterProvider\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport java.util.Date\n\ninternal class HistoryWithRelationsProvider : PreviewParameterProvider<HistoryWithRelations> {\n\n    private val simple = HistoryWithRelations(\n        id = 1L,\n        chapterId = 2L,\n        mangaId = 3L,\n        title = \"Test Title\",\n        chapterNumber = 10.2,\n        readAt = Date(1697247357L),\n        readDuration = 123L,\n        coverData = tachiyomi.domain.manga.model.MangaCover(\n            mangaId = 3L,\n            sourceId = 4L,\n            isMangaFavorite = false,\n            url = \"https://example.com/cover.png\",\n            lastModified = 5L,\n        ),\n    )\n\n    private val historyWithoutReadAt = HistoryWithRelations(\n        id = 1L,\n        chapterId = 2L,\n        mangaId = 3L,\n        title = \"Test Title\",\n        chapterNumber = 10.2,\n        readAt = null,\n        readDuration = 123L,\n        coverData = tachiyomi.domain.manga.model.MangaCover(\n            mangaId = 3L,\n            sourceId = 4L,\n            isMangaFavorite = false,\n            url = \"https://example.com/cover.png\",\n            lastModified = 5L,\n        ),\n    )\n\n    private val historyWithNegativeChapterNumber = HistoryWithRelations(\n        id = 1L,\n        chapterId = 2L,\n        mangaId = 3L,\n        title = \"Test Title\",\n        chapterNumber = -2.0,\n        readAt = Date(1697247357L),\n        readDuration = 123L,\n        coverData = tachiyomi.domain.manga.model.MangaCover(\n            mangaId = 3L,\n            sourceId = 4L,\n            isMangaFavorite = false,\n            url = \"https://example.com/cover.png\",\n            lastModified = 5L,\n        ),\n    )\n\n    override val values: Sequence<HistoryWithRelations>\n        get() = sequenceOf(simple, historyWithoutReadAt, historyWithNegativeChapterNumber)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/DeleteLibraryMangaDialog.kt",
    "content": "package eu.kanade.presentation.library\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.core.common.preference.CheckboxState\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun DeleteLibraryMangaDialog(\n    containsLocalManga: Boolean,\n    onDismissRequest: () -> Unit,\n    onConfirm: (Boolean, Boolean) -> Unit,\n) {\n    var list by remember {\n        mutableStateOf(\n            buildList<CheckboxState.State<StringResource>> {\n                add(CheckboxState.State.None(MR.strings.manga_from_library))\n                if (!containsLocalManga) {\n                    add(CheckboxState.State.None(MR.strings.downloaded_chapters))\n                }\n            },\n        )\n    }\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        confirmButton = {\n            TextButton(\n                enabled = list.any { it.isChecked },\n                onClick = {\n                    onDismissRequest()\n                    onConfirm(\n                        list[0].isChecked,\n                        list.getOrElse(1) { CheckboxState.State.None(0) }.isChecked,\n                    )\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_remove))\n        },\n        text = {\n            Column {\n                list.forEach { state ->\n                    LabeledCheckbox(\n                        label = stringResource(state.value),\n                        checked = state.isChecked,\n                        onCheckedChange = {\n                            val index = list.indexOf(state)\n                            if (index != -1) {\n                                val mutableList = list.toMutableList()\n                                mutableList[index] = state.next() as CheckboxState.State<StringResource>\n                                list = mutableList.toList()\n                            }\n                        },\n                    )\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt",
    "content": "package eu.kanade.presentation.library\n\nimport android.content.res.Configuration\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Refresh\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalConfiguration\nimport eu.kanade.presentation.components.TabbedDialog\nimport eu.kanade.presentation.components.TabbedDialogPaddings\nimport eu.kanade.tachiyomi.ui.library.LibrarySettingsScreenModel\nimport eu.kanade.tachiyomi.util.system.isReleaseBuildType\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.model.LibrarySort\nimport tachiyomi.domain.library.model.sort\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.BaseSortItem\nimport tachiyomi.presentation.core.components.CheckboxItem\nimport tachiyomi.presentation.core.components.HeadingItem\nimport tachiyomi.presentation.core.components.SettingsChipRow\nimport tachiyomi.presentation.core.components.SliderItem\nimport tachiyomi.presentation.core.components.SortItem\nimport tachiyomi.presentation.core.components.TriStateItem\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\n\n@Composable\nfun LibrarySettingsDialog(\n    onDismissRequest: () -> Unit,\n    screenModel: LibrarySettingsScreenModel,\n    category: Category?,\n) {\n    TabbedDialog(\n        onDismissRequest = onDismissRequest,\n        tabTitles = persistentListOf(\n            stringResource(MR.strings.action_filter),\n            stringResource(MR.strings.action_sort),\n            stringResource(MR.strings.action_display),\n        ),\n    ) { page ->\n        Column(\n            modifier = Modifier\n                .padding(vertical = TabbedDialogPaddings.Vertical)\n                .verticalScroll(rememberScrollState()),\n        ) {\n            when (page) {\n                0 -> FilterPage(\n                    screenModel = screenModel,\n                )\n                1 -> SortPage(\n                    category = category,\n                    screenModel = screenModel,\n                )\n                2 -> DisplayPage(\n                    screenModel = screenModel,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ColumnScope.FilterPage(\n    screenModel: LibrarySettingsScreenModel,\n) {\n    val filterDownloaded by screenModel.libraryPreferences.filterDownloaded.collectAsState()\n    val downloadedOnly by screenModel.preferences.downloadedOnly.collectAsState()\n    val autoUpdateMangaRestrictions by screenModel.libraryPreferences.autoUpdateMangaRestrictions.collectAsState()\n\n    TriStateItem(\n        label = stringResource(MR.strings.label_downloaded),\n        state = if (downloadedOnly) {\n            TriState.ENABLED_IS\n        } else {\n            filterDownloaded\n        },\n        enabled = !downloadedOnly,\n        onClick = { screenModel.toggleFilter(LibraryPreferences::filterDownloaded) },\n    )\n    val filterUnread by screenModel.libraryPreferences.filterUnread.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.action_filter_unread),\n        state = filterUnread,\n        onClick = { screenModel.toggleFilter(LibraryPreferences::filterUnread) },\n    )\n    val filterStarted by screenModel.libraryPreferences.filterStarted.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.label_started),\n        state = filterStarted,\n        onClick = { screenModel.toggleFilter(LibraryPreferences::filterStarted) },\n    )\n    val filterBookmarked by screenModel.libraryPreferences.filterBookmarked.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.action_filter_bookmarked),\n        state = filterBookmarked,\n        onClick = { screenModel.toggleFilter(LibraryPreferences::filterBookmarked) },\n    )\n    val filterCompleted by screenModel.libraryPreferences.filterCompleted.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.completed),\n        state = filterCompleted,\n        onClick = { screenModel.toggleFilter(LibraryPreferences::filterCompleted) },\n    )\n    // TODO: re-enable when custom intervals are ready for stable\n    if ((!isReleaseBuildType) && LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in autoUpdateMangaRestrictions) {\n        val filterIntervalCustom by screenModel.libraryPreferences.filterIntervalCustom.collectAsState()\n        TriStateItem(\n            label = stringResource(MR.strings.action_filter_interval_custom),\n            state = filterIntervalCustom,\n            onClick = { screenModel.toggleFilter(LibraryPreferences::filterIntervalCustom) },\n        )\n    }\n\n    val trackers by screenModel.trackersFlow.collectAsState()\n    when (trackers.size) {\n        0 -> {\n            // No trackers\n        }\n        1 -> {\n            val service = trackers[0]\n            val filterTracker by screenModel.libraryPreferences.filterTracking(service.id.toInt()).collectAsState()\n            TriStateItem(\n                label = stringResource(MR.strings.action_filter_tracked),\n                state = filterTracker,\n                onClick = { screenModel.toggleTracker(service.id.toInt()) },\n            )\n        }\n        else -> {\n            HeadingItem(MR.strings.action_filter_tracked)\n            trackers.map { service ->\n                val filterTracker by screenModel.libraryPreferences.filterTracking(service.id.toInt()).collectAsState()\n                TriStateItem(\n                    label = service.name,\n                    state = filterTracker,\n                    onClick = { screenModel.toggleTracker(service.id.toInt()) },\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ColumnScope.SortPage(\n    category: Category?,\n    screenModel: LibrarySettingsScreenModel,\n) {\n    val trackers by screenModel.trackersFlow.collectAsState()\n    val sortingMode = category.sort.type\n    val sortDescending = !category.sort.isAscending\n\n    val options = remember(trackers.isEmpty()) {\n        val trackerMeanPair = if (trackers.isNotEmpty()) {\n            MR.strings.action_sort_tracker_score to LibrarySort.Type.TrackerMean\n        } else {\n            null\n        }\n        listOfNotNull(\n            MR.strings.action_sort_alpha to LibrarySort.Type.Alphabetical,\n            MR.strings.action_sort_total to LibrarySort.Type.TotalChapters,\n            MR.strings.action_sort_last_read to LibrarySort.Type.LastRead,\n            MR.strings.action_sort_last_manga_update to LibrarySort.Type.LastUpdate,\n            MR.strings.action_sort_unread_count to LibrarySort.Type.UnreadCount,\n            MR.strings.action_sort_latest_chapter to LibrarySort.Type.LatestChapter,\n            MR.strings.action_sort_chapter_fetch_date to LibrarySort.Type.ChapterFetchDate,\n            MR.strings.action_sort_date_added to LibrarySort.Type.DateAdded,\n            trackerMeanPair,\n            MR.strings.action_sort_random to LibrarySort.Type.Random,\n        )\n    }\n\n    options.map { (titleRes, mode) ->\n        if (mode == LibrarySort.Type.Random) {\n            BaseSortItem(\n                label = stringResource(titleRes),\n                icon = Icons.Default.Refresh\n                    .takeIf { sortingMode == LibrarySort.Type.Random },\n                onClick = {\n                    screenModel.setSort(category, mode, LibrarySort.Direction.Ascending)\n                },\n            )\n            return@map\n        }\n        SortItem(\n            label = stringResource(titleRes),\n            sortDescending = sortDescending.takeIf { sortingMode == mode },\n            onClick = {\n                val isTogglingDirection = sortingMode == mode\n                val direction = when {\n                    isTogglingDirection -> if (sortDescending) {\n                        LibrarySort.Direction.Ascending\n                    } else {\n                        LibrarySort.Direction.Descending\n                    }\n                    else -> if (sortDescending) {\n                        LibrarySort.Direction.Descending\n                    } else {\n                        LibrarySort.Direction.Ascending\n                    }\n                }\n                screenModel.setSort(category, mode, direction)\n            },\n        )\n    }\n}\n\nprivate val displayModes = listOf(\n    MR.strings.action_display_grid to LibraryDisplayMode.CompactGrid,\n    MR.strings.action_display_comfortable_grid to LibraryDisplayMode.ComfortableGrid,\n    MR.strings.action_display_cover_only_grid to LibraryDisplayMode.CoverOnlyGrid,\n    MR.strings.action_display_list to LibraryDisplayMode.List,\n)\n\n@Composable\nprivate fun ColumnScope.DisplayPage(\n    screenModel: LibrarySettingsScreenModel,\n) {\n    val displayMode by screenModel.libraryPreferences.displayMode.collectAsState()\n    SettingsChipRow(MR.strings.action_display_mode) {\n        displayModes.map { (titleRes, mode) ->\n            FilterChip(\n                selected = displayMode == mode,\n                onClick = { screenModel.setDisplayMode(mode) },\n                label = { Text(stringResource(titleRes)) },\n            )\n        }\n    }\n\n    if (displayMode != LibraryDisplayMode.List) {\n        val configuration = LocalConfiguration.current\n        val columnPreference = remember {\n            if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {\n                screenModel.libraryPreferences.landscapeColumns\n            } else {\n                screenModel.libraryPreferences.portraitColumns\n            }\n        }\n\n        val columns by columnPreference.collectAsState()\n        SliderItem(\n            value = columns,\n            valueRange = 0..10,\n            label = stringResource(MR.strings.pref_library_columns),\n            valueString = if (columns > 0) {\n                columns.toString()\n            } else {\n                stringResource(MR.strings.label_auto)\n            },\n            onChange = columnPreference::set,\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n    }\n\n    HeadingItem(MR.strings.overlay_header)\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_download_badge),\n        pref = screenModel.libraryPreferences.downloadBadge,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_unread_badge),\n        pref = screenModel.libraryPreferences.unreadBadge,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_local_badge),\n        pref = screenModel.libraryPreferences.localBadge,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_language_badge),\n        pref = screenModel.libraryPreferences.languageBadge,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_show_continue_reading_button),\n        pref = screenModel.libraryPreferences.showContinueReadingButton,\n    )\n\n    HeadingItem(MR.strings.tabs_header)\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_show_tabs),\n        pref = screenModel.libraryPreferences.categoryTabs,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.action_display_show_number_of_items),\n        pref = screenModel.libraryPreferences.categoryNumberOfItems,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.BoxScope\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.aspectRatio\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.PlayArrow\nimport androidx.compose.material3.FilledIconButton\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButtonDefaults\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.contentColorFor\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.draw.drawBehind\nimport androidx.compose.ui.graphics.Brush\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.Shadow\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport eu.kanade.presentation.manga.components.MangaCover\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.BadgeGroup\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.selectedBackground\nimport tachiyomi.domain.manga.model.MangaCover as MangaCoverModel\n\nobject CommonMangaItemDefaults {\n    val GridHorizontalSpacer = 4.dp\n    val GridVerticalSpacer = 4.dp\n\n    @Suppress(\"ConstPropertyName\")\n    const val BrowseFavoriteCoverAlpha = 0.34f\n}\n\nprivate val ContinueReadingButtonSizeSmall = 28.dp\nprivate val ContinueReadingButtonSizeLarge = 32.dp\n\nprivate val ContinueReadingButtonIconSizeSmall = 16.dp\nprivate val ContinueReadingButtonIconSizeLarge = 20.dp\n\nprivate val ContinueReadingButtonGridPadding = 6.dp\nprivate val ContinueReadingButtonListSpacing = 8.dp\n\nprivate const val GRID_SELECTED_COVER_ALPHA = 0.76f\n\n/**\n * Layout of grid list item with title overlaying the cover.\n * Accepts null [title] for a cover-only view.\n */\n@Composable\nfun MangaCompactGridItem(\n    coverData: MangaCoverModel,\n    onClick: () -> Unit,\n    onLongClick: () -> Unit,\n    isSelected: Boolean = false,\n    title: String? = null,\n    onClickContinueReading: (() -> Unit)? = null,\n    coverAlpha: Float = 1f,\n    coverBadgeStart: @Composable (RowScope.() -> Unit)? = null,\n    coverBadgeEnd: @Composable (RowScope.() -> Unit)? = null,\n) {\n    GridItemSelectable(\n        isSelected = isSelected,\n        onClick = onClick,\n        onLongClick = onLongClick,\n    ) {\n        MangaGridCover(\n            cover = {\n                MangaCover.Book(\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .alpha(if (isSelected) GRID_SELECTED_COVER_ALPHA else coverAlpha),\n                    data = coverData,\n                )\n            },\n            badgesStart = coverBadgeStart,\n            badgesEnd = coverBadgeEnd,\n            content = {\n                if (title != null) {\n                    CoverTextOverlay(\n                        title = title,\n                        onClickContinueReading = onClickContinueReading,\n                    )\n                } else if (onClickContinueReading != null) {\n                    ContinueReadingButton(\n                        size = ContinueReadingButtonSizeLarge,\n                        iconSize = ContinueReadingButtonIconSizeLarge,\n                        onClick = onClickContinueReading,\n                        modifier = Modifier\n                            .padding(ContinueReadingButtonGridPadding)\n                            .align(Alignment.BottomEnd),\n                    )\n                }\n            },\n        )\n    }\n}\n\n/**\n * Title overlay for [MangaCompactGridItem]\n */\n@Composable\nprivate fun BoxScope.CoverTextOverlay(\n    title: String,\n    onClickContinueReading: (() -> Unit)? = null,\n) {\n    Box(\n        modifier = Modifier\n            .clip(RoundedCornerShape(bottomStart = 4.dp, bottomEnd = 4.dp))\n            .background(\n                Brush.verticalGradient(\n                    0f to Color.Transparent,\n                    1f to Color(0xAA000000),\n                ),\n            )\n            .fillMaxHeight(0.33f)\n            .fillMaxWidth()\n            .align(Alignment.BottomCenter),\n    )\n    Row(\n        modifier = Modifier.align(Alignment.BottomStart),\n        verticalAlignment = Alignment.Bottom,\n    ) {\n        GridItemTitle(\n            modifier = Modifier\n                .weight(1f)\n                .padding(8.dp),\n            title = title,\n            style = MaterialTheme.typography.titleSmall.copy(\n                color = Color.White,\n                shadow = Shadow(\n                    color = Color.Black,\n                    blurRadius = 4f,\n                ),\n            ),\n            minLines = 1,\n        )\n        if (onClickContinueReading != null) {\n            ContinueReadingButton(\n                size = ContinueReadingButtonSizeSmall,\n                iconSize = ContinueReadingButtonIconSizeSmall,\n                onClick = onClickContinueReading,\n                modifier = Modifier.padding(\n                    end = ContinueReadingButtonGridPadding,\n                    bottom = ContinueReadingButtonGridPadding,\n                ),\n            )\n        }\n    }\n}\n\n/**\n * Layout of grid list item with title below the cover.\n */\n@Composable\nfun MangaComfortableGridItem(\n    coverData: MangaCoverModel,\n    title: String,\n    onClick: () -> Unit,\n    onLongClick: () -> Unit,\n    isSelected: Boolean = false,\n    titleMaxLines: Int = 2,\n    coverAlpha: Float = 1f,\n    coverBadgeStart: (@Composable RowScope.() -> Unit)? = null,\n    coverBadgeEnd: (@Composable RowScope.() -> Unit)? = null,\n    onClickContinueReading: (() -> Unit)? = null,\n) {\n    GridItemSelectable(\n        isSelected = isSelected,\n        onClick = onClick,\n        onLongClick = onLongClick,\n    ) {\n        Column {\n            MangaGridCover(\n                cover = {\n                    MangaCover.Book(\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .alpha(if (isSelected) GRID_SELECTED_COVER_ALPHA else coverAlpha),\n                        data = coverData,\n                    )\n                },\n                badgesStart = coverBadgeStart,\n                badgesEnd = coverBadgeEnd,\n                content = {\n                    if (onClickContinueReading != null) {\n                        ContinueReadingButton(\n                            size = ContinueReadingButtonSizeLarge,\n                            iconSize = ContinueReadingButtonIconSizeLarge,\n                            onClick = onClickContinueReading,\n                            modifier = Modifier\n                                .padding(ContinueReadingButtonGridPadding)\n                                .align(Alignment.BottomEnd),\n                        )\n                    }\n                },\n            )\n            GridItemTitle(\n                modifier = Modifier.padding(4.dp),\n                title = title,\n                style = MaterialTheme.typography.titleSmall,\n                minLines = 2,\n                maxLines = titleMaxLines,\n            )\n        }\n    }\n}\n\n/**\n * Common cover layout to add contents to be drawn on top of the cover.\n */\n@Composable\nprivate fun MangaGridCover(\n    modifier: Modifier = Modifier,\n    cover: @Composable BoxScope.() -> Unit = {},\n    badgesStart: (@Composable RowScope.() -> Unit)? = null,\n    badgesEnd: (@Composable RowScope.() -> Unit)? = null,\n    content: @Composable (BoxScope.() -> Unit)? = null,\n) {\n    Box(\n        modifier = modifier\n            .fillMaxWidth()\n            .aspectRatio(MangaCover.Book.ratio),\n    ) {\n        cover()\n        content?.invoke(this)\n        if (badgesStart != null) {\n            BadgeGroup(\n                modifier = Modifier\n                    .padding(4.dp)\n                    .align(Alignment.TopStart),\n                content = badgesStart,\n            )\n        }\n\n        if (badgesEnd != null) {\n            BadgeGroup(\n                modifier = Modifier\n                    .padding(4.dp)\n                    .align(Alignment.TopEnd),\n                content = badgesEnd,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun GridItemTitle(\n    title: String,\n    style: TextStyle,\n    minLines: Int,\n    modifier: Modifier = Modifier,\n    maxLines: Int = 2,\n) {\n    Text(\n        modifier = modifier,\n        text = title,\n        fontSize = 12.sp,\n        lineHeight = 18.sp,\n        minLines = minLines,\n        maxLines = maxLines,\n        overflow = TextOverflow.Ellipsis,\n        style = style,\n    )\n}\n\n/**\n * Wrapper for grid items to handle selection state, click and long click.\n */\n@Composable\nprivate fun GridItemSelectable(\n    isSelected: Boolean,\n    onClick: () -> Unit,\n    onLongClick: () -> Unit,\n    modifier: Modifier = Modifier,\n    content: @Composable () -> Unit,\n) {\n    Box(\n        modifier = modifier\n            .clip(MaterialTheme.shapes.small)\n            .combinedClickable(\n                onClick = onClick,\n                onLongClick = onLongClick,\n            )\n            .selectedOutline(isSelected = isSelected, color = MaterialTheme.colorScheme.secondary)\n            .padding(4.dp),\n    ) {\n        val contentColor = if (isSelected) {\n            MaterialTheme.colorScheme.onSecondary\n        } else {\n            LocalContentColor.current\n        }\n        CompositionLocalProvider(LocalContentColor provides contentColor) {\n            content()\n        }\n    }\n}\n\n/**\n * @see GridItemSelectable\n */\nprivate fun Modifier.selectedOutline(\n    isSelected: Boolean,\n    color: Color,\n) = drawBehind { if (isSelected) drawRect(color = color) }\n\n/**\n * Layout of list item.\n */\n@Composable\nfun MangaListItem(\n    coverData: MangaCoverModel,\n    title: String,\n    onClick: () -> Unit,\n    onLongClick: () -> Unit,\n    badge: @Composable (RowScope.() -> Unit),\n    isSelected: Boolean = false,\n    coverAlpha: Float = 1f,\n    onClickContinueReading: (() -> Unit)? = null,\n) {\n    Row(\n        modifier = Modifier\n            .selectedBackground(isSelected)\n            .height(56.dp)\n            .combinedClickable(\n                onClick = onClick,\n                onLongClick = onLongClick,\n            )\n            .padding(horizontal = 16.dp, vertical = 8.dp),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        MangaCover.Square(\n            modifier = Modifier\n                .fillMaxHeight()\n                .alpha(coverAlpha),\n            data = coverData,\n        )\n        Text(\n            text = title,\n            modifier = Modifier\n                .padding(horizontal = 16.dp)\n                .weight(1f),\n            maxLines = 2,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n        BadgeGroup(content = badge)\n        if (onClickContinueReading != null) {\n            ContinueReadingButton(\n                size = ContinueReadingButtonSizeSmall,\n                iconSize = ContinueReadingButtonIconSizeSmall,\n                onClick = onClickContinueReading,\n                modifier = Modifier.padding(start = ContinueReadingButtonListSpacing),\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun ContinueReadingButton(\n    size: Dp,\n    iconSize: Dp,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Box(modifier = modifier) {\n        FilledIconButton(\n            onClick = onClick,\n            shape = MaterialTheme.shapes.small,\n            colors = IconButtonDefaults.filledIconButtonColors(\n                containerColor = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.9f),\n                contentColor = contentColorFor(MaterialTheme.colorScheme.primaryContainer),\n            ),\n            modifier = Modifier.size(size),\n        ) {\n            Icon(\n                imageVector = Icons.Filled.PlayArrow,\n                contentDescription = stringResource(MR.strings.action_resume),\n                modifier = Modifier.size(iconSize),\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/GlobalSearchItem.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.zIndex\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\ninternal fun GlobalSearchItem(\n    searchQuery: String,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    TextButton(\n        modifier = modifier,\n        onClick = onClick,\n    ) {\n        Text(\n            text = stringResource(MR.strings.action_global_search_query, searchQuery),\n            modifier = Modifier.zIndex(99f),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LazyLibraryGrid.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.foundation.lazy.grid.GridItemSpan\nimport androidx.compose.foundation.lazy.grid.LazyGridScope\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.presentation.core.components.FastScrollLazyVerticalGrid\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\ninternal fun LazyLibraryGrid(\n    modifier: Modifier = Modifier,\n    columns: Int,\n    contentPadding: PaddingValues,\n    content: LazyGridScope.() -> Unit,\n) {\n    FastScrollLazyVerticalGrid(\n        columns = if (columns == 0) GridCells.Adaptive(128.dp) else GridCells.Fixed(columns),\n        modifier = modifier,\n        contentPadding = contentPadding + PaddingValues(8.dp),\n        verticalArrangement = Arrangement.spacedBy(CommonMangaItemDefaults.GridVerticalSpacer),\n        horizontalArrangement = Arrangement.spacedBy(CommonMangaItemDefaults.GridHorizontalSpacer),\n        content = content,\n    )\n}\n\ninternal fun LazyGridScope.globalSearchItem(\n    searchQuery: String?,\n    onGlobalSearchClicked: () -> Unit,\n) {\n    if (!searchQuery.isNullOrEmpty()) {\n        item(\n            span = { GridItemSpan(maxLineSpan) },\n            contentType = { \"library_global_search_item\" },\n        ) {\n            GlobalSearchItem(\n                searchQuery = searchQuery,\n                onClick = onGlobalSearchClicked,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryBadges.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Folder\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.presentation.core.components.Badge\n\n@Composable\ninternal fun DownloadsBadge(count: Long) {\n    if (count > 0) {\n        Badge(\n            text = \"$count\",\n            color = MaterialTheme.colorScheme.tertiary,\n            textColor = MaterialTheme.colorScheme.onTertiary,\n        )\n    }\n}\n\n@Composable\ninternal fun UnreadBadge(count: Long) {\n    if (count > 0) {\n        Badge(text = \"$count\")\n    }\n}\n\n@Composable\ninternal fun LanguageBadge(\n    isLocal: Boolean,\n    sourceLanguage: String,\n) {\n    if (isLocal) {\n        Badge(\n            imageVector = Icons.Outlined.Folder,\n            color = MaterialTheme.colorScheme.tertiary,\n            iconColor = MaterialTheme.colorScheme.onTertiary,\n        )\n    } else if (sourceLanguage.isNotEmpty()) {\n        Badge(\n            text = sourceLanguage.uppercase(),\n            color = MaterialTheme.colorScheme.tertiary,\n            textColor = MaterialTheme.colorScheme.onTertiary,\n        )\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun BadgePreview() {\n    TachiyomiPreviewTheme {\n        Column {\n            DownloadsBadge(count = 10)\n            UnreadBadge(count = 10)\n            LanguageBadge(isLocal = true, sourceLanguage = \"EN\")\n            LanguageBadge(isLocal = false, sourceLanguage = \"EN\")\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryComfortableGrid.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.lazy.grid.items\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport eu.kanade.tachiyomi.ui.library.LibraryItem\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.MangaCover\n\n@Composable\ninternal fun LibraryComfortableGrid(\n    items: List<LibraryItem>,\n    columns: Int,\n    contentPadding: PaddingValues,\n    selection: Set<Long>,\n    onClick: (LibraryManga) -> Unit,\n    onLongClick: (LibraryManga) -> Unit,\n    onClickContinueReading: ((LibraryManga) -> Unit)?,\n    searchQuery: String?,\n    onGlobalSearchClicked: () -> Unit,\n) {\n    LazyLibraryGrid(\n        modifier = Modifier.fillMaxSize(),\n        columns = columns,\n        contentPadding = contentPadding,\n    ) {\n        globalSearchItem(searchQuery, onGlobalSearchClicked)\n\n        items(\n            items = items,\n            contentType = { \"library_comfortable_grid_item\" },\n        ) { libraryItem ->\n            val manga = libraryItem.libraryManga.manga\n            MangaComfortableGridItem(\n                isSelected = manga.id in selection,\n                title = manga.title,\n                coverData = MangaCover(\n                    mangaId = manga.id,\n                    sourceId = manga.source,\n                    isMangaFavorite = manga.favorite,\n                    url = manga.thumbnailUrl,\n                    lastModified = manga.coverLastModified,\n                ),\n                coverBadgeStart = {\n                    DownloadsBadge(count = libraryItem.downloadCount)\n                    UnreadBadge(count = libraryItem.unreadCount)\n                },\n                coverBadgeEnd = {\n                    LanguageBadge(\n                        isLocal = libraryItem.isLocal,\n                        sourceLanguage = libraryItem.sourceLanguage,\n                    )\n                },\n                onLongClick = { onLongClick(libraryItem.libraryManga) },\n                onClick = { onClick(libraryItem.libraryManga) },\n                onClickContinueReading = if (onClickContinueReading != null && libraryItem.unreadCount > 0) {\n                    { onClickContinueReading(libraryItem.libraryManga) }\n                } else {\n                    null\n                },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryCompactGrid.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.lazy.grid.items\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport eu.kanade.tachiyomi.ui.library.LibraryItem\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.MangaCover\n\n@Composable\ninternal fun LibraryCompactGrid(\n    items: List<LibraryItem>,\n    showTitle: Boolean,\n    columns: Int,\n    contentPadding: PaddingValues,\n    selection: Set<Long>,\n    onClick: (LibraryManga) -> Unit,\n    onLongClick: (LibraryManga) -> Unit,\n    onClickContinueReading: ((LibraryManga) -> Unit)?,\n    searchQuery: String?,\n    onGlobalSearchClicked: () -> Unit,\n) {\n    LazyLibraryGrid(\n        modifier = Modifier.fillMaxSize(),\n        columns = columns,\n        contentPadding = contentPadding,\n    ) {\n        globalSearchItem(searchQuery, onGlobalSearchClicked)\n\n        items(\n            items = items,\n            contentType = { \"library_compact_grid_item\" },\n        ) { libraryItem ->\n            val manga = libraryItem.libraryManga.manga\n            MangaCompactGridItem(\n                isSelected = manga.id in selection,\n                title = manga.title.takeIf { showTitle },\n                coverData = MangaCover(\n                    mangaId = manga.id,\n                    sourceId = manga.source,\n                    isMangaFavorite = manga.favorite,\n                    url = manga.thumbnailUrl,\n                    lastModified = manga.coverLastModified,\n                ),\n                coverBadgeStart = {\n                    DownloadsBadge(count = libraryItem.downloadCount)\n                    UnreadBadge(count = libraryItem.unreadCount)\n                },\n                coverBadgeEnd = {\n                    LanguageBadge(\n                        isLocal = libraryItem.isLocal,\n                        sourceLanguage = libraryItem.sourceLanguage,\n                    )\n                },\n                onLongClick = { onLongClick(libraryItem.libraryManga) },\n                onClick = { onClick(libraryItem.libraryManga) },\n                onClickContinueReading = if (onClickContinueReading != null && libraryItem.unreadCount > 0) {\n                    { onClickContinueReading(libraryItem.libraryManga) }\n                } else {\n                    null\n                },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.pager.rememberPagerState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport eu.kanade.core.preference.PreferenceMutableState\nimport eu.kanade.tachiyomi.ui.library.LibraryItem\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.launch\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.presentation.core.components.material.PullRefresh\nimport kotlin.time.Duration.Companion.seconds\n\n@Composable\nfun LibraryContent(\n    categories: List<Category>,\n    searchQuery: String?,\n    selection: Set<Long>,\n    contentPadding: PaddingValues,\n    currentPage: Int,\n    hasActiveFilters: Boolean,\n    showPageTabs: Boolean,\n    onChangeCurrentPage: (Int) -> Unit,\n    onClickManga: (Long) -> Unit,\n    onContinueReadingClicked: ((LibraryManga) -> Unit)?,\n    onToggleSelection: (Category, LibraryManga) -> Unit,\n    onToggleRangeSelection: (Category, LibraryManga) -> Unit,\n    onRefresh: () -> Boolean,\n    onGlobalSearchClicked: () -> Unit,\n    getItemCountForCategory: (Category) -> Int?,\n    getDisplayMode: (Int) -> PreferenceMutableState<LibraryDisplayMode>,\n    getColumnsForOrientation: (Boolean) -> PreferenceMutableState<Int>,\n    getItemsForCategory: (Category) -> List<LibraryItem>,\n) {\n    Column(\n        modifier = Modifier.padding(\n            top = contentPadding.calculateTopPadding(),\n            start = contentPadding.calculateStartPadding(LocalLayoutDirection.current),\n            end = contentPadding.calculateEndPadding(LocalLayoutDirection.current),\n        ),\n    ) {\n        val pagerState = rememberPagerState(currentPage) { categories.size }\n\n        val scope = rememberCoroutineScope()\n        var isRefreshing by remember(pagerState.currentPage) { mutableStateOf(false) }\n\n        if (showPageTabs && categories.isNotEmpty() && (categories.size > 1 || !categories.first().isSystemCategory)) {\n            LaunchedEffect(categories) {\n                if (categories.size <= pagerState.currentPage) {\n                    pagerState.scrollToPage(categories.size - 1)\n                }\n            }\n            LibraryTabs(\n                categories = categories,\n                pagerState = pagerState,\n                getItemCountForCategory = getItemCountForCategory,\n                onTabItemClick = {\n                    scope.launch {\n                        pagerState.animateScrollToPage(it)\n                    }\n                },\n            )\n        }\n\n        PullRefresh(\n            refreshing = isRefreshing,\n            enabled = selection.isEmpty(),\n            onRefresh = {\n                val started = onRefresh()\n                if (!started) return@PullRefresh\n                scope.launch {\n                    // Fake refresh status but hide it after a second as it's a long running task\n                    isRefreshing = true\n                    delay(1.seconds)\n                    isRefreshing = false\n                }\n            },\n        ) {\n            LibraryPager(\n                state = pagerState,\n                contentPadding = PaddingValues(bottom = contentPadding.calculateBottomPadding()),\n                hasActiveFilters = hasActiveFilters,\n                selection = selection,\n                searchQuery = searchQuery,\n                onGlobalSearchClicked = onGlobalSearchClicked,\n                getCategoryForPage = { page -> categories[page] },\n                getDisplayMode = getDisplayMode,\n                getColumnsForOrientation = getColumnsForOrientation,\n                getItemsForCategory = getItemsForCategory,\n                onClickManga = { category, manga ->\n                    if (selection.isNotEmpty()) {\n                        onToggleSelection(category, manga)\n                    } else {\n                        onClickManga(manga.manga.id)\n                    }\n                },\n                onLongClickManga = onToggleRangeSelection,\n                onClickContinueReading = onContinueReadingClicked,\n            )\n        }\n\n        LaunchedEffect(pagerState.currentPage) {\n            onChangeCurrentPage(pagerState.currentPage)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryList.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.tachiyomi.ui.library.LibraryItem\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\ninternal fun LibraryList(\n    items: List<LibraryItem>,\n    contentPadding: PaddingValues,\n    selection: Set<Long>,\n    onClick: (LibraryManga) -> Unit,\n    onLongClick: (LibraryManga) -> Unit,\n    onClickContinueReading: ((LibraryManga) -> Unit)?,\n    searchQuery: String?,\n    onGlobalSearchClicked: () -> Unit,\n) {\n    FastScrollLazyColumn(\n        modifier = Modifier.fillMaxSize(),\n        contentPadding = contentPadding + PaddingValues(vertical = 8.dp),\n    ) {\n        item {\n            if (!searchQuery.isNullOrEmpty()) {\n                GlobalSearchItem(\n                    modifier = Modifier.fillMaxWidth(),\n                    searchQuery = searchQuery,\n                    onClick = onGlobalSearchClicked,\n                )\n            }\n        }\n\n        items(\n            items = items,\n            contentType = { \"library_list_item\" },\n        ) { libraryItem ->\n            val manga = libraryItem.libraryManga.manga\n            MangaListItem(\n                isSelected = manga.id in selection,\n                title = manga.title,\n                coverData = MangaCover(\n                    mangaId = manga.id,\n                    sourceId = manga.source,\n                    isMangaFavorite = manga.favorite,\n                    url = manga.thumbnailUrl,\n                    lastModified = manga.coverLastModified,\n                ),\n                badge = {\n                    DownloadsBadge(count = libraryItem.downloadCount)\n                    UnreadBadge(count = libraryItem.unreadCount)\n                    LanguageBadge(\n                        isLocal = libraryItem.isLocal,\n                        sourceLanguage = libraryItem.sourceLanguage,\n                    )\n                },\n                onLongClick = { onLongClick(libraryItem.libraryManga) },\n                onClick = { onClick(libraryItem.libraryManga) },\n                onClickContinueReading = if (onClickContinueReading != null && libraryItem.unreadCount > 0) {\n                    { onClickContinueReading(libraryItem.libraryManga) }\n                } else {\n                    null\n                },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryPager.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport android.content.res.Configuration\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.pager.HorizontalPager\nimport androidx.compose.foundation.pager.PagerState\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalConfiguration\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.core.preference.PreferenceMutableState\nimport eu.kanade.tachiyomi.ui.library.LibraryItem\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun LibraryPager(\n    state: PagerState,\n    contentPadding: PaddingValues,\n    hasActiveFilters: Boolean,\n    selection: Set<Long>,\n    searchQuery: String?,\n    onGlobalSearchClicked: () -> Unit,\n    getCategoryForPage: (Int) -> Category,\n    getDisplayMode: (Int) -> PreferenceMutableState<LibraryDisplayMode>,\n    getColumnsForOrientation: (Boolean) -> PreferenceMutableState<Int>,\n    getItemsForCategory: (Category) -> List<LibraryItem>,\n    onClickManga: (Category, LibraryManga) -> Unit,\n    onLongClickManga: (Category, LibraryManga) -> Unit,\n    onClickContinueReading: ((LibraryManga) -> Unit)?,\n) {\n    HorizontalPager(\n        modifier = Modifier.fillMaxSize(),\n        state = state,\n        verticalAlignment = Alignment.Top,\n    ) { page ->\n        if (page !in ((state.currentPage - 1)..(state.currentPage + 1))) {\n            // To make sure only one offscreen page is being composed\n            return@HorizontalPager\n        }\n        val category = getCategoryForPage(page)\n        val items = getItemsForCategory(category)\n\n        if (items.isEmpty()) {\n            LibraryPagerEmptyScreen(\n                searchQuery = searchQuery,\n                hasActiveFilters = hasActiveFilters,\n                contentPadding = contentPadding,\n                onGlobalSearchClicked = onGlobalSearchClicked,\n            )\n            return@HorizontalPager\n        }\n\n        val displayMode by getDisplayMode(page)\n        val columns by if (displayMode != LibraryDisplayMode.List) {\n            val configuration = LocalConfiguration.current\n            val isLandscape = configuration.orientation == Configuration.ORIENTATION_LANDSCAPE\n\n            remember(isLandscape) { getColumnsForOrientation(isLandscape) }\n        } else {\n            remember { mutableIntStateOf(0) }\n        }\n\n        val onClickManga: (LibraryManga) -> Unit = { onClickManga(category, it) }\n        val onLongClickManga: (LibraryManga) -> Unit = { onLongClickManga(category, it) }\n\n        when (displayMode) {\n            LibraryDisplayMode.List -> {\n                LibraryList(\n                    items = items,\n                    contentPadding = contentPadding,\n                    selection = selection,\n                    onClick = onClickManga,\n                    onLongClick = onLongClickManga,\n                    onClickContinueReading = onClickContinueReading,\n                    searchQuery = searchQuery,\n                    onGlobalSearchClicked = onGlobalSearchClicked,\n                )\n            }\n            LibraryDisplayMode.CompactGrid, LibraryDisplayMode.CoverOnlyGrid -> {\n                LibraryCompactGrid(\n                    items = items,\n                    showTitle = displayMode is LibraryDisplayMode.CompactGrid,\n                    columns = columns,\n                    contentPadding = contentPadding,\n                    selection = selection,\n                    onClick = onClickManga,\n                    onLongClick = onLongClickManga,\n                    onClickContinueReading = onClickContinueReading,\n                    searchQuery = searchQuery,\n                    onGlobalSearchClicked = onGlobalSearchClicked,\n                )\n            }\n            LibraryDisplayMode.ComfortableGrid -> {\n                LibraryComfortableGrid(\n                    items = items,\n                    columns = columns,\n                    contentPadding = contentPadding,\n                    selection = selection,\n                    onClick = onClickManga,\n                    onLongClick = onLongClickManga,\n                    onClickContinueReading = onClickContinueReading,\n                    searchQuery = searchQuery,\n                    onGlobalSearchClicked = onGlobalSearchClicked,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun LibraryPagerEmptyScreen(\n    searchQuery: String?,\n    hasActiveFilters: Boolean,\n    contentPadding: PaddingValues,\n    onGlobalSearchClicked: () -> Unit,\n) {\n    val msg = when {\n        !searchQuery.isNullOrEmpty() -> MR.strings.no_results_found\n        hasActiveFilters -> MR.strings.error_no_match\n        else -> MR.strings.information_no_manga_category\n    }\n\n    Column(\n        modifier = Modifier\n            .padding(contentPadding + PaddingValues(8.dp))\n            .fillMaxSize()\n            .verticalScroll(rememberScrollState()),\n    ) {\n        if (!searchQuery.isNullOrEmpty()) {\n            GlobalSearchItem(\n                modifier = Modifier\n                    .fillMaxWidth()\n                    .align(Alignment.CenterHorizontally),\n                searchQuery = searchQuery,\n                onClick = onGlobalSearchClicked,\n            )\n        }\n\n        EmptyScreen(\n            stringRes = msg,\n            modifier = Modifier.weight(1f),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.pager.PagerState\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.PrimaryScrollableTabRow\nimport androidx.compose.material3.Tab\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.zIndex\nimport eu.kanade.presentation.category.visualName\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.presentation.core.components.material.TabText\n\n@Composable\ninternal fun LibraryTabs(\n    categories: List<Category>,\n    pagerState: PagerState,\n    getItemCountForCategory: (Category) -> Int?,\n    onTabItemClick: (Int) -> Unit,\n) {\n    val currentPageIndex = pagerState.currentPage.coerceAtMost(categories.lastIndex)\n    Column(modifier = Modifier.zIndex(2f)) {\n        PrimaryScrollableTabRow(\n            selectedTabIndex = currentPageIndex,\n            edgePadding = 0.dp,\n            // TODO: use default when width is fixed upstream\n            // https://issuetracker.google.com/issues/242879624\n            divider = {},\n        ) {\n            categories.forEachIndexed { index, category ->\n                Tab(\n                    selected = currentPageIndex == index,\n                    onClick = { onTabItemClick(index) },\n                    text = {\n                        TabText(\n                            text = category.visualName,\n                            badgeCount = getItemCountForCategory(category),\n                        )\n                    },\n                    unselectedContentColor = MaterialTheme.colorScheme.onSurface,\n                )\n            }\n        }\n\n        HorizontalDivider()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt",
    "content": "package eu.kanade.presentation.library.components\n\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material.icons.outlined.FlipToBack\nimport androidx.compose.material.icons.outlined.SelectAll\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TopAppBarScrollBehavior\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.sp\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.SearchToolbar\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.Pill\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.theme.active\n\n@Composable\nfun LibraryToolbar(\n    hasActiveFilters: Boolean,\n    selectedCount: Int,\n    title: LibraryToolbarTitle,\n    onClickUnselectAll: () -> Unit,\n    onClickSelectAll: () -> Unit,\n    onClickInvertSelection: () -> Unit,\n    onClickFilter: () -> Unit,\n    onClickRefresh: () -> Unit,\n    onClickGlobalUpdate: () -> Unit,\n    onClickOpenRandomManga: () -> Unit,\n    searchQuery: String?,\n    onSearchQueryChange: (String?) -> Unit,\n    scrollBehavior: TopAppBarScrollBehavior?,\n) = when {\n    selectedCount > 0 -> LibrarySelectionToolbar(\n        selectedCount = selectedCount,\n        onClickUnselectAll = onClickUnselectAll,\n        onClickSelectAll = onClickSelectAll,\n        onClickInvertSelection = onClickInvertSelection,\n    )\n    else -> LibraryRegularToolbar(\n        title = title,\n        hasFilters = hasActiveFilters,\n        searchQuery = searchQuery,\n        onSearchQueryChange = onSearchQueryChange,\n        onClickFilter = onClickFilter,\n        onClickRefresh = onClickRefresh,\n        onClickGlobalUpdate = onClickGlobalUpdate,\n        onClickOpenRandomManga = onClickOpenRandomManga,\n        scrollBehavior = scrollBehavior,\n    )\n}\n\n@Composable\nprivate fun LibraryRegularToolbar(\n    title: LibraryToolbarTitle,\n    hasFilters: Boolean,\n    searchQuery: String?,\n    onSearchQueryChange: (String?) -> Unit,\n    onClickFilter: () -> Unit,\n    onClickRefresh: () -> Unit,\n    onClickGlobalUpdate: () -> Unit,\n    onClickOpenRandomManga: () -> Unit,\n    scrollBehavior: TopAppBarScrollBehavior?,\n) {\n    val pillAlpha = if (isSystemInDarkTheme()) 0.12f else 0.08f\n    SearchToolbar(\n        titleContent = {\n            Row(verticalAlignment = Alignment.CenterVertically) {\n                Text(\n                    text = title.text,\n                    maxLines = 1,\n                    modifier = Modifier.weight(1f, false),\n                    overflow = TextOverflow.Ellipsis,\n                )\n                if (title.numberOfManga != null) {\n                    Pill(\n                        text = \"${title.numberOfManga}\",\n                        color = MaterialTheme.colorScheme.onBackground.copy(alpha = pillAlpha),\n                        fontSize = 14.sp,\n                    )\n                }\n            }\n        },\n        searchQuery = searchQuery,\n        onChangeSearchQuery = onSearchQueryChange,\n        actions = {\n            val filterTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current\n            AppBarActions(\n                persistentListOf(\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_filter),\n                        icon = Icons.Outlined.FilterList,\n                        iconTint = filterTint,\n                        onClick = onClickFilter,\n                    ),\n                    AppBar.OverflowAction(\n                        title = stringResource(MR.strings.action_update_library),\n                        onClick = onClickGlobalUpdate,\n                    ),\n                    AppBar.OverflowAction(\n                        title = stringResource(MR.strings.action_update_category),\n                        onClick = onClickRefresh,\n                    ),\n                    AppBar.OverflowAction(\n                        title = stringResource(MR.strings.action_open_random_manga),\n                        onClick = onClickOpenRandomManga,\n                    ),\n                ),\n            )\n        },\n        scrollBehavior = scrollBehavior,\n    )\n}\n\n@Composable\nprivate fun LibrarySelectionToolbar(\n    selectedCount: Int,\n    onClickUnselectAll: () -> Unit,\n    onClickSelectAll: () -> Unit,\n    onClickInvertSelection: () -> Unit,\n) {\n    AppBar(\n        titleContent = { Text(text = \"$selectedCount\") },\n        actions = {\n            AppBarActions(\n                persistentListOf(\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_select_all),\n                        icon = Icons.Outlined.SelectAll,\n                        onClick = onClickSelectAll,\n                    ),\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_select_inverse),\n                        icon = Icons.Outlined.FlipToBack,\n                        onClick = onClickInvertSelection,\n                    ),\n                ),\n            )\n        },\n        isActionMode = true,\n        onCancelActionMode = onClickUnselectAll,\n    )\n}\n\n@Immutable\ndata class LibraryToolbarTitle(\n    val text: String,\n    val numberOfManga: Int? = null,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt",
    "content": "package eu.kanade.presentation.manga\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.PeopleAlt\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.manga.model.downloadedFilter\nimport eu.kanade.presentation.components.TabbedDialog\nimport eu.kanade.presentation.components.TabbedDialogPaddings\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.components.RadioItem\nimport tachiyomi.presentation.core.components.SortItem\nimport tachiyomi.presentation.core.components.TriStateItem\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.theme.active\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n@Composable\nfun ChapterSettingsDialog(\n    onDismissRequest: () -> Unit,\n    manga: Manga? = null,\n    onDownloadFilterChanged: (TriState) -> Unit,\n    onUnreadFilterChanged: (TriState) -> Unit,\n    onBookmarkedFilterChanged: (TriState) -> Unit,\n    scanlatorFilterActive: Boolean,\n    onScanlatorFilterClicked: (() -> Unit),\n    onSortModeChanged: (Long) -> Unit,\n    onDisplayModeChanged: (Long) -> Unit,\n    onSetAsDefault: (applyToExistingManga: Boolean) -> Unit,\n    onResetToDefault: () -> Unit,\n) {\n    var showSetAsDefaultDialog by rememberSaveable { mutableStateOf(false) }\n    if (showSetAsDefaultDialog) {\n        SetAsDefaultDialog(\n            onDismissRequest = { showSetAsDefaultDialog = false },\n            onConfirmed = onSetAsDefault,\n        )\n    }\n\n    val downloadedOnly = remember { Injekt.get<BasePreferences>().downloadedOnly.get() }\n\n    TabbedDialog(\n        onDismissRequest = onDismissRequest,\n        tabTitles = persistentListOf(\n            stringResource(MR.strings.action_filter),\n            stringResource(MR.strings.action_sort),\n            stringResource(MR.strings.action_display),\n        ),\n        tabOverflowMenuContent = { closeMenu ->\n            DropdownMenuItem(\n                text = { Text(stringResource(MR.strings.set_chapter_settings_as_default)) },\n                onClick = {\n                    showSetAsDefaultDialog = true\n                    closeMenu()\n                },\n            )\n            DropdownMenuItem(\n                text = { Text(stringResource(MR.strings.action_reset)) },\n                onClick = {\n                    onResetToDefault()\n                    closeMenu()\n                },\n            )\n        },\n    ) { page ->\n        Column(\n            modifier = Modifier\n                .padding(vertical = TabbedDialogPaddings.Vertical)\n                .verticalScroll(rememberScrollState()),\n        ) {\n            when (page) {\n                0 -> {\n                    FilterPage(\n                        downloadFilter = manga?.downloadedFilter ?: TriState.DISABLED,\n                        onDownloadFilterChanged = onDownloadFilterChanged\n                            .takeUnless { downloadedOnly },\n                        unreadFilter = manga?.unreadFilter ?: TriState.DISABLED,\n                        onUnreadFilterChanged = onUnreadFilterChanged,\n                        bookmarkedFilter = manga?.bookmarkedFilter ?: TriState.DISABLED,\n                        onBookmarkedFilterChanged = onBookmarkedFilterChanged,\n                        scanlatorFilterActive = scanlatorFilterActive,\n                        onScanlatorFilterClicked = onScanlatorFilterClicked,\n                    )\n                }\n                1 -> {\n                    SortPage(\n                        sortingMode = manga?.sorting ?: 0,\n                        sortDescending = manga?.sortDescending() ?: false,\n                        onItemSelected = onSortModeChanged,\n                    )\n                }\n                2 -> {\n                    DisplayPage(\n                        displayMode = manga?.displayMode ?: 0,\n                        onItemSelected = onDisplayModeChanged,\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ColumnScope.FilterPage(\n    downloadFilter: TriState,\n    onDownloadFilterChanged: ((TriState) -> Unit)?,\n    unreadFilter: TriState,\n    onUnreadFilterChanged: (TriState) -> Unit,\n    bookmarkedFilter: TriState,\n    onBookmarkedFilterChanged: (TriState) -> Unit,\n    scanlatorFilterActive: Boolean,\n    onScanlatorFilterClicked: (() -> Unit),\n) {\n    TriStateItem(\n        label = stringResource(MR.strings.label_downloaded),\n        state = downloadFilter,\n        onClick = onDownloadFilterChanged,\n    )\n    TriStateItem(\n        label = stringResource(MR.strings.action_filter_unread),\n        state = unreadFilter,\n        onClick = onUnreadFilterChanged,\n    )\n    TriStateItem(\n        label = stringResource(MR.strings.action_filter_bookmarked),\n        state = bookmarkedFilter,\n        onClick = onBookmarkedFilterChanged,\n    )\n    ScanlatorFilterItem(\n        active = scanlatorFilterActive,\n        onClick = onScanlatorFilterClicked,\n    )\n}\n\n@Composable\nfun ScanlatorFilterItem(\n    active: Boolean,\n    onClick: () -> Unit,\n) {\n    Row(\n        modifier = Modifier\n            .clickable(onClick = onClick)\n            .fillMaxWidth()\n            .padding(horizontal = TabbedDialogPaddings.Horizontal, vertical = 12.dp),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.spacedBy(24.dp),\n    ) {\n        Icon(\n            imageVector = Icons.Outlined.PeopleAlt,\n            contentDescription = null,\n            tint = if (active) {\n                MaterialTheme.colorScheme.active\n            } else {\n                LocalContentColor.current\n            },\n        )\n        Text(\n            text = stringResource(MR.strings.scanlator),\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n\n@Composable\nprivate fun ColumnScope.SortPage(\n    sortingMode: Long,\n    sortDescending: Boolean,\n    onItemSelected: (Long) -> Unit,\n) {\n    listOf(\n        MR.strings.sort_by_source to Manga.CHAPTER_SORTING_SOURCE,\n        MR.strings.sort_by_number to Manga.CHAPTER_SORTING_NUMBER,\n        MR.strings.sort_by_upload_date to Manga.CHAPTER_SORTING_UPLOAD_DATE,\n        MR.strings.action_sort_alpha to Manga.CHAPTER_SORTING_ALPHABET,\n    ).map { (titleRes, mode) ->\n        SortItem(\n            label = stringResource(titleRes),\n            sortDescending = sortDescending.takeIf { sortingMode == mode },\n            onClick = { onItemSelected(mode) },\n        )\n    }\n}\n\n@Composable\nprivate fun ColumnScope.DisplayPage(\n    displayMode: Long,\n    onItemSelected: (Long) -> Unit,\n) {\n    listOf(\n        MR.strings.show_title to Manga.CHAPTER_DISPLAY_NAME,\n        MR.strings.show_chapter_number to Manga.CHAPTER_DISPLAY_NUMBER,\n    ).map { (titleRes, mode) ->\n        RadioItem(\n            label = stringResource(titleRes),\n            selected = displayMode == mode,\n            onClick = { onItemSelected(mode) },\n        )\n    }\n}\n\n@Composable\nprivate fun SetAsDefaultDialog(\n    onDismissRequest: () -> Unit,\n    onConfirmed: (optionalChecked: Boolean) -> Unit,\n) {\n    var optionalChecked by rememberSaveable { mutableStateOf(false) }\n\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = { Text(text = stringResource(MR.strings.chapter_settings)) },\n        text = {\n            Column(\n                verticalArrangement = Arrangement.spacedBy(12.dp),\n            ) {\n                Text(text = stringResource(MR.strings.confirm_set_chapter_settings))\n\n                LabeledCheckbox(\n                    label = stringResource(MR.strings.also_set_chapter_settings_for_library),\n                    checked = optionalChecked,\n                    onCheckedChange = { optionalChecked = it },\n                )\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    onConfirmed(optionalChecked)\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/DuplicateMangaDialog.kt",
    "content": "package eu.kanade.presentation.manga\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.heightIn\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.lazy.LazyRow\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.shape.CircleShape\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Brush\nimport androidx.compose.material.icons.filled.PersonOutline\nimport androidx.compose.material.icons.filled.Warning\nimport androidx.compose.material.icons.outlined.Add\nimport androidx.compose.material.icons.outlined.AttachMoney\nimport androidx.compose.material.icons.outlined.Block\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material.icons.outlined.Done\nimport androidx.compose.material.icons.outlined.DoneAll\nimport androidx.compose.material.icons.outlined.Pause\nimport androidx.compose.material.icons.outlined.Schedule\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedButton\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.Typography\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.text.TextMeasurer\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.rememberTextMeasurer\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.Constraints\nimport androidx.compose.ui.unit.Density\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastMaxOfOrNull\nimport coil3.request.ImageRequest\nimport coil3.request.crossfade\nimport eu.kanade.presentation.components.AdaptiveSheet\nimport eu.kanade.presentation.components.TabbedDialogPaddings\nimport eu.kanade.presentation.manga.components.MangaCover\nimport eu.kanade.presentation.more.settings.LocalPreferenceMinHeight\nimport eu.kanade.presentation.more.settings.widget.TextPreferenceWidget\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.SManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.Badge\nimport tachiyomi.presentation.core.components.BadgeGroup\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n@Composable\nfun DuplicateMangaDialog(\n    duplicates: List<MangaWithChapterCount>,\n    onDismissRequest: () -> Unit,\n    onConfirm: () -> Unit,\n    onOpenManga: (manga: Manga) -> Unit,\n    onMigrate: (manga: Manga) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val sourceManager = remember { Injekt.get<SourceManager>() }\n    val minHeight = LocalPreferenceMinHeight.current\n    val horizontalPadding = PaddingValues(horizontal = TabbedDialogPaddings.Horizontal)\n    val horizontalPaddingModifier = Modifier.padding(horizontalPadding)\n\n    AdaptiveSheet(\n        modifier = modifier,\n        onDismissRequest = onDismissRequest,\n    ) {\n        Column(\n            modifier = Modifier\n                .padding(vertical = TabbedDialogPaddings.Vertical)\n                .verticalScroll(rememberScrollState())\n                .fillMaxWidth(),\n            verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.medium),\n        ) {\n            Text(\n                text = stringResource(MR.strings.possible_duplicates_title),\n                style = MaterialTheme.typography.headlineMedium,\n                modifier = Modifier\n                    .then(horizontalPaddingModifier)\n                    .padding(top = MaterialTheme.padding.small),\n            )\n\n            Text(\n                text = stringResource(MR.strings.possible_duplicates_summary),\n                style = MaterialTheme.typography.bodyMedium,\n                modifier = Modifier.then(horizontalPaddingModifier),\n            )\n\n            LazyRow(\n                horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                modifier = Modifier.height(getMaximumMangaCardHeight(duplicates)),\n                contentPadding = horizontalPadding,\n            ) {\n                items(\n                    items = duplicates,\n                    key = { it.manga.id },\n                ) {\n                    DuplicateMangaListItem(\n                        duplicate = it,\n                        getSource = { sourceManager.getOrStub(it.manga.source) },\n                        onMigrate = { onMigrate(it.manga) },\n                        onDismissRequest = onDismissRequest,\n                        onOpenManga = { onOpenManga(it.manga) },\n                    )\n                }\n            }\n\n            Column(modifier = horizontalPaddingModifier) {\n                HorizontalDivider()\n\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.action_add_anyway),\n                    icon = Icons.Outlined.Add,\n                    onPreferenceClick = {\n                        onDismissRequest()\n                        onConfirm()\n                    },\n                    modifier = Modifier.clip(CircleShape),\n                )\n            }\n\n            OutlinedButton(\n                onClick = onDismissRequest,\n                modifier = Modifier\n                    .then(horizontalPaddingModifier)\n                    .padding(bottom = MaterialTheme.padding.medium)\n                    .heightIn(min = minHeight)\n                    .fillMaxWidth(),\n            ) {\n                Text(\n                    modifier = Modifier.padding(vertical = MaterialTheme.padding.extraSmall),\n                    text = stringResource(MR.strings.action_cancel),\n                    color = MaterialTheme.colorScheme.primary,\n                    style = MaterialTheme.typography.bodyLarge,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun DuplicateMangaListItem(\n    duplicate: MangaWithChapterCount,\n    getSource: () -> Source,\n    onDismissRequest: () -> Unit,\n    onOpenManga: () -> Unit,\n    onMigrate: () -> Unit,\n) {\n    val source = getSource()\n    val manga = duplicate.manga\n    Column(\n        modifier = Modifier\n            .width(MangaCardWidth)\n            .clip(MaterialTheme.shapes.medium)\n            .background(MaterialTheme.colorScheme.surface)\n            .combinedClickable(\n                onLongClick = { onOpenManga() },\n                onClick = {\n                    onDismissRequest()\n                    onMigrate()\n                },\n            )\n            .padding(MaterialTheme.padding.small),\n    ) {\n        Box {\n            MangaCover.Book(\n                data = ImageRequest.Builder(LocalContext.current)\n                    .data(manga)\n                    .crossfade(true)\n                    .build(),\n                modifier = Modifier.fillMaxWidth(),\n            )\n            BadgeGroup(\n                modifier = Modifier\n                    .padding(4.dp)\n                    .align(Alignment.TopStart),\n            ) {\n                Badge(\n                    color = MaterialTheme.colorScheme.secondary,\n                    textColor = MaterialTheme.colorScheme.onSecondary,\n                    text = pluralStringResource(\n                        MR.plurals.manga_num_chapters,\n                        duplicate.chapterCount.toInt(),\n                        duplicate.chapterCount,\n                    ),\n                )\n            }\n        }\n\n        Spacer(modifier = Modifier.height(MaterialTheme.padding.extraSmall))\n\n        Text(\n            text = manga.title,\n            style = MaterialTheme.typography.titleSmall,\n            overflow = TextOverflow.Ellipsis,\n            maxLines = 2,\n        )\n\n        if (!manga.author.isNullOrBlank()) {\n            MangaDetailRow(\n                text = manga.author!!,\n                iconImageVector = Icons.Filled.PersonOutline,\n                maxLines = 2,\n            )\n        }\n\n        if (!manga.artist.isNullOrBlank() && manga.author != manga.artist) {\n            MangaDetailRow(\n                text = manga.artist!!,\n                iconImageVector = Icons.Filled.Brush,\n                maxLines = 2,\n            )\n        }\n\n        MangaDetailRow(\n            text = when (manga.status) {\n                SManga.ONGOING.toLong() -> stringResource(MR.strings.ongoing)\n                SManga.COMPLETED.toLong() -> stringResource(MR.strings.completed)\n                SManga.LICENSED.toLong() -> stringResource(MR.strings.licensed)\n                SManga.PUBLISHING_FINISHED.toLong() -> stringResource(MR.strings.publishing_finished)\n                SManga.CANCELLED.toLong() -> stringResource(MR.strings.cancelled)\n                SManga.ON_HIATUS.toLong() -> stringResource(MR.strings.on_hiatus)\n                else -> stringResource(MR.strings.unknown)\n            },\n            iconImageVector = when (manga.status) {\n                SManga.ONGOING.toLong() -> Icons.Outlined.Schedule\n                SManga.COMPLETED.toLong() -> Icons.Outlined.DoneAll\n                SManga.LICENSED.toLong() -> Icons.Outlined.AttachMoney\n                SManga.PUBLISHING_FINISHED.toLong() -> Icons.Outlined.Done\n                SManga.CANCELLED.toLong() -> Icons.Outlined.Close\n                SManga.ON_HIATUS.toLong() -> Icons.Outlined.Pause\n                else -> Icons.Outlined.Block\n            },\n        )\n\n        Spacer(modifier = Modifier.weight(1f))\n\n        Row(\n            modifier = Modifier.fillMaxWidth(),\n            horizontalArrangement = Arrangement.Center,\n        ) {\n            if (source is StubSource) {\n                Icon(\n                    imageVector = Icons.Filled.Warning,\n                    contentDescription = null,\n                    modifier = Modifier.size(16.dp),\n                    tint = MaterialTheme.colorScheme.error,\n                )\n            }\n            Text(\n                text = source.name,\n                style = MaterialTheme.typography.labelSmall,\n                overflow = TextOverflow.Ellipsis,\n                maxLines = 1,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun MangaDetailRow(\n    text: String,\n    iconImageVector: ImageVector,\n    maxLines: Int = 1,\n) {\n    Row(\n        modifier = Modifier\n            .secondaryItemAlpha()\n            .padding(top = MaterialTheme.padding.extraSmall),\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        Icon(\n            imageVector = iconImageVector,\n            contentDescription = null,\n            modifier = Modifier.size(MangaDetailsIconWidth),\n        )\n        Text(\n            text = text,\n            style = MaterialTheme.typography.bodySmall,\n            overflow = TextOverflow.Ellipsis,\n            maxLines = maxLines,\n        )\n    }\n}\n\n@Composable\nprivate fun getMaximumMangaCardHeight(duplicates: List<MangaWithChapterCount>): Dp {\n    val density = LocalDensity.current\n    val typography = MaterialTheme.typography\n    val textMeasurer = rememberTextMeasurer()\n\n    val smallPadding = with(density) { MaterialTheme.padding.small.roundToPx() }\n    val extraSmallPadding = with(density) { MaterialTheme.padding.extraSmall.roundToPx() }\n\n    val width = with(density) { MangaCardWidth.roundToPx() - (2 * smallPadding) }\n    val iconWidth = with(density) { MangaDetailsIconWidth.roundToPx() }\n\n    val coverHeight = width / MangaCover.Book.ratio\n    val constraints = Constraints(maxWidth = width)\n    val detailsConstraints = Constraints(maxWidth = width - iconWidth - extraSmallPadding)\n\n    return remember(\n        duplicates,\n        density,\n        typography,\n        textMeasurer,\n        smallPadding,\n        extraSmallPadding,\n        coverHeight,\n        constraints,\n        detailsConstraints,\n    ) {\n        duplicates.fastMaxOfOrNull {\n            calculateMangaCardHeight(\n                manga = it.manga,\n                density = density,\n                typography = typography,\n                textMeasurer = textMeasurer,\n                smallPadding = smallPadding,\n                extraSmallPadding = extraSmallPadding,\n                coverHeight = coverHeight,\n                constraints = constraints,\n                detailsConstraints = detailsConstraints,\n            )\n        }\n            ?: 0.dp\n    }\n}\n\nprivate fun calculateMangaCardHeight(\n    manga: Manga,\n    density: Density,\n    typography: Typography,\n    textMeasurer: TextMeasurer,\n    smallPadding: Int,\n    extraSmallPadding: Int,\n    coverHeight: Float,\n    constraints: Constraints,\n    detailsConstraints: Constraints,\n): Dp {\n    val titleHeight = textMeasurer.measureHeight(manga.title, typography.titleSmall, 2, constraints)\n    val authorHeight = if (!manga.author.isNullOrBlank()) {\n        textMeasurer.measureHeight(manga.author!!, typography.bodySmall, 2, detailsConstraints)\n    } else {\n        0\n    }\n    val artistHeight = if (!manga.artist.isNullOrBlank() && manga.author != manga.artist) {\n        textMeasurer.measureHeight(manga.artist!!, typography.bodySmall, 2, detailsConstraints)\n    } else {\n        0\n    }\n    val statusHeight = textMeasurer.measureHeight(\"\", typography.bodySmall, 2, detailsConstraints)\n    val sourceHeight = textMeasurer.measureHeight(\"\", typography.labelSmall, 1, constraints)\n\n    val totalHeight = coverHeight + titleHeight + authorHeight + artistHeight + statusHeight + sourceHeight\n    return with(density) { ((2 * smallPadding) + totalHeight + (5 * extraSmallPadding)).toDp() }\n}\n\nprivate fun TextMeasurer.measureHeight(\n    text: String,\n    style: TextStyle,\n    maxLines: Int,\n    constraints: Constraints,\n): Int = measure(\n    text = text,\n    style = style,\n    overflow = TextOverflow.Ellipsis,\n    maxLines = maxLines,\n    constraints = constraints,\n)\n    .size\n    .height\n\nprivate val MangaCardWidth = 150.dp\nprivate val MangaDetailsIconWidth = 16.dp\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/MangaNotesScreen.kt",
    "content": "package eu.kanade.presentation.manga\n\nimport androidx.compose.foundation.layout.consumeWindowInsets\nimport androidx.compose.foundation.layout.imePadding\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarTitle\nimport eu.kanade.presentation.manga.components.MangaNotesTextArea\nimport eu.kanade.tachiyomi.ui.manga.notes.MangaNotesScreen\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MangaNotesScreen(\n    state: MangaNotesScreen.State,\n    navigateUp: () -> Unit,\n    onUpdate: (String) -> Unit,\n) {\n    Scaffold(\n        topBar = { topBarScrollBehavior ->\n            AppBar(\n                titleContent = {\n                    AppBarTitle(\n                        title = stringResource(MR.strings.action_edit_notes),\n                        subtitle = state.manga.title,\n                    )\n                },\n                navigateUp = navigateUp,\n                scrollBehavior = topBarScrollBehavior,\n            )\n        },\n    ) { contentPadding ->\n        MangaNotesTextArea(\n            state = state,\n            onUpdate = onUpdate,\n            modifier = Modifier\n                .padding(contentPadding)\n                .consumeWindowInsets(contentPadding)\n                .imePadding(),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt",
    "content": "package eu.kanade.presentation.manga\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.WindowInsetsSides\nimport androidx.compose.foundation.layout.asPaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.only\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.systemBars\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListScope\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.PlayArrow\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.SmallExtendedFloatingActionButton\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.animateFloatingActionButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.derivedStateOf\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.layout.onSizeChanged\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.util.fastAll\nimport androidx.compose.ui.util.fastAny\nimport androidx.compose.ui.util.fastMap\nimport eu.kanade.presentation.components.relativeDateText\nimport eu.kanade.presentation.manga.components.ChapterDownloadAction\nimport eu.kanade.presentation.manga.components.ChapterHeader\nimport eu.kanade.presentation.manga.components.ExpandableMangaDescription\nimport eu.kanade.presentation.manga.components.MangaActionRow\nimport eu.kanade.presentation.manga.components.MangaBottomActionMenu\nimport eu.kanade.presentation.manga.components.MangaChapterListItem\nimport eu.kanade.presentation.manga.components.MangaInfoBox\nimport eu.kanade.presentation.manga.components.MangaToolbar\nimport eu.kanade.presentation.manga.components.MissingChapterCountListItem\nimport eu.kanade.presentation.util.formatChapterNumber\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.source.getNameForMangaInfo\nimport eu.kanade.tachiyomi.ui.manga.ChapterList\nimport eu.kanade.tachiyomi.ui.manga.MangaScreenModel\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.service.missingChaptersCount\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.TwoPanelBox\nimport tachiyomi.presentation.core.components.VerticalFastScroller\nimport tachiyomi.presentation.core.components.material.PullRefresh\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.shouldExpandFAB\nimport tachiyomi.source.local.isLocal\nimport java.time.Instant\n\n@Composable\nfun MangaScreen(\n    state: MangaScreenModel.State.Success,\n    snackbarHostState: SnackbarHostState,\n    nextUpdate: Instant?,\n    isTabletUi: Boolean,\n    chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction,\n    chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction,\n    navigateUp: () -> Unit,\n    onChapterClicked: (Chapter) -> Unit,\n    onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?,\n    onAddToLibraryClicked: () -> Unit,\n    onWebViewClicked: (() -> Unit)?,\n    onWebViewLongClicked: (() -> Unit)?,\n    onTrackingClicked: () -> Unit,\n\n    // For tags menu\n    onTagSearch: (String) -> Unit,\n\n    onFilterButtonClicked: () -> Unit,\n    onRefresh: () -> Unit,\n    onContinueReading: () -> Unit,\n    onSearch: (query: String, global: Boolean) -> Unit,\n\n    // For cover dialog\n    onCoverClicked: () -> Unit,\n\n    // For top action menu\n    onShareClicked: (() -> Unit)?,\n    onDownloadActionClicked: ((DownloadAction) -> Unit)?,\n    onEditCategoryClicked: (() -> Unit)?,\n    onEditFetchIntervalClicked: (() -> Unit)?,\n    onMigrateClicked: (() -> Unit)?,\n    onEditNotesClicked: () -> Unit,\n\n    // For bottom action menu\n    onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit,\n    onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit,\n    onMarkPreviousAsReadClicked: (Chapter) -> Unit,\n    onMultiDeleteClicked: (List<Chapter>) -> Unit,\n\n    // For chapter swipe\n    onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit,\n\n    // Chapter selection\n    onChapterSelected: (ChapterList.Item, Boolean, Boolean) -> Unit,\n    onAllChapterSelected: (Boolean) -> Unit,\n    onInvertSelection: () -> Unit,\n) {\n    val context = LocalContext.current\n    val onCopyTagToClipboard: (tag: String) -> Unit = {\n        if (it.isNotEmpty()) {\n            context.copyToClipboard(it, it)\n        }\n    }\n\n    if (!isTabletUi) {\n        MangaScreenSmallImpl(\n            state = state,\n            snackbarHostState = snackbarHostState,\n            nextUpdate = nextUpdate,\n            chapterSwipeStartAction = chapterSwipeStartAction,\n            chapterSwipeEndAction = chapterSwipeEndAction,\n            navigateUp = navigateUp,\n            onChapterClicked = onChapterClicked,\n            onDownloadChapter = onDownloadChapter,\n            onAddToLibraryClicked = onAddToLibraryClicked,\n            onWebViewClicked = onWebViewClicked,\n            onWebViewLongClicked = onWebViewLongClicked,\n            onTrackingClicked = onTrackingClicked,\n            onTagSearch = onTagSearch,\n            onCopyTagToClipboard = onCopyTagToClipboard,\n            onFilterClicked = onFilterButtonClicked,\n            onRefresh = onRefresh,\n            onContinueReading = onContinueReading,\n            onSearch = onSearch,\n            onCoverClicked = onCoverClicked,\n            onShareClicked = onShareClicked,\n            onDownloadActionClicked = onDownloadActionClicked,\n            onEditCategoryClicked = onEditCategoryClicked,\n            onEditIntervalClicked = onEditFetchIntervalClicked,\n            onMigrateClicked = onMigrateClicked,\n            onEditNotesClicked = onEditNotesClicked,\n            onMultiBookmarkClicked = onMultiBookmarkClicked,\n            onMultiMarkAsReadClicked = onMultiMarkAsReadClicked,\n            onMarkPreviousAsReadClicked = onMarkPreviousAsReadClicked,\n            onMultiDeleteClicked = onMultiDeleteClicked,\n            onChapterSwipe = onChapterSwipe,\n            onChapterSelected = onChapterSelected,\n            onAllChapterSelected = onAllChapterSelected,\n            onInvertSelection = onInvertSelection,\n        )\n    } else {\n        MangaScreenLargeImpl(\n            state = state,\n            snackbarHostState = snackbarHostState,\n            chapterSwipeStartAction = chapterSwipeStartAction,\n            chapterSwipeEndAction = chapterSwipeEndAction,\n            nextUpdate = nextUpdate,\n            navigateUp = navigateUp,\n            onChapterClicked = onChapterClicked,\n            onDownloadChapter = onDownloadChapter,\n            onAddToLibraryClicked = onAddToLibraryClicked,\n            onWebViewClicked = onWebViewClicked,\n            onWebViewLongClicked = onWebViewLongClicked,\n            onTrackingClicked = onTrackingClicked,\n            onTagSearch = onTagSearch,\n            onCopyTagToClipboard = onCopyTagToClipboard,\n            onFilterButtonClicked = onFilterButtonClicked,\n            onRefresh = onRefresh,\n            onContinueReading = onContinueReading,\n            onSearch = onSearch,\n            onCoverClicked = onCoverClicked,\n            onShareClicked = onShareClicked,\n            onDownloadActionClicked = onDownloadActionClicked,\n            onEditCategoryClicked = onEditCategoryClicked,\n            onEditIntervalClicked = onEditFetchIntervalClicked,\n            onMigrateClicked = onMigrateClicked,\n            onEditNotesClicked = onEditNotesClicked,\n            onMultiBookmarkClicked = onMultiBookmarkClicked,\n            onMultiMarkAsReadClicked = onMultiMarkAsReadClicked,\n            onMarkPreviousAsReadClicked = onMarkPreviousAsReadClicked,\n            onMultiDeleteClicked = onMultiDeleteClicked,\n            onChapterSwipe = onChapterSwipe,\n            onChapterSelected = onChapterSelected,\n            onAllChapterSelected = onAllChapterSelected,\n            onInvertSelection = onInvertSelection,\n        )\n    }\n}\n\n@Composable\nprivate fun MangaScreenSmallImpl(\n    state: MangaScreenModel.State.Success,\n    snackbarHostState: SnackbarHostState,\n    nextUpdate: Instant?,\n    chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction,\n    chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction,\n    navigateUp: () -> Unit,\n    onChapterClicked: (Chapter) -> Unit,\n    onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?,\n    onAddToLibraryClicked: () -> Unit,\n    onWebViewClicked: (() -> Unit)?,\n    onWebViewLongClicked: (() -> Unit)?,\n    onTrackingClicked: () -> Unit,\n\n    // For tags menu\n    onTagSearch: (String) -> Unit,\n    onCopyTagToClipboard: (tag: String) -> Unit,\n\n    onFilterClicked: () -> Unit,\n    onRefresh: () -> Unit,\n    onContinueReading: () -> Unit,\n    onSearch: (query: String, global: Boolean) -> Unit,\n\n    // For cover dialog\n    onCoverClicked: () -> Unit,\n\n    // For top action menu\n    onShareClicked: (() -> Unit)?,\n    onDownloadActionClicked: ((DownloadAction) -> Unit)?,\n    onEditCategoryClicked: (() -> Unit)?,\n    onEditIntervalClicked: (() -> Unit)?,\n    onMigrateClicked: (() -> Unit)?,\n    onEditNotesClicked: () -> Unit,\n\n    // For bottom action menu\n    onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit,\n    onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit,\n    onMarkPreviousAsReadClicked: (Chapter) -> Unit,\n    onMultiDeleteClicked: (List<Chapter>) -> Unit,\n\n    // For chapter swipe\n    onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit,\n\n    // Chapter selection\n    onChapterSelected: (ChapterList.Item, Boolean, Boolean) -> Unit,\n    onAllChapterSelected: (Boolean) -> Unit,\n    onInvertSelection: () -> Unit,\n) {\n    val chapterListState = rememberLazyListState()\n\n    val (chapters, listItem, isAnySelected) = remember(state) {\n        Triple(\n            first = state.processedChapters,\n            second = state.chapterListItems,\n            third = state.isAnySelected,\n        )\n    }\n\n    BackHandler(enabled = isAnySelected) {\n        onAllChapterSelected(false)\n    }\n\n    Scaffold(\n        topBar = {\n            val selectedChapterCount: Int = remember(chapters) {\n                chapters.count { it.selected }\n            }\n            val isFirstItemVisible by remember {\n                derivedStateOf { chapterListState.firstVisibleItemIndex == 0 }\n            }\n            val isFirstItemScrolled by remember {\n                derivedStateOf { chapterListState.firstVisibleItemScrollOffset > 0 }\n            }\n            val titleAlpha by animateFloatAsState(\n                if (!isFirstItemVisible) 1f else 0f,\n                label = \"Top Bar Title\",\n            )\n            val backgroundAlpha by animateFloatAsState(\n                if (!isFirstItemVisible || isFirstItemScrolled) 1f else 0f,\n                label = \"Top Bar Background\",\n            )\n            MangaToolbar(\n                title = state.manga.title,\n                hasFilters = state.filterActive,\n                navigateUp = navigateUp,\n                onClickFilter = onFilterClicked,\n                onClickShare = onShareClicked,\n                onClickDownload = onDownloadActionClicked,\n                onClickEditCategory = onEditCategoryClicked,\n                onClickRefresh = onRefresh,\n                onClickMigrate = onMigrateClicked,\n                onClickEditNotes = onEditNotesClicked,\n                actionModeCounter = selectedChapterCount,\n                onCancelActionMode = { onAllChapterSelected(false) },\n                onSelectAll = { onAllChapterSelected(true) },\n                onInvertSelection = { onInvertSelection() },\n                titleAlphaProvider = { titleAlpha },\n                backgroundAlphaProvider = { backgroundAlpha },\n            )\n        },\n        bottomBar = {\n            val selectedChapters = remember(chapters) {\n                chapters.filter { it.selected }\n            }\n            SharedMangaBottomActionMenu(\n                selected = selectedChapters,\n                onMultiBookmarkClicked = onMultiBookmarkClicked,\n                onMultiMarkAsReadClicked = onMultiMarkAsReadClicked,\n                onMarkPreviousAsReadClicked = onMarkPreviousAsReadClicked,\n                onDownloadChapter = onDownloadChapter,\n                onMultiDeleteClicked = onMultiDeleteClicked,\n                fillFraction = 1f,\n            )\n        },\n        snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n        floatingActionButton = {\n            val isFABVisible = remember(chapters) {\n                chapters.fastAny { !it.chapter.read } && !isAnySelected\n            }\n            SmallExtendedFloatingActionButton(\n                text = {\n                    val isReading = remember(state.chapters) {\n                        state.chapters.fastAny { it.chapter.read }\n                    }\n                    Text(\n                        text = stringResource(if (isReading) MR.strings.action_resume else MR.strings.action_start),\n                    )\n                },\n                icon = { Icon(imageVector = Icons.Filled.PlayArrow, contentDescription = null) },\n                onClick = onContinueReading,\n                expanded = chapterListState.shouldExpandFAB(),\n                modifier = Modifier.animateFloatingActionButton(\n                    visible = isFABVisible,\n                    alignment = Alignment.BottomEnd,\n                ),\n            )\n        },\n    ) { contentPadding ->\n        val topPadding = contentPadding.calculateTopPadding()\n\n        PullRefresh(\n            refreshing = state.isRefreshingData,\n            onRefresh = onRefresh,\n            enabled = !isAnySelected,\n            indicatorPadding = PaddingValues(top = topPadding),\n        ) {\n            val layoutDirection = LocalLayoutDirection.current\n            VerticalFastScroller(\n                listState = chapterListState,\n                topContentPadding = topPadding,\n                endContentPadding = contentPadding.calculateEndPadding(layoutDirection),\n            ) {\n                LazyColumn(\n                    modifier = Modifier.fillMaxHeight(),\n                    state = chapterListState,\n                    contentPadding = PaddingValues(\n                        start = contentPadding.calculateStartPadding(layoutDirection),\n                        end = contentPadding.calculateEndPadding(layoutDirection),\n                        bottom = contentPadding.calculateBottomPadding(),\n                    ),\n                ) {\n                    item(\n                        key = MangaScreenItem.INFO_BOX,\n                        contentType = MangaScreenItem.INFO_BOX,\n                    ) {\n                        MangaInfoBox(\n                            isTabletUi = false,\n                            appBarPadding = topPadding,\n                            manga = state.manga,\n                            sourceName = remember { state.source.getNameForMangaInfo() },\n                            isStubSource = remember { state.source is StubSource },\n                            onCoverClick = onCoverClicked,\n                            doSearch = onSearch,\n                        )\n                    }\n\n                    item(\n                        key = MangaScreenItem.ACTION_ROW,\n                        contentType = MangaScreenItem.ACTION_ROW,\n                    ) {\n                        MangaActionRow(\n                            favorite = state.manga.favorite,\n                            trackingCount = state.trackingCount,\n                            nextUpdate = nextUpdate,\n                            isUserIntervalMode = state.manga.fetchInterval < 0,\n                            onAddToLibraryClicked = onAddToLibraryClicked,\n                            onWebViewClicked = onWebViewClicked,\n                            onWebViewLongClicked = onWebViewLongClicked,\n                            onTrackingClicked = onTrackingClicked,\n                            onEditIntervalClicked = onEditIntervalClicked,\n                            onEditCategory = onEditCategoryClicked,\n                        )\n                    }\n\n                    item(\n                        key = MangaScreenItem.DESCRIPTION_WITH_TAG,\n                        contentType = MangaScreenItem.DESCRIPTION_WITH_TAG,\n                    ) {\n                        ExpandableMangaDescription(\n                            defaultExpandState = state.isFromSource,\n                            description = state.manga.description,\n                            tagsProvider = { state.manga.genre },\n                            notes = state.manga.notes,\n                            onTagSearch = onTagSearch,\n                            onCopyTagToClipboard = onCopyTagToClipboard,\n                            onEditNotes = onEditNotesClicked,\n                        )\n                    }\n\n                    item(\n                        key = MangaScreenItem.CHAPTER_HEADER,\n                        contentType = MangaScreenItem.CHAPTER_HEADER,\n                    ) {\n                        val missingChapterCount = remember(chapters) {\n                            chapters.map { it.chapter.chapterNumber }.missingChaptersCount()\n                        }\n                        ChapterHeader(\n                            enabled = !isAnySelected,\n                            chapterCount = chapters.size,\n                            missingChapterCount = missingChapterCount,\n                            onClick = onFilterClicked,\n                        )\n                    }\n\n                    sharedChapterItems(\n                        manga = state.manga,\n                        chapters = listItem,\n                        isAnyChapterSelected = chapters.fastAny { it.selected },\n                        chapterSwipeStartAction = chapterSwipeStartAction,\n                        chapterSwipeEndAction = chapterSwipeEndAction,\n                        onChapterClicked = onChapterClicked,\n                        onDownloadChapter = onDownloadChapter,\n                        onChapterSelected = onChapterSelected,\n                        onChapterSwipe = onChapterSwipe,\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nfun MangaScreenLargeImpl(\n    state: MangaScreenModel.State.Success,\n    snackbarHostState: SnackbarHostState,\n    nextUpdate: Instant?,\n    chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction,\n    chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction,\n    navigateUp: () -> Unit,\n    onChapterClicked: (Chapter) -> Unit,\n    onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?,\n    onAddToLibraryClicked: () -> Unit,\n    onWebViewClicked: (() -> Unit)?,\n    onWebViewLongClicked: (() -> Unit)?,\n    onTrackingClicked: () -> Unit,\n\n    // For tags menu\n    onTagSearch: (String) -> Unit,\n    onCopyTagToClipboard: (tag: String) -> Unit,\n\n    onFilterButtonClicked: () -> Unit,\n    onRefresh: () -> Unit,\n    onContinueReading: () -> Unit,\n    onSearch: (query: String, global: Boolean) -> Unit,\n\n    // For cover dialog\n    onCoverClicked: () -> Unit,\n\n    // For top action menu\n    onShareClicked: (() -> Unit)?,\n    onDownloadActionClicked: ((DownloadAction) -> Unit)?,\n    onEditCategoryClicked: (() -> Unit)?,\n    onEditIntervalClicked: (() -> Unit)?,\n    onMigrateClicked: (() -> Unit)?,\n    onEditNotesClicked: () -> Unit,\n\n    // For bottom action menu\n    onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit,\n    onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit,\n    onMarkPreviousAsReadClicked: (Chapter) -> Unit,\n    onMultiDeleteClicked: (List<Chapter>) -> Unit,\n\n    // For swipe actions\n    onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit,\n\n    // Chapter selection\n    onChapterSelected: (ChapterList.Item, Boolean, Boolean) -> Unit,\n    onAllChapterSelected: (Boolean) -> Unit,\n    onInvertSelection: () -> Unit,\n) {\n    val layoutDirection = LocalLayoutDirection.current\n    val density = LocalDensity.current\n\n    val (chapters, listItem, isAnySelected) = remember(state) {\n        Triple(\n            first = state.processedChapters,\n            second = state.chapterListItems,\n            third = state.isAnySelected,\n        )\n    }\n\n    val insetPadding = WindowInsets.systemBars.only(WindowInsetsSides.Horizontal).asPaddingValues()\n    var topBarHeight by remember { mutableIntStateOf(0) }\n\n    val chapterListState = rememberLazyListState()\n\n    BackHandler(enabled = isAnySelected) {\n        onAllChapterSelected(false)\n    }\n\n    Scaffold(\n        topBar = {\n            val selectedChapterCount = remember(chapters) {\n                chapters.count { it.selected }\n            }\n            MangaToolbar(\n                modifier = Modifier.onSizeChanged { topBarHeight = it.height },\n                title = state.manga.title,\n                hasFilters = state.filterActive,\n                navigateUp = navigateUp,\n                onClickFilter = onFilterButtonClicked,\n                onClickShare = onShareClicked,\n                onClickDownload = onDownloadActionClicked,\n                onClickEditCategory = onEditCategoryClicked,\n                onClickRefresh = onRefresh,\n                onClickMigrate = onMigrateClicked,\n                onClickEditNotes = onEditNotesClicked,\n                onCancelActionMode = { onAllChapterSelected(false) },\n                actionModeCounter = selectedChapterCount,\n                onSelectAll = { onAllChapterSelected(true) },\n                onInvertSelection = { onInvertSelection() },\n                titleAlphaProvider = { 1f },\n                backgroundAlphaProvider = { 1f },\n            )\n        },\n        bottomBar = {\n            Box(\n                modifier = Modifier.fillMaxWidth(),\n                contentAlignment = Alignment.BottomEnd,\n            ) {\n                val selectedChapters = remember(chapters) {\n                    chapters.filter { it.selected }\n                }\n                SharedMangaBottomActionMenu(\n                    selected = selectedChapters,\n                    onMultiBookmarkClicked = onMultiBookmarkClicked,\n                    onMultiMarkAsReadClicked = onMultiMarkAsReadClicked,\n                    onMarkPreviousAsReadClicked = onMarkPreviousAsReadClicked,\n                    onDownloadChapter = onDownloadChapter,\n                    onMultiDeleteClicked = onMultiDeleteClicked,\n                    fillFraction = 0.5f,\n                )\n            }\n        },\n        snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n        floatingActionButton = {\n            val isFABVisible = remember(chapters) {\n                chapters.fastAny { !it.chapter.read } && !isAnySelected\n            }\n            SmallExtendedFloatingActionButton(\n                text = {\n                    val isReading = remember(state.chapters) {\n                        state.chapters.fastAny { it.chapter.read }\n                    }\n                    Text(\n                        text = stringResource(\n                            if (isReading) MR.strings.action_resume else MR.strings.action_start,\n                        ),\n                    )\n                },\n                icon = { Icon(imageVector = Icons.Filled.PlayArrow, contentDescription = null) },\n                onClick = onContinueReading,\n                expanded = chapterListState.shouldExpandFAB(),\n                modifier = Modifier.animateFloatingActionButton(\n                    visible = isFABVisible,\n                    alignment = Alignment.BottomEnd,\n                ),\n            )\n        },\n    ) { contentPadding ->\n        PullRefresh(\n            refreshing = state.isRefreshingData,\n            onRefresh = onRefresh,\n            enabled = !isAnySelected,\n            indicatorPadding = PaddingValues(\n                start = insetPadding.calculateStartPadding(layoutDirection),\n                top = with(density) { topBarHeight.toDp() },\n                end = insetPadding.calculateEndPadding(layoutDirection),\n            ),\n        ) {\n            TwoPanelBox(\n                modifier = Modifier.padding(\n                    start = contentPadding.calculateStartPadding(layoutDirection),\n                    end = contentPadding.calculateEndPadding(layoutDirection),\n                ),\n                startContent = {\n                    Column(\n                        modifier = Modifier\n                            .verticalScroll(rememberScrollState())\n                            .padding(bottom = contentPadding.calculateBottomPadding()),\n                    ) {\n                        MangaInfoBox(\n                            isTabletUi = true,\n                            appBarPadding = contentPadding.calculateTopPadding(),\n                            manga = state.manga,\n                            sourceName = remember { state.source.getNameForMangaInfo() },\n                            isStubSource = remember { state.source is StubSource },\n                            onCoverClick = onCoverClicked,\n                            doSearch = onSearch,\n                        )\n                        MangaActionRow(\n                            favorite = state.manga.favorite,\n                            trackingCount = state.trackingCount,\n                            nextUpdate = nextUpdate,\n                            isUserIntervalMode = state.manga.fetchInterval < 0,\n                            onAddToLibraryClicked = onAddToLibraryClicked,\n                            onWebViewClicked = onWebViewClicked,\n                            onWebViewLongClicked = onWebViewLongClicked,\n                            onTrackingClicked = onTrackingClicked,\n                            onEditIntervalClicked = onEditIntervalClicked,\n                            onEditCategory = onEditCategoryClicked,\n                        )\n                        ExpandableMangaDescription(\n                            defaultExpandState = true,\n                            description = state.manga.description,\n                            tagsProvider = { state.manga.genre },\n                            notes = state.manga.notes,\n                            onTagSearch = onTagSearch,\n                            onCopyTagToClipboard = onCopyTagToClipboard,\n                            onEditNotes = onEditNotesClicked,\n                        )\n                    }\n                },\n                endContent = {\n                    VerticalFastScroller(\n                        listState = chapterListState,\n                        topContentPadding = contentPadding.calculateTopPadding(),\n                    ) {\n                        LazyColumn(\n                            modifier = Modifier.fillMaxHeight(),\n                            state = chapterListState,\n                            contentPadding = PaddingValues(\n                                top = contentPadding.calculateTopPadding(),\n                                bottom = contentPadding.calculateBottomPadding(),\n                            ),\n                        ) {\n                            item(\n                                key = MangaScreenItem.CHAPTER_HEADER,\n                                contentType = MangaScreenItem.CHAPTER_HEADER,\n                            ) {\n                                val missingChapterCount = remember(chapters) {\n                                    chapters.map { it.chapter.chapterNumber }.missingChaptersCount()\n                                }\n                                ChapterHeader(\n                                    enabled = !isAnySelected,\n                                    chapterCount = chapters.size,\n                                    missingChapterCount = missingChapterCount,\n                                    onClick = onFilterButtonClicked,\n                                )\n                            }\n\n                            sharedChapterItems(\n                                manga = state.manga,\n                                chapters = listItem,\n                                isAnyChapterSelected = chapters.fastAny { it.selected },\n                                chapterSwipeStartAction = chapterSwipeStartAction,\n                                chapterSwipeEndAction = chapterSwipeEndAction,\n                                onChapterClicked = onChapterClicked,\n                                onDownloadChapter = onDownloadChapter,\n                                onChapterSelected = onChapterSelected,\n                                onChapterSwipe = onChapterSwipe,\n                            )\n                        }\n                    }\n                },\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun SharedMangaBottomActionMenu(\n    selected: List<ChapterList.Item>,\n    onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit,\n    onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit,\n    onMarkPreviousAsReadClicked: (Chapter) -> Unit,\n    onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?,\n    onMultiDeleteClicked: (List<Chapter>) -> Unit,\n    fillFraction: Float,\n    modifier: Modifier = Modifier,\n) {\n    MangaBottomActionMenu(\n        visible = selected.isNotEmpty(),\n        modifier = modifier.fillMaxWidth(fillFraction),\n        onBookmarkClicked = {\n            onMultiBookmarkClicked.invoke(selected.fastMap { it.chapter }, true)\n        }.takeIf { selected.fastAny { !it.chapter.bookmark } },\n        onRemoveBookmarkClicked = {\n            onMultiBookmarkClicked.invoke(selected.fastMap { it.chapter }, false)\n        }.takeIf { selected.fastAll { it.chapter.bookmark } },\n        onMarkAsReadClicked = {\n            onMultiMarkAsReadClicked(selected.fastMap { it.chapter }, true)\n        }.takeIf { selected.fastAny { !it.chapter.read } },\n        onMarkAsUnreadClicked = {\n            onMultiMarkAsReadClicked(selected.fastMap { it.chapter }, false)\n        }.takeIf { selected.fastAny { it.chapter.read || it.chapter.lastPageRead > 0L } },\n        onMarkPreviousAsReadClicked = {\n            onMarkPreviousAsReadClicked(selected[0].chapter)\n        }.takeIf { selected.size == 1 },\n        onDownloadClicked = {\n            onDownloadChapter!!(selected.toList(), ChapterDownloadAction.START)\n        }.takeIf {\n            onDownloadChapter != null && selected.fastAny { it.downloadState != Download.State.DOWNLOADED }\n        },\n        onDeleteClicked = {\n            onMultiDeleteClicked(selected.fastMap { it.chapter })\n        }.takeIf {\n            selected.fastAny { it.downloadState == Download.State.DOWNLOADED }\n        },\n    )\n}\n\nprivate fun LazyListScope.sharedChapterItems(\n    manga: Manga,\n    chapters: List<ChapterList>,\n    isAnyChapterSelected: Boolean,\n    chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction,\n    chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction,\n    onChapterClicked: (Chapter) -> Unit,\n    onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?,\n    onChapterSelected: (ChapterList.Item, Boolean, Boolean) -> Unit,\n    onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit,\n) {\n    items(\n        items = chapters,\n        key = { item ->\n            when (item) {\n                is ChapterList.MissingCount -> \"missing-count-${item.id}\"\n                is ChapterList.Item -> \"chapter-${item.id}\"\n            }\n        },\n        contentType = { MangaScreenItem.CHAPTER },\n    ) { item ->\n        val haptic = LocalHapticFeedback.current\n\n        when (item) {\n            is ChapterList.MissingCount -> {\n                MissingChapterCountListItem(count = item.count)\n            }\n            is ChapterList.Item -> {\n                MangaChapterListItem(\n                    title = if (manga.displayMode == Manga.CHAPTER_DISPLAY_NUMBER) {\n                        stringResource(\n                            MR.strings.display_mode_chapter,\n                            formatChapterNumber(item.chapter.chapterNumber),\n                        )\n                    } else {\n                        item.chapter.name\n                    },\n                    date = relativeDateText(item.chapter.dateUpload),\n                    readProgress = item.chapter.lastPageRead\n                        .takeIf { !item.chapter.read && it > 0L }\n                        ?.let {\n                            stringResource(\n                                MR.strings.chapter_progress,\n                                it + 1,\n                            )\n                        },\n                    scanlator = item.chapter.scanlator.takeIf { !it.isNullOrBlank() },\n                    read = item.chapter.read,\n                    bookmark = item.chapter.bookmark,\n                    selected = item.selected,\n                    downloadIndicatorEnabled = !isAnyChapterSelected && !manga.isLocal(),\n                    downloadStateProvider = { item.downloadState },\n                    downloadProgressProvider = { item.downloadProgress },\n                    chapterSwipeStartAction = chapterSwipeStartAction,\n                    chapterSwipeEndAction = chapterSwipeEndAction,\n                    onLongClick = {\n                        onChapterSelected(item, !item.selected, true)\n                        haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n                    },\n                    onClick = {\n                        onChapterItemClick(\n                            chapterItem = item,\n                            isAnyChapterSelected = isAnyChapterSelected,\n                            onToggleSelection = { onChapterSelected(item, !item.selected, false) },\n                            onChapterClicked = onChapterClicked,\n                        )\n                    },\n                    onDownloadClick = if (onDownloadChapter != null) {\n                        { onDownloadChapter(listOf(item), it) }\n                    } else {\n                        null\n                    },\n                    onChapterSwipe = {\n                        onChapterSwipe(item, it)\n                    },\n                )\n            }\n        }\n    }\n}\n\nprivate fun onChapterItemClick(\n    chapterItem: ChapterList.Item,\n    isAnyChapterSelected: Boolean,\n    onToggleSelection: (Boolean) -> Unit,\n    onChapterClicked: (Chapter) -> Unit,\n) {\n    when {\n        chapterItem.selected -> onToggleSelection(false)\n        isAnyChapterSelected -> onToggleSelection(true)\n        else -> onChapterClicked(chapterItem.chapter)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/MangaScreenConstants.kt",
    "content": "package eu.kanade.presentation.manga\n\nenum class DownloadAction {\n    NEXT_1_CHAPTER,\n    NEXT_5_CHAPTERS,\n    NEXT_10_CHAPTERS,\n    NEXT_25_CHAPTERS,\n    UNREAD_CHAPTERS,\n    BOOKMARKED_CHAPTERS,\n}\n\nenum class EditCoverAction {\n    EDIT,\n    DELETE,\n}\n\nenum class MangaScreenItem {\n    INFO_BOX,\n    ACTION_ROW,\n    DESCRIPTION_WITH_TAG,\n    CHAPTER_HEADER,\n    CHAPTER,\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/BaseMangaListItem.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.presentation.core.components.material.padding\n\n@Composable\nfun BaseMangaListItem(\n    manga: Manga,\n    modifier: Modifier = Modifier,\n    onClickItem: () -> Unit = {},\n    onClickCover: () -> Unit = onClickItem,\n    cover: @Composable RowScope.() -> Unit = { defaultCover(manga, onClickCover) },\n    actions: @Composable RowScope.() -> Unit = {},\n    content: @Composable RowScope.() -> Unit = { defaultContent(manga) },\n) {\n    Row(\n        modifier = modifier\n            .clickable(onClick = onClickItem)\n            .height(56.dp)\n            .padding(horizontal = MaterialTheme.padding.medium),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        cover()\n        content()\n        actions()\n    }\n}\n\nprivate val defaultCover: @Composable RowScope.(Manga, () -> Unit) -> Unit = { manga, onClick ->\n    MangaCover.Square(\n        modifier = Modifier\n            .padding(vertical = MaterialTheme.padding.small)\n            .fillMaxHeight(),\n        data = manga,\n        onClick = onClick,\n    )\n}\n\nprivate val defaultContent: @Composable RowScope.(Manga) -> Unit = {\n    Box(modifier = Modifier.weight(1f)) {\n        Text(\n            text = it.title,\n            modifier = Modifier\n                .padding(start = MaterialTheme.padding.medium),\n            overflow = TextOverflow.Ellipsis,\n            maxLines = 1,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/ChapterDownloadIndicator.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.CheckCircle\nimport androidx.compose.material.icons.outlined.ArrowDownward\nimport androidx.compose.material.icons.outlined.ErrorOutline\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProgressIndicatorDefaults\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.ripple\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.StrokeCap\nimport androidx.compose.ui.hapticfeedback.HapticFeedback\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.res.painterResource\nimport androidx.compose.ui.semantics.Role\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.IconButtonTokens\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\nenum class ChapterDownloadAction {\n    START,\n    START_NOW,\n    CANCEL,\n    DELETE,\n}\n\n@Composable\nfun ChapterDownloadIndicator(\n    enabled: Boolean,\n    downloadStateProvider: () -> Download.State,\n    downloadProgressProvider: () -> Int,\n    onClick: (ChapterDownloadAction) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    when (val downloadState = downloadStateProvider()) {\n        Download.State.NOT_DOWNLOADED -> NotDownloadedIndicator(\n            enabled = enabled,\n            modifier = modifier,\n            onClick = onClick,\n        )\n        Download.State.QUEUE, Download.State.DOWNLOADING -> DownloadingIndicator(\n            enabled = enabled,\n            modifier = modifier,\n            downloadState = downloadState,\n            downloadProgressProvider = downloadProgressProvider,\n            onClick = onClick,\n        )\n        Download.State.DOWNLOADED -> DownloadedIndicator(\n            enabled = enabled,\n            modifier = modifier,\n            onClick = onClick,\n        )\n        Download.State.ERROR -> ErrorIndicator(\n            enabled = enabled,\n            modifier = modifier,\n            onClick = onClick,\n        )\n    }\n}\n\n@Composable\nprivate fun NotDownloadedIndicator(\n    enabled: Boolean,\n    modifier: Modifier = Modifier,\n    onClick: (ChapterDownloadAction) -> Unit,\n) {\n    Box(\n        modifier = modifier\n            .size(IconButtonTokens.StateLayerSize)\n            .commonClickable(\n                enabled = enabled,\n                hapticFeedback = LocalHapticFeedback.current,\n                onLongClick = { onClick(ChapterDownloadAction.START_NOW) },\n                onClick = { onClick(ChapterDownloadAction.START) },\n            )\n            .secondaryItemAlpha(),\n        contentAlignment = Alignment.Center,\n    ) {\n        Icon(\n            painter = painterResource(R.drawable.ic_download_chapter_24dp),\n            contentDescription = stringResource(MR.strings.manga_download),\n            modifier = Modifier.size(IndicatorSize),\n            tint = MaterialTheme.colorScheme.onSurfaceVariant,\n        )\n    }\n}\n\n@Composable\nprivate fun DownloadingIndicator(\n    enabled: Boolean,\n    downloadState: Download.State,\n    downloadProgressProvider: () -> Int,\n    onClick: (ChapterDownloadAction) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    var isMenuExpanded by remember { mutableStateOf(false) }\n    Box(\n        modifier = modifier\n            .size(IconButtonTokens.StateLayerSize)\n            .commonClickable(\n                enabled = enabled,\n                hapticFeedback = LocalHapticFeedback.current,\n                onLongClick = { onClick(ChapterDownloadAction.CANCEL) },\n                onClick = { isMenuExpanded = true },\n            ),\n        contentAlignment = Alignment.Center,\n    ) {\n        val arrowColor: Color\n        val strokeColor = MaterialTheme.colorScheme.onSurfaceVariant\n        val downloadProgress = downloadProgressProvider()\n        val indeterminate = downloadState == Download.State.QUEUE ||\n            (downloadState == Download.State.DOWNLOADING && downloadProgress == 0)\n        if (indeterminate) {\n            arrowColor = strokeColor\n            CircularProgressIndicator(\n                modifier = IndicatorModifier,\n                color = strokeColor,\n                strokeWidth = IndicatorStrokeWidth,\n                trackColor = Color.Transparent,\n                strokeCap = StrokeCap.Butt,\n            )\n        } else {\n            val animatedProgress by animateFloatAsState(\n                targetValue = downloadProgress / 100f,\n                animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec,\n                label = \"progress\",\n            )\n            arrowColor = if (animatedProgress < 0.5f) {\n                strokeColor\n            } else {\n                MaterialTheme.colorScheme.background\n            }\n            CircularProgressIndicator(\n                progress = { animatedProgress },\n                modifier = IndicatorModifier,\n                color = strokeColor,\n                strokeWidth = IndicatorSize / 2,\n                trackColor = Color.Transparent,\n                strokeCap = StrokeCap.Butt,\n                gapSize = 0.dp,\n            )\n        }\n        DropdownMenu(expanded = isMenuExpanded, onDismissRequest = { isMenuExpanded = false }) {\n            DropdownMenuItem(\n                text = { Text(text = stringResource(MR.strings.action_start_downloading_now)) },\n                onClick = {\n                    onClick(ChapterDownloadAction.START_NOW)\n                    isMenuExpanded = false\n                },\n            )\n            DropdownMenuItem(\n                text = { Text(text = stringResource(MR.strings.action_cancel)) },\n                onClick = {\n                    onClick(ChapterDownloadAction.CANCEL)\n                    isMenuExpanded = false\n                },\n            )\n        }\n        Icon(\n            imageVector = Icons.Outlined.ArrowDownward,\n            contentDescription = null,\n            modifier = ArrowModifier,\n            tint = arrowColor,\n        )\n    }\n}\n\n@Composable\nprivate fun DownloadedIndicator(\n    enabled: Boolean,\n    modifier: Modifier = Modifier,\n    onClick: (ChapterDownloadAction) -> Unit,\n) {\n    var isMenuExpanded by remember { mutableStateOf(false) }\n    Box(\n        modifier = modifier\n            .size(IconButtonTokens.StateLayerSize)\n            .commonClickable(\n                enabled = enabled,\n                hapticFeedback = LocalHapticFeedback.current,\n                onLongClick = { isMenuExpanded = true },\n                onClick = { isMenuExpanded = true },\n            ),\n        contentAlignment = Alignment.Center,\n    ) {\n        Icon(\n            imageVector = Icons.Filled.CheckCircle,\n            contentDescription = null,\n            modifier = Modifier.size(IndicatorSize),\n            tint = MaterialTheme.colorScheme.onSurfaceVariant,\n        )\n        DropdownMenu(expanded = isMenuExpanded, onDismissRequest = { isMenuExpanded = false }) {\n            DropdownMenuItem(\n                text = { Text(text = stringResource(MR.strings.action_delete)) },\n                onClick = {\n                    onClick(ChapterDownloadAction.DELETE)\n                    isMenuExpanded = false\n                },\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun ErrorIndicator(\n    enabled: Boolean,\n    modifier: Modifier = Modifier,\n    onClick: (ChapterDownloadAction) -> Unit,\n) {\n    Box(\n        modifier = modifier\n            .size(IconButtonTokens.StateLayerSize)\n            .commonClickable(\n                enabled = enabled,\n                hapticFeedback = LocalHapticFeedback.current,\n                onLongClick = { onClick(ChapterDownloadAction.START) },\n                onClick = { onClick(ChapterDownloadAction.START) },\n            ),\n        contentAlignment = Alignment.Center,\n    ) {\n        Icon(\n            imageVector = Icons.Outlined.ErrorOutline,\n            contentDescription = stringResource(MR.strings.chapter_error),\n            modifier = Modifier.size(IndicatorSize),\n            tint = MaterialTheme.colorScheme.error,\n        )\n    }\n}\n\nprivate fun Modifier.commonClickable(\n    enabled: Boolean,\n    hapticFeedback: HapticFeedback,\n    onLongClick: () -> Unit,\n    onClick: () -> Unit,\n) = this.combinedClickable(\n    enabled = enabled,\n    onLongClick = {\n        onLongClick()\n        hapticFeedback.performHapticFeedback(HapticFeedbackType.LongPress)\n    },\n    onClick = onClick,\n    role = Role.Button,\n    interactionSource = null,\n    indication = ripple(\n        bounded = false,\n        radius = IconButtonTokens.StateLayerSize / 2,\n    ),\n)\n\nprivate val IndicatorSize = 26.dp\nprivate val IndicatorPadding = 2.dp\n\n// To match composable parameter name when used later\nprivate val IndicatorStrokeWidth = IndicatorPadding\n\nprivate val IndicatorModifier = Modifier\n    .size(IndicatorSize)\n    .padding(IndicatorPadding)\nprivate val ArrowModifier = Modifier\n    .size(IndicatorSize - 7.dp)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/ChapterHeader.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.SECONDARY_ALPHA\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ChapterHeader(\n    enabled: Boolean,\n    chapterCount: Int?,\n    missingChapterCount: Int,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Column(\n        modifier = modifier\n            .fillMaxWidth()\n            .clickable(\n                enabled = enabled,\n                onClick = onClick,\n            )\n            .padding(horizontal = 16.dp, vertical = 4.dp),\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n    ) {\n        Text(\n            text = if (chapterCount == null) {\n                stringResource(MR.strings.chapters)\n            } else {\n                pluralStringResource(MR.plurals.manga_num_chapters, count = chapterCount, chapterCount)\n            },\n            style = MaterialTheme.typography.titleMedium,\n            color = MaterialTheme.colorScheme.onBackground,\n        )\n\n        MissingChaptersWarning(missingChapterCount)\n    }\n}\n\n@Composable\nprivate fun MissingChaptersWarning(count: Int) {\n    if (count == 0) {\n        return\n    }\n\n    Text(\n        text = pluralStringResource(MR.plurals.missing_chapters, count = count, count),\n        maxLines = 1,\n        overflow = TextOverflow.Ellipsis,\n        style = MaterialTheme.typography.bodySmall,\n        color = MaterialTheme.colorScheme.error.copy(alpha = SECONDARY_ALPHA),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/DotSeparatorText.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\n\n@Composable\nfun DotSeparatorText(\n    modifier: Modifier = Modifier,\n) {\n    Text(\n        text = \" • \",\n        modifier = modifier,\n    )\n}\n\n@Composable\nfun DotSeparatorNoSpaceText(\n    modifier: Modifier = Modifier,\n) {\n    Text(\n        text = \"•\",\n        modifier = modifier,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.animation.core.tween\nimport androidx.compose.animation.expandVertically\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.shrinkVertically\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.WindowInsetsSides\nimport androidx.compose.foundation.layout.asPaddingValues\nimport androidx.compose.foundation.layout.navigationBars\nimport androidx.compose.foundation.layout.only\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.shape.ZeroCornerSize\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.Label\nimport androidx.compose.material.icons.outlined.BookmarkAdd\nimport androidx.compose.material.icons.outlined.BookmarkRemove\nimport androidx.compose.material.icons.outlined.Delete\nimport androidx.compose.material.icons.outlined.DoneAll\nimport androidx.compose.material.icons.outlined.Download\nimport androidx.compose.material.icons.outlined.MoreVert\nimport androidx.compose.material.icons.outlined.RemoveDone\nimport androidx.compose.material.icons.outlined.SwapCalls\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.ripple\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateListOf\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.res.vectorResource\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.DpOffset\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.DownloadDropdownMenu\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.presentation.manga.DownloadAction\nimport eu.kanade.tachiyomi.R\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.isActive\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport kotlin.time.Duration.Companion.seconds\n\n@Composable\nfun MangaBottomActionMenu(\n    visible: Boolean,\n    modifier: Modifier = Modifier,\n    onBookmarkClicked: (() -> Unit)? = null,\n    onRemoveBookmarkClicked: (() -> Unit)? = null,\n    onMarkAsReadClicked: (() -> Unit)? = null,\n    onMarkAsUnreadClicked: (() -> Unit)? = null,\n    onMarkPreviousAsReadClicked: (() -> Unit)? = null,\n    onDownloadClicked: (() -> Unit)? = null,\n    onDeleteClicked: (() -> Unit)? = null,\n) {\n    AnimatedVisibility(\n        visible = visible,\n        enter = expandVertically(expandFrom = Alignment.Bottom),\n        exit = shrinkVertically(shrinkTowards = Alignment.Bottom),\n    ) {\n        val scope = rememberCoroutineScope()\n        Surface(\n            modifier = modifier,\n            shape = MaterialTheme.shapes.large.copy(bottomEnd = ZeroCornerSize, bottomStart = ZeroCornerSize),\n            color = MaterialTheme.colorScheme.surfaceContainerHigh,\n        ) {\n            val haptic = LocalHapticFeedback.current\n            val confirm = remember { mutableStateListOf(false, false, false, false, false, false, false) }\n            var resetJob by remember { mutableStateOf<Job?>(null) }\n            val onLongClickItem: (Int) -> Unit = { toConfirmIndex ->\n                haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n                confirm.indices.forEach { i -> confirm[i] = i == toConfirmIndex }\n                resetJob?.cancel()\n                resetJob = scope.launch {\n                    delay(1.seconds)\n                    if (isActive) confirm[toConfirmIndex] = false\n                }\n            }\n            Row(\n                modifier = Modifier\n                    .padding(\n                        WindowInsets.navigationBars\n                            .only(WindowInsetsSides.Bottom)\n                            .asPaddingValues(),\n                    )\n                    .padding(horizontal = 8.dp, vertical = 12.dp),\n            ) {\n                if (onBookmarkClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_bookmark),\n                        icon = Icons.Outlined.BookmarkAdd,\n                        toConfirm = confirm[0],\n                        onLongClick = { onLongClickItem(0) },\n                        onClick = onBookmarkClicked,\n                    )\n                }\n                if (onRemoveBookmarkClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_remove_bookmark),\n                        icon = Icons.Outlined.BookmarkRemove,\n                        toConfirm = confirm[1],\n                        onLongClick = { onLongClickItem(1) },\n                        onClick = onRemoveBookmarkClicked,\n                    )\n                }\n                if (onMarkAsReadClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_mark_as_read),\n                        icon = Icons.Outlined.DoneAll,\n                        toConfirm = confirm[2],\n                        onLongClick = { onLongClickItem(2) },\n                        onClick = onMarkAsReadClicked,\n                    )\n                }\n                if (onMarkAsUnreadClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_mark_as_unread),\n                        icon = Icons.Outlined.RemoveDone,\n                        toConfirm = confirm[3],\n                        onLongClick = { onLongClickItem(3) },\n                        onClick = onMarkAsUnreadClicked,\n                    )\n                }\n                if (onMarkPreviousAsReadClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_mark_previous_as_read),\n                        icon = ImageVector.vectorResource(R.drawable.ic_done_prev_24dp),\n                        toConfirm = confirm[4],\n                        onLongClick = { onLongClickItem(4) },\n                        onClick = onMarkPreviousAsReadClicked,\n                    )\n                }\n                if (onDownloadClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_download),\n                        icon = Icons.Outlined.Download,\n                        toConfirm = confirm[5],\n                        onLongClick = { onLongClickItem(5) },\n                        onClick = onDownloadClicked,\n                    )\n                }\n                if (onDeleteClicked != null) {\n                    Button(\n                        title = stringResource(MR.strings.action_delete),\n                        icon = Icons.Outlined.Delete,\n                        toConfirm = confirm[6],\n                        onLongClick = { onLongClickItem(6) },\n                        onClick = onDeleteClicked,\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun RowScope.Button(\n    title: String,\n    icon: ImageVector,\n    toConfirm: Boolean,\n    onLongClick: () -> Unit,\n    onClick: () -> Unit,\n    content: (@Composable () -> Unit)? = null,\n) {\n    val animatedWeight by animateFloatAsState(\n        targetValue = if (toConfirm) 2f else 1f,\n        label = \"weight\",\n    )\n    Box(\n        modifier = Modifier\n            .size(48.dp)\n            .weight(animatedWeight)\n            .combinedClickable(\n                interactionSource = null,\n                indication = ripple(bounded = false),\n                onLongClick = onLongClick,\n                onClick = onClick,\n            ),\n        contentAlignment = Alignment.Center,\n    ) {\n        Column(\n            verticalArrangement = Arrangement.Center,\n            horizontalAlignment = Alignment.CenterHorizontally,\n        ) {\n            Icon(\n                imageVector = icon,\n                contentDescription = title,\n            )\n            AnimatedVisibility(\n                visible = toConfirm,\n                enter = expandVertically(expandFrom = Alignment.Top) + fadeIn(),\n                exit = shrinkVertically(shrinkTowards = Alignment.Top) + fadeOut(),\n            ) {\n                Text(\n                    text = title,\n                    overflow = TextOverflow.Visible,\n                    maxLines = 1,\n                    style = MaterialTheme.typography.labelSmall,\n                )\n            }\n        }\n        content?.invoke()\n    }\n}\n\n@Composable\nfun LibraryBottomActionMenu(\n    visible: Boolean,\n    onChangeCategoryClicked: () -> Unit,\n    onMarkAsReadClicked: () -> Unit,\n    onMarkAsUnreadClicked: () -> Unit,\n    onDownloadClicked: ((DownloadAction) -> Unit)?,\n    onDeleteClicked: () -> Unit,\n    onMigrateClicked: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    AnimatedVisibility(\n        visible = visible,\n        enter = expandVertically(animationSpec = tween(delayMillis = 300)),\n        exit = shrinkVertically(animationSpec = tween()),\n    ) {\n        val scope = rememberCoroutineScope()\n        Surface(\n            modifier = modifier,\n            shape = MaterialTheme.shapes.large.copy(bottomEnd = ZeroCornerSize, bottomStart = ZeroCornerSize),\n            color = MaterialTheme.colorScheme.surfaceContainerHigh,\n        ) {\n            val haptic = LocalHapticFeedback.current\n            val confirm = remember { mutableStateListOf(false, false, false, false, false, false) }\n            var resetJob by remember { mutableStateOf<Job?>(null) }\n            val onLongClickItem: (Int) -> Unit = { toConfirmIndex ->\n                haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n                confirm.indices.forEach { i -> confirm[i] = i == toConfirmIndex }\n                resetJob?.cancel()\n                resetJob = scope.launch {\n                    delay(1.seconds)\n                    if (isActive) confirm[toConfirmIndex] = false\n                }\n            }\n            val itemOverflow = onDownloadClicked != null\n            Row(\n                modifier = Modifier\n                    .windowInsetsPadding(\n                        WindowInsets.navigationBars\n                            .only(WindowInsetsSides.Bottom),\n                    )\n                    .padding(horizontal = 8.dp, vertical = 12.dp),\n            ) {\n                Button(\n                    title = stringResource(MR.strings.action_move_category),\n                    icon = Icons.AutoMirrored.Outlined.Label,\n                    toConfirm = confirm[0],\n                    onLongClick = { onLongClickItem(0) },\n                    onClick = onChangeCategoryClicked,\n                )\n                Button(\n                    title = stringResource(MR.strings.action_mark_as_read),\n                    icon = Icons.Outlined.DoneAll,\n                    toConfirm = confirm[1],\n                    onLongClick = { onLongClickItem(1) },\n                    onClick = onMarkAsReadClicked,\n                )\n                Button(\n                    title = stringResource(MR.strings.action_mark_as_unread),\n                    icon = Icons.Outlined.RemoveDone,\n                    toConfirm = confirm[2],\n                    onLongClick = { onLongClickItem(2) },\n                    onClick = onMarkAsUnreadClicked,\n                )\n                if (onDownloadClicked != null) {\n                    var downloadExpanded by remember { mutableStateOf(false) }\n                    Button(\n                        title = stringResource(MR.strings.action_download),\n                        icon = Icons.Outlined.Download,\n                        toConfirm = confirm[3],\n                        onLongClick = { onLongClickItem(3) },\n                        onClick = { downloadExpanded = !downloadExpanded },\n                    ) {\n                        DownloadDropdownMenu(\n                            expanded = downloadExpanded,\n                            onDismissRequest = { downloadExpanded = false },\n                            onDownloadClicked = onDownloadClicked,\n                            offset = BottomBarMenuDpOffset,\n                        )\n                    }\n                }\n                if (!itemOverflow) {\n                    Button(\n                        title = stringResource(MR.strings.migrate),\n                        icon = Icons.Outlined.SwapCalls,\n                        toConfirm = confirm[4],\n                        onLongClick = { onLongClickItem(4) },\n                        onClick = onMigrateClicked,\n                    )\n                    Button(\n                        title = stringResource(MR.strings.action_delete),\n                        icon = Icons.Outlined.Delete,\n                        toConfirm = confirm[5],\n                        onLongClick = { onLongClickItem(5) },\n                        onClick = onDeleteClicked,\n                    )\n                } else {\n                    var overflowMenuOpen by remember { mutableStateOf(false) }\n                    Button(\n                        title = stringResource(MR.strings.label_more),\n                        icon = Icons.Outlined.MoreVert,\n                        toConfirm = false,\n                        onLongClick = {},\n                        onClick = { overflowMenuOpen = true },\n                    ) {\n                        DropdownMenu(\n                            expanded = overflowMenuOpen,\n                            onDismissRequest = { overflowMenuOpen = false },\n                            offset = BottomBarMenuDpOffset,\n                        ) {\n                            DropdownMenuItem(\n                                text = { Text(stringResource(MR.strings.migrate)) },\n                                onClick = onMigrateClicked,\n                            )\n                            DropdownMenuItem(\n                                text = { Text(stringResource(MR.strings.action_delete)) },\n                                onClick = onDeleteClicked,\n                            )\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n\nprivate val BottomBarMenuDpOffset = DpOffset(0.dp, 0.dp)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.sizeIn\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Bookmark\nimport androidx.compose.material.icons.filled.Circle\nimport androidx.compose.material.icons.outlined.BookmarkAdd\nimport androidx.compose.material.icons.outlined.BookmarkRemove\nimport androidx.compose.material.icons.outlined.Delete\nimport androidx.compose.material.icons.outlined.Done\nimport androidx.compose.material.icons.outlined.Download\nimport androidx.compose.material.icons.outlined.FileDownloadOff\nimport androidx.compose.material.icons.outlined.RemoveDone\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProvideTextStyle\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.contentColorFor\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clipToBounds\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport me.saket.swipe.SwipeableActionsBox\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.DISABLED_ALPHA\nimport tachiyomi.presentation.core.components.material.SECONDARY_ALPHA\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.selectedBackground\n\n@Composable\nfun MangaChapterListItem(\n    title: String,\n    date: String?,\n    readProgress: String?,\n    scanlator: String?,\n    read: Boolean,\n    bookmark: Boolean,\n    selected: Boolean,\n    downloadIndicatorEnabled: Boolean,\n    downloadStateProvider: () -> Download.State,\n    downloadProgressProvider: () -> Int,\n    chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction,\n    chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction,\n    onLongClick: () -> Unit,\n    onClick: () -> Unit,\n    onDownloadClick: ((ChapterDownloadAction) -> Unit)?,\n    onChapterSwipe: (LibraryPreferences.ChapterSwipeAction) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val start = getSwipeAction(\n        action = chapterSwipeStartAction,\n        read = read,\n        bookmark = bookmark,\n        downloadState = downloadStateProvider(),\n        background = MaterialTheme.colorScheme.primaryContainer,\n        onSwipe = { onChapterSwipe(chapterSwipeStartAction) },\n    )\n    val end = getSwipeAction(\n        action = chapterSwipeEndAction,\n        read = read,\n        bookmark = bookmark,\n        downloadState = downloadStateProvider(),\n        background = MaterialTheme.colorScheme.primaryContainer,\n        onSwipe = { onChapterSwipe(chapterSwipeEndAction) },\n    )\n\n    SwipeableActionsBox(\n        modifier = Modifier.clipToBounds(),\n        startActions = listOfNotNull(start),\n        endActions = listOfNotNull(end),\n        swipeThreshold = swipeActionThreshold,\n        backgroundUntilSwipeThreshold = MaterialTheme.colorScheme.surfaceContainerLowest,\n    ) {\n        Row(\n            modifier = modifier\n                .selectedBackground(selected)\n                .combinedClickable(\n                    onClick = onClick,\n                    onLongClick = onLongClick,\n                )\n                .padding(start = 16.dp, top = 12.dp, end = 8.dp, bottom = 12.dp),\n        ) {\n            Column(\n                modifier = Modifier.weight(1f),\n                verticalArrangement = Arrangement.spacedBy(6.dp),\n            ) {\n                Row(\n                    horizontalArrangement = Arrangement.spacedBy(2.dp),\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    var textHeight by remember { mutableIntStateOf(0) }\n                    if (!read) {\n                        Icon(\n                            imageVector = Icons.Filled.Circle,\n                            contentDescription = stringResource(MR.strings.unread),\n                            modifier = Modifier\n                                .height(8.dp)\n                                .padding(end = 4.dp),\n                            tint = MaterialTheme.colorScheme.primary,\n                        )\n                    }\n                    if (bookmark) {\n                        Icon(\n                            imageVector = Icons.Filled.Bookmark,\n                            contentDescription = stringResource(MR.strings.action_filter_bookmarked),\n                            modifier = Modifier\n                                .sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),\n                            tint = MaterialTheme.colorScheme.primary,\n                        )\n                    }\n                    Text(\n                        text = title,\n                        style = MaterialTheme.typography.bodyMedium,\n                        maxLines = 1,\n                        overflow = TextOverflow.Ellipsis,\n                        onTextLayout = { textHeight = it.size.height },\n                        color = LocalContentColor.current.copy(alpha = if (read) DISABLED_ALPHA else 1f),\n                    )\n                }\n\n                Row {\n                    val subtitleStyle = MaterialTheme.typography.bodySmall\n                        .merge(\n                            color = LocalContentColor.current\n                                .copy(alpha = if (read) DISABLED_ALPHA else SECONDARY_ALPHA),\n                        )\n                    ProvideTextStyle(value = subtitleStyle) {\n                        if (date != null) {\n                            Text(\n                                text = date,\n                                maxLines = 1,\n                                overflow = TextOverflow.Ellipsis,\n                            )\n                            if (readProgress != null || scanlator != null) DotSeparatorText()\n                        }\n                        if (readProgress != null) {\n                            Text(\n                                text = readProgress,\n                                maxLines = 1,\n                                overflow = TextOverflow.Ellipsis,\n                                color = LocalContentColor.current.copy(alpha = DISABLED_ALPHA),\n                            )\n                            if (scanlator != null) DotSeparatorText()\n                        }\n                        if (scanlator != null) {\n                            Text(\n                                text = scanlator,\n                                maxLines = 1,\n                                overflow = TextOverflow.Ellipsis,\n                            )\n                        }\n                    }\n                }\n            }\n\n            ChapterDownloadIndicator(\n                enabled = downloadIndicatorEnabled,\n                modifier = Modifier.padding(start = 4.dp),\n                downloadStateProvider = downloadStateProvider,\n                downloadProgressProvider = downloadProgressProvider,\n                onClick = { onDownloadClick?.invoke(it) },\n            )\n        }\n    }\n}\n\nprivate fun getSwipeAction(\n    action: LibraryPreferences.ChapterSwipeAction,\n    read: Boolean,\n    bookmark: Boolean,\n    downloadState: Download.State,\n    background: Color,\n    onSwipe: () -> Unit,\n): me.saket.swipe.SwipeAction? {\n    return when (action) {\n        LibraryPreferences.ChapterSwipeAction.ToggleRead -> swipeAction(\n            icon = if (!read) Icons.Outlined.Done else Icons.Outlined.RemoveDone,\n            background = background,\n            isUndo = read,\n            onSwipe = onSwipe,\n        )\n        LibraryPreferences.ChapterSwipeAction.ToggleBookmark -> swipeAction(\n            icon = if (!bookmark) Icons.Outlined.BookmarkAdd else Icons.Outlined.BookmarkRemove,\n            background = background,\n            isUndo = bookmark,\n            onSwipe = onSwipe,\n        )\n        LibraryPreferences.ChapterSwipeAction.Download -> swipeAction(\n            icon = when (downloadState) {\n                Download.State.NOT_DOWNLOADED, Download.State.ERROR -> Icons.Outlined.Download\n                Download.State.QUEUE, Download.State.DOWNLOADING -> Icons.Outlined.FileDownloadOff\n                Download.State.DOWNLOADED -> Icons.Outlined.Delete\n            },\n            background = background,\n            onSwipe = onSwipe,\n        )\n        LibraryPreferences.ChapterSwipeAction.Disabled -> null\n    }\n}\n\nprivate fun swipeAction(\n    onSwipe: () -> Unit,\n    icon: ImageVector,\n    background: Color,\n    isUndo: Boolean = false,\n): me.saket.swipe.SwipeAction {\n    return me.saket.swipe.SwipeAction(\n        icon = {\n            Icon(\n                modifier = Modifier.padding(16.dp),\n                imageVector = icon,\n                tint = contentColorFor(background),\n                contentDescription = null,\n            )\n        },\n        background = background,\n        onSwipe = onSwipe,\n        isUndo = isUndo,\n    )\n}\n\nprivate val swipeActionThreshold = 56.dp\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.aspectRatio\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.Shape\nimport androidx.compose.ui.graphics.painter.ColorPainter\nimport androidx.compose.ui.layout.ContentScale\nimport androidx.compose.ui.semantics.Role\nimport coil3.compose.AsyncImage\nimport eu.kanade.presentation.util.rememberResourceBitmapPainter\nimport eu.kanade.tachiyomi.R\n\nenum class MangaCover(val ratio: Float) {\n    Square(1f / 1f),\n    Book(2f / 3f),\n    ;\n\n    @Composable\n    operator fun invoke(\n        data: Any?,\n        modifier: Modifier = Modifier,\n        contentDescription: String = \"\",\n        shape: Shape = MaterialTheme.shapes.extraSmall,\n        onClick: (() -> Unit)? = null,\n    ) {\n        AsyncImage(\n            model = data,\n            placeholder = ColorPainter(CoverPlaceholderColor),\n            error = rememberResourceBitmapPainter(id = R.drawable.cover_error),\n            contentDescription = contentDescription,\n            modifier = modifier\n                .aspectRatio(ratio)\n                .clip(shape)\n                .then(\n                    if (onClick != null) {\n                        Modifier.clickable(\n                            role = Role.Button,\n                            onClick = onClick,\n                        )\n                    } else {\n                        Modifier\n                    },\n                ),\n            contentScale = ContentScale.Crop,\n        )\n    }\n}\n\nprivate val CoverPlaceholderColor = Color(0x1F888888)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport android.graphics.Bitmap\nimport android.graphics.drawable.BitmapDrawable\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.navigationBarsPadding\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material.icons.outlined.Edit\nimport androidx.compose.material.icons.outlined.Save\nimport androidx.compose.material.icons.outlined.Share\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.unit.DpOffset\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.viewinterop.AndroidView\nimport androidx.compose.ui.window.Dialog\nimport androidx.compose.ui.window.DialogProperties\nimport androidx.core.graphics.drawable.toDrawable\nimport androidx.core.view.updatePadding\nimport coil3.asDrawable\nimport coil3.imageLoader\nimport coil3.request.CachePolicy\nimport coil3.request.ImageRequest\nimport coil3.size.Size\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.presentation.manga.EditCoverAction\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.clickableNoIndication\n\n@Composable\nfun MangaCoverDialog(\n    manga: Manga,\n    isCustomCover: Boolean,\n    snackbarHostState: SnackbarHostState,\n    onShareClick: () -> Unit,\n    onSaveClick: () -> Unit,\n    onEditClick: ((EditCoverAction) -> Unit)?,\n    onDismissRequest: () -> Unit,\n) {\n    Dialog(\n        onDismissRequest = onDismissRequest,\n        properties = DialogProperties(\n            usePlatformDefaultWidth = false,\n            decorFitsSystemWindows = false, // Doesn't work https://issuetracker.google.com/issues/246909281\n        ),\n    ) {\n        Scaffold(\n            snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n            containerColor = Color.Transparent,\n            bottomBar = {\n                Row(\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .padding(4.dp)\n                        .navigationBarsPadding(),\n                ) {\n                    ActionsPill {\n                        IconButton(onClick = onDismissRequest) {\n                            Icon(\n                                imageVector = Icons.Outlined.Close,\n                                contentDescription = stringResource(MR.strings.action_close),\n                            )\n                        }\n                    }\n                    Spacer(modifier = Modifier.weight(1f))\n                    ActionsPill {\n                        AppBarActions(\n                            actions = persistentListOf(\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.action_share),\n                                    icon = Icons.Outlined.Share,\n                                    onClick = onShareClick,\n                                ),\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.action_save),\n                                    icon = Icons.Outlined.Save,\n                                    onClick = onSaveClick,\n                                ),\n                            ),\n                        )\n                        if (onEditClick != null) {\n                            Box {\n                                var expanded by remember { mutableStateOf(false) }\n                                IconButton(\n                                    onClick = {\n                                        if (isCustomCover) {\n                                            expanded = true\n                                        } else {\n                                            onEditClick(EditCoverAction.EDIT)\n                                        }\n                                    },\n                                ) {\n                                    Icon(\n                                        imageVector = Icons.Outlined.Edit,\n                                        contentDescription = stringResource(MR.strings.action_edit_cover),\n                                    )\n                                }\n                                DropdownMenu(\n                                    expanded = expanded,\n                                    onDismissRequest = { expanded = false },\n                                    offset = DpOffset(8.dp, 0.dp),\n                                ) {\n                                    DropdownMenuItem(\n                                        text = { Text(text = stringResource(MR.strings.action_edit)) },\n                                        onClick = {\n                                            onEditClick(EditCoverAction.EDIT)\n                                            expanded = false\n                                        },\n                                    )\n                                    DropdownMenuItem(\n                                        text = { Text(text = stringResource(MR.strings.action_delete)) },\n                                        onClick = {\n                                            onEditClick(EditCoverAction.DELETE)\n                                            expanded = false\n                                        },\n                                    )\n                                }\n                            }\n                        }\n                    }\n                }\n            },\n        ) { contentPadding ->\n            val statusBarPaddingPx = with(LocalDensity.current) { contentPadding.calculateTopPadding().roundToPx() }\n            val bottomPaddingPx = with(LocalDensity.current) { contentPadding.calculateBottomPadding().roundToPx() }\n\n            Box(\n                modifier = Modifier\n                    .fillMaxSize()\n                    .clickableNoIndication(onClick = onDismissRequest),\n            ) {\n                AndroidView(\n                    factory = {\n                        ReaderPageImageView(it).apply {\n                            onViewClicked = onDismissRequest\n                            clipToPadding = false\n                            clipChildren = false\n                        }\n                    },\n                    update = { view ->\n                        val request = ImageRequest.Builder(view.context)\n                            .data(manga)\n                            .size(Size.ORIGINAL)\n                            .memoryCachePolicy(CachePolicy.DISABLED)\n                            .target { image ->\n                                val drawable = image.asDrawable(view.context.resources)\n                                // Copy bitmap in case it came from memory cache\n                                // Because SSIV needs to thoroughly read the image\n                                val copy = (drawable as? BitmapDrawable)\n                                    ?.bitmap\n                                    ?.copy(Bitmap.Config.HARDWARE, false)\n                                    ?.toDrawable(view.context.resources)\n                                    ?: drawable\n                                view.setImage(copy, ReaderPageImageView.Config(zoomDuration = 500))\n                            }\n                            .build()\n                        view.context.imageLoader.enqueue(request)\n\n                        view.updatePadding(top = statusBarPaddingPx, bottom = bottomPaddingPx)\n                    },\n                    modifier = Modifier.fillMaxSize(),\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ActionsPill(content: @Composable () -> Unit) {\n    Row(\n        modifier = Modifier\n            .clip(MaterialTheme.shapes.extraLarge)\n            .background(MaterialTheme.colorScheme.background.copy(alpha = 0.95f)),\n    ) {\n        content()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaDialogs.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.layout.BoxWithConstraints\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.DpSize\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.tachiyomi.util.system.isReleaseBuildType\nimport kotlinx.collections.immutable.toImmutableList\nimport tachiyomi.domain.manga.interactor.FetchInterval\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.WheelTextPicker\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport java.time.Instant\nimport java.time.temporal.ChronoUnit\nimport kotlin.math.absoluteValue\n\n@Composable\nfun DeleteChaptersDialog(\n    onDismissRequest: () -> Unit,\n    onConfirm: () -> Unit,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    onDismissRequest()\n                    onConfirm()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.are_you_sure))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.confirm_delete_chapters))\n        },\n    )\n}\n\n@Composable\nfun SetIntervalDialog(\n    interval: Int,\n    nextUpdate: Instant?,\n    onDismissRequest: () -> Unit,\n    onValueChanged: ((Int) -> Unit)? = null,\n) {\n    var selectedInterval by rememberSaveable { mutableIntStateOf(if (interval < 0) -interval else 0) }\n\n    val nextUpdateDays = remember(nextUpdate) {\n        return@remember if (nextUpdate != null) {\n            val now = Instant.now()\n            now.until(nextUpdate, ChronoUnit.DAYS).toInt().coerceAtLeast(0)\n        } else {\n            null\n        }\n    }\n\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = { Text(stringResource(MR.strings.pref_library_update_smart_update)) },\n        text = {\n            Column {\n                if (nextUpdateDays != null && nextUpdateDays >= 0 && interval >= 0) {\n                    Text(\n                        stringResource(\n                            MR.strings.manga_interval_expected_update,\n                            pluralStringResource(\n                                MR.plurals.day,\n                                count = nextUpdateDays,\n                                nextUpdateDays,\n                            ),\n                            pluralStringResource(\n                                MR.plurals.day,\n                                count = interval.absoluteValue,\n                                interval.absoluteValue,\n                            ),\n                        ),\n                    )\n                } else {\n                    Text(\n                        stringResource(MR.strings.manga_interval_expected_update_null),\n                    )\n                }\n                Spacer(Modifier.height(MaterialTheme.padding.small))\n\n                if (onValueChanged != null && (!isReleaseBuildType)) {\n                    Text(stringResource(MR.strings.manga_interval_custom_amount))\n\n                    BoxWithConstraints(\n                        modifier = Modifier.fillMaxWidth(),\n                        contentAlignment = Alignment.Center,\n                    ) {\n                        val size = DpSize(width = maxWidth / 2, height = 128.dp)\n                        val items = (0..FetchInterval.MAX_INTERVAL)\n                            .map {\n                                if (it == 0) {\n                                    stringResource(MR.strings.label_default)\n                                } else {\n                                    it.toString()\n                                }\n                            }\n                            .toImmutableList()\n                        WheelTextPicker(\n                            items = items,\n                            size = size,\n                            startIndex = selectedInterval,\n                            onSelectionChanged = { selectedInterval = it },\n                        )\n                    }\n                }\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        confirmButton = {\n            TextButton(onClick = {\n                onValueChanged?.invoke(selectedInterval)\n                onDismissRequest()\n            }) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.animation.animateContentSize\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.animation.core.spring\nimport androidx.compose.animation.graphics.res.animatedVectorResource\nimport androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter\nimport androidx.compose.animation.graphics.vector.AnimatedImageVector\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.FlowRow\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.sizeIn\nimport androidx.compose.foundation.lazy.LazyRow\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.text.appendInlineContent\nimport androidx.compose.foundation.text.selection.SelectionContainer\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Brush\nimport androidx.compose.material.icons.filled.Favorite\nimport androidx.compose.material.icons.filled.HourglassEmpty\nimport androidx.compose.material.icons.filled.PersonOutline\nimport androidx.compose.material.icons.filled.Warning\nimport androidx.compose.material.icons.outlined.AttachMoney\nimport androidx.compose.material.icons.outlined.Block\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material.icons.outlined.Done\nimport androidx.compose.material.icons.outlined.DoneAll\nimport androidx.compose.material.icons.outlined.FavoriteBorder\nimport androidx.compose.material.icons.outlined.Pause\nimport androidx.compose.material.icons.outlined.Public\nimport androidx.compose.material.icons.outlined.Schedule\nimport androidx.compose.material.icons.outlined.Sync\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.LocalMinimumInteractiveComponentSize\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProvideTextStyle\nimport androidx.compose.material3.SuggestionChip\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.draw.blur\nimport androidx.compose.ui.draw.clipToBounds\nimport androidx.compose.ui.draw.drawWithContent\nimport androidx.compose.ui.graphics.Brush\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.layout.ContentScale\nimport androidx.compose.ui.layout.Layout\nimport androidx.compose.ui.layout.onSizeChanged\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.LinkAnnotation\nimport androidx.compose.ui.text.SpanStyle\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.text.withLink\nimport androidx.compose.ui.unit.Constraints\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport coil3.compose.AsyncImage\nimport coil3.request.ImageRequest\nimport coil3.request.crossfade\nimport com.mikepenz.markdown.model.markdownAnnotator\nimport com.mikepenz.markdown.model.markdownAnnotatorConfig\nimport com.mikepenz.markdown.utils.getUnescapedTextInNode\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport org.intellij.markdown.MarkdownElementTypes\nimport org.intellij.markdown.MarkdownTokenTypes\nimport org.intellij.markdown.ast.findChildOfType\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.DISABLED_ALPHA\nimport tachiyomi.presentation.core.components.material.TextButton\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.clickableNoIndication\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.temporal.ChronoUnit\nimport kotlin.math.roundToInt\n\n@Composable\nfun MangaInfoBox(\n    isTabletUi: Boolean,\n    appBarPadding: Dp,\n    manga: Manga,\n    sourceName: String,\n    isStubSource: Boolean,\n    onCoverClick: () -> Unit,\n    doSearch: (query: String, global: Boolean) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Box(modifier = modifier) {\n        // Backdrop\n        val backdropGradientColors = listOf(\n            Color.Transparent,\n            MaterialTheme.colorScheme.background,\n        )\n        AsyncImage(\n            model = ImageRequest.Builder(LocalContext.current)\n                .data(manga)\n                .crossfade(true)\n                .build(),\n            contentDescription = null,\n            contentScale = ContentScale.Crop,\n            modifier = Modifier\n                .matchParentSize()\n                .drawWithContent {\n                    drawContent()\n                    drawRect(\n                        brush = Brush.verticalGradient(colors = backdropGradientColors),\n                    )\n                }\n                .blur(4.dp)\n                .alpha(0.2f),\n        )\n\n        // Manga & source info\n        CompositionLocalProvider(LocalContentColor provides MaterialTheme.colorScheme.onSurface) {\n            if (!isTabletUi) {\n                MangaAndSourceTitlesSmall(\n                    appBarPadding = appBarPadding,\n                    manga = manga,\n                    sourceName = sourceName,\n                    isStubSource = isStubSource,\n                    onCoverClick = onCoverClick,\n                    doSearch = doSearch,\n                )\n            } else {\n                MangaAndSourceTitlesLarge(\n                    appBarPadding = appBarPadding,\n                    manga = manga,\n                    sourceName = sourceName,\n                    isStubSource = isStubSource,\n                    onCoverClick = onCoverClick,\n                    doSearch = doSearch,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nfun MangaActionRow(\n    favorite: Boolean,\n    trackingCount: Int,\n    nextUpdate: Instant?,\n    isUserIntervalMode: Boolean,\n    onAddToLibraryClicked: () -> Unit,\n    onWebViewClicked: (() -> Unit)?,\n    onWebViewLongClicked: (() -> Unit)?,\n    onTrackingClicked: () -> Unit,\n    onEditIntervalClicked: (() -> Unit)?,\n    onEditCategory: (() -> Unit)?,\n    modifier: Modifier = Modifier,\n) {\n    val defaultActionButtonColor = MaterialTheme.colorScheme.onSurface.copy(alpha = DISABLED_ALPHA)\n\n    // TODO: show something better when using custom interval\n    val nextUpdateDays = remember(nextUpdate) {\n        return@remember if (nextUpdate != null) {\n            val now = Instant.now()\n            now.until(nextUpdate, ChronoUnit.DAYS).toInt().coerceAtLeast(0)\n        } else {\n            null\n        }\n    }\n\n    Row(modifier = modifier.padding(start = 16.dp, top = 8.dp, end = 16.dp)) {\n        MangaActionButton(\n            title = if (favorite) {\n                stringResource(MR.strings.in_library)\n            } else {\n                stringResource(MR.strings.add_to_library)\n            },\n            icon = if (favorite) Icons.Filled.Favorite else Icons.Outlined.FavoriteBorder,\n            color = if (favorite) MaterialTheme.colorScheme.primary else defaultActionButtonColor,\n            onClick = onAddToLibraryClicked,\n            onLongClick = onEditCategory,\n        )\n        MangaActionButton(\n            title = when (nextUpdateDays) {\n                null -> stringResource(MR.strings.not_applicable)\n                0 -> stringResource(MR.strings.manga_interval_expected_update_soon)\n                else -> pluralStringResource(\n                    MR.plurals.day,\n                    count = nextUpdateDays,\n                    nextUpdateDays,\n                )\n            },\n            icon = Icons.Default.HourglassEmpty,\n            color = if (isUserIntervalMode) MaterialTheme.colorScheme.primary else defaultActionButtonColor,\n            onClick = { onEditIntervalClicked?.invoke() },\n        )\n        MangaActionButton(\n            title = if (trackingCount == 0) {\n                stringResource(MR.strings.manga_tracking_tab)\n            } else {\n                pluralStringResource(MR.plurals.num_trackers, count = trackingCount, trackingCount)\n            },\n            icon = if (trackingCount == 0) Icons.Outlined.Sync else Icons.Outlined.Done,\n            color = if (trackingCount == 0) defaultActionButtonColor else MaterialTheme.colorScheme.primary,\n            onClick = onTrackingClicked,\n        )\n        if (onWebViewClicked != null) {\n            MangaActionButton(\n                title = stringResource(MR.strings.action_web_view),\n                icon = Icons.Outlined.Public,\n                color = defaultActionButtonColor,\n                onClick = onWebViewClicked,\n                onLongClick = onWebViewLongClicked,\n            )\n        }\n    }\n}\n\n@Composable\nfun ExpandableMangaDescription(\n    defaultExpandState: Boolean,\n    description: String?,\n    tagsProvider: () -> List<String>?,\n    notes: String,\n    onTagSearch: (String) -> Unit,\n    onCopyTagToClipboard: (tag: String) -> Unit,\n    onEditNotes: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Column(modifier = modifier) {\n        val (expanded, onExpanded) = rememberSaveable {\n            mutableStateOf(defaultExpandState)\n        }\n        val desc =\n            description.takeIf { !it.isNullOrBlank() } ?: stringResource(MR.strings.description_placeholder)\n\n        MangaSummary(\n            description = desc,\n            expanded = expanded,\n            notes = notes,\n            onEditNotesClicked = onEditNotes,\n            modifier = Modifier\n                .padding(top = 8.dp)\n                .padding(horizontal = 16.dp)\n                .clickableNoIndication { onExpanded(!expanded) },\n        )\n        val tags = tagsProvider()\n        if (!tags.isNullOrEmpty()) {\n            Box(\n                modifier = Modifier\n                    .padding(top = 8.dp)\n                    .padding(vertical = 12.dp)\n                    .animateContentSize(animationSpec = spring())\n                    .fillMaxWidth(),\n            ) {\n                var showMenu by remember { mutableStateOf(false) }\n                var tagSelected by remember { mutableStateOf(\"\") }\n                DropdownMenu(\n                    expanded = showMenu,\n                    onDismissRequest = { showMenu = false },\n                ) {\n                    DropdownMenuItem(\n                        text = { Text(text = stringResource(MR.strings.action_search)) },\n                        onClick = {\n                            onTagSearch(tagSelected)\n                            showMenu = false\n                        },\n                    )\n                    DropdownMenuItem(\n                        text = { Text(text = stringResource(MR.strings.action_copy_to_clipboard)) },\n                        onClick = {\n                            onCopyTagToClipboard(tagSelected)\n                            showMenu = false\n                        },\n                    )\n                }\n                if (expanded) {\n                    FlowRow(\n                        modifier = Modifier.padding(horizontal = 16.dp),\n                        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n                    ) {\n                        tags.forEach {\n                            TagsChip(\n                                modifier = DefaultTagChipModifier,\n                                text = it,\n                                onClick = {\n                                    tagSelected = it\n                                    showMenu = true\n                                },\n                            )\n                        }\n                    }\n                } else {\n                    LazyRow(\n                        contentPadding = PaddingValues(horizontal = MaterialTheme.padding.medium),\n                        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n                    ) {\n                        items(items = tags) {\n                            TagsChip(\n                                modifier = DefaultTagChipModifier,\n                                text = it,\n                                onClick = {\n                                    tagSelected = it\n                                    showMenu = true\n                                },\n                            )\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun MangaAndSourceTitlesLarge(\n    appBarPadding: Dp,\n    manga: Manga,\n    sourceName: String,\n    isStubSource: Boolean,\n    onCoverClick: () -> Unit,\n    doSearch: (query: String, global: Boolean) -> Unit,\n) {\n    Column(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(start = 16.dp, top = appBarPadding + 16.dp, end = 16.dp),\n        horizontalAlignment = Alignment.CenterHorizontally,\n    ) {\n        MangaCover.Book(\n            modifier = Modifier.fillMaxWidth(0.65f),\n            data = ImageRequest.Builder(LocalContext.current)\n                .data(manga)\n                .crossfade(true)\n                .build(),\n            contentDescription = stringResource(MR.strings.manga_cover),\n            onClick = onCoverClick,\n        )\n        Spacer(modifier = Modifier.height(16.dp))\n        MangaContentInfo(\n            title = manga.title,\n            author = manga.author,\n            artist = manga.artist,\n            status = manga.status,\n            sourceName = sourceName,\n            isStubSource = isStubSource,\n            doSearch = doSearch,\n            textAlign = TextAlign.Center,\n        )\n    }\n}\n\n@Composable\nprivate fun MangaAndSourceTitlesSmall(\n    appBarPadding: Dp,\n    manga: Manga,\n    sourceName: String,\n    isStubSource: Boolean,\n    onCoverClick: () -> Unit,\n    doSearch: (query: String, global: Boolean) -> Unit,\n) {\n    Row(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(start = 16.dp, top = appBarPadding + 16.dp, end = 16.dp),\n        horizontalArrangement = Arrangement.spacedBy(16.dp),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        MangaCover.Book(\n            modifier = Modifier\n                .sizeIn(maxWidth = 100.dp)\n                .align(Alignment.Top),\n            data = ImageRequest.Builder(LocalContext.current)\n                .data(manga)\n                .crossfade(true)\n                .build(),\n            contentDescription = stringResource(MR.strings.manga_cover),\n            onClick = onCoverClick,\n        )\n        Column(\n            verticalArrangement = Arrangement.spacedBy(2.dp),\n        ) {\n            MangaContentInfo(\n                title = manga.title,\n                author = manga.author,\n                artist = manga.artist,\n                status = manga.status,\n                sourceName = sourceName,\n                isStubSource = isStubSource,\n                doSearch = doSearch,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun ColumnScope.MangaContentInfo(\n    title: String,\n    author: String?,\n    artist: String?,\n    status: Long,\n    sourceName: String,\n    isStubSource: Boolean,\n    doSearch: (query: String, global: Boolean) -> Unit,\n    textAlign: TextAlign? = LocalTextStyle.current.textAlign,\n) {\n    val context = LocalContext.current\n    Text(\n        text = title.ifBlank { stringResource(MR.strings.unknown_title) },\n        style = MaterialTheme.typography.titleLarge,\n        modifier = Modifier.clickableNoIndication(\n            onLongClick = {\n                if (title.isNotBlank()) {\n                    context.copyToClipboard(\n                        title,\n                        title,\n                    )\n                }\n            },\n            onClick = { if (title.isNotBlank()) doSearch(title, true) },\n        ),\n        textAlign = textAlign,\n    )\n\n    Spacer(modifier = Modifier.height(2.dp))\n\n    Row(\n        modifier = Modifier.secondaryItemAlpha(),\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        Icon(\n            imageVector = Icons.Filled.PersonOutline,\n            contentDescription = null,\n            modifier = Modifier.size(16.dp),\n        )\n        Text(\n            text = author?.takeIf { it.isNotBlank() }\n                ?: stringResource(MR.strings.unknown_author),\n            style = MaterialTheme.typography.titleSmall,\n            modifier = Modifier\n                .clickableNoIndication(\n                    onLongClick = {\n                        if (!author.isNullOrBlank()) {\n                            context.copyToClipboard(\n                                author,\n                                author,\n                            )\n                        }\n                    },\n                    onClick = { if (!author.isNullOrBlank()) doSearch(author, true) },\n                ),\n            textAlign = textAlign,\n        )\n    }\n\n    if (!artist.isNullOrBlank() && author != artist) {\n        Row(\n            modifier = Modifier.secondaryItemAlpha(),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Icon(\n                imageVector = Icons.Filled.Brush,\n                contentDescription = null,\n                modifier = Modifier.size(16.dp),\n            )\n            Text(\n                text = artist,\n                style = MaterialTheme.typography.titleSmall,\n                modifier = Modifier\n                    .clickableNoIndication(\n                        onLongClick = { context.copyToClipboard(artist, artist) },\n                        onClick = { doSearch(artist, true) },\n                    ),\n                textAlign = textAlign,\n            )\n        }\n    }\n\n    Spacer(modifier = Modifier.height(2.dp))\n\n    Row(\n        modifier = Modifier.secondaryItemAlpha(),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        Icon(\n            imageVector = when (status) {\n                SManga.ONGOING.toLong() -> Icons.Outlined.Schedule\n                SManga.COMPLETED.toLong() -> Icons.Outlined.DoneAll\n                SManga.LICENSED.toLong() -> Icons.Outlined.AttachMoney\n                SManga.PUBLISHING_FINISHED.toLong() -> Icons.Outlined.Done\n                SManga.CANCELLED.toLong() -> Icons.Outlined.Close\n                SManga.ON_HIATUS.toLong() -> Icons.Outlined.Pause\n                else -> Icons.Outlined.Block\n            },\n            contentDescription = null,\n            modifier = Modifier\n                .padding(end = 4.dp)\n                .size(16.dp),\n        )\n        ProvideTextStyle(MaterialTheme.typography.bodyMedium) {\n            Text(\n                text = when (status) {\n                    SManga.ONGOING.toLong() -> stringResource(MR.strings.ongoing)\n                    SManga.COMPLETED.toLong() -> stringResource(MR.strings.completed)\n                    SManga.LICENSED.toLong() -> stringResource(MR.strings.licensed)\n                    SManga.PUBLISHING_FINISHED.toLong() -> stringResource(MR.strings.publishing_finished)\n                    SManga.CANCELLED.toLong() -> stringResource(MR.strings.cancelled)\n                    SManga.ON_HIATUS.toLong() -> stringResource(MR.strings.on_hiatus)\n                    else -> stringResource(MR.strings.unknown)\n                },\n                overflow = TextOverflow.Ellipsis,\n                maxLines = 1,\n            )\n            DotSeparatorText()\n            if (isStubSource) {\n                Icon(\n                    imageVector = Icons.Filled.Warning,\n                    contentDescription = null,\n                    modifier = Modifier\n                        .padding(end = 4.dp)\n                        .size(16.dp),\n                    tint = MaterialTheme.colorScheme.error,\n                )\n            }\n            Text(\n                text = sourceName,\n                modifier = Modifier.clickableNoIndication {\n                    doSearch(\n                        sourceName,\n                        false,\n                    )\n                },\n                overflow = TextOverflow.Ellipsis,\n                maxLines = 1,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun descriptionAnnotator(loadImages: Boolean, linkStyle: SpanStyle) = remember(loadImages, linkStyle) {\n    markdownAnnotator(\n        annotate = { content, child ->\n            if (!loadImages && child.type == MarkdownElementTypes.IMAGE) {\n                val inlineLink = child.findChildOfType(MarkdownElementTypes.INLINE_LINK)\n\n                val url = inlineLink?.findChildOfType(MarkdownElementTypes.LINK_DESTINATION)\n                    ?.getUnescapedTextInNode(content)\n                    ?: inlineLink?.findChildOfType(MarkdownElementTypes.AUTOLINK)\n                        ?.findChildOfType(MarkdownTokenTypes.AUTOLINK)\n                        ?.getUnescapedTextInNode(content)\n                    ?: return@markdownAnnotator false\n\n                val textNode = inlineLink?.findChildOfType(MarkdownElementTypes.LINK_TITLE)\n                    ?: inlineLink?.findChildOfType(MarkdownElementTypes.LINK_TEXT)\n                val altText = textNode?.findChildOfType(MarkdownTokenTypes.TEXT)\n                    ?.getUnescapedTextInNode(content).orEmpty()\n\n                withLink(LinkAnnotation.Url(url = url)) {\n                    pushStyle(linkStyle)\n                    appendInlineContent(MARKDOWN_INLINE_IMAGE_TAG)\n                    append(altText)\n                    pop()\n                }\n\n                return@markdownAnnotator true\n            }\n\n            if (child.type in DISALLOWED_MARKDOWN_TYPES) {\n                append(content.substring(child.startOffset, child.endOffset))\n                return@markdownAnnotator true\n            }\n\n            false\n        },\n        config = markdownAnnotatorConfig(\n            eolAsNewLine = true,\n        ),\n    )\n}\n\n@Composable\nprivate fun MangaSummary(\n    description: String,\n    notes: String,\n    expanded: Boolean,\n    onEditNotesClicked: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val preferences = remember { Injekt.get<UiPreferences>() }\n    val loadImages = remember { preferences.imagesInDescription.get() }\n    val animProgress by animateFloatAsState(\n        targetValue = if (expanded) 1f else 0f,\n        label = \"summary\",\n    )\n    var infoHeight by remember { mutableIntStateOf(0) }\n    Layout(\n        modifier = modifier.clipToBounds(),\n        contents = listOf(\n            {\n                Text(\n                    // Shows at least 3 lines if no notes\n                    // when there are notes show 6\n                    text = if (notes.isBlank()) \"\\n\\n\" else \"\\n\\n\\n\\n\\n\",\n                    style = MaterialTheme.typography.bodyMedium,\n                )\n            },\n            {\n                Column(\n                    modifier = Modifier.onSizeChanged { size ->\n                        infoHeight = size.height\n                    },\n                ) {\n                    MangaNotesSection(\n                        content = notes,\n                        expanded = expanded,\n                        onEditNotes = onEditNotesClicked,\n                    )\n                    SelectionContainer {\n                        MarkdownRender(\n                            content = description,\n                            modifier = Modifier.secondaryItemAlpha(),\n                            annotator = descriptionAnnotator(\n                                loadImages = loadImages,\n                                linkStyle = getMarkdownLinkStyle().toSpanStyle(),\n                            ),\n                            loadImages = loadImages,\n                        )\n                    }\n                }\n            },\n            {\n                val colors = listOf(Color.Transparent, MaterialTheme.colorScheme.background)\n                Box(\n                    modifier = Modifier.background(Brush.verticalGradient(colors = colors)),\n                    contentAlignment = Alignment.Center,\n                ) {\n                    val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_caret_down)\n                    Icon(\n                        painter = rememberAnimatedVectorPainter(image, !expanded),\n                        contentDescription = stringResource(\n                            if (expanded) MR.strings.manga_info_collapse else MR.strings.manga_info_expand,\n                        ),\n                        tint = MaterialTheme.colorScheme.onBackground,\n                        modifier = Modifier.background(Brush.radialGradient(colors = colors.asReversed())),\n                    )\n                }\n            },\n        ),\n    ) { (shrunk, actual, scrim), constraints ->\n        val shrunkHeight = shrunk.single()\n            .measure(constraints)\n            .height\n        val heightDelta = infoHeight - shrunkHeight\n        val scrimHeight = 24.dp.roundToPx()\n\n        val actualPlaceable = actual.single()\n            .measure(constraints)\n        val scrimPlaceable = scrim.single()\n            .measure(Constraints.fixed(width = constraints.maxWidth, height = scrimHeight))\n\n        val currentHeight = shrunkHeight + ((heightDelta + scrimHeight) * animProgress).roundToInt()\n        layout(constraints.maxWidth, currentHeight) {\n            actualPlaceable.place(0, 0)\n\n            val scrimY = currentHeight - scrimHeight\n            scrimPlaceable.place(0, scrimY)\n        }\n    }\n}\n\nprivate val DefaultTagChipModifier = Modifier.padding(vertical = 4.dp)\n\n@Composable\nprivate fun TagsChip(\n    text: String,\n    modifier: Modifier = Modifier,\n    onClick: () -> Unit,\n) {\n    CompositionLocalProvider(LocalMinimumInteractiveComponentSize provides 0.dp) {\n        SuggestionChip(\n            modifier = modifier,\n            onClick = onClick,\n            label = { Text(text = text, style = MaterialTheme.typography.bodySmall) },\n        )\n    }\n}\n\n@Composable\nprivate fun RowScope.MangaActionButton(\n    title: String,\n    icon: ImageVector,\n    color: Color,\n    onClick: () -> Unit,\n    onLongClick: (() -> Unit)? = null,\n) {\n    TextButton(\n        onClick = onClick,\n        modifier = Modifier.weight(1f),\n        onLongClick = onLongClick,\n    ) {\n        Column(horizontalAlignment = Alignment.CenterHorizontally) {\n            Icon(\n                imageVector = icon,\n                contentDescription = null,\n                tint = color,\n                modifier = Modifier.size(20.dp),\n            )\n            Spacer(Modifier.height(4.dp))\n            Text(\n                text = title,\n                color = color,\n                fontSize = 12.sp,\n                textAlign = TextAlign.Center,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaNotesDisplay.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.animation.animateContentSize\nimport androidx.compose.animation.core.Animatable\nimport androidx.compose.animation.core.tween\nimport androidx.compose.foundation.text.selection.SelectionContainer\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport com.mohamedrejeb.richeditor.model.rememberRichTextState\nimport com.mohamedrejeb.richeditor.ui.material3.RichText\n\nprivate val FADE_TIME = tween<Float>(500)\n\n@Composable\nfun MangaNotesDisplay(\n    content: String,\n    modifier: Modifier,\n) {\n    val alpha = remember { Animatable(1f) }\n    var contentUpdatedOnce by remember { mutableStateOf(false) }\n\n    val richTextState = rememberRichTextState()\n    val primaryColor = MaterialTheme.colorScheme.primary\n    LaunchedEffect(content) {\n        richTextState.setMarkdown(content)\n\n        if (!contentUpdatedOnce) {\n            contentUpdatedOnce = true\n            return@LaunchedEffect\n        }\n\n        alpha.snapTo(targetValue = 0f)\n        alpha.animateTo(targetValue = 1f, animationSpec = FADE_TIME)\n    }\n    LaunchedEffect(Unit) {\n        richTextState.config.unorderedListIndent = 4\n        richTextState.config.orderedListIndent = 20\n    }\n    LaunchedEffect(primaryColor) {\n        richTextState.config.linkColor = primaryColor\n    }\n\n    SelectionContainer {\n        RichText(\n            modifier = modifier\n                // Only animate size if the notes changes\n                .then(if (contentUpdatedOnce) Modifier.animateContentSize() else Modifier)\n                .alpha(alpha.value),\n            style = MaterialTheme.typography.bodyMedium,\n            state = richTextState,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaNotesSection.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.EditNote\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Button\nimport tachiyomi.presentation.core.components.material.ButtonDefaults\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MangaNotesSection(\n    content: String,\n    expanded: Boolean,\n    onEditNotes: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    if (content.isBlank()) return\n    Column(\n        modifier = modifier.fillMaxWidth(),\n        horizontalAlignment = Alignment.CenterHorizontally,\n    ) {\n        MangaNotesDisplay(\n            content = content,\n            modifier = modifier.fillMaxWidth(),\n        )\n        if (expanded) {\n            Button(\n                onClick = onEditNotes,\n                colors = ButtonDefaults.buttonColors(\n                    containerColor = Color.Transparent,\n                    contentColor = MaterialTheme.colorScheme.primary,\n                ),\n                shape = RoundedCornerShape(8.dp),\n                modifier = Modifier\n                    .padding(horizontal = 16.dp, vertical = 4.dp),\n            ) {\n                Row(\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    Icon(\n                        imageVector = Icons.Filled.EditNote,\n                        contentDescription = null,\n                        modifier = Modifier\n                            .size(16.dp),\n                    )\n                    Text(\n                        stringResource(MR.strings.action_edit_notes),\n                    )\n                }\n            }\n        }\n\n        HorizontalDivider(\n            modifier = Modifier\n                .padding(\n                    top = if (expanded) 0.dp else 12.dp,\n                    bottom = if (expanded) 16.dp else 12.dp,\n                ),\n        )\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun MangaNotesSectionPreview() {\n    MangaNotesSection(\n        onEditNotes = {},\n        expanded = true,\n        content = \"# Hello world\\ntest1234 hi there!\",\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaNotesTextArea.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyRow\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.FormatListBulleted\nimport androidx.compose.material.icons.outlined.FormatBold\nimport androidx.compose.material.icons.outlined.FormatItalic\nimport androidx.compose.material.icons.outlined.FormatListNumbered\nimport androidx.compose.material.icons.outlined.FormatUnderlined\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.VerticalDivider\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.DisposableEffect\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.snapshotFlow\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.semantics.Role\nimport androidx.compose.ui.text.SpanStyle\nimport androidx.compose.ui.text.font.FontStyle\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextDecoration\nimport androidx.compose.ui.unit.dp\nimport com.mohamedrejeb.richeditor.model.rememberRichTextState\nimport com.mohamedrejeb.richeditor.ui.material3.RichTextEditor\nimport com.mohamedrejeb.richeditor.ui.material3.RichTextEditorDefaults.richTextEditorColors\nimport eu.kanade.tachiyomi.ui.manga.notes.MangaNotesScreen\nimport kotlinx.coroutines.flow.debounce\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onEach\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport kotlin.time.Duration.Companion.seconds\n\nprivate const val MAX_LENGTH = 250\nprivate const val MAX_LENGTH_WARN = MAX_LENGTH * 0.9\n\n@Composable\nfun MangaNotesTextArea(\n    state: MangaNotesScreen.State,\n    onUpdate: (String) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val scope = rememberCoroutineScope()\n    val richTextState = rememberRichTextState()\n    val primaryColor = MaterialTheme.colorScheme.primary\n\n    DisposableEffect(scope, richTextState) {\n        snapshotFlow { richTextState.annotatedString }\n            .debounce(0.25.seconds)\n            .distinctUntilChanged()\n            .map { richTextState.toMarkdown() }\n            .onEach { onUpdate(it) }\n            .launchIn(scope)\n\n        onDispose {\n            onUpdate(richTextState.toMarkdown())\n        }\n    }\n    LaunchedEffect(Unit) {\n        richTextState.setMarkdown(state.notes)\n        richTextState.config.unorderedListIndent = 4\n        richTextState.config.orderedListIndent = 20\n    }\n    LaunchedEffect(primaryColor) {\n        richTextState.config.linkColor = primaryColor\n    }\n    val focusRequester = remember { FocusRequester() }\n    LaunchedEffect(focusRequester) {\n        focusRequester.requestFocus()\n    }\n    val textLength = remember(richTextState.annotatedString) { richTextState.toText().length }\n\n    Column(\n        modifier = modifier\n            .padding(horizontal = MaterialTheme.padding.small)\n            .fillMaxSize(),\n    ) {\n        RichTextEditor(\n            state = richTextState,\n            textStyle = MaterialTheme.typography.bodyLarge,\n            maxLength = MAX_LENGTH,\n            placeholder = {\n                Text(text = stringResource(MR.strings.notes_placeholder))\n            },\n            colors = richTextEditorColors(\n                containerColor = Color.Transparent,\n                focusedIndicatorColor = Color.Transparent,\n                unfocusedIndicatorColor = Color.Transparent,\n            ),\n            contentPadding = PaddingValues(\n                horizontal = MaterialTheme.padding.medium,\n            ),\n            modifier = Modifier\n                .weight(1f)\n                .fillMaxWidth()\n                .focusRequester(focusRequester),\n        )\n        Row(\n            verticalAlignment = Alignment.CenterVertically,\n            horizontalArrangement = Arrangement.SpaceBetween,\n            modifier = Modifier\n                .padding(vertical = MaterialTheme.padding.small)\n                .fillMaxWidth(),\n        ) {\n            LazyRow(\n                verticalAlignment = Alignment.CenterVertically,\n                horizontalArrangement = Arrangement.spacedBy(2.dp),\n            ) {\n                item {\n                    MangaNotesTextAreaButton(\n                        onClick = { richTextState.toggleSpanStyle(SpanStyle(fontWeight = FontWeight.Bold)) },\n                        isSelected = richTextState.currentSpanStyle.fontWeight == FontWeight.Bold,\n                        icon = Icons.Outlined.FormatBold,\n                    )\n                }\n                item {\n                    MangaNotesTextAreaButton(\n                        onClick = { richTextState.toggleSpanStyle(SpanStyle(fontStyle = FontStyle.Italic)) },\n                        isSelected = richTextState.currentSpanStyle.fontStyle == FontStyle.Italic,\n                        icon = Icons.Outlined.FormatItalic,\n                    )\n                }\n                item {\n                    MangaNotesTextAreaButton(\n                        onClick = {\n                            richTextState.toggleSpanStyle(SpanStyle(textDecoration = TextDecoration.Underline))\n                        },\n                        isSelected = richTextState.currentSpanStyle.textDecoration\n                            ?.contains(TextDecoration.Underline)\n                            ?: false,\n                        icon = Icons.Outlined.FormatUnderlined,\n                    )\n                }\n                item {\n                    VerticalDivider(\n                        modifier = Modifier\n                            .padding(horizontal = MaterialTheme.padding.extraSmall)\n                            .height(MaterialTheme.padding.large),\n                    )\n                }\n                item {\n                    MangaNotesTextAreaButton(\n                        onClick = { richTextState.toggleUnorderedList() },\n                        isSelected = richTextState.isUnorderedList,\n                        icon = Icons.AutoMirrored.Outlined.FormatListBulleted,\n                    )\n                }\n                item {\n                    MangaNotesTextAreaButton(\n                        onClick = { richTextState.toggleOrderedList() },\n                        isSelected = richTextState.isOrderedList,\n                        icon = Icons.Outlined.FormatListNumbered,\n                    )\n                }\n            }\n\n            Box(\n                contentAlignment = Alignment.Center,\n            ) {\n                Text(\n                    text = (MAX_LENGTH - textLength).toString(),\n                    color = if (textLength > MAX_LENGTH_WARN) {\n                        MaterialTheme.colorScheme.error\n                    } else {\n                        Color.Unspecified\n                    },\n                    modifier = Modifier.padding(MaterialTheme.padding.extraSmall),\n                )\n            }\n        }\n    }\n}\n\n@Composable\nfun MangaNotesTextAreaButton(\n    onClick: () -> Unit,\n    icon: ImageVector,\n    isSelected: Boolean,\n    modifier: Modifier = Modifier,\n) {\n    Box(\n        modifier = modifier\n            .clip(MaterialTheme.shapes.small)\n            .clickable(\n                onClick = onClick,\n                enabled = true,\n                role = Role.Button,\n            ),\n        contentAlignment = Alignment.Center,\n    ) {\n        Icon(\n            imageVector = icon,\n            contentDescription = icon.name,\n            tint = if (isSelected) MaterialTheme.colorScheme.onPrimary else MaterialTheme.colorScheme.primary,\n            modifier = Modifier\n                .background(color = if (isSelected) MaterialTheme.colorScheme.onBackground else Color.Transparent)\n                .padding(MaterialTheme.padding.extraSmall),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Download\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material.icons.outlined.FlipToBack\nimport androidx.compose.material.icons.outlined.SelectAll\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.surfaceColorAtElevation\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.AppBarTitle\nimport eu.kanade.presentation.components.DownloadDropdownMenu\nimport eu.kanade.presentation.manga.DownloadAction\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.theme.active\n\n@Composable\nfun MangaToolbar(\n    title: String,\n    hasFilters: Boolean,\n    navigateUp: () -> Unit,\n    onClickFilter: () -> Unit,\n    onClickShare: (() -> Unit)?,\n    onClickDownload: ((DownloadAction) -> Unit)?,\n    onClickEditCategory: (() -> Unit)?,\n    onClickRefresh: () -> Unit,\n    onClickMigrate: (() -> Unit)?,\n    onClickEditNotes: () -> Unit,\n\n    // For action mode\n    actionModeCounter: Int,\n    onCancelActionMode: () -> Unit,\n    onSelectAll: () -> Unit,\n    onInvertSelection: () -> Unit,\n\n    titleAlphaProvider: () -> Float,\n    backgroundAlphaProvider: () -> Float,\n    modifier: Modifier = Modifier,\n) {\n    val isActionMode = actionModeCounter > 0\n    AppBar(\n        titleContent = {\n            if (isActionMode) {\n                AppBarTitle(actionModeCounter.toString())\n            } else {\n                AppBarTitle(title, modifier = Modifier.alpha(titleAlphaProvider()))\n            }\n        },\n        modifier = modifier,\n        backgroundColor = MaterialTheme.colorScheme\n            .surfaceColorAtElevation(3.dp)\n            .copy(alpha = if (isActionMode) 1f else backgroundAlphaProvider()),\n        navigateUp = navigateUp,\n        actions = {\n            var downloadExpanded by remember { mutableStateOf(false) }\n            if (onClickDownload != null) {\n                val onDismissRequest = { downloadExpanded = false }\n                DownloadDropdownMenu(\n                    expanded = downloadExpanded,\n                    onDismissRequest = onDismissRequest,\n                    onDownloadClicked = onClickDownload,\n                )\n            }\n\n            val filterTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current\n            AppBarActions(\n                actions = persistentListOf<AppBar.AppBarAction>().builder().apply {\n                    if (isActionMode) {\n                        add(\n                            AppBar.Action(\n                                title = stringResource(MR.strings.action_select_all),\n                                icon = Icons.Outlined.SelectAll,\n                                onClick = onSelectAll,\n                            ),\n                        )\n                        add(\n                            AppBar.Action(\n                                title = stringResource(MR.strings.action_select_inverse),\n                                icon = Icons.Outlined.FlipToBack,\n                                onClick = onInvertSelection,\n                            ),\n                        )\n                        return@apply\n                    }\n                    if (onClickDownload != null) {\n                        add(\n                            AppBar.Action(\n                                title = stringResource(MR.strings.manga_download),\n                                icon = Icons.Outlined.Download,\n                                onClick = { downloadExpanded = !downloadExpanded },\n                            ),\n                        )\n                    }\n                    add(\n                        AppBar.Action(\n                            title = stringResource(MR.strings.action_filter),\n                            icon = Icons.Outlined.FilterList,\n                            iconTint = filterTint,\n                            onClick = onClickFilter,\n                        ),\n                    )\n                    add(\n                        AppBar.OverflowAction(\n                            title = stringResource(MR.strings.action_webview_refresh),\n                            onClick = onClickRefresh,\n                        ),\n                    )\n                    if (onClickEditCategory != null) {\n                        add(\n                            AppBar.OverflowAction(\n                                title = stringResource(MR.strings.action_edit_categories),\n                                onClick = onClickEditCategory,\n                            ),\n                        )\n                    }\n                    if (onClickMigrate != null) {\n                        add(\n                            AppBar.OverflowAction(\n                                title = stringResource(MR.strings.action_migrate),\n                                onClick = onClickMigrate,\n                            ),\n                        )\n                    }\n                    if (onClickShare != null) {\n                        add(\n                            AppBar.OverflowAction(\n                                title = stringResource(MR.strings.action_share),\n                                onClick = onClickShare,\n                            ),\n                        )\n                    }\n                    add(\n                        AppBar.OverflowAction(\n                            title = stringResource(MR.strings.action_notes),\n                            onClick = onClickEditNotes,\n                        ),\n                    )\n                }\n                    .build(),\n            )\n        },\n        isActionMode = isActionMode,\n        onCancelActionMode = onCancelActionMode,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MarkdownRender.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.text.InlineTextContent\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Image\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.layout.FirstBaseline\nimport androidx.compose.ui.text.Placeholder\nimport androidx.compose.ui.text.PlaceholderVerticalAlign\nimport androidx.compose.ui.text.SpanStyle\nimport androidx.compose.ui.text.TextLinkStyles\nimport androidx.compose.ui.text.font.FontFamily\nimport androidx.compose.ui.text.font.FontStyle\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport com.mikepenz.markdown.coil3.Coil3ImageTransformerImpl\nimport com.mikepenz.markdown.compose.LocalBulletListHandler\nimport com.mikepenz.markdown.compose.Markdown\nimport com.mikepenz.markdown.compose.components.markdownComponents\nimport com.mikepenz.markdown.compose.elements.MarkdownBulletList\nimport com.mikepenz.markdown.compose.elements.MarkdownDivider\nimport com.mikepenz.markdown.compose.elements.MarkdownOrderedList\nimport com.mikepenz.markdown.compose.elements.MarkdownTable\nimport com.mikepenz.markdown.compose.elements.MarkdownTableHeader\nimport com.mikepenz.markdown.compose.elements.MarkdownTableRow\nimport com.mikepenz.markdown.compose.elements.MarkdownText\nimport com.mikepenz.markdown.compose.elements.listDepth\nimport com.mikepenz.markdown.model.DefaultMarkdownColors\nimport com.mikepenz.markdown.model.DefaultMarkdownInlineContent\nimport com.mikepenz.markdown.model.DefaultMarkdownTypography\nimport com.mikepenz.markdown.model.MarkdownAnnotator\nimport com.mikepenz.markdown.model.MarkdownColors\nimport com.mikepenz.markdown.model.MarkdownPadding\nimport com.mikepenz.markdown.model.MarkdownTypography\nimport com.mikepenz.markdown.model.NoOpImageTransformerImpl\nimport com.mikepenz.markdown.model.markdownAnnotator\nimport com.mikepenz.markdown.model.rememberMarkdownState\nimport org.intellij.markdown.MarkdownTokenTypes.Companion.HTML_TAG\nimport org.intellij.markdown.flavours.MarkdownFlavourDescriptor\nimport org.intellij.markdown.flavours.commonmark.CommonMarkFlavourDescriptor\nimport org.intellij.markdown.flavours.commonmark.CommonMarkMarkerProcessor\nimport org.intellij.markdown.flavours.gfm.table.GitHubTableMarkerProvider\nimport org.intellij.markdown.parser.MarkerProcessor\nimport org.intellij.markdown.parser.MarkerProcessorFactory\nimport org.intellij.markdown.parser.ProductionHolder\nimport org.intellij.markdown.parser.constraints.CommonMarkdownConstraints\nimport org.intellij.markdown.parser.constraints.MarkdownConstraints\nimport org.intellij.markdown.parser.markerblocks.MarkerBlockProvider\nimport org.intellij.markdown.parser.markerblocks.providers.AtxHeaderProvider\nimport org.intellij.markdown.parser.markerblocks.providers.BlockQuoteProvider\nimport org.intellij.markdown.parser.markerblocks.providers.CodeBlockProvider\nimport org.intellij.markdown.parser.markerblocks.providers.CodeFenceProvider\nimport org.intellij.markdown.parser.markerblocks.providers.HorizontalRuleProvider\nimport org.intellij.markdown.parser.markerblocks.providers.ListMarkerProvider\nimport org.intellij.markdown.parser.markerblocks.providers.SetextHeaderProvider\nimport tachiyomi.presentation.core.components.material.padding\n\nconst val MARKDOWN_INLINE_IMAGE_TAG = \"MARKDOWN_INLINE_IMAGE\"\n\n@Composable\nfun MarkdownRender(\n    content: String,\n    modifier: Modifier = Modifier,\n    flavour: MarkdownFlavourDescriptor = SimpleMarkdownFlavourDescriptor,\n    annotator: MarkdownAnnotator = remember { markdownAnnotator() },\n    loadImages: Boolean = true,\n) {\n    Markdown(\n        markdownState = rememberMarkdownState(\n            content = content,\n            flavour = flavour,\n            immediate = true,\n        ),\n        annotator = annotator,\n        colors = getMarkdownColors(),\n        typography = getMarkdownTypography(),\n        padding = markdownPadding,\n        components = markdownComponents,\n        imageTransformer = remember(loadImages) {\n            if (loadImages) Coil3ImageTransformerImpl else NoOpImageTransformerImpl()\n        },\n        inlineContent = getMarkdownInlineContent(),\n        modifier = modifier,\n    )\n}\n\n@Composable\n@ReadOnlyComposable\nprivate fun getMarkdownColors(): MarkdownColors {\n    val codeBackground = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.1f)\n    return DefaultMarkdownColors(\n        text = MaterialTheme.colorScheme.onSurface,\n        codeBackground = codeBackground,\n        inlineCodeBackground = codeBackground,\n        dividerColor = MaterialTheme.colorScheme.outlineVariant,\n        tableBackground = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.05f),\n    )\n}\n\n@Composable\n@ReadOnlyComposable\nfun getMarkdownLinkStyle() = MaterialTheme.typography.bodyMedium.copy(\n    color = MaterialTheme.colorScheme.primary,\n    fontWeight = FontWeight.Bold,\n)\n\n@Composable\n@ReadOnlyComposable\nprivate fun getMarkdownTypography(): MarkdownTypography {\n    val link = getMarkdownLinkStyle()\n    return DefaultMarkdownTypography(\n        h1 = MaterialTheme.typography.headlineMedium,\n        h2 = MaterialTheme.typography.headlineSmall,\n        h3 = MaterialTheme.typography.titleLarge,\n        h4 = MaterialTheme.typography.titleMedium,\n        h5 = MaterialTheme.typography.titleSmall,\n        h6 = MaterialTheme.typography.bodyLarge,\n        text = MaterialTheme.typography.bodyMedium,\n        code = MaterialTheme.typography.bodyMedium.copy(fontFamily = FontFamily.Monospace),\n        inlineCode = MaterialTheme.typography.bodyMedium.copy(fontFamily = FontFamily.Monospace),\n        quote = MaterialTheme.typography.bodyMedium.plus(SpanStyle(fontStyle = FontStyle.Italic)),\n        paragraph = MaterialTheme.typography.bodyMedium,\n        ordered = MaterialTheme.typography.bodyMedium,\n        bullet = MaterialTheme.typography.bodyMedium,\n        list = MaterialTheme.typography.bodyMedium,\n        textLink = TextLinkStyles(style = link.toSpanStyle()),\n        table = MaterialTheme.typography.bodyMedium,\n    )\n}\n\nprivate val markdownPadding = object : MarkdownPadding {\n    override val block: Dp = 2.dp\n    override val blockQuote: PaddingValues = PaddingValues(horizontal = 16.dp, vertical = 0.dp)\n    override val blockQuoteBar: PaddingValues.Absolute = PaddingValues.Absolute(\n        left = 4.dp,\n        top = 2.dp,\n        right = 4.dp,\n        bottom = 2.dp,\n    )\n    override val blockQuoteText: PaddingValues = PaddingValues(vertical = 4.dp)\n    override val codeBlock: PaddingValues = PaddingValues(8.dp)\n    override val list: Dp = 0.dp\n    override val listIndent: Dp = 8.dp\n    override val listItemBottom: Dp = 0.dp\n    override val listItemTop: Dp = 0.dp\n}\n\nprivate val markdownComponents = markdownComponents(\n    horizontalRule = {\n        MarkdownDivider(\n            modifier = Modifier\n                .padding(vertical = MaterialTheme.padding.extraSmall)\n                .fillMaxWidth(),\n        )\n    },\n    orderedList = { ol ->\n        Column(modifier = Modifier.padding(start = MaterialTheme.padding.small)) {\n            MarkdownOrderedList(\n                content = ol.content,\n                node = ol.node,\n                style = ol.typography.ordered,\n                depth = ol.listDepth,\n                markerModifier = { Modifier.alignBy(FirstBaseline) },\n                listModifier = { Modifier.alignBy(FirstBaseline) },\n            )\n        }\n    },\n    unorderedList = { ul ->\n        val markers = listOf(\"•\", \"◦\", \"▸\", \"▹\")\n\n        CompositionLocalProvider(\n            LocalBulletListHandler provides { _, _, _, _, _ -> \"${markers[ul.listDepth % markers.size]} \" },\n        ) {\n            Column(modifier = Modifier.padding(start = MaterialTheme.padding.small)) {\n                MarkdownBulletList(\n                    content = ul.content,\n                    node = ul.node,\n                    style = ul.typography.bullet,\n                    markerModifier = { Modifier.alignBy(FirstBaseline) },\n                    listModifier = { Modifier.alignBy(FirstBaseline) },\n                )\n            }\n        }\n    },\n    table = { t ->\n        MarkdownTable(\n            content = t.content,\n            node = t.node,\n            style = t.typography.text,\n            headerBlock = { content, header, tableWidth, style ->\n                MarkdownTableHeader(\n                    content = content,\n                    header = header,\n                    tableWidth = tableWidth,\n                    style = style,\n                    maxLines = Int.MAX_VALUE,\n                )\n            },\n            rowBlock = { content, header, tableWidth, style ->\n                MarkdownTableRow(\n                    content = content,\n                    header = header,\n                    tableWidth = tableWidth,\n                    style = style,\n                    maxLines = Int.MAX_VALUE,\n                )\n            },\n        )\n    },\n    custom = { type, model ->\n        if (type in DISALLOWED_MARKDOWN_TYPES) {\n            MarkdownText(\n                content = model.content.substring(model.node.startOffset, model.node.endOffset),\n                style = model.typography.text,\n            )\n        }\n    },\n)\n\n@Composable\n@ReadOnlyComposable\nprivate fun getMarkdownInlineContent() = DefaultMarkdownInlineContent(\n    inlineContent = mapOf(\n        MARKDOWN_INLINE_IMAGE_TAG to InlineTextContent(\n            placeholder = Placeholder(\n                width = MaterialTheme.typography.bodyMedium.fontSize * 1.25,\n                height = MaterialTheme.typography.bodyMedium.fontSize * 1.25,\n                placeholderVerticalAlign = PlaceholderVerticalAlign.TextCenter,\n            ),\n            children = {\n                Icon(\n                    imageVector = Icons.Outlined.Image,\n                    contentDescription = null,\n                    tint = MaterialTheme.colorScheme.primary,\n                )\n            },\n        ),\n    ),\n)\n\nprivate object SimpleMarkdownFlavourDescriptor : CommonMarkFlavourDescriptor() {\n    override val markerProcessorFactory: MarkerProcessorFactory = SimpleMarkdownProcessFactory\n}\n\nprivate object SimpleMarkdownProcessFactory : MarkerProcessorFactory {\n    override fun createMarkerProcessor(productionHolder: ProductionHolder): MarkerProcessor<*> {\n        return SimpleMarkdownMarkerProcessor(productionHolder, CommonMarkdownConstraints.BASE)\n    }\n}\n\n/**\n * Like `CommonMarkFlavour`, but with html blocks and reference links removed and\n * table support added\n */\nprivate class SimpleMarkdownMarkerProcessor(\n    productionHolder: ProductionHolder,\n    constraints: MarkdownConstraints,\n) : CommonMarkMarkerProcessor(productionHolder, constraints) {\n    private val markerBlockProviders = listOf(\n        CodeBlockProvider(),\n        HorizontalRuleProvider(),\n        CodeFenceProvider(),\n        SetextHeaderProvider(),\n        BlockQuoteProvider(),\n        ListMarkerProvider(),\n        AtxHeaderProvider(),\n        GitHubTableMarkerProvider(),\n    )\n\n    override fun getMarkerBlockProviders(): List<MarkerBlockProvider<StateInfo>> {\n        return markerBlockProviders\n    }\n}\n\nval DISALLOWED_MARKDOWN_TYPES = arrayOf(HTML_TAG)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/MissingChapterCountListItem.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun MissingChapterCountListItem(\n    count: Int,\n    modifier: Modifier = Modifier,\n) {\n    Row(\n        modifier = modifier\n            .padding(\n                horizontal = MaterialTheme.padding.medium,\n                vertical = MaterialTheme.padding.small,\n            )\n            .secondaryItemAlpha(),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.medium),\n    ) {\n        HorizontalDivider(modifier = Modifier.weight(1f))\n        Text(\n            text = pluralStringResource(MR.plurals.missing_chapters, count = count, count),\n            style = MaterialTheme.typography.labelMedium,\n        )\n        HorizontalDivider(modifier = Modifier.weight(1f))\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun Preview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            MissingChapterCountListItem(count = 42)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/manga/components/ScanlatorFilterDialog.kt",
    "content": "package eu.kanade.presentation.manga.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.FlowRow\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.rounded.CheckBoxOutlineBlank\nimport androidx.compose.material.icons.rounded.DisabledByDefault\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.minimumInteractiveComponentSize\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.toMutableStateList\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.window.DialogProperties\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.TextButton\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ScanlatorFilterDialog(\n    availableScanlators: Set<String>,\n    excludedScanlators: Set<String>,\n    onDismissRequest: () -> Unit,\n    onConfirm: (Set<String>) -> Unit,\n) {\n    val sortedAvailableScanlators = remember(availableScanlators) {\n        availableScanlators.sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it })\n    }\n    val mutableExcludedScanlators = remember(excludedScanlators) { excludedScanlators.toMutableStateList() }\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = { Text(text = stringResource(MR.strings.exclude_scanlators)) },\n        text = textFunc@{\n            if (sortedAvailableScanlators.isEmpty()) {\n                Text(text = stringResource(MR.strings.no_scanlators_found))\n                return@textFunc\n            }\n            Box {\n                val state = rememberLazyListState()\n                LazyColumn(state = state) {\n                    sortedAvailableScanlators.forEach { scanlator ->\n                        item {\n                            val isExcluded = mutableExcludedScanlators.contains(scanlator)\n                            Row(\n                                verticalAlignment = Alignment.CenterVertically,\n                                modifier = Modifier\n                                    .clickable {\n                                        if (isExcluded) {\n                                            mutableExcludedScanlators.remove(scanlator)\n                                        } else {\n                                            mutableExcludedScanlators.add(scanlator)\n                                        }\n                                    }\n                                    .minimumInteractiveComponentSize()\n                                    .clip(MaterialTheme.shapes.small)\n                                    .fillMaxWidth()\n                                    .padding(horizontal = MaterialTheme.padding.small),\n                            ) {\n                                Icon(\n                                    imageVector = if (isExcluded) {\n                                        Icons.Rounded.DisabledByDefault\n                                    } else {\n                                        Icons.Rounded.CheckBoxOutlineBlank\n                                    },\n                                    tint = if (isExcluded) {\n                                        MaterialTheme.colorScheme.primary\n                                    } else {\n                                        LocalContentColor.current\n                                    },\n                                    contentDescription = null,\n                                )\n                                Text(\n                                    text = scanlator,\n                                    style = MaterialTheme.typography.bodyMedium,\n                                    modifier = Modifier.padding(start = 24.dp),\n                                )\n                            }\n                        }\n                    }\n                }\n                if (state.canScrollBackward) HorizontalDivider(modifier = Modifier.align(Alignment.TopCenter))\n                if (state.canScrollForward) HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter))\n            }\n        },\n        properties = DialogProperties(\n            usePlatformDefaultWidth = true,\n        ),\n        confirmButton = {\n            if (sortedAvailableScanlators.isEmpty()) {\n                TextButton(onClick = onDismissRequest) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n            } else {\n                FlowRow {\n                    if (mutableExcludedScanlators.isEmpty()) {\n                        TextButton(onClick = { mutableExcludedScanlators.addAll(availableScanlators) }) {\n                            Text(text = stringResource(MR.strings.action_select_all))\n                        }\n                    } else {\n                        TextButton(onClick = mutableExcludedScanlators::clear) {\n                            Text(text = stringResource(MR.strings.action_reset))\n                        }\n                    }\n                    Spacer(modifier = Modifier.weight(1f))\n                    TextButton(onClick = onDismissRequest) {\n                        Text(text = stringResource(MR.strings.action_cancel))\n                    }\n                    TextButton(\n                        onClick = {\n                            onConfirm(mutableExcludedScanlators.toSet())\n                            onDismissRequest()\n                        },\n                    ) {\n                        Text(text = stringResource(MR.strings.action_ok))\n                    }\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/LogoHeader.kt",
    "content": "package eu.kanade.presentation.more\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.res.painterResource\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.tachiyomi.R\n\n@Composable\nfun LogoHeader() {\n    Column(\n        modifier = Modifier.fillMaxWidth(),\n        horizontalAlignment = Alignment.CenterHorizontally,\n    ) {\n        Icon(\n            painter = painterResource(R.drawable.ic_mihon),\n            contentDescription = null,\n            tint = MaterialTheme.colorScheme.onSurface,\n            modifier = Modifier\n                .padding(vertical = 56.dp)\n                .size(64.dp),\n        )\n\n        HorizontalDivider()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt",
    "content": "package eu.kanade.presentation.more\n\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material.icons.automirrored.outlined.Label\nimport androidx.compose.material.icons.outlined.AttachMoney\nimport androidx.compose.material.icons.outlined.CloudOff\nimport androidx.compose.material.icons.outlined.GetApp\nimport androidx.compose.material.icons.outlined.Info\nimport androidx.compose.material.icons.outlined.QueryStats\nimport androidx.compose.material.icons.outlined.Settings\nimport androidx.compose.material.icons.outlined.Storage\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.res.vectorResource\nimport eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.TextPreferenceWidget\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.more.DownloadQueueState\nimport tachiyomi.core.common.Constants\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MoreScreen(\n    downloadQueueStateProvider: () -> DownloadQueueState,\n    downloadedOnly: Boolean,\n    onDownloadedOnlyChange: (Boolean) -> Unit,\n    incognitoMode: Boolean,\n    onIncognitoModeChange: (Boolean) -> Unit,\n    onClickDownloadQueue: () -> Unit,\n    onClickCategories: () -> Unit,\n    onClickStats: () -> Unit,\n    onClickDataAndStorage: () -> Unit,\n    onClickSettings: () -> Unit,\n    onClickAbout: () -> Unit,\n) {\n    val uriHandler = LocalUriHandler.current\n\n    Scaffold { contentPadding ->\n        ScrollbarLazyColumn(\n            modifier = Modifier.padding(contentPadding),\n        ) {\n            item {\n                LogoHeader()\n            }\n            item {\n                SwitchPreferenceWidget(\n                    title = stringResource(MR.strings.label_downloaded_only),\n                    subtitle = stringResource(MR.strings.downloaded_only_summary),\n                    icon = Icons.Outlined.CloudOff,\n                    checked = downloadedOnly,\n                    onCheckedChanged = onDownloadedOnlyChange,\n                )\n            }\n            item {\n                SwitchPreferenceWidget(\n                    title = stringResource(MR.strings.pref_incognito_mode),\n                    subtitle = stringResource(MR.strings.pref_incognito_mode_summary),\n                    icon = ImageVector.vectorResource(R.drawable.ic_glasses_24dp),\n                    checked = incognitoMode,\n                    onCheckedChanged = onIncognitoModeChange,\n                )\n            }\n\n            item { HorizontalDivider() }\n\n            item {\n                val downloadQueueState = downloadQueueStateProvider()\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.label_download_queue),\n                    subtitle = when (downloadQueueState) {\n                        DownloadQueueState.Stopped -> null\n                        is DownloadQueueState.Paused -> {\n                            val pending = downloadQueueState.pending\n                            if (pending == 0) {\n                                stringResource(MR.strings.paused)\n                            } else {\n                                \"${stringResource(MR.strings.paused)} • ${\n                                    pluralStringResource(\n                                        MR.plurals.download_queue_summary,\n                                        count = pending,\n                                        pending,\n                                    )\n                                }\"\n                            }\n                        }\n                        is DownloadQueueState.Downloading -> {\n                            val pending = downloadQueueState.pending\n                            pluralStringResource(MR.plurals.download_queue_summary, count = pending, pending)\n                        }\n                    },\n                    icon = Icons.Outlined.GetApp,\n                    onPreferenceClick = onClickDownloadQueue,\n                )\n            }\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.categories),\n                    icon = Icons.AutoMirrored.Outlined.Label,\n                    onPreferenceClick = onClickCategories,\n                )\n            }\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.label_stats),\n                    icon = Icons.Outlined.QueryStats,\n                    onPreferenceClick = onClickStats,\n                )\n            }\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.label_data_storage),\n                    icon = Icons.Outlined.Storage,\n                    onPreferenceClick = onClickDataAndStorage,\n                )\n            }\n\n            item { HorizontalDivider() }\n\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.label_settings),\n                    icon = Icons.Outlined.Settings,\n                    onPreferenceClick = onClickSettings,\n                )\n            }\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.pref_category_about),\n                    icon = Icons.Outlined.Info,\n                    onPreferenceClick = onClickAbout,\n                )\n            }\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.label_help),\n                    icon = Icons.AutoMirrored.Outlined.HelpOutline,\n                    onPreferenceClick = { uriHandler.openUri(Constants.URL_HELP) },\n                )\n            }\n            item {\n                TextPreferenceWidget(\n                    title = stringResource(MR.strings.label_donate),\n                    icon = Icons.Outlined.AttachMoney,\n                    onPreferenceClick = { uriHandler.openUri(Constants.URL_DONATE) },\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/NewUpdateScreen.kt",
    "content": "package eu.kanade.presentation.more\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.OpenInNew\nimport androidx.compose.material.icons.outlined.NewReleases\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.manga.components.MarkdownRender\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport org.intellij.markdown.flavours.gfm.GFMFlavourDescriptor\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.InfoScreen\n\n@Composable\nfun NewUpdateScreen(\n    versionName: String,\n    changelogInfo: String,\n    onOpenInBrowser: () -> Unit,\n    onRejectUpdate: () -> Unit,\n    onAcceptUpdate: () -> Unit,\n) {\n    InfoScreen(\n        icon = Icons.Outlined.NewReleases,\n        headingText = stringResource(MR.strings.update_check_notification_update_available),\n        subtitleText = versionName,\n        acceptText = stringResource(MR.strings.update_check_confirm),\n        onAcceptClick = onAcceptUpdate,\n        rejectText = stringResource(MR.strings.action_not_now),\n        onRejectClick = onRejectUpdate,\n    ) {\n        Column(\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(vertical = MaterialTheme.padding.large),\n        ) {\n            MarkdownRender(\n                content = changelogInfo,\n                flavour = GFMFlavourDescriptor(),\n            )\n\n            TextButton(\n                onClick = onOpenInBrowser,\n                modifier = Modifier.padding(top = MaterialTheme.padding.small),\n            ) {\n                Text(text = stringResource(MR.strings.update_check_open))\n                Spacer(modifier = Modifier.width(MaterialTheme.padding.extraSmall))\n                Icon(imageVector = Icons.AutoMirrored.Outlined.OpenInNew, contentDescription = null)\n            }\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun NewUpdateScreenPreview() {\n    TachiyomiPreviewTheme {\n        NewUpdateScreen(\n            versionName = \"v0.99.9\",\n            changelogInfo = \"\"\"\n                ## Yay\n                Foobar\n\n                ### More info\n                - Hello\n                - World\n            \"\"\".trimIndent(),\n            onOpenInBrowser = {},\n            onRejectUpdate = {},\n            onAcceptUpdate = {},\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/onboarding/GuidesStep.kt",
    "content": "package eu.kanade.presentation.more.onboarding\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\ninternal class GuidesStep(\n    private val onRestoreBackup: () -> Unit,\n) : OnboardingStep {\n\n    override val isComplete: Boolean = true\n\n    @Composable\n    override fun Content() {\n        val handler = LocalUriHandler.current\n\n        Column(\n            modifier = Modifier.padding(16.dp),\n            verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        ) {\n            Text(stringResource(MR.strings.onboarding_guides_new_user, stringResource(MR.strings.app_name)))\n            Button(\n                modifier = Modifier.fillMaxWidth(),\n                onClick = { handler.openUri(GETTING_STARTED_URL) },\n            ) {\n                Text(stringResource(MR.strings.getting_started_guide))\n            }\n\n            HorizontalDivider(\n                modifier = Modifier.padding(vertical = 8.dp),\n                color = MaterialTheme.colorScheme.onPrimaryContainer,\n            )\n\n            Text(stringResource(MR.strings.onboarding_guides_returning_user, stringResource(MR.strings.app_name)))\n            Button(\n                modifier = Modifier.fillMaxWidth(),\n                onClick = onRestoreBackup,\n            ) {\n                Text(stringResource(MR.strings.pref_restore_backup))\n            }\n        }\n    }\n}\n\nconst val GETTING_STARTED_URL = \"https://mihon.app/docs/guides/getting-started\"\n\n@PreviewLightDark\n@Composable\nprivate fun GuidesStepPreview() {\n    TachiyomiPreviewTheme {\n        GuidesStep(\n            onRestoreBackup = {},\n        ).Content()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/onboarding/OnboardingScreen.kt",
    "content": "package eu.kanade.presentation.more.onboarding\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.animation.AnimatedContent\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.RocketLaunch\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport soup.compose.material.motion.animation.materialSharedAxisX\nimport soup.compose.material.motion.animation.rememberSlideDistance\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.InfoScreen\n\n@Composable\nfun OnboardingScreen(\n    onComplete: () -> Unit,\n    onRestoreBackup: () -> Unit,\n) {\n    val slideDistance = rememberSlideDistance()\n\n    var currentStep by rememberSaveable { mutableIntStateOf(0) }\n    val steps = remember {\n        listOf(\n            ThemeStep(),\n            StorageStep(),\n            PermissionStep(),\n            GuidesStep(onRestoreBackup = onRestoreBackup),\n        )\n    }\n    val isLastStep = currentStep == steps.lastIndex\n\n    BackHandler(enabled = currentStep != 0) {\n        currentStep--\n    }\n\n    InfoScreen(\n        icon = Icons.Outlined.RocketLaunch,\n        headingText = stringResource(MR.strings.onboarding_heading),\n        subtitleText = stringResource(MR.strings.onboarding_description),\n        acceptText = stringResource(\n            if (isLastStep) {\n                MR.strings.onboarding_action_finish\n            } else {\n                MR.strings.onboarding_action_next\n            },\n        ),\n        canAccept = steps[currentStep].isComplete,\n        onAcceptClick = {\n            if (isLastStep) {\n                onComplete()\n            } else {\n                currentStep++\n            }\n        },\n    ) {\n        Box(\n            modifier = Modifier\n                .padding(vertical = MaterialTheme.padding.small)\n                .clip(MaterialTheme.shapes.small)\n                .fillMaxSize()\n                .background(MaterialTheme.colorScheme.surfaceVariant),\n        ) {\n            AnimatedContent(\n                targetState = currentStep,\n                transitionSpec = {\n                    materialSharedAxisX(\n                        forward = targetState > initialState,\n                        slideDistance = slideDistance,\n                    )\n                },\n                label = \"stepContent\",\n            ) {\n                steps[it].Content()\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/onboarding/OnboardingStep.kt",
    "content": "package eu.kanade.presentation.more.onboarding\n\nimport androidx.compose.runtime.Composable\n\ninternal interface OnboardingStep {\n\n    val isComplete: Boolean\n\n    @Composable\n    fun Content()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt",
    "content": "package eu.kanade.presentation.more.onboarding\n\nimport android.Manifest\nimport android.annotation.SuppressLint\nimport android.content.Intent\nimport android.content.pm.PackageManager\nimport android.os.Build\nimport android.os.PowerManager\nimport android.provider.Settings\nimport androidx.activity.compose.rememberLauncherForActivityResult\nimport androidx.activity.result.contract.ActivityResultContracts\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Check\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.ListItem\nimport androidx.compose.material3.ListItemDefaults\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedButton\nimport androidx.compose.material3.Switch\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.DisposableEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.unit.dp\nimport androidx.core.content.getSystemService\nimport androidx.core.net.toUri\nimport androidx.lifecycle.DefaultLifecycleObserver\nimport androidx.lifecycle.LifecycleOwner\nimport androidx.lifecycle.compose.LocalLifecycleOwner\nimport eu.kanade.presentation.util.rememberRequestPackageInstallsPermissionState\nimport eu.kanade.tachiyomi.core.security.PrivacyPreferences\nimport eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission\nimport eu.kanade.tachiyomi.util.system.telemetryIncluded\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport uy.kohesive.injekt.injectLazy\n\ninternal class PermissionStep : OnboardingStep {\n\n    private val privacyPreferences: PrivacyPreferences by injectLazy()\n\n    private var notificationGranted by mutableStateOf(false)\n    private var batteryGranted by mutableStateOf(false)\n\n    override val isComplete: Boolean = true\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val lifecycleOwner = LocalLifecycleOwner.current\n\n        val installGranted = rememberRequestPackageInstallsPermissionState()\n\n        DisposableEffect(lifecycleOwner.lifecycle) {\n            val observer = object : DefaultLifecycleObserver {\n                override fun onResume(owner: LifecycleOwner) {\n                    notificationGranted = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n                        context.checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) ==\n                            PackageManager.PERMISSION_GRANTED\n                    } else {\n                        true\n                    }\n                    batteryGranted = context.getSystemService<PowerManager>()!!\n                        .isIgnoringBatteryOptimizations(context.packageName)\n                }\n            }\n            lifecycleOwner.lifecycle.addObserver(observer)\n            onDispose {\n                lifecycleOwner.lifecycle.removeObserver(observer)\n            }\n        }\n\n        Column {\n            PermissionCheckbox(\n                title = stringResource(MR.strings.onboarding_permission_install_apps),\n                subtitle = stringResource(MR.strings.onboarding_permission_install_apps_description),\n                granted = installGranted,\n                onButtonClick = {\n                    context.launchRequestPackageInstallsPermission()\n                },\n            )\n\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n                val permissionRequester = rememberLauncherForActivityResult(\n                    contract = ActivityResultContracts.RequestPermission(),\n                    onResult = {\n                        // no-op. resulting checks is being done on resume\n                    },\n                )\n                PermissionCheckbox(\n                    title = stringResource(MR.strings.onboarding_permission_notifications),\n                    subtitle = stringResource(MR.strings.onboarding_permission_notifications_description),\n                    granted = notificationGranted,\n                    onButtonClick = { permissionRequester.launch(Manifest.permission.POST_NOTIFICATIONS) },\n                )\n            }\n\n            PermissionCheckbox(\n                title = stringResource(MR.strings.onboarding_permission_ignore_battery_opts),\n                subtitle = stringResource(MR.strings.onboarding_permission_ignore_battery_opts_description),\n                granted = batteryGranted,\n                onButtonClick = {\n                    @SuppressLint(\"BatteryLife\")\n                    val intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply {\n                        data = \"package:${context.packageName}\".toUri()\n                    }\n                    context.startActivity(intent)\n                },\n            )\n\n            if (!telemetryIncluded) return@Column\n\n            HorizontalDivider(\n                modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp),\n                color = MaterialTheme.colorScheme.onPrimaryContainer,\n            )\n\n            val crashlyticsPref = privacyPreferences.crashlytics\n            val crashlytics by crashlyticsPref.collectAsState()\n            PermissionSwitch(\n                title = stringResource(MR.strings.onboarding_permission_crashlytics),\n                subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description),\n                granted = crashlytics,\n                onToggleChange = crashlyticsPref::set,\n            )\n\n            val analyticsPref = privacyPreferences.analytics\n            val analytics by analyticsPref.collectAsState()\n            PermissionSwitch(\n                title = stringResource(MR.strings.onboarding_permission_analytics),\n                subtitle = stringResource(MR.strings.onboarding_permission_analytics_description),\n                granted = analytics,\n                onToggleChange = analyticsPref::set,\n            )\n        }\n    }\n\n    @Composable\n    private fun SectionHeader(\n        text: String,\n        modifier: Modifier = Modifier,\n    ) {\n        Text(\n            text = text,\n            style = MaterialTheme.typography.titleLarge,\n            modifier = modifier\n                .padding(horizontal = 16.dp)\n                .secondaryItemAlpha(),\n        )\n    }\n\n    @Composable\n    private fun PermissionCheckbox(\n        title: String,\n        subtitle: String,\n        granted: Boolean,\n        modifier: Modifier = Modifier,\n        onButtonClick: () -> Unit,\n    ) {\n        ListItem(\n            modifier = modifier,\n            headlineContent = { Text(text = title) },\n            supportingContent = { Text(text = subtitle) },\n            trailingContent = {\n                OutlinedButton(\n                    enabled = !granted,\n                    onClick = onButtonClick,\n                ) {\n                    if (granted) {\n                        Icon(\n                            imageVector = Icons.Default.Check,\n                            contentDescription = null,\n                            tint = MaterialTheme.colorScheme.primary,\n                        )\n                    } else {\n                        Text(stringResource(MR.strings.onboarding_permission_action_grant))\n                    }\n                }\n            },\n            colors = ListItemDefaults.colors(containerColor = Color.Transparent),\n        )\n    }\n\n    @Composable\n    private fun PermissionSwitch(\n        title: String,\n        subtitle: String,\n        granted: Boolean,\n        modifier: Modifier = Modifier,\n        onToggleChange: (Boolean) -> Unit,\n    ) {\n        ListItem(\n            modifier = modifier,\n            headlineContent = { Text(text = title) },\n            supportingContent = { Text(text = subtitle) },\n            trailingContent = {\n                Switch(\n                    checked = granted,\n                    onCheckedChange = onToggleChange,\n                )\n            },\n            colors = ListItemDefaults.colors(containerColor = Color.Transparent),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/onboarding/StorageStep.kt",
    "content": "package eu.kanade.presentation.more.onboarding\n\nimport android.content.ActivityNotFoundException\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.more.settings.screen.SettingsDataScreen\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.flow.collectLatest\nimport tachiyomi.domain.storage.service.StoragePreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Button\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\ninternal class StorageStep : OnboardingStep {\n\n    private val storagePref = Injekt.get<StoragePreferences>().baseStorageDirectory\n\n    private var _isComplete by mutableStateOf(false)\n\n    override val isComplete: Boolean\n        get() = _isComplete\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val handler = LocalUriHandler.current\n\n        val pickStorageLocation = SettingsDataScreen.storageLocationPicker(storagePref)\n\n        Column(\n            modifier = Modifier.padding(16.dp),\n            verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        ) {\n            Text(\n                stringResource(\n                    MR.strings.onboarding_storage_info,\n                    stringResource(MR.strings.app_name),\n                    SettingsDataScreen.storageLocationText(storagePref),\n                ),\n            )\n\n            Button(\n                modifier = Modifier.fillMaxWidth(),\n                onClick = {\n                    try {\n                        pickStorageLocation.launch(null)\n                    } catch (e: ActivityNotFoundException) {\n                        context.toast(MR.strings.file_picker_error)\n                    }\n                },\n            ) {\n                Text(stringResource(MR.strings.onboarding_storage_action_select))\n            }\n\n            HorizontalDivider(\n                modifier = Modifier.padding(vertical = 8.dp),\n                color = MaterialTheme.colorScheme.onPrimaryContainer,\n            )\n\n            Text(stringResource(MR.strings.onboarding_storage_help_info, stringResource(MR.strings.app_name)))\n            Button(\n                modifier = Modifier.fillMaxWidth(),\n                onClick = { handler.openUri(SettingsDataScreen.HELP_URL) },\n            ) {\n                Text(stringResource(MR.strings.onboarding_storage_help_action))\n            }\n        }\n\n        LaunchedEffect(Unit) {\n            storagePref.changes()\n                .collectLatest { _isComplete = storagePref.isSet() }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/onboarding/ThemeStep.kt",
    "content": "package eu.kanade.presentation.more.onboarding\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.setAppCompatDelegateThemeMode\nimport eu.kanade.presentation.more.settings.widget.AppThemeModePreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.AppThemePreferenceWidget\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\ninternal class ThemeStep : OnboardingStep {\n\n    override val isComplete: Boolean = true\n\n    private val uiPreferences: UiPreferences = Injekt.get()\n\n    @Composable\n    override fun Content() {\n        val themeModePref = uiPreferences.themeMode\n        val themeMode by themeModePref.collectAsState()\n\n        val appThemePref = uiPreferences.appTheme\n        val appTheme by appThemePref.collectAsState()\n\n        val amoledPref = uiPreferences.themeDarkAmoled\n        val amoled by amoledPref.collectAsState()\n\n        Column {\n            AppThemeModePreferenceWidget(\n                value = themeMode,\n                onItemClick = {\n                    themeModePref.set(it)\n                    setAppCompatDelegateThemeMode(it)\n                },\n            )\n\n            AppThemePreferenceWidget(\n                value = appTheme,\n                amoled = amoled,\n                onItemClick = { appThemePref.set(it) },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/Preference.kt",
    "content": "package eu.kanade.presentation.more.settings\n\nimport androidx.annotation.IntRange\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.ImmutableMap\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.core.common.preference.Preference as PreferenceData\n\nsealed class Preference {\n    abstract val title: String\n    abstract val enabled: Boolean\n\n    sealed class PreferenceItem<T, R> : Preference() {\n        abstract val subtitle: String?\n        abstract val icon: ImageVector?\n        abstract val onValueChanged: suspend (value: T) -> R\n\n        /**\n         * A basic [PreferenceItem] that only displays texts.\n         */\n        data class TextPreference(\n            override val title: String,\n            override val subtitle: String? = null,\n            override val enabled: Boolean = true,\n            val widget: @Composable (() -> Unit)? = null,\n            val onClick: (() -> Unit)? = null,\n        ) : PreferenceItem<String, Unit>() {\n            override val icon: ImageVector? = null\n            override val onValueChanged: suspend (value: String) -> Unit = {}\n        }\n\n        /**\n         * A [PreferenceItem] that provides a two-state toggleable option.\n         */\n        data class SwitchPreference(\n            val preference: PreferenceData<Boolean>,\n            override val title: String,\n            override val subtitle: String? = null,\n            override val enabled: Boolean = true,\n            override val onValueChanged: suspend (value: Boolean) -> Boolean = { true },\n        ) : PreferenceItem<Boolean, Boolean>() {\n            override val icon: ImageVector? = null\n        }\n\n        /**\n         * A [PreferenceItem] that provides a slider to select an integer number.\n         */\n        data class SliderPreference(\n            val value: Int,\n            override val title: String,\n            override val subtitle: String? = null,\n            val valueString: String? = null,\n            val valueRange: IntProgression = 0..1,\n            @IntRange(from = 0) val steps: Int = with(valueRange) { (last - first) - 1 },\n            override val enabled: Boolean = true,\n            override val onValueChanged: suspend (value: Int) -> Unit = {},\n        ) : PreferenceItem<Int, Unit>() {\n            override val icon: ImageVector? = null\n        }\n\n        /**\n         * A [PreferenceItem] that displays a list of entries as a dialog.\n         */\n        @Suppress(\"UNCHECKED_CAST\")\n        data class ListPreference<T>(\n            val preference: PreferenceData<T>,\n            val entries: ImmutableMap<T, String>,\n            override val title: String,\n            override val subtitle: String? = \"%s\",\n            val subtitleProvider: @Composable (value: T, entries: ImmutableMap<T, String>) -> String? =\n                { v, e -> subtitle?.format(e[v]) },\n            override val icon: ImageVector? = null,\n            override val enabled: Boolean = true,\n            override val onValueChanged: suspend (value: T) -> Boolean = { true },\n        ) : PreferenceItem<T, Boolean>() {\n            internal fun internalSet(value: Any) = preference.set(value as T)\n            internal suspend fun internalOnValueChanged(value: Any) = onValueChanged(value as T)\n\n            @Composable\n            internal fun internalSubtitleProvider(value: Any?, entries: ImmutableMap<out Any?, String>) =\n                subtitleProvider(value as T, entries as ImmutableMap<T, String>)\n        }\n\n        /**\n         * [ListPreference] but with no connection to a [PreferenceData]\n         */\n        data class BasicListPreference(\n            val value: String,\n            val entries: ImmutableMap<String, String>,\n            override val title: String,\n            override val subtitle: String? = \"%s\",\n            val subtitleProvider: @Composable (value: String, entries: ImmutableMap<String, String>) -> String? =\n                { v, e -> subtitle?.format(e[v]) },\n            override val icon: ImageVector? = null,\n            override val enabled: Boolean = true,\n            override val onValueChanged: suspend (value: String) -> Unit = {},\n        ) : PreferenceItem<String, Unit>()\n\n        /**\n         * A [PreferenceItem] that displays a list of entries as a dialog.\n         * Multiple entries can be selected at the same time.\n         */\n        data class MultiSelectListPreference(\n            val preference: PreferenceData<Set<String>>,\n            val entries: ImmutableMap<String, String>,\n            override val title: String,\n            override val subtitle: String? = \"%s\",\n            val subtitleProvider: @Composable (value: Set<String>, entries: ImmutableMap<String, String>) -> String? =\n                { v, e ->\n                    val combined = remember(v, e) {\n                        v.mapNotNull { e[it] }\n                            .joinToString()\n                            .takeUnless { it.isBlank() }\n                    }\n                        ?: stringResource(MR.strings.none)\n                    subtitle?.format(combined)\n                },\n            override val icon: ImageVector? = null,\n            override val enabled: Boolean = true,\n            override val onValueChanged: suspend (value: Set<String>) -> Boolean = { true },\n        ) : PreferenceItem<Set<String>, Boolean>()\n\n        /**\n         * A [PreferenceItem] that shows a EditText in the dialog.\n         */\n        data class EditTextPreference(\n            val preference: PreferenceData<String>,\n            override val title: String,\n            override val subtitle: String? = \"%s\",\n            override val enabled: Boolean = true,\n            override val onValueChanged: suspend (value: String) -> Boolean = { true },\n        ) : PreferenceItem<String, Boolean>() {\n            override val icon: ImageVector? = null\n        }\n\n        /**\n         * A [PreferenceItem] for individual tracker.\n         */\n        data class TrackerPreference(\n            val tracker: Tracker,\n            val login: () -> Unit,\n            val logout: () -> Unit,\n        ) : PreferenceItem<String, Unit>() {\n            override val title: String = \"\"\n            override val enabled: Boolean = true\n            override val subtitle: String? = null\n            override val icon: ImageVector? = null\n            override val onValueChanged: suspend (value: String) -> Unit = {}\n        }\n\n        data class InfoPreference(\n            override val title: String,\n        ) : PreferenceItem<String, Unit>() {\n            override val enabled: Boolean = true\n            override val subtitle: String? = null\n            override val icon: ImageVector? = null\n            override val onValueChanged: suspend (value: String) -> Unit = {}\n        }\n\n        data class CustomPreference(\n            override val title: String,\n            val content: @Composable () -> Unit,\n        ) : PreferenceItem<Unit, Unit>() {\n            override val enabled: Boolean = true\n            override val subtitle: String? = null\n            override val icon: ImageVector? = null\n            override val onValueChanged: suspend (value: Unit) -> Unit = {}\n        }\n    }\n\n    data class PreferenceGroup(\n        override val title: String,\n        override val enabled: Boolean = true,\n\n        val preferenceItems: ImmutableList<PreferenceItem<out Any, out Any>>,\n    ) : Preference()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt",
    "content": "package eu.kanade.presentation.more.settings\n\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.animation.expandVertically\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.shrinkVertically\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.compositionLocalOf\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.structuralEqualityPolicy\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.more.settings.widget.EditTextPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.InfoWidget\nimport eu.kanade.presentation.more.settings.widget.ListPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.MultiSelectListPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.PrefsHorizontalPadding\nimport eu.kanade.presentation.more.settings.widget.PrefsVerticalPadding\nimport eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.TextPreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.TitleFontSize\nimport eu.kanade.presentation.more.settings.widget.TrackingPreferenceWidget\nimport kotlinx.coroutines.launch\nimport tachiyomi.presentation.core.components.BaseSliderItem\nimport tachiyomi.presentation.core.util.collectAsState\n\nval LocalPreferenceHighlighted = compositionLocalOf(structuralEqualityPolicy()) { false }\nval LocalPreferenceMinHeight = compositionLocalOf(structuralEqualityPolicy()) { 56.dp }\n\n@Composable\nfun StatusWrapper(\n    item: Preference.PreferenceItem<*, *>,\n    highlightKey: String?,\n    content: @Composable () -> Unit,\n) {\n    val enabled = item.enabled\n    val highlighted = item.title == highlightKey\n    AnimatedVisibility(\n        visible = enabled,\n        enter = expandVertically() + fadeIn(),\n        exit = shrinkVertically() + fadeOut(),\n        content = {\n            CompositionLocalProvider(\n                LocalPreferenceHighlighted provides highlighted,\n                content = content,\n            )\n        },\n    )\n}\n\n@Composable\ninternal fun PreferenceItem(\n    item: Preference.PreferenceItem<*, *>,\n    highlightKey: String?,\n) {\n    val scope = rememberCoroutineScope()\n    StatusWrapper(\n        item = item,\n        highlightKey = highlightKey,\n    ) {\n        when (item) {\n            is Preference.PreferenceItem.SwitchPreference -> {\n                val value by item.preference.collectAsState()\n                SwitchPreferenceWidget(\n                    title = item.title,\n                    subtitle = item.subtitle,\n                    icon = item.icon,\n                    checked = value,\n                    onCheckedChanged = { newValue ->\n                        scope.launch {\n                            if (item.onValueChanged(newValue)) {\n                                item.preference.set(newValue)\n                            }\n                        }\n                    },\n                )\n            }\n            is Preference.PreferenceItem.SliderPreference -> {\n                BaseSliderItem(\n                    value = item.value,\n                    valueRange = item.valueRange,\n                    steps = item.steps,\n                    title = item.title,\n                    subtitle = item.subtitle,\n                    valueString = item.valueString.takeUnless { it.isNullOrEmpty() } ?: item.value.toString(),\n                    onChange = {\n                        scope.launch {\n                            item.onValueChanged(it)\n                        }\n                    },\n                    titleStyle = MaterialTheme.typography.titleLarge.copy(fontSize = TitleFontSize),\n                    modifier = Modifier.padding(\n                        horizontal = PrefsHorizontalPadding,\n                        vertical = PrefsVerticalPadding,\n                    ),\n                )\n            }\n            is Preference.PreferenceItem.ListPreference<*> -> {\n                val value by item.preference.collectAsState()\n                ListPreferenceWidget(\n                    value = value,\n                    title = item.title,\n                    subtitle = item.internalSubtitleProvider(value, item.entries),\n                    icon = item.icon,\n                    entries = item.entries,\n                    onValueChange = { newValue ->\n                        scope.launch {\n                            if (item.internalOnValueChanged(newValue!!)) {\n                                item.internalSet(newValue)\n                            }\n                        }\n                    },\n                )\n            }\n            is Preference.PreferenceItem.BasicListPreference -> {\n                ListPreferenceWidget(\n                    value = item.value,\n                    title = item.title,\n                    subtitle = item.subtitleProvider(item.value, item.entries),\n                    icon = item.icon,\n                    entries = item.entries,\n                    onValueChange = { scope.launch { item.onValueChanged(it) } },\n                )\n            }\n            is Preference.PreferenceItem.MultiSelectListPreference -> {\n                val values by item.preference.collectAsState()\n                MultiSelectListPreferenceWidget(\n                    preference = item,\n                    values = values,\n                    onValuesChange = { newValues ->\n                        scope.launch {\n                            if (item.onValueChanged(newValues)) {\n                                item.preference.set(newValues.toMutableSet())\n                            }\n                        }\n                    },\n                )\n            }\n            is Preference.PreferenceItem.TextPreference -> {\n                TextPreferenceWidget(\n                    title = item.title,\n                    subtitle = item.subtitle,\n                    icon = item.icon,\n                    widget = item.widget,\n                    onPreferenceClick = item.onClick,\n                )\n            }\n            is Preference.PreferenceItem.EditTextPreference -> {\n                val values by item.preference.collectAsState()\n                EditTextPreferenceWidget(\n                    title = item.title,\n                    subtitle = item.subtitle,\n                    icon = item.icon,\n                    value = values,\n                    onConfirm = {\n                        val accepted = item.onValueChanged(it)\n                        if (accepted) item.preference.set(it)\n                        accepted\n                    },\n                )\n            }\n            is Preference.PreferenceItem.TrackerPreference -> {\n                val isLoggedIn by item.tracker.let { tracker ->\n                    tracker.isLoggedInFlow.collectAsState(tracker.isLoggedIn)\n                }\n                TrackingPreferenceWidget(\n                    tracker = item.tracker,\n                    checked = isLoggedIn,\n                    onClick = { if (isLoggedIn) item.logout() else item.login() },\n                )\n            }\n            is Preference.PreferenceItem.InfoPreference -> {\n                InfoWidget(text = item.title)\n            }\n            is Preference.PreferenceItem.CustomPreference -> {\n                item.content()\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/PreferenceScaffold.kt",
    "content": "package eu.kanade.presentation.more.settings\n\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.runtime.Composable\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.presentation.components.AppBar\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun PreferenceScaffold(\n    titleRes: StringResource,\n    actions: @Composable RowScope.() -> Unit = {},\n    onBackPressed: (() -> Unit)? = null,\n    itemsProvider: @Composable () -> List<Preference>,\n) {\n    Scaffold(\n        topBar = {\n            AppBar(\n                title = stringResource(titleRes),\n                navigateUp = onBackPressed,\n                actions = actions,\n                scrollBehavior = it,\n            )\n        },\n        content = { contentPadding ->\n            PreferenceScreen(\n                items = itemsProvider(),\n                contentPadding = contentPadding,\n            )\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/PreferenceScreen.kt",
    "content": "package eu.kanade.presentation.more.settings\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastForEachIndexed\nimport eu.kanade.presentation.more.settings.screen.SearchableSettings\nimport eu.kanade.presentation.more.settings.widget.PreferenceGroupHeader\nimport kotlinx.coroutines.delay\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport kotlin.time.Duration.Companion.seconds\n\n/**\n * Preference Screen composable which contains a list of [Preference] items\n * @param items [Preference] items which should be displayed on the preference screen. An item can be a single [PreferenceItem] or a group ([Preference.PreferenceGroup])\n * @param modifier [Modifier] to be applied to the preferenceScreen layout\n */\n@Composable\nfun PreferenceScreen(\n    items: List<Preference>,\n    modifier: Modifier = Modifier,\n    contentPadding: PaddingValues = PaddingValues(0.dp),\n) {\n    val state = rememberLazyListState()\n    val highlightKey = SearchableSettings.highlightKey\n    if (highlightKey != null) {\n        LaunchedEffect(Unit) {\n            val i = items.findHighlightedIndex(highlightKey)\n            if (i >= 0) {\n                delay(0.5.seconds)\n                state.animateScrollToItem(i)\n            }\n            SearchableSettings.highlightKey = null\n        }\n    }\n\n    ScrollbarLazyColumn(\n        modifier = modifier,\n        state = state,\n        contentPadding = contentPadding,\n    ) {\n        items.fastForEachIndexed { i, preference ->\n            when (preference) {\n                // Create Preference Group\n                is Preference.PreferenceGroup -> {\n                    if (!preference.enabled) return@fastForEachIndexed\n\n                    item {\n                        Column {\n                            PreferenceGroupHeader(title = preference.title)\n                        }\n                    }\n                    items(preference.preferenceItems) { item ->\n                        PreferenceItem(\n                            item = item,\n                            highlightKey = highlightKey,\n                        )\n                    }\n                    item {\n                        if (i < items.lastIndex) {\n                            Spacer(modifier = Modifier.height(12.dp))\n                        }\n                    }\n                }\n\n                // Create Preference Item\n                is Preference.PreferenceItem<*, *> -> item {\n                    PreferenceItem(\n                        item = preference,\n                        highlightKey = highlightKey,\n                    )\n                }\n            }\n        }\n    }\n}\n\nprivate fun List<Preference>.findHighlightedIndex(highlightKey: String): Int {\n    return flatMap {\n        if (it is Preference.PreferenceGroup) {\n            buildList<String?> {\n                add(null) // Header\n                addAll(it.preferenceItems.map { groupItem -> groupItem.title })\n                add(null) // Spacer\n            }\n        } else {\n            listOf(it.title)\n        }\n    }.indexOfFirst { it == highlightKey }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/Commons.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.presentation.category.visualName\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n/**\n * Returns a string of categories name for settings subtitle\n */\n@ReadOnlyComposable\n@Composable\nfun getCategoriesLabel(\n    allCategories: List<Category>,\n    included: Set<String>,\n    excluded: Set<String>,\n): String {\n    val context = LocalContext.current\n\n    val includedCategories = included\n        .mapNotNull { id -> allCategories.find { it.id == id.toLong() } }\n        .sortedBy { it.order }\n    val excludedCategories = excluded\n        .mapNotNull { id -> allCategories.find { it.id == id.toLong() } }\n        .sortedBy { it.order }\n    val allExcluded = excludedCategories.size == allCategories.size\n\n    val includedItemsText = when {\n        // Some selected, but not all\n        includedCategories.isNotEmpty() && includedCategories.size != allCategories.size ->\n            includedCategories.joinToString { it.visualName(context) }\n        // All explicitly selected\n        includedCategories.size == allCategories.size -> stringResource(MR.strings.all)\n        allExcluded -> stringResource(MR.strings.none)\n        else -> stringResource(MR.strings.all)\n    }\n    val excludedItemsText = when {\n        excludedCategories.isEmpty() -> stringResource(MR.strings.none)\n        allExcluded -> stringResource(MR.strings.all)\n        else -> excludedCategories.joinToString { it.visualName(context) }\n    }\n    return stringResource(MR.strings.include, includedItemsText) + \"\\n\" +\n        stringResource(MR.strings.exclude, excludedItemsText)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SearchableSettings.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport cafe.adriel.voyager.core.screen.Screen\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.PreferenceScaffold\nimport eu.kanade.presentation.util.LocalBackPress\n\ninterface SearchableSettings : Screen {\n\n    @Composable\n    @ReadOnlyComposable\n    fun getTitleRes(): StringResource\n\n    @Composable\n    fun getPreferences(): List<Preference>\n\n    @Composable\n    fun RowScope.AppBarAction() {\n    }\n\n    @Composable\n    override fun Content() {\n        val handleBack = LocalBackPress.current\n        PreferenceScaffold(\n            titleRes = getTitleRes(),\n            onBackPressed = if (handleBack != null) handleBack::invoke else null,\n            actions = { AppBarAction() },\n            itemsProvider = { getPreferences() },\n        )\n    }\n\n    companion object {\n        // HACK: for the background blipping thingy.\n        // The title of the target PreferenceItem\n        // Set before showing the destination screen and reset after\n        // See BasePreferenceWidget.highlightBackground\n        var highlightKey: String? = null\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport android.annotation.SuppressLint\nimport android.content.ActivityNotFoundException\nimport android.content.Intent\nimport android.provider.Settings\nimport android.webkit.WebStorage\nimport android.webkit.WebView\nimport androidx.activity.compose.rememberLauncherForActivityResult\nimport androidx.activity.result.contract.ActivityResultContracts\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.core.net.toUri\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.extension.interactor.TrustExtension\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.screen.advanced.ClearDatabaseScreen\nimport eu.kanade.presentation.more.settings.screen.debug.DebugInfoScreen\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport eu.kanade.tachiyomi.data.library.MetadataUpdateJob\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.NetworkPreferences\nimport eu.kanade.tachiyomi.network.PREF_DOH_360\nimport eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD\nimport eu.kanade.tachiyomi.network.PREF_DOH_ALIDNS\nimport eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE\nimport eu.kanade.tachiyomi.network.PREF_DOH_CONTROLD\nimport eu.kanade.tachiyomi.network.PREF_DOH_DNSPOD\nimport eu.kanade.tachiyomi.network.PREF_DOH_GOOGLE\nimport eu.kanade.tachiyomi.network.PREF_DOH_MULLVAD\nimport eu.kanade.tachiyomi.network.PREF_DOH_NJALLA\nimport eu.kanade.tachiyomi.network.PREF_DOH_QUAD101\nimport eu.kanade.tachiyomi.network.PREF_DOH_QUAD9\nimport eu.kanade.tachiyomi.network.PREF_DOH_SHECAN\nimport eu.kanade.tachiyomi.ui.more.OnboardingScreen\nimport eu.kanade.tachiyomi.util.CrashLogUtil\nimport eu.kanade.tachiyomi.util.system.GLUtil\nimport eu.kanade.tachiyomi.util.system.isReleaseBuildType\nimport eu.kanade.tachiyomi.util.system.isShizukuInstalled\nimport eu.kanade.tachiyomi.util.system.powerManager\nimport eu.kanade.tachiyomi.util.system.setDefaultSettings\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toImmutableMap\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport okhttp3.Headers\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.ResetViewerFlags\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.File\n\nobject SettingsAdvancedScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.pref_category_advanced\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val scope = rememberCoroutineScope()\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val basePreferences = remember { Injekt.get<BasePreferences>() }\n        val networkPreferences = remember { Injekt.get<NetworkPreferences>() }\n        val libraryPreferences = remember { Injekt.get<LibraryPreferences>() }\n\n        return listOf(\n            Preference.PreferenceItem.TextPreference(\n                title = stringResource(MR.strings.pref_dump_crash_logs),\n                subtitle = stringResource(MR.strings.pref_dump_crash_logs_summary),\n                onClick = {\n                    scope.launch {\n                        CrashLogUtil(context).dumpLogs()\n                    }\n                },\n            ),\n            Preference.PreferenceItem.SwitchPreference(\n                preference = networkPreferences.verboseLogging,\n                title = stringResource(MR.strings.pref_verbose_logging),\n                subtitle = stringResource(MR.strings.pref_verbose_logging_summary),\n                onValueChanged = {\n                    context.toast(MR.strings.requires_app_restart)\n                    true\n                },\n            ),\n            Preference.PreferenceItem.TextPreference(\n                title = stringResource(MR.strings.pref_debug_info),\n                onClick = { navigator.push(DebugInfoScreen()) },\n            ),\n            Preference.PreferenceItem.TextPreference(\n                title = stringResource(MR.strings.pref_onboarding_guide),\n                onClick = { navigator.push(OnboardingScreen()) },\n            ),\n            Preference.PreferenceItem.TextPreference(\n                title = stringResource(MR.strings.pref_manage_notifications),\n                onClick = {\n                    val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply {\n                        putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName)\n                    }\n                    context.startActivity(intent)\n                },\n            ),\n            getBackgroundActivityGroup(),\n            getDataGroup(),\n            getNetworkGroup(networkPreferences = networkPreferences),\n            getLibraryGroup(libraryPreferences = libraryPreferences),\n            getReaderGroup(basePreferences = basePreferences),\n            getExtensionsGroup(basePreferences = basePreferences),\n        )\n    }\n\n    @Composable\n    private fun getBackgroundActivityGroup(): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val uriHandler = LocalUriHandler.current\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.label_background_activity),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_disable_battery_optimization),\n                    subtitle = stringResource(MR.strings.pref_disable_battery_optimization_summary),\n                    onClick = {\n                        val packageName: String = context.packageName\n                        if (!context.powerManager.isIgnoringBatteryOptimizations(packageName)) {\n                            try {\n                                @SuppressLint(\"BatteryLife\")\n                                val intent = Intent().apply {\n                                    action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\n                                    data = \"package:$packageName\".toUri()\n                                    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)\n                                }\n                                context.startActivity(intent)\n                            } catch (e: ActivityNotFoundException) {\n                                context.toast(MR.strings.battery_optimization_setting_activity_not_found)\n                            }\n                        } else {\n                            context.toast(MR.strings.battery_optimization_disabled)\n                        }\n                    },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = \"Don't kill my app!\",\n                    subtitle = stringResource(MR.strings.about_dont_kill_my_app),\n                    onClick = { uriHandler.openUri(\"https://dontkillmyapp.com/\") },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getDataGroup(): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.label_data),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_invalidate_download_cache),\n                    subtitle = stringResource(MR.strings.pref_invalidate_download_cache_summary),\n                    onClick = {\n                        Injekt.get<DownloadCache>().invalidateCache()\n                        context.toast(MR.strings.download_cache_invalidated)\n                    },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_clear_database),\n                    subtitle = stringResource(MR.strings.pref_clear_database_summary),\n                    onClick = { navigator.push(ClearDatabaseScreen()) },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getNetworkGroup(\n        networkPreferences: NetworkPreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val networkHelper = remember { Injekt.get<NetworkHelper>() }\n\n        val userAgentPref = networkPreferences.defaultUserAgent\n        val userAgent by userAgentPref.collectAsState()\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.label_network),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_clear_cookies),\n                    onClick = {\n                        networkHelper.cookieJar.removeAll()\n                        context.toast(MR.strings.cookies_cleared)\n                    },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_clear_webview_data),\n                    onClick = {\n                        try {\n                            WebView(context).run {\n                                setDefaultSettings()\n                                clearCache(true)\n                                clearFormData()\n                                clearHistory()\n                                clearSslPreferences()\n                            }\n                            WebStorage.getInstance().deleteAllData()\n                            context.applicationInfo?.dataDir?.let { File(\"$it/app_webview/\").deleteRecursively() }\n                            context.toast(MR.strings.webview_data_deleted)\n                        } catch (e: Throwable) {\n                            logcat(LogPriority.ERROR, e)\n                            context.toast(MR.strings.cache_delete_error)\n                        }\n                    },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = networkPreferences.dohProvider,\n                    entries = persistentMapOf(\n                        -1 to stringResource(MR.strings.disabled),\n                        PREF_DOH_CLOUDFLARE to \"Cloudflare\",\n                        PREF_DOH_GOOGLE to \"Google\",\n                        PREF_DOH_ADGUARD to \"AdGuard\",\n                        PREF_DOH_QUAD9 to \"Quad9\",\n                        PREF_DOH_ALIDNS to \"AliDNS\",\n                        PREF_DOH_DNSPOD to \"DNSPod\",\n                        PREF_DOH_360 to \"360\",\n                        PREF_DOH_QUAD101 to \"Quad 101\",\n                        PREF_DOH_MULLVAD to \"Mullvad\",\n                        PREF_DOH_CONTROLD to \"Control D\",\n                        PREF_DOH_NJALLA to \"Njalla\",\n                        PREF_DOH_SHECAN to \"Shecan\",\n                    ),\n                    title = stringResource(MR.strings.pref_dns_over_https),\n                    onValueChanged = {\n                        context.toast(MR.strings.requires_app_restart)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.EditTextPreference(\n                    preference = userAgentPref,\n                    title = stringResource(MR.strings.pref_user_agent_string),\n                    onValueChanged = {\n                        try {\n                            // OkHttp checks for valid values internally\n                            Headers.Builder().add(\"User-Agent\", it)\n                            context.toast(MR.strings.requires_app_restart)\n                        } catch (_: IllegalArgumentException) {\n                            context.toast(MR.strings.error_user_agent_string_invalid)\n                            return@EditTextPreference false\n                        }\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_reset_user_agent_string),\n                    enabled = remember(userAgent) { userAgent != userAgentPref.defaultValue() },\n                    onClick = {\n                        userAgentPref.delete()\n                        context.toast(MR.strings.requires_app_restart)\n                    },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getLibraryGroup(\n        libraryPreferences: LibraryPreferences,\n    ): Preference.PreferenceGroup {\n        val scope = rememberCoroutineScope()\n        val context = LocalContext.current\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.label_library),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_refresh_library_covers),\n                    onClick = { MetadataUpdateJob.startNow(context) },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_reset_viewer_flags),\n                    subtitle = stringResource(MR.strings.pref_reset_viewer_flags_summary),\n                    onClick = {\n                        scope.launchNonCancellable {\n                            val success = Injekt.get<ResetViewerFlags>().await()\n                            withUIContext {\n                                val message = if (success) {\n                                    MR.strings.pref_reset_viewer_flags_success\n                                } else {\n                                    MR.strings.pref_reset_viewer_flags_error\n                                }\n                                context.toast(message)\n                            }\n                        }\n                    },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.updateMangaTitles,\n                    title = stringResource(MR.strings.pref_update_library_manga_titles),\n                    subtitle = stringResource(MR.strings.pref_update_library_manga_titles_summary),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.disallowNonAsciiFilenames,\n                    title = stringResource(MR.strings.pref_disallow_non_ascii_filenames),\n                    subtitle = stringResource(MR.strings.pref_disallow_non_ascii_filenames_details),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getReaderGroup(\n        basePreferences: BasePreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val chooseColorProfile = rememberLauncherForActivityResult(\n            contract = ActivityResultContracts.OpenDocument(),\n        ) { uri ->\n            uri?.let {\n                val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION\n                context.contentResolver.takePersistableUriPermission(uri, flags)\n                basePreferences.displayProfile.set(uri.toString())\n            }\n        }\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_reader),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = basePreferences.hardwareBitmapThreshold,\n                    entries = GLUtil.CUSTOM_TEXTURE_LIMIT_OPTIONS\n                        .mapIndexed { index, option ->\n                            val display = if (index == 0) {\n                                stringResource(MR.strings.pref_hardware_bitmap_threshold_default, option)\n                            } else {\n                                option.toString()\n                            }\n                            option to display\n                        }\n                        .toMap()\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_hardware_bitmap_threshold),\n                    subtitleProvider = { value, options ->\n                        stringResource(MR.strings.pref_hardware_bitmap_threshold_summary, options[value].orEmpty())\n                    },\n                    enabled = !ImageUtil.HARDWARE_BITMAP_UNSUPPORTED &&\n                        GLUtil.DEVICE_TEXTURE_LIMIT > GLUtil.SAFE_TEXTURE_LIMIT,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = basePreferences.alwaysDecodeLongStripWithSSIV,\n                    title = stringResource(MR.strings.pref_always_decode_long_strip_with_ssiv_2),\n                    subtitle = stringResource(MR.strings.pref_always_decode_long_strip_with_ssiv_summary),\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_display_profile),\n                    subtitle = basePreferences.displayProfile.get(),\n                    onClick = {\n                        chooseColorProfile.launch(arrayOf(\"*/*\"))\n                    },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getExtensionsGroup(\n        basePreferences: BasePreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val uriHandler = LocalUriHandler.current\n        val extensionInstallerPref = basePreferences.extensionInstaller\n        var shizukuMissing by rememberSaveable { mutableStateOf(false) }\n        val trustExtension = remember { Injekt.get<TrustExtension>() }\n\n        if (shizukuMissing) {\n            val dismiss = { shizukuMissing = false }\n            AlertDialog(\n                onDismissRequest = dismiss,\n                title = { Text(text = stringResource(MR.strings.ext_installer_shizuku)) },\n                text = { Text(text = stringResource(MR.strings.ext_installer_shizuku_unavailable_dialog)) },\n                dismissButton = {\n                    TextButton(onClick = dismiss) {\n                        Text(text = stringResource(MR.strings.action_cancel))\n                    }\n                },\n                confirmButton = {\n                    TextButton(\n                        onClick = {\n                            dismiss()\n                            uriHandler.openUri(\"https://shizuku.rikka.app/download\")\n                        },\n                    ) {\n                        Text(text = stringResource(MR.strings.action_ok))\n                    }\n                },\n            )\n        }\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.label_extensions),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = extensionInstallerPref,\n                    entries = extensionInstallerPref.entries\n                        .filter {\n                            // TODO: allow private option in stable versions once URL handling is more fleshed out\n                            if (isReleaseBuildType) {\n                                it != BasePreferences.ExtensionInstaller.PRIVATE\n                            } else {\n                                true\n                            }\n                        }\n                        .associateWith { stringResource(it.titleRes) }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.ext_installer_pref),\n                    onValueChanged = {\n                        if (it == BasePreferences.ExtensionInstaller.SHIZUKU &&\n                            !context.isShizukuInstalled\n                        ) {\n                            shizukuMissing = true\n                            false\n                        } else {\n                            true\n                        }\n                    },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.ext_revoke_trust),\n                    onClick = {\n                        trustExtension.revokeAll()\n                        context.toast(MR.strings.requires_app_restart)\n                    },\n                ),\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport android.app.Activity\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.core.app.ActivityCompat\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.TabletUiMode\nimport eu.kanade.domain.ui.model.ThemeMode\nimport eu.kanade.domain.ui.model.setAppCompatDelegateThemeMode\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.screen.appearance.AppLanguageScreen\nimport eu.kanade.presentation.more.settings.widget.AppThemeModePreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.AppThemePreferenceWidget\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableMap\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.LocalDate\n\nobject SettingsAppearanceScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.pref_category_appearance\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val uiPreferences = remember { Injekt.get<UiPreferences>() }\n\n        return listOf(\n            getThemeGroup(uiPreferences = uiPreferences),\n            getDisplayGroup(uiPreferences = uiPreferences),\n        )\n    }\n\n    @Composable\n    private fun getThemeGroup(\n        uiPreferences: UiPreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n\n        val themeModePref = uiPreferences.themeMode\n        val themeMode by themeModePref.collectAsState()\n\n        val appThemePref = uiPreferences.appTheme\n        val appTheme by appThemePref.collectAsState()\n\n        val amoledPref = uiPreferences.themeDarkAmoled\n        val amoled by amoledPref.collectAsState()\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_theme),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.CustomPreference(\n                    title = stringResource(MR.strings.pref_app_theme),\n                ) {\n                    Column {\n                        AppThemeModePreferenceWidget(\n                            value = themeMode,\n                            onItemClick = {\n                                themeModePref.set(it)\n                                setAppCompatDelegateThemeMode(it)\n                            },\n                        )\n\n                        AppThemePreferenceWidget(\n                            value = appTheme,\n                            amoled = amoled,\n                            onItemClick = { appThemePref.set(it) },\n                        )\n                    }\n                },\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = amoledPref,\n                    title = stringResource(MR.strings.pref_dark_theme_pure_black),\n                    enabled = themeMode != ThemeMode.LIGHT,\n                    onValueChanged = {\n                        (context as? Activity)?.let { ActivityCompat.recreate(it) }\n                        true\n                    },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getDisplayGroup(\n        uiPreferences: UiPreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val now = remember { LocalDate.now() }\n\n        val dateFormat by uiPreferences.dateFormat.collectAsState()\n        val formattedNow = remember(dateFormat) {\n            UiPreferences.dateFormat(dateFormat).format(now)\n        }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_display),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_app_language),\n                    onClick = { navigator.push(AppLanguageScreen()) },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = uiPreferences.tabletUiMode,\n                    entries = TabletUiMode.entries\n                        .associateWith { stringResource(it.titleRes) }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_tablet_ui_mode),\n                    onValueChanged = {\n                        context.toast(MR.strings.requires_app_restart)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = uiPreferences.dateFormat,\n                    entries = DateFormats\n                        .associateWith {\n                            val formattedDate = UiPreferences.dateFormat(it).format(now)\n                            \"${it.ifEmpty { stringResource(MR.strings.label_default) }} ($formattedDate)\"\n                        }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_date_format),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = uiPreferences.relativeTime,\n                    title = stringResource(MR.strings.pref_relative_format),\n                    subtitle = stringResource(\n                        MR.strings.pref_relative_format_summary,\n                        stringResource(MR.strings.relative_time_today),\n                        formattedNow,\n                    ),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = uiPreferences.imagesInDescription,\n                    title = stringResource(MR.strings.pref_display_images_description),\n                ),\n            ),\n        )\n    }\n}\n\nprivate val DateFormats = listOf(\n    \"\", // Default\n    \"MM/dd/yy\",\n    \"dd/MM/yy\",\n    \"yyyy-MM-dd\",\n    \"dd MMM yyyy\",\n    \"MMM dd, yyyy\",\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.fragment.app.FragmentActivity\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.screen.browse.ExtensionReposScreen\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil.authenticate\nimport kotlinx.collections.immutable.persistentListOf\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepoCount\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject SettingsBrowseScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.browse\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val sourcePreferences = remember { Injekt.get<SourcePreferences>() }\n        val getExtensionRepoCount = remember { Injekt.get<GetExtensionRepoCount>() }\n\n        val reposCount by getExtensionRepoCount.subscribe().collectAsState(0)\n\n        return listOf(\n            Preference.PreferenceGroup(\n                title = stringResource(MR.strings.label_sources),\n                preferenceItems = persistentListOf(\n                    Preference.PreferenceItem.SwitchPreference(\n                        preference = sourcePreferences.hideInLibraryItems,\n                        title = stringResource(MR.strings.pref_hide_in_library_items),\n                    ),\n                    Preference.PreferenceItem.TextPreference(\n                        title = stringResource(MR.strings.label_extension_repos),\n                        subtitle = pluralStringResource(MR.plurals.num_repos, reposCount, reposCount),\n                        onClick = {\n                            navigator.push(ExtensionReposScreen())\n                        },\n                    ),\n                ),\n            ),\n            Preference.PreferenceGroup(\n                title = stringResource(MR.strings.pref_category_nsfw_content),\n                preferenceItems = persistentListOf(\n                    Preference.PreferenceItem.SwitchPreference(\n                        preference = sourcePreferences.showNsfwSource,\n                        title = stringResource(MR.strings.pref_show_nsfw_source),\n                        subtitle = stringResource(MR.strings.requires_app_restart),\n                        onValueChanged = {\n                            (context as FragmentActivity).authenticate(\n                                title = context.stringResource(MR.strings.pref_category_nsfw_content),\n                            )\n                        },\n                    ),\n                    Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.parental_controls_info)),\n                ),\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport android.content.ActivityNotFoundException\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport androidx.activity.compose.ManagedActivityResultLauncher\nimport androidx.activity.compose.rememberLauncherForActivityResult\nimport androidx.activity.result.contract.ActivityResultContracts\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.IntrinsicSize\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Checkbox\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MultiChoiceSegmentedButtonRow\nimport androidx.compose.material3.SegmentedButton\nimport androidx.compose.material3.SegmentedButtonDefaults\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.core.net.toUri\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport com.hippo.unifile.UniFile\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.screen.data.CreateBackupScreen\nimport eu.kanade.presentation.more.settings.screen.data.RestoreBackupScreen\nimport eu.kanade.presentation.more.settings.screen.data.StorageInfo\nimport eu.kanade.presentation.more.settings.widget.BasePreferenceWidget\nimport eu.kanade.presentation.more.settings.widget.PrefsHorizontalPadding\nimport eu.kanade.presentation.util.relativeTimeSpanString\nimport eu.kanade.tachiyomi.data.backup.create.BackupCreateJob\nimport eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob\nimport eu.kanade.tachiyomi.data.cache.ChapterCache\nimport eu.kanade.tachiyomi.data.export.LibraryExporter\nimport eu.kanade.tachiyomi.data.export.LibraryExporter.ExportOptions\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.storage.displayablePath\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.backup.service.BackupPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetFavorites\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.storage.service.StoragePreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.TextButton\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject SettingsDataScreen : SearchableSettings {\n\n    val restorePreferenceKeyString = MR.strings.label_backup\n    const val HELP_URL = \"https://mihon.app/docs/faq/storage\"\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.label_data_storage\n\n    @Composable\n    override fun RowScope.AppBarAction() {\n        val uriHandler = LocalUriHandler.current\n        IconButton(onClick = { uriHandler.openUri(HELP_URL) }) {\n            Icon(\n                imageVector = Icons.AutoMirrored.Outlined.HelpOutline,\n                contentDescription = stringResource(MR.strings.tracking_guide),\n            )\n        }\n    }\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val backupPreferences = Injekt.get<BackupPreferences>()\n        val storagePreferences = Injekt.get<StoragePreferences>()\n\n        return persistentListOf(\n            getStorageLocationPref(storagePreferences = storagePreferences),\n            Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.pref_storage_location_info)),\n\n            getBackupAndRestoreGroup(backupPreferences = backupPreferences),\n            getDataGroup(),\n            getExportGroup(),\n        )\n    }\n\n    @Composable\n    fun storageLocationPicker(\n        storageDirPref: tachiyomi.core.common.preference.Preference<String>,\n    ): ManagedActivityResultLauncher<Uri?, Uri?> {\n        val context = LocalContext.current\n\n        return rememberLauncherForActivityResult(\n            contract = ActivityResultContracts.OpenDocumentTree(),\n        ) { uri ->\n            if (uri != null) {\n                val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or\n                    Intent.FLAG_GRANT_WRITE_URI_PERMISSION\n\n                // For some reason InkBook devices do not implement the SAF properly. Persistable URI grants do not\n                // work. However, simply retrieving the URI and using it works fine for these devices. Access is not\n                // revoked after the app is closed or the device is restarted.\n                // This also holds for some Samsung devices. Thus, we simply execute inside of a try-catch block and\n                // ignore the exception if it is thrown.\n                try {\n                    context.contentResolver.takePersistableUriPermission(uri, flags)\n                } catch (e: SecurityException) {\n                    logcat(LogPriority.ERROR, e)\n                    context.toast(MR.strings.file_picker_uri_permission_unsupported)\n                }\n\n                UniFile.fromUri(context, uri)?.let {\n                    storageDirPref.set(it.uri.toString())\n                }\n            }\n        }\n    }\n\n    @Composable\n    fun storageLocationText(\n        storageDirPref: tachiyomi.core.common.preference.Preference<String>,\n    ): String {\n        val context = LocalContext.current\n        val storageDir by storageDirPref.collectAsState()\n\n        if (storageDir == storageDirPref.defaultValue()) {\n            return stringResource(MR.strings.no_location_set)\n        }\n\n        return remember(storageDir) {\n            val file = UniFile.fromUri(context, storageDir.toUri())\n            file?.displayablePath\n        } ?: stringResource(MR.strings.invalid_location, storageDir)\n    }\n\n    @Composable\n    private fun getStorageLocationPref(\n        storagePreferences: StoragePreferences,\n    ): Preference.PreferenceItem.TextPreference {\n        val context = LocalContext.current\n        val pickStorageLocation = storageLocationPicker(storagePreferences.baseStorageDirectory)\n\n        return Preference.PreferenceItem.TextPreference(\n            title = stringResource(MR.strings.pref_storage_location),\n            subtitle = storageLocationText(storagePreferences.baseStorageDirectory),\n            onClick = {\n                try {\n                    pickStorageLocation.launch(null)\n                } catch (e: ActivityNotFoundException) {\n                    context.toast(MR.strings.file_picker_error)\n                }\n            },\n        )\n    }\n\n    @Composable\n    private fun getBackupAndRestoreGroup(backupPreferences: BackupPreferences): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val lastAutoBackup by backupPreferences.lastAutoBackupTimestamp.collectAsState()\n\n        val chooseBackup = rememberLauncherForActivityResult(\n            object : ActivityResultContracts.GetContent() {\n                override fun createIntent(context: Context, input: String): Intent {\n                    val intent = super.createIntent(context, input)\n                    return Intent.createChooser(intent, context.stringResource(MR.strings.file_select_backup))\n                }\n            },\n        ) {\n            if (it == null) {\n                context.toast(MR.strings.file_null_uri_error)\n                return@rememberLauncherForActivityResult\n            }\n\n            navigator.push(RestoreBackupScreen(it.toString()))\n        }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.label_backup),\n            preferenceItems = persistentListOf(\n                // Manual actions\n                Preference.PreferenceItem.CustomPreference(\n                    title = stringResource(restorePreferenceKeyString),\n                ) {\n                    BasePreferenceWidget(\n                        subcomponent = {\n                            MultiChoiceSegmentedButtonRow(\n                                modifier = Modifier\n                                    .fillMaxWidth()\n                                    .height(intrinsicSize = IntrinsicSize.Min)\n                                    .padding(horizontal = PrefsHorizontalPadding),\n                            ) {\n                                SegmentedButton(\n                                    modifier = Modifier.fillMaxHeight(),\n                                    checked = false,\n                                    onCheckedChange = { navigator.push(CreateBackupScreen()) },\n                                    shape = SegmentedButtonDefaults.itemShape(0, 2),\n                                ) {\n                                    Text(stringResource(MR.strings.pref_create_backup))\n                                }\n                                SegmentedButton(\n                                    modifier = Modifier.fillMaxHeight(),\n                                    checked = false,\n                                    onCheckedChange = {\n                                        if (!BackupRestoreJob.isRunning(context)) {\n                                            if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {\n                                                context.toast(MR.strings.restore_miui_warning)\n                                            }\n\n                                            // no need to catch because it's wrapped with a chooser\n                                            chooseBackup.launch(\"*/*\")\n                                        } else {\n                                            context.toast(MR.strings.restore_in_progress)\n                                        }\n                                    },\n                                    shape = SegmentedButtonDefaults.itemShape(1, 2),\n                                ) {\n                                    Text(stringResource(MR.strings.pref_restore_backup))\n                                }\n                            }\n                        },\n                    )\n                },\n\n                // Automatic backups\n                Preference.PreferenceItem.ListPreference(\n                    preference = backupPreferences.backupInterval,\n                    entries = persistentMapOf(\n                        0 to stringResource(MR.strings.off),\n                        6 to stringResource(MR.strings.update_6hour),\n                        12 to stringResource(MR.strings.update_12hour),\n                        24 to stringResource(MR.strings.update_24hour),\n                        48 to stringResource(MR.strings.update_48hour),\n                        168 to stringResource(MR.strings.update_weekly),\n                    ),\n                    title = stringResource(MR.strings.pref_backup_interval),\n                    onValueChanged = {\n                        BackupCreateJob.setupTask(context, it)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.InfoPreference(\n                    stringResource(MR.strings.backup_info) + \"\\n\\n\" +\n                        stringResource(MR.strings.last_auto_backup_info, relativeTimeSpanString(lastAutoBackup)),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getDataGroup(): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val scope = rememberCoroutineScope()\n        val libraryPreferences = remember { Injekt.get<LibraryPreferences>() }\n\n        val chapterCache = remember { Injekt.get<ChapterCache>() }\n        var cacheReadableSizeSema by remember { mutableIntStateOf(0) }\n        val cacheReadableSize = remember(cacheReadableSizeSema) { chapterCache.readableSize }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_storage_usage),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.CustomPreference(\n                    title = stringResource(MR.strings.pref_storage_usage),\n                ) {\n                    BasePreferenceWidget(\n                        subcomponent = {\n                            StorageInfo(\n                                modifier = Modifier.padding(horizontal = PrefsHorizontalPadding),\n                            )\n                        },\n                    )\n                },\n\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.pref_clear_chapter_cache),\n                    subtitle = stringResource(MR.strings.used_cache, cacheReadableSize),\n                    onClick = {\n                        scope.launchNonCancellable {\n                            try {\n                                val deletedFiles = chapterCache.clear()\n                                withUIContext {\n                                    context.toast(context.stringResource(MR.strings.cache_deleted, deletedFiles))\n                                    cacheReadableSizeSema++\n                                }\n                            } catch (e: Throwable) {\n                                logcat(LogPriority.ERROR, e)\n                                withUIContext { context.toast(MR.strings.cache_delete_error) }\n                            }\n                        }\n                    },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.autoClearChapterCache,\n                    title = stringResource(MR.strings.pref_auto_clear_chapter_cache),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getExportGroup(): Preference.PreferenceGroup {\n        var showDialog by remember { mutableStateOf(false) }\n        var exportOptions by remember {\n            mutableStateOf(\n                ExportOptions(\n                    includeTitle = true,\n                    includeAuthor = true,\n                    includeArtist = true,\n                ),\n            )\n        }\n\n        val context = LocalContext.current\n        val scope = rememberCoroutineScope()\n        val getFavorites = remember { Injekt.get<GetFavorites>() }\n        var favorites by remember { mutableStateOf<List<Manga>>(emptyList()) }\n        LaunchedEffect(Unit) {\n            favorites = getFavorites.await()\n        }\n\n        val saveFileLauncher = rememberLauncherForActivityResult(\n            contract = ActivityResultContracts.CreateDocument(\"text/csv\"),\n        ) { uri ->\n            uri?.let {\n                scope.launch {\n                    LibraryExporter.exportToCsv(\n                        context = context,\n                        uri = it,\n                        favorites = favorites,\n                        options = exportOptions,\n                        onExportComplete = {\n                            scope.launch(Dispatchers.Main) {\n                                context.toast(MR.strings.library_exported)\n                            }\n                        },\n                    )\n                }\n            }\n        }\n\n        if (showDialog) {\n            ColumnSelectionDialog(\n                options = exportOptions,\n                onConfirm = { options ->\n                    exportOptions = options\n                    saveFileLauncher.launch(\"mihon_library.csv\")\n                },\n                onDismissRequest = { showDialog = false },\n            )\n        }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.export),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.library_list),\n                    onClick = { showDialog = true },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun ColumnSelectionDialog(\n        options: ExportOptions,\n        onConfirm: (ExportOptions) -> Unit,\n        onDismissRequest: () -> Unit,\n    ) {\n        var titleSelected by remember { mutableStateOf(options.includeTitle) }\n        var authorSelected by remember { mutableStateOf(options.includeAuthor) }\n        var artistSelected by remember { mutableStateOf(options.includeArtist) }\n\n        AlertDialog(\n            onDismissRequest = onDismissRequest,\n            title = {\n                Text(text = stringResource(MR.strings.migration_dialog_what_to_include))\n            },\n            text = {\n                Column {\n                    Row(verticalAlignment = Alignment.CenterVertically) {\n                        Checkbox(\n                            checked = titleSelected,\n                            onCheckedChange = { checked ->\n                                titleSelected = checked\n                                if (!checked) {\n                                    authorSelected = false\n                                    artistSelected = false\n                                }\n                            },\n                        )\n                        Text(text = stringResource(MR.strings.title))\n                    }\n\n                    Row(verticalAlignment = Alignment.CenterVertically) {\n                        Checkbox(\n                            checked = authorSelected,\n                            onCheckedChange = { authorSelected = it },\n                            enabled = titleSelected,\n                        )\n                        Text(text = stringResource(MR.strings.author))\n                    }\n\n                    Row(verticalAlignment = Alignment.CenterVertically) {\n                        Checkbox(\n                            checked = artistSelected,\n                            onCheckedChange = { artistSelected = it },\n                            enabled = titleSelected,\n                        )\n                        Text(text = stringResource(MR.strings.artist))\n                    }\n                }\n            },\n            confirmButton = {\n                TextButton(\n                    onClick = {\n                        onConfirm(\n                            ExportOptions(\n                                includeTitle = titleSelected,\n                                includeAuthor = authorSelected,\n                                includeArtist = artistSelected,\n                            ),\n                        )\n                        onDismissRequest()\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.action_save))\n                }\n            },\n            dismissButton = {\n                TextButton(onClick = onDismissRequest) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.util.fastMap\nimport eu.kanade.presentation.category.visualName\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.widget.TriStateListDialog\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toImmutableMap\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject SettingsDownloadScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.pref_category_downloads\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val getCategories = remember { Injekt.get<GetCategories>() }\n        val allCategories by getCategories.subscribe().collectAsState(initial = emptyList())\n\n        val downloadPreferences = remember { Injekt.get<DownloadPreferences>() }\n        val parallelSourceLimit by downloadPreferences.parallelSourceLimit.collectAsState()\n        val parallelPageLimit by downloadPreferences.parallelPageLimit.collectAsState()\n        return listOf(\n            Preference.PreferenceItem.SwitchPreference(\n                preference = downloadPreferences.downloadOnlyOverWifi,\n                title = stringResource(MR.strings.connected_to_wifi),\n            ),\n            Preference.PreferenceItem.SwitchPreference(\n                preference = downloadPreferences.saveChaptersAsCBZ,\n                title = stringResource(MR.strings.save_chapter_as_cbz),\n            ),\n            Preference.PreferenceItem.SwitchPreference(\n                preference = downloadPreferences.splitTallImages,\n                title = stringResource(MR.strings.split_tall_images),\n                subtitle = stringResource(MR.strings.split_tall_images_summary),\n            ),\n            Preference.PreferenceItem.SliderPreference(\n                value = parallelSourceLimit,\n                valueRange = 1..10,\n                title = stringResource(MR.strings.pref_download_concurrent_sources),\n                onValueChanged = { downloadPreferences.parallelSourceLimit.set(it) },\n            ),\n            Preference.PreferenceItem.SliderPreference(\n                value = parallelPageLimit,\n                valueRange = 1..15,\n                title = stringResource(MR.strings.pref_download_concurrent_pages),\n                subtitle = stringResource(MR.strings.pref_download_concurrent_pages_summary),\n                onValueChanged = { downloadPreferences.parallelPageLimit.set(it) },\n            ),\n            getDeleteChaptersGroup(\n                downloadPreferences = downloadPreferences,\n                categories = allCategories,\n            ),\n            getAutoDownloadGroup(\n                downloadPreferences = downloadPreferences,\n                allCategories = allCategories,\n            ),\n            getDownloadAheadGroup(downloadPreferences = downloadPreferences),\n        )\n    }\n\n    @Composable\n    private fun getDeleteChaptersGroup(\n        downloadPreferences: DownloadPreferences,\n        categories: List<Category>,\n    ): Preference.PreferenceGroup {\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_delete_chapters),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = downloadPreferences.removeAfterMarkedAsRead,\n                    title = stringResource(MR.strings.pref_remove_after_marked_as_read),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = downloadPreferences.removeAfterReadSlots,\n                    entries = persistentMapOf(\n                        -1 to stringResource(MR.strings.disabled),\n                        0 to stringResource(MR.strings.last_read_chapter),\n                        1 to stringResource(MR.strings.second_to_last),\n                        2 to stringResource(MR.strings.third_to_last),\n                        3 to stringResource(MR.strings.fourth_to_last),\n                        4 to stringResource(MR.strings.fifth_to_last),\n                    ),\n                    title = stringResource(MR.strings.pref_remove_after_read),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = downloadPreferences.removeBookmarkedChapters,\n                    title = stringResource(MR.strings.pref_remove_bookmarked_chapters),\n                ),\n                getExcludedCategoriesPreference(\n                    downloadPreferences = downloadPreferences,\n                    categories = { categories },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getExcludedCategoriesPreference(\n        downloadPreferences: DownloadPreferences,\n        categories: () -> List<Category>,\n    ): Preference.PreferenceItem.MultiSelectListPreference {\n        return Preference.PreferenceItem.MultiSelectListPreference(\n            preference = downloadPreferences.removeExcludeCategories,\n            entries = categories()\n                .associate { it.id.toString() to it.visualName }\n                .toImmutableMap(),\n            title = stringResource(MR.strings.pref_remove_exclude_categories),\n        )\n    }\n\n    @Composable\n    private fun getAutoDownloadGroup(\n        downloadPreferences: DownloadPreferences,\n        allCategories: List<Category>,\n    ): Preference.PreferenceGroup {\n        val downloadNewChaptersPref = downloadPreferences.downloadNewChapters\n        val downloadNewUnreadChaptersOnlyPref = downloadPreferences.downloadNewUnreadChaptersOnly\n        val downloadNewChapterCategoriesPref = downloadPreferences.downloadNewChapterCategories\n        val downloadNewChapterCategoriesExcludePref = downloadPreferences.downloadNewChapterCategoriesExclude\n\n        val downloadNewChapters by downloadNewChaptersPref.collectAsState()\n\n        val included by downloadNewChapterCategoriesPref.collectAsState()\n        val excluded by downloadNewChapterCategoriesExcludePref.collectAsState()\n        var showDialog by rememberSaveable { mutableStateOf(false) }\n        if (showDialog) {\n            TriStateListDialog(\n                title = stringResource(MR.strings.categories),\n                message = stringResource(MR.strings.pref_download_new_categories_details),\n                items = allCategories,\n                initialChecked = included.mapNotNull { id -> allCategories.find { it.id.toString() == id } },\n                initialInversed = excluded.mapNotNull { id -> allCategories.find { it.id.toString() == id } },\n                itemLabel = { it.visualName },\n                onDismissRequest = { showDialog = false },\n                onValueChanged = { newIncluded, newExcluded ->\n                    downloadNewChapterCategoriesPref.set(newIncluded.fastMap { it.id.toString() }.toSet())\n                    downloadNewChapterCategoriesExcludePref.set(newExcluded.fastMap { it.id.toString() }.toSet())\n                    showDialog = false\n                },\n            )\n        }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_auto_download),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = downloadNewChaptersPref,\n                    title = stringResource(MR.strings.pref_download_new),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = downloadNewUnreadChaptersOnlyPref,\n                    title = stringResource(MR.strings.pref_download_new_unread_chapters_only),\n                    enabled = downloadNewChapters,\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.categories),\n                    subtitle = getCategoriesLabel(\n                        allCategories = allCategories,\n                        included = included,\n                        excluded = excluded,\n                    ),\n                    enabled = downloadNewChapters,\n                    onClick = { showDialog = true },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getDownloadAheadGroup(\n        downloadPreferences: DownloadPreferences,\n    ): Preference.PreferenceGroup {\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.download_ahead),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = downloadPreferences.autoDownloadWhileReading,\n                    entries = listOf(0, 2, 3, 5, 10)\n                        .associateWith {\n                            if (it == 0) {\n                                stringResource(MR.strings.disabled)\n                            } else {\n                                pluralStringResource(MR.plurals.next_unread_chapters, count = it, it)\n                            }\n                        }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.auto_download_while_reading),\n                ),\n                Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.download_ahead_info)),\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.util.fastMap\nimport androidx.core.content.ContextCompat\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.category.visualName\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.widget.TriStateListDialog\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateJob\nimport eu.kanade.tachiyomi.ui.category.CategoryScreen\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toImmutableMap\nimport kotlinx.coroutines.launch\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.ResetCategoryFlags\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_CHARGING\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_NETWORK_NOT_METERED\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_ONLY_ON_WIFI\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_OUTSIDE_RELEASE_PERIOD\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MARK_DUPLICATE_CHAPTER_READ_EXISTING\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MARK_DUPLICATE_CHAPTER_READ_NEW\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject SettingsLibraryScreen : SearchableSettings {\n\n    @Composable\n    @ReadOnlyComposable\n    override fun getTitleRes() = MR.strings.pref_category_library\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val getCategories = remember { Injekt.get<GetCategories>() }\n        val libraryPreferences = remember { Injekt.get<LibraryPreferences>() }\n        val allCategories by getCategories.subscribe().collectAsState(initial = emptyList())\n\n        return listOf(\n            getCategoriesGroup(LocalNavigator.currentOrThrow, allCategories, libraryPreferences),\n            getGlobalUpdateGroup(allCategories, libraryPreferences),\n            getBehaviorGroup(libraryPreferences),\n        )\n    }\n\n    @Composable\n    private fun getCategoriesGroup(\n        navigator: Navigator,\n        allCategories: List<Category>,\n        libraryPreferences: LibraryPreferences,\n    ): Preference.PreferenceGroup {\n        val scope = rememberCoroutineScope()\n        val userCategoriesCount = allCategories.filterNot(Category::isSystemCategory).size\n\n        // For default category\n        val ids = listOf(libraryPreferences.defaultCategory.defaultValue()) +\n            allCategories.fastMap { it.id.toInt() }\n        val labels = listOf(stringResource(MR.strings.default_category_summary)) +\n            allCategories.fastMap { it.visualName }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.categories),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.action_edit_categories),\n                    subtitle = pluralStringResource(\n                        MR.plurals.num_categories,\n                        count = userCategoriesCount,\n                        userCategoriesCount,\n                    ),\n                    onClick = { navigator.push(CategoryScreen()) },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = libraryPreferences.defaultCategory,\n                    entries = ids.zip(labels).toMap().toImmutableMap(),\n                    title = stringResource(MR.strings.default_category),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.categorizedDisplaySettings,\n                    title = stringResource(MR.strings.categorized_display_settings),\n                    onValueChanged = {\n                        if (!it) {\n                            scope.launch {\n                                Injekt.get<ResetCategoryFlags>().await()\n                            }\n                        }\n                        true\n                    },\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getGlobalUpdateGroup(\n        allCategories: List<Category>,\n        libraryPreferences: LibraryPreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n\n        val autoUpdateIntervalPref = libraryPreferences.autoUpdateInterval\n        val autoUpdateCategoriesPref = libraryPreferences.updateCategories\n        val autoUpdateCategoriesExcludePref = libraryPreferences.updateCategoriesExclude\n\n        val autoUpdateInterval by autoUpdateIntervalPref.collectAsState()\n\n        val included by autoUpdateCategoriesPref.collectAsState()\n        val excluded by autoUpdateCategoriesExcludePref.collectAsState()\n        var showCategoriesDialog by rememberSaveable { mutableStateOf(false) }\n        if (showCategoriesDialog) {\n            TriStateListDialog(\n                title = stringResource(MR.strings.categories),\n                message = stringResource(MR.strings.pref_library_update_categories_details),\n                items = allCategories,\n                initialChecked = included.mapNotNull { id -> allCategories.find { it.id.toString() == id } },\n                initialInversed = excluded.mapNotNull { id -> allCategories.find { it.id.toString() == id } },\n                itemLabel = { it.visualName },\n                onDismissRequest = { showCategoriesDialog = false },\n                onValueChanged = { newIncluded, newExcluded ->\n                    autoUpdateCategoriesPref.set(newIncluded.map { it.id.toString() }.toSet())\n                    autoUpdateCategoriesExcludePref.set(newExcluded.map { it.id.toString() }.toSet())\n                    showCategoriesDialog = false\n                },\n            )\n        }\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_library_update),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = autoUpdateIntervalPref,\n                    entries = persistentMapOf(\n                        0 to stringResource(MR.strings.update_never),\n                        12 to stringResource(MR.strings.update_12hour),\n                        24 to stringResource(MR.strings.update_24hour),\n                        48 to stringResource(MR.strings.update_48hour),\n                        72 to stringResource(MR.strings.update_72hour),\n                        168 to stringResource(MR.strings.update_weekly),\n                    ),\n                    title = stringResource(MR.strings.pref_library_update_interval),\n                    onValueChanged = {\n                        LibraryUpdateJob.setupTask(context, it)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.MultiSelectListPreference(\n                    preference = libraryPreferences.autoUpdateDeviceRestrictions,\n                    entries = persistentMapOf(\n                        DEVICE_ONLY_ON_WIFI to stringResource(MR.strings.connected_to_wifi),\n                        DEVICE_NETWORK_NOT_METERED to stringResource(MR.strings.network_not_metered),\n                        DEVICE_CHARGING to stringResource(MR.strings.charging),\n                    ),\n                    title = stringResource(MR.strings.pref_library_update_restriction),\n                    subtitle = stringResource(MR.strings.restrictions),\n                    enabled = autoUpdateInterval > 0,\n                    onValueChanged = {\n                        // Post to event looper to allow the preference to be updated.\n                        ContextCompat.getMainExecutor(context).execute { LibraryUpdateJob.setupTask(context) }\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = stringResource(MR.strings.categories),\n                    subtitle = getCategoriesLabel(\n                        allCategories = allCategories,\n                        included = included,\n                        excluded = excluded,\n                    ),\n                    onClick = { showCategoriesDialog = true },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.autoUpdateMetadata,\n                    title = stringResource(MR.strings.pref_library_update_refresh_metadata),\n                    subtitle = stringResource(MR.strings.pref_library_update_refresh_metadata_summary),\n                ),\n                Preference.PreferenceItem.MultiSelectListPreference(\n                    preference = libraryPreferences.autoUpdateMangaRestrictions,\n                    entries = persistentMapOf(\n                        MANGA_HAS_UNREAD to stringResource(MR.strings.pref_update_only_completely_read),\n                        MANGA_NON_READ to stringResource(MR.strings.pref_update_only_started),\n                        MANGA_NON_COMPLETED to stringResource(MR.strings.pref_update_only_non_completed),\n                        MANGA_OUTSIDE_RELEASE_PERIOD to stringResource(MR.strings.pref_update_only_in_release_period),\n                    ),\n                    title = stringResource(MR.strings.pref_library_update_smart_update),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.newShowUpdatesCount,\n                    title = stringResource(MR.strings.pref_library_update_show_tab_badge),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getBehaviorGroup(\n        libraryPreferences: LibraryPreferences,\n    ): Preference.PreferenceGroup {\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_behavior),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = libraryPreferences.swipeToStartAction,\n                    entries = persistentMapOf(\n                        LibraryPreferences.ChapterSwipeAction.Disabled to\n                            stringResource(MR.strings.disabled),\n                        LibraryPreferences.ChapterSwipeAction.ToggleBookmark to\n                            stringResource(MR.strings.action_bookmark),\n                        LibraryPreferences.ChapterSwipeAction.ToggleRead to\n                            stringResource(MR.strings.action_mark_as_read),\n                        LibraryPreferences.ChapterSwipeAction.Download to\n                            stringResource(MR.strings.action_download),\n                    ),\n                    title = stringResource(MR.strings.pref_chapter_swipe_start),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = libraryPreferences.swipeToEndAction,\n                    entries = persistentMapOf(\n                        LibraryPreferences.ChapterSwipeAction.Disabled to\n                            stringResource(MR.strings.disabled),\n                        LibraryPreferences.ChapterSwipeAction.ToggleBookmark to\n                            stringResource(MR.strings.action_bookmark),\n                        LibraryPreferences.ChapterSwipeAction.ToggleRead to\n                            stringResource(MR.strings.action_mark_as_read),\n                        LibraryPreferences.ChapterSwipeAction.Download to\n                            stringResource(MR.strings.action_download),\n                    ),\n                    title = stringResource(MR.strings.pref_chapter_swipe_end),\n                ),\n                Preference.PreferenceItem.MultiSelectListPreference(\n                    preference = libraryPreferences.markDuplicateReadChapterAsRead,\n                    entries = persistentMapOf(\n                        MARK_DUPLICATE_CHAPTER_READ_EXISTING to\n                            stringResource(MR.strings.pref_mark_duplicate_read_chapter_read_existing),\n                        MARK_DUPLICATE_CHAPTER_READ_NEW to\n                            stringResource(MR.strings.pref_mark_duplicate_read_chapter_read_new),\n                    ),\n                    title = stringResource(MR.strings.pref_mark_duplicate_read_chapter_read),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = libraryPreferences.hideMissingChapters,\n                    title = stringResource(MR.strings.pref_hide_missing_chapter_indicators),\n                ),\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMainScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.itemsIndexed\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ChromeReaderMode\nimport androidx.compose.material.icons.outlined.Code\nimport androidx.compose.material.icons.outlined.CollectionsBookmark\nimport androidx.compose.material.icons.outlined.Explore\nimport androidx.compose.material.icons.outlined.GetApp\nimport androidx.compose.material.icons.outlined.Info\nimport androidx.compose.material.icons.outlined.Palette\nimport androidx.compose.material.icons.outlined.Search\nimport androidx.compose.material.icons.outlined.Security\nimport androidx.compose.material.icons.outlined.Storage\nimport androidx.compose.material.icons.outlined.Sync\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.TopAppBarDefaults\nimport androidx.compose.material3.rememberTopAppBarState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.toArgb\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.unit.dp\nimport androidx.core.graphics.ColorUtils\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.more.settings.screen.about.AboutScreen\nimport eu.kanade.presentation.more.settings.widget.TextPreferenceWidget\nimport eu.kanade.presentation.util.LocalBackPress\nimport eu.kanade.presentation.util.Screen\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport cafe.adriel.voyager.core.screen.Screen as VoyagerScreen\n\nobject SettingsMainScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        Content(twoPane = false)\n    }\n\n    @Composable\n    private fun getPalerSurface(): Color {\n        val surface = MaterialTheme.colorScheme.surface\n        val dark = isSystemInDarkTheme()\n        return remember(surface, dark) {\n            val arr = FloatArray(3)\n            ColorUtils.colorToHSL(surface.toArgb(), arr)\n            arr[2] = if (dark) {\n                arr[2] - 0.05f\n            } else {\n                arr[2] + 0.02f\n            }.coerceIn(0f, 1f)\n            Color.hsl(arr[0], arr[1], arr[2])\n        }\n    }\n\n    @Composable\n    fun Content(twoPane: Boolean) {\n        val navigator = LocalNavigator.currentOrThrow\n        val backPress = LocalBackPress.currentOrThrow\n        val containerColor = if (twoPane) getPalerSurface() else MaterialTheme.colorScheme.surface\n        val topBarState = rememberTopAppBarState()\n\n        Scaffold(\n            topBarScrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(topBarState),\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = stringResource(MR.strings.label_settings),\n                    navigateUp = backPress::invoke,\n                    actions = {\n                        AppBarActions(\n                            persistentListOf(\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.action_search),\n                                    icon = Icons.Outlined.Search,\n                                    onClick = { navigator.navigate(SettingsSearchScreen(), twoPane) },\n                                ),\n                            ),\n                        )\n                    },\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n            containerColor = containerColor,\n            content = { contentPadding ->\n                val state = rememberLazyListState()\n                val indexSelected = if (twoPane) {\n                    items.indexOfFirst { it.screen::class == navigator.items.first()::class }\n                        .also {\n                            LaunchedEffect(Unit) {\n                                state.animateScrollToItem(it)\n                                if (it > 0) {\n                                    // Lift scroll\n                                    topBarState.contentOffset = topBarState.heightOffsetLimit\n                                }\n                            }\n                        }\n                } else {\n                    null\n                }\n\n                LazyColumn(\n                    state = state,\n                    contentPadding = contentPadding,\n                ) {\n                    itemsIndexed(\n                        items = items,\n                        key = { _, item -> item.hashCode() },\n                    ) { index, item ->\n                        val selected = indexSelected == index\n                        var modifier: Modifier = Modifier\n                        var contentColor = LocalContentColor.current\n                        if (twoPane) {\n                            modifier = Modifier\n                                .padding(horizontal = 8.dp)\n                                .clip(RoundedCornerShape(24.dp))\n                                .then(\n                                    if (selected) {\n                                        Modifier.background(MaterialTheme.colorScheme.surfaceVariant)\n                                    } else {\n                                        Modifier\n                                    },\n                                )\n                            if (selected) {\n                                contentColor = MaterialTheme.colorScheme.onSurfaceVariant\n                            }\n                        }\n                        CompositionLocalProvider(LocalContentColor provides contentColor) {\n                            TextPreferenceWidget(\n                                modifier = modifier,\n                                title = stringResource(item.titleRes),\n                                subtitle = item.formatSubtitle(),\n                                icon = item.icon,\n                                onPreferenceClick = { navigator.navigate(item.screen, twoPane) },\n                            )\n                        }\n                    }\n                }\n            },\n        )\n    }\n\n    private fun Navigator.navigate(screen: VoyagerScreen, twoPane: Boolean) {\n        if (twoPane) replaceAll(screen) else push(screen)\n    }\n\n    private data class Item(\n        val titleRes: StringResource,\n        val subtitleRes: StringResource? = null,\n        val formatSubtitle: @Composable () -> String? = { subtitleRes?.let { stringResource(it) } },\n        val icon: ImageVector,\n        val screen: VoyagerScreen,\n    )\n\n    private val items = listOf(\n        Item(\n            titleRes = MR.strings.pref_category_appearance,\n            subtitleRes = MR.strings.pref_appearance_summary,\n            icon = Icons.Outlined.Palette,\n            screen = SettingsAppearanceScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_library,\n            subtitleRes = MR.strings.pref_library_summary,\n            icon = Icons.Outlined.CollectionsBookmark,\n            screen = SettingsLibraryScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_reader,\n            subtitleRes = MR.strings.pref_reader_summary,\n            icon = Icons.AutoMirrored.Outlined.ChromeReaderMode,\n            screen = SettingsReaderScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_downloads,\n            subtitleRes = MR.strings.pref_downloads_summary,\n            icon = Icons.Outlined.GetApp,\n            screen = SettingsDownloadScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_tracking,\n            subtitleRes = MR.strings.pref_tracking_summary,\n            icon = Icons.Outlined.Sync,\n            screen = SettingsTrackingScreen,\n        ),\n        Item(\n            titleRes = MR.strings.browse,\n            subtitleRes = MR.strings.pref_browse_summary,\n            icon = Icons.Outlined.Explore,\n            screen = SettingsBrowseScreen,\n        ),\n        Item(\n            titleRes = MR.strings.label_data_storage,\n            subtitleRes = MR.strings.pref_backup_summary,\n            icon = Icons.Outlined.Storage,\n            screen = SettingsDataScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_security,\n            subtitleRes = MR.strings.pref_security_summary,\n            icon = Icons.Outlined.Security,\n            screen = SettingsSecurityScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_advanced,\n            subtitleRes = MR.strings.pref_advanced_summary,\n            icon = Icons.Outlined.Code,\n            screen = SettingsAdvancedScreen,\n        ),\n        Item(\n            titleRes = MR.strings.pref_category_about,\n            formatSubtitle = {\n                \"${stringResource(MR.strings.app_name)} ${AboutScreen.getVersionName(withBuildDate = false)}\"\n            },\n            icon = Icons.Outlined.Info,\n            screen = AboutScreen,\n        ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalView\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport eu.kanade.tachiyomi.util.system.hasDisplayCutout\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toImmutableMap\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.text.NumberFormat\n\nobject SettingsReaderScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.pref_category_reader\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val readerPref = remember { Injekt.get<ReaderPreferences>() }\n\n        return listOf(\n            Preference.PreferenceItem.ListPreference(\n                preference = readerPref.defaultReadingMode,\n                entries = ReadingMode.entries.drop(1)\n                    .associate { it.flagValue to stringResource(it.stringRes) }\n                    .toImmutableMap(),\n                title = stringResource(MR.strings.pref_viewer_type),\n            ),\n            Preference.PreferenceItem.ListPreference(\n                preference = readerPref.doubleTapAnimSpeed,\n                entries = persistentMapOf(\n                    1 to stringResource(MR.strings.double_tap_anim_speed_0),\n                    500 to stringResource(MR.strings.double_tap_anim_speed_normal),\n                    250 to stringResource(MR.strings.double_tap_anim_speed_fast),\n                ),\n                title = stringResource(MR.strings.pref_double_tap_anim_speed),\n            ),\n            Preference.PreferenceItem.SwitchPreference(\n                preference = readerPref.showReadingMode,\n                title = stringResource(MR.strings.pref_show_reading_mode),\n                subtitle = stringResource(MR.strings.pref_show_reading_mode_summary),\n            ),\n            Preference.PreferenceItem.SwitchPreference(\n                preference = readerPref.showNavigationOverlayOnStart,\n                title = stringResource(MR.strings.pref_show_navigation_mode),\n                subtitle = stringResource(MR.strings.pref_show_navigation_mode_summary),\n            ),\n            Preference.PreferenceItem.SwitchPreference(\n                preference = readerPref.pageTransitions,\n                title = stringResource(MR.strings.pref_page_transitions),\n            ),\n            getDisplayGroup(readerPreferences = readerPref),\n            getEInkGroup(readerPreferences = readerPref),\n            getReadingGroup(readerPreferences = readerPref),\n            getPagedGroup(readerPreferences = readerPref),\n            getWebtoonGroup(readerPreferences = readerPref),\n            getNavigationGroup(readerPreferences = readerPref),\n            getActionsGroup(readerPreferences = readerPref),\n        )\n    }\n\n    @Composable\n    private fun getDisplayGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        val fullscreenPref = readerPreferences.fullscreen\n        val fullscreen by fullscreenPref.collectAsState()\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_display),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = readerPreferences.defaultOrientationType,\n                    entries = ReaderOrientation.entries.drop(1)\n                        .associate { it.flagValue to stringResource(it.stringRes) }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_rotation_type),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = readerPreferences.readerTheme,\n                    entries = persistentMapOf(\n                        1 to stringResource(MR.strings.black_background),\n                        2 to stringResource(MR.strings.gray_background),\n                        0 to stringResource(MR.strings.white_background),\n                        3 to stringResource(MR.strings.automatic_background),\n                    ),\n                    title = stringResource(MR.strings.pref_reader_theme),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = fullscreenPref,\n                    title = stringResource(MR.strings.pref_fullscreen),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.drawUnderCutout,\n                    title = stringResource(MR.strings.pref_cutout_short),\n                    enabled = LocalView.current.hasDisplayCutout() && fullscreen,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.keepScreenOn,\n                    title = stringResource(MR.strings.pref_keep_screen_on),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.showPageNumber,\n                    title = stringResource(MR.strings.pref_show_page_number),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getEInkGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        val flashPageState by readerPreferences.flashOnPageChange.collectAsState()\n\n        val flashMillisPref = readerPreferences.flashDurationMillis\n        val flashMillis by flashMillisPref.collectAsState()\n\n        val flashIntervalPref = readerPreferences.flashPageInterval\n        val flashInterval by flashIntervalPref.collectAsState()\n\n        val flashColorPref = readerPreferences.flashColor\n\n        return Preference.PreferenceGroup(\n            title = \"E-Ink\",\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.flashOnPageChange,\n                    title = stringResource(MR.strings.pref_flash_page),\n                    subtitle = stringResource(MR.strings.pref_flash_page_summ),\n                ),\n                Preference.PreferenceItem.SliderPreference(\n                    value = flashMillis / ReaderPreferences.MILLI_CONVERSION,\n                    valueRange = 1..15,\n                    title = stringResource(MR.strings.pref_flash_duration),\n                    valueString = stringResource(MR.strings.pref_flash_duration_summary, flashMillis),\n                    enabled = flashPageState,\n                    onValueChanged = { flashMillisPref.set(it * ReaderPreferences.MILLI_CONVERSION) },\n                ),\n                Preference.PreferenceItem.SliderPreference(\n                    value = flashInterval,\n                    valueRange = 1..10,\n                    title = stringResource(MR.strings.pref_flash_page_interval),\n                    valueString = pluralStringResource(MR.plurals.pref_pages, flashInterval, flashInterval),\n                    enabled = flashPageState,\n                    onValueChanged = { flashIntervalPref.set(it) },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = flashColorPref,\n                    entries = persistentMapOf(\n                        ReaderPreferences.FlashColor.BLACK to stringResource(MR.strings.pref_flash_style_black),\n                        ReaderPreferences.FlashColor.WHITE to stringResource(MR.strings.pref_flash_style_white),\n                        ReaderPreferences.FlashColor.WHITE_BLACK\n                            to stringResource(MR.strings.pref_flash_style_white_black),\n                    ),\n                    title = stringResource(MR.strings.pref_flash_with),\n                    enabled = flashPageState,\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getReadingGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_category_reading),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.skipRead,\n                    title = stringResource(MR.strings.pref_skip_read_chapters),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.skipFiltered,\n                    title = stringResource(MR.strings.pref_skip_filtered_chapters),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.skipDupe,\n                    title = stringResource(MR.strings.pref_skip_dupe_chapters),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.alwaysShowChapterTransition,\n                    title = stringResource(MR.strings.pref_always_show_chapter_transition),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getPagedGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        val navModePref = readerPreferences.navigationModePager\n        val imageScaleTypePref = readerPreferences.imageScaleType\n        val dualPageSplitPref = readerPreferences.dualPageSplitPaged\n        val rotateToFitPref = readerPreferences.dualPageRotateToFit\n\n        val navMode by navModePref.collectAsState()\n        val imageScaleType by imageScaleTypePref.collectAsState()\n        val dualPageSplit by dualPageSplitPref.collectAsState()\n        val rotateToFit by rotateToFitPref.collectAsState()\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pager_viewer),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = navModePref,\n                    entries = ReaderPreferences.TapZones\n                        .mapIndexed { index, it -> index to stringResource(it) }\n                        .toMap()\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_viewer_nav),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = readerPreferences.pagerNavInverted,\n                    entries = persistentListOf(\n                        ReaderPreferences.TappingInvertMode.NONE,\n                        ReaderPreferences.TappingInvertMode.HORIZONTAL,\n                        ReaderPreferences.TappingInvertMode.VERTICAL,\n                        ReaderPreferences.TappingInvertMode.BOTH,\n                    )\n                        .associateWith { stringResource(it.titleRes) }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_read_with_tapping_inverted),\n                    enabled = navMode != 5,\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = imageScaleTypePref,\n                    entries = ReaderPreferences.ImageScaleType\n                        .mapIndexed { index, it -> index + 1 to stringResource(it) }\n                        .toMap()\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_image_scale_type),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = readerPreferences.zoomStart,\n                    entries = ReaderPreferences.ZoomStart\n                        .mapIndexed { index, it -> index + 1 to stringResource(it) }\n                        .toMap()\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_zoom_start),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.cropBorders,\n                    title = stringResource(MR.strings.pref_crop_borders),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.landscapeZoom,\n                    title = stringResource(MR.strings.pref_landscape_zoom),\n                    enabled = imageScaleType == 1,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.navigateToPan,\n                    title = stringResource(MR.strings.pref_navigate_pan),\n                    enabled = navMode != 5,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = dualPageSplitPref,\n                    title = stringResource(MR.strings.pref_dual_page_split),\n                    onValueChanged = {\n                        rotateToFitPref.set(false)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.dualPageInvertPaged,\n                    title = stringResource(MR.strings.pref_dual_page_invert),\n                    subtitle = stringResource(MR.strings.pref_dual_page_invert_summary),\n                    enabled = dualPageSplit,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = rotateToFitPref,\n                    title = stringResource(MR.strings.pref_page_rotate),\n                    onValueChanged = {\n                        dualPageSplitPref.set(false)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.dualPageRotateToFitInvert,\n                    title = stringResource(MR.strings.pref_page_rotate_invert),\n                    enabled = rotateToFit,\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getWebtoonGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        val numberFormat = remember { NumberFormat.getPercentInstance() }\n\n        val navModePref = readerPreferences.navigationModeWebtoon\n        val dualPageSplitPref = readerPreferences.dualPageSplitWebtoon\n        val rotateToFitPref = readerPreferences.dualPageRotateToFitWebtoon\n        val webtoonSidePaddingPref = readerPreferences.webtoonSidePadding\n\n        val navMode by navModePref.collectAsState()\n        val dualPageSplit by dualPageSplitPref.collectAsState()\n        val rotateToFit by rotateToFitPref.collectAsState()\n        val webtoonSidePadding by webtoonSidePaddingPref.collectAsState()\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.webtoon_viewer),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.ListPreference(\n                    preference = navModePref,\n                    entries = ReaderPreferences.TapZones\n                        .mapIndexed { index, it -> index to stringResource(it) }\n                        .toMap()\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_viewer_nav),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = readerPreferences.webtoonNavInverted,\n                    entries = persistentListOf(\n                        ReaderPreferences.TappingInvertMode.NONE,\n                        ReaderPreferences.TappingInvertMode.HORIZONTAL,\n                        ReaderPreferences.TappingInvertMode.VERTICAL,\n                        ReaderPreferences.TappingInvertMode.BOTH,\n                    )\n                        .associateWith { stringResource(it.titleRes) }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.pref_read_with_tapping_inverted),\n                    enabled = navMode != 5,\n                ),\n                Preference.PreferenceItem.SliderPreference(\n                    value = webtoonSidePadding,\n                    valueRange = ReaderPreferences.let {\n                        it.WEBTOON_PADDING_MIN..it.WEBTOON_PADDING_MAX\n                    },\n                    title = stringResource(MR.strings.pref_webtoon_side_padding),\n                    valueString = numberFormat.format(webtoonSidePadding / 100f),\n                    onValueChanged = { webtoonSidePaddingPref.set(it) },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = readerPreferences.readerHideThreshold,\n                    entries = persistentMapOf(\n                        ReaderPreferences.ReaderHideThreshold.HIGHEST to stringResource(MR.strings.pref_highest),\n                        ReaderPreferences.ReaderHideThreshold.HIGH to stringResource(MR.strings.pref_high),\n                        ReaderPreferences.ReaderHideThreshold.LOW to stringResource(MR.strings.pref_low),\n                        ReaderPreferences.ReaderHideThreshold.LOWEST to stringResource(MR.strings.pref_lowest),\n                    ),\n                    title = stringResource(MR.strings.pref_hide_threshold),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.cropBordersWebtoon,\n                    title = stringResource(MR.strings.pref_crop_borders),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = dualPageSplitPref,\n                    title = stringResource(MR.strings.pref_dual_page_split),\n                    onValueChanged = {\n                        rotateToFitPref.set(false)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.dualPageInvertWebtoon,\n                    title = stringResource(MR.strings.pref_dual_page_invert),\n                    subtitle = stringResource(MR.strings.pref_dual_page_invert_summary),\n                    enabled = dualPageSplit,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = rotateToFitPref,\n                    title = stringResource(MR.strings.pref_page_rotate),\n                    onValueChanged = {\n                        dualPageSplitPref.set(false)\n                        true\n                    },\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.dualPageRotateToFitInvertWebtoon,\n                    title = stringResource(MR.strings.pref_page_rotate_invert),\n                    enabled = rotateToFit,\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.webtoonDoubleTapZoomEnabled,\n                    title = stringResource(MR.strings.pref_double_tap_zoom),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.webtoonDisableZoomOut,\n                    title = stringResource(MR.strings.pref_webtoon_disable_zoom_out),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getNavigationGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        val readWithVolumeKeysPref = readerPreferences.readWithVolumeKeys\n        val readWithVolumeKeys by readWithVolumeKeysPref.collectAsState()\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_reader_navigation),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readWithVolumeKeysPref,\n                    title = stringResource(MR.strings.pref_read_with_volume_keys),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.readWithVolumeKeysInverted,\n                    title = stringResource(MR.strings.pref_read_with_volume_keys_inverted),\n                    enabled = readWithVolumeKeys,\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getActionsGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_reader_actions),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.readWithLongTap,\n                    title = stringResource(MR.strings.pref_read_with_long_tap),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = readerPreferences.folderPerManga,\n                    title = stringResource(MR.strings.pref_create_folder_per_manga),\n                    subtitle = stringResource(MR.strings.pref_create_folder_per_manga_summary),\n                ),\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSearchScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.animation.Crossfade\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.paddingFromBaseline\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.text.BasicTextField\nimport androidx.compose.foundation.text.KeyboardOptions\nimport androidx.compose.foundation.text.input.TextFieldLineLimits\nimport androidx.compose.foundation.text.input.clearText\nimport androidx.compose.foundation.text.input.rememberTextFieldState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TopAppBar\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.DisposableEffect\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.NonRestartableComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.produceState\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.platform.LocalFocusManager\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.platform.LocalSoftwareKeyboardController\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.input.ImeAction\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.LayoutDirection\nimport androidx.compose.ui.unit.dp\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.UpIcon\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.util.Screen\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.util.runOnEnterKeyPressed\nimport cafe.adriel.voyager.core.screen.Screen as VoyagerScreen\n\nclass SettingsSearchScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val softKeyboardController = LocalSoftwareKeyboardController.current\n        val focusManager = LocalFocusManager.current\n        val focusRequester = remember { FocusRequester() }\n        val listState = rememberLazyListState()\n\n        // Hide keyboard on change screen\n        DisposableEffect(Unit) {\n            onDispose {\n                softKeyboardController?.hide()\n            }\n        }\n\n        // Hide keyboard on outside text field is touched\n        LaunchedEffect(listState.isScrollInProgress) {\n            if (listState.isScrollInProgress) {\n                focusManager.clearFocus()\n            }\n        }\n\n        // Request text field focus on launch\n        LaunchedEffect(focusRequester) {\n            focusRequester.requestFocus()\n        }\n\n        val textFieldState = rememberTextFieldState()\n        Scaffold(\n            topBar = {\n                Column {\n                    TopAppBar(\n                        navigationIcon = {\n                            val canPop = remember { navigator.canPop }\n                            if (canPop) {\n                                IconButton(onClick = navigator::pop) {\n                                    UpIcon()\n                                }\n                            }\n                        },\n                        title = {\n                            BasicTextField(\n                                state = textFieldState,\n                                modifier = Modifier\n                                    .fillMaxWidth()\n                                    .focusRequester(focusRequester)\n                                    .runOnEnterKeyPressed(action = focusManager::clearFocus),\n                                textStyle = MaterialTheme.typography.bodyLarge\n                                    .copy(color = MaterialTheme.colorScheme.onSurface),\n                                lineLimits = TextFieldLineLimits.SingleLine,\n                                keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search),\n                                onKeyboardAction = { focusManager.clearFocus() },\n                                cursorBrush = SolidColor(MaterialTheme.colorScheme.primary),\n                                decorator = {\n                                    if (textFieldState.text.isEmpty()) {\n                                        Text(\n                                            text = stringResource(MR.strings.action_search_settings),\n                                            color = MaterialTheme.colorScheme.onSurfaceVariant,\n                                            style = MaterialTheme.typography.bodyLarge,\n                                        )\n                                    }\n                                    it()\n                                },\n                            )\n                        },\n                        actions = {\n                            if (textFieldState.text.isNotEmpty()) {\n                                IconButton(onClick = { textFieldState.clearText() }) {\n                                    Icon(\n                                        imageVector = Icons.Outlined.Close,\n                                        contentDescription = null,\n                                        tint = MaterialTheme.colorScheme.onSurfaceVariant,\n                                    )\n                                }\n                            }\n                        },\n                    )\n                    HorizontalDivider()\n                }\n            },\n        ) { contentPadding ->\n            SearchResult(\n                searchKey = textFieldState.text.toString(),\n                listState = listState,\n                contentPadding = contentPadding,\n            ) { result ->\n                SearchableSettings.highlightKey = result.highlightKey\n                navigator.replace(result.route)\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun SearchResult(\n    searchKey: String,\n    modifier: Modifier = Modifier,\n    listState: LazyListState = rememberLazyListState(),\n    contentPadding: PaddingValues = PaddingValues(),\n    onItemClick: (SearchResultItem) -> Unit,\n) {\n    if (searchKey.isEmpty()) return\n\n    val isLtr = LocalLayoutDirection.current == LayoutDirection.Ltr\n\n    val index = getIndex()\n    val result by produceState<List<SearchResultItem>?>(initialValue = null, searchKey) {\n        value = index.asSequence()\n            .flatMap { settingsData ->\n                settingsData.contents.asSequence()\n                    // Only search from enabled prefs and one with valid title\n                    .filter { it.enabled && it.title.isNotBlank() }\n                    // Flatten items contained inside *enabled* PreferenceGroup\n                    .flatMap { p ->\n                        when (p) {\n                            is Preference.PreferenceGroup -> {\n                                if (p.enabled) {\n                                    p.preferenceItems.asSequence()\n                                        .filter { it.enabled && it.title.isNotBlank() }\n                                        .map { p.title to it }\n                                } else {\n                                    emptySequence()\n                                }\n                            }\n                            is Preference.PreferenceItem<*, *> -> sequenceOf(null to p)\n                        }\n                    }\n                    // Don't show info preference\n                    .filterNot { it.second is Preference.PreferenceItem.InfoPreference }\n                    // Filter by search query\n                    .filter { (_, p) ->\n                        val inTitle = p.title.contains(searchKey, true)\n                        val inSummary = p.subtitle?.contains(searchKey, true) ?: false\n                        inTitle || inSummary\n                    }\n                    // Map result data\n                    .map { (categoryTitle, p) ->\n                        SearchResultItem(\n                            route = settingsData.route,\n                            title = p.title,\n                            breadcrumbs = getLocalizedBreadcrumb(\n                                path = settingsData.title,\n                                node = categoryTitle,\n                                isLtr = isLtr,\n                            ),\n                            highlightKey = p.title,\n                        )\n                    }\n            }\n            .take(10) // Just take top 10 result for quicker result\n            .toList()\n    }\n\n    Crossfade(\n        targetState = result,\n        label = \"results\",\n    ) {\n        when {\n            it == null -> {}\n            it.isEmpty() -> {\n                EmptyScreen(stringResource(MR.strings.no_results_found))\n            }\n            else -> {\n                LazyColumn(\n                    modifier = modifier.fillMaxSize(),\n                    state = listState,\n                    contentPadding = contentPadding,\n                    horizontalAlignment = Alignment.CenterHorizontally,\n                ) {\n                    items(\n                        items = it,\n                        key = { i -> i.hashCode() },\n                    ) { item ->\n                        Column(\n                            modifier = Modifier\n                                .fillMaxWidth()\n                                .clickable { onItemClick(item) }\n                                .padding(horizontal = 24.dp, vertical = 14.dp),\n                        ) {\n                            Text(\n                                text = item.title,\n                                overflow = TextOverflow.Ellipsis,\n                                maxLines = 1,\n                                fontWeight = FontWeight.Normal,\n                                style = MaterialTheme.typography.titleMedium,\n                            )\n                            Text(\n                                text = item.breadcrumbs,\n                                modifier = Modifier.paddingFromBaseline(top = 16.dp),\n                                maxLines = 1,\n                                color = MaterialTheme.colorScheme.onSurfaceVariant,\n                                style = MaterialTheme.typography.bodySmall,\n                            )\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n\n@Composable\n@NonRestartableComposable\nprivate fun getIndex() = settingScreens\n    .map { screen ->\n        SettingsData(\n            title = stringResource(screen.getTitleRes()),\n            route = screen,\n            contents = screen.getPreferences(),\n        )\n    }\n\nprivate fun getLocalizedBreadcrumb(path: String, node: String?, isLtr: Boolean): String {\n    return if (node == null) {\n        path\n    } else {\n        if (isLtr) {\n            // This locale reads left to right.\n            \"$path > $node\"\n        } else {\n            // This locale reads right to left.\n            \"$node < $path\"\n        }\n    }\n}\n\nprivate val settingScreens = listOf(\n    SettingsAppearanceScreen,\n    SettingsLibraryScreen,\n    SettingsReaderScreen,\n    SettingsDownloadScreen,\n    SettingsTrackingScreen,\n    SettingsBrowseScreen,\n    SettingsDataScreen,\n    SettingsSecurityScreen,\n    SettingsAdvancedScreen,\n)\n\nprivate data class SettingsData(\n    val title: String,\n    val route: VoyagerScreen,\n    val contents: List<Preference>,\n)\n\nprivate data class SearchResultItem(\n    val route: VoyagerScreen,\n    val title: String,\n    val breadcrumbs: String,\n    val highlightKey: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.fragment.app.FragmentActivity\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.tachiyomi.core.security.PrivacyPreferences\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil.authenticate\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported\nimport eu.kanade.tachiyomi.util.system.telemetryIncluded\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableMap\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject SettingsSecurityScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.pref_category_security\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val securityPreferences = remember { Injekt.get<SecurityPreferences>() }\n        val privacyPreferences = remember { Injekt.get<PrivacyPreferences>() }\n        return buildList(2) {\n            add(getSecurityGroup(securityPreferences))\n            if (!telemetryIncluded) return@buildList\n            add(getFirebaseGroup(privacyPreferences))\n        }\n    }\n\n    @Composable\n    private fun getSecurityGroup(\n        securityPreferences: SecurityPreferences,\n    ): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val authSupported = remember { context.isAuthenticationSupported() }\n        val useAuthPref = securityPreferences.useAuthenticator\n        val useAuth by useAuthPref.collectAsState()\n\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_security),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = useAuthPref,\n                    title = stringResource(MR.strings.lock_with_biometrics),\n                    enabled = authSupported,\n                    onValueChanged = {\n                        (context as FragmentActivity).authenticate(\n                            title = context.stringResource(MR.strings.lock_with_biometrics),\n                        )\n                    },\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = securityPreferences.lockAppAfter,\n                    entries = LockAfterValues\n                        .associateWith {\n                            when (it) {\n                                -1 -> stringResource(MR.strings.lock_never)\n                                0 -> stringResource(MR.strings.lock_always)\n                                else -> pluralStringResource(MR.plurals.lock_after_mins, count = it, it)\n                            }\n                        }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.lock_when_idle),\n                    enabled = authSupported && useAuth,\n                    onValueChanged = {\n                        (context as FragmentActivity).authenticate(\n                            title = context.stringResource(MR.strings.lock_when_idle),\n                        )\n                    },\n                ),\n\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = securityPreferences.hideNotificationContent,\n                    title = stringResource(MR.strings.hide_notification_content),\n                ),\n                Preference.PreferenceItem.ListPreference(\n                    preference = securityPreferences.secureScreen,\n                    entries = SecurityPreferences.SecureScreenMode.entries\n                        .associateWith { stringResource(it.titleRes) }\n                        .toImmutableMap(),\n                    title = stringResource(MR.strings.secure_screen),\n                ),\n                Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.secure_screen_summary)),\n            ),\n        )\n    }\n\n    @Composable\n    private fun getFirebaseGroup(\n        privacyPreferences: PrivacyPreferences,\n    ): Preference.PreferenceGroup {\n        return Preference.PreferenceGroup(\n            title = stringResource(MR.strings.pref_firebase),\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = privacyPreferences.crashlytics,\n                    title = stringResource(MR.strings.onboarding_permission_crashlytics),\n                    subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description),\n                ),\n                Preference.PreferenceItem.SwitchPreference(\n                    preference = privacyPreferences.analytics,\n                    title = stringResource(MR.strings.onboarding_permission_analytics),\n                    subtitle = stringResource(MR.strings.onboarding_permission_analytics_description),\n                ),\n                Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.firebase_summary)),\n            ),\n        )\n    }\n}\n\nprivate val LockAfterValues = persistentListOf(\n    0, // Always\n    1,\n    2,\n    5,\n    10,\n    -1, // Never\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen\n\nimport android.content.Context\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.text.KeyboardOptions\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material.icons.filled.Visibility\nimport androidx.compose.material.icons.filled.VisibilityOff\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.ButtonDefaults\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedButton\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.autofill.ContentType\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.semantics.contentType\nimport androidx.compose.ui.semantics.semantics\nimport androidx.compose.ui.text.input.ImeAction\nimport androidx.compose.ui.text.input.KeyboardType\nimport androidx.compose.ui.text.input.PasswordVisualTransformation\nimport androidx.compose.ui.text.input.TextFieldValue\nimport androidx.compose.ui.text.input.VisualTransformation\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.dp\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.domain.track.model.AutoTrackState\nimport eu.kanade.domain.track.service.TrackPreferences\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.data.track.anilist.AnilistApi\nimport eu.kanade.tachiyomi.data.track.bangumi.BangumiApi\nimport eu.kanade.tachiyomi.data.track.myanimelist.MyAnimeListApi\nimport eu.kanade.tachiyomi.data.track.shikimori.ShikimoriApi\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.collections.immutable.toPersistentMap\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject SettingsTrackingScreen : SearchableSettings {\n\n    @ReadOnlyComposable\n    @Composable\n    override fun getTitleRes() = MR.strings.pref_category_tracking\n\n    @Composable\n    override fun RowScope.AppBarAction() {\n        val uriHandler = LocalUriHandler.current\n        IconButton(onClick = { uriHandler.openUri(\"https://mihon.app/docs/guides/tracking\") }) {\n            Icon(\n                imageVector = Icons.AutoMirrored.Outlined.HelpOutline,\n                contentDescription = stringResource(MR.strings.tracking_guide),\n            )\n        }\n    }\n\n    @Composable\n    override fun getPreferences(): List<Preference> {\n        val context = LocalContext.current\n        val trackPreferences = remember { Injekt.get<TrackPreferences>() }\n        val trackerManager = remember { Injekt.get<TrackerManager>() }\n        val sourceManager = remember { Injekt.get<SourceManager>() }\n        val autoTrackStatePref = trackPreferences.autoUpdateTrackOnMarkRead\n\n        var dialog by remember { mutableStateOf<Any?>(null) }\n        dialog?.run {\n            when (this) {\n                is LoginDialog -> {\n                    TrackingLoginDialog(\n                        tracker = tracker,\n                        uNameStringRes = uNameStringRes,\n                        onDismissRequest = { dialog = null },\n                    )\n                }\n                is LogoutDialog -> {\n                    TrackingLogoutDialog(\n                        tracker = tracker,\n                        onDismissRequest = { dialog = null },\n                    )\n                }\n            }\n        }\n\n        val enhancedTrackers = trackerManager.trackers\n            .filter { it is EnhancedTracker }\n            .partition { service ->\n                val acceptedSources = (service as EnhancedTracker).getAcceptedSources()\n                sourceManager.getCatalogueSources().any { it::class.qualifiedName in acceptedSources }\n            }\n        var enhancedTrackerInfo = stringResource(MR.strings.enhanced_tracking_info)\n        if (enhancedTrackers.second.isNotEmpty()) {\n            val missingSourcesInfo = stringResource(\n                MR.strings.enhanced_services_not_installed,\n                enhancedTrackers.second.joinToString { it.name },\n            )\n            enhancedTrackerInfo += \"\\n\\n$missingSourcesInfo\"\n        }\n\n        return listOf(\n            Preference.PreferenceItem.SwitchPreference(\n                preference = trackPreferences.autoUpdateTrack,\n                title = stringResource(MR.strings.pref_auto_update_manga_sync),\n            ),\n            Preference.PreferenceItem.ListPreference(\n                preference = trackPreferences.autoUpdateTrackOnMarkRead,\n                entries = AutoTrackState.entries\n                    .associateWith { stringResource(it.titleRes) }\n                    .toPersistentMap(),\n                title = stringResource(MR.strings.pref_auto_update_manga_on_mark_read),\n            ),\n            Preference.PreferenceGroup(\n                title = stringResource(MR.strings.services),\n                preferenceItems = persistentListOf(\n                    Preference.PreferenceItem.TrackerPreference(\n                        tracker = trackerManager.myAnimeList,\n                        login = { context.openInBrowser(MyAnimeListApi.authUrl(), forceDefaultBrowser = true) },\n                        logout = { dialog = LogoutDialog(trackerManager.myAnimeList) },\n                    ),\n                    Preference.PreferenceItem.TrackerPreference(\n                        tracker = trackerManager.aniList,\n                        login = { context.openInBrowser(AnilistApi.authUrl(), forceDefaultBrowser = true) },\n                        logout = { dialog = LogoutDialog(trackerManager.aniList) },\n                    ),\n                    Preference.PreferenceItem.TrackerPreference(\n                        tracker = trackerManager.kitsu,\n                        login = { dialog = LoginDialog(trackerManager.kitsu, MR.strings.email) },\n                        logout = { dialog = LogoutDialog(trackerManager.kitsu) },\n                    ),\n                    Preference.PreferenceItem.TrackerPreference(\n                        tracker = trackerManager.mangaUpdates,\n                        login = { dialog = LoginDialog(trackerManager.mangaUpdates, MR.strings.username) },\n                        logout = { dialog = LogoutDialog(trackerManager.mangaUpdates) },\n                    ),\n                    Preference.PreferenceItem.TrackerPreference(\n                        tracker = trackerManager.shikimori,\n                        login = { context.openInBrowser(ShikimoriApi.authUrl(), forceDefaultBrowser = true) },\n                        logout = { dialog = LogoutDialog(trackerManager.shikimori) },\n                    ),\n                    Preference.PreferenceItem.TrackerPreference(\n                        tracker = trackerManager.bangumi,\n                        login = { context.openInBrowser(BangumiApi.authUrl(), forceDefaultBrowser = true) },\n                        logout = { dialog = LogoutDialog(trackerManager.bangumi) },\n                    ),\n                    Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.tracking_info)),\n                ),\n            ),\n            Preference.PreferenceGroup(\n                title = stringResource(MR.strings.enhanced_services),\n                preferenceItems = (\n                    enhancedTrackers.first\n                        .map { service ->\n                            Preference.PreferenceItem.TrackerPreference(\n                                tracker = service,\n                                login = { (service as EnhancedTracker).loginNoop() },\n                                logout = service::logout,\n                            )\n                        } + listOf(Preference.PreferenceItem.InfoPreference(enhancedTrackerInfo))\n                    ).toImmutableList(),\n            ),\n        )\n    }\n\n    @Composable\n    private fun TrackingLoginDialog(\n        tracker: Tracker,\n        uNameStringRes: StringResource,\n        onDismissRequest: () -> Unit,\n    ) {\n        val context = LocalContext.current\n        val scope = rememberCoroutineScope()\n\n        var username by remember { mutableStateOf(TextFieldValue(tracker.getUsername())) }\n        var password by remember { mutableStateOf(TextFieldValue(tracker.getPassword())) }\n        var processing by remember { mutableStateOf(false) }\n        var inputError by remember { mutableStateOf(false) }\n\n        AlertDialog(\n            onDismissRequest = onDismissRequest,\n            title = {\n                Row(verticalAlignment = Alignment.CenterVertically) {\n                    Text(\n                        text = stringResource(MR.strings.login_title, tracker.name),\n                        modifier = Modifier.weight(1f),\n                    )\n                    IconButton(onClick = onDismissRequest) {\n                        Icon(\n                            imageVector = Icons.Outlined.Close,\n                            contentDescription = stringResource(MR.strings.action_close),\n                        )\n                    }\n                }\n            },\n            text = {\n                Column(verticalArrangement = Arrangement.spacedBy(12.dp)) {\n                    OutlinedTextField(\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .semantics { contentType = ContentType.Username + ContentType.EmailAddress },\n                        value = username,\n                        onValueChange = { username = it },\n                        label = { Text(text = stringResource(uNameStringRes)) },\n                        keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next),\n                        singleLine = true,\n                        isError = inputError && !processing,\n                    )\n\n                    var hidePassword by remember { mutableStateOf(true) }\n                    OutlinedTextField(\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .semantics { contentType = ContentType.Password },\n                        value = password,\n                        onValueChange = { password = it },\n                        label = { Text(text = stringResource(MR.strings.password)) },\n                        trailingIcon = {\n                            IconButton(onClick = { hidePassword = !hidePassword }) {\n                                Icon(\n                                    imageVector = if (hidePassword) {\n                                        Icons.Filled.Visibility\n                                    } else {\n                                        Icons.Filled.VisibilityOff\n                                    },\n                                    contentDescription = null,\n                                )\n                            }\n                        },\n                        visualTransformation = if (hidePassword) {\n                            PasswordVisualTransformation()\n                        } else {\n                            VisualTransformation.None\n                        },\n                        keyboardOptions = KeyboardOptions(\n                            keyboardType = KeyboardType.Password,\n                            imeAction = ImeAction.Done,\n                        ),\n                        singleLine = true,\n                        isError = inputError && !processing,\n                    )\n                }\n            },\n            confirmButton = {\n                Button(\n                    modifier = Modifier.fillMaxWidth(),\n                    enabled = !processing && username.text.isNotBlank() && password.text.isNotBlank(),\n                    onClick = {\n                        scope.launchIO {\n                            processing = true\n                            val result = checkLogin(\n                                context = context,\n                                tracker = tracker,\n                                username = username.text,\n                                password = password.text,\n                            )\n                            inputError = !result\n                            if (result) onDismissRequest()\n                            processing = false\n                        }\n                    },\n                ) {\n                    val id = if (processing) MR.strings.logging_in else MR.strings.login\n                    Text(text = stringResource(id))\n                }\n            },\n        )\n    }\n\n    private suspend fun checkLogin(\n        context: Context,\n        tracker: Tracker,\n        username: String,\n        password: String,\n    ): Boolean {\n        return try {\n            tracker.login(username, password)\n            withUIContext { context.toast(MR.strings.login_success) }\n            true\n        } catch (e: Throwable) {\n            tracker.logout()\n            withUIContext { context.toast(e.message.toString()) }\n            false\n        }\n    }\n\n    @Composable\n    private fun TrackingLogoutDialog(\n        tracker: Tracker,\n        onDismissRequest: () -> Unit,\n    ) {\n        val context = LocalContext.current\n        AlertDialog(\n            onDismissRequest = onDismissRequest,\n            title = {\n                Text(\n                    text = stringResource(MR.strings.logout_title, tracker.name),\n                    textAlign = TextAlign.Center,\n                    modifier = Modifier.fillMaxWidth(),\n                )\n            },\n            confirmButton = {\n                Row(horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall)) {\n                    OutlinedButton(\n                        modifier = Modifier.weight(1f),\n                        onClick = onDismissRequest,\n                    ) {\n                        Text(text = stringResource(MR.strings.action_cancel))\n                    }\n                    Button(\n                        modifier = Modifier.weight(1f),\n                        onClick = {\n                            tracker.logout()\n                            onDismissRequest()\n                            context.toast(MR.strings.logout_success)\n                        },\n                        colors = ButtonDefaults.buttonColors(\n                            containerColor = MaterialTheme.colorScheme.error,\n                            contentColor = MaterialTheme.colorScheme.onError,\n                        ),\n                    ) {\n                        Text(text = stringResource(MR.strings.logout))\n                    }\n                }\n            },\n        )\n    }\n}\n\nprivate data class LoginDialog(\n    val tracker: Tracker,\n    val uNameStringRes: StringResource,\n)\n\nprivate data class LogoutDialog(\n    val tracker: Tracker,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.about\n\nimport android.content.Context\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Public\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.unit.dp\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.more.LogoHeader\nimport eu.kanade.presentation.more.settings.widget.TextPreferenceWidget\nimport eu.kanade.presentation.util.LocalBackPress\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.updater.AppUpdateChecker\nimport eu.kanade.tachiyomi.data.updater.RELEASE_URL\nimport eu.kanade.tachiyomi.ui.more.NewUpdateScreen\nimport eu.kanade.tachiyomi.util.CrashLogUtil\nimport eu.kanade.tachiyomi.util.lang.toDateTimestampString\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport eu.kanade.tachiyomi.util.system.isPreviewBuildType\nimport eu.kanade.tachiyomi.util.system.toast\nimport eu.kanade.tachiyomi.util.system.updaterEnabled\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.release.interactor.GetApplicationRelease\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LinkIcon\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.icons.CustomIcons\nimport tachiyomi.presentation.core.icons.Discord\nimport tachiyomi.presentation.core.icons.Facebook\nimport tachiyomi.presentation.core.icons.Github\nimport tachiyomi.presentation.core.icons.Reddit\nimport tachiyomi.presentation.core.icons.X\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.LocalDateTime\nimport java.time.ZoneId\n\nobject AboutScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val scope = rememberCoroutineScope()\n        val context = LocalContext.current\n        val uriHandler = LocalUriHandler.current\n        val handleBack = LocalBackPress.current\n        val navigator = LocalNavigator.currentOrThrow\n        var isCheckingUpdates by remember { mutableStateOf(false) }\n\n        Scaffold(\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = stringResource(MR.strings.pref_category_about),\n                    navigateUp = if (handleBack != null) handleBack::invoke else null,\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n        ) { contentPadding ->\n            ScrollbarLazyColumn(\n                contentPadding = contentPadding,\n            ) {\n                item {\n                    LogoHeader()\n                }\n\n                item {\n                    TextPreferenceWidget(\n                        title = stringResource(MR.strings.version),\n                        subtitle = getVersionName(withBuildDate = true),\n                        onPreferenceClick = {\n                            val deviceInfo = CrashLogUtil(context).getDebugInfo()\n                            context.copyToClipboard(\"Debug information\", deviceInfo)\n                        },\n                    )\n                }\n\n                if (updaterEnabled) {\n                    item {\n                        TextPreferenceWidget(\n                            title = stringResource(MR.strings.check_for_updates),\n                            widget = {\n                                AnimatedVisibility(visible = isCheckingUpdates) {\n                                    CircularProgressIndicator(\n                                        modifier = Modifier.size(28.dp),\n                                        strokeWidth = 3.dp,\n                                    )\n                                }\n                            },\n                            onPreferenceClick = {\n                                if (!isCheckingUpdates) {\n                                    scope.launch {\n                                        isCheckingUpdates = true\n\n                                        checkVersion(\n                                            context = context,\n                                            onAvailableUpdate = { result ->\n                                                val updateScreen = NewUpdateScreen(\n                                                    versionName = result.release.version,\n                                                    changelogInfo = result.release.info,\n                                                    releaseLink = result.release.releaseLink,\n                                                    downloadLink = result.release.downloadLink,\n                                                )\n                                                navigator.push(updateScreen)\n                                            },\n                                            onFinish = {\n                                                isCheckingUpdates = false\n                                            },\n                                        )\n                                    }\n                                }\n                            },\n                        )\n                    }\n                }\n\n                if (!BuildConfig.DEBUG) {\n                    item {\n                        TextPreferenceWidget(\n                            title = stringResource(MR.strings.whats_new),\n                            onPreferenceClick = { uriHandler.openUri(RELEASE_URL) },\n                        )\n                    }\n                }\n\n                item {\n                    TextPreferenceWidget(\n                        title = stringResource(MR.strings.licenses),\n                        onPreferenceClick = { navigator.push(OpenSourceLicensesScreen()) },\n                    )\n                }\n\n                item {\n                    TextPreferenceWidget(\n                        title = stringResource(MR.strings.privacy_policy),\n                        onPreferenceClick = { uriHandler.openUri(\"https://mihon.app/privacy/\") },\n                    )\n                }\n\n                item {\n                    Row(\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .padding(vertical = 8.dp),\n                        horizontalArrangement = Arrangement.Center,\n                    ) {\n                        LinkIcon(\n                            label = stringResource(MR.strings.website),\n                            icon = Icons.Outlined.Public,\n                            url = \"https://mihon.app\",\n                        )\n                        LinkIcon(\n                            label = \"Discord\",\n                            icon = CustomIcons.Discord,\n                            url = \"https://discord.gg/mihon\",\n                        )\n                        LinkIcon(\n                            label = \"X\",\n                            icon = CustomIcons.X,\n                            url = \"https://x.com/mihonapp\",\n                        )\n                        LinkIcon(\n                            label = \"Facebook\",\n                            icon = CustomIcons.Facebook,\n                            url = \"https://facebook.com/mihonapp\",\n                        )\n                        LinkIcon(\n                            label = \"Reddit\",\n                            icon = CustomIcons.Reddit,\n                            url = \"https://www.reddit.com/r/mihonapp\",\n                        )\n                        LinkIcon(\n                            label = \"GitHub\",\n                            icon = CustomIcons.Github,\n                            url = \"https://github.com/mihonapp\",\n                        )\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Checks version and shows a user prompt if an update is available.\n     */\n    private suspend fun checkVersion(\n        context: Context,\n        onAvailableUpdate: (GetApplicationRelease.Result.NewUpdate) -> Unit,\n        onFinish: () -> Unit,\n    ) {\n        val updateChecker = AppUpdateChecker()\n        withUIContext {\n            try {\n                when (val result = withIOContext { updateChecker.checkForUpdate(context, forceCheck = true) }) {\n                    is GetApplicationRelease.Result.NewUpdate -> {\n                        onAvailableUpdate(result)\n                    }\n                    is GetApplicationRelease.Result.NoNewUpdate -> {\n                        context.toast(MR.strings.update_check_no_new_updates)\n                    }\n                    is GetApplicationRelease.Result.OsTooOld -> {\n                        context.toast(MR.strings.update_check_eol)\n                    }\n                }\n            } catch (e: Exception) {\n                context.toast(e.message)\n                logcat(LogPriority.ERROR, e)\n            } finally {\n                onFinish()\n            }\n        }\n    }\n\n    fun getVersionName(withBuildDate: Boolean): String {\n        return when {\n            BuildConfig.DEBUG -> {\n                \"Debug ${BuildConfig.COMMIT_SHA}\".let {\n                    if (withBuildDate) {\n                        \"$it (${getFormattedBuildTime()})\"\n                    } else {\n                        it\n                    }\n                }\n            }\n            isPreviewBuildType -> {\n                \"Beta r${BuildConfig.COMMIT_COUNT}\".let {\n                    if (withBuildDate) {\n                        \"$it (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})\"\n                    } else {\n                        \"$it (${BuildConfig.COMMIT_SHA})\"\n                    }\n                }\n            }\n            else -> {\n                \"Stable ${BuildConfig.VERSION_NAME}\".let {\n                    if (withBuildDate) {\n                        \"$it (${getFormattedBuildTime()})\"\n                    } else {\n                        it\n                    }\n                }\n            }\n        }\n    }\n\n    internal fun getFormattedBuildTime(): String {\n        return try {\n            LocalDateTime.ofInstant(\n                Instant.parse(BuildConfig.BUILD_TIME),\n                ZoneId.systemDefault(),\n            )\n                .toDateTimestampString(\n                    UiPreferences.dateFormat(\n                        Injekt.get<UiPreferences>().dateFormat.get(),\n                    ),\n                )\n        } catch (e: Exception) {\n            BuildConfig.BUILD_TIME\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/about/OpenSourceLibraryLicenseScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.about\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Public\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.viewinterop.AndroidView\nimport androidx.core.text.HtmlCompat\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport com.google.android.material.textview.MaterialTextView\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.util.Screen\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass OpenSourceLibraryLicenseScreen(\n    private val name: String,\n    private val website: String?,\n    private val license: String,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val uriHandler = LocalUriHandler.current\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = name,\n                    navigateUp = navigator::pop,\n                    actions = {\n                        if (!website.isNullOrEmpty()) {\n                            AppBarActions(\n                                persistentListOf(\n                                    AppBar.Action(\n                                        title = stringResource(MR.strings.website),\n                                        icon = Icons.Default.Public,\n                                        onClick = { uriHandler.openUri(website) },\n                                    ),\n                                ),\n                            )\n                        }\n                    },\n                    scrollBehavior = it,\n                )\n            },\n        ) { contentPadding ->\n            Column(\n                modifier = Modifier\n                    .verticalScroll(rememberScrollState())\n                    .padding(contentPadding)\n                    .padding(16.dp),\n            ) {\n                HtmlLicenseText(html = license)\n            }\n        }\n    }\n\n    @Composable\n    private fun HtmlLicenseText(html: String) {\n        AndroidView(\n            factory = {\n                MaterialTextView(it)\n            },\n            update = {\n                it.text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_COMPACT)\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/about/OpenSourceLicensesScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.about\n\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Modifier\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport com.mikepenz.aboutlibraries.ui.compose.android.produceLibraries\nimport com.mikepenz.aboutlibraries.ui.compose.m3.LibrariesContainer\nimport com.mikepenz.aboutlibraries.ui.compose.util.htmlReadyLicenseContent\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.R\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass OpenSourceLicensesScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        Scaffold(\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = stringResource(MR.strings.licenses),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n        ) { contentPadding ->\n            val libraries by produceLibraries(R.raw.aboutlibraries)\n            LibrariesContainer(\n                libraries = libraries,\n                modifier = Modifier\n                    .fillMaxSize(),\n                contentPadding = contentPadding,\n                onLibraryClick = {\n                    navigator.push(\n                        OpenSourceLibraryLicenseScreen(\n                            name = it.name,\n                            website = it.website,\n                            license = it.licenses.firstOrNull()?.htmlReadyLicenseContent.orEmpty(),\n                        ),\n                    )\n                },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/advanced/ClearDatabaseScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.advanced\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.FlipToBack\nimport androidx.compose.material.icons.outlined.SelectAll\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Checkbox\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Switch\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastMap\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.components.SourceIcon\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.update\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchUI\nimport tachiyomi.core.common.util.lang.toLong\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.data.Database\nimport tachiyomi.domain.source.interactor.GetSourcesWithNonLibraryManga\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.domain.source.model.SourceWithCount\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LazyColumnWithAction\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.util.selectedBackground\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ClearDatabaseScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val model = rememberScreenModel { ClearDatabaseScreenModel() }\n        val state by model.state.collectAsState()\n        val scope = rememberCoroutineScope()\n\n        when (val s = state) {\n            is ClearDatabaseScreenModel.State.Loading -> LoadingScreen()\n            is ClearDatabaseScreenModel.State.Ready -> {\n                if (s.showConfirmation) {\n                    var keepReadManga by remember { mutableStateOf(true) }\n                    AlertDialog(\n                        title = {\n                            Text(text = stringResource(MR.strings.are_you_sure))\n                        },\n                        text = {\n                            Column(\n                                verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                            ) {\n                                Text(text = stringResource(MR.strings.clear_database_text))\n                                Row(\n                                    modifier = Modifier.fillMaxWidth(),\n                                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n                                    verticalAlignment = Alignment.CenterVertically,\n                                ) {\n                                    Text(\n                                        text = stringResource(MR.strings.clear_db_exclude_read),\n                                        modifier = Modifier.weight(1f),\n                                    )\n                                    Switch(\n                                        checked = keepReadManga,\n                                        onCheckedChange = { keepReadManga = it },\n                                    )\n                                }\n                                if (!keepReadManga) {\n                                    Text(\n                                        text = stringResource(MR.strings.clear_database_history_warning),\n                                        style = MaterialTheme.typography.bodySmall,\n                                        color = MaterialTheme.colorScheme.error,\n                                    )\n                                }\n                            }\n                        },\n                        onDismissRequest = model::hideConfirmation,\n                        confirmButton = {\n                            TextButton(\n                                onClick = {\n                                    scope.launchUI {\n                                        model.removeMangaBySourceId(keepReadManga)\n                                        model.clearSelection()\n                                        model.hideConfirmation()\n                                        context.toast(MR.strings.clear_database_completed)\n                                    }\n                                },\n                            ) {\n                                Text(text = stringResource(MR.strings.action_ok))\n                            }\n                        },\n                        dismissButton = {\n                            TextButton(onClick = model::hideConfirmation) {\n                                Text(text = stringResource(MR.strings.action_cancel))\n                            }\n                        },\n                    )\n                }\n\n                Scaffold(\n                    topBar = { scrollBehavior ->\n                        AppBar(\n                            title = stringResource(MR.strings.pref_clear_database),\n                            navigateUp = navigator::pop,\n                            actions = {\n                                if (s.items.isNotEmpty()) {\n                                    AppBarActions(\n                                        actions = persistentListOf(\n                                            AppBar.Action(\n                                                title = stringResource(MR.strings.action_select_all),\n                                                icon = Icons.Outlined.SelectAll,\n                                                onClick = model::selectAll,\n                                            ),\n                                            AppBar.Action(\n                                                title = stringResource(MR.strings.action_select_inverse),\n                                                icon = Icons.Outlined.FlipToBack,\n                                                onClick = model::invertSelection,\n                                            ),\n                                        ),\n                                    )\n                                }\n                            },\n                            scrollBehavior = scrollBehavior,\n                        )\n                    },\n                ) { contentPadding ->\n                    if (s.items.isEmpty()) {\n                        EmptyScreen(\n                            message = stringResource(MR.strings.database_clean),\n                            modifier = Modifier.padding(contentPadding),\n                        )\n                    } else {\n                        LazyColumnWithAction(\n                            contentPadding = contentPadding,\n                            actionLabel = stringResource(MR.strings.action_delete),\n                            actionEnabled = s.selection.isNotEmpty(),\n                            onClickAction = model::showConfirmation,\n                        ) {\n                            items(s.items) { sourceWithCount ->\n                                ClearDatabaseItem(\n                                    source = sourceWithCount.source,\n                                    count = sourceWithCount.count,\n                                    isSelected = s.selection.contains(sourceWithCount.id),\n                                    onClickSelect = { model.toggleSelection(sourceWithCount.source) },\n                                )\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    @Composable\n    private fun ClearDatabaseItem(\n        source: Source,\n        count: Long,\n        isSelected: Boolean,\n        onClickSelect: () -> Unit,\n    ) {\n        Row(\n            modifier = Modifier\n                .selectedBackground(isSelected)\n                .clickable(onClick = onClickSelect)\n                .padding(horizontal = 8.dp)\n                .height(56.dp),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            SourceIcon(source = source)\n            Column(\n                modifier = Modifier\n                    .padding(start = 8.dp)\n                    .weight(1f),\n            ) {\n                Text(\n                    text = source.visualName,\n                    style = MaterialTheme.typography.bodyMedium,\n                )\n                Text(text = stringResource(MR.strings.clear_database_source_item_count, count))\n            }\n            Checkbox(\n                checked = isSelected,\n                onCheckedChange = { onClickSelect() },\n            )\n        }\n    }\n}\n\nprivate class ClearDatabaseScreenModel : StateScreenModel<ClearDatabaseScreenModel.State>(State.Loading) {\n    private val getSourcesWithNonLibraryManga: GetSourcesWithNonLibraryManga = Injekt.get()\n    private val database: Database = Injekt.get()\n\n    init {\n        screenModelScope.launchIO {\n            getSourcesWithNonLibraryManga.subscribe()\n                .collectLatest { list ->\n                    mutableState.update { old ->\n                        val items = list.sortedBy { it.name }\n                        when (old) {\n                            State.Loading -> State.Ready(items)\n                            is State.Ready -> old.copy(items = items)\n                        }\n                    }\n                }\n        }\n    }\n\n    suspend fun removeMangaBySourceId(keepReadManga: Boolean) = withNonCancellableContext {\n        val state = state.value as? State.Ready ?: return@withNonCancellableContext\n        database.mangasQueries.deleteNonLibraryManga(state.selection, keepReadManga.toLong())\n        database.historyQueries.removeResettedHistory()\n    }\n\n    fun toggleSelection(source: Source) = mutableState.update { state ->\n        if (state !is State.Ready) return@update state\n        val mutableList = state.selection.toMutableList()\n        if (mutableList.contains(source.id)) {\n            mutableList.remove(source.id)\n        } else {\n            mutableList.add(source.id)\n        }\n        state.copy(selection = mutableList)\n    }\n\n    fun clearSelection() = mutableState.update { state ->\n        if (state !is State.Ready) return@update state\n        state.copy(selection = emptyList())\n    }\n\n    fun selectAll() = mutableState.update { state ->\n        if (state !is State.Ready) return@update state\n        state.copy(selection = state.items.fastMap { it.id })\n    }\n\n    fun invertSelection() = mutableState.update { state ->\n        if (state !is State.Ready) return@update state\n        state.copy(\n            selection = state.items\n                .fastMap { it.id }\n                .filterNot { it in state.selection },\n        )\n    }\n\n    fun showConfirmation() = mutableState.update { state ->\n        if (state !is State.Ready) return@update state\n        state.copy(showConfirmation = true)\n    }\n\n    fun hideConfirmation() = mutableState.update { state ->\n        if (state !is State.Ready) return@update state\n        state.copy(showConfirmation = false)\n    }\n\n    sealed interface State {\n        @Immutable\n        data object Loading : State\n\n        @Immutable\n        data class Ready(\n            val items: List<SourceWithCount>,\n            val selection: List<Long> = emptyList(),\n            val showConfirmation: Boolean = false,\n        ) : State\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/appearance/AppLanguageScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.appearance\n\nimport android.content.Context\nimport androidx.appcompat.app.AppCompatDelegate\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Check\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.ListItem\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.core.os.LocaleListCompat\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport org.xmlpull.v1.XmlPullParser\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass AppLanguageScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val langs = remember { getLangs(context) }\n        var currentLanguage by remember {\n            mutableStateOf(AppCompatDelegate.getApplicationLocales().get(0)?.toLanguageTag() ?: \"\")\n        }\n\n        LaunchedEffect(currentLanguage) {\n            val locale = if (currentLanguage.isEmpty()) {\n                LocaleListCompat.getEmptyLocaleList()\n            } else {\n                LocaleListCompat.forLanguageTags(currentLanguage)\n            }\n            AppCompatDelegate.setApplicationLocales(locale)\n        }\n\n        Scaffold(\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = stringResource(MR.strings.pref_app_language),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n        ) { contentPadding ->\n            LazyColumn(\n                modifier = Modifier.padding(contentPadding),\n            ) {\n                items(langs) {\n                    ListItem(\n                        modifier = Modifier.clickable {\n                            currentLanguage = it.langTag\n                        },\n                        headlineContent = { Text(it.displayName) },\n                        supportingContent = {\n                            it.localizedDisplayName?.let {\n                                Text(it)\n                            }\n                        },\n                        trailingContent = {\n                            if (currentLanguage == it.langTag) {\n                                Icon(\n                                    imageVector = Icons.Default.Check,\n                                    contentDescription = null,\n                                    tint = MaterialTheme.colorScheme.primary,\n                                )\n                            }\n                        },\n                    )\n                }\n            }\n        }\n    }\n\n    private fun getLangs(context: Context): ImmutableList<Language> {\n        val langs = mutableListOf<Language>()\n        val parser = context.resources.getXml(R.xml.locales_config)\n        var eventType = parser.eventType\n        while (eventType != XmlPullParser.END_DOCUMENT) {\n            if (eventType == XmlPullParser.START_TAG && parser.name == \"locale\") {\n                for (i in 0..<parser.attributeCount) {\n                    if (parser.getAttributeName(i) == \"name\") {\n                        val langTag = parser.getAttributeValue(i)\n                        val displayName = LocaleHelper.getLocalizedDisplayName(langTag)\n                        if (displayName.isNotEmpty()) {\n                            langs.add(Language(langTag, displayName, LocaleHelper.getDisplayName(langTag)))\n                        }\n                    }\n                }\n            }\n            eventType = parser.next()\n        }\n\n        langs.sortBy { it.displayName }\n        langs.add(0, Language(\"\", context.stringResource(MR.strings.label_default), null))\n\n        return langs.toImmutableList()\n    }\n\n    private data class Language(\n        val langTag: String,\n        val displayName: String,\n        val localizedDisplayName: String?,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.browse\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoConfirmDialog\nimport eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoConflictDialog\nimport eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoCreateDialog\nimport eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoDeleteDialog\nimport eu.kanade.presentation.more.settings.screen.browse.components.ExtensionReposScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.toImmutableSet\nimport kotlinx.coroutines.flow.collectLatest\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass ExtensionReposScreen(\n    private val url: String? = null,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { ExtensionReposScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        LaunchedEffect(url) {\n            url?.let { screenModel.showDialog(RepoDialog.Confirm(it)) }\n        }\n\n        if (state is RepoScreenState.Loading) {\n            LoadingScreen()\n            return\n        }\n\n        val successState = state as RepoScreenState.Success\n\n        ExtensionReposScreen(\n            state = successState,\n            onClickCreate = { screenModel.showDialog(RepoDialog.Create) },\n            onOpenWebsite = { context.openInBrowser(it.website) },\n            onClickDelete = { screenModel.showDialog(RepoDialog.Delete(it)) },\n            onClickRefresh = { screenModel.refreshRepos() },\n            navigateUp = navigator::pop,\n        )\n\n        when (val dialog = successState.dialog) {\n            null -> {}\n            is RepoDialog.Create -> {\n                ExtensionRepoCreateDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onCreate = { screenModel.createRepo(it) },\n                    repoUrls = successState.repos.map { it.baseUrl }.toImmutableSet(),\n                )\n            }\n            is RepoDialog.Delete -> {\n                ExtensionRepoDeleteDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onDelete = { screenModel.deleteRepo(dialog.repo) },\n                    repo = dialog.repo,\n                )\n            }\n            is RepoDialog.Conflict -> {\n                ExtensionRepoConflictDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onMigrate = { screenModel.replaceRepo(dialog.newRepo) },\n                    oldRepo = dialog.oldRepo,\n                    newRepo = dialog.newRepo,\n                )\n            }\n            is RepoDialog.Confirm -> {\n                ExtensionRepoConfirmDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onCreate = { screenModel.createRepo(dialog.url) },\n                    repo = dialog.url,\n                )\n            }\n        }\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest { event ->\n                if (event is RepoEvent.LocalizedMessage) {\n                    context.toast(event.stringRes)\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreenModel.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.browse\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport kotlinx.collections.immutable.ImmutableSet\nimport kotlinx.collections.immutable.toImmutableSet\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport mihon.domain.extensionrepo.interactor.CreateExtensionRepo\nimport mihon.domain.extensionrepo.interactor.DeleteExtensionRepo\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepo\nimport mihon.domain.extensionrepo.interactor.ReplaceExtensionRepo\nimport mihon.domain.extensionrepo.interactor.UpdateExtensionRepo\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ExtensionReposScreenModel(\n    private val getExtensionRepo: GetExtensionRepo = Injekt.get(),\n    private val createExtensionRepo: CreateExtensionRepo = Injekt.get(),\n    private val deleteExtensionRepo: DeleteExtensionRepo = Injekt.get(),\n    private val replaceExtensionRepo: ReplaceExtensionRepo = Injekt.get(),\n    private val updateExtensionRepo: UpdateExtensionRepo = Injekt.get(),\n    private val extensionManager: ExtensionManager = Injekt.get(),\n) : StateScreenModel<RepoScreenState>(RepoScreenState.Loading) {\n\n    private val _events: Channel<RepoEvent> = Channel(Int.MAX_VALUE)\n    val events = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launchIO {\n            getExtensionRepo.subscribeAll()\n                .collectLatest { repos ->\n                    mutableState.update {\n                        RepoScreenState.Success(\n                            repos = repos.toImmutableSet(),\n                        )\n                    }\n                }\n        }\n    }\n\n    /**\n     * Creates and adds a new repo to the database.\n     *\n     * @param baseUrl The baseUrl of the repo to create.\n     */\n    fun createRepo(baseUrl: String) {\n        screenModelScope.launchIO {\n            when (val result = createExtensionRepo.await(baseUrl)) {\n                CreateExtensionRepo.Result.Success -> extensionManager.findAvailableExtensions()\n                CreateExtensionRepo.Result.InvalidUrl -> _events.send(RepoEvent.InvalidUrl)\n                CreateExtensionRepo.Result.RepoAlreadyExists -> _events.send(RepoEvent.RepoAlreadyExists)\n                is CreateExtensionRepo.Result.DuplicateFingerprint -> {\n                    showDialog(RepoDialog.Conflict(result.oldRepo, result.newRepo))\n                }\n                else -> {}\n            }\n        }\n    }\n\n    /**\n     * Inserts a repo to the database, replace a matching repo with the same signing key fingerprint if found.\n     *\n     * @param newRepo The repo to insert\n     */\n    fun replaceRepo(newRepo: ExtensionRepo) {\n        screenModelScope.launchIO {\n            replaceExtensionRepo.await(newRepo)\n        }\n    }\n\n    /**\n     * Refreshes information for each repository.\n     */\n    fun refreshRepos() {\n        val status = state.value\n\n        if (status is RepoScreenState.Success) {\n            screenModelScope.launchIO {\n                updateExtensionRepo.awaitAll()\n            }\n        }\n    }\n\n    /**\n     * Deletes the given repo from the database\n     */\n    fun deleteRepo(baseUrl: String) {\n        screenModelScope.launchIO {\n            deleteExtensionRepo.await(baseUrl)\n            extensionManager.findAvailableExtensions()\n        }\n    }\n\n    fun showDialog(dialog: RepoDialog) {\n        mutableState.update {\n            when (it) {\n                RepoScreenState.Loading -> it\n                is RepoScreenState.Success -> it.copy(dialog = dialog)\n            }\n        }\n    }\n\n    fun dismissDialog() {\n        mutableState.update {\n            when (it) {\n                RepoScreenState.Loading -> it\n                is RepoScreenState.Success -> it.copy(dialog = null)\n            }\n        }\n    }\n}\n\nsealed class RepoEvent {\n    sealed class LocalizedMessage(val stringRes: StringResource) : RepoEvent()\n    data object InvalidUrl : LocalizedMessage(MR.strings.invalid_repo_name)\n    data object RepoAlreadyExists : LocalizedMessage(MR.strings.error_repo_exists)\n}\n\nsealed class RepoDialog {\n    data object Create : RepoDialog()\n    data class Delete(val repo: String) : RepoDialog()\n    data class Conflict(val oldRepo: ExtensionRepo, val newRepo: ExtensionRepo) : RepoDialog()\n    data class Confirm(val url: String) : RepoDialog()\n}\n\nsealed class RepoScreenState {\n\n    @Immutable\n    data object Loading : RepoScreenState()\n\n    @Immutable\n    data class Success(\n        val repos: ImmutableSet<ExtensionRepo>,\n        val oldRepos: ImmutableSet<String>? = null,\n        val dialog: RepoDialog? = null,\n    ) : RepoScreenState() {\n\n        val isEmpty: Boolean\n            get() = repos.isEmpty()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposContent.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.browse.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.Label\nimport androidx.compose.material.icons.automirrored.outlined.OpenInNew\nimport androidx.compose.material.icons.outlined.ContentCopy\nimport androidx.compose.material.icons.outlined.Delete\nimport androidx.compose.material3.ElevatedCard\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport kotlinx.collections.immutable.ImmutableSet\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ExtensionReposContent(\n    repos: ImmutableSet<ExtensionRepo>,\n    lazyListState: LazyListState,\n    paddingValues: PaddingValues,\n    onOpenWebsite: (ExtensionRepo) -> Unit,\n    onClickDelete: (String) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    LazyColumn(\n        state = lazyListState,\n        contentPadding = paddingValues,\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        modifier = modifier,\n    ) {\n        repos.forEach {\n            item {\n                ExtensionRepoListItem(\n                    modifier = Modifier.animateItem(),\n                    repo = it,\n                    onOpenWebsite = { onOpenWebsite(it) },\n                    onDelete = { onClickDelete(it.baseUrl) },\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun ExtensionRepoListItem(\n    repo: ExtensionRepo,\n    onOpenWebsite: () -> Unit,\n    onDelete: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val context = LocalContext.current\n\n    ElevatedCard(\n        modifier = modifier,\n    ) {\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(\n                    start = MaterialTheme.padding.medium,\n                    top = MaterialTheme.padding.medium,\n                    end = MaterialTheme.padding.medium,\n                ),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Icon(imageVector = Icons.AutoMirrored.Outlined.Label, contentDescription = null)\n            Text(\n                text = repo.name,\n                modifier = Modifier.padding(start = MaterialTheme.padding.medium),\n                style = MaterialTheme.typography.titleMedium,\n            )\n        }\n\n        Row(\n            modifier = Modifier.fillMaxWidth(),\n            horizontalArrangement = Arrangement.End,\n        ) {\n            IconButton(onClick = onOpenWebsite) {\n                Icon(\n                    imageVector = Icons.AutoMirrored.Outlined.OpenInNew,\n                    contentDescription = stringResource(MR.strings.action_open_in_browser),\n                )\n            }\n\n            IconButton(\n                onClick = {\n                    val url = \"${repo.baseUrl}/index.min.json\"\n                    context.copyToClipboard(url, url)\n                },\n            ) {\n                Icon(\n                    imageVector = Icons.Outlined.ContentCopy,\n                    contentDescription = stringResource(MR.strings.action_copy_to_clipboard),\n                )\n            }\n\n            IconButton(onClick = onDelete) {\n                Icon(\n                    imageVector = Icons.Outlined.Delete,\n                    contentDescription = stringResource(MR.strings.action_delete),\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposDialogs.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.browse.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.text.KeyboardOptions\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport androidx.compose.ui.text.input.KeyboardType\nimport kotlinx.collections.immutable.ImmutableSet\nimport kotlinx.coroutines.delay\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport kotlin.time.Duration.Companion.seconds\n\n@Composable\nfun ExtensionRepoCreateDialog(\n    onDismissRequest: () -> Unit,\n    onCreate: (String) -> Unit,\n    repoUrls: ImmutableSet<String>,\n) {\n    var name by remember { mutableStateOf(\"\") }\n\n    val focusRequester = remember { FocusRequester() }\n    val nameAlreadyExists = remember(name) { repoUrls.contains(name) }\n\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(\n                enabled = name.isNotEmpty() && !nameAlreadyExists,\n                onClick = {\n                    onCreate(name)\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_add))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_add_repo))\n        },\n        text = {\n            Column {\n                Text(text = stringResource(MR.strings.action_add_repo_message, stringResource(MR.strings.app_name)))\n\n                OutlinedTextField(\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .focusRequester(focusRequester),\n                    value = name,\n                    onValueChange = { name = it },\n                    label = {\n                        Text(text = stringResource(MR.strings.label_add_repo_input))\n                    },\n                    supportingText = {\n                        val msgRes = if (name.isNotEmpty() && nameAlreadyExists) {\n                            MR.strings.error_repo_exists\n                        } else {\n                            MR.strings.information_required_plain\n                        }\n                        Text(text = stringResource(msgRes))\n                    },\n                    isError = name.isNotEmpty() && nameAlreadyExists,\n                    keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri),\n                    singleLine = true,\n                )\n            }\n        },\n    )\n\n    LaunchedEffect(focusRequester) {\n        // TODO: https://issuetracker.google.com/issues/204502668\n        delay(0.1.seconds)\n        focusRequester.requestFocus()\n    }\n}\n\n@Composable\nfun ExtensionRepoDeleteDialog(\n    onDismissRequest: () -> Unit,\n    onDelete: () -> Unit,\n    repo: String,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(onClick = {\n                onDelete()\n                onDismissRequest()\n            }) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_delete_repo))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.delete_repo_confirmation, repo))\n        },\n    )\n}\n\n@Composable\nfun ExtensionRepoConflictDialog(\n    oldRepo: ExtensionRepo,\n    newRepo: ExtensionRepo,\n    onDismissRequest: () -> Unit,\n    onMigrate: () -> Unit,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    onMigrate()\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_replace_repo))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        title = {\n            Text(text = stringResource(MR.strings.action_replace_repo_title))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.action_replace_repo_message, newRepo.name, oldRepo.name))\n        },\n    )\n}\n\n@Composable\nfun ExtensionRepoConfirmDialog(\n    onDismissRequest: () -> Unit,\n    onCreate: () -> Unit,\n    repo: String,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = {\n            Text(text = stringResource(MR.strings.action_add_repo))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.add_repo_confirmation, repo))\n        },\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    onCreate()\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_add))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposScreen.kt",
    "content": "@file:JvmName(\"ExtensionReposScreenKt\")\n\npackage eu.kanade.presentation.more.settings.screen.browse.components\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Refresh\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport eu.kanade.presentation.category.components.CategoryFloatingActionButton\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.more.settings.screen.browse.RepoScreenState\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.components.material.topSmallPaddingValues\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun ExtensionReposScreen(\n    state: RepoScreenState.Success,\n    onClickCreate: () -> Unit,\n    onOpenWebsite: (ExtensionRepo) -> Unit,\n    onClickDelete: (String) -> Unit,\n    onClickRefresh: () -> Unit,\n    navigateUp: () -> Unit,\n) {\n    val lazyListState = rememberLazyListState()\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                navigateUp = navigateUp,\n                title = stringResource(MR.strings.label_extension_repos),\n                scrollBehavior = scrollBehavior,\n                actions = {\n                    IconButton(onClick = onClickRefresh) {\n                        Icon(\n                            imageVector = Icons.Outlined.Refresh,\n                            contentDescription = stringResource(resource = MR.strings.action_webview_refresh),\n                        )\n                    }\n                },\n            )\n        },\n        floatingActionButton = {\n            CategoryFloatingActionButton(\n                lazyListState = lazyListState,\n                onCreate = onClickCreate,\n            )\n        },\n    ) { paddingValues ->\n        if (state.isEmpty) {\n            EmptyScreen(\n                MR.strings.information_empty_repos,\n                modifier = Modifier.padding(paddingValues),\n            )\n            return@Scaffold\n        }\n\n        ExtensionReposContent(\n            repos = state.repos,\n            lazyListState = lazyListState,\n            paddingValues = paddingValues + topSmallPaddingValues +\n                PaddingValues(horizontal = MaterialTheme.padding.medium),\n            onOpenWebsite = onOpenWebsite,\n            onClickDelete = onClickDelete,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/data/CreateBackupScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.data\n\nimport android.content.ActivityNotFoundException\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport androidx.activity.compose.rememberLauncherForActivityResult\nimport androidx.activity.result.contract.ActivityResultContracts\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.WarningBanner\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.data.backup.create.BackupCreateJob\nimport eu.kanade.tachiyomi.data.backup.create.BackupCreator\nimport eu.kanade.tachiyomi.data.backup.create.BackupOptions\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.coroutines.flow.update\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.components.LazyColumnWithAction\nimport tachiyomi.presentation.core.components.SectionCard\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass CreateBackupScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val model = rememberScreenModel { CreateBackupScreenModel() }\n        val state by model.state.collectAsState()\n\n        val chooseBackupDir = rememberLauncherForActivityResult(\n            contract = ActivityResultContracts.CreateDocument(\"application/*\"),\n        ) {\n            if (it != null) {\n                context.contentResolver.takePersistableUriPermission(\n                    it,\n                    Intent.FLAG_GRANT_READ_URI_PERMISSION or\n                        Intent.FLAG_GRANT_WRITE_URI_PERMISSION,\n                )\n                model.createBackup(context, it)\n                navigator.pop()\n            }\n        }\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = stringResource(MR.strings.pref_create_backup),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = it,\n                )\n            },\n        ) { contentPadding ->\n            LazyColumnWithAction(\n                contentPadding = contentPadding,\n                actionLabel = stringResource(MR.strings.action_create),\n                actionEnabled = state.options.canCreate(),\n                onClickAction = {\n                    if (!BackupCreateJob.isManualJobRunning(context)) {\n                        try {\n                            chooseBackupDir.launch(BackupCreator.getFilename())\n                        } catch (e: ActivityNotFoundException) {\n                            context.toast(MR.strings.file_picker_error)\n                        }\n                    } else {\n                        context.toast(MR.strings.backup_in_progress)\n                    }\n                },\n            ) {\n                if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {\n                    item {\n                        WarningBanner(MR.strings.restore_miui_warning)\n                    }\n                }\n\n                item {\n                    SectionCard(MR.strings.label_library) {\n                        Options(BackupOptions.libraryOptions, state, model)\n                    }\n                }\n\n                item {\n                    SectionCard(MR.strings.label_settings) {\n                        Options(BackupOptions.settingsOptions, state, model)\n                    }\n                }\n            }\n        }\n    }\n\n    @Composable\n    private fun Options(\n        options: ImmutableList<BackupOptions.Entry>,\n        state: CreateBackupScreenModel.State,\n        model: CreateBackupScreenModel,\n    ) {\n        options.forEach { option ->\n            LabeledCheckbox(\n                label = stringResource(option.label),\n                checked = option.getter(state.options),\n                onCheckedChange = {\n                    model.toggle(option.setter, it)\n                },\n                enabled = option.enabled(state.options),\n            )\n        }\n    }\n}\n\nprivate class CreateBackupScreenModel : StateScreenModel<CreateBackupScreenModel.State>(State()) {\n\n    fun toggle(setter: (BackupOptions, Boolean) -> BackupOptions, enabled: Boolean) {\n        mutableState.update {\n            it.copy(\n                options = setter(it.options, enabled),\n            )\n        }\n    }\n\n    fun createBackup(context: Context, uri: Uri) {\n        BackupCreateJob.startNow(context, uri, state.value.options)\n    }\n\n    @Immutable\n    data class State(\n        val options: BackupOptions = BackupOptions(),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/data/RestoreBackupScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.data\n\nimport android.content.Context\nimport android.net.Uri\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyListScope\nimport androidx.compose.foundation.text.selection.SelectionContainer\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.SpanStyle\nimport androidx.compose.ui.text.buildAnnotatedString\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.withStyle\nimport androidx.core.net.toUri\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.WarningBanner\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.data.backup.BackupFileValidator\nimport eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob\nimport eu.kanade.tachiyomi.data.backup.restore.RestoreOptions\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport kotlinx.coroutines.flow.update\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.components.LazyColumnWithAction\nimport tachiyomi.presentation.core.components.SectionCard\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass RestoreBackupScreen(\n    private val uri: String,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val model = rememberScreenModel { RestoreBackupScreenModel(context, uri) }\n        val state by model.state.collectAsState()\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = stringResource(MR.strings.pref_restore_backup),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = it,\n                )\n            },\n        ) { contentPadding ->\n            LazyColumnWithAction(\n                contentPadding = contentPadding,\n                actionLabel = stringResource(MR.strings.action_restore),\n                actionEnabled = state.canRestore && state.options.canRestore(),\n                onClickAction = {\n                    model.startRestore()\n                    navigator.pop()\n                },\n            ) {\n                if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {\n                    item {\n                        WarningBanner(MR.strings.restore_miui_warning)\n                    }\n                }\n\n                if (state.canRestore) {\n                    item {\n                        SectionCard {\n                            RestoreOptions.options.forEach { option ->\n                                LabeledCheckbox(\n                                    label = stringResource(option.label),\n                                    checked = option.getter(state.options),\n                                    onCheckedChange = {\n                                        model.toggle(option.setter, it)\n                                    },\n                                )\n                            }\n                        }\n                    }\n                }\n\n                if (state.error != null) {\n                    errorMessageItem(state.error)\n                }\n            }\n        }\n    }\n\n    private fun LazyListScope.errorMessageItem(\n        error: Any?,\n    ) {\n        item {\n            SectionCard {\n                Column(\n                    modifier = Modifier.padding(horizontal = MaterialTheme.padding.medium),\n                    verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                ) {\n                    val msg = buildAnnotatedString {\n                        when (error) {\n                            is MissingRestoreComponents -> {\n                                appendLine(stringResource(MR.strings.backup_restore_content_full))\n                                if (error.sources.isNotEmpty()) {\n                                    appendLine()\n                                    withStyle(SpanStyle(fontWeight = FontWeight.Bold)) {\n                                        appendLine(stringResource(MR.strings.backup_restore_missing_sources))\n                                    }\n                                    error.sources.joinTo(\n                                        this,\n                                        separator = \"\\n- \",\n                                        prefix = \"- \",\n                                    )\n                                }\n                                if (error.trackers.isNotEmpty()) {\n                                    appendLine()\n                                    withStyle(SpanStyle(fontWeight = FontWeight.Bold)) {\n                                        appendLine(stringResource(MR.strings.backup_restore_missing_trackers))\n                                    }\n                                    error.trackers.joinTo(\n                                        this,\n                                        separator = \"\\n- \",\n                                        prefix = \"- \",\n                                    )\n                                }\n                            }\n\n                            is InvalidRestore -> {\n                                withStyle(SpanStyle(fontWeight = FontWeight.Bold)) {\n                                    appendLine(stringResource(MR.strings.invalid_backup_file))\n                                }\n                                appendLine(error.uri.toString())\n\n                                appendLine()\n\n                                withStyle(SpanStyle(fontWeight = FontWeight.Bold)) {\n                                    appendLine(stringResource(MR.strings.invalid_backup_file_error))\n                                }\n                                appendLine(error.message)\n                            }\n\n                            else -> {\n                                appendLine(error.toString())\n                            }\n                        }\n                    }\n\n                    SelectionContainer {\n                        Text(text = msg)\n                    }\n                }\n            }\n        }\n    }\n}\n\nprivate class RestoreBackupScreenModel(\n    private val context: Context,\n    private val uri: String,\n) : StateScreenModel<RestoreBackupScreenModel.State>(State()) {\n\n    init {\n        validate(uri.toUri())\n    }\n\n    fun toggle(setter: (RestoreOptions, Boolean) -> RestoreOptions, enabled: Boolean) {\n        mutableState.update {\n            it.copy(\n                options = setter(it.options, enabled),\n            )\n        }\n    }\n\n    fun startRestore() {\n        BackupRestoreJob.start(\n            context = context,\n            uri = uri.toUri(),\n            options = state.value.options,\n        )\n    }\n\n    private fun validate(uri: Uri) {\n        val results = try {\n            BackupFileValidator(context).validate(uri)\n        } catch (e: Exception) {\n            setError(\n                error = InvalidRestore(uri, e.message.toString()),\n                canRestore = false,\n            )\n            return\n        }\n\n        if (results.missingSources.isNotEmpty() || results.missingTrackers.isNotEmpty()) {\n            setError(\n                error = MissingRestoreComponents(uri, results.missingSources, results.missingTrackers),\n                canRestore = true,\n            )\n            return\n        }\n\n        setError(error = null, canRestore = true)\n    }\n\n    private fun setError(error: Any?, canRestore: Boolean) {\n        mutableState.update {\n            it.copy(\n                error = error,\n                canRestore = canRestore,\n            )\n        }\n    }\n\n    @Immutable\n    data class State(\n        val error: Any? = null,\n        val canRestore: Boolean = false,\n        val options: RestoreOptions = RestoreOptions(),\n    )\n}\n\nprivate data class MissingRestoreComponents(\n    val uri: Uri,\n    val sources: List<String>,\n    val trackers: List<String>,\n)\n\nprivate data class InvalidRestore(\n    val uri: Uri? = null,\n    val message: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/data/StorageInfo.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.data\n\nimport android.text.format.Formatter\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.material3.LinearProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.theme.header\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport java.io.File\n\n@Composable\nfun StorageInfo(\n    modifier: Modifier = Modifier,\n) {\n    val context = LocalContext.current\n    val storages = remember { DiskUtil.getExternalStorages(context) }\n\n    Column(\n        modifier = modifier,\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n    ) {\n        storages.forEach {\n            StorageInfo(it)\n        }\n    }\n}\n\n@Composable\nprivate fun StorageInfo(\n    file: File,\n) {\n    val context = LocalContext.current\n\n    val available = remember(file) { DiskUtil.getAvailableStorageSpace(file) }\n    val availableText = remember(available) { Formatter.formatFileSize(context, available) }\n    val total = remember(file) { DiskUtil.getTotalStorageSpace(file) }\n    val totalText = remember(total) { Formatter.formatFileSize(context, total) }\n\n    Column(\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n    ) {\n        Text(\n            text = file.absolutePath,\n            style = MaterialTheme.typography.header,\n        )\n\n        LinearProgressIndicator(\n            modifier = Modifier\n                .clip(MaterialTheme.shapes.small)\n                .fillMaxWidth()\n                .height(12.dp),\n            progress = { (1 - (available / total.toFloat())) },\n        )\n\n        Text(\n            text = stringResource(MR.strings.available_disk_space_info, availableText, totalText),\n            modifier = Modifier.secondaryItemAlpha(),\n            style = MaterialTheme.typography.bodySmall,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/BackupSchemaScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.debug\n\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.ContentCopy\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.font.FontFamily\nimport androidx.compose.ui.unit.dp\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.data.backup.models.Backup\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.serialization.protobuf.schema.ProtoBufSchemaGenerator\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass BackupSchemaScreen : Screen() {\n\n    companion object {\n        const val TITLE = \"Backup file schema\"\n    }\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val schema = remember { ProtoBufSchemaGenerator.generateSchemaText(Backup.serializer().descriptor) }\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = TITLE,\n                    navigateUp = navigator::pop,\n                    actions = {\n                        AppBarActions(\n                            persistentListOf(\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.action_copy_to_clipboard),\n                                    icon = Icons.Default.ContentCopy,\n                                    onClick = {\n                                        context.copyToClipboard(TITLE, schema)\n                                    },\n                                ),\n                            ),\n                        )\n                    },\n                    scrollBehavior = it,\n                )\n            },\n        ) { contentPadding ->\n            Text(\n                text = schema,\n                modifier = Modifier\n                    .verticalScroll(rememberScrollState())\n                    .padding(contentPadding)\n                    .padding(16.dp),\n                fontFamily = FontFamily.Monospace,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/DebugInfoScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.debug\n\nimport android.os.Build\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Autorenew\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.produceState\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.profileinstaller.ProfileVerifier\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.presentation.more.settings.Preference\nimport eu.kanade.presentation.more.settings.PreferenceScaffold\nimport eu.kanade.presentation.more.settings.screen.about.AboutScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.WebViewUtil\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport kotlinx.collections.immutable.mutate\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.guava.await\nimport kotlinx.coroutines.launch\nimport mihon.core.common.FeatureFlags\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass DebugInfoScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        PreferenceScaffold(\n            titleRes = MR.strings.pref_debug_info,\n            onBackPressed = navigator::pop,\n            itemsProvider = {\n                listOf(\n                    Preference.PreferenceItem.TextPreference(\n                        title = WorkerInfoScreen.TITLE,\n                        onClick = { navigator.push(WorkerInfoScreen()) },\n                    ),\n                    Preference.PreferenceItem.TextPreference(\n                        title = BackupSchemaScreen.TITLE,\n                        onClick = { navigator.push(BackupSchemaScreen()) },\n                    ),\n                    getAppInfoGroup(),\n                    getDeviceInfoGroup(),\n                )\n            },\n        )\n    }\n\n    @Composable\n    private fun getAppInfoGroup(): Preference.PreferenceGroup {\n        val context = LocalContext.current\n        val scope = rememberCoroutineScope()\n\n        val installationIdPref = remember { Injekt.get<BasePreferences>().installationId }\n        val installationId by installationIdPref.collectAsState()\n\n        return Preference.PreferenceGroup(\n            title = \"App info\",\n            preferenceItems = persistentListOf(\n                Preference.PreferenceItem.TextPreference(\n                    title = \"Version\",\n                    subtitle = AboutScreen.getVersionName(false),\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = \"Build time\",\n                    subtitle = AboutScreen.getFormattedBuildTime(),\n                ),\n                Preference.PreferenceItem.TextPreference(\n                    title = \"Installation ID\",\n                    subtitle = installationId,\n                    widget = {\n                        IconButton(\n                            onClick = {\n                                scope.launch {\n                                    installationIdPref.set(FeatureFlags.newInstallationId())\n                                }\n                            },\n                        ) {\n                            Icon(\n                                imageVector = Icons.Outlined.Autorenew,\n                                tint = MaterialTheme.colorScheme.primary,\n                                contentDescription = null,\n                            )\n                        }\n                    },\n                    onClick = {\n                        context.copyToClipboard(installationId, installationId)\n                    },\n                ),\n                getProfileVerifierPreference(),\n                Preference.PreferenceItem.TextPreference(\n                    title = \"WebView version\",\n                    subtitle = getWebViewVersion(),\n                ),\n            ),\n        )\n    }\n\n    @Composable\n    @ReadOnlyComposable\n    private fun getWebViewVersion(): String {\n        return WebViewUtil.getVersion(LocalContext.current)\n    }\n\n    @Composable\n    private fun getProfileVerifierPreference(): Preference.PreferenceItem.TextPreference {\n        val status by produceState(initialValue = \"-\") {\n            val result = ProfileVerifier.getCompilationStatusAsync().await().profileInstallResultCode\n            value = when (result) {\n                ProfileVerifier.CompilationStatus.RESULT_CODE_NO_PROFILE_INSTALLED -> \"No profile installed\"\n                ProfileVerifier.CompilationStatus.RESULT_CODE_COMPILED_WITH_PROFILE -> \"Compiled\"\n                ProfileVerifier.CompilationStatus.RESULT_CODE_COMPILED_WITH_PROFILE_NON_MATCHING ->\n                    \"Compiled non-matching\"\n                ProfileVerifier.CompilationStatus.RESULT_CODE_ERROR_CACHE_FILE_EXISTS_BUT_CANNOT_BE_READ,\n                ProfileVerifier.CompilationStatus.RESULT_CODE_ERROR_CANT_WRITE_PROFILE_VERIFICATION_RESULT_CACHE_FILE,\n                ProfileVerifier.CompilationStatus.RESULT_CODE_ERROR_PACKAGE_NAME_DOES_NOT_EXIST,\n                -> \"Error $result\"\n                ProfileVerifier.CompilationStatus.RESULT_CODE_ERROR_UNSUPPORTED_API_VERSION -> \"Not supported\"\n                ProfileVerifier.CompilationStatus.RESULT_CODE_PROFILE_ENQUEUED_FOR_COMPILATION -> \"Pending compilation\"\n                ProfileVerifier.CompilationStatus.RESULT_CODE_ERROR_NO_PROFILE_EMBEDDED -> \"No profile embedded\"\n                else -> \"Unknown code $result\"\n            }\n        }\n        return Preference.PreferenceItem.TextPreference(\n            title = \"Profile compilation status\",\n            subtitle = status,\n        )\n    }\n\n    private fun getDeviceInfoGroup(): Preference.PreferenceGroup {\n        val items = persistentListOf<Preference.PreferenceItem<out Any, out Any>>().mutate {\n            it.add(\n                Preference.PreferenceItem.TextPreference(\n                    title = \"Model\",\n                    subtitle = \"${Build.MANUFACTURER} ${Build.MODEL} (${Build.DEVICE})\",\n                ),\n            )\n\n            if (DeviceUtil.oneUiVersion != null) {\n                it.add(\n                    Preference.PreferenceItem.TextPreference(\n                        title = \"OneUI version\",\n                        subtitle = \"${DeviceUtil.oneUiVersion}\",\n                    ),\n                )\n            } else if (DeviceUtil.miuiMajorVersion != null) {\n                it.add(\n                    Preference.PreferenceItem.TextPreference(\n                        title = \"MIUI version\",\n                        subtitle = \"${DeviceUtil.miuiMajorVersion}\",\n                    ),\n                )\n            }\n\n            val androidVersion = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n                Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY\n            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {\n                Build.VERSION.RELEASE_OR_CODENAME\n            } else {\n                Build.VERSION.RELEASE\n            }\n            it.add(\n                Preference.PreferenceItem.TextPreference(\n                    title = \"Android version\",\n                    subtitle = \"$androidVersion (${Build.DISPLAY})\",\n                ),\n            )\n        }\n\n        return Preference.PreferenceGroup(\n            title = \"Device info\",\n            preferenceItems = items,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/WorkerInfoScreen.kt",
    "content": "package eu.kanade.presentation.more.settings.screen.debug\n\nimport android.content.Context\nimport androidx.compose.foundation.horizontalScroll\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.ContentCopy\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.font.FontFamily\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastForEach\nimport androidx.work.WorkInfo\nimport androidx.work.WorkQuery\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.presentation.util.ioCoroutineScope\nimport eu.kanade.tachiyomi.util.lang.toDateTimestampString\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport eu.kanade.tachiyomi.util.system.workManager\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.stateIn\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.plus\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.LocalDateTime\nimport java.time.ZoneId\n\nclass WorkerInfoScreen : Screen() {\n\n    companion object {\n        const val TITLE = \"Worker info\"\n    }\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { Model(context) }\n        val enqueued by screenModel.enqueued.collectAsState()\n        val finished by screenModel.finished.collectAsState()\n        val running by screenModel.running.collectAsState()\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = TITLE,\n                    navigateUp = navigator::pop,\n                    actions = {\n                        AppBarActions(\n                            persistentListOf(\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.action_copy_to_clipboard),\n                                    icon = Icons.Default.ContentCopy,\n                                    onClick = {\n                                        context.copyToClipboard(TITLE, enqueued + finished + running)\n                                    },\n                                ),\n                            ),\n                        )\n                    },\n                    scrollBehavior = it,\n                )\n            },\n        ) { contentPadding ->\n            LazyColumn(\n                contentPadding = contentPadding + PaddingValues(horizontal = 16.dp),\n                modifier = Modifier.horizontalScroll(rememberScrollState()),\n            ) {\n                item { SectionTitle(title = \"Enqueued\") }\n                item { SectionText(text = enqueued) }\n\n                item { SectionTitle(title = \"Finished\") }\n                item { SectionText(text = finished) }\n\n                item { SectionTitle(title = \"Running\") }\n                item { SectionText(text = running) }\n            }\n        }\n    }\n\n    @Composable\n    private fun SectionTitle(title: String) {\n        Text(\n            text = title,\n            style = MaterialTheme.typography.titleMedium,\n            modifier = Modifier.padding(vertical = 8.dp),\n        )\n    }\n\n    @Composable\n    private fun SectionText(text: String) {\n        Text(\n            text = text,\n            softWrap = false,\n            fontFamily = FontFamily.Monospace,\n        )\n    }\n\n    private class Model(context: Context) : ScreenModel {\n        private val workManager = context.workManager\n\n        val finished = workManager\n            .getWorkInfosFlow(\n                WorkQuery.fromStates(WorkInfo.State.SUCCEEDED, WorkInfo.State.FAILED, WorkInfo.State.CANCELLED),\n            )\n            .map(::constructString)\n            .stateIn(ioCoroutineScope, SharingStarted.WhileSubscribed(), \"\")\n\n        val running = workManager\n            .getWorkInfosFlow(WorkQuery.fromStates(WorkInfo.State.RUNNING))\n            .map(::constructString)\n            .stateIn(ioCoroutineScope, SharingStarted.WhileSubscribed(), \"\")\n\n        val enqueued = workManager\n            .getWorkInfosFlow(WorkQuery.fromStates(WorkInfo.State.ENQUEUED))\n            .map(::constructString)\n            .stateIn(ioCoroutineScope, SharingStarted.WhileSubscribed(), \"\")\n\n        private fun constructString(list: List<WorkInfo>) = buildString {\n            if (list.isEmpty()) {\n                appendLine(\"-\")\n            } else {\n                list.fastForEach { workInfo ->\n                    appendLine(\"Id: ${workInfo.id}\")\n                    appendLine(\"Tags:\")\n                    workInfo.tags.forEach {\n                        appendLine(\" - $it\")\n                    }\n                    appendLine(\"State: ${workInfo.state}\")\n                    if (workInfo.state == WorkInfo.State.ENQUEUED) {\n                        val timestamp = LocalDateTime.ofInstant(\n                            Instant.ofEpochMilli(workInfo.nextScheduleTimeMillis),\n                            ZoneId.systemDefault(),\n                        )\n                            .toDateTimestampString(\n                                UiPreferences.dateFormat(\n                                    Injekt.get<UiPreferences>().dateFormat.get(),\n                                ),\n                            )\n                        appendLine(\"Next scheduled run: $timestamp\")\n                        appendLine(\"Attempt #${workInfo.runAttemptCount + 1}\")\n                    }\n                    appendLine()\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MultiChoiceSegmentedButtonRow\nimport androidx.compose.material3.SegmentedButton\nimport androidx.compose.material3.SegmentedButtonDefaults\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport eu.kanade.domain.ui.model.ThemeMode\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\nprivate val options = mapOf(\n    ThemeMode.SYSTEM to MR.strings.theme_system,\n    ThemeMode.LIGHT to MR.strings.theme_light,\n    ThemeMode.DARK to MR.strings.theme_dark,\n)\n\n@Composable\ninternal fun AppThemeModePreferenceWidget(\n    value: ThemeMode,\n    onItemClick: (ThemeMode) -> Unit,\n) {\n    BasePreferenceWidget(\n        subcomponent = {\n            MultiChoiceSegmentedButtonRow(\n                modifier = Modifier\n                    .fillMaxWidth()\n                    .padding(horizontal = PrefsHorizontalPadding),\n            ) {\n                options.onEachIndexed { index, (mode, labelRes) ->\n                    SegmentedButton(\n                        checked = mode == value,\n                        onCheckedChange = { onItemClick(mode) },\n                        shape = SegmentedButtonDefaults.itemShape(\n                            index,\n                            options.size,\n                        ),\n                    ) {\n                        Text(stringResource(labelRes))\n                    }\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemePreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport android.app.Activity\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.border\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.aspectRatio\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.lazy.LazyRow\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.shape.CircleShape\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.CheckCircle\nimport androidx.compose.material3.DividerDefaults\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport androidx.core.app.ActivityCompat\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.AppTheme\nimport eu.kanade.presentation.manga.components.MangaCover\nimport eu.kanade.presentation.theme.TachiyomiTheme\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.isDynamicColorAvailable\nimport tachiyomi.core.common.preference.InMemoryPreferenceStore\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.fullType\n\n@Composable\ninternal fun AppThemePreferenceWidget(\n    value: AppTheme,\n    amoled: Boolean,\n    onItemClick: (AppTheme) -> Unit,\n) {\n    BasePreferenceWidget(\n        subcomponent = {\n            AppThemesList(\n                currentTheme = value,\n                amoled = amoled,\n                onItemClick = onItemClick,\n            )\n        },\n    )\n}\n\n@Composable\nprivate fun AppThemesList(\n    currentTheme: AppTheme,\n    amoled: Boolean,\n    onItemClick: (AppTheme) -> Unit,\n) {\n    val context = LocalContext.current\n    val appThemes = remember {\n        AppTheme.entries\n            .filterNot { it.titleRes == null || (it == AppTheme.MONET && !DeviceUtil.isDynamicColorAvailable) }\n    }\n    LazyRow(\n        contentPadding = PaddingValues(horizontal = PrefsHorizontalPadding),\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n    ) {\n        items(\n            items = appThemes,\n            key = { it.name },\n        ) { appTheme ->\n            Column(\n                modifier = Modifier\n                    .width(114.dp)\n                    .padding(top = 8.dp),\n            ) {\n                TachiyomiTheme(\n                    appTheme = appTheme,\n                    amoled = amoled,\n                ) {\n                    AppThemePreviewItem(\n                        selected = currentTheme == appTheme,\n                        onClick = {\n                            onItemClick(appTheme)\n                            (context as? Activity)?.let { ActivityCompat.recreate(it) }\n                        },\n                    )\n                }\n\n                Spacer(modifier = Modifier.height(8.dp))\n\n                Text(\n                    text = stringResource(appTheme.titleRes!!),\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .secondaryItemAlpha(),\n                    textAlign = TextAlign.Center,\n                    maxLines = 2,\n                    minLines = 2,\n                    style = MaterialTheme.typography.bodyMedium,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nfun AppThemePreviewItem(\n    selected: Boolean,\n    onClick: () -> Unit,\n) {\n    Column(\n        modifier = Modifier\n            .fillMaxWidth()\n            .aspectRatio(9f / 16f)\n            .border(\n                width = 4.dp,\n                color = if (selected) {\n                    MaterialTheme.colorScheme.primary\n                } else {\n                    DividerDefaults.color\n                },\n                shape = RoundedCornerShape(17.dp),\n            )\n            .padding(4.dp)\n            .clip(RoundedCornerShape(13.dp))\n            .background(MaterialTheme.colorScheme.background)\n            .clickable(onClick = onClick),\n    ) {\n        // App Bar\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .height(40.dp)\n                .padding(8.dp),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Box(\n                modifier = Modifier\n                    .fillMaxHeight(0.8f)\n                    .weight(0.7f)\n                    .padding(end = 4.dp)\n                    .background(\n                        color = MaterialTheme.colorScheme.onSurface,\n                        shape = MaterialTheme.shapes.small,\n                    ),\n            )\n\n            Box(\n                modifier = Modifier.weight(0.3f),\n                contentAlignment = Alignment.CenterEnd,\n            ) {\n                if (selected) {\n                    Icon(\n                        imageVector = Icons.Filled.CheckCircle,\n                        contentDescription = stringResource(MR.strings.selected),\n                        tint = MaterialTheme.colorScheme.primary,\n                    )\n                }\n            }\n        }\n\n        // Cover\n        Box(\n            modifier = Modifier\n                .padding(start = 8.dp, top = 2.dp)\n                .background(\n                    color = DividerDefaults.color,\n                    shape = MaterialTheme.shapes.small,\n                )\n                .fillMaxWidth(0.5f)\n                .aspectRatio(MangaCover.Book.ratio),\n        ) {\n            Row(\n                modifier = Modifier\n                    .padding(4.dp)\n                    .size(width = 24.dp, height = 16.dp)\n                    .clip(RoundedCornerShape(5.dp)),\n            ) {\n                Box(\n                    modifier = Modifier\n                        .fillMaxHeight()\n                        .width(12.dp)\n                        .background(MaterialTheme.colorScheme.tertiary),\n                )\n                Box(\n                    modifier = Modifier\n                        .fillMaxHeight()\n                        .width(12.dp)\n                        .background(MaterialTheme.colorScheme.secondary),\n                )\n            }\n        }\n\n        // Bottom bar\n        Box(\n            modifier = Modifier\n                .fillMaxWidth()\n                .weight(1f),\n            contentAlignment = Alignment.BottomCenter,\n        ) {\n            Surface(\n                color = MaterialTheme.colorScheme.surfaceContainer,\n            ) {\n                Row(\n                    modifier = Modifier\n                        .height(32.dp)\n                        .fillMaxWidth()\n                        .padding(horizontal = 8.dp),\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    Box(\n                        modifier = Modifier\n                            .size(17.dp)\n                            .background(\n                                color = MaterialTheme.colorScheme.primary,\n                                shape = CircleShape,\n                            ),\n                    )\n                    Box(\n                        modifier = Modifier\n                            .padding(start = 8.dp)\n                            .alpha(0.6f)\n                            .height(17.dp)\n                            .weight(1f)\n                            .background(\n                                color = MaterialTheme.colorScheme.onSurface,\n                                shape = MaterialTheme.shapes.small,\n                            ),\n                    )\n                }\n            }\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun AppThemesListPreview() {\n    var appTheme by remember { mutableStateOf(AppTheme.DEFAULT) }\n    Injekt.addSingleton(fullType<UiPreferences>(), UiPreferences(InMemoryPreferenceStore()))\n    TachiyomiTheme(appTheme = appTheme) {\n        Surface {\n            AppThemesList(\n                currentTheme = appTheme,\n                amoled = false,\n                onItemClick = { appTheme = it },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/BasePreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.animation.animateColorAsState\nimport androidx.compose.animation.core.RepeatMode\nimport androidx.compose.animation.core.StartOffset\nimport androidx.compose.animation.core.StartOffsetType\nimport androidx.compose.animation.core.repeatable\nimport androidx.compose.animation.core.tween\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.sizeIn\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport eu.kanade.presentation.more.settings.LocalPreferenceHighlighted\nimport eu.kanade.presentation.more.settings.LocalPreferenceMinHeight\nimport kotlinx.coroutines.delay\nimport kotlin.time.Duration.Companion.seconds\n\n@Composable\ninternal fun BasePreferenceWidget(\n    modifier: Modifier = Modifier,\n    title: String? = null,\n    subcomponent: @Composable (ColumnScope.() -> Unit)? = null,\n    icon: @Composable (() -> Unit)? = null,\n    onClick: (() -> Unit)? = null,\n    widget: @Composable (() -> Unit)? = null,\n) {\n    val highlighted = LocalPreferenceHighlighted.current\n    val minHeight = LocalPreferenceMinHeight.current\n    Row(\n        modifier = modifier\n            .highlightBackground(highlighted)\n            .sizeIn(minHeight = minHeight)\n            .clickable(enabled = onClick != null, onClick = { onClick?.invoke() })\n            .fillMaxWidth(),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        if (icon != null) {\n            Box(\n                modifier = Modifier.padding(start = PrefsHorizontalPadding, end = 8.dp),\n                content = { icon() },\n            )\n        }\n        Column(\n            modifier = Modifier\n                .weight(1f)\n                .padding(vertical = PrefsVerticalPadding),\n        ) {\n            if (!title.isNullOrBlank()) {\n                Text(\n                    modifier = Modifier.padding(horizontal = PrefsHorizontalPadding),\n                    text = title,\n                    overflow = TextOverflow.Ellipsis,\n                    maxLines = 2,\n                    style = MaterialTheme.typography.titleLarge,\n                    fontSize = TitleFontSize,\n                )\n            }\n            subcomponent?.invoke(this)\n        }\n        if (widget != null) {\n            Box(\n                modifier = Modifier.padding(end = PrefsHorizontalPadding),\n                content = { widget() },\n            )\n        }\n    }\n}\n\n@Composable\ninternal fun Modifier.highlightBackground(highlighted: Boolean): Modifier {\n    var highlightFlag by remember { mutableStateOf(false) }\n    LaunchedEffect(Unit) {\n        if (highlighted) {\n            highlightFlag = true\n            delay(3.seconds)\n            highlightFlag = false\n        }\n    }\n    val highlight by animateColorAsState(\n        targetValue = if (highlightFlag) {\n            MaterialTheme.colorScheme.surfaceTint.copy(alpha = .12f)\n        } else {\n            Color.Transparent\n        },\n        animationSpec = if (highlightFlag) {\n            repeatable(\n                iterations = 5,\n                animation = tween(durationMillis = 200),\n                repeatMode = RepeatMode.Reverse,\n                initialStartOffset = StartOffset(\n                    offsetMillis = 600,\n                    offsetType = StartOffsetType.Delay,\n                ),\n            )\n        } else {\n            tween(200)\n        },\n        label = \"highlight\",\n    )\n    return this.background(color = highlight)\n}\n\ninternal val TrailingWidgetBuffer = 16.dp\ninternal val PrefsHorizontalPadding = 16.dp\ninternal val PrefsVerticalPadding = 16.dp\ninternal val TitleFontSize = 16.sp\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/EditTextPreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Cancel\nimport androidx.compose.material.icons.filled.Error\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.text.input.TextFieldValue\nimport androidx.compose.ui.window.DialogProperties\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun EditTextPreferenceWidget(\n    title: String,\n    subtitle: String?,\n    icon: ImageVector?,\n    value: String,\n    onConfirm: suspend (String) -> Boolean,\n) {\n    var isDialogShown by remember { mutableStateOf(false) }\n\n    TextPreferenceWidget(\n        title = title,\n        subtitle = subtitle?.format(value),\n        icon = icon,\n        onPreferenceClick = { isDialogShown = true },\n    )\n\n    if (isDialogShown) {\n        val scope = rememberCoroutineScope()\n        val onDismissRequest = { isDialogShown = false }\n        var textFieldValue by rememberSaveable(stateSaver = TextFieldValue.Saver) {\n            mutableStateOf(TextFieldValue(value))\n        }\n        AlertDialog(\n            onDismissRequest = onDismissRequest,\n            title = { Text(text = title) },\n            text = {\n                OutlinedTextField(\n                    value = textFieldValue,\n                    onValueChange = { textFieldValue = it },\n                    trailingIcon = {\n                        if (textFieldValue.text.isBlank()) {\n                            Icon(imageVector = Icons.Filled.Error, contentDescription = null)\n                        } else {\n                            IconButton(onClick = { textFieldValue = TextFieldValue(\"\") }) {\n                                Icon(imageVector = Icons.Filled.Cancel, contentDescription = null)\n                            }\n                        }\n                    },\n                    isError = textFieldValue.text.isBlank(),\n                    singleLine = true,\n                    modifier = Modifier.fillMaxWidth(),\n                )\n            },\n            properties = DialogProperties(\n                usePlatformDefaultWidth = true,\n            ),\n            confirmButton = {\n                TextButton(\n                    enabled = textFieldValue.text != value && textFieldValue.text.isNotBlank(),\n                    onClick = {\n                        scope.launch {\n                            if (onConfirm(textFieldValue.text)) {\n                                onDismissRequest()\n                            }\n                        }\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.action_ok))\n                }\n            },\n            dismissButton = {\n                TextButton(onClick = onDismissRequest) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/InfoWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Info\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\ninternal fun InfoWidget(text: String) {\n    Column(\n        modifier = Modifier\n            .padding(\n                horizontal = PrefsHorizontalPadding,\n                vertical = MaterialTheme.padding.medium,\n            )\n            .secondaryItemAlpha(),\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.medium),\n    ) {\n        Icon(\n            imageVector = Icons.Outlined.Info,\n            contentDescription = null,\n        )\n        Text(\n            text = text,\n            style = MaterialTheme.typography.bodySmall,\n        )\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun InfoWidgetPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            InfoWidget(text = stringResource(MR.strings.download_ahead_info))\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/ListPreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.selection.selectable\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.RadioButton\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.material3.minimumInteractiveComponentSize\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun <T> ListPreferenceWidget(\n    value: T,\n    title: String,\n    subtitle: String?,\n    icon: ImageVector?,\n    entries: Map<out T, String>,\n    onValueChange: (T) -> Unit,\n) {\n    var isDialogShown by remember { mutableStateOf(false) }\n\n    TextPreferenceWidget(\n        title = title,\n        subtitle = subtitle,\n        icon = icon,\n        onPreferenceClick = { isDialogShown = true },\n    )\n\n    if (isDialogShown) {\n        AlertDialog(\n            onDismissRequest = { isDialogShown = false },\n            title = { Text(text = title) },\n            text = {\n                Box {\n                    val state = rememberLazyListState()\n                    ScrollbarLazyColumn(state = state) {\n                        entries.forEach { current ->\n                            val isSelected = value == current.key\n                            item {\n                                DialogRow(\n                                    label = current.value,\n                                    isSelected = isSelected,\n                                    onSelected = {\n                                        onValueChange(current.key!!)\n                                        isDialogShown = false\n                                    },\n                                )\n                            }\n                        }\n                    }\n                    if (state.canScrollBackward) HorizontalDivider(modifier = Modifier.align(Alignment.TopCenter))\n                    if (state.canScrollForward) HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter))\n                }\n            },\n            confirmButton = {\n                TextButton(onClick = { isDialogShown = false }) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun DialogRow(\n    label: String,\n    isSelected: Boolean,\n    onSelected: () -> Unit,\n) {\n    Row(\n        verticalAlignment = Alignment.CenterVertically,\n        modifier = Modifier\n            .clip(MaterialTheme.shapes.small)\n            .selectable(\n                selected = isSelected,\n                onClick = { if (!isSelected) onSelected() },\n            )\n            .fillMaxWidth()\n            .minimumInteractiveComponentSize(),\n    ) {\n        RadioButton(\n            selected = isSelected,\n            onClick = null,\n        )\n        Text(\n            text = label,\n            style = MaterialTheme.typography.bodyLarge.merge(),\n            modifier = Modifier.padding(start = 24.dp),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/MultiSelectListPreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.runtime.toMutableStateList\nimport androidx.compose.ui.window.DialogProperties\nimport eu.kanade.presentation.more.settings.Preference\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MultiSelectListPreferenceWidget(\n    preference: Preference.PreferenceItem.MultiSelectListPreference,\n    values: Set<String>,\n    onValuesChange: (Set<String>) -> Unit,\n) {\n    var isDialogShown by remember { mutableStateOf(false) }\n\n    TextPreferenceWidget(\n        title = preference.title,\n        subtitle = preference.subtitleProvider(values, preference.entries),\n        icon = preference.icon,\n        onPreferenceClick = { isDialogShown = true },\n    )\n\n    if (isDialogShown) {\n        val selected = remember {\n            preference.entries.keys\n                .filter { values.contains(it) }\n                .toMutableStateList()\n        }\n        AlertDialog(\n            onDismissRequest = { isDialogShown = false },\n            title = { Text(text = preference.title) },\n            text = {\n                LazyColumn {\n                    preference.entries.forEach { current ->\n                        item {\n                            val isSelected = selected.contains(current.key)\n                            LabeledCheckbox(\n                                label = current.value,\n                                checked = isSelected,\n                                onCheckedChange = {\n                                    if (it) {\n                                        selected.add(current.key)\n                                    } else {\n                                        selected.remove(current.key)\n                                    }\n                                },\n                            )\n                        }\n                    }\n                }\n            },\n            properties = DialogProperties(\n                usePlatformDefaultWidth = true,\n            ),\n            confirmButton = {\n                TextButton(\n                    onClick = {\n                        onValuesChange(selected.toMutableSet())\n                        isDialogShown = false\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.action_ok))\n                }\n            },\n            dismissButton = {\n                TextButton(onClick = { isDialogShown = false }) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/PreferenceGroupHeader.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun PreferenceGroupHeader(title: String) {\n    Box(\n        contentAlignment = Alignment.CenterStart,\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(bottom = 8.dp, top = 14.dp),\n    ) {\n        Text(\n            text = title,\n            color = MaterialTheme.colorScheme.secondary,\n            modifier = Modifier.padding(horizontal = PrefsHorizontalPadding),\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/SwitchPreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Preview\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Switch\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\n\n@Composable\nfun SwitchPreferenceWidget(\n    modifier: Modifier = Modifier,\n    title: String,\n    subtitle: String? = null,\n    icon: ImageVector? = null,\n    checked: Boolean = false,\n    onCheckedChanged: (Boolean) -> Unit,\n) {\n    TextPreferenceWidget(\n        modifier = modifier,\n        title = title,\n        subtitle = subtitle,\n        icon = icon,\n        widget = {\n            Switch(\n                checked = checked,\n                onCheckedChange = null,\n                modifier = Modifier.padding(start = TrailingWidgetBuffer),\n            )\n        },\n        onPreferenceClick = { onCheckedChanged(!checked) },\n    )\n}\n\n@PreviewLightDark\n@Composable\nprivate fun SwitchPreferenceWidgetPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            Column {\n                SwitchPreferenceWidget(\n                    title = \"Text preference with icon\",\n                    subtitle = \"Text preference summary\",\n                    icon = Icons.Filled.Preview,\n                    checked = true,\n                    onCheckedChanged = {},\n                )\n                SwitchPreferenceWidget(\n                    title = \"Text preference\",\n                    subtitle = \"Text preference summary\",\n                    checked = false,\n                    onCheckedChanged = {},\n                )\n                SwitchPreferenceWidget(\n                    title = \"Text preference no summary\",\n                    checked = false,\n                    onCheckedChanged = {},\n                )\n                SwitchPreferenceWidget(\n                    title = \"Another text preference no summary\",\n                    checked = false,\n                    onCheckedChanged = {},\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/TextPreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Preview\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun TextPreferenceWidget(\n    modifier: Modifier = Modifier,\n    title: String? = null,\n    subtitle: String? = null,\n    icon: ImageVector? = null,\n    iconTint: Color = MaterialTheme.colorScheme.primary,\n    widget: @Composable (() -> Unit)? = null,\n    onPreferenceClick: (() -> Unit)? = null,\n) {\n    BasePreferenceWidget(\n        modifier = modifier,\n        title = title,\n        subcomponent = if (!subtitle.isNullOrBlank()) {\n            {\n                Text(\n                    text = subtitle,\n                    modifier = Modifier\n                        .padding(horizontal = PrefsHorizontalPadding)\n                        .secondaryItemAlpha(),\n                    style = MaterialTheme.typography.bodySmall,\n                    maxLines = 10,\n                )\n            }\n        } else {\n            null\n        },\n        icon = if (icon != null) {\n            {\n                Icon(\n                    imageVector = icon,\n                    tint = iconTint,\n                    contentDescription = null,\n                )\n            }\n        } else {\n            null\n        },\n        onClick = onPreferenceClick,\n        widget = widget,\n    )\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TextPreferenceWidgetPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            Column {\n                TextPreferenceWidget(\n                    title = \"Text preference with icon\",\n                    subtitle = \"Text preference summary\",\n                    icon = Icons.Filled.Preview,\n                    onPreferenceClick = {},\n                )\n                TextPreferenceWidget(\n                    title = \"Text preference\",\n                    subtitle = \"Text preference summary\",\n                    onPreferenceClick = {},\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Done\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.more.settings.LocalPreferenceHighlighted\nimport eu.kanade.presentation.track.components.TrackLogoIcon\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun TrackingPreferenceWidget(\n    modifier: Modifier = Modifier,\n    tracker: Tracker,\n    checked: Boolean,\n    onClick: (() -> Unit)? = null,\n) {\n    val highlighted = LocalPreferenceHighlighted.current\n    Box(modifier = Modifier.highlightBackground(highlighted)) {\n        Row(\n            modifier = modifier\n                .clickable(enabled = onClick != null, onClick = { onClick?.invoke() })\n                .fillMaxWidth()\n                .padding(horizontal = PrefsHorizontalPadding, vertical = 8.dp),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            TrackLogoIcon(tracker)\n            Text(\n                text = tracker.name,\n                modifier = Modifier\n                    .weight(1f)\n                    .padding(horizontal = 16.dp),\n                maxLines = 1,\n                style = MaterialTheme.typography.titleLarge,\n                fontSize = TitleFontSize,\n            )\n            if (checked) {\n                Icon(\n                    imageVector = Icons.Outlined.Done,\n                    modifier = Modifier\n                        .padding(4.dp)\n                        .size(32.dp),\n                    tint = Color(0xFF4CAF50),\n                    contentDescription = stringResource(MR.strings.login_success),\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/settings/widget/TriStateListDialog.kt",
    "content": "package eu.kanade.presentation.more.settings.widget\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.defaultMinSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.itemsIndexed\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.rounded.CheckBox\nimport androidx.compose.material.icons.rounded.CheckBoxOutlineBlank\nimport androidx.compose.material.icons.rounded.DisabledByDefault\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.toMutableStateList\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\nprivate enum class State {\n    CHECKED,\n    INVERSED,\n    UNCHECKED,\n}\n\n@Composable\nfun <T> TriStateListDialog(\n    title: String,\n    message: String? = null,\n    items: List<T>,\n    initialChecked: List<T>,\n    initialInversed: List<T>,\n    itemLabel: @Composable (T) -> String,\n    onDismissRequest: () -> Unit,\n    onValueChanged: (newIncluded: List<T>, newExcluded: List<T>) -> Unit,\n) {\n    val selected = remember {\n        items\n            .map {\n                when (it) {\n                    in initialChecked -> State.CHECKED\n                    in initialInversed -> State.INVERSED\n                    else -> State.UNCHECKED\n                }\n            }\n            .toMutableStateList()\n    }\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = { Text(text = title) },\n        text = {\n            Column {\n                if (message != null) {\n                    Text(\n                        text = message,\n                        modifier = Modifier.padding(bottom = 8.dp),\n                    )\n                }\n\n                Box {\n                    val listState = rememberLazyListState()\n                    LazyColumn(state = listState) {\n                        itemsIndexed(items = items) { index, item ->\n                            val state = selected[index]\n                            Row(\n                                modifier = Modifier\n                                    .clip(MaterialTheme.shapes.small)\n                                    .clickable {\n                                        selected[index] = when (state) {\n                                            State.UNCHECKED -> State.CHECKED\n                                            State.CHECKED -> State.INVERSED\n                                            State.INVERSED -> State.UNCHECKED\n                                        }\n                                    }\n                                    .defaultMinSize(minHeight = 48.dp)\n                                    .fillMaxWidth(),\n                                verticalAlignment = Alignment.CenterVertically,\n                            ) {\n                                Icon(\n                                    modifier = Modifier.padding(end = 20.dp),\n                                    imageVector = when (state) {\n                                        State.UNCHECKED -> Icons.Rounded.CheckBoxOutlineBlank\n                                        State.CHECKED -> Icons.Rounded.CheckBox\n                                        State.INVERSED -> Icons.Rounded.DisabledByDefault\n                                    },\n                                    tint = if (state == State.UNCHECKED) {\n                                        LocalContentColor.current\n                                    } else {\n                                        MaterialTheme.colorScheme.primary\n                                    },\n                                    contentDescription = stringResource(\n                                        when (state) {\n                                            State.UNCHECKED -> MR.strings.not_selected\n                                            State.CHECKED -> MR.strings.selected\n                                            State.INVERSED -> MR.strings.disabled\n                                        },\n                                    ),\n                                )\n                                Text(text = itemLabel(item))\n                            }\n                        }\n                    }\n\n                    if (listState.canScrollBackward) HorizontalDivider(modifier = Modifier.align(Alignment.TopCenter))\n                    if (listState.canScrollForward) HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter))\n                }\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    val included = items.mapIndexedNotNull { index, category ->\n                        if (selected[index] == State.CHECKED) category else null\n                    }\n                    val excluded = items.mapIndexedNotNull { index, category ->\n                        if (selected[index] == State.INVERSED) category else null\n                    }\n                    onValueChanged(included, excluded)\n                },\n            ) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/stats/StatsScreenContent.kt",
    "content": "package eu.kanade.presentation.more.stats\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.IntrinsicSize\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyItemScope\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.CollectionsBookmark\nimport androidx.compose.material.icons.outlined.LocalLibrary\nimport androidx.compose.material.icons.outlined.Schedule\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.presentation.more.stats.components.StatsItem\nimport eu.kanade.presentation.more.stats.components.StatsOverviewItem\nimport eu.kanade.presentation.more.stats.data.StatsData\nimport eu.kanade.presentation.util.toDurationString\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.SectionCard\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport java.util.Locale\nimport kotlin.time.DurationUnit\nimport kotlin.time.toDuration\n\n@Composable\nfun StatsScreenContent(\n    state: StatsScreenState.Success,\n    paddingValues: PaddingValues,\n) {\n    LazyColumn(\n        contentPadding = paddingValues,\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n    ) {\n        item {\n            OverviewSection(state.overview)\n        }\n        item {\n            TitlesStats(state.titles)\n        }\n        item {\n            ChapterStats(state.chapters)\n        }\n        item {\n            TrackerStats(state.trackers)\n        }\n    }\n}\n\n@Composable\nprivate fun LazyItemScope.OverviewSection(\n    data: StatsData.Overview,\n) {\n    val none = stringResource(MR.strings.none)\n    val context = LocalContext.current\n    val readDurationString = remember(data.totalReadDuration) {\n        data.totalReadDuration\n            .toDuration(DurationUnit.MILLISECONDS)\n            .toDurationString(context, fallback = none)\n    }\n    SectionCard(MR.strings.label_overview_section) {\n        Row(\n            modifier = Modifier.height(IntrinsicSize.Min),\n        ) {\n            StatsOverviewItem(\n                title = data.libraryMangaCount.toString(),\n                subtitle = stringResource(MR.strings.in_library),\n                icon = Icons.Outlined.CollectionsBookmark,\n            )\n            StatsOverviewItem(\n                title = readDurationString,\n                subtitle = stringResource(MR.strings.label_read_duration),\n                icon = Icons.Outlined.Schedule,\n            )\n            StatsOverviewItem(\n                title = data.completedMangaCount.toString(),\n                subtitle = stringResource(MR.strings.label_completed_titles),\n                icon = Icons.Outlined.LocalLibrary,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun LazyItemScope.TitlesStats(\n    data: StatsData.Titles,\n) {\n    SectionCard(MR.strings.label_titles_section) {\n        Row {\n            StatsItem(\n                data.globalUpdateItemCount.toString(),\n                stringResource(MR.strings.label_titles_in_global_update),\n            )\n            StatsItem(\n                data.startedMangaCount.toString(),\n                stringResource(MR.strings.label_started),\n            )\n            StatsItem(\n                data.localMangaCount.toString(),\n                stringResource(MR.strings.label_local),\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun LazyItemScope.ChapterStats(\n    data: StatsData.Chapters,\n) {\n    SectionCard(MR.strings.chapters) {\n        Row {\n            StatsItem(\n                data.totalChapterCount.toString(),\n                stringResource(MR.strings.label_total_chapters),\n            )\n            StatsItem(\n                data.readChapterCount.toString(),\n                stringResource(MR.strings.label_read_chapters),\n            )\n            StatsItem(\n                data.downloadCount.toString(),\n                stringResource(MR.strings.label_downloaded),\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun LazyItemScope.TrackerStats(\n    data: StatsData.Trackers,\n) {\n    val notApplicable = stringResource(MR.strings.not_applicable)\n    val meanScoreStr = remember(data.trackedTitleCount, data.meanScore) {\n        if (data.trackedTitleCount > 0 && !data.meanScore.isNaN()) {\n            // All other numbers are localized in English\n            \"%.2f ★\".format(Locale.ENGLISH, data.meanScore)\n        } else {\n            notApplicable\n        }\n    }\n    SectionCard(MR.strings.label_tracker_section) {\n        Row {\n            StatsItem(\n                data.trackedTitleCount.toString(),\n                stringResource(MR.strings.label_tracked_titles),\n            )\n            StatsItem(\n                meanScoreStr,\n                stringResource(MR.strings.label_mean_score),\n            )\n            StatsItem(\n                data.trackerCount.toString(),\n                stringResource(MR.strings.label_used),\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/stats/StatsScreenState.kt",
    "content": "package eu.kanade.presentation.more.stats\n\nimport androidx.compose.runtime.Immutable\nimport eu.kanade.presentation.more.stats.data.StatsData\n\nsealed interface StatsScreenState {\n    @Immutable\n    data object Loading : StatsScreenState\n\n    @Immutable\n    data class Success(\n        val overview: StatsData.Overview,\n        val titles: StatsData.Titles,\n        val chapters: StatsData.Chapters,\n        val trackers: StatsData.Trackers,\n    ) : StatsScreenState\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/stats/components/StatsItem.kt",
    "content": "package eu.kanade.presentation.more.stats.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextAlign\nimport tachiyomi.presentation.core.components.material.SECONDARY_ALPHA\nimport tachiyomi.presentation.core.components.material.padding\n\n@Composable\nfun RowScope.StatsOverviewItem(\n    title: String,\n    subtitle: String,\n    icon: ImageVector,\n) {\n    BaseStatsItem(\n        title = title,\n        titleStyle = MaterialTheme.typography.titleLarge,\n        subtitle = subtitle,\n        subtitleStyle = MaterialTheme.typography.bodyMedium,\n        icon = icon,\n    )\n}\n\n@Composable\nfun RowScope.StatsItem(\n    title: String,\n    subtitle: String,\n) {\n    BaseStatsItem(\n        title = title,\n        titleStyle = MaterialTheme.typography.bodyMedium,\n        subtitle = subtitle,\n        subtitleStyle = MaterialTheme.typography.labelSmall,\n    )\n}\n\n@Composable\nprivate fun RowScope.BaseStatsItem(\n    title: String,\n    titleStyle: TextStyle,\n    subtitle: String,\n    subtitleStyle: TextStyle,\n    icon: ImageVector? = null,\n) {\n    Column(\n        modifier = Modifier\n            .weight(1f)\n            .fillMaxHeight(),\n        verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        horizontalAlignment = Alignment.CenterHorizontally,\n    ) {\n        Text(\n            text = title,\n            style = titleStyle\n                .copy(fontWeight = FontWeight.Bold),\n            textAlign = TextAlign.Center,\n            maxLines = 1,\n        )\n        Text(\n            text = subtitle,\n            style = subtitleStyle\n                .copy(\n                    color = MaterialTheme.colorScheme.onSurface\n                        .copy(alpha = SECONDARY_ALPHA),\n                ),\n            textAlign = TextAlign.Center,\n        )\n        if (icon != null) {\n            Spacer(modifier = Modifier.weight(1f))\n            Icon(\n                imageVector = icon,\n                contentDescription = null,\n                tint = MaterialTheme.colorScheme.primary,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/more/stats/data/StatsData.kt",
    "content": "package eu.kanade.presentation.more.stats.data\n\nsealed interface StatsData {\n\n    data class Overview(\n        val libraryMangaCount: Int,\n        val completedMangaCount: Int,\n        val totalReadDuration: Long,\n    ) : StatsData\n\n    data class Titles(\n        val globalUpdateItemCount: Int,\n        val startedMangaCount: Int,\n        val localMangaCount: Int,\n    ) : StatsData\n\n    data class Chapters(\n        val totalChapterCount: Int,\n        val readChapterCount: Int,\n        val downloadCount: Int,\n    ) : StatsData\n\n    data class Trackers(\n        val trackedTitleCount: Int,\n        val meanScore: Double,\n        val trackerCount: Int,\n    ) : StatsData\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.widthIn\nimport androidx.compose.foundation.text.InlineTextContent\nimport androidx.compose.foundation.text.appendInlineContent\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.CheckCircle\nimport androidx.compose.material.icons.outlined.Info\nimport androidx.compose.material.icons.outlined.Warning\nimport androidx.compose.material3.CardColors\nimport androidx.compose.material3.CardDefaults\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedCard\nimport androidx.compose.material3.ProvideTextStyle\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.text.Placeholder\nimport androidx.compose.ui.text.PlaceholderVerticalAlign\nimport androidx.compose.ui.text.buildAnnotatedString\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.tachiyomi.data.database.models.toDomainChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport kotlinx.collections.immutable.persistentMapOf\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.service.calculateChapterGap\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun ChapterTransition(\n    transition: ChapterTransition,\n    currChapterDownloaded: Boolean,\n    goingToChapterDownloaded: Boolean,\n) {\n    val currChapter = transition.from.chapter.toDomainChapter()\n    val goingToChapter = transition.to?.chapter?.toDomainChapter()\n\n    ProvideTextStyle(MaterialTheme.typography.bodyMedium) {\n        when (transition) {\n            is ChapterTransition.Prev -> {\n                TransitionText(\n                    topLabel = stringResource(MR.strings.transition_previous),\n                    topChapter = goingToChapter,\n                    topChapterDownloaded = goingToChapterDownloaded,\n                    bottomLabel = stringResource(MR.strings.transition_current),\n                    bottomChapter = currChapter,\n                    bottomChapterDownloaded = currChapterDownloaded,\n                    fallbackLabel = stringResource(MR.strings.transition_no_previous),\n                    chapterGap = calculateChapterGap(currChapter, goingToChapter),\n                )\n            }\n            is ChapterTransition.Next -> {\n                TransitionText(\n                    topLabel = stringResource(MR.strings.transition_finished),\n                    topChapter = currChapter,\n                    topChapterDownloaded = currChapterDownloaded,\n                    bottomLabel = stringResource(MR.strings.transition_next),\n                    bottomChapter = goingToChapter,\n                    bottomChapterDownloaded = goingToChapterDownloaded,\n                    fallbackLabel = stringResource(MR.strings.transition_no_next),\n                    chapterGap = calculateChapterGap(goingToChapter, currChapter),\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun TransitionText(\n    topLabel: String,\n    topChapter: Chapter?,\n    topChapterDownloaded: Boolean,\n    bottomLabel: String,\n    bottomChapter: Chapter?,\n    bottomChapterDownloaded: Boolean,\n    fallbackLabel: String,\n    chapterGap: Int,\n) {\n    Column(\n        modifier = Modifier\n            .widthIn(max = 460.dp)\n            .fillMaxWidth(),\n    ) {\n        if (topChapter != null) {\n            ChapterText(\n                header = topLabel,\n                name = topChapter.name,\n                scanlator = topChapter.scanlator,\n                downloaded = topChapterDownloaded,\n            )\n\n            Spacer(Modifier.height(VerticalSpacerSize))\n        } else {\n            NoChapterNotification(\n                text = fallbackLabel,\n                modifier = Modifier.align(Alignment.CenterHorizontally),\n            )\n        }\n\n        if (bottomChapter != null) {\n            if (chapterGap > 0) {\n                ChapterGapWarning(\n                    gapCount = chapterGap,\n                    modifier = Modifier.align(Alignment.CenterHorizontally),\n                )\n            }\n\n            Spacer(Modifier.height(VerticalSpacerSize))\n\n            ChapterText(\n                header = bottomLabel,\n                name = bottomChapter.name,\n                scanlator = bottomChapter.scanlator,\n                downloaded = bottomChapterDownloaded,\n            )\n        } else {\n            NoChapterNotification(\n                text = fallbackLabel,\n                modifier = Modifier.align(Alignment.CenterHorizontally),\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun NoChapterNotification(\n    text: String,\n    modifier: Modifier = Modifier,\n) {\n    OutlinedCard(\n        modifier = modifier,\n        colors = CardColor,\n    ) {\n        Row(\n            modifier = Modifier\n                .padding(horizontal = 16.dp, vertical = 12.dp),\n            horizontalArrangement = Arrangement.spacedBy(16.dp),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Icon(\n                imageVector = Icons.Outlined.Info,\n                tint = MaterialTheme.colorScheme.primary,\n                contentDescription = null,\n            )\n\n            Text(\n                text = text,\n                style = MaterialTheme.typography.bodyMedium,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun ChapterGapWarning(\n    gapCount: Int,\n    modifier: Modifier = Modifier,\n) {\n    OutlinedCard(\n        modifier = modifier,\n        colors = CardColor,\n    ) {\n        Row(\n            modifier = Modifier.padding(horizontal = 16.dp, vertical = 12.dp),\n            horizontalArrangement = Arrangement.spacedBy(16.dp),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            Icon(\n                imageVector = Icons.Outlined.Warning,\n                tint = MaterialTheme.colorScheme.error,\n                contentDescription = null,\n            )\n\n            Text(\n                text = pluralStringResource(MR.plurals.missing_chapters_warning, count = gapCount, gapCount),\n                style = MaterialTheme.typography.bodyMedium,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun ChapterHeaderText(\n    text: String,\n    modifier: Modifier = Modifier,\n) {\n    Text(\n        text = text,\n        modifier = modifier,\n        style = MaterialTheme.typography.titleMedium,\n    )\n}\n\n@Composable\nprivate fun ChapterText(\n    header: String,\n    name: String,\n    scanlator: String?,\n    downloaded: Boolean,\n) {\n    Column {\n        ChapterHeaderText(\n            text = header,\n            modifier = Modifier.padding(bottom = 4.dp),\n        )\n\n        Text(\n            text = buildAnnotatedString {\n                if (downloaded) {\n                    appendInlineContent(DOWNLOADED_ICON_ID)\n                    append(' ')\n                }\n                append(name)\n            },\n            fontSize = 20.sp,\n            maxLines = 5,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.titleLarge,\n            inlineContent = persistentMapOf(\n                DOWNLOADED_ICON_ID to InlineTextContent(\n                    Placeholder(\n                        width = 22.sp,\n                        height = 22.sp,\n                        placeholderVerticalAlign = PlaceholderVerticalAlign.Center,\n                    ),\n                ) {\n                    Icon(\n                        imageVector = Icons.Filled.CheckCircle,\n                        contentDescription = stringResource(MR.strings.label_downloaded),\n                    )\n                },\n            ),\n        )\n\n        scanlator?.let {\n            Text(\n                text = it,\n                modifier = Modifier\n                    .secondaryItemAlpha()\n                    .padding(top = 2.dp),\n                maxLines = 2,\n                overflow = TextOverflow.Ellipsis,\n                style = MaterialTheme.typography.bodySmall,\n            )\n        }\n    }\n}\n\nprivate val CardColor: CardColors\n    @Composable\n    get() = CardDefaults.outlinedCardColors(\n        containerColor = Color.Transparent,\n        contentColor = MaterialTheme.colorScheme.onSurface,\n    )\n\nprivate val VerticalSpacerSize = 24.dp\nprivate const val DOWNLOADED_ICON_ID = \"downloaded\"\n\nprivate fun previewChapter(name: String, scanlator: String, chapterNumber: Double) = Chapter.create().copy(\n    id = 0L,\n    mangaId = 0L,\n    url = \"\",\n    name = name,\n    scanlator = scanlator,\n    chapterNumber = chapterNumber,\n)\nprivate val FakeChapter = previewChapter(\n    name = \"Vol.1, Ch.1 - Fake Chapter Title\",\n    scanlator = \"Scanlator Name\",\n    chapterNumber = 1.0,\n)\nprivate val FakeGapChapter = previewChapter(\n    name = \"Vol.5, Ch.44 - Fake Gap Chapter Title\",\n    scanlator = \"Scanlator Name\",\n    chapterNumber = 44.0,\n)\nprivate val FakeChapterLongTitle = previewChapter(\n    name = \"Vol.1, Ch.0 - The Mundane Musings of a Metafictional Manga: A Chapter About a Chapter, Featuring\" +\n        \" an Absurdly Long Title and a Surprisingly Normal Day in the Lives of Our Heroes, as They Grapple with the \" +\n        \"Daily Challenges of Existence, from Paying Rent to Finding Love, All While Navigating the Strange World of \" +\n        \"Fictional Realities and Reality-Bending Fiction, Where the Fourth Wall is Always in Danger of Being Broken \" +\n        \"and the Line Between Author and Character is Forever Blurred.\",\n    scanlator = \"Long Long Funny Scanlator Sniper Group Name Reborn\",\n    chapterNumber = 1.0,\n)\n\n@PreviewLightDark\n@Composable\nprivate fun TransitionTextPreview() {\n    TachiyomiPreviewTheme {\n        Surface(modifier = Modifier.padding(48.dp)) {\n            ChapterTransition(\n                transition = ChapterTransition.Next(ReaderChapter(FakeChapter), ReaderChapter(FakeChapter)),\n                currChapterDownloaded = false,\n                goingToChapterDownloaded = true,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TransitionTextLongTitlePreview() {\n    TachiyomiPreviewTheme {\n        Surface(modifier = Modifier.padding(48.dp)) {\n            ChapterTransition(\n                transition = ChapterTransition.Next(ReaderChapter(FakeChapterLongTitle), ReaderChapter(FakeChapter)),\n                currChapterDownloaded = true,\n                goingToChapterDownloaded = true,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TransitionTextWithGapPreview() {\n    TachiyomiPreviewTheme {\n        Surface(modifier = Modifier.padding(48.dp)) {\n            ChapterTransition(\n                transition = ChapterTransition.Next(ReaderChapter(FakeChapter), ReaderChapter(FakeGapChapter)),\n                currChapterDownloaded = true,\n                goingToChapterDownloaded = false,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TransitionTextNoNextPreview() {\n    TachiyomiPreviewTheme {\n        Surface(modifier = Modifier.padding(48.dp)) {\n            ChapterTransition(\n                transition = ChapterTransition.Next(ReaderChapter(FakeChapter), null),\n                currChapterDownloaded = true,\n                goingToChapterDownloaded = false,\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TransitionTextNoPreviousPreview() {\n    TachiyomiPreviewTheme {\n        Surface(modifier = Modifier.padding(48.dp)) {\n            ChapterTransition(\n                transition = ChapterTransition.Prev(ReaderChapter(FakeChapter), null),\n                currChapterDownloaded = true,\n                goingToChapterDownloaded = false,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/DisplayRefreshHost.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.compose.foundation.Canvas\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.Stable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport kotlinx.coroutines.delay\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport kotlin.time.Duration.Companion.milliseconds\n\n@Stable\nclass DisplayRefreshHost {\n\n    internal var currentDisplayRefresh by mutableStateOf(false)\n    private val readerPreferences = Injekt.get<ReaderPreferences>()\n\n    internal val flashMillis = readerPreferences.flashDurationMillis\n    internal val flashMode = readerPreferences.flashColor\n\n    internal val flashIntervalPref = readerPreferences.flashPageInterval\n\n    // Internal State for Flash\n    private var flashInterval = flashIntervalPref.get()\n    private var timesCalled = 0\n\n    fun flash() {\n        if (timesCalled % flashInterval == 0) {\n            currentDisplayRefresh = true\n        }\n        timesCalled += 1\n    }\n\n    fun setInterval(interval: Int) {\n        flashInterval = interval\n        timesCalled = 0\n    }\n}\n\n@Composable\nfun DisplayRefreshHost(\n    hostState: DisplayRefreshHost,\n    modifier: Modifier = Modifier,\n) {\n    val currentDisplayRefresh = hostState.currentDisplayRefresh\n    val refreshDuration by hostState.flashMillis.collectAsState()\n    val flashMode by hostState.flashMode.collectAsState()\n    val flashInterval by hostState.flashIntervalPref.collectAsState()\n\n    var currentColor by remember { mutableStateOf<Color?>(null) }\n\n    LaunchedEffect(currentDisplayRefresh) {\n        if (!currentDisplayRefresh) {\n            currentColor = null\n            return@LaunchedEffect\n        }\n\n        val refreshDurationHalf = refreshDuration.milliseconds / 2\n        currentColor = if (flashMode == ReaderPreferences.FlashColor.BLACK) {\n            Color.Black\n        } else {\n            Color.White\n        }\n        delay(refreshDurationHalf)\n        if (flashMode == ReaderPreferences.FlashColor.WHITE_BLACK) {\n            currentColor = Color.Black\n        }\n        delay(refreshDurationHalf)\n        hostState.currentDisplayRefresh = false\n    }\n\n    LaunchedEffect(flashInterval) {\n        hostState.setInterval(flashInterval)\n    }\n\n    Canvas(\n        modifier = modifier.fillMaxSize(),\n    ) {\n        currentColor?.let { drawRect(it) }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/OrientationSelectDialog.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.lazy.grid.items\nimport androidx.compose.material3.Surface\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.domain.manga.model.readerOrientation\nimport eu.kanade.presentation.components.AdaptiveSheet\nimport eu.kanade.presentation.reader.components.ModeSelectionDialog\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.SettingsIconGrid\nimport tachiyomi.presentation.core.components.material.IconToggleButton\nimport tachiyomi.presentation.core.i18n.stringResource\n\nprivate val ReaderOrientationsWithoutDefault = ReaderOrientation.entries - ReaderOrientation.DEFAULT\n\n@Composable\nfun OrientationSelectDialog(\n    onDismissRequest: () -> Unit,\n    screenModel: ReaderSettingsScreenModel,\n    onChange: (StringResource) -> Unit,\n) {\n    val manga by screenModel.mangaFlow.collectAsState()\n    val orientation = remember(manga) { ReaderOrientation.fromPreference(manga?.readerOrientation?.toInt()) }\n\n    AdaptiveSheet(onDismissRequest = onDismissRequest) {\n        DialogContent(\n            orientation = orientation,\n            onChangeOrientation = {\n                screenModel.onChangeOrientation(it)\n                onChange(it.stringRes)\n                onDismissRequest()\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun DialogContent(\n    orientation: ReaderOrientation,\n    onChangeOrientation: (ReaderOrientation) -> Unit,\n) {\n    var selected by remember { mutableStateOf(orientation) }\n\n    ModeSelectionDialog(\n        onUseDefault = {\n            onChangeOrientation(\n                ReaderOrientation.DEFAULT,\n            )\n        }.takeIf { orientation != ReaderOrientation.DEFAULT },\n        onApply = { onChangeOrientation(selected) },\n    ) {\n        SettingsIconGrid(MR.strings.rotation_type) {\n            items(ReaderOrientationsWithoutDefault) { mode ->\n                IconToggleButton(\n                    checked = mode == selected,\n                    onCheckedChange = {\n                        selected = mode\n                    },\n                    modifier = Modifier.fillMaxWidth(),\n                    imageVector = mode.icon,\n                    title = stringResource(mode.stringRes),\n                )\n            }\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun DialogContentPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            Column {\n                DialogContent(\n                    orientation = ReaderOrientation.DEFAULT,\n                    onChangeOrientation = {},\n                )\n\n                DialogContent(\n                    orientation = ReaderOrientation.FREE,\n                    onChangeOrientation = {},\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/ReaderContentOverlay.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.annotation.ColorInt\nimport androidx.annotation.IntRange\nimport androidx.compose.foundation.Canvas\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.BlendMode\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.graphicsLayer\nimport kotlin.math.abs\n\n@Composable\nfun ReaderContentOverlay(\n    @IntRange(from = -100, to = 100) brightness: Int,\n    @ColorInt color: Int?,\n    colorBlendMode: BlendMode?,\n    modifier: Modifier = Modifier,\n) {\n    if (brightness < 0) {\n        val brightnessAlpha = remember(brightness) {\n            abs(brightness) / 100f\n        }\n\n        Canvas(\n            modifier = modifier\n                .fillMaxSize()\n                .graphicsLayer {\n                    alpha = brightnessAlpha\n                },\n        ) {\n            drawRect(Color.Black)\n        }\n    }\n\n    if (color != null) {\n        Canvas(\n            modifier = modifier\n                .fillMaxSize(),\n        ) {\n            drawRect(\n                color = Color(color),\n                blendMode = colorBlendMode ?: BlendMode.SrcOver,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/ReaderPageActionsDialog.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.ContentCopy\nimport androidx.compose.material.icons.outlined.Photo\nimport androidx.compose.material.icons.outlined.Save\nimport androidx.compose.material.icons.outlined.Share\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.AdaptiveSheet\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ActionButton\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ReaderPageActionsDialog(\n    onDismissRequest: () -> Unit,\n    onSetAsCover: () -> Unit,\n    onShare: (Boolean) -> Unit,\n    onSave: () -> Unit,\n) {\n    var showSetCoverDialog by remember { mutableStateOf(false) }\n\n    AdaptiveSheet(onDismissRequest = onDismissRequest) {\n        Row(\n            modifier = Modifier.padding(vertical = 16.dp),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        ) {\n            ActionButton(\n                modifier = Modifier.weight(1f),\n                title = stringResource(MR.strings.set_as_cover),\n                icon = Icons.Outlined.Photo,\n                onClick = { showSetCoverDialog = true },\n            )\n            ActionButton(\n                modifier = Modifier.weight(1f),\n                title = stringResource(MR.strings.action_copy_to_clipboard),\n                icon = Icons.Outlined.ContentCopy,\n                onClick = {\n                    onShare(true)\n                    onDismissRequest()\n                },\n            )\n            ActionButton(\n                modifier = Modifier.weight(1f),\n                title = stringResource(MR.strings.action_share),\n                icon = Icons.Outlined.Share,\n                onClick = {\n                    onShare(false)\n                    onDismissRequest()\n                },\n            )\n            ActionButton(\n                modifier = Modifier.weight(1f),\n                title = stringResource(MR.strings.action_save),\n                icon = Icons.Outlined.Save,\n                onClick = {\n                    onSave()\n                    onDismissRequest()\n                },\n            )\n        }\n    }\n\n    if (showSetCoverDialog) {\n        SetCoverDialog(\n            onConfirm = {\n                onSetAsCover()\n                showSetCoverDialog = false\n            },\n            onDismiss = { showSetCoverDialog = false },\n        )\n    }\n}\n\n@Composable\nprivate fun SetCoverDialog(\n    onConfirm: () -> Unit,\n    onDismiss: () -> Unit,\n) {\n    AlertDialog(\n        text = {\n            Text(stringResource(MR.strings.confirm_set_image_as_cover))\n        },\n        confirmButton = {\n            TextButton(onClick = onConfirm) {\n                Text(stringResource(MR.strings.action_ok))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismiss) {\n                Text(stringResource(MR.strings.action_cancel))\n            }\n        },\n        onDismissRequest = onDismiss,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/ReaderPageIndicator.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.drawscope.Stroke\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.sp\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\n\n@Composable\nfun ReaderPageIndicator(\n    currentPage: Int,\n    totalPages: Int,\n    modifier: Modifier = Modifier,\n) {\n    if (currentPage <= 0 || totalPages <= 0) return\n\n    val text = \"$currentPage / $totalPages\"\n\n    val style = TextStyle(\n        color = Color(235, 235, 235),\n        fontSize = MaterialTheme.typography.bodySmall.fontSize,\n        fontWeight = FontWeight.Bold,\n        letterSpacing = 1.sp,\n    )\n    val strokeStyle = style.copy(\n        color = Color(45, 45, 45),\n        drawStyle = Stroke(width = 4f),\n    )\n\n    Box(\n        contentAlignment = Alignment.Center,\n        modifier = modifier,\n    ) {\n        Text(\n            text = text,\n            style = strokeStyle,\n        )\n        Text(\n            text = text,\n            style = style,\n        )\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun ReaderPageIndicatorPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            ReaderPageIndicator(currentPage = 10, totalPages = 69)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt",
    "content": "package eu.kanade.presentation.reader\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.lazy.grid.items\nimport androidx.compose.material3.Surface\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.res.vectorResource\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.domain.manga.model.readingMode\nimport eu.kanade.presentation.components.AdaptiveSheet\nimport eu.kanade.presentation.reader.components.ModeSelectionDialog\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.SettingsIconGrid\nimport tachiyomi.presentation.core.components.material.IconToggleButton\nimport tachiyomi.presentation.core.i18n.stringResource\n\nprivate val ReadingModesWithoutDefault = ReadingMode.entries - ReadingMode.DEFAULT\n\n@Composable\nfun ReadingModeSelectDialog(\n    onDismissRequest: () -> Unit,\n    screenModel: ReaderSettingsScreenModel,\n    onChange: (StringResource) -> Unit,\n) {\n    val manga by screenModel.mangaFlow.collectAsState()\n    val readingMode = remember(manga) { ReadingMode.fromPreference(manga?.readingMode?.toInt()) }\n\n    AdaptiveSheet(onDismissRequest = onDismissRequest) {\n        DialogContent(\n            readingMode = readingMode,\n            onChangeReadingMode = {\n                screenModel.onChangeReadingMode(it)\n                onChange(it.stringRes)\n                onDismissRequest()\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun DialogContent(\n    readingMode: ReadingMode,\n    onChangeReadingMode: (ReadingMode) -> Unit,\n) {\n    var selected by remember { mutableStateOf(readingMode) }\n\n    ModeSelectionDialog(\n        onUseDefault = { onChangeReadingMode(ReadingMode.DEFAULT) }.takeIf { readingMode != ReadingMode.DEFAULT },\n        onApply = { onChangeReadingMode(selected) },\n    ) {\n        SettingsIconGrid(MR.strings.pref_category_reading_mode) {\n            items(ReadingModesWithoutDefault) { mode ->\n                IconToggleButton(\n                    checked = mode == selected,\n                    onCheckedChange = {\n                        selected = mode\n                    },\n                    modifier = Modifier.fillMaxWidth(),\n                    imageVector = ImageVector.vectorResource(mode.iconRes),\n                    title = stringResource(mode.stringRes),\n                )\n            }\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun DialogContentPreview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            Column {\n                DialogContent(\n                    readingMode = ReadingMode.DEFAULT,\n                    onChangeReadingMode = {},\n                )\n\n                DialogContent(\n                    readingMode = ReadingMode.LEFT_TO_RIGHT,\n                    onChangeReadingMode = {},\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderAppBars.kt",
    "content": "package eu.kanade.presentation.reader.appbars\n\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.animation.core.tween\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.slideInVertically\nimport androidx.compose.animation.slideOutVertically\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.navigationBars\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.surfaceColorAtElevation\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.IntOffset\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.reader.components.ChapterNavigator\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport eu.kanade.tachiyomi.ui.reader.viewer.Viewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.pager.R2LPagerViewer\nimport tachiyomi.presentation.core.components.material.padding\n\nprivate val readerBarsSlideAnimationSpec = tween<IntOffset>(200)\nprivate val readerBarsFadeAnimationSpec = tween<Float>(150)\n\n@Composable\nfun ReaderAppBars(\n    visible: Boolean,\n\n    mangaTitle: String?,\n    chapterTitle: String?,\n    navigateUp: () -> Unit,\n    onClickTopAppBar: () -> Unit,\n    bookmarked: Boolean,\n    onToggleBookmarked: () -> Unit,\n    onOpenInWebView: (() -> Unit)?,\n    onOpenInBrowser: (() -> Unit)?,\n    onShare: (() -> Unit)?,\n\n    viewer: Viewer?,\n    onNextChapter: () -> Unit,\n    enabledNext: Boolean,\n    onPreviousChapter: () -> Unit,\n    enabledPrevious: Boolean,\n    currentPage: Int,\n    totalPages: Int,\n    onPageIndexChange: (Int) -> Unit,\n\n    readingMode: ReadingMode,\n    onClickReadingMode: () -> Unit,\n    orientation: ReaderOrientation,\n    onClickOrientation: () -> Unit,\n    cropEnabled: Boolean,\n    onClickCropBorder: () -> Unit,\n    onClickSettings: () -> Unit,\n) {\n    val isRtl = viewer is R2LPagerViewer\n    val backgroundColor = MaterialTheme.colorScheme\n        .surfaceColorAtElevation(3.dp)\n        .copy(alpha = if (isSystemInDarkTheme()) 0.9f else 0.95f)\n\n    Column(modifier = Modifier.fillMaxHeight()) {\n        AnimatedVisibility(\n            visible = visible,\n            enter = slideInVertically(initialOffsetY = { -it }, animationSpec = readerBarsSlideAnimationSpec) +\n                fadeIn(animationSpec = readerBarsFadeAnimationSpec),\n            exit = slideOutVertically(targetOffsetY = { -it }, animationSpec = readerBarsSlideAnimationSpec) +\n                fadeOut(animationSpec = readerBarsFadeAnimationSpec),\n        ) {\n            ReaderTopBar(\n                modifier = Modifier\n                    .background(backgroundColor)\n                    .clickable(onClick = onClickTopAppBar),\n                mangaTitle = mangaTitle,\n                chapterTitle = chapterTitle,\n                navigateUp = navigateUp,\n                bookmarked = bookmarked,\n                onToggleBookmarked = onToggleBookmarked,\n                onOpenInWebView = onOpenInWebView,\n                onOpenInBrowser = onOpenInBrowser,\n                onShare = onShare,\n            )\n        }\n\n        Spacer(modifier = Modifier.weight(1f))\n\n        AnimatedVisibility(\n            visible = visible,\n            enter = slideInVertically(initialOffsetY = { it }, animationSpec = readerBarsSlideAnimationSpec) +\n                fadeIn(animationSpec = readerBarsFadeAnimationSpec),\n            exit = slideOutVertically(targetOffsetY = { it }, animationSpec = readerBarsSlideAnimationSpec) +\n                fadeOut(animationSpec = readerBarsFadeAnimationSpec),\n        ) {\n            Column(verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small)) {\n                ChapterNavigator(\n                    isRtl = isRtl,\n                    onNextChapter = onNextChapter,\n                    enabledNext = enabledNext,\n                    onPreviousChapter = onPreviousChapter,\n                    enabledPrevious = enabledPrevious,\n                    currentPage = currentPage,\n                    totalPages = totalPages,\n                    onPageIndexChange = onPageIndexChange,\n                )\n                ReaderBottomBar(\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .background(backgroundColor)\n                        .padding(horizontal = MaterialTheme.padding.small)\n                        .windowInsetsPadding(WindowInsets.navigationBars),\n                    readingMode = readingMode,\n                    onClickReadingMode = onClickReadingMode,\n                    orientation = orientation,\n                    onClickOrientation = onClickOrientation,\n                    cropEnabled = cropEnabled,\n                    onClickCropBorder = onClickCropBorder,\n                    onClickSettings = onClickSettings,\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderBottomBar.kt",
    "content": "package eu.kanade.presentation.reader.appbars\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Settings\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.input.pointer.pointerInput\nimport androidx.compose.ui.res.painterResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ReaderBottomBar(\n    readingMode: ReadingMode,\n    onClickReadingMode: () -> Unit,\n    orientation: ReaderOrientation,\n    onClickOrientation: () -> Unit,\n    cropEnabled: Boolean,\n    onClickCropBorder: () -> Unit,\n    onClickSettings: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Row(\n        modifier = modifier\n            .pointerInput(Unit) {},\n        horizontalArrangement = Arrangement.SpaceEvenly,\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        IconButton(onClick = onClickReadingMode) {\n            Icon(\n                painter = painterResource(readingMode.iconRes),\n                contentDescription = stringResource(MR.strings.viewer),\n            )\n        }\n\n        IconButton(onClick = onClickOrientation) {\n            Icon(\n                imageVector = orientation.icon,\n                contentDescription = stringResource(MR.strings.rotation_type),\n            )\n        }\n\n        IconButton(onClick = onClickCropBorder) {\n            Icon(\n                painter = painterResource(if (cropEnabled) R.drawable.ic_crop_24dp else R.drawable.ic_crop_off_24dp),\n                contentDescription = stringResource(MR.strings.pref_crop_borders),\n            )\n        }\n\n        IconButton(onClick = onClickSettings) {\n            Icon(\n                imageVector = Icons.Outlined.Settings,\n                contentDescription = stringResource(MR.strings.action_settings),\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderTopBar.kt",
    "content": "package eu.kanade.presentation.reader.appbars\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Bookmark\nimport androidx.compose.material.icons.outlined.BookmarkBorder\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ReaderTopBar(\n    mangaTitle: String?,\n    chapterTitle: String?,\n    navigateUp: () -> Unit,\n    bookmarked: Boolean,\n    onToggleBookmarked: () -> Unit,\n    onOpenInWebView: (() -> Unit)?,\n    onOpenInBrowser: (() -> Unit)?,\n    onShare: (() -> Unit)?,\n    modifier: Modifier = Modifier,\n) {\n    AppBar(\n        modifier = modifier,\n        backgroundColor = Color.Transparent,\n        title = mangaTitle,\n        subtitle = chapterTitle,\n        navigateUp = navigateUp,\n        actions = {\n            AppBarActions(\n                actions = persistentListOf<AppBar.AppBarAction>().builder()\n                    .apply {\n                        add(\n                            AppBar.Action(\n                                title = stringResource(\n                                    if (bookmarked) {\n                                        MR.strings.action_remove_bookmark\n                                    } else {\n                                        MR.strings.action_bookmark\n                                    },\n                                ),\n                                icon = if (bookmarked) {\n                                    Icons.Outlined.Bookmark\n                                } else {\n                                    Icons.Outlined.BookmarkBorder\n                                },\n                                onClick = onToggleBookmarked,\n                            ),\n                        )\n                        onOpenInWebView?.let {\n                            add(\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.action_open_in_web_view),\n                                    onClick = it,\n                                ),\n                            )\n                        }\n                        onOpenInBrowser?.let {\n                            add(\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.action_open_in_browser),\n                                    onClick = it,\n                                ),\n                            )\n                        }\n                        onShare?.let {\n                            add(\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.action_share),\n                                    onClick = it,\n                                ),\n                            )\n                        }\n                    }\n                    .build(),\n            )\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/components/ChapterNavigator.kt",
    "content": "package eu.kanade.presentation.reader.components\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.interaction.MutableInteractionSource\nimport androidx.compose.foundation.interaction.collectIsDraggedAsState\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.SkipNext\nimport androidx.compose.material.icons.outlined.SkipPrevious\nimport androidx.compose.material3.FilledIconButton\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButtonDefaults\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.surfaceColorAtElevation\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.tooling.preview.Preview\nimport androidx.compose.ui.unit.LayoutDirection\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.presentation.util.isTabletUi\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Slider\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ChapterNavigator(\n    isRtl: Boolean,\n    onNextChapter: () -> Unit,\n    enabledNext: Boolean,\n    onPreviousChapter: () -> Unit,\n    enabledPrevious: Boolean,\n    currentPage: Int,\n    totalPages: Int,\n    onPageIndexChange: (Int) -> Unit,\n) {\n    val isTabletUi = isTabletUi()\n    val horizontalPadding = if (isTabletUi) 24.dp else 8.dp\n    val layoutDirection = if (isRtl) LayoutDirection.Rtl else LayoutDirection.Ltr\n    val haptic = LocalHapticFeedback.current\n\n    // Match with toolbar background color set in ReaderActivity\n    val backgroundColor = MaterialTheme.colorScheme\n        .surfaceColorAtElevation(3.dp)\n        .copy(alpha = if (isSystemInDarkTheme()) 0.9f else 0.95f)\n    val buttonColor = IconButtonDefaults.filledIconButtonColors(\n        containerColor = backgroundColor,\n        disabledContainerColor = backgroundColor,\n    )\n\n    // We explicitly handle direction based on the reader viewer rather than the system direction\n    CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) {\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(horizontal = horizontalPadding),\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            FilledIconButton(\n                enabled = if (isRtl) enabledNext else enabledPrevious,\n                onClick = if (isRtl) onNextChapter else onPreviousChapter,\n                colors = buttonColor,\n            ) {\n                Icon(\n                    imageVector = Icons.Outlined.SkipPrevious,\n                    contentDescription = stringResource(\n                        if (isRtl) MR.strings.action_next_chapter else MR.strings.action_previous_chapter,\n                    ),\n                )\n            }\n\n            if (totalPages > 1) {\n                CompositionLocalProvider(LocalLayoutDirection provides layoutDirection) {\n                    Row(\n                        modifier = Modifier\n                            .weight(1f)\n                            .clip(RoundedCornerShape(24.dp))\n                            .background(backgroundColor)\n                            .padding(horizontal = 16.dp),\n                        verticalAlignment = Alignment.CenterVertically,\n                    ) {\n                        Box(contentAlignment = Alignment.CenterEnd) {\n                            Text(text = currentPage.toString())\n                            // Taking up full length so the slider doesn't shift when 'currentPage' length changes\n                            Text(text = totalPages.toString(), color = Color.Transparent)\n                        }\n\n                        val interactionSource = remember { MutableInteractionSource() }\n                        val sliderDragged by interactionSource.collectIsDraggedAsState()\n                        LaunchedEffect(currentPage) {\n                            if (sliderDragged) {\n                                haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)\n                            }\n                        }\n                        Slider(\n                            modifier = Modifier\n                                .weight(1f)\n                                .padding(horizontal = 8.dp),\n                            value = currentPage,\n                            valueRange = 1..totalPages,\n                            onValueChange = f@{\n                                if (it == currentPage) return@f\n                                onPageIndexChange(it - 1)\n                            },\n                            interactionSource = interactionSource,\n                        )\n\n                        Text(text = totalPages.toString())\n                    }\n                }\n            } else {\n                Spacer(Modifier.weight(1f))\n            }\n\n            FilledIconButton(\n                enabled = if (isRtl) enabledPrevious else enabledNext,\n                onClick = if (isRtl) onPreviousChapter else onNextChapter,\n                colors = buttonColor,\n            ) {\n                Icon(\n                    imageVector = Icons.Outlined.SkipNext,\n                    contentDescription = stringResource(\n                        if (isRtl) MR.strings.action_previous_chapter else MR.strings.action_next_chapter,\n                    ),\n                )\n            }\n        }\n    }\n}\n\n@Preview\n@Composable\nprivate fun ChapterNavigatorPreview() {\n    var currentPage by remember { mutableIntStateOf(1) }\n    TachiyomiPreviewTheme {\n        ChapterNavigator(\n            isRtl = false,\n            onNextChapter = {},\n            enabledNext = true,\n            onPreviousChapter = {},\n            enabledPrevious = true,\n            currentPage = currentPage,\n            totalPages = 10,\n            onPageIndexChange = { currentPage = (it + 1) },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/components/ModeSelectionDialog.kt",
    "content": "package eu.kanade.presentation.reader.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Check\nimport androidx.compose.material3.FilledTonalButton\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedButton\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.SettingsItemsPaddings\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ModeSelectionDialog(\n    onApply: () -> Unit,\n    onUseDefault: (() -> Unit)? = null,\n    content: @Composable () -> Unit,\n) {\n    Box(modifier = Modifier.padding(vertical = 16.dp)) {\n        Column {\n            content()\n\n            Row(\n                modifier = Modifier.padding(\n                    horizontal = SettingsItemsPaddings.Horizontal,\n                ),\n            ) {\n                onUseDefault?.let {\n                    OutlinedButton(onClick = it) {\n                        Text(text = stringResource(MR.strings.action_revert_to_default))\n                    }\n                }\n\n                Spacer(modifier = Modifier.weight(1f))\n\n                FilledTonalButton(\n                    onClick = onApply,\n                ) {\n                    Row(\n                        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                        verticalAlignment = Alignment.CenterVertically,\n                    ) {\n                        Icon(\n                            imageVector = Icons.Outlined.Check,\n                            contentDescription = null,\n                        )\n                        Text(text = stringResource(MR.strings.action_apply))\n                    }\n                }\n            }\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun Preview() {\n    TachiyomiPreviewTheme {\n        Surface {\n            Column {\n                ModeSelectionDialog(\n                    onApply = {},\n                    onUseDefault = {},\n                ) {\n                    Text(\"Dummy content\")\n                }\n\n                ModeSelectionDialog(\n                    onApply = {},\n                ) {\n                    Text(\"Dummy content without default\")\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/settings/ColorFilterPage.kt",
    "content": "package eu.kanade.presentation.reader.settings\n\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.core.graphics.alpha\nimport androidx.core.graphics.blue\nimport androidx.core.graphics.green\nimport androidx.core.graphics.red\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences.Companion.ColorFilterMode\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.CheckboxItem\nimport tachiyomi.presentation.core.components.SettingsChipRow\nimport tachiyomi.presentation.core.components.SliderItem\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\n\n@Composable\ninternal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) {\n    val customBrightness by screenModel.preferences.customBrightness.collectAsState()\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_custom_brightness),\n        pref = screenModel.preferences.customBrightness,\n    )\n\n    /*\n     * Sets the brightness of the screen. Range is [-75, 100].\n     * From -75 to -1 a semi-transparent black view is shown at the top with the minimum brightness.\n     * From 1 to 100 it sets that value as brightness.\n     * 0 sets system brightness and hides the overlay.\n     */\n    if (customBrightness) {\n        val customBrightnessValue by screenModel.preferences.customBrightnessValue.collectAsState()\n        SliderItem(\n            value = customBrightnessValue,\n            valueRange = -75..100,\n            steps = 0,\n            label = stringResource(MR.strings.pref_custom_brightness),\n            onChange = { screenModel.preferences.customBrightnessValue.set(it) },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n    }\n\n    val colorFilter by screenModel.preferences.colorFilter.collectAsState()\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_custom_color_filter),\n        pref = screenModel.preferences.colorFilter,\n    )\n    if (colorFilter) {\n        val colorFilterValue by screenModel.preferences.colorFilterValue.collectAsState()\n        SliderItem(\n            value = colorFilterValue.red,\n            valueRange = 0..255,\n            steps = 0,\n            label = stringResource(MR.strings.color_filter_r_value),\n            onChange = { newRValue ->\n                screenModel.preferences.colorFilterValue.getAndSet {\n                    getColorValue(it, newRValue, RED_MASK, 16)\n                }\n            },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n        SliderItem(\n            value = colorFilterValue.green,\n            valueRange = 0..255,\n            steps = 0,\n            label = stringResource(MR.strings.color_filter_g_value),\n            onChange = { newGValue ->\n                screenModel.preferences.colorFilterValue.getAndSet {\n                    getColorValue(it, newGValue, GREEN_MASK, 8)\n                }\n            },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n        SliderItem(\n            value = colorFilterValue.blue,\n            valueRange = 0..255,\n            steps = 0,\n            label = stringResource(MR.strings.color_filter_b_value),\n            onChange = { newBValue ->\n                screenModel.preferences.colorFilterValue.getAndSet {\n                    getColorValue(it, newBValue, BLUE_MASK, 0)\n                }\n            },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n        SliderItem(\n            value = colorFilterValue.alpha,\n            valueRange = 0..255,\n            steps = 0,\n            label = stringResource(MR.strings.color_filter_a_value),\n            onChange = { newAValue ->\n                screenModel.preferences.colorFilterValue.getAndSet {\n                    getColorValue(it, newAValue, ALPHA_MASK, 24)\n                }\n            },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n\n        val colorFilterMode by screenModel.preferences.colorFilterMode.collectAsState()\n        SettingsChipRow(MR.strings.pref_color_filter_mode) {\n            ColorFilterMode.mapIndexed { index, it ->\n                FilterChip(\n                    selected = colorFilterMode == index,\n                    onClick = { screenModel.preferences.colorFilterMode.set(index) },\n                    label = { Text(stringResource(it.first)) },\n                )\n            }\n        }\n    }\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_grayscale),\n        pref = screenModel.preferences.grayscale,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_inverted_colors),\n        pref = screenModel.preferences.invertedColors,\n    )\n}\n\nprivate fun getColorValue(currentColor: Int, color: Int, mask: Long, bitShift: Int): Int {\n    return (color shl bitShift) or (currentColor and mask.inv().toInt())\n}\nprivate const val ALPHA_MASK: Long = 0xFF000000\nprivate const val RED_MASK: Long = 0x00FF0000\nprivate const val GREEN_MASK: Long = 0x0000FF00\nprivate const val BLUE_MASK: Long = 0x000000FF\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt",
    "content": "package eu.kanade.presentation.reader.settings\n\nimport androidx.activity.compose.LocalActivity\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport eu.kanade.tachiyomi.util.system.hasDisplayCutout\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.CheckboxItem\nimport tachiyomi.presentation.core.components.SettingsChipRow\nimport tachiyomi.presentation.core.components.SliderItem\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\n\nprivate val themes = listOf(\n    MR.strings.black_background to 1,\n    MR.strings.gray_background to 2,\n    MR.strings.white_background to 0,\n    MR.strings.automatic_background to 3,\n)\n\nprivate val flashColors = listOf(\n    MR.strings.pref_flash_style_black to ReaderPreferences.FlashColor.BLACK,\n    MR.strings.pref_flash_style_white to ReaderPreferences.FlashColor.WHITE,\n    MR.strings.pref_flash_style_white_black to ReaderPreferences.FlashColor.WHITE_BLACK,\n)\n\n@Composable\ninternal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) {\n    val readerTheme by screenModel.preferences.readerTheme.collectAsState()\n\n    val flashPageState by screenModel.preferences.flashOnPageChange.collectAsState()\n\n    val flashMillisPref = screenModel.preferences.flashDurationMillis\n    val flashMillis by flashMillisPref.collectAsState()\n\n    val flashIntervalPref = screenModel.preferences.flashPageInterval\n    val flashInterval by flashIntervalPref.collectAsState()\n\n    val flashColorPref = screenModel.preferences.flashColor\n    val flashColor by flashColorPref.collectAsState()\n\n    SettingsChipRow(MR.strings.pref_reader_theme) {\n        themes.map { (labelRes, value) ->\n            FilterChip(\n                selected = readerTheme == value,\n                onClick = { screenModel.preferences.readerTheme.set(value) },\n                label = { Text(stringResource(labelRes)) },\n            )\n        }\n    }\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_show_page_number),\n        pref = screenModel.preferences.showPageNumber,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_fullscreen),\n        pref = screenModel.preferences.fullscreen,\n    )\n\n    val isFullscreen by screenModel.preferences.fullscreen.collectAsState()\n    if (LocalActivity.current?.hasDisplayCutout() == true && isFullscreen) {\n        CheckboxItem(\n            label = stringResource(MR.strings.pref_cutout_short),\n            pref = screenModel.preferences.drawUnderCutout,\n        )\n    }\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_keep_screen_on),\n        pref = screenModel.preferences.keepScreenOn,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_read_with_long_tap),\n        pref = screenModel.preferences.readWithLongTap,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_always_show_chapter_transition),\n        pref = screenModel.preferences.alwaysShowChapterTransition,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_page_transitions),\n        pref = screenModel.preferences.pageTransitions,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_flash_page),\n        pref = screenModel.preferences.flashOnPageChange,\n    )\n    if (flashPageState) {\n        SliderItem(\n            value = flashMillis / ReaderPreferences.MILLI_CONVERSION,\n            valueRange = 1..15,\n            label = stringResource(MR.strings.pref_flash_duration),\n            valueString = stringResource(MR.strings.pref_flash_duration_summary, flashMillis),\n            onChange = { flashMillisPref.set(it * ReaderPreferences.MILLI_CONVERSION) },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n        SliderItem(\n            value = flashInterval,\n            valueRange = 1..10,\n            label = stringResource(MR.strings.pref_flash_page_interval),\n            valueString = pluralStringResource(MR.plurals.pref_pages, flashInterval, flashInterval),\n            onChange = {\n                flashIntervalPref.set(it)\n            },\n            pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n        )\n        SettingsChipRow(MR.strings.pref_flash_with) {\n            flashColors.map { (labelRes, value) ->\n                FilterChip(\n                    selected = flashColor == value,\n                    onClick = { flashColorPref.set(value) },\n                    label = { Text(stringResource(labelRes)) },\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/settings/ReaderSettingsDialog.kt",
    "content": "package eu.kanade.presentation.reader.settings\n\nimport androidx.compose.foundation.layout.BoxWithConstraints\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.heightIn\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.pager.rememberPagerState\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalView\nimport androidx.compose.ui.window.DialogWindowProvider\nimport eu.kanade.presentation.components.TabbedDialog\nimport eu.kanade.presentation.components.TabbedDialogPaddings\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun ReaderSettingsDialog(\n    onDismissRequest: () -> Unit,\n    onShowMenus: () -> Unit,\n    onHideMenus: () -> Unit,\n    screenModel: ReaderSettingsScreenModel,\n) {\n    val tabTitles = persistentListOf(\n        stringResource(MR.strings.pref_category_reading_mode),\n        stringResource(MR.strings.pref_category_general),\n        stringResource(MR.strings.custom_filter),\n    )\n    val pagerState = rememberPagerState { tabTitles.size }\n\n    BoxWithConstraints {\n        TabbedDialog(\n            modifier = Modifier.heightIn(max = maxHeight * 0.75f),\n            onDismissRequest = {\n                onDismissRequest()\n                onShowMenus()\n            },\n            tabTitles = tabTitles,\n            pagerState = pagerState,\n        ) { page ->\n            val window = (LocalView.current.parent as? DialogWindowProvider)?.window\n\n            LaunchedEffect(pagerState.currentPage) {\n                if (pagerState.currentPage == 2) {\n                    window?.setDimAmount(0f)\n                    onHideMenus()\n                } else {\n                    window?.setDimAmount(0.5f)\n                    onShowMenus()\n                }\n            }\n\n            Column(\n                modifier = Modifier\n                    .padding(vertical = TabbedDialogPaddings.Vertical)\n                    .verticalScroll(rememberScrollState()),\n            ) {\n                when (page) {\n                    0 -> ReadingModePage(screenModel)\n                    1 -> GeneralPage(screenModel)\n                    2 -> ColorFilterPage(screenModel)\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt",
    "content": "package eu.kanade.presentation.reader.settings\n\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport eu.kanade.domain.manga.model.readerOrientation\nimport eu.kanade.domain.manga.model.readingMode\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.CheckboxItem\nimport tachiyomi.presentation.core.components.HeadingItem\nimport tachiyomi.presentation.core.components.SettingsChipRow\nimport tachiyomi.presentation.core.components.SliderItem\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport java.text.NumberFormat\n\n@Composable\ninternal fun ColumnScope.ReadingModePage(screenModel: ReaderSettingsScreenModel) {\n    HeadingItem(MR.strings.pref_category_for_this_series)\n    val manga by screenModel.mangaFlow.collectAsState()\n\n    val readingMode = remember(manga) { ReadingMode.fromPreference(manga?.readingMode?.toInt()) }\n    SettingsChipRow(MR.strings.pref_category_reading_mode) {\n        ReadingMode.entries.map {\n            FilterChip(\n                selected = it == readingMode,\n                onClick = { screenModel.onChangeReadingMode(it) },\n                label = { Text(stringResource(it.stringRes)) },\n            )\n        }\n    }\n\n    val orientation = remember(manga) { ReaderOrientation.fromPreference(manga?.readerOrientation?.toInt()) }\n    SettingsChipRow(MR.strings.rotation_type) {\n        ReaderOrientation.entries.map {\n            FilterChip(\n                selected = it == orientation,\n                onClick = { screenModel.onChangeOrientation(it) },\n                label = { Text(stringResource(it.stringRes)) },\n            )\n        }\n    }\n\n    val viewer by screenModel.viewerFlow.collectAsState()\n    if (viewer is WebtoonViewer) {\n        WebtoonViewerSettings(screenModel)\n    } else {\n        PagerViewerSettings(screenModel)\n    }\n}\n\n@Composable\nprivate fun ColumnScope.PagerViewerSettings(screenModel: ReaderSettingsScreenModel) {\n    HeadingItem(MR.strings.pager_viewer)\n\n    val navigationModePager by screenModel.preferences.navigationModePager.collectAsState()\n    val pagerNavInverted by screenModel.preferences.pagerNavInverted.collectAsState()\n    TapZonesItems(\n        selected = navigationModePager,\n        onSelect = screenModel.preferences.navigationModePager::set,\n        invertMode = pagerNavInverted,\n        onSelectInvertMode = screenModel.preferences.pagerNavInverted::set,\n    )\n\n    val imageScaleType by screenModel.preferences.imageScaleType.collectAsState()\n    SettingsChipRow(MR.strings.pref_image_scale_type) {\n        ReaderPreferences.ImageScaleType.mapIndexed { index, it ->\n            FilterChip(\n                selected = imageScaleType == index + 1,\n                onClick = { screenModel.preferences.imageScaleType.set(index + 1) },\n                label = { Text(stringResource(it)) },\n            )\n        }\n    }\n\n    val zoomStart by screenModel.preferences.zoomStart.collectAsState()\n    SettingsChipRow(MR.strings.pref_zoom_start) {\n        ReaderPreferences.ZoomStart.mapIndexed { index, it ->\n            FilterChip(\n                selected = zoomStart == index + 1,\n                onClick = { screenModel.preferences.zoomStart.set(index + 1) },\n                label = { Text(stringResource(it)) },\n            )\n        }\n    }\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_crop_borders),\n        pref = screenModel.preferences.cropBorders,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_landscape_zoom),\n        pref = screenModel.preferences.landscapeZoom,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_navigate_pan),\n        pref = screenModel.preferences.navigateToPan,\n    )\n\n    val dualPageSplitPaged by screenModel.preferences.dualPageSplitPaged.collectAsState()\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_dual_page_split),\n        pref = screenModel.preferences.dualPageSplitPaged,\n    )\n\n    if (dualPageSplitPaged) {\n        CheckboxItem(\n            label = stringResource(MR.strings.pref_dual_page_invert),\n            pref = screenModel.preferences.dualPageInvertPaged,\n        )\n    }\n\n    val dualPageRotateToFit by screenModel.preferences.dualPageRotateToFit.collectAsState()\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_page_rotate),\n        pref = screenModel.preferences.dualPageRotateToFit,\n    )\n\n    if (dualPageRotateToFit) {\n        CheckboxItem(\n            label = stringResource(MR.strings.pref_page_rotate_invert),\n            pref = screenModel.preferences.dualPageRotateToFitInvert,\n        )\n    }\n}\n\n@Composable\nprivate fun ColumnScope.WebtoonViewerSettings(screenModel: ReaderSettingsScreenModel) {\n    val numberFormat = remember { NumberFormat.getPercentInstance() }\n\n    HeadingItem(MR.strings.webtoon_viewer)\n\n    val navigationModeWebtoon by screenModel.preferences.navigationModeWebtoon.collectAsState()\n    val webtoonNavInverted by screenModel.preferences.webtoonNavInverted.collectAsState()\n    TapZonesItems(\n        selected = navigationModeWebtoon,\n        onSelect = screenModel.preferences.navigationModeWebtoon::set,\n        invertMode = webtoonNavInverted,\n        onSelectInvertMode = screenModel.preferences.webtoonNavInverted::set,\n    )\n\n    val webtoonSidePadding by screenModel.preferences.webtoonSidePadding.collectAsState()\n    SliderItem(\n        value = webtoonSidePadding,\n        valueRange = ReaderPreferences.let { it.WEBTOON_PADDING_MIN..it.WEBTOON_PADDING_MAX },\n        label = stringResource(MR.strings.pref_webtoon_side_padding),\n        valueString = numberFormat.format(webtoonSidePadding / 100f),\n        onChange = {\n            screenModel.preferences.webtoonSidePadding.set(it)\n        },\n        pillColor = MaterialTheme.colorScheme.surfaceContainerHighest,\n    )\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_crop_borders),\n        pref = screenModel.preferences.cropBordersWebtoon,\n    )\n\n    val dualPageSplitWebtoon by screenModel.preferences.dualPageSplitWebtoon.collectAsState()\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_dual_page_split),\n        pref = screenModel.preferences.dualPageSplitWebtoon,\n    )\n\n    if (dualPageSplitWebtoon) {\n        CheckboxItem(\n            label = stringResource(MR.strings.pref_dual_page_invert),\n            pref = screenModel.preferences.dualPageInvertWebtoon,\n        )\n    }\n\n    val dualPageRotateToFitWebtoon by screenModel.preferences.dualPageRotateToFitWebtoon.collectAsState()\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_page_rotate),\n        pref = screenModel.preferences.dualPageRotateToFitWebtoon,\n    )\n\n    if (dualPageRotateToFitWebtoon) {\n        CheckboxItem(\n            label = stringResource(MR.strings.pref_page_rotate_invert),\n            pref = screenModel.preferences.dualPageRotateToFitInvertWebtoon,\n        )\n    }\n\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_double_tap_zoom),\n        pref = screenModel.preferences.webtoonDoubleTapZoomEnabled,\n    )\n    CheckboxItem(\n        label = stringResource(MR.strings.pref_webtoon_disable_zoom_out),\n        pref = screenModel.preferences.webtoonDisableZoomOut,\n    )\n}\n\n@Composable\nprivate fun ColumnScope.TapZonesItems(\n    selected: Int,\n    onSelect: (Int) -> Unit,\n    invertMode: ReaderPreferences.TappingInvertMode,\n    onSelectInvertMode: (ReaderPreferences.TappingInvertMode) -> Unit,\n) {\n    SettingsChipRow(MR.strings.pref_viewer_nav) {\n        ReaderPreferences.TapZones.mapIndexed { index, it ->\n            FilterChip(\n                selected = selected == index,\n                onClick = { onSelect(index) },\n                label = { Text(stringResource(it)) },\n            )\n        }\n    }\n\n    if (selected != 5) {\n        SettingsChipRow(MR.strings.pref_read_with_tapping_inverted) {\n            ReaderPreferences.TappingInvertMode.entries.map {\n                FilterChip(\n                    selected = it == invertMode,\n                    onClick = { onSelectInvertMode(it) },\n                    label = { Text(stringResource(it.titleRes)) },\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/TachiyomiTheme.kt",
    "content": "package eu.kanade.presentation.theme\n\nimport android.content.Context\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.material3.ColorScheme\nimport androidx.compose.material3.MaterialExpressiveTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalContext\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.AppTheme\nimport eu.kanade.presentation.theme.colorscheme.BaseColorScheme\nimport eu.kanade.presentation.theme.colorscheme.CatppuccinColorScheme\nimport eu.kanade.presentation.theme.colorscheme.GreenAppleColorScheme\nimport eu.kanade.presentation.theme.colorscheme.LavenderColorScheme\nimport eu.kanade.presentation.theme.colorscheme.MidnightDuskColorScheme\nimport eu.kanade.presentation.theme.colorscheme.MonetColorScheme\nimport eu.kanade.presentation.theme.colorscheme.MonochromeColorScheme\nimport eu.kanade.presentation.theme.colorscheme.NordColorScheme\nimport eu.kanade.presentation.theme.colorscheme.StrawberryColorScheme\nimport eu.kanade.presentation.theme.colorscheme.TachiyomiColorScheme\nimport eu.kanade.presentation.theme.colorscheme.TakoColorScheme\nimport eu.kanade.presentation.theme.colorscheme.TealTurqoiseColorScheme\nimport eu.kanade.presentation.theme.colorscheme.TidalWaveColorScheme\nimport eu.kanade.presentation.theme.colorscheme.YinYangColorScheme\nimport eu.kanade.presentation.theme.colorscheme.YotsubaColorScheme\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n@Composable\nfun TachiyomiTheme(\n    appTheme: AppTheme? = null,\n    amoled: Boolean? = null,\n    content: @Composable () -> Unit,\n) {\n    val uiPreferences = Injekt.get<UiPreferences>()\n    BaseTachiyomiTheme(\n        appTheme = appTheme ?: uiPreferences.appTheme.get(),\n        isAmoled = amoled ?: uiPreferences.themeDarkAmoled.get(),\n        content = content,\n    )\n}\n\n@Composable\nfun TachiyomiPreviewTheme(\n    appTheme: AppTheme = AppTheme.DEFAULT,\n    isAmoled: Boolean = false,\n    content: @Composable () -> Unit,\n) = BaseTachiyomiTheme(appTheme, isAmoled, content)\n\n@Composable\nprivate fun BaseTachiyomiTheme(\n    appTheme: AppTheme,\n    isAmoled: Boolean,\n    content: @Composable () -> Unit,\n) {\n    val context = LocalContext.current\n    val isDark = isSystemInDarkTheme()\n    MaterialExpressiveTheme(\n        colorScheme = remember(appTheme, isDark, isAmoled) {\n            getThemeColorScheme(\n                context = context,\n                appTheme = appTheme,\n                isDark = isDark,\n                isAmoled = isAmoled,\n            )\n        },\n        content = content,\n    )\n}\n\nprivate fun getThemeColorScheme(\n    context: Context,\n    appTheme: AppTheme,\n    isDark: Boolean,\n    isAmoled: Boolean,\n): ColorScheme {\n    val colorScheme = if (appTheme == AppTheme.MONET) {\n        MonetColorScheme(context)\n    } else {\n        colorSchemes.getOrDefault(appTheme, TachiyomiColorScheme)\n    }\n    return colorScheme.getColorScheme(\n        isDark = isDark,\n        isAmoled = isAmoled,\n        overrideDarkSurfaceContainers = appTheme != AppTheme.MONET,\n    )\n}\n\nprivate val colorSchemes: Map<AppTheme, BaseColorScheme> = mapOf(\n    AppTheme.DEFAULT to TachiyomiColorScheme,\n    AppTheme.CATPPUCCIN to CatppuccinColorScheme,\n    AppTheme.GREEN_APPLE to GreenAppleColorScheme,\n    AppTheme.LAVENDER to LavenderColorScheme,\n    AppTheme.MIDNIGHT_DUSK to MidnightDuskColorScheme,\n    AppTheme.MONOCHROME to MonochromeColorScheme,\n    AppTheme.NORD to NordColorScheme,\n    AppTheme.STRAWBERRY_DAIQUIRI to StrawberryColorScheme,\n    AppTheme.TAKO to TakoColorScheme,\n    AppTheme.TEALTURQUOISE to TealTurqoiseColorScheme,\n    AppTheme.TIDAL_WAVE to TidalWaveColorScheme,\n    AppTheme.YINYANG to YinYangColorScheme,\n    AppTheme.YOTSUBA to YotsubaColorScheme,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/BaseColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.ColorScheme\nimport androidx.compose.ui.graphics.Color\n\ninternal abstract class BaseColorScheme {\n\n    abstract val darkScheme: ColorScheme\n    abstract val lightScheme: ColorScheme\n\n    // Cannot be pure black as there's content scrolling behind it\n    // https://m3.material.io/components/navigation-bar/guidelines#90615a71-607e-485e-9e09-778bfc080563\n    private val surfaceContainer = Color(0xFF0C0C0C)\n    private val surfaceContainerHigh = Color(0xFF131313)\n    private val surfaceContainerHighest = Color(0xFF1B1B1B)\n\n    fun getColorScheme(\n        isDark: Boolean,\n        isAmoled: Boolean,\n        overrideDarkSurfaceContainers: Boolean,\n    ): ColorScheme {\n        if (!isDark) return lightScheme\n\n        if (!isAmoled) return darkScheme\n\n        val amoledScheme = darkScheme.copy(\n            background = Color.Black,\n            onBackground = Color.White,\n            surface = Color.Black,\n            onSurface = Color.White,\n        )\n\n        if (!overrideDarkSurfaceContainers) return amoledScheme\n\n        return amoledScheme.copy(\n            surfaceVariant = surfaceContainer, // Navigation bar background (ThemePrefWidget)\n            surfaceContainerLowest = surfaceContainer,\n            surfaceContainerLow = surfaceContainer,\n            surfaceContainer = surfaceContainer, // Navigation bar background\n            surfaceContainerHigh = surfaceContainerHigh,\n            surfaceContainerHighest = surfaceContainerHighest,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/CatppuccinColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Catppuccin theme\n * MIT License\n * Copyright (c) 2021 Catppuccin\n * https://catppuccin.com\n * M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors (dark):\n * Primary #CBA6F4\n * Secondary #CBA6F4\n * Tertiary #CBA6F4\n * Neutral #181825\n\n * Key colors (light):\n * Primary #8839EF\n * Secondary #8839EF\n * Tertiary #8839EF\n * Neutral #E6E9EF\n */\ninternal object CatppuccinColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFCBA6F7),\n        onPrimary = Color(0xFF11111B),\n        primaryContainer = Color(0xFFCBA6F7),\n        onPrimaryContainer = Color(0xFF11111B),\n        secondary = Color(0xFFCBA6F7), // Unread badge\n        onSecondary = Color(0xFF11111B), // Unread badge text\n        secondaryContainer = Color(0xFF313244), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFCBA6F7), // Navigation bar selector icon\n        tertiary = Color(0xFFCBA6F7), // Volume and brightness bars, Downloaded badge\n        onTertiary = Color(0xFF11111B), // Downloaded badge text\n        tertiaryContainer = Color(0xFF1E1E2E),\n        onTertiaryContainer = Color(0xFFCDD6F4),\n        error = Color(0xFFF38BA8),\n        onError = Color(0xFF11111B),\n        errorContainer = Color(0xFFFF0558),\n        onErrorContainer = Color(0xFFEF9FB4),\n        background = Color(0xFF181825),\n        onBackground = Color(0xFFCDD6F4),\n        surface = Color(0xFF181825),\n        onSurface = Color(0xFFCDD6F4),\n        surfaceVariant = Color(0xFF1E1E2E), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFCDD6F4), // Button (unselected)\n        outline = Color(0xFFCBA6F7),\n        outlineVariant = Color(0xFF585B70), // Outlines for buttons\n        scrim = Color(0xFF11111B),\n        inverseSurface = Color(0xFFEFF1F5), // Snackbar or whatever they called\n        inverseOnSurface = Color(0xFF4C4F69), // Snackbar text\n        inversePrimary = Color(0xFF8839EF), // Snackbar accent\n        surfaceDim = Color(0xFF181825),\n        surfaceBright = Color(0xFF313244),\n        surfaceContainerLowest = Color(0xFF181825),\n        surfaceContainerLow = Color(0xFF1E1E2E), // Repo cards\n        surfaceContainer = Color(0xFF1E1E2E),\n        surfaceContainerHigh = Color(0xFF1E1E2E), // Filter menu\n        surfaceContainerHighest = Color(0xFF313244), // Untoggleg button bg\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF8839EF),\n        onPrimary = Color(0xFFDCE0E8),\n        primaryContainer = Color(0xFF8839EF),\n        onPrimaryContainer = Color(0xFFDCE0E8),\n        secondary = Color(0xFF8839EF), // Unread badge\n        onSecondary = Color(0xFFDCE0E8), // Unread badge text\n        secondaryContainer = Color(0xFFCDD0DA), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF8839EF), // Navigation bar selector icon\n        tertiary = Color(0xFF8839EF), // Volume and brightness bars, Downloaded badge\n        onTertiary = Color(0xFFDCE0E8), // Downloaded badge text\n        tertiaryContainer = Color(0xFFEFF1F5),\n        onTertiaryContainer = Color(0xFF4C4F69),\n        error = Color(0xFFD20F39),\n        onError = Color(0xFFDCE0E8),\n        errorContainer = Color(0xFF68001C),\n        onErrorContainer = Color(0xFFD61C41),\n        background = Color(0xFFE6E9EF),\n        onBackground = Color(0xFF4C4F69),\n        surface = Color(0xFFE6E9EF),\n        onSurface = Color(0xFF4C4F69),\n        surfaceVariant = Color(0xFFEFF1F5), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF4C4F69), // Button (unselected)\n        outline = Color(0xFF8839EF),\n        outlineVariant = Color(0xFFACB0BE), // Outlines for buttons\n        scrim = Color(0xFFDCE0E8),\n        inverseSurface = Color(0xFF1E1E2E), // Snackbar\n        inverseOnSurface = Color(0xFFCDD6F4), // Snackbar text\n        inversePrimary = Color(0xFFCBA6F7), // Snackbar accent\n        surfaceDim = Color(0xFFE6E9EF),\n        surfaceBright = Color(0xFFCDD0DA),\n        surfaceContainerLowest = Color(0xFFE6E9EF),\n        surfaceContainerLow = Color(0xFFEFF1F5), // Repo cards\n        surfaceContainer = Color(0xFFEFF1F5), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFEFF1F5), // Filter menu\n        surfaceContainerHighest = Color(0xFFCDD0DA), // Untoggleg bg\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/GreenAppleColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Green Apple theme\n * Original color scheme by CarlosEsco, Jays2Kings and CrepeTF\n * M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors:\n * Primary #188140\n * Secondary #188140\n * Tertiary #D33131\n * Neutral #5D5F5B\n */\ninternal object GreenAppleColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFF7ADB8F),\n        onPrimary = Color(0xFF003917),\n        primaryContainer = Color(0xFF017737),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        secondary = Color(0xFF7ADB8F), // Unread badge\n        onSecondary = Color(0xFF003917), // Unread badge text\n        secondaryContainer = Color(0xFF017737), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFFFFFFF), // Navigation bar selected icon\n        tertiary = Color(0xFFFFB3AC), // Downloaded badge\n        onTertiary = Color(0xFF680008), // Downloaded badge text\n        tertiaryContainer = Color(0xFFC7282A),\n        onTertiaryContainer = Color(0xFFFFFFFF),\n        error = Color(0xFFFFB4AB),\n        onError = Color(0xFF690005),\n        errorContainer = Color(0xFF93000A),\n        onErrorContainer = Color(0xFFFFDAD6),\n        background = Color(0xFF0F1510),\n        onBackground = Color(0xFFDFE4DB),\n        surface = Color(0xFF0F1510),\n        onSurface = Color(0xFFDFE4DB),\n        surfaceVariant = Color(0xFF3F493F), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFBECABC),\n        outline = Color(0xFF889487),\n        outlineVariant = Color(0xFF3F493F),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFFDFE4DB),\n        inverseOnSurface = Color(0xFF2C322C),\n        inversePrimary = Color(0xFF006D32),\n        surfaceDim = Color(0xFF0F1510),\n        surfaceBright = Color(0xFF353B35),\n        surfaceContainerLowest = Color(0xFF0A0F0B),\n        surfaceContainerLow = Color(0xFF181D18),\n        surfaceContainer = Color(0xFF1C211C), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF262B26),\n        surfaceContainerHighest = Color(0xFF313630),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF005927),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFF188140),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        secondary = Color(0xFF005927), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFF97f7a9), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF000000), // Navigation bar selected icon\n        tertiary = Color(0xFF9D0012), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFFD33131),\n        onTertiaryContainer = Color(0xFFFFFFFF),\n        error = Color(0xFFBA1A1A),\n        onError = Color(0xFFFFFFFF),\n        errorContainer = Color(0xFFFFDAD6),\n        onErrorContainer = Color(0xFF410002),\n        background = Color(0xFFF6FBF2),\n        onBackground = Color(0xFF181D18),\n        surface = Color(0xFFF6FBF2),\n        onSurface = Color(0xFF181D18),\n        surfaceVariant = Color(0xFFDAE6D7), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF3F493F),\n        outline = Color(0xFF6F7A6E),\n        outlineVariant = Color(0xFFBECABC),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFF2C322C),\n        inverseOnSurface = Color(0xFFEDF2E9),\n        inversePrimary = Color(0xFF7ADB8F),\n        surfaceDim = Color(0xFFD6DCD3),\n        surfaceBright = Color(0xFFF6FBF2),\n        surfaceContainerLowest = Color(0xFFFFFFFF),\n        surfaceContainerLow = Color(0xFFF0F5EC),\n        surfaceContainer = Color(0xFFEAEFE6), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFE4EAE1),\n        surfaceContainerHighest = Color(0xFFDFE4DB),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/LavenderColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Lavender theme\n * Color scheme by Osyx\n *\n * Key colors:\n * Primary #A177FF\n * Secondary #A177FF\n * Tertiary #5E25E1\n * Neutral #111129\n */\ninternal object LavenderColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFA177FF),\n        onPrimary = Color(0xFF3D0090),\n        primaryContainer = Color(0xFFA177FF),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        secondary = Color(0xFFA177FF), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFF423271), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFA177FF), // Navigation bar selected icon\n        tertiary = Color(0xFFCDBDFF), // Downloaded badge\n        onTertiary = Color(0xFF360096), // Downloaded badge text\n        tertiaryContainer = Color(0xFF5512D8),\n        onTertiaryContainer = Color(0xFFEFE6FF),\n        error = Color(0xFFFFB4AB),\n        onError = Color(0xFF690005),\n        errorContainer = Color(0xFF93000A),\n        onErrorContainer = Color(0xFFFFDAD6),\n        background = Color(0xFF111129),\n        onBackground = Color(0xFFE7E0EC),\n        surface = Color(0xFF111129),\n        onSurface = Color(0xFFE7E0EC),\n        surfaceVariant = Color(0xFF3D2F6B), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFCBC3D6),\n        outline = Color(0xFF958E9F),\n        outlineVariant = Color(0xFF4A4453),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFFE7E0EC),\n        inverseOnSurface = Color(0xFF322F38),\n        inversePrimary = Color(0xFF6D41C8),\n        surfaceDim = Color(0xFF111129),\n        surfaceBright = Color(0xFF3B3841),\n        surfaceContainerLowest = Color(0xFF15132d),\n        surfaceContainerLow = Color(0xFF171531),\n        surfaceContainer = Color(0xFF1D193B), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF241f41),\n        surfaceContainerHighest = Color(0xFF282446),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF6D41C8),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFF7B46AF),\n        onPrimaryContainer = Color(0xFF130038),\n        secondary = Color(0xFF7B46AF), // Unread badge\n        onSecondary = Color(0xFFEDE2FF), // Unread badge text\n        secondaryContainer = Color(0xFFC9B0E6), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF7B46AF), // Navigation bar selector icon\n        tertiary = Color(0xFFEDE2FF), // Downloaded badge\n        onTertiary = Color(0xFF7B46AF), // Downloaded badge text\n        tertiaryContainer = Color(0xFF6D3BF0),\n        onTertiaryContainer = Color(0xFFFFFFFF),\n        error = Color(0xFFBA1A1A),\n        onError = Color(0xFFFFFFFF),\n        errorContainer = Color(0xFFFFDAD6),\n        onErrorContainer = Color(0xFF410002),\n        background = Color(0xFFEDE2FF),\n        onBackground = Color(0xFF1D1A22),\n        surface = Color(0xFFEDE2FF),\n        onSurface = Color(0xFF1D1A22),\n        surfaceVariant = Color(0xFFE4D5F8), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF4A4453),\n        outline = Color(0xFF7B7485),\n        outlineVariant = Color(0xFFCBC3D6),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFF322F38),\n        inverseOnSurface = Color(0xFFF5EEFA),\n        inversePrimary = Color(0xFFA177FF),\n        surfaceDim = Color(0xFFDED7E3),\n        surfaceBright = Color(0xFFEDE2FF),\n        surfaceContainerLowest = Color(0xFFDACCEC),\n        surfaceContainerLow = Color(0xFFDED0F1),\n        surfaceContainer = Color(0xFFE4D5F8), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFEADCFD),\n        surfaceContainerHighest = Color(0xFFEEE2FF),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/MidnightDuskColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Midnight Dusk theme\n * Original color scheme by CrepeTF\n * M3 color scheme generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors:\n * Primary #F02475\n * Secondary #F02475\n * Tertiary #7A5733\n * Neutral #16151D\n */\ninternal object MidnightDuskColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFF02475),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFFBD1C5C),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        inversePrimary = Color(0xFFF02475),\n        secondary = Color(0xFFF02475), // Unread badge\n        onSecondary = Color(0xFF16151D), // Unread badge text\n        secondaryContainer = Color(0xFF66183C), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFF02475), // Navigation bar selector icon\n        tertiary = Color(0xFF55971C), // Downloaded badge\n        onTertiary = Color(0xFF16151D), // Downloaded badge text\n        tertiaryContainer = Color(0xFF386412),\n        onTertiaryContainer = Color(0xFFE5E1E5),\n        background = Color(0xFF16151D),\n        onBackground = Color(0xFFE5E1E5),\n        surface = Color(0xFF16151D),\n        onSurface = Color(0xFFE5E1E5),\n        surfaceVariant = Color(0xFF281624), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFD6C1C4),\n        surfaceTint = Color(0xFFF02475),\n        inverseSurface = Color(0xFF333043),\n        inverseOnSurface = Color(0xFFFFFFFF),\n        outline = Color(0xFF9F8C8F),\n        surfaceContainerLowest = Color(0xFF221320),\n        surfaceContainerLow = Color(0xFF251522),\n        surfaceContainer = Color(0xFF281624), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF2D1C2A),\n        surfaceContainerHighest = Color(0xFF2F1F2C),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFFBB0054),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFFFFD9E1),\n        onPrimaryContainer = Color(0xFF3F0017),\n        inversePrimary = Color(0xFFFFB1C4),\n        secondary = Color(0xFFBB0054), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFFEFBAD4), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFD1377C), // Navigation bar selector icon\n        tertiary = Color(0xFF006638), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFF00894b),\n        onTertiaryContainer = Color(0xFF2D1600),\n        background = Color(0xFFFFFBFF),\n        onBackground = Color(0xFF1C1B1F),\n        surface = Color(0xFFFFFBFF),\n        onSurface = Color(0xFF1C1B1F),\n        surfaceVariant = Color(0xFFF9E6F1), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF524346),\n        surfaceTint = Color(0xFFBB0054),\n        inverseSurface = Color(0xFF313033),\n        inverseOnSurface = Color(0xFFF4F0F4),\n        outline = Color(0xFF847376),\n        surfaceContainerLowest = Color(0xFFDAC0CD),\n        surfaceContainerLow = Color(0xFFE8D1DD),\n        surfaceContainer = Color(0xFFF9E6F1), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFFCF3F8),\n        surfaceContainerHighest = Color(0xFFFEF9FC),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/MonetColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport android.app.WallpaperManager\nimport android.content.Context\nimport android.os.Build\nimport androidx.annotation.RequiresApi\nimport androidx.compose.material3.ColorScheme\nimport androidx.compose.material3.dynamicDarkColorScheme\nimport androidx.compose.material3.dynamicLightColorScheme\nimport androidx.compose.ui.graphics.Color\nimport com.materialkolor.PaletteStyle\nimport com.materialkolor.dynamiccolor.ColorSpec\nimport com.materialkolor.ktx.DynamicScheme\nimport com.materialkolor.toColorScheme\n\ninternal class MonetColorScheme(context: Context) : BaseColorScheme() {\n\n    private val monet = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {\n        MonetSystemColorScheme(context)\n    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {\n        val seed = WallpaperManager.getInstance(context)\n            .getWallpaperColors(WallpaperManager.FLAG_SYSTEM)\n            ?.primaryColor\n            ?.toArgb()\n        if (seed != null) {\n            MonetCompatColorScheme(Color(seed))\n        } else {\n            TachiyomiColorScheme\n        }\n    } else {\n        TachiyomiColorScheme\n    }\n\n    override val darkScheme\n        get() = monet.darkScheme\n\n    override val lightScheme\n        get() = monet.lightScheme\n}\n\n@RequiresApi(Build.VERSION_CODES.S)\nprivate class MonetSystemColorScheme(context: Context) : BaseColorScheme() {\n    override val lightScheme = dynamicLightColorScheme(context)\n    override val darkScheme = dynamicDarkColorScheme(context)\n}\n\ninternal class MonetCompatColorScheme(seed: Color) : BaseColorScheme() {\n    override val lightScheme = generateColorSchemeFromSeed(seed = seed, dark = false)\n    override val darkScheme = generateColorSchemeFromSeed(seed = seed, dark = true)\n\n    companion object {\n        fun generateColorSchemeFromSeed(seed: Color, dark: Boolean): ColorScheme {\n            return DynamicScheme(\n                seedColor = seed,\n                isDark = dark,\n                specVersion = ColorSpec.SpecVersion.SPEC_2025,\n                style = PaletteStyle.Expressive,\n            )\n                .toColorScheme(isAmoled = false)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/MonochromeColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\ninternal object MonochromeColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFFFFFFF),\n        onPrimary = Color(0xFF000000),\n        primaryContainer = Color(0xFFFFFFFF),\n        onPrimaryContainer = Color(0xFF000000),\n        secondary = Color(0xFFFFFFFF),\n        onSecondary = Color(0xFF000000),\n        secondaryContainer = Color(0xFF777777),\n        onSecondaryContainer = Color(0xFF000000),\n        tertiary = Color(0xFF777777),\n        onTertiary = Color(0xFFFFFFFF),\n        tertiaryContainer = Color(0xFFFFFFFF),\n        onTertiaryContainer = Color(0xFF000000),\n        error = Color(0xFFFFFFFF),\n        onError = Color(0xFF000000),\n        errorContainer = Color(0xFFFFFFFF),\n        onErrorContainer = Color(0xFF000000),\n        background = Color(0xFF000000),\n        onBackground = Color(0xFFFFFFFF),\n        surface = Color(0xFF000000),\n        onSurface = Color(0xFFFFFFFF),\n        surfaceVariant = Color(0xFF000000),\n        onSurfaceVariant = Color(0xFFFFFFFF),\n        outline = Color(0xFFFFFFFF),\n        outlineVariant = Color(0xFFFFFFFF),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFFFFFFFF),\n        inverseOnSurface = Color(0xFF000000),\n        inversePrimary = Color(0xFF000000),\n        surfaceDim = Color(0xFF000000),\n        surfaceBright = Color(0xFFFFFFFF),\n        surfaceContainerLowest = Color(0xFF000000),\n        surfaceContainerLow = Color(0xFF000000),\n        surfaceContainer = Color(0xFF000000),\n        surfaceContainerHigh = Color(0xFF000000),\n        surfaceContainerHighest = Color(0xFF000000),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF000000),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFF000000),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        secondary = Color(0xFF000000),\n        onSecondary = Color(0xFFFFFFFF),\n        secondaryContainer = Color(0xFF888888),\n        onSecondaryContainer = Color(0xFFFFFFFF),\n        tertiary = Color(0xFF888888),\n        onTertiary = Color(0xFFFFFFFF),\n        tertiaryContainer = Color(0xFF000000),\n        onTertiaryContainer = Color(0xFFFFFFFF),\n        error = Color(0xFF000000),\n        onError = Color(0xFFFFFFFF),\n        errorContainer = Color(0xFF000000),\n        onErrorContainer = Color(0xFFFFFFFF),\n        background = Color(0xFFFFFFFF),\n        onBackground = Color(0xFF000000),\n        surface = Color(0xFFFFFFFF),\n        onSurface = Color(0xFF000000),\n        surfaceVariant = Color(0xFFFFFFFF),\n        onSurfaceVariant = Color(0xFF000000),\n        outline = Color(0xFF000000),\n        outlineVariant = Color(0xFF000000),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFF000000),\n        inverseOnSurface = Color(0xFFFFFFFF),\n        inversePrimary = Color(0xFFFFFFFF),\n        surfaceDim = Color(0xFFFFFFFF),\n        surfaceBright = Color(0xFFFFFFFF),\n        surfaceContainerLowest = Color(0xFFFFFFFF),\n        surfaceContainerLow = Color(0xFFFFFFFF),\n        surfaceContainer = Color(0xFFFFFFFF),\n        surfaceContainerHigh = Color(0xFFFFFFFF),\n        surfaceContainerHighest = Color(0xFFFFFFFF),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/NordColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Nord theme\n * https://www.nordtheme.com/docs/colors-and-palettes\n * for the light theme, the primary color is switched with the tertiary for better contrast in some case\n */\ninternal object NordColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFF88C0D0),\n        onPrimary = Color(0xFF2E3440),\n        primaryContainer = Color(0xFF88C0D0),\n        onPrimaryContainer = Color(0xFF2E3440),\n        inversePrimary = Color(0xFF397E91),\n        secondary = Color(0xFF81A1C1), // Unread badge\n        onSecondary = Color(0xFF2E3440), // Unread badge text\n        secondaryContainer = Color(0xFF506275), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF88C0D0), // Navigation bar selector icon\n        tertiary = Color(0xFF5E81AC), // Downloaded badge\n        onTertiary = Color(0xFF000000), // Downloaded badge text\n        tertiaryContainer = Color(0xFF5E81AC),\n        onTertiaryContainer = Color(0xFF000000),\n        background = Color(0xFF2E3440),\n        onBackground = Color(0xFFECEFF4),\n        surface = Color(0xFF2E3440),\n        onSurface = Color(0xFFECEFF4),\n        surfaceVariant = Color(0xFF414C5C), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFECEFF4),\n        surfaceTint = Color(0xFF88C0D0),\n        inverseSurface = Color(0xFFD8DEE9),\n        inverseOnSurface = Color(0xFF2E3440),\n        outline = Color(0xFF6d717b),\n        outlineVariant = Color(0xFF90939a),\n        onError = Color(0xFF2E3440),\n        errorContainer = Color(0xFFBF616A),\n        onErrorContainer = Color(0xFF000000),\n        surfaceContainerLowest = Color(0xFF373F4D),\n        surfaceContainerLow = Color(0xFF3E4756),\n        surfaceContainer = Color(0xFF414C5C),\n        surfaceContainerHigh = Color(0xFF4E5766),\n        surfaceContainerHighest = Color(0xFF505968), // Navigation bar background\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF5E81AC),\n        onPrimary = Color(0xFF000000),\n        primaryContainer = Color(0xFF5E81AC),\n        onPrimaryContainer = Color(0xFF000000),\n        inversePrimary = Color(0xFF8CA8CD),\n        secondary = Color(0xFF81A1C1), // Unread badge\n        onSecondary = Color(0xFF2E3440), // Unread badge text\n        secondaryContainer = Color(0xFF91B4D7), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF2E3440), // Navigation bar selector icon\n        tertiary = Color(0xFF88C0D0), // Downloaded badge\n        onTertiary = Color(0xFF2E3440), // Downloaded badge text\n        tertiaryContainer = Color(0xFF88C0D0),\n        onTertiaryContainer = Color(0xFF2E3440),\n        background = Color(0xFFECEFF4),\n        onBackground = Color(0xFF2E3440),\n        surface = Color(0xFFE5E9F0),\n        onSurface = Color(0xFF2E3440),\n        surfaceVariant = Color(0xFFDAE0EA), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF2E3440),\n        surfaceTint = Color(0xFF5E81AC),\n        inverseSurface = Color(0xFF3B4252),\n        inverseOnSurface = Color(0xFFECEFF4),\n        outline = Color(0xFF2E3440),\n        onError = Color(0xFFECEFF4),\n        errorContainer = Color(0xFFBF616A),\n        onErrorContainer = Color(0xFF000000),\n        surfaceContainerLowest = Color(0xFFD1D7E0),\n        surfaceContainerLow = Color(0xFFD6DCE6),\n        surfaceContainer = Color(0xFFDAE0EA), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFE9EDF3),\n        surfaceContainerHighest = Color(0xFFF2F4F8),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/StrawberryColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Strawberry Daiquiri theme\n * Original color scheme by Soitora\n * M3 color scheme generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors:\n * Primary #ED4A65\n * Secondary #ED4A65\n * Tertiary #775930\n * Neutral #655C5C\n */\ninternal object StrawberryColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFFFB2B8),\n        onPrimary = Color(0xFF67001D),\n        primaryContainer = Color(0xFFD53855),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        secondary = Color(0xFFED4A65), // Unread badge\n        onSecondary = Color(0xFF201A1A), // Unread badge text\n        secondaryContainer = Color(0xFF91002A), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFFFFFFF), // Navigation bar selector icon\n        tertiary = Color(0xFFE8C08E), // Downloaded badge\n        onTertiary = Color(0xFF201A1A), // Downloaded badge text\n        tertiaryContainer = Color(0xFF775930),\n        onTertiaryContainer = Color(0xFFFFF7F1),\n        error = Color(0xFFFFB4AB),\n        onError = Color(0xFF690005),\n        errorContainer = Color(0xFF93000A),\n        onErrorContainer = Color(0xFFFFDAD6),\n        background = Color(0xFF201A1A),\n        onBackground = Color(0xFFF7DCDD),\n        surface = Color(0xFF201A1A),\n        onSurface = Color(0xFFF7DCDD),\n        surfaceVariant = Color(0xFF322727), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFE1BEC0),\n        outline = Color(0xFFA9898B),\n        outlineVariant = Color(0xFF594042),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFFF7DCDD),\n        inverseOnSurface = Color(0xFF3D2C2D),\n        inversePrimary = Color(0xFFB61F40),\n        surfaceDim = Color(0xFF1D1011),\n        surfaceBright = Color(0xFF463536),\n        surfaceContainerLowest = Color(0xFF2C2222),\n        surfaceContainerLow = Color(0xFF302525),\n        surfaceContainer = Color(0xFF322727), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF3C2F2F),\n        surfaceContainerHighest = Color(0xFF463737),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFFA10833),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFFD53855),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        secondary = Color(0xFFA10833), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFFD53855), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFF6EAED), // Navigation bar selector icon\n        tertiary = Color(0xFF5F441D), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFF87683D),\n        onTertiaryContainer = Color(0xFFFFFFFF),\n        error = Color(0xFFBA1A1A),\n        onError = Color(0xFFFFFFFF),\n        errorContainer = Color(0xFFFFDAD6),\n        onErrorContainer = Color(0xFF410002),\n        background = Color(0xFFFAFAFA),\n        onBackground = Color(0xFF261819),\n        surface = Color(0xFFFAFAFA),\n        onSurface = Color(0xFF261819),\n        surfaceVariant = Color(0xFFF6EAED), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF594042),\n        outline = Color(0xFF8D7071),\n        outlineVariant = Color(0xFFE1BEC0),\n        scrim = Color(0xFF000000),\n        inverseSurface = Color(0xFF3D2C2D),\n        inverseOnSurface = Color(0xFFFFECED),\n        inversePrimary = Color(0xFFFFB2B8),\n        surfaceDim = Color(0xFFEED4D5),\n        surfaceBright = Color(0xFFFFF8F7),\n        surfaceContainerLowest = Color(0xFFF7DCDD),\n        surfaceContainerLow = Color(0xFFFDE2E3),\n        surfaceContainer = Color(0xFFF6EAED), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFFFF0F0),\n        surfaceContainerHighest = Color(0xFFFFFFFF),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/TachiyomiColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Default theme\n * M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors:\n * Primary #2979FF\n * Secondary #2979FF\n * Tertiary #47A84A\n * Neutral #919094\n */\ninternal object TachiyomiColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFB0C6FF),\n        onPrimary = Color(0xFF002D6E),\n        primaryContainer = Color(0xFF00429B),\n        onPrimaryContainer = Color(0xFFD9E2FF),\n        inversePrimary = Color(0xFF0058CA),\n        secondary = Color(0xFFB0C6FF), // Unread badge\n        onSecondary = Color(0xFF002D6E), // Unread badge text\n        secondaryContainer = Color(0xFF00429B), // Navigation bar selector pill & pro\n        onSecondaryContainer = Color(0xFFD9E2FF), // Navigation bar selector icon\n        tertiary = Color(0xFF7ADC77), // Downloaded badge\n        onTertiary = Color(0xFF003909), // Downloaded badge text\n        tertiaryContainer = Color(0xFF005312),\n        onTertiaryContainer = Color(0xFF95F990),\n        background = Color(0xFF1B1B1F),\n        onBackground = Color(0xFFE3E2E6),\n        surface = Color(0xFF1B1B1F),\n        onSurface = Color(0xFFE3E2E6),\n        surfaceVariant = Color(0xFF211F26), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFC5C6D0),\n        surfaceTint = Color(0xFFB0C6FF),\n        inverseSurface = Color(0xFFE3E2E6),\n        inverseOnSurface = Color(0xFF1B1B1F),\n        error = Color(0xFFFFB4AB),\n        onError = Color(0xFF690005),\n        errorContainer = Color(0xFF93000A),\n        onErrorContainer = Color(0xFFFFDAD6),\n        outline = Color(0xFF8F9099),\n        outlineVariant = Color(0xFF44464F),\n        surfaceContainerLowest = Color(0xFF1A181D),\n        surfaceContainerLow = Color(0xFF1E1C22),\n        surfaceContainer = Color(0xFF211F26), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF292730),\n        surfaceContainerHighest = Color(0xFF302E38),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF0058CA),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFFD9E2FF),\n        onPrimaryContainer = Color(0xFF001945),\n        inversePrimary = Color(0xFFB0C6FF),\n        secondary = Color(0xFF0058CA), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFFD9E2FF), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF001945), // Navigation bar selector icon\n        tertiary = Color(0xFF006E1B), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFF95F990),\n        onTertiaryContainer = Color(0xFF002203),\n        background = Color(0xFFFEFBFF),\n        onBackground = Color(0xFF1B1B1F),\n        surface = Color(0xFFFEFBFF),\n        onSurface = Color(0xFF1B1B1F),\n        surfaceVariant = Color(0xFFF3EDF7), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF44464F),\n        surfaceTint = Color(0xFF0058CA),\n        inverseSurface = Color(0xFF303034),\n        inverseOnSurface = Color(0xFFF2F0F4),\n        error = Color(0xFFBA1A1A),\n        onError = Color(0xFFFFFFFF),\n        errorContainer = Color(0xFFFFDAD6),\n        onErrorContainer = Color(0xFF410002),\n        outline = Color(0xFF757780),\n        outlineVariant = Color(0xFFC5C6D0),\n        surfaceContainerLowest = Color(0xFFF5F1F8),\n        surfaceContainerLow = Color(0xFFF7F2FA),\n        surfaceContainer = Color(0xFFF3EDF7), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFFCF7FF),\n        surfaceContainerHighest = Color(0xFFFCF7FF),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/TakoColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Tako theme\n * Original color scheme by ghostbear\n * M3 color scheme generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors:\n * Primary #F3B375\n * Secondary #F3B375\n * Tertiary #66577E\n * Neutral #21212E\n */\ninternal object TakoColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFF3B375),\n        onPrimary = Color(0xFF38294E),\n        primaryContainer = Color(0xFFF3B375),\n        onPrimaryContainer = Color(0xFF38294E),\n        inversePrimary = Color(0xFF84531E),\n        secondary = Color(0xFFF3B375), // Unread badge\n        onSecondary = Color(0xFF38294E), // Unread badge text\n        secondaryContainer = Color(0xFF5C4D4B), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFF3B375), // Navigation bar selector icon\n        tertiary = Color(0xFF66577E), // Downloaded badge\n        onTertiary = Color(0xFFF3B375), // Downloaded badge text\n        tertiaryContainer = Color(0xFF4E4065),\n        onTertiaryContainer = Color(0xFFEDDCFF),\n        background = Color(0xFF21212E),\n        onBackground = Color(0xFFE3E0F2),\n        surface = Color(0xFF21212E),\n        onSurface = Color(0xFFE3E0F2),\n        surfaceVariant = Color(0xFF2A2A3C), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFCBC4CE),\n        surfaceTint = Color(0xFF66577E),\n        inverseSurface = Color(0xFFE5E1E6),\n        inverseOnSurface = Color(0xFF1B1B1E),\n        outline = Color(0xFF958F99),\n        surfaceContainerLowest = Color(0xFF20202E),\n        surfaceContainerLow = Color(0xFF262636),\n        surfaceContainer = Color(0xFF2A2A3C), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF303044),\n        surfaceContainerHighest = Color(0xFF36364D),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF66577E),\n        onPrimary = Color(0xFFF3B375),\n        primaryContainer = Color(0xFF66577E),\n        onPrimaryContainer = Color(0xFFF3B375),\n        inversePrimary = Color(0xFFD6BAFF),\n        secondary = Color(0xFF66577E), // Unread badge\n        onSecondary = Color(0xFFF3B375), // Unread badge text\n        secondaryContainer = Color(0xFFC8BED0), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF66577E), // Navigation bar selector icon\n        tertiary = Color(0xFFF3B375), // Downloaded badge\n        onTertiary = Color(0xFF574360), // Downloaded badge text\n        tertiaryContainer = Color(0xFFFDD6B0),\n        onTertiaryContainer = Color(0xFF221437),\n        background = Color(0xFFF7F5FF),\n        onBackground = Color(0xFF1B1B22),\n        surface = Color(0xFFF7F5FF),\n        onSurface = Color(0xFF1B1B22),\n        surfaceVariant = Color(0xFFE8E0EB), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF49454E),\n        surfaceTint = Color(0xFF66577E),\n        inverseSurface = Color(0xFF313033),\n        inverseOnSurface = Color(0xFFF3EFF4),\n        outline = Color(0xFF7A757E),\n        surfaceContainerLowest = Color(0xFFD7D0DA),\n        surfaceContainerLow = Color(0xFFDFD8E2),\n        surfaceContainer = Color(0xFFE8E0EB), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFEEE6F1),\n        surfaceContainerHighest = Color(0xFFF7EEFA),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/TealTurqoiseColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Teal Turqoise theme\n */\ninternal object TealTurqoiseColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFF40E0D0),\n        onPrimary = Color(0xFF000000),\n        primaryContainer = Color(0xFF40E0D0),\n        onPrimaryContainer = Color(0xFF000000),\n        inversePrimary = Color(0xFF008080),\n        secondary = Color(0xFF40E0D0), // Unread badge\n        onSecondary = Color(0xFF000000), // Unread badge text\n        secondaryContainer = Color(0xFF18544E), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF40E0D0), // Navigation bar selector icon\n        tertiary = Color(0xFFBF1F2F), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFF200508),\n        onTertiaryContainer = Color(0xFFBF1F2F),\n        background = Color(0xFF202125),\n        onBackground = Color(0xFFDFDEDA),\n        surface = Color(0xFF202125),\n        onSurface = Color(0xFFDFDEDA),\n        surfaceVariant = Color(0xFF233133), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFDFDEDA),\n        surfaceTint = Color(0xFF40E0D0),\n        inverseSurface = Color(0xFFDFDEDA),\n        inverseOnSurface = Color(0xFF202125),\n        outline = Color(0xFF899391),\n        surfaceContainerLowest = Color(0xFF202C2E),\n        surfaceContainerLow = Color(0xFF222F31),\n        surfaceContainer = Color(0xFF233133), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF28383A),\n        surfaceContainerHighest = Color(0xFF2F4244),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF008080),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFF008080),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        inversePrimary = Color(0xFF40E0D0),\n        secondary = Color(0xFF008080), // Unread badge text\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFFCFE5E4), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF008080), // Navigation bar selector icon\n        tertiary = Color(0xFFFF7F7F), // Downloaded badge\n        onTertiary = Color(0xFF000000), // Downloaded badge text\n        tertiaryContainer = Color(0xFF2A1616),\n        onTertiaryContainer = Color(0xFFFF7F7F),\n        background = Color(0xFFFAFAFA),\n        onBackground = Color(0xFF050505),\n        surface = Color(0xFFFAFAFA),\n        onSurface = Color(0xFF050505),\n        surfaceVariant = Color(0xFFEBF3F1), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF050505),\n        surfaceTint = Color(0xFFBFDFDF),\n        inverseSurface = Color(0xFF050505),\n        inverseOnSurface = Color(0xFFFAFAFA),\n        outline = Color(0xFF6F7977),\n        surfaceContainerLowest = Color(0xFFE1E9E7),\n        surfaceContainerLow = Color(0xFFE6EEEC),\n        surfaceContainer = Color(0xFFEBF3F1), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFF0F8F6),\n        surfaceContainerHighest = Color(0xFFF7FFFD),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/TidalWaveColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Tidal Wave theme\n * Original color scheme by NahutabDevelop\n *\n * Key colors:\n * Primary #004152\n * Secondary #5ed4fc\n * Tertiary #92f7bc\n * Neutral #16151D\n */\ninternal object TidalWaveColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFF5ed4fc),\n        onPrimary = Color(0xFF003544),\n        primaryContainer = Color(0xFF004d61),\n        onPrimaryContainer = Color(0xFFb8eaff),\n        inversePrimary = Color(0xFFa12b03),\n        secondary = Color(0xFF5ed4fc), // Unread badge\n        onSecondary = Color(0xFF003544), // Unread badge text\n        secondaryContainer = Color(0xFF004d61), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFb8eaff), // Navigation bar selector icon\n        tertiary = Color(0xFF92f7bc), // Downloaded badge\n        onTertiary = Color(0xFF001c3b), // Downloaded badge text\n        tertiaryContainer = Color(0xFFc3fada),\n        onTertiaryContainer = Color(0xFF78ffd6),\n        background = Color(0xFF001c3b),\n        onBackground = Color(0xFFd5e3ff),\n        surface = Color(0xFF001c3b),\n        onSurface = Color(0xFFd5e3ff),\n        surfaceVariant = Color(0xFF082b4b), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFbfc8cc),\n        surfaceTint = Color(0xFF5ed4fc),\n        inverseSurface = Color(0xFFffe3c4),\n        inverseOnSurface = Color(0xFF001c3b),\n        outline = Color(0xFF8a9296),\n        surfaceContainerLowest = Color(0xFF072642),\n        surfaceContainerLow = Color(0xFF072947),\n        surfaceContainer = Color(0xFF082b4b), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF093257),\n        surfaceContainerHighest = Color(0xFF0A3861),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF006780),\n        onPrimary = Color(0xFFffffff),\n        primaryContainer = Color(0xFFB4D4DF),\n        onPrimaryContainer = Color(0xFF001f28),\n        inversePrimary = Color(0xFFff987f),\n        secondary = Color(0xFF006780), // Unread badge\n        onSecondary = Color(0xFFffffff), // Unread badge text\n        secondaryContainer = Color(0xFF9AE1FF), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF001f28), // Navigation bar selector icon\n        tertiary = Color(0xFF92f7bc), // Downloaded badge\n        onTertiary = Color(0xFF001c3b), // Downloaded badge text\n        tertiaryContainer = Color(0xFFc3fada),\n        onTertiaryContainer = Color(0xFF78ffd6),\n        background = Color(0xFFfdfbff),\n        onBackground = Color(0xFF001c3b),\n        surface = Color(0xFFfdfbff),\n        onSurface = Color(0xFF001c3b),\n        surfaceVariant = Color(0xFFe8eff5), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF40484c),\n        surfaceTint = Color(0xFF006780),\n        inverseSurface = Color(0xFF020400),\n        inverseOnSurface = Color(0xFFffe3c4),\n        outline = Color(0xFF70787c),\n        surfaceContainerLowest = Color(0xFFe2e8ec),\n        surfaceContainerLow = Color(0xFFe5ecf1),\n        surfaceContainer = Color(0xFFe8eff5), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFedf4fA),\n        surfaceContainerHighest = Color(0xFFf5faff),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/YinYangColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Yin & Yang theme\n * Original color scheme by Riztard\n * M3 colors generated by yours truly + tweaked manually\n */\ninternal object YinYangColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFFFFFFF),\n        onPrimary = Color(0xFF5A5A5A),\n        primaryContainer = Color(0xFFFFFFFF),\n        onPrimaryContainer = Color(0xFF000000),\n        inversePrimary = Color(0xFFCECECE),\n        secondary = Color(0xFFFFFFFF), // Unread badge\n        onSecondary = Color(0xFF5A5A5A), // Unread badge text\n        secondaryContainer = Color(0xFF717171), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFE4E4E4), // Navigation bar selector icon\n        tertiary = Color(0xFF000000), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFF00419E),\n        onTertiaryContainer = Color(0xFFD8E2FF),\n        background = Color(0xFF1E1E1E),\n        onBackground = Color(0xFFE6E6E6),\n        surface = Color(0xFF1E1E1E),\n        onSurface = Color(0xFFE6E6E6),\n        surfaceVariant = Color(0xFF313131), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFD1D1D1),\n        surfaceTint = Color(0xFFFFFFFF),\n        inverseSurface = Color(0xFFE6E6E6),\n        inverseOnSurface = Color(0xFF1E1E1E),\n        outline = Color(0xFF999999),\n        surfaceContainerLowest = Color(0xFF2A2A2A),\n        surfaceContainerLow = Color(0xFF2D2D2D),\n        surfaceContainer = Color(0xFF313131), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF383838),\n        surfaceContainerHighest = Color(0xFF3F3F3F),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFF000000),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFF000000),\n        onPrimaryContainer = Color(0xFFFFFFFF),\n        inversePrimary = Color(0xFFA6A6A6),\n        secondary = Color(0xFF000000), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFFDDDDDD), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF0C0C0C), // Navigation bar selector icon\n        tertiary = Color(0xFFFFFFFF), // Downloaded badge\n        onTertiary = Color(0xFF000000), // Downloaded badge text\n        tertiaryContainer = Color(0xFFD8E2FF),\n        onTertiaryContainer = Color(0xFF001947),\n        background = Color(0xFFFDFDFD),\n        onBackground = Color(0xFF222222),\n        surface = Color(0xFFFDFDFD),\n        onSurface = Color(0xFF222222),\n        surfaceVariant = Color(0xFFE8E8E8), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF515151),\n        surfaceTint = Color(0xFF000000),\n        inverseSurface = Color(0xFF333333),\n        inverseOnSurface = Color(0xFFF4F4F4),\n        outline = Color(0xFF838383),\n        surfaceContainerLowest = Color(0xFFCFCFCF),\n        surfaceContainerLow = Color(0xFFDADADA),\n        surfaceContainer = Color(0xFFE8E8E8), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFECECEC),\n        surfaceContainerHighest = Color(0xFFEFEFEF),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/theme/colorscheme/YotsubaColorScheme.kt",
    "content": "package eu.kanade.presentation.theme.colorscheme\n\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.ui.graphics.Color\n\n/**\n * Colors for Yotsuba theme\n * Original color scheme by ztimms73\n * M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n *\n * Key colors:\n * Primary 0xFFAE3200\n * Secondary 0xFFAE3200\n * Tertiary 0xFF6B5E2F\n * Neutral 0xFF655C5A\n */\ninternal object YotsubaColorScheme : BaseColorScheme() {\n\n    override val darkScheme = darkColorScheme(\n        primary = Color(0xFFFFB59D),\n        onPrimary = Color(0xFF5F1600),\n        primaryContainer = Color(0xFF862200),\n        onPrimaryContainer = Color(0xFFFFDBCF),\n        inversePrimary = Color(0xFFAE3200),\n        secondary = Color(0xFFFFB59D), // Unread badge\n        onSecondary = Color(0xFF5F1600), // Unread badge text\n        secondaryContainer = Color(0xFF862200), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFFFFDBCF), // Navigation bar selector icon\n        tertiary = Color(0xFFD7C68D), // Downloaded badge\n        onTertiary = Color(0xFF3A2F05), // Downloaded badge text\n        tertiaryContainer = Color(0xFF524619),\n        onTertiaryContainer = Color(0xFFF5E2A7),\n        background = Color(0xFF211A18),\n        onBackground = Color(0xFFEDE0DD),\n        surface = Color(0xFF211A18),\n        onSurface = Color(0xFFEDE0DD),\n        surfaceVariant = Color(0xFF332723), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFFD8C2BC),\n        surfaceTint = Color(0xFFFFB59D),\n        inverseSurface = Color(0xFFEDE0DD),\n        inverseOnSurface = Color(0xFF211A18),\n        outline = Color(0xFFA08C87),\n        surfaceContainerLowest = Color(0xFF2E221F),\n        surfaceContainerLow = Color(0xFF312521),\n        surfaceContainer = Color(0xFF332723), // Navigation bar background\n        surfaceContainerHigh = Color(0xFF413531),\n        surfaceContainerHighest = Color(0xFF4C403D),\n    )\n\n    override val lightScheme = lightColorScheme(\n        primary = Color(0xFFAE3200),\n        onPrimary = Color(0xFFFFFFFF),\n        primaryContainer = Color(0xFFFFDBCF),\n        onPrimaryContainer = Color(0xFF3B0A00),\n        inversePrimary = Color(0xFFFFB59D),\n        secondary = Color(0xFFAE3200), // Unread badge\n        onSecondary = Color(0xFFFFFFFF), // Unread badge text\n        secondaryContainer = Color(0xFFEBCDC2), // Navigation bar selector pill & progress indicator (remaining)\n        onSecondaryContainer = Color(0xFF3B0A00), // Navigation bar selector icon\n        tertiary = Color(0xFF6B5E2F), // Downloaded badge\n        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text\n        tertiaryContainer = Color(0xFFF5E2A7),\n        onTertiaryContainer = Color(0xFF231B00),\n        background = Color(0xFFFCFCFC),\n        onBackground = Color(0xFF211A18),\n        surface = Color(0xFFFCFCFC),\n        onSurface = Color(0xFF211A18),\n        surfaceVariant = Color(0xFFF6EBE7), // Navigation bar background (ThemePrefWidget)\n        onSurfaceVariant = Color(0xFF53433F),\n        surfaceTint = Color(0xFFAE3200),\n        inverseSurface = Color(0xFF362F2D),\n        inverseOnSurface = Color(0xFFFBEEEB),\n        outline = Color(0xFF85736E),\n        surfaceContainerLowest = Color(0xFFECE3E0),\n        surfaceContainerLow = Color(0xFFF1E7E4),\n        surfaceContainer = Color(0xFFF6EBE7), // Navigation bar background\n        surfaceContainerHigh = Color(0xFFFAF4F2),\n        surfaceContainerHighest = Color(0xFFFBF6F4),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt",
    "content": "package eu.kanade.presentation.track\n\nimport androidx.compose.animation.animateContentSize\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.IntrinsicSize\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.absoluteOffset\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.systemBars\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.layout.wrapContentSize\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.MoreVert\nimport androidx.compose.material.icons.filled.VisibilityOff\nimport androidx.compose.material3.Badge\nimport androidx.compose.material3.BadgedBox\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.material3.VerticalDivider\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.tooling.preview.PreviewParameter\nimport androidx.compose.ui.unit.dp\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.presentation.track.components.TrackLogoIcon\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.ui.manga.track.TrackItem\nimport eu.kanade.tachiyomi.util.lang.toLocalDate\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport java.time.format.DateTimeFormatter\n\n@Composable\nfun TrackInfoDialogHome(\n    trackItems: List<TrackItem>,\n    dateFormat: DateTimeFormatter,\n    onStatusClick: (TrackItem) -> Unit,\n    onChapterClick: (TrackItem) -> Unit,\n    onScoreClick: (TrackItem) -> Unit,\n    onStartDateEdit: (TrackItem) -> Unit,\n    onEndDateEdit: (TrackItem) -> Unit,\n    onNewSearch: (TrackItem) -> Unit,\n    onOpenInBrowser: (TrackItem) -> Unit,\n    onRemoved: (TrackItem) -> Unit,\n    onCopyLink: (TrackItem) -> Unit,\n    onTogglePrivate: (TrackItem) -> Unit,\n) {\n    Column(\n        modifier = Modifier\n            .animateContentSize()\n            .fillMaxWidth()\n            .verticalScroll(rememberScrollState())\n            .padding(16.dp)\n            .windowInsetsPadding(WindowInsets.systemBars),\n        verticalArrangement = Arrangement.spacedBy(24.dp),\n    ) {\n        trackItems.forEach { item ->\n            if (item.track != null) {\n                val supportsScoring = item.tracker.getScoreList().isNotEmpty()\n                val supportsReadingDates = item.tracker.supportsReadingDates\n                val supportsPrivate = item.tracker.supportsPrivateTracking\n                TrackInfoItem(\n                    title = item.track.title,\n                    tracker = item.tracker,\n                    status = item.tracker.getStatus(item.track.status),\n                    onStatusClick = { onStatusClick(item) },\n                    chapters = \"${item.track.lastChapterRead.toInt()}\".let {\n                        val totalChapters = item.track.totalChapters\n                        if (totalChapters > 0) {\n                            // Add known total chapter count\n                            \"$it / $totalChapters\"\n                        } else {\n                            it\n                        }\n                    },\n                    onChaptersClick = { onChapterClick(item) },\n                    score = item.tracker.displayScore(item.track)\n                        .takeIf { supportsScoring && item.track.score != 0.0 },\n                    onScoreClick = { onScoreClick(item) }\n                        .takeIf { supportsScoring },\n                    startDate = remember(item.track.startDate) { dateFormat.format(item.track.startDate.toLocalDate()) }\n                        .takeIf { supportsReadingDates && item.track.startDate != 0L },\n                    onStartDateClick = { onStartDateEdit(item) } // TODO\n                        .takeIf { supportsReadingDates },\n                    endDate = dateFormat.format(item.track.finishDate.toLocalDate())\n                        .takeIf { supportsReadingDates && item.track.finishDate != 0L },\n                    onEndDateClick = { onEndDateEdit(item) }\n                        .takeIf { supportsReadingDates },\n                    onNewSearch = { onNewSearch(item) },\n                    onOpenInBrowser = { onOpenInBrowser(item) },\n                    onRemoved = { onRemoved(item) },\n                    onCopyLink = { onCopyLink(item) },\n                    private = item.track.private,\n                    onTogglePrivate = { onTogglePrivate(item) }\n                        .takeIf { supportsPrivate },\n                )\n            } else {\n                TrackInfoItemEmpty(\n                    tracker = item.tracker,\n                    onNewSearch = { onNewSearch(item) },\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun TrackInfoItem(\n    title: String,\n    tracker: Tracker,\n    status: StringResource?,\n    onStatusClick: () -> Unit,\n    chapters: String,\n    onChaptersClick: () -> Unit,\n    score: String?,\n    onScoreClick: (() -> Unit)?,\n    startDate: String?,\n    onStartDateClick: (() -> Unit)?,\n    endDate: String?,\n    onEndDateClick: (() -> Unit)?,\n    onNewSearch: () -> Unit,\n    onOpenInBrowser: () -> Unit,\n    onRemoved: () -> Unit,\n    onCopyLink: () -> Unit,\n    private: Boolean,\n    onTogglePrivate: (() -> Unit)?,\n) {\n    val context = LocalContext.current\n    Column {\n        Row(\n            verticalAlignment = Alignment.CenterVertically,\n        ) {\n            BadgedBox(\n                badge = {\n                    if (private) {\n                        Badge(\n                            containerColor = MaterialTheme.colorScheme.primary,\n                            contentColor = MaterialTheme.colorScheme.onPrimary,\n                            modifier = Modifier.absoluteOffset(x = (-5).dp),\n                        ) {\n                            Icon(\n                                imageVector = Icons.Filled.VisibilityOff,\n                                contentDescription = stringResource(MR.strings.tracked_privately),\n                                modifier = Modifier.size(14.dp),\n                            )\n                        }\n                    }\n                },\n            ) {\n                TrackLogoIcon(\n                    tracker = tracker,\n                    onClick = onOpenInBrowser,\n                    onLongClick = onCopyLink,\n                )\n            }\n            Box(\n                modifier = Modifier\n                    .height(48.dp)\n                    .weight(1f)\n                    .combinedClickable(\n                        onClick = onNewSearch,\n                        onLongClick = {\n                            context.copyToClipboard(title, title)\n                        },\n                    )\n                    .padding(start = 16.dp),\n                contentAlignment = Alignment.CenterStart,\n            ) {\n                Text(\n                    text = title,\n                    maxLines = 1,\n                    overflow = TextOverflow.Ellipsis,\n                    style = MaterialTheme.typography.titleMedium,\n                    color = MaterialTheme.colorScheme.onSurface,\n                )\n            }\n            VerticalDivider()\n            TrackInfoItemMenu(\n                onOpenInBrowser = onOpenInBrowser,\n                onRemoved = onRemoved,\n                onCopyLink = onCopyLink,\n                private = private,\n                onTogglePrivate = onTogglePrivate,\n            )\n        }\n\n        Box(\n            modifier = Modifier\n                .padding(top = 12.dp)\n                .clip(MaterialTheme.shapes.medium)\n                .background(MaterialTheme.colorScheme.surfaceContainerHighest)\n                .padding(8.dp)\n                .clip(RoundedCornerShape(6.dp)),\n        ) {\n            Column {\n                Row(modifier = Modifier.height(IntrinsicSize.Min)) {\n                    TrackDetailsItem(\n                        modifier = Modifier.weight(1f),\n                        text = status?.let { stringResource(it) } ?: \"\",\n                        onClick = onStatusClick,\n                    )\n                    VerticalDivider()\n                    TrackDetailsItem(\n                        modifier = Modifier.weight(1f),\n                        text = chapters,\n                        onClick = onChaptersClick,\n                    )\n                    if (onScoreClick != null) {\n                        VerticalDivider()\n                        TrackDetailsItem(\n                            modifier = Modifier.weight(1f),\n                            text = score,\n                            placeholder = stringResource(MR.strings.score),\n                            onClick = onScoreClick,\n                        )\n                    }\n                }\n\n                if (onStartDateClick != null && onEndDateClick != null) {\n                    HorizontalDivider()\n                    Row(modifier = Modifier.height(IntrinsicSize.Min)) {\n                        TrackDetailsItem(\n                            modifier = Modifier.weight(1F),\n                            text = startDate,\n                            placeholder = stringResource(MR.strings.track_started_reading_date),\n                            onClick = onStartDateClick,\n                        )\n                        VerticalDivider()\n                        TrackDetailsItem(\n                            modifier = Modifier.weight(1F),\n                            text = endDate,\n                            placeholder = stringResource(MR.strings.track_finished_reading_date),\n                            onClick = onEndDateClick,\n                        )\n                    }\n                }\n            }\n        }\n    }\n}\n\nprivate const val UNSET_TEXT_ALPHA = 0.5F\n\n@Composable\nprivate fun TrackDetailsItem(\n    text: String?,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n    placeholder: String = \"\",\n) {\n    Box(\n        modifier = modifier\n            .clickable(onClick = onClick)\n            .fillMaxHeight()\n            .padding(12.dp),\n        contentAlignment = Alignment.Center,\n    ) {\n        Text(\n            text = text ?: placeholder,\n            maxLines = 2,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.bodyMedium,\n            textAlign = TextAlign.Center,\n            color = MaterialTheme.colorScheme.onSurface.copy(alpha = if (text == null) UNSET_TEXT_ALPHA else 1f),\n        )\n    }\n}\n\n@Composable\nprivate fun TrackInfoItemEmpty(\n    tracker: Tracker,\n    onNewSearch: () -> Unit,\n) {\n    Row(\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        TrackLogoIcon(tracker)\n        TextButton(\n            onClick = onNewSearch,\n            modifier = Modifier\n                .padding(start = 16.dp)\n                .weight(1f),\n        ) {\n            Text(text = stringResource(MR.strings.add_tracking))\n        }\n    }\n}\n\n@Composable\nprivate fun TrackInfoItemMenu(\n    onOpenInBrowser: () -> Unit,\n    onRemoved: () -> Unit,\n    onCopyLink: () -> Unit,\n    private: Boolean,\n    onTogglePrivate: (() -> Unit)?,\n) {\n    var expanded by remember { mutableStateOf(false) }\n    Box(modifier = Modifier.wrapContentSize(Alignment.TopStart)) {\n        IconButton(onClick = { expanded = true }) {\n            Icon(\n                imageVector = Icons.Default.MoreVert,\n                contentDescription = stringResource(MR.strings.label_more),\n            )\n        }\n        DropdownMenu(\n            expanded = expanded,\n            onDismissRequest = { expanded = false },\n        ) {\n            DropdownMenuItem(\n                text = { Text(stringResource(MR.strings.action_open_in_browser)) },\n                onClick = {\n                    onOpenInBrowser()\n                    expanded = false\n                },\n            )\n            DropdownMenuItem(\n                text = { Text(stringResource(MR.strings.action_copy_link)) },\n                onClick = {\n                    onCopyLink()\n                    expanded = false\n                },\n            )\n            if (onTogglePrivate != null) {\n                DropdownMenuItem(\n                    text = {\n                        Text(\n                            stringResource(\n                                if (private) {\n                                    MR.strings.action_toggle_private_off\n                                } else {\n                                    MR.strings.action_toggle_private_on\n                                },\n                            ),\n                        )\n                    },\n                    onClick = {\n                        onTogglePrivate()\n                        expanded = false\n                    },\n                )\n            }\n            DropdownMenuItem(\n                text = { Text(stringResource(MR.strings.action_remove)) },\n                onClick = {\n                    onRemoved()\n                    expanded = false\n                },\n            )\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TrackInfoDialogHomePreviews(\n    @PreviewParameter(TrackInfoDialogHomePreviewProvider::class)\n    content: @Composable () -> Unit,\n) {\n    TachiyomiPreviewTheme {\n        Surface {\n            content()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHomePreviewProvider.kt",
    "content": "package eu.kanade.presentation.track\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.tooling.preview.PreviewParameterProvider\nimport eu.kanade.tachiyomi.ui.manga.track.TrackItem\nimport eu.kanade.test.DummyTracker\nimport tachiyomi.domain.track.model.Track\nimport java.time.format.DateTimeFormatter\nimport java.time.format.FormatStyle\n\ninternal class TrackInfoDialogHomePreviewProvider :\n    PreviewParameterProvider<@Composable () -> Unit> {\n\n    private val aTrack = Track(\n        id = 1L,\n        mangaId = 2L,\n        trackerId = 3L,\n        remoteId = 4L,\n        libraryId = null,\n        title = \"Manage Name On Tracker Site\",\n        lastChapterRead = 2.0,\n        totalChapters = 12L,\n        status = 1L,\n        score = 2.0,\n        remoteUrl = \"https://example.com\",\n        startDate = 0L,\n        finishDate = 0L,\n        private = false,\n    )\n    private val privateTrack = aTrack.copy(private = true)\n    private val trackItemWithoutTrack = TrackItem(\n        track = null,\n        tracker = DummyTracker(\n            id = 1L,\n            name = \"Example Tracker\",\n        ),\n    )\n    private val trackItemWithTrack = TrackItem(\n        track = aTrack,\n        tracker = DummyTracker(\n            id = 2L,\n            name = \"Example Tracker 2\",\n        ),\n    )\n    private val trackItemWithPrivateTrack = TrackItem(\n        track = privateTrack,\n        tracker = DummyTracker(\n            id = 2L,\n            name = \"Example Tracker 2\",\n        ),\n    )\n\n    private val trackersWithAndWithoutTrack = @Composable {\n        TrackInfoDialogHome(\n            trackItems = listOf(\n                trackItemWithoutTrack,\n                trackItemWithTrack,\n            ),\n            dateFormat = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM),\n            onStatusClick = {},\n            onChapterClick = {},\n            onScoreClick = {},\n            onStartDateEdit = {},\n            onEndDateEdit = {},\n            onNewSearch = {},\n            onOpenInBrowser = {},\n            onRemoved = {},\n            onCopyLink = {},\n            onTogglePrivate = {},\n        )\n    }\n\n    private val noTrackers = @Composable {\n        TrackInfoDialogHome(\n            trackItems = listOf(),\n            dateFormat = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM),\n            onStatusClick = {},\n            onChapterClick = {},\n            onScoreClick = {},\n            onStartDateEdit = {},\n            onEndDateEdit = {},\n            onNewSearch = {},\n            onOpenInBrowser = {},\n            onRemoved = {},\n            onCopyLink = {},\n            onTogglePrivate = {},\n        )\n    }\n\n    private val trackerWithPrivateTracking = @Composable {\n        TrackInfoDialogHome(\n            trackItems = listOf(trackItemWithPrivateTrack),\n            dateFormat = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM),\n            onStatusClick = {},\n            onChapterClick = {},\n            onScoreClick = {},\n            onStartDateEdit = {},\n            onEndDateEdit = {},\n            onNewSearch = {},\n            onOpenInBrowser = {},\n            onRemoved = {},\n            onCopyLink = {},\n            onTogglePrivate = {},\n        )\n    }\n\n    override val values: Sequence<@Composable () -> Unit>\n        get() = sequenceOf(\n            trackersWithAndWithoutTrack,\n            noTrackers,\n            trackerWithPrivateTracking,\n        )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogSelector.kt",
    "content": "package eu.kanade.presentation.track\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.BoxScope\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.systemBars\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.selection.selectable\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material3.DatePicker\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.RadioButton\nimport androidx.compose.material3.SelectableDates\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.material3.minimumInteractiveComponentSize\nimport androidx.compose.material3.rememberDatePickerState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toImmutableList\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.WheelNumberPicker\nimport tachiyomi.presentation.core.components.WheelTextPicker\nimport tachiyomi.presentation.core.components.material.AlertDialogContent\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun TrackStatusSelector(\n    selection: Long,\n    onSelectionChange: (Long) -> Unit,\n    selections: Map<Long, StringResource?>,\n    onConfirm: () -> Unit,\n    onDismissRequest: () -> Unit,\n) {\n    BaseSelector(\n        title = stringResource(MR.strings.status),\n        content = {\n            val state = rememberLazyListState()\n            ScrollbarLazyColumn(state = state) {\n                selections.forEach { (key, value) ->\n                    val isSelected = selection == key\n                    item {\n                        Row(\n                            verticalAlignment = Alignment.CenterVertically,\n                            modifier = Modifier\n                                .clip(RoundedCornerShape(8.dp))\n                                .selectable(\n                                    selected = isSelected,\n                                    onClick = { onSelectionChange(key) },\n                                )\n                                .fillMaxWidth()\n                                .minimumInteractiveComponentSize(),\n                        ) {\n                            RadioButton(\n                                selected = isSelected,\n                                onClick = null,\n                            )\n                            Text(\n                                text = value?.let { stringResource(it) } ?: \"\",\n                                style = MaterialTheme.typography.bodyLarge.merge(),\n                                modifier = Modifier.padding(start = 24.dp),\n                            )\n                        }\n                    }\n                }\n            }\n            if (state.canScrollBackward) HorizontalDivider(modifier = Modifier.align(Alignment.TopCenter))\n            if (state.canScrollForward) HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter))\n        },\n        onConfirm = onConfirm,\n        onDismissRequest = onDismissRequest,\n    )\n}\n\n@Composable\nfun TrackChapterSelector(\n    selection: Int,\n    onSelectionChange: (Int) -> Unit,\n    range: Iterable<Int>,\n    onConfirm: () -> Unit,\n    onDismissRequest: () -> Unit,\n) {\n    BaseSelector(\n        title = stringResource(MR.strings.chapters),\n        content = {\n            WheelNumberPicker(\n                items = range.toImmutableList(),\n                modifier = Modifier.align(Alignment.Center),\n                startIndex = selection,\n                onSelectionChanged = { onSelectionChange(it) },\n            )\n        },\n        onConfirm = onConfirm,\n        onDismissRequest = onDismissRequest,\n    )\n}\n\n@Composable\nfun TrackScoreSelector(\n    selection: String,\n    onSelectionChange: (String) -> Unit,\n    selections: ImmutableList<String>,\n    onConfirm: () -> Unit,\n    onDismissRequest: () -> Unit,\n) {\n    BaseSelector(\n        title = stringResource(MR.strings.score),\n        content = {\n            WheelTextPicker(\n                items = selections,\n                modifier = Modifier.align(Alignment.Center),\n                startIndex = selections.indexOf(selection).takeIf { it > 0 } ?: (selections.size / 2),\n                onSelectionChanged = { onSelectionChange(selections[it]) },\n            )\n        },\n        onConfirm = onConfirm,\n        onDismissRequest = onDismissRequest,\n    )\n}\n\n@Composable\nfun TrackDateSelector(\n    title: String,\n    initialSelectedDateMillis: Long,\n    selectableDates: SelectableDates,\n    onConfirm: (Long) -> Unit,\n    onRemove: (() -> Unit)?,\n    onDismissRequest: () -> Unit,\n) {\n    val pickerState = rememberDatePickerState(\n        initialSelectedDateMillis = initialSelectedDateMillis,\n        selectableDates = selectableDates,\n    )\n    AlertDialogContent(\n        modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),\n        title = { Text(text = title) },\n        content = {\n            Column {\n                DatePicker(\n                    state = pickerState,\n                    title = null,\n                    headline = null,\n                    showModeToggle = false,\n                )\n\n                Row(\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .padding(start = 12.dp, top = 8.dp, end = 12.dp, bottom = 24.dp),\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small, Alignment.End),\n                ) {\n                    if (onRemove != null) {\n                        TextButton(onClick = onRemove) {\n                            Text(text = stringResource(MR.strings.action_remove))\n                        }\n                        Spacer(modifier = Modifier.weight(1f))\n                    }\n                    TextButton(onClick = onDismissRequest) {\n                        Text(text = stringResource(MR.strings.action_cancel))\n                    }\n                    TextButton(onClick = { onConfirm(pickerState.selectedDateMillis!!) }) {\n                        Text(text = stringResource(MR.strings.action_ok))\n                    }\n                }\n            }\n        },\n    )\n}\n\n@Composable\nprivate fun BaseSelector(\n    title: String,\n    content: @Composable BoxScope.() -> Unit,\n    onConfirm: () -> Unit,\n    onDismissRequest: () -> Unit,\n    thirdButton: @Composable (RowScope.() -> Unit)? = null,\n) {\n    AlertDialogContent(\n        modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),\n        title = { Text(text = title) },\n        text = {\n            Box(\n                modifier = Modifier.fillMaxWidth(),\n                content = content,\n            )\n        },\n        buttons = {\n            Row(\n                modifier = Modifier.fillMaxWidth(),\n                horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small, Alignment.End),\n            ) {\n                if (thirdButton != null) {\n                    thirdButton()\n                    Spacer(modifier = Modifier.weight(1f))\n                }\n                TextButton(onClick = onDismissRequest) {\n                    Text(text = stringResource(MR.strings.action_cancel))\n                }\n                TextButton(onClick = onConfirm) {\n                    Text(text = stringResource(MR.strings.action_ok))\n                }\n            }\n        },\n    )\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TrackStatusSelectorPreviews() {\n    TachiyomiPreviewTheme {\n        Surface {\n            TrackStatusSelector(\n                selection = 1,\n                onSelectionChange = {},\n                selections = persistentMapOf(\n                    // Anilist values\n                    1L to MR.strings.reading,\n                    2L to MR.strings.plan_to_read,\n                    3L to MR.strings.completed,\n                    4L to MR.strings.on_hold,\n                    5L to MR.strings.dropped,\n                    6L to MR.strings.repeating,\n                ),\n                onConfirm = {},\n                onDismissRequest = {},\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/TrackerSearch.kt",
    "content": "package eu.kanade.presentation.track\n\nimport android.content.ClipData\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.slideInVertically\nimport androidx.compose.animation.slideOutVertically\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.border\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.navigationBars\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.paddingFromBaseline\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.foundation.text.BasicTextField\nimport androidx.compose.foundation.text.KeyboardOptions\nimport androidx.compose.foundation.text.input.TextFieldLineLimits\nimport androidx.compose.foundation.text.input.TextFieldState\nimport androidx.compose.foundation.text.input.clearText\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowBack\nimport androidx.compose.material.icons.filled.CheckCircle\nimport androidx.compose.material.icons.filled.Close\nimport androidx.compose.material.icons.filled.VisibilityOff\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.ButtonDefaults\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TopAppBar\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.platform.Clipboard\nimport androidx.compose.ui.platform.LocalClipboard\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalFocusManager\nimport androidx.compose.ui.platform.toClipEntry\nimport androidx.compose.ui.text.capitalize\nimport androidx.compose.ui.text.input.ImeAction\nimport androidx.compose.ui.text.intl.Locale\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.text.toLowerCase\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.tooling.preview.PreviewParameter\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.presentation.manga.components.MangaCover\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ScrollbarLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.util.plus\nimport tachiyomi.presentation.core.util.runOnEnterKeyPressed\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun TrackerSearch(\n    state: TextFieldState,\n    onDispatchQuery: () -> Unit,\n    queryResult: Result<List<TrackSearch>>?,\n    selected: TrackSearch?,\n    onSelectedChange: (TrackSearch) -> Unit,\n    onConfirmSelection: (private: Boolean) -> Unit,\n    onDismissRequest: () -> Unit,\n    supportsPrivateTracking: Boolean,\n) {\n    val focusManager = LocalFocusManager.current\n    val focusRequester = remember { FocusRequester() }\n    val dispatchQueryAndClearFocus: () -> Unit = {\n        onDispatchQuery()\n        focusManager.clearFocus()\n    }\n\n    Scaffold(\n        topBar = {\n            Column {\n                TopAppBar(\n                    navigationIcon = {\n                        IconButton(onClick = onDismissRequest) {\n                            Icon(\n                                imageVector = Icons.AutoMirrored.Outlined.ArrowBack,\n                                contentDescription = null,\n                                tint = MaterialTheme.colorScheme.onSurfaceVariant,\n                            )\n                        }\n                    },\n                    title = {\n                        BasicTextField(\n                            state = state,\n                            modifier = Modifier\n                                .fillMaxWidth()\n                                .focusRequester(focusRequester)\n                                .runOnEnterKeyPressed(action = dispatchQueryAndClearFocus),\n                            textStyle = MaterialTheme.typography.bodyLarge\n                                .copy(color = MaterialTheme.colorScheme.onSurface),\n                            lineLimits = TextFieldLineLimits.SingleLine,\n                            keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search),\n                            onKeyboardAction = { dispatchQueryAndClearFocus() },\n                            cursorBrush = SolidColor(MaterialTheme.colorScheme.primary),\n                            decorator = {\n                                if (state.text.isEmpty()) {\n                                    Text(\n                                        text = stringResource(MR.strings.action_search_hint),\n                                        color = MaterialTheme.colorScheme.onSurfaceVariant,\n                                        style = MaterialTheme.typography.bodyLarge,\n                                    )\n                                }\n                                it()\n                            },\n                        )\n                    },\n                    actions = {\n                        if (state.text.isNotEmpty()) {\n                            IconButton(\n                                onClick = {\n                                    state.clearText()\n                                    focusRequester.requestFocus()\n                                },\n                            ) {\n                                Icon(\n                                    imageVector = Icons.Default.Close,\n                                    contentDescription = null,\n                                    tint = MaterialTheme.colorScheme.onSurfaceVariant,\n                                )\n                            }\n                        }\n                    },\n                )\n                HorizontalDivider()\n            }\n        },\n        bottomBar = {\n            AnimatedVisibility(\n                visible = selected != null,\n                enter = fadeIn() + slideInVertically { it / 2 },\n                exit = slideOutVertically { it / 2 } + fadeOut(),\n            ) {\n                Row(\n                    modifier = Modifier\n                        .padding(MaterialTheme.padding.small)\n                        .windowInsetsPadding(WindowInsets.navigationBars)\n                        .fillMaxWidth(),\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                ) {\n                    Button(\n                        onClick = { onConfirmSelection(false) },\n                        modifier = Modifier.weight(1f),\n                        elevation = ButtonDefaults.elevatedButtonElevation(),\n                    ) {\n                        Text(text = stringResource(MR.strings.action_track))\n                    }\n                    if (supportsPrivateTracking) {\n                        Button(\n                            onClick = { onConfirmSelection(true) },\n                            elevation = ButtonDefaults.elevatedButtonElevation(),\n                        ) {\n                            Icon(\n                                imageVector = Icons.Filled.VisibilityOff,\n                                contentDescription = stringResource(MR.strings.action_toggle_private_on),\n                            )\n                        }\n                    }\n                }\n            }\n        },\n    ) { innerPadding ->\n        if (queryResult == null) {\n            LoadingScreen(modifier = Modifier.padding(innerPadding))\n        } else {\n            val availableTracks = queryResult.getOrNull()\n            if (availableTracks != null) {\n                if (availableTracks.isEmpty()) {\n                    EmptyScreen(\n                        modifier = Modifier.padding(innerPadding),\n                        stringRes = MR.strings.no_results_found,\n                    )\n                } else {\n                    ScrollbarLazyColumn(\n                        contentPadding = innerPadding + PaddingValues(vertical = 12.dp),\n                        verticalArrangement = Arrangement.spacedBy(12.dp),\n                    ) {\n                        items(\n                            items = availableTracks,\n                            key = { it.hashCode() },\n                        ) {\n                            SearchResultItem(\n                                trackSearch = it,\n                                selected = it == selected,\n                                onClick = { onSelectedChange(it) },\n                            )\n                        }\n                    }\n                }\n            } else {\n                EmptyScreen(\n                    modifier = Modifier.padding(innerPadding),\n                    message = queryResult.exceptionOrNull()?.message\n                        ?: stringResource(MR.strings.unknown_error),\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun SearchResultItem(\n    trackSearch: TrackSearch,\n    selected: Boolean,\n    onClick: () -> Unit,\n) {\n    val context = LocalContext.current\n    val clipboard: Clipboard = LocalClipboard.current\n    val focusManager = LocalFocusManager.current\n    val type = trackSearch.publishing_type.toLowerCase(Locale.current).capitalize(Locale.current)\n    val status = trackSearch.publishing_status.toLowerCase(Locale.current).capitalize(Locale.current)\n    val description = trackSearch.summary.trim()\n    val shape = RoundedCornerShape(16.dp)\n    val borderColor = if (selected) MaterialTheme.colorScheme.outline else Color.Transparent\n    var dropDownMenuExpanded by remember { mutableStateOf(false) }\n    val scope = rememberCoroutineScope()\n    Box(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(horizontal = 12.dp)\n            .clip(shape)\n            .background(MaterialTheme.colorScheme.surface)\n            .border(\n                width = 2.dp,\n                color = borderColor,\n                shape = shape,\n            )\n            .combinedClickable(\n                onLongClick = { dropDownMenuExpanded = true },\n                onClick = {\n                    focusManager.clearFocus()\n                    onClick()\n                },\n            )\n            .padding(12.dp),\n    ) {\n        if (selected) {\n            Icon(\n                imageVector = Icons.Filled.CheckCircle,\n                contentDescription = null,\n                modifier = Modifier.align(Alignment.TopEnd),\n                tint = MaterialTheme.colorScheme.primary,\n            )\n        }\n        Column {\n            Row {\n                MangaCover.Book(\n                    data = trackSearch.cover_url,\n                    modifier = Modifier.height(96.dp),\n                )\n                Spacer(modifier = Modifier.width(12.dp))\n                Column {\n                    Text(\n                        text = trackSearch.title,\n                        modifier = Modifier.padding(end = 28.dp),\n                        maxLines = 2,\n                        overflow = TextOverflow.Ellipsis,\n                        style = MaterialTheme.typography.titleMedium,\n                    )\n                    SearchResultItemDropDownMenu(\n                        expanded = dropDownMenuExpanded,\n                        onCollapseMenu = { dropDownMenuExpanded = false },\n                        onCopyName = {\n                            scope.launch {\n                                val clipEntry = ClipData.newPlainText(\n                                    trackSearch.title,\n                                    trackSearch.title,\n                                ).toClipEntry()\n                                clipboard.setClipEntry(clipEntry)\n                            }\n                        },\n                        onOpenInBrowser = {\n                            val url = trackSearch.tracking_url\n                            if (url.isNotBlank()) {\n                                context.openInBrowser(url)\n                            }\n                        },\n                    )\n                    if (trackSearch.authors.isNotEmpty() || trackSearch.artists.isNotEmpty()) {\n                        Text(\n                            text = (trackSearch.authors + trackSearch.artists).distinct().joinToString(),\n                            modifier = Modifier.secondaryItemAlpha(),\n                            maxLines = 1,\n                            overflow = TextOverflow.Ellipsis,\n                            style = MaterialTheme.typography.bodySmall,\n                        )\n                    }\n                    if (type.isNotBlank()) {\n                        SearchResultItemDetails(\n                            title = stringResource(MR.strings.track_type),\n                            text = type,\n                        )\n                    }\n                    if (trackSearch.start_date.isNotBlank()) {\n                        SearchResultItemDetails(\n                            title = stringResource(MR.strings.label_started),\n                            text = trackSearch.start_date,\n                        )\n                    }\n                    if (status.isNotBlank()) {\n                        SearchResultItemDetails(\n                            title = stringResource(MR.strings.track_status),\n                            text = status,\n                        )\n                    }\n                    if (trackSearch.score != -1.0) {\n                        SearchResultItemDetails(\n                            title = stringResource(MR.strings.score),\n                            text = trackSearch.score.toString(),\n                        )\n                    }\n                }\n            }\n            if (description.isNotBlank()) {\n                Text(\n                    text = description,\n                    modifier = Modifier\n                        .paddingFromBaseline(top = 24.dp)\n                        .secondaryItemAlpha(),\n                    maxLines = 4,\n                    overflow = TextOverflow.Ellipsis,\n                    style = MaterialTheme.typography.bodySmall,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun SearchResultItemDropDownMenu(\n    expanded: Boolean,\n    onCollapseMenu: () -> Unit,\n    onCopyName: () -> Unit,\n    onOpenInBrowser: () -> Unit,\n) {\n    DropdownMenu(\n        expanded = expanded,\n        onDismissRequest = onCollapseMenu,\n    ) {\n        DropdownMenuItem(\n            text = { Text(stringResource(MR.strings.action_copy_to_clipboard)) },\n            onClick = {\n                onCopyName()\n                onCollapseMenu()\n            },\n        )\n        DropdownMenuItem(\n            text = { Text(stringResource(MR.strings.action_open_in_browser)) },\n            onClick = {\n                onOpenInBrowser()\n            },\n        )\n    }\n}\n\n@Composable\nprivate fun SearchResultItemDetails(\n    title: String,\n    text: String,\n) {\n    Row(horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall)) {\n        Text(\n            text = title,\n            maxLines = 1,\n            style = MaterialTheme.typography.titleSmall,\n        )\n        Text(\n            text = text,\n            modifier = Modifier\n                .weight(1f)\n                .secondaryItemAlpha(),\n            maxLines = 1,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TrackerSearchPreviews(\n    @PreviewParameter(TrackerSearchPreviewProvider::class)\n    content: @Composable () -> Unit,\n) {\n    TachiyomiPreviewTheme { content() }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/TrackerSearchPreviewProvider.kt",
    "content": "package eu.kanade.presentation.track\n\nimport androidx.compose.foundation.text.input.TextFieldState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.tooling.preview.PreviewParameterProvider\nimport androidx.compose.ui.tooling.preview.datasource.LoremIpsum\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport java.text.SimpleDateFormat\nimport java.time.Instant\nimport java.time.temporal.ChronoUnit\nimport java.util.Date\nimport java.util.Locale\nimport kotlin.random.Random\n\ninternal class TrackerSearchPreviewProvider : PreviewParameterProvider<@Composable () -> Unit> {\n    private val fullPageWithSecondSelected = @Composable {\n        val items = someTrackSearches().take(30).toList()\n        TrackerSearch(\n            state = TextFieldState(initialText = \"search text\"),\n            onDispatchQuery = {},\n            queryResult = Result.success(items),\n            selected = items[1],\n            onSelectedChange = {},\n            onConfirmSelection = {},\n            onDismissRequest = {},\n            supportsPrivateTracking = false,\n        )\n    }\n    private val fullPageWithoutSelected = @Composable {\n        TrackerSearch(\n            state = TextFieldState(),\n            onDispatchQuery = {},\n            queryResult = Result.success(someTrackSearches().take(30).toList()),\n            selected = null,\n            onSelectedChange = {},\n            onConfirmSelection = {},\n            onDismissRequest = {},\n            supportsPrivateTracking = false,\n        )\n    }\n    private val loading = @Composable {\n        TrackerSearch(\n            state = TextFieldState(),\n            onDispatchQuery = {},\n            queryResult = null,\n            selected = null,\n            onSelectedChange = {},\n            onConfirmSelection = {},\n            onDismissRequest = {},\n            supportsPrivateTracking = false,\n        )\n    }\n    private val fullPageWithPrivateTracking = @Composable {\n        val items = someTrackSearches().take(30).toList()\n        TrackerSearch(\n            state = TextFieldState(initialText = \"search text\"),\n            onDispatchQuery = {},\n            queryResult = Result.success(items),\n            selected = items[1],\n            onSelectedChange = {},\n            onConfirmSelection = {},\n            onDismissRequest = {},\n            supportsPrivateTracking = true,\n        )\n    }\n    override val values: Sequence<@Composable () -> Unit> = sequenceOf(\n        fullPageWithSecondSelected,\n        fullPageWithoutSelected,\n        loading,\n        fullPageWithPrivateTracking,\n    )\n\n    private fun someTrackSearches(): Sequence<TrackSearch> = sequence {\n        while (true) {\n            yield(randTrackSearch())\n        }\n    }\n\n    private val formatter: SimpleDateFormat = SimpleDateFormat(\"yyyy-MM-dd\", Locale.getDefault())\n\n    private fun randTrackSearch() = TrackSearch().let {\n        it.id = Random.nextLong()\n        it.manga_id = Random.nextLong()\n        it.tracker_id = Random.nextLong()\n        it.remote_id = Random.nextLong()\n        it.library_id = Random.nextLong()\n        it.title = lorem((1..10).random()).joinToString()\n        it.last_chapter_read = (0..100).random().toDouble()\n        it.total_chapters = (100L..1000L).random()\n        it.score = (0..10).random().toDouble()\n        it.status = Random.nextLong()\n        it.started_reading_date = 0L\n        it.finished_reading_date = 0L\n        it.tracking_url = \"https://example.com/tracker-example\"\n        it.cover_url = \"https://example.com/cover.png\"\n        it.start_date = formatter.format(Date.from(Instant.now().minus((1L..365).random(), ChronoUnit.DAYS)))\n        it.summary = lorem((0..40).random()).joinToString()\n        it.publishing_status = if (Random.nextBoolean()) \"Finished\" else \"\"\n        it.publishing_type = if (Random.nextBoolean()) \"Oneshot\" else \"\"\n        it.artists = randomNames()\n        it.authors = randomNames()\n        it\n    }\n\n    private fun randomNames(): List<String> = (0..(0..3).random()).map { lorem((3..5).random()).joinToString() }\n\n    private fun lorem(words: Int): Sequence<String> =\n        LoremIpsum(words).values\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/components/TrackLogoIcon.kt",
    "content": "package eu.kanade.presentation.track.components\n\nimport androidx.compose.foundation.Image\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.res.painterResource\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.tooling.preview.PreviewParameter\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.theme.TachiyomiPreviewTheme\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport tachiyomi.presentation.core.util.clickableNoIndication\n\n@Composable\nfun TrackLogoIcon(\n    tracker: Tracker,\n    onClick: (() -> Unit)? = null,\n    onLongClick: (() -> Unit)? = null,\n) {\n    val modifier = if (onClick != null) {\n        Modifier.clickableNoIndication(onClick = onClick, onLongClick = onLongClick)\n    } else {\n        Modifier\n    }\n\n    Image(\n        painter = painterResource(tracker.getLogo()),\n        contentDescription = tracker.name,\n        modifier = modifier\n            .size(48.dp)\n            .clip(MaterialTheme.shapes.medium),\n    )\n}\n\n@PreviewLightDark\n@Composable\nprivate fun TrackLogoIconPreviews(\n    @PreviewParameter(TrackLogoIconPreviewProvider::class)\n    tracker: Tracker,\n) {\n    TachiyomiPreviewTheme {\n        TrackLogoIcon(\n            tracker = tracker,\n            onClick = null,\n            onLongClick = null,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/track/components/TrackLogoIconPreviewProvider.kt",
    "content": "package eu.kanade.presentation.track.components\n\nimport androidx.compose.ui.tooling.preview.PreviewParameterProvider\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.test.DummyTracker\n\ninternal class TrackLogoIconPreviewProvider : PreviewParameterProvider<Tracker> {\n\n    override val values: Sequence<Tracker>\n        get() = sequenceOf(\n            DummyTracker(\n                id = 1L,\n                name = \"Dummy Tracker\",\n            ),\n        )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/updates/UpdatesDeleteConfirmationDialog.kt",
    "content": "package eu.kanade.presentation.updates\n\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun UpdatesDeleteConfirmationDialog(\n    onDismissRequest: () -> Unit,\n    onConfirm: () -> Unit,\n) {\n    AlertDialog(\n        text = {\n            Text(text = stringResource(MR.strings.confirm_delete_chapters))\n        },\n        onDismissRequest = onDismissRequest,\n        confirmButton = {\n            TextButton(onClick = {\n                onConfirm()\n                onDismissRequest()\n            }) {\n                Text(text = stringResource(MR.strings.action_ok))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/updates/UpdatesFilterDialog.kt",
    "content": "package eu.kanade.presentation.updates\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Switch\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport eu.kanade.presentation.components.TabbedDialog\nimport eu.kanade.presentation.components.TabbedDialogPaddings\nimport eu.kanade.tachiyomi.ui.updates.UpdatesSettingsScreenModel\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.domain.updates.service.UpdatesPreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.SettingsItemsPaddings\nimport tachiyomi.presentation.core.components.TriStateItem\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\n\n@Composable\nfun UpdatesFilterDialog(\n    onDismissRequest: () -> Unit,\n    screenModel: UpdatesSettingsScreenModel,\n) {\n    TabbedDialog(\n        onDismissRequest = onDismissRequest,\n        tabTitles = persistentListOf(\n            stringResource(MR.strings.action_filter),\n        ),\n    ) {\n        Column(\n            modifier = Modifier\n                .padding(vertical = TabbedDialogPaddings.Vertical)\n                .verticalScroll(rememberScrollState()),\n        ) {\n            FilterSheet(screenModel = screenModel)\n        }\n    }\n}\n\n@Composable\nprivate fun ColumnScope.FilterSheet(\n    screenModel: UpdatesSettingsScreenModel,\n) {\n    val filterDownloaded by screenModel.updatesPreferences.filterDownloaded.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.label_downloaded),\n        state = filterDownloaded,\n        onClick = { screenModel.toggleFilter(UpdatesPreferences::filterDownloaded) },\n    )\n\n    val filterUnread by screenModel.updatesPreferences.filterUnread.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.action_filter_unread),\n        state = filterUnread,\n        onClick = { screenModel.toggleFilter(UpdatesPreferences::filterUnread) },\n    )\n\n    val filterStarted by screenModel.updatesPreferences.filterStarted.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.label_started),\n        state = filterStarted,\n        onClick = { screenModel.toggleFilter(UpdatesPreferences::filterStarted) },\n    )\n\n    val filterBookmarked by screenModel.updatesPreferences.filterBookmarked.collectAsState()\n    TriStateItem(\n        label = stringResource(MR.strings.action_filter_bookmarked),\n        state = filterBookmarked,\n        onClick = { screenModel.toggleFilter(UpdatesPreferences::filterBookmarked) },\n    )\n\n    HorizontalDivider(modifier = Modifier.padding(MaterialTheme.padding.small))\n\n    val filterExcludedScanlators by screenModel.updatesPreferences.filterExcludedScanlators.collectAsState()\n\n    fun toggleScanlatorFilter() = screenModel.updatesPreferences.filterExcludedScanlators.getAndSet { !it }\n\n    Row(\n        modifier = Modifier\n            .clickable { toggleScanlatorFilter() }\n            .fillMaxWidth()\n            .padding(horizontal = SettingsItemsPaddings.Horizontal),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.SpaceBetween,\n    ) {\n        Text(\n            text = stringResource(MR.strings.action_filter_excluded_scanlators),\n            color = MaterialTheme.colorScheme.onSurface,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n\n        Switch(\n            checked = filterExcludedScanlators,\n            onCheckedChange = { toggleScanlatorFilter() },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt",
    "content": "package eu.kanade.presentation.updates\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.CalendarMonth\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material.icons.outlined.FlipToBack\nimport androidx.compose.material.icons.outlined.Refresh\nimport androidx.compose.material.icons.outlined.SelectAll\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.TopAppBarScrollBehavior\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.util.fastAll\nimport androidx.compose.ui.util.fastAny\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.manga.components.ChapterDownloadAction\nimport eu.kanade.presentation.manga.components.MangaBottomActionMenu\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.ui.updates.UpdatesItem\nimport eu.kanade.tachiyomi.ui.updates.UpdatesScreenModel\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.material.PullRefresh\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.theme.active\nimport java.time.LocalDate\nimport kotlin.time.Duration.Companion.seconds\n\n@Composable\nfun UpdateScreen(\n    state: UpdatesScreenModel.State,\n    snackbarHostState: SnackbarHostState,\n    lastUpdated: Long,\n    onClickCover: (UpdatesItem) -> Unit,\n    onSelectAll: (Boolean) -> Unit,\n    onInvertSelection: () -> Unit,\n    onCalendarClicked: () -> Unit,\n    onUpdateLibrary: () -> Boolean,\n    onDownloadChapter: (List<UpdatesItem>, ChapterDownloadAction) -> Unit,\n    onMultiBookmarkClicked: (List<UpdatesItem>, bookmark: Boolean) -> Unit,\n    onMultiMarkAsReadClicked: (List<UpdatesItem>, read: Boolean) -> Unit,\n    onMultiDeleteClicked: (List<UpdatesItem>) -> Unit,\n    onUpdateSelected: (UpdatesItem, Boolean, Boolean) -> Unit,\n    onOpenChapter: (UpdatesItem) -> Unit,\n    onFilterClicked: () -> Unit,\n    hasActiveFilters: Boolean,\n) {\n    BackHandler(enabled = state.selectionMode) {\n        onSelectAll(false)\n    }\n\n    Scaffold(\n        topBar = { scrollBehavior ->\n            UpdatesAppBar(\n                onCalendarClicked = { onCalendarClicked() },\n                onUpdateLibrary = { onUpdateLibrary() },\n                onFilterClicked = { onFilterClicked() },\n                hasFilters = hasActiveFilters,\n                actionModeCounter = state.selected.size,\n                onSelectAll = { onSelectAll(true) },\n                onInvertSelection = { onInvertSelection() },\n                onCancelActionMode = { onSelectAll(false) },\n                scrollBehavior = scrollBehavior,\n            )\n        },\n        bottomBar = {\n            UpdatesBottomBar(\n                selected = state.selected,\n                onDownloadChapter = onDownloadChapter,\n                onMultiBookmarkClicked = onMultiBookmarkClicked,\n                onMultiMarkAsReadClicked = onMultiMarkAsReadClicked,\n                onMultiDeleteClicked = onMultiDeleteClicked,\n            )\n        },\n        snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n    ) { contentPadding ->\n        when {\n            state.isLoading -> LoadingScreen(Modifier.padding(contentPadding))\n            state.items.isEmpty() -> EmptyScreen(\n                stringRes = MR.strings.information_no_recent,\n                modifier = Modifier.padding(contentPadding),\n            )\n            else -> {\n                val scope = rememberCoroutineScope()\n                var isRefreshing by remember { mutableStateOf(false) }\n\n                PullRefresh(\n                    refreshing = isRefreshing,\n                    onRefresh = {\n                        val started = onUpdateLibrary()\n                        if (!started) return@PullRefresh\n                        scope.launch {\n                            // Fake refresh status but hide it after a second as it's a long running task\n                            isRefreshing = true\n                            delay(1.seconds)\n                            isRefreshing = false\n                        }\n                    },\n                    enabled = !state.selectionMode,\n                    indicatorPadding = contentPadding,\n                ) {\n                    FastScrollLazyColumn(\n                        contentPadding = contentPadding,\n                    ) {\n                        updatesLastUpdatedItem(lastUpdated)\n\n                        updatesUiItems(\n                            uiModels = state.getUiModel(),\n                            selectionMode = state.selectionMode,\n                            onUpdateSelected = onUpdateSelected,\n                            onClickCover = onClickCover,\n                            onClickUpdate = onOpenChapter,\n                            onDownloadChapter = onDownloadChapter,\n                        )\n                    }\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun UpdatesAppBar(\n    onCalendarClicked: () -> Unit,\n    onUpdateLibrary: () -> Unit,\n    onFilterClicked: () -> Unit,\n    hasFilters: Boolean,\n    // For action mode\n    actionModeCounter: Int,\n    onSelectAll: () -> Unit,\n    onInvertSelection: () -> Unit,\n    onCancelActionMode: () -> Unit,\n    scrollBehavior: TopAppBarScrollBehavior,\n    modifier: Modifier = Modifier,\n) {\n    AppBar(\n        modifier = modifier,\n        title = stringResource(MR.strings.label_recent_updates),\n        actions = {\n            AppBarActions(\n                persistentListOf(\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_filter),\n                        icon = Icons.Outlined.FilterList,\n                        iconTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current,\n                        onClick = onFilterClicked,\n                    ),\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_view_upcoming),\n                        icon = Icons.Outlined.CalendarMonth,\n                        onClick = onCalendarClicked,\n                    ),\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_update_library),\n                        icon = Icons.Outlined.Refresh,\n                        onClick = onUpdateLibrary,\n                    ),\n                ),\n            )\n        },\n        actionModeCounter = actionModeCounter,\n        onCancelActionMode = onCancelActionMode,\n        actionModeActions = {\n            AppBarActions(\n                persistentListOf(\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_select_all),\n                        icon = Icons.Outlined.SelectAll,\n                        onClick = onSelectAll,\n                    ),\n                    AppBar.Action(\n                        title = stringResource(MR.strings.action_select_inverse),\n                        icon = Icons.Outlined.FlipToBack,\n                        onClick = onInvertSelection,\n                    ),\n                ),\n            )\n        },\n        scrollBehavior = scrollBehavior,\n    )\n}\n\n@Composable\nprivate fun UpdatesBottomBar(\n    selected: List<UpdatesItem>,\n    onDownloadChapter: (List<UpdatesItem>, ChapterDownloadAction) -> Unit,\n    onMultiBookmarkClicked: (List<UpdatesItem>, bookmark: Boolean) -> Unit,\n    onMultiMarkAsReadClicked: (List<UpdatesItem>, read: Boolean) -> Unit,\n    onMultiDeleteClicked: (List<UpdatesItem>) -> Unit,\n) {\n    MangaBottomActionMenu(\n        visible = selected.isNotEmpty(),\n        modifier = Modifier.fillMaxWidth(),\n        onBookmarkClicked = {\n            onMultiBookmarkClicked.invoke(selected, true)\n        }.takeIf { selected.fastAny { !it.update.bookmark } },\n        onRemoveBookmarkClicked = {\n            onMultiBookmarkClicked.invoke(selected, false)\n        }.takeIf { selected.fastAll { it.update.bookmark } },\n        onMarkAsReadClicked = {\n            onMultiMarkAsReadClicked(selected, true)\n        }.takeIf { selected.fastAny { !it.update.read } },\n        onMarkAsUnreadClicked = {\n            onMultiMarkAsReadClicked(selected, false)\n        }.takeIf { selected.fastAny { it.update.read || it.update.lastPageRead > 0L } },\n        onDownloadClicked = {\n            onDownloadChapter(selected, ChapterDownloadAction.START)\n        }.takeIf {\n            selected.fastAny { it.downloadStateProvider() != Download.State.DOWNLOADED }\n        },\n        onDeleteClicked = {\n            onMultiDeleteClicked(selected)\n        }.takeIf { selected.fastAny { it.downloadStateProvider() == Download.State.DOWNLOADED } },\n    )\n}\n\nsealed interface UpdatesUiModel {\n    data class Header(val date: LocalDate) : UpdatesUiModel\n    data class Item(val item: UpdatesItem) : UpdatesUiModel\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt",
    "content": "package eu.kanade.presentation.updates\n\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.sizeIn\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.lazy.LazyListScope\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Bookmark\nimport androidx.compose.material.icons.filled.Circle\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.text.font.FontStyle\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.relativeDateText\nimport eu.kanade.presentation.manga.components.ChapterDownloadAction\nimport eu.kanade.presentation.manga.components.ChapterDownloadIndicator\nimport eu.kanade.presentation.manga.components.DotSeparatorText\nimport eu.kanade.presentation.manga.components.MangaCover\nimport eu.kanade.presentation.util.animateItemFastScroll\nimport eu.kanade.presentation.util.relativeTimeSpanString\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.ui.updates.UpdatesItem\nimport tachiyomi.domain.updates.model.UpdatesWithRelations\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.ListGroupHeader\nimport tachiyomi.presentation.core.components.material.DISABLED_ALPHA\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.selectedBackground\n\ninternal fun LazyListScope.updatesLastUpdatedItem(\n    lastUpdated: Long,\n) {\n    item(key = \"updates-lastUpdated\") {\n        Box(\n            modifier = Modifier\n                .animateItem(fadeInSpec = null, fadeOutSpec = null)\n                .padding(horizontal = MaterialTheme.padding.medium, vertical = MaterialTheme.padding.small),\n        ) {\n            Text(\n                text = stringResource(MR.strings.updates_last_update_info, relativeTimeSpanString(lastUpdated)),\n                fontStyle = FontStyle.Italic,\n            )\n        }\n    }\n}\n\ninternal fun LazyListScope.updatesUiItems(\n    uiModels: List<UpdatesUiModel>,\n    selectionMode: Boolean,\n    onUpdateSelected: (UpdatesItem, Boolean, Boolean) -> Unit,\n    onClickCover: (UpdatesItem) -> Unit,\n    onClickUpdate: (UpdatesItem) -> Unit,\n    onDownloadChapter: (List<UpdatesItem>, ChapterDownloadAction) -> Unit,\n) {\n    items(\n        items = uiModels,\n        contentType = {\n            when (it) {\n                is UpdatesUiModel.Header -> \"header\"\n                is UpdatesUiModel.Item -> \"item\"\n            }\n        },\n        key = {\n            when (it) {\n                is UpdatesUiModel.Header -> \"updatesHeader-${it.hashCode()}\"\n                is UpdatesUiModel.Item -> \"updates-${it.item.update.mangaId}-${it.item.update.chapterId}\"\n            }\n        },\n    ) { item ->\n        when (item) {\n            is UpdatesUiModel.Header -> {\n                ListGroupHeader(\n                    modifier = Modifier.animateItemFastScroll(),\n                    text = relativeDateText(item.date),\n                )\n            }\n            is UpdatesUiModel.Item -> {\n                val updatesItem = item.item\n                UpdatesUiItem(\n                    modifier = Modifier.animateItemFastScroll(),\n                    update = updatesItem.update,\n                    selected = updatesItem.selected,\n                    readProgress = updatesItem.update.lastPageRead\n                        .takeIf { !updatesItem.update.read && it > 0L }\n                        ?.let {\n                            stringResource(\n                                MR.strings.chapter_progress,\n                                it + 1,\n                            )\n                        },\n                    onLongClick = {\n                        onUpdateSelected(updatesItem, !updatesItem.selected, true)\n                    },\n                    onClick = {\n                        when {\n                            selectionMode -> onUpdateSelected(updatesItem, !updatesItem.selected, false)\n                            else -> onClickUpdate(updatesItem)\n                        }\n                    },\n                    onClickCover = { onClickCover(updatesItem) }.takeIf { !selectionMode },\n                    onDownloadChapter = { action: ChapterDownloadAction ->\n                        onDownloadChapter(listOf(updatesItem), action)\n                    }.takeIf { !selectionMode },\n                    downloadStateProvider = updatesItem.downloadStateProvider,\n                    downloadProgressProvider = updatesItem.downloadProgressProvider,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun UpdatesUiItem(\n    update: UpdatesWithRelations,\n    selected: Boolean,\n    readProgress: String?,\n    onClick: () -> Unit,\n    onLongClick: () -> Unit,\n    onClickCover: (() -> Unit)?,\n    onDownloadChapter: ((ChapterDownloadAction) -> Unit)?,\n    // Download Indicator\n    downloadStateProvider: () -> Download.State,\n    downloadProgressProvider: () -> Int,\n    modifier: Modifier = Modifier,\n) {\n    val haptic = LocalHapticFeedback.current\n    val textAlpha = if (update.read) DISABLED_ALPHA else 1f\n\n    Row(\n        modifier = modifier\n            .selectedBackground(selected)\n            .combinedClickable(\n                onClick = onClick,\n                onLongClick = {\n                    onLongClick()\n                    haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n                },\n            )\n            .height(56.dp)\n            .padding(horizontal = MaterialTheme.padding.medium),\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        MangaCover.Square(\n            modifier = Modifier\n                .padding(vertical = 6.dp)\n                .fillMaxHeight(),\n            data = update.coverData,\n            onClick = onClickCover,\n        )\n\n        Column(\n            modifier = Modifier\n                .padding(horizontal = MaterialTheme.padding.medium)\n                .weight(1f),\n        ) {\n            Text(\n                text = update.mangaTitle,\n                maxLines = 1,\n                style = MaterialTheme.typography.bodyMedium,\n                color = LocalContentColor.current.copy(alpha = textAlpha),\n                overflow = TextOverflow.Ellipsis,\n            )\n\n            Row(verticalAlignment = Alignment.CenterVertically) {\n                var textHeight by remember { mutableIntStateOf(0) }\n                if (!update.read) {\n                    Icon(\n                        imageVector = Icons.Filled.Circle,\n                        contentDescription = stringResource(MR.strings.unread),\n                        modifier = Modifier\n                            .height(8.dp)\n                            .padding(end = 4.dp),\n                        tint = MaterialTheme.colorScheme.primary,\n                    )\n                }\n                if (update.bookmark) {\n                    Icon(\n                        imageVector = Icons.Filled.Bookmark,\n                        contentDescription = stringResource(MR.strings.action_filter_bookmarked),\n                        modifier = Modifier\n                            .sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),\n                        tint = MaterialTheme.colorScheme.primary,\n                    )\n                    Spacer(modifier = Modifier.width(2.dp))\n                }\n                Text(\n                    text = update.chapterName,\n                    maxLines = 1,\n                    style = MaterialTheme.typography.bodySmall,\n                    color = LocalContentColor.current.copy(alpha = textAlpha),\n                    overflow = TextOverflow.Ellipsis,\n                    onTextLayout = { textHeight = it.size.height },\n                    modifier = Modifier\n                        .weight(weight = 1f, fill = false),\n                )\n                if (readProgress != null) {\n                    DotSeparatorText()\n                    Text(\n                        text = readProgress,\n                        maxLines = 1,\n                        color = LocalContentColor.current.copy(alpha = DISABLED_ALPHA),\n                        overflow = TextOverflow.Ellipsis,\n                    )\n                }\n            }\n        }\n\n        ChapterDownloadIndicator(\n            enabled = onDownloadChapter != null,\n            modifier = Modifier.padding(start = 4.dp),\n            downloadStateProvider = downloadStateProvider,\n            downloadProgressProvider = downloadProgressProvider,\n            onClick = { onDownloadChapter?.invoke(it) },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/ChapterNumberFormatter.kt",
    "content": "package eu.kanade.presentation.util\n\nimport java.text.DecimalFormat\nimport java.text.DecimalFormatSymbols\n\nprivate val formatter = DecimalFormat(\n    \"#.###\",\n    DecimalFormatSymbols().apply { decimalSeparator = '.' },\n)\n\nfun formatChapterNumber(chapterNumber: Double): String {\n    return formatter.format(chapterNumber)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/ExceptionFormatter.kt",
    "content": "package eu.kanade.presentation.util\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.network.HttpException\nimport eu.kanade.tachiyomi.util.system.isOnline\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.data.source.NoResultsException\nimport tachiyomi.domain.source.model.SourceNotInstalledException\nimport tachiyomi.i18n.MR\nimport java.net.UnknownHostException\n\ncontext(context: Context)\nval Throwable.formattedMessage: String\n    get() {\n        when (this) {\n            is HttpException -> return context.stringResource(MR.strings.exception_http, code)\n            is UnknownHostException -> {\n                return if (!context.isOnline()) {\n                    context.stringResource(MR.strings.exception_offline)\n                } else {\n                    context.stringResource(MR.strings.exception_unknown_host, message ?: \"\")\n                }\n            }\n\n            is NoResultsException -> return context.stringResource(MR.strings.no_results_found)\n            is SourceNotInstalledException -> return context.stringResource(MR.strings.loader_not_implemented_error)\n        }\n        return when (val className = this::class.simpleName) {\n            \"Exception\", \"IOException\" -> message ?: className\n            else -> \"$className: $message\"\n        }\n    }\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/FastScrollAnimateItem.kt",
    "content": "package eu.kanade.presentation.util\n\nimport androidx.compose.foundation.lazy.LazyItemScope\nimport androidx.compose.ui.Modifier\n\n// https://issuetracker.google.com/352584409\ncontext(itemScope: LazyItemScope)\nfun Modifier.animateItemFastScroll() = with(itemScope) {\n    this@animateItemFastScroll.animateItem(fadeInSpec = null, fadeOutSpec = null)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/Navigator.kt",
    "content": "package eu.kanade.presentation.util\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.animation.AnimatedContent\nimport androidx.compose.animation.AnimatedContentTransitionScope\nimport androidx.compose.animation.ContentTransform\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ProvidableCompositionLocal\nimport androidx.compose.runtime.staticCompositionLocalOf\nimport androidx.compose.ui.Modifier\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport cafe.adriel.voyager.core.model.ScreenModelStore\nimport cafe.adriel.voyager.core.screen.Screen\nimport cafe.adriel.voyager.core.screen.ScreenKey\nimport cafe.adriel.voyager.core.screen.uniqueScreenKey\nimport cafe.adriel.voyager.core.stack.StackEvent\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.transitions.ScreenTransitionContent\nimport kotlinx.coroutines.CoroutineName\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.cancel\nimport kotlinx.coroutines.plus\nimport soup.compose.material.motion.animation.materialSharedAxisX\nimport soup.compose.material.motion.animation.rememberSlideDistance\n\n/**\n * For invoking back press to the parent activity\n */\nval LocalBackPress: ProvidableCompositionLocal<(() -> Unit)?> = staticCompositionLocalOf { null }\n\ninterface Tab : cafe.adriel.voyager.navigator.tab.Tab {\n    suspend fun onReselect(navigator: Navigator) {}\n}\n\nabstract class Screen : Screen {\n\n    override val key: ScreenKey = uniqueScreenKey\n}\n\n/**\n * A variant of ScreenModel.coroutineScope except with the IO dispatcher instead of the\n * main dispatcher.\n */\nval ScreenModel.ioCoroutineScope: CoroutineScope\n    get() = ScreenModelStore.getOrPutDependency(\n        screenModel = this,\n        name = \"ScreenModelIoCoroutineScope\",\n        factory = { key -> CoroutineScope(Dispatchers.IO + SupervisorJob()) + CoroutineName(key) },\n        onDispose = { scope -> scope.cancel() },\n    )\n\ninterface AssistContentScreen {\n    fun onProvideAssistUrl(): String?\n}\n\n@Composable\nfun DefaultNavigatorScreenTransition(\n    navigator: Navigator,\n    modifier: Modifier = Modifier,\n) {\n    val slideDistance = rememberSlideDistance()\n    ScreenTransition(\n        navigator = navigator,\n        transition = {\n            materialSharedAxisX(\n                forward = navigator.lastEvent != StackEvent.Pop,\n                slideDistance = slideDistance,\n            )\n        },\n        modifier = modifier,\n    )\n}\n\n@Composable\nfun ScreenTransition(\n    navigator: Navigator,\n    transition: AnimatedContentTransitionScope<Screen>.() -> ContentTransform,\n    modifier: Modifier = Modifier,\n    content: ScreenTransitionContent = { it.Content() },\n) {\n    AnimatedContent(\n        targetState = navigator.lastItem,\n        transitionSpec = transition,\n        modifier = modifier,\n        label = \"transition\",\n    ) { screen ->\n        navigator.saveableState(\"transition\", screen) {\n            content(screen)\n        }\n    }\n\n    BackHandler(enabled = navigator.canPop, onBack = navigator::pop)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/Permissions.kt",
    "content": "package eu.kanade.presentation.util\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.DisposableEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.lifecycle.DefaultLifecycleObserver\nimport androidx.lifecycle.LifecycleOwner\nimport androidx.lifecycle.compose.LocalLifecycleOwner\n\n@Composable\nfun rememberRequestPackageInstallsPermissionState(initialValue: Boolean = false): Boolean {\n    val context = LocalContext.current\n    val lifecycleOwner = LocalLifecycleOwner.current\n\n    var installGranted by remember { mutableStateOf(initialValue) }\n\n    DisposableEffect(lifecycleOwner.lifecycle) {\n        val observer = object : DefaultLifecycleObserver {\n            override fun onResume(owner: LifecycleOwner) {\n                installGranted = context.packageManager.canRequestPackageInstalls()\n            }\n        }\n        lifecycleOwner.lifecycle.addObserver(observer)\n        onDispose {\n            lifecycleOwner.lifecycle.removeObserver(observer)\n        }\n    }\n\n    return installGranted\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/Resources.kt",
    "content": "package eu.kanade.presentation.util\n\nimport android.content.res.Resources\nimport androidx.annotation.DrawableRes\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.graphics.asImageBitmap\nimport androidx.compose.ui.graphics.painter.BitmapPainter\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.core.content.ContextCompat\nimport androidx.core.graphics.drawable.toBitmap\n\n/**\n * Create a BitmapPainter from a drawable resource.\n * Use this only if [androidx.compose.ui.res.painterResource] doesn't work.\n *\n * @param id the resource identifier\n *\n * @return the bitmap associated with the resource\n */\n@Composable\nfun rememberResourceBitmapPainter(@DrawableRes id: Int): BitmapPainter {\n    val context = LocalContext.current\n    return remember(id) {\n        val drawable = ContextCompat.getDrawable(context, id)\n            ?: throw Resources.NotFoundException()\n        BitmapPainter(drawable.toBitmap().asImageBitmap())\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/TimeUtils.kt",
    "content": "package eu.kanade.presentation.util\n\nimport android.content.Context\nimport android.text.format.DateUtils\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport java.time.Instant\nimport kotlin.time.Duration\nimport kotlin.time.Duration.Companion.minutes\n\nfun Duration.toDurationString(context: Context, fallback: String): String {\n    return toComponents { days, hours, minutes, seconds, _ ->\n        buildList(4) {\n            if (days != 0L) add(context.stringResource(MR.strings.day_short, days))\n            if (hours != 0) add(context.stringResource(MR.strings.hour_short, hours))\n            if (minutes != 0 && (days == 0L || hours == 0)) {\n                add(\n                    context.stringResource(MR.strings.minute_short, minutes),\n                )\n            }\n            if (seconds != 0 && days == 0L && hours == 0) add(context.stringResource(MR.strings.seconds_short, seconds))\n        }.joinToString(\" \").ifBlank { fallback }\n    }\n}\n\n@Composable\n@ReadOnlyComposable\nfun relativeTimeSpanString(epochMillis: Long): String {\n    val now = Instant.now().toEpochMilli()\n    return when {\n        epochMillis <= 0L -> stringResource(MR.strings.relative_time_span_never)\n        now - epochMillis < 1.minutes.inWholeMilliseconds -> stringResource(\n            MR.strings.updates_last_update_info_just_now,\n        )\n        else -> DateUtils.getRelativeTimeSpanString(epochMillis, now, DateUtils.MINUTE_IN_MILLIS).toString()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/util/WindowSize.kt",
    "content": "package eu.kanade.presentation.util\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.ui.platform.LocalConfiguration\nimport eu.kanade.tachiyomi.util.system.isTabletUi\n\n@Composable\n@ReadOnlyComposable\nfun isTabletUi(): Boolean {\n    return LocalConfiguration.current.isTabletUi()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt",
    "content": "package eu.kanade.presentation.webview\n\nimport android.content.pm.ApplicationInfo\nimport android.graphics.Bitmap\nimport android.os.Message\nimport android.webkit.JsPromptResult\nimport android.webkit.JsResult\nimport android.webkit.WebResourceRequest\nimport android.webkit.WebView\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowBack\nimport androidx.compose.material.icons.automirrored.outlined.ArrowForward\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material3.LinearProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.DisposableEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.key\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.res.vectorResource\nimport androidx.compose.ui.unit.dp\nimport cafe.adriel.voyager.core.stack.mutableStateStackOf\nimport com.kevinnzou.web.AccompanistWebChromeClient\nimport com.kevinnzou.web.AccompanistWebViewClient\nimport com.kevinnzou.web.LoadingState\nimport com.kevinnzou.web.WebContent\nimport com.kevinnzou.web.WebView\nimport com.kevinnzou.web.WebViewNavigator\nimport com.kevinnzou.web.WebViewState\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.WarningBanner\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.util.system.getHtml\nimport eu.kanade.tachiyomi.util.system.setDefaultSettings\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\n\nclass WebViewWindow(webContent: WebContent, val navigator: WebViewNavigator) {\n    var state by mutableStateOf(WebViewState(webContent))\n    var popupMessage: Message? = null\n        private set\n    var webView: WebView? = null\n\n    constructor(popupMessage: Message, navigator: WebViewNavigator) : this(WebContent.NavigatorOnly, navigator) {\n        this.popupMessage = popupMessage\n    }\n}\n\n@Composable\nfun WebViewScreenContent(\n    onNavigateUp: () -> Unit,\n    initialTitle: String?,\n    url: String,\n    onShare: (String) -> Unit,\n    onOpenInBrowser: (String) -> Unit,\n    onClearCookies: (String) -> Unit,\n    headers: Map<String, String> = emptyMap(),\n    onUrlChange: (String) -> Unit = {},\n) {\n    val coroutineScope = rememberCoroutineScope()\n\n    val windowStack = remember {\n        mutableStateStackOf(\n            WebViewWindow(\n                WebContent.Url(url = url, additionalHttpHeaders = headers),\n                WebViewNavigator(coroutineScope),\n            ),\n        )\n    }\n\n    val currentWindow = windowStack.lastItemOrNull!!\n    val navigator = currentWindow.navigator\n\n    val uriHandler = LocalUriHandler.current\n    val scope = rememberCoroutineScope()\n\n    var currentUrl by remember { mutableStateOf(url) }\n    var showCloudflareHelp by remember { mutableStateOf(false) }\n    var isActive by remember { mutableStateOf(true) }\n\n    DisposableEffect(Unit) {\n        onDispose { isActive = false }\n    }\n\n    val webClient = remember {\n        object : AccompanistWebViewClient() {\n            override fun onPageStarted(view: WebView, url: String?, favicon: Bitmap?) {\n                super.onPageStarted(view, url, favicon)\n                url?.let {\n                    currentUrl = it\n                    onUrlChange(it)\n                }\n            }\n\n            override fun onPageFinished(view: WebView, url: String?) {\n                super.onPageFinished(view, url)\n                scope.launch {\n                    val html = view.getHtml()\n                    showCloudflareHelp = \"window._cf_chl_opt\" in html || \"Ray ID is\" in html\n                }\n            }\n\n            override fun doUpdateVisitedHistory(\n                view: WebView,\n                url: String?,\n                isReload: Boolean,\n            ) {\n                super.doUpdateVisitedHistory(view, url, isReload)\n                url?.let {\n                    currentUrl = it\n                    onUrlChange(it)\n                }\n            }\n\n            override fun shouldOverrideUrlLoading(\n                view: WebView?,\n                request: WebResourceRequest?,\n            ): Boolean {\n                val url = request?.url?.toString() ?: return false\n\n                // Ignore intents urls\n                if (url.startsWith(\"intent://\")) return true\n\n                // Only open valid web urls\n                if (url.startsWith(\"http\") || url.startsWith(\"https\")) {\n                    if (url != view?.url) {\n                        view?.loadUrl(url, headers)\n                        return true\n                    }\n                }\n\n                return false\n            }\n        }\n    }\n\n    val webChromeClient = remember {\n        object : AccompanistWebChromeClient() {\n            override fun onCreateWindow(\n                view: WebView,\n                isDialog: Boolean,\n                isUserGesture: Boolean,\n                resultMsg: Message,\n            ): Boolean {\n                // if it wasn't initiated by a user gesture, we should ignore it like a normal browser would\n                if (isUserGesture) {\n                    windowStack.push(WebViewWindow(resultMsg, WebViewNavigator(coroutineScope)))\n                    return true\n                }\n                return false\n            }\n\n            override fun onJsAlert(view: WebView, url: String?, message: String?, result: JsResult): Boolean {\n                if (!isActive) {\n                    result.confirm()\n                    return true\n                }\n                return super.onJsAlert(view, url, message, result)\n            }\n\n            override fun onJsConfirm(view: WebView, url: String?, message: String?, result: JsResult): Boolean {\n                if (!isActive) {\n                    result.cancel()\n                    return true\n                }\n                return super.onJsConfirm(view, url, message, result)\n            }\n\n            override fun onJsPrompt(\n                view: WebView,\n                url: String?,\n                message: String?,\n                defaultValue: String?,\n                result: JsPromptResult,\n            ): Boolean {\n                if (!isActive) {\n                    result.cancel()\n                    return true\n                }\n                return super.onJsPrompt(view, url, message, defaultValue, result)\n            }\n        }\n    }\n\n    fun initializePopup(webView: WebView, message: Message): WebView {\n        val transport = message.obj as WebView.WebViewTransport\n        transport.webView = webView\n        message.sendToTarget()\n        return webView\n    }\n\n    val popState = remember<() -> Unit> {\n        {\n            if (windowStack.size == 1) {\n                onNavigateUp()\n            } else {\n                windowStack.pop()\n            }\n        }\n    }\n\n    BackHandler(windowStack.size > 1, popState)\n\n    Scaffold(\n        topBar = {\n            Box {\n                Column {\n                    AppBar(\n                        title = currentWindow.state.pageTitle ?: initialTitle,\n                        subtitle = currentUrl,\n                        navigateUp = onNavigateUp,\n                        navigationIcon = Icons.Outlined.Close,\n                        actions = {\n                            AppBarActions(\n                                persistentListOf(\n                                    AppBar.Action(\n                                        title = stringResource(MR.strings.action_webview_back),\n                                        icon = Icons.AutoMirrored.Outlined.ArrowBack,\n                                        onClick = {\n                                            if (navigator.canGoBack) {\n                                                navigator.navigateBack()\n                                            }\n                                        },\n                                        enabled = navigator.canGoBack,\n                                    ),\n                                    AppBar.Action(\n                                        title = stringResource(MR.strings.action_webview_forward),\n                                        icon = Icons.AutoMirrored.Outlined.ArrowForward,\n                                        onClick = {\n                                            if (navigator.canGoForward) {\n                                                navigator.navigateForward()\n                                            }\n                                        },\n                                        enabled = navigator.canGoForward,\n                                    ),\n                                    AppBar.OverflowAction(\n                                        title = stringResource(MR.strings.action_webview_refresh),\n                                        onClick = { navigator.reload() },\n                                    ),\n                                    AppBar.OverflowAction(\n                                        title = stringResource(MR.strings.action_share),\n                                        onClick = { onShare(currentUrl) },\n                                    ),\n                                    AppBar.OverflowAction(\n                                        title = stringResource(MR.strings.action_open_in_browser),\n                                        onClick = { onOpenInBrowser(currentUrl) },\n                                    ),\n                                    AppBar.OverflowAction(\n                                        title = stringResource(MR.strings.pref_clear_cookies),\n                                        onClick = { onClearCookies(currentUrl) },\n                                    ),\n                                ).builder().apply {\n                                    if (windowStack.size > 1) {\n                                        add(\n                                            0,\n                                            AppBar.Action(\n                                                title = stringResource(MR.strings.action_webview_close_tab),\n                                                icon = ImageVector.vectorResource(R.drawable.ic_tab_close_24px),\n                                                onClick = popState,\n                                            ),\n                                        )\n                                    }\n                                }.build(),\n                            )\n                        },\n                    )\n\n                    if (showCloudflareHelp) {\n                        Surface(\n                            modifier = Modifier.padding(8.dp),\n                        ) {\n                            WarningBanner(\n                                textRes = MR.strings.information_cloudflare_help,\n                                modifier = Modifier\n                                    .clip(MaterialTheme.shapes.small)\n                                    .clickable {\n                                        uriHandler.openUri(\n                                            \"https://mihon.app/docs/guides/troubleshooting/#cloudflare\",\n                                        )\n                                    },\n                            )\n                        }\n                    }\n                }\n                when (val loadingState = currentWindow.state.loadingState) {\n                    is LoadingState.Initializing -> LinearProgressIndicator(\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .align(Alignment.BottomCenter),\n                    )\n                    is LoadingState.Loading -> LinearProgressIndicator(\n                        progress = { loadingState.progress },\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .align(Alignment.BottomCenter),\n                    )\n                    else -> {}\n                }\n            }\n        },\n    ) { contentPadding ->\n        // We need to key the WebView composable to the window object since simply updating the WebView composable will\n        // not cause it to re-invoke the WebView factory and render the new current window's WebView. This lets us\n        // completely reset the WebView composable when the current window switches.\n        key(currentWindow) {\n            WebView(\n                state = currentWindow.state,\n                modifier = Modifier\n                    .fillMaxSize()\n                    .padding(contentPadding),\n                navigator = navigator,\n                onCreated = { webView ->\n                    webView.setDefaultSettings()\n\n                    // Debug mode (chrome://inspect/#devices)\n                    if (BuildConfig.DEBUG &&\n                        0 != webView.context.applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE\n                    ) {\n                        WebView.setWebContentsDebuggingEnabled(true)\n                    }\n\n                    headers[\"user-agent\"]?.let {\n                        webView.settings.userAgentString = it\n                    }\n                },\n                onDispose = { webView ->\n                    val window = windowStack.items.find { it.webView == webView }\n                    if (window == null) {\n                        // If we couldn't find any window on the stack that owns this WebView, it means that we can\n                        // safely dispose of it because the window containing it has been closed.\n                        webView.destroy()\n                    } else {\n                        // The composable is being disposed but the WebView object is not.\n                        // When the WebView element is recomposed, we will want the WebView to resume from its state\n                        // before it was unmounted, we won't want it to reset back to its original target.\n                        window.state.content = WebContent.NavigatorOnly\n                    }\n                },\n                client = webClient,\n                chromeClient = webChromeClient,\n                factory = { context ->\n                    currentWindow.webView\n                        ?: WebView(context).also { webView ->\n                            currentWindow.webView = webView\n                            currentWindow.popupMessage?.let {\n                                initializePopup(webView, it)\n                            }\n                        }\n                },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/App.kt",
    "content": "package eu.kanade.tachiyomi\n\nimport android.annotation.SuppressLint\nimport android.app.Application\nimport android.app.PendingIntent\nimport android.content.BroadcastReceiver\nimport android.content.Context\nimport android.content.Intent\nimport android.content.IntentFilter\nimport android.os.Build\nimport android.os.Looper\nimport android.webkit.WebView\nimport androidx.core.content.ContextCompat\nimport androidx.lifecycle.DefaultLifecycleObserver\nimport androidx.lifecycle.LifecycleOwner\nimport androidx.lifecycle.ProcessLifecycleOwner\nimport androidx.lifecycle.lifecycleScope\nimport coil3.ImageLoader\nimport coil3.SingletonImageLoader\nimport coil3.memory.MemoryCache\nimport coil3.network.okhttp.OkHttpNetworkFetcherFactory\nimport coil3.request.allowRgb565\nimport coil3.request.crossfade\nimport coil3.util.DebugLogger\nimport dev.mihon.injekt.patchInjekt\nimport eu.kanade.domain.DomainModule\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.setAppCompatDelegateThemeMode\nimport eu.kanade.tachiyomi.core.security.PrivacyPreferences\nimport eu.kanade.tachiyomi.crash.CrashActivity\nimport eu.kanade.tachiyomi.crash.GlobalExceptionHandler\nimport eu.kanade.tachiyomi.data.coil.BufferedSourceFetcher\nimport eu.kanade.tachiyomi.data.coil.MangaCoverFetcher\nimport eu.kanade.tachiyomi.data.coil.MangaCoverKeyer\nimport eu.kanade.tachiyomi.data.coil.MangaKeyer\nimport eu.kanade.tachiyomi.data.coil.TachiyomiImageDecoder\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.di.AppModule\nimport eu.kanade.tachiyomi.di.PreferenceModule\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.NetworkPreferences\nimport eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.GLUtil\nimport eu.kanade.tachiyomi.util.system.WebViewUtil\nimport eu.kanade.tachiyomi.util.system.animatorDurationScale\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.notify\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport logcat.AndroidLogcatLogger\nimport logcat.LogPriority\nimport logcat.LogcatLogger\nimport mihon.core.migration.Migrator\nimport mihon.core.migration.migrations.migrations\nimport mihon.telemetry.TelemetryConfig\nimport org.conscrypt.Conscrypt\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.widget.WidgetManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\nimport java.security.Security\n\nclass App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factory {\n\n    private val basePreferences: BasePreferences by injectLazy()\n    private val privacyPreferences: PrivacyPreferences by injectLazy()\n    private val networkPreferences: NetworkPreferences by injectLazy()\n\n    private val disableIncognitoReceiver = DisableIncognitoReceiver()\n\n    @SuppressLint(\"LaunchActivityFromNotification\")\n    override fun onCreate() {\n        super<Application>.onCreate()\n        patchInjekt()\n        TelemetryConfig.init(applicationContext)\n\n        GlobalExceptionHandler.initialize(applicationContext, CrashActivity::class.java)\n\n        // TLS 1.3 support for Android < 10\n        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {\n            Security.insertProviderAt(Conscrypt.newProvider(), 1)\n        }\n\n        // Avoid potential crashes\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {\n            val process = getProcessName()\n            if (packageName != process) WebView.setDataDirectorySuffix(process)\n        }\n\n        Injekt.importModule(PreferenceModule(this))\n        Injekt.importModule(AppModule(this))\n        Injekt.importModule(DomainModule())\n\n        setupNotificationChannels()\n\n        ProcessLifecycleOwner.get().lifecycle.addObserver(this)\n\n        val scope = ProcessLifecycleOwner.get().lifecycleScope\n\n        // Show notification to disable Incognito Mode when it's enabled\n        basePreferences.incognitoMode.changes()\n            .onEach { enabled ->\n                if (enabled) {\n                    disableIncognitoReceiver.register()\n                    notify(\n                        Notifications.ID_INCOGNITO_MODE,\n                        Notifications.CHANNEL_INCOGNITO_MODE,\n                    ) {\n                        setContentTitle(stringResource(MR.strings.pref_incognito_mode))\n                        setContentText(stringResource(MR.strings.notification_incognito_text))\n                        setSmallIcon(R.drawable.ic_glasses_24dp)\n                        setOngoing(true)\n\n                        val pendingIntent = PendingIntent.getBroadcast(\n                            this@App,\n                            0,\n                            Intent(ACTION_DISABLE_INCOGNITO_MODE).setPackage(BuildConfig.APPLICATION_ID),\n                            PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE,\n                        )\n                        setContentIntent(pendingIntent)\n                    }\n                } else {\n                    disableIncognitoReceiver.unregister()\n                    cancelNotification(Notifications.ID_INCOGNITO_MODE)\n                }\n            }\n            .launchIn(scope)\n\n        privacyPreferences.analytics\n            .changes()\n            .onEach(TelemetryConfig::setAnalyticsEnabled)\n            .launchIn(scope)\n\n        privacyPreferences.crashlytics\n            .changes()\n            .onEach(TelemetryConfig::setCrashlyticsEnabled)\n            .launchIn(scope)\n\n        basePreferences.hardwareBitmapThreshold.let { preference ->\n            if (!preference.isSet()) preference.set(GLUtil.DEVICE_TEXTURE_LIMIT)\n        }\n\n        basePreferences.hardwareBitmapThreshold.changes()\n            .onEach { ImageUtil.hardwareBitmapThreshold = it }\n            .launchIn(scope)\n\n        setAppCompatDelegateThemeMode(Injekt.get<UiPreferences>().themeMode.get())\n\n        // Updates widget update\n        WidgetManager(Injekt.get(), Injekt.get()).apply { init(scope) }\n\n        if (!LogcatLogger.isInstalled) {\n            val minLogPriority = when {\n                networkPreferences.verboseLogging.get() -> LogPriority.VERBOSE\n                BuildConfig.DEBUG -> LogPriority.DEBUG\n                else -> LogPriority.INFO\n            }\n            LogcatLogger.install()\n            LogcatLogger.loggers += AndroidLogcatLogger(minLogPriority)\n        }\n\n        initializeMigrator()\n    }\n\n    private fun initializeMigrator() {\n        val preferenceStore = Injekt.get<PreferenceStore>()\n        val preference = preferenceStore.getInt(Preference.appStateKey(\"last_version_code\"), 0)\n        logcat { \"Migration from ${preference.get()} to ${BuildConfig.VERSION_CODE}\" }\n        Migrator.initialize(\n            old = preference.get(),\n            new = BuildConfig.VERSION_CODE,\n            migrations = migrations,\n            onMigrationComplete = {\n                logcat { \"Updating last version to ${BuildConfig.VERSION_CODE}\" }\n                preference.set(BuildConfig.VERSION_CODE)\n            },\n        )\n    }\n\n    override fun newImageLoader(context: Context): ImageLoader {\n        return ImageLoader.Builder(this).apply {\n            val callFactoryLazy = lazy { Injekt.get<NetworkHelper>().client }\n            components {\n                // NetworkFetcher.Factory\n                add(OkHttpNetworkFetcherFactory(callFactoryLazy::value))\n                // Decoder.Factory\n                add(TachiyomiImageDecoder.Factory())\n                // Fetcher.Factory\n                add(BufferedSourceFetcher.Factory())\n                add(MangaCoverFetcher.MangaCoverFactory(callFactoryLazy))\n                add(MangaCoverFetcher.MangaFactory(callFactoryLazy))\n                // Keyer\n                add(MangaCoverKeyer())\n                add(MangaKeyer())\n            }\n\n            memoryCache(\n                MemoryCache.Builder()\n                    .maxSizePercent(context)\n                    .build(),\n            )\n\n            crossfade((300 * this@App.animatorDurationScale).toInt())\n            allowRgb565(DeviceUtil.isLowRamDevice(this@App))\n            if (networkPreferences.verboseLogging.get()) logger(DebugLogger())\n\n            // Coil spawns a new thread for every image load by default\n            fetcherCoroutineContext(Dispatchers.IO.limitedParallelism(8))\n            decoderCoroutineContext(Dispatchers.IO.limitedParallelism(3))\n        }\n            .build()\n    }\n\n    override fun onStart(owner: LifecycleOwner) {\n        SecureActivityDelegate.onApplicationStart()\n    }\n\n    override fun onStop(owner: LifecycleOwner) {\n        SecureActivityDelegate.onApplicationStopped()\n    }\n\n    override fun getPackageName(): String {\n        try {\n            // Override the value passed as X-Requested-With in WebView requests\n            val stackTrace = Looper.getMainLooper().thread.stackTrace\n            val isChromiumCall = stackTrace.any { trace ->\n                trace.className.lowercase() in setOf(\"org.chromium.base.buildinfo\", \"org.chromium.base.apkinfo\") &&\n                    trace.methodName.lowercase() in setOf(\"getall\", \"getpackagename\", \"<init>\")\n            }\n\n            if (isChromiumCall) return WebViewUtil.spoofedPackageName(applicationContext)\n        } catch (_: Exception) {\n        }\n\n        return super.getPackageName()\n    }\n\n    private fun setupNotificationChannels() {\n        try {\n            Notifications.createChannels(this)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to modify notification channels\" }\n        }\n    }\n\n    private inner class DisableIncognitoReceiver : BroadcastReceiver() {\n        private var registered = false\n\n        override fun onReceive(context: Context, intent: Intent) {\n            basePreferences.incognitoMode.set(false)\n        }\n\n        fun register() {\n            if (!registered) {\n                ContextCompat.registerReceiver(\n                    this@App,\n                    this,\n                    IntentFilter(ACTION_DISABLE_INCOGNITO_MODE),\n                    ContextCompat.RECEIVER_NOT_EXPORTED,\n                )\n                registered = true\n            }\n        }\n\n        fun unregister() {\n            if (registered) {\n                unregisterReceiver(this)\n                registered = false\n            }\n        }\n    }\n}\n\nprivate const val ACTION_DISABLE_INCOGNITO_MODE = \"tachi.action.DISABLE_INCOGNITO_MODE\"\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/AppInfo.kt",
    "content": "package eu.kanade.tachiyomi\n\nimport tachiyomi.core.common.util.system.ImageUtil\n\n/**\n * Used by extensions.\n */\n@Suppress(\"UNUSED\")\nobject AppInfo {\n    /**\n     * Version code of the host application. May be useful for sharing as User-Agent information.\n     * Note that this value differs between forks so logic should not rely on it.\n     *\n     * @since extension-lib 1.3\n     */\n    fun getVersionCode(): Int = BuildConfig.VERSION_CODE\n\n    /**\n     * Version name of the host application. May be useful for sharing as User-Agent information.\n     * Note that this value differs between forks so logic should not rely on it.\n     *\n     * @since extension-lib 1.3\n     */\n    fun getVersionName(): String = BuildConfig.VERSION_NAME\n\n    /**\n     * A list of supported image MIME types by the reader.\n     * e.g. [\"image/jpeg\", \"image/png\", ...]\n     *\n     * @since extension-lib 1.5\n     */\n    fun getSupportedImageMimeTypes(): List<String> = ImageUtil.ImageType.entries.map { it.mime }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/crash/CrashActivity.kt",
    "content": "package eu.kanade.tachiyomi.crash\n\nimport android.content.Intent\nimport android.os.Bundle\nimport androidx.core.view.WindowCompat\nimport eu.kanade.presentation.crash.CrashScreen\nimport eu.kanade.tachiyomi.ui.base.activity.BaseActivity\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.util.view.setComposeContent\n\nclass CrashActivity : BaseActivity() {\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n\n        WindowCompat.setDecorFitsSystemWindows(window, false)\n\n        val exception = GlobalExceptionHandler.getThrowableFromIntent(intent)\n        setComposeContent {\n            CrashScreen(\n                exception = exception,\n                onRestartClick = {\n                    finishAffinity()\n                    startActivity(Intent(this@CrashActivity, MainActivity::class.java))\n                },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/crash/GlobalExceptionHandler.kt",
    "content": "package eu.kanade.tachiyomi.crash\n\nimport android.content.Context\nimport android.content.Intent\nimport kotlinx.serialization.KSerializer\nimport kotlinx.serialization.descriptors.PrimitiveKind\nimport kotlinx.serialization.descriptors.PrimitiveSerialDescriptor\nimport kotlinx.serialization.descriptors.SerialDescriptor\nimport kotlinx.serialization.encoding.Decoder\nimport kotlinx.serialization.encoding.Encoder\nimport kotlinx.serialization.json.Json\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\n\nclass GlobalExceptionHandler private constructor(\n    private val applicationContext: Context,\n    private val defaultHandler: Thread.UncaughtExceptionHandler,\n    private val activityToBeLaunched: Class<*>,\n) : Thread.UncaughtExceptionHandler {\n\n    object ThrowableSerializer : KSerializer<Throwable> {\n        override val descriptor: SerialDescriptor =\n            PrimitiveSerialDescriptor(\"Throwable\", PrimitiveKind.STRING)\n\n        override fun deserialize(decoder: Decoder): Throwable =\n            Throwable(message = decoder.decodeString())\n\n        override fun serialize(encoder: Encoder, value: Throwable) =\n            encoder.encodeString(value.stackTraceToString())\n    }\n\n    override fun uncaughtException(thread: Thread, exception: Throwable) {\n        logcat(priority = LogPriority.ERROR, throwable = exception)\n        launchActivity(applicationContext, activityToBeLaunched, exception)\n        defaultHandler.uncaughtException(thread, exception)\n    }\n\n    private fun launchActivity(\n        applicationContext: Context,\n        activity: Class<*>,\n        exception: Throwable,\n    ) {\n        val intent = Intent(applicationContext, activity).apply {\n            putExtra(INTENT_EXTRA, Json.encodeToString(ThrowableSerializer, exception))\n            addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)\n            addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)\n        }\n        applicationContext.startActivity(intent)\n    }\n\n    companion object {\n        private const val INTENT_EXTRA = \"Throwable\"\n\n        fun initialize(\n            applicationContext: Context,\n            activityToBeLaunched: Class<*>,\n        ) {\n            val handler = GlobalExceptionHandler(\n                applicationContext,\n                Thread.getDefaultUncaughtExceptionHandler() as Thread.UncaughtExceptionHandler,\n                activityToBeLaunched,\n            )\n            Thread.setDefaultUncaughtExceptionHandler(handler)\n        }\n\n        fun getThrowableFromIntent(intent: Intent): Throwable? {\n            return try {\n                Json.decodeFromString(ThrowableSerializer, intent.getStringExtra(INTENT_EXTRA)!!)\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e) { \"Wasn't able to retrieve throwable from intent\" }\n                null\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupDecoder.kt",
    "content": "package eu.kanade.tachiyomi.data.backup\n\nimport android.content.Context\nimport android.net.Uri\nimport eu.kanade.tachiyomi.data.backup.models.Backup\nimport kotlinx.serialization.SerializationException\nimport kotlinx.serialization.protobuf.ProtoBuf\nimport okio.buffer\nimport okio.gzip\nimport okio.source\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.IOException\n\nclass BackupDecoder(\n    private val context: Context,\n    private val parser: ProtoBuf = Injekt.get(),\n) {\n    /**\n     * Decode a potentially-gzipped backup.\n     */\n    fun decode(uri: Uri): Backup {\n        return context.contentResolver.openInputStream(uri)!!.use { inputStream ->\n            val source = inputStream.source().buffer()\n\n            val peeked = source.peek().apply {\n                require(2)\n            }\n            val id1id2 = peeked.readShort()\n            val backupString = when (id1id2.toInt()) {\n                0x1f8b -> source.gzip().buffer() // 0x1f8b is gzip magic bytes\n                MAGIC_JSON_SIGNATURE1, MAGIC_JSON_SIGNATURE2, MAGIC_JSON_SIGNATURE3 -> {\n                    throw IOException(context.stringResource(MR.strings.invalid_backup_file_json))\n                }\n                else -> source\n            }.use { it.readByteArray() }\n\n            try {\n                parser.decodeFromByteArray(Backup.serializer(), backupString)\n            } catch (_: SerializationException) {\n                throw IOException(context.stringResource(MR.strings.invalid_backup_file_unknown))\n            }\n        }\n    }\n\n    companion object {\n        private const val MAGIC_JSON_SIGNATURE1 = 0x7b7d // `{}`\n        private const val MAGIC_JSON_SIGNATURE2 = 0x7b22 // `{\"`\n        private const val MAGIC_JSON_SIGNATURE3 = 0x7b0a // `{\\n`\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupFileValidator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup\n\nimport android.content.Context\nimport android.net.Uri\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass BackupFileValidator(\n    private val context: Context,\n\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val trackerManager: TrackerManager = Injekt.get(),\n) {\n\n    /**\n     * Checks for critical backup file data.\n     *\n     * @return List of missing sources or missing trackers.\n     */\n    fun validate(uri: Uri): Results {\n        val backup = try {\n            BackupDecoder(context).decode(uri)\n        } catch (e: Exception) {\n            throw IllegalStateException(e)\n        }\n\n        val sources = backup.backupSources.associate { it.sourceId to it.name }\n        val missingSources = sources\n            .filter { sourceManager.get(it.key) == null }\n            .values.map {\n                val id = it.toLongOrNull()\n                if (id == null) {\n                    it\n                } else {\n                    sourceManager.getOrStub(id).toString()\n                }\n            }\n            .distinct()\n            .sorted()\n\n        val trackers = backup.backupManga\n            .flatMap { it.tracking }\n            .map { it.syncId }\n            .distinct()\n        val missingTrackers = trackers\n            .mapNotNull { trackerManager.get(it.toLong()) }\n            .filter { !it.isLoggedIn }\n            .map { it.name }\n            .sorted()\n\n        return Results(missingSources, missingTrackers)\n    }\n\n    data class Results(\n        val missingSources: List<String>,\n        val missingTrackers: List<String>,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt",
    "content": "package eu.kanade.tachiyomi.data.backup\n\nimport android.content.Context\nimport android.graphics.BitmapFactory\nimport androidx.core.app.NotificationCompat\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.storage.getUriCompat\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport eu.kanade.tachiyomi.util.system.notify\nimport tachiyomi.core.common.i18n.pluralStringResource\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.storage.displayablePath\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport java.io.File\nimport java.util.concurrent.TimeUnit\n\nclass BackupNotifier(private val context: Context) {\n\n    private val preferences: SecurityPreferences by injectLazy()\n\n    private val progressNotificationBuilder = context.notificationBuilder(\n        Notifications.CHANNEL_BACKUP_RESTORE_PROGRESS,\n    ) {\n        setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher))\n        setSmallIcon(R.drawable.ic_mihon)\n        setAutoCancel(false)\n        setOngoing(true)\n        setOnlyAlertOnce(true)\n    }\n\n    private val completeNotificationBuilder = context.notificationBuilder(\n        Notifications.CHANNEL_BACKUP_RESTORE_COMPLETE,\n    ) {\n        setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher))\n        setSmallIcon(R.drawable.ic_mihon)\n        setAutoCancel(false)\n    }\n\n    private fun NotificationCompat.Builder.show(id: Int) {\n        context.notify(id, build())\n    }\n\n    fun showBackupProgress(): NotificationCompat.Builder {\n        val builder = with(progressNotificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.creating_backup))\n\n            setProgress(0, 0, true)\n        }\n\n        builder.show(Notifications.ID_BACKUP_PROGRESS)\n\n        return builder\n    }\n\n    fun showBackupError(error: String?) {\n        context.cancelNotification(Notifications.ID_BACKUP_PROGRESS)\n\n        with(completeNotificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.creating_backup_error))\n            setContentText(error)\n\n            show(Notifications.ID_BACKUP_COMPLETE)\n        }\n    }\n\n    fun showBackupComplete(file: UniFile) {\n        context.cancelNotification(Notifications.ID_BACKUP_PROGRESS)\n\n        with(completeNotificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.backup_created))\n            setContentText(file.displayablePath)\n\n            clearActions()\n            addAction(\n                R.drawable.ic_share_24dp,\n                context.stringResource(MR.strings.action_share),\n                NotificationReceiver.shareBackupPendingActivity(context, file.uri),\n            )\n\n            show(Notifications.ID_BACKUP_COMPLETE)\n        }\n    }\n\n    fun showRestoreProgress(\n        content: String = \"\",\n        progress: Int = 0,\n        maxAmount: Int = 100,\n        sync: Boolean = false,\n    ): NotificationCompat.Builder {\n        val builder = with(progressNotificationBuilder) {\n            val contentTitle = if (sync) {\n                context.stringResource(MR.strings.syncing_library)\n            } else {\n                context.stringResource(MR.strings.restoring_backup)\n            }\n            setContentTitle(contentTitle)\n\n            if (!preferences.hideNotificationContent.get()) {\n                setContentText(content)\n            }\n\n            setProgress(maxAmount, progress, false)\n            setOnlyAlertOnce(true)\n\n            clearActions()\n            addAction(\n                R.drawable.ic_close_24dp,\n                context.stringResource(MR.strings.action_cancel),\n                NotificationReceiver.cancelRestorePendingBroadcast(context, Notifications.ID_RESTORE_PROGRESS),\n            )\n        }\n\n        builder.show(Notifications.ID_RESTORE_PROGRESS)\n\n        return builder\n    }\n\n    fun showRestoreError(error: String?) {\n        context.cancelNotification(Notifications.ID_RESTORE_PROGRESS)\n\n        with(completeNotificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.restoring_backup_error))\n            setContentText(error)\n\n            show(Notifications.ID_RESTORE_COMPLETE)\n        }\n    }\n\n    fun showRestoreComplete(\n        time: Long,\n        errorCount: Int,\n        path: String?,\n        file: String?,\n        sync: Boolean,\n    ) {\n        val contentTitle = if (sync) {\n            context.stringResource(MR.strings.library_sync_complete)\n        } else {\n            context.stringResource(MR.strings.restore_completed)\n        }\n\n        context.cancelNotification(Notifications.ID_RESTORE_PROGRESS)\n\n        val timeString = context.stringResource(\n            MR.strings.restore_duration,\n            TimeUnit.MILLISECONDS.toMinutes(time),\n            TimeUnit.MILLISECONDS.toSeconds(time) - TimeUnit.MINUTES.toSeconds(\n                TimeUnit.MILLISECONDS.toMinutes(time),\n            ),\n        )\n\n        with(completeNotificationBuilder) {\n            setContentTitle(contentTitle)\n            setContentText(\n                context.pluralStringResource(\n                    MR.plurals.restore_completed_message,\n                    errorCount,\n                    timeString,\n                    errorCount,\n                ),\n            )\n\n            clearActions()\n            if (errorCount > 0 && !path.isNullOrEmpty() && !file.isNullOrEmpty()) {\n                val destFile = File(path, file)\n                val uri = destFile.getUriCompat(context)\n\n                val errorLogIntent = NotificationReceiver.openErrorLogPendingActivity(context, uri)\n                setContentIntent(errorLogIntent)\n                addAction(\n                    R.drawable.ic_folder_24dp,\n                    context.stringResource(MR.strings.action_show_errors),\n                    errorLogIntent,\n                )\n            }\n\n            show(Notifications.ID_RESTORE_COMPLETE)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreateJob.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create\n\nimport android.content.Context\nimport android.content.pm.ServiceInfo\nimport android.net.Uri\nimport android.os.Build\nimport androidx.core.net.toUri\nimport androidx.work.BackoffPolicy\nimport androidx.work.Constraints\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingPeriodicWorkPolicy\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.ForegroundInfo\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.PeriodicWorkRequestBuilder\nimport androidx.work.WorkerParameters\nimport androidx.work.workDataOf\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.data.backup.BackupNotifier\nimport eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.isRunning\nimport eu.kanade.tachiyomi.util.system.setForegroundSafely\nimport eu.kanade.tachiyomi.util.system.workManager\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.backup.service.BackupPreferences\nimport tachiyomi.domain.storage.service.StorageManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.concurrent.TimeUnit\n\nclass BackupCreateJob(private val context: Context, workerParams: WorkerParameters) :\n    CoroutineWorker(context, workerParams) {\n\n    private val notifier = BackupNotifier(context)\n\n    override suspend fun doWork(): Result {\n        val isAutoBackup = inputData.getBoolean(IS_AUTO_BACKUP_KEY, true)\n\n        if (isAutoBackup && BackupRestoreJob.isRunning(context)) return Result.retry()\n\n        val uri = inputData.getString(LOCATION_URI_KEY)?.toUri()\n            ?: getAutomaticBackupLocation()\n            ?: return Result.failure()\n\n        setForegroundSafely()\n\n        val options = inputData.getBooleanArray(OPTIONS_KEY)?.let { BackupOptions.fromBooleanArray(it) }\n            ?: BackupOptions()\n\n        return try {\n            val location = BackupCreator(context, isAutoBackup).backup(uri, options)\n            if (!isAutoBackup) {\n                notifier.showBackupComplete(UniFile.fromUri(context, location.toUri())!!)\n            }\n            Result.success()\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            if (!isAutoBackup) notifier.showBackupError(e.message)\n            Result.failure()\n        } finally {\n            context.cancelNotification(Notifications.ID_BACKUP_PROGRESS)\n        }\n    }\n\n    override suspend fun getForegroundInfo(): ForegroundInfo {\n        return ForegroundInfo(\n            Notifications.ID_BACKUP_PROGRESS,\n            notifier.showBackupProgress().build(),\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n                ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC\n            } else {\n                0\n            },\n        )\n    }\n\n    private fun getAutomaticBackupLocation(): Uri? {\n        val storageManager = Injekt.get<StorageManager>()\n        return storageManager.getAutomaticBackupsDirectory()?.uri\n    }\n\n    companion object {\n        fun isManualJobRunning(context: Context): Boolean {\n            return context.workManager.isRunning(TAG_MANUAL)\n        }\n\n        fun setupTask(context: Context, prefInterval: Int? = null) {\n            val backupPreferences = Injekt.get<BackupPreferences>()\n            val interval = prefInterval ?: backupPreferences.backupInterval.get()\n            if (interval > 0) {\n                val constraints = Constraints(\n                    requiresBatteryNotLow = true,\n                )\n\n                val request = PeriodicWorkRequestBuilder<BackupCreateJob>(\n                    interval.toLong(),\n                    TimeUnit.HOURS,\n                    10,\n                    TimeUnit.MINUTES,\n                )\n                    .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 10, TimeUnit.MINUTES)\n                    .addTag(TAG_AUTO)\n                    .setConstraints(constraints)\n                    .setInputData(workDataOf(IS_AUTO_BACKUP_KEY to true))\n                    .build()\n\n                context.workManager.enqueueUniquePeriodicWork(TAG_AUTO, ExistingPeriodicWorkPolicy.UPDATE, request)\n            } else {\n                context.workManager.cancelUniqueWork(TAG_AUTO)\n            }\n        }\n\n        fun startNow(context: Context, uri: Uri, options: BackupOptions) {\n            val inputData = workDataOf(\n                IS_AUTO_BACKUP_KEY to false,\n                LOCATION_URI_KEY to uri.toString(),\n                OPTIONS_KEY to options.asBooleanArray(),\n            )\n            val request = OneTimeWorkRequestBuilder<BackupCreateJob>()\n                .addTag(TAG_MANUAL)\n                .setInputData(inputData)\n                .build()\n            context.workManager.enqueueUniqueWork(TAG_MANUAL, ExistingWorkPolicy.KEEP, request)\n        }\n    }\n}\n\nprivate const val TAG_AUTO = \"BackupCreator\"\nprivate const val TAG_MANUAL = \"$TAG_AUTO:manual\"\n\nprivate const val IS_AUTO_BACKUP_KEY = \"is_auto_backup\" // Boolean\nprivate const val LOCATION_URI_KEY = \"location_uri\" // String\nprivate const val OPTIONS_KEY = \"options\" // BooleanArray\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create\n\nimport android.content.Context\nimport android.net.Uri\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.backup.BackupFileValidator\nimport eu.kanade.tachiyomi.data.backup.create.creators.CategoriesBackupCreator\nimport eu.kanade.tachiyomi.data.backup.create.creators.ExtensionRepoBackupCreator\nimport eu.kanade.tachiyomi.data.backup.create.creators.MangaBackupCreator\nimport eu.kanade.tachiyomi.data.backup.create.creators.PreferenceBackupCreator\nimport eu.kanade.tachiyomi.data.backup.create.creators.SourcesBackupCreator\nimport eu.kanade.tachiyomi.data.backup.models.Backup\nimport eu.kanade.tachiyomi.data.backup.models.BackupCategory\nimport eu.kanade.tachiyomi.data.backup.models.BackupExtensionRepos\nimport eu.kanade.tachiyomi.data.backup.models.BackupManga\nimport eu.kanade.tachiyomi.data.backup.models.BackupPreference\nimport eu.kanade.tachiyomi.data.backup.models.BackupSource\nimport eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences\nimport kotlinx.serialization.protobuf.ProtoBuf\nimport logcat.LogPriority\nimport okio.buffer\nimport okio.gzip\nimport okio.sink\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.backup.service.BackupPreferences\nimport tachiyomi.domain.manga.interactor.GetFavorites\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.FileOutputStream\nimport java.text.SimpleDateFormat\nimport java.time.Instant\nimport java.util.Date\nimport java.util.Locale\n\nclass BackupCreator(\n    private val context: Context,\n    private val isAutoBackup: Boolean,\n\n    private val parser: ProtoBuf = Injekt.get(),\n    private val getFavorites: GetFavorites = Injekt.get(),\n    private val backupPreferences: BackupPreferences = Injekt.get(),\n    private val mangaRepository: MangaRepository = Injekt.get(),\n\n    private val categoriesBackupCreator: CategoriesBackupCreator = CategoriesBackupCreator(),\n    private val mangaBackupCreator: MangaBackupCreator = MangaBackupCreator(),\n    private val preferenceBackupCreator: PreferenceBackupCreator = PreferenceBackupCreator(),\n    private val extensionRepoBackupCreator: ExtensionRepoBackupCreator = ExtensionRepoBackupCreator(),\n    private val sourcesBackupCreator: SourcesBackupCreator = SourcesBackupCreator(),\n) {\n\n    suspend fun backup(uri: Uri, options: BackupOptions): String {\n        var file: UniFile? = null\n        try {\n            file = if (isAutoBackup) {\n                // Get dir of file and create\n                val dir = UniFile.fromUri(context, uri)\n\n                // Delete older backups\n                dir?.listFiles { _, filename -> FILENAME_REGEX.matches(filename) }\n                    .orEmpty()\n                    .sortedByDescending { it.name }\n                    .drop(MAX_AUTO_BACKUPS - 1)\n                    .forEach { it.delete() }\n\n                // Create new file to place backup\n                dir?.createFile(getFilename())\n            } else {\n                UniFile.fromUri(context, uri)\n            }\n\n            if (file == null || !file.isFile) {\n                throw IllegalStateException(context.stringResource(MR.strings.create_backup_file_error))\n            }\n\n            val nonFavoriteManga = if (options.readEntries) mangaRepository.getReadMangaNotInLibrary() else emptyList()\n            val backupManga = backupMangas(getFavorites.await() + nonFavoriteManga, options)\n\n            val backup = Backup(\n                backupManga = backupManga,\n                backupCategories = backupCategories(options),\n                backupSources = backupSources(backupManga),\n                backupPreferences = backupAppPreferences(options),\n                backupExtensionRepo = backupExtensionRepos(options),\n                backupSourcePreferences = backupSourcePreferences(options),\n            )\n\n            val byteArray = parser.encodeToByteArray(Backup.serializer(), backup)\n            if (byteArray.isEmpty()) {\n                throw IllegalStateException(context.stringResource(MR.strings.empty_backup_error))\n            }\n\n            file.openOutputStream()\n                .also {\n                    // Force overwrite old file\n                    (it as? FileOutputStream)?.channel?.truncate(0)\n                }\n                .sink().gzip().buffer().use {\n                    it.write(byteArray)\n                }\n            val fileUri = file.uri\n\n            // Make sure it's a valid backup file\n            BackupFileValidator(context).validate(fileUri)\n\n            if (isAutoBackup) {\n                backupPreferences.lastAutoBackupTimestamp.set(Instant.now().toEpochMilli())\n            }\n\n            return fileUri.toString()\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            file?.delete()\n            throw e\n        }\n    }\n\n    private suspend fun backupCategories(options: BackupOptions): List<BackupCategory> {\n        if (!options.categories) return emptyList()\n\n        return categoriesBackupCreator()\n    }\n\n    private suspend fun backupMangas(mangas: List<Manga>, options: BackupOptions): List<BackupManga> {\n        if (!options.libraryEntries) return emptyList()\n\n        return mangaBackupCreator(mangas, options)\n    }\n\n    private fun backupSources(mangas: List<BackupManga>): List<BackupSource> {\n        return sourcesBackupCreator(mangas)\n    }\n\n    private fun backupAppPreferences(options: BackupOptions): List<BackupPreference> {\n        if (!options.appSettings) return emptyList()\n\n        return preferenceBackupCreator.createApp(includePrivatePreferences = options.privateSettings)\n    }\n\n    private suspend fun backupExtensionRepos(options: BackupOptions): List<BackupExtensionRepos> {\n        if (!options.extensionRepoSettings) return emptyList()\n\n        return extensionRepoBackupCreator()\n    }\n\n    private fun backupSourcePreferences(options: BackupOptions): List<BackupSourcePreferences> {\n        if (!options.sourceSettings) return emptyList()\n\n        return preferenceBackupCreator.createSource(includePrivatePreferences = options.privateSettings)\n    }\n\n    companion object {\n        private const val MAX_AUTO_BACKUPS: Int = 4\n        private val FILENAME_REGEX = \"\"\"${BuildConfig.APPLICATION_ID}_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}.tachibk\"\"\".toRegex()\n\n        fun getFilename(): String {\n            val date = SimpleDateFormat(\"yyyy-MM-dd_HH-mm\", Locale.ENGLISH).format(Date())\n            return \"${BuildConfig.APPLICATION_ID}_$date.tachibk\"\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupOptions.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create\n\nimport dev.icerock.moko.resources.StringResource\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\n\ndata class BackupOptions(\n    val libraryEntries: Boolean = true,\n    val categories: Boolean = true,\n    val chapters: Boolean = true,\n    val tracking: Boolean = true,\n    val history: Boolean = true,\n    val readEntries: Boolean = true,\n    val appSettings: Boolean = true,\n    val extensionRepoSettings: Boolean = true,\n    val sourceSettings: Boolean = true,\n    val privateSettings: Boolean = false,\n) {\n\n    fun asBooleanArray() = booleanArrayOf(\n        libraryEntries,\n        categories,\n        chapters,\n        tracking,\n        history,\n        readEntries,\n        appSettings,\n        extensionRepoSettings,\n        sourceSettings,\n        privateSettings,\n    )\n\n    fun canCreate() = libraryEntries || categories || appSettings || extensionRepoSettings || sourceSettings\n\n    companion object {\n        val libraryOptions = persistentListOf(\n            Entry(\n                label = MR.strings.manga,\n                getter = BackupOptions::libraryEntries,\n                setter = { options, enabled -> options.copy(libraryEntries = enabled) },\n            ),\n            Entry(\n                label = MR.strings.chapters,\n                getter = BackupOptions::chapters,\n                setter = { options, enabled -> options.copy(chapters = enabled) },\n                enabled = { it.libraryEntries },\n            ),\n            Entry(\n                label = MR.strings.track,\n                getter = BackupOptions::tracking,\n                setter = { options, enabled -> options.copy(tracking = enabled) },\n                enabled = { it.libraryEntries },\n            ),\n            Entry(\n                label = MR.strings.history,\n                getter = BackupOptions::history,\n                setter = { options, enabled -> options.copy(history = enabled) },\n                enabled = { it.libraryEntries },\n            ),\n            Entry(\n                label = MR.strings.categories,\n                getter = BackupOptions::categories,\n                setter = { options, enabled -> options.copy(categories = enabled) },\n            ),\n            Entry(\n                label = MR.strings.non_library_settings,\n                getter = BackupOptions::readEntries,\n                setter = { options, enabled -> options.copy(readEntries = enabled) },\n                enabled = { it.libraryEntries },\n            ),\n        )\n\n        val settingsOptions = persistentListOf(\n            Entry(\n                label = MR.strings.app_settings,\n                getter = BackupOptions::appSettings,\n                setter = { options, enabled -> options.copy(appSettings = enabled) },\n            ),\n            Entry(\n                label = MR.strings.extensionRepo_settings,\n                getter = BackupOptions::extensionRepoSettings,\n                setter = { options, enabled -> options.copy(extensionRepoSettings = enabled) },\n            ),\n            Entry(\n                label = MR.strings.source_settings,\n                getter = BackupOptions::sourceSettings,\n                setter = { options, enabled -> options.copy(sourceSettings = enabled) },\n            ),\n            Entry(\n                label = MR.strings.private_settings,\n                getter = BackupOptions::privateSettings,\n                setter = { options, enabled -> options.copy(privateSettings = enabled) },\n                enabled = { it.appSettings || it.sourceSettings },\n            ),\n        )\n\n        fun fromBooleanArray(array: BooleanArray) = BackupOptions(\n            libraryEntries = array[0],\n            categories = array[1],\n            chapters = array[2],\n            tracking = array[3],\n            history = array[4],\n            readEntries = array[5],\n            appSettings = array[6],\n            extensionRepoSettings = array[7],\n            sourceSettings = array[8],\n            privateSettings = array[9],\n        )\n    }\n\n    data class Entry(\n        val label: StringResource,\n        val getter: (BackupOptions) -> Boolean,\n        val setter: (BackupOptions, Boolean) -> BackupOptions,\n        val enabled: (BackupOptions) -> Boolean = { true },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/CategoriesBackupCreator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create.creators\n\nimport eu.kanade.tachiyomi.data.backup.models.BackupCategory\nimport eu.kanade.tachiyomi.data.backup.models.backupCategoryMapper\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.model.Category\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass CategoriesBackupCreator(\n    private val getCategories: GetCategories = Injekt.get(),\n) {\n\n    suspend operator fun invoke(): List<BackupCategory> {\n        return getCategories.await()\n            .filterNot(Category::isSystemCategory)\n            .map(backupCategoryMapper)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/ExtensionRepoBackupCreator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create.creators\n\nimport eu.kanade.tachiyomi.data.backup.models.BackupExtensionRepos\nimport eu.kanade.tachiyomi.data.backup.models.backupExtensionReposMapper\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepo\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ExtensionRepoBackupCreator(\n    private val getExtensionRepos: GetExtensionRepo = Injekt.get(),\n) {\n\n    suspend operator fun invoke(): List<BackupExtensionRepos> {\n        return getExtensionRepos.getAll()\n            .map(backupExtensionReposMapper)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/MangaBackupCreator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create.creators\n\nimport eu.kanade.tachiyomi.data.backup.create.BackupOptions\nimport eu.kanade.tachiyomi.data.backup.models.BackupChapter\nimport eu.kanade.tachiyomi.data.backup.models.BackupHistory\nimport eu.kanade.tachiyomi.data.backup.models.BackupManga\nimport eu.kanade.tachiyomi.data.backup.models.backupChapterMapper\nimport eu.kanade.tachiyomi.data.backup.models.backupTrackMapper\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.history.interactor.GetHistory\nimport tachiyomi.domain.manga.model.Manga\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MangaBackupCreator(\n    private val handler: DatabaseHandler = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val getHistory: GetHistory = Injekt.get(),\n) {\n\n    suspend operator fun invoke(mangas: List<Manga>, options: BackupOptions): List<BackupManga> {\n        return mangas.map {\n            backupManga(it, options)\n        }\n    }\n\n    private suspend fun backupManga(manga: Manga, options: BackupOptions): BackupManga {\n        // Entry for this manga\n        val mangaObject = manga.toBackupManga()\n\n        mangaObject.excludedScanlators = handler.awaitList {\n            excluded_scanlatorsQueries.getExcludedScanlatorsByMangaId(manga.id)\n        }\n\n        if (options.chapters) {\n            // Backup all the chapters\n            handler.awaitList {\n                chaptersQueries.getChaptersByMangaId(\n                    mangaId = manga.id,\n                    applyScanlatorFilter = 0, // false\n                    mapper = backupChapterMapper,\n                )\n            }\n                .takeUnless(List<BackupChapter>::isEmpty)\n                ?.let { mangaObject.chapters = it }\n        }\n\n        if (options.categories) {\n            // Backup categories for this manga\n            val categoriesForManga = getCategories.await(manga.id)\n            if (categoriesForManga.isNotEmpty()) {\n                mangaObject.categories = categoriesForManga.map { it.order }\n            }\n        }\n\n        if (options.tracking) {\n            val tracks = handler.awaitList { manga_syncQueries.getTracksByMangaId(manga.id, backupTrackMapper) }\n            if (tracks.isNotEmpty()) {\n                mangaObject.tracking = tracks\n            }\n        }\n\n        if (options.history) {\n            val historyByMangaId = getHistory.await(manga.id)\n            if (historyByMangaId.isNotEmpty()) {\n                val history = historyByMangaId.map { history ->\n                    val chapter = handler.awaitOne { chaptersQueries.getChapterById(history.chapterId) }\n                    BackupHistory(chapter.url, history.readAt?.time ?: 0L, history.readDuration)\n                }\n                if (history.isNotEmpty()) {\n                    mangaObject.history = history\n                }\n            }\n        }\n\n        return mangaObject\n    }\n}\n\nprivate fun Manga.toBackupManga() =\n    BackupManga(\n        url = this.url,\n        title = this.title,\n        artist = this.artist,\n        author = this.author,\n        description = this.description,\n        genre = this.genre.orEmpty(),\n        status = this.status.toInt(),\n        thumbnailUrl = this.thumbnailUrl,\n        favorite = this.favorite,\n        source = this.source,\n        dateAdded = this.dateAdded,\n        viewer = (this.viewerFlags.toInt() and ReadingMode.MASK),\n        viewer_flags = this.viewerFlags.toInt(),\n        chapterFlags = this.chapterFlags.toInt(),\n        updateStrategy = this.updateStrategy,\n        lastModifiedAt = this.lastModifiedAt,\n        favoriteModifiedAt = this.favoriteModifiedAt,\n        version = this.version,\n        notes = this.notes,\n        initialized = this.initialized,\n    )\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/PreferenceBackupCreator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create.creators\n\nimport eu.kanade.tachiyomi.data.backup.models.BackupPreference\nimport eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences\nimport eu.kanade.tachiyomi.data.backup.models.BooleanPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.FloatPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.IntPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.LongPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.StringPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue\nimport eu.kanade.tachiyomi.source.ConfigurableSource\nimport eu.kanade.tachiyomi.source.preferenceKey\nimport eu.kanade.tachiyomi.source.sourcePreferences\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass PreferenceBackupCreator(\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val preferenceStore: PreferenceStore = Injekt.get(),\n) {\n\n    fun createApp(includePrivatePreferences: Boolean): List<BackupPreference> {\n        return preferenceStore.getAll().toBackupPreferences()\n            .withPrivatePreferences(includePrivatePreferences)\n    }\n\n    fun createSource(includePrivatePreferences: Boolean): List<BackupSourcePreferences> {\n        return sourceManager.getCatalogueSources()\n            .filterIsInstance<ConfigurableSource>()\n            .map {\n                BackupSourcePreferences(\n                    it.preferenceKey(),\n                    it.sourcePreferences().all.toBackupPreferences()\n                        .withPrivatePreferences(includePrivatePreferences),\n                )\n            }\n            .filter { it.prefs.isNotEmpty() }\n    }\n\n    @Suppress(\"UNCHECKED_CAST\")\n    private fun Map<String, *>.toBackupPreferences(): List<BackupPreference> {\n        return this\n            .filterKeys { !Preference.isAppState(it) }\n            .mapNotNull { (key, value) ->\n                when (value) {\n                    is Int -> BackupPreference(key, IntPreferenceValue(value))\n                    is Long -> BackupPreference(key, LongPreferenceValue(value))\n                    is Float -> BackupPreference(key, FloatPreferenceValue(value))\n                    is String -> BackupPreference(key, StringPreferenceValue(value))\n                    is Boolean -> BackupPreference(key, BooleanPreferenceValue(value))\n                    is Set<*> -> (value as? Set<String>)?.let {\n                        BackupPreference(key, StringSetPreferenceValue(it))\n                    }\n                    else -> null\n                }\n            }\n    }\n\n    private fun List<BackupPreference>.withPrivatePreferences(include: Boolean) =\n        if (include) {\n            this\n        } else {\n            this.filter { !Preference.isPrivate(it.key) }\n        }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/SourcesBackupCreator.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.create.creators\n\nimport eu.kanade.tachiyomi.data.backup.models.BackupManga\nimport eu.kanade.tachiyomi.data.backup.models.BackupSource\nimport eu.kanade.tachiyomi.source.Source\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass SourcesBackupCreator(\n    private val sourceManager: SourceManager = Injekt.get(),\n) {\n\n    operator fun invoke(mangas: List<BackupManga>): List<BackupSource> {\n        return mangas\n            .asSequence()\n            .map(BackupManga::source)\n            .distinct()\n            .map(sourceManager::getOrStub)\n            .map { it.toBackupSource() }\n            .toList()\n    }\n}\n\nprivate fun Source.toBackupSource() =\n    BackupSource(\n        name = this.name,\n        sourceId = this.id,\n    )\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\n\n@Serializable\ndata class Backup(\n    @ProtoNumber(1) val backupManga: List<BackupManga>,\n    @ProtoNumber(2) var backupCategories: List<BackupCategory> = emptyList(),\n    // @ProtoNumber(100) var backupBrokenSources, legacy source model with non-compliant proto number,\n    @ProtoNumber(101) var backupSources: List<BackupSource> = emptyList(),\n    @ProtoNumber(104) var backupPreferences: List<BackupPreference> = emptyList(),\n    @ProtoNumber(105) var backupSourcePreferences: List<BackupSourcePreferences> = emptyList(),\n    @ProtoNumber(106) var backupExtensionRepo: List<BackupExtensionRepos> = emptyList(),\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupCategory.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\nimport tachiyomi.domain.category.model.Category\n\n@Serializable\nclass BackupCategory(\n    @ProtoNumber(1) var name: String,\n    @ProtoNumber(2) var order: Long = 0,\n    @ProtoNumber(3) var id: Long = 0,\n    // @ProtoNumber(3) val updateInterval: Int = 0, 1.x value not used in 0.x\n    @ProtoNumber(100) var flags: Long = 0,\n) {\n    fun toCategory(id: Long) = Category(\n        id = id,\n        name = this@BackupCategory.name,\n        flags = this@BackupCategory.flags,\n        order = this@BackupCategory.order,\n    )\n}\n\nval backupCategoryMapper = { category: Category ->\n    BackupCategory(\n        id = category.id,\n        name = category.name,\n        order = category.order,\n        flags = category.flags,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\nimport tachiyomi.domain.chapter.model.Chapter\n\n@Serializable\ndata class BackupChapter(\n    // in 1.x some of these values have different names\n    // url is called key in 1.x\n    @ProtoNumber(1) var url: String,\n    @ProtoNumber(2) var name: String,\n    @ProtoNumber(3) var scanlator: String? = null,\n    @ProtoNumber(4) var read: Boolean = false,\n    @ProtoNumber(5) var bookmark: Boolean = false,\n    // lastPageRead is called progress in 1.x\n    @ProtoNumber(6) var lastPageRead: Long = 0,\n    @ProtoNumber(7) var dateFetch: Long = 0,\n    @ProtoNumber(8) var dateUpload: Long = 0,\n    // chapterNumber is called number is 1.x\n    @ProtoNumber(9) var chapterNumber: Float = 0F,\n    @ProtoNumber(10) var sourceOrder: Long = 0,\n    @ProtoNumber(11) var lastModifiedAt: Long = 0,\n    @ProtoNumber(12) var version: Long = 0,\n) {\n    fun toChapterImpl(): Chapter {\n        return Chapter.create().copy(\n            url = this@BackupChapter.url,\n            name = this@BackupChapter.name,\n            chapterNumber = this@BackupChapter.chapterNumber.toDouble(),\n            scanlator = this@BackupChapter.scanlator,\n            read = this@BackupChapter.read,\n            bookmark = this@BackupChapter.bookmark,\n            lastPageRead = this@BackupChapter.lastPageRead,\n            dateFetch = this@BackupChapter.dateFetch,\n            dateUpload = this@BackupChapter.dateUpload,\n            sourceOrder = this@BackupChapter.sourceOrder,\n            lastModifiedAt = this@BackupChapter.lastModifiedAt,\n            version = this@BackupChapter.version,\n        )\n    }\n}\n\nval backupChapterMapper = {\n        _: Long,\n        _: Long,\n        url: String,\n        name: String,\n        scanlator: String?,\n        read: Boolean,\n        bookmark: Boolean,\n        lastPageRead: Long,\n        chapterNumber: Double,\n        sourceOrder: Long,\n        dateFetch: Long,\n        dateUpload: Long,\n        lastModifiedAt: Long,\n        version: Long,\n        _: Long,\n    ->\n    BackupChapter(\n        url = url,\n        name = name,\n        chapterNumber = chapterNumber.toFloat(),\n        scanlator = scanlator,\n        read = read,\n        bookmark = bookmark,\n        lastPageRead = lastPageRead,\n        dateFetch = dateFetch,\n        dateUpload = dateUpload,\n        sourceOrder = sourceOrder,\n        lastModifiedAt = lastModifiedAt,\n        version = version,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupExtensionRepos.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\nimport mihon.domain.extensionrepo.model.ExtensionRepo\n\n@Serializable\nclass BackupExtensionRepos(\n    @ProtoNumber(1) var baseUrl: String,\n    @ProtoNumber(2) var name: String,\n    @ProtoNumber(3) var shortName: String?,\n    @ProtoNumber(4) var website: String,\n    @ProtoNumber(5) var signingKeyFingerprint: String,\n)\n\nval backupExtensionReposMapper = { repo: ExtensionRepo ->\n    BackupExtensionRepos(\n        baseUrl = repo.baseUrl,\n        name = repo.name,\n        shortName = repo.shortName,\n        website = repo.website,\n        signingKeyFingerprint = repo.signingKeyFingerprint,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupHistory.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\nimport tachiyomi.domain.history.model.History\nimport java.util.Date\n\n@Serializable\ndata class BackupHistory(\n    @ProtoNumber(1) var url: String,\n    @ProtoNumber(2) var lastRead: Long,\n    @ProtoNumber(3) var readDuration: Long = 0,\n) {\n    fun getHistoryImpl(): History {\n        return History.create().copy(\n            readAt = Date(lastRead),\n            readDuration = readDuration,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport eu.kanade.tachiyomi.source.model.UpdateStrategy\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\nimport tachiyomi.domain.manga.model.Manga\n\n@Suppress(\"DEPRECATION\")\n@Serializable\ndata class BackupManga(\n    // in 1.x some of these values have different names\n    @ProtoNumber(1) var source: Long,\n    // url is called key in 1.x\n    @ProtoNumber(2) var url: String,\n    @ProtoNumber(3) var title: String = \"\",\n    @ProtoNumber(4) var artist: String? = null,\n    @ProtoNumber(5) var author: String? = null,\n    @ProtoNumber(6) var description: String? = null,\n    @ProtoNumber(7) var genre: List<String> = emptyList(),\n    @ProtoNumber(8) var status: Int = 0,\n    // thumbnailUrl is called cover in 1.x\n    @ProtoNumber(9) var thumbnailUrl: String? = null,\n    // @ProtoNumber(10) val customCover: String = \"\", 1.x value, not used in 0.x\n    // @ProtoNumber(11) val lastUpdate: Long = 0, 1.x value, not used in 0.x\n    // @ProtoNumber(12) val lastInit: Long = 0, 1.x value, not used in 0.x\n    @ProtoNumber(13) var dateAdded: Long = 0,\n    @ProtoNumber(14) var viewer: Int = 0, // Replaced by viewer_flags\n    // @ProtoNumber(15) val flags: Int = 0, 1.x value, not used in 0.x\n    @ProtoNumber(16) var chapters: List<BackupChapter> = emptyList(),\n    @ProtoNumber(17) var categories: List<Long> = emptyList(),\n    @ProtoNumber(18) var tracking: List<BackupTracking> = emptyList(),\n    // Bump by 100 for values that are not saved/implemented in 1.x but are used in 0.x\n    @ProtoNumber(100) var favorite: Boolean = true,\n    @ProtoNumber(101) var chapterFlags: Int = 0,\n    // @ProtoNumber(102) var brokenHistory, legacy history model with non-compliant proto number\n    @ProtoNumber(103) var viewer_flags: Int? = null,\n    @ProtoNumber(104) var history: List<BackupHistory> = emptyList(),\n    @ProtoNumber(105) var updateStrategy: UpdateStrategy = UpdateStrategy.ALWAYS_UPDATE,\n    @ProtoNumber(106) var lastModifiedAt: Long = 0,\n    @ProtoNumber(107) var favoriteModifiedAt: Long? = null,\n    // Mihon values start here\n    @ProtoNumber(108) var excludedScanlators: List<String> = emptyList(),\n    @ProtoNumber(109) var version: Long = 0,\n    @ProtoNumber(110) var notes: String = \"\",\n    @ProtoNumber(111) var initialized: Boolean = false,\n) {\n    fun getMangaImpl(): Manga {\n        return Manga.create().copy(\n            url = this@BackupManga.url,\n            title = this@BackupManga.title,\n            artist = this@BackupManga.artist,\n            author = this@BackupManga.author,\n            description = this@BackupManga.description,\n            genre = this@BackupManga.genre,\n            status = this@BackupManga.status.toLong(),\n            thumbnailUrl = this@BackupManga.thumbnailUrl,\n            favorite = this@BackupManga.favorite,\n            source = this@BackupManga.source,\n            dateAdded = this@BackupManga.dateAdded,\n            viewerFlags = (this@BackupManga.viewer_flags ?: this@BackupManga.viewer).toLong(),\n            chapterFlags = this@BackupManga.chapterFlags.toLong(),\n            updateStrategy = this@BackupManga.updateStrategy,\n            lastModifiedAt = this@BackupManga.lastModifiedAt,\n            favoriteModifiedAt = this@BackupManga.favoriteModifiedAt,\n            version = this@BackupManga.version,\n            notes = this@BackupManga.notes,\n            initialized = this@BackupManga.initialized,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupPreference.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\n\n@Serializable\ndata class BackupPreference(\n    @ProtoNumber(1) val key: String,\n    @ProtoNumber(2) val value: PreferenceValue,\n)\n\n@Serializable\ndata class BackupSourcePreferences(\n    @ProtoNumber(1) val sourceKey: String,\n    @ProtoNumber(2) val prefs: List<BackupPreference>,\n)\n\n@Serializable\nsealed class PreferenceValue\n\n@Serializable\ndata class IntPreferenceValue(val value: Int) : PreferenceValue()\n\n@Serializable\ndata class LongPreferenceValue(val value: Long) : PreferenceValue()\n\n@Serializable\ndata class FloatPreferenceValue(val value: Float) : PreferenceValue()\n\n@Serializable\ndata class StringPreferenceValue(val value: String) : PreferenceValue()\n\n@Serializable\ndata class BooleanPreferenceValue(val value: Boolean) : PreferenceValue()\n\n@Serializable\ndata class StringSetPreferenceValue(val value: Set<String>) : PreferenceValue()\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupSource.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\n\n@Serializable\ndata class BackupSource(\n    @ProtoNumber(1) var name: String = \"\",\n    @ProtoNumber(2) var sourceId: Long,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupTracking.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.models\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.protobuf.ProtoNumber\nimport tachiyomi.domain.track.model.Track\n\n@Serializable\ndata class BackupTracking(\n    // in 1.x some of these values have different types or names\n    @ProtoNumber(1) var syncId: Int,\n    // LibraryId is not null in 1.x\n    @ProtoNumber(2) var libraryId: Long,\n    @Deprecated(\"Use mediaId instead\", level = DeprecationLevel.WARNING)\n    @ProtoNumber(3)\n    var mediaIdInt: Int = 0,\n    // trackingUrl is called mediaUrl in 1.x\n    @ProtoNumber(4) var trackingUrl: String = \"\",\n    @ProtoNumber(5) var title: String = \"\",\n    // lastChapterRead is called last read, and it has been changed to a float in 1.x\n    @ProtoNumber(6) var lastChapterRead: Float = 0F,\n    @ProtoNumber(7) var totalChapters: Int = 0,\n    @ProtoNumber(8) var score: Float = 0F,\n    @ProtoNumber(9) var status: Int = 0,\n    // startedReadingDate is called startReadTime in 1.x\n    @ProtoNumber(10) var startedReadingDate: Long = 0,\n    // finishedReadingDate is called endReadTime in 1.x\n    @ProtoNumber(11) var finishedReadingDate: Long = 0,\n    @ProtoNumber(12) var private: Boolean = false,\n    @ProtoNumber(100) var mediaId: Long = 0,\n) {\n\n    @Suppress(\"DEPRECATION\")\n    fun getTrackImpl(): Track {\n        return Track(\n            id = -1,\n            mangaId = -1,\n            trackerId = this@BackupTracking.syncId.toLong(),\n            remoteId = if (this@BackupTracking.mediaIdInt != 0) {\n                this@BackupTracking.mediaIdInt.toLong()\n            } else {\n                this@BackupTracking.mediaId\n            },\n            libraryId = this@BackupTracking.libraryId,\n            title = this@BackupTracking.title,\n            lastChapterRead = this@BackupTracking.lastChapterRead.toDouble(),\n            totalChapters = this@BackupTracking.totalChapters.toLong(),\n            score = this@BackupTracking.score.toDouble(),\n            status = this@BackupTracking.status.toLong(),\n            startDate = this@BackupTracking.startedReadingDate,\n            finishDate = this@BackupTracking.finishedReadingDate,\n            remoteUrl = this@BackupTracking.trackingUrl,\n            private = this@BackupTracking.private,\n        )\n    }\n}\n\nval backupTrackMapper = {\n        _: Long,\n        _: Long,\n        syncId: Long,\n        mediaId: Long,\n        libraryId: Long?,\n        title: String,\n        lastChapterRead: Double,\n        totalChapters: Long,\n        status: Long,\n        score: Double,\n        remoteUrl: String,\n        startDate: Long,\n        finishDate: Long,\n        private: Boolean,\n    ->\n    BackupTracking(\n        syncId = syncId.toInt(),\n        mediaId = mediaId,\n        // forced not null so its compatible with 1.x backup system\n        libraryId = libraryId ?: 0,\n        title = title,\n        lastChapterRead = lastChapterRead.toFloat(),\n        totalChapters = totalChapters.toInt(),\n        score = score.toFloat(),\n        status = status.toInt(),\n        startedReadingDate = startDate,\n        finishedReadingDate = finishDate,\n        trackingUrl = remoteUrl,\n        private = private,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/BackupRestoreJob.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore\n\nimport android.content.Context\nimport android.content.pm.ServiceInfo\nimport android.net.Uri\nimport android.os.Build\nimport androidx.core.net.toUri\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.ForegroundInfo\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.WorkerParameters\nimport androidx.work.workDataOf\nimport eu.kanade.tachiyomi.data.backup.BackupNotifier\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.isRunning\nimport eu.kanade.tachiyomi.util.system.setForegroundSafely\nimport eu.kanade.tachiyomi.util.system.workManager\nimport kotlinx.coroutines.CancellationException\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\n\nclass BackupRestoreJob(private val context: Context, workerParams: WorkerParameters) :\n    CoroutineWorker(context, workerParams) {\n\n    private val notifier = BackupNotifier(context)\n\n    override suspend fun doWork(): Result {\n        val uri = inputData.getString(LOCATION_URI_KEY)?.toUri()\n        val options = inputData.getBooleanArray(OPTIONS_KEY)?.let { RestoreOptions.fromBooleanArray(it) }\n\n        if (uri == null || options == null) {\n            return Result.failure()\n        }\n\n        val isSync = inputData.getBoolean(SYNC_KEY, false)\n\n        setForegroundSafely()\n\n        return try {\n            BackupRestorer(context, notifier, isSync).restore(uri, options)\n            Result.success()\n        } catch (e: Exception) {\n            if (e is CancellationException) {\n                notifier.showRestoreError(context.stringResource(MR.strings.restoring_backup_canceled))\n                Result.success()\n            } else {\n                logcat(LogPriority.ERROR, e)\n                notifier.showRestoreError(e.message)\n                Result.failure()\n            }\n        } finally {\n            context.cancelNotification(Notifications.ID_RESTORE_PROGRESS)\n        }\n    }\n\n    override suspend fun getForegroundInfo(): ForegroundInfo {\n        return ForegroundInfo(\n            Notifications.ID_RESTORE_PROGRESS,\n            notifier.showRestoreProgress().build(),\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n                ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC\n            } else {\n                0\n            },\n        )\n    }\n\n    companion object {\n        fun isRunning(context: Context): Boolean {\n            return context.workManager.isRunning(TAG)\n        }\n\n        fun start(\n            context: Context,\n            uri: Uri,\n            options: RestoreOptions,\n            sync: Boolean = false,\n        ) {\n            val inputData = workDataOf(\n                LOCATION_URI_KEY to uri.toString(),\n                SYNC_KEY to sync,\n                OPTIONS_KEY to options.asBooleanArray(),\n            )\n            val request = OneTimeWorkRequestBuilder<BackupRestoreJob>()\n                .addTag(TAG)\n                .setInputData(inputData)\n                .build()\n            context.workManager.enqueueUniqueWork(TAG, ExistingWorkPolicy.KEEP, request)\n        }\n\n        fun stop(context: Context) {\n            context.workManager.cancelUniqueWork(TAG)\n        }\n    }\n}\n\nprivate const val TAG = \"BackupRestore\"\n\nprivate const val LOCATION_URI_KEY = \"location_uri\" // String\nprivate const val SYNC_KEY = \"sync\" // Boolean\nprivate const val OPTIONS_KEY = \"options\" // BooleanArray\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/BackupRestorer.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore\n\nimport android.content.Context\nimport android.net.Uri\nimport eu.kanade.tachiyomi.data.backup.BackupDecoder\nimport eu.kanade.tachiyomi.data.backup.BackupNotifier\nimport eu.kanade.tachiyomi.data.backup.models.BackupCategory\nimport eu.kanade.tachiyomi.data.backup.models.BackupExtensionRepos\nimport eu.kanade.tachiyomi.data.backup.models.BackupManga\nimport eu.kanade.tachiyomi.data.backup.models.BackupPreference\nimport eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences\nimport eu.kanade.tachiyomi.data.backup.restore.restorers.CategoriesRestorer\nimport eu.kanade.tachiyomi.data.backup.restore.restorers.ExtensionRepoRestorer\nimport eu.kanade.tachiyomi.data.backup.restore.restorers.MangaRestorer\nimport eu.kanade.tachiyomi.data.backup.restore.restorers.PreferenceRestorer\nimport eu.kanade.tachiyomi.util.system.createFileInCacheDir\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.coroutineScope\nimport kotlinx.coroutines.ensureActive\nimport kotlinx.coroutines.launch\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport java.io.File\nimport java.text.SimpleDateFormat\nimport java.util.Date\nimport java.util.Locale\n\nclass BackupRestorer(\n    private val context: Context,\n    private val notifier: BackupNotifier,\n    private val isSync: Boolean,\n\n    private val categoriesRestorer: CategoriesRestorer = CategoriesRestorer(),\n    private val preferenceRestorer: PreferenceRestorer = PreferenceRestorer(context),\n    private val extensionRepoRestorer: ExtensionRepoRestorer = ExtensionRepoRestorer(),\n    private val mangaRestorer: MangaRestorer = MangaRestorer(),\n) {\n\n    private var restoreAmount = 0\n    private var restoreProgress = 0\n    private val errors = mutableListOf<Pair<Date, String>>()\n\n    /**\n     * Mapping of source ID to source name from backup data\n     */\n    private var sourceMapping: Map<Long, String> = emptyMap()\n\n    suspend fun restore(uri: Uri, options: RestoreOptions) {\n        val startTime = System.currentTimeMillis()\n\n        restoreFromFile(uri, options)\n\n        val time = System.currentTimeMillis() - startTime\n\n        val logFile = writeErrorLog()\n\n        notifier.showRestoreComplete(\n            time,\n            errors.size,\n            logFile.parent,\n            logFile.name,\n            isSync,\n        )\n    }\n\n    private suspend fun restoreFromFile(uri: Uri, options: RestoreOptions) {\n        val backup = BackupDecoder(context).decode(uri)\n\n        // Store source mapping for error messages\n        val backupMaps = backup.backupSources\n        sourceMapping = backupMaps.associate { it.sourceId to it.name }\n\n        if (options.libraryEntries) {\n            restoreAmount += backup.backupManga.size\n        }\n        if (options.categories) {\n            restoreAmount += 1\n        }\n        if (options.appSettings) {\n            restoreAmount += 1\n        }\n        if (options.extensionRepoSettings) {\n            restoreAmount += backup.backupExtensionRepo.size\n        }\n        if (options.sourceSettings) {\n            restoreAmount += 1\n        }\n\n        coroutineScope {\n            if (options.categories) {\n                restoreCategories(backup.backupCategories)\n            }\n            if (options.appSettings) {\n                restoreAppPreferences(backup.backupPreferences, backup.backupCategories.takeIf { options.categories })\n            }\n            if (options.sourceSettings) {\n                restoreSourcePreferences(backup.backupSourcePreferences)\n            }\n            if (options.libraryEntries) {\n                restoreManga(backup.backupManga, if (options.categories) backup.backupCategories else emptyList())\n            }\n            if (options.extensionRepoSettings) {\n                restoreExtensionRepos(backup.backupExtensionRepo)\n            }\n\n            // TODO: optionally trigger online library + tracker update\n        }\n    }\n\n    private fun CoroutineScope.restoreCategories(backupCategories: List<BackupCategory>) = launch {\n        ensureActive()\n        categoriesRestorer(backupCategories)\n\n        restoreProgress += 1\n        notifier.showRestoreProgress(\n            context.stringResource(MR.strings.categories),\n            restoreProgress,\n            restoreAmount,\n            isSync,\n        )\n    }\n\n    private fun CoroutineScope.restoreManga(\n        backupMangas: List<BackupManga>,\n        backupCategories: List<BackupCategory>,\n    ) = launch {\n        mangaRestorer.sortByNew(backupMangas)\n            .forEach {\n                ensureActive()\n\n                try {\n                    mangaRestorer.restore(it, backupCategories)\n                } catch (e: Exception) {\n                    val sourceName = sourceMapping[it.source] ?: it.source.toString()\n                    errors.add(Date() to \"${it.title} [$sourceName]: ${e.message}\")\n                }\n\n                restoreProgress += 1\n                notifier.showRestoreProgress(it.title, restoreProgress, restoreAmount, isSync)\n            }\n    }\n\n    private fun CoroutineScope.restoreAppPreferences(\n        preferences: List<BackupPreference>,\n        categories: List<BackupCategory>?,\n    ) = launch {\n        ensureActive()\n        preferenceRestorer.restoreApp(\n            preferences,\n            categories,\n        )\n\n        restoreProgress += 1\n        notifier.showRestoreProgress(\n            context.stringResource(MR.strings.app_settings),\n            restoreProgress,\n            restoreAmount,\n            isSync,\n        )\n    }\n\n    private fun CoroutineScope.restoreSourcePreferences(preferences: List<BackupSourcePreferences>) = launch {\n        ensureActive()\n        preferenceRestorer.restoreSource(preferences)\n\n        restoreProgress += 1\n        notifier.showRestoreProgress(\n            context.stringResource(MR.strings.source_settings),\n            restoreProgress,\n            restoreAmount,\n            isSync,\n        )\n    }\n\n    private fun CoroutineScope.restoreExtensionRepos(\n        backupExtensionRepo: List<BackupExtensionRepos>,\n    ) = launch {\n        backupExtensionRepo\n            .forEach {\n                ensureActive()\n\n                try {\n                    extensionRepoRestorer(it)\n                } catch (e: Exception) {\n                    errors.add(Date() to \"Error Adding Repo: ${it.name} : ${e.message}\")\n                }\n\n                restoreProgress += 1\n                notifier.showRestoreProgress(\n                    context.stringResource(MR.strings.extensionRepo_settings),\n                    restoreProgress,\n                    restoreAmount,\n                    isSync,\n                )\n            }\n    }\n\n    private fun writeErrorLog(): File {\n        try {\n            if (errors.isNotEmpty()) {\n                val file = context.createFileInCacheDir(\"mihon_restore_error.txt\")\n                val sdf = SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\", Locale.getDefault())\n\n                file.bufferedWriter().use { out ->\n                    errors.forEach { (date, message) ->\n                        out.write(\"[${sdf.format(date)}] $message\\n\")\n                    }\n                }\n                return file\n            }\n        } catch (e: Exception) {\n            // Empty\n        }\n        return File(\"\")\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/RestoreOptions.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore\n\nimport dev.icerock.moko.resources.StringResource\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\n\ndata class RestoreOptions(\n    val libraryEntries: Boolean = true,\n    val categories: Boolean = true,\n    val appSettings: Boolean = true,\n    val extensionRepoSettings: Boolean = true,\n    val sourceSettings: Boolean = true,\n) {\n\n    fun asBooleanArray() = booleanArrayOf(\n        libraryEntries,\n        categories,\n        appSettings,\n        extensionRepoSettings,\n        sourceSettings,\n    )\n\n    fun canRestore() = libraryEntries || categories || appSettings || extensionRepoSettings || sourceSettings\n\n    companion object {\n        val options = persistentListOf(\n            Entry(\n                label = MR.strings.label_library,\n                getter = RestoreOptions::libraryEntries,\n                setter = { options, enabled -> options.copy(libraryEntries = enabled) },\n            ),\n            Entry(\n                label = MR.strings.categories,\n                getter = RestoreOptions::categories,\n                setter = { options, enabled -> options.copy(categories = enabled) },\n            ),\n            Entry(\n                label = MR.strings.app_settings,\n                getter = RestoreOptions::appSettings,\n                setter = { options, enabled -> options.copy(appSettings = enabled) },\n            ),\n            Entry(\n                label = MR.strings.extensionRepo_settings,\n                getter = RestoreOptions::extensionRepoSettings,\n                setter = { options, enabled -> options.copy(extensionRepoSettings = enabled) },\n            ),\n            Entry(\n                label = MR.strings.source_settings,\n                getter = RestoreOptions::sourceSettings,\n                setter = { options, enabled -> options.copy(sourceSettings = enabled) },\n            ),\n        )\n\n        fun fromBooleanArray(array: BooleanArray) = RestoreOptions(\n            libraryEntries = array[0],\n            categories = array[1],\n            appSettings = array[2],\n            extensionRepoSettings = array[3],\n            sourceSettings = array[4],\n        )\n    }\n\n    data class Entry(\n        val label: StringResource,\n        val getter: (RestoreOptions) -> Boolean,\n        val setter: (RestoreOptions, Boolean) -> RestoreOptions,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore.restorers\n\nimport eu.kanade.tachiyomi.data.backup.models.BackupCategory\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass CategoriesRestorer(\n    private val handler: DatabaseHandler = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n) {\n\n    suspend operator fun invoke(backupCategories: List<BackupCategory>) {\n        if (backupCategories.isNotEmpty()) {\n            val dbCategories = getCategories.await()\n            val dbCategoriesByName = dbCategories.associateBy { it.name }\n            var nextOrder = dbCategories.maxOfOrNull { it.order }?.plus(1) ?: 0\n\n            val categories = backupCategories\n                .sortedBy { it.order }\n                .map {\n                    val dbCategory = dbCategoriesByName[it.name]\n                    if (dbCategory != null) return@map dbCategory\n                    val order = nextOrder++\n                    handler.awaitOneExecutable {\n                        categoriesQueries.insert(it.name, order, it.flags)\n                        categoriesQueries.selectLastInsertedRowId()\n                    }\n                        .let { id -> it.toCategory(id).copy(order = order) }\n                }\n\n            libraryPreferences.categorizedDisplaySettings.set(\n                (dbCategories + categories)\n                    .distinctBy { it.flags }\n                    .size > 1,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/ExtensionRepoRestorer.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore.restorers\n\nimport eu.kanade.tachiyomi.data.backup.models.BackupExtensionRepos\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepo\nimport tachiyomi.data.DatabaseHandler\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ExtensionRepoRestorer(\n    private val handler: DatabaseHandler = Injekt.get(),\n    private val getExtensionRepos: GetExtensionRepo = Injekt.get(),\n) {\n\n    suspend operator fun invoke(\n        backupRepo: BackupExtensionRepos,\n    ) {\n        val dbRepos = getExtensionRepos.getAll()\n        val existingReposBySHA = dbRepos.associateBy { it.signingKeyFingerprint }\n        val existingReposByUrl = dbRepos.associateBy { it.baseUrl }\n\n        val urlExists = existingReposByUrl[backupRepo.baseUrl]\n        val shaExists = existingReposBySHA[backupRepo.signingKeyFingerprint]\n\n        if (urlExists != null && urlExists.signingKeyFingerprint != backupRepo.signingKeyFingerprint) {\n            error(\"Already Exists with different signing key fingerprint\")\n        } else if (shaExists != null) {\n            error(\"${shaExists.name} has the same signing key fingerprint\")\n        } else {\n            handler.await {\n                extension_reposQueries.insert(\n                    backupRepo.baseUrl,\n                    backupRepo.name,\n                    backupRepo.shortName,\n                    backupRepo.website,\n                    backupRepo.signingKeyFingerprint,\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaRestorer.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore.restorers\n\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.tachiyomi.data.backup.models.BackupCategory\nimport eu.kanade.tachiyomi.data.backup.models.BackupChapter\nimport eu.kanade.tachiyomi.data.backup.models.BackupHistory\nimport eu.kanade.tachiyomi.data.backup.models.BackupManga\nimport eu.kanade.tachiyomi.data.backup.models.BackupTracking\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.data.UpdateStrategyColumnAdapter\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.interactor.FetchInterval\nimport tachiyomi.domain.manga.interactor.GetMangaByUrlAndSourceId\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.interactor.InsertTrack\nimport tachiyomi.domain.track.model.Track\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.ZonedDateTime\nimport java.util.Date\nimport kotlin.math.max\n\nclass MangaRestorer(\n    private val handler: DatabaseHandler = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val getMangaByUrlAndSourceId: GetMangaByUrlAndSourceId = Injekt.get(),\n    private val getChaptersByMangaId: GetChaptersByMangaId = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n    private val getTracks: GetTracks = Injekt.get(),\n    private val insertTrack: InsertTrack = Injekt.get(),\n    fetchInterval: FetchInterval = Injekt.get(),\n) {\n\n    private var now = ZonedDateTime.now()\n    private var currentFetchWindow = fetchInterval.getWindow(now)\n\n    init {\n        now = ZonedDateTime.now()\n        currentFetchWindow = fetchInterval.getWindow(now)\n    }\n\n    suspend fun sortByNew(backupMangas: List<BackupManga>): List<BackupManga> {\n        val urlsBySource = handler.awaitList { mangasQueries.getAllMangaSourceAndUrl() }\n            .groupBy({ it.source }, { it.url })\n\n        return backupMangas\n            .sortedWith(\n                compareBy<BackupManga> { it.url in urlsBySource[it.source].orEmpty() }\n                    .then(compareByDescending { it.lastModifiedAt }),\n            )\n    }\n\n    suspend fun restore(\n        backupManga: BackupManga,\n        backupCategories: List<BackupCategory>,\n    ) {\n        handler.await(inTransaction = true) {\n            val dbManga = findExistingManga(backupManga)\n            val manga = backupManga.getMangaImpl()\n            val restoredManga = if (dbManga == null) {\n                restoreNewManga(manga)\n            } else {\n                restoreExistingManga(manga, dbManga)\n            }\n\n            restoreMangaDetails(\n                manga = restoredManga,\n                chapters = backupManga.chapters,\n                categories = backupManga.categories,\n                backupCategories = backupCategories,\n                history = backupManga.history,\n                tracks = backupManga.tracking,\n                excludedScanlators = backupManga.excludedScanlators,\n            )\n        }\n    }\n\n    private suspend fun findExistingManga(backupManga: BackupManga): Manga? {\n        return getMangaByUrlAndSourceId.await(backupManga.url, backupManga.source)\n    }\n\n    private suspend fun restoreExistingManga(manga: Manga, dbManga: Manga): Manga {\n        return if (manga.version > dbManga.version) {\n            updateManga(dbManga.copyFrom(manga).copy(id = dbManga.id))\n        } else {\n            updateManga(manga.copyFrom(dbManga).copy(id = dbManga.id))\n        }\n    }\n\n    private fun Manga.copyFrom(newer: Manga): Manga {\n        return this.copy(\n            favorite = this.favorite || newer.favorite,\n            author = newer.author,\n            artist = newer.artist,\n            description = newer.description,\n            genre = newer.genre,\n            thumbnailUrl = newer.thumbnailUrl,\n            status = newer.status,\n            initialized = this.initialized || newer.initialized,\n            version = newer.version,\n        )\n    }\n\n    private suspend fun updateManga(manga: Manga): Manga {\n        handler.await(true) {\n            mangasQueries.update(\n                source = manga.source,\n                url = manga.url,\n                artist = manga.artist,\n                author = manga.author,\n                description = manga.description,\n                genre = manga.genre?.joinToString(separator = \", \"),\n                title = manga.title,\n                status = manga.status,\n                thumbnailUrl = manga.thumbnailUrl,\n                favorite = manga.favorite,\n                lastUpdate = manga.lastUpdate,\n                nextUpdate = null,\n                calculateInterval = null,\n                initialized = manga.initialized,\n                viewer = manga.viewerFlags,\n                chapterFlags = manga.chapterFlags,\n                coverLastModified = manga.coverLastModified,\n                dateAdded = manga.dateAdded,\n                mangaId = manga.id,\n                updateStrategy = manga.updateStrategy.let(UpdateStrategyColumnAdapter::encode),\n                version = manga.version,\n                isSyncing = 1,\n                notes = manga.notes,\n            )\n        }\n        return manga\n    }\n\n    private suspend fun restoreNewManga(\n        manga: Manga,\n    ): Manga {\n        return manga.copy(\n            id = insertManga(manga),\n        )\n    }\n\n    private suspend fun restoreChapters(manga: Manga, backupChapters: List<BackupChapter>) {\n        val dbChaptersByUrl = getChaptersByMangaId.await(manga.id)\n            .associateBy { it.url }\n\n        val (existingChapters, newChapters) = backupChapters\n            .mapNotNull {\n                val chapter = it.toChapterImpl().copy(mangaId = manga.id)\n\n                val dbChapter = dbChaptersByUrl[chapter.url]\n                    ?: // New chapter\n                    return@mapNotNull chapter\n\n                if (chapter.forComparison() == dbChapter.forComparison()) {\n                    // Same state; skip\n                    return@mapNotNull null\n                }\n\n                // Update to an existing chapter\n                var updatedChapter = chapter\n                    .copyFrom(dbChapter)\n                    .copy(\n                        id = dbChapter.id,\n                        bookmark = chapter.bookmark || dbChapter.bookmark,\n                    )\n                if (dbChapter.read && !updatedChapter.read) {\n                    updatedChapter = updatedChapter.copy(\n                        read = true,\n                        lastPageRead = dbChapter.lastPageRead,\n                    )\n                } else if (updatedChapter.lastPageRead == 0L && dbChapter.lastPageRead != 0L) {\n                    updatedChapter = updatedChapter.copy(\n                        lastPageRead = dbChapter.lastPageRead,\n                    )\n                }\n                updatedChapter\n            }\n            .partition { it.id > 0 }\n\n        insertNewChapters(newChapters)\n        updateExistingChapters(existingChapters)\n    }\n\n    private fun Chapter.forComparison() =\n        this.copy(id = 0L, mangaId = 0L, dateFetch = 0L, dateUpload = 0L, lastModifiedAt = 0L, version = 0L)\n\n    private suspend fun insertNewChapters(chapters: List<Chapter>) {\n        handler.await(true) {\n            chapters.forEach { chapter ->\n                chaptersQueries.insert(\n                    chapter.mangaId,\n                    chapter.url,\n                    chapter.name,\n                    chapter.scanlator,\n                    chapter.read,\n                    chapter.bookmark,\n                    chapter.lastPageRead,\n                    chapter.chapterNumber,\n                    chapter.sourceOrder,\n                    chapter.dateFetch,\n                    chapter.dateUpload,\n                    chapter.version,\n                )\n            }\n        }\n    }\n\n    private suspend fun updateExistingChapters(chapters: List<Chapter>) {\n        handler.await(true) {\n            chapters.forEach { chapter ->\n                chaptersQueries.update(\n                    mangaId = null,\n                    url = null,\n                    name = null,\n                    scanlator = null,\n                    read = chapter.read,\n                    bookmark = chapter.bookmark,\n                    lastPageRead = chapter.lastPageRead,\n                    chapterNumber = null,\n                    sourceOrder = null,\n                    dateFetch = null,\n                    dateUpload = null,\n                    chapterId = chapter.id,\n                    version = chapter.version,\n                    isSyncing = 0,\n                )\n            }\n        }\n    }\n\n    /**\n     * Inserts manga and returns id\n     *\n     * @return id of [Manga], null if not found\n     */\n    private suspend fun insertManga(manga: Manga): Long {\n        return handler.awaitOneExecutable(true) {\n            mangasQueries.insert(\n                source = manga.source,\n                url = manga.url,\n                artist = manga.artist,\n                author = manga.author,\n                description = manga.description,\n                genre = manga.genre,\n                title = manga.title,\n                status = manga.status,\n                thumbnailUrl = manga.thumbnailUrl,\n                favorite = manga.favorite,\n                lastUpdate = manga.lastUpdate,\n                nextUpdate = 0L,\n                calculateInterval = 0L,\n                initialized = manga.initialized,\n                viewerFlags = manga.viewerFlags,\n                chapterFlags = manga.chapterFlags,\n                coverLastModified = manga.coverLastModified,\n                dateAdded = manga.dateAdded,\n                updateStrategy = manga.updateStrategy,\n                version = manga.version,\n                notes = manga.notes,\n            )\n            mangasQueries.selectLastInsertedRowId()\n        }\n    }\n\n    private suspend fun restoreMangaDetails(\n        manga: Manga,\n        chapters: List<BackupChapter>,\n        categories: List<Long>,\n        backupCategories: List<BackupCategory>,\n        history: List<BackupHistory>,\n        tracks: List<BackupTracking>,\n        excludedScanlators: List<String>,\n    ): Manga {\n        restoreCategories(manga, categories, backupCategories)\n        restoreChapters(manga, chapters)\n        restoreTracking(manga, tracks)\n        restoreHistory(history)\n        restoreExcludedScanlators(manga, excludedScanlators)\n        updateManga.awaitUpdateFetchInterval(manga, now, currentFetchWindow)\n        return manga\n    }\n\n    /**\n     * Restores the categories a manga is in.\n     *\n     * @param manga the manga whose categories have to be restored.\n     * @param categories the categories to restore.\n     */\n    private suspend fun restoreCategories(\n        manga: Manga,\n        categories: List<Long>,\n        backupCategories: List<BackupCategory>,\n    ) {\n        val dbCategories = getCategories.await()\n        val dbCategoriesByName = dbCategories.associateBy { it.name }\n\n        val backupCategoriesByOrder = backupCategories.associateBy { it.order }\n\n        val mangaCategoriesToUpdate = categories.mapNotNull { backupCategoryOrder ->\n            backupCategoriesByOrder[backupCategoryOrder]?.let { backupCategory ->\n                dbCategoriesByName[backupCategory.name]?.let { dbCategory ->\n                    Pair(manga.id, dbCategory.id)\n                }\n            }\n        }\n\n        if (mangaCategoriesToUpdate.isNotEmpty()) {\n            handler.await(true) {\n                mangas_categoriesQueries.deleteMangaCategoryByMangaId(manga.id)\n                mangaCategoriesToUpdate.forEach { (mangaId, categoryId) ->\n                    mangas_categoriesQueries.insert(mangaId, categoryId)\n                }\n            }\n        }\n    }\n\n    private suspend fun restoreHistory(backupHistory: List<BackupHistory>) {\n        val toUpdate = backupHistory.mapNotNull { history ->\n            val dbHistory = handler.awaitOneOrNull { historyQueries.getHistoryByChapterUrl(history.url) }\n            val item = history.getHistoryImpl()\n\n            if (dbHistory == null) {\n                val chapter = handler.awaitOneOrNull { chaptersQueries.getChapterByUrl(history.url) }\n                return@mapNotNull if (chapter == null) {\n                    // Chapter doesn't exist; skip\n                    null\n                } else {\n                    // New history entry\n                    item.copy(chapterId = chapter._id)\n                }\n            }\n\n            // Update history entry\n            item.copy(\n                id = dbHistory._id,\n                chapterId = dbHistory.chapter_id,\n                readAt = max(item.readAt?.time ?: 0L, dbHistory.last_read?.time ?: 0L)\n                    .takeIf { it > 0L }\n                    ?.let { Date(it) },\n                readDuration = max(item.readDuration, dbHistory.time_read) - dbHistory.time_read,\n            )\n        }\n\n        if (toUpdate.isNotEmpty()) {\n            handler.await(true) {\n                toUpdate.forEach {\n                    historyQueries.upsert(\n                        it.chapterId,\n                        it.readAt,\n                        it.readDuration,\n                    )\n                }\n            }\n        }\n    }\n\n    private suspend fun restoreTracking(manga: Manga, backupTracks: List<BackupTracking>) {\n        val dbTrackByTrackerId = getTracks.await(manga.id).associateBy { it.trackerId }\n\n        val (existingTracks, newTracks) = backupTracks\n            .mapNotNull {\n                val track = it.getTrackImpl()\n                val dbTrack = dbTrackByTrackerId[track.trackerId]\n                    ?: // New track\n                    return@mapNotNull track.copy(\n                        id = 0, // Let DB assign new ID\n                        mangaId = manga.id,\n                    )\n\n                if (track.forComparison() == dbTrack.forComparison()) {\n                    // Same state; skip\n                    return@mapNotNull null\n                }\n\n                // Update to an existing track\n                dbTrack.copy(\n                    remoteId = track.remoteId,\n                    libraryId = track.libraryId,\n                    lastChapterRead = max(dbTrack.lastChapterRead, track.lastChapterRead),\n                )\n            }\n            .partition { it.id > 0 }\n\n        if (newTracks.isNotEmpty()) {\n            insertTrack.awaitAll(newTracks)\n        }\n        if (existingTracks.isNotEmpty()) {\n            handler.await(true) {\n                existingTracks.forEach { track ->\n                    manga_syncQueries.update(\n                        track.mangaId,\n                        track.trackerId,\n                        track.remoteId,\n                        track.libraryId,\n                        track.title,\n                        track.lastChapterRead,\n                        track.totalChapters,\n                        track.status,\n                        track.score,\n                        track.remoteUrl,\n                        track.startDate,\n                        track.finishDate,\n                        track.private,\n                        track.id,\n                    )\n                }\n            }\n        }\n    }\n\n    private fun Track.forComparison() = this.copy(id = 0L, mangaId = 0L)\n\n    /**\n     * Restores the excluded scanlators for the manga.\n     *\n     * @param manga the manga whose excluded scanlators have to be restored.\n     * @param excludedScanlators the excluded scanlators to restore.\n     */\n    private suspend fun restoreExcludedScanlators(manga: Manga, excludedScanlators: List<String>) {\n        if (excludedScanlators.isEmpty()) return\n        val existingExcludedScanlators = handler.awaitList {\n            excluded_scanlatorsQueries.getExcludedScanlatorsByMangaId(manga.id)\n        }\n        val toInsert = excludedScanlators.filter { it !in existingExcludedScanlators }\n        if (toInsert.isNotEmpty()) {\n            handler.await {\n                toInsert.forEach {\n                    excluded_scanlatorsQueries.insert(manga.id, it)\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceRestorer.kt",
    "content": "package eu.kanade.tachiyomi.data.backup.restore.restorers\n\nimport android.content.Context\nimport android.util.Log\nimport eu.kanade.tachiyomi.data.backup.create.BackupCreateJob\nimport eu.kanade.tachiyomi.data.backup.models.BackupCategory\nimport eu.kanade.tachiyomi.data.backup.models.BackupPreference\nimport eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences\nimport eu.kanade.tachiyomi.data.backup.models.BooleanPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.FloatPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.IntPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.LongPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.StringPreferenceValue\nimport eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateJob\nimport eu.kanade.tachiyomi.source.sourcePreferences\nimport tachiyomi.core.common.preference.AndroidPreferenceStore\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.plusAssign\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass PreferenceRestorer(\n    private val context: Context,\n    private val getCategories: GetCategories = Injekt.get(),\n    private val preferenceStore: PreferenceStore = Injekt.get(),\n) {\n    suspend fun restoreApp(\n        preferences: List<BackupPreference>,\n        backupCategories: List<BackupCategory>?,\n    ) {\n        restorePreferences(\n            preferences,\n            preferenceStore,\n            backupCategories,\n        )\n\n        LibraryUpdateJob.setupTask(context)\n        BackupCreateJob.setupTask(context)\n    }\n\n    suspend fun restoreSource(preferences: List<BackupSourcePreferences>) {\n        preferences.forEach {\n            val sourcePrefs = AndroidPreferenceStore(context, sourcePreferences(it.sourceKey))\n            restorePreferences(it.prefs, sourcePrefs)\n        }\n    }\n\n    private suspend fun restorePreferences(\n        toRestore: List<BackupPreference>,\n        preferenceStore: PreferenceStore,\n        backupCategories: List<BackupCategory>? = null,\n    ) {\n        val allCategories = if (backupCategories != null) getCategories.await() else emptyList()\n        val categoriesByName = allCategories.associateBy { it.name }\n        val backupCategoriesById = backupCategories?.associateBy { it.id.toString() }.orEmpty()\n        val prefs = preferenceStore.getAll()\n        toRestore.forEach { (key, value) ->\n            try {\n                when (value) {\n                    is IntPreferenceValue -> {\n                        if (prefs[key] is Int?) {\n                            val newValue = if (key == LibraryPreferences.DEFAULT_CATEGORY_PREF_KEY) {\n                                backupCategoriesById[value.value.toString()]\n                                    ?.let { categoriesByName[it.name]?.id?.toInt() }\n                            } else {\n                                value.value\n                            }\n\n                            newValue?.let { preferenceStore.getInt(key).set(it) }\n                        }\n                    }\n                    is LongPreferenceValue -> {\n                        if (prefs[key] is Long?) {\n                            preferenceStore.getLong(key).set(value.value)\n                        }\n                    }\n                    is FloatPreferenceValue -> {\n                        if (prefs[key] is Float?) {\n                            preferenceStore.getFloat(key).set(value.value)\n                        }\n                    }\n                    is StringPreferenceValue -> {\n                        if (prefs[key] is String?) {\n                            preferenceStore.getString(key).set(value.value)\n                        }\n                    }\n                    is BooleanPreferenceValue -> {\n                        if (prefs[key] is Boolean?) {\n                            preferenceStore.getBoolean(key).set(value.value)\n                        }\n                    }\n                    is StringSetPreferenceValue -> {\n                        if (prefs[key] is Set<*>?) {\n                            val restored = restoreCategoriesPreference(\n                                key,\n                                value.value,\n                                preferenceStore,\n                                backupCategoriesById,\n                                categoriesByName,\n                            )\n                            if (!restored) preferenceStore.getStringSet(key).set(value.value)\n                        }\n                    }\n                }\n            } catch (e: Exception) {\n                Log.e(\"PreferenceRestorer\", \"Failed to restore preference <$key>\", e)\n            }\n        }\n    }\n\n    private fun restoreCategoriesPreference(\n        key: String,\n        value: Set<String>,\n        preferenceStore: PreferenceStore,\n        backupCategoriesById: Map<String, BackupCategory>,\n        categoriesByName: Map<String, Category>,\n    ): Boolean {\n        val categoryPreferences = LibraryPreferences.categoryPreferenceKeys + DownloadPreferences.categoryPreferenceKeys\n        if (key !in categoryPreferences) return false\n\n        val ids = value.mapNotNull {\n            backupCategoriesById[it]?.name?.let { name ->\n                categoriesByName[name]?.id?.toString()\n            }\n        }\n\n        if (ids.isNotEmpty()) {\n            preferenceStore.getStringSet(key) += ids\n        }\n        return true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt",
    "content": "package eu.kanade.tachiyomi.data.cache\n\nimport android.content.Context\nimport android.text.format.Formatter\nimport com.jakewharton.disklrucache.DiskLruCache\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport eu.kanade.tachiyomi.util.storage.saveTo\nimport kotlinx.serialization.json.Json\nimport logcat.LogPriority\nimport okhttp3.Response\nimport okio.buffer\nimport okio.sink\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport java.io.File\nimport java.io.IOException\n\n/**\n * Class used to create chapter cache\n * For each image in a chapter a file is created\n * For each chapter a Json list is created and converted to a file.\n * The files are in format *md5key*.0\n *\n * @param context the application context.\n */\nclass ChapterCache(\n    private val context: Context,\n    private val json: Json,\n) {\n\n    /** Cache class used for cache management. */\n    private val diskCache = DiskLruCache.open(\n        File(context.cacheDir, \"chapter_disk_cache\"),\n        PARAMETER_APP_VERSION,\n        PARAMETER_VALUE_COUNT,\n        PARAMETER_CACHE_SIZE,\n    )\n\n    /**\n     * Returns directory of cache.\n     */\n    private val cacheDir: File = diskCache.directory\n\n    /**\n     * Returns real size of directory.\n     */\n    private val realSize: Long\n        get() = DiskUtil.getDirectorySize(cacheDir)\n\n    /**\n     * Returns real size of directory in human readable format.\n     */\n    val readableSize: String\n        get() = Formatter.formatFileSize(context, realSize)\n\n    /**\n     * Get page list from cache.\n     *\n     * @param chapter the chapter.\n     * @return the list of pages.\n     */\n    fun getPageListFromCache(chapter: Chapter): List<Page> {\n        // Get the key for the chapter.\n        val key = DiskUtil.hashKeyForDisk(getKey(chapter))\n\n        // Convert JSON string to list of objects. Throws an exception if snapshot is null\n        return diskCache.get(key).use {\n            json.decodeFromString(it.getString(0))\n        }\n    }\n\n    /**\n     * Add page list to disk cache.\n     *\n     * @param chapter the chapter.\n     * @param pages list of pages.\n     */\n    fun putPageListToCache(chapter: Chapter, pages: List<Page>) {\n        // Convert list of pages to json string.\n        val cachedValue = json.encodeToString(pages)\n\n        // Initialize the editor (edits the values for an entry).\n        var editor: DiskLruCache.Editor? = null\n\n        try {\n            // Get editor from md5 key.\n            val key = DiskUtil.hashKeyForDisk(getKey(chapter))\n            editor = diskCache.edit(key) ?: return\n\n            // Write chapter urls to cache.\n            editor.newOutputStream(0).sink().buffer().use {\n                it.write(cachedValue.toByteArray())\n                it.flush()\n            }\n\n            diskCache.flush()\n            editor.commit()\n            editor.abortUnlessCommitted()\n        } catch (e: Exception) {\n            logcat(LogPriority.WARN, e) { \"Failed to put page list to cache\" }\n            // Ignore.\n        } finally {\n            editor?.abortUnlessCommitted()\n        }\n    }\n\n    /**\n     * Returns true if image is in cache.\n     *\n     * @param imageUrl url of image.\n     * @return true if in cache otherwise false.\n     */\n    fun isImageInCache(imageUrl: String): Boolean {\n        return try {\n            diskCache.get(DiskUtil.hashKeyForDisk(imageUrl)).use { it != null }\n        } catch (_: IOException) {\n            false\n        }\n    }\n\n    /**\n     * Get image file from url.\n     *\n     * @param imageUrl url of image.\n     * @return path of image.\n     */\n    fun getImageFile(imageUrl: String): File {\n        // Get file from md5 key.\n        val imageName = DiskUtil.hashKeyForDisk(imageUrl) + \".0\"\n        return File(diskCache.directory, imageName)\n    }\n\n    /**\n     * Add image to cache.\n     *\n     * @param imageUrl url of image.\n     * @param response http response from page.\n     * @throws IOException image error.\n     */\n    @Throws(IOException::class)\n    fun putImageToCache(imageUrl: String, response: Response) {\n        // Initialize editor (edits the values for an entry).\n        var editor: DiskLruCache.Editor? = null\n\n        try {\n            // Get editor from md5 key.\n            val key = DiskUtil.hashKeyForDisk(imageUrl)\n            editor = diskCache.edit(key) ?: return\n\n            // Get OutputStream and write image with Okio.\n            response.body.source().saveTo(editor.newOutputStream(0))\n\n            diskCache.flush()\n            editor.commit()\n        } finally {\n            response.body.close()\n            editor?.abortUnlessCommitted()\n        }\n    }\n\n    fun clear(): Int {\n        var deletedFiles = 0\n        cacheDir.listFiles()?.forEach {\n            if (removeFileFromCache(it.name)) {\n                deletedFiles++\n            }\n        }\n        return deletedFiles\n    }\n\n    /**\n     * Remove file from cache.\n     *\n     * @param file name of file \"md5.0\".\n     * @return status of deletion for the file.\n     */\n    private fun removeFileFromCache(file: String): Boolean {\n        // Make sure we don't delete the journal file (keeps track of cache)\n        if (file == \"journal\" || file.startsWith(\"journal.\")) {\n            return false\n        }\n\n        return try {\n            // Remove the extension from the file to get the key of the cache\n            val key = file.substringBeforeLast(\".\")\n            // Remove file from cache\n            diskCache.remove(key)\n        } catch (e: Exception) {\n            logcat(LogPriority.WARN, e) { \"Failed to remove file from cache\" }\n            false\n        }\n    }\n\n    private fun getKey(chapter: Chapter): String {\n        return \"${chapter.mangaId}${chapter.url}\"\n    }\n}\n\n/** Application cache version.  */\nprivate const val PARAMETER_APP_VERSION = 1\n\n/** The number of values per cache entry. Must be positive.  */\nprivate const val PARAMETER_VALUE_COUNT = 1\n\n/** The maximum number of bytes this cache should use to store.  */\nprivate const val PARAMETER_CACHE_SIZE = 100L * 1024 * 1024\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/cache/CoverCache.kt",
    "content": "package eu.kanade.tachiyomi.data.cache\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport tachiyomi.domain.manga.model.Manga\nimport java.io.File\nimport java.io.IOException\nimport java.io.InputStream\n\n/**\n * Class used to create cover cache.\n * It is used to store the covers of the library.\n * Names of files are created with the md5 of the thumbnail URL.\n *\n * @param context the application context.\n * @constructor creates an instance of the cover cache.\n */\nclass CoverCache(private val context: Context) {\n\n    companion object {\n        private const val COVERS_DIR = \"covers\"\n        private const val CUSTOM_COVERS_DIR = \"covers/custom\"\n    }\n\n    /**\n     * Cache directory used for cache management.\n     */\n    private val cacheDir = getCacheDir(COVERS_DIR)\n\n    private val customCoverCacheDir = getCacheDir(CUSTOM_COVERS_DIR)\n\n    /**\n     * Returns the cover from cache.\n     *\n     * @param mangaThumbnailUrl thumbnail url for the manga.\n     * @return cover image.\n     */\n    fun getCoverFile(mangaThumbnailUrl: String?): File? {\n        return mangaThumbnailUrl?.let {\n            File(cacheDir, DiskUtil.hashKeyForDisk(it))\n        }\n    }\n\n    /**\n     * Returns the custom cover from cache.\n     *\n     * @param mangaId the manga id.\n     * @return cover image.\n     */\n    fun getCustomCoverFile(mangaId: Long?): File {\n        return File(customCoverCacheDir, DiskUtil.hashKeyForDisk(mangaId.toString()))\n    }\n\n    /**\n     * Saves the given stream as the manga's custom cover to cache.\n     *\n     * @param manga the manga.\n     * @param inputStream the stream to copy.\n     * @throws IOException if there's any error.\n     */\n    @Throws(IOException::class)\n    fun setCustomCoverToCache(manga: Manga, inputStream: InputStream) {\n        getCustomCoverFile(manga.id).outputStream().use {\n            inputStream.copyTo(it)\n        }\n    }\n\n    /**\n     * Delete the cover files of the manga from the cache.\n     *\n     * @param manga the manga.\n     * @param deleteCustomCover whether the custom cover should be deleted.\n     * @return number of files that were deleted.\n     */\n    fun deleteFromCache(manga: Manga, deleteCustomCover: Boolean = false): Int {\n        var deleted = 0\n\n        getCoverFile(manga.thumbnailUrl)?.let {\n            if (it.exists() && it.delete()) ++deleted\n        }\n\n        if (deleteCustomCover) {\n            if (deleteCustomCover(manga.id)) ++deleted\n        }\n\n        return deleted\n    }\n\n    /**\n     * Delete custom cover of the manga from the cache\n     *\n     * @param mangaId the manga id.\n     * @return whether the cover was deleted.\n     */\n    fun deleteCustomCover(mangaId: Long?): Boolean {\n        return getCustomCoverFile(mangaId).let {\n            it.exists() && it.delete()\n        }\n    }\n\n    private fun getCacheDir(dir: String): File {\n        return context.getExternalFilesDir(dir)\n            ?: File(context.filesDir, dir).also { it.mkdirs() }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/coil/BufferedSourceFetcher.kt",
    "content": "package eu.kanade.tachiyomi.data.coil\n\nimport coil3.ImageLoader\nimport coil3.decode.DataSource\nimport coil3.decode.ImageSource\nimport coil3.fetch.FetchResult\nimport coil3.fetch.Fetcher\nimport coil3.fetch.SourceFetchResult\nimport coil3.request.Options\nimport okio.BufferedSource\n\nclass BufferedSourceFetcher(\n    private val data: BufferedSource,\n    private val options: Options,\n) : Fetcher {\n\n    override suspend fun fetch(): FetchResult {\n        return SourceFetchResult(\n            source = ImageSource(\n                source = data,\n                fileSystem = options.fileSystem,\n            ),\n            mimeType = null,\n            dataSource = DataSource.MEMORY,\n        )\n    }\n\n    class Factory : Fetcher.Factory<BufferedSource> {\n\n        override fun create(\n            data: BufferedSource,\n            options: Options,\n            imageLoader: ImageLoader,\n        ): Fetcher {\n            return BufferedSourceFetcher(data, options)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt",
    "content": "package eu.kanade.tachiyomi.data.coil\n\nimport androidx.core.net.toUri\nimport coil3.Extras\nimport coil3.ImageLoader\nimport coil3.decode.DataSource\nimport coil3.decode.ImageSource\nimport coil3.disk.DiskCache\nimport coil3.fetch.FetchResult\nimport coil3.fetch.Fetcher\nimport coil3.fetch.SourceFetchResult\nimport coil3.getOrDefault\nimport coil3.request.Options\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.coil.MangaCoverFetcher.Companion.USE_CUSTOM_COVER_KEY\nimport eu.kanade.tachiyomi.network.await\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport logcat.LogPriority\nimport okhttp3.CacheControl\nimport okhttp3.Call\nimport okhttp3.Request\nimport okhttp3.Response\nimport okio.FileSystem\nimport okio.Path.Companion.toOkioPath\nimport okio.Source\nimport okio.buffer\nimport okio.sink\nimport okio.source\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.injectLazy\nimport java.io.File\nimport java.io.IOException\n\n/**\n * A [Fetcher] that fetches cover image for [Manga] object.\n *\n * It uses [Manga.thumbnailUrl] if custom cover is not set by the user.\n * Disk caching for library items is handled by [CoverCache], otherwise\n * handled by Coil's [DiskCache].\n *\n * Available request parameter:\n * - [USE_CUSTOM_COVER_KEY]: Use custom cover if set by user, default is true\n */\nclass MangaCoverFetcher(\n    private val url: String?,\n    private val isLibraryManga: Boolean,\n    private val options: Options,\n    private val coverFileLazy: Lazy<File?>,\n    private val customCoverFileLazy: Lazy<File>,\n    private val diskCacheKeyLazy: Lazy<String>,\n    private val sourceLazy: Lazy<HttpSource?>,\n    private val callFactoryLazy: Lazy<Call.Factory>,\n    private val imageLoader: ImageLoader,\n) : Fetcher {\n\n    private val diskCacheKey: String\n        get() = diskCacheKeyLazy.value\n\n    override suspend fun fetch(): FetchResult {\n        // Use custom cover if exists\n        val useCustomCover = options.extras.getOrDefault(USE_CUSTOM_COVER_KEY)\n        if (useCustomCover) {\n            val customCoverFile = customCoverFileLazy.value\n            if (customCoverFile.exists()) {\n                return fileLoader(customCoverFile)\n            }\n        }\n\n        // diskCacheKey is thumbnail_url\n        if (url == null) error(\"No cover specified\")\n        return when (getResourceType(url)) {\n            Type.File -> fileLoader(File(url.substringAfter(\"file://\")))\n            Type.URI -> fileUriLoader(url)\n            Type.URL -> httpLoader()\n            null -> error(\"Invalid image\")\n        }\n    }\n\n    private fun fileLoader(file: File): FetchResult {\n        return SourceFetchResult(\n            source = ImageSource(\n                file = file.toOkioPath(),\n                fileSystem = FileSystem.SYSTEM,\n                diskCacheKey = diskCacheKey,\n            ),\n            mimeType = \"image/*\",\n            dataSource = DataSource.DISK,\n        )\n    }\n\n    private fun fileUriLoader(uri: String): FetchResult {\n        val source = UniFile.fromUri(options.context, uri.toUri())!!\n            .openInputStream()\n            .source()\n            .buffer()\n        return SourceFetchResult(\n            source = ImageSource(source = source, fileSystem = FileSystem.SYSTEM),\n            mimeType = \"image/*\",\n            dataSource = DataSource.DISK,\n        )\n    }\n\n    private suspend fun httpLoader(): FetchResult {\n        // Only cache separately if it's a library item\n        val libraryCoverCacheFile = if (isLibraryManga) {\n            coverFileLazy.value ?: error(\"No cover specified\")\n        } else {\n            null\n        }\n        if (libraryCoverCacheFile?.exists() == true && options.diskCachePolicy.readEnabled) {\n            return fileLoader(libraryCoverCacheFile)\n        }\n\n        var snapshot = readFromDiskCache()\n        try {\n            // Fetch from disk cache\n            if (snapshot != null) {\n                val snapshotCoverCache = moveSnapshotToCoverCache(snapshot, libraryCoverCacheFile)\n                if (snapshotCoverCache != null) {\n                    // Read from cover cache after added to library\n                    return fileLoader(snapshotCoverCache)\n                }\n\n                // Read from snapshot\n                return SourceFetchResult(\n                    source = snapshot.toImageSource(),\n                    mimeType = \"image/*\",\n                    dataSource = DataSource.DISK,\n                )\n            }\n\n            // Fetch from network\n            val response = executeNetworkRequest()\n            val responseBody = checkNotNull(response.body) { \"Null response source\" }\n            try {\n                // Read from cover cache after library manga cover updated\n                val responseCoverCache = writeResponseToCoverCache(response, libraryCoverCacheFile)\n                if (responseCoverCache != null) {\n                    return fileLoader(responseCoverCache)\n                }\n\n                // Read from disk cache\n                snapshot = writeToDiskCache(response)\n                if (snapshot != null) {\n                    return SourceFetchResult(\n                        source = snapshot.toImageSource(),\n                        mimeType = \"image/*\",\n                        dataSource = DataSource.NETWORK,\n                    )\n                }\n\n                // Read from response if cache is unused or unusable\n                return SourceFetchResult(\n                    source = ImageSource(source = responseBody.source(), fileSystem = FileSystem.SYSTEM),\n                    mimeType = \"image/*\",\n                    dataSource = if (response.cacheResponse != null) DataSource.DISK else DataSource.NETWORK,\n                )\n            } catch (e: Exception) {\n                responseBody.close()\n                throw e\n            }\n        } catch (e: Exception) {\n            snapshot?.close()\n            throw e\n        }\n    }\n\n    private suspend fun executeNetworkRequest(): Response {\n        val client = sourceLazy.value?.client ?: callFactoryLazy.value\n        val response = client.newCall(newRequest()).await()\n        if (!response.isSuccessful && response.code != HTTP_NOT_MODIFIED) {\n            response.close()\n            throw IOException(response.message)\n        }\n        return response\n    }\n\n    private fun newRequest(): Request {\n        val request = Request.Builder().apply {\n            url(url!!)\n\n            val sourceHeaders = sourceLazy.value?.headers\n            if (sourceHeaders != null) {\n                headers(sourceHeaders)\n            }\n        }\n\n        when {\n            options.networkCachePolicy.readEnabled -> {\n                // don't take up okhttp cache\n                request.cacheControl(CACHE_CONTROL_NO_STORE)\n            }\n            else -> {\n                // This causes the request to fail with a 504 Unsatisfiable Request.\n                request.cacheControl(CACHE_CONTROL_NO_NETWORK_NO_CACHE)\n            }\n        }\n\n        return request.build()\n    }\n\n    private fun moveSnapshotToCoverCache(snapshot: DiskCache.Snapshot, cacheFile: File?): File? {\n        if (cacheFile == null) return null\n        return try {\n            imageLoader.diskCache?.run {\n                fileSystem.source(snapshot.data).use { input ->\n                    writeSourceToCoverCache(input, cacheFile)\n                }\n                remove(diskCacheKey)\n            }\n            cacheFile.takeIf { it.exists() }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to write snapshot data to cover cache ${cacheFile.name}\" }\n            null\n        }\n    }\n\n    private fun writeResponseToCoverCache(response: Response, cacheFile: File?): File? {\n        if (cacheFile == null || !options.diskCachePolicy.writeEnabled) return null\n        return try {\n            response.peekBody(Long.MAX_VALUE).source().use { input ->\n                writeSourceToCoverCache(input, cacheFile)\n            }\n            cacheFile.takeIf { it.exists() }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to write response data to cover cache ${cacheFile.name}\" }\n            null\n        }\n    }\n\n    private fun writeSourceToCoverCache(input: Source, cacheFile: File) {\n        cacheFile.parentFile?.mkdirs()\n        cacheFile.delete()\n        try {\n            cacheFile.sink().buffer().use { output ->\n                output.writeAll(input)\n            }\n        } catch (e: Exception) {\n            cacheFile.delete()\n            throw e\n        }\n    }\n\n    private fun readFromDiskCache(): DiskCache.Snapshot? {\n        return if (options.diskCachePolicy.readEnabled) {\n            imageLoader.diskCache?.openSnapshot(diskCacheKey)\n        } else {\n            null\n        }\n    }\n\n    private fun writeToDiskCache(\n        response: Response,\n    ): DiskCache.Snapshot? {\n        val diskCache = imageLoader.diskCache\n        val editor = diskCache?.openEditor(diskCacheKey) ?: return null\n        try {\n            diskCache.fileSystem.write(editor.data) {\n                response.body.source().readAll(this)\n            }\n            return editor.commitAndOpenSnapshot()\n        } catch (e: Exception) {\n            try {\n                editor.abort()\n            } catch (ignored: Exception) {\n            }\n            throw e\n        }\n    }\n\n    private fun DiskCache.Snapshot.toImageSource(): ImageSource {\n        return ImageSource(\n            file = data,\n            fileSystem = FileSystem.SYSTEM,\n            diskCacheKey = diskCacheKey,\n            closeable = this,\n        )\n    }\n\n    private fun getResourceType(cover: String?): Type? {\n        return when {\n            cover.isNullOrEmpty() -> null\n            cover.startsWith(\"http\", true) || cover.startsWith(\"Custom-\", true) -> Type.URL\n            cover.startsWith(\"/\") || cover.startsWith(\"file://\") -> Type.File\n            cover.startsWith(\"content\") -> Type.URI\n            else -> null\n        }\n    }\n\n    private enum class Type {\n        File,\n        URI,\n        URL,\n    }\n\n    class MangaFactory(\n        private val callFactoryLazy: Lazy<Call.Factory>,\n    ) : Fetcher.Factory<Manga> {\n\n        private val coverCache: CoverCache by injectLazy()\n        private val sourceManager: SourceManager by injectLazy()\n\n        override fun create(data: Manga, options: Options, imageLoader: ImageLoader): Fetcher {\n            return MangaCoverFetcher(\n                url = data.thumbnailUrl,\n                isLibraryManga = data.favorite,\n                options = options,\n                coverFileLazy = lazy { coverCache.getCoverFile(data.thumbnailUrl) },\n                customCoverFileLazy = lazy { coverCache.getCustomCoverFile(data.id) },\n                diskCacheKeyLazy = lazy { imageLoader.components.key(data, options)!! },\n                sourceLazy = lazy { sourceManager.get(data.source) as? HttpSource },\n                callFactoryLazy = callFactoryLazy,\n                imageLoader = imageLoader,\n            )\n        }\n    }\n\n    class MangaCoverFactory(\n        private val callFactoryLazy: Lazy<Call.Factory>,\n    ) : Fetcher.Factory<MangaCover> {\n\n        private val coverCache: CoverCache by injectLazy()\n        private val sourceManager: SourceManager by injectLazy()\n\n        override fun create(data: MangaCover, options: Options, imageLoader: ImageLoader): Fetcher {\n            return MangaCoverFetcher(\n                url = data.url,\n                isLibraryManga = data.isMangaFavorite,\n                options = options,\n                coverFileLazy = lazy { coverCache.getCoverFile(data.url) },\n                customCoverFileLazy = lazy { coverCache.getCustomCoverFile(data.mangaId) },\n                diskCacheKeyLazy = lazy { imageLoader.components.key(data, options)!! },\n                sourceLazy = lazy { sourceManager.get(data.sourceId) as? HttpSource },\n                callFactoryLazy = callFactoryLazy,\n                imageLoader = imageLoader,\n            )\n        }\n    }\n\n    companion object {\n        val USE_CUSTOM_COVER_KEY = Extras.Key(true)\n\n        private val CACHE_CONTROL_NO_STORE = CacheControl.Builder().noStore().build()\n        private val CACHE_CONTROL_NO_NETWORK_NO_CACHE = CacheControl.Builder().noCache().onlyIfCached().build()\n\n        private const val HTTP_NOT_MODIFIED = 304\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverKeyer.kt",
    "content": "package eu.kanade.tachiyomi.data.coil\n\nimport coil3.key.Keyer\nimport coil3.request.Options\nimport eu.kanade.domain.manga.model.hasCustomCover\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport tachiyomi.domain.manga.model.MangaCover\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport tachiyomi.domain.manga.model.Manga as DomainManga\n\nclass MangaKeyer : Keyer<DomainManga> {\n    override fun key(data: DomainManga, options: Options): String {\n        return if (data.hasCustomCover()) {\n            \"${data.id};${data.coverLastModified}\"\n        } else {\n            \"${data.thumbnailUrl};${data.coverLastModified}\"\n        }\n    }\n}\n\nclass MangaCoverKeyer(\n    private val coverCache: CoverCache = Injekt.get(),\n) : Keyer<MangaCover> {\n    override fun key(data: MangaCover, options: Options): String {\n        return if (coverCache.getCustomCoverFile(data.mangaId).exists()) {\n            \"${data.mangaId};${data.lastModified}\"\n        } else {\n            \"${data.url};${data.lastModified}\"\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt",
    "content": "package eu.kanade.tachiyomi.data.coil\n\nimport android.graphics.Bitmap\nimport coil3.ImageLoader\nimport coil3.asImage\nimport coil3.decode.DecodeResult\nimport coil3.decode.DecodeUtils\nimport coil3.decode.Decoder\nimport coil3.decode.ImageSource\nimport coil3.fetch.SourceFetchResult\nimport coil3.request.Options\nimport coil3.request.bitmapConfig\nimport okio.BufferedSource\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.decoder.ImageDecoder\n\n/**\n * A [Decoder] that uses built-in [ImageDecoder] to decode images that is not supported by the system.\n */\nclass TachiyomiImageDecoder(private val resources: ImageSource, private val options: Options) : Decoder {\n\n    override suspend fun decode(): DecodeResult {\n        val decoder = resources.sourceOrNull()?.use {\n            ImageDecoder.newInstance(it.inputStream(), options.cropBorders, displayProfile)\n        }\n\n        check(decoder != null && decoder.width > 0 && decoder.height > 0) { \"Failed to initialize decoder\" }\n\n        val srcWidth = decoder.width\n        val srcHeight = decoder.height\n\n        val dstWidth = options.size.widthPx(options.scale) { srcWidth }\n        val dstHeight = options.size.heightPx(options.scale) { srcHeight }\n\n        val sampleSize = DecodeUtils.calculateInSampleSize(\n            srcWidth = srcWidth,\n            srcHeight = srcHeight,\n            dstWidth = dstWidth,\n            dstHeight = dstHeight,\n            scale = options.scale,\n        )\n\n        var bitmap = decoder.decode(sampleSize = sampleSize)\n        decoder.recycle()\n\n        check(bitmap != null) { \"Failed to decode image\" }\n\n        if (options.bitmapConfig == Bitmap.Config.HARDWARE && ImageUtil.canUseHardwareBitmap(bitmap)) {\n            val hwBitmap = bitmap.copy(Bitmap.Config.HARDWARE, false)\n            if (hwBitmap != null) {\n                bitmap.recycle()\n                bitmap = hwBitmap\n            }\n        }\n\n        return DecodeResult(\n            image = bitmap.asImage(),\n            isSampled = sampleSize > 1,\n        )\n    }\n\n    class Factory : Decoder.Factory {\n\n        override fun create(result: SourceFetchResult, options: Options, imageLoader: ImageLoader): Decoder? {\n            return if (options.customDecoder || isApplicable(result.source.source())) {\n                TachiyomiImageDecoder(result.source, options)\n            } else {\n                null\n            }\n        }\n\n        private fun isApplicable(source: BufferedSource): Boolean {\n            val type = source.peek().inputStream().use {\n                ImageUtil.findImageType(it)\n            }\n            return when (type) {\n                ImageUtil.ImageType.AVIF, ImageUtil.ImageType.JXL, ImageUtil.ImageType.HEIF -> true\n                else -> false\n            }\n        }\n\n        override fun equals(other: Any?) = other is Factory\n\n        override fun hashCode() = javaClass.hashCode()\n    }\n\n    companion object {\n        var displayProfile: ByteArray? = null\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/coil/Utils.kt",
    "content": "package eu.kanade.tachiyomi.data.coil\n\nimport coil3.Extras\nimport coil3.getExtra\nimport coil3.request.ImageRequest\nimport coil3.request.Options\nimport coil3.size.Dimension\nimport coil3.size.Scale\nimport coil3.size.Size\nimport coil3.size.isOriginal\nimport coil3.size.pxOrElse\n\ninternal inline fun Size.widthPx(scale: Scale, original: () -> Int): Int {\n    return if (isOriginal) original() else width.toPx(scale)\n}\n\ninternal inline fun Size.heightPx(scale: Scale, original: () -> Int): Int {\n    return if (isOriginal) original() else height.toPx(scale)\n}\n\ninternal fun Dimension.toPx(scale: Scale): Int = pxOrElse {\n    when (scale) {\n        Scale.FILL -> Int.MIN_VALUE\n        Scale.FIT -> Int.MAX_VALUE\n    }\n}\n\nfun ImageRequest.Builder.cropBorders(enable: Boolean) = apply {\n    extras[cropBordersKey] = enable\n}\n\nval Options.cropBorders: Boolean\n    get() = getExtra(cropBordersKey)\n\nprivate val cropBordersKey = Extras.Key(default = false)\n\nfun ImageRequest.Builder.customDecoder(enable: Boolean) = apply {\n    extras[customDecoderKey] = enable\n}\n\nval Options.customDecoder: Boolean\n    get() = getExtra(customDecoderKey)\n\nprivate val customDecoderKey = Extras.Key(default = false)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/database/models/Chapter.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.data.database.models\n\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport java.io.Serializable\nimport tachiyomi.domain.chapter.model.Chapter as DomainChapter\n\ninterface Chapter : SChapter, Serializable {\n\n    var id: Long?\n\n    var manga_id: Long?\n\n    var read: Boolean\n\n    var bookmark: Boolean\n\n    var last_page_read: Int\n\n    var date_fetch: Long\n\n    var source_order: Int\n\n    var last_modified: Long\n\n    var version: Long\n}\n\nval Chapter.isRecognizedNumber: Boolean\n    get() = chapter_number >= 0f\n\nfun Chapter.toDomainChapter(): DomainChapter? {\n    if (id == null || manga_id == null) return null\n    return DomainChapter(\n        id = id!!,\n        mangaId = manga_id!!,\n        read = read,\n        bookmark = bookmark,\n        lastPageRead = last_page_read.toLong(),\n        dateFetch = date_fetch,\n        sourceOrder = source_order.toLong(),\n        url = url,\n        name = name,\n        dateUpload = date_upload,\n        chapterNumber = chapter_number.toDouble(),\n        scanlator = scanlator,\n        lastModifiedAt = last_modified,\n        version = version,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/database/models/ChapterImpl.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.data.database.models\n\nclass ChapterImpl : Chapter {\n\n    override var id: Long? = null\n\n    override var manga_id: Long? = null\n\n    override lateinit var url: String\n\n    override lateinit var name: String\n\n    override var scanlator: String? = null\n\n    override var read: Boolean = false\n\n    override var bookmark: Boolean = false\n\n    override var last_page_read: Int = 0\n\n    override var date_fetch: Long = 0\n\n    override var date_upload: Long = 0\n\n    override var chapter_number: Float = 0f\n\n    override var source_order: Int = 0\n\n    override var last_modified: Long = 0\n\n    override var version: Long = 0\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (other == null || javaClass != other.javaClass) return false\n\n        val chapter = other as Chapter\n        if (url != chapter.url) return false\n        return id == chapter.id\n    }\n\n    override fun hashCode(): Int {\n        return url.hashCode() + id.hashCode()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/database/models/Track.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.data.database.models\n\nimport java.io.Serializable\n\ninterface Track : Serializable {\n\n    var id: Long?\n\n    var manga_id: Long\n\n    var tracker_id: Long\n\n    var remote_id: Long\n\n    var library_id: Long?\n\n    var title: String\n\n    var last_chapter_read: Double\n\n    var total_chapters: Long\n\n    var score: Double\n\n    var status: Long\n\n    var started_reading_date: Long\n\n    var finished_reading_date: Long\n\n    var tracking_url: String\n\n    var private: Boolean\n\n    fun copyPersonalFrom(other: Track, copyRemotePrivate: Boolean = true) {\n        last_chapter_read = other.last_chapter_read\n        score = other.score\n        status = other.status\n        started_reading_date = other.started_reading_date\n        finished_reading_date = other.finished_reading_date\n        if (copyRemotePrivate) private = other.private\n    }\n\n    companion object {\n        fun create(serviceId: Long): Track = TrackImpl().apply {\n            tracker_id = serviceId\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/database/models/TrackImpl.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.data.database.models\n\nclass TrackImpl : Track {\n\n    override var id: Long? = null\n\n    override var manga_id: Long = 0\n\n    override var tracker_id: Long = 0\n\n    override var remote_id: Long = 0\n\n    override var library_id: Long? = null\n\n    override lateinit var title: String\n\n    override var last_chapter_read: Double = 0.0\n\n    override var total_chapters: Long = 0\n\n    override var score: Double = 0.0\n\n    override var status: Long = 0\n\n    override var started_reading_date: Long = 0\n\n    override var finished_reading_date: Long = 0\n\n    override var tracking_url: String = \"\"\n\n    override var private: Boolean = false\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.app.Application\nimport android.content.Context\nimport androidx.core.net.toUri\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.ensureActive\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.debounce\nimport kotlinx.coroutines.flow.first\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.onStart\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.shareIn\nimport kotlinx.coroutines.flow.stateIn\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.sync.Mutex\nimport kotlinx.coroutines.sync.withLock\nimport kotlinx.coroutines.withTimeoutOrNull\nimport kotlinx.serialization.KSerializer\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.decodeFromByteArray\nimport kotlinx.serialization.descriptors.PrimitiveKind\nimport kotlinx.serialization.descriptors.PrimitiveSerialDescriptor\nimport kotlinx.serialization.descriptors.SerialDescriptor\nimport kotlinx.serialization.encodeToByteArray\nimport kotlinx.serialization.encoding.Decoder\nimport kotlinx.serialization.encoding.Encoder\nimport kotlinx.serialization.protobuf.ProtoBuf\nimport logcat.LogPriority\nimport tachiyomi.core.common.storage.extension\nimport tachiyomi.core.common.storage.nameWithoutExtension\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.storage.service.StorageManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.File\nimport kotlin.time.Duration.Companion.hours\nimport kotlin.time.Duration.Companion.seconds\n\n/**\n * Cache where we dump the downloads directory from the filesystem. This class is needed because\n * directory checking is expensive and it slows down the app. The cache is invalidated by the time\n * defined in [renewInterval] as we don't have any control over the filesystem and the user can\n * delete the folders at any time without the app noticing.\n */\nclass DownloadCache(\n    private val context: Context,\n    private val provider: DownloadProvider = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val extensionManager: ExtensionManager = Injekt.get(),\n    private val storageManager: StorageManager = Injekt.get(),\n) {\n\n    private val scope = CoroutineScope(Dispatchers.IO)\n\n    private val _changes: Channel<Unit> = Channel(Channel.UNLIMITED)\n    val changes = _changes.receiveAsFlow()\n        .onStart { emit(Unit) }\n        .shareIn(scope, SharingStarted.Lazily, 1)\n\n    /**\n     * The interval after which this cache should be invalidated. 1 hour shouldn't cause major\n     * issues, as the cache is only used for UI feedback.\n     */\n    private val renewInterval = 1.hours.inWholeMilliseconds\n\n    /**\n     * The last time the cache was refreshed.\n     */\n    private var lastRenew = 0L\n    private var renewalJob: Job? = null\n\n    private val _isInitializing = MutableStateFlow(false)\n    val isInitializing = _isInitializing\n        .debounce(1000L) // Don't notify if it finishes quickly enough\n        .stateIn(scope, SharingStarted.WhileSubscribed(), false)\n\n    private val diskCacheFile: File\n        get() = File(context.cacheDir, \"dl_index_cache_v3\")\n\n    private val rootDownloadsDirMutex = Mutex()\n    private var rootDownloadsDir = RootDirectory(storageManager.getDownloadsDirectory())\n\n    init {\n        // Attempt to read cache file\n        scope.launch {\n            rootDownloadsDirMutex.withLock {\n                try {\n                    if (diskCacheFile.exists()) {\n                        val diskCache = diskCacheFile.inputStream().use {\n                            ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())\n                        }\n                        rootDownloadsDir = diskCache\n                        lastRenew = System.currentTimeMillis()\n                    }\n                } catch (e: Throwable) {\n                    logcat(LogPriority.ERROR, e) { \"Failed to initialize from disk cache\" }\n                    diskCacheFile.delete()\n                }\n            }\n        }\n\n        storageManager.changes\n            .onEach { invalidateCache() }\n            .launchIn(scope)\n    }\n\n    /**\n     * Returns true if the chapter is downloaded.\n     *\n     * @param chapterName the name of the chapter to query.\n     * @param chapterScanlator scanlator of the chapter to query\n     * @param chapterUrl the url of the chapter to query\n     * @param mangaTitle the title of the manga to query.\n     * @param sourceId the id of the source of the chapter.\n     * @param skipCache whether to skip the directory cache and check in the filesystem.\n     */\n    fun isChapterDownloaded(\n        chapterName: String,\n        chapterScanlator: String?,\n        chapterUrl: String,\n        mangaTitle: String,\n        sourceId: Long,\n        skipCache: Boolean,\n    ): Boolean {\n        if (skipCache) {\n            val source = sourceManager.getOrStub(sourceId)\n            return provider.findChapterDir(chapterName, chapterScanlator, chapterUrl, mangaTitle, source) != null\n        }\n\n        renewCache()\n\n        val sourceDir = rootDownloadsDir.sourceDirs[sourceId]\n        if (sourceDir != null) {\n            val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(mangaTitle)]\n            if (mangaDir != null) {\n                return provider.getValidChapterDirNames(\n                    chapterName,\n                    chapterScanlator,\n                    chapterUrl,\n                ).any { it in mangaDir.chapterDirs }\n            }\n        }\n        return false\n    }\n\n    /**\n     * Returns the amount of downloaded chapters.\n     */\n    fun getTotalDownloadCount(): Int {\n        renewCache()\n\n        return rootDownloadsDir.sourceDirs.values.sumOf { sourceDir ->\n            sourceDir.mangaDirs.values.sumOf { mangaDir ->\n                mangaDir.chapterDirs.size\n            }\n        }\n    }\n\n    /**\n     * Returns the amount of downloaded chapters for a manga.\n     *\n     * @param manga the manga to check.\n     */\n    fun getDownloadCount(manga: Manga): Int {\n        renewCache()\n\n        val sourceDir = rootDownloadsDir.sourceDirs[manga.source]\n        if (sourceDir != null) {\n            val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(manga.title)]\n            if (mangaDir != null) {\n                return mangaDir.chapterDirs.size\n            }\n        }\n        return 0\n    }\n\n    /**\n     * Adds a chapter that has just been download to this cache.\n     *\n     * @param chapterDirName the downloaded chapter's directory name.\n     * @param mangaUniFile the directory of the manga.\n     * @param manga the manga of the chapter.\n     */\n    suspend fun addChapter(chapterDirName: String, mangaUniFile: UniFile, manga: Manga) {\n        rootDownloadsDirMutex.withLock {\n            // Retrieve the cached source directory or cache a new one\n            var sourceDir = rootDownloadsDir.sourceDirs[manga.source]\n            if (sourceDir == null) {\n                val source = sourceManager.get(manga.source) ?: return\n                val sourceUniFile = provider.findSourceDir(source) ?: return\n                sourceDir = SourceDirectory(sourceUniFile)\n                rootDownloadsDir.sourceDirs += manga.source to sourceDir\n            }\n\n            // Retrieve the cached manga directory or cache a new one\n            val mangaDirName = provider.getMangaDirName(manga.title)\n            var mangaDir = sourceDir.mangaDirs[mangaDirName]\n            if (mangaDir == null) {\n                mangaDir = MangaDirectory(mangaUniFile)\n                sourceDir.mangaDirs += mangaDirName to mangaDir\n            }\n\n            // Save the chapter directory\n            mangaDir.chapterDirs += chapterDirName\n        }\n\n        notifyChanges()\n    }\n\n    /**\n     * Removes a chapter that has been deleted from this cache.\n     *\n     * @param chapter the chapter to remove.\n     * @param manga the manga of the chapter.\n     */\n    suspend fun removeChapter(chapter: Chapter, manga: Manga) {\n        rootDownloadsDirMutex.withLock {\n            val sourceDir = rootDownloadsDir.sourceDirs[manga.source] ?: return\n            val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(manga.title)] ?: return\n            provider.getValidChapterDirNames(chapter.name, chapter.scanlator, chapter.url).forEach {\n                if (it in mangaDir.chapterDirs) {\n                    mangaDir.chapterDirs -= it\n                }\n            }\n        }\n\n        notifyChanges()\n    }\n\n    /**\n     * Removes a list of chapters that have been deleted from this cache.\n     *\n     * @param chapters the list of chapter to remove.\n     * @param manga the manga of the chapter.\n     */\n    suspend fun removeChapters(chapters: List<Chapter>, manga: Manga) {\n        rootDownloadsDirMutex.withLock {\n            val sourceDir = rootDownloadsDir.sourceDirs[manga.source] ?: return\n            val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(manga.title)] ?: return\n            chapters.forEach { chapter ->\n                provider.getValidChapterDirNames(chapter.name, chapter.scanlator, chapter.url).forEach {\n                    if (it in mangaDir.chapterDirs) {\n                        mangaDir.chapterDirs -= it\n                    }\n                }\n            }\n        }\n\n        notifyChanges()\n    }\n\n    /**\n     * Removes a manga that has been deleted from this cache.\n     *\n     * @param manga the manga to remove.\n     */\n    suspend fun removeManga(manga: Manga) {\n        rootDownloadsDirMutex.withLock {\n            val sourceDir = rootDownloadsDir.sourceDirs[manga.source] ?: return\n            val mangaDirName = provider.getMangaDirName(manga.title)\n            if (sourceDir.mangaDirs.containsKey(mangaDirName)) {\n                sourceDir.mangaDirs -= mangaDirName\n            }\n        }\n\n        notifyChanges()\n    }\n\n    /**\n     * Renames a manga in this cache.\n     *\n     * @param manga the manga being renamed.\n     * @param mangaUniFile the manga's new directory.\n     * @param newTitle the manga's new title.\n     */\n    suspend fun renameManga(manga: Manga, mangaUniFile: UniFile, newTitle: String) {\n        rootDownloadsDirMutex.withLock {\n            val sourceDir = rootDownloadsDir.sourceDirs[manga.source] ?: return\n            val oldMangaDirName = provider.getMangaDirName(manga.title)\n            var oldChapterDirs: MutableSet<String>? = null\n            // Save the old name's cached chapter dirs\n            if (sourceDir.mangaDirs.containsKey(oldMangaDirName)) {\n                oldChapterDirs = sourceDir.mangaDirs[oldMangaDirName]?.chapterDirs\n                sourceDir.mangaDirs -= oldMangaDirName\n            }\n\n            // Retrieve/create the cached manga directory for new name\n            val newMangaDirName = provider.getMangaDirName(newTitle)\n            var mangaDir = sourceDir.mangaDirs[newMangaDirName]\n            if (mangaDir == null) {\n                mangaDir = MangaDirectory(mangaUniFile)\n                sourceDir.mangaDirs += newMangaDirName to mangaDir\n            }\n\n            // Add the old chapters to new name's cache\n            if (!oldChapterDirs.isNullOrEmpty()) {\n                mangaDir.chapterDirs += oldChapterDirs\n            }\n        }\n\n        notifyChanges()\n    }\n\n    suspend fun removeSource(source: Source) {\n        rootDownloadsDirMutex.withLock {\n            rootDownloadsDir.sourceDirs -= source.id\n        }\n\n        notifyChanges()\n    }\n\n    fun invalidateCache() {\n        lastRenew = 0L\n        renewalJob?.cancel()\n        diskCacheFile.delete()\n        renewCache()\n    }\n\n    /**\n     * Renews the downloads cache.\n     */\n    private fun renewCache() {\n        // Avoid renewing cache if in the process nor too often\n        if (lastRenew + renewInterval >= System.currentTimeMillis() || renewalJob?.isActive == true) {\n            return\n        }\n\n        renewalJob = scope.launchIO {\n            if (lastRenew == 0L) {\n                _isInitializing.emit(true)\n            }\n\n            // Try to wait until extensions and sources have loaded\n            var sources = emptyList<Source>()\n            withTimeoutOrNull(30.seconds) {\n                extensionManager.isInitialized.first { it }\n                sourceManager.isInitialized.first { it }\n\n                sources = getSources()\n            }\n\n            val sourceMap = sources.associate { provider.getSourceDirName(it).lowercase() to it.id }\n\n            rootDownloadsDirMutex.withLock {\n                val updatedRootDir = RootDirectory(storageManager.getDownloadsDirectory())\n\n                updatedRootDir.sourceDirs = updatedRootDir.dir?.listFiles().orEmpty()\n                    .filter { it.isDirectory && !it.name.isNullOrBlank() }\n                    .mapNotNull { dir ->\n                        val sourceId = sourceMap[dir.name!!.lowercase()]\n                        sourceId?.let { it to SourceDirectory(dir) }\n                    }\n                    .toMap()\n\n                updatedRootDir.sourceDirs.values.map { sourceDir ->\n                    async {\n                        sourceDir.mangaDirs = sourceDir.dir?.listFiles().orEmpty()\n                            .filter { it.isDirectory && !it.name.isNullOrBlank() }\n                            .associate { it.name!! to MangaDirectory(it) }\n\n                        sourceDir.mangaDirs.values.forEach { mangaDir ->\n                            val chapterDirs = mangaDir.dir?.listFiles().orEmpty()\n                                .mapNotNull {\n                                    when {\n                                        // Ignore incomplete downloads\n                                        it.name?.endsWith(Downloader.TMP_DIR_SUFFIX) == true -> null\n                                        // Folder of images\n                                        it.isDirectory -> it.name\n                                        // CBZ files\n                                        it.isFile && it.extension == \"cbz\" -> it.nameWithoutExtension\n                                        // Anything else is irrelevant\n                                        else -> null\n                                    }\n                                }\n                                .toMutableSet()\n\n                            mangaDir.chapterDirs = chapterDirs\n                        }\n                    }\n                }\n                    .awaitAll()\n\n                rootDownloadsDir = updatedRootDir\n            }\n\n            _isInitializing.emit(false)\n        }.also {\n            it.invokeOnCompletion(onCancelling = true) { exception ->\n                if (exception != null && exception !is CancellationException) {\n                    logcat(LogPriority.ERROR, exception) { \"DownloadCache: failed to create cache\" }\n                }\n                lastRenew = System.currentTimeMillis()\n                notifyChanges()\n            }\n        }\n\n        // Mainly to notify the indexing notifier UI\n        notifyChanges()\n    }\n\n    private fun getSources(): List<Source> {\n        return sourceManager.getOnlineSources() + sourceManager.getStubSources()\n    }\n\n    private fun notifyChanges() {\n        scope.launchNonCancellable {\n            _changes.send(Unit)\n        }\n        updateDiskCache()\n    }\n\n    private var updateDiskCacheJob: Job? = null\n    private fun updateDiskCache() {\n        updateDiskCacheJob?.cancel()\n        updateDiskCacheJob = scope.launchIO {\n            delay(1000)\n            ensureActive()\n            val bytes = ProtoBuf.encodeToByteArray(rootDownloadsDir)\n            ensureActive()\n            try {\n                diskCacheFile.writeBytes(bytes)\n            } catch (e: Throwable) {\n                logcat(\n                    priority = LogPriority.ERROR,\n                    throwable = e,\n                    message = { \"Failed to write disk cache file\" },\n                )\n            }\n        }\n    }\n}\n\n/**\n * Class to store the files under the root downloads directory.\n */\n@Serializable\nprivate class RootDirectory(\n    @Serializable(with = UniFileAsStringSerializer::class)\n    val dir: UniFile?,\n    var sourceDirs: Map<Long, SourceDirectory> = mapOf(),\n)\n\n/**\n * Class to store the files under a source directory.\n */\n@Serializable\nprivate class SourceDirectory(\n    @Serializable(with = UniFileAsStringSerializer::class)\n    val dir: UniFile?,\n    var mangaDirs: Map<String, MangaDirectory> = mapOf(),\n)\n\n/**\n * Class to store the files under a manga directory.\n */\n@Serializable\nprivate class MangaDirectory(\n    @Serializable(with = UniFileAsStringSerializer::class)\n    val dir: UniFile?,\n    var chapterDirs: MutableSet<String> = mutableSetOf(),\n)\n\nprivate object UniFileAsStringSerializer : KSerializer<UniFile?> {\n    override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor(\"UniFile\", PrimitiveKind.STRING)\n\n    override fun serialize(encoder: Encoder, value: UniFile?) {\n        return if (value == null) {\n            encoder.encodeNull()\n        } else {\n            encoder.encodeString(value.uri.toString())\n        }\n    }\n\n    override fun deserialize(decoder: Decoder): UniFile? {\n        return if (decoder.decodeNotNullMark()) {\n            UniFile.fromUri(Injekt.get<Application>(), decoder.decodeString().toUri())\n        } else {\n            decoder.decodeNull()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadJob.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.content.Context\nimport android.content.pm.ServiceInfo\nimport android.os.Build\nimport androidx.lifecycle.asFlow\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.ForegroundInfo\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.WorkInfo\nimport androidx.work.WorkManager\nimport androidx.work.WorkerParameters\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.system.NetworkState\nimport eu.kanade.tachiyomi.util.system.activeNetworkState\nimport eu.kanade.tachiyomi.util.system.networkStateFlow\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport eu.kanade.tachiyomi.util.system.setForegroundSafely\nimport kotlinx.coroutines.coroutineScope\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combineTransform\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onEach\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * This worker is used to manage the downloader. The system can decide to stop the worker, in\n * which case the downloader is also stopped. It's also stopped while there's no network available.\n */\nclass DownloadJob(context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) {\n\n    private val downloadManager: DownloadManager = Injekt.get()\n    private val downloadPreferences: DownloadPreferences = Injekt.get()\n\n    override suspend fun getForegroundInfo(): ForegroundInfo {\n        val notification = applicationContext.notificationBuilder(Notifications.CHANNEL_DOWNLOADER_PROGRESS) {\n            setContentTitle(applicationContext.getString(R.string.download_notifier_downloader_title))\n            setSmallIcon(android.R.drawable.stat_sys_download)\n        }.build()\n        return ForegroundInfo(\n            Notifications.ID_DOWNLOAD_CHAPTER_PROGRESS,\n            notification,\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n                ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC\n            } else {\n                0\n            },\n        )\n    }\n\n    override suspend fun doWork(): Result {\n        var networkCheck = checkNetworkState(\n            applicationContext.activeNetworkState(),\n            downloadPreferences.downloadOnlyOverWifi.get(),\n        )\n        var active = networkCheck && downloadManager.downloaderStart()\n\n        if (!active) {\n            return Result.failure()\n        }\n\n        setForegroundSafely()\n\n        coroutineScope {\n            combineTransform(\n                applicationContext.networkStateFlow(),\n                downloadPreferences.downloadOnlyOverWifi.changes(),\n                transform = { a, b -> emit(checkNetworkState(a, b)) },\n            )\n                .onEach { networkCheck = it }\n                .launchIn(this)\n        }\n\n        // Keep the worker running when needed\n        while (active) {\n            active = !isStopped && downloadManager.isRunning && networkCheck\n        }\n\n        return Result.success()\n    }\n\n    private fun checkNetworkState(state: NetworkState, requireWifi: Boolean): Boolean {\n        return if (state.isOnline) {\n            val noWifi = requireWifi && !state.isWifi\n            if (noWifi) {\n                downloadManager.downloaderStop(\n                    applicationContext.getString(R.string.download_notifier_text_only_wifi),\n                )\n            }\n            !noWifi\n        } else {\n            downloadManager.downloaderStop(applicationContext.getString(R.string.download_notifier_no_network))\n            false\n        }\n    }\n\n    companion object {\n        private const val TAG = \"Downloader\"\n\n        fun start(context: Context) {\n            val request = OneTimeWorkRequestBuilder<DownloadJob>()\n                .addTag(TAG)\n                .build()\n            WorkManager.getInstance(context)\n                .enqueueUniqueWork(TAG, ExistingWorkPolicy.REPLACE, request)\n        }\n\n        fun stop(context: Context) {\n            WorkManager.getInstance(context)\n                .cancelUniqueWork(TAG)\n        }\n\n        fun isRunning(context: Context): Boolean {\n            return WorkManager.getInstance(context)\n                .getWorkInfosForUniqueWork(TAG)\n                .get()\n                .let { list -> list.count { it.state == WorkInfo.State.RUNNING } == 1 }\n        }\n\n        fun isRunningFlow(context: Context): Flow<Boolean> {\n            return WorkManager.getInstance(context)\n                .getWorkInfosForUniqueWorkLiveData(TAG)\n                .asFlow()\n                .map { list -> list.count { it.state == WorkInfo.State.RUNNING } == 1 }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.Page\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.asFlow\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.emitAll\nimport kotlinx.coroutines.flow.flatMapLatest\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.merge\nimport kotlinx.coroutines.flow.onStart\nimport kotlinx.coroutines.runBlocking\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.storage.extension\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * This class is used to manage chapter downloads in the application. It must be instantiated once\n * and retrieved through dependency injection. You can use this class to queue new chapters or query\n * downloaded chapters.\n */\nclass DownloadManager(\n    private val context: Context,\n    private val provider: DownloadProvider = Injekt.get(),\n    private val cache: DownloadCache = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val downloadPreferences: DownloadPreferences = Injekt.get(),\n) {\n\n    /**\n     * Downloader whose only task is to download chapters.\n     */\n    private val downloader = Downloader(context, provider, cache)\n\n    val isRunning: Boolean\n        get() = downloader.isRunning\n\n    /**\n     * Queue to delay the deletion of a list of chapters until triggered.\n     */\n    private val pendingDeleter = DownloadPendingDeleter(context)\n\n    val queueState\n        get() = downloader.queueState\n\n    // For use by DownloadService only\n    fun downloaderStart() = downloader.start()\n    fun downloaderStop(reason: String? = null) = downloader.stop(reason)\n\n    val isDownloaderRunning\n        get() = DownloadJob.isRunningFlow(context)\n\n    /**\n     * Tells the downloader to begin downloads.\n     */\n    fun startDownloads() {\n        if (downloader.isRunning) return\n\n        if (DownloadJob.isRunning(context)) {\n            downloader.start()\n        } else {\n            DownloadJob.start(context)\n        }\n    }\n\n    /**\n     * Tells the downloader to pause downloads.\n     */\n    fun pauseDownloads() {\n        downloader.pause()\n        downloader.stop()\n    }\n\n    /**\n     * Empties the download queue.\n     */\n    fun clearQueue() {\n        downloader.clearQueue()\n        downloader.stop()\n    }\n\n    /**\n     * Returns the download from queue if the chapter is queued for download\n     * else it will return null which means that the chapter is not queued for download\n     *\n     * @param chapterId the chapter to check.\n     */\n    fun getQueuedDownloadOrNull(chapterId: Long): Download? {\n        return queueState.value.find { it.chapter.id == chapterId }\n    }\n\n    fun startDownloadNow(chapterId: Long) {\n        val existingDownload = getQueuedDownloadOrNull(chapterId)\n        // If not in queue try to start a new download\n        val toAdd = existingDownload ?: runBlocking { Download.fromChapterId(chapterId) } ?: return\n        queueState.value.toMutableList().apply {\n            existingDownload?.let { remove(it) }\n            add(0, toAdd)\n            reorderQueue(this)\n        }\n        startDownloads()\n    }\n\n    /**\n     * Reorders the download queue.\n     *\n     * @param downloads value to set the download queue to\n     */\n    fun reorderQueue(downloads: List<Download>) {\n        downloader.updateQueue(downloads)\n    }\n\n    /**\n     * Tells the downloader to enqueue the given list of chapters.\n     *\n     * @param manga the manga of the chapters.\n     * @param chapters the list of chapters to enqueue.\n     * @param autoStart whether to start the downloader after enqueing the chapters.\n     */\n    fun downloadChapters(manga: Manga, chapters: List<Chapter>, autoStart: Boolean = true) {\n        downloader.queueChapters(manga, chapters, autoStart)\n    }\n\n    /**\n     * Tells the downloader to enqueue the given list of downloads at the start of the queue.\n     *\n     * @param downloads the list of downloads to enqueue.\n     */\n    fun addDownloadsToStartOfQueue(downloads: List<Download>) {\n        if (downloads.isEmpty()) return\n        queueState.value.toMutableList().apply {\n            addAll(0, downloads)\n            reorderQueue(this)\n        }\n        if (!DownloadJob.isRunning(context)) startDownloads()\n    }\n\n    /**\n     * Builds the page list of a downloaded chapter.\n     *\n     * @param source the source of the chapter.\n     * @param manga the manga of the chapter.\n     * @param chapter the downloaded chapter.\n     * @return the list of pages from the chapter.\n     */\n    fun buildPageList(source: Source, manga: Manga, chapter: Chapter): List<Page> {\n        val chapterDir = provider.findChapterDir(chapter.name, chapter.scanlator, chapter.url, manga.title, source)\n        val files = chapterDir?.listFiles().orEmpty()\n            .filter { it.isFile && ImageUtil.isImage(it.name) { it.openInputStream() } }\n\n        if (files.isEmpty()) {\n            throw Exception(context.stringResource(MR.strings.page_list_empty_error))\n        }\n\n        return files.sortedBy { it.name }\n            .mapIndexed { i, file ->\n                Page(i, uri = file.uri).apply { status = Page.State.Ready }\n            }\n    }\n\n    /**\n     * Returns true if the chapter is downloaded.\n     *\n     * @param chapterName the name of the chapter to query.\n     * @param chapterScanlator scanlator of the chapter to query\n     * @param mangaTitle the title of the manga to query.\n     * @param sourceId the id of the source of the chapter.\n     * @param skipCache whether to skip the directory cache and check in the filesystem.\n     */\n    fun isChapterDownloaded(\n        chapterName: String,\n        chapterScanlator: String?,\n        chapterUrl: String,\n        mangaTitle: String,\n        sourceId: Long,\n        skipCache: Boolean = false,\n    ): Boolean {\n        return cache.isChapterDownloaded(chapterName, chapterScanlator, chapterUrl, mangaTitle, sourceId, skipCache)\n    }\n\n    /**\n     * Returns the amount of downloaded chapters.\n     */\n    fun getDownloadCount(): Int {\n        return cache.getTotalDownloadCount()\n    }\n\n    /**\n     * Returns the amount of downloaded chapters for a manga.\n     *\n     * @param manga the manga to check.\n     */\n    fun getDownloadCount(manga: Manga): Int {\n        return cache.getDownloadCount(manga)\n    }\n\n    fun cancelQueuedDownloads(downloads: List<Download>) {\n        removeFromDownloadQueue(downloads.map { it.chapter })\n    }\n\n    /**\n     * Deletes the directories of a list of downloaded chapters.\n     *\n     * @param chapters the list of chapters to delete.\n     * @param manga the manga of the chapters.\n     * @param source the source of the chapters.\n     */\n    fun deleteChapters(chapters: List<Chapter>, manga: Manga, source: Source) {\n        launchIO {\n            val filteredChapters = getChaptersToDelete(chapters, manga)\n            if (filteredChapters.isEmpty()) {\n                return@launchIO\n            }\n\n            removeFromDownloadQueue(filteredChapters)\n\n            val (mangaDir, chapterDirs) = provider.findChapterDirs(filteredChapters, manga, source)\n            chapterDirs.forEach { it.delete() }\n            cache.removeChapters(filteredChapters, manga)\n\n            // Delete manga directory if empty\n            if (mangaDir?.listFiles()?.isEmpty() == true) {\n                deleteManga(manga, source, removeQueued = false)\n            }\n        }\n    }\n\n    /**\n     * Deletes the directory of a downloaded manga.\n     *\n     * @param manga the manga to delete.\n     * @param source the source of the manga.\n     * @param removeQueued whether to also remove queued downloads.\n     */\n    fun deleteManga(manga: Manga, source: Source, removeQueued: Boolean = true) {\n        launchIO {\n            if (removeQueued) {\n                downloader.removeFromQueue(manga)\n            }\n            provider.findMangaDir(manga.title, source)?.delete()\n            cache.removeManga(manga)\n\n            // Delete source directory if empty\n            val sourceDir = provider.findSourceDir(source)\n            if (sourceDir?.listFiles()?.isEmpty() == true) {\n                sourceDir.delete()\n                cache.removeSource(source)\n            }\n        }\n    }\n\n    private fun removeFromDownloadQueue(chapters: List<Chapter>) {\n        val wasRunning = downloader.isRunning\n        if (wasRunning) {\n            downloader.pause()\n        }\n\n        downloader.removeFromQueue(chapters)\n\n        if (wasRunning) {\n            if (queueState.value.isEmpty()) {\n                downloader.stop()\n            } else if (queueState.value.isNotEmpty()) {\n                downloader.start()\n            }\n        }\n    }\n\n    /**\n     * Adds a list of chapters to be deleted later.\n     *\n     * @param chapters the list of chapters to delete.\n     * @param manga the manga of the chapters.\n     */\n    suspend fun enqueueChaptersToDelete(chapters: List<Chapter>, manga: Manga) {\n        pendingDeleter.addChapters(getChaptersToDelete(chapters, manga), manga)\n    }\n\n    /**\n     * Triggers the execution of the deletion of pending chapters.\n     */\n    fun deletePendingChapters() {\n        val pendingChapters = pendingDeleter.getPendingChapters()\n        for ((manga, chapters) in pendingChapters) {\n            val source = sourceManager.get(manga.source) ?: continue\n            deleteChapters(chapters, manga, source)\n        }\n    }\n\n    /**\n     * Renames source download folder\n     *\n     * @param oldSource the old source.\n     * @param newSource the new source.\n     */\n    fun renameSource(oldSource: Source, newSource: Source) {\n        val oldFolder = provider.findSourceDir(oldSource) ?: return\n        val newName = provider.getSourceDirName(newSource)\n\n        if (oldFolder.name == newName) return\n\n        val capitalizationChanged = oldFolder.name.equals(newName, ignoreCase = true)\n        if (capitalizationChanged) {\n            val tempName = newName + Downloader.TMP_DIR_SUFFIX\n            if (!oldFolder.renameTo(tempName)) {\n                logcat(LogPriority.ERROR) { \"Failed to rename source download folder: ${oldFolder.name}\" }\n                return\n            }\n        }\n\n        if (!oldFolder.renameTo(newName)) {\n            logcat(LogPriority.ERROR) { \"Failed to rename source download folder: ${oldFolder.name}\" }\n        }\n    }\n\n    /**\n     * Renames manga download folder\n     *\n     * @param manga the manga\n     * @param newTitle the new manga title.\n     */\n    suspend fun renameManga(manga: Manga, newTitle: String) {\n        val source = sourceManager.getOrStub(manga.source)\n        val oldFolder = provider.findMangaDir(manga.title, source) ?: return\n        val newName = provider.getMangaDirName(newTitle)\n\n        if (oldFolder.name == newName) return\n\n        // just to be safe, don't allow downloads for this manga while renaming it\n        downloader.removeFromQueue(manga)\n\n        val capitalizationChanged = oldFolder.name.equals(newName, ignoreCase = true)\n        if (capitalizationChanged) {\n            val tempName = newName + Downloader.TMP_DIR_SUFFIX\n            if (!oldFolder.renameTo(tempName)) {\n                logcat(LogPriority.ERROR) { \"Failed to rename manga download folder: ${oldFolder.name}\" }\n                return\n            }\n        }\n\n        if (oldFolder.renameTo(newName)) {\n            cache.renameManga(manga, oldFolder, newTitle)\n        } else {\n            logcat(LogPriority.ERROR) { \"Failed to rename manga download folder: ${oldFolder.name}\" }\n        }\n    }\n\n    /**\n     * Renames an already downloaded chapter\n     *\n     * @param source the source of the manga.\n     * @param manga the manga of the chapter.\n     * @param oldChapter the existing chapter with the old name.\n     * @param newChapter the target chapter with the new name.\n     */\n    suspend fun renameChapter(source: Source, manga: Manga, oldChapter: Chapter, newChapter: Chapter) {\n        val oldNames = provider.getValidChapterDirNames(oldChapter.name, oldChapter.scanlator, oldChapter.url)\n        val mangaDir = provider.getMangaDir(manga.title, source).getOrElse { e ->\n            logcat(LogPriority.ERROR, e) { \"Manga download folder doesn't exist. Skipping renaming after source sync\" }\n            return\n        }\n\n        // Assume there's only 1 version of the chapter name formats present\n        val oldDownload = oldNames.asSequence()\n            .mapNotNull { mangaDir.findFile(it) }\n            .firstOrNull() ?: return\n\n        var newName = provider.getChapterDirName(newChapter.name, newChapter.scanlator, newChapter.url)\n        if (oldDownload.isFile && oldDownload.extension == \"cbz\") {\n            newName += \".cbz\"\n        }\n\n        if (oldDownload.name == newName) return\n\n        if (oldDownload.renameTo(newName)) {\n            cache.removeChapter(oldChapter, manga)\n            cache.addChapter(newName, mangaDir, manga)\n        } else {\n            logcat(LogPriority.ERROR) { \"Could not rename downloaded chapter: ${oldNames.joinToString()}\" }\n        }\n    }\n\n    private suspend fun getChaptersToDelete(chapters: List<Chapter>, manga: Manga): List<Chapter> {\n        // Retrieve the categories that are set to exclude from being deleted on read\n        val categoriesToExclude = downloadPreferences.removeExcludeCategories.get().map(String::toLong)\n\n        val categoriesForManga = getCategories.await(manga.id)\n            .map { it.id }\n            .ifEmpty { listOf(0) }\n        val filteredCategoryManga = if (categoriesForManga.intersect(categoriesToExclude).isNotEmpty()) {\n            chapters.filterNot { it.read }\n        } else {\n            chapters\n        }\n\n        return if (!downloadPreferences.removeBookmarkedChapters.get()) {\n            filteredCategoryManga.filterNot { it.bookmark }\n        } else {\n            filteredCategoryManga\n        }\n    }\n\n    fun statusFlow(): Flow<Download> = queueState\n        .flatMapLatest { downloads ->\n            downloads\n                .map { download ->\n                    download.statusFlow.drop(1).map { download }\n                }\n                .merge()\n        }\n        .onStart {\n            emitAll(\n                queueState.value.filter { download -> download.status == Download.State.DOWNLOADING }.asFlow(),\n            )\n        }\n\n    fun progressFlow(): Flow<Download> = queueState\n        .flatMapLatest { downloads ->\n            downloads\n                .map { download ->\n                    download.progressFlow.drop(1).map { download }\n                }\n                .merge()\n        }\n        .onStart {\n            emitAll(\n                queueState.value.filter { download -> download.status == Download.State.DOWNLOADING }\n                    .asFlow(),\n            )\n        }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.app.PendingIntent\nimport android.content.Context\nimport android.graphics.BitmapFactory\nimport androidx.core.app.NotificationCompat\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.data.notification.NotificationHandler\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.lang.chop\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport eu.kanade.tachiyomi.util.system.notify\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport java.util.regex.Pattern\n\n/**\n * DownloadNotifier is used to show notifications when downloading one or multiple chapters.\n *\n * @param context context of application\n */\ninternal class DownloadNotifier(private val context: Context) {\n\n    private val preferences: SecurityPreferences by injectLazy()\n\n    private val progressNotificationBuilder by lazy {\n        context.notificationBuilder(Notifications.CHANNEL_DOWNLOADER_PROGRESS) {\n            setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher))\n            setAutoCancel(false)\n            setOnlyAlertOnce(true)\n        }\n    }\n\n    private val errorNotificationBuilder by lazy {\n        context.notificationBuilder(Notifications.CHANNEL_DOWNLOADER_ERROR) {\n            setAutoCancel(false)\n        }\n    }\n\n    /**\n     * Status of download. Used for correct notification icon.\n     */\n    private var isDownloading = false\n\n    /**\n     * Shows a notification from this builder.\n     *\n     * @param id the id of the notification.\n     */\n    private fun NotificationCompat.Builder.show(id: Int) {\n        context.notify(id, build())\n    }\n\n    /**\n     * Dismiss the downloader's notification. Downloader error notifications use a different id, so\n     * those can only be dismissed by the user.\n     */\n    fun dismissProgress() {\n        context.cancelNotification(Notifications.ID_DOWNLOAD_CHAPTER_PROGRESS)\n    }\n\n    /**\n     * Called when download progress changes.\n     *\n     * @param download download object containing download information.\n     */\n    fun onProgressChange(download: Download) {\n        with(progressNotificationBuilder) {\n            if (!isDownloading) {\n                setSmallIcon(android.R.drawable.stat_sys_download)\n                clearActions()\n                // Open download manager when clicked\n                setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context))\n                isDownloading = true\n                // Pause action\n                addAction(\n                    R.drawable.ic_pause_24dp,\n                    context.stringResource(MR.strings.action_pause),\n                    NotificationReceiver.pauseDownloadsPendingBroadcast(context),\n                )\n                addAction(\n                    R.drawable.ic_book_24dp,\n                    context.stringResource(MR.strings.action_show_manga),\n                    NotificationReceiver.openEntryPendingActivity(context, download.manga.id),\n                )\n            }\n\n            val downloadingProgressText = context.stringResource(\n                MR.strings.chapter_downloading_progress,\n                download.downloadedImages,\n                download.pages!!.size,\n            )\n\n            if (preferences.hideNotificationContent.get()) {\n                setContentTitle(downloadingProgressText)\n                setContentText(null)\n            } else {\n                val title = download.manga.title.chop(15)\n                val quotedTitle = Pattern.quote(title)\n                val chapter = download.chapter.name.replaceFirst(\n                    \"$quotedTitle[\\\\s]*[-]*[\\\\s]*\".toRegex(RegexOption.IGNORE_CASE),\n                    \"\",\n                )\n                setContentTitle(\"$title - $chapter\".chop(30))\n                setContentText(downloadingProgressText)\n            }\n\n            setProgress(download.pages!!.size, download.downloadedImages, false)\n            setOngoing(true)\n\n            show(Notifications.ID_DOWNLOAD_CHAPTER_PROGRESS)\n        }\n    }\n\n    /**\n     * Show notification when download is paused.\n     */\n    fun onPaused() {\n        with(progressNotificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.chapter_paused))\n            setContentText(context.stringResource(MR.strings.download_notifier_download_paused))\n            setSmallIcon(R.drawable.ic_pause_24dp)\n            setProgress(0, 0, false)\n            setOngoing(false)\n            clearActions()\n            // Open download manager when clicked\n            setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context))\n            // Resume action\n            addAction(\n                R.drawable.ic_play_arrow_24dp,\n                context.stringResource(MR.strings.action_resume),\n                NotificationReceiver.resumeDownloadsPendingBroadcast(context),\n            )\n            // Clear action\n            addAction(\n                R.drawable.ic_close_24dp,\n                context.stringResource(MR.strings.action_cancel_all),\n                NotificationReceiver.clearDownloadsPendingBroadcast(context),\n            )\n\n            show(Notifications.ID_DOWNLOAD_CHAPTER_PROGRESS)\n        }\n\n        // Reset initial values\n        isDownloading = false\n    }\n\n    /**\n     * Resets the state once downloads are completed.\n     */\n    fun onComplete() {\n        dismissProgress()\n\n        // Reset states to default\n        isDownloading = false\n    }\n\n    /**\n     * Called when the downloader receives a warning.\n     *\n     * @param reason the text to show.\n     * @param timeout duration after which to automatically dismiss the notification.\n     * @param mangaId the id of the entry being warned about\n     * Only works on Android 8+.\n     */\n    fun onWarning(reason: String, timeout: Long? = null, contentIntent: PendingIntent? = null, mangaId: Long? = null) {\n        with(errorNotificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.download_notifier_downloader_title))\n            setStyle(NotificationCompat.BigTextStyle().bigText(reason))\n            setSmallIcon(R.drawable.ic_warning_white_24dp)\n            setAutoCancel(true)\n            clearActions()\n            setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context))\n            if (mangaId != null) {\n                addAction(\n                    R.drawable.ic_book_24dp,\n                    context.stringResource(MR.strings.action_show_manga),\n                    NotificationReceiver.openEntryPendingActivity(context, mangaId),\n                )\n            }\n            setProgress(0, 0, false)\n            timeout?.let { setTimeoutAfter(it) }\n            contentIntent?.let { setContentIntent(it) }\n\n            show(Notifications.ID_DOWNLOAD_CHAPTER_ERROR)\n        }\n\n        // Reset download information\n        isDownloading = false\n    }\n\n    /**\n     * Called when the downloader receives an error. It's shown as a separate notification to avoid\n     * being overwritten.\n     *\n     * @param error string containing error information.\n     * @param chapter string containing chapter title.\n     * @param mangaId the id of the entry that the error occurred on\n     */\n    fun onError(error: String? = null, chapter: String? = null, mangaTitle: String? = null, mangaId: Long? = null) {\n        // Create notification\n        with(errorNotificationBuilder) {\n            setContentTitle(\n                mangaTitle?.plus(\": $chapter\") ?: context.stringResource(MR.strings.download_notifier_downloader_title),\n            )\n            setContentText(error ?: context.stringResource(MR.strings.download_notifier_unknown_error))\n            setSmallIcon(R.drawable.ic_warning_white_24dp)\n            clearActions()\n            setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context))\n            if (mangaId != null) {\n                addAction(\n                    R.drawable.ic_book_24dp,\n                    context.stringResource(MR.strings.action_show_manga),\n                    NotificationReceiver.openEntryPendingActivity(context, mangaId),\n                )\n            }\n            setProgress(0, 0, false)\n\n            show(Notifications.ID_DOWNLOAD_CHAPTER_ERROR)\n        }\n\n        // Reset download information\n        isDownloading = false\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadPendingDeleter.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.content.Context\nimport androidx.core.content.edit\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.encodeToString\nimport kotlinx.serialization.json.Json\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * Class used to keep a list of chapters for future deletion.\n *\n * @param context the application context.\n */\nclass DownloadPendingDeleter(\n    context: Context,\n    private val json: Json = Injekt.get(),\n) {\n\n    /**\n     * Preferences used to store the list of chapters to delete.\n     */\n    private val preferences = context.getSharedPreferences(\"chapters_to_delete\", Context.MODE_PRIVATE)\n\n    /**\n     * Last added chapter, used to avoid decoding from the preference too often.\n     */\n    private var lastAddedEntry: Entry? = null\n\n    /**\n     * Adds a list of chapters for future deletion.\n     *\n     * @param chapters the chapters to be deleted.\n     * @param manga the manga of the chapters.\n     */\n    @Synchronized\n    fun addChapters(chapters: List<Chapter>, manga: Manga) {\n        val lastEntry = lastAddedEntry\n\n        val newEntry = if (lastEntry != null && lastEntry.manga.id == manga.id) {\n            // Append new chapters\n            val newChapters = lastEntry.chapters.addUniqueById(chapters)\n\n            // If no chapters were added, do nothing\n            if (newChapters.size == lastEntry.chapters.size) return\n\n            // Last entry matches the manga, reuse it to avoid decoding json from preferences\n            lastEntry.copy(chapters = newChapters)\n        } else {\n            val existingEntry = preferences.getString(manga.id.toString(), null)\n            if (existingEntry != null) {\n                // Existing entry found on preferences, decode json and add the new chapter\n                val savedEntry = json.decodeFromString<Entry>(existingEntry)\n\n                // Append new chapters\n                val newChapters = savedEntry.chapters.addUniqueById(chapters)\n\n                // If no chapters were added, do nothing\n                if (newChapters.size == savedEntry.chapters.size) return\n\n                savedEntry.copy(chapters = newChapters)\n            } else {\n                // No entry has been found yet, create a new one\n                Entry(chapters.map { it.toEntry() }, manga.toEntry())\n            }\n        }\n\n        // Save current state\n        val json = json.encodeToString(newEntry)\n        preferences.edit {\n            putString(newEntry.manga.id.toString(), json)\n        }\n        lastAddedEntry = newEntry\n    }\n\n    /**\n     * Returns the list of chapters to be deleted grouped by its manga.\n     *\n     * Note: the returned list of manga and chapters only contain basic information needed by the\n     * downloader, so don't use them for anything else.\n     */\n    @Synchronized\n    fun getPendingChapters(): Map<Manga, List<Chapter>> {\n        val entries = decodeAll()\n        preferences.edit {\n            clear()\n        }\n        lastAddedEntry = null\n\n        return entries.associate { (chapters, manga) ->\n            manga.toModel() to chapters.map { it.toModel() }\n        }\n    }\n\n    /**\n     * Decodes all the chapters from preferences.\n     */\n    private fun decodeAll(): List<Entry> {\n        return preferences.all.values.mapNotNull { rawEntry ->\n            try {\n                (rawEntry as? String)?.let { json.decodeFromString<Entry>(it) }\n            } catch (e: Exception) {\n                null\n            }\n        }\n    }\n\n    /**\n     * Returns a copy of chapter entries ensuring no duplicates by chapter id.\n     */\n    private fun List<ChapterEntry>.addUniqueById(chapters: List<Chapter>): List<ChapterEntry> {\n        val newList = toMutableList()\n        for (chapter in chapters) {\n            if (none { it.id == chapter.id }) {\n                newList.add(chapter.toEntry())\n            }\n        }\n        return newList\n    }\n\n    /**\n     * Returns a manga entry from a manga model.\n     */\n    private fun Manga.toEntry() = MangaEntry(id, url, title, source)\n\n    /**\n     * Returns a chapter entry from a chapter model.\n     */\n    private fun Chapter.toEntry() = ChapterEntry(id, url, name, scanlator)\n\n    /**\n     * Returns a manga model from a manga entry.\n     */\n    private fun MangaEntry.toModel() = Manga.create().copy(\n        url = url,\n        title = title,\n        source = source,\n        id = id,\n    )\n\n    /**\n     * Returns a chapter model from a chapter entry.\n     */\n    private fun ChapterEntry.toModel() = Chapter.create().copy(\n        id = id,\n        url = url,\n        name = name,\n        scanlator = scanlator,\n    )\n\n    /**\n     * Class used to save an entry of chapters with their manga into preferences.\n     */\n    @Serializable\n    private data class Entry(\n        val chapters: List<ChapterEntry>,\n        val manga: MangaEntry,\n    )\n\n    /**\n     * Class used to save an entry for a chapter into preferences.\n     */\n    @Serializable\n    private data class ChapterEntry(\n        val id: Long,\n        val url: String,\n        val name: String,\n        val scanlator: String? = null,\n    )\n\n    /**\n     * Class used to save an entry for a manga into preferences.\n     */\n    @Serializable\n    private data class MangaEntry(\n        val id: Long,\n        val url: String,\n        val title: String,\n        val source: Long,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.content.Context\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.util.lang.Hash.md5\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.storage.displayablePath\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.storage.service.StorageManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.IOException\n\n/**\n * This class is used to provide the directories where the downloads should be saved.\n * It uses the following path scheme: /<root downloads dir>/<source name>/<manga>/<chapter>\n *\n * @param context the application context.\n */\nclass DownloadProvider(\n    private val context: Context,\n    private val storageManager: StorageManager = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n) {\n\n    private val downloadsDir: UniFile?\n        get() = storageManager.getDownloadsDirectory()\n\n    /**\n     * Returns the download directory for a manga. For internal use only.\n     *\n     * @param mangaTitle the title of the manga to query.\n     * @param source the source of the manga.\n     */\n    internal fun getMangaDir(mangaTitle: String, source: Source): Result<UniFile> {\n        val downloadsDir = downloadsDir\n        if (downloadsDir == null) {\n            logcat(LogPriority.ERROR) { \"Failed to create download directory\" }\n            return Result.failure(\n                IOException(context.stringResource(MR.strings.storage_failed_to_create_download_directory)),\n            )\n        }\n\n        val sourceDirName = getSourceDirName(source)\n        val sourceDir = downloadsDir.createDirectory(sourceDirName)\n        if (sourceDir == null) {\n            val displayablePath = downloadsDir.displayablePath + \"/$sourceDirName\"\n            logcat(LogPriority.ERROR) { \"Failed to create source download directory: $displayablePath\" }\n            return Result.failure(\n                IOException(context.stringResource(MR.strings.storage_failed_to_create_directory, displayablePath)),\n            )\n        }\n\n        val mangaDirName = getMangaDirName(mangaTitle)\n        val mangaDir = sourceDir.createDirectory(mangaDirName)\n        if (mangaDir == null) {\n            val displayablePath = sourceDir.displayablePath + \"/$mangaDirName\"\n            logcat(LogPriority.ERROR) { \"Failed to create manga download directory: $displayablePath\" }\n            return Result.failure(\n                IOException(context.stringResource(MR.strings.storage_failed_to_create_directory, displayablePath)),\n            )\n        }\n\n        return Result.success(mangaDir)\n    }\n\n    /**\n     * Returns the download directory for a source if it exists.\n     *\n     * @param source the source to query.\n     */\n    fun findSourceDir(source: Source): UniFile? {\n        return downloadsDir?.findFile(getSourceDirName(source))\n    }\n\n    /**\n     * Returns the download directory for a manga if it exists.\n     *\n     * @param mangaTitle the title of the manga to query.\n     * @param source the source of the manga.\n     */\n    fun findMangaDir(mangaTitle: String, source: Source): UniFile? {\n        val sourceDir = findSourceDir(source)\n        return sourceDir?.findFile(getMangaDirName(mangaTitle))\n    }\n\n    /**\n     * Returns the download directory for a chapter if it exists.\n     *\n     * @param chapterName the name of the chapter to query.\n     * @param chapterScanlator scanlator of the chapter to query\n     * @param mangaTitle the title of the manga to query.\n     * @param source the source of the chapter.\n     */\n    fun findChapterDir(\n        chapterName: String,\n        chapterScanlator: String?,\n        chapterUrl: String,\n        mangaTitle: String,\n        source: Source,\n    ): UniFile? {\n        val mangaDir = findMangaDir(mangaTitle, source)\n        return getValidChapterDirNames(chapterName, chapterScanlator, chapterUrl).asSequence()\n            .mapNotNull { mangaDir?.findFile(it) }\n            .firstOrNull()\n    }\n\n    /**\n     * Returns a list of downloaded directories for the chapters that exist.\n     *\n     * @param chapters the chapters to query.\n     * @param manga the manga of the chapter.\n     * @param source the source of the chapter.\n     */\n    fun findChapterDirs(chapters: List<Chapter>, manga: Manga, source: Source): Pair<UniFile?, List<UniFile>> {\n        val mangaDir = findMangaDir(manga.title, source) ?: return null to emptyList()\n        return mangaDir to chapters.mapNotNull { chapter ->\n            getValidChapterDirNames(chapter.name, chapter.scanlator, chapter.url).asSequence()\n                .mapNotNull { mangaDir.findFile(it) }\n                .firstOrNull()\n        }\n    }\n\n    /**\n     * Returns the download directory name for a source.\n     *\n     * @param source the source to query.\n     */\n    fun getSourceDirName(source: Source): String {\n        return DiskUtil.buildValidFilename(\n            source.toString(),\n            disallowNonAscii = libraryPreferences.disallowNonAsciiFilenames.get(),\n        )\n    }\n\n    /**\n     * Returns the download directory name for a manga.\n     *\n     * @param mangaTitle the title of the manga to query.\n     */\n    fun getMangaDirName(mangaTitle: String): String {\n        return DiskUtil.buildValidFilename(\n            mangaTitle,\n            disallowNonAscii = libraryPreferences.disallowNonAsciiFilenames.get(),\n        )\n    }\n\n    /**\n     * Returns the chapter directory name for a chapter.\n     *\n     * @param chapterName the name of the chapter to query.\n     * @param chapterScanlator scanlator of the chapter to query.\n     * @param chapterUrl url of the chapter to query.\n     */\n    fun getChapterDirName(\n        chapterName: String,\n        chapterScanlator: String?,\n        chapterUrl: String,\n        disallowNonAsciiFilenames: Boolean = libraryPreferences.disallowNonAsciiFilenames.get(),\n    ): String {\n        var dirName = sanitizeChapterName(chapterName)\n        if (!chapterScanlator.isNullOrBlank()) {\n            dirName = chapterScanlator + \"_\" + dirName\n        }\n        // Subtract 7 bytes for hash and underscore, 4 bytes for .cbz\n        dirName = DiskUtil.buildValidFilename(dirName, DiskUtil.MAX_FILE_NAME_BYTES - 11, disallowNonAsciiFilenames)\n        dirName += \"_\" + md5(chapterUrl).take(6)\n        return dirName\n    }\n\n    /**\n     * Returns list of names that might have been previously used as\n     * the directory name for a chapter.\n     * Add to this list if naming pattern ever changes.\n     *\n     * @param chapterName the name of the chapter to query.\n     * @param chapterScanlator scanlator of the chapter to query.\n     * @param chapterUrl url of the chapter to query.\n     */\n    private fun getLegacyChapterDirNames(\n        chapterName: String,\n        chapterScanlator: String?,\n        chapterUrl: String,\n    ): List<String> {\n        val sanitizedChapterName = sanitizeChapterName(chapterName)\n        val chapterNameV1 = DiskUtil.buildValidFilename(\n            when {\n                !chapterScanlator.isNullOrBlank() -> \"${chapterScanlator}_$sanitizedChapterName\"\n                else -> sanitizedChapterName\n            },\n        )\n\n        // Get the filename that would be generated if the user were\n        // using the other value for the disallow non-ASCII\n        // filenames setting. This ensures that chapters downloaded\n        // before the user changed the setting can still be found.\n        val otherChapterDirName =\n            getChapterDirName(\n                chapterName,\n                chapterScanlator,\n                chapterUrl,\n                !libraryPreferences.disallowNonAsciiFilenames.get(),\n            )\n\n        return buildList(2) {\n            // Chapter name without hash (unable to handle duplicate\n            // chapter names)\n            add(chapterNameV1)\n            add(otherChapterDirName)\n        }\n    }\n\n    /**\n     * Return the new name for the chapter (in case it's empty or blank)\n     *\n     * @param chapterName the name of the chapter\n     */\n    private fun sanitizeChapterName(chapterName: String): String {\n        return chapterName.ifBlank {\n            \"Chapter\"\n        }\n    }\n\n    fun isChapterDirNameChanged(oldChapter: Chapter, newChapter: Chapter): Boolean {\n        return getChapterDirName(oldChapter.name, oldChapter.scanlator, oldChapter.url) !=\n            getChapterDirName(newChapter.name, newChapter.scanlator, newChapter.url)\n    }\n\n    /**\n     * Returns valid downloaded chapter directory names.\n     *\n     * @param chapter the domain chapter object.\n     */\n    fun getValidChapterDirNames(chapterName: String, chapterScanlator: String?, chapterUrl: String): List<String> {\n        val chapterDirName = getChapterDirName(chapterName, chapterScanlator, chapterUrl)\n        val legacyChapterDirNames = getLegacyChapterDirNames(chapterName, chapterScanlator, chapterUrl)\n\n        return buildList {\n            // Folder of images\n            add(chapterDirName)\n            // Archived chapters\n            add(\"$chapterDirName.cbz\")\n\n            // any legacy names\n            legacyChapterDirNames.forEach {\n                add(it)\n                add(\"$it.cbz\")\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.content.Context\nimport androidx.core.content.edit\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport kotlinx.coroutines.runBlocking\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.encodeToString\nimport kotlinx.serialization.json.Json\nimport tachiyomi.domain.chapter.interactor.GetChapter\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * This class is used to persist active downloads across application restarts.\n */\nclass DownloadStore(\n    context: Context,\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val json: Json = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val getChapter: GetChapter = Injekt.get(),\n) {\n\n    /**\n     * Preference file where active downloads are stored.\n     */\n    private val preferences = context.getSharedPreferences(\"active_downloads\", Context.MODE_PRIVATE)\n\n    /**\n     * Counter used to keep the queue order.\n     */\n    private var counter = 0\n\n    /**\n     * Adds a list of downloads to the store.\n     *\n     * @param downloads the list of downloads to add.\n     */\n    fun addAll(downloads: List<Download>) {\n        preferences.edit {\n            downloads.forEach { putString(getKey(it), serialize(it)) }\n        }\n    }\n\n    /**\n     * Removes a download from the store.\n     *\n     * @param download the download to remove.\n     */\n    fun remove(download: Download) {\n        preferences.edit {\n            remove(getKey(download))\n        }\n    }\n\n    /**\n     * Removes a list of downloads from the store.\n     *\n     * @param downloads the download to remove.\n     */\n    fun removeAll(downloads: List<Download>) {\n        preferences.edit {\n            downloads.forEach { remove(getKey(it)) }\n        }\n    }\n\n    /**\n     * Removes all the downloads from the store.\n     */\n    fun clear() {\n        preferences.edit {\n            clear()\n        }\n    }\n\n    /**\n     * Returns the preference's key for the given download.\n     *\n     * @param download the download.\n     */\n    private fun getKey(download: Download): String {\n        return download.chapter.id.toString()\n    }\n\n    /**\n     * Returns the list of downloads to restore. It should be called in a background thread.\n     */\n    fun restore(): List<Download> {\n        val objs = preferences.all\n            .mapNotNull { it.value as? String }\n            .mapNotNull { deserialize(it) }\n            .sortedBy { it.order }\n\n        val downloads = mutableListOf<Download>()\n        if (objs.isNotEmpty()) {\n            val cachedManga = mutableMapOf<Long, Manga?>()\n            for ((mangaId, chapterId) in objs) {\n                val manga = cachedManga.getOrPut(mangaId) {\n                    runBlocking { getManga.await(mangaId) }\n                } ?: continue\n                val source = sourceManager.get(manga.source) as? HttpSource ?: continue\n                val chapter = runBlocking { getChapter.await(chapterId) } ?: continue\n                downloads.add(Download(source, manga, chapter))\n            }\n        }\n\n        // Clear the store, downloads will be added again immediately.\n        clear()\n        return downloads\n    }\n\n    /**\n     * Converts a download to a string.\n     *\n     * @param download the download to serialize.\n     */\n    private fun serialize(download: Download): String {\n        val obj = DownloadObject(download.manga.id, download.chapter.id, counter++)\n        return json.encodeToString(obj)\n    }\n\n    /**\n     * Restore a download from a string.\n     *\n     * @param string the download as string.\n     */\n    private fun deserialize(string: String): DownloadObject? {\n        return try {\n            json.decodeFromString<DownloadObject>(string)\n        } catch (e: Exception) {\n            null\n        }\n    }\n}\n\n/**\n * Class used for download serialization\n *\n * @param mangaId the id of the manga.\n * @param chapterId the id of the chapter.\n * @param order the order of the download in the queue.\n */\n@Serializable\nprivate data class DownloadObject(val mangaId: Long, val chapterId: Long, val order: Int)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt",
    "content": "package eu.kanade.tachiyomi.data.download\n\nimport android.content.Context\nimport com.hippo.unifile.UniFile\nimport eu.kanade.domain.chapter.model.toSChapter\nimport eu.kanade.domain.manga.model.getComicInfo\nimport eu.kanade.tachiyomi.data.cache.ChapterCache\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateNotifier\nimport eu.kanade.tachiyomi.data.notification.NotificationHandler\nimport eu.kanade.tachiyomi.source.UnmeteredSource\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport eu.kanade.tachiyomi.util.storage.DiskUtil.NOMEDIA_FILE\nimport eu.kanade.tachiyomi.util.storage.saveTo\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.asFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.filter\nimport kotlinx.coroutines.flow.first\nimport kotlinx.coroutines.flow.flatMapMerge\nimport kotlinx.coroutines.flow.flow\nimport kotlinx.coroutines.flow.flowOn\nimport kotlinx.coroutines.flow.retryWhen\nimport kotlinx.coroutines.flow.transformLatest\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.supervisorScope\nimport logcat.LogPriority\nimport mihon.core.archive.ZipWriter\nimport nl.adaptivity.xmlutil.serialization.XML\nimport okhttp3.Response\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.storage.extension\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNow\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.core.metadata.comicinfo.COMIC_INFO_FILE\nimport tachiyomi.core.metadata.comicinfo.ComicInfo\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.File\nimport java.util.Locale\n\n/**\n * This class is the one in charge of downloading chapters.\n *\n * Its queue contains the list of chapters to download.\n */\nclass Downloader(\n    private val context: Context,\n    private val provider: DownloadProvider,\n    private val cache: DownloadCache,\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val chapterCache: ChapterCache = Injekt.get(),\n    private val downloadPreferences: DownloadPreferences = Injekt.get(),\n    private val xml: XML = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val getTracks: GetTracks = Injekt.get(),\n) {\n\n    /**\n     * Store for persisting downloads across restarts.\n     */\n    private val store = DownloadStore(context)\n\n    /**\n     * Queue where active downloads are kept.\n     */\n    private val _queueState = MutableStateFlow<List<Download>>(emptyList())\n    val queueState = _queueState.asStateFlow()\n\n    /**\n     * Notifier for the downloader state and progress.\n     */\n    private val notifier by lazy { DownloadNotifier(context) }\n\n    private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)\n    private var downloaderJob: Job? = null\n\n    /**\n     * Whether the downloader is running.\n     */\n    val isRunning: Boolean\n        get() = downloaderJob?.isActive ?: false\n\n    /**\n     * Whether the downloader is paused\n     */\n    @Volatile\n    var isPaused: Boolean = false\n\n    init {\n        launchNow {\n            val chapters = async { store.restore() }\n            addAllToQueue(chapters.await())\n        }\n    }\n\n    /**\n     * Starts the downloader. It doesn't do anything if it's already running or there isn't anything\n     * to download.\n     *\n     * @return true if the downloader is started, false otherwise.\n     */\n    fun start(): Boolean {\n        if (isRunning || queueState.value.isEmpty()) {\n            return false\n        }\n\n        val pending = queueState.value.filter { it.status != Download.State.DOWNLOADED }\n        pending.forEach { if (it.status != Download.State.QUEUE) it.status = Download.State.QUEUE }\n\n        isPaused = false\n\n        launchDownloaderJob()\n\n        return pending.isNotEmpty()\n    }\n\n    /**\n     * Stops the downloader.\n     */\n    fun stop(reason: String? = null) {\n        cancelDownloaderJob()\n        queueState.value\n            .filter { it.status == Download.State.DOWNLOADING }\n            .forEach { it.status = Download.State.ERROR }\n\n        if (reason != null) {\n            notifier.onWarning(reason)\n            return\n        }\n\n        if (isPaused && queueState.value.isNotEmpty()) {\n            notifier.onPaused()\n        } else {\n            notifier.onComplete()\n        }\n\n        isPaused = false\n\n        DownloadJob.stop(context)\n    }\n\n    /**\n     * Pauses the downloader\n     */\n    fun pause() {\n        cancelDownloaderJob()\n        queueState.value\n            .filter { it.status == Download.State.DOWNLOADING }\n            .forEach { it.status = Download.State.QUEUE }\n        isPaused = true\n    }\n\n    /**\n     * Removes everything from the queue.\n     */\n    fun clearQueue() {\n        cancelDownloaderJob()\n\n        internalClearQueue()\n        notifier.dismissProgress()\n    }\n\n    /**\n     * Prepares the subscriptions to start downloading.\n     */\n    private fun launchDownloaderJob() {\n        if (isRunning) return\n\n        downloaderJob = scope.launch {\n            val activeDownloadsFlow = combine(\n                queueState,\n                downloadPreferences.parallelSourceLimit.changes(),\n            ) { a, b -> a to b }.transformLatest { (queue, parallelCount) ->\n                while (true) {\n                    val activeDownloads = queue.asSequence()\n                        // Ignore completed downloads, leave them in the queue\n                        .filter { it.status.value <= Download.State.DOWNLOADING.value }\n                        .groupBy { it.source }\n                        .toList()\n                        .take(parallelCount)\n                        .map { (_, downloads) -> downloads.first() }\n                    emit(activeDownloads)\n\n                    if (activeDownloads.isEmpty()) break\n                    // Suspend until a download enters the ERROR state\n                    val activeDownloadsErroredFlow =\n                        combine(activeDownloads.map(Download::statusFlow)) { states ->\n                            states.contains(Download.State.ERROR)\n                        }.filter { it }\n                    activeDownloadsErroredFlow.first()\n                }\n            }\n                .distinctUntilChanged()\n\n            // Use supervisorScope to cancel child jobs when the downloader job is cancelled\n            supervisorScope {\n                val downloadJobs = mutableMapOf<Download, Job>()\n\n                activeDownloadsFlow.collectLatest { activeDownloads ->\n                    val downloadJobsToStop = downloadJobs.filter { it.key !in activeDownloads }\n                    downloadJobsToStop.forEach { (download, job) ->\n                        job.cancel()\n                        downloadJobs.remove(download)\n                    }\n\n                    val downloadsToStart = activeDownloads.filter { it !in downloadJobs }\n                    downloadsToStart.forEach { download ->\n                        downloadJobs[download] = launchDownloadJob(download)\n                    }\n                }\n            }\n        }\n    }\n\n    private fun CoroutineScope.launchDownloadJob(download: Download) = launchIO {\n        try {\n            downloadChapter(download)\n\n            // Remove successful download from queue\n            if (download.status == Download.State.DOWNLOADED) {\n                removeFromQueue(download)\n            }\n            if (areAllDownloadsFinished()) {\n                stop()\n            }\n        } catch (e: Throwable) {\n            if (e is CancellationException) throw e\n            logcat(LogPriority.ERROR, e)\n            notifier.onError(e.message)\n            stop()\n        }\n    }\n\n    /**\n     * Destroys the downloader subscriptions.\n     */\n    private fun cancelDownloaderJob() {\n        downloaderJob?.cancel()\n        downloaderJob = null\n    }\n\n    /**\n     * Creates a download object for every chapter and adds them to the downloads queue.\n     *\n     * @param manga the manga of the chapters to download.\n     * @param chapters the list of chapters to download.\n     * @param autoStart whether to start the downloader after enqueing the chapters.\n     */\n    fun queueChapters(manga: Manga, chapters: List<Chapter>, autoStart: Boolean) {\n        if (chapters.isEmpty()) return\n\n        val source = sourceManager.get(manga.source) as? HttpSource ?: return\n        val wasEmpty = queueState.value.isEmpty()\n        val chaptersToQueue = chapters.asSequence()\n            // Filter out those already downloaded.\n            .filter { provider.findChapterDir(it.name, it.scanlator, it.url, manga.title, source) == null }\n            // Add chapters to queue from the start.\n            .sortedByDescending { it.sourceOrder }\n            // Filter out those already enqueued.\n            .filter { chapter -> queueState.value.none { it.chapter.id == chapter.id } }\n            // Create a download for each one.\n            .map { Download(source, manga, it) }\n            .toList()\n\n        if (chaptersToQueue.isNotEmpty()) {\n            addAllToQueue(chaptersToQueue)\n\n            // Start downloader if needed\n            if (autoStart && wasEmpty) {\n                val queuedDownloads = queueState.value.count { it.source !is UnmeteredSource }\n                val maxDownloadsFromSource = queueState.value\n                    .groupBy { it.source }\n                    .filterKeys { it !is UnmeteredSource }\n                    .maxOfOrNull { it.value.size }\n                    ?: 0\n                if (\n                    queuedDownloads > DOWNLOADS_QUEUED_WARNING_THRESHOLD ||\n                    maxDownloadsFromSource > CHAPTERS_PER_SOURCE_QUEUE_WARNING_THRESHOLD\n                ) {\n                    notifier.onWarning(\n                        context.stringResource(\n                            MR.strings.download_queue_size_warning,\n                            context.stringResource(MR.strings.app_name),\n                        ),\n                        WARNING_NOTIF_TIMEOUT_MS,\n                        NotificationHandler.openUrl(context, LibraryUpdateNotifier.HELP_WARNING_URL),\n                    )\n                }\n                DownloadJob.start(context)\n            }\n        }\n    }\n\n    /**\n     * Downloads a chapter.\n     *\n     * @param download the chapter to be downloaded.\n     */\n    private suspend fun downloadChapter(download: Download) {\n        val mangaDir = provider.getMangaDir(download.manga.title, download.source).getOrElse { e ->\n            download.status = Download.State.ERROR\n            notifier.onError(e.message, download.chapter.name, download.manga.title, download.manga.id)\n            return\n        }\n\n        val availSpace = DiskUtil.getAvailableStorageSpace(mangaDir)\n        if (availSpace != -1L && availSpace < MIN_DISK_SPACE) {\n            download.status = Download.State.ERROR\n            notifier.onError(\n                context.stringResource(MR.strings.download_insufficient_space),\n                download.chapter.name,\n                download.manga.title,\n                download.manga.id,\n            )\n            return\n        }\n\n        val chapterDirname = provider.getChapterDirName(\n            download.chapter.name,\n            download.chapter.scanlator,\n            download.chapter.url,\n        )\n        val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)!!\n\n        try {\n            // If the page list already exists, start from the file\n            val pageList = download.pages ?: run {\n                // Otherwise, pull page list from network and add them to download object\n                val pages = download.source.getPageList(download.chapter.toSChapter())\n\n                if (pages.isEmpty()) {\n                    throw Exception(context.stringResource(MR.strings.page_list_empty_error))\n                }\n                // Don't trust index from source\n                val reIndexedPages = pages.mapIndexed { index, page -> Page(index, page.url, page.imageUrl, page.uri) }\n                download.pages = reIndexedPages\n                reIndexedPages\n            }\n\n            // Delete all temporary (unfinished) files\n            tmpDir.listFiles()\n                ?.filter { it.extension == \"tmp\" }\n                ?.forEach { it.delete() }\n\n            download.status = Download.State.DOWNLOADING\n\n            // Start downloading images, consider we can have downloaded images already\n            pageList.asFlow().flatMapMerge(concurrency = downloadPreferences.parallelPageLimit.get()) { page ->\n                flow {\n                    // Fetch image URL if necessary\n                    if (page.imageUrl.isNullOrEmpty()) {\n                        page.status = Page.State.LoadPage\n                        try {\n                            page.imageUrl = download.source.getImageUrl(page)\n                        } catch (e: Throwable) {\n                            page.status = Page.State.Error(e)\n                        }\n                    }\n\n                    withIOContext { getOrDownloadImage(page, download, tmpDir) }\n                    emit(page)\n                }\n                    .flowOn(Dispatchers.IO)\n            }\n                .collect {\n                    // Do when page is downloaded.\n                    notifier.onProgressChange(download)\n                }\n\n            // Do after download completes\n\n            if (!isDownloadSuccessful(download, tmpDir)) {\n                download.status = Download.State.ERROR\n                return\n            }\n\n            createComicInfoFile(\n                tmpDir,\n                download.manga,\n                download.chapter,\n                download.source,\n            )\n\n            // Only rename the directory if it's downloaded\n            if (downloadPreferences.saveChaptersAsCBZ.get()) {\n                archiveChapter(mangaDir, chapterDirname, tmpDir)\n            } else {\n                tmpDir.renameTo(chapterDirname)\n            }\n            cache.addChapter(chapterDirname, mangaDir, download.manga)\n\n            DiskUtil.createNoMediaFile(tmpDir, context)\n\n            download.status = Download.State.DOWNLOADED\n        } catch (error: Throwable) {\n            if (error is CancellationException) throw error\n            // If the page list threw, it will resume here\n            logcat(LogPriority.ERROR, error)\n            download.status = Download.State.ERROR\n            notifier.onError(error.message, download.chapter.name, download.manga.title, download.manga.id)\n        }\n    }\n\n    /**\n     * Gets the image from the filesystem if it exists or downloads it otherwise.\n     *\n     * @param page the page to download.\n     * @param download the download of the page.\n     * @param tmpDir the temporary directory of the download.\n     */\n    private suspend fun getOrDownloadImage(page: Page, download: Download, tmpDir: UniFile) {\n        // If the image URL is empty, do nothing\n        if (page.imageUrl == null) {\n            return\n        }\n\n        val digitCount = (download.pages?.size ?: 0).toString().length.coerceAtLeast(3)\n        val filename = \"%0${digitCount}d\".format(Locale.ENGLISH, page.number)\n        val tmpFile = tmpDir.findFile(\"$filename.tmp\")\n\n        // Delete temp file if it exists\n        tmpFile?.delete()\n\n        // Try to find the image file\n        val imageFile = tmpDir.listFiles()?.firstOrNull {\n            it.name!!.startsWith(\"$filename.\") || it.name!!.startsWith(\"${filename}__001\")\n        }\n\n        try {\n            // If the image is already downloaded, do nothing. Otherwise download from network\n            val file = when {\n                imageFile != null -> imageFile\n                chapterCache.isImageInCache(\n                    page.imageUrl!!,\n                ) -> copyImageFromCache(chapterCache.getImageFile(page.imageUrl!!), tmpDir, filename)\n                else -> downloadImage(page, download.source, tmpDir, filename)\n            }\n\n            // When the page is ready, set page path, progress (just in case) and status\n            splitTallImageIfNeeded(page, tmpDir)\n\n            page.uri = file.uri\n            page.progress = 100\n            page.status = Page.State.Ready\n        } catch (e: Throwable) {\n            if (e is CancellationException) throw e\n            // Mark this page as error and allow to download the remaining\n            page.progress = 0\n            page.status = Page.State.Error(e)\n            notifier.onError(e.message, download.chapter.name, download.manga.title, download.manga.id)\n        }\n    }\n\n    /**\n     * Downloads the image from network to a file in tmpDir.\n     *\n     * @param page the page to download.\n     * @param source the source of the page.\n     * @param tmpDir the temporary directory of the download.\n     * @param filename the filename of the image.\n     */\n    private suspend fun downloadImage(page: Page, source: HttpSource, tmpDir: UniFile, filename: String): UniFile {\n        page.status = Page.State.DownloadImage\n        page.progress = 0\n        return flow {\n            val response = source.getImage(page)\n            val file = tmpDir.createFile(\"$filename.tmp\")!!\n            try {\n                response.body.source().saveTo(file.openOutputStream())\n                val extension = getImageExtension(response, file)\n                file.renameTo(\"$filename.$extension\")\n            } catch (e: Exception) {\n                response.close()\n                file.delete()\n                throw e\n            }\n            emit(file)\n        }\n            // Retry 3 times, waiting 2, 4 and 8 seconds between attempts.\n            .retryWhen { _, attempt ->\n                if (attempt < 3) {\n                    delay((2L shl attempt.toInt()) * 1000)\n                    true\n                } else {\n                    false\n                }\n            }\n            .first()\n    }\n\n    /**\n     * Copies the image from cache to file in tmpDir.\n     *\n     * @param cacheFile the file from cache.\n     * @param tmpDir the temporary directory of the download.\n     * @param filename the filename of the image.\n     */\n    private fun copyImageFromCache(cacheFile: File, tmpDir: UniFile, filename: String): UniFile {\n        val tmpFile = tmpDir.createFile(\"$filename.tmp\")!!\n        cacheFile.inputStream().use { input ->\n            tmpFile.openOutputStream().use { output ->\n                input.copyTo(output)\n            }\n        }\n        val extension = ImageUtil.findImageType(cacheFile.inputStream()) ?: return tmpFile\n        tmpFile.renameTo(\"$filename.${extension.extension}\")\n        cacheFile.delete()\n        return tmpFile\n    }\n\n    /**\n     * Returns the extension of the downloaded image from the network response, or if it's null,\n     * analyze the file. If everything fails, assume it's a jpg.\n     *\n     * @param response the network response of the image.\n     * @param file the file where the image is already downloaded.\n     */\n    private fun getImageExtension(response: Response, file: UniFile): String {\n        val mime = response.body.contentType()?.run { if (type == \"image\") \"image/$subtype\" else null }\n        return ImageUtil.getExtensionFromMimeType(mime) { file.openInputStream() }\n    }\n\n    private fun splitTallImageIfNeeded(page: Page, tmpDir: UniFile) {\n        if (!downloadPreferences.splitTallImages.get()) return\n\n        try {\n            val filenamePrefix = \"%03d\".format(Locale.ENGLISH, page.number)\n            val imageFile = tmpDir.listFiles()?.firstOrNull { it.name.orEmpty().startsWith(filenamePrefix) }\n                ?: error(context.stringResource(MR.strings.download_notifier_split_page_not_found, page.number))\n\n            // If the original page was previously split, then skip\n            if (imageFile.name.orEmpty().startsWith(\"${filenamePrefix}__\")) return\n\n            ImageUtil.splitTallImage(tmpDir, imageFile, filenamePrefix)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to split downloaded image\" }\n        }\n    }\n\n    /**\n     * Checks if the download was successful.\n     *\n     * @param download the download to check.\n     * @param tmpDir the directory where the download is currently stored.\n     */\n    private fun isDownloadSuccessful(\n        download: Download,\n        tmpDir: UniFile,\n    ): Boolean {\n        // Page list hasn't been initialized\n        val downloadPageCount = download.pages?.size ?: return false\n\n        // Ensure that all pages have been downloaded\n        if (download.downloadedImages != downloadPageCount) {\n            return false\n        }\n\n        // Ensure that the chapter folder has all the pages\n        val downloadedImagesCount = tmpDir.listFiles().orEmpty().count {\n            val fileName = it.name.orEmpty()\n            when {\n                fileName in listOf(COMIC_INFO_FILE, NOMEDIA_FILE) -> false\n                fileName.endsWith(\".tmp\") -> false\n                // Only count the first split page and not the others\n                fileName.contains(\"__\") && !fileName.endsWith(\"__001.jpg\") -> false\n                else -> true\n            }\n        }\n        return downloadedImagesCount == downloadPageCount\n    }\n\n    /**\n     * Archive the chapter pages as a CBZ.\n     */\n    private fun archiveChapter(\n        mangaDir: UniFile,\n        dirname: String,\n        tmpDir: UniFile,\n    ) {\n        val zip = mangaDir.createFile(\"$dirname.cbz$TMP_DIR_SUFFIX\")!!\n        ZipWriter(context, zip).use { writer ->\n            tmpDir.listFiles()?.forEach { file ->\n                writer.write(file)\n            }\n        }\n        zip.renameTo(\"$dirname.cbz\")\n        tmpDir.delete()\n    }\n\n    /**\n     * Creates a ComicInfo.xml file inside the given directory.\n     */\n    private suspend fun createComicInfoFile(\n        dir: UniFile,\n        manga: Manga,\n        chapter: Chapter,\n        source: HttpSource,\n    ) {\n        val categories = getCategories.await(manga.id).map { it.name.trim() }.takeUnless { it.isEmpty() }\n        val urls = getTracks.await(manga.id)\n            .mapNotNull { track ->\n                track.remoteUrl.takeUnless { url -> url.isBlank() }?.trim()\n            }\n            .plus(source.getChapterUrl(chapter.toSChapter()).trim())\n            .distinct()\n\n        val comicInfo = getComicInfo(\n            manga,\n            chapter,\n            urls,\n            categories,\n            source.name,\n        )\n\n        // Remove the old file\n        dir.findFile(COMIC_INFO_FILE)?.delete()\n        dir.createFile(COMIC_INFO_FILE)!!.openOutputStream().use {\n            val comicInfoString = xml.encodeToString(ComicInfo.serializer(), comicInfo)\n            it.write(comicInfoString.toByteArray())\n        }\n    }\n\n    /**\n     * Returns true if all the queued downloads are in DOWNLOADED or ERROR state.\n     */\n    private fun areAllDownloadsFinished(): Boolean {\n        return queueState.value.none { it.status.value <= Download.State.DOWNLOADING.value }\n    }\n\n    private fun addAllToQueue(downloads: List<Download>) {\n        _queueState.update {\n            downloads.forEach { download ->\n                download.status = Download.State.QUEUE\n            }\n            store.addAll(downloads)\n            it + downloads\n        }\n    }\n\n    private fun removeFromQueue(download: Download) {\n        _queueState.update {\n            store.remove(download)\n            if (download.status == Download.State.DOWNLOADING || download.status == Download.State.QUEUE) {\n                download.status = Download.State.NOT_DOWNLOADED\n            }\n            it - download\n        }\n    }\n\n    private inline fun removeFromQueueIf(predicate: (Download) -> Boolean) {\n        _queueState.update { queue ->\n            val downloads = queue.filter { predicate(it) }\n            store.removeAll(downloads)\n            downloads.forEach { download ->\n                if (download.status == Download.State.DOWNLOADING || download.status == Download.State.QUEUE) {\n                    download.status = Download.State.NOT_DOWNLOADED\n                }\n            }\n            queue - downloads\n        }\n    }\n\n    fun removeFromQueue(chapters: List<Chapter>) {\n        val chapterIds = chapters.map { it.id }\n        removeFromQueueIf { it.chapter.id in chapterIds }\n    }\n\n    fun removeFromQueue(manga: Manga) {\n        removeFromQueueIf { it.manga.id == manga.id }\n    }\n\n    private fun internalClearQueue() {\n        _queueState.update {\n            it.forEach { download ->\n                if (download.status == Download.State.DOWNLOADING || download.status == Download.State.QUEUE) {\n                    download.status = Download.State.NOT_DOWNLOADED\n                }\n            }\n            store.clear()\n            emptyList()\n        }\n    }\n\n    fun updateQueue(downloads: List<Download>) {\n        val wasRunning = isRunning\n\n        if (downloads.isEmpty()) {\n            clearQueue()\n            stop()\n            return\n        }\n\n        pause()\n        internalClearQueue()\n        addAllToQueue(downloads)\n\n        if (wasRunning) {\n            start()\n        }\n    }\n\n    companion object {\n        const val TMP_DIR_SUFFIX = \"_tmp\"\n        const val WARNING_NOTIF_TIMEOUT_MS = 30_000L\n        const val CHAPTERS_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 15\n        private const val DOWNLOADS_QUEUED_WARNING_THRESHOLD = 30\n    }\n}\n\n// Arbitrary minimum required space to start a download: 200 MB\nprivate const val MIN_DISK_SPACE = 200L * 1024 * 1024\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt",
    "content": "package eu.kanade.tachiyomi.data.download.model\n\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.debounce\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.emitAll\nimport kotlinx.coroutines.flow.flow\nimport tachiyomi.domain.chapter.interactor.GetChapter\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\ndata class Download(\n    val source: HttpSource,\n    val manga: Manga,\n    val chapter: Chapter,\n) {\n    var pages: List<Page>? = null\n\n    val totalProgress: Int\n        get() = pages?.sumOf(Page::progress) ?: 0\n\n    val downloadedImages: Int\n        get() = pages?.count { it.status == Page.State.Ready } ?: 0\n\n    @Transient\n    private val _statusFlow = MutableStateFlow(State.NOT_DOWNLOADED)\n\n    @Transient\n    val statusFlow = _statusFlow.asStateFlow()\n    var status: State\n        get() = _statusFlow.value\n        set(status) {\n            _statusFlow.value = status\n        }\n\n    @Transient\n    val progressFlow = flow {\n        if (pages == null) {\n            emit(0)\n            while (pages == null) {\n                delay(50)\n            }\n        }\n\n        val progressFlows = pages!!.map(Page::progressFlow)\n        emitAll(combine(progressFlows) { it.average().toInt() })\n    }\n        .distinctUntilChanged()\n        .debounce(50)\n\n    val progress: Int\n        get() {\n            val pages = pages ?: return 0\n            return pages.map(Page::progress).average().toInt()\n        }\n\n    enum class State(val value: Int) {\n        NOT_DOWNLOADED(0),\n        QUEUE(1),\n        DOWNLOADING(2),\n        DOWNLOADED(3),\n        ERROR(4),\n    }\n\n    companion object {\n        suspend fun fromChapterId(\n            chapterId: Long,\n            getChapter: GetChapter = Injekt.get(),\n            getManga: GetManga = Injekt.get(),\n            sourceManager: SourceManager = Injekt.get(),\n        ): Download? {\n            val chapter = getChapter.await(chapterId) ?: return null\n            val manga = getManga.await(chapter.mangaId) ?: return null\n            val source = sourceManager.get(manga.source) as? HttpSource ?: return null\n\n            return Download(source, manga, chapter)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/export/LibraryExporter.kt",
    "content": "package eu.kanade.tachiyomi.data.export\n\nimport android.content.Context\nimport android.net.Uri\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.withContext\nimport tachiyomi.domain.manga.model.Manga\n\nobject LibraryExporter {\n\n    data class ExportOptions(\n        val includeTitle: Boolean,\n        val includeAuthor: Boolean,\n        val includeArtist: Boolean,\n    )\n\n    suspend fun exportToCsv(\n        context: Context,\n        uri: Uri,\n        favorites: List<Manga>,\n        options: ExportOptions,\n        onExportComplete: () -> Unit,\n    ) {\n        withContext(Dispatchers.IO) {\n            context.contentResolver.openOutputStream(uri)?.use { outputStream ->\n                val csvData = generateCsvData(favorites, options)\n                outputStream.write(csvData.toByteArray())\n            }\n            onExportComplete()\n        }\n    }\n\n    private val escapeRequired = listOf(\"\\r\", \"\\n\", \"\\\"\", \",\")\n\n    private fun generateCsvData(favorites: List<Manga>, options: ExportOptions): String {\n        val columnSize = listOf(\n            options.includeTitle,\n            options.includeAuthor,\n            options.includeArtist,\n        )\n            .count { it }\n\n        val rows = buildList(favorites.size) {\n            favorites.forEach { manga ->\n                buildList(columnSize) {\n                    if (options.includeTitle) add(manga.title)\n                    if (options.includeAuthor) add(manga.author)\n                    if (options.includeArtist) add(manga.artist)\n                }\n                    .let(::add)\n            }\n        }\n        return rows.joinToString(\"\\r\\n\") { columns ->\n            columns.joinToString(\",\") columns@{ column ->\n                if (column.isNullOrBlank()) return@columns \"\"\n                if (escapeRequired.any { column.contains(it) }) {\n                    column.replace(\"\\\"\", \"\\\"\\\"\").let { \"\\\"$it\\\"\" }\n                } else {\n                    column\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt",
    "content": "package eu.kanade.tachiyomi.data.library\n\nimport android.content.Context\nimport android.content.pm.ServiceInfo\nimport android.net.NetworkCapabilities\nimport android.net.NetworkRequest\nimport android.os.Build\nimport androidx.work.BackoffPolicy\nimport androidx.work.Constraints\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingPeriodicWorkPolicy\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.ForegroundInfo\nimport androidx.work.NetworkType\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.PeriodicWorkRequestBuilder\nimport androidx.work.WorkInfo\nimport androidx.work.WorkQuery\nimport androidx.work.WorkerParameters\nimport androidx.work.workDataOf\nimport eu.kanade.domain.chapter.interactor.SyncChaptersWithSource\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.source.model.UpdateStrategy\nimport eu.kanade.tachiyomi.util.storage.getUriCompat\nimport eu.kanade.tachiyomi.util.system.createFileInCacheDir\nimport eu.kanade.tachiyomi.util.system.isConnectedToWifi\nimport eu.kanade.tachiyomi.util.system.isRunning\nimport eu.kanade.tachiyomi.util.system.setForegroundSafely\nimport eu.kanade.tachiyomi.util.system.workManager\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.coroutineScope\nimport kotlinx.coroutines.ensureActive\nimport kotlinx.coroutines.sync.Semaphore\nimport kotlinx.coroutines.sync.withPermit\nimport logcat.LogPriority\nimport mihon.domain.chapter.interactor.FilterChaptersForDownload\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.NoChaptersException\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_CHARGING\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_NETWORK_NOT_METERED\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_ONLY_ON_WIFI\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_OUTSIDE_RELEASE_PERIOD\nimport tachiyomi.domain.manga.interactor.FetchInterval\nimport tachiyomi.domain.manga.interactor.GetLibraryManga\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.model.SourceNotInstalledException\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.File\nimport java.time.Instant\nimport java.time.ZonedDateTime\nimport java.util.concurrent.CopyOnWriteArrayList\nimport java.util.concurrent.TimeUnit\nimport kotlin.concurrent.atomics.AtomicBoolean\nimport kotlin.concurrent.atomics.AtomicInt\nimport kotlin.concurrent.atomics.ExperimentalAtomicApi\nimport kotlin.concurrent.atomics.incrementAndFetch\n\n@OptIn(ExperimentalAtomicApi::class)\nclass LibraryUpdateJob(private val context: Context, workerParams: WorkerParameters) :\n    CoroutineWorker(context, workerParams) {\n\n    private val sourceManager: SourceManager = Injekt.get()\n    private val libraryPreferences: LibraryPreferences = Injekt.get()\n    private val downloadManager: DownloadManager = Injekt.get()\n    private val coverCache: CoverCache = Injekt.get()\n    private val getLibraryManga: GetLibraryManga = Injekt.get()\n    private val getManga: GetManga = Injekt.get()\n    private val updateManga: UpdateManga = Injekt.get()\n    private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get()\n    private val fetchInterval: FetchInterval = Injekt.get()\n    private val filterChaptersForDownload: FilterChaptersForDownload = Injekt.get()\n\n    private val notifier = LibraryUpdateNotifier(context)\n\n    private var mangaToUpdate: List<LibraryManga> = mutableListOf()\n\n    override suspend fun doWork(): Result {\n        if (tags.contains(WORK_NAME_AUTO)) {\n            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {\n                val preferences = Injekt.get<LibraryPreferences>()\n                val restrictions = preferences.autoUpdateDeviceRestrictions.get()\n                if ((DEVICE_ONLY_ON_WIFI in restrictions) && !context.isConnectedToWifi()) {\n                    return Result.retry()\n                }\n            }\n\n            // Find a running manual worker. If exists, try again later\n            if (context.workManager.isRunning(WORK_NAME_MANUAL)) {\n                return Result.retry()\n            }\n        }\n\n        setForegroundSafely()\n\n        libraryPreferences.lastUpdatedTimestamp.set(Instant.now().toEpochMilli())\n\n        val categoryId = inputData.getLong(KEY_CATEGORY, -1L)\n        addMangaToQueue(categoryId)\n\n        return withIOContext {\n            try {\n                updateChapterList()\n                Result.success()\n            } catch (e: Exception) {\n                if (e is CancellationException) {\n                    // Assume success although cancelled\n                    Result.success()\n                } else {\n                    logcat(LogPriority.ERROR, e)\n                    Result.failure()\n                }\n            } finally {\n                notifier.cancelProgressNotification()\n            }\n        }\n    }\n\n    override suspend fun getForegroundInfo(): ForegroundInfo {\n        val notifier = LibraryUpdateNotifier(context)\n        return ForegroundInfo(\n            Notifications.ID_LIBRARY_PROGRESS,\n            notifier.progressNotificationBuilder.build(),\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n                ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC\n            } else {\n                0\n            },\n        )\n    }\n\n    /**\n     * Adds list of manga to be updated.\n     *\n     * @param categoryId the ID of the category to update, or -1 if no category specified.\n     */\n    private suspend fun addMangaToQueue(categoryId: Long) {\n        val libraryManga = getLibraryManga.await()\n\n        val listToUpdate = if (categoryId != -1L) {\n            libraryManga.filter { categoryId in it.categories }\n        } else {\n            val includedCategories = libraryPreferences.updateCategories.get().map { it.toLong() }\n            val excludedCategories = libraryPreferences.updateCategoriesExclude.get().map { it.toLong() }\n\n            libraryManga.filter {\n                val included = includedCategories.isEmpty() || it.categories.intersect(includedCategories).isNotEmpty()\n                val excluded = it.categories.intersect(excludedCategories).isNotEmpty()\n                included && !excluded\n            }\n        }\n\n        val restrictions = libraryPreferences.autoUpdateMangaRestrictions.get()\n        val skippedUpdates = mutableListOf<Pair<Manga, String?>>()\n        val (_, fetchWindowUpperBound) = fetchInterval.getWindow(ZonedDateTime.now())\n\n        mangaToUpdate = listToUpdate\n            .filter {\n                when {\n                    it.manga.updateStrategy == UpdateStrategy.ONLY_FETCH_ONCE && it.totalChapters > 0L -> {\n                        skippedUpdates.add(\n                            it.manga to context.stringResource(MR.strings.skipped_reason_not_always_update),\n                        )\n                        false\n                    }\n\n                    MANGA_NON_COMPLETED in restrictions && it.manga.status.toInt() == SManga.COMPLETED -> {\n                        skippedUpdates.add(it.manga to context.stringResource(MR.strings.skipped_reason_completed))\n                        false\n                    }\n\n                    MANGA_HAS_UNREAD in restrictions && it.unreadCount != 0L -> {\n                        skippedUpdates.add(it.manga to context.stringResource(MR.strings.skipped_reason_not_caught_up))\n                        false\n                    }\n\n                    MANGA_NON_READ in restrictions && it.totalChapters > 0L && !it.hasStarted -> {\n                        skippedUpdates.add(it.manga to context.stringResource(MR.strings.skipped_reason_not_started))\n                        false\n                    }\n\n                    MANGA_OUTSIDE_RELEASE_PERIOD in restrictions && it.manga.nextUpdate > fetchWindowUpperBound -> {\n                        skippedUpdates.add(\n                            it.manga to context.stringResource(MR.strings.skipped_reason_not_in_release_period),\n                        )\n                        false\n                    }\n\n                    else -> true\n                }\n            }\n            .sortedBy { it.manga.title }\n\n        notifier.showQueueSizeWarningNotificationIfNeeded(mangaToUpdate)\n\n        if (skippedUpdates.isNotEmpty()) {\n            // TODO: surface skipped reasons to user?\n            logcat {\n                skippedUpdates\n                    .groupBy { it.second }\n                    .map { (reason, entries) -> \"$reason: [${entries.map { it.first.title }.sorted().joinToString()}]\" }\n                    .joinToString()\n            }\n        }\n    }\n\n    /**\n     * Method that updates manga in [mangaToUpdate]. It's called in a background thread, so it's safe\n     * to do heavy operations or network calls here.\n     * For each manga it calls [updateManga] and updates the notification showing the current\n     * progress.\n     *\n     * @return an observable delivering the progress of each update.\n     */\n    private suspend fun updateChapterList() {\n        val semaphore = Semaphore(5)\n        val progressCount = AtomicInt(0)\n        val currentlyUpdatingManga = CopyOnWriteArrayList<Manga>()\n        val newUpdates = CopyOnWriteArrayList<Pair<Manga, Array<Chapter>>>()\n        val failedUpdates = CopyOnWriteArrayList<Pair<Manga, String?>>()\n        val hasDownloads = AtomicBoolean(false)\n        val fetchWindow = fetchInterval.getWindow(ZonedDateTime.now())\n\n        coroutineScope {\n            mangaToUpdate.groupBy { it.manga.source }.values\n                .map { mangaInSource ->\n                    async {\n                        semaphore.withPermit {\n                            mangaInSource.forEach { libraryManga ->\n                                val manga = libraryManga.manga\n                                ensureActive()\n\n                                // Don't continue to update if manga is not in library\n                                if (getManga.await(manga.id)?.favorite != true) {\n                                    return@forEach\n                                }\n\n                                withUpdateNotification(\n                                    currentlyUpdatingManga,\n                                    progressCount,\n                                    manga,\n                                ) {\n                                    try {\n                                        val newChapters = updateManga(manga, fetchWindow)\n                                            .sortedByDescending { it.sourceOrder }\n\n                                        if (newChapters.isNotEmpty()) {\n                                            val chaptersToDownload = filterChaptersForDownload.await(manga, newChapters)\n\n                                            if (chaptersToDownload.isNotEmpty()) {\n                                                downloadChapters(manga, chaptersToDownload)\n                                                hasDownloads.store(true)\n                                            }\n\n                                            libraryPreferences.newUpdatesCount.getAndSet { it + newChapters.size }\n\n                                            // Convert to the manga that contains new chapters\n                                            newUpdates.add(manga to newChapters.toTypedArray())\n                                        }\n                                    } catch (e: Throwable) {\n                                        val errorMessage = when (e) {\n                                            is NoChaptersException -> context.stringResource(\n                                                MR.strings.no_chapters_error,\n                                            )\n                                            // failedUpdates will already have the source, don't need to copy it into the message\n                                            is SourceNotInstalledException -> context.stringResource(\n                                                MR.strings.loader_not_implemented_error,\n                                            )\n                                            else -> e.message\n                                        }\n                                        failedUpdates.add(manga to errorMessage)\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                .awaitAll()\n        }\n\n        notifier.cancelProgressNotification()\n\n        if (newUpdates.isNotEmpty()) {\n            notifier.showUpdateNotifications(newUpdates)\n            if (hasDownloads.load()) {\n                downloadManager.startDownloads()\n            }\n        }\n\n        if (failedUpdates.isNotEmpty()) {\n            val errorFile = writeErrorFile(failedUpdates)\n            notifier.showUpdateErrorNotification(\n                failedUpdates.size,\n                errorFile.getUriCompat(context),\n            )\n        }\n    }\n\n    private fun downloadChapters(manga: Manga, chapters: List<Chapter>) {\n        // We don't want to start downloading while the library is updating, because websites\n        // may don't like it and they could ban the user.\n        downloadManager.downloadChapters(manga, chapters, false)\n    }\n\n    /**\n     * Updates the chapters for the given manga and adds them to the database.\n     *\n     * @param manga the manga to update.\n     * @return a pair of the inserted and removed chapters.\n     */\n    private suspend fun updateManga(manga: Manga, fetchWindow: Pair<Long, Long>): List<Chapter> {\n        val source = sourceManager.getOrStub(manga.source)\n\n        // Update manga metadata if needed\n        if (libraryPreferences.autoUpdateMetadata.get()) {\n            val networkManga = source.getMangaDetails(manga.toSManga())\n            updateManga.awaitUpdateFromSource(manga, networkManga, manualFetch = false, coverCache)\n        }\n\n        val chapters = source.getChapterList(manga.toSManga())\n\n        // Get manga from database to account for if it was removed during the update and\n        // to get latest data so it doesn't get overwritten later on\n        val dbManga = getManga.await(manga.id)?.takeIf { it.favorite } ?: return emptyList()\n\n        return syncChaptersWithSource.await(chapters, dbManga, source, false, fetchWindow)\n    }\n\n    private suspend fun withUpdateNotification(\n        updatingManga: CopyOnWriteArrayList<Manga>,\n        completed: AtomicInt,\n        manga: Manga,\n        block: suspend () -> Unit,\n    ) = coroutineScope {\n        ensureActive()\n\n        updatingManga.add(manga)\n        notifier.showProgressNotification(\n            updatingManga,\n            completed.load(),\n            mangaToUpdate.size,\n        )\n\n        block()\n\n        ensureActive()\n\n        updatingManga.remove(manga)\n        completed.incrementAndFetch()\n        notifier.showProgressNotification(\n            updatingManga,\n            completed.load(),\n            mangaToUpdate.size,\n        )\n    }\n\n    /**\n     * Writes basic file of update errors to cache dir.\n     */\n    private fun writeErrorFile(errors: List<Pair<Manga, String?>>): File {\n        try {\n            if (errors.isNotEmpty()) {\n                val file = context.createFileInCacheDir(\"mihon_update_errors.txt\")\n                file.bufferedWriter().use { out ->\n                    out.write(context.stringResource(MR.strings.library_errors_help, ERROR_LOG_HELP_URL) + \"\\n\\n\")\n                    // Error file format:\n                    // ! Error\n                    //   # Source\n                    //     - Manga\n                    errors.groupBy({ it.second }, { it.first }).forEach { (error, mangas) ->\n                        out.write(\"\\n! ${error}\\n\")\n                        mangas.groupBy { it.source }.forEach { (srcId, mangas) ->\n                            val source = sourceManager.getOrStub(srcId)\n                            out.write(\"  # $source\\n\")\n                            mangas.forEach {\n                                out.write(\"    - ${it.title}\\n\")\n                            }\n                        }\n                    }\n                }\n                return file\n            }\n        } catch (_: Exception) {}\n        return File(\"\")\n    }\n\n    companion object {\n        private const val TAG = \"LibraryUpdate\"\n        private const val WORK_NAME_AUTO = \"LibraryUpdate-auto\"\n        private const val WORK_NAME_MANUAL = \"LibraryUpdate-manual\"\n\n        private const val ERROR_LOG_HELP_URL = \"https://mihon.app/docs/guides/troubleshooting/\"\n\n        private const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60\n\n        /**\n         * Key for category to update.\n         */\n        private const val KEY_CATEGORY = \"category\"\n\n        fun setupTask(\n            context: Context,\n            prefInterval: Int? = null,\n        ) {\n            val preferences = Injekt.get<LibraryPreferences>()\n            val interval = prefInterval ?: preferences.autoUpdateInterval.get()\n            if (interval > 0) {\n                val restrictions = preferences.autoUpdateDeviceRestrictions.get()\n                val networkType = if (DEVICE_NETWORK_NOT_METERED in restrictions) {\n                    NetworkType.UNMETERED\n                } else {\n                    NetworkType.CONNECTED\n                }\n                val networkRequest = NetworkRequest.Builder().apply {\n                    removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)\n                    if (DEVICE_ONLY_ON_WIFI in restrictions) {\n                        addTransportType(NetworkCapabilities.TRANSPORT_WIFI)\n                    }\n                    if (DEVICE_NETWORK_NOT_METERED in restrictions) {\n                        addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)\n                    }\n                }\n                    .build()\n                val constraints = Constraints.Builder()\n                    // 'networkRequest' only applies to Android 9+, otherwise 'networkType' is used\n                    .setRequiredNetworkRequest(networkRequest, networkType)\n                    .setRequiresCharging(DEVICE_CHARGING in restrictions)\n                    .setRequiresBatteryNotLow(true)\n                    .build()\n\n                val request = PeriodicWorkRequestBuilder<LibraryUpdateJob>(\n                    interval.toLong(),\n                    TimeUnit.HOURS,\n                    10,\n                    TimeUnit.MINUTES,\n                )\n                    .addTag(TAG)\n                    .addTag(WORK_NAME_AUTO)\n                    .setConstraints(constraints)\n                    .setBackoffCriteria(BackoffPolicy.LINEAR, 10, TimeUnit.MINUTES)\n                    .build()\n\n                context.workManager.enqueueUniquePeriodicWork(\n                    WORK_NAME_AUTO,\n                    ExistingPeriodicWorkPolicy.UPDATE,\n                    request,\n                )\n            } else {\n                context.workManager.cancelUniqueWork(WORK_NAME_AUTO)\n            }\n        }\n\n        fun startNow(\n            context: Context,\n            category: Category? = null,\n        ): Boolean {\n            val wm = context.workManager\n            if (wm.isRunning(TAG)) {\n                // Already running either as a scheduled or manual job\n                return false\n            }\n\n            val inputData = workDataOf(\n                KEY_CATEGORY to category?.id,\n            )\n            val request = OneTimeWorkRequestBuilder<LibraryUpdateJob>()\n                .addTag(TAG)\n                .addTag(WORK_NAME_MANUAL)\n                .setInputData(inputData)\n                .build()\n            wm.enqueueUniqueWork(WORK_NAME_MANUAL, ExistingWorkPolicy.KEEP, request)\n\n            return true\n        }\n\n        fun stop(context: Context) {\n            val wm = context.workManager\n            val workQuery = WorkQuery.Builder.fromTags(listOf(TAG))\n                .addStates(listOf(WorkInfo.State.RUNNING))\n                .build()\n            wm.getWorkInfos(workQuery).get()\n                // Should only return one work but just in case\n                .forEach {\n                    wm.cancelWorkById(it.id)\n\n                    // Re-enqueue cancelled scheduled work\n                    if (it.tags.contains(WORK_NAME_AUTO)) {\n                        setupTask(context)\n                    }\n                }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt",
    "content": "package eu.kanade.tachiyomi.data.library\n\nimport android.app.Notification\nimport android.app.PendingIntent\nimport android.content.Context\nimport android.content.Intent\nimport android.graphics.Bitmap\nimport android.graphics.BitmapFactory\nimport android.net.Uri\nimport androidx.core.app.NotificationCompat\nimport androidx.core.app.NotificationManagerCompat\nimport coil3.asDrawable\nimport coil3.imageLoader\nimport coil3.request.ImageRequest\nimport coil3.request.transformations\nimport coil3.transform.CircleCropTransformation\nimport eu.kanade.presentation.util.formatChapterNumber\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.data.download.Downloader\nimport eu.kanade.tachiyomi.data.notification.NotificationHandler\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.source.UnmeteredSource\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.util.lang.chop\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.getBitmapOrNull\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport eu.kanade.tachiyomi.util.system.notify\nimport tachiyomi.core.common.Constants\nimport tachiyomi.core.common.i18n.pluralStringResource\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchUI\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.math.RoundingMode\nimport java.text.NumberFormat\n\nclass LibraryUpdateNotifier(\n    private val context: Context,\n\n    private val securityPreferences: SecurityPreferences = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n) {\n\n    private val percentFormatter = NumberFormat.getPercentInstance().apply {\n        roundingMode = RoundingMode.DOWN\n        maximumFractionDigits = 0\n    }\n\n    /**\n     * Pending intent of action that cancels the library update\n     */\n    private val cancelIntent by lazy {\n        NotificationReceiver.cancelLibraryUpdatePendingBroadcast(context)\n    }\n\n    /**\n     * Bitmap of the app for notifications.\n     */\n    private val notificationBitmap by lazy {\n        BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher)\n    }\n\n    /**\n     * Cached progress notification to avoid creating a lot.\n     */\n    val progressNotificationBuilder by lazy {\n        context.notificationBuilder(Notifications.CHANNEL_LIBRARY_PROGRESS) {\n            setContentTitle(context.stringResource(MR.strings.app_name))\n            setSmallIcon(R.drawable.ic_refresh_24dp)\n            setLargeIcon(notificationBitmap)\n            setOngoing(true)\n            setOnlyAlertOnce(true)\n            addAction(R.drawable.ic_close_24dp, context.stringResource(MR.strings.action_cancel), cancelIntent)\n        }\n    }\n\n    /**\n     * Shows the notification containing the currently updating manga and the progress.\n     *\n     * @param manga the manga that are being updated.\n     * @param current the current progress.\n     * @param total the total progress.\n     */\n    fun showProgressNotification(manga: List<Manga>, current: Int, total: Int) {\n        progressNotificationBuilder\n            .setContentTitle(\n                context.stringResource(\n                    MR.strings.notification_updating_progress,\n                    percentFormatter.format(current.toFloat() / total),\n                ),\n            )\n\n        if (!securityPreferences.hideNotificationContent.get()) {\n            val updatingText = manga.joinToString(\"\\n\") { it.title.chop(40) }\n            progressNotificationBuilder.setStyle(NotificationCompat.BigTextStyle().bigText(updatingText))\n        }\n\n        context.notify(\n            Notifications.ID_LIBRARY_PROGRESS,\n            progressNotificationBuilder\n                .setProgress(total, current, false)\n                .build(),\n        )\n    }\n\n    /**\n     * Warn when excessively checking any single source.\n     */\n    fun showQueueSizeWarningNotificationIfNeeded(mangaToUpdate: List<LibraryManga>) {\n        val maxUpdatesFromSource = mangaToUpdate\n            .groupBy { it.manga.source }\n            .filterKeys { sourceManager.get(it) !is UnmeteredSource }\n            .maxOfOrNull { it.value.size } ?: 0\n\n        if (maxUpdatesFromSource <= MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD) {\n            return\n        }\n\n        context.notify(\n            Notifications.ID_LIBRARY_SIZE_WARNING,\n            Notifications.CHANNEL_LIBRARY_PROGRESS,\n        ) {\n            setContentTitle(context.stringResource(MR.strings.label_warning))\n            setStyle(\n                NotificationCompat.BigTextStyle().bigText(context.stringResource(MR.strings.notification_size_warning)),\n            )\n            setSmallIcon(R.drawable.ic_warning_white_24dp)\n            setTimeoutAfter(Downloader.WARNING_NOTIF_TIMEOUT_MS)\n            setContentIntent(NotificationHandler.openUrl(context, HELP_WARNING_URL))\n        }\n    }\n\n    /**\n     * Shows notification containing update entries that failed with action to open full log.\n     *\n     * @param failed Number of entries that failed to update.\n     * @param uri Uri for error log file containing all titles that failed.\n     */\n    fun showUpdateErrorNotification(failed: Int, uri: Uri) {\n        if (failed == 0) {\n            return\n        }\n\n        context.notify(\n            Notifications.ID_LIBRARY_ERROR,\n            Notifications.CHANNEL_LIBRARY_ERROR,\n        ) {\n            setContentTitle(context.stringResource(MR.strings.notification_update_error, failed))\n            setContentText(context.stringResource(MR.strings.action_show_errors))\n            setSmallIcon(R.drawable.ic_mihon)\n\n            setContentIntent(NotificationReceiver.openErrorLogPendingActivity(context, uri))\n        }\n    }\n\n    /**\n     * Shows the notification containing the result of the update done by the service.\n     *\n     * @param updates a list of manga with new updates.\n     */\n    fun showUpdateNotifications(updates: List<Pair<Manga, Array<Chapter>>>) {\n        // Parent group notification\n        context.notify(\n            Notifications.ID_NEW_CHAPTERS,\n            Notifications.CHANNEL_NEW_CHAPTERS,\n        ) {\n            setContentTitle(context.stringResource(MR.strings.notification_new_chapters))\n            if (updates.size == 1 && !securityPreferences.hideNotificationContent.get()) {\n                setContentText(updates.first().first.title.chop(NOTIF_TITLE_MAX_LEN))\n            } else {\n                setContentText(\n                    context.pluralStringResource(\n                        MR.plurals.notification_new_chapters_summary,\n                        updates.size,\n                        updates.size,\n                    ),\n                )\n\n                if (!securityPreferences.hideNotificationContent.get()) {\n                    setStyle(\n                        NotificationCompat.BigTextStyle().bigText(\n                            updates.joinToString(\"\\n\") {\n                                it.first.title.chop(NOTIF_TITLE_MAX_LEN)\n                            },\n                        ),\n                    )\n                }\n            }\n\n            setSmallIcon(R.drawable.ic_mihon)\n            setLargeIcon(notificationBitmap)\n\n            setGroup(Notifications.GROUP_NEW_CHAPTERS)\n            setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_SUMMARY)\n            setGroupSummary(true)\n            priority = NotificationCompat.PRIORITY_HIGH\n\n            setContentIntent(getNotificationIntent())\n            setAutoCancel(true)\n        }\n\n        // Per-manga notification\n        if (!securityPreferences.hideNotificationContent.get()) {\n            launchUI {\n                context.notify(\n                    updates.map { (manga, chapters) ->\n                        NotificationManagerCompat.NotificationWithIdAndTag(\n                            manga.id.hashCode(),\n                            createNewChaptersNotification(manga, chapters),\n                        )\n                    },\n                )\n            }\n        }\n    }\n\n    private suspend fun createNewChaptersNotification(manga: Manga, chapters: Array<Chapter>): Notification {\n        val icon = getMangaIcon(manga)\n        return context.notificationBuilder(Notifications.CHANNEL_NEW_CHAPTERS) {\n            setContentTitle(manga.title)\n\n            val description = getNewChaptersDescription(chapters)\n            setContentText(description)\n            setStyle(NotificationCompat.BigTextStyle().bigText(description))\n\n            setSmallIcon(R.drawable.ic_mihon)\n\n            if (icon != null) {\n                setLargeIcon(icon)\n            }\n\n            setGroup(Notifications.GROUP_NEW_CHAPTERS)\n            setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_SUMMARY)\n            priority = NotificationCompat.PRIORITY_HIGH\n\n            // Open first chapter on tap\n            setContentIntent(NotificationReceiver.openChapterPendingActivity(context, manga, chapters.first()))\n            setAutoCancel(true)\n\n            // Mark chapters as read action\n            addAction(\n                R.drawable.ic_done_24dp,\n                context.stringResource(MR.strings.action_mark_as_read),\n                NotificationReceiver.markAsReadPendingBroadcast(\n                    context,\n                    manga,\n                    chapters,\n                    Notifications.ID_NEW_CHAPTERS,\n                ),\n            )\n            // View chapters action\n            addAction(\n                R.drawable.ic_book_24dp,\n                context.stringResource(MR.strings.action_view_chapters),\n                NotificationReceiver.openChapterPendingActivity(\n                    context,\n                    manga,\n                    Notifications.ID_NEW_CHAPTERS,\n                ),\n            )\n            // Download chapters action\n            // Only add the action when chapters is within threshold\n            if (chapters.size <= Downloader.CHAPTERS_PER_SOURCE_QUEUE_WARNING_THRESHOLD) {\n                addAction(\n                    android.R.drawable.stat_sys_download_done,\n                    context.stringResource(MR.strings.action_download),\n                    NotificationReceiver.downloadChaptersPendingBroadcast(\n                        context,\n                        manga,\n                        chapters,\n                        Notifications.ID_NEW_CHAPTERS,\n                    ),\n                )\n            }\n        }.build()\n    }\n\n    /**\n     * Cancels the progress notification.\n     */\n    fun cancelProgressNotification() {\n        context.cancelNotification(Notifications.ID_LIBRARY_PROGRESS)\n    }\n\n    private suspend fun getMangaIcon(manga: Manga): Bitmap? {\n        val request = ImageRequest.Builder(context)\n            .data(manga)\n            .transformations(CircleCropTransformation())\n            .size(NOTIF_ICON_SIZE)\n            .build()\n        val drawable = context.imageLoader.execute(request).image?.asDrawable(context.resources)\n        return drawable?.getBitmapOrNull()\n    }\n\n    private fun getNewChaptersDescription(chapters: Array<Chapter>): String {\n        val displayableChapterNumbers = chapters\n            .filter { it.isRecognizedNumber }\n            .sortedBy { it.chapterNumber }\n            .map { formatChapterNumber(it.chapterNumber) }\n            .toSet()\n\n        return when (displayableChapterNumbers.size) {\n            // No sensible chapter numbers to show (i.e. no chapters have parsed chapter number)\n            0 -> {\n                // \"1 new chapter\" or \"5 new chapters\"\n                context.pluralStringResource(\n                    MR.plurals.notification_chapters_generic,\n                    chapters.size,\n                    chapters.size,\n                )\n            }\n            // Only 1 chapter has a parsed chapter number\n            1 -> {\n                val remaining = chapters.size - displayableChapterNumbers.size\n                if (remaining == 0) {\n                    // \"Chapter 2.5\"\n                    context.stringResource(\n                        MR.strings.notification_chapters_single,\n                        displayableChapterNumbers.first(),\n                    )\n                } else {\n                    // \"Chapter 2.5 and 10 more\"\n                    context.stringResource(\n                        MR.strings.notification_chapters_single_and_more,\n                        displayableChapterNumbers.first(),\n                        remaining,\n                    )\n                }\n            }\n            // Everything else (i.e. multiple parsed chapter numbers)\n            else -> {\n                val shouldTruncate = displayableChapterNumbers.size > NOTIF_MAX_CHAPTERS\n                if (shouldTruncate) {\n                    // \"Chapters 1, 2.5, 3, 4, 5 and 10 more\"\n                    val remaining = displayableChapterNumbers.size - NOTIF_MAX_CHAPTERS\n                    val joinedChapterNumbers = displayableChapterNumbers\n                        .take(NOTIF_MAX_CHAPTERS)\n                        .joinToString(\", \")\n                    context.pluralStringResource(\n                        MR.plurals.notification_chapters_multiple_and_more,\n                        remaining,\n                        joinedChapterNumbers,\n                        remaining,\n                    )\n                } else {\n                    // \"Chapters 1, 2.5, 3\"\n                    context.stringResource(\n                        MR.strings.notification_chapters_multiple,\n                        displayableChapterNumbers.joinToString(\", \"),\n                    )\n                }\n            }\n        }\n    }\n\n    /**\n     * Returns an intent to open the main activity.\n     */\n    private fun getNotificationIntent(): PendingIntent {\n        val intent = Intent(context, MainActivity::class.java).apply {\n            flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP\n            action = Constants.SHORTCUT_UPDATES\n        }\n        return PendingIntent.getActivity(\n            context,\n            0,\n            intent,\n            PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n        )\n    }\n\n    companion object {\n        const val HELP_WARNING_URL =\n            \"https://mihon.app/docs/faq/library#why-am-i-warned-about-large-bulk-updates-and-downloads\"\n    }\n}\n\nprivate const val NOTIF_MAX_CHAPTERS = 5\nprivate const val NOTIF_TITLE_MAX_LEN = 45\nprivate const val NOTIF_ICON_SIZE = 192\nprivate const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/library/MetadataUpdateJob.kt",
    "content": "package eu.kanade.tachiyomi.data.library\n\nimport android.content.Context\nimport android.content.pm.ServiceInfo\nimport android.os.Build\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.ForegroundInfo\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.WorkInfo\nimport androidx.work.WorkQuery\nimport androidx.work.WorkerParameters\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.copyFrom\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.prepUpdateCover\nimport eu.kanade.tachiyomi.util.system.isRunning\nimport eu.kanade.tachiyomi.util.system.setForegroundSafely\nimport eu.kanade.tachiyomi.util.system.workManager\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.coroutineScope\nimport kotlinx.coroutines.ensureActive\nimport kotlinx.coroutines.sync.Semaphore\nimport kotlinx.coroutines.sync.withPermit\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.interactor.GetLibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.toMangaUpdate\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.concurrent.CopyOnWriteArrayList\nimport kotlin.concurrent.atomics.AtomicInt\nimport kotlin.concurrent.atomics.ExperimentalAtomicApi\nimport kotlin.concurrent.atomics.fetchAndIncrement\n\n@OptIn(ExperimentalAtomicApi::class)\nclass MetadataUpdateJob(private val context: Context, workerParams: WorkerParameters) :\n    CoroutineWorker(context, workerParams) {\n\n    private val sourceManager: SourceManager = Injekt.get()\n    private val coverCache: CoverCache = Injekt.get()\n    private val getLibraryManga: GetLibraryManga = Injekt.get()\n    private val updateManga: UpdateManga = Injekt.get()\n\n    private val notifier = LibraryUpdateNotifier(context)\n\n    private var mangaToUpdate: List<LibraryManga> = mutableListOf()\n\n    override suspend fun doWork(): Result {\n        setForegroundSafely()\n\n        addMangaToQueue()\n\n        return withIOContext {\n            try {\n                updateMetadata()\n                Result.success()\n            } catch (e: Exception) {\n                if (e is CancellationException) {\n                    // Assume success although cancelled\n                    Result.success()\n                } else {\n                    logcat(LogPriority.ERROR, e)\n                    Result.failure()\n                }\n            } finally {\n                notifier.cancelProgressNotification()\n            }\n        }\n    }\n\n    override suspend fun getForegroundInfo(): ForegroundInfo {\n        val notifier = LibraryUpdateNotifier(context)\n        return ForegroundInfo(\n            Notifications.ID_LIBRARY_PROGRESS,\n            notifier.progressNotificationBuilder.build(),\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n                ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC\n            } else {\n                0\n            },\n        )\n    }\n\n    /**\n     * Adds list of manga to be updated.\n     */\n    private suspend fun addMangaToQueue() {\n        mangaToUpdate = getLibraryManga.await()\n        notifier.showQueueSizeWarningNotificationIfNeeded(mangaToUpdate)\n    }\n\n    private suspend fun updateMetadata() {\n        val semaphore = Semaphore(5)\n        val progressCount = AtomicInt(0)\n        val currentlyUpdatingManga = CopyOnWriteArrayList<Manga>()\n\n        coroutineScope {\n            mangaToUpdate.groupBy { it.manga.source }\n                .values\n                .map { mangaInSource ->\n                    async {\n                        semaphore.withPermit {\n                            mangaInSource.forEach { libraryManga ->\n                                val manga = libraryManga.manga\n                                ensureActive()\n\n                                withUpdateNotification(\n                                    currentlyUpdatingManga,\n                                    progressCount,\n                                    manga,\n                                ) {\n                                    val source = sourceManager.get(manga.source) ?: return@withUpdateNotification\n                                    try {\n                                        val networkManga = source.getMangaDetails(manga.toSManga())\n                                        val updatedManga = manga.prepUpdateCover(coverCache, networkManga, true)\n                                            .copyFrom(networkManga)\n                                        try {\n                                            updateManga.await(updatedManga.toMangaUpdate())\n                                        } catch (e: Exception) {\n                                            logcat(LogPriority.ERROR) { \"Manga doesn't exist anymore\" }\n                                        }\n                                    } catch (e: Throwable) {\n                                        // Ignore errors and continue\n                                        logcat(LogPriority.ERROR, e)\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                .awaitAll()\n        }\n\n        notifier.cancelProgressNotification()\n    }\n\n    private suspend fun withUpdateNotification(\n        updatingManga: CopyOnWriteArrayList<Manga>,\n        completed: AtomicInt,\n        manga: Manga,\n        block: suspend () -> Unit,\n    ) = coroutineScope {\n        ensureActive()\n\n        updatingManga.add(manga)\n        notifier.showProgressNotification(\n            updatingManga,\n            completed.load(),\n            mangaToUpdate.size,\n        )\n\n        block()\n\n        ensureActive()\n\n        updatingManga.remove(manga)\n        completed.fetchAndIncrement()\n        notifier.showProgressNotification(\n            updatingManga,\n            completed.load(),\n            mangaToUpdate.size,\n        )\n    }\n\n    companion object {\n        private const val TAG = \"MetadataUpdate\"\n        private const val WORK_NAME_MANUAL = \"MetadataUpdate\"\n\n        private const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60\n\n        fun startNow(context: Context): Boolean {\n            val wm = context.workManager\n            if (wm.isRunning(TAG)) {\n                // Already running either as a scheduled or manual job\n                return false\n            }\n            val request = OneTimeWorkRequestBuilder<MetadataUpdateJob>()\n                .addTag(TAG)\n                .addTag(WORK_NAME_MANUAL)\n                .build()\n            wm.enqueueUniqueWork(WORK_NAME_MANUAL, ExistingWorkPolicy.KEEP, request)\n\n            return true\n        }\n\n        fun stop(context: Context) {\n            val wm = context.workManager\n            val workQuery = WorkQuery.Builder.fromTags(listOf(TAG))\n                .addStates(listOf(WorkInfo.State.RUNNING))\n                .build()\n            wm.getWorkInfos(workQuery).get()\n                // Should only return one work but just in case\n                .forEach {\n                    wm.cancelWorkById(it.id)\n                }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationHandler.kt",
    "content": "package eu.kanade.tachiyomi.data.notification\n\nimport android.app.PendingIntent\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.extension.util.ExtensionInstaller\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport tachiyomi.core.common.Constants\n\n/**\n * Class that manages [PendingIntent] of activity's\n */\nobject NotificationHandler {\n    /**\n     * Returns [PendingIntent] that starts a download activity.\n     *\n     * @param context context of application\n     */\n    internal fun openDownloadManagerPendingActivity(context: Context): PendingIntent {\n        val intent = Intent(context, MainActivity::class.java).apply {\n            flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP\n            action = Constants.SHORTCUT_DOWNLOADS\n        }\n        return PendingIntent.getActivity(\n            context,\n            0,\n            intent,\n            PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n        )\n    }\n\n    /**\n     * Returns [PendingIntent] that starts a gallery activity\n     *\n     * @param context context of application\n     * @param file file containing image\n     */\n    internal fun openImagePendingActivity(context: Context, uri: Uri): PendingIntent {\n        val intent = Intent(Intent.ACTION_VIEW).apply {\n            setDataAndType(uri, \"image/*\")\n            flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION\n        }\n        return PendingIntent.getActivity(\n            context,\n            0,\n            intent,\n            PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n        )\n    }\n\n    /**\n     * Returns [PendingIntent] that prompts user with apk install intent\n     *\n     * @param context context\n     * @param uri uri of apk that is installed\n     */\n    fun installApkPendingActivity(context: Context, uri: Uri): PendingIntent {\n        val intent = Intent(Intent.ACTION_VIEW).apply {\n            setDataAndType(uri, ExtensionInstaller.APK_MIME)\n            flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION\n        }\n        return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)\n    }\n\n    fun openUrl(context: Context, url: String): PendingIntent {\n        val notificationIntent = Intent(Intent.ACTION_VIEW, url.toUri())\n        return PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt",
    "content": "package eu.kanade.tachiyomi.data.notification\n\nimport android.app.PendingIntent\nimport android.content.BroadcastReceiver\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateJob\nimport eu.kanade.tachiyomi.data.updater.AppUpdateDownloadJob\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.getParcelableExtraCompat\nimport eu.kanade.tachiyomi.util.system.notificationManager\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.runBlocking\nimport tachiyomi.core.common.Constants\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.chapter.interactor.GetChapter\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.toChapterUpdate\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\nimport eu.kanade.tachiyomi.BuildConfig.APPLICATION_ID as ID\n\n/**\n * Global [BroadcastReceiver] that runs on UI thread\n * Pending Broadcasts should be made from here.\n * NOTE: Use local broadcasts if possible.\n */\nclass NotificationReceiver : BroadcastReceiver() {\n\n    private val getManga: GetManga by injectLazy()\n    private val getChapter: GetChapter by injectLazy()\n    private val updateChapter: UpdateChapter by injectLazy()\n    private val downloadManager: DownloadManager by injectLazy()\n\n    override fun onReceive(context: Context, intent: Intent) {\n        when (intent.action) {\n            // Dismiss notification\n            ACTION_DISMISS_NOTIFICATION -> dismissNotification(context, intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1))\n            // Resume the download service\n            ACTION_RESUME_DOWNLOADS -> downloadManager.startDownloads()\n            // Pause the download service\n            ACTION_PAUSE_DOWNLOADS -> downloadManager.pauseDownloads()\n            // Clear the download queue\n            ACTION_CLEAR_DOWNLOADS -> downloadManager.clearQueue()\n            // Launch share activity and dismiss notification\n            ACTION_SHARE_IMAGE ->\n                shareImage(\n                    context,\n                    intent.getStringExtra(EXTRA_URI)!!.toUri(),\n                )\n            // Share backup file\n            ACTION_SHARE_BACKUP ->\n                shareFile(\n                    context,\n                    intent.getParcelableExtraCompat(EXTRA_URI)!!,\n                    \"application/x-protobuf+gzip\",\n                )\n            ACTION_CANCEL_RESTORE -> cancelRestore(context)\n            // Cancel library update and dismiss notification\n            ACTION_CANCEL_LIBRARY_UPDATE -> cancelLibraryUpdate(context)\n            // Start downloading app update\n            ACTION_START_APP_UPDATE -> startDownloadAppUpdate(context, intent)\n            // Cancel downloading app update\n            ACTION_CANCEL_APP_UPDATE_DOWNLOAD -> cancelDownloadAppUpdate(context)\n            // Open reader activity\n            ACTION_OPEN_CHAPTER -> {\n                openChapter(\n                    context,\n                    intent.getLongExtra(EXTRA_MANGA_ID, -1),\n                    intent.getLongExtra(EXTRA_CHAPTER_ID, -1),\n                )\n            }\n            // Mark updated manga chapters as read\n            ACTION_MARK_AS_READ -> {\n                val notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1)\n                if (notificationId > -1) {\n                    dismissNotification(context, notificationId, intent.getIntExtra(EXTRA_GROUP_ID, 0))\n                }\n                val urls = intent.getStringArrayExtra(EXTRA_CHAPTER_URL) ?: return\n                val mangaId = intent.getLongExtra(EXTRA_MANGA_ID, -1)\n                if (mangaId > -1) {\n                    markAsRead(urls, mangaId)\n                }\n            }\n            // Download manga chapters\n            ACTION_DOWNLOAD_CHAPTER -> {\n                val notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1)\n                if (notificationId > -1) {\n                    dismissNotification(context, notificationId, intent.getIntExtra(EXTRA_GROUP_ID, 0))\n                }\n                val urls = intent.getStringArrayExtra(EXTRA_CHAPTER_URL) ?: return\n                val mangaId = intent.getLongExtra(EXTRA_MANGA_ID, -1)\n                if (mangaId > -1) {\n                    downloadChapters(urls, mangaId)\n                }\n            }\n        }\n    }\n\n    /**\n     * Dismiss the notification\n     *\n     * @param notificationId the id of the notification\n     */\n    private fun dismissNotification(context: Context, notificationId: Int) {\n        context.cancelNotification(notificationId)\n    }\n\n    /**\n     * Called to start share intent to share image\n     *\n     * @param context context of application\n     * @param uri path of file\n     */\n    private fun shareImage(context: Context, uri: Uri) {\n        context.startActivity(uri.toShareIntent(context))\n    }\n\n    /**\n     * Called to start share intent to share backup file\n     *\n     * @param context context of application\n     * @param path path of file\n     */\n    private fun shareFile(context: Context, uri: Uri, fileMimeType: String) {\n        context.startActivity(uri.toShareIntent(context, fileMimeType))\n    }\n\n    /**\n     * Starts reader activity\n     *\n     * @param context context of application\n     * @param mangaId id of manga\n     * @param chapterId id of chapter\n     */\n    private fun openChapter(context: Context, mangaId: Long, chapterId: Long) {\n        val manga = runBlocking { getManga.await(mangaId) }\n        val chapter = runBlocking { getChapter.await(chapterId) }\n        if (manga != null && chapter != null) {\n            val intent = ReaderActivity.newIntent(context, manga.id, chapter.id).apply {\n                flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP\n            }\n            context.startActivity(intent)\n        } else {\n            context.toast(MR.strings.chapter_error)\n        }\n    }\n\n    /**\n     * Method called when user wants to stop a backup restore job.\n     *\n     * @param context context of application\n     */\n    private fun cancelRestore(context: Context) {\n        BackupRestoreJob.stop(context)\n    }\n\n    /**\n     * Method called when user wants to stop a library update\n     *\n     * @param context context of application\n     */\n    private fun cancelLibraryUpdate(context: Context) {\n        LibraryUpdateJob.stop(context)\n    }\n\n    private fun startDownloadAppUpdate(context: Context, intent: Intent) {\n        val url = intent.getStringExtra(AppUpdateDownloadJob.EXTRA_DOWNLOAD_URL) ?: return\n        AppUpdateDownloadJob.start(context, url)\n    }\n\n    private fun cancelDownloadAppUpdate(context: Context) {\n        AppUpdateDownloadJob.stop(context)\n    }\n\n    /**\n     * Method called when user wants to mark manga chapters as read\n     *\n     * @param chapterUrls URLs of chapter to mark as read\n     * @param mangaId id of manga\n     */\n    private fun markAsRead(chapterUrls: Array<String>, mangaId: Long) {\n        val downloadPreferences: DownloadPreferences = Injekt.get()\n        val sourceManager: SourceManager = Injekt.get()\n\n        launchIO {\n            val toUpdate = chapterUrls.mapNotNull { getChapter.await(it, mangaId) }\n                .map {\n                    val chapter = it.copy(read = true)\n                    if (downloadPreferences.removeAfterMarkedAsRead.get()) {\n                        val manga = getManga.await(mangaId)\n                        if (manga != null) {\n                            val source = sourceManager.get(manga.source)\n                            if (source != null) {\n                                downloadManager.deleteChapters(listOf(it), manga, source)\n                            }\n                        }\n                    }\n                    chapter.toChapterUpdate()\n                }\n            updateChapter.awaitAll(toUpdate)\n        }\n    }\n\n    /**\n     * Method called when user wants to download chapters\n     *\n     * @param chapterUrls URLs of chapter to download\n     * @param mangaId id of manga\n     */\n    private fun downloadChapters(chapterUrls: Array<String>, mangaId: Long) {\n        launchIO {\n            val manga = getManga.await(mangaId) ?: return@launchIO\n            val chapters = chapterUrls.mapNotNull { getChapter.await(it, mangaId) }\n            downloadManager.downloadChapters(manga, chapters)\n        }\n    }\n\n    companion object {\n        private const val NAME = \"NotificationReceiver\"\n\n        private const val ACTION_SHARE_IMAGE = \"$ID.$NAME.SHARE_IMAGE\"\n\n        private const val ACTION_SHARE_BACKUP = \"$ID.$NAME.SEND_BACKUP\"\n\n        private const val ACTION_CANCEL_RESTORE = \"$ID.$NAME.CANCEL_RESTORE\"\n\n        private const val ACTION_CANCEL_LIBRARY_UPDATE = \"$ID.$NAME.CANCEL_LIBRARY_UPDATE\"\n\n        private const val ACTION_START_APP_UPDATE = \"$ID.$NAME.ACTION_START_APP_UPDATE\"\n        private const val ACTION_CANCEL_APP_UPDATE_DOWNLOAD = \"$ID.$NAME.CANCEL_APP_UPDATE_DOWNLOAD\"\n\n        private const val ACTION_MARK_AS_READ = \"$ID.$NAME.MARK_AS_READ\"\n        private const val ACTION_OPEN_CHAPTER = \"$ID.$NAME.ACTION_OPEN_CHAPTER\"\n        private const val ACTION_DOWNLOAD_CHAPTER = \"$ID.$NAME.ACTION_DOWNLOAD_CHAPTER\"\n\n        private const val ACTION_OPEN_ENTRY = \"$ID.$NAME.ACTION_OPEN_ENTRY\"\n\n        private const val ACTION_RESUME_DOWNLOADS = \"$ID.$NAME.ACTION_RESUME_DOWNLOADS\"\n        private const val ACTION_PAUSE_DOWNLOADS = \"$ID.$NAME.ACTION_PAUSE_DOWNLOADS\"\n        private const val ACTION_CLEAR_DOWNLOADS = \"$ID.$NAME.ACTION_CLEAR_DOWNLOADS\"\n\n        private const val ACTION_DISMISS_NOTIFICATION = \"$ID.$NAME.ACTION_DISMISS_NOTIFICATION\"\n\n        private const val EXTRA_URI = \"$ID.$NAME.URI\"\n        private const val EXTRA_NOTIFICATION_ID = \"$ID.$NAME.NOTIFICATION_ID\"\n        private const val EXTRA_GROUP_ID = \"$ID.$NAME.EXTRA_GROUP_ID\"\n        private const val EXTRA_MANGA_ID = \"$ID.$NAME.EXTRA_MANGA_ID\"\n        private const val EXTRA_CHAPTER_ID = \"$ID.$NAME.EXTRA_CHAPTER_ID\"\n        private const val EXTRA_CHAPTER_URL = \"$ID.$NAME.EXTRA_CHAPTER_URL\"\n\n        /**\n         * Returns a [PendingIntent] that resumes the download of a chapter\n         *\n         * @param context context of application\n         * @return [PendingIntent]\n         */\n        internal fun resumeDownloadsPendingBroadcast(context: Context): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_RESUME_DOWNLOADS\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that pauses the download queue\n         *\n         * @param context context of application\n         * @return [PendingIntent]\n         */\n        internal fun pauseDownloadsPendingBroadcast(context: Context): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_PAUSE_DOWNLOADS\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns a [PendingIntent] that clears the download queue\n         *\n         * @param context context of application\n         * @return [PendingIntent]\n         */\n        internal fun clearDownloadsPendingBroadcast(context: Context): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_CLEAR_DOWNLOADS\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that starts a service which dismissed the notification\n         *\n         * @param context context of application\n         * @param notificationId id of notification\n         * @return [PendingIntent]\n         */\n        internal fun dismissNotificationPendingBroadcast(context: Context, notificationId: Int): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_DISMISS_NOTIFICATION\n                putExtra(EXTRA_NOTIFICATION_ID, notificationId)\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that starts a service which dismissed the notification\n         *\n         * @param context context of application\n         * @param notificationId id of notification\n         * @return [PendingIntent]\n         */\n        internal fun dismissNotification(context: Context, notificationId: Int, groupId: Int? = null) {\n            /*\n            Group notifications always have at least 2 notifications:\n            - Group summary notification\n            - Single manga notification\n\n            If the single notification is dismissed by the system, ie by a user swipe or tapping on the notification,\n            it will auto dismiss the group notification if there's no other single updates.\n\n            When programmatically dismissing this notification, the group notification is not automatically dismissed.\n             */\n            val groupKey = context.notificationManager.activeNotifications.find {\n                it.id == notificationId\n            }?.groupKey\n\n            if (groupId != null && groupId != 0 && !groupKey.isNullOrEmpty()) {\n                val notifications = context.notificationManager.activeNotifications.filter {\n                    it.groupKey == groupKey\n                }\n\n                if (notifications.size == 2) {\n                    context.cancelNotification(groupId)\n                    return\n                }\n            }\n\n            context.cancelNotification(notificationId)\n        }\n\n        /**\n         * Returns [PendingIntent] that starts a share activity\n         *\n         * @param context context of application\n         * @param uri location path of file\n         * @param notificationId id of notification\n         * @return [PendingIntent]\n         */\n        internal fun shareImagePendingBroadcast(context: Context, uri: Uri): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_SHARE_IMAGE\n                putExtra(EXTRA_URI, uri.toString())\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that starts a reader activity containing chapter.\n         *\n         * @param context context of application\n         * @param manga manga of chapter\n         * @param chapter chapter that needs to be opened\n         */\n        internal fun openChapterPendingActivity(context: Context, manga: Manga, chapter: Chapter): PendingIntent {\n            val newIntent = ReaderActivity.newIntent(context, manga.id, chapter.id)\n            return PendingIntent.getActivity(\n                context,\n                manga.id.hashCode(),\n                newIntent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that opens the manga info controller.\n         *\n         * @param context context of application\n         * @param manga manga of chapter\n         */\n        internal fun openChapterPendingActivity(context: Context, manga: Manga, groupId: Int): PendingIntent {\n            val newIntent =\n                Intent(context, MainActivity::class.java).setAction(Constants.SHORTCUT_MANGA)\n                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n                    .putExtra(Constants.MANGA_EXTRA, manga.id)\n                    .putExtra(\"notificationId\", manga.id.hashCode())\n                    .putExtra(\"groupId\", groupId)\n            return PendingIntent.getActivity(\n                context,\n                manga.id.hashCode(),\n                newIntent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that marks a chapter as read and deletes it if preferred\n         *\n         * @param context context of application\n         * @param manga manga of chapter\n         */\n        internal fun markAsReadPendingBroadcast(\n            context: Context,\n            manga: Manga,\n            chapters: Array<Chapter>,\n            groupId: Int,\n        ): PendingIntent {\n            val newIntent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_MARK_AS_READ\n                putExtra(EXTRA_CHAPTER_URL, chapters.map { it.url }.toTypedArray())\n                putExtra(EXTRA_MANGA_ID, manga.id)\n                putExtra(EXTRA_NOTIFICATION_ID, manga.id.hashCode())\n                putExtra(EXTRA_GROUP_ID, groupId)\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                manga.id.hashCode(),\n                newIntent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that downloads chapters\n         *\n         * @param context context of application\n         * @param manga manga of chapter\n         */\n        internal fun downloadChaptersPendingBroadcast(\n            context: Context,\n            manga: Manga,\n            chapters: Array<Chapter>,\n            groupId: Int,\n        ): PendingIntent {\n            val newIntent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_DOWNLOAD_CHAPTER\n                putExtra(EXTRA_CHAPTER_URL, chapters.map { it.url }.toTypedArray())\n                putExtra(EXTRA_MANGA_ID, manga.id)\n                putExtra(EXTRA_NOTIFICATION_ID, manga.id.hashCode())\n                putExtra(EXTRA_GROUP_ID, groupId)\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                manga.id.hashCode(),\n                newIntent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that opens the manga info controller\n         *\n         * @param context context of application\n         * @param mangaId id of the entry to open\n         */\n        internal fun openEntryPendingActivity(context: Context, mangaId: Long): PendingIntent {\n            val newIntent = Intent(context, MainActivity::class.java).setAction(Constants.SHORTCUT_MANGA)\n                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n                .putExtra(Constants.MANGA_EXTRA, mangaId)\n                .putExtra(\"notificationId\", mangaId.hashCode())\n\n            return PendingIntent.getActivity(\n                context,\n                mangaId.hashCode(),\n                newIntent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that starts a service which stops the library update\n         *\n         * @param context context of application\n         * @return [PendingIntent]\n         */\n        internal fun cancelLibraryUpdatePendingBroadcast(context: Context): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_CANCEL_LIBRARY_UPDATE\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that starts the [AppUpdateDownloadJob] to download an app update.\n         *\n         * @param context context of application\n         * @return [PendingIntent]\n         */\n        internal fun downloadAppUpdatePendingBroadcast(\n            context: Context,\n            url: String,\n            title: String? = null,\n        ): PendingIntent {\n            return Intent(context, NotificationReceiver::class.java).run {\n                action = ACTION_START_APP_UPDATE\n                putExtra(AppUpdateDownloadJob.EXTRA_DOWNLOAD_URL, url)\n                title?.let { putExtra(AppUpdateDownloadJob.EXTRA_DOWNLOAD_TITLE, it) }\n                PendingIntent.getBroadcast(\n                    context,\n                    0,\n                    this,\n                    PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n                )\n            }\n        }\n\n        /**\n         *\n         */\n        internal fun cancelDownloadAppUpdatePendingBroadcast(context: Context): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_CANCEL_APP_UPDATE_DOWNLOAD\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that opens the extensions controller.\n         *\n         * @param context context of application\n         * @return [PendingIntent]\n         */\n        internal fun openExtensionsPendingActivity(context: Context): PendingIntent {\n            val intent = Intent(context, MainActivity::class.java).apply {\n                action = Constants.SHORTCUT_EXTENSIONS\n                addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n            }\n            return PendingIntent.getActivity(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that directly launches a share activity for a backup file.\n         *\n         * @param context context of application\n         * @param uri uri of backup file\n         * @return [PendingIntent]\n         */\n        internal fun shareBackupPendingActivity(context: Context, uri: Uri): PendingIntent {\n            val intent = uri.toShareIntent(context, \"application/x-protobuf+gzip\").apply {\n                addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION)\n            }\n            return PendingIntent.getActivity(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        /**\n         * Returns [PendingIntent] that opens the error log file in an external viewer\n         *\n         * @param context context of application\n         * @param uri uri of error log file\n         * @return [PendingIntent]\n         */\n        internal fun openErrorLogPendingActivity(context: Context, uri: Uri): PendingIntent {\n            val intent = Intent().apply {\n                action = Intent.ACTION_VIEW\n                setDataAndType(uri, \"text/plain\")\n                flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION\n            }\n            return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)\n        }\n\n        /**\n         * Returns [PendingIntent] that cancels a backup restore job.\n         *\n         * @param context context of application\n         * @param notificationId id of notification\n         * @return [PendingIntent]\n         */\n        internal fun cancelRestorePendingBroadcast(context: Context, notificationId: Int): PendingIntent {\n            val intent = Intent(context, NotificationReceiver::class.java).apply {\n                action = ACTION_CANCEL_RESTORE\n                putExtra(EXTRA_NOTIFICATION_ID, notificationId)\n            }\n            return PendingIntent.getBroadcast(\n                context,\n                0,\n                intent,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/notification/Notifications.kt",
    "content": "package eu.kanade.tachiyomi.data.notification\n\nimport android.content.Context\nimport androidx.core.app.NotificationManagerCompat\nimport androidx.core.app.NotificationManagerCompat.IMPORTANCE_DEFAULT\nimport androidx.core.app.NotificationManagerCompat.IMPORTANCE_HIGH\nimport androidx.core.app.NotificationManagerCompat.IMPORTANCE_LOW\nimport eu.kanade.tachiyomi.util.system.buildNotificationChannel\nimport eu.kanade.tachiyomi.util.system.buildNotificationChannelGroup\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\n\n/**\n * Class to manage the basic information of all the notifications used in the app.\n */\nobject Notifications {\n\n    /**\n     * Common notification channel and ids used anywhere.\n     */\n    const val CHANNEL_COMMON = \"common_channel\"\n    const val ID_DOWNLOAD_IMAGE = 2\n\n    /**\n     * Notification channel and ids used by the library updater.\n     */\n    private const val GROUP_LIBRARY = \"group_library\"\n    const val CHANNEL_LIBRARY_PROGRESS = \"library_progress_channel\"\n    const val ID_LIBRARY_PROGRESS = -101\n    const val ID_LIBRARY_SIZE_WARNING = -103\n    const val CHANNEL_LIBRARY_ERROR = \"library_errors_channel\"\n    const val ID_LIBRARY_ERROR = -102\n\n    /**\n     * Notification channel and ids used by the downloader.\n     */\n    private const val GROUP_DOWNLOADER = \"group_downloader\"\n    const val CHANNEL_DOWNLOADER_PROGRESS = \"downloader_progress_channel\"\n    const val ID_DOWNLOAD_CHAPTER_PROGRESS = -201\n    const val CHANNEL_DOWNLOADER_ERROR = \"downloader_error_channel\"\n    const val ID_DOWNLOAD_CHAPTER_ERROR = -202\n\n    /**\n     * Notification channel and ids used by the library updater.\n     */\n    const val CHANNEL_NEW_CHAPTERS = \"new_chapters_channel\"\n    const val ID_NEW_CHAPTERS = -301\n    const val GROUP_NEW_CHAPTERS = \"eu.kanade.tachiyomi.NEW_CHAPTERS\"\n\n    /**\n     * Notification channel and ids used by the backup/restore system.\n     */\n    private const val GROUP_BACKUP_RESTORE = \"group_backup_restore\"\n    const val CHANNEL_BACKUP_RESTORE_PROGRESS = \"backup_restore_progress_channel\"\n    const val ID_BACKUP_PROGRESS = -501\n    const val ID_RESTORE_PROGRESS = -503\n    const val CHANNEL_BACKUP_RESTORE_COMPLETE = \"backup_restore_complete_channel_v2\"\n    const val ID_BACKUP_COMPLETE = -502\n    const val ID_RESTORE_COMPLETE = -504\n\n    /**\n     * Notification channel used for Incognito Mode\n     */\n    const val CHANNEL_INCOGNITO_MODE = \"incognito_mode_channel\"\n    const val ID_INCOGNITO_MODE = -701\n\n    /**\n     * Notification channel and ids used for app and extension updates.\n     */\n    private const val GROUP_APK_UPDATES = \"group_apk_updates\"\n    const val CHANNEL_APP_UPDATE = \"app_apk_update_channel\"\n    const val ID_APP_UPDATER = 1\n    const val ID_APP_UPDATE_PROMPT = 2\n    const val ID_APP_UPDATE_ERROR = 3\n    const val CHANNEL_EXTENSIONS_UPDATE = \"ext_apk_update_channel\"\n    const val ID_UPDATES_TO_EXTS = -401\n    const val ID_EXTENSION_INSTALLER = -402\n\n    private val deprecatedChannels = listOf(\n        \"downloader_channel\",\n        \"downloader_complete_channel\",\n        \"backup_restore_complete_channel\",\n        \"library_channel\",\n        \"library_progress_channel\",\n        \"updates_ext_channel\",\n        \"downloader_cache_renewal\",\n        \"crash_logs_channel\",\n        \"library_skipped_channel\",\n    )\n\n    /**\n     * Creates the notification channels introduced in Android Oreo.\n     * This won't do anything on Android versions that don't support notification channels.\n     *\n     * @param context The application context.\n     */\n    fun createChannels(context: Context) {\n        val notificationManager = NotificationManagerCompat.from(context)\n\n        // Delete old notification channels\n        deprecatedChannels.forEach(notificationManager::deleteNotificationChannel)\n\n        notificationManager.createNotificationChannelGroupsCompat(\n            listOf(\n                buildNotificationChannelGroup(GROUP_BACKUP_RESTORE) {\n                    setName(context.stringResource(MR.strings.label_backup))\n                },\n                buildNotificationChannelGroup(GROUP_DOWNLOADER) {\n                    setName(context.stringResource(MR.strings.download_notifier_downloader_title))\n                },\n                buildNotificationChannelGroup(GROUP_LIBRARY) {\n                    setName(context.stringResource(MR.strings.label_library))\n                },\n                buildNotificationChannelGroup(GROUP_APK_UPDATES) {\n                    setName(context.stringResource(MR.strings.label_recent_updates))\n                },\n            ),\n        )\n\n        notificationManager.createNotificationChannelsCompat(\n            listOf(\n                buildNotificationChannel(CHANNEL_COMMON, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.channel_common))\n                },\n                buildNotificationChannel(CHANNEL_LIBRARY_PROGRESS, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.channel_progress))\n                    setGroup(GROUP_LIBRARY)\n                    setShowBadge(false)\n                },\n                buildNotificationChannel(CHANNEL_LIBRARY_ERROR, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.channel_errors))\n                    setGroup(GROUP_LIBRARY)\n                    setShowBadge(false)\n                },\n                buildNotificationChannel(CHANNEL_NEW_CHAPTERS, IMPORTANCE_DEFAULT) {\n                    setName(context.stringResource(MR.strings.channel_new_chapters))\n                },\n                buildNotificationChannel(CHANNEL_DOWNLOADER_PROGRESS, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.channel_progress))\n                    setGroup(GROUP_DOWNLOADER)\n                    setShowBadge(false)\n                },\n                buildNotificationChannel(CHANNEL_DOWNLOADER_ERROR, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.channel_errors))\n                    setGroup(GROUP_DOWNLOADER)\n                    setShowBadge(false)\n                },\n                buildNotificationChannel(CHANNEL_BACKUP_RESTORE_PROGRESS, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.channel_progress))\n                    setGroup(GROUP_BACKUP_RESTORE)\n                    setShowBadge(false)\n                },\n                buildNotificationChannel(CHANNEL_BACKUP_RESTORE_COMPLETE, IMPORTANCE_HIGH) {\n                    setName(context.stringResource(MR.strings.channel_complete))\n                    setGroup(GROUP_BACKUP_RESTORE)\n                    setShowBadge(false)\n                    setSound(null, null)\n                },\n                buildNotificationChannel(CHANNEL_INCOGNITO_MODE, IMPORTANCE_LOW) {\n                    setName(context.stringResource(MR.strings.pref_incognito_mode))\n                },\n                buildNotificationChannel(CHANNEL_APP_UPDATE, IMPORTANCE_DEFAULT) {\n                    setGroup(GROUP_APK_UPDATES)\n                    setName(context.stringResource(MR.strings.channel_app_updates))\n                },\n                buildNotificationChannel(CHANNEL_EXTENSIONS_UPDATE, IMPORTANCE_DEFAULT) {\n                    setGroup(GROUP_APK_UPDATES)\n                    setName(context.stringResource(MR.strings.channel_ext_updates))\n                },\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/preference/SharedPreferencesDataStore.kt",
    "content": "package eu.kanade.tachiyomi.data.preference\n\nimport android.content.SharedPreferences\nimport androidx.core.content.edit\nimport androidx.preference.PreferenceDataStore\n\nclass SharedPreferencesDataStore(private val prefs: SharedPreferences) : PreferenceDataStore() {\n\n    override fun getBoolean(key: String?, defValue: Boolean): Boolean {\n        return prefs.getBoolean(key, defValue)\n    }\n\n    override fun putBoolean(key: String?, value: Boolean) {\n        prefs.edit {\n            putBoolean(key, value)\n        }\n    }\n\n    override fun getInt(key: String?, defValue: Int): Int {\n        return prefs.getInt(key, defValue)\n    }\n\n    override fun putInt(key: String?, value: Int) {\n        prefs.edit {\n            putInt(key, value)\n        }\n    }\n\n    override fun getLong(key: String?, defValue: Long): Long {\n        return prefs.getLong(key, defValue)\n    }\n\n    override fun putLong(key: String?, value: Long) {\n        prefs.edit {\n            putLong(key, value)\n        }\n    }\n\n    override fun getFloat(key: String?, defValue: Float): Float {\n        return prefs.getFloat(key, defValue)\n    }\n\n    override fun putFloat(key: String?, value: Float) {\n        prefs.edit {\n            putFloat(key, value)\n        }\n    }\n\n    override fun getString(key: String?, defValue: String?): String? {\n        return prefs.getString(key, defValue)\n    }\n\n    override fun putString(key: String?, value: String?) {\n        prefs.edit {\n            putString(key, value)\n        }\n    }\n\n    override fun getStringSet(key: String?, defValues: MutableSet<String>?): MutableSet<String>? {\n        return prefs.getStringSet(key, defValues)\n    }\n\n    override fun putStringSet(key: String?, values: MutableSet<String>?) {\n        prefs.edit {\n            putStringSet(key, values)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/saver/ImageSaver.kt",
    "content": "package eu.kanade.tachiyomi.data.saver\n\nimport android.content.ContentUris\nimport android.content.Context\nimport android.graphics.Bitmap\nimport android.net.Uri\nimport android.os.Build\nimport android.os.Environment\nimport android.provider.MediaStore\nimport android.webkit.MimeTypeMap\nimport androidx.annotation.RequiresApi\nimport androidx.core.content.contentValuesOf\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport eu.kanade.tachiyomi.util.storage.cacheImageDir\nimport eu.kanade.tachiyomi.util.storage.getUriCompat\nimport logcat.LogPriority\nimport okio.IOException\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\nimport java.io.ByteArrayInputStream\nimport java.io.ByteArrayOutputStream\nimport java.io.File\nimport java.io.InputStream\nimport java.time.Instant\n\nclass ImageSaver(\n    val context: Context,\n) {\n\n    fun save(image: Image): Uri {\n        val data = image.data\n\n        val type = ImageUtil.findImageType(data) ?: throw IllegalArgumentException(\"Not an image\")\n        val filename = DiskUtil.buildValidFilename(\"${image.name}.${type.extension}\")\n\n        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q || image.location !is Location.Pictures) {\n            return save(data(), image.location.directory(context), filename)\n        }\n\n        return saveApi29(image, type, filename, data)\n    }\n\n    private fun save(inputStream: InputStream, directory: File, filename: String): Uri {\n        directory.mkdirs()\n\n        val destFile = File(directory, filename)\n\n        inputStream.use { input ->\n            destFile.outputStream().use { output ->\n                input.copyTo(output)\n            }\n        }\n\n        DiskUtil.scanMedia(context, destFile.toUri())\n\n        return destFile.getUriCompat(context)\n    }\n\n    @RequiresApi(Build.VERSION_CODES.Q)\n    private fun saveApi29(\n        image: Image,\n        type: ImageUtil.ImageType,\n        filename: String,\n        data: () -> InputStream,\n    ): Uri {\n        val isMimeTypeSupported = MimeTypeMap.getSingleton().hasMimeType(type.mime)\n\n        val pictureDir = if (isMimeTypeSupported) {\n            MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)\n        } else {\n            MediaStore.Files.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)\n        }\n\n        val imageLocation = (image.location as Location.Pictures).relativePath\n        val relativePath = listOf(\n            if (isMimeTypeSupported) Environment.DIRECTORY_PICTURES else Environment.DIRECTORY_DOCUMENTS,\n            context.stringResource(MR.strings.app_name),\n            imageLocation,\n        ).joinToString(File.separator)\n\n        val contentValues = contentValuesOf(\n            MediaStore.MediaColumns.RELATIVE_PATH to relativePath,\n            MediaStore.MediaColumns.DISPLAY_NAME to if (isMimeTypeSupported) image.name else filename,\n            MediaStore.MediaColumns.MIME_TYPE to type.mime,\n            MediaStore.MediaColumns.DATE_MODIFIED to Instant.now().epochSecond,\n        )\n\n        val picture = findUriOrDefault(relativePath, filename) {\n            context.contentResolver.insert(\n                pictureDir,\n                contentValues,\n            ) ?: throw IOException(context.stringResource(MR.strings.error_saving_picture))\n        }\n\n        try {\n            data().use { input ->\n                context.contentResolver.openOutputStream(picture, \"w\").use { output ->\n                    input.copyTo(output!!)\n                }\n            }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            throw IOException(context.stringResource(MR.strings.error_saving_picture))\n        }\n\n        DiskUtil.scanMedia(context, picture)\n\n        return picture\n    }\n\n    @RequiresApi(Build.VERSION_CODES.Q)\n    private fun findUriOrDefault(path: String, filename: String, default: () -> Uri): Uri {\n        val projection = arrayOf(\n            MediaStore.MediaColumns._ID,\n            MediaStore.MediaColumns.DISPLAY_NAME,\n            MediaStore.MediaColumns.RELATIVE_PATH,\n        )\n\n        val selection = \"${MediaStore.MediaColumns.RELATIVE_PATH}=? AND ${MediaStore.MediaColumns.DISPLAY_NAME}=?\"\n\n        // Need to make sure it ends with the separator\n        val normalizedPath = \"${path.removeSuffix(File.separator)}${File.separator}\"\n\n        context.contentResolver.query(\n            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,\n            projection,\n            selection,\n            arrayOf(normalizedPath, filename),\n            null,\n        ).use { cursor ->\n            if (cursor != null && cursor.count >= 1) {\n                if (cursor.moveToFirst()) {\n                    val id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.MediaColumns._ID))\n                    return ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, id)\n                }\n            }\n        }\n\n        return default()\n    }\n}\n\nsealed class Image(\n    open val name: String,\n    open val location: Location,\n) {\n    data class Cover(\n        val bitmap: Bitmap,\n        override val name: String,\n        override val location: Location,\n    ) : Image(name, location)\n\n    data class Page(\n        val inputStream: () -> InputStream,\n        override val name: String,\n        override val location: Location,\n    ) : Image(name, location)\n\n    val data: () -> InputStream\n        get() {\n            return when (this) {\n                is Cover -> {\n                    {\n                        val baos = ByteArrayOutputStream()\n                        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos)\n                        ByteArrayInputStream(baos.toByteArray())\n                    }\n                }\n                is Page -> inputStream\n            }\n        }\n}\n\nsealed interface Location {\n    @ConsistentCopyVisibility\n    data class Pictures private constructor(val relativePath: String) : Location {\n        companion object {\n            fun create(relativePath: String = \"\"): Pictures {\n                return Pictures(relativePath)\n            }\n        }\n    }\n\n    data object Cache : Location\n\n    fun directory(context: Context): File {\n        return when (this) {\n            Cache -> context.cacheImageDir\n            is Pictures -> {\n                val file = File(\n                    Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),\n                    context.stringResource(MR.strings.app_name),\n                )\n                if (relativePath.isNotEmpty()) {\n                    return File(\n                        file,\n                        relativePath,\n                    )\n                }\n                file\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/BaseTracker.kt",
    "content": "package eu.kanade.tachiyomi.data.track\n\nimport android.app.Application\nimport androidx.annotation.CallSuper\nimport eu.kanade.domain.track.interactor.AddTracks\nimport eu.kanade.domain.track.model.toDomainTrack\nimport eu.kanade.domain.track.service.TrackPreferences\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport logcat.LogPriority\nimport okhttp3.OkHttpClient\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.track.interactor.InsertTrack\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nabstract class BaseTracker(\n    override val id: Long,\n    override val name: String,\n) : Tracker {\n\n    val trackPreferences: TrackPreferences by injectLazy()\n    val networkService: NetworkHelper by injectLazy()\n    private val addTracks: AddTracks by injectLazy()\n    private val insertTrack: InsertTrack by injectLazy()\n\n    override val client: OkHttpClient\n        get() = networkService.client\n\n    // Application and remote support for reading dates\n    override val supportsReadingDates: Boolean = false\n\n    override val supportsPrivateTracking: Boolean = false\n\n    // TODO: Store all scores as 10 point in the future maybe?\n    override fun get10PointScore(track: DomainTrack): Double {\n        return track.score\n    }\n\n    override fun indexToScore(index: Int): Double {\n        return index.toDouble()\n    }\n\n    @CallSuper\n    override fun logout() {\n        trackPreferences.setCredentials(this, \"\", \"\")\n    }\n\n    override val isLoggedIn: Boolean\n        get() = getUsername().isNotEmpty() &&\n            getPassword().isNotEmpty()\n\n    override val isLoggedInFlow: Flow<Boolean> by lazy {\n        combine(\n            trackPreferences.trackUsername(this).changes(),\n            trackPreferences.trackPassword(this).changes(),\n        ) { username, password ->\n            username.isNotEmpty() && password.isNotEmpty()\n        }\n    }\n\n    override fun getUsername() = trackPreferences.trackUsername(this).get()\n\n    override fun getPassword() = trackPreferences.trackPassword(this).get()\n\n    override fun saveCredentials(username: String, password: String) {\n        trackPreferences.setCredentials(this, username, password)\n    }\n\n    override suspend fun register(item: Track, mangaId: Long) {\n        item.manga_id = mangaId\n        try {\n            addTracks.bind(this, item, mangaId)\n        } catch (e: Throwable) {\n            withUIContext { Injekt.get<Application>().toast(e.message) }\n        }\n    }\n\n    override suspend fun setRemoteStatus(track: Track, status: Long) {\n        track.status = status\n        if (track.status == getCompletionStatus() && track.total_chapters != 0L) {\n            track.last_chapter_read = track.total_chapters.toDouble()\n        }\n        updateRemote(track)\n    }\n\n    override suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int) {\n        if (\n            track.last_chapter_read == 0.0 &&\n            track.last_chapter_read < chapterNumber &&\n            track.status != getRereadingStatus()\n        ) {\n            track.status = getReadingStatus()\n        }\n        track.last_chapter_read = chapterNumber.toDouble()\n        if (track.total_chapters != 0L && track.last_chapter_read.toLong() == track.total_chapters) {\n            track.status = getCompletionStatus()\n            track.finished_reading_date = System.currentTimeMillis()\n        }\n        updateRemote(track)\n    }\n\n    override suspend fun setRemoteScore(track: Track, scoreString: String) {\n        track.score = indexToScore(getScoreList().indexOf(scoreString))\n        updateRemote(track)\n    }\n\n    override suspend fun setRemoteStartDate(track: Track, epochMillis: Long) {\n        track.started_reading_date = epochMillis\n        updateRemote(track)\n    }\n\n    override suspend fun setRemoteFinishDate(track: Track, epochMillis: Long) {\n        track.finished_reading_date = epochMillis\n        updateRemote(track)\n    }\n\n    override suspend fun setRemotePrivate(track: Track, private: Boolean) {\n        track.private = private\n        updateRemote(track)\n    }\n\n    private suspend fun updateRemote(track: Track): Unit = withIOContext {\n        try {\n            update(track)\n            track.toDomainTrack(idRequired = false)?.let {\n                insertTrack.await(it)\n            }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to update remote track data id=$id\" }\n            withUIContext { Injekt.get<Application>().toast(e.message) }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/DeletableTracker.kt",
    "content": "package eu.kanade.tachiyomi.data.track\n\nimport tachiyomi.domain.track.model.Track\n\n/**\n * Tracker that support deleting am entry from a user's list.\n */\ninterface DeletableTracker {\n\n    suspend fun delete(track: Track)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTracker.kt",
    "content": "package eu.kanade.tachiyomi.data.track\n\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.source.Source\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.track.model.Track\n\n/**\n * A tracker that will never prompt the user to manually bind an entry.\n * It is expected that such tracker can only work with specific sources and unique IDs.\n */\ninterface EnhancedTracker {\n\n    /**\n     * This tracker will only work with the sources that are accepted by this filter function.\n     */\n    fun accept(source: Source): Boolean {\n        return source::class.qualifiedName in getAcceptedSources()\n    }\n\n    /**\n     * Fully qualified source classes that this tracker is compatible with.\n     */\n    fun getAcceptedSources(): List<String>\n\n    fun loginNoop()\n\n    /**\n     * Similar to [Tracker].search, but only returns zero or one match.\n     */\n    suspend fun match(manga: Manga): TrackSearch?\n\n    /**\n     * Checks whether the provided source/track/manga triplet is from this [Tracker]\n     */\n    fun isTrackFrom(track: Track, manga: Manga, source: Source?): Boolean\n\n    /**\n     * Migrates the given track for the manga to the newSource, if possible\n     */\n    fun migrateTrack(track: Track, manga: Manga, newSource: Source): Track?\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/Tracker.kt",
    "content": "package eu.kanade.tachiyomi.data.track\n\nimport androidx.annotation.CallSuper\nimport androidx.annotation.DrawableRes\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.coroutines.flow.Flow\nimport okhttp3.OkHttpClient\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\ninterface Tracker {\n\n    val id: Long\n\n    val name: String\n\n    val client: OkHttpClient\n\n    // Application and remote support for reading dates\n    val supportsReadingDates: Boolean\n\n    val supportsPrivateTracking: Boolean\n\n    @DrawableRes\n    fun getLogo(): Int\n\n    fun getStatusList(): List<Long>\n\n    fun getStatus(status: Long): StringResource?\n\n    fun getReadingStatus(): Long\n\n    fun getRereadingStatus(): Long\n\n    fun getCompletionStatus(): Long\n\n    fun getScoreList(): ImmutableList<String>\n\n    // TODO: Store all scores as 10 point in the future maybe?\n    fun get10PointScore(track: DomainTrack): Double\n\n    fun indexToScore(index: Int): Double\n\n    fun displayScore(track: DomainTrack): String\n\n    suspend fun update(track: Track, didReadChapter: Boolean = false): Track\n\n    suspend fun bind(track: Track, hasReadChapters: Boolean = false): Track\n\n    suspend fun search(query: String): List<TrackSearch>\n\n    suspend fun refresh(track: Track): Track\n\n    suspend fun login(username: String, password: String)\n\n    @CallSuper\n    fun logout()\n\n    val isLoggedIn: Boolean\n\n    val isLoggedInFlow: Flow<Boolean>\n\n    fun getUsername(): String\n\n    fun getPassword(): String\n\n    fun saveCredentials(username: String, password: String)\n\n    // TODO: move this to an interactor, and update all trackers based on common data\n    suspend fun register(item: Track, mangaId: Long)\n\n    suspend fun setRemoteStatus(track: Track, status: Long)\n\n    suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int)\n\n    suspend fun setRemoteScore(track: Track, scoreString: String)\n\n    suspend fun setRemoteStartDate(track: Track, epochMillis: Long)\n\n    suspend fun setRemoteFinishDate(track: Track, epochMillis: Long)\n\n    suspend fun setRemotePrivate(track: Track, private: Boolean)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/TrackerManager.kt",
    "content": "package eu.kanade.tachiyomi.data.track\n\nimport eu.kanade.tachiyomi.data.track.anilist.Anilist\nimport eu.kanade.tachiyomi.data.track.bangumi.Bangumi\nimport eu.kanade.tachiyomi.data.track.kavita.Kavita\nimport eu.kanade.tachiyomi.data.track.kitsu.Kitsu\nimport eu.kanade.tachiyomi.data.track.komga.Komga\nimport eu.kanade.tachiyomi.data.track.mangaupdates.MangaUpdates\nimport eu.kanade.tachiyomi.data.track.myanimelist.MyAnimeList\nimport eu.kanade.tachiyomi.data.track.shikimori.Shikimori\nimport eu.kanade.tachiyomi.data.track.suwayomi.Suwayomi\nimport kotlinx.coroutines.flow.combine\n\nclass TrackerManager {\n\n    companion object {\n        const val ANILIST = 2L\n        const val KITSU = 3L\n        const val KAVITA = 8L\n    }\n\n    val myAnimeList = MyAnimeList(1L)\n    val aniList = Anilist(ANILIST)\n    val kitsu = Kitsu(KITSU)\n    val shikimori = Shikimori(4L)\n    val bangumi = Bangumi(5L)\n    val komga = Komga(6L)\n    val mangaUpdates = MangaUpdates(7L)\n    val kavita = Kavita(KAVITA)\n    val suwayomi = Suwayomi(9L)\n\n    val trackers = listOf(myAnimeList, aniList, kitsu, shikimori, bangumi, komga, mangaUpdates, kavita, suwayomi)\n\n    fun loggedInTrackers() = trackers.filter { it.isLoggedIn }\n\n    fun loggedInTrackersFlow() = combine(trackers.map { it.isLoggedInFlow }) {\n        it.mapIndexedNotNull { index, isLoggedIn ->\n            if (isLoggedIn) trackers[index] else null\n        }\n    }\n\n    fun get(id: Long) = trackers.find { it.id == id }\n\n    fun getAll(ids: Set<Long>) = trackers.filter { it.id in ids }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.domain.track.model.toDbTrack\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.DeletableTracker\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALOAuth\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.serialization.json.Json\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Anilist(id: Long) : BaseTracker(id, \"AniList\"), DeletableTracker {\n\n    companion object {\n        const val READING = 1L\n        const val COMPLETED = 2L\n        const val ON_HOLD = 3L\n        const val DROPPED = 4L\n        const val PLAN_TO_READ = 5L\n        const val REREADING = 6L\n\n        const val POINT_100 = \"POINT_100\"\n        const val POINT_10 = \"POINT_10\"\n        const val POINT_10_DECIMAL = \"POINT_10_DECIMAL\"\n        const val POINT_5 = \"POINT_5\"\n        const val POINT_3 = \"POINT_3\"\n    }\n\n    private val json: Json by injectLazy()\n\n    private val interceptor by lazy { AnilistInterceptor(this, getPassword()) }\n\n    private val api by lazy { AnilistApi(client, interceptor) }\n\n    override val supportsReadingDates: Boolean = true\n\n    override val supportsPrivateTracking: Boolean = true\n\n    private val scorePreference = trackPreferences.anilistScoreType\n\n    init {\n        // If the preference is an int from APIv1, logout user to force using APIv2\n        try {\n            scorePreference.get()\n        } catch (e: ClassCastException) {\n            logout()\n            scorePreference.delete()\n        }\n    }\n\n    override fun getLogo() = R.drawable.brand_anilist\n\n    override fun getStatusList(): List<Long> {\n        return listOf(READING, COMPLETED, ON_HOLD, DROPPED, PLAN_TO_READ, REREADING)\n    }\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        READING -> MR.strings.reading\n        PLAN_TO_READ -> MR.strings.plan_to_read\n        COMPLETED -> MR.strings.completed\n        ON_HOLD -> MR.strings.on_hold\n        DROPPED -> MR.strings.dropped\n        REREADING -> MR.strings.repeating\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = REREADING\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override fun getScoreList(): ImmutableList<String> {\n        return when (scorePreference.get()) {\n            // 10 point\n            POINT_10 -> IntRange(0, 10).map(Int::toString).toImmutableList()\n            // 100 point\n            POINT_100 -> IntRange(0, 100).map(Int::toString).toImmutableList()\n            // 5 stars\n            POINT_5 -> IntRange(0, 5).map { \"$it ★\" }.toImmutableList()\n            // Smiley\n            POINT_3 -> persistentListOf(\"-\", \"😦\", \"😐\", \"😊\")\n            // 10 point decimal\n            POINT_10_DECIMAL -> IntRange(0, 100).map { (it / 10f).toString() }.toImmutableList()\n            else -> throw Exception(\"Unknown score type\")\n        }\n    }\n\n    override fun get10PointScore(track: DomainTrack): Double {\n        // Score is stored in 100 point format\n        return track.score / 10.0\n    }\n\n    override fun indexToScore(index: Int): Double {\n        return when (scorePreference.get()) {\n            // 10 point\n            POINT_10 -> index * 10.0\n            // 100 point\n            POINT_100 -> index.toDouble()\n            // 5 stars\n            POINT_5 -> when (index) {\n                0 -> 0.0\n                else -> index * 20.0 - 10.0\n            }\n            // Smiley\n            POINT_3 -> when (index) {\n                0 -> 0.0\n                else -> index * 25.0 + 10.0\n            }\n            // 10 point decimal\n            POINT_10_DECIMAL -> index.toDouble()\n            else -> throw Exception(\"Unknown score type\")\n        }\n    }\n\n    override fun displayScore(track: DomainTrack): String {\n        val score = track.score\n\n        return when (scorePreference.get()) {\n            POINT_5 -> when (score) {\n                0.0 -> \"0 ★\"\n                else -> \"${((score + 10) / 20).toInt()} ★\"\n            }\n\n            POINT_3 -> when {\n                score == 0.0 -> \"0\"\n                score <= 35 -> \"😦\"\n                score <= 60 -> \"😐\"\n                else -> \"😊\"\n            }\n\n            else -> track.toApiScore()\n        }\n    }\n\n    private suspend fun add(track: Track): Track {\n        return api.addLibManga(track)\n    }\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        // If user was using API v1 fetch library_id\n        if (track.library_id == null || track.library_id!! == 0L) {\n            val libManga = api.findLibManga(track, getUsername().toInt())\n                ?: throw Exception(\"$track not found on user library\")\n            track.library_id = libManga.library_id\n        }\n\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                    track.finished_reading_date = System.currentTimeMillis()\n                } else if (track.status != REREADING) {\n                    track.status = READING\n                    if (track.last_chapter_read == 1.0) {\n                        track.started_reading_date = System.currentTimeMillis()\n                    }\n                }\n            }\n        }\n\n        return api.updateLibManga(track)\n    }\n\n    override suspend fun delete(track: DomainTrack) {\n        if (track.libraryId == null || track.libraryId == 0L) {\n            val libManga = api.findLibManga(track.toDbTrack(), getUsername().toInt()) ?: return\n            return api.deleteLibManga(track.copy(id = libManga.library_id!!))\n        }\n\n        api.deleteLibManga(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        val remoteTrack = api.findLibManga(track, getUsername().toInt())\n        return if (remoteTrack != null) {\n            track.copyPersonalFrom(remoteTrack, copyRemotePrivate = false)\n            track.library_id = remoteTrack.library_id\n\n            if (track.status != COMPLETED) {\n                val isRereading = track.status == REREADING\n                track.status = if (!isRereading && hasReadChapters) READING else track.status\n            }\n\n            update(track)\n        } else {\n            // Set default fields if it's not found in the list\n            track.status = if (hasReadChapters) READING else PLAN_TO_READ\n            track.score = 0.0\n            add(track)\n        }\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        return api.search(query)\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val remoteTrack = api.getLibManga(track, getUsername().toInt())\n        track.copyPersonalFrom(remoteTrack)\n        track.title = remoteTrack.title\n        track.total_chapters = remoteTrack.total_chapters\n        return track\n    }\n\n    override suspend fun login(username: String, password: String) = login(password)\n\n    suspend fun login(token: String) {\n        try {\n            val oauth = api.createOAuth(token)\n            interceptor.setAuth(oauth)\n            val (username, scoreType) = api.getCurrentUser()\n            scorePreference.set(scoreType)\n            saveCredentials(username.toString(), oauth.accessToken)\n        } catch (e: Throwable) {\n            logout()\n        }\n    }\n\n    override fun logout() {\n        super.logout()\n        trackPreferences.trackToken(this).delete()\n        interceptor.setAuth(null)\n    }\n\n    fun saveOAuth(alOAuth: ALOAuth?) {\n        trackPreferences.trackToken(this).set(json.encodeToString(alOAuth))\n    }\n\n    fun loadOAuth(): ALOAuth? {\n        return try {\n            json.decodeFromString<ALOAuth>(trackPreferences.trackToken(this).get())\n        } catch (e: Exception) {\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist\n\nimport android.net.Uri\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALAddMangaResult\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALCurrentUserResult\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALOAuth\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALSearchResult\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALUserListMangaQueryResult\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.interceptor.rateLimit\nimport eu.kanade.tachiyomi.network.jsonMime\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.JsonNull\nimport kotlinx.serialization.json.JsonObject\nimport kotlinx.serialization.json.buildJsonObject\nimport kotlinx.serialization.json.put\nimport kotlinx.serialization.json.putJsonObject\nimport okhttp3.OkHttpClient\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport uy.kohesive.injekt.injectLazy\nimport java.time.Instant\nimport java.time.ZoneId\nimport java.time.ZonedDateTime\nimport kotlin.time.Duration.Companion.minutes\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) {\n\n    private val json: Json by injectLazy()\n\n    private val authClient = client.newBuilder()\n        .addInterceptor(interceptor)\n        .rateLimit(permits = 85, period = 1.minutes)\n        .build()\n\n    suspend fun addLibManga(track: Track): Track {\n        return withIOContext {\n            val query = $$\"\"\"\n            |mutation AddManga($mangaId: Int, $progress: Int, $status: MediaListStatus, $private: Boolean) {\n                |SaveMediaListEntry (mediaId: $mangaId, progress: $progress, status: $status, private: $private) {\n                |   id\n                |   status\n                |}\n            |}\n            |\n            \"\"\".trimMargin()\n            val payload = buildJsonObject {\n                put(\"query\", query)\n                putJsonObject(\"variables\") {\n                    put(\"mangaId\", track.remote_id)\n                    put(\"progress\", track.last_chapter_read.toInt())\n                    put(\"status\", track.toApiStatus())\n                    put(\"private\", track.private)\n                }\n            }\n            with(json) {\n                authClient.newCall(\n                    POST(\n                        API_URL,\n                        body = payload.toString().toRequestBody(jsonMime),\n                    ),\n                )\n                    .awaitSuccess()\n                    .parseAs<ALAddMangaResult>()\n                    .let {\n                        track.library_id = it.data.entry.id\n                        track\n                    }\n            }\n        }\n    }\n\n    suspend fun updateLibManga(track: Track): Track {\n        return withIOContext {\n            val query = $$\"\"\"\n            |mutation UpdateManga(\n                |$listId: Int, $progress: Int, $status: MediaListStatus, $private: Boolean,\n                |$score: Int, $startedAt: FuzzyDateInput, $completedAt: FuzzyDateInput\n            |) {\n                |SaveMediaListEntry(\n                    |id: $listId, progress: $progress, status: $status, private: $private,\n                    |scoreRaw: $score, startedAt: $startedAt, completedAt: $completedAt\n                |) {\n                    |id\n                    |status\n                    |progress\n                |}\n            |}\n            |\n            \"\"\".trimMargin()\n            val payload = buildJsonObject {\n                put(\"query\", query)\n                putJsonObject(\"variables\") {\n                    put(\"listId\", track.library_id)\n                    put(\"progress\", track.last_chapter_read.toInt())\n                    put(\"status\", track.toApiStatus())\n                    put(\"score\", track.score.toInt())\n                    put(\"startedAt\", createDate(track.started_reading_date))\n                    put(\"completedAt\", createDate(track.finished_reading_date))\n                    put(\"private\", track.private)\n                }\n            }\n            authClient.newCall(POST(API_URL, body = payload.toString().toRequestBody(jsonMime)))\n                .awaitSuccess()\n            track\n        }\n    }\n\n    suspend fun deleteLibManga(track: DomainTrack) {\n        withIOContext {\n            val query = $$\"\"\"\n            |mutation DeleteManga($listId: Int) {\n                |DeleteMediaListEntry(id: $listId) {\n                    |deleted\n                |}\n            |}\n            |\n            \"\"\".trimMargin()\n            val payload = buildJsonObject {\n                put(\"query\", query)\n                putJsonObject(\"variables\") {\n                    put(\"listId\", track.libraryId)\n                }\n            }\n            authClient.newCall(POST(API_URL, body = payload.toString().toRequestBody(jsonMime)))\n                .awaitSuccess()\n        }\n    }\n\n    suspend fun search(search: String): List<TrackSearch> {\n        return withIOContext {\n            val query = $$\"\"\"\n            |query Search($query: String) {\n                |Page (perPage: 50) {\n                    |media(search: $query, type: MANGA, format_not_in: [NOVEL]) {\n                        |id\n                        |staff {\n                            |edges {\n                                |role\n                                |id\n                                |node {\n                                    |name {\n                                        |full\n                                        |userPreferred\n                                        |native\n                                    |}\n                                |}\n                            |}\n                        |}\n                        |title {\n                            |userPreferred\n                        |}\n                        |coverImage {\n                            |large\n                        |}\n                        |format\n                        |status\n                        |chapters\n                        |description\n                        |startDate {\n                            |year\n                            |month\n                            |day\n                        |}\n                        |averageScore\n                    |}\n                |}\n            |}\n            |\n            \"\"\".trimMargin()\n            val payload = buildJsonObject {\n                put(\"query\", query)\n                putJsonObject(\"variables\") {\n                    put(\"query\", search)\n                }\n            }\n            with(json) {\n                authClient.newCall(\n                    POST(\n                        API_URL,\n                        body = payload.toString().toRequestBody(jsonMime),\n                    ),\n                )\n                    .awaitSuccess()\n                    .parseAs<ALSearchResult>()\n                    .data.page.media\n                    .map { it.toALManga().toTrack() }\n            }\n        }\n    }\n\n    suspend fun findLibManga(track: Track, userid: Int): Track? {\n        return withIOContext {\n            val query = $$\"\"\"\n            |query ($id: Int!, $manga_id: Int!) {\n                |Page {\n                    |mediaList(userId: $id, type: MANGA, mediaId: $manga_id) {\n                        |id\n                        |status\n                        |scoreRaw: score(format: POINT_100)\n                        |progress\n                        |private\n                        |startedAt {\n                            |year\n                            |month\n                            |day\n                        |}\n                        |completedAt {\n                            |year\n                            |month\n                            |day\n                        |}\n                        |media {\n                            |id\n                            |title {\n                                |userPreferred\n                            |}\n                            |coverImage {\n                                |large\n                            |}\n                            |format\n                            |status\n                            |chapters\n                            |description\n                            |startDate {\n                                |year\n                                |month\n                                |day\n                            |}\n                            |staff {\n                                |edges {\n                                    |role\n                                    |id\n                                    |node {\n                                        |name {\n                                            |full\n                                            |userPreferred\n                                            |native\n                                        |}\n                                    |}\n                                |}\n                            |}\n                        |}\n                    |}\n                |}\n            |}\n            |\n            \"\"\".trimMargin()\n            val payload = buildJsonObject {\n                put(\"query\", query)\n                putJsonObject(\"variables\") {\n                    put(\"id\", userid)\n                    put(\"manga_id\", track.remote_id)\n                }\n            }\n            with(json) {\n                authClient.newCall(\n                    POST(\n                        API_URL,\n                        body = payload.toString().toRequestBody(jsonMime),\n                    ),\n                )\n                    .awaitSuccess()\n                    .parseAs<ALUserListMangaQueryResult>()\n                    .data.page.mediaList\n                    .map { it.toALUserManga() }\n                    .firstOrNull()\n                    ?.toTrack()\n            }\n        }\n    }\n\n    suspend fun getLibManga(track: Track, userId: Int): Track {\n        return findLibManga(track, userId) ?: throw Exception(\"Could not find manga\")\n    }\n\n    fun createOAuth(token: String): ALOAuth {\n        return ALOAuth(token, \"Bearer\", System.currentTimeMillis() + 31536000000, 31536000000)\n    }\n\n    suspend fun getCurrentUser(): Pair<Int, String> {\n        return withIOContext {\n            val query = \"\"\"\n            |query User {\n                |Viewer {\n                    |id\n                    |mediaListOptions {\n                        |scoreFormat\n                    |}\n                |}\n            |}\n            |\n            \"\"\".trimMargin()\n            val payload = buildJsonObject {\n                put(\"query\", query)\n            }\n            with(json) {\n                authClient.newCall(\n                    POST(\n                        API_URL,\n                        body = payload.toString().toRequestBody(jsonMime),\n                    ),\n                )\n                    .awaitSuccess()\n                    .parseAs<ALCurrentUserResult>()\n                    .let {\n                        val viewer = it.data.viewer\n                        Pair(viewer.id, viewer.mediaListOptions.scoreFormat)\n                    }\n            }\n        }\n    }\n\n    private fun createDate(dateValue: Long): JsonObject {\n        if (dateValue == 0L) {\n            return buildJsonObject {\n                put(\"year\", JsonNull)\n                put(\"month\", JsonNull)\n                put(\"day\", JsonNull)\n            }\n        }\n\n        val dateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(dateValue), ZoneId.systemDefault())\n        return buildJsonObject {\n            put(\"year\", dateTime.year)\n            put(\"month\", dateTime.monthValue)\n            put(\"day\", dateTime.dayOfMonth)\n        }\n    }\n\n    companion object {\n        private const val CLIENT_ID = \"16329\"\n        private const val API_URL = \"https://graphql.anilist.co/\"\n        private const val BASE_URL = \"https://anilist.co/api/v2/\"\n        private const val BASE_MANGA_URL = \"https://anilist.co/manga/\"\n\n        fun mangaUrl(mediaId: Long): String {\n            return BASE_MANGA_URL + mediaId\n        }\n\n        fun authUrl(): Uri = \"${BASE_URL}oauth/authorize\".toUri().buildUpon()\n            .appendQueryParameter(\"client_id\", CLIENT_ID)\n            .appendQueryParameter(\"response_type\", \"token\")\n            .build()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.track.anilist.dto.ALOAuth\nimport eu.kanade.tachiyomi.data.track.anilist.dto.isExpired\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport java.io.IOException\n\nclass AnilistInterceptor(val anilist: Anilist, private var token: String?) : Interceptor {\n\n    /**\n     * OAuth object used for authenticated requests.\n     *\n     * Anilist returns the date without milliseconds. We fix that and make the token expire 1 minute\n     * before its original expiration date.\n     */\n    private var oauth: ALOAuth? = null\n        set(value) {\n            field = value?.copy(expires = value.expires * 1000 - 60 * 1000)\n        }\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n\n        if (token.isNullOrEmpty()) {\n            throw Exception(\"Not authenticated with Anilist\")\n        }\n        if (oauth == null) {\n            oauth = anilist.loadOAuth()\n        }\n        // Refresh access token if null or expired.\n        if (oauth!!.isExpired()) {\n            anilist.logout()\n            throw IOException(\"Token expired\")\n        }\n\n        // Throw on null auth.\n        if (oauth == null) {\n            throw IOException(\"No authentication token\")\n        }\n\n        // Add the authorization header to the original request.\n        val authRequest = originalRequest.newBuilder()\n            .addHeader(\"Authorization\", \"Bearer ${oauth!!.accessToken}\")\n            .header(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .build()\n\n        return chain.proceed(authRequest)\n    }\n\n    /**\n     * Called when the user authenticates with Anilist for the first time. Sets the refresh token\n     * and the oauth object.\n     */\n    fun setAuth(oauth: ALOAuth?) {\n        token = oauth?.accessToken\n        this.oauth = oauth\n        anilist.saveOAuth(oauth)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistUtils.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist\n\nimport eu.kanade.domain.track.service.TrackPreferences\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nfun Track.toApiStatus() = when (status) {\n    Anilist.READING -> \"CURRENT\"\n    Anilist.COMPLETED -> \"COMPLETED\"\n    Anilist.ON_HOLD -> \"PAUSED\"\n    Anilist.DROPPED -> \"DROPPED\"\n    Anilist.PLAN_TO_READ -> \"PLANNING\"\n    Anilist.REREADING -> \"REPEATING\"\n    else -> throw NotImplementedError(\"Unknown status: $status\")\n}\n\nprivate val preferences: TrackPreferences by injectLazy()\n\nfun DomainTrack.toApiScore(): String = when (preferences.anilistScoreType.get()) {\n    // 10 point\n    \"POINT_10\" -> (score.toInt() / 10).toString()\n    // 100 point\n    \"POINT_100\" -> score.toInt().toString()\n    // 5 stars\n    \"POINT_5\" -> when {\n        score == 0.0 -> \"0\"\n        score < 30 -> \"1\"\n        score < 50 -> \"2\"\n        score < 70 -> \"3\"\n        score < 90 -> \"4\"\n        else -> \"5\"\n    }\n    // Smiley\n    \"POINT_3\" -> when {\n        score == 0.0 -> \"0\"\n        score <= 35 -> \":(\"\n        score <= 60 -> \":|\"\n        else -> \":)\"\n    }\n    // 10 point decimal\n    \"POINT_10_DECIMAL\" -> (score / 10).toString()\n    else -> throw NotImplementedError(\"Unknown score type\")\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALAddManga.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class ALAddMangaResult(\n    val data: ALAddMangaData,\n)\n\n@Serializable\ndata class ALAddMangaData(\n    @SerialName(\"SaveMediaListEntry\")\n    val entry: ALAddMangaEntry,\n)\n\n@Serializable\ndata class ALAddMangaEntry(\n    val id: Long,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALFuzzyDate.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.Serializable\nimport java.time.LocalDate\nimport java.time.ZoneId\n\n@Serializable\ndata class ALFuzzyDate(\n    val year: Int?,\n    val month: Int?,\n    val day: Int?,\n) {\n    fun toEpochMilli(): Long = try {\n        LocalDate.of(year!!, month!!, day!!)\n            .atStartOfDay(ZoneId.systemDefault())\n            .toInstant()\n            .toEpochMilli()\n    } catch (_: Exception) {\n        0L\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALManga.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.data.track.anilist.Anilist\nimport eu.kanade.tachiyomi.data.track.anilist.AnilistApi\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.util.lang.htmlDecode\nimport java.text.SimpleDateFormat\nimport java.util.Locale\n\ndata class ALManga(\n    val remoteId: Long,\n    val title: String,\n    val imageUrl: String,\n    val description: String?,\n    val format: String,\n    val publishingStatus: String,\n    val startDateFuzzy: Long,\n    val totalChapters: Long,\n    val averageScore: Int,\n    val staff: ALStaff,\n) {\n    fun toTrack() = TrackSearch.create(TrackerManager.ANILIST).apply {\n        remote_id = remoteId\n        title = this@ALManga.title\n        total_chapters = totalChapters\n        cover_url = imageUrl\n        summary = description?.htmlDecode() ?: \"\"\n        score = averageScore.toDouble()\n        tracking_url = AnilistApi.mangaUrl(remote_id)\n        publishing_status = publishingStatus\n        publishing_type = format\n        if (startDateFuzzy != 0L) {\n            start_date = try {\n                val outputDf = SimpleDateFormat(\"yyyy-MM-dd\", Locale.US)\n                outputDf.format(startDateFuzzy)\n            } catch (e: IllegalArgumentException) {\n                \"\"\n            }\n        }\n        staff.edges.forEach {\n            val name = it.node.name() ?: return@forEach\n            if (\"Story\" in it.role) authors += name\n            if (\"Art\" in it.role) artists += name\n        }\n    }\n}\n\ndata class ALUserManga(\n    val libraryId: Long,\n    val listStatus: String,\n    val scoreRaw: Int,\n    val chaptersRead: Int,\n    val startDateFuzzy: Long,\n    val completedDateFuzzy: Long,\n    val manga: ALManga,\n    val private: Boolean,\n) {\n    fun toTrack() = Track.create(TrackerManager.ANILIST).apply {\n        remote_id = manga.remoteId\n        title = manga.title\n        status = toTrackStatus()\n        score = scoreRaw.toDouble()\n        started_reading_date = startDateFuzzy\n        finished_reading_date = completedDateFuzzy\n        last_chapter_read = chaptersRead.toDouble()\n        library_id = libraryId\n        total_chapters = manga.totalChapters\n        private = this@ALUserManga.private\n    }\n\n    private fun toTrackStatus() = when (listStatus) {\n        \"CURRENT\" -> Anilist.READING\n        \"COMPLETED\" -> Anilist.COMPLETED\n        \"PAUSED\" -> Anilist.ON_HOLD\n        \"DROPPED\" -> Anilist.DROPPED\n        \"PLANNING\" -> Anilist.PLAN_TO_READ\n        \"REPEATING\" -> Anilist.REREADING\n        else -> throw NotImplementedError(\"Unknown status: $listStatus\")\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALOAuth.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class ALOAuth(\n    @SerialName(\"access_token\")\n    val accessToken: String,\n    @SerialName(\"token_type\")\n    val tokenType: String,\n    val expires: Long,\n    @SerialName(\"expires_in\")\n    val expiresIn: Long,\n)\n\nfun ALOAuth.isExpired() = System.currentTimeMillis() > expires\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALSearch.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class ALSearchResult(\n    val data: ALSearchPage,\n)\n\n@Serializable\ndata class ALSearchPage(\n    @SerialName(\"Page\")\n    val page: ALSearchMedia,\n)\n\n@Serializable\ndata class ALSearchMedia(\n    val media: List<ALSearchItem>,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALSearchItem.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class ALSearchItem(\n    val id: Long,\n    val title: ALItemTitle,\n    val coverImage: ItemCover,\n    val description: String?,\n    val format: String,\n    val status: String?,\n    val startDate: ALFuzzyDate,\n    val chapters: Long?,\n    val averageScore: Int?,\n    val staff: ALStaff,\n) {\n    fun toALManga(): ALManga = ALManga(\n        remoteId = id,\n        title = title.userPreferred,\n        imageUrl = coverImage.large,\n        description = description,\n        format = format.replace(\"_\", \"-\"),\n        publishingStatus = status ?: \"\",\n        startDateFuzzy = startDate.toEpochMilli(),\n        totalChapters = chapters ?: 0,\n        averageScore = averageScore ?: -1,\n        staff = staff,\n    )\n}\n\n@Serializable\ndata class ALItemTitle(\n    val userPreferred: String,\n)\n\n@Serializable\ndata class ItemCover(\n    val large: String,\n)\n\n@Serializable\ndata class ALStaff(\n    val edges: List<ALEdge>,\n)\n\n@Serializable\ndata class ALEdge(\n    val role: String,\n    val id: Int,\n    val node: ALStaffNode,\n)\n\n@Serializable\ndata class ALStaffNode(\n    val name: ALStaffName,\n)\n\n@Serializable\ndata class ALStaffName(\n    val userPreferred: String?,\n    val native: String?,\n    val full: String?,\n) {\n    operator fun invoke(): String? {\n        return userPreferred ?: full ?: native\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALUser.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class ALCurrentUserResult(\n    val data: ALUserViewer,\n)\n\n@Serializable\ndata class ALUserViewer(\n    @SerialName(\"Viewer\")\n    val viewer: ALUserViewerData,\n)\n\n@Serializable\ndata class ALUserViewerData(\n    val id: Int,\n    val mediaListOptions: ALUserListOptions,\n)\n\n@Serializable\ndata class ALUserListOptions(\n    val scoreFormat: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/dto/ALUserList.kt",
    "content": "package eu.kanade.tachiyomi.data.track.anilist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class ALUserListMangaQueryResult(\n    val data: ALUserListMangaPage,\n)\n\n@Serializable\ndata class ALUserListMangaPage(\n    @SerialName(\"Page\")\n    val page: ALUserListMediaList,\n)\n\n@Serializable\ndata class ALUserListMediaList(\n    val mediaList: List<ALUserListItem>,\n)\n\n@Serializable\ndata class ALUserListItem(\n    val id: Long,\n    val status: String,\n    val scoreRaw: Int,\n    val progress: Int,\n    val startedAt: ALFuzzyDate,\n    val completedAt: ALFuzzyDate,\n    val media: ALSearchItem,\n    val private: Boolean,\n) {\n    fun toALUserManga(): ALUserManga {\n        return ALUserManga(\n            libraryId = this@ALUserListItem.id,\n            listStatus = status,\n            scoreRaw = scoreRaw,\n            chaptersRead = progress,\n            startDateFuzzy = startedAt.toEpochMilli(),\n            completedDateFuzzy = completedAt.toEpochMilli(),\n            manga = media.toALManga(),\n            private = private,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.BGMOAuth\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.serialization.json.Json\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Bangumi(id: Long) : BaseTracker(id, \"Bangumi\") {\n\n    private val json: Json by injectLazy()\n\n    private val interceptor by lazy { BangumiInterceptor(this) }\n\n    private val api by lazy { BangumiApi(id, client, interceptor) }\n\n    override val supportsPrivateTracking: Boolean = true\n\n    override fun getScoreList(): ImmutableList<String> = SCORE_LIST\n\n    override fun displayScore(track: DomainTrack): String {\n        return track.score.toInt().toString()\n    }\n\n    private suspend fun add(track: Track): Track {\n        return api.addLibManga(track)\n    }\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                } else {\n                    track.status = READING\n                }\n            }\n        }\n\n        return api.updateLibManga(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        val statusTrack = api.statusLibManga(track, getUsername())\n        return if (statusTrack != null) {\n            track.copyPersonalFrom(statusTrack, copyRemotePrivate = false)\n            track.library_id = statusTrack.library_id\n            track.score = statusTrack.score\n            track.last_chapter_read = statusTrack.last_chapter_read\n            track.total_chapters = statusTrack.total_chapters\n            if (track.status != COMPLETED) {\n                track.status = if (hasReadChapters) READING else statusTrack.status\n            }\n\n            update(track)\n        } else {\n            // Set default fields if it's not found in the list\n            track.status = if (hasReadChapters) READING else PLAN_TO_READ\n            track.score = 0.0\n            add(track)\n        }\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        return api.search(query)\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val remoteStatusTrack = api.statusLibManga(track, getUsername()) ?: throw Exception(\"Could not find manga\")\n        track.copyPersonalFrom(remoteStatusTrack)\n        return track\n    }\n\n    override fun getLogo() = R.drawable.brand_bangumi\n\n    override fun getStatusList(): List<Long> {\n        return listOf(READING, COMPLETED, ON_HOLD, DROPPED, PLAN_TO_READ)\n    }\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        READING -> MR.strings.reading\n        PLAN_TO_READ -> MR.strings.plan_to_read\n        COMPLETED -> MR.strings.completed\n        ON_HOLD -> MR.strings.on_hold\n        DROPPED -> MR.strings.dropped\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = -1\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override suspend fun login(username: String, password: String) = login(password)\n\n    suspend fun login(code: String) {\n        try {\n            val oauth = api.accessToken(code)\n            interceptor.newAuth(oauth)\n            // Users can set a 'username' (not nickname) once which effectively\n            // replaces the stringified ID in certain queries.\n            // If no username is set, the API returns the user ID as a strings\n            val username = api.getUsername()\n            saveCredentials(username, oauth.accessToken)\n        } catch (_: Throwable) {\n            logout()\n        }\n    }\n\n    fun saveToken(oauth: BGMOAuth?) {\n        trackPreferences.trackToken(this).set(json.encodeToString(oauth))\n    }\n\n    fun restoreToken(): BGMOAuth? {\n        return try {\n            json.decodeFromString<BGMOAuth>(trackPreferences.trackToken(this).get())\n        } catch (_: Exception) {\n            null\n        }\n    }\n\n    override fun logout() {\n        super.logout()\n        trackPreferences.trackToken(this).delete()\n        interceptor.newAuth(null)\n    }\n\n    companion object {\n        const val PLAN_TO_READ = 1L\n        const val COMPLETED = 2L\n        const val READING = 3L\n        const val ON_HOLD = 4L\n        const val DROPPED = 5L\n\n        private val SCORE_LIST = IntRange(0, 10)\n            .map(Int::toString)\n            .toImmutableList()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi\n\nimport android.net.Uri\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.BGMCollectionResponse\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.BGMOAuth\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.BGMSearchResult\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.BGMUser\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.HttpException\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.add\nimport kotlinx.serialization.json.buildJsonObject\nimport kotlinx.serialization.json.put\nimport kotlinx.serialization.json.putJsonArray\nimport kotlinx.serialization.json.putJsonObject\nimport okhttp3.CacheControl\nimport okhttp3.FormBody\nimport okhttp3.Headers.Companion.headersOf\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport uy.kohesive.injekt.injectLazy\n\nclass BangumiApi(\n    private val trackId: Long,\n    private val client: OkHttpClient,\n    interceptor: BangumiInterceptor,\n) {\n\n    private val json: Json by injectLazy()\n\n    private val authClient = client.newBuilder().addInterceptor(interceptor).build()\n\n    suspend fun addLibManga(track: Track): Track {\n        return withIOContext {\n            val url = \"$API_URL/v0/users/-/collections/${track.remote_id}\"\n            val body = buildJsonObject {\n                put(\"type\", track.toApiStatus())\n                put(\"rate\", track.score.toInt().coerceIn(0, 10))\n                put(\"ep_status\", track.last_chapter_read.toInt())\n                put(\"private\", track.private)\n            }\n                .toString()\n                .toRequestBody()\n            // Returns with 202 Accepted on success with no body\n            authClient.newCall(POST(url, body = body, headers = headersOf(\"Content-Type\", APP_JSON)))\n                .awaitSuccess()\n            track\n        }\n    }\n\n    suspend fun updateLibManga(track: Track): Track {\n        return withIOContext {\n            val url = \"$API_URL/v0/users/-/collections/${track.remote_id}\"\n            val body = buildJsonObject {\n                put(\"type\", track.toApiStatus())\n                put(\"rate\", track.score.toInt().coerceIn(0, 10))\n                put(\"ep_status\", track.last_chapter_read.toInt())\n                put(\"private\", track.private)\n            }\n                .toString()\n                .toRequestBody()\n\n            val request = Request.Builder()\n                .url(url)\n                .patch(body)\n                .headers(headersOf(\"Content-Type\", APP_JSON))\n                .build()\n            // Returns with 204 No Content\n            authClient.newCall(request)\n                .awaitSuccess()\n\n            track\n        }\n    }\n\n    suspend fun search(search: String): List<TrackSearch> {\n        // This API is marked as experimental in the documentation\n        // but that has been the case since 2022 with few significant\n        // changes to the schema for this endpoint since\n        // \"实验性 API， 本 schema 和实际的 API 行为都可能随时发生改动\"\n        return withIOContext {\n            val url = \"$API_URL/v0/search/subjects?limit=20\"\n            val body = buildJsonObject {\n                put(\"keyword\", search)\n                put(\"sort\", \"match\")\n                putJsonObject(\"filter\") {\n                    putJsonArray(\"type\") {\n                        add(1) // \"Book\" (书籍) type\n                    }\n                }\n            }\n                .toString()\n                .toRequestBody()\n            with(json) {\n                authClient.newCall(POST(url, body = body, headers = headersOf(\"Content-Type\", APP_JSON)))\n                    .awaitSuccess()\n                    .parseAs<BGMSearchResult>()\n                    .data\n                    .filter { it.platform == null || it.platform == \"漫画\" }\n                    .map { it.toTrackSearch(trackId) }\n            }\n        }\n    }\n\n    suspend fun statusLibManga(track: Track, username: String): Track? {\n        return withIOContext {\n            val url = \"$API_URL/v0/users/$username/collections/${track.remote_id}\"\n            with(json) {\n                try {\n                    authClient.newCall(GET(url, cache = CacheControl.FORCE_NETWORK))\n                        .awaitSuccess()\n                        .parseAs<BGMCollectionResponse>()\n                        .let {\n                            track.status = it.getStatus()\n                            track.last_chapter_read = it.epStatus?.toDouble() ?: 0.0\n                            track.score = it.rate?.toDouble() ?: 0.0\n                            track.total_chapters = it.subject?.eps?.toLong() ?: 0L\n                            track\n                        }\n                } catch (e: HttpException) {\n                    if (e.code == 404) { // \"subject is not collected by user\"\n                        null\n                    } else {\n                        throw e\n                    }\n                }\n            }\n        }\n    }\n\n    suspend fun accessToken(code: String): BGMOAuth {\n        return withIOContext {\n            val body = FormBody.Builder()\n                .add(\"grant_type\", \"authorization_code\")\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"client_secret\", CLIENT_SECRET)\n                .add(\"code\", code)\n                .add(\"redirect_uri\", REDIRECT_URL)\n                .build()\n            with(json) {\n                client.newCall(POST(OAUTH_URL, body = body))\n                    .awaitSuccess()\n                    .parseAs<BGMOAuth>()\n            }\n        }\n    }\n\n    suspend fun getUsername(): String {\n        return withIOContext {\n            with(json) {\n                authClient.newCall(GET(\"$API_URL/v0/me\"))\n                    .awaitSuccess()\n                    .parseAs<BGMUser>()\n                    .username\n            }\n        }\n    }\n\n    companion object {\n        private const val CLIENT_ID = \"bgm291665acbd06a4c28\"\n        private const val CLIENT_SECRET = \"43e5ce36b207de16e5d3cfd3e79118db\"\n\n        private const val API_URL = \"https://api.bgm.tv\"\n        private const val OAUTH_URL = \"https://bgm.tv/oauth/access_token\"\n        private const val LOGIN_URL = \"https://bgm.tv/oauth/authorize\"\n\n        private const val REDIRECT_URL = \"mihon://bangumi-auth\"\n\n        private const val APP_JSON = \"application/json\"\n\n        fun authUrl(): Uri =\n            LOGIN_URL.toUri().buildUpon()\n                .appendQueryParameter(\"client_id\", CLIENT_ID)\n                .appendQueryParameter(\"response_type\", \"code\")\n                .appendQueryParameter(\"redirect_uri\", REDIRECT_URL)\n                .build()\n\n        fun refreshTokenRequest(token: String) = POST(\n            OAUTH_URL,\n            body = FormBody.Builder()\n                .add(\"grant_type\", \"refresh_token\")\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"client_secret\", CLIENT_SECRET)\n                .add(\"refresh_token\", token)\n                .add(\"redirect_uri\", REDIRECT_URL)\n                .build(),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.BGMOAuth\nimport eu.kanade.tachiyomi.data.track.bangumi.dto.isExpired\nimport kotlinx.serialization.json.Json\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport uy.kohesive.injekt.injectLazy\n\nclass BangumiInterceptor(private val bangumi: Bangumi) : Interceptor {\n\n    private val json: Json by injectLazy()\n\n    /**\n     * OAuth object used for authenticated requests.\n     */\n    private var oauth: BGMOAuth? = bangumi.restoreToken()\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n\n        var currAuth: BGMOAuth = oauth ?: throw Exception(\"Not authenticated with Bangumi\")\n\n        if (currAuth.isExpired()) {\n            val response = chain.proceed(BangumiApi.refreshTokenRequest(currAuth.refreshToken!!))\n            if (response.isSuccessful) {\n                currAuth = json.decodeFromString<BGMOAuth>(response.body.string())\n                newAuth(currAuth)\n            } else {\n                response.close()\n            }\n        }\n\n        return originalRequest.newBuilder()\n            .header(\n                \"User-Agent\",\n                \"antsylich/Mihon/v${BuildConfig.VERSION_NAME} (Android) (http://github.com/mihonapp/mihon)\",\n            )\n            .apply {\n                addHeader(\"Authorization\", \"Bearer ${currAuth.accessToken}\")\n            }\n            .build()\n            .let(chain::proceed)\n    }\n\n    fun newAuth(oauth: BGMOAuth?) {\n        this.oauth = if (oauth == null) {\n            null\n        } else {\n            BGMOAuth(\n                oauth.accessToken,\n                oauth.tokenType,\n                System.currentTimeMillis() / 1000,\n                oauth.expiresIn,\n                oauth.refreshToken,\n                this.oauth?.userId,\n            )\n        }\n\n        bangumi.saveToken(oauth)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiUtils.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi\n\nimport eu.kanade.tachiyomi.data.database.models.Track\n\nfun Track.toApiStatus() = when (status) {\n    Bangumi.PLAN_TO_READ -> 1\n    Bangumi.COMPLETED -> 2\n    Bangumi.READING -> 3\n    Bangumi.ON_HOLD -> 4\n    Bangumi.DROPPED -> 5\n    else -> throw NotImplementedError(\"Unknown status: $status\")\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/dto/BGMCollectionResponse.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi.dto\n\nimport eu.kanade.tachiyomi.data.track.bangumi.Bangumi\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\n// Incomplete DTO with only our needed attributes\ndata class BGMCollectionResponse(\n    val rate: Int?,\n    val type: Int?,\n    @SerialName(\"ep_status\")\n    val epStatus: Int? = 0,\n    @SerialName(\"vol_status\")\n    val volStatus: Int? = 0,\n    val private: Boolean = false,\n    val subject: BGMSlimSubject? = null,\n) {\n    fun getStatus(): Long = when (type) {\n        1 -> Bangumi.PLAN_TO_READ\n        2 -> Bangumi.COMPLETED\n        3 -> Bangumi.READING\n        4 -> Bangumi.ON_HOLD\n        5 -> Bangumi.DROPPED\n        else -> throw NotImplementedError(\"Unknown status: $type\")\n    }\n}\n\n@Serializable\n// Incomplete DTO with only our needed attributes\ndata class BGMSlimSubject(\n    val volumes: Int?,\n    val eps: Int?,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/dto/BGMOAuth.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi.dto\n\nimport kotlinx.serialization.EncodeDefault\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class BGMOAuth(\n    @SerialName(\"access_token\")\n    val accessToken: String,\n    @SerialName(\"token_type\")\n    val tokenType: String,\n    @SerialName(\"created_at\")\n    @EncodeDefault\n    val createdAt: Long = System.currentTimeMillis() / 1000,\n    @SerialName(\"expires_in\")\n    val expiresIn: Long,\n    @SerialName(\"refresh_token\")\n    val refreshToken: String?,\n    @SerialName(\"user_id\")\n    val userId: Long?,\n)\n\n// Access token refresh before expired\nfun BGMOAuth.isExpired() = (System.currentTimeMillis() / 1000) > (createdAt + expiresIn - 3600)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/dto/BGMSearch.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi.dto\n\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class BGMSearchResult(\n    val total: Int,\n    val limit: Int,\n    val offset: Int,\n    val data: List<BGMSubject> = emptyList(),\n)\n\n@Serializable\n// Incomplete DTO with only our needed attributes\ndata class BGMSubject(\n    val id: Long,\n    @SerialName(\"name_cn\")\n    val nameCn: String,\n    val name: String,\n    val summary: String?,\n    val date: String?, // YYYY-MM-DD\n    val images: BGMSubjectImages?,\n    val volumes: Long = 0,\n    val eps: Long = 0,\n    val rating: BGMSubjectRating?,\n    val platform: String?,\n) {\n    fun toTrackSearch(trackId: Long): TrackSearch = TrackSearch.create(trackId).apply {\n        remote_id = this@BGMSubject.id\n        title = nameCn.ifBlank { name }\n        cover_url = images?.common.orEmpty()\n        summary = if (nameCn.isNotBlank()) {\n            \"作品原名：$name\" + this@BGMSubject.summary?.let { \"\\n${it.trim()}\" }.orEmpty()\n        } else {\n            this@BGMSubject.summary?.trim().orEmpty()\n        }\n        score = rating?.score ?: -1.0\n        tracking_url = \"https://bangumi.tv/subject/${this@BGMSubject.id}\"\n        total_chapters = eps\n        start_date = date ?: \"\"\n    }\n}\n\n@Serializable\n// Incomplete DTO with only our needed attributes\ndata class BGMSubjectImages(\n    val common: String?,\n)\n\n@Serializable\n// Incomplete DTO with only our needed attributes\ndata class BGMSubjectRating(\n    val score: Double?,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/dto/BGMUser.kt",
    "content": "package eu.kanade.tachiyomi.data.track.bangumi.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\n// Incomplete DTO with only our needed attributes\ndata class BGMUser(\n    val username: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kavita\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.source.ConfigurableSource\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.sourcePreferences\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport java.security.MessageDigest\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Kavita(id: Long) : BaseTracker(id, \"Kavita\"), EnhancedTracker {\n\n    companion object {\n        const val UNREAD = 1L\n        const val READING = 2L\n        const val COMPLETED = 3L\n    }\n\n    var authentications: OAuth? = null\n\n    private val interceptor by lazy { KavitaInterceptor(this) }\n    val api by lazy { KavitaApi(client, interceptor) }\n\n    private val sourceManager: SourceManager by injectLazy()\n\n    override fun getLogo(): Int = R.drawable.brand_kavita\n\n    override fun getStatusList(): List<Long> = listOf(UNREAD, READING, COMPLETED)\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        UNREAD -> MR.strings.unread\n        READING -> MR.strings.reading\n        COMPLETED -> MR.strings.completed\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = -1\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override fun getScoreList(): ImmutableList<String> = persistentListOf()\n\n    override fun displayScore(track: DomainTrack): String = \"\"\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                } else {\n                    track.status = READING\n                }\n            }\n        }\n        return api.updateProgress(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        return track\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        TODO(\"Not yet implemented: search\")\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val remoteTrack = api.getTrackSearch(track.tracking_url)\n        track.copyPersonalFrom(remoteTrack)\n        track.total_chapters = remoteTrack.total_chapters\n        return track\n    }\n\n    override suspend fun login(username: String, password: String) {\n        saveCredentials(\"user\", \"pass\")\n    }\n\n    // [Tracker].isLogged works by checking that credentials are saved.\n    // By saving dummy, unused credentials, we can activate the tracker simply by login/logout\n    override fun loginNoop() {\n        saveCredentials(\"user\", \"pass\")\n    }\n\n    override fun getAcceptedSources() = listOf(\"eu.kanade.tachiyomi.extension.all.kavita.Kavita\")\n\n    override suspend fun match(manga: Manga): TrackSearch? =\n        try {\n            api.getTrackSearch(manga.url)\n        } catch (e: Exception) {\n            null\n        }\n\n    override fun isTrackFrom(track: DomainTrack, manga: Manga, source: Source?): Boolean =\n        track.remoteUrl == manga.url && source?.let { accept(it) } == true\n\n    override fun migrateTrack(track: DomainTrack, manga: Manga, newSource: Source): DomainTrack? =\n        if (accept(newSource)) {\n            track.copy(remoteUrl = manga.url)\n        } else {\n            null\n        }\n\n    fun loadOAuth() {\n        val oauth = OAuth()\n        for (id in 1..3) {\n            val authentication = oauth.authentications[id - 1]\n            val sourceId by lazy {\n                val key = \"kavita_$id/all/1\" // Hardcoded versionID to 1\n                val bytes = MessageDigest.getInstance(\"MD5\").digest(key.toByteArray())\n                (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }\n                    .reduce(Long::or) and Long.MAX_VALUE\n            }\n            val preferences = (sourceManager.get(sourceId) as ConfigurableSource).sourcePreferences()\n\n            val prefApiUrl = preferences.getString(\"APIURL\", \"\")\n            val prefApiKey = preferences.getString(\"APIKEY\", \"\")\n            if (prefApiUrl.isNullOrEmpty() || prefApiKey.isNullOrEmpty()) {\n                // Source not configured. Skip\n                continue\n            }\n\n            val token = api.getNewToken(apiUrl = prefApiUrl, apiKey = prefApiKey)\n            if (token.isNullOrEmpty()) {\n                // Source is not accessible. Skip\n                continue\n            }\n\n            authentication.apiUrl = prefApiUrl\n            authentication.jwtToken = token\n        }\n        authentications = oauth\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/KavitaApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kavita\n\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport logcat.LogPriority\nimport okhttp3.Dns\nimport okhttp3.MediaType.Companion.toMediaTypeOrNull\nimport okhttp3.OkHttpClient\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.injectLazy\nimport java.io.IOException\nimport java.net.SocketTimeoutException\n\nclass KavitaApi(private val client: OkHttpClient, interceptor: KavitaInterceptor) {\n\n    private val json: Json by injectLazy()\n\n    private val authClient = client.newBuilder()\n        .dns(Dns.SYSTEM)\n        .addInterceptor(interceptor)\n        .build()\n\n    fun getApiFromUrl(url: String): String {\n        return url.split(\"/api/\").first() + \"/api\"\n    }\n\n    /*\n     * Uses url to compare against each source APIURL's to get the correct custom source preference.\n     * Now having source preference we can do getString(\"APIKEY\")\n     * Authenticates to get the token\n     * Saves the token in the var jwtToken\n     */\n    fun getNewToken(apiUrl: String, apiKey: String): String? {\n        val request = POST(\n            \"$apiUrl/Plugin/authenticate?apiKey=$apiKey&pluginName=Tachiyomi-Kavita\",\n            body = \"{}\".toRequestBody(\"application/json; charset=utf-8\".toMediaTypeOrNull()),\n        )\n        try {\n            with(json) {\n                client.newCall(request).execute().use {\n                    when (it.code) {\n                        200 -> return it.parseAs<AuthenticationDto>().token\n                        401 -> {\n                            logcat(LogPriority.WARN) {\n                                \"Unauthorized / API key not valid: API URL: $apiUrl, empty API key: ${apiKey.isEmpty()}\"\n                            }\n                            throw IOException(\"Unauthorized / api key not valid\")\n                        }\n                        500 -> {\n                            logcat(\n                                LogPriority.WARN,\n                            ) { \"Error fetching JWT token. API URL: $apiUrl, empty API key: ${apiKey.isEmpty()}\" }\n                            throw IOException(\"Error fetching JWT token\")\n                        }\n                        else -> {}\n                    }\n                }\n            }\n            // Not sure which one to catch\n        } catch (e: SocketTimeoutException) {\n            logcat(LogPriority.WARN) {\n                \"Could not fetch JWT token. Probably due to connectivity issue or URL '$apiUrl' not available, skipping\"\n            }\n            return null\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR) {\n                \"Unhandled exception fetching JWT token for URL: '$apiUrl'\"\n            }\n            throw IOException(e)\n        }\n\n        return null\n    }\n\n    private fun getApiVolumesUrl(url: String): String {\n        return \"${getApiFromUrl(url)}/Series/volumes?seriesId=${getIdFromUrl(url)}\"\n    }\n\n    /* Strips serie id from URL */\n    private fun getIdFromUrl(url: String): Int {\n        return url.substringAfterLast(\"/\").toInt()\n    }\n\n    /*\n     * Returns total chapters in the series.\n     * Ignores volumes.\n     * Volumes consisting of 1 file treated as chapter\n     */\n    private fun getTotalChapters(url: String): Long {\n        val requestUrl = getApiVolumesUrl(url)\n        try {\n            val listVolumeDto = with(json) {\n                authClient.newCall(GET(requestUrl))\n                    .execute()\n                    .parseAs<List<VolumeDto>>()\n            }\n            var volumeNumber = 0L\n            var maxChapterNumber = 0L\n            for (volume in listVolumeDto) {\n                if (volume.chapters.maxOf { it.number!!.toFloat() } == 0f) {\n                    volumeNumber++\n                } else if (maxChapterNumber < volume.chapters.maxOf { it.number!!.toFloat() }) {\n                    maxChapterNumber = volume.chapters.maxOf { it.number!!.toFloat().toLong() }\n                }\n            }\n\n            return if (maxChapterNumber > volumeNumber) maxChapterNumber else volumeNumber\n        } catch (e: Exception) {\n            logcat(LogPriority.WARN, e) { \"Exception fetching Total Chapters. Request:$requestUrl\" }\n            throw e\n        }\n    }\n\n    private fun getLatestChapterRead(url: String): Double {\n        val seriesId = getIdFromUrl(url)\n        val requestUrl = \"${getApiFromUrl(url)}/Tachiyomi/latest-chapter?seriesId=$seriesId\"\n        try {\n            with(json) {\n                authClient.newCall(GET(requestUrl)).execute().use {\n                    if (it.code == 200) {\n                        return it.parseAs<ChapterDto>().number!!.replace(\",\", \".\").toDouble()\n                    }\n                    if (it.code == 204) {\n                        return 0.0\n                    }\n                }\n            }\n        } catch (e: Exception) {\n            logcat(\n                LogPriority.WARN,\n                e,\n            ) { \"Exception getting latest chapter read. Could not get itemRequest: $requestUrl\" }\n            throw e\n        }\n        return 0.0\n    }\n\n    suspend fun getTrackSearch(url: String): TrackSearch = withIOContext {\n        try {\n            val seriesDto: SeriesDto = with(json) {\n                authClient.newCall(GET(url))\n                    .awaitSuccess()\n                    .parseAs()\n            }\n\n            val track = seriesDto.toTrack()\n            track.apply {\n                cover_url = seriesDto.thumbnail_url.toString()\n                tracking_url = url\n                total_chapters = getTotalChapters(url)\n\n                title = seriesDto.name\n                status = when (seriesDto.pagesRead) {\n                    seriesDto.pages -> Kavita.COMPLETED\n                    0 -> Kavita.UNREAD\n                    else -> Kavita.READING\n                }\n                last_chapter_read = getLatestChapterRead(url)\n            }\n        } catch (e: Exception) {\n            logcat(LogPriority.WARN, e) { \"Could not get item: $url\" }\n            throw e\n        }\n    }\n\n    suspend fun updateProgress(track: Track): Track {\n        val requestUrl = \"${getApiFromUrl(\n            track.tracking_url,\n        )}/Tachiyomi/mark-chapter-until-as-read?seriesId=${getIdFromUrl(\n            track.tracking_url,\n        )}&chapterNumber=${track.last_chapter_read}\"\n        authClient.newCall(\n            POST(requestUrl, body = \"{}\".toRequestBody(\"application/json; charset=utf-8\".toMediaTypeOrNull())),\n        )\n            .awaitSuccess()\n        return getTrackSearch(track.tracking_url)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/KavitaInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kavita\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport okhttp3.Interceptor\nimport okhttp3.Response\n\nclass KavitaInterceptor(private val kavita: Kavita) : Interceptor {\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n        if (kavita.authentications == null) {\n            kavita.loadOAuth()\n        }\n        val jwtToken = kavita.authentications?.getToken(\n            kavita.api.getApiFromUrl(originalRequest.url.toString()),\n        )\n\n        // Add the authorization header to the original request.\n        val authRequest = originalRequest.newBuilder()\n            .addHeader(\"Authorization\", \"Bearer $jwtToken\")\n            .header(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .build()\n\n        return chain.proceed(authRequest)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/KavitaModels.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kavita\n\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SeriesDto(\n    val id: Int,\n    val name: String,\n    val originalName: String = \"\",\n    val thumbnail_url: String? = \"\",\n    val localizedName: String? = \"\",\n    val sortName: String? = \"\",\n    val pages: Int,\n    val coverImageLocked: Boolean = true,\n    val pagesRead: Int,\n    val userRating: Int? = 0,\n    val userReview: String? = \"\",\n    val format: Int,\n    val created: String? = \"\",\n    val libraryId: Int,\n    val libraryName: String? = \"\",\n) {\n    fun toTrack(): TrackSearch = TrackSearch.create(TrackerManager.KAVITA).also {\n        it.title = name\n        it.summary = \"\"\n    }\n}\n\n@Serializable\ndata class VolumeDto(\n    val id: Int,\n    val number: Int,\n    val name: String,\n    val pages: Int,\n    val pagesRead: Int,\n    val lastModified: String,\n    val created: String,\n    val seriesId: Int,\n    val chapters: List<ChapterDto> = emptyList(),\n)\n\n@Serializable\ndata class ChapterDto(\n    val id: Int? = -1,\n    val range: String? = \"\",\n    val number: String? = \"-1\",\n    val pages: Int? = 0,\n    val isSpecial: Boolean? = false,\n    val title: String? = \"\",\n    val pagesRead: Int? = 0,\n    val coverImageLocked: Boolean? = false,\n    val volumeId: Int? = -1,\n    val created: String? = \"\",\n)\n\n@Serializable\ndata class AuthenticationDto(\n    val username: String,\n    val token: String,\n    val apiKey: String,\n)\n\nclass OAuth(\n    val authentications: List<SourceAuth> = listOf(\n        SourceAuth(1),\n        SourceAuth(2),\n        SourceAuth(3),\n    ),\n) {\n    fun getToken(apiUrl: String): String? {\n        for (authentication in authentications) {\n            if (authentication.apiUrl == apiUrl) {\n                return authentication.jwtToken\n            }\n        }\n        return null\n    }\n}\n\ndata class SourceAuth(\n    var sourceId: Int,\n    var apiUrl: String = \"\",\n    var jwtToken: String = \"\",\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/Kitsu.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.DeletableTracker\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuOAuth\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.serialization.json.Json\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport java.text.DecimalFormat\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Kitsu(id: Long) : BaseTracker(id, \"Kitsu\"), DeletableTracker {\n\n    companion object {\n        const val READING = 1L\n        const val COMPLETED = 2L\n        const val ON_HOLD = 3L\n        const val DROPPED = 4L\n        const val PLAN_TO_READ = 5L\n    }\n\n    override val supportsReadingDates: Boolean = true\n\n    override val supportsPrivateTracking: Boolean = true\n\n    private val json: Json by injectLazy()\n\n    private val interceptor by lazy { KitsuInterceptor(this) }\n\n    private val api by lazy { KitsuApi(client, interceptor) }\n\n    override fun getLogo() = R.drawable.brand_kitsu\n\n    override fun getStatusList(): List<Long> {\n        return listOf(READING, COMPLETED, ON_HOLD, DROPPED, PLAN_TO_READ)\n    }\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        READING -> MR.strings.reading\n        PLAN_TO_READ -> MR.strings.plan_to_read\n        COMPLETED -> MR.strings.completed\n        ON_HOLD -> MR.strings.on_hold\n        DROPPED -> MR.strings.dropped\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = -1\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override fun getScoreList(): ImmutableList<String> {\n        val df = DecimalFormat(\"0.#\")\n        return (listOf(\"0\") + IntRange(2, 20).map { df.format(it / 2f) }).toImmutableList()\n    }\n\n    override fun indexToScore(index: Int): Double {\n        return if (index > 0) (index + 1) / 2.0 else 0.0\n    }\n\n    override fun displayScore(track: DomainTrack): String {\n        val df = DecimalFormat(\"0.#\")\n        return df.format(track.score)\n    }\n\n    private suspend fun add(track: Track): Track {\n        return api.addLibManga(track, getUserId())\n    }\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                    track.finished_reading_date = System.currentTimeMillis()\n                } else {\n                    track.status = READING\n                    if (track.last_chapter_read == 1.0) {\n                        track.started_reading_date = System.currentTimeMillis()\n                    }\n                }\n            }\n        }\n\n        return api.updateLibManga(track)\n    }\n\n    override suspend fun delete(track: DomainTrack) {\n        api.removeLibManga(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        val remoteTrack = api.findLibManga(track, getUserId())\n        return if (remoteTrack != null) {\n            track.copyPersonalFrom(remoteTrack, copyRemotePrivate = false)\n            track.remote_id = remoteTrack.remote_id\n            track.library_id = remoteTrack.library_id\n\n            if (track.status != COMPLETED) {\n                track.status = if (hasReadChapters) READING else track.status\n            }\n\n            update(track)\n        } else {\n            track.status = if (hasReadChapters) READING else PLAN_TO_READ\n            track.score = 0.0\n            add(track)\n        }\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        return api.search(query)\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val remoteTrack = api.getLibManga(track)\n        track.copyPersonalFrom(remoteTrack)\n        track.total_chapters = remoteTrack.total_chapters\n        return track\n    }\n\n    override suspend fun login(username: String, password: String) {\n        val token = api.login(username, password)\n        interceptor.newAuth(token)\n        val userId = api.getCurrentUser()\n        saveCredentials(username, userId)\n    }\n\n    override fun logout() {\n        super.logout()\n        interceptor.newAuth(null)\n    }\n\n    private fun getUserId(): String {\n        return getPassword()\n    }\n\n    fun saveToken(oauth: KitsuOAuth?) {\n        trackPreferences.trackToken(this).set(json.encodeToString(oauth))\n    }\n\n    fun restoreToken(): KitsuOAuth? {\n        return try {\n            json.decodeFromString<KitsuOAuth>(trackPreferences.trackToken(this).get())\n        } catch (_: Exception) {\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu\n\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuAddMangaResult\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuAlgoliaSearchResult\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuCurrentUserResult\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuListSearchResult\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuOAuth\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuSearchResult\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.network.DELETE\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.jsonMime\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.buildJsonObject\nimport kotlinx.serialization.json.put\nimport kotlinx.serialization.json.putJsonObject\nimport okhttp3.FormBody\nimport okhttp3.Headers.Companion.headersOf\nimport okhttp3.MediaType.Companion.toMediaType\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport okhttp3.RequestBody\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport uy.kohesive.injekt.injectLazy\nimport java.net.URLEncoder\nimport java.nio.charset.StandardCharsets\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor) {\n\n    private val json: Json by injectLazy()\n\n    private val authClient = client.newBuilder().addInterceptor(interceptor).build()\n\n    suspend fun addLibManga(track: Track, userId: String): Track {\n        return withIOContext {\n            val data = buildJsonObject {\n                putJsonObject(\"data\") {\n                    put(\"type\", \"libraryEntries\")\n                    putJsonObject(\"attributes\") {\n                        put(\"status\", track.toApiStatus())\n                        put(\"progress\", track.last_chapter_read.toInt())\n                        put(\"private\", track.private)\n                    }\n                    putJsonObject(\"relationships\") {\n                        putJsonObject(\"user\") {\n                            putJsonObject(\"data\") {\n                                put(\"id\", userId)\n                                put(\"type\", \"users\")\n                            }\n                        }\n                        putJsonObject(\"media\") {\n                            putJsonObject(\"data\") {\n                                put(\"id\", track.remote_id)\n                                put(\"type\", \"manga\")\n                            }\n                        }\n                    }\n                }\n            }\n\n            with(json) {\n                authClient.newCall(\n                    POST(\n                        \"${BASE_URL}library-entries\",\n                        headers = headersOf(\"Content-Type\", VND_API_JSON),\n                        body = data.toString().toRequestBody(VND_JSON_MEDIA_TYPE),\n                    ),\n                )\n                    .awaitSuccess()\n                    .parseAs<KitsuAddMangaResult>()\n                    .let {\n                        track.library_id = it.data.id\n                        track\n                    }\n            }\n        }\n    }\n\n    suspend fun updateLibManga(track: Track): Track {\n        return withIOContext {\n            val data = buildJsonObject {\n                putJsonObject(\"data\") {\n                    put(\"type\", \"libraryEntries\")\n                    put(\"id\", track.library_id)\n                    putJsonObject(\"attributes\") {\n                        put(\"status\", track.toApiStatus())\n                        put(\"progress\", track.last_chapter_read.toInt())\n                        put(\"ratingTwenty\", track.toApiScore())\n                        put(\"startedAt\", KitsuDateHelper.convert(track.started_reading_date))\n                        put(\"finishedAt\", KitsuDateHelper.convert(track.finished_reading_date))\n                        put(\"private\", track.private)\n                    }\n                }\n            }\n\n            authClient.newCall(\n                Request.Builder()\n                    .url(\"${BASE_URL}library-entries/${track.library_id}\")\n                    .headers(\n                        headersOf(\"Content-Type\", VND_API_JSON),\n                    )\n                    .patch(data.toString().toRequestBody(VND_JSON_MEDIA_TYPE))\n                    .build(),\n            )\n                .awaitSuccess()\n\n            track\n        }\n    }\n\n    suspend fun removeLibManga(track: DomainTrack) {\n        withIOContext {\n            authClient.newCall(\n                DELETE(\n                    \"${BASE_URL}library-entries/${track.libraryId}\",\n                    headers = headersOf(\"Content-Type\", VND_API_JSON),\n                ),\n            )\n                .awaitSuccess()\n        }\n    }\n\n    suspend fun search(query: String): List<TrackSearch> {\n        return withIOContext {\n            with(json) {\n                authClient.newCall(GET(ALGOLIA_KEY_URL))\n                    .awaitSuccess()\n                    .parseAs<KitsuSearchResult>()\n                    .let {\n                        algoliaSearch(it.media.key, query)\n                    }\n            }\n        }\n    }\n\n    private suspend fun algoliaSearch(key: String, query: String): List<TrackSearch> {\n        return withIOContext {\n            val jsonObject = buildJsonObject {\n                put(\"params\", \"query=${URLEncoder.encode(query, StandardCharsets.UTF_8.name())}$ALGOLIA_FILTER\")\n            }\n\n            with(json) {\n                client.newCall(\n                    POST(\n                        ALGOLIA_URL,\n                        headers = headersOf(\n                            \"X-Algolia-Application-Id\",\n                            ALGOLIA_APP_ID,\n                            \"X-Algolia-API-Key\",\n                            key,\n                        ),\n                        body = jsonObject.toString().toRequestBody(jsonMime),\n                    ),\n                )\n                    .awaitSuccess()\n                    .parseAs<KitsuAlgoliaSearchResult>()\n                    .hits\n                    .filter { it.subtype != \"novel\" }\n                    .map { it.toTrack() }\n            }\n        }\n    }\n\n    suspend fun findLibManga(track: Track, userId: String): Track? {\n        return withIOContext {\n            val url = \"${BASE_URL}library-entries\".toUri().buildUpon()\n                .encodedQuery(\"filter[manga_id]=${track.remote_id}&filter[user_id]=$userId\")\n                .appendQueryParameter(\"include\", \"manga\")\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<KitsuListSearchResult>()\n                    .let {\n                        if (it.data.isNotEmpty() && it.included.isNotEmpty()) {\n                            it.firstToTrack()\n                        } else {\n                            null\n                        }\n                    }\n            }\n        }\n    }\n\n    suspend fun getLibManga(track: Track): Track {\n        return withIOContext {\n            val url = \"${BASE_URL}library-entries\".toUri().buildUpon()\n                .encodedQuery(\"filter[id]=${track.library_id}\")\n                .appendQueryParameter(\"include\", \"manga\")\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<KitsuListSearchResult>()\n                    .let {\n                        if (it.data.isNotEmpty() && it.included.isNotEmpty()) {\n                            it.firstToTrack()\n                        } else {\n                            throw Exception(\"Could not find manga\")\n                        }\n                    }\n            }\n        }\n    }\n\n    suspend fun login(username: String, password: String): KitsuOAuth {\n        return withIOContext {\n            val formBody: RequestBody = FormBody.Builder()\n                .add(\"username\", username)\n                .add(\"password\", password)\n                .add(\"grant_type\", \"password\")\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"client_secret\", CLIENT_SECRET)\n                .build()\n            with(json) {\n                client.newCall(POST(LOGIN_URL, body = formBody))\n                    .awaitSuccess()\n                    .parseAs()\n            }\n        }\n    }\n\n    suspend fun getCurrentUser(): String {\n        return withIOContext {\n            val url = \"${BASE_URL}users\".toUri().buildUpon()\n                .encodedQuery(\"filter[self]=true\")\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<KitsuCurrentUserResult>()\n                    .data[0]\n                    .id\n            }\n        }\n    }\n\n    companion object {\n        private const val CLIENT_ID = \"dd031b32d2f56c990b1425efe6c42ad847e7fe3ab46bf1299f05ecd856bdb7dd\"\n        private const val CLIENT_SECRET = \"54d7307928f63414defd96399fc31ba847961ceaecef3a5fd93144e960c0e151\"\n\n        private const val BASE_URL = \"https://kitsu.app/api/edge/\"\n        private const val LOGIN_URL = \"https://kitsu.app/api/oauth/token\"\n        private const val BASE_MANGA_URL = \"https://kitsu.app/manga/\"\n        private const val ALGOLIA_KEY_URL = \"https://kitsu.app/api/edge/algolia-keys/media/\"\n\n        private const val ALGOLIA_APP_ID = \"AWQO5J657S\"\n        private const val ALGOLIA_URL = \"https://$ALGOLIA_APP_ID-dsn.algolia.net/1/indexes/production_media/query/\"\n        private const val ALGOLIA_FILTER = \"&facetFilters=%5B%22kind%3Amanga%22%5D&attributesToRetrieve=\" +\n            \"%5B%22synopsis%22%2C%22averageRating%22%2C%22canonicalTitle%22%2C%22chapterCount%22%2C%22\" +\n            \"posterImage%22%2C%22startDate%22%2C%22subtype%22%2C%22endDate%22%2C%20%22id%22%5D\"\n\n        private const val VND_API_JSON = \"application/vnd.api+json\"\n        private val VND_JSON_MEDIA_TYPE = VND_API_JSON.toMediaType()\n\n        fun mangaUrl(remoteId: Long): String {\n            return BASE_MANGA_URL + remoteId\n        }\n\n        fun refreshTokenRequest(token: String) = POST(\n            LOGIN_URL,\n            body = FormBody.Builder()\n                .add(\"grant_type\", \"refresh_token\")\n                .add(\"refresh_token\", token)\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"client_secret\", CLIENT_SECRET)\n                .build(),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuDateHelper.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu\n\nimport java.text.SimpleDateFormat\nimport java.util.Date\nimport java.util.Locale\n\nobject KitsuDateHelper {\n\n    private const val PATTERN = \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\"\n    private val formatter = SimpleDateFormat(PATTERN, Locale.ENGLISH)\n\n    fun convert(dateValue: Long): String? {\n        if (dateValue == 0L) return null\n\n        return formatter.format(Date(dateValue))\n    }\n\n    fun parse(dateString: String?): Long {\n        if (dateString == null) return 0L\n\n        val dateValue = formatter.parse(dateString)\n\n        return dateValue?.time ?: return 0\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.KitsuOAuth\nimport eu.kanade.tachiyomi.data.track.kitsu.dto.isExpired\nimport kotlinx.serialization.json.Json\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport uy.kohesive.injekt.injectLazy\n\nclass KitsuInterceptor(private val kitsu: Kitsu) : Interceptor {\n\n    private val json: Json by injectLazy()\n\n    /**\n     * OAuth object used for authenticated requests.\n     */\n    private var oauth: KitsuOAuth? = kitsu.restoreToken()\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n\n        val currAuth = oauth ?: throw Exception(\"Not authenticated with Kitsu\")\n\n        val refreshToken = currAuth.refreshToken!!\n\n        // Refresh access token if expired.\n        if (currAuth.isExpired()) {\n            val response = chain.proceed(KitsuApi.refreshTokenRequest(refreshToken))\n            if (response.isSuccessful) {\n                newAuth(json.decodeFromString(response.body.string()))\n            } else {\n                response.close()\n            }\n        }\n\n        // Add the authorization header to the original request.\n        val authRequest = originalRequest.newBuilder()\n            .addHeader(\"Authorization\", \"Bearer ${oauth!!.accessToken}\")\n            .header(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .header(\"Accept\", \"application/vnd.api+json\")\n            .header(\"Content-Type\", \"application/vnd.api+json\")\n            .build()\n\n        return chain.proceed(authRequest)\n    }\n\n    fun newAuth(oauth: KitsuOAuth?) {\n        this.oauth = oauth\n        kitsu.saveToken(oauth)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuUtils.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu\n\nimport eu.kanade.tachiyomi.data.database.models.Track\n\nfun Track.toApiStatus() = when (status) {\n    Kitsu.READING -> \"current\"\n    Kitsu.COMPLETED -> \"completed\"\n    Kitsu.ON_HOLD -> \"on_hold\"\n    Kitsu.DROPPED -> \"dropped\"\n    Kitsu.PLAN_TO_READ -> \"planned\"\n    else -> throw Exception(\"Unknown status\")\n}\n\nfun Track.toApiScore(): String? {\n    return if (score > 0) (score * 2).toInt().toString() else null\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/dto/KitsuAddManga.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class KitsuAddMangaResult(\n    val data: KitsuAddMangaItem,\n)\n\n@Serializable\ndata class KitsuAddMangaItem(\n    val id: Long,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/dto/KitsuListSearch.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu.dto\n\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.data.track.kitsu.Kitsu\nimport eu.kanade.tachiyomi.data.track.kitsu.KitsuApi\nimport eu.kanade.tachiyomi.data.track.kitsu.KitsuDateHelper\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class KitsuListSearchResult(\n    val data: List<KitsuListSearchItemData>,\n    val included: List<KitsuListSearchItemIncluded> = emptyList(),\n) {\n    fun firstToTrack(): TrackSearch {\n        require(data.isNotEmpty()) { \"Missing User data from Kitsu\" }\n        require(included.isNotEmpty()) { \"Missing Manga data from Kitsu\" }\n\n        val userData = data[0]\n        val userDataAttrs = userData.attributes\n        val manga = included[0].attributes\n\n        return TrackSearch.create(TrackerManager.KITSU).apply {\n            remote_id = included[0].id\n            library_id = userData.id\n            title = manga.canonicalTitle\n            total_chapters = manga.chapterCount ?: 0\n            cover_url = manga.posterImage?.original ?: \"\"\n            summary = manga.synopsis ?: \"\"\n            tracking_url = KitsuApi.mangaUrl(remote_id)\n            publishing_status = manga.status\n            publishing_type = manga.mangaType ?: \"\"\n            start_date = userDataAttrs.startedAt ?: \"\"\n            started_reading_date = KitsuDateHelper.parse(userDataAttrs.startedAt)\n            finished_reading_date = KitsuDateHelper.parse(userDataAttrs.finishedAt)\n            status = when (userDataAttrs.status) {\n                \"current\" -> Kitsu.READING\n                \"completed\" -> Kitsu.COMPLETED\n                \"on_hold\" -> Kitsu.ON_HOLD\n                \"dropped\" -> Kitsu.DROPPED\n                \"planned\" -> Kitsu.PLAN_TO_READ\n                else -> throw Exception(\"Unknown status\")\n            }\n            score = userDataAttrs.ratingTwenty?.let { it / 2.0 } ?: 0.0\n            last_chapter_read = userDataAttrs.progress.toDouble()\n            private = userDataAttrs.private\n        }\n    }\n}\n\n@Serializable\ndata class KitsuListSearchItemData(\n    val id: Long,\n    val attributes: KitsuListSearchItemDataAttributes,\n)\n\n@Serializable\ndata class KitsuListSearchItemDataAttributes(\n    val status: String,\n    val startedAt: String?,\n    val finishedAt: String?,\n    val ratingTwenty: Int?,\n    val progress: Int,\n    val private: Boolean,\n)\n\n@Serializable\ndata class KitsuListSearchItemIncluded(\n    val id: Long,\n    val attributes: KitsuListSearchItemIncludedAttributes,\n)\n\n@Serializable\ndata class KitsuListSearchItemIncludedAttributes(\n    val canonicalTitle: String,\n    val chapterCount: Long?,\n    val mangaType: String?,\n    val posterImage: KitsuSearchItemCover?,\n    val synopsis: String?,\n    val startDate: String?,\n    val status: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/dto/KitsuOAuth.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class KitsuOAuth(\n    @SerialName(\"access_token\")\n    val accessToken: String,\n    @SerialName(\"token_type\")\n    val tokenType: String,\n    @SerialName(\"created_at\")\n    val createdAt: Long,\n    @SerialName(\"expires_in\")\n    val expiresIn: Long,\n    @SerialName(\"refresh_token\")\n    val refreshToken: String?,\n)\n\nfun KitsuOAuth.isExpired() = (System.currentTimeMillis() / 1000) > (createdAt + expiresIn - 3600)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/dto/KitsuSearch.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu.dto\n\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.data.track.kitsu.KitsuApi\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.serialization.Serializable\nimport java.text.SimpleDateFormat\nimport java.util.Date\nimport java.util.Locale\n\n@Serializable\ndata class KitsuSearchResult(\n    val media: KitsuSearchResultData,\n)\n\n@Serializable\ndata class KitsuSearchResultData(\n    val key: String,\n)\n\n@Serializable\ndata class KitsuAlgoliaSearchResult(\n    val hits: List<KitsuAlgoliaSearchItem>,\n)\n\n@Serializable\ndata class KitsuAlgoliaSearchItem(\n    val id: Long,\n    val canonicalTitle: String,\n    val chapterCount: Long?,\n    val subtype: String?,\n    val posterImage: KitsuSearchItemCover?,\n    val synopsis: String?,\n    val averageRating: Double?,\n    val startDate: Long?,\n    val endDate: Long?,\n) {\n    fun toTrack(): TrackSearch {\n        return TrackSearch.create(TrackerManager.KITSU).apply {\n            remote_id = this@KitsuAlgoliaSearchItem.id\n            title = canonicalTitle\n            total_chapters = chapterCount ?: 0\n            cover_url = posterImage?.original ?: \"\"\n            summary = synopsis ?: \"\"\n            tracking_url = KitsuApi.mangaUrl(remote_id)\n            score = averageRating ?: -1.0\n            publishing_status = if (endDate == null) \"Publishing\" else \"Finished\"\n            publishing_type = subtype ?: \"\"\n            start_date = startDate?.let {\n                val outputDf = SimpleDateFormat(\"yyyy-MM-dd\", Locale.US)\n                outputDf.format(Date(it * 1000))\n            } ?: \"\"\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/dto/KitsuSearchItemCover.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class KitsuSearchItemCover(\n    val original: String?,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/dto/KitsuUser.kt",
    "content": "package eu.kanade.tachiyomi.data.track.kitsu.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class KitsuCurrentUserResult(\n    val data: List<KitsuUser>,\n)\n\n@Serializable\ndata class KitsuUser(\n    val id: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt",
    "content": "package eu.kanade.tachiyomi.data.track.komga\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport okhttp3.Dns\nimport okhttp3.OkHttpClient\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Komga(id: Long) : BaseTracker(id, \"Komga\"), EnhancedTracker {\n\n    companion object {\n        const val UNREAD = 1L\n        const val READING = 2L\n        const val COMPLETED = 3L\n    }\n\n    override val client: OkHttpClient =\n        networkService.client.newBuilder()\n            .dns(Dns.SYSTEM) // don't use DNS over HTTPS as it breaks IP addressing\n            .build()\n\n    val api by lazy { KomgaApi(id, client) }\n\n    override fun getLogo() = R.drawable.brand_komga\n\n    override fun getStatusList(): List<Long> = listOf(UNREAD, READING, COMPLETED)\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        UNREAD -> MR.strings.unread\n        READING -> MR.strings.reading\n        COMPLETED -> MR.strings.completed\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = -1\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override fun getScoreList(): ImmutableList<String> = persistentListOf()\n\n    override fun displayScore(track: DomainTrack): String = \"\"\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                } else {\n                    track.status = READING\n                }\n            }\n        }\n\n        return api.updateProgress(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        return track\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        TODO(\"Not yet implemented: search\")\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val remoteTrack = api.getTrackSearch(track.tracking_url)\n        track.copyPersonalFrom(remoteTrack)\n        track.total_chapters = remoteTrack.total_chapters\n        return track\n    }\n\n    override suspend fun login(username: String, password: String) {\n        saveCredentials(\"user\", \"pass\")\n    }\n\n    // [Tracker].isLogged works by checking that credentials are saved.\n    // By saving dummy, unused credentials, we can activate the tracker simply by login/logout\n    override fun loginNoop() {\n        saveCredentials(\"user\", \"pass\")\n    }\n\n    override fun getAcceptedSources() = listOf(\"eu.kanade.tachiyomi.extension.all.komga.Komga\")\n\n    override suspend fun match(manga: Manga): TrackSearch? =\n        try {\n            api.getTrackSearch(manga.url)\n        } catch (e: Exception) {\n            null\n        }\n\n    override fun isTrackFrom(track: DomainTrack, manga: Manga, source: Source?): Boolean =\n        track.remoteUrl == manga.url && source?.let { accept(it) } == true\n\n    override fun migrateTrack(track: DomainTrack, manga: Manga, newSource: Source): DomainTrack? =\n        if (accept(newSource)) {\n            track.copy(remoteUrl = manga.url)\n        } else {\n            null\n        }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/komga/KomgaApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.komga\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.encodeToString\nimport kotlinx.serialization.json.Json\nimport logcat.LogPriority\nimport okhttp3.Headers\nimport okhttp3.MediaType.Companion.toMediaType\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.injectLazy\n\nprivate const val READLIST_API = \"/api/v1/readlists\"\n\nclass KomgaApi(\n    private val trackId: Long,\n    private val client: OkHttpClient,\n) {\n\n    private val headers: Headers by lazy {\n        Headers.Builder()\n            .add(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .build()\n    }\n\n    private val json: Json by injectLazy()\n\n    suspend fun getTrackSearch(url: String): TrackSearch =\n        withIOContext {\n            try {\n                val track = with(json) {\n                    if (url.contains(READLIST_API)) {\n                        client.newCall(GET(url, headers))\n                            .awaitSuccess()\n                            .parseAs<ReadListDto>()\n                            .toTrack()\n                    } else {\n                        client.newCall(GET(url, headers))\n                            .awaitSuccess()\n                            .parseAs<SeriesDto>()\n                            .toTrack()\n                    }\n                }\n\n                val progress = client\n                    .newCall(\n                        GET(\"${url.replace(\"/api/v1/series/\", \"/api/v2/series/\")}/read-progress/tachiyomi\", headers),\n                    )\n                    .awaitSuccess().let {\n                        with(json) {\n                            if (url.contains(\"/api/v1/series/\")) {\n                                it.parseAs<ReadProgressV2Dto>()\n                            } else {\n                                it.parseAs<ReadProgressDto>().toV2()\n                            }\n                        }\n                    }\n\n                track.apply {\n                    cover_url = \"$url/thumbnail\"\n                    tracking_url = url\n                    total_chapters = progress.maxNumberSort.toLong()\n                    status = when (progress.booksCount) {\n                        progress.booksUnreadCount -> Komga.UNREAD\n                        progress.booksReadCount -> Komga.COMPLETED\n                        else -> Komga.READING\n                    }\n                    last_chapter_read = progress.lastReadContinuousNumberSort\n                }\n            } catch (e: Exception) {\n                logcat(LogPriority.WARN, e) { \"Could not get item: $url\" }\n                throw e\n            }\n        }\n\n    suspend fun updateProgress(track: Track): Track {\n        val payload = if (track.tracking_url.contains(\"/api/v1/series/\")) {\n            json.encodeToString(ReadProgressUpdateV2Dto(track.last_chapter_read))\n        } else {\n            json.encodeToString(ReadProgressUpdateDto(track.last_chapter_read.toInt()))\n        }\n        client.newCall(\n            Request.Builder()\n                .url(\"${track.tracking_url.replace(\"/api/v1/series/\", \"/api/v2/series/\")}/read-progress/tachiyomi\")\n                .headers(headers)\n                .put(payload.toRequestBody(\"application/json\".toMediaType()))\n                .build(),\n        )\n            .awaitSuccess()\n        return getTrackSearch(track.tracking_url)\n    }\n\n    private fun SeriesDto.toTrack(): TrackSearch = TrackSearch.create(trackId).also {\n        it.title = metadata.title\n        it.summary = metadata.summary\n        it.publishing_status = metadata.status\n    }\n\n    private fun ReadListDto.toTrack(): TrackSearch = TrackSearch.create(trackId).also {\n        it.title = name\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/komga/KomgaModels.kt",
    "content": "package eu.kanade.tachiyomi.data.track.komga\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SeriesDto(\n    val id: String,\n    val libraryId: String,\n    val name: String,\n    val created: String?,\n    val lastModified: String?,\n    val fileLastModified: String,\n    val booksCount: Int,\n    val booksReadCount: Int,\n    val booksUnreadCount: Int,\n    val booksInProgressCount: Int,\n    val metadata: SeriesMetadataDto,\n    val booksMetadata: BookMetadataAggregationDto,\n)\n\n@Serializable\ndata class SeriesMetadataDto(\n    val status: String,\n    val created: String?,\n    val lastModified: String?,\n    val title: String,\n    val titleSort: String,\n    val summary: String,\n    val summaryLock: Boolean,\n    val readingDirection: String,\n    val readingDirectionLock: Boolean,\n    val publisher: String,\n    val publisherLock: Boolean,\n    val ageRating: Int?,\n    val ageRatingLock: Boolean,\n    val language: String,\n    val languageLock: Boolean,\n    val genres: Set<String>,\n    val genresLock: Boolean,\n    val tags: Set<String>,\n    val tagsLock: Boolean,\n)\n\n@Serializable\ndata class BookMetadataAggregationDto(\n    val authors: List<AuthorDto> = emptyList(),\n    val releaseDate: String?,\n    val summary: String,\n    val summaryNumber: String,\n\n    val created: String,\n    val lastModified: String,\n)\n\n@Serializable\ndata class AuthorDto(\n    val name: String,\n    val role: String,\n)\n\n@Serializable\ndata class ReadProgressUpdateDto(\n    val lastBookRead: Int,\n)\n\n@Serializable\ndata class ReadProgressUpdateV2Dto(\n    val lastBookNumberSortRead: Double,\n)\n\n@Serializable\ndata class ReadListDto(\n    val id: String,\n    val name: String,\n    val bookIds: List<String>,\n    val createdDate: String,\n    val lastModifiedDate: String,\n    val filtered: Boolean,\n)\n\n@Serializable\ndata class ReadProgressDto(\n    val booksCount: Int,\n    val booksReadCount: Int,\n    val booksUnreadCount: Int,\n    val booksInProgressCount: Int,\n    val lastReadContinuousIndex: Int,\n) {\n    fun toV2() = ReadProgressV2Dto(\n        booksCount,\n        booksReadCount,\n        booksUnreadCount,\n        booksInProgressCount,\n        lastReadContinuousIndex.toDouble(),\n        booksCount.toFloat(),\n    )\n}\n\n@Serializable\ndata class ReadProgressV2Dto(\n    val booksCount: Int,\n    val booksReadCount: Int,\n    val booksUnreadCount: Int,\n    val booksInProgressCount: Int,\n    val lastReadContinuousNumberSort: Double,\n    val maxNumberSort: Float,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.DeletableTracker\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MUListItem\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MURating\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.copyTo\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.toTrackSearch\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport tachiyomi.i18n.MR\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass MangaUpdates(id: Long) : BaseTracker(id, \"MangaUpdates\"), DeletableTracker {\n\n    companion object {\n        const val READING_LIST = 0L\n        const val WISH_LIST = 1L\n        const val COMPLETE_LIST = 2L\n        const val UNFINISHED_LIST = 3L\n        const val ON_HOLD_LIST = 4L\n\n        private val SCORE_LIST = (0..10)\n            .flatMap { decimal ->\n                when (decimal) {\n                    0 -> listOf(\"-\")\n                    10 -> listOf(\"10.0\")\n                    else -> (0..9).map { fraction ->\n                        \"$decimal.$fraction\"\n                    }\n                }\n            }\n            .toImmutableList()\n    }\n\n    private val interceptor by lazy { MangaUpdatesInterceptor(this) }\n\n    private val api by lazy { MangaUpdatesApi(interceptor, client) }\n\n    override fun getLogo(): Int = R.drawable.brand_mangaupdates\n\n    override fun getStatusList(): List<Long> {\n        return listOf(READING_LIST, COMPLETE_LIST, ON_HOLD_LIST, UNFINISHED_LIST, WISH_LIST)\n    }\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        READING_LIST -> MR.strings.reading_list\n        WISH_LIST -> MR.strings.wish_list\n        COMPLETE_LIST -> MR.strings.complete_list\n        ON_HOLD_LIST -> MR.strings.on_hold_list\n        UNFINISHED_LIST -> MR.strings.unfinished_list\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING_LIST\n\n    override fun getRereadingStatus(): Long = -1\n\n    override fun getCompletionStatus(): Long = COMPLETE_LIST\n\n    override fun getScoreList(): ImmutableList<String> = SCORE_LIST\n\n    override fun indexToScore(index: Int): Double = if (index == 0) 0.0 else SCORE_LIST[index].toDouble()\n\n    override fun displayScore(track: DomainTrack): String = track.score.toString()\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETE_LIST && didReadChapter) {\n            track.status = READING_LIST\n        }\n        api.updateSeriesListItem(track)\n        return track\n    }\n\n    override suspend fun delete(track: DomainTrack) {\n        api.deleteSeriesFromList(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        return try {\n            val (series, rating) = api.getSeriesListItem(track)\n            track.copyFrom(series, rating)\n        } catch (e: Exception) {\n            track.score = 0.0\n            api.addSeriesToList(track, hasReadChapters)\n            track\n        }\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        return api.search(query)\n            .map {\n                it.toTrackSearch(id)\n            }\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val (series, rating) = api.getSeriesListItem(track)\n        return track.copyFrom(series, rating)\n    }\n\n    private fun Track.copyFrom(item: MUListItem, rating: MURating?): Track = apply {\n        item.copyTo(this)\n        score = rating?.rating ?: 0.0\n    }\n\n    override suspend fun login(username: String, password: String) {\n        val authenticated = api.authenticate(username, password) ?: throw Throwable(\"Unable to login\")\n        saveCredentials(authenticated.uid.toString(), authenticated.sessionToken)\n        interceptor.newAuth(authenticated.sessionToken)\n    }\n\n    fun restoreSession(): String? {\n        return trackPreferences.trackPassword(this).get().ifBlank { null }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdatesApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates\n\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.mangaupdates.MangaUpdates.Companion.READING_LIST\nimport eu.kanade.tachiyomi.data.track.mangaupdates.MangaUpdates.Companion.WISH_LIST\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MUContext\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MUListItem\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MULoginResponse\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MURating\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MURecord\nimport eu.kanade.tachiyomi.data.track.mangaupdates.dto.MUSearchResult\nimport eu.kanade.tachiyomi.network.DELETE\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.PUT\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.add\nimport kotlinx.serialization.json.addJsonObject\nimport kotlinx.serialization.json.buildJsonArray\nimport kotlinx.serialization.json.buildJsonObject\nimport kotlinx.serialization.json.put\nimport kotlinx.serialization.json.putJsonObject\nimport okhttp3.MediaType.Companion.toMediaType\nimport okhttp3.OkHttpClient\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass MangaUpdatesApi(\n    interceptor: MangaUpdatesInterceptor,\n    private val client: OkHttpClient,\n) {\n    private val json: Json by injectLazy()\n\n    private val authClient by lazy {\n        client.newBuilder()\n            .addInterceptor(interceptor)\n            .build()\n    }\n\n    suspend fun getSeriesListItem(track: Track): Pair<MUListItem, MURating?> {\n        val listItem = with(json) {\n            authClient.newCall(GET(\"$BASE_URL/v1/lists/series/${track.remote_id}\"))\n                .awaitSuccess()\n                .parseAs<MUListItem>()\n        }\n\n        val rating = getSeriesRating(track)\n\n        return listItem to rating\n    }\n\n    suspend fun addSeriesToList(track: Track, hasReadChapters: Boolean) {\n        val status = if (hasReadChapters) READING_LIST else WISH_LIST\n        val body = buildJsonArray {\n            addJsonObject {\n                putJsonObject(\"series\") {\n                    put(\"id\", track.remote_id)\n                }\n                put(\"list_id\", status)\n            }\n        }\n        authClient.newCall(\n            POST(\n                url = \"$BASE_URL/v1/lists/series\",\n                body = body.toString().toRequestBody(CONTENT_TYPE),\n            ),\n        )\n            .awaitSuccess()\n            .let {\n                if (it.code == 200) {\n                    track.status = status\n                    track.last_chapter_read = 1.0\n                }\n            }\n    }\n\n    suspend fun updateSeriesListItem(track: Track) {\n        val body = buildJsonArray {\n            addJsonObject {\n                putJsonObject(\"series\") {\n                    put(\"id\", track.remote_id)\n                }\n                put(\"list_id\", track.status)\n                putJsonObject(\"status\") {\n                    put(\"chapter\", track.last_chapter_read.toInt())\n                }\n            }\n        }\n        authClient.newCall(\n            POST(\n                url = \"$BASE_URL/v1/lists/series/update\",\n                body = body.toString().toRequestBody(CONTENT_TYPE),\n            ),\n        )\n            .awaitSuccess()\n\n        updateSeriesRating(track)\n    }\n\n    suspend fun deleteSeriesFromList(track: DomainTrack) {\n        val body = buildJsonArray {\n            add(track.remoteId)\n        }\n        authClient.newCall(\n            POST(\n                url = \"$BASE_URL/v1/lists/series/delete\",\n                body = body.toString().toRequestBody(CONTENT_TYPE),\n            ),\n        )\n            .awaitSuccess()\n    }\n\n    private suspend fun getSeriesRating(track: Track): MURating? {\n        return try {\n            with(json) {\n                authClient.newCall(GET(\"$BASE_URL/v1/series/${track.remote_id}/rating\"))\n                    .awaitSuccess()\n                    .parseAs<MURating>()\n            }\n        } catch (e: Exception) {\n            null\n        }\n    }\n\n    private suspend fun updateSeriesRating(track: Track) {\n        if (track.score < 0.0) return\n        if (track.score != 0.0) {\n            val body = buildJsonObject {\n                put(\"rating\", track.score)\n            }\n            authClient.newCall(\n                PUT(\n                    url = \"$BASE_URL/v1/series/${track.remote_id}/rating\",\n                    body = body.toString().toRequestBody(CONTENT_TYPE),\n                ),\n            )\n                .awaitSuccess()\n        } else {\n            authClient.newCall(\n                DELETE(url = \"$BASE_URL/v1/series/${track.remote_id}/rating\"),\n            )\n                .awaitSuccess()\n        }\n    }\n\n    suspend fun search(query: String): List<MURecord> {\n        val body = buildJsonObject {\n            put(\"search\", query)\n            put(\n                \"filter_types\",\n                buildJsonArray {\n                    add(\"drama cd\")\n                    add(\"novel\")\n                },\n            )\n        }\n\n        return with(json) {\n            client.newCall(\n                POST(\n                    url = \"$BASE_URL/v1/series/search\",\n                    body = body.toString().toRequestBody(CONTENT_TYPE),\n                ),\n            )\n                .awaitSuccess()\n                .parseAs<MUSearchResult>()\n                .results\n                .map { it.record }\n        }\n    }\n\n    suspend fun authenticate(username: String, password: String): MUContext? {\n        val body = buildJsonObject {\n            put(\"username\", username)\n            put(\"password\", password)\n        }\n        return with(json) {\n            client.newCall(\n                PUT(\n                    url = \"$BASE_URL/v1/account/login\",\n                    body = body.toString().toRequestBody(CONTENT_TYPE),\n                ),\n            )\n                .awaitSuccess()\n                .parseAs<MULoginResponse>()\n                .context\n        }\n    }\n\n    companion object {\n        private const val BASE_URL = \"https://api.mangaupdates.com\"\n\n        private val CONTENT_TYPE = \"application/json\".toMediaType()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdatesInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport java.io.IOException\n\nclass MangaUpdatesInterceptor(\n    mangaUpdates: MangaUpdates,\n) : Interceptor {\n\n    private var token: String? = mangaUpdates.restoreSession()\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n\n        val token = token ?: throw IOException(\"Not authenticated with MangaUpdates\")\n\n        // Add the authorization header to the original request.\n        val authRequest = originalRequest.newBuilder()\n            .addHeader(\"Authorization\", \"Bearer $token\")\n            .header(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .build()\n\n        return chain.proceed(authRequest)\n    }\n\n    fun newAuth(token: String?) {\n        this.token = token\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUContext.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUContext(\n    @SerialName(\"session_token\")\n    val sessionToken: String,\n    val uid: Long,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUImage.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUImage(\n    val url: MUUrl? = null,\n    val height: Int? = null,\n    val width: Int? = null,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUListItem.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.mangaupdates.MangaUpdates.Companion.READING_LIST\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUListItem(\n    val series: MUSeries? = null,\n    @SerialName(\"list_id\")\n    val listId: Long? = null,\n    val status: MUStatus? = null,\n    val priority: Int? = null,\n)\n\nfun MUListItem.copyTo(track: Track): Track {\n    return track.apply {\n        this.status = listId ?: READING_LIST\n        this.last_chapter_read = this@copyTo.status?.chapter?.toDouble() ?: 0.0\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MULoginResponse.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MULoginResponse(\n    val context: MUContext,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MURating.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MURating(\n    val rating: Double? = null,\n)\n\nfun MURating.copyTo(track: Track): Track {\n    return track.apply {\n        this.score = rating ?: 0.0\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MURecord.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.util.lang.htmlDecode\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MURecord(\n    @SerialName(\"series_id\")\n    val seriesId: Long? = null,\n    val title: String? = null,\n    val url: String? = null,\n    val description: String? = null,\n    val image: MUImage? = null,\n    val type: String? = null,\n    val year: String? = null,\n    @SerialName(\"bayesian_rating\")\n    val bayesianRating: Double? = null,\n    @SerialName(\"rating_votes\")\n    val ratingVotes: Int? = null,\n    @SerialName(\"latest_chapter\")\n    val latestChapter: Int? = null,\n)\n\nfun MURecord.toTrackSearch(id: Long): TrackSearch {\n    return TrackSearch.create(id).apply {\n        remote_id = this@toTrackSearch.seriesId ?: 0L\n        title = this@toTrackSearch.title?.htmlDecode() ?: \"\"\n        total_chapters = 0\n        cover_url = this@toTrackSearch.image?.url?.original ?: \"\"\n        summary = this@toTrackSearch.description?.htmlDecode() ?: \"\"\n        tracking_url = this@toTrackSearch.url ?: \"\"\n        publishing_status = \"\"\n        publishing_type = this@toTrackSearch.type.toString()\n        start_date = this@toTrackSearch.year.toString()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUSearch.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUSearchResult(\n    val results: List<MUSearchResultItem>,\n)\n\n@Serializable\ndata class MUSearchResultItem(\n    val record: MURecord,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUSeries.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUSeries(\n    val id: Long? = null,\n    val title: String? = null,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUStatus.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUStatus(\n    val volume: Int? = null,\n    val chapter: Int? = null,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/dto/MUUrl.kt",
    "content": "package eu.kanade.tachiyomi.data.track.mangaupdates.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MUUrl(\n    val original: String? = null,\n    val thumb: String? = null,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/model/TrackSearch.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.data.track.model\n\nimport eu.kanade.tachiyomi.data.database.models.Track\n\nclass TrackSearch : Track {\n\n    override var id: Long? = null\n\n    override var manga_id: Long = 0\n\n    override var tracker_id: Long = 0\n\n    override var remote_id: Long = 0\n\n    override var library_id: Long? = null\n\n    override lateinit var title: String\n\n    override var last_chapter_read: Double = 0.0\n\n    override var total_chapters: Long = 0\n\n    override var score: Double = -1.0\n\n    override var status: Long = 0\n\n    override var started_reading_date: Long = 0\n\n    override var finished_reading_date: Long = 0\n\n    override var private: Boolean = false\n\n    override lateinit var tracking_url: String\n\n    var authors: List<String> = emptyList()\n\n    var artists: List<String> = emptyList()\n\n    var cover_url: String = \"\"\n\n    var summary: String = \"\"\n\n    var publishing_status: String = \"\"\n\n    var publishing_type: String = \"\"\n\n    var start_date: String = \"\"\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (javaClass != other?.javaClass) return false\n\n        other as TrackSearch\n\n        if (manga_id != other.manga_id) return false\n        if (tracker_id != other.tracker_id) return false\n        if (remote_id != other.remote_id) return false\n\n        return true\n    }\n\n    override fun hashCode(): Int {\n        var result = manga_id.hashCode()\n        result = 31 * result + tracker_id.hashCode()\n        result = 31 * result + remote_id.hashCode()\n        return result\n    }\n\n    companion object {\n        fun create(serviceId: Long): TrackSearch = TrackSearch().apply {\n            tracker_id = serviceId\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.DeletableTracker\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALOAuth\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.serialization.json.Json\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass MyAnimeList(id: Long) : BaseTracker(id, \"MyAnimeList\"), DeletableTracker {\n\n    companion object {\n        const val READING = 1L\n        const val COMPLETED = 2L\n        const val ON_HOLD = 3L\n        const val DROPPED = 4L\n        const val PLAN_TO_READ = 6L\n        const val REREADING = 7L\n\n        private const val SEARCH_ID_PREFIX = \"id:\"\n        private const val SEARCH_LIST_PREFIX = \"my:\"\n\n        private val SCORE_LIST = IntRange(0, 10)\n            .map(Int::toString)\n            .toImmutableList()\n    }\n\n    private val json: Json by injectLazy()\n\n    private val interceptor by lazy { MyAnimeListInterceptor(this) }\n    private val api by lazy { MyAnimeListApi(id, client, interceptor) }\n\n    override val supportsReadingDates: Boolean = true\n\n    override fun getLogo() = R.drawable.brand_myanimelist\n\n    override fun getStatusList(): List<Long> {\n        return listOf(READING, COMPLETED, ON_HOLD, DROPPED, PLAN_TO_READ, REREADING)\n    }\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        READING -> MR.strings.reading\n        PLAN_TO_READ -> MR.strings.plan_to_read\n        COMPLETED -> MR.strings.completed\n        ON_HOLD -> MR.strings.on_hold\n        DROPPED -> MR.strings.dropped\n        REREADING -> MR.strings.repeating\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = REREADING\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override fun getScoreList(): ImmutableList<String> = SCORE_LIST\n\n    override fun displayScore(track: DomainTrack): String {\n        return track.score.toInt().toString()\n    }\n\n    private suspend fun add(track: Track): Track {\n        return api.updateItem(track)\n    }\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                    track.finished_reading_date = System.currentTimeMillis()\n                } else if (track.status != REREADING) {\n                    track.status = READING\n                    if (track.last_chapter_read == 1.0) {\n                        track.started_reading_date = System.currentTimeMillis()\n                    }\n                }\n            }\n        }\n\n        return api.updateItem(track)\n    }\n\n    override suspend fun delete(track: DomainTrack) {\n        api.deleteItem(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        val remoteTrack = api.findListItem(track)\n        return if (remoteTrack != null) {\n            track.copyPersonalFrom(remoteTrack)\n            track.remote_id = remoteTrack.remote_id\n\n            if (track.status != COMPLETED) {\n                val isRereading = track.status == REREADING\n                track.status = if (!isRereading && hasReadChapters) READING else track.status\n            }\n\n            update(track)\n        } else {\n            // Set default fields if it's not found in the list\n            track.status = if (hasReadChapters) READING else PLAN_TO_READ\n            track.score = 0.0\n            add(track)\n        }\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        if (query.startsWith(SEARCH_ID_PREFIX)) {\n            query.substringAfter(SEARCH_ID_PREFIX).toIntOrNull()?.let { id ->\n                return listOf(api.getMangaDetails(id))\n            }\n        }\n\n        if (query.startsWith(SEARCH_LIST_PREFIX)) {\n            query.substringAfter(SEARCH_LIST_PREFIX).let { title ->\n                return api.findListItems(title)\n            }\n        }\n\n        return api.search(query)\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        return api.findListItem(track) ?: add(track)\n    }\n\n    override suspend fun login(username: String, password: String) = login(password)\n\n    suspend fun login(authCode: String) {\n        try {\n            val oauth = api.getAccessToken(authCode)\n            interceptor.setAuth(oauth)\n            val username = api.getCurrentUser()\n            saveCredentials(username, oauth.accessToken)\n        } catch (e: Throwable) {\n            logout()\n        }\n    }\n\n    override fun logout() {\n        super.logout()\n        trackPreferences.trackToken(this).delete()\n        interceptor.setAuth(null)\n    }\n\n    fun getIfAuthExpired(): Boolean {\n        return trackPreferences.trackAuthExpired(this).get()\n    }\n\n    fun setAuthExpired() {\n        trackPreferences.trackAuthExpired(this).set(true)\n    }\n\n    fun saveOAuth(oAuth: MALOAuth?) {\n        trackPreferences.trackToken(this).set(json.encodeToString(oAuth))\n    }\n\n    fun loadOAuth(): MALOAuth? {\n        return try {\n            json.decodeFromString<MALOAuth>(trackPreferences.trackToken(this).get())\n        } catch (e: Exception) {\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist\n\nimport android.net.Uri\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALListItem\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALListItemStatus\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALManga\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALOAuth\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALSearchResult\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALUser\nimport eu.kanade.tachiyomi.network.DELETE\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport eu.kanade.tachiyomi.util.PkceUtil\nimport kotlinx.serialization.json.Json\nimport okhttp3.FormBody\nimport okhttp3.Headers\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport okhttp3.RequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport uy.kohesive.injekt.injectLazy\nimport java.text.SimpleDateFormat\nimport java.util.Locale\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass MyAnimeListApi(\n    private val trackId: Long,\n    private val client: OkHttpClient,\n    interceptor: MyAnimeListInterceptor,\n) {\n\n    private val json: Json by injectLazy()\n\n    private val authClient = client.newBuilder().addInterceptor(interceptor).build()\n\n    suspend fun getAccessToken(authCode: String): MALOAuth {\n        return withIOContext {\n            val formBody: RequestBody = FormBody.Builder()\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"code\", authCode)\n                .add(\"code_verifier\", codeVerifier)\n                .add(\"grant_type\", \"authorization_code\")\n                .build()\n            with(json) {\n                client.newCall(POST(\"$BASE_OAUTH_URL/token\", body = formBody))\n                    .awaitSuccess()\n                    .parseAs()\n            }\n        }\n    }\n\n    suspend fun getCurrentUser(): String {\n        return withIOContext {\n            val request = Request.Builder()\n                .url(\"$BASE_API_URL/users/@me\")\n                .get()\n                .build()\n            with(json) {\n                authClient.newCall(request)\n                    .awaitSuccess()\n                    .parseAs<MALUser>()\n                    .name\n            }\n        }\n    }\n\n    suspend fun search(query: String): List<TrackSearch> {\n        return withIOContext {\n            val url = \"$BASE_API_URL/manga\".toUri().buildUpon()\n                // MAL API throws a 400 when the query is over 64 characters...\n                .appendQueryParameter(\"q\", query.take(64))\n                .appendQueryParameter(\"nsfw\", \"true\")\n                .appendQueryParameter(\"fields\", SEARCH_FIELDS)\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<MALSearchResult>()\n                    .data\n                    .filter { !(it.node.mediaType.contains(\"novel\")) }\n                    .map { parseSearchItem(it.node) }\n            }\n        }\n    }\n\n    suspend fun getMangaDetails(id: Int): TrackSearch {\n        return withIOContext {\n            val url = \"$BASE_API_URL/manga\".toUri().buildUpon()\n                .appendPath(id.toString())\n                .appendQueryParameter(\"fields\", SEARCH_FIELDS)\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<MALManga>()\n                    .let { parseSearchItem(it) }\n            }\n        }\n    }\n\n    suspend fun updateItem(track: Track): Track {\n        return withIOContext {\n            val formBodyBuilder = FormBody.Builder()\n                .add(\"status\", track.toMyAnimeListStatus() ?: \"reading\")\n                .add(\"is_rereading\", (track.status == MyAnimeList.REREADING).toString())\n                .add(\"score\", track.score.toString())\n                .add(\"num_chapters_read\", track.last_chapter_read.toInt().toString())\n            convertToIsoDate(track.started_reading_date)?.let {\n                formBodyBuilder.add(\"start_date\", it)\n            }\n            convertToIsoDate(track.finished_reading_date)?.let {\n                formBodyBuilder.add(\"finish_date\", it)\n            }\n\n            val request = Request.Builder()\n                .url(mangaUrl(track.remote_id).toString())\n                .put(formBodyBuilder.build())\n                .build()\n            with(json) {\n                authClient.newCall(request)\n                    .awaitSuccess()\n                    .parseAs<MALListItemStatus>()\n                    .let { parseMangaItem(it, track) }\n            }\n        }\n    }\n\n    suspend fun deleteItem(track: DomainTrack) {\n        withIOContext {\n            authClient\n                .newCall(DELETE(mangaUrl(track.remoteId).toString()))\n                .awaitSuccess()\n        }\n    }\n\n    suspend fun findListItem(track: Track): Track? {\n        return withIOContext {\n            val uri = \"$BASE_API_URL/manga\".toUri().buildUpon()\n                .appendPath(track.remote_id.toString())\n                .appendQueryParameter(\"fields\", \"num_chapters,my_list_status{start_date,finish_date}\")\n                .build()\n            with(json) {\n                authClient.newCall(GET(uri.toString()))\n                    .awaitSuccess()\n                    .parseAs<MALListItem>()\n                    .let { item ->\n                        track.total_chapters = item.numChapters\n                        item.myListStatus?.let { parseMangaItem(it, track) }\n                    }\n            }\n        }\n    }\n\n    suspend fun findListItems(query: String, offset: Int = 0): List<TrackSearch> {\n        return withIOContext {\n            val myListSearchResult = getListPage(offset)\n\n            val matches = myListSearchResult.data\n                .filter { it.node.title.contains(query, ignoreCase = true) }\n                .map { parseSearchItem(it.node) }\n\n            // Check next page if there's more\n            if (!myListSearchResult.paging.next.isNullOrBlank()) {\n                matches + findListItems(query, offset + LIST_PAGINATION_AMOUNT)\n            } else {\n                matches\n            }\n        }\n    }\n\n    private suspend fun getListPage(offset: Int): MALSearchResult {\n        return withIOContext {\n            val urlBuilder = \"$BASE_API_URL/users/@me/mangalist\".toUri().buildUpon()\n                .appendQueryParameter(\"fields\", SEARCH_FIELDS)\n                .appendQueryParameter(\"limit\", LIST_PAGINATION_AMOUNT.toString())\n            if (offset > 0) {\n                urlBuilder.appendQueryParameter(\"offset\", offset.toString())\n            }\n\n            val request = Request.Builder()\n                .url(urlBuilder.build().toString())\n                .get()\n                .build()\n            with(json) {\n                authClient.newCall(request)\n                    .awaitSuccess()\n                    .parseAs()\n            }\n        }\n    }\n\n    private fun parseMangaItem(listStatus: MALListItemStatus, track: Track): Track {\n        return track.apply {\n            val isRereading = listStatus.isRereading\n            status = if (isRereading) MyAnimeList.REREADING else getStatus(listStatus.status)\n            last_chapter_read = listStatus.numChaptersRead\n            score = listStatus.score.toDouble()\n            listStatus.startDate?.let { started_reading_date = parseDate(it) }\n            listStatus.finishDate?.let { finished_reading_date = parseDate(it) }\n        }\n    }\n\n    private fun parseSearchItem(searchItem: MALManga): TrackSearch {\n        return TrackSearch.create(trackId).apply {\n            remote_id = searchItem.id\n            title = searchItem.title\n            summary = searchItem.synopsis\n            total_chapters = searchItem.numChapters\n            score = searchItem.mean\n            cover_url = searchItem.covers?.large.orEmpty()\n            tracking_url = \"https://myanimelist.net/manga/$remote_id\"\n            publishing_status = searchItem.status.replace(\"_\", \" \")\n            publishing_type = searchItem.mediaType.replace(\"_\", \" \")\n            start_date = searchItem.startDate ?: \"\"\n            artists = searchItem.authors\n                .filter { authorNode -> authorNode.role == \"Art\" }\n                .mapNotNull { authorNode -> authorNode.node.getFullName() }\n            authors = searchItem.authors\n                // count all with \"Story\" or \"Story & Art\" as authors, like is done for library entries\n                .filter { authorNode -> authorNode.role.contains(\"Story\") }\n                .mapNotNull { authorNode -> authorNode.node.getFullName() }\n        }\n    }\n\n    private fun parseDate(isoDate: String): Long {\n        return SimpleDateFormat(\"yyyy-MM-dd\", Locale.US).parse(isoDate)?.time ?: 0L\n    }\n\n    private fun convertToIsoDate(epochTime: Long): String? {\n        if (epochTime == 0L) {\n            return \"\"\n        }\n        return try {\n            val outputDf = SimpleDateFormat(\"yyyy-MM-dd\", Locale.US)\n            outputDf.format(epochTime)\n        } catch (_: Exception) {\n            null\n        }\n    }\n\n    companion object {\n        private const val CLIENT_ID = \"c46c9e24640a64dad5be5ca7a1a53a0f\"\n\n        private const val BASE_OAUTH_URL = \"https://myanimelist.net/v1/oauth2\"\n        private const val BASE_API_URL = \"https://api.myanimelist.net/v2\"\n\n        private const val SEARCH_FIELDS =\n            \"id,title,synopsis,num_chapters,mean,main_picture,status,media_type,start_date,authors{first_name,last_name}\"\n\n        private const val LIST_PAGINATION_AMOUNT = 250\n\n        private var codeVerifier: String = \"\"\n\n        fun authUrl(): Uri = \"$BASE_OAUTH_URL/authorize\".toUri().buildUpon()\n            .appendQueryParameter(\"client_id\", CLIENT_ID)\n            .appendQueryParameter(\"code_challenge\", getPkceChallengeCode())\n            .appendQueryParameter(\"response_type\", \"code\")\n            .build()\n\n        fun mangaUrl(id: Long): Uri = \"$BASE_API_URL/manga\".toUri().buildUpon()\n            .appendPath(id.toString())\n            .appendPath(\"my_list_status\")\n            .build()\n\n        fun refreshTokenRequest(oauth: MALOAuth): Request {\n            val formBody: RequestBody = FormBody.Builder()\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"refresh_token\", oauth.refreshToken)\n                .add(\"grant_type\", \"refresh_token\")\n                .build()\n\n            // Add the Authorization header manually as this particular\n            // request is called by the interceptor itself so it doesn't reach\n            // the part where the token is added automatically.\n            val headers = Headers.Builder()\n                .add(\"Authorization\", \"Bearer ${oauth.accessToken}\")\n                .build()\n\n            return POST(\"$BASE_OAUTH_URL/token\", body = formBody, headers = headers)\n        }\n\n        private fun getPkceChallengeCode(): String {\n            codeVerifier = PkceUtil.generateCodeVerifier()\n            return codeVerifier\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist\n\nimport eu.kanade.tachiyomi.data.track.myanimelist.dto.MALOAuth\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport uy.kohesive.injekt.injectLazy\nimport java.io.IOException\n\nclass MyAnimeListInterceptor(private val myanimelist: MyAnimeList) : Interceptor {\n\n    private val json: Json by injectLazy()\n\n    private var oauth: MALOAuth? = myanimelist.loadOAuth()\n    private val tokenExpired get() = myanimelist.getIfAuthExpired()\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        if (tokenExpired) {\n            throw MALTokenExpired()\n        }\n        val originalRequest = chain.request()\n\n        if (oauth?.isExpired() == true) {\n            refreshToken(chain)\n        }\n\n        if (oauth == null) {\n            throw IOException(\"MAL: User is not authenticated\")\n        }\n\n        // Add the authorization header to the original request\n        val authRequest = originalRequest.newBuilder()\n            .addHeader(\"Authorization\", \"Bearer ${oauth!!.accessToken}\")\n            // TODO(antsy): Add back custom user agent when they stop blocking us for no apparent reason\n            // .header(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .build()\n\n        return chain.proceed(authRequest)\n    }\n\n    /**\n     * Called when the user authenticates with MyAnimeList for the first time. Sets the refresh token\n     * and the oauth object.\n     */\n    fun setAuth(oauth: MALOAuth?) {\n        this.oauth = oauth\n        myanimelist.saveOAuth(oauth)\n    }\n\n    private fun refreshToken(chain: Interceptor.Chain): MALOAuth = synchronized(this) {\n        if (tokenExpired) throw MALTokenExpired()\n        oauth?.takeUnless { it.isExpired() }?.let { return@synchronized it }\n\n        val response = try {\n            chain.proceed(MyAnimeListApi.refreshTokenRequest(oauth!!))\n        } catch (_: Throwable) {\n            throw MALTokenRefreshFailed()\n        }\n\n        if (response.code == 401) {\n            myanimelist.setAuthExpired()\n            throw MALTokenExpired()\n        }\n\n        return runCatching {\n            if (response.isSuccessful) {\n                with(json) { response.parseAs<MALOAuth>() }\n            } else {\n                response.close()\n                null\n            }\n        }\n            .getOrNull()\n            ?.also {\n                this.oauth = it\n                myanimelist.saveOAuth(it)\n            }\n            ?: throw MALTokenRefreshFailed()\n    }\n}\n\nclass MALTokenRefreshFailed : IOException(\"MAL: Failed to refresh account token\")\nclass MALTokenExpired : IOException(\"MAL: Login has expired\")\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListUtils.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist\n\nimport eu.kanade.tachiyomi.data.database.models.Track\n\nfun Track.toMyAnimeListStatus() = when (status) {\n    MyAnimeList.READING -> \"reading\"\n    MyAnimeList.COMPLETED -> \"completed\"\n    MyAnimeList.ON_HOLD -> \"on_hold\"\n    MyAnimeList.DROPPED -> \"dropped\"\n    MyAnimeList.PLAN_TO_READ -> \"plan_to_read\"\n    MyAnimeList.REREADING -> \"reading\"\n    else -> null\n}\n\nfun getStatus(status: String?) = when (status) {\n    \"reading\" -> MyAnimeList.READING\n    \"completed\" -> MyAnimeList.COMPLETED\n    \"on_hold\" -> MyAnimeList.ON_HOLD\n    \"dropped\" -> MyAnimeList.DROPPED\n    \"plan_to_read\" -> MyAnimeList.PLAN_TO_READ\n    else -> MyAnimeList.READING\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALList.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MALListItem(\n    @SerialName(\"num_chapters\")\n    val numChapters: Long,\n    @SerialName(\"my_list_status\")\n    val myListStatus: MALListItemStatus?,\n)\n\n@Serializable\ndata class MALListItemStatus(\n    @SerialName(\"is_rereading\")\n    val isRereading: Boolean,\n    val status: String,\n    @SerialName(\"num_chapters_read\")\n    val numChaptersRead: Double,\n    val score: Int,\n    @SerialName(\"start_date\")\n    val startDate: String?,\n    @SerialName(\"finish_date\")\n    val finishDate: String?,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALManga.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MALManga(\n    val id: Long,\n    val title: String,\n    val synopsis: String = \"\",\n    @SerialName(\"num_chapters\")\n    val numChapters: Long,\n    val mean: Double = -1.0,\n    @SerialName(\"main_picture\")\n    val covers: MALMangaCovers?,\n    val status: String,\n    @SerialName(\"media_type\")\n    val mediaType: String,\n    @SerialName(\"start_date\")\n    val startDate: String?,\n    val authors: List<MALAuthorNode> = emptyList(),\n)\n\n@Serializable\ndata class MALAuthorNode(\n    val node: MALAuthor,\n    val role: String,\n)\n\n@Serializable\ndata class MALAuthor(\n    val id: Int,\n    @SerialName(\"first_name\")\n    val firstName: String,\n    @SerialName(\"last_name\")\n    val lastName: String,\n) {\n    fun getFullName(): String? = \"$firstName $lastName\".trim().ifBlank { null }\n}\n\n@Serializable\ndata class MALMangaCovers(\n    val large: String = \"\",\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALOAuth.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist.dto\n\nimport kotlinx.serialization.EncodeDefault\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MALOAuth(\n    @SerialName(\"token_type\")\n    val tokenType: String,\n    @SerialName(\"refresh_token\")\n    val refreshToken: String,\n    @SerialName(\"access_token\")\n    val accessToken: String,\n    @SerialName(\"expires_in\")\n    val expiresIn: Long,\n    @SerialName(\"created_at\")\n    @EncodeDefault\n    val createdAt: Long = System.currentTimeMillis() / 1000,\n) {\n    // Assumes expired a minute earlier\n    private val adjustedExpiresIn: Long = (expiresIn - 60)\n\n    fun isExpired() = createdAt + adjustedExpiresIn < System.currentTimeMillis() / 1000\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALSearch.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MALSearchResult(\n    val data: List<MALSearchResultNode>,\n    val paging: MALSearchPaging,\n)\n\n@Serializable\ndata class MALSearchResultNode(\n    val node: MALManga,\n)\n\n@Serializable\ndata class MALSearchPaging(\n    val next: String?,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALUser.kt",
    "content": "package eu.kanade.tachiyomi.data.track.myanimelist.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class MALUser(\n    val name: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/Shikimori.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.DeletableTracker\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMOAuth\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.serialization.json.Json\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Shikimori(id: Long) : BaseTracker(id, \"Shikimori\"), DeletableTracker {\n\n    companion object {\n        const val READING = 1L\n        const val COMPLETED = 2L\n        const val ON_HOLD = 3L\n        const val DROPPED = 4L\n        const val PLAN_TO_READ = 5L\n        const val REREADING = 6L\n\n        private val SCORE_LIST = IntRange(0, 10)\n            .map(Int::toString)\n            .toImmutableList()\n    }\n\n    private val json: Json by injectLazy()\n\n    private val interceptor by lazy { ShikimoriInterceptor(this) }\n\n    private val api by lazy { ShikimoriApi(id, client, interceptor) }\n\n    override fun getScoreList(): ImmutableList<String> = SCORE_LIST\n\n    override fun displayScore(track: DomainTrack): String {\n        return track.score.toInt().toString()\n    }\n\n    private suspend fun add(track: Track): Track {\n        return api.addLibManga(track, getUsername())\n    }\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                } else if (track.status != REREADING) {\n                    track.status = READING\n                }\n            }\n        }\n\n        return api.updateLibManga(track, getUsername())\n    }\n\n    override suspend fun delete(track: DomainTrack) {\n        api.deleteLibManga(track)\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        val remoteTrack = api.findLibManga(track, getUsername())\n        return if (remoteTrack != null) {\n            track.copyPersonalFrom(remoteTrack)\n            track.library_id = remoteTrack.library_id\n\n            if (track.status != COMPLETED) {\n                val isRereading = track.status == REREADING\n                track.status = if (!isRereading && hasReadChapters) READING else track.status\n            }\n\n            update(track)\n        } else {\n            // Set default fields if it's not found in the list\n            track.status = if (hasReadChapters) READING else PLAN_TO_READ\n            track.score = 0.0\n            add(track)\n        }\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        return api.search(query)\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        api.findLibManga(track, getUsername())?.let { remoteTrack ->\n            track.library_id = remoteTrack.library_id\n            track.copyPersonalFrom(remoteTrack)\n            track.total_chapters = remoteTrack.total_chapters\n        } ?: throw Exception(\"Could not find manga\")\n        return track\n    }\n\n    override fun getLogo() = R.drawable.brand_shikimori\n\n    override fun getStatusList(): List<Long> {\n        return listOf(READING, COMPLETED, ON_HOLD, DROPPED, PLAN_TO_READ, REREADING)\n    }\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        READING -> MR.strings.reading\n        PLAN_TO_READ -> MR.strings.plan_to_read\n        COMPLETED -> MR.strings.completed\n        ON_HOLD -> MR.strings.on_hold\n        DROPPED -> MR.strings.dropped\n        REREADING -> MR.strings.repeating\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = REREADING\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override suspend fun login(username: String, password: String) = login(password)\n\n    suspend fun login(code: String) {\n        try {\n            val oauth = api.accessToken(code)\n            interceptor.newAuth(oauth)\n            val user = api.getCurrentUser()\n            saveCredentials(user.toString(), oauth.accessToken)\n        } catch (e: Throwable) {\n            logout()\n        }\n    }\n\n    fun saveToken(oauth: SMOAuth?) {\n        trackPreferences.trackToken(this).set(json.encodeToString(oauth))\n    }\n\n    fun restoreToken(): SMOAuth? {\n        return try {\n            json.decodeFromString<SMOAuth>(trackPreferences.trackToken(this).get())\n        } catch (e: Exception) {\n            null\n        }\n    }\n\n    override fun logout() {\n        super.logout()\n        trackPreferences.trackToken(this).delete()\n        interceptor.newAuth(null)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori\n\nimport android.net.Uri\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMAddMangaResponse\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMManga\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMOAuth\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMUser\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMUserListEntry\nimport eu.kanade.tachiyomi.network.DELETE\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.jsonMime\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.buildJsonObject\nimport kotlinx.serialization.json.put\nimport kotlinx.serialization.json.putJsonObject\nimport okhttp3.FormBody\nimport okhttp3.OkHttpClient\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport uy.kohesive.injekt.injectLazy\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass ShikimoriApi(\n    private val trackId: Long,\n    private val client: OkHttpClient,\n    interceptor: ShikimoriInterceptor,\n) {\n\n    private val json: Json by injectLazy()\n\n    private val authClient = client.newBuilder().addInterceptor(interceptor).build()\n\n    suspend fun addLibManga(track: Track, userId: String): Track {\n        return withIOContext {\n            with(json) {\n                val payload = buildJsonObject {\n                    putJsonObject(\"user_rate\") {\n                        put(\"user_id\", userId)\n                        put(\"target_id\", track.remote_id)\n                        put(\"target_type\", \"Manga\")\n                        put(\"chapters\", track.last_chapter_read.toInt())\n                        put(\"score\", track.score.toInt())\n                        put(\"status\", track.toShikimoriStatus())\n                    }\n                }\n                authClient.newCall(\n                    POST(\n                        \"$API_URL/v2/user_rates\",\n                        body = payload.toString().toRequestBody(jsonMime),\n                    ),\n                ).awaitSuccess()\n                    .parseAs<SMAddMangaResponse>()\n                    .let {\n                        // save id of the entry for possible future delete request\n                        track.library_id = it.id\n                    }\n                track\n            }\n        }\n    }\n\n    suspend fun updateLibManga(track: Track, userId: String): Track = addLibManga(track, userId)\n\n    suspend fun deleteLibManga(track: DomainTrack) {\n        withIOContext {\n            authClient\n                .newCall(DELETE(\"$API_URL/v2/user_rates/${track.libraryId}\"))\n                .awaitSuccess()\n        }\n    }\n\n    suspend fun search(search: String): List<TrackSearch> {\n        return withIOContext {\n            val url = \"$API_URL/mangas\".toUri().buildUpon()\n                .appendQueryParameter(\"order\", \"popularity\")\n                .appendQueryParameter(\"search\", search)\n                .appendQueryParameter(\"limit\", \"20\")\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<List<SMManga>>()\n                    .map { it.toTrack(trackId) }\n            }\n        }\n    }\n\n    suspend fun findLibManga(track: Track, userId: String): Track? {\n        return withIOContext {\n            val urlMangas = \"$API_URL/mangas\".toUri().buildUpon()\n                .appendPath(track.remote_id.toString())\n                .build()\n            val manga = with(json) {\n                authClient.newCall(GET(urlMangas.toString()))\n                    .awaitSuccess()\n                    .parseAs<SMManga>()\n            }\n\n            val url = \"$API_URL/v2/user_rates\".toUri().buildUpon()\n                .appendQueryParameter(\"user_id\", userId)\n                .appendQueryParameter(\"target_id\", track.remote_id.toString())\n                .appendQueryParameter(\"target_type\", \"Manga\")\n                .build()\n            with(json) {\n                authClient.newCall(GET(url.toString()))\n                    .awaitSuccess()\n                    .parseAs<List<SMUserListEntry>>()\n                    .let { entries ->\n                        if (entries.size > 1) {\n                            throw Exception(\"Too many manga in response\")\n                        }\n                        entries\n                            .map { it.toTrack(trackId, manga) }\n                            .firstOrNull()\n                    }\n            }\n        }\n    }\n\n    suspend fun getCurrentUser(): Int {\n        return with(json) {\n            authClient.newCall(GET(\"$API_URL/users/whoami\"))\n                .awaitSuccess()\n                .parseAs<SMUser>()\n                .id\n        }\n    }\n\n    suspend fun accessToken(code: String): SMOAuth {\n        return withIOContext {\n            with(json) {\n                client.newCall(accessTokenRequest(code))\n                    .awaitSuccess()\n                    .parseAs()\n            }\n        }\n    }\n\n    private fun accessTokenRequest(code: String) = POST(\n        OAUTH_URL,\n        body = FormBody.Builder()\n            .add(\"grant_type\", \"authorization_code\")\n            .add(\"client_id\", CLIENT_ID)\n            .add(\"client_secret\", CLIENT_SECRET)\n            .add(\"code\", code)\n            .add(\"redirect_uri\", REDIRECT_URL)\n            .build(),\n    )\n\n    companion object {\n        const val BASE_URL = \"https://shikimori.one\"\n        private const val API_URL = \"$BASE_URL/api\"\n        private const val OAUTH_URL = \"$BASE_URL/oauth/token\"\n        private const val LOGIN_URL = \"$BASE_URL/oauth/authorize\"\n\n        private const val REDIRECT_URL = \"mihon://shikimori-auth\"\n\n        private const val CLIENT_ID = \"PB9dq8DzI405s7wdtwTdirYqHiyVMh--djnP7lBUqSA\"\n        private const val CLIENT_SECRET = \"NajpZcOBKB9sJtgNcejf8OB9jBN1OYYoo-k4h2WWZus\"\n\n        fun authUrl(): Uri = LOGIN_URL.toUri().buildUpon()\n            .appendQueryParameter(\"client_id\", CLIENT_ID)\n            .appendQueryParameter(\"redirect_uri\", REDIRECT_URL)\n            .appendQueryParameter(\"response_type\", \"code\")\n            .build()\n\n        fun refreshTokenRequest(token: String) = POST(\n            OAUTH_URL,\n            body = FormBody.Builder()\n                .add(\"grant_type\", \"refresh_token\")\n                .add(\"client_id\", CLIENT_ID)\n                .add(\"client_secret\", CLIENT_SECRET)\n                .add(\"refresh_token\", token)\n                .build(),\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori\n\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.SMOAuth\nimport eu.kanade.tachiyomi.data.track.shikimori.dto.isExpired\nimport kotlinx.serialization.json.Json\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport uy.kohesive.injekt.injectLazy\n\nclass ShikimoriInterceptor(private val shikimori: Shikimori) : Interceptor {\n\n    private val json: Json by injectLazy()\n\n    /**\n     * OAuth object used for authenticated requests.\n     */\n    private var oauth: SMOAuth? = shikimori.restoreToken()\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n\n        val currAuth = oauth ?: throw Exception(\"Not authenticated with Shikimori\")\n\n        val refreshToken = currAuth.refreshToken!!\n\n        // Refresh access token if expired.\n        if (currAuth.isExpired()) {\n            val response = chain.proceed(ShikimoriApi.refreshTokenRequest(refreshToken))\n            if (response.isSuccessful) {\n                newAuth(json.decodeFromString<SMOAuth>(response.body.string()))\n            } else {\n                response.close()\n            }\n        }\n        // Add the authorization header to the original request.\n        val authRequest = originalRequest.newBuilder()\n            .addHeader(\"Authorization\", \"Bearer ${oauth!!.accessToken}\")\n            .header(\"User-Agent\", \"Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})\")\n            .build()\n\n        return chain.proceed(authRequest)\n    }\n\n    fun newAuth(oauth: SMOAuth?) {\n        this.oauth = oauth\n        shikimori.saveToken(oauth)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriUtils.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori\n\nimport eu.kanade.tachiyomi.data.database.models.Track\n\nfun Track.toShikimoriStatus() = when (status) {\n    Shikimori.READING -> \"watching\"\n    Shikimori.COMPLETED -> \"completed\"\n    Shikimori.ON_HOLD -> \"on_hold\"\n    Shikimori.DROPPED -> \"dropped\"\n    Shikimori.PLAN_TO_READ -> \"planned\"\n    Shikimori.REREADING -> \"rewatching\"\n    else -> throw NotImplementedError(\"Unknown status: $status\")\n}\n\nfun toTrackStatus(status: String) = when (status) {\n    \"watching\" -> Shikimori.READING\n    \"completed\" -> Shikimori.COMPLETED\n    \"on_hold\" -> Shikimori.ON_HOLD\n    \"dropped\" -> Shikimori.DROPPED\n    \"planned\" -> Shikimori.PLAN_TO_READ\n    \"rewatching\" -> Shikimori.REREADING\n    else -> throw NotImplementedError(\"Unknown status: $status\")\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/dto/SMAddMangaResponse.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SMAddMangaResponse(\n    val id: Long,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/dto/SMManga.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori.dto\n\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.data.track.shikimori.ShikimoriApi\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SMManga(\n    val id: Long,\n    val name: String,\n    val chapters: Long,\n    val image: SUMangaCover,\n    val score: Double,\n    val url: String,\n    val status: String,\n    val kind: String,\n    @SerialName(\"aired_on\")\n    val airedOn: String?,\n) {\n    fun toTrack(trackId: Long): TrackSearch {\n        return TrackSearch.create(trackId).apply {\n            remote_id = this@SMManga.id\n            title = name\n            total_chapters = chapters\n            cover_url = ShikimoriApi.BASE_URL + image.preview\n            summary = \"\"\n            score = this@SMManga.score\n            tracking_url = ShikimoriApi.BASE_URL + url\n            publishing_status = this@SMManga.status\n            publishing_type = kind\n            start_date = airedOn ?: \"\"\n        }\n    }\n}\n\n@Serializable\ndata class SUMangaCover(\n    val preview: String,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/dto/SMOAuth.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori.dto\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SMOAuth(\n    @SerialName(\"access_token\")\n    val accessToken: String,\n    @SerialName(\"token_type\")\n    val tokenType: String,\n    @SerialName(\"created_at\")\n    val createdAt: Long,\n    @SerialName(\"expires_in\")\n    val expiresIn: Long,\n    @SerialName(\"refresh_token\")\n    val refreshToken: String?,\n)\n\n// Access token lives 1 day\nfun SMOAuth.isExpired() = (System.currentTimeMillis() / 1000) > (createdAt + expiresIn - 3600)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/dto/SMUser.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori.dto\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SMUser(\n    val id: Int,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/dto/SMUserListEntry.kt",
    "content": "package eu.kanade.tachiyomi.data.track.shikimori.dto\n\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.shikimori.ShikimoriApi\nimport eu.kanade.tachiyomi.data.track.shikimori.toTrackStatus\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class SMUserListEntry(\n    val id: Long,\n    val chapters: Double,\n    val score: Int,\n    val status: String,\n) {\n    fun toTrack(trackId: Long, manga: SMManga): Track {\n        return Track.create(trackId).apply {\n            title = manga.name\n            remote_id = this@SMUserListEntry.id\n            total_chapters = manga.chapters\n            library_id = this@SMUserListEntry.id\n            last_chapter_read = this@SMUserListEntry.chapters\n            score = this@SMUserListEntry.score.toDouble()\n            status = toTrackStatus(this@SMUserListEntry.status)\n            tracking_url = ShikimoriApi.BASE_URL + manga.url\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.suwayomi\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.BaseTracker\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.domain.manga.model.Manga as DomainManga\nimport tachiyomi.domain.track.model.Track as DomainTrack\n\nclass Suwayomi(id: Long) : BaseTracker(id, \"Suwayomi\"), EnhancedTracker {\n\n    val api by lazy { SuwayomiApi(id) }\n\n    override fun getLogo() = R.drawable.brand_suwayomi\n\n    companion object {\n        const val UNREAD = 1L\n        const val READING = 2L\n        const val COMPLETED = 3L\n\n        private const val TRACKER_DELETE_KEY = \"Tracker Delete\"\n        private const val TRACKER_DELETE_DEFAULT = false\n    }\n\n    override fun getStatusList(): List<Long> = listOf(UNREAD, READING, COMPLETED)\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        UNREAD -> MR.strings.unread\n        READING -> MR.strings.reading\n        COMPLETED -> MR.strings.completed\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = READING\n\n    override fun getRereadingStatus(): Long = -1\n\n    override fun getCompletionStatus(): Long = COMPLETED\n\n    override fun getScoreList(): ImmutableList<String> = persistentListOf()\n\n    override fun displayScore(track: DomainTrack): String = \"\"\n\n    override suspend fun update(track: Track, didReadChapter: Boolean): Track {\n        if (track.status != COMPLETED) {\n            if (didReadChapter) {\n                if (track.last_chapter_read.toLong() == track.total_chapters && track.total_chapters > 0) {\n                    track.status = COMPLETED\n                } else {\n                    track.status = READING\n                }\n            }\n        }\n\n        return api.updateProgress(track, getPrefTrackerDelete())\n    }\n\n    override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {\n        return track\n    }\n\n    override suspend fun search(query: String): List<TrackSearch> {\n        TODO(\"Not yet implemented\")\n    }\n\n    override suspend fun refresh(track: Track): Track {\n        val remoteTrack = api.getTrackSearch(track.remote_id)\n        track.copyPersonalFrom(remoteTrack)\n        track.total_chapters = remoteTrack.total_chapters\n        return track\n    }\n\n    override suspend fun login(username: String, password: String) {\n        saveCredentials(\"user\", \"pass\")\n    }\n\n    override fun loginNoop() {\n        saveCredentials(\"user\", \"pass\")\n    }\n\n    override fun getAcceptedSources(): List<String> = listOf(\"eu.kanade.tachiyomi.extension.all.tachidesk.Tachidesk\")\n\n    override suspend fun match(manga: DomainManga): TrackSearch? =\n        try {\n            api.getTrackSearch(manga.url.getMangaId())\n        } catch (e: Exception) {\n            null\n        }\n\n    override fun isTrackFrom(track: DomainTrack, manga: DomainManga, source: Source?): Boolean =\n        track.remoteUrl == manga.url && source?.let { accept(it) } == true\n\n    override fun migrateTrack(track: DomainTrack, manga: DomainManga, newSource: Source): DomainTrack? =\n        if (accept(newSource)) {\n            track.copy(remoteUrl = manga.url)\n        } else {\n            null\n        }\n\n    private fun String.getMangaId(): Long =\n        this.substringAfterLast('/').toLong()\n\n    private fun getPrefTrackerDelete(): Boolean {\n        val preferences = api.sourcePreferences()\n        return preferences.getBoolean(TRACKER_DELETE_KEY, TRACKER_DELETE_DEFAULT)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/SuwayomiApi.kt",
    "content": "package eu.kanade.tachiyomi.data.track.suwayomi\n\nimport android.content.SharedPreferences\nimport eu.kanade.tachiyomi.data.database.models.Track\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.network.POST\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.jsonMime\nimport eu.kanade.tachiyomi.network.parseAs\nimport eu.kanade.tachiyomi.source.ConfigurableSource\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.source.sourcePreferences\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.addAll\nimport kotlinx.serialization.json.buildJsonObject\nimport kotlinx.serialization.json.put\nimport kotlinx.serialization.json.putJsonArray\nimport kotlinx.serialization.json.putJsonObject\nimport okhttp3.OkHttpClient\nimport okhttp3.RequestBody.Companion.toRequestBody\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\nimport java.nio.charset.Charset\nimport java.security.MessageDigest\n\nclass SuwayomiApi(private val trackId: Long) {\n\n    private val json: Json by injectLazy()\n\n    private val sourceManager: SourceManager by injectLazy()\n    private val source: HttpSource by lazy { (sourceManager.get(sourceId) as HttpSource) }\n    private val configurableSource: ConfigurableSource by lazy { (sourceManager.get(sourceId) as ConfigurableSource) }\n    private val client: OkHttpClient by lazy { source.client }\n    private val baseUrl: String by lazy { source.baseUrl.trimEnd('/') }\n    private val apiUrl: String by lazy { \"$baseUrl/api/graphql\" }\n\n    public fun sourcePreferences(): SharedPreferences = configurableSource.sourcePreferences()\n\n    suspend fun getTrackSearch(mangaId: Long): TrackSearch = withIOContext {\n        val query = $$\"\"\"\n        |query GetManga($mangaId: Int!) {\n        |    manga(id: $mangaId) {\n        |        ...MangaFragment\n        |    }\n        |}\n        |\n        |$$MangaFragment\n        \"\"\".trimMargin()\n        val payload = buildJsonObject {\n            put(\"query\", query)\n            putJsonObject(\"variables\") {\n                put(\"mangaId\", mangaId)\n            }\n        }\n        val manga = with(json) {\n            client.newCall(\n                POST(\n                    apiUrl,\n                    body = payload.toString().toRequestBody(jsonMime),\n                ),\n            )\n                .awaitSuccess()\n                .parseAs<GetMangaResult>()\n                .data\n                .entry\n        }\n\n        TrackSearch.create(trackId).apply {\n            remote_id = mangaId\n            title = manga.title\n            cover_url = \"$baseUrl/${manga.thumbnailUrl}\"\n            summary = manga.description.orEmpty()\n            tracking_url = \"$baseUrl/manga/$mangaId\"\n            total_chapters = manga.chapters.totalCount.toLong()\n            publishing_status = manga.status.name\n            last_chapter_read = manga.latestReadChapter?.chapterNumber ?: 0.0\n            status = when (manga.unreadCount) {\n                manga.chapters.totalCount -> Suwayomi.UNREAD\n                0 -> Suwayomi.COMPLETED\n                else -> Suwayomi.READING\n            }\n        }\n    }\n\n    suspend fun updateProgress(track: Track, deleteDownloadsOnServer: Boolean = false): Track {\n        val mangaId = track.remote_id\n\n        // TODO: Include a filter on the chapter number here\n        // Below, we only consider older chapters; since v2.1.1985 filtering works properly in the query\n        val chaptersQuery = $$\"\"\"\n        |query GetMangaUnreadChapters($mangaId: Int!) {\n        |  chapters(condition: {mangaId: $mangaId, isRead: false}) {\n        |    nodes {\n        |      id\n        |      chapterNumber\n        |    }\n        |  }\n        |}\n        \"\"\".trimMargin()\n        val chaptersPayload = buildJsonObject {\n            put(\"query\", chaptersQuery)\n            putJsonObject(\"variables\") {\n                put(\"mangaId\", mangaId)\n            }\n        }\n        val chaptersToMark = with(json) {\n            client.newCall(\n                POST(\n                    apiUrl,\n                    body = chaptersPayload.toString().toRequestBody(jsonMime),\n                ),\n            )\n                .awaitSuccess()\n                .parseAs<GetMangaUnreadChaptersResult>()\n                .data\n                .entry\n                .nodes\n                .mapNotNull { n -> n.id.takeIf { n.chapterNumber <= track.last_chapter_read + 0.001 } }\n        }\n\n        val markQuery = if (deleteDownloadsOnServer) {\n            $$\"\"\"\n            |mutation MarkChaptersRead($chapters: [Int!]!) {\n            |  updateChapters(input: {ids: $chapters, patch: {isRead: true}}) {\n            |    __typename\n            |  }\n            |  deleteDownloadedChapters(input: {ids: $chapters}) {\n            |    __typename\n            |  }\n            |}\n            \"\"\".trimMargin()\n        } else {\n            $$\"\"\"\n            |mutation MarkChaptersRead($chapters: [Int!]!) {\n            |  updateChapters(input: {ids: $chapters, patch: {isRead: true}}) {\n            |    __typename\n            |  }\n            |}\n            \"\"\".trimMargin()\n        }\n        val markPayload = buildJsonObject {\n            put(\"query\", markQuery)\n            putJsonObject(\"variables\") {\n                putJsonArray(\"chapters\") {\n                    addAll(chaptersToMark)\n                }\n            }\n        }\n        with(json) {\n            client.newCall(\n                POST(\n                    apiUrl,\n                    body = markPayload.toString().toRequestBody(jsonMime),\n                ),\n            )\n                .awaitSuccess()\n        }\n\n        val trackQuery = $$\"\"\"\n        |mutation TrackManga($mangaId: Int!) {\n        |  trackProgress(input: {mangaId: $mangaId}) {\n        |    __typename\n        |  }\n        |}\n        \"\"\".trimMargin()\n        val trackPayload = buildJsonObject {\n            put(\"query\", trackQuery)\n            putJsonObject(\"variables\") {\n                put(\"mangaId\", mangaId)\n            }\n        }\n        with(json) {\n            client.newCall(\n                POST(\n                    apiUrl,\n                    body = trackPayload.toString().toRequestBody(jsonMime),\n                ),\n            )\n                .awaitSuccess()\n        }\n\n        return getTrackSearch(track.remote_id)\n    }\n\n    private val sourceId by lazy {\n        val key = \"tachidesk/en/1\"\n        val bytes = MessageDigest.getInstance(\"MD5\").digest(key.toByteArray())\n        (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }.reduce(Long::or) and Long.MAX_VALUE\n    }\n\n    companion object {\n        private val MangaFragment = \"\"\"\n        |fragment MangaFragment on MangaType {\n        |    artist\n        |    author\n        |    description\n        |    id\n        |    status\n        |    thumbnailUrl\n        |    title\n        |    url\n        |    genre\n        |    inLibraryAt\n        |    chapters {\n        |        totalCount\n        |    }\n        |    latestUploadedChapter {\n        |        uploadDate\n        |    }\n        |    latestFetchedChapter {\n        |        fetchedAt\n        |    }\n        |    latestReadChapter {\n        |        lastReadAt\n        |        chapterNumber\n        |    }\n        |    unreadCount\n        |    downloadCount\n        |}\n        \"\"\".trimMargin()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/SuwayomiModels.kt",
    "content": "package eu.kanade.tachiyomi.data.track.suwayomi\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\npublic enum class MangaStatus(\n    public val rawValue: String,\n) {\n    UNKNOWN(\"UNKNOWN\"),\n    ONGOING(\"ONGOING\"),\n    COMPLETED(\"COMPLETED\"),\n    LICENSED(\"LICENSED\"),\n    PUBLISHING_FINISHED(\"PUBLISHING_FINISHED\"),\n    CANCELLED(\"CANCELLED\"),\n    ON_HIATUS(\"ON_HIATUS\"),\n}\n\n@Serializable\npublic data class MangaFragment(\n    public val artist: String?,\n    public val author: String?,\n    public val description: String?,\n    public val id: Int,\n    public val status: MangaStatus,\n    public val thumbnailUrl: String?,\n    public val title: String,\n    public val url: String,\n    public val genre: List<String>,\n    public val inLibraryAt: Long,\n    public val chapters: Chapters,\n    public val latestUploadedChapter: LatestUploadedChapter?,\n    public val latestFetchedChapter: LatestFetchedChapter?,\n    public val latestReadChapter: LatestReadChapter?,\n    public val unreadCount: Int,\n    public val downloadCount: Int,\n) {\n    @Serializable\n    public data class Chapters(\n        public val totalCount: Int,\n    )\n\n    @Serializable\n    public data class LatestUploadedChapter(\n        public val uploadDate: Long,\n    )\n\n    @Serializable\n    public data class LatestFetchedChapter(\n        public val fetchedAt: Long,\n    )\n\n    @Serializable\n    public data class LatestReadChapter(\n        public val lastReadAt: Long,\n        public val chapterNumber: Double,\n    )\n}\n\n@Serializable\npublic data class GetMangaResult(\n    public val data: GetMangaData,\n)\n\n@Serializable\npublic data class GetMangaData(\n    @SerialName(\"manga\")\n    public val entry: MangaFragment,\n)\n\n@Serializable\npublic data class GetMangaUnreadChaptersEntry(\n    public val nodes: List<GetMangaUnreadChaptersNode>,\n)\n\n@Serializable\npublic data class GetMangaUnreadChaptersNode(\n    public val id: Int,\n    public val chapterNumber: Double,\n)\n\n@Serializable\npublic data class GetMangaUnreadChaptersResult(\n    public val data: GetMangaUnreadChaptersData,\n)\n\n@Serializable\npublic data class GetMangaUnreadChaptersData(\n    @SerialName(\"chapters\")\n    public val entry: GetMangaUnreadChaptersEntry,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt",
    "content": "package eu.kanade.tachiyomi.data.updater\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.util.system.isFossBuildType\nimport eu.kanade.tachiyomi.util.system.isPreviewBuildType\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.domain.release.interactor.GetApplicationRelease\nimport uy.kohesive.injekt.injectLazy\n\nclass AppUpdateChecker {\n\n    private val getApplicationRelease: GetApplicationRelease by injectLazy()\n\n    suspend fun checkForUpdate(context: Context, forceCheck: Boolean = false): GetApplicationRelease.Result {\n        // Disable app update checks for older Android versions that we're going to drop support for\n        // if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {\n        //     return GetApplicationRelease.Result.OsTooOld\n        // }\n\n        return withIOContext {\n            val result = getApplicationRelease.await(\n                GetApplicationRelease.Arguments(\n                    isFossBuildType,\n                    isPreviewBuildType,\n                    BuildConfig.COMMIT_COUNT.toInt(),\n                    BuildConfig.VERSION_NAME,\n                    GITHUB_REPO,\n                    forceCheck,\n                ),\n            )\n\n            when (result) {\n                is GetApplicationRelease.Result.NewUpdate -> AppUpdateNotifier(context).promptUpdate(result.release)\n                else -> {}\n            }\n\n            result\n        }\n    }\n}\n\nval GITHUB_REPO: String by lazy {\n    if (isPreviewBuildType) {\n        \"mihonapp/mihon-preview\"\n    } else {\n        \"mihonapp/mihon\"\n    }\n}\n\nval RELEASE_TAG: String by lazy {\n    if (isPreviewBuildType) {\n        \"r${BuildConfig.COMMIT_COUNT}\"\n    } else {\n        \"v${BuildConfig.VERSION_NAME}\"\n    }\n}\n\nval RELEASE_URL = \"https://github.com/$GITHUB_REPO/releases/tag/$RELEASE_TAG\"\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateDownloadJob.kt",
    "content": "package eu.kanade.tachiyomi.data.updater\n\nimport android.content.Context\nimport android.content.pm.ServiceInfo\nimport android.os.Build\nimport androidx.work.Constraints\nimport androidx.work.CoroutineWorker\nimport androidx.work.ExistingWorkPolicy\nimport androidx.work.ForegroundInfo\nimport androidx.work.NetworkType\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.WorkerParameters\nimport androidx.work.workDataOf\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.ProgressListener\nimport eu.kanade.tachiyomi.network.await\nimport eu.kanade.tachiyomi.network.newCachelessCallWithProgress\nimport eu.kanade.tachiyomi.util.storage.getUriCompat\nimport eu.kanade.tachiyomi.util.storage.saveTo\nimport eu.kanade.tachiyomi.util.system.setForegroundSafely\nimport eu.kanade.tachiyomi.util.system.workManager\nimport okhttp3.internal.http2.ErrorCode\nimport okhttp3.internal.http2.StreamResetException\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\nimport java.io.File\nimport kotlin.coroutines.cancellation.CancellationException\n\nclass AppUpdateDownloadJob(private val context: Context, workerParams: WorkerParameters) :\n    CoroutineWorker(context, workerParams) {\n\n    private val notifier = AppUpdateNotifier(context)\n    private val network: NetworkHelper by injectLazy()\n\n    override suspend fun doWork(): Result {\n        val url = inputData.getString(EXTRA_DOWNLOAD_URL)\n        val title = inputData.getString(EXTRA_DOWNLOAD_TITLE) ?: context.stringResource(MR.strings.app_name)\n\n        if (url.isNullOrEmpty()) {\n            return Result.failure()\n        }\n\n        setForegroundSafely()\n\n        withIOContext {\n            downloadApk(title, url)\n        }\n\n        return Result.success()\n    }\n\n    override suspend fun getForegroundInfo(): ForegroundInfo {\n        return ForegroundInfo(\n            Notifications.ID_APP_UPDATER,\n            notifier.onDownloadStarted().build(),\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n                ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC\n            } else {\n                0\n            },\n        )\n    }\n\n    /**\n     * Called to start downloading apk of new update\n     *\n     * @param url url location of file\n     */\n    private suspend fun downloadApk(title: String, url: String) {\n        // Show notification download starting.\n        notifier.onDownloadStarted(title)\n\n        val progressListener = object : ProgressListener {\n            // Progress of the download\n            var savedProgress = 0\n\n            // Keep track of the last notification sent to avoid posting too many.\n            var lastTick = 0L\n\n            override fun update(bytesRead: Long, contentLength: Long, done: Boolean) {\n                val progress = (100 * (bytesRead.toFloat() / contentLength)).toInt()\n                val currentTime = System.currentTimeMillis()\n                if (progress > savedProgress && currentTime - 200 > lastTick) {\n                    savedProgress = progress\n                    lastTick = currentTime\n                    notifier.onProgressChange(progress)\n                }\n            }\n        }\n\n        try {\n            // Download the new update.\n            val response = network.client.newCachelessCallWithProgress(GET(url), progressListener)\n                .await()\n\n            // File where the apk will be saved.\n            val apkFile = File(context.externalCacheDir, \"update.apk\")\n\n            if (response.isSuccessful) {\n                response.body.source().saveTo(apkFile)\n            } else {\n                response.close()\n                throw Exception(\"Unsuccessful response\")\n            }\n            notifier.cancel()\n            notifier.promptInstall(apkFile.getUriCompat(context))\n        } catch (e: Exception) {\n            val shouldCancel = e is CancellationException ||\n                (e is StreamResetException && e.errorCode == ErrorCode.CANCEL)\n            if (shouldCancel) {\n                notifier.cancel()\n            } else {\n                notifier.onDownloadError(url)\n            }\n        }\n    }\n\n    companion object {\n        private const val TAG = \"AppUpdateDownload\"\n\n        const val EXTRA_DOWNLOAD_URL = \"DOWNLOAD_URL\"\n        const val EXTRA_DOWNLOAD_TITLE = \"DOWNLOAD_TITLE\"\n\n        fun start(context: Context, url: String, title: String? = null) {\n            val constraints = Constraints(\n                requiredNetworkType = NetworkType.CONNECTED,\n            )\n\n            val request = OneTimeWorkRequestBuilder<AppUpdateDownloadJob>()\n                .setConstraints(constraints)\n                .addTag(TAG)\n                .setInputData(\n                    workDataOf(\n                        EXTRA_DOWNLOAD_URL to url,\n                        EXTRA_DOWNLOAD_TITLE to title,\n                    ),\n                )\n                .build()\n\n            context.workManager.enqueueUniqueWork(TAG, ExistingWorkPolicy.REPLACE, request)\n        }\n\n        fun stop(context: Context) {\n            context.workManager.cancelUniqueWork(TAG)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt",
    "content": "package eu.kanade.tachiyomi.data.updater\n\nimport android.annotation.SuppressLint\nimport android.app.PendingIntent\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport androidx.core.app.NotificationCompat\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.notification.NotificationHandler\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport eu.kanade.tachiyomi.util.system.notify\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.domain.release.model.Release\nimport tachiyomi.i18n.MR\n\ninternal class AppUpdateNotifier(private val context: Context) {\n\n    private val notificationBuilder = context.notificationBuilder(Notifications.CHANNEL_APP_UPDATE)\n\n    /**\n     * Call to show notification.\n     *\n     * @param id id of the notification channel.\n     */\n    private fun NotificationCompat.Builder.show(id: Int = Notifications.ID_APP_UPDATER) {\n        context.notify(id, build())\n    }\n\n    fun cancel() {\n        NotificationReceiver.dismissNotification(context, Notifications.ID_APP_UPDATER)\n    }\n\n    @SuppressLint(\"LaunchActivityFromNotification\")\n    fun promptUpdate(release: Release) {\n        val updateIntent = NotificationReceiver.downloadAppUpdatePendingBroadcast(\n            context,\n            release.downloadLink,\n            release.version,\n        )\n\n        val releaseIntent = Intent(Intent.ACTION_VIEW, release.releaseLink.toUri()).run {\n            flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP\n            PendingIntent.getActivity(\n                context,\n                release.hashCode(),\n                this,\n                PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,\n            )\n        }\n\n        with(notificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.update_check_notification_update_available))\n            setContentText(release.version)\n            setSmallIcon(android.R.drawable.stat_sys_download_done)\n            setContentIntent(updateIntent)\n\n            clearActions()\n            addAction(\n                android.R.drawable.stat_sys_download_done,\n                context.stringResource(MR.strings.action_download),\n                updateIntent,\n            )\n            addAction(\n                R.drawable.ic_info_24dp,\n                context.stringResource(MR.strings.whats_new),\n                releaseIntent,\n            )\n        }\n        notificationBuilder.show()\n    }\n\n    /**\n     * Call when apk download starts.\n     *\n     * @param title tile of notification.\n     */\n    fun onDownloadStarted(title: String? = null): NotificationCompat.Builder {\n        with(notificationBuilder) {\n            title?.let { setContentTitle(title) }\n            setContentText(context.stringResource(MR.strings.update_check_notification_download_in_progress))\n            setSmallIcon(android.R.drawable.stat_sys_download)\n            setOngoing(true)\n\n            clearActions()\n            addAction(\n                R.drawable.ic_close_24dp,\n                context.stringResource(MR.strings.action_cancel),\n                NotificationReceiver.cancelDownloadAppUpdatePendingBroadcast(context),\n            )\n        }\n        notificationBuilder.show()\n        return notificationBuilder\n    }\n\n    /**\n     * Call when apk download progress changes.\n     *\n     * @param progress progress of download (xx%/100).\n     */\n    fun onProgressChange(progress: Int) {\n        with(notificationBuilder) {\n            setProgress(100, progress, false)\n            setOnlyAlertOnce(true)\n        }\n        notificationBuilder.show()\n    }\n\n    /**\n     * Call when apk download is finished.\n     *\n     * @param uri path location of apk.\n     */\n    fun promptInstall(uri: Uri) {\n        val installIntent = NotificationHandler.installApkPendingActivity(context, uri)\n        with(notificationBuilder) {\n            setContentText(context.stringResource(MR.strings.update_check_notification_download_complete))\n            setSmallIcon(android.R.drawable.stat_sys_download_done)\n            setOnlyAlertOnce(false)\n            setProgress(0, 0, false)\n            setContentIntent(installIntent)\n            setOngoing(true)\n\n            clearActions()\n            addAction(\n                R.drawable.ic_system_update_alt_white_24dp,\n                context.stringResource(MR.strings.action_install),\n                installIntent,\n            )\n            addAction(\n                R.drawable.ic_close_24dp,\n                context.stringResource(MR.strings.action_cancel),\n                NotificationReceiver.dismissNotificationPendingBroadcast(context, Notifications.ID_APP_UPDATE_PROMPT),\n            )\n        }\n        notificationBuilder.show(Notifications.ID_APP_UPDATE_PROMPT)\n    }\n\n    /**\n     * Call when apk download throws a error\n     *\n     * @param url web location of apk to download.\n     */\n    fun onDownloadError(url: String) {\n        with(notificationBuilder) {\n            setContentText(context.stringResource(MR.strings.update_check_notification_download_error))\n            setSmallIcon(R.drawable.ic_warning_white_24dp)\n            setOnlyAlertOnce(false)\n            setProgress(0, 0, false)\n\n            clearActions()\n            addAction(\n                R.drawable.ic_refresh_24dp,\n                context.stringResource(MR.strings.action_retry),\n                NotificationReceiver.downloadAppUpdatePendingBroadcast(context, url),\n            )\n            addAction(\n                R.drawable.ic_close_24dp,\n                context.stringResource(MR.strings.action_cancel),\n                NotificationReceiver.dismissNotificationPendingBroadcast(context, Notifications.ID_APP_UPDATE_ERROR),\n            )\n        }\n        notificationBuilder.show(Notifications.ID_APP_UPDATE_ERROR)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt",
    "content": "package eu.kanade.tachiyomi.di\n\nimport android.app.Application\nimport androidx.core.content.ContextCompat\nimport androidx.sqlite.driver.bundled.BundledSQLiteDriver\nimport app.cash.sqldelight.db.SqlDriver\nimport com.eygraber.sqldelight.androidx.driver.AndroidxSqliteConfiguration\nimport com.eygraber.sqldelight.androidx.driver.AndroidxSqliteDatabaseType\nimport com.eygraber.sqldelight.androidx.driver.AndroidxSqliteDriver\nimport com.eygraber.sqldelight.androidx.driver.File\nimport com.eygraber.sqldelight.androidx.driver.FileProvider\nimport eu.kanade.domain.track.store.DelayedTrackingStore\nimport eu.kanade.tachiyomi.data.cache.ChapterCache\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.DownloadProvider\nimport eu.kanade.tachiyomi.data.saver.ImageSaver\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.network.JavaScriptEngine\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.source.AndroidSourceManager\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.protobuf.ProtoBuf\nimport nl.adaptivity.xmlutil.XmlDeclMode\nimport nl.adaptivity.xmlutil.core.XmlVersion\nimport nl.adaptivity.xmlutil.serialization.XML\nimport tachiyomi.core.common.storage.AndroidStorageFolderProvider\nimport tachiyomi.data.AndroidDatabaseHandler\nimport tachiyomi.data.Database\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.data.DateColumnAdapter\nimport tachiyomi.data.History\nimport tachiyomi.data.Mangas\nimport tachiyomi.data.StringListColumnAdapter\nimport tachiyomi.data.UpdateStrategyColumnAdapter\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.storage.service.StorageManager\nimport tachiyomi.source.local.image.LocalCoverManager\nimport tachiyomi.source.local.io.LocalSourceFileSystem\nimport uy.kohesive.injekt.api.InjektModule\nimport uy.kohesive.injekt.api.InjektRegistrar\nimport uy.kohesive.injekt.api.addSingleton\nimport uy.kohesive.injekt.api.addSingletonFactory\nimport uy.kohesive.injekt.api.get\n\nclass AppModule(val app: Application) : InjektModule {\n\n    override fun InjektRegistrar.registerInjectables() {\n        addSingleton(app)\n\n        addSingletonFactory<SqlDriver> {\n            AndroidxSqliteDriver(\n                driver = BundledSQLiteDriver(),\n                databaseType = AndroidxSqliteDatabaseType.FileProvider(app, \"tachiyomi.db\"),\n                schema = Database.Schema,\n                configuration = AndroidxSqliteConfiguration(\n                    isForeignKeyConstraintsEnabled = true,\n                ),\n            )\n        }\n        addSingletonFactory {\n            Database(\n                driver = get(),\n                historyAdapter = History.Adapter(\n                    last_readAdapter = DateColumnAdapter,\n                ),\n                mangasAdapter = Mangas.Adapter(\n                    genreAdapter = StringListColumnAdapter,\n                    update_strategyAdapter = UpdateStrategyColumnAdapter,\n                ),\n            )\n        }\n        addSingletonFactory<DatabaseHandler> { AndroidDatabaseHandler(get(), get()) }\n\n        addSingletonFactory {\n            Json {\n                ignoreUnknownKeys = true\n                explicitNulls = false\n            }\n        }\n        addSingletonFactory {\n            XML {\n                defaultPolicy {\n                    ignoreUnknownChildren()\n                }\n                autoPolymorphic = true\n                xmlDeclMode = XmlDeclMode.Charset\n                indent = 2\n                xmlVersion = XmlVersion.XML10\n            }\n        }\n        addSingletonFactory<ProtoBuf> {\n            ProtoBuf\n        }\n\n        addSingletonFactory { ChapterCache(app, get()) }\n        addSingletonFactory { CoverCache(app) }\n\n        addSingletonFactory { NetworkHelper(app, get()) }\n        addSingletonFactory { JavaScriptEngine(app) }\n\n        addSingletonFactory<SourceManager> { AndroidSourceManager(app, get(), get()) }\n        addSingletonFactory { ExtensionManager(app) }\n\n        addSingletonFactory { DownloadProvider(app) }\n        addSingletonFactory { DownloadManager(app) }\n        addSingletonFactory { DownloadCache(app) }\n\n        addSingletonFactory { TrackerManager() }\n        addSingletonFactory { DelayedTrackingStore(app) }\n\n        addSingletonFactory { ImageSaver(app) }\n\n        addSingletonFactory { AndroidStorageFolderProvider(app) }\n        addSingletonFactory { LocalSourceFileSystem(get()) }\n        addSingletonFactory { LocalCoverManager(app, get()) }\n        addSingletonFactory { StorageManager(app, get()) }\n\n        // Asynchronously init expensive components for a faster cold start\n        ContextCompat.getMainExecutor(app).execute {\n            get<NetworkHelper>()\n\n            get<SourceManager>()\n\n            get<Database>()\n\n            get<DownloadManager>()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt",
    "content": "package eu.kanade.tachiyomi.di\n\nimport android.app.Application\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.domain.track.service.TrackPreferences\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.tachiyomi.core.security.PrivacyPreferences\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.network.NetworkPreferences\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.util.system.isDebugBuildType\nimport tachiyomi.core.common.preference.AndroidPreferenceStore\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.storage.AndroidStorageFolderProvider\nimport tachiyomi.domain.backup.service.BackupPreferences\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.storage.service.StoragePreferences\nimport tachiyomi.domain.updates.service.UpdatesPreferences\nimport uy.kohesive.injekt.api.InjektModule\nimport uy.kohesive.injekt.api.InjektRegistrar\nimport uy.kohesive.injekt.api.addSingletonFactory\nimport uy.kohesive.injekt.api.get\n\nclass PreferenceModule(val app: Application) : InjektModule {\n\n    override fun InjektRegistrar.registerInjectables() {\n        addSingletonFactory<PreferenceStore> {\n            AndroidPreferenceStore(app)\n        }\n        addSingletonFactory {\n            NetworkPreferences(\n                preferenceStore = get(),\n                verboseLoggingDefault = isDebugBuildType,\n            )\n        }\n        addSingletonFactory {\n            SourcePreferences(get())\n        }\n        addSingletonFactory {\n            SecurityPreferences(get())\n        }\n        addSingletonFactory {\n            PrivacyPreferences(get())\n        }\n        addSingletonFactory {\n            LibraryPreferences(get())\n        }\n        addSingletonFactory {\n            UpdatesPreferences(get())\n        }\n        addSingletonFactory {\n            ReaderPreferences(get())\n        }\n        addSingletonFactory {\n            TrackPreferences(get())\n        }\n        addSingletonFactory {\n            DownloadPreferences(get())\n        }\n        addSingletonFactory {\n            BackupPreferences(get())\n        }\n        addSingletonFactory {\n            StoragePreferences(\n                folderProvider = get<AndroidStorageFolderProvider>(),\n                preferenceStore = get(),\n            )\n        }\n        addSingletonFactory {\n            UiPreferences(get())\n        }\n        addSingletonFactory {\n            BasePreferences(app, get())\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt",
    "content": "package eu.kanade.tachiyomi.extension\n\nimport android.content.Context\nimport android.graphics.drawable.Drawable\nimport eu.kanade.domain.extension.interactor.TrustExtension\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.api.ExtensionApi\nimport eu.kanade.tachiyomi.extension.api.ExtensionUpdateNotifier\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.extension.model.LoadResult\nimport eu.kanade.tachiyomi.extension.util.ExtensionInstallReceiver\nimport eu.kanade.tachiyomi.extension.util.ExtensionInstaller\nimport eu.kanade.tachiyomi.extension.util.ExtensionLoader\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.StateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.emptyFlow\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.stateIn\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.Locale\n\n/**\n * The manager of extensions installed as another apk which extend the available sources. It handles\n * the retrieval of remotely available extensions as well as installing, updating and removing them.\n * To avoid malicious distribution, every extension must be signed and it will only be loaded if its\n * signature is trusted, otherwise the user will be prompted with a warning to trust it before being\n * loaded.\n */\nclass ExtensionManager(\n    private val context: Context,\n    private val preferences: SourcePreferences = Injekt.get(),\n    private val trustExtension: TrustExtension = Injekt.get(),\n) {\n\n    val scope = CoroutineScope(SupervisorJob())\n\n    private val _isInitialized = MutableStateFlow(false)\n    val isInitialized: StateFlow<Boolean> = _isInitialized.asStateFlow()\n\n    /**\n     * API where all the available extensions can be found.\n     */\n    private val api = ExtensionApi()\n\n    /**\n     * The installer which installs, updates and uninstalls the extensions.\n     */\n    private val installer by lazy { ExtensionInstaller(context) }\n\n    private val iconMap = mutableMapOf<String, Drawable>()\n\n    private val installedExtensionMapFlow = MutableStateFlow(emptyMap<String, Extension.Installed>())\n    val installedExtensionsFlow = installedExtensionMapFlow.mapExtensions(scope)\n\n    private val availableExtensionMapFlow = MutableStateFlow(emptyMap<String, Extension.Available>())\n    val availableExtensionsFlow = availableExtensionMapFlow.mapExtensions(scope)\n\n    private val untrustedExtensionMapFlow = MutableStateFlow(emptyMap<String, Extension.Untrusted>())\n    val untrustedExtensionsFlow = untrustedExtensionMapFlow.mapExtensions(scope)\n\n    init {\n        initExtensions()\n        ExtensionInstallReceiver(InstallationListener()).register(context)\n    }\n\n    private var subLanguagesEnabledOnFirstRun = preferences.enabledLanguages.isSet()\n\n    fun getExtensionPackage(sourceId: Long): String? {\n        return installedExtensionsFlow.value.find { extension ->\n            extension.sources.any { it.id == sourceId }\n        }\n            ?.pkgName\n    }\n\n    fun getExtensionPackageAsFlow(sourceId: Long): Flow<String?> {\n        return installedExtensionsFlow.map { extensions ->\n            extensions.find { extension ->\n                extension.sources.any { it.id == sourceId }\n            }\n                ?.pkgName\n        }\n    }\n\n    fun getAppIconForSource(sourceId: Long): Drawable? {\n        val pkgName = getExtensionPackage(sourceId) ?: return null\n\n        return iconMap[pkgName] ?: iconMap.getOrPut(pkgName) {\n            ExtensionLoader.getExtensionPackageInfoFromPkgName(context, pkgName)!!.applicationInfo!!\n                .loadIcon(context.packageManager)\n        }\n    }\n\n    private var availableExtensionsSourcesData: Map<Long, StubSource> = emptyMap()\n\n    private fun setupAvailableExtensionsSourcesDataMap(extensions: List<Extension.Available>) {\n        if (extensions.isEmpty()) return\n        availableExtensionsSourcesData = extensions\n            .flatMap { ext -> ext.sources.map { it.toStubSource() } }\n            .associateBy { it.id }\n    }\n\n    fun getSourceData(id: Long) = availableExtensionsSourcesData[id]\n\n    /**\n     * Loads and registers the installed extensions.\n     */\n    private fun initExtensions() {\n        val extensions = ExtensionLoader.loadExtensions(context)\n\n        installedExtensionMapFlow.value = extensions\n            .filterIsInstance<LoadResult.Success>()\n            .associate { it.extension.pkgName to it.extension }\n\n        untrustedExtensionMapFlow.value = extensions\n            .filterIsInstance<LoadResult.Untrusted>()\n            .associate { it.extension.pkgName to it.extension }\n\n        _isInitialized.value = true\n    }\n\n    /**\n     * Finds the available extensions in the [api] and updates [availableExtensionMapFlow].\n     */\n    suspend fun findAvailableExtensions() {\n        val extensions: List<Extension.Available> = try {\n            api.findExtensions()\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            withUIContext { context.toast(MR.strings.extension_api_error) }\n            return\n        }\n\n        enableAdditionalSubLanguages(extensions)\n\n        availableExtensionMapFlow.value = extensions.associateBy { it.pkgName }\n        updatedInstalledExtensionsStatuses(extensions)\n        setupAvailableExtensionsSourcesDataMap(extensions)\n    }\n\n    /**\n     * Enables the additional sub-languages in the app first run. This addresses\n     * the issue where users still need to enable some specific languages even when\n     * the device language is inside that major group. As an example, if a user\n     * has a zh device language, the app will also enable zh-Hans and zh-Hant.\n     *\n     * If the user have already changed the enabledLanguages preference value once,\n     * the new languages will not be added to respect the user enabled choices.\n     */\n    private fun enableAdditionalSubLanguages(extensions: List<Extension.Available>) {\n        if (subLanguagesEnabledOnFirstRun || extensions.isEmpty()) {\n            return\n        }\n\n        // Use the source lang as some aren't present on the extension level.\n        val availableLanguages = extensions\n            .flatMap(Extension.Available::sources)\n            .distinctBy(Extension.Available.Source::lang)\n            .map(Extension.Available.Source::lang)\n\n        val deviceLanguage = Locale.getDefault().language\n        val defaultLanguages = preferences.enabledLanguages.defaultValue()\n        val languagesToEnable = availableLanguages.filter {\n            it != deviceLanguage && it.startsWith(deviceLanguage)\n        }\n\n        preferences.enabledLanguages.set(defaultLanguages + languagesToEnable)\n        subLanguagesEnabledOnFirstRun = true\n    }\n\n    /**\n     * Sets the update field of the installed extensions with the given [availableExtensions].\n     *\n     * @param availableExtensions The list of extensions given by the [api].\n     */\n    private fun updatedInstalledExtensionsStatuses(availableExtensions: List<Extension.Available>) {\n        if (availableExtensions.isEmpty()) {\n            preferences.extensionUpdatesCount.set(0)\n            return\n        }\n\n        val installedExtensionsMap = installedExtensionMapFlow.value.toMutableMap()\n        var changed = false\n        for ((pkgName, extension) in installedExtensionsMap) {\n            val availableExt = availableExtensions.find { it.pkgName == pkgName }\n\n            if (availableExt == null && !extension.isObsolete) {\n                installedExtensionsMap[pkgName] = extension.copy(isObsolete = true)\n                changed = true\n            } else if (availableExt != null) {\n                val hasUpdate = extension.updateExists(availableExt)\n                if (extension.hasUpdate != hasUpdate) {\n                    installedExtensionsMap[pkgName] = extension.copy(\n                        hasUpdate = hasUpdate,\n                        repoUrl = availableExt.repoUrl,\n                    )\n                } else {\n                    installedExtensionsMap[pkgName] = extension.copy(\n                        repoUrl = availableExt.repoUrl,\n                    )\n                }\n                changed = true\n            }\n        }\n        if (changed) {\n            installedExtensionMapFlow.value = installedExtensionsMap\n        }\n        updatePendingUpdatesCount()\n    }\n\n    /**\n     * Returns a flow of the installation process for the given extension. It will complete\n     * once the extension is installed or throws an error. The process will be canceled if\n     * unsubscribed before its completion.\n     *\n     * @param extension The extension to be installed.\n     */\n    fun installExtension(extension: Extension.Available): Flow<InstallStep> {\n        return installer.downloadAndInstall(api.getApkUrl(extension), extension)\n    }\n\n    /**\n     * Returns a flow of the installation process for the given extension. It will complete\n     * once the extension is updated or throws an error. The process will be canceled if\n     * unsubscribed before its completion.\n     *\n     * @param extension The extension to be updated.\n     */\n    fun updateExtension(extension: Extension.Installed): Flow<InstallStep> {\n        val availableExt = availableExtensionMapFlow.value[extension.pkgName] ?: return emptyFlow()\n        return installExtension(availableExt)\n    }\n\n    fun cancelInstallUpdateExtension(extension: Extension) {\n        installer.cancelInstall(extension.pkgName)\n    }\n\n    /**\n     * Sets to \"installing\" status of an extension installation.\n     *\n     * @param downloadId The id of the download.\n     */\n    fun setInstalling(downloadId: Long) {\n        installer.updateInstallStep(downloadId, InstallStep.Installing)\n    }\n\n    fun updateInstallStep(downloadId: Long, step: InstallStep) {\n        installer.updateInstallStep(downloadId, step)\n    }\n\n    /**\n     * Uninstalls the extension that matches the given package name.\n     *\n     * @param extension The extension to uninstall.\n     */\n    fun uninstallExtension(extension: Extension) {\n        installer.uninstallApk(extension.pkgName)\n    }\n\n    /**\n     * Adds the given extension to the list of trusted extensions. It also loads in background the\n     * now trusted extensions.\n     *\n     * @param extension the extension to trust\n     */\n    suspend fun trust(extension: Extension.Untrusted) {\n        untrustedExtensionMapFlow.value[extension.pkgName] ?: return\n\n        trustExtension.trust(extension.pkgName, extension.versionCode, extension.signatureHash)\n\n        untrustedExtensionMapFlow.value -= extension.pkgName\n\n        ExtensionLoader.loadExtensionFromPkgName(context, extension.pkgName)\n            .let { it as? LoadResult.Success }\n            ?.let { registerNewExtension(it.extension) }\n    }\n\n    /**\n     * Registers the given extension in this and the source managers.\n     *\n     * @param extension The extension to be registered.\n     */\n    private fun registerNewExtension(extension: Extension.Installed) {\n        installedExtensionMapFlow.value += extension\n    }\n\n    /**\n     * Registers the given updated extension in this and the source managers previously removing\n     * the outdated ones.\n     *\n     * @param extension The extension to be registered.\n     */\n    private fun registerUpdatedExtension(extension: Extension.Installed) {\n        installedExtensionMapFlow.value += extension\n    }\n\n    /**\n     * Unregisters the extension in this and the source managers given its package name. Note this\n     * method is called for every uninstalled application in the system.\n     *\n     * @param pkgName The package name of the uninstalled application.\n     */\n    private fun unregisterExtension(pkgName: String) {\n        installedExtensionMapFlow.value -= pkgName\n        untrustedExtensionMapFlow.value -= pkgName\n    }\n\n    /**\n     * Listener which receives events of the extensions being installed, updated or removed.\n     */\n    private inner class InstallationListener : ExtensionInstallReceiver.Listener {\n\n        override fun onExtensionInstalled(extension: Extension.Installed) {\n            registerNewExtension(extension.withUpdateCheck())\n            updatePendingUpdatesCount()\n        }\n\n        override fun onExtensionUpdated(extension: Extension.Installed) {\n            registerUpdatedExtension(extension.withUpdateCheck())\n            updatePendingUpdatesCount()\n        }\n\n        override fun onExtensionUntrusted(extension: Extension.Untrusted) {\n            installedExtensionMapFlow.value -= extension.pkgName\n            untrustedExtensionMapFlow.value += extension\n            updatePendingUpdatesCount()\n        }\n\n        override fun onPackageUninstalled(pkgName: String) {\n            ExtensionLoader.uninstallPrivateExtension(context, pkgName)\n            unregisterExtension(pkgName)\n            updatePendingUpdatesCount()\n        }\n    }\n\n    /**\n     * Extension method to set the update field of an installed extension.\n     */\n    private fun Extension.Installed.withUpdateCheck(): Extension.Installed {\n        return if (updateExists()) {\n            copy(hasUpdate = true)\n        } else {\n            this\n        }\n    }\n\n    private fun Extension.Installed.updateExists(availableExtension: Extension.Available? = null): Boolean {\n        val availableExt = availableExtension\n            ?: availableExtensionMapFlow.value[pkgName]\n            ?: return false\n\n        return (availableExt.versionCode > versionCode || availableExt.libVersion > libVersion)\n    }\n\n    private fun updatePendingUpdatesCount() {\n        val pendingUpdateCount = installedExtensionMapFlow.value.values.count { it.hasUpdate }\n        preferences.extensionUpdatesCount.set(pendingUpdateCount)\n        if (pendingUpdateCount == 0) {\n            ExtensionUpdateNotifier(context).dismiss()\n        }\n    }\n\n    private operator fun <T : Extension> Map<String, T>.plus(extension: T) = plus(extension.pkgName to extension)\n\n    private fun <T : Extension> StateFlow<Map<String, T>>.mapExtensions(scope: CoroutineScope): StateFlow<List<T>> {\n        return map { it.values.toList() }.stateIn(scope, SharingStarted.Lazily, value.values.toList())\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionApi.kt",
    "content": "package eu.kanade.tachiyomi.extension.api\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.LoadResult\nimport eu.kanade.tachiyomi.extension.util.ExtensionLoader\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.json.Json\nimport logcat.LogPriority\nimport mihon.domain.extensionrepo.interactor.GetExtensionRepo\nimport mihon.domain.extensionrepo.interactor.UpdateExtensionRepo\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.injectLazy\nimport java.time.Instant\nimport kotlin.time.Duration.Companion.days\n\ninternal class ExtensionApi {\n\n    private val networkService: NetworkHelper by injectLazy()\n    private val preferenceStore: PreferenceStore by injectLazy()\n    private val getExtensionRepo: GetExtensionRepo by injectLazy()\n    private val updateExtensionRepo: UpdateExtensionRepo by injectLazy()\n    private val extensionManager: ExtensionManager by injectLazy()\n    private val json: Json by injectLazy()\n\n    private val lastExtCheck: Preference<Long> by lazy {\n        preferenceStore.getLong(Preference.appStateKey(\"last_ext_check\"), 0)\n    }\n\n    suspend fun findExtensions(): List<Extension.Available> {\n        return withIOContext {\n            getExtensionRepo.getAll()\n                .map { async { getExtensions(it) } }\n                .awaitAll()\n                .flatten()\n        }\n    }\n\n    private suspend fun getExtensions(extRepo: ExtensionRepo): List<Extension.Available> {\n        val repoBaseUrl = extRepo.baseUrl\n        return try {\n            val response = networkService.client\n                .newCall(GET(\"$repoBaseUrl/index.min.json\"))\n                .awaitSuccess()\n\n            with(json) {\n                response\n                    .parseAs<List<ExtensionJsonObject>>()\n                    .toExtensions(repoBaseUrl)\n            }\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e) { \"Failed to get extensions from $repoBaseUrl\" }\n            emptyList()\n        }\n    }\n\n    suspend fun checkForUpdates(\n        context: Context,\n        fromAvailableExtensionList: Boolean = false,\n    ): List<Extension.Installed>? {\n        // Limit checks to once a day at most\n        if (!fromAvailableExtensionList &&\n            Instant.now().toEpochMilli() < lastExtCheck.get() + 1.days.inWholeMilliseconds\n        ) {\n            return null\n        }\n\n        // Update extension repo details\n        updateExtensionRepo.awaitAll()\n\n        val extensions = if (fromAvailableExtensionList) {\n            extensionManager.availableExtensionsFlow.value\n        } else {\n            findExtensions().also { lastExtCheck.set(Instant.now().toEpochMilli()) }\n        }\n\n        val installedExtensions = ExtensionLoader.loadExtensions(context)\n            .filterIsInstance<LoadResult.Success>()\n            .map { it.extension }\n\n        val extensionsWithUpdate = mutableListOf<Extension.Installed>()\n        for (installedExt in installedExtensions) {\n            val pkgName = installedExt.pkgName\n            val availableExt = extensions.find { it.pkgName == pkgName } ?: continue\n            val hasUpdatedVer = availableExt.versionCode > installedExt.versionCode\n            val hasUpdatedLib = availableExt.libVersion > installedExt.libVersion\n            val hasUpdate = hasUpdatedVer || hasUpdatedLib\n            if (hasUpdate) {\n                extensionsWithUpdate.add(installedExt)\n            }\n        }\n\n        if (extensionsWithUpdate.isNotEmpty()) {\n            ExtensionUpdateNotifier(context).promptUpdates(extensionsWithUpdate.map { it.name })\n        }\n\n        return extensionsWithUpdate\n    }\n\n    private fun List<ExtensionJsonObject>.toExtensions(repoUrl: String): List<Extension.Available> {\n        return this\n            .filter {\n                val libVersion = it.extractLibVersion()\n                libVersion >= ExtensionLoader.LIB_VERSION_MIN && libVersion <= ExtensionLoader.LIB_VERSION_MAX\n            }\n            .map {\n                Extension.Available(\n                    name = it.name.substringAfter(\"Tachiyomi: \"),\n                    pkgName = it.pkg,\n                    versionName = it.version,\n                    versionCode = it.code,\n                    libVersion = it.extractLibVersion(),\n                    lang = it.lang,\n                    isNsfw = it.nsfw == 1,\n                    sources = it.sources?.map(extensionSourceMapper).orEmpty(),\n                    apkName = it.apk,\n                    iconUrl = \"$repoUrl/icon/${it.pkg}.png\",\n                    repoUrl = repoUrl,\n                )\n            }\n    }\n\n    fun getApkUrl(extension: Extension.Available): String {\n        return \"${extension.repoUrl}/apk/${extension.apkName}\"\n    }\n\n    private fun ExtensionJsonObject.extractLibVersion(): Double {\n        return version.substringBeforeLast('.').toDouble()\n    }\n}\n\n@Serializable\nprivate data class ExtensionJsonObject(\n    val name: String,\n    val pkg: String,\n    val apk: String,\n    val lang: String,\n    val code: Long,\n    val version: String,\n    val nsfw: Int,\n    val sources: List<ExtensionSourceJsonObject>?,\n)\n\n@Serializable\nprivate data class ExtensionSourceJsonObject(\n    val id: Long,\n    val lang: String,\n    val name: String,\n    val baseUrl: String,\n)\n\nprivate val extensionSourceMapper: (ExtensionSourceJsonObject) -> Extension.Available.Source = {\n    Extension.Available.Source(\n        id = it.id,\n        lang = it.lang,\n        name = it.name,\n        baseUrl = it.baseUrl,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt",
    "content": "package eu.kanade.tachiyomi.extension.api\n\nimport android.content.Context\nimport androidx.core.app.NotificationCompat\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.notify\nimport tachiyomi.core.common.i18n.pluralStringResource\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ExtensionUpdateNotifier(\n    private val context: Context,\n    private val securityPreferences: SecurityPreferences = Injekt.get(),\n) {\n    fun promptUpdates(names: List<String>) {\n        context.notify(\n            Notifications.ID_UPDATES_TO_EXTS,\n            Notifications.CHANNEL_EXTENSIONS_UPDATE,\n        ) {\n            setContentTitle(\n                context.pluralStringResource(\n                    MR.plurals.update_check_notification_ext_updates,\n                    names.size,\n                    names.size,\n                ),\n            )\n            if (!securityPreferences.hideNotificationContent.get()) {\n                val extNames = names.joinToString(\", \")\n                setContentText(extNames)\n                setStyle(NotificationCompat.BigTextStyle().bigText(extNames))\n            }\n            setSmallIcon(R.drawable.ic_extension_24dp)\n            setContentIntent(NotificationReceiver.openExtensionsPendingActivity(context))\n            setAutoCancel(true)\n        }\n    }\n\n    fun dismiss() {\n        context.cancelNotification(Notifications.ID_UPDATES_TO_EXTS)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/installer/Installer.kt",
    "content": "package eu.kanade.tachiyomi.extension.installer\n\nimport android.app.Service\nimport android.content.BroadcastReceiver\nimport android.content.Context\nimport android.content.Intent\nimport android.content.IntentFilter\nimport android.net.Uri\nimport androidx.annotation.CallSuper\nimport androidx.localbroadcastmanager.content.LocalBroadcastManager\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport uy.kohesive.injekt.injectLazy\nimport java.util.Collections\nimport kotlin.concurrent.atomics.AtomicReference\nimport kotlin.concurrent.atomics.ExperimentalAtomicApi\n\n/**\n * Base implementation class for extension installer. To be used inside a foreground [Service].\n */\n@OptIn(ExperimentalAtomicApi::class)\nabstract class Installer(private val service: Service) {\n\n    private val extensionManager: ExtensionManager by injectLazy()\n\n    private var waitingInstall = AtomicReference<Entry?>(null)\n    private val queue = Collections.synchronizedList(mutableListOf<Entry>())\n\n    private val cancelReceiver = object : BroadcastReceiver() {\n        override fun onReceive(context: Context, intent: Intent) {\n            val downloadId = intent.getLongExtra(EXTRA_DOWNLOAD_ID, -1).takeIf { it >= 0 } ?: return\n            cancelQueue(downloadId)\n        }\n    }\n\n    /**\n     * Installer readiness. If false, queue check will not run.\n     *\n     * @see checkQueue\n     */\n    abstract var ready: Boolean\n\n    /**\n     * Add an item to install queue.\n     *\n     * @param downloadId Download ID as known by [ExtensionManager]\n     * @param uri Uri of APK to install\n     */\n    fun addToQueue(downloadId: Long, uri: Uri) {\n        queue.add(Entry(downloadId, uri))\n        checkQueue()\n    }\n\n    /**\n     * Proceeds to install the APK of this entry inside this method. Call [continueQueue]\n     * when the install process for this entry is finished to continue the queue.\n     *\n     * @param entry The [Entry] of item to process\n     * @see continueQueue\n     */\n    @CallSuper\n    open fun processEntry(entry: Entry) {\n        extensionManager.setInstalling(entry.downloadId)\n    }\n\n    /**\n     * Called before queue continues. Override this to handle when the removed entry is\n     * currently being processed.\n     *\n     * @return true if this entry can be removed from queue.\n     */\n    open fun cancelEntry(entry: Entry): Boolean {\n        return true\n    }\n\n    /**\n     * Tells the queue to continue processing the next entry and updates the install step\n     * of the completed entry ([waitingInstall]) to [ExtensionManager].\n     *\n     * @param resultStep new install step for the processed entry.\n     * @see waitingInstall\n     */\n    fun continueQueue(resultStep: InstallStep) {\n        val completedEntry = waitingInstall.exchange(null)\n        if (completedEntry != null) {\n            extensionManager.updateInstallStep(completedEntry.downloadId, resultStep)\n            checkQueue()\n        }\n    }\n\n    /**\n     * Checks the queue. The provided service will be stopped if the queue is empty.\n     * Will not be run when not ready.\n     *\n     * @see ready\n     */\n    fun checkQueue() {\n        if (!ready) {\n            return\n        }\n        if (queue.isEmpty()) {\n            service.stopSelf()\n            return\n        }\n        val nextEntry = queue.first()\n        if (waitingInstall.compareAndSet(null, nextEntry)) {\n            queue.removeAt(0)\n            processEntry(nextEntry)\n        }\n    }\n\n    /**\n     * Call this method when the provided service is destroyed.\n     */\n    @CallSuper\n    open fun onDestroy() {\n        LocalBroadcastManager.getInstance(service).unregisterReceiver(cancelReceiver)\n        queue.forEach { extensionManager.updateInstallStep(it.downloadId, InstallStep.Error) }\n        queue.clear()\n        waitingInstall.store(null)\n    }\n\n    protected fun getActiveEntry(): Entry? = waitingInstall.load()\n\n    /**\n     * Cancels queue for the provided download ID if exists.\n     *\n     * @param downloadId Download ID as known by [ExtensionManager]\n     */\n    private fun cancelQueue(downloadId: Long) {\n        val waitingInstall = this.waitingInstall.load()\n        val toCancel = queue.find { it.downloadId == downloadId } ?: waitingInstall ?: return\n        if (cancelEntry(toCancel)) {\n            queue.remove(toCancel)\n            if (waitingInstall == toCancel) {\n                // Currently processing removed entry, continue queue\n                this.waitingInstall.store(null)\n                checkQueue()\n            }\n            extensionManager.updateInstallStep(downloadId, InstallStep.Idle)\n        }\n    }\n\n    /**\n     * Install item to queue.\n     *\n     * @param downloadId Download ID as known by [ExtensionManager]\n     * @param uri Uri of APK to install\n     */\n    data class Entry(val downloadId: Long, val uri: Uri)\n\n    init {\n        val filter = IntentFilter(ACTION_CANCEL_QUEUE)\n        LocalBroadcastManager.getInstance(service).registerReceiver(cancelReceiver, filter)\n    }\n\n    companion object {\n        private const val ACTION_CANCEL_QUEUE = \"Installer.action.CANCEL_QUEUE\"\n        private const val EXTRA_DOWNLOAD_ID = \"Installer.extra.DOWNLOAD_ID\"\n\n        /**\n         * Attempts to cancel the installation entry for the provided download ID.\n         *\n         * @param downloadId Download ID as known by [ExtensionManager]\n         */\n        fun cancelInstallQueue(context: Context, downloadId: Long) {\n            val intent = Intent(ACTION_CANCEL_QUEUE)\n            intent.putExtra(EXTRA_DOWNLOAD_ID, downloadId)\n            LocalBroadcastManager.getInstance(context).sendBroadcast(intent)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/installer/PackageInstallerInstaller.kt",
    "content": "package eu.kanade.tachiyomi.extension.installer\n\nimport android.annotation.SuppressLint\nimport android.app.PendingIntent\nimport android.app.Service\nimport android.content.BroadcastReceiver\nimport android.content.Context\nimport android.content.Intent\nimport android.content.IntentFilter\nimport android.content.pm.PackageInstaller\nimport android.os.Build\nimport androidx.core.content.ContextCompat\nimport androidx.core.content.IntentSanitizer\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.util.lang.use\nimport eu.kanade.tachiyomi.util.system.getParcelableExtraCompat\nimport eu.kanade.tachiyomi.util.system.getUriSize\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\n\nclass PackageInstallerInstaller(private val service: Service) : Installer(service) {\n\n    private val packageInstaller = service.packageManager.packageInstaller\n\n    private val packageActionReceiver = object : BroadcastReceiver() {\n        override fun onReceive(context: Context, intent: Intent) {\n            when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, PackageInstaller.STATUS_FAILURE)) {\n                PackageInstaller.STATUS_PENDING_USER_ACTION -> {\n                    val userAction = intent.getParcelableExtraCompat<Intent>(Intent.EXTRA_INTENT)\n                        ?.run {\n                            // Doesn't actually needed as the receiver is actually not exported\n                            // But the warnings can't be suppressed without this\n                            IntentSanitizer.Builder()\n                                .allowAction(this.action!!)\n                                .allowExtra(PackageInstaller.EXTRA_SESSION_ID) { id -> id == activeSession?.second }\n                                .allowAnyComponent()\n                                .allowPackage {\n                                    // There is no way to check the actual installer name so allow all.\n                                    true\n                                }\n                                .build()\n                                .sanitizeByFiltering(this)\n                        }\n                    if (userAction == null) {\n                        logcat(LogPriority.ERROR) { \"Fatal error for $intent\" }\n                        continueQueue(InstallStep.Error)\n                        return\n                    }\n                    userAction.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)\n                    service.startActivity(userAction)\n                }\n                PackageInstaller.STATUS_FAILURE_ABORTED -> {\n                    continueQueue(InstallStep.Idle)\n                }\n                PackageInstaller.STATUS_SUCCESS -> continueQueue(InstallStep.Installed)\n                else -> continueQueue(InstallStep.Error)\n            }\n        }\n    }\n\n    private var activeSession: Pair<Entry, Int>? = null\n\n    // Always ready\n    override var ready = true\n\n    override fun processEntry(entry: Entry) {\n        super.processEntry(entry)\n        activeSession = null\n        try {\n            val installParams = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {\n                installParams.setRequireUserAction(PackageInstaller.SessionParams.USER_ACTION_NOT_REQUIRED)\n            }\n            activeSession = entry to packageInstaller.createSession(installParams)\n            val fileSize = service.getUriSize(entry.uri) ?: throw IllegalStateException()\n            installParams.setSize(fileSize)\n\n            val inputStream = service.contentResolver.openInputStream(entry.uri) ?: throw IllegalStateException()\n            val session = packageInstaller.openSession(activeSession!!.second)\n            val outputStream = session.openWrite(entry.downloadId.toString(), 0, fileSize)\n            session.use {\n                arrayOf(inputStream, outputStream).use {\n                    inputStream.copyTo(outputStream)\n                    session.fsync(outputStream)\n                }\n                service.contentResolver.delete(entry.uri, null, null)\n\n                val intentSender = PendingIntent.getBroadcast(\n                    service,\n                    activeSession!!.second,\n                    Intent(INSTALL_ACTION).setPackage(service.packageName),\n                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) PendingIntent.FLAG_MUTABLE else 0,\n                ).intentSender\n                @SuppressLint(\"RequestInstallPackagesPolicy\")\n                session.commit(intentSender)\n            }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to install extension ${entry.downloadId} ${entry.uri}\" }\n            activeSession?.let { (_, sessionId) ->\n                packageInstaller.abandonSession(sessionId)\n            }\n            continueQueue(InstallStep.Error)\n        }\n    }\n\n    override fun cancelEntry(entry: Entry): Boolean {\n        activeSession?.let { (activeEntry, sessionId) ->\n            if (activeEntry == entry) {\n                packageInstaller.abandonSession(sessionId)\n                return false\n            }\n        }\n        return true\n    }\n\n    override fun onDestroy() {\n        service.unregisterReceiver(packageActionReceiver)\n        super.onDestroy()\n    }\n\n    init {\n        ContextCompat.registerReceiver(\n            service,\n            packageActionReceiver,\n            IntentFilter(INSTALL_ACTION),\n            ContextCompat.RECEIVER_NOT_EXPORTED,\n        )\n    }\n}\n\nprivate const val INSTALL_ACTION = \"PackageInstallerInstaller.INSTALL_ACTION\"\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt",
    "content": "package eu.kanade.tachiyomi.extension.installer\n\nimport android.app.Service\nimport android.content.BroadcastReceiver\nimport android.content.ComponentName\nimport android.content.Context\nimport android.content.Intent\nimport android.content.IntentFilter\nimport android.content.ServiceConnection\nimport android.content.pm.PackageInstaller\nimport android.content.pm.PackageManager\nimport android.os.IBinder\nimport androidx.core.content.ContextCompat\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.cancel\nimport logcat.LogPriority\nimport mihon.app.shizuku.IShellInterface\nimport mihon.app.shizuku.ShellInterface\nimport rikka.shizuku.Shizuku\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\n\nclass ShizukuInstaller(private val service: Service) : Installer(service) {\n\n    private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)\n\n    private var shellInterface: IShellInterface? = null\n\n    private val shizukuArgs by lazy {\n        Shizuku.UserServiceArgs(\n            ComponentName(service, ShellInterface::class.java),\n        )\n            .tag(\"shizuku_service\")\n            .processNameSuffix(\"shizuku_service\")\n            .debuggable(BuildConfig.DEBUG)\n            .daemon(false)\n    }\n\n    private val connection = object : ServiceConnection {\n        override fun onServiceConnected(name: ComponentName?, service: IBinder?) {\n            shellInterface = IShellInterface.Stub.asInterface(service)\n            ready = true\n            checkQueue()\n        }\n\n        override fun onServiceDisconnected(name: ComponentName?) {\n            shellInterface = null\n        }\n    }\n\n    private val receiver = object : BroadcastReceiver() {\n        override fun onReceive(context: Context, intent: Intent) {\n            val status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS, Int.MIN_VALUE)\n            val message = intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE)\n            val packageName = intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME)\n\n            if (status == PackageInstaller.STATUS_SUCCESS) {\n                continueQueue(InstallStep.Installed)\n            } else {\n                logcat(LogPriority.ERROR) { \"Failed to install extension $packageName: $message\" }\n                continueQueue(InstallStep.Error)\n            }\n        }\n    }\n\n    private val shizukuDeadListener = Shizuku.OnBinderDeadListener {\n        logcat { \"Shizuku was killed prematurely\" }\n        service.stopSelf()\n    }\n\n    private val shizukuPermissionListener = object : Shizuku.OnRequestPermissionResultListener {\n        override fun onRequestPermissionResult(requestCode: Int, grantResult: Int) {\n            if (requestCode == SHIZUKU_PERMISSION_REQUEST_CODE) {\n                if (grantResult == PackageManager.PERMISSION_GRANTED) {\n                    checkQueue()\n                    Shizuku.bindUserService(shizukuArgs, connection)\n                } else {\n                    service.stopSelf()\n                }\n                Shizuku.removeRequestPermissionResultListener(this)\n            }\n        }\n    }\n\n    fun initShizuku() {\n        if (ready) return\n        if (!Shizuku.pingBinder()) {\n            logcat(LogPriority.ERROR) { \"Shizuku is not ready to use\" }\n            service.toast(MR.strings.ext_installer_shizuku_stopped)\n            service.stopSelf()\n            return\n        }\n\n        if (Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED) {\n            Shizuku.bindUserService(shizukuArgs, connection)\n        } else {\n            Shizuku.addRequestPermissionResultListener(shizukuPermissionListener)\n            Shizuku.requestPermission(SHIZUKU_PERMISSION_REQUEST_CODE)\n        }\n    }\n\n    override var ready = false\n\n    override fun processEntry(entry: Entry) {\n        super.processEntry(entry)\n        try {\n            service.contentResolver.openAssetFileDescriptor(entry.uri, \"r\").use {\n                shellInterface?.install(it)\n            }\n            service.contentResolver.delete(entry.uri, null, null)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to install extension ${entry.downloadId} ${entry.uri}\" }\n            continueQueue(InstallStep.Error)\n        }\n    }\n\n    // Don't cancel if entry is already started installing\n    override fun cancelEntry(entry: Entry): Boolean = getActiveEntry() != entry\n\n    override fun onDestroy() {\n        Shizuku.removeBinderDeadListener(shizukuDeadListener)\n        Shizuku.removeRequestPermissionResultListener(shizukuPermissionListener)\n        if (Shizuku.pingBinder()) {\n            try {\n                Shizuku.unbindUserService(shizukuArgs, connection, true)\n            } catch (e: Exception) {\n                logcat(LogPriority.WARN, e) { \"Failed to unbind shizuku service\" }\n            }\n        }\n        service.unregisterReceiver(receiver)\n        logcat { \"ShizukuInstaller destroy\" }\n        scope.cancel()\n        super.onDestroy()\n    }\n\n    init {\n        Shizuku.addBinderDeadListener(shizukuDeadListener)\n\n        ContextCompat.registerReceiver(\n            service,\n            receiver,\n            IntentFilter(ACTION_INSTALL_RESULT),\n            ContextCompat.RECEIVER_EXPORTED,\n        )\n\n        initShizuku()\n    }\n}\n\nprivate const val SHIZUKU_PERMISSION_REQUEST_CODE = 14045\nconst val ACTION_INSTALL_RESULT = \"${BuildConfig.APPLICATION_ID}.ACTION_INSTALL_RESULT\"\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/model/Extension.kt",
    "content": "package eu.kanade.tachiyomi.extension.model\n\nimport android.graphics.drawable.Drawable\nimport eu.kanade.tachiyomi.source.Source\nimport tachiyomi.domain.source.model.StubSource\n\nsealed class Extension {\n\n    abstract val name: String\n    abstract val pkgName: String\n    abstract val versionName: String\n    abstract val versionCode: Long\n    abstract val libVersion: Double\n    abstract val lang: String?\n    abstract val isNsfw: Boolean\n\n    data class Installed(\n        override val name: String,\n        override val pkgName: String,\n        override val versionName: String,\n        override val versionCode: Long,\n        override val libVersion: Double,\n        override val lang: String,\n        override val isNsfw: Boolean,\n        val pkgFactory: String?,\n        val sources: List<Source>,\n        val icon: Drawable?,\n        val hasUpdate: Boolean = false,\n        val isObsolete: Boolean = false,\n        val isShared: Boolean,\n        val repoUrl: String? = null,\n    ) : Extension()\n\n    data class Available(\n        override val name: String,\n        override val pkgName: String,\n        override val versionName: String,\n        override val versionCode: Long,\n        override val libVersion: Double,\n        override val lang: String,\n        override val isNsfw: Boolean,\n        val sources: List<Source>,\n        val apkName: String,\n        val iconUrl: String,\n        val repoUrl: String,\n    ) : Extension() {\n\n        data class Source(\n            val id: Long,\n            val lang: String,\n            val name: String,\n            val baseUrl: String,\n        ) {\n            fun toStubSource(): StubSource {\n                return StubSource(\n                    id = this.id,\n                    lang = this.lang,\n                    name = this.name,\n                )\n            }\n        }\n    }\n\n    data class Untrusted(\n        override val name: String,\n        override val pkgName: String,\n        override val versionName: String,\n        override val versionCode: Long,\n        override val libVersion: Double,\n        val signatureHash: String,\n        override val lang: String? = null,\n        override val isNsfw: Boolean = false,\n    ) : Extension()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/model/InstallStep.kt",
    "content": "package eu.kanade.tachiyomi.extension.model\n\nenum class InstallStep {\n    Idle,\n    Pending,\n    Downloading,\n    Installing,\n    Installed,\n    Error,\n    ;\n\n    fun isCompleted(): Boolean {\n        return this == Installed || this == Error || this == Idle\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/model/LoadResult.kt",
    "content": "package eu.kanade.tachiyomi.extension.model\n\nsealed interface LoadResult {\n    data class Success(val extension: Extension.Installed) : LoadResult\n    data class Untrusted(val extension: Extension.Untrusted) : LoadResult\n    data object Error : LoadResult\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallActivity.kt",
    "content": "package eu.kanade.tachiyomi.extension.util\n\nimport android.app.Activity\nimport android.content.Intent\nimport android.os.Bundle\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.util.system.hasMiuiPackageInstaller\nimport eu.kanade.tachiyomi.util.system.toast\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport kotlin.time.Duration.Companion.seconds\n\n/**\n * Activity used to install extensions, because we can only receive the result of the installation\n * with [startActivityForResult], which we need to update the UI.\n */\nclass ExtensionInstallActivity : Activity() {\n\n    // MIUI package installer bug workaround\n    private var ignoreUntil = 0L\n    private var ignoreResult = false\n    private var hasIgnoredResult = false\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n\n        @Suppress(\"DEPRECATION\")\n        val installIntent = Intent(Intent.ACTION_INSTALL_PACKAGE)\n            .setDataAndType(intent.data, intent.type)\n            .putExtra(Intent.EXTRA_RETURN_RESULT, true)\n            .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)\n\n        if (hasMiuiPackageInstaller) {\n            ignoreResult = true\n            ignoreUntil = System.nanoTime() + 1.seconds.inWholeNanoseconds\n        }\n\n        try {\n            startActivityForResult(installIntent, INSTALL_REQUEST_CODE)\n        } catch (error: Exception) {\n            // Either install package can't be found (probably bots) or there's a security exception\n            // with the download manager. Nothing we can workaround.\n            toast(error.message)\n        }\n    }\n\n    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {\n        if (ignoreResult && System.nanoTime() < ignoreUntil) {\n            hasIgnoredResult = true\n            return\n        }\n        if (requestCode == INSTALL_REQUEST_CODE) {\n            checkInstallationResult(resultCode)\n        }\n        finish()\n    }\n\n    override fun onStart() {\n        super.onStart()\n        if (hasIgnoredResult) {\n            checkInstallationResult(RESULT_CANCELED)\n            finish()\n        }\n    }\n\n    override fun onDestroy() {\n        super.onDestroy()\n        intent.data?.let { contentResolver.delete(it, null, null) }\n    }\n\n    private fun checkInstallationResult(resultCode: Int) {\n        val downloadId = intent.extras!!.getLong(ExtensionInstaller.EXTRA_DOWNLOAD_ID)\n        val extensionManager = Injekt.get<ExtensionManager>()\n        val newStep = when (resultCode) {\n            RESULT_OK -> InstallStep.Installed\n            RESULT_CANCELED -> InstallStep.Idle\n            else -> InstallStep.Error\n        }\n        extensionManager.updateInstallStep(downloadId, newStep)\n    }\n}\n\nprivate const val INSTALL_REQUEST_CODE = 500\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver.kt",
    "content": "package eu.kanade.tachiyomi.extension.util\n\nimport android.content.BroadcastReceiver\nimport android.content.Context\nimport android.content.Intent\nimport android.content.IntentFilter\nimport androidx.core.content.ContextCompat\nimport androidx.core.net.toUri\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.LoadResult\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\n\n/**\n * Broadcast receiver that listens for the system's packages installed, updated or removed, and only\n * notifies the given [listener] when the package is an extension.\n *\n * @param listener The listener that should be notified of extension installation events.\n */\ninternal class ExtensionInstallReceiver(private val listener: Listener) : BroadcastReceiver() {\n\n    val scope = CoroutineScope(SupervisorJob())\n\n    fun register(context: Context) {\n        ContextCompat.registerReceiver(context, this, filter, ContextCompat.RECEIVER_NOT_EXPORTED)\n    }\n\n    private val filter = IntentFilter().apply {\n        addAction(Intent.ACTION_PACKAGE_ADDED)\n        addAction(Intent.ACTION_PACKAGE_REPLACED)\n        addAction(Intent.ACTION_PACKAGE_REMOVED)\n        addAction(ACTION_EXTENSION_ADDED)\n        addAction(ACTION_EXTENSION_REPLACED)\n        addAction(ACTION_EXTENSION_REMOVED)\n        addDataScheme(\"package\")\n    }\n\n    /**\n     * Called when one of the events of the [filter] is received. When the package is an extension,\n     * it's loaded in background and it notifies the [listener] when finished.\n     */\n    override fun onReceive(context: Context, intent: Intent?) {\n        if (intent == null) return\n\n        when (intent.action) {\n            Intent.ACTION_PACKAGE_ADDED, ACTION_EXTENSION_ADDED -> {\n                if (isReplacing(intent)) return\n\n                scope.launch {\n                    when (val result = getExtensionFromIntent(context, intent)) {\n                        is LoadResult.Success -> listener.onExtensionInstalled(result.extension)\n                        is LoadResult.Untrusted -> listener.onExtensionUntrusted(result.extension)\n                        else -> {}\n                    }\n                }\n            }\n            Intent.ACTION_PACKAGE_REPLACED, ACTION_EXTENSION_REPLACED -> {\n                scope.launch {\n                    when (val result = getExtensionFromIntent(context, intent)) {\n                        is LoadResult.Success -> listener.onExtensionUpdated(result.extension)\n                        is LoadResult.Untrusted -> listener.onExtensionUntrusted(result.extension)\n                        else -> {}\n                    }\n                }\n            }\n            Intent.ACTION_PACKAGE_REMOVED, ACTION_EXTENSION_REMOVED -> {\n                if (isReplacing(intent)) return\n\n                val pkgName = getPackageNameFromIntent(intent)\n                if (pkgName != null) {\n                    listener.onPackageUninstalled(pkgName)\n                }\n            }\n        }\n    }\n\n    /**\n     * Returns true if this package is performing an update.\n     *\n     * @param intent The intent that triggered the event.\n     */\n    private fun isReplacing(intent: Intent): Boolean {\n        return intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)\n    }\n\n    /**\n     * Returns the extension triggered by the given intent.\n     *\n     * @param context The application context.\n     * @param intent The intent containing the package name of the extension.\n     */\n    private suspend fun getExtensionFromIntent(context: Context, intent: Intent?): LoadResult {\n        val pkgName = getPackageNameFromIntent(intent)\n        if (pkgName == null) {\n            logcat(LogPriority.WARN) { \"Package name not found\" }\n            return LoadResult.Error\n        }\n        return ExtensionLoader.loadExtensionFromPkgName(context, pkgName)\n    }\n\n    /**\n     * Returns the package name of the installed, updated or removed application.\n     */\n    private fun getPackageNameFromIntent(intent: Intent?): String? {\n        return intent?.data?.encodedSchemeSpecificPart ?: return null\n    }\n\n    /**\n     * Listener that receives extension installation events.\n     */\n    interface Listener {\n        fun onExtensionInstalled(extension: Extension.Installed)\n        fun onExtensionUpdated(extension: Extension.Installed)\n        fun onExtensionUntrusted(extension: Extension.Untrusted)\n        fun onPackageUninstalled(pkgName: String)\n    }\n\n    companion object {\n        private const val ACTION_EXTENSION_ADDED = \"${BuildConfig.APPLICATION_ID}.ACTION_EXTENSION_ADDED\"\n        private const val ACTION_EXTENSION_REPLACED = \"${BuildConfig.APPLICATION_ID}.ACTION_EXTENSION_REPLACED\"\n        private const val ACTION_EXTENSION_REMOVED = \"${BuildConfig.APPLICATION_ID}.ACTION_EXTENSION_REMOVED\"\n\n        fun notifyAdded(context: Context, pkgName: String) {\n            notify(context, pkgName, ACTION_EXTENSION_ADDED)\n        }\n\n        fun notifyReplaced(context: Context, pkgName: String) {\n            notify(context, pkgName, ACTION_EXTENSION_REPLACED)\n        }\n\n        fun notifyRemoved(context: Context, pkgName: String) {\n            notify(context, pkgName, ACTION_EXTENSION_REMOVED)\n        }\n\n        private fun notify(context: Context, pkgName: String, action: String) {\n            Intent(action).apply {\n                data = \"package:$pkgName\".toUri()\n                `package` = context.packageName\n                context.sendBroadcast(this)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallService.kt",
    "content": "package eu.kanade.tachiyomi.extension.util\n\nimport android.app.Service\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport android.os.IBinder\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.extension.installer.Installer\nimport eu.kanade.tachiyomi.extension.installer.PackageInstallerInstaller\nimport eu.kanade.tachiyomi.extension.installer.ShizukuInstaller\nimport eu.kanade.tachiyomi.extension.util.ExtensionInstaller.Companion.EXTRA_DOWNLOAD_ID\nimport eu.kanade.tachiyomi.util.system.getSerializableExtraCompat\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\n\nclass ExtensionInstallService : Service() {\n\n    private var installer: Installer? = null\n\n    override fun onCreate() {\n        val notification = notificationBuilder(Notifications.CHANNEL_EXTENSIONS_UPDATE) {\n            setSmallIcon(R.drawable.ic_mihon)\n            setAutoCancel(false)\n            setOngoing(true)\n            setShowWhen(false)\n            setContentTitle(stringResource(MR.strings.ext_install_service_notif))\n            setProgress(100, 100, true)\n        }.build()\n        startForeground(Notifications.ID_EXTENSION_INSTALLER, notification)\n    }\n\n    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {\n        val uri = intent?.data\n        val id = intent?.getLongExtra(EXTRA_DOWNLOAD_ID, -1)?.takeIf { it != -1L }\n        val installerUsed = intent?.getSerializableExtraCompat<BasePreferences.ExtensionInstaller>(EXTRA_INSTALLER)\n        if (uri == null || id == null || installerUsed == null) {\n            stopSelf()\n            return START_NOT_STICKY\n        }\n\n        if (installer == null) {\n            installer = when (installerUsed) {\n                BasePreferences.ExtensionInstaller.PACKAGEINSTALLER -> PackageInstallerInstaller(this)\n                BasePreferences.ExtensionInstaller.SHIZUKU -> ShizukuInstaller(this)\n                else -> {\n                    logcat(LogPriority.ERROR) { \"Not implemented for installer $installerUsed\" }\n                    stopSelf()\n                    return START_NOT_STICKY\n                }\n            }\n        }\n        installer!!.addToQueue(id, uri)\n        return START_NOT_STICKY\n    }\n\n    override fun onDestroy() {\n        installer?.onDestroy()\n        installer = null\n    }\n\n    override fun onBind(i: Intent?): IBinder? = null\n\n    companion object {\n        private const val EXTRA_INSTALLER = \"EXTRA_INSTALLER\"\n\n        fun getIntent(\n            context: Context,\n            downloadId: Long,\n            uri: Uri,\n            installer: BasePreferences.ExtensionInstaller,\n        ): Intent {\n            return Intent(context, ExtensionInstallService::class.java)\n                .setDataAndType(uri, ExtensionInstaller.APK_MIME)\n                .putExtra(EXTRA_DOWNLOAD_ID, downloadId)\n                .putExtra(EXTRA_INSTALLER, installer)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt",
    "content": "package eu.kanade.tachiyomi.extension.util\n\nimport android.content.Context\nimport android.content.Intent\nimport androidx.core.content.ContextCompat\nimport androidx.core.net.toUri\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.extension.installer.Installer\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.util.storage.getUriCompat\nimport eu.kanade.tachiyomi.util.system.isPackageInstalled\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.onCompletion\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.File\n\n/**\n * The installer which installs, updates and uninstalls the extensions.\n *\n * @param context The application context.\n */\ninternal class ExtensionInstaller(\n    private val context: Context,\n) {\n\n    private val scope = CoroutineScope(Dispatchers.IO)\n    private val activeJobs = mutableMapOf<String, Job>()\n    private val activeSteps = mutableMapOf<Long, MutableStateFlow<InstallStep>>()\n    private val extensionInstaller = Injekt.get<BasePreferences>().extensionInstaller\n\n    private val httpClient: OkHttpClient = Injekt.get<NetworkHelper>().client\n\n    /**\n     * Adds the given extension to the downloads queue and returns an observable containing its\n     * step in the installation process.\n     *\n     * @param url The url of the apk.\n     * @param extension The extension to install.\n     */\n    fun downloadAndInstall(url: String, extension: Extension): Flow<InstallStep> {\n        val downloadId = extension.pkgName.hashCode().toLong()\n        cancelInstall(extension.pkgName)\n\n        val step = MutableStateFlow(InstallStep.Pending)\n        activeSteps[downloadId] = step\n\n        val job = scope.launch {\n            val tmpFile = File(context.cacheDir, \"extension_${extension.pkgName}.apk\")\n            try {\n                step.value = InstallStep.Downloading\n                val request = Request.Builder().url(url).build()\n                val response = httpClient.newCall(request).execute()\n\n                if (!response.isSuccessful) {\n                    throw Exception(\"Failed to download extension\")\n                }\n                response.body.byteStream().use { input ->\n                    tmpFile.outputStream().use { output ->\n                        input.copyTo(output)\n                    }\n                }\n\n                step.value = InstallStep.Installing\n                installApk(downloadId, tmpFile)\n            } catch (e: Exception) {\n                if (e is InterruptedException) {\n                    // Canceled\n                } else {\n                    logcat(LogPriority.ERROR, e)\n                    step.value = InstallStep.Error\n                }\n            }\n        }\n\n        activeJobs[extension.pkgName] = job\n\n        return step.asStateFlow()\n            .onCompletion {\n                activeJobs.remove(extension.pkgName)\n                activeSteps.remove(downloadId)\n                job.cancel()\n            }\n    }\n\n    /**\n     * Starts an intent to install the extension at the given uri.\n     *\n     * @param tempFile The file of the extension to install. Delete after use.\n     */\n    private fun installApk(downloadId: Long, tempFile: File) {\n        when (val installer = extensionInstaller.get()) {\n            BasePreferences.ExtensionInstaller.LEGACY -> {\n                val intent = Intent(context, ExtensionInstallActivity::class.java)\n                    .setDataAndType(tempFile.getUriCompat(context), APK_MIME)\n                    .putExtra(EXTRA_DOWNLOAD_ID, downloadId)\n                    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION)\n\n                context.startActivity(intent)\n            }\n            BasePreferences.ExtensionInstaller.PRIVATE -> {\n                try {\n                    if (ExtensionLoader.installPrivateExtensionFile(context, tempFile)) {\n                        updateInstallStep(downloadId, InstallStep.Installed)\n                    } else {\n                        updateInstallStep(downloadId, InstallStep.Error)\n                    }\n                } catch (e: Exception) {\n                    logcat(LogPriority.ERROR, e) { \"Failed to read downloaded extension file.\" }\n                    updateInstallStep(downloadId, InstallStep.Error)\n                }\n\n                tempFile.delete()\n            }\n            else -> {\n                val intent = ExtensionInstallService.getIntent(\n                    context,\n                    downloadId,\n                    tempFile.getUriCompat(context),\n                    installer,\n                )\n                ContextCompat.startForegroundService(context, intent)\n            }\n        }\n    }\n\n    /**\n     * Cancels extension install and remove from download manager and installer.\n     */\n    fun cancelInstall(pkgName: String) {\n        activeJobs.remove(pkgName)?.cancel()\n        Installer.cancelInstallQueue(context, pkgName.hashCode().toLong())\n    }\n\n    /**\n     * Starts an intent to uninstall the extension by the given package name.\n     *\n     * @param pkgName The package name of the extension to uninstall\n     */\n    fun uninstallApk(pkgName: String) {\n        if (context.isPackageInstalled(pkgName)) {\n            @Suppress(\"DEPRECATION\")\n            val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE, \"package:$pkgName\".toUri())\n                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)\n            context.startActivity(intent)\n        } else {\n            ExtensionLoader.uninstallPrivateExtension(context, pkgName)\n            ExtensionInstallReceiver.notifyRemoved(context, pkgName)\n        }\n    }\n\n    /**\n     * Sets the step of the installation of an extension.\n     *\n     * @param downloadId The id of the download.\n     * @param step New install step.\n     */\n    fun updateInstallStep(downloadId: Long, step: InstallStep) {\n        activeSteps[downloadId]?.let { it.value = step }\n    }\n\n    companion object {\n        const val APK_MIME = \"application/vnd.android.package-archive\"\n        const val EXTRA_DOWNLOAD_ID = \"ExtensionInstaller.extra.DOWNLOAD_ID\"\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt",
    "content": "package eu.kanade.tachiyomi.extension.util\n\nimport android.content.Context\nimport android.content.pm.ApplicationInfo\nimport android.content.pm.PackageInfo\nimport android.content.pm.PackageManager\nimport android.os.Build\nimport androidx.core.content.pm.PackageInfoCompat\nimport eu.kanade.domain.extension.interactor.TrustExtension\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.LoadResult\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.SourceFactory\nimport eu.kanade.tachiyomi.util.lang.Hash\nimport eu.kanade.tachiyomi.util.storage.copyAndSetReadOnlyTo\nimport eu.kanade.tachiyomi.util.system.ChildFirstPathClassLoader\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.runBlocking\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.injectLazy\nimport java.io.File\n\n/**\n * Class that handles the loading of the extensions. Supports two kinds of extensions:\n *\n * 1. Shared extension: This extension is installed to the system with package\n * installer, so other variants of Tachiyomi and its forks can also use this extension.\n *\n * 2. Private extension: This extension is put inside private data directory of the\n * running app, so this extension can only be used by the running app and not shared\n * with other apps.\n *\n * When both kinds of extensions are installed with a same package name, shared\n * extension will be used unless the version codes are different. In that case the\n * one with higher version code will be used.\n */\ninternal object ExtensionLoader {\n\n    private val preferences: SourcePreferences by injectLazy()\n    private val trustExtension: TrustExtension by injectLazy()\n    private val loadNsfwSource by lazy {\n        preferences.showNsfwSource.get()\n    }\n\n    private const val EXTENSION_FEATURE = \"tachiyomi.extension\"\n    private const val METADATA_SOURCE_CLASS = \"tachiyomi.extension.class\"\n    private const val METADATA_SOURCE_FACTORY = \"tachiyomi.extension.factory\"\n    private const val METADATA_NSFW = \"tachiyomi.extension.nsfw\"\n    const val LIB_VERSION_MIN = 1.4\n    const val LIB_VERSION_MAX = 1.5\n\n    @Suppress(\"DEPRECATION\")\n    private val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or\n        PackageManager.GET_META_DATA or\n        PackageManager.GET_SIGNATURES or\n        (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) PackageManager.GET_SIGNING_CERTIFICATES else 0)\n\n    private const val PRIVATE_EXTENSION_EXTENSION = \"ext\"\n\n    private fun getPrivateExtensionDir(context: Context) = File(context.filesDir, \"exts\")\n\n    fun installPrivateExtensionFile(context: Context, file: File): Boolean {\n        val extension = context.packageManager.getPackageArchiveInfo(file.absolutePath, PACKAGE_FLAGS)\n            ?.takeIf { isPackageAnExtension(it) } ?: return false\n        val currentExtension = getExtensionPackageInfoFromPkgName(context, extension.packageName)\n\n        if (currentExtension != null) {\n            if (PackageInfoCompat.getLongVersionCode(extension) <\n                PackageInfoCompat.getLongVersionCode(currentExtension)\n            ) {\n                logcat(LogPriority.ERROR) { \"Installed extension version is higher. Downgrading is not allowed.\" }\n                return false\n            }\n\n            val extensionSignatures = getSignatures(extension)\n            if (extensionSignatures.isNullOrEmpty()) {\n                logcat(LogPriority.ERROR) { \"Extension to be installed is not signed.\" }\n                return false\n            }\n\n            if (!extensionSignatures.containsAll(getSignatures(currentExtension)!!)) {\n                logcat(LogPriority.ERROR) { \"Installed extension signature is not matched.\" }\n                return false\n            }\n        }\n\n        val target = File(getPrivateExtensionDir(context), \"${extension.packageName}.$PRIVATE_EXTENSION_EXTENSION\")\n        return try {\n            target.delete()\n            file.copyAndSetReadOnlyTo(target, overwrite = true)\n            if (currentExtension != null) {\n                ExtensionInstallReceiver.notifyReplaced(context, extension.packageName)\n            } else {\n                ExtensionInstallReceiver.notifyAdded(context, extension.packageName)\n            }\n            true\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Failed to copy extension file.\" }\n            target.delete()\n            false\n        }\n    }\n\n    fun uninstallPrivateExtension(context: Context, pkgName: String) {\n        File(getPrivateExtensionDir(context), \"$pkgName.$PRIVATE_EXTENSION_EXTENSION\").delete()\n    }\n\n    /**\n     * Return a list of all the available extensions initialized concurrently.\n     *\n     * @param context The application context.\n     */\n    fun loadExtensions(context: Context): List<LoadResult> {\n        val pkgManager = context.packageManager\n\n        val installedPkgs = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n            pkgManager.getInstalledPackages(PackageManager.PackageInfoFlags.of(PACKAGE_FLAGS.toLong()))\n        } else {\n            pkgManager.getInstalledPackages(PACKAGE_FLAGS)\n        }\n\n        val sharedExtPkgs = installedPkgs\n            .asSequence()\n            .filter { isPackageAnExtension(it) }\n            .map { ExtensionInfo(packageInfo = it, isShared = true) }\n\n        val privateExtPkgs = getPrivateExtensionDir(context)\n            .listFiles()\n            ?.asSequence()\n            ?.filter { it.isFile && it.extension == PRIVATE_EXTENSION_EXTENSION }\n            ?.mapNotNull {\n                // Just in case, since Android 14+ requires them to be read-only\n                if (it.canWrite()) {\n                    it.setReadOnly()\n                }\n\n                val path = it.absolutePath\n                pkgManager.getPackageArchiveInfo(path, PACKAGE_FLAGS)\n                    ?.apply { applicationInfo!!.fixBasePaths(path) }\n            }\n            ?.filter { isPackageAnExtension(it) }\n            ?.map { ExtensionInfo(packageInfo = it, isShared = false) }\n            ?: emptySequence()\n\n        val extPkgs = (sharedExtPkgs + privateExtPkgs)\n            // Remove duplicates. Shared takes priority than private by default\n            .distinctBy { it.packageInfo.packageName }\n            // Compare version number\n            .mapNotNull { sharedPkg ->\n                val privatePkg = privateExtPkgs\n                    .singleOrNull { it.packageInfo.packageName == sharedPkg.packageInfo.packageName }\n                selectExtensionPackage(sharedPkg, privatePkg)\n            }\n            .toList()\n\n        if (extPkgs.isEmpty()) return emptyList()\n\n        // Load each extension concurrently and wait for completion\n        return runBlocking {\n            val deferred = extPkgs.map {\n                async { loadExtension(context, it) }\n            }\n            deferred.awaitAll()\n        }\n    }\n\n    /**\n     * Attempts to load an extension from the given package name. It checks if the extension\n     * contains the required feature flag before trying to load it.\n     */\n    suspend fun loadExtensionFromPkgName(context: Context, pkgName: String): LoadResult {\n        val extensionPackage = getExtensionInfoFromPkgName(context, pkgName)\n        if (extensionPackage == null) {\n            logcat(LogPriority.ERROR) { \"Extension package is not found ($pkgName)\" }\n            return LoadResult.Error\n        }\n        return loadExtension(context, extensionPackage)\n    }\n\n    fun getExtensionPackageInfoFromPkgName(context: Context, pkgName: String): PackageInfo? {\n        return getExtensionInfoFromPkgName(context, pkgName)?.packageInfo\n    }\n\n    private fun getExtensionInfoFromPkgName(context: Context, pkgName: String): ExtensionInfo? {\n        val privateExtensionFile = File(getPrivateExtensionDir(context), \"$pkgName.$PRIVATE_EXTENSION_EXTENSION\")\n        val privatePkg = if (privateExtensionFile.isFile) {\n            context.packageManager.getPackageArchiveInfo(privateExtensionFile.absolutePath, PACKAGE_FLAGS)\n                ?.takeIf { isPackageAnExtension(it) }\n                ?.let {\n                    it.applicationInfo!!.fixBasePaths(privateExtensionFile.absolutePath)\n                    ExtensionInfo(\n                        packageInfo = it,\n                        isShared = false,\n                    )\n                }\n        } else {\n            null\n        }\n\n        val sharedPkg = try {\n            context.packageManager.getPackageInfo(pkgName, PACKAGE_FLAGS)\n                .takeIf { isPackageAnExtension(it) }\n                ?.let {\n                    ExtensionInfo(\n                        packageInfo = it,\n                        isShared = true,\n                    )\n                }\n        } catch (error: PackageManager.NameNotFoundException) {\n            null\n        }\n\n        return selectExtensionPackage(sharedPkg, privatePkg)\n    }\n\n    /**\n     * Loads an extension\n     *\n     * @param context The application context.\n     * @param extensionInfo The extension to load.\n     */\n    private suspend fun loadExtension(context: Context, extensionInfo: ExtensionInfo): LoadResult {\n        val pkgManager = context.packageManager\n        val pkgInfo = extensionInfo.packageInfo\n        val appInfo = pkgInfo.applicationInfo!!\n        val pkgName = pkgInfo.packageName\n\n        val extName = pkgManager.getApplicationLabel(appInfo).toString().substringAfter(\"Tachiyomi: \")\n        val versionName = pkgInfo.versionName\n        val versionCode = PackageInfoCompat.getLongVersionCode(pkgInfo)\n\n        if (versionName.isNullOrEmpty()) {\n            logcat(LogPriority.WARN) { \"Missing versionName for extension $extName\" }\n            return LoadResult.Error\n        }\n\n        // Validate lib version\n        val libVersion = versionName.substringBeforeLast('.').toDoubleOrNull()\n        if (libVersion == null || libVersion < LIB_VERSION_MIN || libVersion > LIB_VERSION_MAX) {\n            logcat(LogPriority.WARN) {\n                \"Lib version is $libVersion, while only versions \" +\n                    \"$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed\"\n            }\n            return LoadResult.Error\n        }\n\n        val signatures = getSignatures(pkgInfo)\n        if (signatures.isNullOrEmpty()) {\n            logcat(LogPriority.WARN) { \"Package $pkgName isn't signed\" }\n            return LoadResult.Error\n        } else if (!trustExtension.isTrusted(pkgInfo, signatures)) {\n            val extension = Extension.Untrusted(\n                extName,\n                pkgName,\n                versionName,\n                versionCode,\n                libVersion,\n                signatures.last(),\n            )\n            logcat(LogPriority.WARN) { \"Extension $pkgName isn't trusted\" }\n            return LoadResult.Untrusted(extension)\n        }\n\n        val isNsfw = appInfo.metaData.getInt(METADATA_NSFW) == 1\n        if (!loadNsfwSource && isNsfw) {\n            logcat(LogPriority.WARN) { \"NSFW extension $pkgName not allowed\" }\n            return LoadResult.Error\n        }\n\n        val classLoader = try {\n            ChildFirstPathClassLoader(appInfo.sourceDir, null, context.classLoader)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e) { \"Extension load error: $extName ($pkgName)\" }\n            return LoadResult.Error\n        }\n\n        val sources = appInfo.metaData.getString(METADATA_SOURCE_CLASS)!!\n            .split(\";\")\n            .map {\n                val sourceClass = it.trim()\n                if (sourceClass.startsWith(\".\")) {\n                    pkgInfo.packageName + sourceClass\n                } else {\n                    sourceClass\n                }\n            }\n            .flatMap {\n                try {\n                    when (val obj = Class.forName(it, false, classLoader).getDeclaredConstructor().newInstance()) {\n                        is Source -> listOf(obj)\n                        is SourceFactory -> obj.createSources()\n                        else -> throw Exception(\"Unknown source class type: ${obj.javaClass}\")\n                    }\n                } catch (e: Throwable) {\n                    logcat(LogPriority.ERROR, e) { \"Extension load error: $extName ($it)\" }\n                    return LoadResult.Error\n                }\n            }\n\n        val langs = sources.filterIsInstance<CatalogueSource>()\n            .map { it.lang }\n            .toSet()\n        val lang = when (langs.size) {\n            0 -> \"\"\n            1 -> langs.first()\n            else -> \"all\"\n        }\n\n        val extension = Extension.Installed(\n            name = extName,\n            pkgName = pkgName,\n            versionName = versionName,\n            versionCode = versionCode,\n            libVersion = libVersion,\n            lang = lang,\n            isNsfw = isNsfw,\n            sources = sources,\n            pkgFactory = appInfo.metaData.getString(METADATA_SOURCE_FACTORY),\n            icon = appInfo.loadIcon(pkgManager),\n            isShared = extensionInfo.isShared,\n        )\n        return LoadResult.Success(extension)\n    }\n\n    /**\n     * Choose which extension package to use based on version code\n     *\n     * @param shared extension installed to system\n     * @param private extension installed to data directory\n     */\n    private fun selectExtensionPackage(shared: ExtensionInfo?, private: ExtensionInfo?): ExtensionInfo? {\n        when {\n            private == null && shared != null -> return shared\n            shared == null && private != null -> return private\n            shared == null && private == null -> return null\n        }\n\n        return if (PackageInfoCompat.getLongVersionCode(shared!!.packageInfo) >=\n            PackageInfoCompat.getLongVersionCode(private!!.packageInfo)\n        ) {\n            shared\n        } else {\n            private\n        }\n    }\n\n    /**\n     * Returns true if the given package is an extension.\n     *\n     * @param pkgInfo The package info of the application.\n     */\n    private fun isPackageAnExtension(pkgInfo: PackageInfo): Boolean {\n        return pkgInfo.reqFeatures.orEmpty().any { it.name == EXTENSION_FEATURE }\n    }\n\n    /**\n     * Returns the signatures of the package or null if it's not signed.\n     *\n     * @param pkgInfo The package info of the application.\n     * @return List SHA256 digest of the signatures\n     */\n    private fun getSignatures(pkgInfo: PackageInfo): List<String>? {\n        return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {\n            val signingInfo = pkgInfo.signingInfo!!\n            if (signingInfo.hasMultipleSigners()) {\n                signingInfo.apkContentsSigners\n            } else {\n                signingInfo.signingCertificateHistory\n            }\n        } else {\n            @Suppress(\"DEPRECATION\")\n            pkgInfo.signatures\n        }\n            ?.map { Hash.sha256(it.toByteArray()) }\n            ?.toList()\n    }\n\n    /**\n     * On Android 13+ the ApplicationInfo generated by getPackageArchiveInfo doesn't\n     * have sourceDir which breaks assets loading (used for getting icon here).\n     */\n    private fun ApplicationInfo.fixBasePaths(apkPath: String) {\n        if (sourceDir == null) {\n            sourceDir = apkPath\n        }\n        if (publicSourceDir == null) {\n            publicSourceDir = apkPath\n        }\n    }\n\n    private data class ExtensionInfo(\n        val packageInfo: PackageInfo,\n        val isShared: Boolean,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.StateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.runBlocking\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.domain.source.repository.StubSourceRepository\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.source.local.LocalSource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\nimport java.util.concurrent.ConcurrentHashMap\n\nclass AndroidSourceManager(\n    private val context: Context,\n    private val extensionManager: ExtensionManager,\n    private val sourceRepository: StubSourceRepository,\n) : SourceManager {\n\n    private val _isInitialized = MutableStateFlow(false)\n    override val isInitialized: StateFlow<Boolean> = _isInitialized.asStateFlow()\n\n    private val downloadManager: DownloadManager by injectLazy()\n\n    private val scope = CoroutineScope(Job() + Dispatchers.IO)\n\n    private val sourcesMapFlow = MutableStateFlow(ConcurrentHashMap<Long, Source>())\n\n    private val stubSourcesMap = ConcurrentHashMap<Long, StubSource>()\n\n    override val catalogueSources: Flow<List<CatalogueSource>> = sourcesMapFlow.map {\n        it.values.filterIsInstance<CatalogueSource>()\n    }\n\n    init {\n        scope.launch {\n            extensionManager.installedExtensionsFlow\n                .collectLatest { extensions ->\n                    val mutableMap = ConcurrentHashMap<Long, Source>(\n                        mapOf(\n                            LocalSource.ID to LocalSource(\n                                context,\n                                Injekt.get(),\n                                Injekt.get(),\n                            ),\n                        ),\n                    )\n                    extensions.forEach { extension ->\n                        extension.sources.forEach {\n                            mutableMap[it.id] = it\n                            registerStubSource(StubSource.from(it))\n                        }\n                    }\n                    sourcesMapFlow.value = mutableMap\n                    _isInitialized.value = true\n                }\n        }\n\n        scope.launch {\n            sourceRepository.subscribeAll()\n                .collectLatest { sources ->\n                    val mutableMap = stubSourcesMap.toMutableMap()\n                    sources.forEach {\n                        mutableMap[it.id] = it\n                    }\n                }\n        }\n    }\n\n    override fun get(sourceKey: Long): Source? {\n        return sourcesMapFlow.value[sourceKey]\n    }\n\n    override fun getOrStub(sourceKey: Long): Source {\n        return sourcesMapFlow.value[sourceKey] ?: stubSourcesMap.getOrPut(sourceKey) {\n            runBlocking { createStubSource(sourceKey) }\n        }\n    }\n\n    override fun getOnlineSources() = sourcesMapFlow.value.values.filterIsInstance<HttpSource>()\n\n    override fun getCatalogueSources() = sourcesMapFlow.value.values.filterIsInstance<CatalogueSource>()\n\n    override fun getStubSources(): List<StubSource> {\n        val onlineSourceIds = getOnlineSources().map { it.id }\n        return stubSourcesMap.values.filterNot { it.id in onlineSourceIds }\n    }\n\n    private fun registerStubSource(source: StubSource) {\n        scope.launch {\n            val dbSource = sourceRepository.getStubSource(source.id)\n            if (dbSource == source) return@launch\n            sourceRepository.upsertStubSource(source.id, source.lang, source.name)\n            if (dbSource != null) {\n                downloadManager.renameSource(dbSource, source)\n            }\n        }\n    }\n\n    private suspend fun createStubSource(id: Long): StubSource {\n        sourceRepository.getStubSource(id)?.let {\n            return it\n        }\n        extensionManager.getSourceData(id)?.let {\n            registerStubSource(it)\n            return it\n        }\n        return StubSource(id = id, lang = \"\", name = \"\")\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nfun Source.getNameForMangaInfo(): String {\n    val preferences = Injekt.get<SourcePreferences>()\n    val enabledLanguages = preferences.enabledLanguages.get()\n        .filterNot { it in listOf(\"all\", \"other\") }\n    val hasOneActiveLanguages = enabledLanguages.size == 1\n    val isInEnabledLanguages = lang in enabledLanguages\n    return when {\n        // For edge cases where user disables a source they got manga of in their library.\n        hasOneActiveLanguages && !isInEnabledLanguages -> toString()\n        // Hide the language tag when only one language is used.\n        hasOneActiveLanguages && isInEnabledLanguages -> name\n        else -> toString()\n    }\n}\n\nfun Source.isLocalOrStub(): Boolean = isLocal() || this is StubSource\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.base.activity\n\nimport android.content.Context\nimport android.os.Bundle\nimport androidx.appcompat.app.AppCompatActivity\nimport eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate\nimport eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegateImpl\nimport eu.kanade.tachiyomi.ui.base.delegate.ThemingDelegate\nimport eu.kanade.tachiyomi.ui.base.delegate.ThemingDelegateImpl\nimport eu.kanade.tachiyomi.util.system.prepareTabletUiContext\n\nopen class BaseActivity :\n    AppCompatActivity(),\n    SecureActivityDelegate by SecureActivityDelegateImpl(),\n    ThemingDelegate by ThemingDelegateImpl() {\n\n    override fun attachBaseContext(newBase: Context) {\n        super.attachBaseContext(newBase.prepareTabletUiContext())\n    }\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        applyAppTheme(this)\n        super.onCreate(savedInstanceState)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt",
    "content": "package eu.kanade.tachiyomi.ui.base.delegate\n\nimport android.app.Activity\nimport android.content.Intent\nimport android.os.Build\nimport androidx.appcompat.app.AppCompatActivity\nimport androidx.lifecycle.DefaultLifecycleObserver\nimport androidx.lifecycle.LifecycleOwner\nimport androidx.lifecycle.lifecycleScope\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.ui.security.UnlockActivity\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported\nimport eu.kanade.tachiyomi.util.view.setSecureScreen\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\n\ninterface SecureActivityDelegate {\n    fun registerSecureActivity(activity: AppCompatActivity)\n\n    companion object {\n        /**\n         * Set to true if we need the first activity to authenticate.\n         *\n         * Always require unlock if app is killed.\n         */\n        var requireUnlock = true\n\n        fun onApplicationStopped() {\n            val preferences = Injekt.get<SecurityPreferences>()\n            if (!preferences.useAuthenticator.get()) return\n\n            if (!AuthenticatorUtil.isAuthenticating) {\n                // Return if app is closed in locked state\n                if (requireUnlock) return\n                // Save app close time if lock is delayed\n                if (preferences.lockAppAfter.get() > 0) {\n                    preferences.lastAppClosed.set(System.currentTimeMillis())\n                }\n            }\n        }\n\n        /**\n         * Checks if unlock is needed when app comes foreground.\n         */\n        fun onApplicationStart() {\n            val preferences = Injekt.get<SecurityPreferences>()\n            if (!preferences.useAuthenticator.get()) return\n\n            val lastClosedPref = preferences.lastAppClosed\n\n            // `requireUnlock` can be true on process start or if app was closed in locked state\n            if (!AuthenticatorUtil.isAuthenticating && !requireUnlock) {\n                requireUnlock = when (val lockDelay = preferences.lockAppAfter.get()) {\n                    -1 -> false // Never\n                    0 -> true // Always\n                    else -> lastClosedPref.get() + lockDelay * 60_000 <= System.currentTimeMillis()\n                }\n            }\n\n            lastClosedPref.delete()\n        }\n\n        fun unlock() {\n            requireUnlock = false\n        }\n    }\n}\n\nclass SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObserver {\n\n    private lateinit var activity: AppCompatActivity\n\n    private val preferences: BasePreferences by injectLazy()\n    private val securityPreferences: SecurityPreferences by injectLazy()\n\n    override fun registerSecureActivity(activity: AppCompatActivity) {\n        this.activity = activity\n        activity.lifecycle.addObserver(this)\n    }\n\n    override fun onCreate(owner: LifecycleOwner) {\n        setSecureScreen()\n    }\n\n    override fun onResume(owner: LifecycleOwner) {\n        setAppLock()\n    }\n\n    private fun setSecureScreen() {\n        val secureScreenFlow = securityPreferences.secureScreen.changes()\n        val incognitoModeFlow = preferences.incognitoMode.changes()\n        combine(secureScreenFlow, incognitoModeFlow) { secureScreen, incognitoMode ->\n            secureScreen == SecurityPreferences.SecureScreenMode.ALWAYS ||\n                (secureScreen == SecurityPreferences.SecureScreenMode.INCOGNITO && incognitoMode)\n        }\n            .onEach(activity.window::setSecureScreen)\n            .launchIn(activity.lifecycleScope)\n    }\n\n    private fun setAppLock() {\n        if (!securityPreferences.useAuthenticator.get()) return\n        if (activity.isAuthenticationSupported()) {\n            if (!SecureActivityDelegate.requireUnlock) return\n            activity.startActivity(Intent(activity, UnlockActivity::class.java))\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n                activity.overrideActivityTransition(Activity.OVERRIDE_TRANSITION_OPEN, 0, 0)\n            } else {\n                @Suppress(\"DEPRECATION\")\n                activity.overridePendingTransition(0, 0)\n            }\n        } else {\n            securityPreferences.useAuthenticator.set(false)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate.kt",
    "content": "package eu.kanade.tachiyomi.ui.base.delegate\n\nimport android.app.Activity\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.AppTheme\nimport eu.kanade.tachiyomi.R\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\ninterface ThemingDelegate {\n    fun applyAppTheme(activity: Activity)\n\n    companion object {\n        fun getThemeResIds(appTheme: AppTheme, isAmoled: Boolean): List<Int> {\n            return buildList(2) {\n                add(themeResources.getOrDefault(appTheme, R.style.Theme_Tachiyomi))\n                if (isAmoled) add(R.style.ThemeOverlay_Tachiyomi_Amoled)\n            }\n        }\n    }\n}\n\nclass ThemingDelegateImpl : ThemingDelegate {\n    override fun applyAppTheme(activity: Activity) {\n        val uiPreferences = Injekt.get<UiPreferences>()\n        ThemingDelegate.getThemeResIds(uiPreferences.appTheme.get(), uiPreferences.themeDarkAmoled.get())\n            .forEach(activity::setTheme)\n    }\n}\n\nprivate val themeResources: Map<AppTheme, Int> = mapOf(\n    AppTheme.MONET to R.style.Theme_Tachiyomi_Monet,\n    AppTheme.CATPPUCCIN to R.style.Theme_Tachiyomi_Catppuccin,\n    AppTheme.GREEN_APPLE to R.style.Theme_Tachiyomi_GreenApple,\n    AppTheme.LAVENDER to R.style.Theme_Tachiyomi_Lavender,\n    AppTheme.MIDNIGHT_DUSK to R.style.Theme_Tachiyomi_MidnightDusk,\n    AppTheme.MONOCHROME to R.style.Theme_Tachiyomi_Monochrome,\n    AppTheme.NORD to R.style.Theme_Tachiyomi_Nord,\n    AppTheme.STRAWBERRY_DAIQUIRI to R.style.Theme_Tachiyomi_StrawberryDaiquiri,\n    AppTheme.TAKO to R.style.Theme_Tachiyomi_Tako,\n    AppTheme.TEALTURQUOISE to R.style.Theme_Tachiyomi_TealTurquoise,\n    AppTheme.YINYANG to R.style.Theme_Tachiyomi_YinYang,\n    AppTheme.YOTSUBA to R.style.Theme_Tachiyomi_Yotsuba,\n    AppTheme.TIDAL_WAVE to R.style.Theme_Tachiyomi_TidalWave,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse\n\nimport androidx.compose.animation.graphics.res.animatedVectorResource\nimport androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter\nimport androidx.compose.animation.graphics.vector.AnimatedImageVector\nimport androidx.compose.foundation.pager.rememberPagerState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.tab.LocalTabNavigator\nimport cafe.adriel.voyager.navigator.tab.TabOptions\nimport eu.kanade.presentation.components.TabbedScreen\nimport eu.kanade.presentation.util.Tab\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.browse.extension.ExtensionsScreenModel\nimport eu.kanade.tachiyomi.ui.browse.extension.extensionsTab\nimport eu.kanade.tachiyomi.ui.browse.migration.sources.migrateSourceTab\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen\nimport eu.kanade.tachiyomi.ui.browse.source.sourcesTab\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.channels.BufferOverflow\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\ndata object BrowseTab : Tab {\n\n    override val options: TabOptions\n        @Composable\n        get() {\n            val isSelected = LocalTabNavigator.current.current.key == key\n            val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_browse_enter)\n            return TabOptions(\n                index = 3u,\n                title = stringResource(MR.strings.browse),\n                icon = rememberAnimatedVectorPainter(image, isSelected),\n            )\n        }\n\n    override suspend fun onReselect(navigator: Navigator) {\n        navigator.push(GlobalSearchScreen())\n    }\n\n    private val switchToExtensionTabChannel = Channel<Unit>(1, BufferOverflow.DROP_OLDEST)\n\n    fun showExtension() {\n        switchToExtensionTabChannel.trySend(Unit)\n    }\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n\n        // Hoisted for extensions tab's search bar\n        val extensionsScreenModel = rememberScreenModel { ExtensionsScreenModel() }\n        val extensionsState by extensionsScreenModel.state.collectAsState()\n\n        val tabs = persistentListOf(\n            sourcesTab(),\n            extensionsTab(extensionsScreenModel),\n            migrateSourceTab(),\n        )\n\n        val state = rememberPagerState { tabs.size }\n\n        TabbedScreen(\n            titleRes = MR.strings.browse,\n            tabs = tabs,\n            state = state,\n            searchQuery = extensionsState.searchQuery,\n            onChangeSearchQuery = extensionsScreenModel::search,\n        )\n        LaunchedEffect(Unit) {\n            switchToExtensionTabChannel.receiveAsFlow()\n                .collectLatest { state.scrollToPage(1) }\n        }\n\n        LaunchedEffect(Unit) {\n            (context as? MainActivity)?.ready = true\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionFilterScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.ExtensionFilterScreen\nimport eu.kanade.presentation.util.Screen\nimport kotlinx.coroutines.flow.collectLatest\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass ExtensionFilterScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { ExtensionFilterScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        if (state is ExtensionFilterState.Loading) {\n            LoadingScreen()\n            return\n        }\n\n        val successState = state as ExtensionFilterState.Success\n\n        ExtensionFilterScreen(\n            navigateUp = navigator::pop,\n            state = successState,\n            onClickToggle = screenModel::toggle,\n        )\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest {\n                when (it) {\n                    ExtensionFilterEvent.FailedFetchingLanguages -> {\n                        context.stringResource(MR.strings.internal_error)\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionFilterScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.extension.interactor.GetExtensionLanguages\nimport eu.kanade.domain.source.interactor.ToggleLanguage\nimport eu.kanade.domain.source.service.SourcePreferences\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.ImmutableSet\nimport kotlinx.collections.immutable.persistentSetOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.collections.immutable.toImmutableSet\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ExtensionFilterScreenModel(\n    private val preferences: SourcePreferences = Injekt.get(),\n    private val getExtensionLanguages: GetExtensionLanguages = Injekt.get(),\n    private val toggleLanguage: ToggleLanguage = Injekt.get(),\n) : StateScreenModel<ExtensionFilterState>(ExtensionFilterState.Loading) {\n\n    private val _events: Channel<ExtensionFilterEvent> = Channel()\n    val events: Flow<ExtensionFilterEvent> = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launch {\n            combine(\n                getExtensionLanguages.subscribe(),\n                preferences.enabledLanguages.changes(),\n            ) { a, b -> a to b }\n                .catch { throwable ->\n                    logcat(LogPriority.ERROR, throwable)\n                    _events.send(ExtensionFilterEvent.FailedFetchingLanguages)\n                }\n                .collectLatest { (extensionLanguages, enabledLanguages) ->\n                    mutableState.update {\n                        ExtensionFilterState.Success(\n                            languages = extensionLanguages.toImmutableList(),\n                            enabledLanguages = enabledLanguages.toImmutableSet(),\n                        )\n                    }\n                }\n        }\n    }\n\n    fun toggle(language: String) {\n        toggleLanguage.await(language)\n    }\n}\n\nsealed interface ExtensionFilterEvent {\n    data object FailedFetchingLanguages : ExtensionFilterEvent\n}\n\nsealed interface ExtensionFilterState {\n\n    @Immutable\n    data object Loading : ExtensionFilterState\n\n    @Immutable\n    data class Success(\n        val languages: ImmutableList<String>,\n        val enabledLanguages: ImmutableSet<String> = persistentSetOf(),\n    ) : ExtensionFilterState {\n\n        val isEmpty: Boolean\n            get() = languages.isEmpty()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension\n\nimport android.app.Application\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.extension.interactor.GetExtensionsByType\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.presentation.components.SEARCH_DEBOUNCE_MILLIS\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.extension.model.InstallStep\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.collect\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.debounce\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onCompletion\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.takeWhile\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport kotlin.time.Duration.Companion.seconds\n\nclass ExtensionsScreenModel(\n    preferences: SourcePreferences = Injekt.get(),\n    basePreferences: BasePreferences = Injekt.get(),\n    private val extensionManager: ExtensionManager = Injekt.get(),\n    private val getExtensions: GetExtensionsByType = Injekt.get(),\n) : StateScreenModel<ExtensionsScreenModel.State>(State()) {\n\n    private val currentDownloads = MutableStateFlow<Map<String, InstallStep>>(hashMapOf())\n\n    init {\n        val context = Injekt.get<Application>()\n        val extensionMapper: (Map<String, InstallStep>) -> ((Extension) -> ExtensionUiModel.Item) = { map ->\n            {\n                ExtensionUiModel.Item(it, map[it.pkgName] ?: InstallStep.Idle)\n            }\n        }\n\n        screenModelScope.launchIO {\n            combine(\n                state.map { it.searchQuery }\n                    .distinctUntilChanged()\n                    .debounce(SEARCH_DEBOUNCE_MILLIS)\n                    .map { searchQueryPredicate(it ?: \"\") },\n                currentDownloads,\n                getExtensions.subscribe(),\n            ) { predicate, downloads, (_updates, _installed, _available, _untrusted) ->\n                buildMap {\n                    val updates = _updates.filter(predicate).map(extensionMapper(downloads))\n                    if (updates.isNotEmpty()) {\n                        put(ExtensionUiModel.Header.Resource(MR.strings.ext_updates_pending), updates)\n                    }\n\n                    val installed = _installed.filter(predicate).map(extensionMapper(downloads))\n                    val untrusted = _untrusted.filter(predicate).map(extensionMapper(downloads))\n                    if (installed.isNotEmpty() || untrusted.isNotEmpty()) {\n                        put(ExtensionUiModel.Header.Resource(MR.strings.ext_installed), installed + untrusted)\n                    }\n\n                    val languagesWithExtensions = _available\n                        .filter(predicate)\n                        .groupBy { it.lang }\n                        .toSortedMap(LocaleHelper.comparator)\n                        .map { (lang, exts) ->\n                            ExtensionUiModel.Header.Text(LocaleHelper.getSourceDisplayName(lang, context)) to\n                                exts.map(extensionMapper(downloads))\n                        }\n                    if (languagesWithExtensions.isNotEmpty()) {\n                        putAll(languagesWithExtensions)\n                    }\n                }\n            }\n                .collectLatest { items ->\n                    mutableState.update { state ->\n                        state.copy(\n                            isLoading = false,\n                            items = items,\n                        )\n                    }\n                }\n        }\n\n        screenModelScope.launchIO { findAvailableExtensions() }\n\n        preferences.extensionUpdatesCount.changes()\n            .onEach { mutableState.update { state -> state.copy(updates = it) } }\n            .launchIn(screenModelScope)\n\n        basePreferences.extensionInstaller.changes()\n            .onEach { mutableState.update { state -> state.copy(installer = it) } }\n            .launchIn(screenModelScope)\n    }\n\n    fun searchQueryPredicate(query: String): (Extension) -> Boolean {\n        val subqueries = query.split(\",\")\n            .map { it.trim() }\n            .filterNot { it.isBlank() }\n\n        if (subqueries.isEmpty()) return { true }\n\n        return { extension ->\n            subqueries.any { subquery ->\n                if (extension.name.contains(subquery, ignoreCase = true)) return@any true\n\n                when (extension) {\n                    is Extension.Installed -> extension.sources.any { source ->\n                        source.name.contains(subquery, ignoreCase = true) ||\n                            (source as? HttpSource)?.baseUrl?.contains(subquery, ignoreCase = true) == true ||\n                            source.id == subquery.toLongOrNull()\n                    }\n\n                    is Extension.Available -> extension.sources.any {\n                        it.name.contains(subquery, ignoreCase = true) ||\n                            it.baseUrl.contains(subquery, ignoreCase = true) ||\n                            it.id == subquery.toLongOrNull()\n                    }\n\n                    else -> false\n                }\n            }\n        }\n    }\n\n    fun search(query: String?) {\n        mutableState.update {\n            it.copy(searchQuery = query)\n        }\n    }\n\n    fun updateAllExtensions() {\n        screenModelScope.launchIO {\n            state.value.items.values.flatten()\n                .map { it.extension }\n                .filterIsInstance<Extension.Installed>()\n                .filter { it.hasUpdate }\n                .forEach(::updateExtension)\n        }\n    }\n\n    fun installExtension(extension: Extension.Available) {\n        screenModelScope.launchIO {\n            extensionManager.installExtension(extension).collectToInstallUpdate(extension)\n        }\n    }\n\n    fun updateExtension(extension: Extension.Installed) {\n        screenModelScope.launchIO {\n            extensionManager.updateExtension(extension).collectToInstallUpdate(extension)\n        }\n    }\n\n    fun cancelInstallUpdateExtension(extension: Extension) {\n        extensionManager.cancelInstallUpdateExtension(extension)\n        removeDownloadState(extension)\n    }\n\n    private fun addDownloadState(extension: Extension, installStep: InstallStep) {\n        currentDownloads.update { it + Pair(extension.pkgName, installStep) }\n    }\n\n    private fun removeDownloadState(extension: Extension) {\n        currentDownloads.update { it - extension.pkgName }\n    }\n\n    private suspend fun Flow<InstallStep>.collectToInstallUpdate(extension: Extension) =\n        this\n            .onEach { installStep -> addDownloadState(extension, installStep) }\n            .takeWhile { installStep -> installStep != InstallStep.Installed }\n            .onCompletion { removeDownloadState(extension) }\n            .collect()\n\n    fun uninstallExtension(extension: Extension) {\n        extensionManager.uninstallExtension(extension)\n    }\n\n    fun findAvailableExtensions() {\n        screenModelScope.launchIO {\n            mutableState.update { it.copy(isRefreshing = true) }\n\n            extensionManager.findAvailableExtensions()\n\n            // Fake slower refresh so it doesn't seem like it's not doing anything\n            delay(1.seconds)\n\n            mutableState.update { it.copy(isRefreshing = false) }\n        }\n    }\n\n    fun trustExtension(extension: Extension.Untrusted) {\n        screenModelScope.launch {\n            extensionManager.trust(extension)\n        }\n    }\n\n    @Immutable\n    data class State(\n        val isLoading: Boolean = true,\n        val isRefreshing: Boolean = false,\n        val items: ItemGroups = mutableMapOf(),\n        val updates: Int = 0,\n        val installer: BasePreferences.ExtensionInstaller? = null,\n        val searchQuery: String? = null,\n    ) {\n        val isEmpty = items.isEmpty()\n    }\n}\n\ntypealias ItemGroups = Map<ExtensionUiModel.Header, List<ExtensionUiModel.Item>>\n\nobject ExtensionUiModel {\n    sealed interface Header {\n        data class Resource(val textRes: StringResource) : Header\n        data class Text(val text: String) : Header\n    }\n\n    data class Item(\n        val extension: Extension,\n        val installStep: InstallStep,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.ExtensionScreen\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.TabContent\nimport eu.kanade.presentation.more.settings.screen.browse.ExtensionReposScreen\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreen\nimport eu.kanade.tachiyomi.ui.webview.WebViewScreen\nimport eu.kanade.tachiyomi.util.system.isPackageInstalled\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun extensionsTab(\n    extensionsScreenModel: ExtensionsScreenModel,\n): TabContent {\n    val navigator = LocalNavigator.currentOrThrow\n    val context = LocalContext.current\n\n    val state by extensionsScreenModel.state.collectAsState()\n    var privateExtensionToUninstall by remember { mutableStateOf<Extension?>(null) }\n\n    return TabContent(\n        titleRes = MR.strings.label_extensions,\n        badgeNumber = state.updates.takeIf { it > 0 },\n        searchEnabled = true,\n        actions = persistentListOf(\n            AppBar.OverflowAction(\n                title = stringResource(MR.strings.action_filter),\n                onClick = { navigator.push(ExtensionFilterScreen()) },\n            ),\n            AppBar.OverflowAction(\n                title = stringResource(MR.strings.label_extension_repos),\n                onClick = { navigator.push(ExtensionReposScreen()) },\n            ),\n        ),\n        content = { contentPadding, _ ->\n            BackHandler(enabled = state.searchQuery != null) {\n                extensionsScreenModel.search(null)\n            }\n\n            ExtensionScreen(\n                state = state,\n                contentPadding = contentPadding,\n                searchQuery = state.searchQuery,\n                onLongClickItem = { extension ->\n                    when (extension) {\n                        is Extension.Available -> extensionsScreenModel.installExtension(extension)\n                        else -> {\n                            if (context.isPackageInstalled(extension.pkgName)) {\n                                extensionsScreenModel.uninstallExtension(extension)\n                            } else {\n                                privateExtensionToUninstall = extension\n                            }\n                        }\n                    }\n                },\n                onClickItemCancel = extensionsScreenModel::cancelInstallUpdateExtension,\n                onClickUpdateAll = extensionsScreenModel::updateAllExtensions,\n                onOpenWebView = { extension ->\n                    extension.sources.getOrNull(0)?.let {\n                        navigator.push(\n                            WebViewScreen(\n                                url = it.baseUrl,\n                                initialTitle = it.name,\n                                sourceId = it.id,\n                            ),\n                        )\n                    }\n                },\n                onInstallExtension = extensionsScreenModel::installExtension,\n                onOpenExtension = { navigator.push(ExtensionDetailsScreen(it.pkgName)) },\n                onTrustExtension = { extensionsScreenModel.trustExtension(it) },\n                onUninstallExtension = { extensionsScreenModel.uninstallExtension(it) },\n                onUpdateExtension = extensionsScreenModel::updateExtension,\n                onRefresh = extensionsScreenModel::findAvailableExtensions,\n            )\n\n            privateExtensionToUninstall?.let { extension ->\n                ExtensionUninstallConfirmation(\n                    extensionName = extension.name,\n                    onClickConfirm = {\n                        extensionsScreenModel.uninstallExtension(extension)\n                    },\n                    onDismissRequest = {\n                        privateExtensionToUninstall = null\n                    },\n                )\n            }\n        },\n    )\n}\n\n@Composable\nprivate fun ExtensionUninstallConfirmation(\n    extensionName: String,\n    onClickConfirm: () -> Unit,\n    onDismissRequest: () -> Unit,\n) {\n    AlertDialog(\n        title = {\n            Text(text = stringResource(MR.strings.ext_confirm_remove))\n        },\n        text = {\n            Text(text = stringResource(MR.strings.remove_private_extension_message, extensionName))\n        },\n        confirmButton = {\n            TextButton(\n                onClick = {\n                    onClickConfirm()\n                    onDismissRequest()\n                },\n            ) {\n                Text(text = stringResource(MR.strings.ext_remove))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.action_cancel))\n            }\n        },\n        onDismissRequest = onDismissRequest,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension.details\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.ExtensionDetailsScreen\nimport eu.kanade.presentation.util.Screen\nimport kotlinx.coroutines.flow.collectLatest\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\ndata class ExtensionDetailsScreen(\n    private val pkgName: String,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val screenModel = rememberScreenModel { ExtensionDetailsScreenModel(pkgName = pkgName, context = context) }\n        val state by screenModel.state.collectAsState()\n\n        if (state.isLoading) {\n            LoadingScreen()\n            return\n        }\n\n        val navigator = LocalNavigator.currentOrThrow\n\n        ExtensionDetailsScreen(\n            navigateUp = navigator::pop,\n            state = state,\n            onClickSourcePreferences = { navigator.push(SourcePreferencesScreen(it)) },\n            onClickEnableAll = { screenModel.toggleSources(true) },\n            onClickDisableAll = { screenModel.toggleSources(false) },\n            onClickClearCookies = screenModel::clearCookies,\n            onClickUninstall = screenModel::uninstallExtension,\n            onClickSource = screenModel::toggleSource,\n            onClickIncognito = screenModel::toggleIncognito,\n        )\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest { event ->\n                if (event is ExtensionDetailsEvent.Uninstalled) {\n                    navigator.pop()\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension.details\n\nimport android.content.Context\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.extension.interactor.ExtensionSourceItem\nimport eu.kanade.domain.extension.interactor.GetExtensionSources\nimport eu.kanade.domain.source.interactor.ToggleIncognito\nimport eu.kanade.domain.source.interactor.ToggleSource\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.extension.model.Extension\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport okhttp3.HttpUrl.Companion.toHttpUrl\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ExtensionDetailsScreenModel(\n    pkgName: String,\n    context: Context,\n    private val network: NetworkHelper = Injekt.get(),\n    private val extensionManager: ExtensionManager = Injekt.get(),\n    private val getExtensionSources: GetExtensionSources = Injekt.get(),\n    private val toggleSource: ToggleSource = Injekt.get(),\n    private val toggleIncognito: ToggleIncognito = Injekt.get(),\n    private val preferences: SourcePreferences = Injekt.get(),\n) : StateScreenModel<ExtensionDetailsScreenModel.State>(State()) {\n\n    private val _events: Channel<ExtensionDetailsEvent> = Channel()\n    val events: Flow<ExtensionDetailsEvent> = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launch {\n            launch {\n                extensionManager.installedExtensionsFlow\n                    .map { it.firstOrNull { extension -> extension.pkgName == pkgName } }\n                    .collectLatest { extension ->\n                        if (extension == null) {\n                            _events.send(ExtensionDetailsEvent.Uninstalled)\n                            return@collectLatest\n                        }\n                        mutableState.update { state ->\n                            state.copy(extension = extension)\n                        }\n                    }\n            }\n            launch {\n                state.collectLatest { state ->\n                    if (state.extension == null) return@collectLatest\n                    getExtensionSources.subscribe(state.extension)\n                        .map {\n                            it.sortedWith(\n                                compareBy(\n                                    { !it.enabled },\n                                    { item ->\n                                        item.source.name.takeIf { item.labelAsName }\n                                            ?: LocaleHelper.getSourceDisplayName(item.source.lang, context).lowercase()\n                                    },\n                                ),\n                            )\n                        }\n                        .catch { throwable ->\n                            logcat(LogPriority.ERROR, throwable)\n                            mutableState.update { it.copy(_sources = persistentListOf()) }\n                        }\n                        .collectLatest { sources ->\n                            mutableState.update { it.copy(_sources = sources.toImmutableList()) }\n                        }\n                }\n            }\n            launch {\n                preferences.incognitoExtensions\n                    .changes()\n                    .map { pkgName in it }\n                    .distinctUntilChanged()\n                    .collectLatest { isIncognito ->\n                        mutableState.update { it.copy(isIncognito = isIncognito) }\n                    }\n            }\n        }\n    }\n\n    fun clearCookies() {\n        val extension = state.value.extension ?: return\n\n        val urls = extension.sources\n            .filterIsInstance<HttpSource>()\n            .mapNotNull { it.baseUrl.takeUnless { url -> url.isEmpty() } }\n            .distinct()\n\n        val cleared = urls.sumOf {\n            try {\n                network.cookieJar.remove(it.toHttpUrl())\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e) { \"Failed to clear cookies for $it\" }\n                0\n            }\n        }\n\n        logcat { \"Cleared $cleared cookies for: ${urls.joinToString()}\" }\n    }\n\n    fun uninstallExtension() {\n        val extension = state.value.extension ?: return\n        extensionManager.uninstallExtension(extension)\n    }\n\n    fun toggleSource(sourceId: Long) {\n        toggleSource.await(sourceId)\n    }\n\n    fun toggleSources(enable: Boolean) {\n        state.value.extension?.sources\n            ?.map { it.id }\n            ?.let { toggleSource.await(it, enable) }\n    }\n\n    fun toggleIncognito(enable: Boolean) {\n        state.value.extension?.pkgName?.let { packageName ->\n            toggleIncognito.await(packageName, enable)\n        }\n    }\n\n    @Immutable\n    data class State(\n        val extension: Extension.Installed? = null,\n        val isIncognito: Boolean = false,\n        private val _sources: ImmutableList<ExtensionSourceItem>? = null,\n    ) {\n\n        val sources: ImmutableList<ExtensionSourceItem>\n            get() = _sources ?: persistentListOf()\n\n        val isLoading: Boolean\n            get() = extension == null || _sources == null\n    }\n}\n\nsealed interface ExtensionDetailsEvent {\n    data object Uninstalled : ExtensionDetailsEvent\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.extension.details\n\nimport android.content.Context\nimport android.os.Bundle\nimport android.util.TypedValue\nimport android.view.View\nimport androidx.appcompat.view.ContextThemeWrapper\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.viewinterop.AndroidView\nimport androidx.fragment.app.FragmentActivity\nimport androidx.fragment.app.FragmentContainerView\nimport androidx.fragment.app.FragmentManager\nimport androidx.fragment.app.FragmentTransaction\nimport androidx.fragment.app.commit\nimport androidx.lifecycle.lifecycleScope\nimport androidx.preference.DialogPreference\nimport androidx.preference.EditTextPreference\nimport androidx.preference.PreferenceFragmentCompat\nimport androidx.preference.PreferenceScreen\nimport androidx.preference.forEach\nimport androidx.preference.getOnBindEditTextListener\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.core.util.ifSourcesLoaded\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.preference.SharedPreferencesDataStore\nimport eu.kanade.tachiyomi.source.ConfigurableSource\nimport eu.kanade.tachiyomi.source.sourcePreferences\nimport eu.kanade.tachiyomi.widget.TachiyomiTextInputEditText.Companion.setIncognito\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass SourcePreferencesScreen(val sourceId: Long) : Screen() {\n\n    @Composable\n    override fun Content() {\n        if (!ifSourcesLoaded()) {\n            LoadingScreen()\n            return\n        }\n\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = Injekt.get<SourceManager>().getOrStub(sourceId).toString(),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = it,\n                )\n            },\n        ) { contentPadding ->\n            FragmentContainer(\n                fragmentManager = (context as FragmentActivity).supportFragmentManager,\n                modifier = Modifier\n                    .fillMaxSize()\n                    .padding(contentPadding),\n            ) {\n                add(it, SourcePreferencesFragment.getInstance(sourceId), null)\n            }\n        }\n    }\n\n    /**\n     * From https://stackoverflow.com/questions/60520145/fragment-container-in-jetpack-compose/70817794#70817794\n     */\n    @Composable\n    private fun FragmentContainer(\n        fragmentManager: FragmentManager,\n        modifier: Modifier = Modifier,\n        commit: FragmentTransaction.(containerId: Int) -> Unit,\n    ) {\n        val containerId by rememberSaveable {\n            mutableIntStateOf(View.generateViewId())\n        }\n        var initialized by rememberSaveable { mutableStateOf(false) }\n        AndroidView(\n            modifier = modifier,\n            factory = { context ->\n                FragmentContainerView(context)\n                    .apply { id = containerId }\n            },\n            update = { view ->\n                if (!initialized) {\n                    fragmentManager.commit { commit(view.id) }\n                    initialized = true\n                } else {\n                    fragmentManager.onContainerAvailable(view)\n                }\n            },\n        )\n    }\n\n    /** Access to package-private method in FragmentManager through reflection */\n    private fun FragmentManager.onContainerAvailable(view: FragmentContainerView) {\n        val method = FragmentManager::class.java.getDeclaredMethod(\n            \"onContainerAvailable\",\n            FragmentContainerView::class.java,\n        )\n        method.isAccessible = true\n        method.invoke(this, view)\n    }\n}\n\nclass SourcePreferencesFragment : PreferenceFragmentCompat() {\n\n    override fun getContext(): Context? {\n        val superCtx = super.getContext() ?: return null\n        val tv = TypedValue()\n        superCtx.theme.resolveAttribute(R.attr.preferenceTheme, tv, true)\n        return ContextThemeWrapper(superCtx, tv.resourceId)\n    }\n\n    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {\n        preferenceScreen = populateScreen()\n    }\n\n    private fun populateScreen(): PreferenceScreen {\n        val sourceId = requireArguments().getLong(SOURCE_ID)\n        val source = Injekt.get<SourceManager>().getOrStub(sourceId)\n        val sourceScreen = preferenceManager.createPreferenceScreen(requireContext())\n\n        if (source is ConfigurableSource) {\n            val dataStore = SharedPreferencesDataStore(source.sourcePreferences())\n            preferenceManager.preferenceDataStore = dataStore\n\n            source.setupPreferenceScreen(sourceScreen)\n            sourceScreen.forEach { pref ->\n                pref.isIconSpaceReserved = false\n                pref.isSingleLineTitle = false\n                if (pref is DialogPreference && pref.dialogTitle.isNullOrEmpty()) {\n                    pref.dialogTitle = pref.title\n                }\n\n                // Apply incognito IME for EditTextPreference\n                if (pref is EditTextPreference) {\n                    val setListener = pref.getOnBindEditTextListener()\n                    pref.setOnBindEditTextListener {\n                        setListener?.onBindEditText(it)\n                        it.setIncognito(lifecycleScope)\n                    }\n                }\n            }\n        }\n\n        return sourceScreen\n    }\n\n    companion object {\n        private const val SOURCE_ID = \"source_id\"\n\n        fun getInstance(sourceId: Long): SourcePreferencesFragment {\n            return SourcePreferencesFragment().apply {\n                arguments = Bundle().apply {\n                    putLong(SOURCE_ID, sourceId)\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrateMangaScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.manga\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowForward\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.SmallExtendedFloatingActionButton\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.animateFloatingActionButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.manga.components.BaseMangaListItem\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.flow.collectLatest\nimport mihon.feature.migration.config.MigrationConfigScreen\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.util.selectedBackground\nimport tachiyomi.presentation.core.util.shouldExpandFAB\n\ndata class MigrateMangaScreen(\n    private val sourceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { MigrateMangaScreenModel(sourceId) }\n\n        val state by screenModel.state.collectAsState()\n\n        if (state.isLoading) {\n            LoadingScreen()\n            return\n        }\n\n        BackHandler(enabled = state.selectionMode) {\n            screenModel.clearSelection()\n        }\n\n        val lazyListState = rememberLazyListState()\n\n        Scaffold(\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = state.source!!.name,\n                    navigateUp = {\n                        if (state.selectionMode) {\n                            screenModel.clearSelection()\n                        } else {\n                            navigator.pop()\n                        }\n                    },\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n            floatingActionButton = {\n                SmallExtendedFloatingActionButton(\n                    text = { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) },\n                    icon = {\n                        Icon(imageVector = Icons.AutoMirrored.Outlined.ArrowForward, contentDescription = null)\n                    },\n                    onClick = {\n                        val selection = state.selection\n                        screenModel.clearSelection()\n                        navigator.push(MigrationConfigScreen(selection))\n                    },\n                    expanded = lazyListState.shouldExpandFAB(),\n                    modifier = Modifier.animateFloatingActionButton(\n                        visible = state.selectionMode,\n                        alignment = Alignment.BottomEnd,\n                    ),\n                )\n            },\n        ) { contentPadding ->\n            if (state.isEmpty) {\n                EmptyScreen(\n                    stringRes = MR.strings.empty_screen,\n                    modifier = Modifier.padding(contentPadding),\n                )\n                return@Scaffold\n            }\n\n            MigrateMangaContent(\n                lazyListState = lazyListState,\n                contentPadding = contentPadding,\n                state = state,\n                onClickItem = screenModel::toggleSelection,\n                onClickCover = { navigator.push(MangaScreen(it.id)) },\n            )\n        }\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest { event ->\n                when (event) {\n                    MigrationMangaEvent.FailedFetchingFavorites -> {\n                        context.toast(MR.strings.internal_error)\n                    }\n                }\n            }\n        }\n    }\n\n    @Composable\n    private fun MigrateMangaContent(\n        lazyListState: LazyListState,\n        contentPadding: PaddingValues,\n        state: MigrateMangaScreenModel.State,\n        onClickItem: (Manga) -> Unit,\n        onClickCover: (Manga) -> Unit,\n    ) {\n        FastScrollLazyColumn(\n            state = lazyListState,\n            contentPadding = contentPadding,\n        ) {\n            items(state.titles) { manga ->\n                MigrateMangaItem(\n                    manga = manga,\n                    isSelected = manga.id in state.selection,\n                    onClickItem = onClickItem,\n                    onClickCover = onClickCover,\n                )\n            }\n        }\n    }\n\n    @Composable\n    private fun MigrateMangaItem(\n        manga: Manga,\n        isSelected: Boolean,\n        onClickItem: (Manga) -> Unit,\n        onClickCover: (Manga) -> Unit,\n        modifier: Modifier = Modifier,\n    ) {\n        BaseMangaListItem(\n            modifier = modifier.selectedBackground(isSelected),\n            manga = manga,\n            onClickItem = { onClickItem(manga) },\n            onClickCover = { onClickCover(manga) },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrateMangaScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.manga\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.tachiyomi.source.Source\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport mihon.core.common.utils.mutate\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.interactor.GetFavorites\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MigrateMangaScreenModel(\n    private val sourceId: Long,\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val getFavorites: GetFavorites = Injekt.get(),\n) : StateScreenModel<MigrateMangaScreenModel.State>(State()) {\n\n    private val _events: Channel<MigrationMangaEvent> = Channel()\n    val events: Flow<MigrationMangaEvent> = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launch {\n            mutableState.update { state ->\n                state.copy(source = sourceManager.getOrStub(sourceId))\n            }\n\n            getFavorites.subscribe(sourceId)\n                .catch {\n                    logcat(LogPriority.ERROR, it)\n                    _events.send(MigrationMangaEvent.FailedFetchingFavorites)\n                    mutableState.update { state ->\n                        state.copy(titleList = persistentListOf())\n                    }\n                }\n                .map { manga ->\n                    manga\n                        .sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.title })\n                        .toImmutableList()\n                }\n                .collectLatest { list ->\n                    mutableState.update { it.copy(titleList = list) }\n                }\n        }\n    }\n\n    fun toggleSelection(item: Manga) {\n        mutableState.update { state ->\n            val selection = state.selection.mutate { list ->\n                if (!list.remove(item.id)) list.add(item.id)\n            }\n            state.copy(selection = selection)\n        }\n    }\n\n    fun clearSelection() {\n        mutableState.update { it.copy(selection = emptySet()) }\n    }\n\n    @Immutable\n    data class State(\n        val source: Source? = null,\n        val selection: Set<Long> = emptySet(),\n        private val titleList: ImmutableList<Manga>? = null,\n    ) {\n\n        val titles: ImmutableList<Manga>\n            get() = titleList ?: persistentListOf()\n\n        val isLoading: Boolean\n            get() = source == null || titleList == null\n\n        val isEmpty: Boolean\n            get() = titles.isEmpty()\n\n        val selectionMode = selection.isNotEmpty()\n    }\n}\n\nsealed interface MigrationMangaEvent {\n    data object FailedFetchingFavorites : MigrationMangaEvent\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.search\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.MigrateSearchScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchScreenModel\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport mihon.feature.migration.dialog.MigrateMangaDialog\nimport mihon.feature.migration.list.MigrationListScreen\n\nclass MigrateSearchScreen(private val mangaId: Long) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { MigrateSearchScreenModel(mangaId = mangaId) }\n        val state by screenModel.state.collectAsState()\n\n        MigrateSearchScreen(\n            state = state,\n            fromSourceId = state.from?.source,\n            navigateUp = navigator::pop,\n            onChangeSearchQuery = screenModel::updateSearchQuery,\n            onSearch = { screenModel.search() },\n            getManga = { screenModel.getManga(it) },\n            onChangeSearchFilter = screenModel::setSourceFilter,\n            onToggleResults = screenModel::toggleFilterResults,\n            onClickSource = { navigator.push(MigrateSourceSearchScreen(state.from!!, it.id, state.searchQuery)) },\n            onClickItem = {\n                val migrateListScreen = navigator.items\n                    .filterIsInstance<MigrationListScreen>()\n                    .lastOrNull()\n\n                if (migrateListScreen == null) {\n                    screenModel.setMigrateDialog(mangaId, it)\n                } else {\n                    migrateListScreen.addMatchOverride(current = mangaId, target = it.id)\n                    navigator.popUntil { screen -> screen is MigrationListScreen }\n                }\n            },\n            onLongClickItem = { navigator.push(MangaScreen(it.id, true)) },\n        )\n\n        when (val dialog = state.dialog) {\n            is SearchScreenModel.Dialog.Migrate -> {\n                MigrateMangaDialog(\n                    current = dialog.current,\n                    target = dialog.target,\n                    // Initiated from the context of [dialog.current] so we show [dialog.target].\n                    onClickTitle = { navigator.push(MangaScreen(dialog.target.id, true)) },\n                    onDismissRequest = { screenModel.clearDialog() },\n                    onComplete = {\n                        if (navigator.lastItem is MangaScreen) {\n                            val lastItem = navigator.lastItem\n                            navigator.popUntil { navigator.items.contains(lastItem) }\n                            navigator.push(MangaScreen(dialog.target.id))\n                        } else {\n                            navigator.replace(MangaScreen(dialog.target.id))\n                        }\n                    },\n                )\n            }\n            else -> {}\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.search\n\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchItemResult\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchScreenModel\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MigrateSearchScreenModel(\n    val mangaId: Long,\n    getManga: GetManga = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val sourcePreferences: SourcePreferences = Injekt.get(),\n) : SearchScreenModel() {\n\n    private val migrationSources by lazy { sourcePreferences.migrationSources.get() }\n\n    override val sortComparator = { map: Map<CatalogueSource, SearchItemResult> ->\n        compareBy<CatalogueSource>(\n            { (map[it] as? SearchItemResult.Success)?.isEmpty ?: true },\n            { migrationSources.indexOf(it.id) },\n        )\n    }\n\n    init {\n        screenModelScope.launch {\n            val manga = getManga.await(mangaId)!!\n            mutableState.update {\n                it.copy(\n                    from = manga,\n                    searchQuery = manga.title,\n                )\n            }\n            search()\n        }\n    }\n\n    override fun getEnabledSources(): List<CatalogueSource> {\n        return migrationSources.mapNotNull { sourceManager.get(it) as? CatalogueSource }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSourceSearchScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.search\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.SmallExtendedFloatingActionButton\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.animateFloatingActionButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalConfiguration\nimport androidx.compose.ui.platform.LocalUriHandler\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.core.util.ifSourcesLoaded\nimport eu.kanade.presentation.browse.BrowseSourceContent\nimport eu.kanade.presentation.components.SearchToolbar\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel\nimport eu.kanade.tachiyomi.ui.browse.source.browse.SourceFilterDialog\nimport eu.kanade.tachiyomi.ui.home.HomeScreen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.webview.WebViewScreen\nimport kotlinx.coroutines.launch\nimport mihon.feature.migration.dialog.MigrateMangaDialog\nimport mihon.feature.migration.list.MigrationListScreen\nimport mihon.presentation.core.util.collectAsLazyPagingItems\nimport tachiyomi.core.common.Constants\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.source.local.LocalSource\n\ndata class MigrateSourceSearchScreen(\n    private val currentManga: Manga,\n    private val sourceId: Long,\n    private val query: String?,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        if (!ifSourcesLoaded()) {\n            LoadingScreen()\n            return\n        }\n\n        val uriHandler = LocalUriHandler.current\n        val navigator = LocalNavigator.currentOrThrow\n        val scope = rememberCoroutineScope()\n\n        val screenModel = rememberScreenModel { BrowseSourceScreenModel(sourceId, query) }\n        val state by screenModel.state.collectAsState()\n\n        val snackbarHostState = remember { SnackbarHostState() }\n\n        Scaffold(\n            topBar = { scrollBehavior ->\n                SearchToolbar(\n                    searchQuery = state.toolbarQuery ?: \"\",\n                    onChangeSearchQuery = screenModel::setToolbarQuery,\n                    onClickCloseSearch = navigator::pop,\n                    onSearch = screenModel::search,\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n            floatingActionButton = {\n                SmallExtendedFloatingActionButton(\n                    text = { Text(text = stringResource(MR.strings.action_filter)) },\n                    icon = { Icon(Icons.Outlined.FilterList, contentDescription = null) },\n                    onClick = screenModel::openFilterSheet,\n                    modifier = Modifier.animateFloatingActionButton(\n                        visible = state.filters.isNotEmpty(),\n                        alignment = Alignment.BottomEnd,\n                    ),\n                )\n            },\n            snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n        ) { paddingValues ->\n            val openMigrateDialog: (Manga) -> Unit = {\n                val migrateListScreen = navigator.items\n                    .filterIsInstance<MigrationListScreen>()\n                    .lastOrNull()\n\n                if (migrateListScreen == null) {\n                    screenModel.setDialog(BrowseSourceScreenModel.Dialog.Migrate(target = it, current = currentManga))\n                } else {\n                    migrateListScreen.addMatchOverride(current = currentManga.id, target = it.id)\n                    navigator.popUntil { screen -> screen is MigrationListScreen }\n                }\n            }\n            BrowseSourceContent(\n                source = screenModel.source,\n                mangaList = screenModel.mangaPagerFlowFlow.collectAsLazyPagingItems(),\n                columns = screenModel.getColumnsPreference(LocalConfiguration.current.orientation),\n                displayMode = screenModel.displayMode,\n                snackbarHostState = snackbarHostState,\n                contentPadding = paddingValues,\n                onWebViewClick = {\n                    val source = screenModel.source as? HttpSource ?: return@BrowseSourceContent\n                    navigator.push(\n                        WebViewScreen(\n                            url = source.baseUrl,\n                            initialTitle = source.name,\n                            sourceId = source.id,\n                        ),\n                    )\n                },\n                onHelpClick = { uriHandler.openUri(Constants.URL_HELP) },\n                onLocalSourceHelpClick = { uriHandler.openUri(LocalSource.HELP_URL) },\n                onMangaClick = openMigrateDialog,\n                onMangaLongClick = { navigator.push(MangaScreen(it.id, true)) },\n            )\n        }\n\n        val onDismissRequest = { screenModel.setDialog(null) }\n        when (val dialog = state.dialog) {\n            is BrowseSourceScreenModel.Dialog.Filter -> {\n                SourceFilterDialog(\n                    onDismissRequest = onDismissRequest,\n                    filters = state.filters,\n                    onReset = screenModel::resetFilters,\n                    onFilter = { screenModel.search(filters = state.filters) },\n                    onUpdate = screenModel::setFilters,\n                )\n            }\n            is BrowseSourceScreenModel.Dialog.Migrate -> {\n                MigrateMangaDialog(\n                    current = currentManga,\n                    target = dialog.target,\n                    // Initiated from the context of [currentManga] so we show [dialog.target].\n                    onClickTitle = { navigator.push(MangaScreen(dialog.target.id)) },\n                    onDismissRequest = onDismissRequest,\n                    onComplete = {\n                        scope.launch {\n                            navigator.popUntilRoot()\n                            HomeScreen.openTab(HomeScreen.Tab.Browse())\n                            navigator.push(MangaScreen(dialog.target.id))\n                        }\n                    },\n                )\n            }\n            else -> {}\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.sources\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.source.interactor.GetSourcesWithFavoriteCount\nimport eu.kanade.domain.source.interactor.SetMigrateSorting\nimport eu.kanade.domain.source.service.SourcePreferences\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.source.model.Source\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MigrateSourceScreenModel(\n    preferences: SourcePreferences = Injekt.get(),\n    private val getSourcesWithFavoriteCount: GetSourcesWithFavoriteCount = Injekt.get(),\n    private val setMigrateSorting: SetMigrateSorting = Injekt.get(),\n) : StateScreenModel<MigrateSourceScreenModel.State>(State()) {\n\n    private val _channel = Channel<Event>(Int.MAX_VALUE)\n    val channel = _channel.receiveAsFlow()\n\n    init {\n        screenModelScope.launchIO {\n            getSourcesWithFavoriteCount.subscribe()\n                .catch {\n                    logcat(LogPriority.ERROR, it)\n                    _channel.send(Event.FailedFetchingSourcesWithCount)\n                }\n                .collectLatest { sources ->\n                    mutableState.update {\n                        it.copy(\n                            isLoading = false,\n                            items = sources.toImmutableList(),\n                        )\n                    }\n                }\n        }\n\n        preferences.migrationSortingDirection.changes()\n            .onEach { mutableState.update { state -> state.copy(sortingDirection = it) } }\n            .launchIn(screenModelScope)\n\n        preferences.migrationSortingMode.changes()\n            .onEach { mutableState.update { state -> state.copy(sortingMode = it) } }\n            .launchIn(screenModelScope)\n    }\n\n    fun toggleSortingMode() {\n        with(state.value) {\n            val newMode = when (sortingMode) {\n                SetMigrateSorting.Mode.ALPHABETICAL -> SetMigrateSorting.Mode.TOTAL\n                SetMigrateSorting.Mode.TOTAL -> SetMigrateSorting.Mode.ALPHABETICAL\n            }\n\n            setMigrateSorting.await(newMode, sortingDirection)\n        }\n    }\n\n    fun toggleSortingDirection() {\n        with(state.value) {\n            val newDirection = when (sortingDirection) {\n                SetMigrateSorting.Direction.ASCENDING -> SetMigrateSorting.Direction.DESCENDING\n                SetMigrateSorting.Direction.DESCENDING -> SetMigrateSorting.Direction.ASCENDING\n            }\n\n            setMigrateSorting.await(sortingMode, newDirection)\n        }\n    }\n\n    @Immutable\n    data class State(\n        val isLoading: Boolean = true,\n        val items: ImmutableList<Pair<Source, Long>> = persistentListOf(),\n        val sortingMode: SetMigrateSorting.Mode = SetMigrateSorting.Mode.ALPHABETICAL,\n        val sortingDirection: SetMigrateSorting.Direction = SetMigrateSorting.Direction.ASCENDING,\n    ) {\n        val isEmpty = items.isEmpty()\n    }\n\n    sealed interface Event {\n        data object FailedFetchingSourcesWithCount : Event\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.migration.sources\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalUriHandler\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.screen.Screen\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.MigrateSourceScreen\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.TabContent\nimport eu.kanade.tachiyomi.ui.browse.migration.manga.MigrateMangaScreen\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun Screen.migrateSourceTab(): TabContent {\n    val uriHandler = LocalUriHandler.current\n    val navigator = LocalNavigator.currentOrThrow\n    val screenModel = rememberScreenModel { MigrateSourceScreenModel() }\n    val state by screenModel.state.collectAsState()\n\n    return TabContent(\n        titleRes = MR.strings.label_migration,\n        actions = persistentListOf(\n            AppBar.Action(\n                title = stringResource(MR.strings.migration_help_guide),\n                icon = Icons.AutoMirrored.Outlined.HelpOutline,\n                onClick = {\n                    uriHandler.openUri(\"https://mihon.app/docs/guides/source-migration\")\n                },\n            ),\n        ),\n        content = { contentPadding, _ ->\n            MigrateSourceScreen(\n                state = state,\n                contentPadding = contentPadding,\n                onClickItem = { source ->\n                    navigator.push(MigrateMangaScreen(source.id))\n                },\n                onToggleSortingDirection = screenModel::toggleSortingDirection,\n                onToggleSortingMode = screenModel::toggleSortingMode,\n            )\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.SourcesFilterScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.util.system.toast\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass SourcesFilterScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { SourcesFilterScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        if (state is SourcesFilterScreenModel.State.Loading) {\n            LoadingScreen()\n            return\n        }\n\n        if (state is SourcesFilterScreenModel.State.Error) {\n            val context = LocalContext.current\n            LaunchedEffect(Unit) {\n                context.toast(MR.strings.internal_error)\n                navigator.pop()\n            }\n            return\n        }\n\n        val successState = state as SourcesFilterScreenModel.State.Success\n\n        SourcesFilterScreen(\n            navigateUp = navigator::pop,\n            state = successState,\n            onClickLanguage = screenModel::toggleLanguage,\n            onClickSource = screenModel::toggleSource,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.source.interactor.GetLanguagesWithSources\nimport eu.kanade.domain.source.interactor.ToggleLanguage\nimport eu.kanade.domain.source.interactor.ToggleSource\nimport eu.kanade.domain.source.service.SourcePreferences\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport tachiyomi.domain.source.model.Source\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.SortedMap\n\nclass SourcesFilterScreenModel(\n    private val preferences: SourcePreferences = Injekt.get(),\n    private val getLanguagesWithSources: GetLanguagesWithSources = Injekt.get(),\n    private val toggleSource: ToggleSource = Injekt.get(),\n    private val toggleLanguage: ToggleLanguage = Injekt.get(),\n) : StateScreenModel<SourcesFilterScreenModel.State>(State.Loading) {\n\n    init {\n        screenModelScope.launch {\n            combine(\n                getLanguagesWithSources.subscribe(),\n                preferences.enabledLanguages.changes(),\n                preferences.disabledSources.changes(),\n            ) { a, b, c -> Triple(a, b, c) }\n                .catch { throwable ->\n                    mutableState.update {\n                        State.Error(\n                            throwable = throwable,\n                        )\n                    }\n                }\n                .collectLatest { (languagesWithSources, enabledLanguages, disabledSources) ->\n                    mutableState.update {\n                        State.Success(\n                            items = languagesWithSources,\n                            enabledLanguages = enabledLanguages,\n                            disabledSources = disabledSources,\n                        )\n                    }\n                }\n        }\n    }\n\n    fun toggleSource(source: Source) {\n        toggleSource.await(source)\n    }\n\n    fun toggleLanguage(language: String) {\n        toggleLanguage.await(language)\n    }\n\n    sealed interface State {\n\n        @Immutable\n        data object Loading : State\n\n        @Immutable\n        data class Error(\n            val throwable: Throwable,\n        ) : State\n\n        @Immutable\n        data class Success(\n            val items: SortedMap<String, List<Source>>,\n            val enabledLanguages: Set<String>,\n            val disabledSources: Set<String>,\n        ) : State {\n\n            val isEmpty: Boolean\n                get() = items.isEmpty()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.source.interactor.GetEnabledSources\nimport eu.kanade.domain.source.interactor.ToggleSource\nimport eu.kanade.domain.source.interactor.ToggleSourcePin\nimport eu.kanade.presentation.browse.SourceUiModel\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.source.model.Pin\nimport tachiyomi.domain.source.model.Source\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.TreeMap\n\nclass SourcesScreenModel(\n    private val getEnabledSources: GetEnabledSources = Injekt.get(),\n    private val toggleSource: ToggleSource = Injekt.get(),\n    private val toggleSourcePin: ToggleSourcePin = Injekt.get(),\n) : StateScreenModel<SourcesScreenModel.State>(State()) {\n\n    private val _events = Channel<Event>(Int.MAX_VALUE)\n    val events = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launchIO {\n            getEnabledSources.subscribe()\n                .catch {\n                    logcat(LogPriority.ERROR, it)\n                    _events.send(Event.FailedFetchingSources)\n                }\n                .collectLatest(::collectLatestSources)\n        }\n    }\n\n    private fun collectLatestSources(sources: List<Source>) {\n        mutableState.update { state ->\n            val map = TreeMap<String, MutableList<Source>> { d1, d2 ->\n                // Sources without a lang defined will be placed at the end\n                when {\n                    d1 == LAST_USED_KEY && d2 != LAST_USED_KEY -> -1\n                    d2 == LAST_USED_KEY && d1 != LAST_USED_KEY -> 1\n                    d1 == PINNED_KEY && d2 != PINNED_KEY -> -1\n                    d2 == PINNED_KEY && d1 != PINNED_KEY -> 1\n                    d1 == \"\" && d2 != \"\" -> 1\n                    d2 == \"\" && d1 != \"\" -> -1\n                    else -> d1.compareTo(d2)\n                }\n            }\n            val byLang = sources.groupByTo(map) {\n                when {\n                    it.isUsedLast -> LAST_USED_KEY\n                    Pin.Actual in it.pin -> PINNED_KEY\n                    else -> it.lang\n                }\n            }\n\n            state.copy(\n                isLoading = false,\n                items = byLang\n                    .flatMap {\n                        listOf(\n                            SourceUiModel.Header(it.key),\n                            *it.value.map { source ->\n                                SourceUiModel.Item(source)\n                            }.toTypedArray(),\n                        )\n                    }\n                    .toImmutableList(),\n            )\n        }\n    }\n\n    fun toggleSource(source: Source) {\n        toggleSource.await(source)\n    }\n\n    fun togglePin(source: Source) {\n        toggleSourcePin.await(source)\n    }\n\n    fun showSourceDialog(source: Source) {\n        mutableState.update { it.copy(dialog = Dialog(source)) }\n    }\n\n    fun closeDialog() {\n        mutableState.update { it.copy(dialog = null) }\n    }\n\n    sealed interface Event {\n        data object FailedFetchingSources : Event\n    }\n\n    data class Dialog(val source: Source)\n\n    @Immutable\n    data class State(\n        val dialog: Dialog? = null,\n        val isLoading: Boolean = true,\n        val items: ImmutableList<SourceUiModel> = persistentListOf(),\n    ) {\n        val isEmpty = items.isEmpty()\n    }\n\n    companion object {\n        const val PINNED_KEY = \"pinned\"\n        const val LAST_USED_KEY = \"last_used\"\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source\n\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material.icons.outlined.TravelExplore\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.screen.Screen\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.browse.SourceOptionsDialog\nimport eu.kanade.presentation.browse.SourcesScreen\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.TabContent\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.launch\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun Screen.sourcesTab(): TabContent {\n    val navigator = LocalNavigator.currentOrThrow\n    val screenModel = rememberScreenModel { SourcesScreenModel() }\n    val state by screenModel.state.collectAsState()\n\n    return TabContent(\n        titleRes = MR.strings.label_sources,\n        actions = persistentListOf(\n            AppBar.Action(\n                title = stringResource(MR.strings.action_global_search),\n                icon = Icons.Outlined.TravelExplore,\n                onClick = { navigator.push(GlobalSearchScreen()) },\n            ),\n            AppBar.Action(\n                title = stringResource(MR.strings.action_filter),\n                icon = Icons.Outlined.FilterList,\n                onClick = { navigator.push(SourcesFilterScreen()) },\n            ),\n        ),\n        content = { contentPadding, snackbarHostState ->\n            SourcesScreen(\n                state = state,\n                contentPadding = contentPadding,\n                onClickItem = { source, listing ->\n                    navigator.push(BrowseSourceScreen(source.id, listing.query))\n                },\n                onClickPin = screenModel::togglePin,\n                onLongClickItem = screenModel::showSourceDialog,\n            )\n\n            state.dialog?.let { dialog ->\n                val source = dialog.source\n                SourceOptionsDialog(\n                    source = source,\n                    onClickPin = {\n                        screenModel.togglePin(source)\n                        screenModel.closeDialog()\n                    },\n                    onClickDisable = {\n                        screenModel.toggleSource(source)\n                        screenModel.closeDialog()\n                    },\n                    onDismiss = screenModel::closeDialog,\n                )\n            }\n\n            val internalErrString = stringResource(MR.strings.internal_error)\n            LaunchedEffect(Unit) {\n                screenModel.events.collectLatest { event ->\n                    when (event) {\n                        SourcesScreenModel.Event.FailedFetchingSources -> {\n                            launch { snackbarHostState.showSnackbar(internalErrString) }\n                        }\n                    }\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source.browse\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.horizontalScroll\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Favorite\nimport androidx.compose.material.icons.outlined.FilterList\nimport androidx.compose.material.icons.outlined.NewReleases\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.FilterChipDefaults\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.input.pointer.pointerInput\nimport androidx.compose.ui.platform.LocalConfiguration\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.platform.LocalUriHandler\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.core.util.ifSourcesLoaded\nimport eu.kanade.presentation.browse.BrowseSourceContent\nimport eu.kanade.presentation.browse.MissingSourceScreen\nimport eu.kanade.presentation.browse.components.BrowseSourceToolbar\nimport eu.kanade.presentation.browse.components.RemoveMangaDialog\nimport eu.kanade.presentation.category.components.ChangeCategoryDialog\nimport eu.kanade.presentation.manga.DuplicateMangaDialog\nimport eu.kanade.presentation.util.AssistContentScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.browse.extension.details.SourcePreferencesScreen\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel.Listing\nimport eu.kanade.tachiyomi.ui.category.CategoryScreen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.webview.WebViewScreen\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport mihon.feature.migration.dialog.MigrateMangaDialog\nimport mihon.presentation.core.util.collectAsLazyPagingItems\nimport tachiyomi.core.common.Constants\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.source.local.LocalSource\n\ndata class BrowseSourceScreen(\n    val sourceId: Long,\n    private val listingQuery: String?,\n) : Screen(), AssistContentScreen {\n\n    private var assistUrl: String? = null\n\n    override fun onProvideAssistUrl() = assistUrl\n\n    @Composable\n    override fun Content() {\n        if (!ifSourcesLoaded()) {\n            LoadingScreen()\n            return\n        }\n\n        val screenModel = rememberScreenModel { BrowseSourceScreenModel(sourceId, listingQuery) }\n        val state by screenModel.state.collectAsState()\n\n        val navigator = LocalNavigator.currentOrThrow\n        val navigateUp: () -> Unit = {\n            when {\n                !state.isUserQuery && state.toolbarQuery != null -> screenModel.setToolbarQuery(null)\n                else -> navigator.pop()\n            }\n        }\n\n        if (screenModel.source is StubSource) {\n            MissingSourceScreen(\n                source = screenModel.source,\n                navigateUp = navigateUp,\n            )\n            return\n        }\n\n        val scope = rememberCoroutineScope()\n        val haptic = LocalHapticFeedback.current\n        val uriHandler = LocalUriHandler.current\n        val snackbarHostState = remember { SnackbarHostState() }\n\n        val onHelpClick = { uriHandler.openUri(LocalSource.HELP_URL) }\n        val onWebViewClick = f@{\n            val source = screenModel.source as? HttpSource ?: return@f\n            navigator.push(\n                WebViewScreen(\n                    url = source.baseUrl,\n                    initialTitle = source.name,\n                    sourceId = source.id,\n                ),\n            )\n        }\n\n        LaunchedEffect(screenModel.source) {\n            assistUrl = (screenModel.source as? HttpSource)?.baseUrl\n        }\n\n        Scaffold(\n            topBar = {\n                Column(\n                    modifier = Modifier\n                        .background(MaterialTheme.colorScheme.surface)\n                        .pointerInput(Unit) {},\n                ) {\n                    BrowseSourceToolbar(\n                        searchQuery = state.toolbarQuery,\n                        onSearchQueryChange = screenModel::setToolbarQuery,\n                        source = screenModel.source,\n                        displayMode = screenModel.displayMode,\n                        onDisplayModeChange = { screenModel.displayMode = it },\n                        navigateUp = navigateUp,\n                        onWebViewClick = onWebViewClick,\n                        onHelpClick = onHelpClick,\n                        onSettingsClick = { navigator.push(SourcePreferencesScreen(sourceId)) },\n                        onSearch = screenModel::search,\n                    )\n\n                    Row(\n                        modifier = Modifier\n                            .horizontalScroll(rememberScrollState())\n                            .padding(horizontal = MaterialTheme.padding.small),\n                        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                    ) {\n                        FilterChip(\n                            selected = state.listing == Listing.Popular,\n                            onClick = {\n                                screenModel.resetFilters()\n                                screenModel.setListing(Listing.Popular)\n                            },\n                            leadingIcon = {\n                                Icon(\n                                    imageVector = Icons.Outlined.Favorite,\n                                    contentDescription = null,\n                                    modifier = Modifier\n                                        .size(FilterChipDefaults.IconSize),\n                                )\n                            },\n                            label = {\n                                Text(text = stringResource(MR.strings.popular))\n                            },\n                        )\n                        if ((screenModel.source as CatalogueSource).supportsLatest) {\n                            FilterChip(\n                                selected = state.listing == Listing.Latest,\n                                onClick = {\n                                    screenModel.resetFilters()\n                                    screenModel.setListing(Listing.Latest)\n                                },\n                                leadingIcon = {\n                                    Icon(\n                                        imageVector = Icons.Outlined.NewReleases,\n                                        contentDescription = null,\n                                        modifier = Modifier\n                                            .size(FilterChipDefaults.IconSize),\n                                    )\n                                },\n                                label = {\n                                    Text(text = stringResource(MR.strings.latest))\n                                },\n                            )\n                        }\n                        if (state.filters.isNotEmpty()) {\n                            FilterChip(\n                                selected = state.listing is Listing.Search,\n                                onClick = screenModel::openFilterSheet,\n                                leadingIcon = {\n                                    Icon(\n                                        imageVector = Icons.Outlined.FilterList,\n                                        contentDescription = null,\n                                        modifier = Modifier\n                                            .size(FilterChipDefaults.IconSize),\n                                    )\n                                },\n                                label = {\n                                    Text(text = stringResource(MR.strings.action_filter))\n                                },\n                            )\n                        }\n                    }\n\n                    HorizontalDivider()\n                }\n            },\n            snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n        ) { paddingValues ->\n            BrowseSourceContent(\n                source = screenModel.source,\n                mangaList = screenModel.mangaPagerFlowFlow.collectAsLazyPagingItems(),\n                columns = screenModel.getColumnsPreference(LocalConfiguration.current.orientation),\n                displayMode = screenModel.displayMode,\n                snackbarHostState = snackbarHostState,\n                contentPadding = paddingValues,\n                onWebViewClick = onWebViewClick,\n                onHelpClick = { uriHandler.openUri(Constants.URL_HELP) },\n                onLocalSourceHelpClick = onHelpClick,\n                onMangaClick = { navigator.push((MangaScreen(it.id, true))) },\n                onMangaLongClick = { manga ->\n                    scope.launchIO {\n                        val duplicates = screenModel.getDuplicateLibraryManga(manga)\n                        when {\n                            manga.favorite -> screenModel.setDialog(BrowseSourceScreenModel.Dialog.RemoveManga(manga))\n                            duplicates.isNotEmpty() -> screenModel.setDialog(\n                                BrowseSourceScreenModel.Dialog.AddDuplicateManga(manga, duplicates),\n                            )\n                            else -> screenModel.addFavorite(manga)\n                        }\n                        haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n                    }\n                },\n            )\n        }\n\n        val onDismissRequest = { screenModel.setDialog(null) }\n        when (val dialog = state.dialog) {\n            is BrowseSourceScreenModel.Dialog.Filter -> {\n                SourceFilterDialog(\n                    onDismissRequest = onDismissRequest,\n                    filters = state.filters,\n                    onReset = screenModel::resetFilters,\n                    onFilter = { screenModel.search(filters = state.filters) },\n                    onUpdate = screenModel::setFilters,\n                )\n            }\n            is BrowseSourceScreenModel.Dialog.AddDuplicateManga -> {\n                DuplicateMangaDialog(\n                    duplicates = dialog.duplicates,\n                    onDismissRequest = onDismissRequest,\n                    onConfirm = { screenModel.addFavorite(dialog.manga) },\n                    onOpenManga = { navigator.push(MangaScreen(it.id)) },\n                    onMigrate = { screenModel.setDialog(BrowseSourceScreenModel.Dialog.Migrate(dialog.manga, it)) },\n                )\n            }\n\n            is BrowseSourceScreenModel.Dialog.Migrate -> {\n                MigrateMangaDialog(\n                    current = dialog.current,\n                    target = dialog.target,\n                    // Initiated from the context of [dialog.target] so we show [dialog.current].\n                    onClickTitle = { navigator.push(MangaScreen(dialog.current.id)) },\n                    onDismissRequest = onDismissRequest,\n                )\n            }\n            is BrowseSourceScreenModel.Dialog.RemoveManga -> {\n                RemoveMangaDialog(\n                    onDismissRequest = onDismissRequest,\n                    onConfirm = {\n                        screenModel.changeMangaFavorite(dialog.manga)\n                    },\n                    mangaToRemove = dialog.manga,\n                )\n            }\n            is BrowseSourceScreenModel.Dialog.ChangeMangaCategory -> {\n                ChangeCategoryDialog(\n                    initialSelection = dialog.initialSelection,\n                    onDismissRequest = onDismissRequest,\n                    onEditCategories = { navigator.push(CategoryScreen()) },\n                    onConfirm = { include, _ ->\n                        screenModel.changeMangaFavorite(dialog.manga)\n                        screenModel.moveMangaToCategories(dialog.manga, include)\n                    },\n                )\n            }\n            else -> {}\n        }\n\n        LaunchedEffect(Unit) {\n            queryEvent.receiveAsFlow()\n                .collectLatest {\n                    when (it) {\n                        is SearchType.Genre -> screenModel.searchGenre(it.txt)\n                        is SearchType.Text -> screenModel.search(it.txt)\n                    }\n                }\n        }\n    }\n\n    suspend fun search(query: String) = queryEvent.send(SearchType.Text(query))\n    suspend fun searchGenre(name: String) = queryEvent.send(SearchType.Genre(name))\n\n    companion object {\n        private val queryEvent = Channel<SearchType>()\n    }\n\n    sealed class SearchType(val txt: String) {\n        class Text(txt: String) : SearchType(txt)\n        class Genre(txt: String) : SearchType(txt)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source.browse\n\nimport android.content.res.Configuration\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.unit.dp\nimport androidx.paging.Pager\nimport androidx.paging.PagingConfig\nimport androidx.paging.cachedIn\nimport androidx.paging.filter\nimport androidx.paging.map\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.preference.asState\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.source.interactor.GetIncognitoState\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.domain.track.interactor.AddTracks\nimport eu.kanade.presentation.util.ioCoroutineScope\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport eu.kanade.tachiyomi.util.removeCovers\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.emptyFlow\nimport kotlinx.coroutines.flow.firstOrNull\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.stateIn\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport tachiyomi.core.common.preference.CheckboxState\nimport tachiyomi.core.common.preference.mapAsCheckboxState\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.SetMangaCategories\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.chapter.interactor.SetMangaDefaultChapterFlags\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\nimport tachiyomi.domain.manga.model.toMangaUpdate\nimport tachiyomi.domain.source.interactor.GetRemoteManga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport eu.kanade.tachiyomi.source.model.Filter as SourceModelFilter\n\nclass BrowseSourceScreenModel(\n    private val sourceId: Long,\n    listingQuery: String?,\n    sourceManager: SourceManager = Injekt.get(),\n    sourcePreferences: SourcePreferences = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n    private val coverCache: CoverCache = Injekt.get(),\n    private val getRemoteManga: GetRemoteManga = Injekt.get(),\n    private val getDuplicateLibraryManga: GetDuplicateLibraryManga = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val setMangaCategories: SetMangaCategories = Injekt.get(),\n    private val setMangaDefaultChapterFlags: SetMangaDefaultChapterFlags = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n    private val addTracks: AddTracks = Injekt.get(),\n    private val getIncognitoState: GetIncognitoState = Injekt.get(),\n) : StateScreenModel<BrowseSourceScreenModel.State>(State(Listing.valueOf(listingQuery))) {\n\n    var displayMode by sourcePreferences.sourceDisplayMode.asState(screenModelScope)\n\n    val source = sourceManager.getOrStub(sourceId)\n\n    init {\n        if (source is CatalogueSource) {\n            mutableState.update {\n                var query: String? = null\n                var listing = it.listing\n\n                if (listing is Listing.Search) {\n                    query = listing.query\n                    listing = Listing.Search(query, source.getFilterList())\n                }\n\n                it.copy(\n                    listing = listing,\n                    filters = source.getFilterList(),\n                    toolbarQuery = query,\n                )\n            }\n        }\n\n        if (!getIncognitoState.await(source.id)) {\n            sourcePreferences.lastUsedSource.set(source.id)\n        }\n    }\n\n    /**\n     * Flow of Pager flow tied to [State.listing]\n     */\n    private val hideInLibraryItems = sourcePreferences.hideInLibraryItems.get()\n    val mangaPagerFlowFlow = state.map { it.listing }\n        .distinctUntilChanged()\n        .map { listing ->\n            Pager(PagingConfig(pageSize = 25)) {\n                getRemoteManga(sourceId, listing.query ?: \"\", listing.filters)\n            }.flow.map { pagingData ->\n                pagingData.map { manga ->\n                    getManga.subscribe(manga.url, manga.source)\n                        .map { it ?: manga }\n                        .stateIn(ioCoroutineScope)\n                }\n                    .filter { !hideInLibraryItems || !it.value.favorite }\n            }\n                .cachedIn(ioCoroutineScope)\n        }\n        .stateIn(ioCoroutineScope, SharingStarted.Lazily, emptyFlow())\n\n    fun getColumnsPreference(orientation: Int): GridCells {\n        val isLandscape = orientation == Configuration.ORIENTATION_LANDSCAPE\n        val columns = if (isLandscape) {\n            libraryPreferences.landscapeColumns\n        } else {\n            libraryPreferences.portraitColumns\n        }.get()\n        return if (columns == 0) GridCells.Adaptive(128.dp) else GridCells.Fixed(columns)\n    }\n\n    fun resetFilters() {\n        if (source !is CatalogueSource) return\n\n        mutableState.update { it.copy(filters = source.getFilterList()) }\n    }\n\n    fun setListing(listing: Listing) {\n        mutableState.update { it.copy(listing = listing, toolbarQuery = null) }\n    }\n\n    fun setFilters(filters: FilterList) {\n        if (source !is CatalogueSource) return\n\n        mutableState.update {\n            it.copy(\n                filters = filters,\n            )\n        }\n    }\n\n    fun search(query: String? = null, filters: FilterList? = null) {\n        if (source !is CatalogueSource) return\n\n        val input = state.value.listing as? Listing.Search\n            ?: Listing.Search(query = null, filters = source.getFilterList())\n\n        mutableState.update {\n            it.copy(\n                listing = input.copy(\n                    query = query ?: input.query,\n                    filters = filters ?: input.filters,\n                ),\n                toolbarQuery = query ?: input.query,\n            )\n        }\n    }\n\n    fun searchGenre(genreName: String) {\n        if (source !is CatalogueSource) return\n\n        val defaultFilters = source.getFilterList()\n        var genreExists = false\n\n        filter@ for (sourceFilter in defaultFilters) {\n            if (sourceFilter is SourceModelFilter.Group<*>) {\n                for (filter in sourceFilter.state) {\n                    if (filter is SourceModelFilter<*> && filter.name.equals(genreName, true)) {\n                        when (filter) {\n                            is SourceModelFilter.TriState -> filter.state = 1\n                            is SourceModelFilter.CheckBox -> filter.state = true\n                            else -> {}\n                        }\n                        genreExists = true\n                        break@filter\n                    }\n                }\n            } else if (sourceFilter is SourceModelFilter.Select<*>) {\n                val index = sourceFilter.values.filterIsInstance<String>()\n                    .indexOfFirst { it.equals(genreName, true) }\n\n                if (index != -1) {\n                    sourceFilter.state = index\n                    genreExists = true\n                    break\n                }\n            }\n        }\n\n        mutableState.update {\n            val listing = if (genreExists) {\n                Listing.Search(query = null, filters = defaultFilters)\n            } else {\n                Listing.Search(query = genreName, filters = defaultFilters)\n            }\n            it.copy(\n                filters = defaultFilters,\n                listing = listing,\n                toolbarQuery = listing.query,\n            )\n        }\n    }\n\n    /**\n     * Adds or removes a manga from the library.\n     *\n     * @param manga the manga to update.\n     */\n    fun changeMangaFavorite(manga: Manga) {\n        screenModelScope.launch {\n            var new = manga.copy(\n                favorite = !manga.favorite,\n                dateAdded = when (manga.favorite) {\n                    true -> 0\n                    false -> Instant.now().toEpochMilli()\n                },\n            )\n\n            if (!new.favorite) {\n                new = new.removeCovers(coverCache)\n            } else {\n                setMangaDefaultChapterFlags.await(manga)\n                addTracks.bindEnhancedTrackers(manga, source)\n            }\n\n            updateManga.await(new.toMangaUpdate())\n        }\n    }\n\n    fun addFavorite(manga: Manga) {\n        screenModelScope.launch {\n            val categories = getCategories()\n            val defaultCategoryId = libraryPreferences.defaultCategory.get()\n            val defaultCategory = categories.find { it.id == defaultCategoryId.toLong() }\n\n            when {\n                // Default category set\n                defaultCategory != null -> {\n                    moveMangaToCategories(manga, defaultCategory)\n\n                    changeMangaFavorite(manga)\n                }\n\n                // Automatic 'Default' or no categories\n                defaultCategoryId == 0 || categories.isEmpty() -> {\n                    moveMangaToCategories(manga)\n\n                    changeMangaFavorite(manga)\n                }\n\n                // Choose a category\n                else -> {\n                    val preselectedIds = getCategories.await(manga.id).map { it.id }\n                    setDialog(\n                        Dialog.ChangeMangaCategory(\n                            manga,\n                            categories.mapAsCheckboxState { it.id in preselectedIds }.toImmutableList(),\n                        ),\n                    )\n                }\n            }\n        }\n    }\n\n    /**\n     * Get user categories.\n     *\n     * @return List of categories, not including the default category\n     */\n    suspend fun getCategories(): List<Category> {\n        return getCategories.subscribe()\n            .firstOrNull()\n            ?.filterNot { it.isSystemCategory }\n            .orEmpty()\n    }\n\n    suspend fun getDuplicateLibraryManga(manga: Manga): List<MangaWithChapterCount> {\n        return getDuplicateLibraryManga.invoke(manga)\n    }\n\n    private fun moveMangaToCategories(manga: Manga, vararg categories: Category) {\n        moveMangaToCategories(manga, categories.filter { it.id != 0L }.map { it.id })\n    }\n\n    fun moveMangaToCategories(manga: Manga, categoryIds: List<Long>) {\n        screenModelScope.launchIO {\n            setMangaCategories.await(\n                mangaId = manga.id,\n                categoryIds = categoryIds.toList(),\n            )\n        }\n    }\n\n    fun openFilterSheet() {\n        setDialog(Dialog.Filter)\n    }\n\n    fun setDialog(dialog: Dialog?) {\n        mutableState.update { it.copy(dialog = dialog) }\n    }\n\n    fun setToolbarQuery(query: String?) {\n        mutableState.update { it.copy(toolbarQuery = query) }\n    }\n\n    sealed class Listing(open val query: String?, open val filters: FilterList) {\n        data object Popular : Listing(query = GetRemoteManga.QUERY_POPULAR, filters = FilterList())\n        data object Latest : Listing(query = GetRemoteManga.QUERY_LATEST, filters = FilterList())\n        data class Search(\n            override val query: String?,\n            override val filters: FilterList,\n        ) : Listing(query = query, filters = filters)\n\n        companion object {\n            fun valueOf(query: String?): Listing {\n                return when (query) {\n                    GetRemoteManga.QUERY_POPULAR -> Popular\n                    GetRemoteManga.QUERY_LATEST -> Latest\n                    else -> Search(query = query, filters = FilterList()) // filters are filled in later\n                }\n            }\n        }\n    }\n\n    sealed interface Dialog {\n        data object Filter : Dialog\n        data class RemoveManga(val manga: Manga) : Dialog\n        data class AddDuplicateManga(val manga: Manga, val duplicates: List<MangaWithChapterCount>) : Dialog\n        data class ChangeMangaCategory(\n            val manga: Manga,\n            val initialSelection: ImmutableList<CheckboxState.State<Category>>,\n        ) : Dialog\n        data class Migrate(val target: Manga, val current: Manga) : Dialog\n    }\n\n    @Immutable\n    data class State(\n        val listing: Listing,\n        val filters: FilterList = FilterList(),\n        val toolbarQuery: String? = null,\n        val dialog: Dialog? = null,\n    ) {\n        val isUserQuery get() = listing is Listing.Search && !listing.query.isNullOrEmpty()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterDialog.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source.browse\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.AdaptiveSheet\nimport eu.kanade.tachiyomi.source.model.Filter\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.CheckboxItem\nimport tachiyomi.presentation.core.components.CollapsibleBox\nimport tachiyomi.presentation.core.components.HeadingItem\nimport tachiyomi.presentation.core.components.SelectItem\nimport tachiyomi.presentation.core.components.SortItem\nimport tachiyomi.presentation.core.components.TextItem\nimport tachiyomi.presentation.core.components.TriStateItem\nimport tachiyomi.presentation.core.components.material.Button\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun SourceFilterDialog(\n    onDismissRequest: () -> Unit,\n    filters: FilterList,\n    onReset: () -> Unit,\n    onFilter: () -> Unit,\n    onUpdate: (FilterList) -> Unit,\n) {\n    val updateFilters = { onUpdate(filters) }\n\n    AdaptiveSheet(onDismissRequest = onDismissRequest) {\n        LazyColumn {\n            stickyHeader {\n                Row(\n                    modifier = Modifier\n                        .background(MaterialTheme.colorScheme.background)\n                        .padding(8.dp),\n                ) {\n                    TextButton(onClick = onReset) {\n                        Text(\n                            text = stringResource(MR.strings.action_reset),\n                            style = LocalTextStyle.current.copy(\n                                color = MaterialTheme.colorScheme.primary,\n                            ),\n                        )\n                    }\n\n                    Spacer(modifier = Modifier.weight(1f))\n\n                    Button(onClick = {\n                        onFilter()\n                        onDismissRequest()\n                    }) {\n                        Text(stringResource(MR.strings.action_filter))\n                    }\n                }\n                HorizontalDivider()\n            }\n\n            items(filters) {\n                FilterItem(it, updateFilters)\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun FilterItem(filter: Filter<*>, onUpdate: () -> Unit) {\n    when (filter) {\n        is Filter.Header -> {\n            HeadingItem(filter.name)\n        }\n        is Filter.Separator -> {\n            HorizontalDivider()\n        }\n        is Filter.CheckBox -> {\n            CheckboxItem(\n                label = filter.name,\n                checked = filter.state,\n            ) {\n                filter.state = !filter.state\n                onUpdate()\n            }\n        }\n        is Filter.TriState -> {\n            TriStateItem(\n                label = filter.name,\n                state = filter.state.toTriStateFilter(),\n            ) {\n                filter.state = filter.state.toTriStateFilter().next().toTriStateInt()\n                onUpdate()\n            }\n        }\n        is Filter.Text -> {\n            TextItem(\n                label = filter.name,\n                value = filter.state,\n            ) {\n                filter.state = it\n                onUpdate()\n            }\n        }\n        is Filter.Select<*> -> {\n            SelectItem(\n                label = filter.name,\n                options = filter.values,\n                selectedIndex = filter.state,\n            ) {\n                filter.state = it\n                onUpdate()\n            }\n        }\n        is Filter.Sort -> {\n            CollapsibleBox(\n                heading = filter.name,\n            ) {\n                Column {\n                    filter.values.mapIndexed { index, item ->\n                        val sortAscending = filter.state?.ascending\n                            ?.takeIf { index == filter.state?.index }\n                        SortItem(\n                            label = item,\n                            sortDescending = if (sortAscending != null) !sortAscending else null,\n                            onClick = {\n                                val ascending = if (index == filter.state?.index) {\n                                    !filter.state!!.ascending\n                                } else {\n                                    filter.state?.ascending ?: true\n                                }\n                                filter.state = Filter.Sort.Selection(\n                                    index = index,\n                                    ascending = ascending,\n                                )\n                                onUpdate()\n                            },\n                        )\n                    }\n                }\n            }\n        }\n        is Filter.Group<*> -> {\n            CollapsibleBox(\n                heading = filter.name,\n            ) {\n                Column {\n                    filter.state\n                        .filterIsInstance<Filter<*>>()\n                        .map { FilterItem(filter = it, onUpdate = onUpdate) }\n                }\n            }\n        }\n    }\n}\n\nprivate fun Int.toTriStateFilter(): TriState {\n    return when (this) {\n        Filter.TriState.STATE_IGNORE -> TriState.DISABLED\n        Filter.TriState.STATE_INCLUDE -> TriState.ENABLED_IS\n        Filter.TriState.STATE_EXCLUDE -> TriState.ENABLED_NOT\n        else -> throw IllegalStateException(\"Unknown TriState state: $this\")\n    }\n}\n\nprivate fun TriState.toTriStateInt(): Int {\n    return when (this) {\n        TriState.DISABLED -> Filter.TriState.STATE_IGNORE\n        TriState.ENABLED_IS -> Filter.TriState.STATE_INCLUDE\n        TriState.ENABLED_NOT -> Filter.TriState.STATE_EXCLUDE\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source.globalsearch\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.core.util.ifSourcesLoaded\nimport eu.kanade.presentation.browse.GlobalSearchScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass GlobalSearchScreen(\n    val searchQuery: String = \"\",\n    private val extensionFilter: String? = null,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        if (!ifSourcesLoaded()) {\n            LoadingScreen()\n            return\n        }\n\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel {\n            GlobalSearchScreenModel(\n                initialQuery = searchQuery,\n                initialExtensionFilter = extensionFilter,\n            )\n        }\n        val state by screenModel.state.collectAsState()\n        var showSingleLoadingScreen by remember {\n            mutableStateOf(searchQuery.isNotEmpty() && !extensionFilter.isNullOrEmpty() && state.total == 1)\n        }\n\n        if (showSingleLoadingScreen) {\n            LoadingScreen()\n\n            LaunchedEffect(state.items) {\n                when (val result = state.items.values.singleOrNull()) {\n                    SearchItemResult.Loading -> return@LaunchedEffect\n                    is SearchItemResult.Success -> {\n                        val manga = result.result.singleOrNull()\n                        if (manga != null) {\n                            navigator.replace(MangaScreen(manga.id, true))\n                        } else {\n                            // Backoff to result screen\n                            showSingleLoadingScreen = false\n                        }\n                    }\n                    else -> showSingleLoadingScreen = false\n                }\n            }\n        } else {\n            GlobalSearchScreen(\n                state = state,\n                navigateUp = navigator::pop,\n                onChangeSearchQuery = screenModel::updateSearchQuery,\n                onSearch = { screenModel.search() },\n                getManga = { screenModel.getManga(it) },\n                onChangeSearchFilter = screenModel::setSourceFilter,\n                onToggleResults = screenModel::toggleFilterResults,\n                onClickSource = {\n                    navigator.push(BrowseSourceScreen(it.id, state.searchQuery))\n                },\n                onClickItem = { navigator.push(MangaScreen(it.id, true)) },\n                onLongClickItem = { navigator.push(MangaScreen(it.id, true)) },\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source.globalsearch\n\nimport eu.kanade.tachiyomi.source.CatalogueSource\n\nclass GlobalSearchScreenModel(\n    initialQuery: String = \"\",\n    initialExtensionFilter: String? = null,\n) : SearchScreenModel(State(searchQuery = initialQuery)) {\n\n    init {\n        extensionFilter = initialExtensionFilter\n        if (initialQuery.isNotBlank() || !initialExtensionFilter.isNullOrBlank()) {\n            if (extensionFilter != null) {\n                // we're going to use custom extension filter instead\n                setSourceFilter(SourceFilter.All)\n            }\n            search()\n        }\n    }\n\n    override fun getEnabledSources(): List<CatalogueSource> {\n        return super.getEnabledSources()\n            .filter { state.value.sourceFilter != SourceFilter.PinnedOnly || \"${it.id}\" in pinnedSources }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.browse.source.globalsearch\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.produceState\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.presentation.util.ioCoroutineScope\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport kotlinx.collections.immutable.PersistentMap\nimport kotlinx.collections.immutable.mutate\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toPersistentMap\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.asCoroutineDispatcher\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.filterNotNull\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.isActive\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.withContext\nimport mihon.domain.manga.model.toDomainManga\nimport tachiyomi.core.common.preference.toggle\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.interactor.NetworkToLocalManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.concurrent.Executors\n\nabstract class SearchScreenModel(\n    initialState: State = State(),\n    sourcePreferences: SourcePreferences = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val extensionManager: ExtensionManager = Injekt.get(),\n    private val networkToLocalManga: NetworkToLocalManga = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val preferences: SourcePreferences = Injekt.get(),\n) : StateScreenModel<SearchScreenModel.State>(initialState) {\n\n    private val coroutineDispatcher = Executors.newFixedThreadPool(5).asCoroutineDispatcher()\n    private var searchJob: Job? = null\n\n    private val enabledLanguages = sourcePreferences.enabledLanguages.get()\n    private val disabledSources = sourcePreferences.disabledSources.get()\n    protected val pinnedSources = sourcePreferences.pinnedSources.get()\n\n    private var lastQuery: String? = null\n    private var lastSourceFilter: SourceFilter? = null\n\n    protected var extensionFilter: String? = null\n\n    open val sortComparator = { map: Map<CatalogueSource, SearchItemResult> ->\n        compareBy<CatalogueSource>(\n            { (map[it] as? SearchItemResult.Success)?.isEmpty ?: true },\n            { \"${it.id}\" !in pinnedSources },\n            { \"${it.name.lowercase()} (${it.lang})\" },\n        )\n    }\n\n    init {\n        screenModelScope.launch {\n            preferences.globalSearchFilterState.changes().collectLatest { state ->\n                mutableState.update { it.copy(onlyShowHasResults = state) }\n            }\n        }\n    }\n\n    @Composable\n    fun getManga(initialManga: Manga): androidx.compose.runtime.State<Manga> {\n        return produceState(initialValue = initialManga) {\n            getManga.subscribe(initialManga.url, initialManga.source)\n                .filterNotNull()\n                .collectLatest { manga ->\n                    value = manga\n                }\n        }\n    }\n\n    open fun getEnabledSources(): List<CatalogueSource> {\n        return sourceManager.getCatalogueSources()\n            .filter { it.lang in enabledLanguages && \"${it.id}\" !in disabledSources }\n            .sortedWith(\n                compareBy(\n                    { \"${it.id}\" !in pinnedSources },\n                    { \"${it.name.lowercase()} (${it.lang})\" },\n                ),\n            )\n    }\n\n    private fun getSelectedSources(): List<CatalogueSource> {\n        val enabledSources = getEnabledSources()\n\n        val filter = extensionFilter\n        if (filter.isNullOrEmpty()) {\n            return enabledSources\n        }\n\n        return extensionManager.installedExtensionsFlow.value\n            .filter { it.pkgName == filter }\n            .flatMap { it.sources }\n            .filterIsInstance<CatalogueSource>()\n            .filter { it in enabledSources }\n    }\n\n    fun updateSearchQuery(query: String?) {\n        mutableState.update { it.copy(searchQuery = query) }\n    }\n\n    fun setSourceFilter(filter: SourceFilter) {\n        mutableState.update { it.copy(sourceFilter = filter) }\n        search()\n    }\n\n    fun toggleFilterResults() {\n        preferences.globalSearchFilterState.toggle()\n    }\n\n    fun search() {\n        val query = state.value.searchQuery\n        val sourceFilter = state.value.sourceFilter\n\n        if (query.isNullOrBlank()) return\n\n        val sameQuery = this.lastQuery == query\n        if (sameQuery && this.lastSourceFilter == sourceFilter) return\n\n        this.lastQuery = query\n        this.lastSourceFilter = sourceFilter\n\n        searchJob?.cancel()\n\n        val sources = getSelectedSources()\n\n        // Reuse previous results if possible\n        if (sameQuery) {\n            val existingResults = state.value.items\n            updateItems(\n                sources\n                    .associateWith { existingResults[it] ?: SearchItemResult.Loading }\n                    .toPersistentMap(),\n            )\n        } else {\n            updateItems(\n                sources\n                    .associateWith { SearchItemResult.Loading }\n                    .toPersistentMap(),\n            )\n        }\n\n        searchJob = ioCoroutineScope.launch {\n            sources.map { source ->\n                async {\n                    if (state.value.items[source] !is SearchItemResult.Loading) {\n                        return@async\n                    }\n\n                    try {\n                        val page = withContext(coroutineDispatcher) {\n                            source.getSearchManga(1, query, source.getFilterList())\n                        }\n\n                        val titles = page.mangas\n                            .map { it.toDomainManga(source.id) }\n                            .distinctBy { it.url }\n                            .let { networkToLocalManga(it) }\n\n                        if (isActive) {\n                            updateItem(source, SearchItemResult.Success(titles))\n                        }\n                    } catch (e: Exception) {\n                        if (isActive) {\n                            updateItem(source, SearchItemResult.Error(e))\n                        }\n                    }\n                }\n            }\n                .awaitAll()\n        }\n    }\n\n    private fun updateItems(items: PersistentMap<CatalogueSource, SearchItemResult>) {\n        mutableState.update {\n            it.copy(\n                items = items\n                    .toSortedMap(sortComparator(items))\n                    .toPersistentMap(),\n            )\n        }\n    }\n\n    private fun updateItem(source: CatalogueSource, result: SearchItemResult) {\n        val newItems = state.value.items.mutate {\n            it[source] = result\n        }\n        updateItems(newItems)\n    }\n\n    fun setMigrateDialog(currentId: Long, target: Manga) {\n        screenModelScope.launchIO {\n            val current = getManga.await(currentId) ?: return@launchIO\n            mutableState.update { it.copy(dialog = Dialog.Migrate(target, current)) }\n        }\n    }\n\n    fun clearDialog() {\n        mutableState.update { it.copy(dialog = null) }\n    }\n\n    @Immutable\n    data class State(\n        val from: Manga? = null,\n        val searchQuery: String? = null,\n        val sourceFilter: SourceFilter = SourceFilter.PinnedOnly,\n        val onlyShowHasResults: Boolean = false,\n        val items: PersistentMap<CatalogueSource, SearchItemResult> = persistentMapOf(),\n        val dialog: Dialog? = null,\n    ) {\n        val progress: Int = items.count { it.value !is SearchItemResult.Loading }\n        val total: Int = items.size\n        val filteredItems = items.filter { (_, result) -> result.isVisible(onlyShowHasResults) }\n    }\n\n    sealed interface Dialog {\n        data class Migrate(val target: Manga, val current: Manga) : Dialog\n    }\n}\n\nenum class SourceFilter {\n    All,\n    PinnedOnly,\n}\n\nsealed interface SearchItemResult {\n    data object Loading : SearchItemResult\n\n    data class Error(\n        val throwable: Throwable,\n    ) : SearchItemResult\n\n    data class Success(\n        val result: List<Manga>,\n    ) : SearchItemResult {\n        val isEmpty: Boolean\n            get() = result.isEmpty()\n    }\n\n    fun isVisible(onlyShowHasResults: Boolean): Boolean {\n        return !onlyShowHasResults || (this is Success && !this.isEmpty)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.category\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.util.fastMap\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.category.CategoryScreen\nimport eu.kanade.presentation.category.components.CategoryCreateDialog\nimport eu.kanade.presentation.category.components.CategoryDeleteDialog\nimport eu.kanade.presentation.category.components.CategoryRenameDialog\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.flow.collectLatest\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass CategoryScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { CategoryScreenModel() }\n\n        val state by screenModel.state.collectAsState()\n\n        if (state is CategoryScreenState.Loading) {\n            LoadingScreen()\n            return\n        }\n\n        val successState = state as CategoryScreenState.Success\n\n        CategoryScreen(\n            state = successState,\n            onClickCreate = { screenModel.showDialog(CategoryDialog.Create) },\n            onClickRename = { screenModel.showDialog(CategoryDialog.Rename(it)) },\n            onClickDelete = { screenModel.showDialog(CategoryDialog.Delete(it)) },\n            onChangeOrder = screenModel::changeOrder,\n            navigateUp = navigator::pop,\n        )\n\n        when (val dialog = successState.dialog) {\n            null -> {}\n            CategoryDialog.Create -> {\n                CategoryCreateDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onCreate = screenModel::createCategory,\n                    categories = successState.categories.fastMap { it.name }.toImmutableList(),\n                )\n            }\n            is CategoryDialog.Rename -> {\n                CategoryRenameDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onRename = { screenModel.renameCategory(dialog.category, it) },\n                    categories = successState.categories.fastMap { it.name }.toImmutableList(),\n                    category = dialog.category.name,\n                )\n            }\n            is CategoryDialog.Delete -> {\n                CategoryDeleteDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    onDelete = { screenModel.deleteCategory(dialog.category.id) },\n                    category = dialog.category.name,\n                )\n            }\n        }\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest { event ->\n                if (event is CategoryEvent.LocalizedMessage) {\n                    context.toast(event.stringRes)\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.category\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport dev.icerock.moko.resources.StringResource\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport tachiyomi.domain.category.interactor.CreateCategoryWithName\nimport tachiyomi.domain.category.interactor.DeleteCategory\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.RenameCategory\nimport tachiyomi.domain.category.interactor.ReorderCategory\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass CategoryScreenModel(\n    private val getCategories: GetCategories = Injekt.get(),\n    private val createCategoryWithName: CreateCategoryWithName = Injekt.get(),\n    private val deleteCategory: DeleteCategory = Injekt.get(),\n    private val reorderCategory: ReorderCategory = Injekt.get(),\n    private val renameCategory: RenameCategory = Injekt.get(),\n) : StateScreenModel<CategoryScreenState>(CategoryScreenState.Loading) {\n\n    private val _events: Channel<CategoryEvent> = Channel()\n    val events = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launch {\n            getCategories.subscribe()\n                .collectLatest { categories ->\n                    mutableState.update {\n                        CategoryScreenState.Success(\n                            categories = categories\n                                .filterNot(Category::isSystemCategory)\n                                .toImmutableList(),\n                        )\n                    }\n                }\n        }\n    }\n\n    fun createCategory(name: String) {\n        screenModelScope.launch {\n            when (createCategoryWithName.await(name)) {\n                is CreateCategoryWithName.Result.InternalError -> _events.send(CategoryEvent.InternalError)\n                else -> {}\n            }\n        }\n    }\n\n    fun deleteCategory(categoryId: Long) {\n        screenModelScope.launch {\n            when (deleteCategory.await(categoryId = categoryId)) {\n                is DeleteCategory.Result.InternalError -> _events.send(CategoryEvent.InternalError)\n                else -> {}\n            }\n        }\n    }\n\n    fun changeOrder(category: Category, newIndex: Int) {\n        screenModelScope.launch {\n            when (reorderCategory.await(category, newIndex)) {\n                is ReorderCategory.Result.InternalError -> _events.send(CategoryEvent.InternalError)\n                else -> {}\n            }\n        }\n    }\n\n    fun renameCategory(category: Category, name: String) {\n        screenModelScope.launch {\n            when (renameCategory.await(category, name)) {\n                is RenameCategory.Result.InternalError -> _events.send(CategoryEvent.InternalError)\n                else -> {}\n            }\n        }\n    }\n\n    fun showDialog(dialog: CategoryDialog) {\n        mutableState.update {\n            when (it) {\n                CategoryScreenState.Loading -> it\n                is CategoryScreenState.Success -> it.copy(dialog = dialog)\n            }\n        }\n    }\n\n    fun dismissDialog() {\n        mutableState.update {\n            when (it) {\n                CategoryScreenState.Loading -> it\n                is CategoryScreenState.Success -> it.copy(dialog = null)\n            }\n        }\n    }\n}\n\nsealed interface CategoryDialog {\n    data object Create : CategoryDialog\n    data class Rename(val category: Category) : CategoryDialog\n    data class Delete(val category: Category) : CategoryDialog\n}\n\nsealed interface CategoryEvent {\n    sealed class LocalizedMessage(val stringRes: StringResource) : CategoryEvent\n    data object InternalError : LocalizedMessage(MR.strings.internal_error)\n}\n\nsealed interface CategoryScreenState {\n\n    @Immutable\n    data object Loading : CategoryScreenState\n\n    @Immutable\n    data class Success(\n        val categories: ImmutableList<Category>,\n        val dialog: CategoryDialog? = null,\n    ) : CategoryScreenState {\n\n        val isEmpty: Boolean\n            get() = categories.isEmpty()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.deeplink\n\nimport android.app.Activity\nimport android.content.Intent\nimport android.os.Bundle\nimport eu.kanade.tachiyomi.ui.main.MainActivity\n\nclass DeepLinkActivity : Activity() {\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n\n        intent.apply {\n            flags = flags or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK\n            setClass(applicationContext, MainActivity::class.java)\n        }\n        startActivity(intent)\n        finish()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.deeplink\n\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass DeepLinkScreen(\n    val query: String = \"\",\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel {\n            DeepLinkScreenModel(query = query)\n        }\n        val state by screenModel.state.collectAsState()\n        Scaffold(\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = stringResource(MR.strings.action_search_hint),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n        ) { contentPadding ->\n            when (state) {\n                is DeepLinkScreenModel.State.Loading -> {\n                    LoadingScreen(Modifier.padding(contentPadding))\n                }\n                is DeepLinkScreenModel.State.NoResults -> {\n                    navigator.replace(GlobalSearchScreen(query))\n                }\n                is DeepLinkScreenModel.State.Result -> {\n                    val resultState = state as DeepLinkScreenModel.State.Result\n                    if (resultState.chapterId == null) {\n                        navigator.replace(\n                            MangaScreen(\n                                resultState.manga.id,\n                                true,\n                            ),\n                        )\n                    } else {\n                        navigator.pop()\n                        ReaderActivity.newIntent(\n                            context,\n                            resultState.manga.id,\n                            resultState.chapterId,\n                        ).also(context::startActivity)\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.deeplink\n\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.chapter.interactor.SyncChaptersWithSource\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.online.ResolvableSource\nimport eu.kanade.tachiyomi.source.online.UriType\nimport kotlinx.coroutines.flow.update\nimport mihon.domain.manga.model.toDomainManga\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.chapter.interactor.GetChapterByUrlAndMangaId\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.interactor.NetworkToLocalManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass DeepLinkScreenModel(\n    query: String = \"\",\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val networkToLocalManga: NetworkToLocalManga = Injekt.get(),\n    private val getChapterByUrlAndMangaId: GetChapterByUrlAndMangaId = Injekt.get(),\n    private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get(),\n) : StateScreenModel<DeepLinkScreenModel.State>(State.Loading) {\n\n    init {\n        screenModelScope.launchIO {\n            val source = sourceManager.getCatalogueSources()\n                .filterIsInstance<ResolvableSource>()\n                .firstOrNull { it.getUriType(query) != UriType.Unknown }\n\n            val manga = source?.getManga(query)?.let {\n                networkToLocalManga(it.toDomainManga(source.id))\n            }\n\n            val chapter = if (source?.getUriType(query) == UriType.Chapter && manga != null) {\n                source.getChapter(query)?.let { getChapterFromSChapter(it, manga, source) }\n            } else {\n                null\n            }\n\n            mutableState.update {\n                if (manga == null) {\n                    State.NoResults\n                } else {\n                    if (chapter == null) {\n                        State.Result(manga)\n                    } else {\n                        State.Result(manga, chapter.id)\n                    }\n                }\n            }\n        }\n    }\n\n    private suspend fun getChapterFromSChapter(sChapter: SChapter, manga: Manga, source: Source): Chapter? {\n        val localChapter = getChapterByUrlAndMangaId.await(sChapter.url, manga.id)\n\n        return if (localChapter == null) {\n            val sourceChapters = source.getChapterList(manga.toSManga())\n            val newChapters = syncChaptersWithSource.await(sourceChapters, manga, source, false)\n            newChapters.find { it.url == sChapter.url }\n        } else {\n            localChapter\n        }\n    }\n\n    sealed interface State {\n        @Immutable\n        data object Loading : State\n\n        @Immutable\n        data object NoResults : State\n\n        @Immutable\n        data class Result(val manga: Manga, val chapterId: Long? = null) : State\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadAdapter.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.view.MenuItem\nimport eu.davidea.flexibleadapter.FlexibleAdapter\nimport eu.davidea.flexibleadapter.items.AbstractFlexibleItem\n\n/**\n * Adapter storing a list of downloads.\n *\n * @param downloadItemListener Listener called when an item of the list is released.\n */\nclass DownloadAdapter(val downloadItemListener: DownloadItemListener) : FlexibleAdapter<AbstractFlexibleItem<*>>(\n    null,\n    downloadItemListener,\n    true,\n) {\n\n    override fun shouldMove(fromPosition: Int, toPosition: Int): Boolean {\n        // Don't let sub-items changing group\n        return getHeaderOf(getItem(fromPosition)) == getHeaderOf(getItem(toPosition))\n    }\n\n    interface DownloadItemListener {\n        fun onItemReleased(position: Int)\n        fun onMenuItemClick(position: Int, menuItem: MenuItem)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHeaderHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.annotation.SuppressLint\nimport android.view.View\nimport androidx.recyclerview.widget.ItemTouchHelper\nimport eu.davidea.flexibleadapter.FlexibleAdapter\nimport eu.davidea.viewholders.ExpandableViewHolder\nimport eu.kanade.tachiyomi.databinding.DownloadHeaderBinding\n\nclass DownloadHeaderHolder(view: View, adapter: FlexibleAdapter<*>) : ExpandableViewHolder(view, adapter) {\n\n    private val binding = DownloadHeaderBinding.bind(view)\n\n    @SuppressLint(\"SetTextI18n\")\n    fun bind(item: DownloadHeaderItem) {\n        setDragHandleView(binding.reorder)\n        binding.title.text = \"${item.name} (${item.size})\"\n    }\n\n    override fun onActionStateChanged(position: Int, actionState: Int) {\n        super.onActionStateChanged(position, actionState)\n        if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) {\n            binding.container.isDragged = true\n            mAdapter.collapseAll()\n        }\n    }\n\n    override fun onItemReleased(position: Int) {\n        super.onItemReleased(position)\n        binding.container.isDragged = false\n        mAdapter.expandAll()\n        (mAdapter as DownloadAdapter).downloadItemListener.onItemReleased(position)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHeaderItem.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.view.View\nimport androidx.recyclerview.widget.RecyclerView\nimport eu.davidea.flexibleadapter.FlexibleAdapter\nimport eu.davidea.flexibleadapter.items.AbstractExpandableHeaderItem\nimport eu.davidea.flexibleadapter.items.IFlexible\nimport eu.kanade.tachiyomi.R\n\ndata class DownloadHeaderItem(\n    val id: Long,\n    val name: String,\n    val size: Int,\n) : AbstractExpandableHeaderItem<DownloadHeaderHolder, DownloadItem>() {\n\n    override fun getLayoutRes(): Int {\n        return R.layout.download_header\n    }\n\n    override fun createViewHolder(\n        view: View,\n        adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,\n    ): DownloadHeaderHolder {\n        return DownloadHeaderHolder(view, adapter)\n    }\n\n    override fun bindViewHolder(\n        adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,\n        holder: DownloadHeaderHolder,\n        position: Int,\n        payloads: List<Any?>?,\n    ) {\n        holder.bind(this)\n    }\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (javaClass != other?.javaClass) return false\n\n        other as DownloadHeaderItem\n\n        if (id != other.id) return false\n        if (name != other.name) return false\n        if (size != other.size) return false\n        if (subItemsCount != other.subItemsCount) return false\n        if (subItems !== other.subItems) return false\n\n        return true\n    }\n\n    override fun hashCode(): Int {\n        var result = id.hashCode()\n        result = 31 * result + name.hashCode()\n        result = 31 * result + size\n        result = 31 * result + subItems.hashCode()\n        return result\n    }\n\n    init {\n        isHidden = false\n        isExpanded = true\n        isSelectable = false\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.view.View\nimport androidx.recyclerview.widget.ItemTouchHelper\nimport eu.davidea.viewholders.FlexibleViewHolder\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.databinding.DownloadItemBinding\nimport eu.kanade.tachiyomi.util.view.popupMenu\n\n/**\n * Class used to hold the data of a download.\n * All the elements from the layout file \"download_item\" are available in this class.\n *\n * @param view the inflated view for this holder.\n * @constructor creates a new download holder.\n */\nclass DownloadHolder(private val view: View, val adapter: DownloadAdapter) :\n    FlexibleViewHolder(view, adapter) {\n\n    private val binding = DownloadItemBinding.bind(view)\n\n    init {\n        setDragHandleView(binding.reorder)\n        binding.menu.setOnClickListener { it.post { showPopupMenu(it) } }\n    }\n\n    private lateinit var download: Download\n\n    /**\n     * Binds this holder with the given category.\n     *\n     * @param category The category to bind.\n     */\n    fun bind(download: Download) {\n        this.download = download\n        // Update the chapter name.\n        binding.chapterTitle.text = download.chapter.name\n\n        // Update the manga title\n        binding.mangaFullTitle.text = download.manga.title\n\n        // Update the progress bar and the number of downloaded pages\n        val pages = download.pages\n        if (pages == null) {\n            binding.downloadProgress.progress = 0\n            binding.downloadProgress.max = 1\n            binding.downloadProgressText.text = \"\"\n        } else {\n            binding.downloadProgress.max = pages.size * 100\n            notifyProgress()\n            notifyDownloadedPages()\n        }\n    }\n\n    /**\n     * Updates the progress bar of the download.\n     */\n    fun notifyProgress() {\n        val pages = download.pages ?: return\n        if (binding.downloadProgress.max == 1) {\n            binding.downloadProgress.max = pages.size * 100\n        }\n        binding.downloadProgress.setProgressCompat(download.totalProgress, true)\n    }\n\n    /**\n     * Updates the text field of the number of downloaded pages.\n     */\n    fun notifyDownloadedPages() {\n        val pages = download.pages ?: return\n        binding.downloadProgressText.text = \"${download.downloadedImages}/${pages.size}\"\n    }\n\n    override fun onItemReleased(position: Int) {\n        super.onItemReleased(position)\n        adapter.downloadItemListener.onItemReleased(position)\n        binding.container.isDragged = false\n    }\n\n    override fun onActionStateChanged(position: Int, actionState: Int) {\n        super.onActionStateChanged(position, actionState)\n        if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) {\n            binding.container.isDragged = true\n        }\n    }\n\n    private fun showPopupMenu(view: View) {\n        view.popupMenu(\n            menuRes = R.menu.download_single,\n            initMenu = {\n                findItem(R.id.move_to_top).isVisible = bindingAdapterPosition > 1\n                findItem(R.id.move_to_bottom).isVisible =\n                    bindingAdapterPosition != adapter.itemCount - 1\n            },\n            onMenuItemClick = {\n                adapter.downloadItemListener.onMenuItemClick(bindingAdapterPosition, this)\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadItem.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.view.View\nimport androidx.recyclerview.widget.RecyclerView\nimport eu.davidea.flexibleadapter.FlexibleAdapter\nimport eu.davidea.flexibleadapter.items.AbstractSectionableItem\nimport eu.davidea.flexibleadapter.items.IFlexible\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.download.model.Download\n\nclass DownloadItem(\n    val download: Download,\n    header: DownloadHeaderItem,\n) : AbstractSectionableItem<DownloadHolder, DownloadHeaderItem>(header) {\n\n    override fun getLayoutRes(): Int {\n        return R.layout.download_item\n    }\n\n    /**\n     * Returns a new view holder for this item.\n     *\n     * @param view The view of this item.\n     * @param adapter The adapter of this item.\n     */\n    override fun createViewHolder(\n        view: View,\n        adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,\n    ): DownloadHolder {\n        return DownloadHolder(view, adapter as DownloadAdapter)\n    }\n\n    /**\n     * Binds the given view holder with this item.\n     *\n     * @param adapter The adapter of this item.\n     * @param holder The holder to bind.\n     * @param position The position of this item in the adapter.\n     * @param payloads List of partial changes.\n     */\n    override fun bindViewHolder(\n        adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,\n        holder: DownloadHolder,\n        position: Int,\n        payloads: MutableList<Any>,\n    ) {\n        holder.bind(download)\n    }\n\n    /**\n     * Returns true if this item is draggable.\n     */\n    override fun isDraggable(): Boolean {\n        return true\n    }\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (other is DownloadItem) {\n            return download.chapter.id == other.download.chapter.id\n        }\n        return false\n    }\n\n    override fun hashCode(): Int {\n        return download.chapter.id.toInt()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.view.LayoutInflater\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.Sort\nimport androidx.compose.material.icons.filled.PlayArrow\nimport androidx.compose.material.icons.outlined.Pause\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.SmallExtendedFloatingActionButton\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TopAppBarDefaults\nimport androidx.compose.material3.animateFloatingActionButton\nimport androidx.compose.material3.rememberTopAppBarState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.derivedStateOf\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.geometry.Offset\nimport androidx.compose.ui.input.nestedscroll.NestedScrollConnection\nimport androidx.compose.ui.input.nestedscroll.NestedScrollSource\nimport androidx.compose.ui.input.nestedscroll.nestedScroll\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.Velocity\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport androidx.compose.ui.viewinterop.AndroidView\nimport androidx.core.view.ViewCompat\nimport androidx.core.view.updatePadding\nimport androidx.recyclerview.widget.LinearLayoutManager\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.components.DropdownMenu\nimport eu.kanade.presentation.components.NestedMenuItem\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.databinding.DownloadListBinding\nimport kotlinx.collections.immutable.persistentListOf\nimport tachiyomi.core.common.util.lang.launchUI\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.Pill\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport kotlin.math.roundToInt\n\nobject DownloadQueueScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val scope = rememberCoroutineScope()\n        val screenModel = rememberScreenModel { DownloadQueueScreenModel() }\n        val downloadList by screenModel.state.collectAsState()\n        val downloadCount by remember {\n            derivedStateOf { downloadList.sumOf { it.subItems.size } }\n        }\n\n        val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState())\n        var fabExpanded by remember { mutableStateOf(true) }\n        val nestedScrollConnection = remember {\n            // All this lines just for fab state :/\n            object : NestedScrollConnection {\n                override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {\n                    fabExpanded = available.y >= 0\n                    return scrollBehavior.nestedScrollConnection.onPreScroll(available, source)\n                }\n\n                override fun onPostScroll(consumed: Offset, available: Offset, source: NestedScrollSource): Offset {\n                    return scrollBehavior.nestedScrollConnection.onPostScroll(consumed, available, source)\n                }\n\n                override suspend fun onPreFling(available: Velocity): Velocity {\n                    return scrollBehavior.nestedScrollConnection.onPreFling(available)\n                }\n\n                override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity {\n                    return scrollBehavior.nestedScrollConnection.onPostFling(consumed, available)\n                }\n            }\n        }\n\n        Scaffold(\n            topBar = {\n                AppBar(\n                    titleContent = {\n                        Row(verticalAlignment = Alignment.CenterVertically) {\n                            Text(\n                                text = stringResource(MR.strings.label_download_queue),\n                                maxLines = 1,\n                                modifier = Modifier.weight(1f, false),\n                                overflow = TextOverflow.Ellipsis,\n                            )\n                            if (downloadCount > 0) {\n                                val pillAlpha = if (isSystemInDarkTheme()) 0.12f else 0.08f\n                                Pill(\n                                    text = \"$downloadCount\",\n                                    modifier = Modifier.padding(start = 4.dp),\n                                    color = MaterialTheme.colorScheme.onBackground\n                                        .copy(alpha = pillAlpha),\n                                    fontSize = 14.sp,\n                                )\n                            }\n                        }\n                    },\n                    navigateUp = navigator::pop,\n                    actions = {\n                        if (downloadList.isNotEmpty()) {\n                            var sortExpanded by remember { mutableStateOf(false) }\n                            val onDismissRequest = { sortExpanded = false }\n                            DropdownMenu(\n                                expanded = sortExpanded,\n                                onDismissRequest = onDismissRequest,\n                            ) {\n                                NestedMenuItem(\n                                    text = { Text(text = stringResource(MR.strings.action_order_by_upload_date)) },\n                                    children = { closeMenu ->\n                                        DropdownMenuItem(\n                                            text = { Text(text = stringResource(MR.strings.action_newest)) },\n                                            onClick = {\n                                                screenModel.reorderQueue(\n                                                    { it.download.chapter.dateUpload },\n                                                    true,\n                                                )\n                                                closeMenu()\n                                            },\n                                        )\n                                        DropdownMenuItem(\n                                            text = { Text(text = stringResource(MR.strings.action_oldest)) },\n                                            onClick = {\n                                                screenModel.reorderQueue(\n                                                    { it.download.chapter.dateUpload },\n                                                    false,\n                                                )\n                                                closeMenu()\n                                            },\n                                        )\n                                    },\n                                )\n                                NestedMenuItem(\n                                    text = { Text(text = stringResource(MR.strings.action_order_by_chapter_number)) },\n                                    children = { closeMenu ->\n                                        DropdownMenuItem(\n                                            text = { Text(text = stringResource(MR.strings.action_asc)) },\n                                            onClick = {\n                                                screenModel.reorderQueue(\n                                                    { it.download.chapter.chapterNumber },\n                                                    false,\n                                                )\n                                                closeMenu()\n                                            },\n                                        )\n                                        DropdownMenuItem(\n                                            text = { Text(text = stringResource(MR.strings.action_desc)) },\n                                            onClick = {\n                                                screenModel.reorderQueue(\n                                                    { it.download.chapter.chapterNumber },\n                                                    true,\n                                                )\n                                                closeMenu()\n                                            },\n                                        )\n                                    },\n                                )\n                            }\n\n                            AppBarActions(\n                                persistentListOf(\n                                    AppBar.Action(\n                                        title = stringResource(MR.strings.action_sort),\n                                        icon = Icons.AutoMirrored.Outlined.Sort,\n                                        onClick = { sortExpanded = true },\n                                    ),\n                                    AppBar.OverflowAction(\n                                        title = stringResource(MR.strings.action_cancel_all),\n                                        onClick = { screenModel.clearQueue() },\n                                    ),\n                                ),\n                            )\n                        }\n                    },\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n            floatingActionButton = {\n                val isRunning by screenModel.isDownloaderRunning.collectAsState()\n                SmallExtendedFloatingActionButton(\n                    text = {\n                        val id = if (isRunning) {\n                            MR.strings.action_pause\n                        } else {\n                            MR.strings.action_resume\n                        }\n                        Text(text = stringResource(id))\n                    },\n                    icon = {\n                        val icon = if (isRunning) {\n                            Icons.Outlined.Pause\n                        } else {\n                            Icons.Filled.PlayArrow\n                        }\n                        Icon(imageVector = icon, contentDescription = null)\n                    },\n                    onClick = {\n                        if (isRunning) {\n                            screenModel.pauseDownloads()\n                        } else {\n                            screenModel.startDownloads()\n                        }\n                    },\n                    expanded = fabExpanded,\n                    modifier = Modifier.animateFloatingActionButton(\n                        visible = downloadList.isNotEmpty(),\n                        alignment = Alignment.BottomEnd,\n                    ),\n                )\n            },\n        ) { contentPadding ->\n            if (downloadList.isEmpty()) {\n                EmptyScreen(\n                    stringRes = MR.strings.information_no_downloads,\n                    modifier = Modifier.padding(contentPadding),\n                )\n                return@Scaffold\n            }\n\n            val density = LocalDensity.current\n            val layoutDirection = LocalLayoutDirection.current\n            val left = with(density) { contentPadding.calculateLeftPadding(layoutDirection).toPx().roundToInt() }\n            val top = with(density) { contentPadding.calculateTopPadding().toPx().roundToInt() }\n            val right = with(density) { contentPadding.calculateRightPadding(layoutDirection).toPx().roundToInt() }\n            val bottom = with(density) { contentPadding.calculateBottomPadding().toPx().roundToInt() }\n\n            Box(modifier = Modifier.nestedScroll(nestedScrollConnection)) {\n                AndroidView(\n                    modifier = Modifier.fillMaxWidth(),\n                    factory = { context ->\n                        screenModel.controllerBinding = DownloadListBinding.inflate(LayoutInflater.from(context))\n                        screenModel.adapter = DownloadAdapter(screenModel.listener)\n                        screenModel.controllerBinding.root.adapter = screenModel.adapter\n                        screenModel.adapter?.isHandleDragEnabled = true\n                        screenModel.controllerBinding.root.layoutManager = LinearLayoutManager(context)\n\n                        ViewCompat.setNestedScrollingEnabled(screenModel.controllerBinding.root, true)\n\n                        scope.launchUI {\n                            screenModel.getDownloadStatusFlow()\n                                .collect(screenModel::onStatusChange)\n                        }\n                        scope.launchUI {\n                            screenModel.getDownloadProgressFlow()\n                                .collect(screenModel::onUpdateDownloadedPages)\n                        }\n\n                        screenModel.controllerBinding.root\n                    },\n                    update = {\n                        screenModel.controllerBinding.root\n                            .updatePadding(\n                                left = left,\n                                top = top,\n                                right = right,\n                                bottom = bottom,\n                            )\n\n                        screenModel.adapter?.updateDataSet(downloadList)\n                    },\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.download\n\nimport android.view.MenuItem\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.databinding.DownloadListBinding\nimport eu.kanade.tachiyomi.source.model.Page\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.debounce\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.stateIn\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass DownloadQueueScreenModel(\n    private val downloadManager: DownloadManager = Injekt.get(),\n) : ScreenModel {\n\n    private val _state = MutableStateFlow(emptyList<DownloadHeaderItem>())\n    val state = _state.asStateFlow()\n\n    lateinit var controllerBinding: DownloadListBinding\n\n    /**\n     * Adapter containing the active downloads.\n     */\n    var adapter: DownloadAdapter? = null\n\n    /**\n     * Map of jobs for active downloads.\n     */\n    private val progressJobs = mutableMapOf<Download, Job>()\n\n    val listener = object : DownloadAdapter.DownloadItemListener {\n        /**\n         * Called when an item is released from a drag.\n         *\n         * @param position The position of the released item.\n         */\n        override fun onItemReleased(position: Int) {\n            val adapter = adapter ?: return\n            val downloads = adapter.headerItems.flatMap { header ->\n                adapter.getSectionItems(header).map { item ->\n                    (item as DownloadItem).download\n                }\n            }\n            reorder(downloads)\n        }\n\n        /**\n         * Called when the menu item of a download is pressed\n         *\n         * @param position The position of the item\n         * @param menuItem The menu Item pressed\n         */\n        override fun onMenuItemClick(position: Int, menuItem: MenuItem) {\n            val item = adapter?.getItem(position) ?: return\n            if (item is DownloadItem) {\n                when (menuItem.itemId) {\n                    R.id.move_to_top, R.id.move_to_bottom -> {\n                        val headerItems = adapter?.headerItems ?: return\n                        val newDownloads = mutableListOf<Download>()\n                        headerItems.forEach { headerItem ->\n                            headerItem as DownloadHeaderItem\n                            if (headerItem == item.header) {\n                                headerItem.removeSubItem(item)\n                                if (menuItem.itemId == R.id.move_to_top) {\n                                    headerItem.addSubItem(0, item)\n                                } else {\n                                    headerItem.addSubItem(item)\n                                }\n                            }\n                            newDownloads.addAll(headerItem.subItems.map { it.download })\n                        }\n                        reorder(newDownloads)\n                    }\n                    R.id.move_to_top_series, R.id.move_to_bottom_series -> {\n                        val (selectedSeries, otherSeries) = adapter?.currentItems\n                            ?.filterIsInstance<DownloadItem>()\n                            ?.map(DownloadItem::download)\n                            ?.partition { item.download.manga.id == it.manga.id }\n                            ?: Pair(emptyList(), emptyList())\n                        if (menuItem.itemId == R.id.move_to_top_series) {\n                            reorder(selectedSeries + otherSeries)\n                        } else {\n                            reorder(otherSeries + selectedSeries)\n                        }\n                    }\n                    R.id.cancel_download -> {\n                        cancel(listOf(item.download))\n                    }\n                    R.id.cancel_series -> {\n                        val allDownloadsForSeries = adapter?.currentItems\n                            ?.filterIsInstance<DownloadItem>()\n                            ?.filter { item.download.manga.id == it.download.manga.id }\n                            ?.map(DownloadItem::download)\n                        if (!allDownloadsForSeries.isNullOrEmpty()) {\n                            cancel(allDownloadsForSeries)\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    init {\n        screenModelScope.launch {\n            downloadManager.queueState\n                .map { downloads ->\n                    downloads\n                        .groupBy { it.source }\n                        .map { entry ->\n                            DownloadHeaderItem(entry.key.id, entry.key.name, entry.value.size).apply {\n                                addSubItems(0, entry.value.map { DownloadItem(it, this) })\n                            }\n                        }\n                }\n                .collect { newList -> _state.update { newList } }\n        }\n    }\n\n    override fun onDispose() {\n        for (job in progressJobs.values) {\n            job.cancel()\n        }\n        progressJobs.clear()\n        adapter = null\n    }\n\n    val isDownloaderRunning = downloadManager.isDownloaderRunning\n        .stateIn(screenModelScope, SharingStarted.WhileSubscribed(5000), false)\n\n    fun getDownloadStatusFlow() = downloadManager.statusFlow()\n    fun getDownloadProgressFlow() = downloadManager.progressFlow()\n\n    fun startDownloads() {\n        downloadManager.startDownloads()\n    }\n\n    fun pauseDownloads() {\n        downloadManager.pauseDownloads()\n    }\n\n    fun clearQueue() {\n        downloadManager.clearQueue()\n    }\n\n    fun reorder(downloads: List<Download>) {\n        downloadManager.reorderQueue(downloads)\n    }\n\n    fun cancel(downloads: List<Download>) {\n        downloadManager.cancelQueuedDownloads(downloads)\n    }\n\n    fun <R : Comparable<R>> reorderQueue(selector: (DownloadItem) -> R, reverse: Boolean = false) {\n        val adapter = adapter ?: return\n        val newDownloads = mutableListOf<Download>()\n        adapter.headerItems.forEach { headerItem ->\n            headerItem as DownloadHeaderItem\n            headerItem.subItems = headerItem.subItems.sortedBy(selector).toMutableList().apply {\n                if (reverse) {\n                    reverse()\n                }\n            }\n            newDownloads.addAll(headerItem.subItems.map { it.download })\n        }\n        reorder(newDownloads)\n    }\n\n    /**\n     * Called when the status of a download changes.\n     *\n     * @param download the download whose status has changed.\n     */\n    fun onStatusChange(download: Download) {\n        when (download.status) {\n            Download.State.DOWNLOADING -> {\n                launchProgressJob(download)\n                // Initial update of the downloaded pages\n                onUpdateDownloadedPages(download)\n            }\n            Download.State.DOWNLOADED -> {\n                cancelProgressJob(download)\n                onUpdateProgress(download)\n                onUpdateDownloadedPages(download)\n            }\n            Download.State.ERROR -> cancelProgressJob(download)\n            else -> {\n                /* unused */\n            }\n        }\n    }\n\n    /**\n     * Observe the progress of a download and notify the view.\n     *\n     * @param download the download to observe its progress.\n     */\n    private fun launchProgressJob(download: Download) {\n        val job = screenModelScope.launch {\n            while (download.pages == null) {\n                delay(50)\n            }\n\n            val progressFlows = download.pages!!.map(Page::progressFlow)\n            combine(progressFlows, Array<Int>::sum)\n                .distinctUntilChanged()\n                .debounce(50)\n                .collectLatest {\n                    onUpdateProgress(download)\n                }\n        }\n\n        // Avoid leaking jobs\n        progressJobs.remove(download)?.cancel()\n\n        progressJobs[download] = job\n    }\n\n    /**\n     * Unsubscribes the given download from the progress subscriptions.\n     *\n     * @param download the download to unsubscribe.\n     */\n    private fun cancelProgressJob(download: Download) {\n        progressJobs.remove(download)?.cancel()\n    }\n\n    /**\n     * Called when the progress of a download changes.\n     *\n     * @param download the download whose progress has changed.\n     */\n    private fun onUpdateProgress(download: Download) {\n        getHolder(download)?.notifyProgress()\n    }\n\n    /**\n     * Called when a page of a download is downloaded.\n     *\n     * @param download the download whose page has been downloaded.\n     */\n    fun onUpdateDownloadedPages(download: Download) {\n        getHolder(download)?.notifyDownloadedPages()\n    }\n\n    /**\n     * Returns the holder for the given download.\n     *\n     * @param download the download to find.\n     * @return the holder of the download or null if it's not bound.\n     */\n    private fun getHolder(download: Download): DownloadHolder? {\n        return controllerBinding.root.findViewHolderForItemId(download.chapter.id) as? DownloadHolder\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.history\n\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.runtime.Immutable\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.util.insertSeparators\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.track.interactor.AddTracks\nimport eu.kanade.presentation.history.HistoryUiModel\nimport eu.kanade.tachiyomi.util.lang.toLocalDate\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.flatMapLatest\nimport kotlinx.coroutines.flow.flowOn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.preference.CheckboxState\nimport tachiyomi.core.common.preference.mapAsCheckboxState\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.SetMangaCategories\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.history.interactor.GetHistory\nimport tachiyomi.domain.history.interactor.GetNextChapters\nimport tachiyomi.domain.history.interactor.RemoveHistory\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass HistoryScreenModel(\n    private val addTracks: AddTracks = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val getDuplicateLibraryManga: GetDuplicateLibraryManga = Injekt.get(),\n    private val getHistory: GetHistory = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val getNextChapters: GetNextChapters = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n    private val removeHistory: RemoveHistory = Injekt.get(),\n    private val setMangaCategories: SetMangaCategories = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n    val snackbarHostState: SnackbarHostState = SnackbarHostState(),\n    private val sourceManager: SourceManager = Injekt.get(),\n) : StateScreenModel<HistoryScreenModel.State>(State()) {\n\n    private val _events: Channel<Event> = Channel(Channel.UNLIMITED)\n    val events: Flow<Event> = _events.receiveAsFlow()\n\n    init {\n        screenModelScope.launch {\n            state.map { it.searchQuery }\n                .distinctUntilChanged()\n                .flatMapLatest { query ->\n                    getHistory.subscribe(query ?: \"\")\n                        .distinctUntilChanged()\n                        .catch { error ->\n                            logcat(LogPriority.ERROR, error)\n                            _events.send(Event.InternalError)\n                        }\n                        .map { it.toHistoryUiModels() }\n                        .flowOn(Dispatchers.IO)\n                }\n                .collect { newList -> mutableState.update { it.copy(list = newList) } }\n        }\n    }\n\n    private fun List<HistoryWithRelations>.toHistoryUiModels(): List<HistoryUiModel> {\n        return map { HistoryUiModel.Item(it) }\n            .insertSeparators { before, after ->\n                val beforeDate = before?.item?.readAt?.time?.toLocalDate()\n                val afterDate = after?.item?.readAt?.time?.toLocalDate()\n                when {\n                    beforeDate != afterDate && afterDate != null -> HistoryUiModel.Header(afterDate)\n                    // Return null to avoid adding a separator between two items.\n                    else -> null\n                }\n            }\n    }\n\n    suspend fun getNextChapter(): Chapter? {\n        return withIOContext { getNextChapters.await(onlyUnread = false).firstOrNull() }\n    }\n\n    fun getNextChapterForManga(mangaId: Long, chapterId: Long) {\n        screenModelScope.launchIO {\n            sendNextChapterEvent(getNextChapters.await(mangaId, chapterId, onlyUnread = false))\n        }\n    }\n\n    private suspend fun sendNextChapterEvent(chapters: List<Chapter>) {\n        val chapter = chapters.firstOrNull()\n        _events.send(Event.OpenChapter(chapter))\n    }\n\n    fun removeFromHistory(history: HistoryWithRelations) {\n        screenModelScope.launchIO {\n            removeHistory.await(history)\n        }\n    }\n\n    fun removeAllFromHistory(mangaId: Long) {\n        screenModelScope.launchIO {\n            removeHistory.await(mangaId)\n        }\n    }\n\n    fun removeAllHistory() {\n        screenModelScope.launchIO {\n            val result = removeHistory.awaitAll()\n            if (!result) return@launchIO\n            _events.send(Event.HistoryCleared)\n        }\n    }\n\n    fun updateSearchQuery(query: String?) {\n        mutableState.update { it.copy(searchQuery = query) }\n    }\n\n    fun setDialog(dialog: Dialog?) {\n        mutableState.update { it.copy(dialog = dialog) }\n    }\n\n    /**\n     * Get user categories.\n     *\n     * @return List of categories, not including the default category\n     */\n    suspend fun getCategories(): List<Category> {\n        return getCategories.await().filterNot { it.isSystemCategory }\n    }\n\n    private fun moveMangaToCategory(mangaId: Long, categories: Category?) {\n        val categoryIds = listOfNotNull(categories).map { it.id }\n        moveMangaToCategory(mangaId, categoryIds)\n    }\n\n    private fun moveMangaToCategory(mangaId: Long, categoryIds: List<Long>) {\n        screenModelScope.launchIO {\n            setMangaCategories.await(mangaId, categoryIds)\n        }\n    }\n\n    fun moveMangaToCategoriesAndAddToLibrary(manga: Manga, categories: List<Long>) {\n        moveMangaToCategory(manga.id, categories)\n        if (manga.favorite) return\n\n        screenModelScope.launchIO {\n            updateManga.awaitUpdateFavorite(manga.id, true)\n        }\n    }\n\n    private suspend fun getMangaCategoryIds(manga: Manga): List<Long> {\n        return getCategories.await(manga.id)\n            .map { it.id }\n    }\n\n    fun addFavorite(mangaId: Long) {\n        screenModelScope.launchIO {\n            val manga = getManga.await(mangaId) ?: return@launchIO\n\n            val duplicates = getDuplicateLibraryManga(manga)\n            if (duplicates.isNotEmpty()) {\n                mutableState.update { it.copy(dialog = Dialog.DuplicateManga(manga, duplicates)) }\n                return@launchIO\n            }\n\n            addFavorite(manga)\n        }\n    }\n\n    fun addFavorite(manga: Manga) {\n        screenModelScope.launchIO {\n            // Move to default category if applicable\n            val categories = getCategories()\n            val defaultCategoryId = libraryPreferences.defaultCategory.get().toLong()\n            val defaultCategory = categories.find { it.id == defaultCategoryId }\n\n            when {\n                // Default category set\n                defaultCategory != null -> {\n                    val result = updateManga.awaitUpdateFavorite(manga.id, true)\n                    if (!result) return@launchIO\n                    moveMangaToCategory(manga.id, defaultCategory)\n                }\n\n                // Automatic 'Default' or no categories\n                defaultCategoryId == 0L || categories.isEmpty() -> {\n                    val result = updateManga.awaitUpdateFavorite(manga.id, true)\n                    if (!result) return@launchIO\n                    moveMangaToCategory(manga.id, null)\n                }\n\n                // Choose a category\n                else -> showChangeCategoryDialog(manga)\n            }\n\n            // Sync with tracking services if applicable\n            addTracks.bindEnhancedTrackers(manga, sourceManager.getOrStub(manga.source))\n        }\n    }\n\n    fun showMigrateDialog(target: Manga, current: Manga) {\n        mutableState.update { currentState ->\n            currentState.copy(dialog = Dialog.Migrate(target = target, current = current))\n        }\n    }\n\n    fun showChangeCategoryDialog(manga: Manga) {\n        screenModelScope.launch {\n            val categories = getCategories()\n            val selection = getMangaCategoryIds(manga)\n            mutableState.update { currentState ->\n                currentState.copy(\n                    dialog = Dialog.ChangeCategory(\n                        manga = manga,\n                        initialSelection = categories.mapAsCheckboxState { it.id in selection }.toImmutableList(),\n                    ),\n                )\n            }\n        }\n    }\n\n    @Immutable\n    data class State(\n        val searchQuery: String? = null,\n        val list: List<HistoryUiModel>? = null,\n        val dialog: Dialog? = null,\n    )\n\n    sealed interface Dialog {\n        data object DeleteAll : Dialog\n        data class Delete(val history: HistoryWithRelations) : Dialog\n        data class DuplicateManga(val manga: Manga, val duplicates: List<MangaWithChapterCount>) : Dialog\n        data class ChangeCategory(\n            val manga: Manga,\n            val initialSelection: ImmutableList<CheckboxState<Category>>,\n        ) : Dialog\n        data class Migrate(val target: Manga, val current: Manga) : Dialog\n    }\n\n    sealed interface Event {\n        data class OpenChapter(val chapter: Chapter?) : Event\n        data object InternalError : Event\n        data object HistoryCleared : Event\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.history\n\nimport android.content.Context\nimport androidx.compose.animation.graphics.res.animatedVectorResource\nimport androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter\nimport androidx.compose.animation.graphics.vector.AnimatedImageVector\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport cafe.adriel.voyager.navigator.tab.LocalTabNavigator\nimport cafe.adriel.voyager.navigator.tab.TabOptions\nimport eu.kanade.presentation.category.components.ChangeCategoryDialog\nimport eu.kanade.presentation.history.HistoryScreen\nimport eu.kanade.presentation.history.components.HistoryDeleteAllDialog\nimport eu.kanade.presentation.history.components.HistoryDeleteDialog\nimport eu.kanade.presentation.manga.DuplicateMangaDialog\nimport eu.kanade.presentation.util.Tab\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.category.CategoryScreen\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport mihon.feature.migration.dialog.MigrateMangaDialog\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\ndata object HistoryTab : Tab {\n\n    private val snackbarHostState = SnackbarHostState()\n\n    private val resumeLastChapterReadEvent = Channel<Unit>()\n\n    override val options: TabOptions\n        @Composable\n        get() {\n            val isSelected = LocalTabNavigator.current.current.key == key\n            val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_history_enter)\n            return TabOptions(\n                index = 2u,\n                title = stringResource(MR.strings.label_recent_manga),\n                icon = rememberAnimatedVectorPainter(image, isSelected),\n            )\n        }\n\n    override suspend fun onReselect(navigator: Navigator) {\n        resumeLastChapterReadEvent.send(Unit)\n    }\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val context = LocalContext.current\n        val screenModel = rememberScreenModel { HistoryScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        HistoryScreen(\n            state = state,\n            snackbarHostState = snackbarHostState,\n            onSearchQueryChange = screenModel::updateSearchQuery,\n            onClickCover = { navigator.push(MangaScreen(it)) },\n            onClickResume = screenModel::getNextChapterForManga,\n            onDialogChange = screenModel::setDialog,\n            onClickFavorite = screenModel::addFavorite,\n        )\n\n        val onDismissRequest = { screenModel.setDialog(null) }\n        when (val dialog = state.dialog) {\n            is HistoryScreenModel.Dialog.Delete -> {\n                HistoryDeleteDialog(\n                    onDismissRequest = onDismissRequest,\n                    onDelete = { all ->\n                        if (all) {\n                            screenModel.removeAllFromHistory(dialog.history.mangaId)\n                        } else {\n                            screenModel.removeFromHistory(dialog.history)\n                        }\n                    },\n                )\n            }\n            is HistoryScreenModel.Dialog.DeleteAll -> {\n                HistoryDeleteAllDialog(\n                    onDismissRequest = onDismissRequest,\n                    onDelete = screenModel::removeAllHistory,\n                )\n            }\n            is HistoryScreenModel.Dialog.DuplicateManga -> {\n                DuplicateMangaDialog(\n                    duplicates = dialog.duplicates,\n                    onDismissRequest = onDismissRequest,\n                    onConfirm = { screenModel.addFavorite(dialog.manga) },\n                    onOpenManga = { navigator.push(MangaScreen(it.id)) },\n                    onMigrate = { screenModel.showMigrateDialog(dialog.manga, it) },\n                )\n            }\n            is HistoryScreenModel.Dialog.ChangeCategory -> {\n                ChangeCategoryDialog(\n                    initialSelection = dialog.initialSelection,\n                    onDismissRequest = onDismissRequest,\n                    onEditCategories = { navigator.push(CategoryScreen()) },\n                    onConfirm = { include, _ ->\n                        screenModel.moveMangaToCategoriesAndAddToLibrary(dialog.manga, include)\n                    },\n                )\n            }\n            is HistoryScreenModel.Dialog.Migrate -> {\n                MigrateMangaDialog(\n                    current = dialog.current,\n                    target = dialog.target,\n                    // Initiated from the context of [dialog.target] so we show [dialog.current].\n                    onClickTitle = { navigator.push(MangaScreen(dialog.current.id)) },\n                    onDismissRequest = onDismissRequest,\n                )\n            }\n            null -> {}\n        }\n\n        LaunchedEffect(state.list) {\n            if (state.list != null) {\n                (context as? MainActivity)?.ready = true\n            }\n        }\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest { e ->\n                when (e) {\n                    HistoryScreenModel.Event.InternalError ->\n                        snackbarHostState.showSnackbar(context.stringResource(MR.strings.internal_error))\n                    HistoryScreenModel.Event.HistoryCleared ->\n                        snackbarHostState.showSnackbar(context.stringResource(MR.strings.clear_history_completed))\n                    is HistoryScreenModel.Event.OpenChapter -> openChapter(context, e.chapter)\n                }\n            }\n        }\n\n        LaunchedEffect(Unit) {\n            resumeLastChapterReadEvent.receiveAsFlow().collectLatest {\n                openChapter(context, screenModel.getNextChapter())\n            }\n        }\n    }\n\n    private suspend fun openChapter(context: Context, chapter: Chapter?) {\n        if (chapter != null) {\n            val intent = ReaderActivity.newIntent(context, chapter.mangaId, chapter.id)\n            context.startActivity(intent)\n        } else {\n            snackbarHostState.showSnackbar(context.stringResource(MR.strings.no_next_chapter))\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.home\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.animation.AnimatedContent\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.animation.expandVertically\nimport androidx.compose.animation.shrinkVertically\nimport androidx.compose.animation.togetherWith\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.consumeWindowInsets\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.Badge\nimport androidx.compose.material3.BadgedBox\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.NavigationBarItem\nimport androidx.compose.material3.NavigationRailItem\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.produceState\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.semantics.contentDescription\nimport androidx.compose.ui.semantics.semantics\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.util.fastForEach\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport cafe.adriel.voyager.navigator.tab.LocalTabNavigator\nimport cafe.adriel.voyager.navigator.tab.TabNavigator\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.presentation.util.isTabletUi\nimport eu.kanade.tachiyomi.ui.browse.BrowseTab\nimport eu.kanade.tachiyomi.ui.download.DownloadQueueScreen\nimport eu.kanade.tachiyomi.ui.history.HistoryTab\nimport eu.kanade.tachiyomi.ui.library.LibraryTab\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.more.MoreTab\nimport eu.kanade.tachiyomi.ui.updates.UpdatesTab\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.launch\nimport soup.compose.material.motion.animation.materialFadeThroughIn\nimport soup.compose.material.motion.animation.materialFadeThroughOut\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.NavigationBar\nimport tachiyomi.presentation.core.components.material.NavigationRail\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nobject HomeScreen : Screen() {\n\n    private val librarySearchEvent = Channel<String>()\n    private val openTabEvent = Channel<Tab>()\n    private val showBottomNavEvent = Channel<Boolean>()\n\n    @Suppress(\"ConstPropertyName\")\n    private const val TabFadeDuration = 200\n\n    @Suppress(\"ConstPropertyName\")\n    private const val TabNavigatorKey = \"HomeTabs\"\n\n    private val TABS = listOf(\n        LibraryTab,\n        UpdatesTab,\n        HistoryTab,\n        BrowseTab,\n        MoreTab,\n    )\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        TabNavigator(\n            tab = LibraryTab,\n            key = TabNavigatorKey,\n        ) { tabNavigator ->\n            // Provide usable navigator to content screen\n            CompositionLocalProvider(LocalNavigator provides navigator) {\n                Scaffold(\n                    startBar = {\n                        if (isTabletUi()) {\n                            NavigationRail {\n                                TABS.fastForEach {\n                                    NavigationRailItem(it)\n                                }\n                            }\n                        }\n                    },\n                    bottomBar = {\n                        if (!isTabletUi()) {\n                            val bottomNavVisible by produceState(initialValue = true) {\n                                showBottomNavEvent.receiveAsFlow().collectLatest { value = it }\n                            }\n                            AnimatedVisibility(\n                                visible = bottomNavVisible,\n                                enter = expandVertically(),\n                                exit = shrinkVertically(),\n                            ) {\n                                NavigationBar {\n                                    TABS.fastForEach {\n                                        NavigationBarItem(it)\n                                    }\n                                }\n                            }\n                        }\n                    },\n                    contentWindowInsets = WindowInsets(0),\n                ) { contentPadding ->\n                    Box(\n                        modifier = Modifier\n                            .padding(contentPadding)\n                            .consumeWindowInsets(contentPadding),\n                    ) {\n                        AnimatedContent(\n                            targetState = tabNavigator.current,\n                            transitionSpec = {\n                                materialFadeThroughIn(initialScale = 1f, durationMillis = TabFadeDuration) togetherWith\n                                    materialFadeThroughOut(durationMillis = TabFadeDuration)\n                            },\n                            label = \"tabContent\",\n                        ) {\n                            tabNavigator.saveableState(key = \"currentTab\", it) {\n                                it.Content()\n                            }\n                        }\n                    }\n                }\n            }\n\n            val goToLibraryTab = { tabNavigator.current = LibraryTab }\n\n            BackHandler(enabled = tabNavigator.current != LibraryTab, onBack = goToLibraryTab)\n\n            LaunchedEffect(Unit) {\n                launch {\n                    librarySearchEvent.receiveAsFlow().collectLatest {\n                        goToLibraryTab()\n                        LibraryTab.search(it)\n                    }\n                }\n                launch {\n                    openTabEvent.receiveAsFlow().collectLatest {\n                        tabNavigator.current = when (it) {\n                            is Tab.Library -> LibraryTab\n                            Tab.Updates -> UpdatesTab\n                            Tab.History -> HistoryTab\n                            is Tab.Browse -> {\n                                if (it.toExtensions) {\n                                    BrowseTab.showExtension()\n                                }\n                                BrowseTab\n                            }\n                            is Tab.More -> MoreTab\n                        }\n\n                        if (it is Tab.Library && it.mangaIdToOpen != null) {\n                            navigator.push(MangaScreen(it.mangaIdToOpen))\n                        }\n                        if (it is Tab.More && it.toDownloads) {\n                            navigator.push(DownloadQueueScreen)\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    @Composable\n    private fun RowScope.NavigationBarItem(tab: eu.kanade.presentation.util.Tab) {\n        val tabNavigator = LocalTabNavigator.current\n        val navigator = LocalNavigator.currentOrThrow\n        val scope = rememberCoroutineScope()\n        val selected = tabNavigator.current::class == tab::class\n        NavigationBarItem(\n            selected = selected,\n            onClick = {\n                if (!selected) {\n                    tabNavigator.current = tab\n                } else {\n                    scope.launch { tab.onReselect(navigator) }\n                }\n            },\n            icon = { NavigationIconItem(tab) },\n            label = {\n                Text(\n                    text = tab.options.title,\n                    style = MaterialTheme.typography.labelLarge,\n                    maxLines = 1,\n                    overflow = TextOverflow.Ellipsis,\n                )\n            },\n            alwaysShowLabel = true,\n        )\n    }\n\n    @Composable\n    fun NavigationRailItem(tab: eu.kanade.presentation.util.Tab) {\n        val tabNavigator = LocalTabNavigator.current\n        val navigator = LocalNavigator.currentOrThrow\n        val scope = rememberCoroutineScope()\n        val selected = tabNavigator.current::class == tab::class\n        NavigationRailItem(\n            selected = selected,\n            onClick = {\n                if (!selected) {\n                    tabNavigator.current = tab\n                } else {\n                    scope.launch { tab.onReselect(navigator) }\n                }\n            },\n            icon = { NavigationIconItem(tab) },\n            label = {\n                Text(\n                    text = tab.options.title,\n                    style = MaterialTheme.typography.labelLarge,\n                    maxLines = 1,\n                    overflow = TextOverflow.Ellipsis,\n                )\n            },\n            alwaysShowLabel = true,\n        )\n    }\n\n    @Composable\n    private fun NavigationIconItem(tab: eu.kanade.presentation.util.Tab) {\n        BadgedBox(\n            badge = {\n                when {\n                    tab is UpdatesTab -> {\n                        val count by produceState(initialValue = 0) {\n                            val pref = Injekt.get<LibraryPreferences>()\n                            combine(\n                                pref.newShowUpdatesCount.changes(),\n                                pref.newUpdatesCount.changes(),\n                            ) { show, count -> if (show) count else 0 }\n                                .collectLatest { value = it }\n                        }\n                        if (count > 0) {\n                            Badge {\n                                val desc = pluralStringResource(\n                                    MR.plurals.notification_chapters_generic,\n                                    count = count,\n                                    count,\n                                )\n                                Text(\n                                    text = count.toString(),\n                                    modifier = Modifier.semantics { contentDescription = desc },\n                                )\n                            }\n                        }\n                    }\n                    BrowseTab::class.isInstance(tab) -> {\n                        val count by produceState(initialValue = 0) {\n                            Injekt.get<SourcePreferences>().extensionUpdatesCount.changes()\n                                .collectLatest { value = it }\n                        }\n                        if (count > 0) {\n                            Badge {\n                                val desc = pluralStringResource(\n                                    MR.plurals.update_check_notification_ext_updates,\n                                    count = count,\n                                    count,\n                                )\n                                Text(\n                                    text = count.toString(),\n                                    modifier = Modifier.semantics { contentDescription = desc },\n                                )\n                            }\n                        }\n                    }\n                }\n            },\n        ) {\n            Icon(\n                painter = tab.options.icon!!,\n                contentDescription = tab.options.title,\n            )\n        }\n    }\n\n    suspend fun search(query: String) {\n        librarySearchEvent.send(query)\n    }\n\n    suspend fun openTab(tab: Tab) {\n        openTabEvent.send(tab)\n    }\n\n    suspend fun showBottomNav(show: Boolean) {\n        showBottomNavEvent.send(show)\n    }\n\n    sealed interface Tab {\n        data class Library(val mangaIdToOpen: Long? = null) : Tab\n        data object Updates : Tab\n        data object History : Tab\n        data class Browse(val toExtensions: Boolean = false) : Tab\n        data class More(val toDownloads: Boolean) : Tab\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt",
    "content": "package eu.kanade.tachiyomi.ui.library\n\nimport eu.kanade.tachiyomi.source.getNameForMangaInfo\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.source.local.LocalSource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nprivate const val LOCAL_SOURCE_ID_ALIAS = \"local\"\n\ndata class LibraryItem(\n    val libraryManga: LibraryManga,\n    val downloadCount: Long = -1,\n    val unreadCount: Long = -1,\n    val isLocal: Boolean = false,\n    val sourceLanguage: String = \"\",\n    private val sourceManager: SourceManager = Injekt.get(),\n) {\n    val id: Long = libraryManga.id\n\n    /**\n     * Checks if a query matches the manga\n     *\n     * @param constraint the query to check.\n     * @return true if the manga matches the query, false otherwise.\n     */\n    fun matches(constraint: String): Boolean {\n        val source = sourceManager.getOrStub(libraryManga.manga.source)\n        val sourceName by lazy { source.getNameForMangaInfo() }\n        if (constraint.startsWith(\"id:\", true)) {\n            return id == constraint.substringAfter(\"id:\").toLongOrNull()\n        } else if (constraint.startsWith(\"src:\", true)) {\n            val querySource = constraint.substringAfter(\"src:\")\n            return if (querySource.equals(LOCAL_SOURCE_ID_ALIAS, ignoreCase = true)) {\n                source.id == LocalSource.ID\n            } else {\n                source.id == querySource.toLongOrNull()\n            }\n        }\n        return libraryManga.manga.title.contains(constraint, true) ||\n            (libraryManga.manga.author?.contains(constraint, true) ?: false) ||\n            (libraryManga.manga.artist?.contains(constraint, true) ?: false) ||\n            (libraryManga.manga.description?.contains(constraint, true) ?: false) ||\n            constraint.split(\",\").map { it.trim() }.all { subconstraint ->\n                checkNegatableConstraint(subconstraint) {\n                    sourceName.contains(it, true) ||\n                        (libraryManga.manga.genre?.any { genre -> genre.equals(it, true) } ?: false)\n                }\n            }\n    }\n\n    /**\n     * Checks a predicate on a negatable constraint. If the constraint starts with a minus character,\n     * the minus is stripped and the result of the predicate is inverted.\n     *\n     * @param constraint the argument to the predicate. Inverts the predicate if it starts with '-'.\n     * @param predicate the check to be run against the constraint.\n     * @return !predicate(x) if constraint = \"-x\", otherwise predicate(constraint)\n     */\n    private fun checkNegatableConstraint(\n        constraint: String,\n        predicate: (String) -> Boolean,\n    ): Boolean {\n        return if (constraint.startsWith(\"-\")) {\n            !predicate(constraint.substringAfter(\"-\").trimStart())\n        } else {\n            predicate(constraint)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.library\n\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.ui.util.fastAny\nimport androidx.compose.ui.util.fastFilter\nimport androidx.compose.ui.util.fastMap\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.preference.PreferenceMutableState\nimport eu.kanade.core.preference.asState\nimport eu.kanade.core.util.fastFilterNot\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.chapter.interactor.SetReadStatus\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.presentation.components.SEARCH_DEBOUNCE_MILLIS\nimport eu.kanade.presentation.library.components.LibraryToolbarTitle\nimport eu.kanade.presentation.manga.DownloadAction\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.util.chapter.getNextUnread\nimport eu.kanade.tachiyomi.util.removeCovers\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.debounce\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.dropWhile\nimport kotlinx.coroutines.flow.flatMapLatest\nimport kotlinx.coroutines.flow.flowOf\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.flow.updateAndGet\nimport mihon.core.common.utils.mutate\nimport tachiyomi.core.common.preference.CheckboxState\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.util.lang.compareToWithCollator\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.SetMangaCategories\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.chapter.interactor.GetBookmarkedChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.history.interactor.GetNextChapters\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.library.model.LibrarySort\nimport tachiyomi.domain.library.model.sort\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetLibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.model.applyFilter\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.track.interactor.GetTracksPerManga\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport kotlin.random.Random\n\nclass LibraryScreenModel(\n    private val getLibraryManga: GetLibraryManga = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val getTracksPerManga: GetTracksPerManga = Injekt.get(),\n    private val getNextChapters: GetNextChapters = Injekt.get(),\n    private val getChaptersByMangaId: GetChaptersByMangaId = Injekt.get(),\n    private val getBookmarkedChaptersByMangaId: GetBookmarkedChaptersByMangaId = Injekt.get(),\n    private val setReadStatus: SetReadStatus = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n    private val setMangaCategories: SetMangaCategories = Injekt.get(),\n    private val preferences: BasePreferences = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n    private val coverCache: CoverCache = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val downloadManager: DownloadManager = Injekt.get(),\n    private val downloadCache: DownloadCache = Injekt.get(),\n    private val trackerManager: TrackerManager = Injekt.get(),\n) : StateScreenModel<LibraryScreenModel.State>(State()) {\n\n    init {\n        mutableState.update { state ->\n            state.copy(activeCategoryIndex = libraryPreferences.lastUsedCategory.get())\n        }\n        screenModelScope.launchIO {\n            combine(\n                state.map { it.searchQuery }.distinctUntilChanged().debounce(SEARCH_DEBOUNCE_MILLIS),\n                getCategories.subscribe(),\n                getFavoritesFlow(),\n                combine(getTracksPerManga.subscribe(), getTrackingFiltersFlow(), ::Pair),\n                getLibraryItemPreferencesFlow(),\n            ) { searchQuery, categories, favorites, (tracksMap, trackingFilters), itemPreferences ->\n                val showSystemCategory = favorites.any { it.libraryManga.categories.contains(0) }\n                val filteredFavorites = favorites\n                    .applyFilters(tracksMap, trackingFilters, itemPreferences)\n                    .let { if (searchQuery == null) it else it.filter { m -> m.matches(searchQuery) } }\n\n                LibraryData(\n                    isInitialized = true,\n                    showSystemCategory = showSystemCategory,\n                    categories = categories,\n                    favorites = filteredFavorites,\n                    tracksMap = tracksMap,\n                    loggedInTrackerIds = trackingFilters.keys,\n                )\n            }\n                .distinctUntilChanged()\n                .collectLatest { libraryData ->\n                    mutableState.update { state ->\n                        state.copy(libraryData = libraryData)\n                    }\n                }\n        }\n\n        screenModelScope.launchIO {\n            state\n                .dropWhile { !it.libraryData.isInitialized }\n                .map { it.libraryData }\n                .distinctUntilChanged()\n                .map { data ->\n                    data.favorites\n                        .applyGrouping(data.categories, data.showSystemCategory)\n                        .applySort(data.favoritesById, data.tracksMap, data.loggedInTrackerIds)\n                }\n                .collectLatest {\n                    mutableState.update { state ->\n                        state.copy(\n                            isLoading = false,\n                            groupedFavorites = it,\n                        )\n                    }\n                }\n        }\n\n        combine(\n            libraryPreferences.categoryTabs.changes(),\n            libraryPreferences.categoryNumberOfItems.changes(),\n            libraryPreferences.showContinueReadingButton.changes(),\n        ) { a, b, c -> arrayOf(a, b, c) }\n            .onEach { (showCategoryTabs, showMangaCount, showMangaContinueButton) ->\n                mutableState.update { state ->\n                    state.copy(\n                        showCategoryTabs = showCategoryTabs,\n                        showMangaCount = showMangaCount,\n                        showMangaContinueButton = showMangaContinueButton,\n                    )\n                }\n            }\n            .launchIn(screenModelScope)\n\n        combine(\n            getLibraryItemPreferencesFlow(),\n            getTrackingFiltersFlow(),\n        ) { prefs, trackFilters ->\n            listOf(\n                prefs.filterDownloaded,\n                prefs.filterUnread,\n                prefs.filterStarted,\n                prefs.filterBookmarked,\n                prefs.filterCompleted,\n                prefs.filterIntervalCustom,\n                *trackFilters.values.toTypedArray(),\n            )\n                .any { it != TriState.DISABLED }\n        }\n            .distinctUntilChanged()\n            .onEach {\n                mutableState.update { state ->\n                    state.copy(hasActiveFilters = it)\n                }\n            }\n            .launchIn(screenModelScope)\n    }\n\n    private fun List<LibraryItem>.applyFilters(\n        trackMap: Map<Long, List<Track>>,\n        trackingFilter: Map<Long, TriState>,\n        preferences: ItemPreferences,\n    ): List<LibraryItem> {\n        val downloadedOnly = preferences.globalFilterDownloaded\n        val skipOutsideReleasePeriod = preferences.skipOutsideReleasePeriod\n        val filterDownloaded = if (downloadedOnly) TriState.ENABLED_IS else preferences.filterDownloaded\n        val filterUnread = preferences.filterUnread\n        val filterStarted = preferences.filterStarted\n        val filterBookmarked = preferences.filterBookmarked\n        val filterCompleted = preferences.filterCompleted\n        val filterIntervalCustom = preferences.filterIntervalCustom\n\n        val isNotLoggedInAnyTrack = trackingFilter.isEmpty()\n\n        val excludedTracks = trackingFilter.mapNotNull { if (it.value == TriState.ENABLED_NOT) it.key else null }\n        val includedTracks = trackingFilter.mapNotNull { if (it.value == TriState.ENABLED_IS) it.key else null }\n        val trackFiltersIsIgnored = includedTracks.isEmpty() && excludedTracks.isEmpty()\n\n        val filterFnDownloaded: (LibraryItem) -> Boolean = {\n            applyFilter(filterDownloaded) {\n                it.libraryManga.manga.isLocal() ||\n                    it.downloadCount > 0 ||\n                    downloadManager.getDownloadCount(it.libraryManga.manga) > 0\n            }\n        }\n\n        val filterFnUnread: (LibraryItem) -> Boolean = {\n            applyFilter(filterUnread) { it.libraryManga.unreadCount > 0 }\n        }\n\n        val filterFnStarted: (LibraryItem) -> Boolean = {\n            applyFilter(filterStarted) { it.libraryManga.hasStarted }\n        }\n\n        val filterFnBookmarked: (LibraryItem) -> Boolean = {\n            applyFilter(filterBookmarked) { it.libraryManga.hasBookmarks }\n        }\n\n        val filterFnCompleted: (LibraryItem) -> Boolean = {\n            applyFilter(filterCompleted) { it.libraryManga.manga.status.toInt() == SManga.COMPLETED }\n        }\n\n        val filterFnIntervalCustom: (LibraryItem) -> Boolean = {\n            if (skipOutsideReleasePeriod) {\n                applyFilter(filterIntervalCustom) { it.libraryManga.manga.fetchInterval < 0 }\n            } else {\n                true\n            }\n        }\n\n        val filterFnTracking: (LibraryItem) -> Boolean = tracking@{ item ->\n            if (isNotLoggedInAnyTrack || trackFiltersIsIgnored) return@tracking true\n\n            val mangaTracks = trackMap[item.id].orEmpty().map { it.trackerId }\n\n            val isExcluded = excludedTracks.isNotEmpty() && mangaTracks.fastAny { it in excludedTracks }\n            val isIncluded = includedTracks.isEmpty() || mangaTracks.fastAny { it in includedTracks }\n\n            !isExcluded && isIncluded\n        }\n\n        return fastFilter {\n            filterFnDownloaded(it) &&\n                filterFnUnread(it) &&\n                filterFnStarted(it) &&\n                filterFnBookmarked(it) &&\n                filterFnCompleted(it) &&\n                filterFnIntervalCustom(it) &&\n                filterFnTracking(it)\n        }\n    }\n\n    private fun List<LibraryItem>.applyGrouping(\n        categories: List<Category>,\n        showSystemCategory: Boolean,\n    ): Map<Category, List</* LibraryItem */ Long>> {\n        val groupCache = mutableMapOf</* Category */ Long, MutableList</* LibraryItem */ Long>>()\n        forEach { item ->\n            item.libraryManga.categories.forEach { categoryId ->\n                groupCache.getOrPut(categoryId) { mutableListOf() }.add(item.id)\n            }\n        }\n        return categories.filter { showSystemCategory || !it.isSystemCategory }\n            .associateWith { groupCache[it.id]?.toList().orEmpty() }\n    }\n\n    private fun Map<Category, List</* LibraryItem */ Long>>.applySort(\n        favoritesById: Map<Long, LibraryItem>,\n        trackMap: Map<Long, List<Track>>,\n        loggedInTrackerIds: Set<Long>,\n    ): Map<Category, List</* LibraryItem */ Long>> {\n        val sortAlphabetically: (LibraryItem, LibraryItem) -> Int = { manga1, manga2 ->\n            val title1 = manga1.libraryManga.manga.title.lowercase()\n            val title2 = manga2.libraryManga.manga.title.lowercase()\n            title1.compareToWithCollator(title2)\n        }\n\n        val defaultTrackerScoreSortValue = -1.0\n        val trackerScores by lazy {\n            val trackerMap = trackerManager.getAll(loggedInTrackerIds).associateBy { e -> e.id }\n            trackMap.mapValues { entry ->\n                when {\n                    entry.value.isEmpty() -> null\n                    else ->\n                        entry.value\n                            .mapNotNull { trackerMap[it.trackerId]?.get10PointScore(it) }\n                            .average()\n                }\n            }\n        }\n\n        fun LibrarySort.comparator(): Comparator<LibraryItem> = Comparator { manga1, manga2 ->\n            when (this.type) {\n                LibrarySort.Type.Alphabetical -> {\n                    sortAlphabetically(manga1, manga2)\n                }\n                LibrarySort.Type.LastRead -> {\n                    manga1.libraryManga.lastRead.compareTo(manga2.libraryManga.lastRead)\n                }\n                LibrarySort.Type.LastUpdate -> {\n                    manga1.libraryManga.manga.lastUpdate.compareTo(manga2.libraryManga.manga.lastUpdate)\n                }\n                LibrarySort.Type.UnreadCount -> when {\n                    // Ensure unread content comes first\n                    manga1.libraryManga.unreadCount == manga2.libraryManga.unreadCount -> 0\n                    manga1.libraryManga.unreadCount == 0L -> if (this.isAscending) 1 else -1\n                    manga2.libraryManga.unreadCount == 0L -> if (this.isAscending) -1 else 1\n                    else -> manga1.libraryManga.unreadCount.compareTo(manga2.libraryManga.unreadCount)\n                }\n                LibrarySort.Type.TotalChapters -> {\n                    manga1.libraryManga.totalChapters.compareTo(manga2.libraryManga.totalChapters)\n                }\n                LibrarySort.Type.LatestChapter -> {\n                    manga1.libraryManga.latestUpload.compareTo(manga2.libraryManga.latestUpload)\n                }\n                LibrarySort.Type.ChapterFetchDate -> {\n                    manga1.libraryManga.chapterFetchedAt.compareTo(manga2.libraryManga.chapterFetchedAt)\n                }\n                LibrarySort.Type.DateAdded -> {\n                    manga1.libraryManga.manga.dateAdded.compareTo(manga2.libraryManga.manga.dateAdded)\n                }\n                LibrarySort.Type.TrackerMean -> {\n                    val item1Score = trackerScores[manga1.id] ?: defaultTrackerScoreSortValue\n                    val item2Score = trackerScores[manga2.id] ?: defaultTrackerScoreSortValue\n                    item1Score.compareTo(item2Score)\n                }\n                LibrarySort.Type.Random -> {\n                    error(\"Why Are We Still Here? Just To Suffer?\")\n                }\n            }\n        }\n\n        return mapValues { (key, value) ->\n            if (key.sort.type == LibrarySort.Type.Random) {\n                return@mapValues value.shuffled(Random(libraryPreferences.randomSortSeed.get()))\n            }\n\n            val manga = value.mapNotNull { favoritesById[it] }\n\n            val comparator = key.sort.comparator()\n                .let { if (key.sort.isAscending) it else it.reversed() }\n                .thenComparator(sortAlphabetically)\n\n            manga.sortedWith(comparator).map { it.id }\n        }\n    }\n\n    private fun getLibraryItemPreferencesFlow(): Flow<ItemPreferences> {\n        return combine(\n            libraryPreferences.downloadBadge.changes(),\n            libraryPreferences.unreadBadge.changes(),\n            libraryPreferences.localBadge.changes(),\n            libraryPreferences.languageBadge.changes(),\n            libraryPreferences.autoUpdateMangaRestrictions.changes(),\n\n            preferences.downloadedOnly.changes(),\n            libraryPreferences.filterDownloaded.changes(),\n            libraryPreferences.filterUnread.changes(),\n            libraryPreferences.filterStarted.changes(),\n            libraryPreferences.filterBookmarked.changes(),\n            libraryPreferences.filterCompleted.changes(),\n            libraryPreferences.filterIntervalCustom.changes(),\n        ) {\n            ItemPreferences(\n                downloadBadge = it[0] as Boolean,\n                unreadBadge = it[1] as Boolean,\n                localBadge = it[2] as Boolean,\n                languageBadge = it[3] as Boolean,\n                skipOutsideReleasePeriod = LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in (it[4] as Set<*>),\n                globalFilterDownloaded = it[5] as Boolean,\n                filterDownloaded = it[6] as TriState,\n                filterUnread = it[7] as TriState,\n                filterStarted = it[8] as TriState,\n                filterBookmarked = it[9] as TriState,\n                filterCompleted = it[10] as TriState,\n                filterIntervalCustom = it[11] as TriState,\n            )\n        }\n    }\n\n    private fun getFavoritesFlow(): Flow<List<LibraryItem>> {\n        return combine(\n            getLibraryManga.subscribe(),\n            getLibraryItemPreferencesFlow(),\n            downloadCache.changes,\n        ) { libraryManga, preferences, _ ->\n            libraryManga.map { manga ->\n                LibraryItem(\n                    libraryManga = manga,\n                    downloadCount = if (preferences.downloadBadge) {\n                        downloadManager.getDownloadCount(manga.manga).toLong()\n                    } else {\n                        0\n                    },\n                    unreadCount = if (preferences.unreadBadge) {\n                        manga.unreadCount\n                    } else {\n                        0\n                    },\n                    isLocal = if (preferences.localBadge) {\n                        manga.manga.isLocal()\n                    } else {\n                        false\n                    },\n                    sourceLanguage = if (preferences.languageBadge) {\n                        sourceManager.getOrStub(manga.manga.source).lang\n                    } else {\n                        \"\"\n                    },\n                )\n            }\n        }\n    }\n\n    /**\n     * Flow of tracking filter preferences\n     *\n     * @return map of track id with the filter value\n     */\n    private fun getTrackingFiltersFlow(): Flow<Map<Long, TriState>> {\n        return trackerManager.loggedInTrackersFlow().flatMapLatest { loggedInTrackers ->\n            if (loggedInTrackers.isEmpty()) {\n                flowOf(emptyMap())\n            } else {\n                val filterFlows = loggedInTrackers.map { tracker ->\n                    libraryPreferences.filterTracking(tracker.id.toInt()).changes().map { tracker.id to it }\n                }\n                combine(filterFlows) { it.toMap() }\n            }\n        }\n    }\n\n    /**\n     * Returns the common categories for the given list of manga.\n     *\n     * @param mangas the list of manga.\n     */\n    private suspend fun getCommonCategories(mangas: List<Manga>): Collection<Category> {\n        if (mangas.isEmpty()) return emptyList()\n        return mangas\n            .map { getCategories.await(it.id).toSet() }\n            .reduce { set1, set2 -> set1.intersect(set2) }\n    }\n\n    suspend fun getNextUnreadChapter(manga: Manga): Chapter? {\n        return getChaptersByMangaId.await(manga.id, applyScanlatorFilter = true).getNextUnread(manga, downloadManager)\n    }\n\n    /**\n     * Returns the mix (non-common) categories for the given list of manga.\n     *\n     * @param mangas the list of manga.\n     */\n    private suspend fun getMixCategories(mangas: List<Manga>): Collection<Category> {\n        if (mangas.isEmpty()) return emptyList()\n        val mangaCategories = mangas.map { getCategories.await(it.id).toSet() }\n        val common = mangaCategories.reduce { set1, set2 -> set1.intersect(set2) }\n        return mangaCategories.flatten().distinct().subtract(common)\n    }\n\n    /**\n     * Queues the amount specified of unread chapters from the list of selected manga\n     */\n    fun performDownloadAction(action: DownloadAction) {\n        when (action) {\n            DownloadAction.NEXT_1_CHAPTER -> downloadNextChapters(1)\n            DownloadAction.NEXT_5_CHAPTERS -> downloadNextChapters(5)\n            DownloadAction.NEXT_10_CHAPTERS -> downloadNextChapters(10)\n            DownloadAction.NEXT_25_CHAPTERS -> downloadNextChapters(25)\n            DownloadAction.UNREAD_CHAPTERS -> downloadNextChapters(null)\n            DownloadAction.BOOKMARKED_CHAPTERS -> downloadBookmarkedChapters()\n        }\n        clearSelection()\n    }\n\n    private fun downloadNextChapters(amount: Int?) {\n        val mangas = state.value.selectedManga\n        screenModelScope.launchNonCancellable {\n            mangas.forEach { manga ->\n                val chapters = getNextChapters.await(manga.id)\n                    .fastFilterNot { chapter ->\n                        downloadManager.getQueuedDownloadOrNull(chapter.id) != null ||\n                            downloadManager.isChapterDownloaded(\n                                chapter.name,\n                                chapter.scanlator,\n                                chapter.url,\n                                manga.title,\n                                manga.source,\n                            )\n                    }\n                    .let { if (amount != null) it.take(amount) else it }\n\n                downloadManager.downloadChapters(manga, chapters)\n            }\n        }\n    }\n\n    private fun downloadBookmarkedChapters() {\n        val mangas = state.value.selectedManga\n        screenModelScope.launchNonCancellable {\n            mangas.forEach { manga ->\n                val chapters = getBookmarkedChaptersByMangaId.await(manga.id)\n                    .fastFilterNot { chapter ->\n                        downloadManager.getQueuedDownloadOrNull(chapter.id) != null ||\n                            downloadManager.isChapterDownloaded(\n                                chapter.name,\n                                chapter.scanlator,\n                                chapter.url,\n                                manga.title,\n                                manga.source,\n                            )\n                    }\n                downloadManager.downloadChapters(manga, chapters)\n            }\n        }\n    }\n\n    /**\n     * Marks mangas' chapters read status.\n     */\n    fun markReadSelection(read: Boolean) {\n        val selection = state.value.selectedManga\n        screenModelScope.launchNonCancellable {\n            selection.forEach { manga ->\n                setReadStatus.await(\n                    manga = manga,\n                    read = read,\n                )\n            }\n        }\n        clearSelection()\n    }\n\n    /**\n     * Remove the selected manga.\n     *\n     * @param mangas the list of manga to delete.\n     * @param deleteFromLibrary whether to delete manga from library.\n     * @param deleteChapters whether to delete downloaded chapters.\n     */\n    fun removeMangas(mangas: List<Manga>, deleteFromLibrary: Boolean, deleteChapters: Boolean) {\n        screenModelScope.launchNonCancellable {\n            if (deleteFromLibrary) {\n                val toDelete = mangas.map {\n                    it.removeCovers(coverCache)\n                    MangaUpdate(\n                        favorite = false,\n                        id = it.id,\n                    )\n                }\n                updateManga.awaitAll(toDelete)\n            }\n\n            if (deleteChapters) {\n                mangas.forEach { manga ->\n                    val source = sourceManager.get(manga.source) as? HttpSource\n                    if (source != null) {\n                        downloadManager.deleteManga(manga, source)\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Bulk update categories of manga using old and new common categories.\n     *\n     * @param mangaList the list of manga to move.\n     * @param addCategories the categories to add for all mangas.\n     * @param removeCategories the categories to remove in all mangas.\n     */\n    fun setMangaCategories(mangaList: List<Manga>, addCategories: List<Long>, removeCategories: List<Long>) {\n        screenModelScope.launchNonCancellable {\n            mangaList.forEach { manga ->\n                val categoryIds = getCategories.await(manga.id)\n                    .map { it.id }\n                    .subtract(removeCategories.toSet())\n                    .plus(addCategories)\n                    .toList()\n\n                setMangaCategories.await(manga.id, categoryIds)\n            }\n        }\n    }\n\n    fun getDisplayMode(): PreferenceMutableState<LibraryDisplayMode> {\n        return libraryPreferences.displayMode.asState(screenModelScope)\n    }\n\n    fun getColumnsForOrientation(isLandscape: Boolean): PreferenceMutableState<Int> {\n        return (if (isLandscape) libraryPreferences.landscapeColumns else libraryPreferences.portraitColumns)\n            .asState(screenModelScope)\n    }\n\n    fun getRandomLibraryItemForCurrentCategory(): LibraryItem? {\n        val state = state.value\n        return state.getItemsForCategoryId(state.activeCategory?.id).randomOrNull()\n    }\n\n    fun showSettingsDialog() {\n        mutableState.update { it.copy(dialog = Dialog.SettingsSheet) }\n    }\n\n    private var lastSelectionCategory: Long? = null\n\n    fun clearSelection() {\n        lastSelectionCategory = null\n        mutableState.update { it.copy(selection = setOf()) }\n    }\n\n    fun toggleSelection(category: Category, manga: LibraryManga) {\n        mutableState.update { state ->\n            val newSelection = state.selection.mutate { set ->\n                if (!set.remove(manga.id)) set.add(manga.id)\n            }\n            lastSelectionCategory = category.id.takeIf { newSelection.isNotEmpty() }\n            state.copy(selection = newSelection)\n        }\n    }\n\n    /**\n     * Selects all mangas between and including the given manga and the last pressed manga from the\n     * same category as the given manga\n     */\n    fun toggleRangeSelection(category: Category, manga: LibraryManga) {\n        mutableState.update { state ->\n            val newSelection = state.selection.mutate { list ->\n                val lastSelected = list.lastOrNull()\n                if (lastSelectionCategory != category.id) {\n                    list.add(manga.id)\n                    return@mutate\n                }\n\n                val items = state.getItemsForCategoryId(category.id).fastMap { it.id }\n                val lastMangaIndex = items.indexOf(lastSelected)\n                val curMangaIndex = items.indexOf(manga.id)\n\n                val selectionRange = when {\n                    lastMangaIndex < curMangaIndex -> lastMangaIndex..curMangaIndex\n                    curMangaIndex < lastMangaIndex -> curMangaIndex..lastMangaIndex\n                    // We shouldn't reach this point\n                    else -> return@mutate\n                }\n                selectionRange.mapNotNull { items[it] }.let(list::addAll)\n            }\n            lastSelectionCategory = category.id\n            state.copy(selection = newSelection)\n        }\n    }\n\n    fun selectAll() {\n        lastSelectionCategory = null\n        mutableState.update { state ->\n            val newSelection = state.selection.mutate { list ->\n                state.getItemsForCategoryId(state.activeCategory?.id).map { it.id }.let(list::addAll)\n            }\n            state.copy(selection = newSelection)\n        }\n    }\n\n    fun invertSelection() {\n        lastSelectionCategory = null\n        mutableState.update { state ->\n            val newSelection = state.selection.mutate { list ->\n                val itemIds = state.getItemsForCategoryId(state.activeCategory?.id).fastMap { it.id }\n                val (toRemove, toAdd) = itemIds.partition { it in list }\n                list.removeAll(toRemove)\n                list.addAll(toAdd)\n            }\n            state.copy(selection = newSelection)\n        }\n    }\n\n    fun search(query: String?) {\n        mutableState.update { it.copy(searchQuery = query) }\n    }\n\n    fun updateActiveCategoryIndex(index: Int) {\n        val newIndex = mutableState.updateAndGet { state ->\n            state.copy(activeCategoryIndex = index)\n        }\n            .coercedActiveCategoryIndex\n\n        libraryPreferences.lastUsedCategory.set(newIndex)\n    }\n\n    fun openChangeCategoryDialog() {\n        screenModelScope.launchIO {\n            // Create a copy of selected manga\n            val mangaList = state.value.selectedManga\n\n            // Hide the default category because it has a different behavior than the ones from db.\n            val categories = state.value.displayedCategories.filter { it.id != 0L }\n\n            // Get indexes of the common categories to preselect.\n            val common = getCommonCategories(mangaList)\n            // Get indexes of the mix categories to preselect.\n            val mix = getMixCategories(mangaList)\n            val preselected = categories\n                .map {\n                    when (it) {\n                        in common -> CheckboxState.State.Checked(it)\n                        in mix -> CheckboxState.TriState.Exclude(it)\n                        else -> CheckboxState.State.None(it)\n                    }\n                }\n                .toImmutableList()\n            mutableState.update { it.copy(dialog = Dialog.ChangeCategory(mangaList, preselected)) }\n        }\n    }\n\n    fun openDeleteMangaDialog() {\n        mutableState.update { it.copy(dialog = Dialog.DeleteManga(state.value.selectedManga)) }\n    }\n\n    fun closeDialog() {\n        mutableState.update { it.copy(dialog = null) }\n    }\n\n    sealed interface Dialog {\n        data object SettingsSheet : Dialog\n        data class ChangeCategory(\n            val manga: List<Manga>,\n            val initialSelection: ImmutableList<CheckboxState<Category>>,\n        ) : Dialog\n        data class DeleteManga(val manga: List<Manga>) : Dialog\n    }\n\n    @Immutable\n    private data class ItemPreferences(\n        val downloadBadge: Boolean,\n        val unreadBadge: Boolean,\n        val localBadge: Boolean,\n        val languageBadge: Boolean,\n        val skipOutsideReleasePeriod: Boolean,\n\n        val globalFilterDownloaded: Boolean,\n        val filterDownloaded: TriState,\n        val filterUnread: TriState,\n        val filterStarted: TriState,\n        val filterBookmarked: TriState,\n        val filterCompleted: TriState,\n        val filterIntervalCustom: TriState,\n    )\n\n    @Immutable\n    data class LibraryData(\n        val isInitialized: Boolean = false,\n        val showSystemCategory: Boolean = false,\n        val categories: List<Category> = emptyList(),\n        val favorites: List<LibraryItem> = emptyList(),\n        val tracksMap: Map</* Manga */ Long, List<Track>> = emptyMap(),\n        val loggedInTrackerIds: Set<Long> = emptySet(),\n    ) {\n        val favoritesById by lazy { favorites.associateBy { it.id } }\n    }\n\n    @Immutable\n    data class State(\n        val isInitialized: Boolean = false,\n        val isLoading: Boolean = true,\n        val searchQuery: String? = null,\n        val selection: Set</* Manga */ Long> = setOf(),\n        val hasActiveFilters: Boolean = false,\n        val showCategoryTabs: Boolean = false,\n        val showMangaCount: Boolean = false,\n        val showMangaContinueButton: Boolean = false,\n        val dialog: Dialog? = null,\n        val libraryData: LibraryData = LibraryData(),\n        private val activeCategoryIndex: Int = 0,\n        private val groupedFavorites: Map<Category, List</* LibraryItem */ Long>> = emptyMap(),\n    ) {\n        val displayedCategories: List<Category> = groupedFavorites.keys.toList()\n\n        val coercedActiveCategoryIndex = activeCategoryIndex.coerceIn(\n            minimumValue = 0,\n            maximumValue = displayedCategories.lastIndex.coerceAtLeast(0),\n        )\n\n        val activeCategory: Category? = displayedCategories.getOrNull(coercedActiveCategoryIndex)\n\n        val isLibraryEmpty = libraryData.favorites.isEmpty()\n\n        val selectionMode = selection.isNotEmpty()\n\n        val selectedManga by lazy { selection.mapNotNull { libraryData.favoritesById[it]?.libraryManga?.manga } }\n\n        fun getItemsForCategoryId(categoryId: Long?): List<LibraryItem> {\n            if (categoryId == null) return emptyList()\n            val category = displayedCategories.find { it.id == categoryId } ?: return emptyList()\n            return getItemsForCategory(category)\n        }\n\n        fun getItemsForCategory(category: Category): List<LibraryItem> {\n            return groupedFavorites[category].orEmpty().mapNotNull { libraryData.favoritesById[it] }\n        }\n\n        fun getItemCountForCategory(category: Category): Int? {\n            return if (showMangaCount || !searchQuery.isNullOrEmpty()) groupedFavorites[category]?.size else null\n        }\n\n        fun getToolbarTitle(\n            defaultTitle: String,\n            defaultCategoryTitle: String,\n            page: Int,\n        ): LibraryToolbarTitle {\n            val category = displayedCategories.getOrNull(page) ?: return LibraryToolbarTitle(defaultTitle)\n            val categoryName = category.let {\n                if (it.isSystemCategory) defaultCategoryTitle else it.name\n            }\n            val title = if (showCategoryTabs) defaultTitle else categoryName\n            val count = when {\n                !showMangaCount -> null\n                !showCategoryTabs -> getItemCountForCategory(category)\n                // Whole library count\n                else -> libraryData.favorites.size\n            }\n            return LibraryToolbarTitle(title, count)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.library\n\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.stateIn\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.category.interactor.SetDisplayMode\nimport tachiyomi.domain.category.interactor.SetSortModeForCategory\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.model.LibrarySort\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport kotlin.time.Duration.Companion.seconds\n\nclass LibrarySettingsScreenModel(\n    val preferences: BasePreferences = Injekt.get(),\n    val libraryPreferences: LibraryPreferences = Injekt.get(),\n    private val setDisplayMode: SetDisplayMode = Injekt.get(),\n    private val setSortModeForCategory: SetSortModeForCategory = Injekt.get(),\n    trackerManager: TrackerManager = Injekt.get(),\n) : ScreenModel {\n\n    val trackersFlow = trackerManager.loggedInTrackersFlow()\n        .stateIn(\n            scope = screenModelScope,\n            started = SharingStarted.WhileSubscribed(5.seconds.inWholeMilliseconds),\n            initialValue = trackerManager.loggedInTrackers(),\n        )\n\n    fun toggleFilter(preference: (LibraryPreferences) -> Preference<TriState>) {\n        preference(libraryPreferences).getAndSet {\n            it.next()\n        }\n    }\n\n    fun toggleTracker(id: Int) {\n        toggleFilter { libraryPreferences.filterTracking(id) }\n    }\n\n    fun setDisplayMode(mode: LibraryDisplayMode) {\n        setDisplayMode.await(mode)\n    }\n\n    fun setSort(category: Category?, mode: LibrarySort.Type, direction: LibrarySort.Direction) {\n        screenModelScope.launchIO {\n            setSortModeForCategory.await(category, mode, direction)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.library\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.animation.graphics.res.animatedVectorResource\nimport androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter\nimport androidx.compose.animation.graphics.vector.AnimatedImageVector\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material3.SnackbarHost\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.util.fastAll\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport cafe.adriel.voyager.navigator.tab.LocalTabNavigator\nimport cafe.adriel.voyager.navigator.tab.TabOptions\nimport eu.kanade.presentation.category.components.ChangeCategoryDialog\nimport eu.kanade.presentation.library.DeleteLibraryMangaDialog\nimport eu.kanade.presentation.library.LibrarySettingsDialog\nimport eu.kanade.presentation.library.components.LibraryContent\nimport eu.kanade.presentation.library.components.LibraryToolbar\nimport eu.kanade.presentation.manga.components.LibraryBottomActionMenu\nimport eu.kanade.presentation.more.onboarding.GETTING_STARTED_URL\nimport eu.kanade.presentation.util.Tab\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateJob\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen\nimport eu.kanade.tachiyomi.ui.category.CategoryScreen\nimport eu.kanade.tachiyomi.ui.home.HomeScreen\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.launch\nimport mihon.feature.migration.config.MigrationConfigScreen\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.EmptyScreen\nimport tachiyomi.presentation.core.screens.EmptyScreenAction\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.source.local.isLocal\n\ndata object LibraryTab : Tab {\n\n    override val options: TabOptions\n        @Composable\n        get() {\n            val isSelected = LocalTabNavigator.current.current.key == key\n            val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_library_enter)\n            return TabOptions(\n                index = 0u,\n                title = stringResource(MR.strings.label_library),\n                icon = rememberAnimatedVectorPainter(image, isSelected),\n            )\n        }\n\n    override suspend fun onReselect(navigator: Navigator) {\n        requestOpenSettingsSheet()\n    }\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val context = LocalContext.current\n        val scope = rememberCoroutineScope()\n        val haptic = LocalHapticFeedback.current\n\n        val screenModel = rememberScreenModel { LibraryScreenModel() }\n        val settingsScreenModel = rememberScreenModel { LibrarySettingsScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        val snackbarHostState = remember { SnackbarHostState() }\n\n        val onClickRefresh: (Category?) -> Boolean = { category ->\n            val started = LibraryUpdateJob.startNow(context, category)\n            scope.launch {\n                val msgRes = when {\n                    !started -> MR.strings.update_already_running\n                    category != null -> MR.strings.updating_category\n                    else -> MR.strings.updating_library\n                }\n                snackbarHostState.showSnackbar(context.stringResource(msgRes))\n            }\n            started\n        }\n\n        Scaffold(\n            topBar = { scrollBehavior ->\n                val title = state.getToolbarTitle(\n                    defaultTitle = stringResource(MR.strings.label_library),\n                    defaultCategoryTitle = stringResource(MR.strings.label_default),\n                    page = state.coercedActiveCategoryIndex,\n                )\n                LibraryToolbar(\n                    hasActiveFilters = state.hasActiveFilters,\n                    selectedCount = state.selection.size,\n                    title = title,\n                    onClickUnselectAll = screenModel::clearSelection,\n                    onClickSelectAll = screenModel::selectAll,\n                    onClickInvertSelection = screenModel::invertSelection,\n                    onClickFilter = screenModel::showSettingsDialog,\n                    onClickRefresh = { onClickRefresh(state.activeCategory) },\n                    onClickGlobalUpdate = { onClickRefresh(null) },\n                    onClickOpenRandomManga = {\n                        scope.launch {\n                            val randomItem = screenModel.getRandomLibraryItemForCurrentCategory()\n                            if (randomItem != null) {\n                                navigator.push(MangaScreen(randomItem.libraryManga.manga.id))\n                            } else {\n                                snackbarHostState.showSnackbar(\n                                    context.stringResource(MR.strings.information_no_entries_found),\n                                )\n                            }\n                        }\n                    },\n                    searchQuery = state.searchQuery,\n                    onSearchQueryChange = screenModel::search,\n                    // For scroll overlay when no tab\n                    scrollBehavior = scrollBehavior.takeIf { !state.showCategoryTabs },\n                )\n            },\n            bottomBar = {\n                LibraryBottomActionMenu(\n                    visible = state.selectionMode,\n                    onChangeCategoryClicked = screenModel::openChangeCategoryDialog,\n                    onMarkAsReadClicked = { screenModel.markReadSelection(true) },\n                    onMarkAsUnreadClicked = { screenModel.markReadSelection(false) },\n                    onDownloadClicked = screenModel::performDownloadAction\n                        .takeIf { state.selectedManga.fastAll { !it.isLocal() } },\n                    onDeleteClicked = screenModel::openDeleteMangaDialog,\n                    onMigrateClicked = {\n                        val selection = state.selection\n                        screenModel.clearSelection()\n                        navigator.push(MigrationConfigScreen(selection))\n                    },\n                )\n            },\n            snackbarHost = { SnackbarHost(hostState = snackbarHostState) },\n        ) { contentPadding ->\n            when {\n                state.isLoading -> {\n                    LoadingScreen(Modifier.padding(contentPadding))\n                }\n                state.searchQuery.isNullOrEmpty() && !state.hasActiveFilters && state.isLibraryEmpty -> {\n                    val handler = LocalUriHandler.current\n                    EmptyScreen(\n                        stringRes = MR.strings.information_empty_library,\n                        modifier = Modifier.padding(contentPadding),\n                        actions = persistentListOf(\n                            EmptyScreenAction(\n                                stringRes = MR.strings.getting_started_guide,\n                                icon = Icons.AutoMirrored.Outlined.HelpOutline,\n                                onClick = { handler.openUri(GETTING_STARTED_URL) },\n                            ),\n                        ),\n                    )\n                }\n                else -> {\n                    LibraryContent(\n                        categories = state.displayedCategories,\n                        searchQuery = state.searchQuery,\n                        selection = state.selection,\n                        contentPadding = contentPadding,\n                        currentPage = state.coercedActiveCategoryIndex,\n                        hasActiveFilters = state.hasActiveFilters,\n                        showPageTabs = state.showCategoryTabs || !state.searchQuery.isNullOrEmpty(),\n                        onChangeCurrentPage = screenModel::updateActiveCategoryIndex,\n                        onClickManga = { navigator.push(MangaScreen(it)) },\n                        onContinueReadingClicked = { it: LibraryManga ->\n                            scope.launchIO {\n                                val chapter = screenModel.getNextUnreadChapter(it.manga)\n                                if (chapter != null) {\n                                    context.startActivity(\n                                        ReaderActivity.newIntent(context, chapter.mangaId, chapter.id),\n                                    )\n                                } else {\n                                    snackbarHostState.showSnackbar(context.stringResource(MR.strings.no_next_chapter))\n                                }\n                            }\n                            Unit\n                        }.takeIf { state.showMangaContinueButton },\n                        onToggleSelection = screenModel::toggleSelection,\n                        onToggleRangeSelection = { category, manga ->\n                            screenModel.toggleRangeSelection(category, manga)\n                            haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n                        },\n                        onRefresh = { onClickRefresh(state.activeCategory) },\n                        onGlobalSearchClicked = {\n                            navigator.push(GlobalSearchScreen(screenModel.state.value.searchQuery ?: \"\"))\n                        },\n                        getItemCountForCategory = { state.getItemCountForCategory(it) },\n                        getDisplayMode = { screenModel.getDisplayMode() },\n                        getColumnsForOrientation = { screenModel.getColumnsForOrientation(it) },\n                        getItemsForCategory = { state.getItemsForCategory(it) },\n                    )\n                }\n            }\n        }\n\n        val onDismissRequest = screenModel::closeDialog\n        when (val dialog = state.dialog) {\n            is LibraryScreenModel.Dialog.SettingsSheet -> run {\n                LibrarySettingsDialog(\n                    onDismissRequest = onDismissRequest,\n                    screenModel = settingsScreenModel,\n                    category = state.activeCategory,\n                )\n            }\n            is LibraryScreenModel.Dialog.ChangeCategory -> {\n                ChangeCategoryDialog(\n                    initialSelection = dialog.initialSelection,\n                    onDismissRequest = onDismissRequest,\n                    onEditCategories = {\n                        screenModel.clearSelection()\n                        navigator.push(CategoryScreen())\n                    },\n                    onConfirm = { include, exclude ->\n                        screenModel.clearSelection()\n                        screenModel.setMangaCategories(dialog.manga, include, exclude)\n                    },\n                )\n            }\n            is LibraryScreenModel.Dialog.DeleteManga -> {\n                DeleteLibraryMangaDialog(\n                    containsLocalManga = dialog.manga.any(Manga::isLocal),\n                    onDismissRequest = onDismissRequest,\n                    onConfirm = { deleteManga, deleteChapter ->\n                        screenModel.removeMangas(dialog.manga, deleteManga, deleteChapter)\n                        screenModel.clearSelection()\n                    },\n                )\n            }\n            null -> {}\n        }\n\n        BackHandler(enabled = state.selectionMode || state.searchQuery != null) {\n            when {\n                state.selectionMode -> screenModel.clearSelection()\n                state.searchQuery != null -> screenModel.search(null)\n            }\n        }\n\n        LaunchedEffect(state.selectionMode, state.dialog) {\n            HomeScreen.showBottomNav(!state.selectionMode)\n        }\n\n        LaunchedEffect(state.isLoading) {\n            if (!state.isLoading) {\n                (context as? MainActivity)?.ready = true\n            }\n        }\n\n        LaunchedEffect(Unit) {\n            launch { queryEvent.receiveAsFlow().collect(screenModel::search) }\n            launch { requestSettingsSheetEvent.receiveAsFlow().collectLatest { screenModel.showSettingsDialog() } }\n        }\n    }\n\n    // For invoking search from other screen\n    private val queryEvent = Channel<String>()\n    suspend fun search(query: String) = queryEvent.send(query)\n\n    // For opening settings sheet in LibraryController\n    private val requestSettingsSheetEvent = Channel<Unit>()\n    private suspend fun requestOpenSettingsSheet() = requestSettingsSheetEvent.send(Unit)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.main\n\nimport android.animation.ValueAnimator\nimport android.app.SearchManager\nimport android.app.assist.AssistContent\nimport android.content.Context\nimport android.content.Intent\nimport android.graphics.Color\nimport android.os.Build\nimport android.os.Bundle\nimport android.view.View\nimport androidx.activity.ComponentActivity\nimport androidx.activity.SystemBarStyle\nimport androidx.activity.enableEdgeToEdge\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.WindowInsetsSides\nimport androidx.compose.foundation.layout.consumeWindowInsets\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.navigationBars\nimport androidx.compose.foundation.layout.only\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.windowInsetsBottomHeight\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.graphics.luminance\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.core.animation.doOnEnd\nimport androidx.core.net.toUri\nimport androidx.core.splashscreen.SplashScreen\nimport androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen\nimport androidx.core.util.Consumer\nimport androidx.interpolator.view.animation.FastOutSlowInInterpolator\nimport androidx.interpolator.view.animation.LinearOutSlowInInterpolator\nimport androidx.lifecycle.lifecycleScope\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.NavigatorDisposeBehavior\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.source.interactor.GetIncognitoState\nimport eu.kanade.presentation.components.AppStateBanners\nimport eu.kanade.presentation.components.DownloadedOnlyBannerBackgroundColor\nimport eu.kanade.presentation.components.IncognitoModeBannerBackgroundColor\nimport eu.kanade.presentation.components.IndexingBannerBackgroundColor\nimport eu.kanade.presentation.more.settings.screen.browse.ExtensionReposScreen\nimport eu.kanade.presentation.more.settings.screen.data.RestoreBackupScreen\nimport eu.kanade.presentation.util.AssistContentScreen\nimport eu.kanade.presentation.util.DefaultNavigatorScreenTransition\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.data.cache.ChapterCache\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.updater.AppUpdateChecker\nimport eu.kanade.tachiyomi.data.updater.RELEASE_URL\nimport eu.kanade.tachiyomi.extension.api.ExtensionApi\nimport eu.kanade.tachiyomi.ui.base.activity.BaseActivity\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen\nimport eu.kanade.tachiyomi.ui.deeplink.DeepLinkScreen\nimport eu.kanade.tachiyomi.ui.home.HomeScreen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.more.NewUpdateScreen\nimport eu.kanade.tachiyomi.ui.more.OnboardingScreen\nimport eu.kanade.tachiyomi.util.system.dpToPx\nimport eu.kanade.tachiyomi.util.system.isNavigationBarNeedsScrim\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.updaterEnabled\nimport eu.kanade.tachiyomi.util.view.setComposeContent\nimport kotlinx.coroutines.channels.awaitClose\nimport kotlinx.coroutines.flow.callbackFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.filter\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport mihon.core.migration.Migrator\nimport tachiyomi.core.common.Constants\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.release.interactor.GetApplicationRelease\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.injectLazy\n\nclass MainActivity : BaseActivity() {\n\n    private val libraryPreferences: LibraryPreferences by injectLazy()\n    private val preferences: BasePreferences by injectLazy()\n\n    private val downloadCache: DownloadCache by injectLazy()\n    private val chapterCache: ChapterCache by injectLazy()\n\n    private val getIncognitoState: GetIncognitoState by injectLazy()\n\n    // To be checked by splash screen. If true then splash screen will be removed.\n    var ready = false\n\n    private var navigator: Navigator? = null\n\n    init {\n        registerSecureActivity(this)\n    }\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        val isLaunch = savedInstanceState == null\n\n        // Prevent splash screen showing up on configuration changes\n        val splashScreen = if (isLaunch) installSplashScreen() else null\n\n        super.onCreate(savedInstanceState)\n\n        val didMigration = Migrator.awaitAndRelease()\n\n        // Do not let the launcher create a new activity http://stackoverflow.com/questions/16283079\n        if (!isTaskRoot) {\n            finish()\n            return\n        }\n\n        setComposeContent {\n            val context = LocalContext.current\n\n            var incognito by remember { mutableStateOf(getIncognitoState.await(null)) }\n            val downloadOnly by preferences.downloadedOnly.collectAsState()\n            val indexing by downloadCache.isInitializing.collectAsState()\n\n            val isSystemInDarkTheme = isSystemInDarkTheme()\n            val statusBarBackgroundColor = when {\n                indexing -> IndexingBannerBackgroundColor\n                downloadOnly -> DownloadedOnlyBannerBackgroundColor\n                incognito -> IncognitoModeBannerBackgroundColor\n                else -> MaterialTheme.colorScheme.surface\n            }\n            LaunchedEffect(isSystemInDarkTheme, statusBarBackgroundColor) {\n                // Draw edge-to-edge and set system bars color to transparent\n                val lightStyle = SystemBarStyle.light(Color.TRANSPARENT, Color.BLACK)\n                val darkStyle = SystemBarStyle.dark(Color.TRANSPARENT)\n                enableEdgeToEdge(\n                    statusBarStyle = if (statusBarBackgroundColor.luminance() > 0.5) lightStyle else darkStyle,\n                    navigationBarStyle = if (isSystemInDarkTheme) darkStyle else lightStyle,\n                )\n            }\n\n            Navigator(\n                screen = HomeScreen,\n                disposeBehavior = NavigatorDisposeBehavior(disposeNestedNavigators = false, disposeSteps = true),\n            ) { navigator ->\n                LaunchedEffect(navigator) {\n                    this@MainActivity.navigator = navigator\n\n                    if (isLaunch) {\n                        // Set start screen\n                        handleIntentAction(intent, navigator)\n\n                        // Reset Incognito Mode on relaunch\n                        preferences.incognitoMode.set(false)\n                    }\n                }\n                LaunchedEffect(navigator.lastItem) {\n                    (navigator.lastItem as? BrowseSourceScreen)?.sourceId\n                        .let(getIncognitoState::subscribe)\n                        .collectLatest { incognito = it }\n                }\n\n                val scaffoldInsets = WindowInsets.navigationBars.only(WindowInsetsSides.Horizontal)\n                Scaffold(\n                    topBar = {\n                        AppStateBanners(\n                            downloadedOnlyMode = downloadOnly,\n                            incognitoMode = incognito,\n                            indexing = indexing,\n                            modifier = Modifier.windowInsetsPadding(scaffoldInsets),\n                        )\n                    },\n                    contentWindowInsets = scaffoldInsets,\n                ) { contentPadding ->\n                    // Consume insets already used by app state banners\n                    Box {\n                        // Shows current screen\n                        DefaultNavigatorScreenTransition(\n                            navigator = navigator,\n                            modifier = Modifier\n                                .padding(contentPadding)\n                                .consumeWindowInsets(contentPadding),\n                        )\n\n                        // Draw navigation bar scrim when needed\n                        if (remember { isNavigationBarNeedsScrim() }) {\n                            Spacer(\n                                modifier = Modifier\n                                    .align(Alignment.BottomCenter)\n                                    .fillMaxWidth()\n                                    .windowInsetsBottomHeight(WindowInsets.navigationBars)\n                                    .alpha(0.8f)\n                                    .background(MaterialTheme.colorScheme.surfaceContainer),\n                            )\n                        }\n                    }\n                }\n\n                // Pop source-related screens when incognito mode is turned off\n                LaunchedEffect(Unit) {\n                    preferences.incognitoMode.changes()\n                        .drop(1)\n                        .filter { !it }\n                        .onEach {\n                            val currentScreen = navigator.lastItem\n                            if (currentScreen is BrowseSourceScreen ||\n                                (currentScreen is MangaScreen && currentScreen.fromSource)\n                            ) {\n                                navigator.popUntilRoot()\n                            }\n                        }\n                        .launchIn(this)\n                }\n\n                HandleOnNewIntent(context = context, navigator = navigator)\n\n                CheckForUpdates()\n                ShowOnboarding()\n            }\n\n            var showChangelog by remember { mutableStateOf(didMigration && !BuildConfig.DEBUG) }\n            if (showChangelog) {\n                AlertDialog(\n                    onDismissRequest = { showChangelog = false },\n                    title = { Text(text = stringResource(MR.strings.updated_version, BuildConfig.VERSION_NAME)) },\n                    dismissButton = {\n                        TextButton(onClick = { openInBrowser(RELEASE_URL) }) {\n                            Text(text = stringResource(MR.strings.whats_new))\n                        }\n                    },\n                    confirmButton = {\n                        TextButton(onClick = { showChangelog = false }) {\n                            Text(text = stringResource(MR.strings.action_ok))\n                        }\n                    },\n                )\n            }\n        }\n\n        val startTime = System.currentTimeMillis()\n        splashScreen?.setKeepOnScreenCondition {\n            val elapsed = System.currentTimeMillis() - startTime\n            elapsed <= SPLASH_MIN_DURATION || (!ready && elapsed <= SPLASH_MAX_DURATION)\n        }\n        setSplashScreenExitAnimation(splashScreen)\n\n        if (isLaunch && libraryPreferences.autoClearChapterCache.get()) {\n            lifecycleScope.launchIO {\n                chapterCache.clear()\n            }\n        }\n    }\n\n    override fun onProvideAssistContent(outContent: AssistContent) {\n        super.onProvideAssistContent(outContent)\n        when (val screen = navigator?.lastItem) {\n            is AssistContentScreen -> {\n                screen.onProvideAssistUrl()?.let { outContent.webUri = it.toUri() }\n            }\n        }\n    }\n\n    @Composable\n    private fun HandleOnNewIntent(context: Context, navigator: Navigator) {\n        LaunchedEffect(Unit) {\n            callbackFlow {\n                val componentActivity = context as ComponentActivity\n                val consumer = Consumer<Intent> { trySend(it) }\n                componentActivity.addOnNewIntentListener(consumer)\n                awaitClose { componentActivity.removeOnNewIntentListener(consumer) }\n            }\n                .collectLatest { handleIntentAction(it, navigator) }\n        }\n    }\n\n    @Composable\n    private fun CheckForUpdates() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n\n        // App updates\n        LaunchedEffect(Unit) {\n            if (updaterEnabled) {\n                try {\n                    val result = AppUpdateChecker().checkForUpdate(context)\n                    if (result is GetApplicationRelease.Result.NewUpdate) {\n                        val updateScreen = NewUpdateScreen(\n                            versionName = result.release.version,\n                            changelogInfo = result.release.info,\n                            releaseLink = result.release.releaseLink,\n                            downloadLink = result.release.downloadLink,\n                        )\n                        navigator.push(updateScreen)\n                    }\n                } catch (e: Exception) {\n                    logcat(LogPriority.ERROR, e)\n                }\n            }\n        }\n\n        // Extensions updates\n        LaunchedEffect(Unit) {\n            try {\n                ExtensionApi().checkForUpdates(context)\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e)\n            }\n        }\n    }\n\n    @Composable\n    private fun ShowOnboarding() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        LaunchedEffect(Unit) {\n            if (!preferences.shownOnboardingFlow.get() && navigator.lastItem !is OnboardingScreen) {\n                navigator.push(OnboardingScreen())\n            }\n        }\n    }\n\n    /**\n     * Sets custom splash screen exit animation on devices prior to Android 12.\n     *\n     * When custom animation is used, status and navigation bar color will be set to transparent and will be restored\n     * after the animation is finished.\n     */\n    @Suppress(\"Deprecation\")\n    private fun setSplashScreenExitAnimation(splashScreen: SplashScreen?) {\n        val root = findViewById<View>(android.R.id.content)\n        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S && splashScreen != null) {\n            window.statusBarColor = Color.TRANSPARENT\n            window.navigationBarColor = Color.TRANSPARENT\n\n            splashScreen.setOnExitAnimationListener { splashProvider ->\n                // For some reason the SplashScreen applies (incorrect) Y translation to the iconView\n                splashProvider.iconView.translationY = 0F\n\n                val activityAnim = ValueAnimator.ofFloat(1F, 0F).apply {\n                    interpolator = LinearOutSlowInInterpolator()\n                    duration = SPLASH_EXIT_ANIM_DURATION\n                    addUpdateListener { va ->\n                        val value = va.animatedValue as Float\n                        root.translationY = value * 16.dpToPx\n                    }\n                }\n\n                val splashAnim = ValueAnimator.ofFloat(1F, 0F).apply {\n                    interpolator = FastOutSlowInInterpolator()\n                    duration = SPLASH_EXIT_ANIM_DURATION\n                    addUpdateListener { va ->\n                        val value = va.animatedValue as Float\n                        splashProvider.view.alpha = value\n                    }\n                    doOnEnd {\n                        splashProvider.remove()\n                    }\n                }\n\n                activityAnim.start()\n                splashAnim.start()\n            }\n        }\n    }\n\n    private fun handleIntentAction(intent: Intent, navigator: Navigator): Boolean {\n        val notificationId = intent.getIntExtra(\"notificationId\", -1)\n        if (notificationId > -1) {\n            NotificationReceiver.dismissNotification(\n                applicationContext,\n                notificationId,\n                intent.getIntExtra(\"groupId\", 0),\n            )\n        }\n\n        val tabToOpen = when (intent.action) {\n            Constants.SHORTCUT_LIBRARY -> HomeScreen.Tab.Library()\n            Constants.SHORTCUT_MANGA -> {\n                val idToOpen = intent.extras?.getLong(Constants.MANGA_EXTRA) ?: return false\n                navigator.popUntilRoot()\n                HomeScreen.Tab.Library(idToOpen)\n            }\n            Constants.SHORTCUT_UPDATES -> HomeScreen.Tab.Updates\n            Constants.SHORTCUT_HISTORY -> HomeScreen.Tab.History\n            Constants.SHORTCUT_SOURCES -> HomeScreen.Tab.Browse(false)\n            Constants.SHORTCUT_EXTENSIONS -> HomeScreen.Tab.Browse(true)\n            Constants.SHORTCUT_DOWNLOADS -> {\n                navigator.popUntilRoot()\n                HomeScreen.Tab.More(toDownloads = true)\n            }\n            Intent.ACTION_SEARCH, Intent.ACTION_SEND, \"com.google.android.gms.actions.SEARCH_ACTION\" -> {\n                // If the intent match the \"standard\" Android search intent\n                // or the Google-specific search intent (triggered by saying or typing \"search *query* on *Tachiyomi*\" in Google Search/Google Assistant)\n\n                // Get the search query provided in extras, and if not null, perform a global search with it.\n                val query = intent.getStringExtra(SearchManager.QUERY) ?: intent.getStringExtra(Intent.EXTRA_TEXT)\n                if (!query.isNullOrEmpty()) {\n                    navigator.popUntilRoot()\n                    navigator.push(DeepLinkScreen(query))\n                }\n                null\n            }\n            INTENT_SEARCH -> {\n                val query = intent.getStringExtra(INTENT_SEARCH_QUERY)\n                if (!query.isNullOrEmpty()) {\n                    val filter = intent.getStringExtra(INTENT_SEARCH_FILTER)\n                    navigator.popUntilRoot()\n                    navigator.push(GlobalSearchScreen(query, filter))\n                }\n                null\n            }\n            Intent.ACTION_VIEW -> {\n                // Handling opening of backup files\n                if (intent.data.toString().endsWith(\".tachibk\")) {\n                    navigator.popUntilRoot()\n                    navigator.push(RestoreBackupScreen(intent.data.toString()))\n                }\n                // Deep link to add extension repo\n                else if (intent.scheme == \"tachiyomi\" && intent.data?.host == \"add-repo\") {\n                    intent.data?.getQueryParameter(\"url\")?.let { repoUrl ->\n                        navigator.popUntilRoot()\n                        navigator.push(ExtensionReposScreen(repoUrl))\n                    }\n                }\n                null\n            }\n            else -> return false\n        }\n\n        if (tabToOpen != null) {\n            lifecycleScope.launch { HomeScreen.openTab(tabToOpen) }\n        }\n\n        ready = true\n        return true\n    }\n\n    companion object {\n        const val INTENT_SEARCH = \"eu.kanade.tachiyomi.SEARCH\"\n        const val INTENT_SEARCH_QUERY = \"query\"\n        const val INTENT_SEARCH_FILTER = \"filter\"\n    }\n}\n\n// Splash screen\nprivate const val SPLASH_MIN_DURATION = 500 // ms\nprivate const val SPLASH_MAX_DURATION = 5000 // ms\nprivate const val SPLASH_EXIT_ANIM_DURATION = 400L // ms\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaCoverScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.manga\n\nimport android.content.Context\nimport android.net.Uri\nimport androidx.compose.material3.SnackbarHostState\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport coil3.asDrawable\nimport coil3.imageLoader\nimport coil3.request.ImageRequest\nimport coil3.size.Size\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.saver.Image\nimport eu.kanade.tachiyomi.data.saver.ImageSaver\nimport eu.kanade.tachiyomi.data.saver.Location\nimport eu.kanade.tachiyomi.util.editCover\nimport eu.kanade.tachiyomi.util.system.getBitmapOrNull\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MangaCoverScreenModel(\n    private val mangaId: Long,\n    private val getManga: GetManga = Injekt.get(),\n    private val imageSaver: ImageSaver = Injekt.get(),\n    private val coverCache: CoverCache = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n\n    val snackbarHostState: SnackbarHostState = SnackbarHostState(),\n) : StateScreenModel<Manga?>(null) {\n\n    init {\n        screenModelScope.launchIO {\n            getManga.subscribe(mangaId)\n                .collect { newManga -> mutableState.update { newManga } }\n        }\n    }\n\n    fun saveCover(context: Context) {\n        screenModelScope.launch {\n            try {\n                saveCoverInternal(context, temp = false)\n                snackbarHostState.showSnackbar(\n                    context.stringResource(MR.strings.cover_saved),\n                    withDismissAction = true,\n                )\n            } catch (e: Throwable) {\n                logcat(LogPriority.ERROR, e)\n                snackbarHostState.showSnackbar(\n                    context.stringResource(MR.strings.error_saving_cover),\n                    withDismissAction = true,\n                )\n            }\n        }\n    }\n\n    fun shareCover(context: Context) {\n        screenModelScope.launch {\n            try {\n                val uri = saveCoverInternal(context, temp = true) ?: return@launch\n                withUIContext {\n                    context.startActivity(uri.toShareIntent(context))\n                }\n            } catch (e: Throwable) {\n                logcat(LogPriority.ERROR, e)\n                snackbarHostState.showSnackbar(\n                    context.stringResource(MR.strings.error_sharing_cover),\n                    withDismissAction = true,\n                )\n            }\n        }\n    }\n\n    /**\n     * Save manga cover Bitmap to picture or temporary share directory.\n     *\n     * @param context The context for building and executing the ImageRequest\n     * @return the uri to saved file\n     */\n    private suspend fun saveCoverInternal(context: Context, temp: Boolean): Uri? {\n        val manga = state.value ?: return null\n        val req = ImageRequest.Builder(context)\n            .data(manga)\n            .size(Size.ORIGINAL)\n            .build()\n\n        return withIOContext {\n            val result = context.imageLoader.execute(req).image?.asDrawable(context.resources)\n\n            // TODO: Handle animated cover\n            val bitmap = result?.getBitmapOrNull() ?: return@withIOContext null\n            imageSaver.save(\n                Image.Cover(\n                    bitmap = bitmap,\n                    name = manga.title,\n                    location = if (temp) Location.Cache else Location.Pictures.create(),\n                ),\n            )\n        }\n    }\n\n    /**\n     * Update cover with local file.\n     *\n     * @param context Context.\n     * @param data uri of the cover resource.\n     */\n    fun editCover(context: Context, data: Uri) {\n        val manga = state.value ?: return\n        screenModelScope.launchIO {\n            context.contentResolver.openInputStream(data)?.use {\n                try {\n                    manga.editCover(Injekt.get(), it, updateManga, coverCache)\n                    notifyCoverUpdated(context)\n                } catch (e: Exception) {\n                    notifyFailedCoverUpdate(context, e)\n                }\n            }\n        }\n    }\n\n    fun deleteCustomCover(context: Context) {\n        val mangaId = state.value?.id ?: return\n        screenModelScope.launchIO {\n            try {\n                coverCache.deleteCustomCover(mangaId)\n                updateManga.awaitUpdateCoverLastModified(mangaId)\n                notifyCoverUpdated(context)\n            } catch (e: Exception) {\n                notifyFailedCoverUpdate(context, e)\n            }\n        }\n    }\n\n    private fun notifyCoverUpdated(context: Context) {\n        screenModelScope.launch {\n            snackbarHostState.showSnackbar(\n                context.stringResource(MR.strings.cover_updated),\n                withDismissAction = true,\n            )\n        }\n    }\n\n    private fun notifyFailedCoverUpdate(context: Context, e: Throwable) {\n        screenModelScope.launch {\n            snackbarHostState.showSnackbar(\n                context.stringResource(MR.strings.notification_cover_update_failed),\n                withDismissAction = true,\n            )\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.manga\n\nimport android.content.Context\nimport androidx.activity.compose.rememberLauncherForActivityResult\nimport androidx.activity.result.contract.ActivityResultContracts\nimport androidx.compose.foundation.layout.systemBarsPadding\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.core.net.toUri\nimport androidx.lifecycle.compose.LocalLifecycleOwner\nimport androidx.lifecycle.compose.collectAsStateWithLifecycle\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.core.util.ifSourcesLoaded\nimport eu.kanade.domain.manga.model.hasCustomCover\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.presentation.category.components.ChangeCategoryDialog\nimport eu.kanade.presentation.components.NavigatorAdaptiveSheet\nimport eu.kanade.presentation.manga.ChapterSettingsDialog\nimport eu.kanade.presentation.manga.DuplicateMangaDialog\nimport eu.kanade.presentation.manga.EditCoverAction\nimport eu.kanade.presentation.manga.MangaScreen\nimport eu.kanade.presentation.manga.components.DeleteChaptersDialog\nimport eu.kanade.presentation.manga.components.MangaCoverDialog\nimport eu.kanade.presentation.manga.components.ScanlatorFilterDialog\nimport eu.kanade.presentation.manga.components.SetIntervalDialog\nimport eu.kanade.presentation.util.AssistContentScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.presentation.util.isTabletUi\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.isLocalOrStub\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen\nimport eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen\nimport eu.kanade.tachiyomi.ui.category.CategoryScreen\nimport eu.kanade.tachiyomi.ui.home.HomeScreen\nimport eu.kanade.tachiyomi.ui.manga.notes.MangaNotesScreen\nimport eu.kanade.tachiyomi.ui.manga.track.TrackInfoDialogHomeScreen\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport eu.kanade.tachiyomi.ui.setting.SettingsScreen\nimport eu.kanade.tachiyomi.ui.webview.WebViewScreen\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport mihon.feature.migration.config.MigrationConfigScreen\nimport mihon.feature.migration.dialog.MigrateMangaDialog\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass MangaScreen(\n    private val mangaId: Long,\n    val fromSource: Boolean = false,\n) : Screen(), AssistContentScreen {\n\n    private var assistUrl: String? = null\n\n    override fun onProvideAssistUrl() = assistUrl\n\n    @Composable\n    override fun Content() {\n        if (!ifSourcesLoaded()) {\n            LoadingScreen()\n            return\n        }\n\n        val navigator = LocalNavigator.currentOrThrow\n        val context = LocalContext.current\n        val haptic = LocalHapticFeedback.current\n        val scope = rememberCoroutineScope()\n        val lifecycleOwner = LocalLifecycleOwner.current\n        val screenModel = rememberScreenModel {\n            MangaScreenModel(context, lifecycleOwner.lifecycle, mangaId, fromSource)\n        }\n\n        val state by screenModel.state.collectAsStateWithLifecycle()\n\n        if (state is MangaScreenModel.State.Loading) {\n            LoadingScreen()\n            return\n        }\n\n        val successState = state as MangaScreenModel.State.Success\n        val isHttpSource = remember { successState.source is HttpSource }\n\n        LaunchedEffect(successState.manga, screenModel.source) {\n            if (isHttpSource) {\n                try {\n                    withIOContext {\n                        assistUrl = getMangaUrl(screenModel.manga, screenModel.source)\n                    }\n                } catch (e: Exception) {\n                    logcat(LogPriority.ERROR, e) { \"Failed to get manga URL\" }\n                }\n            }\n        }\n\n        MangaScreen(\n            state = successState,\n            snackbarHostState = screenModel.snackbarHostState,\n            nextUpdate = successState.manga.expectedNextUpdate,\n            isTabletUi = isTabletUi(),\n            chapterSwipeStartAction = screenModel.chapterSwipeStartAction,\n            chapterSwipeEndAction = screenModel.chapterSwipeEndAction,\n            navigateUp = navigator::pop,\n            onChapterClicked = { openChapter(context, it) },\n            onDownloadChapter = screenModel::runChapterDownloadActions.takeIf { !successState.source.isLocalOrStub() },\n            onAddToLibraryClicked = {\n                screenModel.toggleFavorite()\n                haptic.performHapticFeedback(HapticFeedbackType.LongPress)\n            },\n            onWebViewClicked = {\n                openMangaInWebView(\n                    navigator,\n                    screenModel.manga,\n                    screenModel.source,\n                )\n            }.takeIf { isHttpSource },\n            onWebViewLongClicked = {\n                copyMangaUrl(\n                    context,\n                    screenModel.manga,\n                    screenModel.source,\n                )\n            }.takeIf { isHttpSource },\n            onTrackingClicked = {\n                if (!successState.hasLoggedInTrackers) {\n                    navigator.push(SettingsScreen(SettingsScreen.Destination.Tracking))\n                } else {\n                    screenModel.showTrackDialog()\n                }\n            },\n            onTagSearch = { scope.launch { performGenreSearch(navigator, it, screenModel.source!!) } },\n            onFilterButtonClicked = screenModel::showSettingsDialog,\n            onRefresh = screenModel::fetchAllFromSource,\n            onContinueReading = { continueReading(context, screenModel.getNextUnreadChapter()) },\n            onSearch = { query, global -> scope.launch { performSearch(navigator, query, global) } },\n            onCoverClicked = screenModel::showCoverDialog,\n            onShareClicked = { shareManga(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource },\n            onDownloadActionClicked = screenModel::runDownloadAction.takeIf { !successState.source.isLocalOrStub() },\n            onEditCategoryClicked = screenModel::showChangeCategoryDialog.takeIf { successState.manga.favorite },\n            onEditFetchIntervalClicked = screenModel::showSetFetchIntervalDialog.takeIf {\n                successState.manga.favorite\n            },\n            onMigrateClicked = {\n                navigator.push(MigrationConfigScreen(successState.manga.id))\n            }.takeIf { successState.manga.favorite },\n            onEditNotesClicked = { navigator.push(MangaNotesScreen(manga = successState.manga)) },\n            onMultiBookmarkClicked = screenModel::bookmarkChapters,\n            onMultiMarkAsReadClicked = screenModel::markChaptersRead,\n            onMarkPreviousAsReadClicked = screenModel::markPreviousChapterRead,\n            onMultiDeleteClicked = screenModel::showDeleteChapterDialog,\n            onChapterSwipe = screenModel::chapterSwipe,\n            onChapterSelected = screenModel::toggleSelection,\n            onAllChapterSelected = screenModel::toggleAllSelection,\n            onInvertSelection = screenModel::invertSelection,\n        )\n\n        var showScanlatorsDialog by remember { mutableStateOf(false) }\n\n        val onDismissRequest = { screenModel.dismissDialog() }\n        when (val dialog = successState.dialog) {\n            null -> {}\n            is MangaScreenModel.Dialog.ChangeCategory -> {\n                ChangeCategoryDialog(\n                    initialSelection = dialog.initialSelection,\n                    onDismissRequest = onDismissRequest,\n                    onEditCategories = { navigator.push(CategoryScreen()) },\n                    onConfirm = { include, _ ->\n                        screenModel.moveMangaToCategoriesAndAddToLibrary(dialog.manga, include)\n                    },\n                )\n            }\n            is MangaScreenModel.Dialog.DeleteChapters -> {\n                DeleteChaptersDialog(\n                    onDismissRequest = onDismissRequest,\n                    onConfirm = {\n                        screenModel.toggleAllSelection(false)\n                        screenModel.deleteChapters(dialog.chapters)\n                    },\n                )\n            }\n\n            is MangaScreenModel.Dialog.DuplicateManga -> {\n                DuplicateMangaDialog(\n                    duplicates = dialog.duplicates,\n                    onDismissRequest = onDismissRequest,\n                    onConfirm = { screenModel.toggleFavorite(onRemoved = {}, checkDuplicate = false) },\n                    onOpenManga = { navigator.push(MangaScreen(it.id)) },\n                    onMigrate = { screenModel.showMigrateDialog(it) },\n                )\n            }\n\n            is MangaScreenModel.Dialog.Migrate -> {\n                MigrateMangaDialog(\n                    current = dialog.current,\n                    target = dialog.target,\n                    // Initiated from the context of [dialog.target] so we show [dialog.current].\n                    onClickTitle = { navigator.push(MangaScreen(dialog.current.id)) },\n                    onDismissRequest = onDismissRequest,\n                )\n            }\n            MangaScreenModel.Dialog.SettingsSheet -> ChapterSettingsDialog(\n                onDismissRequest = onDismissRequest,\n                manga = successState.manga,\n                onDownloadFilterChanged = screenModel::setDownloadedFilter,\n                onUnreadFilterChanged = screenModel::setUnreadFilter,\n                onBookmarkedFilterChanged = screenModel::setBookmarkedFilter,\n                onSortModeChanged = screenModel::setSorting,\n                onDisplayModeChanged = screenModel::setDisplayMode,\n                onSetAsDefault = screenModel::setCurrentSettingsAsDefault,\n                onResetToDefault = screenModel::resetToDefaultSettings,\n                scanlatorFilterActive = successState.scanlatorFilterActive,\n                onScanlatorFilterClicked = { showScanlatorsDialog = true },\n            )\n            MangaScreenModel.Dialog.TrackSheet -> {\n                NavigatorAdaptiveSheet(\n                    screen = TrackInfoDialogHomeScreen(\n                        mangaId = successState.manga.id,\n                        mangaTitle = successState.manga.title,\n                        sourceId = successState.source.id,\n                    ),\n                    enableSwipeDismiss = { it.lastItem is TrackInfoDialogHomeScreen },\n                    onDismissRequest = onDismissRequest,\n                )\n            }\n            MangaScreenModel.Dialog.FullCover -> {\n                val sm = rememberScreenModel { MangaCoverScreenModel(successState.manga.id) }\n                val manga by sm.state.collectAsState()\n                if (manga != null) {\n                    val getContent = rememberLauncherForActivityResult(ActivityResultContracts.GetContent()) {\n                        if (it == null) return@rememberLauncherForActivityResult\n                        sm.editCover(context, it)\n                    }\n                    MangaCoverDialog(\n                        manga = manga!!,\n                        snackbarHostState = sm.snackbarHostState,\n                        isCustomCover = remember(manga) { manga!!.hasCustomCover() },\n                        onShareClick = { sm.shareCover(context) },\n                        onSaveClick = { sm.saveCover(context) },\n                        onEditClick = {\n                            when (it) {\n                                EditCoverAction.EDIT -> getContent.launch(\"image/*\")\n                                EditCoverAction.DELETE -> sm.deleteCustomCover(context)\n                            }\n                        },\n                        onDismissRequest = onDismissRequest,\n                    )\n                } else {\n                    LoadingScreen(Modifier.systemBarsPadding())\n                }\n            }\n            is MangaScreenModel.Dialog.SetFetchInterval -> {\n                SetIntervalDialog(\n                    interval = dialog.manga.fetchInterval,\n                    nextUpdate = dialog.manga.expectedNextUpdate,\n                    onDismissRequest = onDismissRequest,\n                    onValueChanged = { interval: Int -> screenModel.setFetchInterval(dialog.manga, interval) }\n                        .takeIf { screenModel.isUpdateIntervalEnabled },\n                )\n            }\n        }\n\n        if (showScanlatorsDialog) {\n            ScanlatorFilterDialog(\n                availableScanlators = successState.availableScanlators,\n                excludedScanlators = successState.excludedScanlators,\n                onDismissRequest = { showScanlatorsDialog = false },\n                onConfirm = screenModel::setExcludedScanlators,\n            )\n        }\n    }\n\n    private fun continueReading(context: Context, unreadChapter: Chapter?) {\n        if (unreadChapter != null) openChapter(context, unreadChapter)\n    }\n\n    private fun openChapter(context: Context, chapter: Chapter) {\n        context.startActivity(ReaderActivity.newIntent(context, chapter.mangaId, chapter.id))\n    }\n\n    private fun getMangaUrl(manga_: Manga?, source_: Source?): String? {\n        val manga = manga_ ?: return null\n        val source = source_ as? HttpSource ?: return null\n\n        return try {\n            source.getMangaUrl(manga.toSManga())\n        } catch (e: Exception) {\n            null\n        }\n    }\n\n    private fun openMangaInWebView(navigator: Navigator, manga_: Manga?, source_: Source?) {\n        getMangaUrl(manga_, source_)?.let { url ->\n            navigator.push(\n                WebViewScreen(\n                    url = url,\n                    initialTitle = manga_?.title,\n                    sourceId = source_?.id,\n                ),\n            )\n        }\n    }\n\n    private fun shareManga(context: Context, manga_: Manga?, source_: Source?) {\n        try {\n            getMangaUrl(manga_, source_)?.let { url ->\n                val intent = url.toUri().toShareIntent(context, type = \"text/plain\")\n                context.startActivity(intent)\n            }\n        } catch (e: Exception) {\n            context.toast(e.message)\n        }\n    }\n\n    /**\n     * Perform a search using the provided query.\n     *\n     * @param query the search query to the parent controller\n     */\n    private suspend fun performSearch(navigator: Navigator, query: String, global: Boolean) {\n        if (global) {\n            navigator.push(GlobalSearchScreen(query))\n            return\n        }\n\n        if (navigator.size < 2) {\n            return\n        }\n\n        when (val previousController = navigator.items[navigator.size - 2]) {\n            is HomeScreen -> {\n                navigator.pop()\n                previousController.search(query)\n            }\n            is BrowseSourceScreen -> {\n                navigator.pop()\n                previousController.search(query)\n            }\n        }\n    }\n\n    /**\n     * Performs a genre search using the provided genre name.\n     *\n     * @param genreName the search genre to the parent controller\n     */\n    private suspend fun performGenreSearch(navigator: Navigator, genreName: String, source: Source) {\n        if (navigator.size < 2) {\n            return\n        }\n\n        val previousController = navigator.items[navigator.size - 2]\n        if (previousController is BrowseSourceScreen && source is HttpSource) {\n            navigator.pop()\n            previousController.searchGenre(genreName)\n        } else {\n            performSearch(navigator, genreName, global = false)\n        }\n    }\n\n    /**\n     * Copy Manga URL to Clipboard\n     */\n    private fun copyMangaUrl(context: Context, manga_: Manga?, source_: Source?) {\n        val manga = manga_ ?: return\n        val source = source_ as? HttpSource ?: return\n        val url = source.getMangaUrl(manga.toSManga())\n        context.copyToClipboard(url, url)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.manga\n\nimport android.content.Context\nimport androidx.compose.material3.SnackbarDuration\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.material3.SnackbarResult\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.util.fastAny\nimport androidx.lifecycle.Lifecycle\nimport androidx.lifecycle.flowWithLifecycle\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.preference.asState\nimport eu.kanade.core.util.addOrRemove\nimport eu.kanade.core.util.insertSeparators\nimport eu.kanade.domain.chapter.interactor.GetAvailableScanlators\nimport eu.kanade.domain.chapter.interactor.SetReadStatus\nimport eu.kanade.domain.chapter.interactor.SyncChaptersWithSource\nimport eu.kanade.domain.manga.interactor.GetExcludedScanlators\nimport eu.kanade.domain.manga.interactor.SetExcludedScanlators\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.chaptersFiltered\nimport eu.kanade.domain.manga.model.downloadedFilter\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.domain.track.interactor.AddTracks\nimport eu.kanade.domain.track.interactor.RefreshTracks\nimport eu.kanade.domain.track.interactor.TrackChapter\nimport eu.kanade.domain.track.model.AutoTrackState\nimport eu.kanade.domain.track.service.TrackPreferences\nimport eu.kanade.presentation.manga.DownloadAction\nimport eu.kanade.presentation.manga.components.ChapterDownloadAction\nimport eu.kanade.presentation.util.formattedMessage\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.network.HttpException\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.util.chapter.getNextUnread\nimport eu.kanade.tachiyomi.util.removeCovers\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.filter\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.isActive\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport mihon.domain.chapter.interactor.FilterChaptersForDownload\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.preference.CheckboxState\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.preference.mapAsCheckboxState\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.SetMangaCategories\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.chapter.interactor.SetMangaDefaultChapterFlags\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.ChapterUpdate\nimport tachiyomi.domain.chapter.model.NoChaptersException\nimport tachiyomi.domain.chapter.service.calculateChapterGap\nimport tachiyomi.domain.chapter.service.getChapterSort\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga\nimport tachiyomi.domain.manga.interactor.GetMangaWithChapters\nimport tachiyomi.domain.manga.interactor.SetMangaChapterFlags\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\nimport tachiyomi.domain.manga.model.applyFilter\nimport tachiyomi.domain.manga.repository.MangaRepository\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.i18n.MR\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport kotlin.math.floor\n\nclass MangaScreenModel(\n    private val context: Context,\n    private val lifecycle: Lifecycle,\n    private val mangaId: Long,\n    private val isFromSource: Boolean,\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n    private val trackPreferences: TrackPreferences = Injekt.get(),\n    readerPreferences: ReaderPreferences = Injekt.get(),\n    private val trackerManager: TrackerManager = Injekt.get(),\n    private val trackChapter: TrackChapter = Injekt.get(),\n    private val downloadManager: DownloadManager = Injekt.get(),\n    private val downloadCache: DownloadCache = Injekt.get(),\n    private val getMangaAndChapters: GetMangaWithChapters = Injekt.get(),\n    private val getDuplicateLibraryManga: GetDuplicateLibraryManga = Injekt.get(),\n    private val getAvailableScanlators: GetAvailableScanlators = Injekt.get(),\n    private val getExcludedScanlators: GetExcludedScanlators = Injekt.get(),\n    private val setExcludedScanlators: SetExcludedScanlators = Injekt.get(),\n    private val setMangaChapterFlags: SetMangaChapterFlags = Injekt.get(),\n    private val setMangaDefaultChapterFlags: SetMangaDefaultChapterFlags = Injekt.get(),\n    private val setReadStatus: SetReadStatus = Injekt.get(),\n    private val updateChapter: UpdateChapter = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n    private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get(),\n    private val getCategories: GetCategories = Injekt.get(),\n    private val getTracks: GetTracks = Injekt.get(),\n    private val addTracks: AddTracks = Injekt.get(),\n    private val setMangaCategories: SetMangaCategories = Injekt.get(),\n    private val mangaRepository: MangaRepository = Injekt.get(),\n    private val filterChaptersForDownload: FilterChaptersForDownload = Injekt.get(),\n    val snackbarHostState: SnackbarHostState = SnackbarHostState(),\n) : StateScreenModel<MangaScreenModel.State>(State.Loading) {\n\n    private val successState: State.Success?\n        get() = state.value as? State.Success\n\n    val manga: Manga?\n        get() = successState?.manga\n\n    val source: Source?\n        get() = successState?.source\n\n    private val isFavorited: Boolean\n        get() = manga?.favorite ?: false\n\n    private val allChapters: List<ChapterList.Item>?\n        get() = successState?.chapters\n\n    private val filteredChapters: List<ChapterList.Item>?\n        get() = successState?.processedChapters\n\n    val chapterSwipeStartAction = libraryPreferences.swipeToEndAction.get()\n    val chapterSwipeEndAction = libraryPreferences.swipeToStartAction.get()\n    var autoTrackState = trackPreferences.autoUpdateTrackOnMarkRead.get()\n\n    private val skipFiltered by readerPreferences.skipFiltered.asState(screenModelScope)\n\n    val isUpdateIntervalEnabled =\n        LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in libraryPreferences.autoUpdateMangaRestrictions.get()\n\n    private val selectedPositions: Array<Int> = arrayOf(-1, -1) // first and last selected index in list\n    private val selectedChapterIds: HashSet<Long> = HashSet()\n\n    /**\n     * Helper function to update the UI state only if it's currently in success state\n     */\n    private inline fun updateSuccessState(func: (State.Success) -> State.Success) {\n        mutableState.update {\n            when (it) {\n                State.Loading -> it\n                is State.Success -> func(it)\n            }\n        }\n    }\n\n    init {\n        screenModelScope.launchIO {\n            combine(\n                getMangaAndChapters.subscribe(mangaId, applyScanlatorFilter = true).distinctUntilChanged(),\n                downloadCache.changes,\n                downloadManager.queueState,\n            ) { mangaAndChapters, _, _ -> mangaAndChapters }\n                .flowWithLifecycle(lifecycle)\n                .collectLatest { (manga, chapters) ->\n                    updateSuccessState {\n                        it.copy(\n                            manga = manga,\n                            chapters = chapters.toChapterListItems(manga),\n                        )\n                    }\n                }\n        }\n\n        screenModelScope.launchIO {\n            getExcludedScanlators.subscribe(mangaId)\n                .flowWithLifecycle(lifecycle)\n                .distinctUntilChanged()\n                .collectLatest { excludedScanlators ->\n                    updateSuccessState {\n                        it.copy(excludedScanlators = excludedScanlators)\n                    }\n                }\n        }\n\n        screenModelScope.launchIO {\n            getAvailableScanlators.subscribe(mangaId)\n                .flowWithLifecycle(lifecycle)\n                .distinctUntilChanged()\n                .collectLatest { availableScanlators ->\n                    updateSuccessState {\n                        it.copy(availableScanlators = availableScanlators)\n                    }\n                }\n        }\n\n        observeDownloads()\n\n        screenModelScope.launchIO {\n            val manga = getMangaAndChapters.awaitManga(mangaId)\n            val chapters = getMangaAndChapters.awaitChapters(mangaId, applyScanlatorFilter = true)\n                .toChapterListItems(manga)\n\n            if (!manga.favorite) {\n                setMangaDefaultChapterFlags.await(manga)\n            }\n\n            val needRefreshInfo = !manga.initialized\n            val needRefreshChapter = chapters.isEmpty()\n\n            // Show what we have earlier\n            mutableState.update {\n                State.Success(\n                    manga = manga,\n                    source = Injekt.get<SourceManager>().getOrStub(manga.source),\n                    isFromSource = isFromSource,\n                    chapters = chapters,\n                    availableScanlators = getAvailableScanlators.await(mangaId),\n                    excludedScanlators = getExcludedScanlators.await(mangaId),\n                    isRefreshingData = needRefreshInfo || needRefreshChapter,\n                    dialog = null,\n                    hideMissingChapters = libraryPreferences.hideMissingChapters.get(),\n                )\n            }\n\n            // Start observe tracking since it only needs mangaId\n            observeTrackers()\n\n            // Fetch info-chapters when needed\n            if (screenModelScope.isActive) {\n                val fetchFromSourceTasks = listOf(\n                    async { if (needRefreshInfo) fetchMangaFromSource() },\n                    async { if (needRefreshChapter) fetchChaptersFromSource() },\n                )\n                fetchFromSourceTasks.awaitAll()\n            }\n\n            // Initial loading finished\n            updateSuccessState { it.copy(isRefreshingData = false) }\n        }\n    }\n\n    fun fetchAllFromSource(manualFetch: Boolean = true) {\n        screenModelScope.launch {\n            updateSuccessState { it.copy(isRefreshingData = true) }\n            val fetchFromSourceTasks = listOf(\n                async { fetchMangaFromSource(manualFetch) },\n                async { fetchChaptersFromSource(manualFetch) },\n            )\n            fetchFromSourceTasks.awaitAll()\n            updateSuccessState { it.copy(isRefreshingData = false) }\n        }\n    }\n\n    // Manga info - start\n\n    /**\n     * Fetch manga information from source.\n     */\n    private suspend fun fetchMangaFromSource(manualFetch: Boolean = false) {\n        val state = successState ?: return\n        try {\n            withIOContext {\n                val networkManga = state.source.getMangaDetails(state.manga.toSManga())\n                updateManga.awaitUpdateFromSource(state.manga, networkManga, manualFetch)\n            }\n        } catch (e: Throwable) {\n            // Ignore early hints \"errors\" that aren't handled by OkHttp\n            if (e is HttpException && e.code == 103) return\n\n            logcat(LogPriority.ERROR, e)\n            screenModelScope.launch {\n                snackbarHostState.showSnackbar(message = with(context) { e.formattedMessage })\n            }\n        }\n    }\n\n    fun toggleFavorite() {\n        toggleFavorite(\n            onRemoved = {\n                screenModelScope.launch {\n                    if (!hasDownloads()) return@launch\n                    val result = snackbarHostState.showSnackbar(\n                        message = context.stringResource(MR.strings.delete_downloads_for_manga),\n                        actionLabel = context.stringResource(MR.strings.action_delete),\n                        withDismissAction = true,\n                    )\n                    if (result == SnackbarResult.ActionPerformed) {\n                        deleteDownloads()\n                    }\n                }\n            },\n        )\n    }\n\n    /**\n     * Update favorite status of manga, (removes / adds) manga (to / from) library.\n     */\n    fun toggleFavorite(\n        onRemoved: () -> Unit,\n        checkDuplicate: Boolean = true,\n    ) {\n        val state = successState ?: return\n        screenModelScope.launchIO {\n            val manga = state.manga\n\n            if (isFavorited) {\n                // Remove from library\n                if (updateManga.awaitUpdateFavorite(manga.id, false)) {\n                    // Remove covers and update last modified in db\n                    if (manga.removeCovers() != manga) {\n                        updateManga.awaitUpdateCoverLastModified(manga.id)\n                    }\n                    withUIContext { onRemoved() }\n                }\n            } else {\n                // Add to library\n                // First, check if duplicate exists if callback is provided\n                if (checkDuplicate) {\n                    val duplicates = getDuplicateLibraryManga(manga)\n\n                    if (duplicates.isNotEmpty()) {\n                        updateSuccessState { it.copy(dialog = Dialog.DuplicateManga(manga, duplicates)) }\n                        return@launchIO\n                    }\n                }\n\n                // Now check if user previously set categories, when available\n                val categories = getCategories()\n                val defaultCategoryId = libraryPreferences.defaultCategory.get().toLong()\n                val defaultCategory = categories.find { it.id == defaultCategoryId }\n                when {\n                    // Default category set\n                    defaultCategory != null -> {\n                        val result = updateManga.awaitUpdateFavorite(manga.id, true)\n                        if (!result) return@launchIO\n                        moveMangaToCategory(defaultCategory)\n                    }\n\n                    // Automatic 'Default' or no categories\n                    defaultCategoryId == 0L || categories.isEmpty() -> {\n                        val result = updateManga.awaitUpdateFavorite(manga.id, true)\n                        if (!result) return@launchIO\n                        moveMangaToCategory(null)\n                    }\n\n                    // Choose a category\n                    else -> showChangeCategoryDialog()\n                }\n\n                // Finally match with enhanced tracking when available\n                addTracks.bindEnhancedTrackers(manga, state.source)\n            }\n        }\n    }\n\n    fun showChangeCategoryDialog() {\n        val manga = successState?.manga ?: return\n        screenModelScope.launch {\n            val categories = getCategories()\n            val selection = getMangaCategoryIds(manga)\n            updateSuccessState { successState ->\n                successState.copy(\n                    dialog = Dialog.ChangeCategory(\n                        manga = manga,\n                        initialSelection = categories.mapAsCheckboxState { it.id in selection }.toImmutableList(),\n                    ),\n                )\n            }\n        }\n    }\n\n    fun showSetFetchIntervalDialog() {\n        val manga = successState?.manga ?: return\n        updateSuccessState {\n            it.copy(dialog = Dialog.SetFetchInterval(manga))\n        }\n    }\n\n    fun setFetchInterval(manga: Manga, interval: Int) {\n        screenModelScope.launchIO {\n            if (\n                updateManga.awaitUpdateFetchInterval(\n                    // Custom intervals are negative\n                    manga.copy(fetchInterval = -interval),\n                )\n            ) {\n                val updatedManga = mangaRepository.getMangaById(manga.id)\n                updateSuccessState { it.copy(manga = updatedManga) }\n            }\n        }\n    }\n\n    /**\n     * Returns true if the manga has any downloads.\n     */\n    private fun hasDownloads(): Boolean {\n        val manga = successState?.manga ?: return false\n        return downloadManager.getDownloadCount(manga) > 0\n    }\n\n    /**\n     * Deletes all the downloads for the manga.\n     */\n    private fun deleteDownloads() {\n        val state = successState ?: return\n        downloadManager.deleteManga(state.manga, state.source)\n    }\n\n    /**\n     * Get user categories.\n     *\n     * @return List of categories, not including the default category\n     */\n    suspend fun getCategories(): List<Category> {\n        return getCategories.await().filterNot { it.isSystemCategory }\n    }\n\n    /**\n     * Gets the category id's the manga is in, if the manga is not in a category, returns the default id.\n     *\n     * @param manga the manga to get categories from.\n     * @return Array of category ids the manga is in, if none returns default id\n     */\n    private suspend fun getMangaCategoryIds(manga: Manga): List<Long> {\n        return getCategories.await(manga.id)\n            .map { it.id }\n    }\n\n    fun moveMangaToCategoriesAndAddToLibrary(manga: Manga, categories: List<Long>) {\n        moveMangaToCategory(categories)\n        if (manga.favorite) return\n\n        screenModelScope.launchIO {\n            updateManga.awaitUpdateFavorite(manga.id, true)\n        }\n    }\n\n    /**\n     * Move the given manga to categories.\n     *\n     * @param categories the selected categories.\n     */\n    private fun moveMangaToCategories(categories: List<Category>) {\n        val categoryIds = categories.map { it.id }\n        moveMangaToCategory(categoryIds)\n    }\n\n    private fun moveMangaToCategory(categoryIds: List<Long>) {\n        screenModelScope.launchIO {\n            setMangaCategories.await(mangaId, categoryIds)\n        }\n    }\n\n    /**\n     * Move the given manga to the category.\n     *\n     * @param category the selected category, or null for default category.\n     */\n    private fun moveMangaToCategory(category: Category?) {\n        moveMangaToCategories(listOfNotNull(category))\n    }\n\n    // Manga info - end\n\n    // Chapters list - start\n\n    private fun observeDownloads() {\n        screenModelScope.launchIO {\n            downloadManager.statusFlow()\n                .filter { it.manga.id == successState?.manga?.id }\n                .catch { error -> logcat(LogPriority.ERROR, error) }\n                .flowWithLifecycle(lifecycle)\n                .collect {\n                    withUIContext {\n                        updateDownloadState(it)\n                    }\n                }\n        }\n\n        screenModelScope.launchIO {\n            downloadManager.progressFlow()\n                .filter { it.manga.id == successState?.manga?.id }\n                .catch { error -> logcat(LogPriority.ERROR, error) }\n                .flowWithLifecycle(lifecycle)\n                .collect {\n                    withUIContext {\n                        updateDownloadState(it)\n                    }\n                }\n        }\n    }\n\n    private fun updateDownloadState(download: Download) {\n        updateSuccessState { successState ->\n            val modifiedIndex = successState.chapters.indexOfFirst { it.id == download.chapter.id }\n            if (modifiedIndex < 0) return@updateSuccessState successState\n\n            val newChapters = successState.chapters.toMutableList().apply {\n                val item = removeAt(modifiedIndex)\n                    .copy(downloadState = download.status, downloadProgress = download.progress)\n                add(modifiedIndex, item)\n            }\n            successState.copy(chapters = newChapters)\n        }\n    }\n\n    private fun List<Chapter>.toChapterListItems(manga: Manga): List<ChapterList.Item> {\n        val isLocal = manga.isLocal()\n        return map { chapter ->\n            val activeDownload = if (isLocal) {\n                null\n            } else {\n                downloadManager.getQueuedDownloadOrNull(chapter.id)\n            }\n            val downloaded = if (isLocal) {\n                true\n            } else {\n                downloadManager.isChapterDownloaded(\n                    chapter.name,\n                    chapter.scanlator,\n                    chapter.url,\n                    manga.title,\n                    manga.source,\n                )\n            }\n            val downloadState = when {\n                activeDownload != null -> activeDownload.status\n                downloaded -> Download.State.DOWNLOADED\n                else -> Download.State.NOT_DOWNLOADED\n            }\n\n            ChapterList.Item(\n                chapter = chapter,\n                downloadState = downloadState,\n                downloadProgress = activeDownload?.progress ?: 0,\n                selected = chapter.id in selectedChapterIds,\n            )\n        }\n    }\n\n    /**\n     * Requests an updated list of chapters from the source.\n     */\n    private suspend fun fetchChaptersFromSource(manualFetch: Boolean = false) {\n        val state = successState ?: return\n        try {\n            withIOContext {\n                val chapters = state.source.getChapterList(state.manga.toSManga())\n\n                val newChapters = syncChaptersWithSource.await(\n                    chapters,\n                    state.manga,\n                    state.source,\n                    manualFetch,\n                )\n\n                if (manualFetch) {\n                    downloadNewChapters(newChapters)\n                }\n            }\n        } catch (e: Throwable) {\n            val message = if (e is NoChaptersException) {\n                context.stringResource(MR.strings.no_chapters_error)\n            } else {\n                logcat(LogPriority.ERROR, e)\n                with(context) { e.formattedMessage }\n            }\n\n            screenModelScope.launch {\n                snackbarHostState.showSnackbar(message = message)\n            }\n            val newManga = mangaRepository.getMangaById(mangaId)\n            updateSuccessState { it.copy(manga = newManga, isRefreshingData = false) }\n        }\n    }\n\n    /**\n     * @throws IllegalStateException if the swipe action is [LibraryPreferences.ChapterSwipeAction.Disabled]\n     */\n    fun chapterSwipe(chapterItem: ChapterList.Item, swipeAction: LibraryPreferences.ChapterSwipeAction) {\n        screenModelScope.launch {\n            executeChapterSwipeAction(chapterItem, swipeAction)\n        }\n    }\n\n    /**\n     * @throws IllegalStateException if the swipe action is [LibraryPreferences.ChapterSwipeAction.Disabled]\n     */\n    private fun executeChapterSwipeAction(\n        chapterItem: ChapterList.Item,\n        swipeAction: LibraryPreferences.ChapterSwipeAction,\n    ) {\n        val chapter = chapterItem.chapter\n        when (swipeAction) {\n            LibraryPreferences.ChapterSwipeAction.ToggleRead -> {\n                markChaptersRead(listOf(chapter), !chapter.read)\n            }\n            LibraryPreferences.ChapterSwipeAction.ToggleBookmark -> {\n                bookmarkChapters(listOf(chapter), !chapter.bookmark)\n            }\n            LibraryPreferences.ChapterSwipeAction.Download -> {\n                val downloadAction: ChapterDownloadAction = when (chapterItem.downloadState) {\n                    Download.State.ERROR,\n                    Download.State.NOT_DOWNLOADED,\n                    -> ChapterDownloadAction.START_NOW\n                    Download.State.QUEUE,\n                    Download.State.DOWNLOADING,\n                    -> ChapterDownloadAction.CANCEL\n                    Download.State.DOWNLOADED -> ChapterDownloadAction.DELETE\n                }\n                runChapterDownloadActions(\n                    items = listOf(chapterItem),\n                    action = downloadAction,\n                )\n            }\n            LibraryPreferences.ChapterSwipeAction.Disabled -> throw IllegalStateException()\n        }\n    }\n\n    /**\n     * Returns the next unread chapter or null if everything is read.\n     */\n    fun getNextUnreadChapter(): Chapter? {\n        val successState = successState ?: return null\n        return successState.chapters.getNextUnread(successState.manga)\n    }\n\n    private fun getUnreadChapters(): List<Chapter> {\n        val chapterItems = if (skipFiltered) filteredChapters.orEmpty() else allChapters.orEmpty()\n        return chapterItems\n            .filter { (chapter, dlStatus) -> !chapter.read && dlStatus == Download.State.NOT_DOWNLOADED }\n            .map { it.chapter }\n    }\n\n    private fun getUnreadChaptersSorted(): List<Chapter> {\n        val manga = successState?.manga ?: return emptyList()\n        val chaptersSorted = getUnreadChapters().sortedWith(getChapterSort(manga))\n        return if (manga.sortDescending()) chaptersSorted.reversed() else chaptersSorted\n    }\n\n    private fun getBookmarkedChapters(): List<Chapter> {\n        val chapterItems = if (skipFiltered) filteredChapters.orEmpty() else allChapters.orEmpty()\n        return chapterItems\n            .filter { (chapter, dlStatus) -> chapter.bookmark && dlStatus == Download.State.NOT_DOWNLOADED }\n            .map { it.chapter }\n    }\n\n    private fun startDownload(\n        chapters: List<Chapter>,\n        startNow: Boolean,\n    ) {\n        val successState = successState ?: return\n\n        screenModelScope.launchNonCancellable {\n            if (startNow) {\n                val chapterId = chapters.singleOrNull()?.id ?: return@launchNonCancellable\n                downloadManager.startDownloadNow(chapterId)\n            } else {\n                downloadChapters(chapters)\n            }\n\n            if (!isFavorited && !successState.hasPromptedToAddBefore) {\n                updateSuccessState { state ->\n                    state.copy(hasPromptedToAddBefore = true)\n                }\n                val result = snackbarHostState.showSnackbar(\n                    message = context.stringResource(MR.strings.snack_add_to_library),\n                    actionLabel = context.stringResource(MR.strings.action_add),\n                    withDismissAction = true,\n                )\n                if (result == SnackbarResult.ActionPerformed && !isFavorited) {\n                    toggleFavorite()\n                }\n            }\n        }\n    }\n\n    fun runChapterDownloadActions(\n        items: List<ChapterList.Item>,\n        action: ChapterDownloadAction,\n    ) {\n        when (action) {\n            ChapterDownloadAction.START -> {\n                startDownload(items.map { it.chapter }, false)\n                if (items.any { it.downloadState == Download.State.ERROR }) {\n                    downloadManager.startDownloads()\n                }\n            }\n            ChapterDownloadAction.START_NOW -> {\n                val chapter = items.singleOrNull()?.chapter ?: return\n                startDownload(listOf(chapter), true)\n            }\n            ChapterDownloadAction.CANCEL -> {\n                val chapterId = items.singleOrNull()?.id ?: return\n                cancelDownload(chapterId)\n            }\n            ChapterDownloadAction.DELETE -> {\n                deleteChapters(items.map { it.chapter })\n            }\n        }\n    }\n\n    fun runDownloadAction(action: DownloadAction) {\n        val chaptersToDownload = when (action) {\n            DownloadAction.NEXT_1_CHAPTER -> getUnreadChaptersSorted().take(1)\n            DownloadAction.NEXT_5_CHAPTERS -> getUnreadChaptersSorted().take(5)\n            DownloadAction.NEXT_10_CHAPTERS -> getUnreadChaptersSorted().take(10)\n            DownloadAction.NEXT_25_CHAPTERS -> getUnreadChaptersSorted().take(25)\n            DownloadAction.UNREAD_CHAPTERS -> getUnreadChapters()\n            DownloadAction.BOOKMARKED_CHAPTERS -> getBookmarkedChapters()\n        }\n        if (chaptersToDownload.isNotEmpty()) {\n            startDownload(chaptersToDownload, false)\n        }\n    }\n\n    private fun cancelDownload(chapterId: Long) {\n        val activeDownload = downloadManager.getQueuedDownloadOrNull(chapterId) ?: return\n        downloadManager.cancelQueuedDownloads(listOf(activeDownload))\n        updateDownloadState(activeDownload.apply { status = Download.State.NOT_DOWNLOADED })\n    }\n\n    fun markPreviousChapterRead(pointer: Chapter) {\n        val manga = successState?.manga ?: return\n        val chapters = filteredChapters.orEmpty().map { it.chapter }\n        val prevChapters = if (manga.sortDescending()) chapters.asReversed() else chapters\n        val pointerPos = prevChapters.indexOf(pointer)\n        if (pointerPos != -1) markChaptersRead(prevChapters.take(pointerPos), true)\n    }\n\n    /**\n     * Mark the selected chapter list as read/unread.\n     * @param chapters the list of selected chapters.\n     * @param read whether to mark chapters as read or unread.\n     */\n    fun markChaptersRead(chapters: List<Chapter>, read: Boolean) {\n        toggleAllSelection(false)\n        if (chapters.isEmpty()) return\n        screenModelScope.launchIO {\n            setReadStatus.await(\n                read = read,\n                chapters = chapters.toTypedArray(),\n            )\n\n            if (!read || successState?.hasLoggedInTrackers == false || autoTrackState == AutoTrackState.NEVER) {\n                return@launchIO\n            }\n\n            refreshTrackers()\n\n            val tracks = getTracks.await(mangaId)\n            val maxChapterNumber = chapters.maxOf { it.chapterNumber }\n            val shouldPromptTrackingUpdate = tracks.any { track -> maxChapterNumber > track.lastChapterRead }\n\n            if (!shouldPromptTrackingUpdate) return@launchIO\n            if (autoTrackState == AutoTrackState.ALWAYS) {\n                trackChapter.await(context, mangaId, maxChapterNumber)\n                withUIContext {\n                    context.toast(context.stringResource(MR.strings.trackers_updated_summary, maxChapterNumber.toInt()))\n                }\n                return@launchIO\n            }\n\n            val result = snackbarHostState.showSnackbar(\n                message = context.stringResource(MR.strings.confirm_tracker_update, maxChapterNumber.toInt()),\n                actionLabel = context.stringResource(MR.strings.action_ok),\n                duration = SnackbarDuration.Short,\n                withDismissAction = true,\n            )\n\n            if (result == SnackbarResult.ActionPerformed) {\n                trackChapter.await(context, mangaId, maxChapterNumber)\n            }\n        }\n    }\n\n    private suspend fun refreshTrackers(\n        refreshTracks: RefreshTracks = Injekt.get(),\n    ) {\n        refreshTracks.await(mangaId)\n            .filter { it.first != null }\n            .forEach { (track, e) ->\n                logcat(LogPriority.ERROR, e) {\n                    \"Failed to refresh track data mangaId=$mangaId for service ${track!!.id}\"\n                }\n                withUIContext {\n                    context.toast(\n                        context.stringResource(\n                            MR.strings.track_error,\n                            track!!.name,\n                            e.message ?: \"\",\n                        ),\n                    )\n                }\n            }\n    }\n\n    /**\n     * Downloads the given list of chapters with the manager.\n     * @param chapters the list of chapters to download.\n     */\n    private fun downloadChapters(chapters: List<Chapter>) {\n        val manga = successState?.manga ?: return\n        downloadManager.downloadChapters(manga, chapters)\n        toggleAllSelection(false)\n    }\n\n    /**\n     * Bookmarks the given list of chapters.\n     * @param chapters the list of chapters to bookmark.\n     */\n    fun bookmarkChapters(chapters: List<Chapter>, bookmarked: Boolean) {\n        screenModelScope.launchIO {\n            chapters\n                .filterNot { it.bookmark == bookmarked }\n                .map { ChapterUpdate(id = it.id, bookmark = bookmarked) }\n                .let { updateChapter.awaitAll(it) }\n        }\n        toggleAllSelection(false)\n    }\n\n    /**\n     * Deletes the given list of chapter.\n     *\n     * @param chapters the list of chapters to delete.\n     */\n    fun deleteChapters(chapters: List<Chapter>) {\n        screenModelScope.launchNonCancellable {\n            try {\n                successState?.let { state ->\n                    downloadManager.deleteChapters(\n                        chapters,\n                        state.manga,\n                        state.source,\n                    )\n                }\n            } catch (e: Throwable) {\n                logcat(LogPriority.ERROR, e)\n            }\n        }\n    }\n\n    private fun downloadNewChapters(chapters: List<Chapter>) {\n        screenModelScope.launchNonCancellable {\n            val manga = successState?.manga ?: return@launchNonCancellable\n            val chaptersToDownload = filterChaptersForDownload.await(manga, chapters)\n\n            if (chaptersToDownload.isNotEmpty()) {\n                downloadChapters(chaptersToDownload)\n            }\n        }\n    }\n\n    /**\n     * Sets the read filter and requests an UI update.\n     * @param state whether to display only unread chapters or all chapters.\n     */\n    fun setUnreadFilter(state: TriState) {\n        val manga = successState?.manga ?: return\n\n        val flag = when (state) {\n            TriState.DISABLED -> Manga.SHOW_ALL\n            TriState.ENABLED_IS -> Manga.CHAPTER_SHOW_UNREAD\n            TriState.ENABLED_NOT -> Manga.CHAPTER_SHOW_READ\n        }\n        screenModelScope.launchNonCancellable {\n            setMangaChapterFlags.awaitSetUnreadFilter(manga, flag)\n        }\n    }\n\n    /**\n     * Sets the download filter and requests an UI update.\n     * @param state whether to display only downloaded chapters or all chapters.\n     */\n    fun setDownloadedFilter(state: TriState) {\n        val manga = successState?.manga ?: return\n\n        val flag = when (state) {\n            TriState.DISABLED -> Manga.SHOW_ALL\n            TriState.ENABLED_IS -> Manga.CHAPTER_SHOW_DOWNLOADED\n            TriState.ENABLED_NOT -> Manga.CHAPTER_SHOW_NOT_DOWNLOADED\n        }\n\n        screenModelScope.launchNonCancellable {\n            setMangaChapterFlags.awaitSetDownloadedFilter(manga, flag)\n        }\n    }\n\n    /**\n     * Sets the bookmark filter and requests an UI update.\n     * @param state whether to display only bookmarked chapters or all chapters.\n     */\n    fun setBookmarkedFilter(state: TriState) {\n        val manga = successState?.manga ?: return\n\n        val flag = when (state) {\n            TriState.DISABLED -> Manga.SHOW_ALL\n            TriState.ENABLED_IS -> Manga.CHAPTER_SHOW_BOOKMARKED\n            TriState.ENABLED_NOT -> Manga.CHAPTER_SHOW_NOT_BOOKMARKED\n        }\n\n        screenModelScope.launchNonCancellable {\n            setMangaChapterFlags.awaitSetBookmarkFilter(manga, flag)\n        }\n    }\n\n    /**\n     * Sets the active display mode.\n     * @param mode the mode to set.\n     */\n    fun setDisplayMode(mode: Long) {\n        val manga = successState?.manga ?: return\n\n        screenModelScope.launchNonCancellable {\n            setMangaChapterFlags.awaitSetDisplayMode(manga, mode)\n        }\n    }\n\n    /**\n     * Sets the sorting method and requests an UI update.\n     * @param sort the sorting mode.\n     */\n    fun setSorting(sort: Long) {\n        val manga = successState?.manga ?: return\n\n        screenModelScope.launchNonCancellable {\n            setMangaChapterFlags.awaitSetSortingModeOrFlipOrder(manga, sort)\n        }\n    }\n\n    fun setCurrentSettingsAsDefault(applyToExisting: Boolean) {\n        val manga = successState?.manga ?: return\n        screenModelScope.launchNonCancellable {\n            libraryPreferences.setChapterSettingsDefault(manga)\n            if (applyToExisting) {\n                setMangaDefaultChapterFlags.awaitAll()\n            }\n            snackbarHostState.showSnackbar(message = context.stringResource(MR.strings.chapter_settings_updated))\n        }\n    }\n\n    fun resetToDefaultSettings() {\n        val manga = successState?.manga ?: return\n        screenModelScope.launchNonCancellable {\n            setMangaDefaultChapterFlags.await(manga)\n        }\n    }\n\n    fun toggleSelection(\n        item: ChapterList.Item,\n        selected: Boolean,\n        fromLongPress: Boolean = false,\n    ) {\n        updateSuccessState { successState ->\n            val newChapters = successState.processedChapters.toMutableList().apply {\n                val selectedIndex = successState.processedChapters.indexOfFirst { it.id == item.chapter.id }\n                if (selectedIndex < 0) return@apply\n\n                val selectedItem = get(selectedIndex)\n                if ((selectedItem.selected && selected) || (!selectedItem.selected && !selected)) return@apply\n\n                val firstSelection = none { it.selected }\n                set(selectedIndex, selectedItem.copy(selected = selected))\n                selectedChapterIds.addOrRemove(item.id, selected)\n\n                if (selected && fromLongPress) {\n                    if (firstSelection) {\n                        selectedPositions[0] = selectedIndex\n                        selectedPositions[1] = selectedIndex\n                    } else {\n                        // Try to select the items in-between when possible\n                        val range: IntRange\n                        if (selectedIndex < selectedPositions[0]) {\n                            range = selectedIndex + 1..<selectedPositions[0]\n                            selectedPositions[0] = selectedIndex\n                        } else if (selectedIndex > selectedPositions[1]) {\n                            range = (selectedPositions[1] + 1)..<selectedIndex\n                            selectedPositions[1] = selectedIndex\n                        } else {\n                            // Just select itself\n                            range = IntRange.EMPTY\n                        }\n\n                        range.forEach {\n                            val inbetweenItem = get(it)\n                            if (!inbetweenItem.selected) {\n                                selectedChapterIds.add(inbetweenItem.id)\n                                set(it, inbetweenItem.copy(selected = true))\n                            }\n                        }\n                    }\n                } else if (!fromLongPress) {\n                    if (!selected) {\n                        if (selectedIndex == selectedPositions[0]) {\n                            selectedPositions[0] = indexOfFirst { it.selected }\n                        } else if (selectedIndex == selectedPositions[1]) {\n                            selectedPositions[1] = indexOfLast { it.selected }\n                        }\n                    } else {\n                        if (selectedIndex < selectedPositions[0]) {\n                            selectedPositions[0] = selectedIndex\n                        } else if (selectedIndex > selectedPositions[1]) {\n                            selectedPositions[1] = selectedIndex\n                        }\n                    }\n                }\n            }\n            successState.copy(chapters = newChapters)\n        }\n    }\n\n    fun toggleAllSelection(selected: Boolean) {\n        updateSuccessState { successState ->\n            val newChapters = successState.chapters.map {\n                selectedChapterIds.addOrRemove(it.id, selected)\n                it.copy(selected = selected)\n            }\n            selectedPositions[0] = -1\n            selectedPositions[1] = -1\n            successState.copy(chapters = newChapters)\n        }\n    }\n\n    fun invertSelection() {\n        updateSuccessState { successState ->\n            val newChapters = successState.chapters.map {\n                selectedChapterIds.addOrRemove(it.id, !it.selected)\n                it.copy(selected = !it.selected)\n            }\n            selectedPositions[0] = -1\n            selectedPositions[1] = -1\n            successState.copy(chapters = newChapters)\n        }\n    }\n\n    // Chapters list - end\n\n    // Track sheet - start\n\n    private fun observeTrackers() {\n        val manga = successState?.manga ?: return\n\n        screenModelScope.launchIO {\n            combine(\n                getTracks.subscribe(manga.id).catch { logcat(LogPriority.ERROR, it) },\n                trackerManager.loggedInTrackersFlow(),\n            ) { mangaTracks, loggedInTrackers ->\n                // Show only if the service supports this manga's source\n                val supportedTrackers = loggedInTrackers.filter { (it as? EnhancedTracker)?.accept(source!!) ?: true }\n                val supportedTrackerIds = supportedTrackers.map { it.id }.toHashSet()\n                val supportedTrackerTracks = mangaTracks.filter { it.trackerId in supportedTrackerIds }\n                supportedTrackerTracks.size to supportedTrackers.isNotEmpty()\n            }\n                .flowWithLifecycle(lifecycle)\n                .distinctUntilChanged()\n                .collectLatest { (trackingCount, hasLoggedInTrackers) ->\n                    updateSuccessState {\n                        it.copy(\n                            trackingCount = trackingCount,\n                            hasLoggedInTrackers = hasLoggedInTrackers,\n                        )\n                    }\n                }\n        }\n    }\n\n    // Track sheet - end\n\n    sealed interface Dialog {\n        data class ChangeCategory(\n            val manga: Manga,\n            val initialSelection: ImmutableList<CheckboxState<Category>>,\n        ) : Dialog\n        data class DeleteChapters(val chapters: List<Chapter>) : Dialog\n        data class DuplicateManga(val manga: Manga, val duplicates: List<MangaWithChapterCount>) : Dialog\n        data class Migrate(val target: Manga, val current: Manga) : Dialog\n        data class SetFetchInterval(val manga: Manga) : Dialog\n        data object SettingsSheet : Dialog\n        data object TrackSheet : Dialog\n        data object FullCover : Dialog\n    }\n\n    fun dismissDialog() {\n        updateSuccessState { it.copy(dialog = null) }\n    }\n\n    fun showDeleteChapterDialog(chapters: List<Chapter>) {\n        updateSuccessState { it.copy(dialog = Dialog.DeleteChapters(chapters)) }\n    }\n\n    fun showSettingsDialog() {\n        updateSuccessState { it.copy(dialog = Dialog.SettingsSheet) }\n    }\n\n    fun showTrackDialog() {\n        updateSuccessState { it.copy(dialog = Dialog.TrackSheet) }\n    }\n\n    fun showCoverDialog() {\n        updateSuccessState { it.copy(dialog = Dialog.FullCover) }\n    }\n\n    fun showMigrateDialog(duplicate: Manga) {\n        val manga = successState?.manga ?: return\n        updateSuccessState { it.copy(dialog = Dialog.Migrate(target = manga, current = duplicate)) }\n    }\n\n    fun setExcludedScanlators(excludedScanlators: Set<String>) {\n        screenModelScope.launchIO {\n            setExcludedScanlators.await(mangaId, excludedScanlators)\n        }\n    }\n\n    sealed interface State {\n        @Immutable\n        data object Loading : State\n\n        @Immutable\n        data class Success(\n            val manga: Manga,\n            val source: Source,\n            val isFromSource: Boolean,\n            val chapters: List<ChapterList.Item>,\n            val availableScanlators: Set<String>,\n            val excludedScanlators: Set<String>,\n            val trackingCount: Int = 0,\n            val hasLoggedInTrackers: Boolean = false,\n            val isRefreshingData: Boolean = false,\n            val dialog: Dialog? = null,\n            val hasPromptedToAddBefore: Boolean = false,\n            val hideMissingChapters: Boolean = false,\n        ) : State {\n            val processedChapters by lazy {\n                chapters.applyFilters(manga).toList()\n            }\n\n            val isAnySelected by lazy {\n                chapters.fastAny { it.selected }\n            }\n\n            val chapterListItems by lazy {\n                if (hideMissingChapters) {\n                    return@lazy processedChapters\n                }\n\n                processedChapters.insertSeparators { before, after ->\n                    val (lowerChapter, higherChapter) = if (manga.sortDescending()) {\n                        after to before\n                    } else {\n                        before to after\n                    }\n                    if (higherChapter == null) return@insertSeparators null\n\n                    if (lowerChapter == null) {\n                        floor(higherChapter.chapter.chapterNumber)\n                            .toInt()\n                            .minus(1)\n                            .coerceAtLeast(0)\n                    } else {\n                        calculateChapterGap(higherChapter.chapter, lowerChapter.chapter)\n                    }\n                        .takeIf { it > 0 }\n                        ?.let { missingCount ->\n                            ChapterList.MissingCount(\n                                id = \"${lowerChapter?.id}-${higherChapter.id}\",\n                                count = missingCount,\n                            )\n                        }\n                }\n            }\n\n            val scanlatorFilterActive: Boolean\n                get() = excludedScanlators.intersect(availableScanlators).isNotEmpty()\n\n            val filterActive: Boolean\n                get() = scanlatorFilterActive || manga.chaptersFiltered()\n\n            /**\n             * Applies the view filters to the list of chapters obtained from the database.\n             * @return an observable of the list of chapters filtered and sorted.\n             */\n            private fun List<ChapterList.Item>.applyFilters(manga: Manga): Sequence<ChapterList.Item> {\n                val isLocalManga = manga.isLocal()\n                val unreadFilter = manga.unreadFilter\n                val downloadedFilter = manga.downloadedFilter\n                val bookmarkedFilter = manga.bookmarkedFilter\n                return asSequence()\n                    .filter { (chapter) -> applyFilter(unreadFilter) { !chapter.read } }\n                    .filter { (chapter) -> applyFilter(bookmarkedFilter) { chapter.bookmark } }\n                    .filter { applyFilter(downloadedFilter) { it.isDownloaded || isLocalManga } }\n                    .sortedWith { (chapter1), (chapter2) -> getChapterSort(manga).invoke(chapter1, chapter2) }\n            }\n        }\n    }\n}\n\n@Immutable\nsealed class ChapterList {\n    @Immutable\n    data class MissingCount(\n        val id: String,\n        val count: Int,\n    ) : ChapterList()\n\n    @Immutable\n    data class Item(\n        val chapter: Chapter,\n        val downloadState: Download.State,\n        val downloadProgress: Int,\n        val selected: Boolean = false,\n    ) : ChapterList() {\n        val id = chapter.id\n        val isDownloaded = downloadState == Download.State.DOWNLOADED\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/manga/notes/MangaNotesScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.manga.notes\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.manga.MangaNotesScreen\nimport eu.kanade.presentation.util.Screen\nimport kotlinx.coroutines.flow.update\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.domain.manga.interactor.UpdateMangaNotes\nimport tachiyomi.domain.manga.model.Manga\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MangaNotesScreen(\n    private val manga: Manga,\n) : Screen() {\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { Model(manga) }\n        val state by screenModel.state.collectAsState()\n\n        MangaNotesScreen(\n            state = state,\n            navigateUp = navigator::pop,\n            onUpdate = screenModel::updateNotes,\n        )\n    }\n\n    private class Model(\n        private val manga: Manga,\n        private val updateMangaNotes: UpdateMangaNotes = Injekt.get(),\n    ) : StateScreenModel<State>(State(manga, manga.notes)) {\n\n        fun updateNotes(content: String) {\n            if (content == state.value.notes) return\n\n            mutableState.update {\n                it.copy(notes = content)\n            }\n\n            screenModelScope.launchNonCancellable {\n                updateMangaNotes(manga.id, content)\n            }\n        }\n    }\n\n    @Immutable\n    data class State(\n        val manga: Manga,\n        val notes: String,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt",
    "content": "package eu.kanade.tachiyomi.ui.manga.track\n\nimport android.app.Application\nimport android.content.Context\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.systemBars\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.text.input.rememberTextFieldState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.Delete\nimport androidx.compose.material3.ButtonDefaults\nimport androidx.compose.material3.FilledTonalButton\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.SelectableDates\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.text.style.TextAlign\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.domain.track.interactor.RefreshTracks\nimport eu.kanade.domain.track.model.toDbTrack\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.presentation.track.TrackChapterSelector\nimport eu.kanade.presentation.track.TrackDateSelector\nimport eu.kanade.presentation.track.TrackInfoDialogHome\nimport eu.kanade.presentation.track.TrackScoreSelector\nimport eu.kanade.presentation.track.TrackStatusSelector\nimport eu.kanade.presentation.track.TrackerSearch\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.data.track.DeletableTracker\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport eu.kanade.tachiyomi.util.lang.convertEpochMillisZone\nimport eu.kanade.tachiyomi.util.lang.toLocalDate\nimport eu.kanade.tachiyomi.util.system.copyToClipboard\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.toast\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.track.interactor.DeleteTrack\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.components.material.AlertDialogContent\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.LocalDate\nimport java.time.ZoneOffset\n\ndata class TrackInfoDialogHomeScreen(\n    private val mangaId: Long,\n    private val mangaTitle: String,\n    private val sourceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val context = LocalContext.current\n        val screenModel = rememberScreenModel { Model(mangaId, sourceId) }\n\n        val dateFormat = remember { UiPreferences.dateFormat(Injekt.get<UiPreferences>().dateFormat.get()) }\n        val state by screenModel.state.collectAsState()\n\n        TrackInfoDialogHome(\n            trackItems = state.trackItems,\n            dateFormat = dateFormat,\n            onStatusClick = {\n                navigator.push(\n                    TrackStatusSelectorScreen(\n                        track = it.track!!,\n                        serviceId = it.tracker.id,\n                    ),\n                )\n            },\n            onChapterClick = {\n                navigator.push(\n                    TrackChapterSelectorScreen(\n                        track = it.track!!,\n                        serviceId = it.tracker.id,\n                    ),\n                )\n            },\n            onScoreClick = {\n                navigator.push(\n                    TrackScoreSelectorScreen(\n                        track = it.track!!,\n                        serviceId = it.tracker.id,\n                    ),\n                )\n            },\n            onStartDateEdit = {\n                navigator.push(\n                    TrackDateSelectorScreen(\n                        track = it.track!!,\n                        serviceId = it.tracker.id,\n                        start = true,\n                    ),\n                )\n            },\n            onEndDateEdit = {\n                navigator.push(\n                    TrackDateSelectorScreen(\n                        track = it.track!!,\n                        serviceId = it.tracker.id,\n                        start = false,\n                    ),\n                )\n            },\n            onNewSearch = {\n                if (it.tracker is EnhancedTracker) {\n                    screenModel.registerEnhancedTracking(it)\n                } else {\n                    navigator.push(\n                        TrackerSearchScreen(\n                            mangaId = mangaId,\n                            initialQuery = it.track?.title ?: mangaTitle,\n                            currentUrl = it.track?.remoteUrl,\n                            serviceId = it.tracker.id,\n                        ),\n                    )\n                }\n            },\n            onOpenInBrowser = { openTrackerInBrowser(context, it) },\n            onRemoved = {\n                navigator.push(\n                    TrackerRemoveScreen(\n                        mangaId = mangaId,\n                        track = it.track!!,\n                        serviceId = it.tracker.id,\n                    ),\n                )\n            },\n            onCopyLink = { context.copyTrackerLink(it) },\n            onTogglePrivate = screenModel::togglePrivate,\n        )\n    }\n\n    /**\n     * Opens registered tracker url in browser\n     */\n    private fun openTrackerInBrowser(context: Context, trackItem: TrackItem) {\n        val url = trackItem.track?.remoteUrl ?: return\n        if (url.isNotBlank()) {\n            context.openInBrowser(url)\n        }\n    }\n\n    private fun Context.copyTrackerLink(trackItem: TrackItem) {\n        val url = trackItem.track?.remoteUrl ?: return\n        if (url.isNotBlank()) {\n            copyToClipboard(url, url)\n        }\n    }\n\n    private class Model(\n        private val mangaId: Long,\n        private val sourceId: Long,\n        private val getTracks: GetTracks = Injekt.get(),\n    ) : StateScreenModel<Model.State>(State()) {\n\n        init {\n            screenModelScope.launch {\n                refreshTrackers()\n            }\n\n            screenModelScope.launch {\n                getTracks.subscribe(mangaId)\n                    .catch { logcat(LogPriority.ERROR, it) }\n                    .distinctUntilChanged()\n                    .map { it.mapToTrackItem() }\n                    .collectLatest { trackItems -> mutableState.update { it.copy(trackItems = trackItems) } }\n            }\n        }\n\n        fun registerEnhancedTracking(item: TrackItem) {\n            item.tracker as EnhancedTracker\n            screenModelScope.launchNonCancellable {\n                val manga = Injekt.get<GetManga>().await(mangaId) ?: return@launchNonCancellable\n                try {\n                    val matchResult = item.tracker.match(manga) ?: throw Exception()\n                    item.tracker.register(matchResult, mangaId)\n                } catch (_: Exception) {\n                    withUIContext { Injekt.get<Application>().toast(MR.strings.error_no_match) }\n                }\n            }\n        }\n\n        private suspend fun refreshTrackers() {\n            val refreshTracks = Injekt.get<RefreshTracks>()\n            val context = Injekt.get<Application>()\n\n            refreshTracks.await(mangaId)\n                .filter { it.first != null }\n                .forEach { (track, e) ->\n                    logcat(LogPriority.ERROR, e) {\n                        \"Failed to refresh track data mangaId=$mangaId for service ${track!!.id}\"\n                    }\n                    withUIContext {\n                        context.toast(\n                            context.stringResource(\n                                MR.strings.track_error,\n                                track!!.name,\n                                e.message ?: \"\",\n                            ),\n                        )\n                    }\n                }\n        }\n\n        fun togglePrivate(item: TrackItem) {\n            screenModelScope.launchNonCancellable {\n                item.tracker.setRemotePrivate(item.track!!.toDbTrack(), !item.track.private)\n            }\n        }\n\n        private fun List<Track>.mapToTrackItem(): List<TrackItem> {\n            val loggedInTrackers = Injekt.get<TrackerManager>().loggedInTrackers()\n            val source = Injekt.get<SourceManager>().getOrStub(sourceId)\n            return loggedInTrackers\n                // Map to TrackItem\n                .map { service -> TrackItem(find { it.trackerId == service.id }, service) }\n                // Show only if the service supports this manga's source\n                .filter { (it.tracker as? EnhancedTracker)?.accept(source) ?: true }\n        }\n\n        @Immutable\n        data class State(\n            val trackItems: List<TrackItem> = emptyList(),\n        )\n    }\n}\n\nprivate data class TrackStatusSelectorScreen(\n    private val track: Track,\n    private val serviceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                track = track,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n            )\n        }\n        val state by screenModel.state.collectAsState()\n        TrackStatusSelector(\n            selection = state.selection,\n            onSelectionChange = screenModel::setSelection,\n            selections = remember { screenModel.getSelections() },\n            onConfirm = {\n                screenModel.setStatus()\n                navigator.pop()\n            },\n            onDismissRequest = navigator::pop,\n        )\n    }\n\n    private class Model(\n        private val track: Track,\n        private val tracker: Tracker,\n    ) : StateScreenModel<Model.State>(State(track.status)) {\n\n        fun getSelections(): Map<Long, StringResource?> {\n            return tracker.getStatusList().associateWith { tracker.getStatus(it) }\n        }\n\n        fun setSelection(selection: Long) {\n            mutableState.update { it.copy(selection = selection) }\n        }\n\n        fun setStatus() {\n            screenModelScope.launchNonCancellable {\n                tracker.setRemoteStatus(track.toDbTrack(), state.value.selection)\n            }\n        }\n\n        @Immutable\n        data class State(\n            val selection: Long,\n        )\n    }\n}\n\nprivate data class TrackChapterSelectorScreen(\n    private val track: Track,\n    private val serviceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                track = track,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n            )\n        }\n        val state by screenModel.state.collectAsState()\n\n        TrackChapterSelector(\n            selection = state.selection,\n            onSelectionChange = screenModel::setSelection,\n            range = remember { screenModel.getRange() },\n            onConfirm = {\n                screenModel.setChapter()\n                navigator.pop()\n            },\n            onDismissRequest = navigator::pop,\n        )\n    }\n\n    private class Model(\n        private val track: Track,\n        private val tracker: Tracker,\n    ) : StateScreenModel<Model.State>(State(track.lastChapterRead.toInt())) {\n\n        fun getRange(): Iterable<Int> {\n            val endRange = if (track.totalChapters > 0) {\n                track.totalChapters\n            } else {\n                10000\n            }\n            return 0..endRange.toInt()\n        }\n\n        fun setSelection(selection: Int) {\n            mutableState.update { it.copy(selection = selection) }\n        }\n\n        fun setChapter() {\n            screenModelScope.launchNonCancellable {\n                tracker.setRemoteLastChapterRead(track.toDbTrack(), state.value.selection)\n            }\n        }\n\n        @Immutable\n        data class State(\n            val selection: Int,\n        )\n    }\n}\n\nprivate data class TrackScoreSelectorScreen(\n    private val track: Track,\n    private val serviceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                track = track,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n            )\n        }\n        val state by screenModel.state.collectAsState()\n\n        TrackScoreSelector(\n            selection = state.selection,\n            onSelectionChange = screenModel::setSelection,\n            selections = remember { screenModel.getSelections() },\n            onConfirm = {\n                screenModel.setScore()\n                navigator.pop()\n            },\n            onDismissRequest = navigator::pop,\n        )\n    }\n\n    private class Model(\n        private val track: Track,\n        private val tracker: Tracker,\n    ) : StateScreenModel<Model.State>(State(tracker.displayScore(track))) {\n\n        fun getSelections(): ImmutableList<String> {\n            return tracker.getScoreList()\n        }\n\n        fun setSelection(selection: String) {\n            mutableState.update { it.copy(selection = selection) }\n        }\n\n        fun setScore() {\n            screenModelScope.launchNonCancellable {\n                tracker.setRemoteScore(track.toDbTrack(), state.value.selection)\n            }\n        }\n\n        @Immutable\n        data class State(\n            val selection: String,\n        )\n    }\n}\n\nprivate data class TrackDateSelectorScreen(\n    private val track: Track,\n    private val serviceId: Long,\n    private val start: Boolean,\n) : Screen() {\n\n    @Transient\n    private val selectableDates = object : SelectableDates {\n        override fun isSelectableDate(utcTimeMillis: Long): Boolean {\n            val targetDate = Instant.ofEpochMilli(utcTimeMillis).toLocalDate(ZoneOffset.UTC)\n\n            // Disallow future dates\n            if (targetDate > LocalDate.now(ZoneOffset.UTC)) return false\n\n            return when {\n                // Disallow setting start date after finish date\n                start && track.finishDate > 0 -> {\n                    val finishDate = Instant.ofEpochMilli(track.finishDate).toLocalDate(ZoneOffset.UTC)\n                    targetDate <= finishDate\n                }\n                // Disallow setting finish date before start date\n                !start && track.startDate > 0 -> {\n                    val startDate = Instant.ofEpochMilli(track.startDate).toLocalDate(ZoneOffset.UTC)\n                    startDate <= targetDate\n                }\n                else -> {\n                    true\n                }\n            }\n        }\n\n        override fun isSelectableYear(year: Int): Boolean {\n            // Disallow future years\n            if (year > LocalDate.now(ZoneOffset.UTC).year) return false\n\n            return when {\n                // Disallow setting start year after finish year\n                start && track.finishDate > 0 -> {\n                    val finishDate = Instant.ofEpochMilli(track.finishDate).toLocalDate(ZoneOffset.UTC)\n                    year <= finishDate.year\n                }\n                // Disallow setting finish year before start year\n                !start && track.startDate > 0 -> {\n                    val startDate = Instant.ofEpochMilli(track.startDate).toLocalDate(ZoneOffset.UTC)\n                    startDate.year <= year\n                }\n                else -> {\n                    true\n                }\n            }\n        }\n    }\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                track = track,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n                start = start,\n            )\n        }\n\n        val canRemove = if (start) {\n            track.startDate > 0\n        } else {\n            track.finishDate > 0\n        }\n        TrackDateSelector(\n            title = if (start) {\n                stringResource(MR.strings.track_started_reading_date)\n            } else {\n                stringResource(MR.strings.track_finished_reading_date)\n            },\n            initialSelectedDateMillis = screenModel.initialSelection,\n            selectableDates = selectableDates,\n            onConfirm = {\n                screenModel.setDate(it)\n                navigator.pop()\n            },\n            onRemove = { screenModel.confirmRemoveDate(navigator) }.takeIf { canRemove },\n            onDismissRequest = navigator::pop,\n        )\n    }\n\n    private class Model(\n        private val track: Track,\n        private val tracker: Tracker,\n        private val start: Boolean,\n    ) : ScreenModel {\n\n        // In UTC\n        val initialSelection: Long\n            get() {\n                val millis = (if (start) track.startDate else track.finishDate)\n                    .takeIf { it != 0L }\n                    ?: Instant.now().toEpochMilli()\n                return millis.convertEpochMillisZone(ZoneOffset.systemDefault(), ZoneOffset.UTC)\n            }\n\n        // In UTC\n        fun setDate(millis: Long) {\n            // Convert to local time\n            val localMillis = millis.convertEpochMillisZone(ZoneOffset.UTC, ZoneOffset.systemDefault())\n            screenModelScope.launchNonCancellable {\n                if (start) {\n                    tracker.setRemoteStartDate(track.toDbTrack(), localMillis)\n                } else {\n                    tracker.setRemoteFinishDate(track.toDbTrack(), localMillis)\n                }\n            }\n        }\n\n        fun confirmRemoveDate(navigator: Navigator) {\n            navigator.push(TrackDateRemoverScreen(track, tracker.id, start))\n        }\n    }\n}\n\nprivate data class TrackDateRemoverScreen(\n    private val track: Track,\n    private val serviceId: Long,\n    private val start: Boolean,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                track = track,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n                start = start,\n            )\n        }\n        AlertDialogContent(\n            modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),\n            icon = {\n                Icon(\n                    imageVector = Icons.Default.Delete,\n                    contentDescription = null,\n                )\n            },\n            title = {\n                Text(\n                    text = stringResource(MR.strings.track_remove_date_conf_title),\n                    textAlign = TextAlign.Center,\n                )\n            },\n            text = {\n                val serviceName = screenModel.getServiceName()\n                Text(\n                    text = if (start) {\n                        stringResource(MR.strings.track_remove_start_date_conf_text, serviceName)\n                    } else {\n                        stringResource(MR.strings.track_remove_finish_date_conf_text, serviceName)\n                    },\n                )\n            },\n            buttons = {\n                Row(\n                    modifier = Modifier.fillMaxWidth(),\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small, Alignment.End),\n                ) {\n                    TextButton(onClick = navigator::pop) {\n                        Text(text = stringResource(MR.strings.action_cancel))\n                    }\n                    FilledTonalButton(\n                        onClick = {\n                            screenModel.removeDate()\n                            navigator.popUntil { it is TrackInfoDialogHomeScreen }\n                        },\n                        colors = ButtonDefaults.filledTonalButtonColors(\n                            containerColor = MaterialTheme.colorScheme.errorContainer,\n                            contentColor = MaterialTheme.colorScheme.onErrorContainer,\n                        ),\n                    ) {\n                        Text(text = stringResource(MR.strings.action_remove))\n                    }\n                }\n            },\n        )\n    }\n\n    private class Model(\n        private val track: Track,\n        private val tracker: Tracker,\n        private val start: Boolean,\n    ) : ScreenModel {\n\n        fun getServiceName() = tracker.name\n\n        fun removeDate() {\n            screenModelScope.launchNonCancellable {\n                if (start) {\n                    tracker.setRemoteStartDate(track.toDbTrack(), 0)\n                } else {\n                    tracker.setRemoteFinishDate(track.toDbTrack(), 0)\n                }\n            }\n        }\n    }\n}\n\ndata class TrackerSearchScreen(\n    private val mangaId: Long,\n    private val initialQuery: String,\n    private val currentUrl: String?,\n    private val serviceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                mangaId = mangaId,\n                currentUrl = currentUrl,\n                initialQuery = initialQuery,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n            )\n        }\n\n        val state by screenModel.state.collectAsState()\n\n        val textFieldState = rememberTextFieldState(initialQuery)\n        TrackerSearch(\n            state = textFieldState,\n            onDispatchQuery = { screenModel.trackingSearch(textFieldState.text.toString()) },\n            queryResult = state.queryResult,\n            selected = state.selected,\n            onSelectedChange = screenModel::updateSelection,\n            onConfirmSelection = f@{ private: Boolean ->\n                val selected = state.selected ?: return@f\n                selected.private = private\n                screenModel.registerTracking(selected)\n                navigator.pop()\n            },\n            onDismissRequest = navigator::pop,\n            supportsPrivateTracking = screenModel.supportsPrivateTracking,\n        )\n    }\n\n    private class Model(\n        private val mangaId: Long,\n        private val currentUrl: String? = null,\n        initialQuery: String,\n        private val tracker: Tracker,\n    ) : StateScreenModel<Model.State>(State()) {\n\n        val supportsPrivateTracking = tracker.supportsPrivateTracking\n\n        init {\n            // Run search on first launch\n            if (initialQuery.isNotBlank()) {\n                trackingSearch(initialQuery)\n            }\n        }\n\n        fun trackingSearch(query: String) {\n            screenModelScope.launch {\n                // To show loading state\n                mutableState.update { it.copy(queryResult = null, selected = null) }\n\n                val result = withIOContext {\n                    try {\n                        val results = tracker.search(query)\n                        Result.success(results)\n                    } catch (e: Throwable) {\n                        Result.failure(e)\n                    }\n                }\n                mutableState.update { oldState ->\n                    oldState.copy(\n                        queryResult = result,\n                        selected = result.getOrNull()?.find { it.tracking_url == currentUrl },\n                    )\n                }\n            }\n        }\n\n        fun registerTracking(item: TrackSearch) {\n            screenModelScope.launchNonCancellable { tracker.register(item, mangaId) }\n        }\n\n        fun updateSelection(selected: TrackSearch) {\n            mutableState.update { it.copy(selected = selected) }\n        }\n\n        @Immutable\n        data class State(\n            val queryResult: Result<List<TrackSearch>>? = null,\n            val selected: TrackSearch? = null,\n        )\n    }\n}\n\nprivate data class TrackerRemoveScreen(\n    private val mangaId: Long,\n    private val track: Track,\n    private val serviceId: Long,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel {\n            Model(\n                mangaId = mangaId,\n                track = track,\n                tracker = Injekt.get<TrackerManager>().get(serviceId)!!,\n            )\n        }\n        val serviceName = screenModel.getName()\n        var removeRemoteTrack by remember { mutableStateOf(false) }\n        AlertDialogContent(\n            modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),\n            icon = {\n                Icon(\n                    imageVector = Icons.Default.Delete,\n                    contentDescription = null,\n                )\n            },\n            title = {\n                Text(\n                    text = stringResource(MR.strings.track_delete_title, serviceName),\n                    textAlign = TextAlign.Center,\n                )\n            },\n            text = {\n                Column(\n                    verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                ) {\n                    Text(\n                        text = stringResource(MR.strings.track_delete_text, serviceName),\n                    )\n\n                    if (screenModel.isDeletable()) {\n                        LabeledCheckbox(\n                            label = stringResource(MR.strings.track_delete_remote_text, serviceName),\n                            checked = removeRemoteTrack,\n                            onCheckedChange = { removeRemoteTrack = it },\n                        )\n                    }\n                }\n            },\n            buttons = {\n                Row(\n                    modifier = Modifier.fillMaxWidth(),\n                    horizontalArrangement = Arrangement.spacedBy(\n                        MaterialTheme.padding.small,\n                        Alignment.End,\n                    ),\n                ) {\n                    TextButton(onClick = navigator::pop) {\n                        Text(text = stringResource(MR.strings.action_cancel))\n                    }\n                    FilledTonalButton(\n                        onClick = {\n                            screenModel.unregisterTracking(serviceId)\n                            if (removeRemoteTrack) screenModel.deleteMangaFromService()\n                            navigator.pop()\n                        },\n                        colors = ButtonDefaults.filledTonalButtonColors(\n                            containerColor = MaterialTheme.colorScheme.errorContainer,\n                            contentColor = MaterialTheme.colorScheme.onErrorContainer,\n                        ),\n                    ) {\n                        Text(text = stringResource(MR.strings.action_ok))\n                    }\n                }\n            },\n        )\n    }\n\n    private class Model(\n        private val mangaId: Long,\n        private val track: Track,\n        private val tracker: Tracker,\n        private val deleteTrack: DeleteTrack = Injekt.get(),\n    ) : ScreenModel {\n\n        fun getName() = tracker.name\n\n        fun isDeletable() = tracker is DeletableTracker\n\n        fun deleteMangaFromService() {\n            screenModelScope.launchNonCancellable {\n                try {\n                    (tracker as DeletableTracker).delete(track)\n                } catch (e: Exception) {\n                    logcat(LogPriority.ERROR, e) { \"Failed to delete entry from service\" }\n                }\n            }\n        }\n\n        fun unregisterTracking(serviceId: Long) {\n            screenModelScope.launchNonCancellable { deleteTrack.await(mangaId, serviceId) }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackItem.kt",
    "content": "package eu.kanade.tachiyomi.ui.manga.track\n\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport tachiyomi.domain.track.model.Track\n\ndata class TrackItem(val track: Track?, val tracker: Tracker)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.more\n\nimport androidx.compose.animation.graphics.res.animatedVectorResource\nimport androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter\nimport androidx.compose.animation.graphics.vector.AnimatedImageVector\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport cafe.adriel.voyager.navigator.tab.LocalTabNavigator\nimport cafe.adriel.voyager.navigator.tab.TabOptions\nimport eu.kanade.core.preference.asState\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.presentation.more.MoreScreen\nimport eu.kanade.presentation.util.Tab\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.ui.category.CategoryScreen\nimport eu.kanade.tachiyomi.ui.download.DownloadQueueScreen\nimport eu.kanade.tachiyomi.ui.setting.SettingsScreen\nimport eu.kanade.tachiyomi.ui.stats.StatsScreen\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.StateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\ndata object MoreTab : Tab {\n\n    override val options: TabOptions\n        @Composable\n        get() {\n            val isSelected = LocalTabNavigator.current.current.key == key\n            val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_more_enter)\n            return TabOptions(\n                index = 4u,\n                title = stringResource(MR.strings.label_more),\n                icon = rememberAnimatedVectorPainter(image, isSelected),\n            )\n        }\n\n    override suspend fun onReselect(navigator: Navigator) {\n        navigator.push(SettingsScreen())\n    }\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { MoreScreenModel() }\n        val downloadQueueState by screenModel.downloadQueueState.collectAsState()\n        MoreScreen(\n            downloadQueueStateProvider = { downloadQueueState },\n            downloadedOnly = screenModel.downloadedOnly,\n            onDownloadedOnlyChange = { screenModel.downloadedOnly = it },\n            incognitoMode = screenModel.incognitoMode,\n            onIncognitoModeChange = { screenModel.incognitoMode = it },\n            onClickDownloadQueue = { navigator.push(DownloadQueueScreen) },\n            onClickCategories = { navigator.push(CategoryScreen()) },\n            onClickStats = { navigator.push(StatsScreen()) },\n            onClickDataAndStorage = { navigator.push(SettingsScreen(SettingsScreen.Destination.DataAndStorage)) },\n            onClickSettings = { navigator.push(SettingsScreen()) },\n            onClickAbout = { navigator.push(SettingsScreen(SettingsScreen.Destination.About)) },\n        )\n    }\n}\n\nprivate class MoreScreenModel(\n    private val downloadManager: DownloadManager = Injekt.get(),\n    preferences: BasePreferences = Injekt.get(),\n) : ScreenModel {\n\n    var downloadedOnly by preferences.downloadedOnly.asState(screenModelScope)\n    var incognitoMode by preferences.incognitoMode.asState(screenModelScope)\n\n    private var _downloadQueueState: MutableStateFlow<DownloadQueueState> = MutableStateFlow(DownloadQueueState.Stopped)\n    val downloadQueueState: StateFlow<DownloadQueueState> = _downloadQueueState.asStateFlow()\n\n    init {\n        // Handle running/paused status change and queue progress updating\n        screenModelScope.launchIO {\n            combine(\n                downloadManager.isDownloaderRunning,\n                downloadManager.queueState,\n            ) { isRunning, downloadQueue -> Pair(isRunning, downloadQueue.size) }\n                .collectLatest { (isDownloading, downloadQueueSize) ->\n                    val pendingDownloadExists = downloadQueueSize != 0\n                    _downloadQueueState.value = when {\n                        !pendingDownloadExists -> DownloadQueueState.Stopped\n                        !isDownloading -> DownloadQueueState.Paused(downloadQueueSize)\n                        else -> DownloadQueueState.Downloading(downloadQueueSize)\n                    }\n                }\n        }\n    }\n}\n\nsealed interface DownloadQueueState {\n    data object Stopped : DownloadQueueState\n    data class Paused(val pending: Int) : DownloadQueueState\n    data class Downloading(val pending: Int) : DownloadQueueState\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/more/NewUpdateScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.more\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.more.NewUpdateScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.data.updater.AppUpdateDownloadJob\nimport eu.kanade.tachiyomi.util.system.openInBrowser\n\nclass NewUpdateScreen(\n    private val versionName: String,\n    private val changelogInfo: String,\n    private val releaseLink: String,\n    private val downloadLink: String,\n) : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val context = LocalContext.current\n        val changelogInfoNoChecksum = remember {\n            changelogInfo.replace(\"\"\"---(\\R|.)*Checksums(\\R|.)*\"\"\".toRegex(), \"\")\n        }\n\n        NewUpdateScreen(\n            versionName = versionName,\n            changelogInfo = changelogInfoNoChecksum,\n            onOpenInBrowser = { context.openInBrowser(releaseLink) },\n            onRejectUpdate = navigator::pop,\n            onAcceptUpdate = {\n                AppUpdateDownloadJob.start(\n                    context = context,\n                    url = downloadLink,\n                    title = versionName,\n                )\n                navigator.pop()\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/more/OnboardingScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.more\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.presentation.more.onboarding.OnboardingScreen\nimport eu.kanade.presentation.more.settings.screen.SearchableSettings\nimport eu.kanade.presentation.more.settings.screen.SettingsDataScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.setting.SettingsScreen\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass OnboardingScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        val basePreferences = remember { Injekt.get<BasePreferences>() }\n        val shownOnboardingFlow by basePreferences.shownOnboardingFlow.collectAsState()\n\n        val finishOnboarding: () -> Unit = {\n            basePreferences.shownOnboardingFlow.set(true)\n            navigator.pop()\n        }\n\n        val restoreSettingKey = stringResource(SettingsDataScreen.restorePreferenceKeyString)\n\n        BackHandler(enabled = !shownOnboardingFlow) {\n            // Prevent exiting if onboarding hasn't been completed\n        }\n\n        OnboardingScreen(\n            onComplete = finishOnboarding,\n            onRestoreBackup = {\n                finishOnboarding()\n                SearchableSettings.highlightKey = restoreSettingKey\n                navigator.push(SettingsScreen(SettingsScreen.Destination.DataAndStorage))\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader\n\nimport android.annotation.SuppressLint\nimport android.app.assist.AssistContent\nimport android.content.ClipData\nimport android.content.ClipboardManager\nimport android.content.Context\nimport android.content.Intent\nimport android.graphics.Color\nimport android.graphics.ColorMatrix\nimport android.graphics.ColorMatrixColorFilter\nimport android.graphics.Paint\nimport android.net.Uri\nimport android.os.Build\nimport android.os.Bundle\nimport android.view.KeyEvent\nimport android.view.MotionEvent\nimport android.view.View\nimport android.view.View.LAYER_TYPE_HARDWARE\nimport android.view.WindowManager\nimport android.widget.Toast\nimport androidx.activity.enableEdgeToEdge\nimport androidx.activity.viewModels\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.navigationBarsPadding\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport androidx.core.content.getSystemService\nimport androidx.core.graphics.Insets\nimport androidx.core.net.toUri\nimport androidx.core.transition.doOnEnd\nimport androidx.core.view.ViewCompat\nimport androidx.core.view.WindowInsetsCompat\nimport androidx.core.view.WindowInsetsControllerCompat\nimport androidx.lifecycle.lifecycleScope\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView\nimport com.google.android.material.transition.platform.MaterialContainerTransform\nimport com.hippo.unifile.UniFile\nimport eu.kanade.core.util.ifSourcesLoaded\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.presentation.reader.DisplayRefreshHost\nimport eu.kanade.presentation.reader.OrientationSelectDialog\nimport eu.kanade.presentation.reader.ReaderContentOverlay\nimport eu.kanade.presentation.reader.ReaderPageActionsDialog\nimport eu.kanade.presentation.reader.ReaderPageIndicator\nimport eu.kanade.presentation.reader.ReadingModeSelectDialog\nimport eu.kanade.presentation.reader.appbars.ReaderAppBars\nimport eu.kanade.presentation.reader.settings.ReaderSettingsDialog\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.coil.TachiyomiImageDecoder\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.databinding.ReaderActivityBinding\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.base.activity.BaseActivity\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.ui.reader.ReaderViewModel.SetAsCoverResult.AddToLibraryFirst\nimport eu.kanade.tachiyomi.ui.reader.ReaderViewModel.SetAsCoverResult.Error\nimport eu.kanade.tachiyomi.ui.reader.ReaderViewModel.SetAsCoverResult.Success\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderProgressIndicator\nimport eu.kanade.tachiyomi.ui.webview.WebViewActivity\nimport eu.kanade.tachiyomi.util.system.isNightMode\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport eu.kanade.tachiyomi.util.system.toast\nimport eu.kanade.tachiyomi.util.view.setComposeContent\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.filterNotNull\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.sample\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.Constants\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.util.collectAsState\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.ByteArrayOutputStream\n\nclass ReaderActivity : BaseActivity() {\n\n    companion object {\n        fun newIntent(context: Context, mangaId: Long?, chapterId: Long?): Intent {\n            return Intent(context, ReaderActivity::class.java).apply {\n                putExtra(\"manga\", mangaId)\n                putExtra(\"chapter\", chapterId)\n                addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n            }\n        }\n    }\n\n    private val readerPreferences = Injekt.get<ReaderPreferences>()\n    private val preferences = Injekt.get<BasePreferences>()\n\n    lateinit var binding: ReaderActivityBinding\n\n    val viewModel by viewModels<ReaderViewModel>()\n    private var assistUrl: String? = null\n\n    /**\n     * Configuration at reader level, like background color or forced orientation.\n     */\n    private var config: ReaderConfig? = null\n\n    private var menuToggleToast: Toast? = null\n    private var readingModeToast: Toast? = null\n    private val displayRefreshHost = DisplayRefreshHost()\n\n    private val windowInsetsController by lazy { WindowInsetsControllerCompat(window, window.decorView) }\n\n    private var loadingIndicator: ReaderProgressIndicator? = null\n\n    var isScrollingThroughPages = false\n        private set\n\n    /**\n     * Called when the activity is created. Initializes the presenter and configuration.\n     */\n    override fun onCreate(savedInstanceState: Bundle?) {\n        registerSecureActivity(this)\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n            overrideActivityTransition(\n                OVERRIDE_TRANSITION_OPEN,\n                R.anim.shared_axis_x_push_enter,\n                R.anim.shared_axis_x_push_exit,\n            )\n        } else {\n            @Suppress(\"DEPRECATION\")\n            overridePendingTransition(R.anim.shared_axis_x_push_enter, R.anim.shared_axis_x_push_exit)\n        }\n\n        enableEdgeToEdge()\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n            window.isNavigationBarContrastEnforced = false\n        }\n        windowInsetsController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE\n\n        super.onCreate(savedInstanceState)\n\n        binding = ReaderActivityBinding.inflate(layoutInflater)\n        setContentView(binding.root)\n        binding.setComposeOverlay()\n\n        if (viewModel.needsInit()) {\n            val manga = intent.extras?.getLong(\"manga\", -1) ?: -1L\n            val chapter = intent.extras?.getLong(\"chapter\", -1) ?: -1L\n            if (manga == -1L || chapter == -1L) {\n                finish()\n                return\n            }\n            NotificationReceiver.dismissNotification(this, manga.hashCode(), Notifications.ID_NEW_CHAPTERS)\n\n            lifecycleScope.launchNonCancellable {\n                val initResult = viewModel.init(manga, chapter)\n                if (!initResult.getOrDefault(false)) {\n                    val exception = initResult.exceptionOrNull() ?: IllegalStateException(\"Unknown err\")\n                    withUIContext {\n                        setInitialChapterError(exception)\n                    }\n                }\n            }\n        }\n\n        config = ReaderConfig()\n        setMenuVisibility(viewModel.state.value.menuVisible)\n\n        // Finish when incognito mode is disabled\n        preferences.incognitoMode.changes()\n            .drop(1)\n            .onEach { if (!it) finish() }\n            .launchIn(lifecycleScope)\n\n        viewModel.state\n            .map { it.isLoadingAdjacentChapter }\n            .distinctUntilChanged()\n            .onEach(::setProgressDialog)\n            .launchIn(lifecycleScope)\n\n        viewModel.state\n            .map { it.manga }\n            .distinctUntilChanged()\n            .filterNotNull()\n            .onEach { updateViewer() }\n            .launchIn(lifecycleScope)\n\n        viewModel.state\n            .map { it.viewerChapters }\n            .distinctUntilChanged()\n            .filterNotNull()\n            .onEach(::setChapters)\n            .launchIn(lifecycleScope)\n\n        viewModel.eventFlow\n            .onEach { event ->\n                when (event) {\n                    ReaderViewModel.Event.ReloadViewerChapters -> {\n                        viewModel.state.value.viewerChapters?.let(::setChapters)\n                    }\n                    ReaderViewModel.Event.PageChanged -> {\n                        displayRefreshHost.flash()\n                    }\n                    is ReaderViewModel.Event.SetOrientation -> {\n                        setOrientation(event.orientation)\n                    }\n                    is ReaderViewModel.Event.SavedImage -> {\n                        onSaveImageResult(event.result)\n                    }\n                    is ReaderViewModel.Event.ShareImage -> {\n                        onShareImageResult(event.uri, event.page)\n                    }\n                    is ReaderViewModel.Event.CopyImage -> {\n                        onCopyImageResult(event.uri)\n                    }\n                    is ReaderViewModel.Event.SetCoverResult -> {\n                        onSetAsCoverResult(event.result)\n                    }\n                }\n            }\n            .launchIn(lifecycleScope)\n    }\n\n    private fun ReaderActivityBinding.setComposeOverlay(): Unit = composeOverlay.setComposeContent {\n        val state by viewModel.state.collectAsState()\n        val showPageNumber by readerPreferences.showPageNumber.collectAsState()\n        val settingsScreenModel = remember {\n            ReaderSettingsScreenModel(\n                readerState = viewModel.state,\n                onChangeReadingMode = viewModel::setMangaReadingMode,\n                onChangeOrientation = viewModel::setMangaOrientationType,\n            )\n        }\n\n        Box(modifier = Modifier.fillMaxSize()) {\n            if (!state.menuVisible && showPageNumber) {\n                ReaderPageIndicator(\n                    currentPage = state.currentPage,\n                    totalPages = state.totalPages,\n                    modifier = Modifier\n                        .align(Alignment.BottomCenter)\n                        .navigationBarsPadding(),\n                )\n            }\n\n            ContentOverlay(state = state)\n\n            AppBars(state = state)\n        }\n\n        val onDismissRequest = viewModel::closeDialog\n        when (state.dialog) {\n            is ReaderViewModel.Dialog.Loading -> {\n                AlertDialog(\n                    onDismissRequest = {},\n                    confirmButton = {},\n                    text = {\n                        Row(\n                            horizontalArrangement = Arrangement.spacedBy(16.dp),\n                            verticalAlignment = Alignment.CenterVertically,\n                        ) {\n                            CircularProgressIndicator()\n                            Text(stringResource(MR.strings.loading))\n                        }\n                    },\n                )\n            }\n            is ReaderViewModel.Dialog.Settings -> {\n                ReaderSettingsDialog(\n                    onDismissRequest = onDismissRequest,\n                    onShowMenus = { setMenuVisibility(true) },\n                    onHideMenus = { setMenuVisibility(false) },\n                    screenModel = settingsScreenModel,\n                )\n            }\n            is ReaderViewModel.Dialog.ReadingModeSelect -> {\n                ReadingModeSelectDialog(\n                    onDismissRequest = onDismissRequest,\n                    screenModel = settingsScreenModel,\n                    onChange = { stringRes ->\n                        menuToggleToast?.cancel()\n                        if (!readerPreferences.showReadingMode.get()) {\n                            menuToggleToast = toast(stringRes)\n                        }\n                    },\n                )\n            }\n            is ReaderViewModel.Dialog.OrientationModeSelect -> {\n                OrientationSelectDialog(\n                    onDismissRequest = onDismissRequest,\n                    screenModel = settingsScreenModel,\n                    onChange = { stringRes ->\n                        menuToggleToast?.cancel()\n                        menuToggleToast = toast(stringRes)\n                    },\n                )\n            }\n            is ReaderViewModel.Dialog.PageActions -> {\n                ReaderPageActionsDialog(\n                    onDismissRequest = onDismissRequest,\n                    onSetAsCover = viewModel::setAsCover,\n                    onShare = viewModel::shareImage,\n                    onSave = viewModel::saveImage,\n                )\n            }\n            null -> {}\n        }\n    }\n\n    /**\n     * Called when the activity is destroyed. Cleans up the viewer, configuration and any view.\n     */\n    override fun onDestroy() {\n        super.onDestroy()\n        viewModel.state.value.viewer?.destroy()\n        config = null\n        menuToggleToast?.cancel()\n        readingModeToast?.cancel()\n    }\n\n    override fun onPause() {\n        lifecycleScope.launchNonCancellable {\n            viewModel.updateHistory()\n        }\n        super.onPause()\n    }\n\n    /**\n     * Set menu visibility again on activity resume to apply immersive mode again if needed.\n     * Helps with rotations.\n     */\n    override fun onResume() {\n        super.onResume()\n        viewModel.restartReadTimer()\n        setMenuVisibility(viewModel.state.value.menuVisible)\n    }\n\n    /**\n     * Called when the window focus changes. It sets the menu visibility to the last known state\n     * to apply immersive mode again if needed.\n     */\n    override fun onWindowFocusChanged(hasFocus: Boolean) {\n        super.onWindowFocusChanged(hasFocus)\n        if (hasFocus) {\n            setMenuVisibility(viewModel.state.value.menuVisible)\n        }\n    }\n\n    override fun onProvideAssistContent(outContent: AssistContent) {\n        super.onProvideAssistContent(outContent)\n        assistUrl?.let { outContent.webUri = it.toUri() }\n    }\n\n    /**\n     * Called when the user clicks the back key or the button on the toolbar. The call is\n     * delegated to the presenter.\n     */\n    override fun finish() {\n        viewModel.onActivityFinish()\n        super.finish()\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n            overrideActivityTransition(\n                OVERRIDE_TRANSITION_CLOSE,\n                R.anim.shared_axis_x_pop_enter,\n                R.anim.shared_axis_x_pop_exit,\n            )\n        } else {\n            @Suppress(\"DEPRECATION\")\n            overridePendingTransition(R.anim.shared_axis_x_pop_enter, R.anim.shared_axis_x_pop_exit)\n        }\n    }\n\n    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {\n        if (keyCode == KeyEvent.KEYCODE_N) {\n            loadNextChapter()\n            return true\n        } else if (keyCode == KeyEvent.KEYCODE_P) {\n            loadPreviousChapter()\n            return true\n        }\n        return super.onKeyUp(keyCode, event)\n    }\n\n    /**\n     * Dispatches a key event. If the viewer doesn't handle it, call the default implementation.\n     */\n    override fun dispatchKeyEvent(event: KeyEvent): Boolean {\n        val handled = viewModel.state.value.viewer?.handleKeyEvent(event) ?: false\n        return handled || super.dispatchKeyEvent(event)\n    }\n\n    /**\n     * Dispatches a generic motion event. If the viewer doesn't handle it, call the default\n     * implementation.\n     */\n    override fun dispatchGenericMotionEvent(event: MotionEvent): Boolean {\n        val handled = viewModel.state.value.viewer?.handleGenericMotionEvent(event) ?: false\n        return handled || super.dispatchGenericMotionEvent(event)\n    }\n\n    @Composable\n    private fun ContentOverlay(state: ReaderViewModel.State) {\n        val flashOnPageChange by readerPreferences.flashOnPageChange.collectAsState()\n\n        val colorOverlayEnabled by readerPreferences.colorFilter.collectAsState()\n        val colorOverlay by readerPreferences.colorFilterValue.collectAsState()\n        val colorOverlayMode by readerPreferences.colorFilterMode.collectAsState()\n        val colorOverlayBlendMode = remember(colorOverlayMode) {\n            ReaderPreferences.ColorFilterMode.getOrNull(colorOverlayMode)?.second\n        }\n\n        ReaderContentOverlay(\n            brightness = state.brightnessOverlayValue,\n            color = colorOverlay.takeIf { colorOverlayEnabled },\n            colorBlendMode = colorOverlayBlendMode,\n        )\n\n        if (flashOnPageChange) {\n            DisplayRefreshHost(hostState = displayRefreshHost)\n        }\n    }\n\n    @Composable\n    fun AppBars(state: ReaderViewModel.State) {\n        if (!ifSourcesLoaded()) {\n            return\n        }\n\n        val isHttpSource = viewModel.getSource() is HttpSource\n\n        val cropBorderPaged by readerPreferences.cropBorders.collectAsState()\n        val cropBorderWebtoon by readerPreferences.cropBordersWebtoon.collectAsState()\n        val isPagerType = ReadingMode.isPagerType(viewModel.getMangaReadingMode())\n        val cropEnabled = if (isPagerType) cropBorderPaged else cropBorderWebtoon\n\n        ReaderAppBars(\n            visible = state.menuVisible,\n\n            mangaTitle = state.manga?.title,\n            chapterTitle = state.currentChapter?.chapter?.name,\n            navigateUp = onBackPressedDispatcher::onBackPressed,\n            onClickTopAppBar = ::openMangaScreen,\n            bookmarked = state.bookmarked,\n            onToggleBookmarked = viewModel::toggleChapterBookmark,\n            onOpenInWebView = ::openChapterInWebView.takeIf { isHttpSource },\n            onOpenInBrowser = ::openChapterInBrowser.takeIf { isHttpSource },\n            onShare = ::shareChapter.takeIf { isHttpSource },\n\n            viewer = state.viewer,\n            onNextChapter = ::loadNextChapter,\n            enabledNext = state.viewerChapters?.nextChapter != null,\n            onPreviousChapter = ::loadPreviousChapter,\n            enabledPrevious = state.viewerChapters?.prevChapter != null,\n            currentPage = state.currentPage,\n            totalPages = state.totalPages,\n            onPageIndexChange = {\n                isScrollingThroughPages = true\n                moveToPageIndex(it)\n            },\n\n            readingMode = ReadingMode.fromPreference(\n                viewModel.getMangaReadingMode(resolveDefault = false),\n            ),\n            onClickReadingMode = viewModel::openReadingModeSelectDialog,\n            orientation = ReaderOrientation.fromPreference(\n                viewModel.getMangaOrientation(resolveDefault = false),\n            ),\n            onClickOrientation = viewModel::openOrientationModeSelectDialog,\n            cropEnabled = cropEnabled,\n            onClickCropBorder = {\n                val enabled = viewModel.toggleCropBorders()\n                menuToggleToast?.cancel()\n                menuToggleToast = toast(if (enabled) MR.strings.on else MR.strings.off)\n            },\n            onClickSettings = viewModel::openSettingsDialog,\n        )\n    }\n\n    /**\n     * Sets the visibility of the menu according to [visible].\n     */\n    private fun setMenuVisibility(visible: Boolean) {\n        viewModel.showMenus(visible)\n        if (visible) {\n            windowInsetsController.show(WindowInsetsCompat.Type.systemBars())\n        } else if (readerPreferences.fullscreen.get()) {\n            windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())\n        }\n    }\n\n    /**\n     * Called from the presenter when a manga is ready. Used to instantiate the appropriate viewer.\n     */\n    private fun updateViewer() {\n        val prevViewer = viewModel.state.value.viewer\n        val newViewer = ReadingMode.toViewer(viewModel.getMangaReadingMode(), this)\n\n        if (window.sharedElementEnterTransition is MaterialContainerTransform) {\n            // Wait until transition is complete to avoid crash on API 26\n            window.sharedElementEnterTransition.doOnEnd {\n                setOrientation(viewModel.getMangaOrientation())\n            }\n        } else {\n            setOrientation(viewModel.getMangaOrientation())\n        }\n\n        // Destroy previous viewer if there was one\n        if (prevViewer != null) {\n            prevViewer.destroy()\n            binding.viewerContainer.removeAllViews()\n        }\n        viewModel.onViewerLoaded(newViewer)\n        updateViewerInset(readerPreferences.fullscreen.get(), readerPreferences.drawUnderCutout.get())\n        binding.viewerContainer.addView(newViewer.getView())\n\n        if (readerPreferences.showReadingMode.get()) {\n            showReadingModeToast(viewModel.getMangaReadingMode())\n        }\n\n        loadingIndicator = ReaderProgressIndicator(this)\n        binding.readerContainer.addView(loadingIndicator)\n\n        startPostponedEnterTransition()\n    }\n\n    private fun openMangaScreen() {\n        viewModel.manga?.id?.let { id ->\n            startActivity(\n                Intent(this, MainActivity::class.java).apply {\n                    action = Constants.SHORTCUT_MANGA\n                    putExtra(Constants.MANGA_EXTRA, id)\n                    addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n                },\n            )\n        }\n    }\n\n    private fun openChapterInWebView() {\n        val manga = viewModel.manga ?: return\n        val source = viewModel.getSource() ?: return\n        assistUrl?.let {\n            val intent = WebViewActivity.newIntent(this@ReaderActivity, it, source.id, manga.title)\n            startActivity(intent)\n        }\n    }\n\n    private fun openChapterInBrowser() {\n        assistUrl?.let {\n            openInBrowser(it.toUri(), forceDefaultBrowser = false)\n        }\n    }\n\n    private fun shareChapter() {\n        assistUrl?.let {\n            val intent = it.toUri().toShareIntent(this, type = \"text/plain\")\n            startActivity(intent)\n        }\n    }\n\n    private fun showReadingModeToast(mode: Int) {\n        try {\n            readingModeToast?.cancel()\n            readingModeToast = toast(ReadingMode.fromPreference(mode).stringRes)\n        } catch (_: ArrayIndexOutOfBoundsException) {\n            logcat(LogPriority.ERROR) { \"Unknown reading mode: $mode\" }\n        }\n    }\n\n    /**\n     * Called from the presenter whenever a new [viewerChapters] have been set. It delegates the\n     * method to the current viewer, but also set the subtitle on the toolbar, and\n     * hides or disables the reader prev/next buttons if there's a prev or next chapter\n     */\n    @SuppressLint(\"RestrictedApi\")\n    private fun setChapters(viewerChapters: ViewerChapters) {\n        binding.readerContainer.removeView(loadingIndicator)\n        viewModel.state.value.viewer?.setChapters(viewerChapters)\n\n        lifecycleScope.launchIO {\n            viewModel.getChapterUrl()?.let { url ->\n                assistUrl = url\n            }\n        }\n    }\n\n    /**\n     * Called from the presenter if the initial load couldn't load the pages of the chapter. In\n     * this case the activity is closed and a toast is shown to the user.\n     */\n    private fun setInitialChapterError(error: Throwable) {\n        logcat(LogPriority.ERROR, error)\n        finish()\n        toast(error.message)\n    }\n\n    /**\n     * Called from the presenter whenever it's loading the next or previous chapter. It shows or\n     * dismisses a non-cancellable dialog to prevent user interaction according to the value of\n     * [show]. This is only used when the next/previous buttons on the toolbar are clicked; the\n     * other cases are handled with chapter transitions on the viewers and chapter preloading.\n     */\n    private fun setProgressDialog(show: Boolean) {\n        if (show) {\n            viewModel.showLoadingDialog()\n        } else {\n            viewModel.closeDialog()\n        }\n    }\n\n    /**\n     * Moves the viewer to the given page [index]. It does nothing if the viewer is null or the\n     * page is not found.\n     */\n    private fun moveToPageIndex(index: Int) {\n        val viewer = viewModel.state.value.viewer ?: return\n        val currentChapter = viewModel.state.value.currentChapter ?: return\n        val page = currentChapter.pages?.getOrNull(index) ?: return\n        viewer.moveToPage(page)\n    }\n\n    /**\n     * Tells the presenter to load the next chapter and mark it as active. The progress dialog\n     * should be automatically shown.\n     */\n    private fun loadNextChapter() {\n        lifecycleScope.launch {\n            viewModel.loadNextChapter()\n            moveToPageIndex(0)\n        }\n    }\n\n    /**\n     * Tells the presenter to load the previous chapter and mark it as active. The progress dialog\n     * should be automatically shown.\n     */\n    private fun loadPreviousChapter() {\n        lifecycleScope.launch {\n            viewModel.loadPreviousChapter()\n            moveToPageIndex(0)\n        }\n    }\n\n    /**\n     * Called from the viewer whenever a [page] is marked as active. It updates the values of the\n     * bottom menu and delegates the change to the presenter.\n     */\n    fun onPageSelected(page: ReaderPage) {\n        viewModel.onPageSelected(page)\n    }\n\n    /**\n     * Called from the viewer whenever a [page] is long clicked. A bottom sheet with a list of\n     * actions to perform is shown.\n     */\n    fun onPageLongTap(page: ReaderPage) {\n        viewModel.openPageDialog(page)\n    }\n\n    /**\n     * Called from the viewer when the given [chapter] should be preloaded. It should be called when\n     * the viewer is reaching the beginning or end of a chapter or the transition page is active.\n     */\n    fun requestPreloadChapter(chapter: ReaderChapter) {\n        lifecycleScope.launchIO { viewModel.preload(chapter) }\n    }\n\n    /**\n     * Called from the viewer to toggle the visibility of the menu. It's implemented on the\n     * viewer because each one implements its own touch and key events.\n     */\n    fun toggleMenu() {\n        setMenuVisibility(!viewModel.state.value.menuVisible)\n    }\n\n    /**\n     * Called from the viewer to show the menu.\n     */\n    fun showMenu() {\n        if (!viewModel.state.value.menuVisible) {\n            setMenuVisibility(true)\n        }\n    }\n\n    /**\n     * Called from the viewer to hide the menu.\n     */\n    fun hideMenu() {\n        if (viewModel.state.value.menuVisible) {\n            setMenuVisibility(false)\n        }\n    }\n\n    /**\n     * Called from the presenter when a page is ready to be shared. It shows Android's default\n     * sharing tool.\n     */\n    private fun onShareImageResult(uri: Uri, page: ReaderPage) {\n        val manga = viewModel.manga ?: return\n        val chapter = page.chapter.chapter\n\n        val intent = uri.toShareIntent(\n            context = applicationContext,\n            message = stringResource(MR.strings.share_page_info, manga.title, chapter.name, page.number),\n        )\n        startActivity(intent)\n    }\n\n    private fun onCopyImageResult(uri: Uri) {\n        val clipboardManager = applicationContext.getSystemService<ClipboardManager>() ?: return\n        val clipData = ClipData.newUri(applicationContext.contentResolver, \"\", uri)\n        clipboardManager.setPrimaryClip(clipData)\n    }\n\n    /**\n     * Called from the presenter when a page is saved or fails. It shows a message or logs the\n     * event depending on the [result].\n     */\n    private fun onSaveImageResult(result: ReaderViewModel.SaveImageResult) {\n        when (result) {\n            is ReaderViewModel.SaveImageResult.Success -> {\n                toast(MR.strings.picture_saved)\n            }\n            is ReaderViewModel.SaveImageResult.Error -> {\n                logcat(LogPriority.ERROR, result.error)\n            }\n        }\n    }\n\n    /**\n     * Called from the presenter when a page is set as cover or fails. It shows a different message\n     * depending on the [result].\n     */\n    private fun onSetAsCoverResult(result: ReaderViewModel.SetAsCoverResult) {\n        toast(\n            when (result) {\n                Success -> MR.strings.cover_updated\n                AddToLibraryFirst -> MR.strings.notification_first_add_to_library\n                Error -> MR.strings.notification_cover_update_failed\n            },\n        )\n    }\n\n    /**\n     * Forces the user preferred [orientation] on the activity.\n     */\n    private fun setOrientation(orientation: Int) {\n        val newOrientation = ReaderOrientation.fromPreference(orientation)\n        if (newOrientation.flag != requestedOrientation) {\n            requestedOrientation = newOrientation.flag\n        }\n    }\n\n    /**\n     * Updates viewer inset depending on fullscreen reader preferences.\n     */\n    private fun updateViewerInset(fullscreen: Boolean, drawUnderCutout: Boolean) {\n        if (!::binding.isInitialized) return\n        val view = binding.viewerContainer\n\n        view.applyInsetsPadding(ViewCompat.getRootWindowInsets(view), fullscreen, drawUnderCutout)\n        ViewCompat.setOnApplyWindowInsetsListener(view) { view, windowInsets ->\n            view.applyInsetsPadding(windowInsets, fullscreen, drawUnderCutout)\n            windowInsets\n        }\n    }\n\n    private fun View.applyInsetsPadding(\n        windowInsets: WindowInsetsCompat?,\n        fullscreen: Boolean,\n        drawUnderCutout: Boolean,\n    ) {\n        val insets = when {\n            !fullscreen -> windowInsets?.getInsets(WindowInsetsCompat.Type.systemBars())\n            !drawUnderCutout -> windowInsets?.getInsets(WindowInsetsCompat.Type.displayCutout())\n            else -> null\n        }\n            ?: Insets.NONE\n\n        setPadding(insets.left, insets.top, insets.right, insets.bottom)\n    }\n\n    /**\n     * Class that handles the user preferences of the reader.\n     */\n    private inner class ReaderConfig {\n\n        private fun getCombinedPaint(grayscale: Boolean, invertedColors: Boolean): Paint {\n            return Paint().apply {\n                colorFilter = ColorMatrixColorFilter(\n                    ColorMatrix().apply {\n                        if (grayscale) {\n                            setSaturation(0f)\n                        }\n                        if (invertedColors) {\n                            postConcat(\n                                ColorMatrix(\n                                    floatArrayOf(\n                                        -1f, 0f, 0f, 0f, 255f,\n                                        0f, -1f, 0f, 0f, 255f,\n                                        0f, 0f, -1f, 0f, 255f,\n                                        0f, 0f, 0f, 1f, 0f,\n                                    ),\n                                ),\n                            )\n                        }\n                    },\n                )\n            }\n        }\n\n        private val grayBackgroundColor = Color.rgb(0x20, 0x21, 0x25)\n\n        /*\n         * Initializes the reader subscriptions.\n         */\n        init {\n            readerPreferences.readerTheme.changes()\n                .onEach { theme ->\n                    binding.readerContainer.setBackgroundColor(\n                        when (theme) {\n                            0 -> Color.WHITE\n                            2 -> grayBackgroundColor\n                            3 -> automaticBackgroundColor()\n                            else -> Color.BLACK\n                        },\n                    )\n                }\n                .launchIn(lifecycleScope)\n\n            preferences.displayProfile.changes()\n                .onEach { setDisplayProfile(it) }\n                .launchIn(lifecycleScope)\n\n            readerPreferences.keepScreenOn.changes()\n                .onEach(::setKeepScreenOn)\n                .launchIn(lifecycleScope)\n\n            readerPreferences.customBrightness.changes()\n                .onEach(::setCustomBrightness)\n                .launchIn(lifecycleScope)\n\n            combine(\n                readerPreferences.grayscale.changes(),\n                readerPreferences.invertedColors.changes(),\n            ) { grayscale, invertedColors -> grayscale to invertedColors }\n                .onEach { (grayscale, invertedColors) ->\n                    setLayerPaint(grayscale, invertedColors)\n                }\n                .launchIn(lifecycleScope)\n\n            combine(\n                readerPreferences.fullscreen.changes(),\n                readerPreferences.drawUnderCutout.changes(),\n            ) { fullscreen, drawUnderCutout -> fullscreen to drawUnderCutout }\n                .onEach { (fullscreen, drawUnderCutout) ->\n                    updateViewerInset(fullscreen, drawUnderCutout)\n                }\n                .launchIn(lifecycleScope)\n        }\n\n        /**\n         * Picks background color for [ReaderActivity] based on light/dark theme preference\n         */\n        private fun automaticBackgroundColor(): Int {\n            return if (baseContext.isNightMode()) {\n                grayBackgroundColor\n            } else {\n                Color.WHITE\n            }\n        }\n\n        /**\n         * Sets the display profile to [path].\n         */\n        private fun setDisplayProfile(path: String) {\n            val file = UniFile.fromUri(baseContext, path.toUri())\n            if (file != null && file.exists()) {\n                val inputStream = file.openInputStream()\n                val outputStream = ByteArrayOutputStream()\n                inputStream.use { input ->\n                    outputStream.use { output ->\n                        input.copyTo(output)\n                    }\n                }\n                val data = outputStream.toByteArray()\n                SubsamplingScaleImageView.setDisplayProfile(data)\n                TachiyomiImageDecoder.displayProfile = data\n            }\n        }\n\n        /**\n         * Sets the keep screen on mode according to [enabled].\n         */\n        private fun setKeepScreenOn(enabled: Boolean) {\n            if (enabled) {\n                window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)\n            } else {\n                window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)\n            }\n        }\n\n        /**\n         * Sets the custom brightness overlay according to [enabled].\n         */\n        private fun setCustomBrightness(enabled: Boolean) {\n            if (enabled) {\n                readerPreferences.customBrightnessValue.changes()\n                    .sample(100)\n                    .onEach(::setCustomBrightnessValue)\n                    .launchIn(lifecycleScope)\n            } else {\n                setCustomBrightnessValue(0)\n            }\n        }\n\n        /**\n         * Sets the brightness of the screen. Range is [-75, 100].\n         * From -75 to -1 a semi-transparent black view is overlaid with the minimum brightness.\n         * From 1 to 100 it sets that value as brightness.\n         * 0 sets system brightness and hides the overlay.\n         */\n        private fun setCustomBrightnessValue(value: Int) {\n            // Calculate and set reader brightness.\n            val readerBrightness = when {\n                value > 0 -> {\n                    value / 100f\n                }\n                value < 0 -> {\n                    0.01f\n                }\n                else -> WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE\n            }\n            window.attributes = window.attributes.apply { screenBrightness = readerBrightness }\n\n            viewModel.setBrightnessOverlayValue(value)\n        }\n        private fun setLayerPaint(grayscale: Boolean, invertedColors: Boolean) {\n            val paint = if (grayscale || invertedColors) getCombinedPaint(grayscale, invertedColors) else null\n            binding.viewerContainer.setLayerType(LAYER_TYPE_HARDWARE, paint)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderNavigationOverlayView.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader\n\nimport android.content.Context\nimport android.graphics.Canvas\nimport android.graphics.Color\nimport android.graphics.Paint\nimport android.util.AttributeSet\nimport android.view.MotionEvent\nimport android.view.View\nimport android.view.ViewPropertyAnimator\nimport androidx.core.graphics.withScale\nimport androidx.core.graphics.withTranslation\nimport androidx.core.view.isVisible\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.DisabledNavigation\nimport tachiyomi.core.common.i18n.stringResource\nimport kotlin.math.abs\n\nclass ReaderNavigationOverlayView(context: Context, attributeSet: AttributeSet) : View(context, attributeSet) {\n\n    private var viewPropertyAnimator: ViewPropertyAnimator? = null\n\n    private var navigation: ViewerNavigation? = null\n\n    fun setNavigation(navigation: ViewerNavigation, showOnStart: Boolean) {\n        val firstLaunch = this.navigation == null\n        this.navigation = navigation\n        invalidate()\n\n        if (isVisible || (!showOnStart && firstLaunch) || navigation is DisabledNavigation) {\n            return\n        }\n\n        viewPropertyAnimator = animate()\n            .alpha(1f)\n            .setDuration(FADE_DURATION)\n            .withStartAction {\n                isVisible = true\n            }\n            .withEndAction {\n                viewPropertyAnimator = null\n            }\n        viewPropertyAnimator?.start()\n    }\n\n    private val regionPaint = Paint()\n\n    private val textPaint = Paint().apply {\n        textAlign = Paint.Align.CENTER\n        color = Color.WHITE\n        textSize = 64f\n    }\n\n    private val textBorderPaint = Paint().apply {\n        textAlign = Paint.Align.CENTER\n        color = Color.BLACK\n        textSize = 64f\n        style = Paint.Style.STROKE\n        strokeWidth = 8f\n    }\n\n    override fun onDraw(canvas: Canvas) {\n        if (navigation == null) return\n\n        navigation?.getRegions()?.forEach { region ->\n            val rect = region.rectF\n\n            // Scale rect from 1f,1f to screen width and height\n            canvas.withScale(width.toFloat(), height.toFloat()) {\n                regionPaint.color = region.type.color\n                drawRect(rect, regionPaint)\n            }\n\n            // Don't want scale anymore because it messes with drawText\n            // Translate origin to rect start (left, top)\n            canvas.withTranslation(x = (width * rect.left), y = (height * rect.top)) {\n                // Calculate center of rect width on screen\n                val x = width * (abs(rect.left - rect.right) / 2)\n\n                // Calculate center of rect height on screen\n                val y = height * (abs(rect.top - rect.bottom) / 2)\n\n                drawText(context.stringResource(region.type.nameRes), x, y, textBorderPaint)\n                drawText(context.stringResource(region.type.nameRes), x, y, textPaint)\n            }\n        }\n    }\n\n    override fun performClick(): Boolean {\n        super.performClick()\n\n        if (viewPropertyAnimator == null && isVisible) {\n            viewPropertyAnimator = animate()\n                .alpha(0f)\n                .setDuration(FADE_DURATION)\n                .withEndAction {\n                    isVisible = false\n                    viewPropertyAnimator = null\n                }\n            viewPropertyAnimator?.start()\n        }\n\n        return true\n    }\n\n    override fun onTouchEvent(event: MotionEvent?): Boolean {\n        // Hide overlay if user start tapping or swiping\n        performClick()\n        return super.onTouchEvent(event)\n    }\n}\n\nprivate const val FADE_DURATION = 1000L\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader\n\nimport android.app.Application\nimport android.net.Uri\nimport androidx.annotation.IntRange\nimport androidx.compose.runtime.Immutable\nimport androidx.lifecycle.SavedStateHandle\nimport androidx.lifecycle.ViewModel\nimport androidx.lifecycle.viewModelScope\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.domain.chapter.model.toDbChapter\nimport eu.kanade.domain.manga.interactor.SetMangaViewerFlags\nimport eu.kanade.domain.manga.model.readerOrientation\nimport eu.kanade.domain.manga.model.readingMode\nimport eu.kanade.domain.source.interactor.GetIncognitoState\nimport eu.kanade.domain.track.interactor.TrackChapter\nimport eu.kanade.domain.track.service.TrackPreferences\nimport eu.kanade.tachiyomi.data.database.models.toDomainChapter\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.DownloadProvider\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.data.saver.Image\nimport eu.kanade.tachiyomi.data.saver.ImageSaver\nimport eu.kanade.tachiyomi.data.saver.Location\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.reader.loader.ChapterLoader\nimport eu.kanade.tachiyomi.ui.reader.loader.DownloadPageLoader\nimport eu.kanade.tachiyomi.ui.reader.model.InsertPage\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.setting.ReadingMode\nimport eu.kanade.tachiyomi.ui.reader.viewer.Viewer\nimport eu.kanade.tachiyomi.util.chapter.filterDownloaded\nimport eu.kanade.tachiyomi.util.chapter.removeDuplicates\nimport eu.kanade.tachiyomi.util.editCover\nimport eu.kanade.tachiyomi.util.lang.byteSize\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport eu.kanade.tachiyomi.util.storage.cacheImageDir\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.filterNotNull\nimport kotlinx.coroutines.flow.first\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.runBlocking\nimport logcat.LogPriority\nimport tachiyomi.core.common.preference.toggle\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.ChapterUpdate\nimport tachiyomi.domain.chapter.service.getChapterSort\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.history.interactor.GetNextChapters\nimport tachiyomi.domain.history.interactor.UpsertHistory\nimport tachiyomi.domain.history.model.HistoryUpdate\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.util.Date\n\n/**\n * Presenter used by the activity to perform background operations.\n */\nclass ReaderViewModel @JvmOverloads constructor(\n    private val savedState: SavedStateHandle,\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val downloadManager: DownloadManager = Injekt.get(),\n    private val downloadProvider: DownloadProvider = Injekt.get(),\n    private val imageSaver: ImageSaver = Injekt.get(),\n    val readerPreferences: ReaderPreferences = Injekt.get(),\n    private val basePreferences: BasePreferences = Injekt.get(),\n    private val downloadPreferences: DownloadPreferences = Injekt.get(),\n    private val trackPreferences: TrackPreferences = Injekt.get(),\n    private val trackChapter: TrackChapter = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val getChaptersByMangaId: GetChaptersByMangaId = Injekt.get(),\n    private val getNextChapters: GetNextChapters = Injekt.get(),\n    private val upsertHistory: UpsertHistory = Injekt.get(),\n    private val updateChapter: UpdateChapter = Injekt.get(),\n    private val setMangaViewerFlags: SetMangaViewerFlags = Injekt.get(),\n    private val getIncognitoState: GetIncognitoState = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n) : ViewModel() {\n\n    private val mutableState = MutableStateFlow(State())\n    val state = mutableState.asStateFlow()\n\n    private val eventChannel = Channel<Event>()\n    val eventFlow = eventChannel.receiveAsFlow()\n\n    /**\n     * The manga loaded in the reader. It can be null when instantiated for a short time.\n     */\n    val manga: Manga?\n        get() = state.value.manga\n\n    /**\n     * The chapter id of the currently loaded chapter. Used to restore from process kill.\n     */\n    private var chapterId = savedState.get<Long>(\"chapter_id\") ?: -1L\n        set(value) {\n            savedState[\"chapter_id\"] = value\n            field = value\n        }\n\n    /**\n     * The visible page index of the currently loaded chapter. Used to restore from process kill.\n     */\n    private var chapterPageIndex = savedState.get<Int>(\"page_index\") ?: -1\n        set(value) {\n            savedState[\"page_index\"] = value\n            field = value\n        }\n\n    /**\n     * The chapter loader for the loaded manga. It'll be null until [manga] is set.\n     */\n    private var loader: ChapterLoader? = null\n\n    /**\n     * The time the chapter was started reading\n     */\n    private var chapterReadStartTime: Long? = null\n\n    private var chapterToDownload: Download? = null\n\n    private val unfilteredChapterList by lazy {\n        val manga = manga!!\n        runBlocking { getChaptersByMangaId.await(manga.id, applyScanlatorFilter = false) }\n    }\n\n    /**\n     * Chapter list for the active manga. It's retrieved lazily and should be accessed for the first\n     * time in a background thread to avoid blocking the UI.\n     */\n    private val chapterList by lazy {\n        val manga = manga!!\n        val chapters = runBlocking { getChaptersByMangaId.await(manga.id, applyScanlatorFilter = true) }\n\n        val selectedChapter = chapters.find { it.id == chapterId }\n            ?: error(\"Requested chapter of id $chapterId not found in chapter list\")\n\n        val chaptersForReader = when {\n            (readerPreferences.skipRead.get() || readerPreferences.skipFiltered.get()) -> {\n                val filteredChapters = chapters.filterNot {\n                    when {\n                        readerPreferences.skipRead.get() && it.read -> true\n                        readerPreferences.skipFiltered.get() -> {\n                            (manga.unreadFilterRaw == Manga.CHAPTER_SHOW_READ && !it.read) ||\n                                (manga.unreadFilterRaw == Manga.CHAPTER_SHOW_UNREAD && it.read) ||\n                                (\n                                    manga.downloadedFilterRaw == Manga.CHAPTER_SHOW_DOWNLOADED &&\n                                        !downloadManager.isChapterDownloaded(\n                                            it.name,\n                                            it.scanlator,\n                                            it.url,\n                                            manga.title,\n                                            manga.source,\n                                        )\n                                    ) ||\n                                (\n                                    manga.downloadedFilterRaw == Manga.CHAPTER_SHOW_NOT_DOWNLOADED &&\n                                        downloadManager.isChapterDownloaded(\n                                            it.name,\n                                            it.scanlator,\n                                            it.url,\n                                            manga.title,\n                                            manga.source,\n                                        )\n                                    ) ||\n                                (manga.bookmarkedFilterRaw == Manga.CHAPTER_SHOW_BOOKMARKED && !it.bookmark) ||\n                                (manga.bookmarkedFilterRaw == Manga.CHAPTER_SHOW_NOT_BOOKMARKED && it.bookmark)\n                        }\n                        else -> false\n                    }\n                }\n\n                if (filteredChapters.any { it.id == chapterId }) {\n                    filteredChapters\n                } else {\n                    filteredChapters + listOf(selectedChapter)\n                }\n            }\n            else -> chapters\n        }\n\n        chaptersForReader\n            .sortedWith(getChapterSort(manga, sortDescending = false))\n            .run {\n                if (readerPreferences.skipDupe.get()) {\n                    removeDuplicates(selectedChapter)\n                } else {\n                    this\n                }\n            }\n            .run {\n                if (basePreferences.downloadedOnly.get()) {\n                    filterDownloaded(manga)\n                } else {\n                    this\n                }\n            }\n            .map { it.toDbChapter() }\n            .map(::ReaderChapter)\n    }\n\n    private val incognitoMode: Boolean by lazy { getIncognitoState.await(manga?.source) }\n    private val downloadAheadAmount = downloadPreferences.autoDownloadWhileReading.get()\n\n    init {\n        // To save state\n        state.map { it.viewerChapters?.currChapter }\n            .distinctUntilChanged()\n            .filterNotNull()\n            .onEach { currentChapter ->\n                if (chapterPageIndex >= 0) {\n                    // Restore from SavedState\n                    currentChapter.requestedPage = chapterPageIndex\n                } else if (!currentChapter.chapter.read) {\n                    currentChapter.requestedPage = currentChapter.chapter.last_page_read\n                }\n                chapterId = currentChapter.chapter.id!!\n            }\n            .launchIn(viewModelScope)\n    }\n\n    override fun onCleared() {\n        val currentChapters = state.value.viewerChapters\n        if (currentChapters != null) {\n            currentChapters.unref()\n            chapterToDownload?.let {\n                downloadManager.addDownloadsToStartOfQueue(listOf(it))\n            }\n        }\n    }\n\n    /**\n     * Called when the user pressed the back button and is going to leave the reader. Used to\n     * trigger deletion of the downloaded chapters.\n     */\n    fun onActivityFinish() {\n        deletePendingChapters()\n    }\n\n    /**\n     * Whether this presenter is initialized yet.\n     */\n    fun needsInit(): Boolean {\n        return manga == null\n    }\n\n    /**\n     * Initializes this presenter with the given [mangaId] and [initialChapterId]. This method will\n     * fetch the manga from the database and initialize the initial chapter.\n     */\n    suspend fun init(mangaId: Long, initialChapterId: Long): Result<Boolean> {\n        if (!needsInit()) return Result.success(true)\n        return withIOContext {\n            try {\n                val manga = getManga.await(mangaId)\n                if (manga != null) {\n                    sourceManager.isInitialized.first { it }\n                    mutableState.update { it.copy(manga = manga) }\n                    if (chapterId == -1L) chapterId = initialChapterId\n\n                    val context = Injekt.get<Application>()\n                    val source = sourceManager.getOrStub(manga.source)\n                    loader = ChapterLoader(context, downloadManager, downloadProvider, manga, source)\n\n                    loadChapter(loader!!, chapterList.first { chapterId == it.chapter.id })\n                    Result.success(true)\n                } else {\n                    // Unlikely but okay\n                    Result.success(false)\n                }\n            } catch (e: Throwable) {\n                if (e is CancellationException) {\n                    throw e\n                }\n                Result.failure(e)\n            }\n        }\n    }\n\n    /**\n     * Loads the given [chapter] with this [loader] and updates the currently active chapters.\n     * Callers must handle errors.\n     */\n    private suspend fun loadChapter(\n        loader: ChapterLoader,\n        chapter: ReaderChapter,\n    ): ViewerChapters {\n        loader.loadChapter(chapter)\n\n        val chapterPos = chapterList.indexOf(chapter)\n        val newChapters = ViewerChapters(\n            chapter,\n            chapterList.getOrNull(chapterPos - 1),\n            chapterList.getOrNull(chapterPos + 1),\n        )\n\n        withUIContext {\n            mutableState.update {\n                // Add new references first to avoid unnecessary recycling\n                newChapters.ref()\n                it.viewerChapters?.unref()\n\n                chapterToDownload = cancelQueuedDownloads(newChapters.currChapter)\n                it.copy(\n                    viewerChapters = newChapters,\n                    bookmarked = newChapters.currChapter.chapter.bookmark,\n                )\n            }\n        }\n        return newChapters\n    }\n\n    /**\n     * Called when the user changed to the given [chapter] when changing pages from the viewer.\n     * It's used only to set this chapter as active.\n     */\n    private fun loadNewChapter(chapter: ReaderChapter) {\n        val loader = loader ?: return\n\n        viewModelScope.launchIO {\n            logcat { \"Loading ${chapter.chapter.url}\" }\n\n            updateHistory()\n            restartReadTimer()\n\n            try {\n                loadChapter(loader, chapter)\n            } catch (e: Throwable) {\n                if (e is CancellationException) {\n                    throw e\n                }\n                logcat(LogPriority.ERROR, e)\n            }\n        }\n    }\n\n    /**\n     * Called when the user is going to load the prev/next chapter through the toolbar buttons.\n     */\n    private suspend fun loadAdjacent(chapter: ReaderChapter) {\n        val loader = loader ?: return\n\n        logcat { \"Loading adjacent ${chapter.chapter.url}\" }\n\n        mutableState.update { it.copy(isLoadingAdjacentChapter = true) }\n        try {\n            withIOContext {\n                loadChapter(loader, chapter)\n            }\n        } catch (e: Throwable) {\n            if (e is CancellationException) {\n                throw e\n            }\n            logcat(LogPriority.ERROR, e)\n        } finally {\n            mutableState.update { it.copy(isLoadingAdjacentChapter = false) }\n        }\n    }\n\n    /**\n     * Called when the viewers decide it's a good time to preload a [chapter] and improve the UX so\n     * that the user doesn't have to wait too long to continue reading.\n     */\n    suspend fun preload(chapter: ReaderChapter) {\n        if (chapter.state is ReaderChapter.State.Loaded || chapter.state == ReaderChapter.State.Loading) {\n            return\n        }\n\n        if (chapter.pageLoader?.isLocal == false) {\n            val manga = manga ?: return\n            val dbChapter = chapter.chapter\n            val isDownloaded = downloadManager.isChapterDownloaded(\n                dbChapter.name,\n                dbChapter.scanlator,\n                dbChapter.url,\n                manga.title,\n                manga.source,\n                skipCache = true,\n            )\n            if (isDownloaded) {\n                chapter.state = ReaderChapter.State.Wait\n            }\n        }\n\n        if (chapter.state != ReaderChapter.State.Wait && chapter.state !is ReaderChapter.State.Error) {\n            return\n        }\n\n        val loader = loader ?: return\n        try {\n            logcat { \"Preloading ${chapter.chapter.url}\" }\n            loader.loadChapter(chapter)\n        } catch (e: Throwable) {\n            if (e is CancellationException) {\n                throw e\n            }\n            return\n        }\n        eventChannel.trySend(Event.ReloadViewerChapters)\n    }\n\n    fun onViewerLoaded(viewer: Viewer?) {\n        mutableState.update {\n            it.copy(viewer = viewer)\n        }\n    }\n\n    /**\n     * Called every time a page changes on the reader. Used to mark the flag of chapters being\n     * read, update tracking services, enqueue downloaded chapter deletion, and updating the active chapter if this\n     * [page]'s chapter is different from the currently active.\n     */\n    fun onPageSelected(page: ReaderPage) {\n        // InsertPage doesn't change page progress\n        if (page is InsertPage) {\n            return\n        }\n\n        val selectedChapter = page.chapter\n        val pages = selectedChapter.pages ?: return\n\n        // Save last page read and mark as read if needed\n        viewModelScope.launchNonCancellable {\n            updateChapterProgress(selectedChapter, page)\n        }\n\n        if (selectedChapter != getCurrentChapter()) {\n            logcat { \"Setting ${selectedChapter.chapter.url} as active\" }\n            loadNewChapter(selectedChapter)\n        }\n\n        val inDownloadRange = page.number.toDouble() / pages.size > 0.25\n        if (inDownloadRange) {\n            downloadNextChapters()\n        }\n\n        eventChannel.trySend(Event.PageChanged)\n    }\n\n    private fun downloadNextChapters() {\n        if (downloadAheadAmount == 0) return\n        val manga = manga ?: return\n\n        // Only download ahead if current + next chapter is already downloaded too to avoid jank\n        if (getCurrentChapter()?.pageLoader !is DownloadPageLoader) return\n        val nextChapter = state.value.viewerChapters?.nextChapter?.chapter ?: return\n\n        viewModelScope.launchIO {\n            val isNextChapterDownloaded = downloadManager.isChapterDownloaded(\n                nextChapter.name,\n                nextChapter.scanlator,\n                nextChapter.url,\n                manga.title,\n                manga.source,\n            )\n            if (!isNextChapterDownloaded) return@launchIO\n\n            val chaptersToDownload = getNextChapters.await(manga.id, nextChapter.id!!).run {\n                if (readerPreferences.skipDupe.get()) {\n                    removeDuplicates(nextChapter.toDomainChapter()!!)\n                } else {\n                    this\n                }\n            }.take(downloadAheadAmount)\n\n            downloadManager.downloadChapters(\n                manga,\n                chaptersToDownload,\n            )\n        }\n    }\n\n    /**\n     * Removes [currentChapter] from download queue\n     * if setting is enabled and [currentChapter] is queued for download\n     */\n    private fun cancelQueuedDownloads(currentChapter: ReaderChapter): Download? {\n        return downloadManager.getQueuedDownloadOrNull(currentChapter.chapter.id!!)?.also {\n            downloadManager.cancelQueuedDownloads(listOf(it))\n        }\n    }\n\n    /**\n     * Determines if deleting option is enabled and nth to last chapter actually exists.\n     * If both conditions are satisfied enqueues chapter for delete\n     * @param currentChapter current chapter, which is going to be marked as read.\n     */\n    private fun deleteChapterIfNeeded(currentChapter: ReaderChapter) {\n        val removeAfterReadSlots = downloadPreferences.removeAfterReadSlots.get()\n        if (removeAfterReadSlots == -1) return\n\n        // Determine which chapter should be deleted and enqueue\n        val currentChapterPosition = chapterList.indexOf(currentChapter)\n        val chapterToDelete = chapterList.getOrNull(currentChapterPosition - removeAfterReadSlots)\n\n        // If chapter is completely read, no need to download it\n        chapterToDownload = null\n\n        if (chapterToDelete != null) {\n            enqueueDeleteReadChapters(chapterToDelete)\n        }\n    }\n\n    /**\n     * Saves the chapter progress (last read page and whether it's read)\n     * if incognito mode isn't on.\n     */\n    private suspend fun updateChapterProgress(readerChapter: ReaderChapter, page: Page) {\n        val pageIndex = page.index\n\n        mutableState.update {\n            it.copy(currentPage = pageIndex + 1)\n        }\n        readerChapter.requestedPage = pageIndex\n        chapterPageIndex = pageIndex\n\n        if (!incognitoMode && page.status !is Page.State.Error) {\n            readerChapter.chapter.last_page_read = pageIndex\n\n            if (readerChapter.pages?.lastIndex == pageIndex) {\n                updateChapterProgressOnComplete(readerChapter)\n            }\n\n            updateChapter.await(\n                ChapterUpdate(\n                    id = readerChapter.chapter.id!!,\n                    read = readerChapter.chapter.read,\n                    lastPageRead = readerChapter.chapter.last_page_read.toLong(),\n                ),\n            )\n        }\n    }\n\n    private suspend fun updateChapterProgressOnComplete(readerChapter: ReaderChapter) {\n        readerChapter.chapter.read = true\n        updateTrackChapterRead(readerChapter)\n        deleteChapterIfNeeded(readerChapter)\n\n        val markDuplicateAsRead = libraryPreferences.markDuplicateReadChapterAsRead.get()\n            .contains(LibraryPreferences.MARK_DUPLICATE_CHAPTER_READ_EXISTING)\n        if (!markDuplicateAsRead) return\n\n        val duplicateUnreadChapters = unfilteredChapterList\n            .mapNotNull { chapter ->\n                if (\n                    !chapter.read &&\n                    chapter.isRecognizedNumber &&\n                    chapter.chapterNumber.toFloat() == readerChapter.chapter.chapter_number\n                ) {\n                    ChapterUpdate(id = chapter.id, read = true)\n                } else {\n                    null\n                }\n            }\n        updateChapter.awaitAll(duplicateUnreadChapters)\n    }\n\n    fun restartReadTimer() {\n        chapterReadStartTime = Instant.now().toEpochMilli()\n    }\n\n    /**\n     * Saves the chapter last read history if incognito mode isn't on.\n     */\n    suspend fun updateHistory() {\n        getCurrentChapter()?.let { readerChapter ->\n            if (incognitoMode) return@let\n\n            val chapterId = readerChapter.chapter.id!!\n            val endTime = Date()\n            val sessionReadDuration = chapterReadStartTime?.let { endTime.time - it } ?: 0\n\n            upsertHistory.await(HistoryUpdate(chapterId, endTime, sessionReadDuration))\n            chapterReadStartTime = null\n        }\n    }\n\n    /**\n     * Called from the activity to load and set the next chapter as active.\n     */\n    suspend fun loadNextChapter() {\n        val nextChapter = state.value.viewerChapters?.nextChapter ?: return\n        loadAdjacent(nextChapter)\n    }\n\n    /**\n     * Called from the activity to load and set the previous chapter as active.\n     */\n    suspend fun loadPreviousChapter() {\n        val prevChapter = state.value.viewerChapters?.prevChapter ?: return\n        loadAdjacent(prevChapter)\n    }\n\n    /**\n     * Returns the currently active chapter.\n     */\n    private fun getCurrentChapter(): ReaderChapter? {\n        return state.value.currentChapter\n    }\n\n    fun getSource() = manga?.source?.let { sourceManager.getOrStub(it) } as? HttpSource\n\n    fun getChapterUrl(): String? {\n        val sChapter = getCurrentChapter()?.chapter ?: return null\n        val source = getSource() ?: return null\n\n        return try {\n            source.getChapterUrl(sChapter)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            null\n        }\n    }\n\n    /**\n     * Bookmarks the currently active chapter.\n     */\n    fun toggleChapterBookmark() {\n        val chapter = getCurrentChapter()?.chapter ?: return\n        val bookmarked = !chapter.bookmark\n        chapter.bookmark = bookmarked\n\n        viewModelScope.launchNonCancellable {\n            updateChapter.await(\n                ChapterUpdate(\n                    id = chapter.id!!,\n                    bookmark = bookmarked,\n                ),\n            )\n        }\n\n        mutableState.update {\n            it.copy(\n                bookmarked = bookmarked,\n            )\n        }\n    }\n\n    /**\n     * Returns the viewer position used by this manga or the default one.\n     */\n    fun getMangaReadingMode(resolveDefault: Boolean = true): Int {\n        val default = readerPreferences.defaultReadingMode.get()\n        val readingMode = ReadingMode.fromPreference(manga?.readingMode?.toInt())\n        return when {\n            resolveDefault && readingMode == ReadingMode.DEFAULT -> default\n            else -> manga?.readingMode?.toInt() ?: default\n        }\n    }\n\n    /**\n     * Updates the viewer position for the open manga.\n     */\n    fun setMangaReadingMode(readingMode: ReadingMode) {\n        val manga = manga ?: return\n        runBlocking(Dispatchers.IO) {\n            setMangaViewerFlags.awaitSetReadingMode(manga.id, readingMode.flagValue.toLong())\n            val currChapters = state.value.viewerChapters\n            if (currChapters != null) {\n                // Save current page\n                val currChapter = currChapters.currChapter\n                currChapter.requestedPage = currChapter.chapter.last_page_read\n\n                mutableState.update {\n                    it.copy(\n                        manga = getManga.await(manga.id),\n                        viewerChapters = currChapters,\n                    )\n                }\n                eventChannel.send(Event.ReloadViewerChapters)\n            }\n        }\n    }\n\n    /**\n     * Returns the orientation type used by this manga or the default one.\n     */\n    fun getMangaOrientation(resolveDefault: Boolean = true): Int {\n        val default = readerPreferences.defaultOrientationType.get()\n        val orientation = ReaderOrientation.fromPreference(manga?.readerOrientation?.toInt())\n        return when {\n            resolveDefault && orientation == ReaderOrientation.DEFAULT -> default\n            else -> manga?.readerOrientation?.toInt() ?: default\n        }\n    }\n\n    /**\n     * Updates the orientation type for the open manga.\n     */\n    fun setMangaOrientationType(orientation: ReaderOrientation) {\n        val manga = manga ?: return\n        viewModelScope.launchIO {\n            setMangaViewerFlags.awaitSetOrientation(manga.id, orientation.flagValue.toLong())\n            val currChapters = state.value.viewerChapters\n            if (currChapters != null) {\n                // Save current page\n                val currChapter = currChapters.currChapter\n                currChapter.requestedPage = currChapter.chapter.last_page_read\n\n                mutableState.update {\n                    it.copy(\n                        manga = getManga.await(manga.id),\n                        viewerChapters = currChapters,\n                    )\n                }\n                eventChannel.send(Event.SetOrientation(getMangaOrientation()))\n                eventChannel.send(Event.ReloadViewerChapters)\n            }\n        }\n    }\n\n    fun toggleCropBorders(): Boolean {\n        val isPagerType = ReadingMode.isPagerType(getMangaReadingMode())\n        return if (isPagerType) {\n            readerPreferences.cropBorders.toggle()\n        } else {\n            readerPreferences.cropBordersWebtoon.toggle()\n        }\n    }\n\n    /**\n     * Generate a filename for the given [manga] and [page]\n     */\n    private fun generateFilename(\n        manga: Manga,\n        page: ReaderPage,\n    ): String {\n        val chapter = page.chapter.chapter\n        val filenameSuffix = \" - ${page.number}\"\n        return DiskUtil.buildValidFilename(\n            \"${manga.title} - ${chapter.name}\",\n            DiskUtil.MAX_FILE_NAME_BYTES - filenameSuffix.byteSize(),\n        ) + filenameSuffix\n    }\n\n    fun showMenus(visible: Boolean) {\n        mutableState.update { it.copy(menuVisible = visible) }\n    }\n\n    fun showLoadingDialog() {\n        mutableState.update { it.copy(dialog = Dialog.Loading) }\n    }\n\n    fun openReadingModeSelectDialog() {\n        mutableState.update { it.copy(dialog = Dialog.ReadingModeSelect) }\n    }\n\n    fun openOrientationModeSelectDialog() {\n        mutableState.update { it.copy(dialog = Dialog.OrientationModeSelect) }\n    }\n\n    fun openPageDialog(page: ReaderPage) {\n        mutableState.update { it.copy(dialog = Dialog.PageActions(page)) }\n    }\n\n    fun openSettingsDialog() {\n        mutableState.update { it.copy(dialog = Dialog.Settings) }\n    }\n\n    fun closeDialog() {\n        mutableState.update { it.copy(dialog = null) }\n    }\n\n    fun setBrightnessOverlayValue(value: Int) {\n        mutableState.update { it.copy(brightnessOverlayValue = value) }\n    }\n\n    /**\n     * Saves the image of the selected page on the pictures directory and notifies the UI of the result.\n     * There's also a notification to allow sharing the image somewhere else or deleting it.\n     */\n    fun saveImage() {\n        val page = (state.value.dialog as? Dialog.PageActions)?.page\n        if (page?.status != Page.State.Ready) return\n        val manga = manga ?: return\n\n        val context = Injekt.get<Application>()\n        val notifier = SaveImageNotifier(context)\n        notifier.onClear()\n\n        val filename = generateFilename(manga, page)\n\n        // Pictures directory.\n        val relativePath = if (readerPreferences.folderPerManga.get()) {\n            DiskUtil.buildValidFilename(\n                manga.title,\n            )\n        } else {\n            \"\"\n        }\n\n        // Copy file in background.\n        viewModelScope.launchNonCancellable {\n            try {\n                val uri = imageSaver.save(\n                    image = Image.Page(\n                        inputStream = page.stream!!,\n                        name = filename,\n                        location = Location.Pictures.create(relativePath),\n                    ),\n                )\n                withUIContext {\n                    notifier.onComplete(uri)\n                    eventChannel.send(Event.SavedImage(SaveImageResult.Success(uri)))\n                }\n            } catch (e: Throwable) {\n                notifier.onError(e.message)\n                eventChannel.send(Event.SavedImage(SaveImageResult.Error(e)))\n            }\n        }\n    }\n\n    /**\n     * Shares the image of the selected page and notifies the UI with the path of the file to share.\n     * The image must be first copied to the internal partition because there are many possible\n     * formats it can come from, like a zipped chapter, in which case it's not possible to directly\n     * get a path to the file and it has to be decompressed somewhere first. Only the last shared\n     * image will be kept so it won't be taking lots of internal disk space.\n     */\n    fun shareImage(copyToClipboard: Boolean) {\n        val page = (state.value.dialog as? Dialog.PageActions)?.page\n        if (page?.status != Page.State.Ready) return\n        val manga = manga ?: return\n\n        val context = Injekt.get<Application>()\n        val destDir = context.cacheImageDir\n\n        val filename = generateFilename(manga, page)\n\n        try {\n            viewModelScope.launchNonCancellable {\n                destDir.deleteRecursively()\n                val uri = imageSaver.save(\n                    image = Image.Page(\n                        inputStream = page.stream!!,\n                        name = filename,\n                        location = Location.Cache,\n                    ),\n                )\n                eventChannel.send(if (copyToClipboard) Event.CopyImage(uri) else Event.ShareImage(uri, page))\n            }\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n\n    /**\n     * Sets the image of the selected page as cover and notifies the UI of the result.\n     */\n    fun setAsCover() {\n        val page = (state.value.dialog as? Dialog.PageActions)?.page\n        if (page?.status != Page.State.Ready) return\n        val manga = manga ?: return\n        val stream = page.stream ?: return\n\n        viewModelScope.launchNonCancellable {\n            val result = try {\n                manga.editCover(Injekt.get(), stream())\n                if (manga.isLocal() || manga.favorite) {\n                    SetAsCoverResult.Success\n                } else {\n                    SetAsCoverResult.AddToLibraryFirst\n                }\n            } catch (e: Exception) {\n                SetAsCoverResult.Error\n            }\n            eventChannel.send(Event.SetCoverResult(result))\n        }\n    }\n\n    enum class SetAsCoverResult {\n        Success,\n        AddToLibraryFirst,\n        Error,\n    }\n\n    sealed interface SaveImageResult {\n        class Success(val uri: Uri) : SaveImageResult\n        class Error(val error: Throwable) : SaveImageResult\n    }\n\n    /**\n     * Starts the service that updates the last chapter read in sync services. This operation\n     * will run in a background thread and errors are ignored.\n     */\n    private fun updateTrackChapterRead(readerChapter: ReaderChapter) {\n        if (incognitoMode) return\n        if (!trackPreferences.autoUpdateTrack.get()) return\n\n        val manga = manga ?: return\n        val context = Injekt.get<Application>()\n\n        viewModelScope.launchNonCancellable {\n            trackChapter.await(context, manga.id, readerChapter.chapter.chapter_number.toDouble())\n        }\n    }\n\n    /**\n     * Enqueues this [chapter] to be deleted when [deletePendingChapters] is called. The download\n     * manager handles persisting it across process deaths.\n     */\n    private fun enqueueDeleteReadChapters(chapter: ReaderChapter) {\n        if (!chapter.chapter.read) return\n        val manga = manga ?: return\n\n        viewModelScope.launchNonCancellable {\n            downloadManager.enqueueChaptersToDelete(listOf(chapter.chapter.toDomainChapter()!!), manga)\n        }\n    }\n\n    /**\n     * Deletes all the pending chapters. This operation will run in a background thread and errors\n     * are ignored.\n     */\n    private fun deletePendingChapters() {\n        viewModelScope.launchNonCancellable {\n            downloadManager.deletePendingChapters()\n        }\n    }\n\n    @Immutable\n    data class State(\n        val manga: Manga? = null,\n        val viewerChapters: ViewerChapters? = null,\n        val bookmarked: Boolean = false,\n        val isLoadingAdjacentChapter: Boolean = false,\n        val currentPage: Int = -1,\n\n        /**\n         * Viewer used to display the pages (pager, webtoon, ...).\n         */\n        val viewer: Viewer? = null,\n        val dialog: Dialog? = null,\n        val menuVisible: Boolean = false,\n        @IntRange(from = -100, to = 100) val brightnessOverlayValue: Int = 0,\n    ) {\n        val currentChapter: ReaderChapter?\n            get() = viewerChapters?.currChapter\n\n        val totalPages: Int\n            get() = currentChapter?.pages?.size ?: -1\n    }\n\n    sealed interface Dialog {\n        data object Loading : Dialog\n        data object Settings : Dialog\n        data object ReadingModeSelect : Dialog\n        data object OrientationModeSelect : Dialog\n        data class PageActions(val page: ReaderPage) : Dialog\n    }\n\n    sealed interface Event {\n        data object ReloadViewerChapters : Event\n        data object PageChanged : Event\n        data class SetOrientation(val orientation: Int) : Event\n        data class SetCoverResult(val result: SetAsCoverResult) : Event\n\n        data class SavedImage(val result: SaveImageResult) : Event\n        data class ShareImage(val uri: Uri, val page: ReaderPage) : Event\n        data class CopyImage(val uri: Uri) : Event\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/SaveImageNotifier.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader\n\nimport android.content.Context\nimport android.graphics.Bitmap\nimport android.net.Uri\nimport androidx.core.app.NotificationCompat\nimport coil3.asDrawable\nimport coil3.imageLoader\nimport coil3.request.CachePolicy\nimport coil3.request.ImageRequest\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.notification.NotificationHandler\nimport eu.kanade.tachiyomi.data.notification.NotificationReceiver\nimport eu.kanade.tachiyomi.data.notification.Notifications\nimport eu.kanade.tachiyomi.util.system.cancelNotification\nimport eu.kanade.tachiyomi.util.system.getBitmapOrNull\nimport eu.kanade.tachiyomi.util.system.notificationBuilder\nimport eu.kanade.tachiyomi.util.system.notify\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\n\n/**\n * Class used to show BigPictureStyle notifications\n */\nclass SaveImageNotifier(private val context: Context) {\n\n    private val notificationBuilder = context.notificationBuilder(Notifications.CHANNEL_COMMON)\n    private val notificationId: Int = Notifications.ID_DOWNLOAD_IMAGE\n\n    /**\n     * Called when image download/copy is complete.\n     *\n     * @param uri image file containing downloaded page image.\n     */\n    fun onComplete(uri: Uri) {\n        val request = ImageRequest.Builder(context)\n            .data(uri)\n            .memoryCachePolicy(CachePolicy.DISABLED)\n            .size(720, 1280)\n            .target(\n                onSuccess = { showCompleteNotification(uri, it.asDrawable(context.resources).getBitmapOrNull()) },\n                onError = { onError(null) },\n            )\n            .build()\n        context.imageLoader.enqueue(request)\n    }\n\n    /**\n     * Clears the notification message.\n     */\n    fun onClear() {\n        context.cancelNotification(notificationId)\n    }\n\n    /**\n     * Called on error while downloading image.\n     * @param error string containing error information.\n     */\n    fun onError(error: String?) {\n        // Create notification\n        with(notificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.download_notifier_title_error))\n            setContentText(error ?: context.stringResource(MR.strings.unknown_error))\n            setSmallIcon(android.R.drawable.ic_menu_report_image)\n        }\n        updateNotification()\n    }\n\n    private fun showCompleteNotification(uri: Uri, image: Bitmap?) {\n        with(notificationBuilder) {\n            setContentTitle(context.stringResource(MR.strings.picture_saved))\n            setSmallIcon(R.drawable.ic_photo_24dp)\n            image?.let { setStyle(NotificationCompat.BigPictureStyle().bigPicture(it)) }\n            setLargeIcon(image)\n            setAutoCancel(true)\n\n            // Clear old actions if they exist\n            clearActions()\n\n            setContentIntent(NotificationHandler.openImagePendingActivity(context, uri))\n            // Share action\n            addAction(\n                R.drawable.ic_share_24dp,\n                context.stringResource(MR.strings.action_share),\n                NotificationReceiver.shareImagePendingBroadcast(context, uri),\n            )\n\n            updateNotification()\n        }\n    }\n\n    private fun updateNotification() {\n        // Displays the progress bar on notification\n        context.notify(notificationId, notificationBuilder.build())\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ArchivePageLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder\nimport mihon.core.archive.ArchiveReader\nimport tachiyomi.core.common.util.system.ImageUtil\n\n/**\n * Loader used to load a chapter from an archive file.\n */\ninternal class ArchivePageLoader(private val reader: ArchiveReader) : PageLoader() {\n    override var isLocal: Boolean = true\n\n    override suspend fun getPages(): List<ReaderPage> = reader.useEntries { entries ->\n        entries\n            .filter { it.isFile && ImageUtil.isImage(it.name) { reader.getInputStream(it.name)!! } }\n            .sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }\n            .mapIndexed { i, entry ->\n                ReaderPage(i).apply {\n                    stream = { reader.getInputStream(entry.name)!! }\n                    status = Page.State.Ready\n                }\n            }\n            .toList()\n    }\n\n    override suspend fun loadPage(page: ReaderPage) {\n        check(!isRecycled)\n    }\n\n    override fun recycle() {\n        super.recycle()\n        reader.close()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.DownloadProvider\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport mihon.core.archive.archiveReader\nimport mihon.core.archive.epubReader\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.i18n.MR\nimport tachiyomi.source.local.LocalSource\nimport tachiyomi.source.local.io.Format\n\n/**\n * Loader used to retrieve the [PageLoader] for a given chapter.\n */\nclass ChapterLoader(\n    private val context: Context,\n    private val downloadManager: DownloadManager,\n    private val downloadProvider: DownloadProvider,\n    private val manga: Manga,\n    private val source: Source,\n) {\n\n    /**\n     * Assigns the chapter's page loader and loads the its pages. Returns immediately if the chapter\n     * is already loaded.\n     */\n    suspend fun loadChapter(chapter: ReaderChapter) {\n        if (chapterIsReady(chapter)) {\n            return\n        }\n\n        chapter.state = ReaderChapter.State.Loading\n        withIOContext {\n            logcat { \"Loading pages for ${chapter.chapter.name}\" }\n            try {\n                val loader = getPageLoader(chapter)\n                chapter.pageLoader = loader\n\n                val pages = loader.getPages()\n                    .onEach { it.chapter = chapter }\n\n                if (pages.isEmpty()) {\n                    throw Exception(context.stringResource(MR.strings.page_list_empty_error))\n                }\n\n                // If the chapter is partially read, set the starting page to the last the user read\n                // otherwise use the requested page.\n                if (!chapter.chapter.read) {\n                    chapter.requestedPage = chapter.chapter.last_page_read\n                }\n\n                chapter.state = ReaderChapter.State.Loaded(pages)\n            } catch (e: Throwable) {\n                chapter.state = ReaderChapter.State.Error(e)\n                throw e\n            }\n        }\n    }\n\n    /**\n     * Checks [chapter] to be loaded based on present pages and loader in addition to state.\n     */\n    private fun chapterIsReady(chapter: ReaderChapter): Boolean {\n        return chapter.state is ReaderChapter.State.Loaded && chapter.pageLoader != null\n    }\n\n    /**\n     * Returns the page loader to use for this [chapter].\n     */\n    private fun getPageLoader(chapter: ReaderChapter): PageLoader {\n        val dbChapter = chapter.chapter\n        val isDownloaded = downloadManager.isChapterDownloaded(\n            dbChapter.name,\n            dbChapter.scanlator,\n            dbChapter.url,\n            manga.title,\n            manga.source,\n            skipCache = true,\n        )\n        return when {\n            isDownloaded -> DownloadPageLoader(\n                chapter,\n                manga,\n                source,\n                downloadManager,\n                downloadProvider,\n            )\n            source is LocalSource -> source.getFormat(chapter.chapter).let { format ->\n                when (format) {\n                    is Format.Directory -> DirectoryPageLoader(format.file)\n                    is Format.Archive -> ArchivePageLoader(format.file.archiveReader(context))\n                    is Format.Epub -> EpubPageLoader(format.file.epubReader(context))\n                }\n            }\n            source is HttpSource -> HttpPageLoader(chapter, source)\n            source is StubSource -> error(context.stringResource(MR.strings.source_not_installed, source.toString()))\n            else -> error(context.stringResource(MR.strings.loader_not_implemented_error))\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DirectoryPageLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder\nimport tachiyomi.core.common.util.system.ImageUtil\n\n/**\n * Loader used to load a chapter from a directory given on [file].\n */\ninternal class DirectoryPageLoader(val file: UniFile) : PageLoader() {\n\n    override var isLocal: Boolean = true\n\n    override suspend fun getPages(): List<ReaderPage> {\n        return file.listFiles()\n            ?.filter { !it.isDirectory && ImageUtil.isImage(it.name) { it.openInputStream() } }\n            ?.sortedWith { f1, f2 -> f1.name.orEmpty().compareToCaseInsensitiveNaturalOrder(f2.name.orEmpty()) }\n            ?.mapIndexed { i, file ->\n                val streamFn = { file.openInputStream() }\n                ReaderPage(i).apply {\n                    stream = streamFn\n                    status = Page.State.Ready\n                }\n            }\n            .orEmpty()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DownloadPageLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport android.app.Application\nimport android.net.Uri\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.data.database.models.toDomainChapter\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.DownloadProvider\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport mihon.core.archive.archiveReader\nimport tachiyomi.domain.manga.model.Manga\nimport uy.kohesive.injekt.injectLazy\n\n/**\n * Loader used to load a chapter from the downloaded chapters.\n */\ninternal class DownloadPageLoader(\n    private val chapter: ReaderChapter,\n    private val manga: Manga,\n    private val source: Source,\n    private val downloadManager: DownloadManager,\n    private val downloadProvider: DownloadProvider,\n) : PageLoader() {\n\n    private val context: Application by injectLazy()\n\n    private var archivePageLoader: ArchivePageLoader? = null\n\n    override var isLocal: Boolean = true\n\n    override suspend fun getPages(): List<ReaderPage> {\n        val dbChapter = chapter.chapter\n        val chapterPath = downloadProvider.findChapterDir(\n            dbChapter.name,\n            dbChapter.scanlator,\n            dbChapter.url,\n            manga.title,\n            source,\n        )\n        return if (chapterPath?.isFile == true) {\n            getPagesFromArchive(chapterPath)\n        } else {\n            getPagesFromDirectory()\n        }\n    }\n\n    override fun recycle() {\n        super.recycle()\n        archivePageLoader?.recycle()\n    }\n\n    private suspend fun getPagesFromArchive(file: UniFile): List<ReaderPage> {\n        val loader = ArchivePageLoader(file.archiveReader(context)).also { archivePageLoader = it }\n        return loader.getPages()\n    }\n\n    private fun getPagesFromDirectory(): List<ReaderPage> {\n        val pages = downloadManager.buildPageList(source, manga, chapter.chapter.toDomainChapter()!!)\n        return pages.map { page ->\n            ReaderPage(page.index, page.url, page.imageUrl) {\n                context.contentResolver.openInputStream(page.uri ?: Uri.EMPTY)!!\n            }.apply {\n                status = Page.State.Ready\n            }\n        }\n    }\n\n    override suspend fun loadPage(page: ReaderPage) {\n        archivePageLoader?.loadPage(page)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/EpubPageLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport mihon.core.archive.EpubReader\n\n/**\n * Loader used to load a chapter from a .epub file.\n */\ninternal class EpubPageLoader(private val reader: EpubReader) : PageLoader() {\n\n    override var isLocal: Boolean = true\n\n    override suspend fun getPages(): List<ReaderPage> {\n        return reader.getImagesFromPages().mapIndexed { i, path ->\n            ReaderPage(i).apply {\n                stream = { reader.getInputStream(path)!! }\n                status = Page.State.Ready\n            }\n        }\n    }\n\n    override suspend fun loadPage(page: ReaderPage) {\n        check(!isRecycled)\n    }\n\n    override fun recycle() {\n        super.recycle()\n        reader.close()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport eu.kanade.tachiyomi.data.cache.ChapterCache\nimport eu.kanade.tachiyomi.data.database.models.toDomainChapter\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.cancel\nimport kotlinx.coroutines.flow.filter\nimport kotlinx.coroutines.flow.flow\nimport kotlinx.coroutines.runInterruptible\nimport kotlinx.coroutines.suspendCancellableCoroutine\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withIOContext\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.util.concurrent.PriorityBlockingQueue\nimport kotlin.concurrent.atomics.AtomicInt\nimport kotlin.concurrent.atomics.ExperimentalAtomicApi\nimport kotlin.concurrent.atomics.incrementAndFetch\nimport kotlin.math.min\n\n/**\n * Loader used to load chapters from an online source.\n */\ninternal class HttpPageLoader(\n    private val chapter: ReaderChapter,\n    private val source: HttpSource,\n    private val chapterCache: ChapterCache = Injekt.get(),\n) : PageLoader() {\n\n    private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)\n\n    /**\n     * A queue used to manage requests one by one while allowing priorities.\n     */\n    private val queue = PriorityBlockingQueue<PriorityPage>()\n\n    private val preloadSize = 4\n\n    init {\n        scope.launchIO {\n            flow {\n                while (true) {\n                    emit(runInterruptible { queue.take() })\n                }\n            }\n                .filter { it.page.status == Page.State.Queue }\n                .collect {\n                    internalLoadPage(\n                        page = it.page,\n                        force = it.priority == PriorityPage.RETRY,\n                    )\n                }\n        }\n    }\n\n    override var isLocal: Boolean = false\n\n    /**\n     * Returns the page list for a chapter. It tries to return the page list from the local cache,\n     * otherwise fallbacks to network.\n     */\n    override suspend fun getPages(): List<ReaderPage> {\n        val pages = try {\n            chapterCache.getPageListFromCache(chapter.chapter.toDomainChapter()!!)\n        } catch (e: Throwable) {\n            if (e is CancellationException) {\n                throw e\n            }\n            source.getPageList(chapter.chapter)\n        }\n        return pages.mapIndexed { index, page ->\n            // Don't trust sources and use our own indexing\n            ReaderPage(index, page.url, page.imageUrl)\n        }\n    }\n\n    /**\n     * Loads a page through the queue. Handles re-enqueueing pages if they were evicted from the cache.\n     */\n    override suspend fun loadPage(page: ReaderPage) = withIOContext {\n        val imageUrl = page.imageUrl\n\n        // Check if the image has been deleted\n        if (page.status == Page.State.Ready && imageUrl != null && !chapterCache.isImageInCache(imageUrl)) {\n            page.status = Page.State.Queue\n        }\n\n        // Automatically retry failed pages when subscribed to this page\n        if (page.status is Page.State.Error) {\n            page.status = Page.State.Queue\n        }\n\n        val queuedPages = mutableListOf<PriorityPage>()\n        if (page.status == Page.State.Queue) {\n            queuedPages += PriorityPage(page, PriorityPage.DEFAULT).also { queue.offer(it) }\n        }\n        queuedPages += preloadNextPages(page, preloadSize)\n\n        suspendCancellableCoroutine<Nothing> { continuation ->\n            continuation.invokeOnCancellation {\n                queuedPages.forEach {\n                    if (it.page.status == Page.State.Queue) {\n                        queue.remove(it)\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Retries a page. This method is only called from user interaction on the viewer.\n     */\n    override fun retryPage(page: ReaderPage) {\n        if (page.status is Page.State.Error) {\n            page.status = Page.State.Queue\n        }\n        queue.offer(PriorityPage(page, PriorityPage.RETRY))\n    }\n\n    override fun recycle() {\n        super.recycle()\n        scope.cancel()\n        queue.clear()\n\n        // Cache current page list progress for online chapters to allow a faster reopen\n        chapter.pages?.let { pages ->\n            launchIO {\n                try {\n                    // Convert to pages without reader information\n                    val pagesToSave = pages.map { Page(it.index, it.url, it.imageUrl) }\n                    chapterCache.putPageListToCache(chapter.chapter.toDomainChapter()!!, pagesToSave)\n                } catch (e: Throwable) {\n                    if (e is CancellationException) {\n                        throw e\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Preloads the given [amount] of pages after the [currentPage] with a lower priority.\n     *\n     * @return a list of [PriorityPage] that were added to the [queue]\n     */\n    private fun preloadNextPages(currentPage: ReaderPage, amount: Int): List<PriorityPage> {\n        val pageIndex = currentPage.index\n        val pages = currentPage.chapter.pages ?: return emptyList()\n        if (pageIndex == pages.lastIndex) return emptyList()\n\n        return pages\n            .subList(pageIndex + 1, min(pageIndex + 1 + amount, pages.size))\n            .mapNotNull {\n                if (it.status == Page.State.Queue) {\n                    PriorityPage(it, PriorityPage.ADJACENT).apply { queue.offer(this) }\n                } else {\n                    null\n                }\n            }\n    }\n\n    /**\n     * Loads the page, retrieving the image URL and downloading the image if necessary.\n     * Downloaded images are stored in the chapter cache.\n     *\n     * @param page the page whose source image has to be downloaded.\n     */\n    private suspend fun internalLoadPage(page: ReaderPage, force: Boolean) {\n        try {\n            if (page.imageUrl.isNullOrEmpty()) {\n                page.status = Page.State.LoadPage\n                page.imageUrl = source.getImageUrl(page)\n            }\n            val imageUrl = page.imageUrl!!\n\n            if (force || !chapterCache.isImageInCache(imageUrl)) {\n                page.status = Page.State.DownloadImage\n                val imageResponse = source.getImage(page)\n                chapterCache.putImageToCache(imageUrl, imageResponse)\n            }\n\n            page.stream = { chapterCache.getImageFile(imageUrl).inputStream() }\n            page.status = Page.State.Ready\n        } catch (e: Throwable) {\n            page.status = Page.State.Error(e)\n            if (e is CancellationException) {\n                throw e\n            }\n        }\n    }\n}\n\n/**\n * Data class used to keep ordering of pages in order to maintain priority.\n */\n@OptIn(ExperimentalAtomicApi::class)\nprivate class PriorityPage(\n    val page: ReaderPage,\n    val priority: Int,\n) : Comparable<PriorityPage> {\n    companion object {\n        private val idGenerator = AtomicInt(0)\n\n        const val RETRY = 2\n        const val DEFAULT = 1\n        const val ADJACENT = 0\n    }\n\n    private val identifier = idGenerator.incrementAndFetch()\n\n    override fun compareTo(other: PriorityPage): Int {\n        val p = other.priority.compareTo(priority)\n        return if (p != 0) p else identifier.compareTo(other.identifier)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/PageLoader.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.loader\n\nimport androidx.annotation.CallSuper\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\n\n/**\n * A loader used to load pages into the reader. Any open resources must be cleaned up when the\n * method [recycle] is called.\n */\nabstract class PageLoader {\n\n    /**\n     * Whether this loader has been already recycled.\n     */\n    var isRecycled = false\n        private set\n\n    abstract var isLocal: Boolean\n\n    /**\n     * Returns the list of pages of a chapter.\n     */\n    abstract suspend fun getPages(): List<ReaderPage>\n\n    /**\n     * Loads the page. May also preload other pages.\n     * Progress of the page loading should be followed via [page.statusFlow].\n     * [loadPage] is not currently guaranteed to complete, so it should be launched asynchronously.\n     */\n    open suspend fun loadPage(page: ReaderPage) {}\n\n    /**\n     * Retries the given [page] in case it failed to load. This method only makes sense when an\n     * online source is used.\n     */\n    open fun retryPage(page: ReaderPage) {}\n\n    /**\n     * Recycles this loader. Implementations must override this method to clean up any active\n     * resources.\n     */\n    @CallSuper\n    open fun recycle() {\n        isRecycled = true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/ChapterTransition.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.model\n\nsealed class ChapterTransition {\n\n    abstract val from: ReaderChapter\n    abstract val to: ReaderChapter?\n\n    class Prev(\n        override val from: ReaderChapter,\n        override val to: ReaderChapter?,\n    ) : ChapterTransition()\n\n    class Next(\n        override val from: ReaderChapter,\n        override val to: ReaderChapter?,\n    ) : ChapterTransition()\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (other !is ChapterTransition) return false\n        if (from == other.from && to == other.to) return true\n        if (from == other.to && to == other.from) return true\n        return false\n    }\n\n    override fun hashCode(): Int {\n        var result = from.hashCode()\n        result = 31 * result + (to?.hashCode() ?: 0)\n        return result\n    }\n\n    override fun toString(): String {\n        return \"${javaClass.simpleName}(from=${from.chapter.url}, to=${to?.chapter?.url})\"\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/InsertPage.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.model\n\nclass InsertPage(val parent: ReaderPage) : ReaderPage(parent.index, parent.url, parent.imageUrl) {\n\n    override var chapter: ReaderChapter = parent.chapter\n\n    init {\n        status = State.Ready\n        stream = parent.stream\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/ReaderChapter.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.model\n\nimport eu.kanade.domain.chapter.model.toDbChapter\nimport eu.kanade.tachiyomi.data.database.models.Chapter\nimport eu.kanade.tachiyomi.ui.reader.loader.PageLoader\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport tachiyomi.core.common.util.system.logcat\n\ndata class ReaderChapter(val chapter: Chapter) {\n\n    val stateFlow = MutableStateFlow<State>(State.Wait)\n    var state: State\n        get() = stateFlow.value\n        set(value) {\n            stateFlow.value = value\n        }\n\n    val pages: List<ReaderPage>?\n        get() = (state as? State.Loaded)?.pages\n\n    var pageLoader: PageLoader? = null\n\n    var requestedPage: Int = 0\n\n    private var references = 0\n\n    constructor(chapter: tachiyomi.domain.chapter.model.Chapter) : this(chapter.toDbChapter())\n\n    fun ref() {\n        references++\n    }\n\n    fun unref() {\n        references--\n        if (references == 0) {\n            if (pageLoader != null) {\n                logcat { \"Recycling chapter ${chapter.name}\" }\n            }\n            pageLoader?.recycle()\n            pageLoader = null\n            state = State.Wait\n        }\n    }\n\n    sealed interface State {\n        data object Wait : State\n        data object Loading : State\n        data class Error(val error: Throwable) : State\n        data class Loaded(val pages: List<ReaderPage>) : State\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/ReaderPage.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.model\n\nimport eu.kanade.tachiyomi.source.model.Page\nimport java.io.InputStream\n\nopen class ReaderPage(\n    index: Int,\n    url: String = \"\",\n    imageUrl: String? = null,\n    var stream: (() -> InputStream)? = null,\n) : Page(index, url, imageUrl, null) {\n\n    open lateinit var chapter: ReaderChapter\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/ViewerChapters.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.model\n\ndata class ViewerChapters(\n    val currChapter: ReaderChapter,\n    val prevChapter: ReaderChapter?,\n    val nextChapter: ReaderChapter?,\n) {\n\n    fun ref() {\n        currChapter.ref()\n        prevChapter?.ref()\n        nextChapter?.ref()\n    }\n\n    fun unref() {\n        currChapter.unref()\n        prevChapter?.unref()\n        nextChapter?.unref()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderOrientation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.setting\n\nimport android.content.pm.ActivityInfo\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.ScreenLockLandscape\nimport androidx.compose.material.icons.filled.ScreenLockPortrait\nimport androidx.compose.material.icons.filled.ScreenRotation\nimport androidx.compose.material.icons.filled.StayCurrentLandscape\nimport androidx.compose.material.icons.filled.StayCurrentPortrait\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.i18n.MR\n\nenum class ReaderOrientation(\n    val flag: Int,\n    val stringRes: StringResource,\n    val icon: ImageVector,\n    val flagValue: Int,\n) {\n    DEFAULT(\n        ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,\n        MR.strings.label_default,\n        Icons.Default.ScreenRotation,\n        0x00000000,\n    ),\n    FREE(\n        ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,\n        MR.strings.rotation_free,\n        Icons.Default.ScreenRotation,\n        0x00000008,\n    ),\n    PORTRAIT(\n        ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT,\n        MR.strings.rotation_portrait,\n        Icons.Default.StayCurrentPortrait,\n        0x00000010,\n    ),\n    LANDSCAPE(\n        ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE,\n        MR.strings.rotation_landscape,\n        Icons.Default.StayCurrentLandscape,\n        0x00000018,\n    ),\n    LOCKED_PORTRAIT(\n        ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,\n        MR.strings.rotation_force_portrait,\n        Icons.Default.ScreenLockPortrait,\n        0x00000020,\n    ),\n    LOCKED_LANDSCAPE(\n        ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE,\n        MR.strings.rotation_force_landscape,\n        Icons.Default.ScreenLockLandscape,\n        0x00000028,\n    ),\n    REVERSE_PORTRAIT(\n        ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT,\n        MR.strings.rotation_reverse_portrait,\n        Icons.Default.StayCurrentPortrait,\n        0x00000030,\n    ),\n    ;\n\n    companion object {\n        const val MASK = 0x00000038\n\n        fun fromPreference(preference: Int?): ReaderOrientation = entries.find { it.flagValue == preference } ?: DEFAULT\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.setting\n\nimport android.os.Build\nimport androidx.compose.ui.graphics.BlendMode\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.getEnum\nimport tachiyomi.i18n.MR\n\nclass ReaderPreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    // region General\n\n    val pageTransitions: Preference<Boolean> = preferenceStore.getBoolean(\"pref_enable_transitions_key\", true)\n\n    val flashOnPageChange: Preference<Boolean> = preferenceStore.getBoolean(\"pref_reader_flash\", false)\n\n    val flashDurationMillis: Preference<Int> = preferenceStore.getInt(\"pref_reader_flash_duration\", MILLI_CONVERSION)\n\n    val flashPageInterval: Preference<Int> = preferenceStore.getInt(\"pref_reader_flash_interval\", 1)\n\n    val flashColor: Preference<FlashColor> = preferenceStore.getEnum(\"pref_reader_flash_mode\", FlashColor.BLACK)\n\n    val doubleTapAnimSpeed: Preference<Int> = preferenceStore.getInt(\"pref_double_tap_anim_speed\", 500)\n\n    val showPageNumber: Preference<Boolean> = preferenceStore.getBoolean(\"pref_show_page_number_key\", true)\n\n    val showReadingMode: Preference<Boolean> = preferenceStore.getBoolean(\"pref_show_reading_mode\", true)\n\n    val fullscreen: Preference<Boolean> = preferenceStore.getBoolean(\"fullscreen\", true)\n\n    val drawUnderCutout: Preference<Boolean> = preferenceStore.getBoolean(\"cutout_short\", true)\n\n    val keepScreenOn: Preference<Boolean> = preferenceStore.getBoolean(\"pref_keep_screen_on_key\", false)\n\n    val defaultReadingMode: Preference<Int> = preferenceStore.getInt(\n        \"pref_default_reading_mode_key\",\n        ReadingMode.RIGHT_TO_LEFT.flagValue,\n    )\n\n    val defaultOrientationType: Preference<Int> = preferenceStore.getInt(\n        \"pref_default_orientation_type_key\",\n        ReaderOrientation.FREE.flagValue,\n    )\n\n    val webtoonDoubleTapZoomEnabled: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_enable_double_tap_zoom_webtoon\",\n        true,\n    )\n\n    val imageScaleType: Preference<Int> = preferenceStore.getInt(\"pref_image_scale_type_key\", 1)\n\n    val zoomStart: Preference<Int> = preferenceStore.getInt(\"pref_zoom_start_key\", 1)\n\n    val readerTheme: Preference<Int> = preferenceStore.getInt(\"pref_reader_theme_key\", 1)\n\n    val alwaysShowChapterTransition: Preference<Boolean> = preferenceStore.getBoolean(\n        \"always_show_chapter_transition\",\n        true,\n    )\n\n    val cropBorders: Preference<Boolean> = preferenceStore.getBoolean(\"crop_borders\", false)\n\n    val navigateToPan: Preference<Boolean> = preferenceStore.getBoolean(\"navigate_pan\", true)\n\n    val landscapeZoom: Preference<Boolean> = preferenceStore.getBoolean(\"landscape_zoom\", true)\n\n    val cropBordersWebtoon: Preference<Boolean> = preferenceStore.getBoolean(\"crop_borders_webtoon\", false)\n\n    val webtoonSidePadding: Preference<Int> = preferenceStore.getInt(\"webtoon_side_padding\", WEBTOON_PADDING_MIN)\n\n    val readerHideThreshold: Preference<ReaderHideThreshold> = preferenceStore.getEnum(\n        \"reader_hide_threshold\",\n        ReaderHideThreshold.LOW,\n    )\n\n    val folderPerManga: Preference<Boolean> = preferenceStore.getBoolean(\"create_folder_per_manga\", false)\n\n    val skipRead: Preference<Boolean> = preferenceStore.getBoolean(\"skip_read\", false)\n\n    val skipFiltered: Preference<Boolean> = preferenceStore.getBoolean(\"skip_filtered\", true)\n\n    val skipDupe: Preference<Boolean> = preferenceStore.getBoolean(\"skip_dupe\", false)\n\n    val webtoonDisableZoomOut: Preference<Boolean> = preferenceStore.getBoolean(\"webtoon_disable_zoom_out\", false)\n\n    // endregion\n\n    // region Split two-page spread\n\n    val dualPageSplitPaged: Preference<Boolean> = preferenceStore.getBoolean(\"pref_dual_page_split\", false)\n\n    val dualPageInvertPaged: Preference<Boolean> = preferenceStore.getBoolean(\"pref_dual_page_invert\", false)\n\n    val dualPageSplitWebtoon: Preference<Boolean> = preferenceStore.getBoolean(\"pref_dual_page_split_webtoon\", false)\n\n    val dualPageInvertWebtoon: Preference<Boolean> = preferenceStore.getBoolean(\"pref_dual_page_invert_webtoon\", false)\n\n    val dualPageRotateToFit: Preference<Boolean> = preferenceStore.getBoolean(\"pref_dual_page_rotate\", false)\n\n    val dualPageRotateToFitInvert: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_dual_page_rotate_invert\",\n        false,\n    )\n\n    val dualPageRotateToFitWebtoon: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_dual_page_rotate_webtoon\",\n        false,\n    )\n\n    val dualPageRotateToFitInvertWebtoon: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_dual_page_rotate_invert_webtoon\",\n        false,\n    )\n\n    // endregion\n\n    // region Color filter\n\n    val customBrightness: Preference<Boolean> = preferenceStore.getBoolean(\"pref_custom_brightness_key\", false)\n\n    val customBrightnessValue: Preference<Int> = preferenceStore.getInt(\"custom_brightness_value\", 0)\n\n    val colorFilter: Preference<Boolean> = preferenceStore.getBoolean(\"pref_color_filter_key\", false)\n\n    val colorFilterValue: Preference<Int> = preferenceStore.getInt(\"color_filter_value\", 0)\n\n    val colorFilterMode: Preference<Int> = preferenceStore.getInt(\"color_filter_mode\", 0)\n\n    val grayscale: Preference<Boolean> = preferenceStore.getBoolean(\"pref_grayscale\", false)\n\n    val invertedColors: Preference<Boolean> = preferenceStore.getBoolean(\"pref_inverted_colors\", false)\n\n    // endregion\n\n    // region Controls\n\n    val readWithLongTap: Preference<Boolean> = preferenceStore.getBoolean(\"reader_long_tap\", true)\n\n    val readWithVolumeKeys: Preference<Boolean> = preferenceStore.getBoolean(\"reader_volume_keys\", false)\n\n    val readWithVolumeKeysInverted: Preference<Boolean> = preferenceStore.getBoolean(\n        \"reader_volume_keys_inverted\",\n        false,\n    )\n\n    val navigationModePager: Preference<Int> = preferenceStore.getInt(\"reader_navigation_mode_pager\", 0)\n\n    val navigationModeWebtoon: Preference<Int> = preferenceStore.getInt(\"reader_navigation_mode_webtoon\", 0)\n\n    val pagerNavInverted: Preference<TappingInvertMode> = preferenceStore.getEnum(\n        \"reader_tapping_inverted\",\n        TappingInvertMode.NONE,\n    )\n\n    val webtoonNavInverted: Preference<TappingInvertMode> = preferenceStore.getEnum(\n        \"reader_tapping_inverted_webtoon\",\n        TappingInvertMode.NONE,\n    )\n\n    val showNavigationOverlayNewUser: Preference<Boolean> = preferenceStore.getBoolean(\n        \"reader_navigation_overlay_new_user\",\n        true,\n    )\n\n    val showNavigationOverlayOnStart: Preference<Boolean> = preferenceStore.getBoolean(\n        \"reader_navigation_overlay_on_start\",\n        false,\n    )\n\n    // endregion\n\n    enum class FlashColor {\n        BLACK,\n        WHITE,\n        WHITE_BLACK,\n    }\n\n    enum class TappingInvertMode(\n        val titleRes: StringResource,\n        val shouldInvertHorizontal: Boolean = false,\n        val shouldInvertVertical: Boolean = false,\n    ) {\n        NONE(MR.strings.tapping_inverted_none),\n        HORIZONTAL(MR.strings.tapping_inverted_horizontal, shouldInvertHorizontal = true),\n        VERTICAL(MR.strings.tapping_inverted_vertical, shouldInvertVertical = true),\n        BOTH(MR.strings.tapping_inverted_both, shouldInvertHorizontal = true, shouldInvertVertical = true),\n    }\n\n    enum class ReaderHideThreshold(val threshold: Int) {\n        HIGHEST(5),\n        HIGH(13),\n        LOW(31),\n        LOWEST(47),\n    }\n\n    companion object {\n        const val WEBTOON_PADDING_MIN = 0\n        const val WEBTOON_PADDING_MAX = 25\n\n        const val MILLI_CONVERSION = 100\n\n        val TapZones = listOf(\n            MR.strings.label_default,\n            MR.strings.l_nav,\n            MR.strings.kindlish_nav,\n            MR.strings.edge_nav,\n            MR.strings.right_and_left_nav,\n            MR.strings.disabled_nav,\n        )\n\n        val ImageScaleType = listOf(\n            MR.strings.scale_type_fit_screen,\n            MR.strings.scale_type_stretch,\n            MR.strings.scale_type_fit_width,\n            MR.strings.scale_type_fit_height,\n            MR.strings.scale_type_original_size,\n            MR.strings.scale_type_smart_fit,\n        )\n\n        val ZoomStart = listOf(\n            MR.strings.zoom_start_automatic,\n            MR.strings.zoom_start_left,\n            MR.strings.zoom_start_right,\n            MR.strings.zoom_start_center,\n        )\n\n        val ColorFilterMode = buildList {\n            addAll(\n                listOf(\n                    MR.strings.label_default to BlendMode.SrcOver,\n                    MR.strings.filter_mode_multiply to BlendMode.Modulate,\n                    MR.strings.filter_mode_screen to BlendMode.Screen,\n                ),\n            )\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {\n                addAll(\n                    listOf(\n                        MR.strings.filter_mode_overlay to BlendMode.Overlay,\n                        MR.strings.filter_mode_lighten to BlendMode.Lighten,\n                        MR.strings.filter_mode_darken to BlendMode.Darken,\n                    ),\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderSettingsScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.setting\n\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport eu.kanade.presentation.util.ioCoroutineScope\nimport eu.kanade.tachiyomi.ui.reader.ReaderViewModel\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.StateFlow\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.stateIn\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass ReaderSettingsScreenModel(\n    readerState: StateFlow<ReaderViewModel.State>,\n    val onChangeReadingMode: (ReadingMode) -> Unit,\n    val onChangeOrientation: (ReaderOrientation) -> Unit,\n    val preferences: ReaderPreferences = Injekt.get(),\n) : ScreenModel {\n\n    val viewerFlow = readerState\n        .map { it.viewer }\n        .distinctUntilChanged()\n        .stateIn(ioCoroutineScope, SharingStarted.Lazily, null)\n\n    val mangaFlow = readerState\n        .map { it.manga }\n        .distinctUntilChanged()\n        .stateIn(ioCoroutineScope, SharingStarted.Lazily, null)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingMode.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.setting\n\nimport androidx.annotation.DrawableRes\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport eu.kanade.tachiyomi.ui.reader.viewer.Viewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.pager.L2RPagerViewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.pager.R2LPagerViewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.pager.VerticalPagerViewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer\nimport tachiyomi.i18n.MR\n\nenum class ReadingMode(\n    val stringRes: StringResource,\n    @DrawableRes val iconRes: Int,\n    val flagValue: Int,\n    val direction: Direction? = null,\n    val type: ViewerType? = null,\n) {\n    DEFAULT(MR.strings.label_default, R.drawable.ic_reader_default_24dp, 0x00000000),\n    LEFT_TO_RIGHT(\n        MR.strings.left_to_right_viewer,\n        R.drawable.ic_reader_ltr_24dp,\n        0x00000001,\n        Direction.Horizontal,\n        ViewerType.Pager,\n    ),\n    RIGHT_TO_LEFT(\n        MR.strings.right_to_left_viewer,\n        R.drawable.ic_reader_rtl_24dp,\n        0x00000002,\n        Direction.Horizontal,\n        ViewerType.Pager,\n    ),\n    VERTICAL(\n        MR.strings.vertical_viewer,\n        R.drawable.ic_reader_vertical_24dp,\n        0x00000003,\n        Direction.Vertical,\n        ViewerType.Pager,\n    ),\n    WEBTOON(\n        MR.strings.webtoon_viewer,\n        R.drawable.ic_reader_webtoon_24dp,\n        0x00000004,\n        Direction.Vertical,\n        ViewerType.Webtoon,\n    ),\n    CONTINUOUS_VERTICAL(\n        MR.strings.vertical_plus_viewer,\n        R.drawable.ic_reader_continuous_vertical_24dp,\n        0x00000005,\n        Direction.Vertical,\n        ViewerType.Webtoon,\n    ),\n    ;\n\n    companion object {\n        const val MASK = 0x00000007\n\n        fun fromPreference(preference: Int?): ReadingMode = entries.find { it.flagValue == preference } ?: DEFAULT\n\n        fun isPagerType(preference: Int): Boolean {\n            val mode = fromPreference(preference)\n            return mode.type is ViewerType.Pager\n        }\n\n        fun toViewer(preference: Int?, activity: ReaderActivity): Viewer {\n            return when (fromPreference(preference)) {\n                LEFT_TO_RIGHT -> L2RPagerViewer(activity)\n                RIGHT_TO_LEFT -> R2LPagerViewer(activity)\n                VERTICAL -> VerticalPagerViewer(activity)\n                WEBTOON -> WebtoonViewer(activity)\n                CONTINUOUS_VERTICAL -> WebtoonViewer(activity, isContinuous = false)\n                DEFAULT -> throw IllegalStateException(\"Preference value must be resolved: $preference\")\n            }\n        }\n    }\n\n    sealed interface Direction {\n        data object Horizontal : Direction\n        data object Vertical : Direction\n    }\n\n    sealed interface ViewerType {\n        data object Pager : ViewerType\n        data object Webtoon : ViewerType\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/GestureDetectorWithLongTap.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.content.Context\nimport android.os.Handler\nimport android.os.Looper\nimport android.view.GestureDetector\nimport android.view.MotionEvent\nimport android.view.ViewConfiguration\nimport kotlin.math.abs\n\n/**\n * A custom gesture detector that also implements an on long tap confirmed, because the built-in\n * one conflicts with the quick scale feature.\n */\nopen class GestureDetectorWithLongTap(\n    context: Context,\n    listener: Listener,\n) : GestureDetector(context, listener) {\n\n    private val handler = Handler(Looper.getMainLooper())\n    private val slop = ViewConfiguration.get(context).scaledTouchSlop\n    private val longTapTime = ViewConfiguration.getLongPressTimeout().toLong()\n    private val doubleTapTime = ViewConfiguration.getDoubleTapTimeout().toLong()\n\n    private var downX = 0f\n    private var downY = 0f\n    private var lastUp = 0L\n    private var lastDownEvent: MotionEvent? = null\n\n    /**\n     * Runnable to execute when a long tap is confirmed.\n     */\n    private val longTapFn = Runnable { listener.onLongTapConfirmed(lastDownEvent!!) }\n\n    override fun onTouchEvent(ev: MotionEvent): Boolean {\n        when (ev.actionMasked) {\n            MotionEvent.ACTION_DOWN -> {\n                lastDownEvent?.recycle()\n                lastDownEvent = MotionEvent.obtain(ev)\n\n                // This is the key difference with the built-in detector. We have to ignore the\n                // event if the last up and current down are too close in time (double tap).\n                if (ev.downTime - lastUp > doubleTapTime) {\n                    downX = ev.x\n                    downY = ev.y\n                    handler.postDelayed(longTapFn, longTapTime)\n                }\n            }\n            MotionEvent.ACTION_MOVE -> {\n                if (abs(ev.x - downX) > slop || abs(ev.y - downY) > slop) {\n                    handler.removeCallbacks(longTapFn)\n                }\n            }\n            MotionEvent.ACTION_UP -> {\n                lastUp = ev.eventTime\n                handler.removeCallbacks(longTapFn)\n            }\n            MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_POINTER_DOWN -> {\n                handler.removeCallbacks(longTapFn)\n            }\n        }\n        return super.onTouchEvent(ev)\n    }\n\n    /**\n     * Custom listener to also include a long tap confirmed\n     */\n    open class Listener : SimpleOnGestureListener() {\n        /**\n         * Notified when a long tap occurs with the initial on down [ev] that triggered it.\n         */\n        open fun onLongTapConfirmed(ev: MotionEvent) {\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/MissingChapters.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport eu.kanade.tachiyomi.data.database.models.toDomainChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport tachiyomi.domain.chapter.service.calculateChapterGap as domainCalculateChapterGap\n\nfun calculateChapterGap(higherReaderChapter: ReaderChapter?, lowerReaderChapter: ReaderChapter?): Int {\n    return domainCalculateChapterGap(\n        higherReaderChapter?.chapter?.toDomainChapter(),\n        lowerReaderChapter?.chapter?.toDomainChapter(),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderButton.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.view.MotionEvent\nimport com.google.android.material.button.MaterialButton\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerViewer\n\n/**\n * A button class to be used by child views of the pager viewer. All tap gestures are handled by\n * the pager, but this class disables that behavior to allow clickable buttons.\n */\nclass ReaderButton @JvmOverloads constructor(\n    context: Context,\n    attrs: AttributeSet? = null,\n    defStyleAttr: Int = R.attr.materialButtonStyle,\n) : MaterialButton(context, attrs, defStyleAttr) {\n\n    var viewer: PagerViewer? = null\n\n    override fun onTouchEvent(event: MotionEvent): Boolean {\n        viewer?.pager?.setGestureDetectorEnabled(false)\n        if (event.actionMasked == MotionEvent.ACTION_UP) {\n            viewer?.pager?.setGestureDetectorEnabled(true)\n        }\n        return super.onTouchEvent(event)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.content.Context\nimport android.graphics.PointF\nimport android.graphics.RectF\nimport android.graphics.drawable.Animatable\nimport android.graphics.drawable.BitmapDrawable\nimport android.graphics.drawable.Drawable\nimport android.util.AttributeSet\nimport android.view.GestureDetector\nimport android.view.MotionEvent\nimport android.view.View\nimport android.view.ViewGroup.LayoutParams.MATCH_PARENT\nimport android.widget.FrameLayout\nimport androidx.annotation.AttrRes\nimport androidx.annotation.CallSuper\nimport androidx.annotation.StyleRes\nimport androidx.appcompat.widget.AppCompatImageView\nimport androidx.core.os.postDelayed\nimport androidx.core.view.isVisible\nimport coil3.BitmapImage\nimport coil3.asDrawable\nimport coil3.dispose\nimport coil3.imageLoader\nimport coil3.request.CachePolicy\nimport coil3.request.ImageRequest\nimport coil3.request.crossfade\nimport coil3.size.Precision\nimport coil3.size.ViewSizeResolver\nimport com.davemorrissey.labs.subscaleview.ImageSource\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.EASE_IN_OUT_QUAD\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.EASE_OUT_QUAD\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE\nimport com.github.chrisbanes.photoview.PhotoView\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.data.coil.cropBorders\nimport eu.kanade.tachiyomi.data.coil.customDecoder\nimport eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonSubsamplingImageView\nimport eu.kanade.tachiyomi.util.system.animatorDurationScale\nimport eu.kanade.tachiyomi.util.view.isVisibleOnScreen\nimport okio.BufferedSource\nimport tachiyomi.core.common.util.system.ImageUtil\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * A wrapper view for showing page image.\n *\n * Animated image will be drawn by [PhotoView] while [SubsamplingScaleImageView] will take non-animated image.\n *\n * @param isWebtoon if true, [WebtoonSubsamplingImageView] will be used instead of [SubsamplingScaleImageView]\n * and [AppCompatImageView] will be used instead of [PhotoView]\n */\nopen class ReaderPageImageView @JvmOverloads constructor(\n    context: Context,\n    attrs: AttributeSet? = null,\n    @AttrRes defStyleAttrs: Int = 0,\n    @StyleRes defStyleRes: Int = 0,\n    private val isWebtoon: Boolean = false,\n) : FrameLayout(context, attrs, defStyleAttrs, defStyleRes) {\n\n    private val alwaysDecodeLongStripWithSSIV by lazy {\n        Injekt.get<BasePreferences>().alwaysDecodeLongStripWithSSIV.get()\n    }\n\n    private var pageView: View? = null\n\n    private var config: Config? = null\n\n    var onImageLoaded: (() -> Unit)? = null\n    var onImageLoadError: ((Throwable?) -> Unit)? = null\n    var onScaleChanged: ((newScale: Float) -> Unit)? = null\n    var onViewClicked: (() -> Unit)? = null\n\n    /**\n     * For automatic background. Will be set as background color when [onImageLoaded] is called.\n     */\n    var pageBackground: Drawable? = null\n\n    @CallSuper\n    open fun onImageLoaded() {\n        onImageLoaded?.invoke()\n        background = pageBackground\n    }\n\n    @CallSuper\n    open fun onImageLoadError(error: Throwable?) {\n        onImageLoadError?.invoke(error)\n    }\n\n    @CallSuper\n    open fun onScaleChanged(newScale: Float) {\n        onScaleChanged?.invoke(newScale)\n    }\n\n    @CallSuper\n    open fun onViewClicked() {\n        onViewClicked?.invoke()\n    }\n\n    open fun onPageSelected(forward: Boolean) {\n        with(pageView as? SubsamplingScaleImageView) {\n            if (this == null) return\n            if (isReady) {\n                landscapeZoom(forward)\n            } else {\n                setOnImageEventListener(\n                    object : SubsamplingScaleImageView.DefaultOnImageEventListener() {\n                        override fun onReady() {\n                            setupZoom(config)\n                            landscapeZoom(forward)\n                            this@ReaderPageImageView.onImageLoaded()\n                        }\n\n                        override fun onImageLoadError(e: Exception) {\n                            onImageLoadError(e)\n                        }\n                    },\n                )\n            }\n        }\n    }\n\n    private fun SubsamplingScaleImageView.landscapeZoom(forward: Boolean) {\n        if (\n            config != null &&\n            config!!.landscapeZoom &&\n            config!!.minimumScaleType == SCALE_TYPE_CENTER_INSIDE &&\n            sWidth > sHeight &&\n            scale == minScale\n        ) {\n            handler?.postDelayed(500) {\n                val point = when (config!!.zoomStartPosition) {\n                    ZoomStartPosition.LEFT -> if (forward) PointF(0F, 0F) else PointF(sWidth.toFloat(), 0F)\n                    ZoomStartPosition.RIGHT -> if (forward) PointF(sWidth.toFloat(), 0F) else PointF(0F, 0F)\n                    ZoomStartPosition.CENTER -> center\n                }\n\n                val targetScale = height.toFloat() / sHeight.toFloat()\n                animateScaleAndCenter(targetScale, point)!!\n                    .withDuration(500)\n                    .withEasing(EASE_IN_OUT_QUAD)\n                    .withInterruptible(true)\n                    .start()\n            }\n        }\n    }\n\n    fun setImage(drawable: Drawable, config: Config) {\n        this.config = config\n        if (drawable is Animatable) {\n            prepareAnimatedImageView()\n            setAnimatedImage(drawable, config)\n        } else {\n            prepareNonAnimatedImageView()\n            setNonAnimatedImage(drawable, config)\n        }\n    }\n\n    fun setImage(source: BufferedSource, isAnimated: Boolean, config: Config) {\n        this.config = config\n        if (isAnimated) {\n            prepareAnimatedImageView()\n            setAnimatedImage(source, config)\n        } else {\n            prepareNonAnimatedImageView()\n            setNonAnimatedImage(source, config)\n        }\n    }\n\n    fun recycle() = pageView?.let {\n        when (it) {\n            is SubsamplingScaleImageView -> it.recycle()\n            is AppCompatImageView -> it.dispose()\n        }\n        it.isVisible = false\n    }\n\n    /**\n     * Check if the image can be panned to the left\n     */\n    fun canPanLeft(): Boolean = canPan { it.left }\n\n    /**\n     * Check if the image can be panned to the right\n     */\n    fun canPanRight(): Boolean = canPan { it.right }\n\n    /**\n     * Check whether the image can be panned.\n     * @param fn a function that returns the direction to check for\n     */\n    private fun canPan(fn: (RectF) -> Float): Boolean {\n        (pageView as? SubsamplingScaleImageView)?.let { view ->\n            RectF().let {\n                view.getPanRemaining(it)\n                return fn(it) > 1\n            }\n        }\n        return false\n    }\n\n    /**\n     * Pans the image to the left by a screen's width worth.\n     */\n    fun panLeft() {\n        pan { center, view -> center.also { it.x -= view.width / view.scale } }\n    }\n\n    /**\n     * Pans the image to the right by a screen's width worth.\n     */\n    fun panRight() {\n        pan { center, view -> center.also { it.x += view.width / view.scale } }\n    }\n\n    /**\n     * Pans the image.\n     * @param fn a function that computes the new center of the image\n     */\n    private fun pan(fn: (PointF, SubsamplingScaleImageView) -> PointF) {\n        (pageView as? SubsamplingScaleImageView)?.let { view ->\n\n            val target = fn(view.center ?: return, view)\n            view.animateCenter(target)!!\n                .withEasing(EASE_OUT_QUAD)\n                .withDuration(250)\n                .withInterruptible(true)\n                .start()\n        }\n    }\n\n    private fun prepareNonAnimatedImageView() {\n        if (pageView is SubsamplingScaleImageView) return\n        removeView(pageView)\n\n        pageView = if (isWebtoon) {\n            WebtoonSubsamplingImageView(context)\n        } else {\n            SubsamplingScaleImageView(context)\n        }.apply {\n            setMaxTileSize(ImageUtil.hardwareBitmapThreshold)\n            setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_CENTER)\n            setPanLimit(SubsamplingScaleImageView.PAN_LIMIT_INSIDE)\n            setMinimumTileDpi(180)\n            setOnStateChangedListener(\n                object : SubsamplingScaleImageView.OnStateChangedListener {\n                    override fun onScaleChanged(newScale: Float, origin: Int) {\n                        this@ReaderPageImageView.onScaleChanged(newScale)\n                    }\n\n                    override fun onCenterChanged(newCenter: PointF?, origin: Int) {\n                        // Not used\n                    }\n                },\n            )\n            setOnClickListener { this@ReaderPageImageView.onViewClicked() }\n        }\n        addView(pageView, MATCH_PARENT, MATCH_PARENT)\n    }\n\n    private fun SubsamplingScaleImageView.setupZoom(config: Config?) {\n        // 5x zoom\n        maxScale = scale * MAX_ZOOM_SCALE\n        setDoubleTapZoomScale(scale * 2)\n\n        when (config?.zoomStartPosition) {\n            ZoomStartPosition.LEFT -> setScaleAndCenter(scale, PointF(0F, 0F))\n            ZoomStartPosition.RIGHT -> setScaleAndCenter(scale, PointF(sWidth.toFloat(), 0F))\n            ZoomStartPosition.CENTER -> setScaleAndCenter(scale, center)\n            null -> {}\n        }\n    }\n\n    private fun setNonAnimatedImage(\n        data: Any,\n        config: Config,\n    ) = (pageView as? SubsamplingScaleImageView)?.apply {\n        setDoubleTapZoomDuration(config.zoomDuration.getSystemScaledDuration())\n        setMinimumScaleType(config.minimumScaleType)\n        setMinimumDpi(1) // Just so that very small image will be fit for initial load\n        setCropBorders(config.cropBorders)\n        setOnImageEventListener(\n            object : SubsamplingScaleImageView.DefaultOnImageEventListener() {\n                override fun onReady() {\n                    setupZoom(config)\n                    if (isVisibleOnScreen()) landscapeZoom(true)\n                    this@ReaderPageImageView.onImageLoaded()\n                }\n\n                override fun onImageLoadError(e: Exception) {\n                    this@ReaderPageImageView.onImageLoadError(e)\n                }\n            },\n        )\n\n        when (data) {\n            is BitmapDrawable -> {\n                setImage(ImageSource.bitmap(data.bitmap))\n                isVisible = true\n            }\n            is BufferedSource -> {\n                if (!isWebtoon || alwaysDecodeLongStripWithSSIV) {\n                    setHardwareConfig(ImageUtil.canUseHardwareBitmap(data))\n                    setImage(ImageSource.inputStream(data.inputStream()))\n                    isVisible = true\n                    return@apply\n                }\n\n                ImageRequest.Builder(context)\n                    .data(data)\n                    .memoryCachePolicy(CachePolicy.DISABLED)\n                    .diskCachePolicy(CachePolicy.DISABLED)\n                    .target(\n                        onSuccess = { result ->\n                            val image = result as BitmapImage\n                            setImage(ImageSource.bitmap(image.bitmap))\n                            isVisible = true\n                        },\n                    )\n                    .listener(\n                        onError = { _, result ->\n                            onImageLoadError(result.throwable)\n                        },\n                    )\n                    .size(ViewSizeResolver(this@ReaderPageImageView))\n                    .precision(Precision.INEXACT)\n                    .cropBorders(config.cropBorders)\n                    .customDecoder(true)\n                    .crossfade(false)\n                    .build()\n                    .let(context.imageLoader::enqueue)\n            }\n            else -> {\n                throw IllegalArgumentException(\"Not implemented for class ${data::class.simpleName}\")\n            }\n        }\n    }\n\n    private fun prepareAnimatedImageView() {\n        if (pageView is AppCompatImageView) return\n        removeView(pageView)\n\n        pageView = if (isWebtoon) {\n            AppCompatImageView(context)\n        } else {\n            PhotoView(context)\n        }.apply {\n            adjustViewBounds = true\n\n            if (this is PhotoView) {\n                setScaleLevels(1F, 2F, MAX_ZOOM_SCALE)\n                // Force 2 scale levels on double tap\n                setOnDoubleTapListener(\n                    object : GestureDetector.SimpleOnGestureListener() {\n                        override fun onDoubleTap(e: MotionEvent): Boolean {\n                            if (scale > 1F) {\n                                setScale(1F, e.x, e.y, true)\n                            } else {\n                                setScale(2F, e.x, e.y, true)\n                            }\n                            return true\n                        }\n\n                        override fun onSingleTapConfirmed(e: MotionEvent): Boolean {\n                            this@ReaderPageImageView.onViewClicked()\n                            return super.onSingleTapConfirmed(e)\n                        }\n                    },\n                )\n                setOnScaleChangeListener { _, _, _ ->\n                    this@ReaderPageImageView.onScaleChanged(scale)\n                }\n            }\n        }\n        addView(pageView, MATCH_PARENT, MATCH_PARENT)\n    }\n\n    private fun setAnimatedImage(\n        data: Any,\n        config: Config,\n    ) = (pageView as? AppCompatImageView)?.apply {\n        if (this is PhotoView) {\n            setZoomTransitionDuration(config.zoomDuration.getSystemScaledDuration())\n        }\n\n        val request = ImageRequest.Builder(context)\n            .data(data)\n            .memoryCachePolicy(CachePolicy.DISABLED)\n            .diskCachePolicy(CachePolicy.DISABLED)\n            .target(\n                onSuccess = { result ->\n                    val drawable = result.asDrawable(context.resources)\n                    setImageDrawable(drawable)\n                    (drawable as? Animatable)?.start()\n                    isVisible = true\n                    this@ReaderPageImageView.onImageLoaded()\n                },\n            )\n            .listener(\n                onError = { _, result ->\n                    onImageLoadError(result.throwable)\n                },\n            )\n            .crossfade(false)\n            .build()\n        context.imageLoader.enqueue(request)\n    }\n\n    private fun Int.getSystemScaledDuration(): Int {\n        return (this * context.animatorDurationScale).toInt().coerceAtLeast(1)\n    }\n\n    /**\n     * All of the config except [zoomDuration] will only be used for non-animated image.\n     */\n    data class Config(\n        val zoomDuration: Int,\n        val minimumScaleType: Int = SCALE_TYPE_CENTER_INSIDE,\n        val cropBorders: Boolean = false,\n        val zoomStartPosition: ZoomStartPosition = ZoomStartPosition.CENTER,\n        val landscapeZoom: Boolean = false,\n    )\n\n    enum class ZoomStartPosition {\n        LEFT,\n        CENTER,\n        RIGHT,\n    }\n}\n\nprivate const val MAX_ZOOM_SCALE = 5F\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderProgressIndicator.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.view.Gravity\nimport android.view.ViewGroup.LayoutParams.WRAP_CONTENT\nimport android.widget.FrameLayout\nimport androidx.annotation.IntRange\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableFloatStateOf\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.AbstractComposeView\nimport androidx.compose.ui.platform.ViewCompositionStrategy\nimport androidx.core.view.isVisible\nimport com.google.android.material.progressindicator.CircularProgressIndicator\nimport eu.kanade.presentation.theme.TachiyomiTheme\nimport tachiyomi.presentation.core.components.CombinedCircularProgressIndicator\n\n/**\n * A wrapper for [CircularProgressIndicator] that always rotates.\n *\n * By always rotating we give the feedback to the user that the application isn't 'stuck'.\n */\nclass ReaderProgressIndicator @JvmOverloads constructor(\n    context: Context,\n    attrs: AttributeSet? = null,\n    defStyleAttr: Int = 0,\n) : AbstractComposeView(context, attrs, defStyleAttr) {\n\n    init {\n        layoutParams = FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT, Gravity.CENTER)\n        setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindowOrReleasedFromPool)\n    }\n\n    private var progress by mutableFloatStateOf(0f)\n\n    @Composable\n    override fun Content() {\n        TachiyomiTheme {\n            CombinedCircularProgressIndicator(progress = { progress })\n        }\n    }\n\n    fun show() {\n        isVisible = true\n    }\n\n    fun hide() {\n        isVisible = false\n    }\n\n    fun setProgress(@IntRange(from = 0, to = 100) progress: Int) {\n        this.progress = progress / 100f\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.platform.AbstractComposeView\nimport eu.kanade.presentation.reader.ChapterTransition\nimport eu.kanade.presentation.theme.TachiyomiTheme\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.source.local.isLocal\n\nclass ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :\n    AbstractComposeView(context, attrs) {\n\n    private var data: Data? by mutableStateOf(null)\n\n    init {\n        layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)\n    }\n\n    fun bind(transition: ChapterTransition, downloadManager: DownloadManager, manga: Manga?) {\n        data = if (manga != null) {\n            Data(\n                transition = transition,\n                currChapterDownloaded = transition.from.pageLoader?.isLocal == true,\n                goingToChapterDownloaded = manga.isLocal() ||\n                    transition.to?.chapter?.let { goingToChapter ->\n                        downloadManager.isChapterDownloaded(\n                            chapterName = goingToChapter.name,\n                            chapterScanlator = goingToChapter.scanlator,\n                            chapterUrl = goingToChapter.url,\n                            mangaTitle = manga.title,\n                            sourceId = manga.source,\n                            skipCache = true,\n                        )\n                    } ?: false,\n            )\n        } else {\n            null\n        }\n    }\n\n    @Composable\n    override fun Content() {\n        data?.let {\n            TachiyomiTheme {\n                CompositionLocalProvider(\n                    LocalTextStyle provides MaterialTheme.typography.bodySmall,\n                    LocalContentColor provides MaterialTheme.colorScheme.onBackground,\n                ) {\n                    ChapterTransition(\n                        transition = it.transition,\n                        currChapterDownloaded = it.currChapterDownloaded,\n                        goingToChapterDownloaded = it.goingToChapterDownloaded,\n                    )\n                }\n            }\n        }\n    }\n\n    private data class Data(\n        val transition: ChapterTransition,\n        val currChapterDownloaded: Boolean,\n        val goingToChapterDownloaded: Boolean,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/Viewer.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.view.KeyEvent\nimport android.view.MotionEvent\nimport android.view.View\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\n\n/**\n * Interface for implementing a viewer.\n */\ninterface Viewer {\n\n    /**\n     * Returns the view this viewer uses.\n     */\n    fun getView(): View\n\n    /**\n     * Destroys this viewer. Called when leaving the reader or swapping viewers.\n     */\n    fun destroy() {}\n\n    /**\n     * Tells this viewer to set the given [chapters] as active.\n     */\n    fun setChapters(chapters: ViewerChapters)\n\n    /**\n     * Tells this viewer to move to the given [page].\n     */\n    fun moveToPage(page: ReaderPage)\n\n    /**\n     * Called from the containing activity when a key [event] is received. It should return true\n     * if the event was handled, false otherwise.\n     */\n    fun handleKeyEvent(event: KeyEvent): Boolean\n\n    /**\n     * Called from the containing activity when a generic motion [event] is received. It should\n     * return true if the event was handled, false otherwise.\n     */\n    fun handleGenericMotionEvent(event: MotionEvent): Boolean\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport tachiyomi.core.common.preference.Preference\n\n/**\n * Common configuration for all viewers.\n */\nabstract class ViewerConfig(readerPreferences: ReaderPreferences, private val scope: CoroutineScope) {\n\n    var imagePropertyChangedListener: (() -> Unit)? = null\n\n    var navigationModeChangedListener: (() -> Unit)? = null\n\n    var tappingInverted = ReaderPreferences.TappingInvertMode.NONE\n    var longTapEnabled = true\n    var usePageTransitions = false\n    var doubleTapAnimDuration = 500\n    var volumeKeysEnabled = false\n    var volumeKeysInverted = false\n    var alwaysShowChapterTransition = true\n    var navigationMode = 0\n        protected set\n\n    var forceNavigationOverlay = false\n\n    var navigationOverlayOnStart = false\n\n    var dualPageSplit = false\n        protected set\n\n    var dualPageInvert = false\n        protected set\n\n    var dualPageRotateToFit = false\n        protected set\n\n    var dualPageRotateToFitInvert = false\n        protected set\n\n    abstract var navigator: ViewerNavigation\n        protected set\n\n    init {\n        readerPreferences.readWithLongTap\n            .register({ longTapEnabled = it })\n\n        readerPreferences.pageTransitions\n            .register({ usePageTransitions = it })\n\n        readerPreferences.doubleTapAnimSpeed\n            .register({ doubleTapAnimDuration = it })\n\n        readerPreferences.readWithVolumeKeys\n            .register({ volumeKeysEnabled = it })\n\n        readerPreferences.readWithVolumeKeysInverted\n            .register({ volumeKeysInverted = it })\n\n        readerPreferences.alwaysShowChapterTransition\n            .register({ alwaysShowChapterTransition = it })\n\n        forceNavigationOverlay = readerPreferences.showNavigationOverlayNewUser.get()\n        if (forceNavigationOverlay) {\n            readerPreferences.showNavigationOverlayNewUser.set(false)\n        }\n\n        readerPreferences.showNavigationOverlayOnStart\n            .register({ navigationOverlayOnStart = it })\n    }\n\n    protected abstract fun defaultNavigation(): ViewerNavigation\n\n    abstract fun updateNavigation(navigationMode: Int)\n\n    fun <T> Preference<T>.register(\n        valueAssignment: (T) -> Unit,\n        onChanged: (T) -> Unit = {},\n    ) {\n        changes()\n            .onEach { valueAssignment(it) }\n            .distinctUntilChanged()\n            .onEach { onChanged(it) }\n            .launchIn(scope)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer\n\nimport android.graphics.Color\nimport android.graphics.PointF\nimport android.graphics.RectF\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.util.lang.invert\nimport tachiyomi.i18n.MR\n\nabstract class ViewerNavigation {\n\n    sealed class NavigationRegion(val nameRes: StringResource, val color: Int) {\n        data object MENU : NavigationRegion(MR.strings.action_menu, Color.argb(0xCC, 0x95, 0x81, 0x8D))\n        data object PREV : NavigationRegion(MR.strings.nav_zone_prev, Color.argb(0xCC, 0xFF, 0x77, 0x33))\n        data object NEXT : NavigationRegion(MR.strings.nav_zone_next, Color.argb(0xCC, 0x84, 0xE2, 0x96))\n        data object LEFT : NavigationRegion(MR.strings.nav_zone_left, Color.argb(0xCC, 0x7D, 0x11, 0x28))\n        data object RIGHT : NavigationRegion(MR.strings.nav_zone_right, Color.argb(0xCC, 0xA6, 0xCF, 0xD5))\n    }\n\n    data class Region(\n        val rectF: RectF,\n        val type: NavigationRegion,\n    ) {\n        fun invert(invertMode: ReaderPreferences.TappingInvertMode): Region {\n            if (invertMode == ReaderPreferences.TappingInvertMode.NONE) return this\n            return this.copy(\n                rectF = this.rectF.invert(invertMode),\n            )\n        }\n    }\n\n    private var constantMenuRegion: RectF = RectF(0f, 0f, 1f, 0.05f)\n\n    var invertMode: ReaderPreferences.TappingInvertMode = ReaderPreferences.TappingInvertMode.NONE\n\n    protected abstract var regionList: List<Region>\n\n    /** Returns regions with applied inversion. */\n    fun getRegions(): List<Region> {\n        return regionList.map { it.invert(invertMode) }\n    }\n\n    fun getAction(pos: PointF): NavigationRegion {\n        val x = pos.x\n        val y = pos.y\n        val region = getRegions().find { it.rectF.contains(x, y) }\n        return when {\n            region != null -> region.type\n            constantMenuRegion.contains(x, y) -> NavigationRegion.MENU\n            else -> NavigationRegion.MENU\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/DisabledNavigation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.navigation\n\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\n\n/**\n * Visualization of default state without any inversion\n * +---+---+---+\n * | M | M | M |   P: Previous\n * +---+---+---+\n * | M | M | M |   M: Menu\n * +---+---+---+\n * | M | M | M |   N: Next\n * +---+---+---+\n*/\nclass DisabledNavigation : ViewerNavigation() {\n\n    override var regionList: List<Region> = emptyList()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.navigation\n\nimport android.graphics.RectF\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\n\n/**\n * Visualization of default state without any inversion\n * +---+---+---+\n * | N | N | N |   P: Previous\n * +---+---+---+\n * | N | M | N |   M: Menu\n * +---+---+---+\n * | N | P | N |   N: Next\n * +---+---+---+\n*/\nclass EdgeNavigation : ViewerNavigation() {\n\n    override var regionList: List<Region> = listOf(\n        Region(\n            rectF = RectF(0f, 0f, 0.33f, 1f),\n            type = NavigationRegion.NEXT,\n        ),\n        Region(\n            rectF = RectF(0.33f, 0.66f, 0.66f, 1f),\n            type = NavigationRegion.PREV,\n        ),\n        Region(\n            rectF = RectF(0.66f, 0f, 1f, 1f),\n            type = NavigationRegion.NEXT,\n        ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.navigation\n\nimport android.graphics.RectF\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\n\n/**\n * Visualization of default state without any inversion\n * +---+---+---+\n * | M | M | M |   P: Previous\n * +---+---+---+\n * | P | N | N |   M: Menu\n * +---+---+---+\n * | P | N | N |   N: Next\n * +---+---+---+\n*/\nclass KindlishNavigation : ViewerNavigation() {\n\n    override var regionList: List<Region> = listOf(\n        Region(\n            rectF = RectF(0.33f, 0.33f, 1f, 1f),\n            type = NavigationRegion.NEXT,\n        ),\n        Region(\n            rectF = RectF(0f, 0.33f, 0.33f, 1f),\n            type = NavigationRegion.PREV,\n        ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.navigation\n\nimport android.graphics.RectF\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\n\n/**\n * Visualization of default state without any inversion\n * +---+---+---+\n * | P | P | P |   P: Previous\n * +---+---+---+\n * | P | M | N |   M: Menu\n * +---+---+---+\n * | N | N | N |   N: Next\n * +---+---+---+\n */\nopen class LNavigation : ViewerNavigation() {\n\n    override var regionList: List<Region> = listOf(\n        Region(\n            rectF = RectF(0f, 0.33f, 0.33f, 0.66f),\n            type = NavigationRegion.PREV,\n        ),\n        Region(\n            rectF = RectF(0f, 0f, 1f, 0.33f),\n            type = NavigationRegion.PREV,\n        ),\n        Region(\n            rectF = RectF(0.66f, 0.33f, 1f, 0.66f),\n            type = NavigationRegion.NEXT,\n        ),\n        Region(\n            rectF = RectF(0f, 0.66f, 1f, 1f),\n            type = NavigationRegion.NEXT,\n        ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.navigation\n\nimport android.graphics.RectF\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\n\n/**\n * Visualization of default state without any inversion\n * +---+---+---+\n * | N | M | P |   P: Move Right\n * +---+---+---+\n * | N | M | P |   M: Menu\n * +---+---+---+\n * | N | M | P |   N: Move Left\n * +---+---+---+\n */\nclass RightAndLeftNavigation : ViewerNavigation() {\n\n    override var regionList: List<Region> = listOf(\n        Region(\n            rectF = RectF(0f, 0f, 0.33f, 1f),\n            type = NavigationRegion.LEFT,\n        ),\n        Region(\n            rectF = RectF(0.66f, 0f, 1f, 1f),\n            type = NavigationRegion.RIGHT,\n        ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/Pager.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport android.content.Context\nimport android.view.HapticFeedbackConstants\nimport android.view.KeyEvent\nimport android.view.MotionEvent\nimport androidx.viewpager.widget.DirectionalViewPager\nimport eu.kanade.tachiyomi.ui.reader.viewer.GestureDetectorWithLongTap\n\n/**\n * Pager implementation that listens for tap and long tap and allows temporarily disabling touch\n * events in order to work with child views that need to disable touch events on this parent. The\n * pager can also be declared to be vertical by creating it with [isHorizontal] to false.\n */\nopen class Pager(\n    context: Context,\n    isHorizontal: Boolean = true,\n) : DirectionalViewPager(context, isHorizontal) {\n\n    /**\n     * Tap listener function to execute when a tap is detected.\n     */\n    var tapListener: ((MotionEvent) -> Unit)? = null\n\n    /**\n     * Long tap listener function to execute when a long tap is detected.\n     */\n    var longTapListener: ((MotionEvent) -> Boolean)? = null\n\n    /**\n     * Gesture listener that implements tap and long tap events.\n     */\n    private val gestureListener = object : GestureDetectorWithLongTap.Listener() {\n        override fun onSingleTapConfirmed(ev: MotionEvent): Boolean {\n            tapListener?.invoke(ev)\n            return true\n        }\n\n        override fun onLongTapConfirmed(ev: MotionEvent) {\n            val listener = longTapListener\n            if (listener != null && listener.invoke(ev)) {\n                performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)\n            }\n        }\n    }\n\n    /**\n     * Gesture detector which handles motion events.\n     */\n    private val gestureDetector = GestureDetectorWithLongTap(context, gestureListener)\n\n    /**\n     * Whether the gesture detector is currently enabled.\n     */\n    private var isGestureDetectorEnabled = true\n\n    /**\n     * Dispatches a touch event.\n     */\n    override fun dispatchTouchEvent(ev: MotionEvent): Boolean {\n        val handled = super.dispatchTouchEvent(ev)\n        if (isGestureDetectorEnabled) {\n            gestureDetector.onTouchEvent(ev)\n        }\n        return handled\n    }\n\n    /**\n     * Whether the given [ev] should be intercepted. Only used to prevent crashes when child\n     * views manipulate [requestDisallowInterceptTouchEvent].\n     */\n    override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {\n        return try {\n            super.onInterceptTouchEvent(ev)\n        } catch (e: IllegalArgumentException) {\n            false\n        }\n    }\n\n    /**\n     * Handles a touch event. Only used to prevent crashes when child views manipulate\n     * [requestDisallowInterceptTouchEvent].\n     */\n    override fun onTouchEvent(ev: MotionEvent): Boolean {\n        return try {\n            super.onTouchEvent(ev)\n        } catch (e: NullPointerException) {\n            false\n        } catch (e: IndexOutOfBoundsException) {\n            false\n        } catch (e: IllegalArgumentException) {\n            false\n        }\n    }\n\n    /**\n     * Executes the given key event when this pager has focus. Just do nothing because the reader\n     * already dispatches key events to the viewer and has more control than this method.\n     */\n    override fun executeKeyEvent(event: KeyEvent): Boolean {\n        // Disable viewpager's default key event handling\n        return false\n    }\n\n    /**\n     * Enables or disables the gesture detector.\n     */\n    fun setGestureDetectorEnabled(enabled: Boolean) {\n        isGestureDetectorEnabled = enabled\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerConfig\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.DisabledNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.EdgeNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.KindlishNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.LNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.RightAndLeftNavigation\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * Configuration used by pager viewers.\n */\nclass PagerConfig(\n    private val viewer: PagerViewer,\n    scope: CoroutineScope,\n    readerPreferences: ReaderPreferences = Injekt.get(),\n) : ViewerConfig(readerPreferences, scope) {\n\n    var theme = readerPreferences.readerTheme.get()\n        private set\n\n    var automaticBackground = false\n        private set\n\n    var dualPageSplitChangedListener: ((Boolean) -> Unit)? = null\n\n    var imageScaleType = 1\n        private set\n\n    var imageZoomType = ReaderPageImageView.ZoomStartPosition.LEFT\n        private set\n\n    var imageCropBorders = false\n        private set\n\n    var navigateToPan = false\n        private set\n\n    var landscapeZoom = false\n        private set\n\n    init {\n        readerPreferences.readerTheme\n            .register(\n                {\n                    theme = it\n                    automaticBackground = it == 3\n                },\n                { imagePropertyChangedListener?.invoke() },\n            )\n\n        readerPreferences.imageScaleType\n            .register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.zoomStart\n            .register({ zoomTypeFromPreference(it) }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.cropBorders\n            .register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.navigateToPan\n            .register({ navigateToPan = it })\n\n        readerPreferences.landscapeZoom\n            .register({ landscapeZoom = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.navigationModePager\n            .register({ navigationMode = it }, { updateNavigation(navigationMode) })\n\n        readerPreferences.pagerNavInverted\n            .register({ tappingInverted = it }, { navigator.invertMode = it })\n        readerPreferences.pagerNavInverted.changes()\n            .drop(1)\n            .onEach { navigationModeChangedListener?.invoke() }\n            .launchIn(scope)\n\n        readerPreferences.dualPageSplitPaged\n            .register(\n                { dualPageSplit = it },\n                {\n                    imagePropertyChangedListener?.invoke()\n                    dualPageSplitChangedListener?.invoke(it)\n                },\n            )\n\n        readerPreferences.dualPageInvertPaged\n            .register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.dualPageRotateToFit\n            .register(\n                { dualPageRotateToFit = it },\n                { imagePropertyChangedListener?.invoke() },\n            )\n\n        readerPreferences.dualPageRotateToFitInvert\n            .register(\n                { dualPageRotateToFitInvert = it },\n                { imagePropertyChangedListener?.invoke() },\n            )\n    }\n\n    private fun zoomTypeFromPreference(value: Int) {\n        imageZoomType = when (value) {\n            // Auto\n            1 -> when (viewer) {\n                is L2RPagerViewer -> ReaderPageImageView.ZoomStartPosition.LEFT\n                is R2LPagerViewer -> ReaderPageImageView.ZoomStartPosition.RIGHT\n                else -> ReaderPageImageView.ZoomStartPosition.CENTER\n            }\n            // Left\n            2 -> ReaderPageImageView.ZoomStartPosition.LEFT\n            // Right\n            3 -> ReaderPageImageView.ZoomStartPosition.RIGHT\n            // Center\n            else -> ReaderPageImageView.ZoomStartPosition.CENTER\n        }\n    }\n\n    override var navigator: ViewerNavigation = defaultNavigation()\n        set(value) {\n            field = value.also { it.invertMode = this.tappingInverted }\n        }\n\n    override fun defaultNavigation(): ViewerNavigation {\n        return when (viewer) {\n            is VerticalPagerViewer -> LNavigation()\n            else -> RightAndLeftNavigation()\n        }\n    }\n\n    override fun updateNavigation(navigationMode: Int) {\n        navigator = when (navigationMode) {\n            0 -> defaultNavigation()\n            1 -> LNavigation()\n            2 -> KindlishNavigation()\n            3 -> EdgeNavigation()\n            4 -> RightAndLeftNavigation()\n            5 -> DisabledNavigation()\n            else -> defaultNavigation()\n        }\n        navigationModeChangedListener?.invoke()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport android.annotation.SuppressLint\nimport android.content.Context\nimport android.view.LayoutInflater\nimport androidx.core.view.isVisible\nimport eu.kanade.presentation.util.formattedMessage\nimport eu.kanade.tachiyomi.databinding.ReaderErrorBinding\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.ui.reader.model.InsertPage\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderProgressIndicator\nimport eu.kanade.tachiyomi.ui.webview.WebViewActivity\nimport eu.kanade.tachiyomi.widget.ViewPagerAdapter\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.MainScope\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.supervisorScope\nimport logcat.LogPriority\nimport okio.Buffer\nimport okio.BufferedSource\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\n\n/**\n * View of the ViewPager that contains a page of a chapter.\n */\n@SuppressLint(\"ViewConstructor\")\nclass PagerPageHolder(\n    readerThemedContext: Context,\n    val viewer: PagerViewer,\n    val page: ReaderPage,\n) : ReaderPageImageView(readerThemedContext), ViewPagerAdapter.PositionableView {\n\n    /**\n     * Item that identifies this view. Needed by the adapter to not recreate views.\n     */\n    override val item\n        get() = page\n\n    /**\n     * Loading progress bar to indicate the current progress.\n     */\n    private var progressIndicator: ReaderProgressIndicator? = null // = ReaderProgressIndicator(readerThemedContext)\n\n    /**\n     * Error layout to show when the image fails to load.\n     */\n    private var errorLayout: ReaderErrorBinding? = null\n\n    private val scope = MainScope()\n\n    /**\n     * Job for loading the page and processing changes to the page's status.\n     */\n    private var loadJob: Job? = null\n\n    init {\n        loadJob = scope.launch { loadPageAndProcessStatus() }\n    }\n\n    /**\n     * Called when this view is detached from the window. Unsubscribes any active subscription.\n     */\n    @SuppressLint(\"ClickableViewAccessibility\")\n    override fun onDetachedFromWindow() {\n        super.onDetachedFromWindow()\n        loadJob?.cancel()\n        loadJob = null\n    }\n\n    private fun initProgressIndicator() {\n        if (progressIndicator == null) {\n            progressIndicator = ReaderProgressIndicator(context)\n            addView(progressIndicator)\n        }\n    }\n\n    /**\n     * Loads the page and processes changes to the page's status.\n     *\n     * Returns immediately if the page has no PageLoader.\n     * Otherwise, this function does not return. It will continue to process status changes until\n     * the Job is cancelled.\n     */\n    private suspend fun loadPageAndProcessStatus() {\n        val loader = page.chapter.pageLoader ?: return\n\n        supervisorScope {\n            launchIO {\n                loader.loadPage(page)\n            }\n            page.statusFlow.collectLatest { state ->\n                when (state) {\n                    Page.State.Queue -> setQueued()\n                    Page.State.LoadPage -> setLoading()\n                    Page.State.DownloadImage -> {\n                        setDownloading()\n                        page.progressFlow.collectLatest { value ->\n                            progressIndicator?.setProgress(value)\n                        }\n                    }\n                    Page.State.Ready -> setImage()\n                    is Page.State.Error -> setError(state.error)\n                }\n            }\n        }\n    }\n\n    /**\n     * Called when the page is queued.\n     */\n    private fun setQueued() {\n        initProgressIndicator()\n        progressIndicator?.show()\n        removeErrorLayout()\n    }\n\n    /**\n     * Called when the page is loading.\n     */\n    private fun setLoading() {\n        initProgressIndicator()\n        progressIndicator?.show()\n        removeErrorLayout()\n    }\n\n    /**\n     * Called when the page is downloading.\n     */\n    private fun setDownloading() {\n        initProgressIndicator()\n        progressIndicator?.show()\n        removeErrorLayout()\n    }\n\n    /**\n     * Called when the page is ready.\n     */\n    private suspend fun setImage() {\n        progressIndicator?.setProgress(0)\n\n        val streamFn = page.stream ?: return\n\n        try {\n            val (source, isAnimated, background) = withIOContext {\n                val source = streamFn().use { process(item, Buffer().readFrom(it)) }\n                val isAnimated = ImageUtil.isAnimatedAndSupported(source)\n                val background = if (!isAnimated && viewer.config.automaticBackground) {\n                    ImageUtil.chooseBackground(context, source.peek().inputStream())\n                } else {\n                    null\n                }\n                Triple(source, isAnimated, background)\n            }\n            withUIContext {\n                setImage(\n                    source,\n                    isAnimated,\n                    Config(\n                        zoomDuration = viewer.config.doubleTapAnimDuration,\n                        minimumScaleType = viewer.config.imageScaleType,\n                        cropBorders = viewer.config.imageCropBorders,\n                        zoomStartPosition = viewer.config.imageZoomType,\n                        landscapeZoom = viewer.config.landscapeZoom,\n                    ),\n                )\n                if (!isAnimated) {\n                    pageBackground = background\n                }\n                removeErrorLayout()\n            }\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e)\n            withUIContext {\n                setError(e)\n            }\n        }\n    }\n\n    private fun process(page: ReaderPage, imageSource: BufferedSource): BufferedSource {\n        if (viewer.config.dualPageRotateToFit) {\n            return rotateDualPage(imageSource)\n        }\n\n        if (!viewer.config.dualPageSplit) {\n            return imageSource\n        }\n\n        if (page is InsertPage) {\n            return splitInHalf(imageSource)\n        }\n\n        val isDoublePage = ImageUtil.isWideImage(imageSource)\n        if (!isDoublePage) {\n            return imageSource\n        }\n\n        onPageSplit(page)\n\n        return splitInHalf(imageSource)\n    }\n\n    private fun rotateDualPage(imageSource: BufferedSource): BufferedSource {\n        val isDoublePage = ImageUtil.isWideImage(imageSource)\n        return if (isDoublePage) {\n            val rotation = if (viewer.config.dualPageRotateToFitInvert) -90f else 90f\n            ImageUtil.rotateImage(imageSource, rotation)\n        } else {\n            imageSource\n        }\n    }\n\n    private fun splitInHalf(imageSource: BufferedSource): BufferedSource {\n        var side = when {\n            viewer is L2RPagerViewer && page is InsertPage -> ImageUtil.Side.RIGHT\n            viewer !is L2RPagerViewer && page is InsertPage -> ImageUtil.Side.LEFT\n            viewer is L2RPagerViewer && page !is InsertPage -> ImageUtil.Side.LEFT\n            viewer !is L2RPagerViewer && page !is InsertPage -> ImageUtil.Side.RIGHT\n            else -> error(\"We should choose a side!\")\n        }\n\n        if (viewer.config.dualPageInvert) {\n            side = when (side) {\n                ImageUtil.Side.RIGHT -> ImageUtil.Side.LEFT\n                ImageUtil.Side.LEFT -> ImageUtil.Side.RIGHT\n            }\n        }\n\n        return ImageUtil.splitInHalf(imageSource, side)\n    }\n\n    private fun onPageSplit(page: ReaderPage) {\n        val newPage = InsertPage(page)\n        viewer.onPageSplit(page, newPage)\n    }\n\n    /**\n     * Called when the page has an error.\n     */\n    private fun setError(error: Throwable?) {\n        progressIndicator?.hide()\n        showErrorLayout(error)\n    }\n\n    override fun onImageLoaded() {\n        super.onImageLoaded()\n        progressIndicator?.hide()\n    }\n\n    /**\n     * Called when an image fails to decode.\n     */\n    override fun onImageLoadError(error: Throwable?) {\n        super.onImageLoadError(error)\n        setError(error)\n    }\n\n    /**\n     * Called when an image is zoomed in/out.\n     */\n    override fun onScaleChanged(newScale: Float) {\n        super.onScaleChanged(newScale)\n        viewer.activity.hideMenu()\n    }\n\n    private fun showErrorLayout(error: Throwable?): ReaderErrorBinding {\n        if (errorLayout == null) {\n            errorLayout = ReaderErrorBinding.inflate(LayoutInflater.from(context), this, true)\n            errorLayout?.actionRetry?.viewer = viewer\n            errorLayout?.actionRetry?.setOnClickListener {\n                page.chapter.pageLoader?.retryPage(page)\n            }\n        }\n\n        val imageUrl = page.imageUrl\n        errorLayout?.actionOpenInWebView?.isVisible = imageUrl != null\n        if (imageUrl != null) {\n            if (imageUrl.startsWith(\"http\", true)) {\n                errorLayout?.actionOpenInWebView?.viewer = viewer\n                errorLayout?.actionOpenInWebView?.setOnClickListener {\n                    val sourceId = viewer.activity.viewModel.manga?.source\n\n                    val intent = WebViewActivity.newIntent(context, imageUrl, sourceId)\n                    context.startActivity(intent)\n                }\n            }\n        }\n\n        errorLayout?.errorMessage?.text = with(context) { error?.formattedMessage }\n            ?: context.stringResource(MR.strings.decode_image_error)\n\n        errorLayout?.root?.isVisible = true\n        return errorLayout!!\n    }\n\n    /**\n     * Removes the decode error layout from the holder, if found.\n     */\n    private fun removeErrorLayout() {\n        errorLayout?.root?.isVisible = false\n        errorLayout = null\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerTransitionHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport android.annotation.SuppressLint\nimport android.content.Context\nimport android.view.Gravity\nimport android.view.View\nimport android.view.ViewGroup\nimport android.view.ViewGroup.LayoutParams.MATCH_PARENT\nimport android.view.ViewGroup.LayoutParams.WRAP_CONTENT\nimport android.widget.LinearLayout\nimport androidx.appcompat.widget.AppCompatTextView\nimport com.google.android.material.progressindicator.CircularProgressIndicator\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderButton\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderTransitionView\nimport eu.kanade.tachiyomi.util.system.dpToPx\nimport eu.kanade.tachiyomi.widget.ViewPagerAdapter\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.MainScope\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.launch\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\n\n/**\n * View of the ViewPager that contains a chapter transition.\n */\n@SuppressLint(\"ViewConstructor\")\nclass PagerTransitionHolder(\n    readerThemedContext: Context,\n    val viewer: PagerViewer,\n    val transition: ChapterTransition,\n) : LinearLayout(readerThemedContext), ViewPagerAdapter.PositionableView {\n\n    private val scope = MainScope()\n    private var stateJob: Job? = null\n\n    /**\n     * Item that identifies this view. Needed by the adapter to not recreate views.\n     */\n    override val item: Any\n        get() = transition\n\n    /**\n     * View container of the current status of the transition page. Child views will be added\n     * dynamically.\n     */\n    private var pagesContainer = LinearLayout(context).apply {\n        layoutParams = LayoutParams(MATCH_PARENT, WRAP_CONTENT)\n        orientation = VERTICAL\n        gravity = Gravity.CENTER\n    }\n\n    init {\n        orientation = VERTICAL\n        gravity = Gravity.CENTER\n        val sidePadding = 64.dpToPx\n        setPadding(sidePadding, 0, sidePadding, 0)\n\n        val transitionView = ReaderTransitionView(context)\n        addView(transitionView)\n        addView(pagesContainer)\n\n        transitionView.bind(transition, viewer.downloadManager, viewer.activity.viewModel.manga)\n\n        transition.to?.let(::observeStatus)\n    }\n\n    /**\n     * Called when this view is detached from the window. Unsubscribes any active subscription.\n     */\n    override fun onDetachedFromWindow() {\n        super.onDetachedFromWindow()\n        stateJob?.cancel()\n    }\n\n    /**\n     * Observes the status of the page list of the next/previous chapter. Whenever there's a new\n     * state, the pages container is cleaned up before setting the new state.\n     */\n    private fun observeStatus(chapter: ReaderChapter) {\n        stateJob?.cancel()\n        stateJob = scope.launch {\n            chapter.stateFlow\n                .collectLatest { state ->\n                    pagesContainer.removeAllViews()\n                    when (state) {\n                        is ReaderChapter.State.Loading -> setLoading()\n                        is ReaderChapter.State.Error -> setError(state.error)\n                        is ReaderChapter.State.Wait, is ReaderChapter.State.Loaded -> {\n                            // No additional view is added\n                        }\n                    }\n                }\n        }\n    }\n\n    /**\n     * Sets the loading state on the pages container.\n     */\n    private fun setLoading() {\n        val progress = CircularProgressIndicator(context)\n        progress.isIndeterminate = true\n\n        val textView = AppCompatTextView(context).apply {\n            wrapContent()\n            text = context.stringResource(MR.strings.transition_pages_loading)\n        }\n\n        pagesContainer.addView(progress)\n        pagesContainer.addView(textView)\n    }\n\n    /**\n     * Sets the error state on the pages container.\n     */\n    private fun setError(error: Throwable) {\n        val textView = AppCompatTextView(context).apply {\n            wrapContent()\n            text = context.stringResource(MR.strings.transition_pages_error, error.message ?: \"\")\n        }\n\n        val retryBtn = ReaderButton(context).apply {\n            viewer = this@PagerTransitionHolder.viewer\n            wrapContent()\n            text = context.stringResource(MR.strings.action_retry)\n            setOnClickListener {\n                val toChapter = transition.to\n                if (toChapter != null) {\n                    this@PagerTransitionHolder.viewer.activity.requestPreloadChapter(toChapter)\n                }\n            }\n        }\n\n        pagesContainer.addView(textView)\n        pagesContainer.addView(retryBtn)\n    }\n\n    /**\n     * Extension method to set layout params to wrap content on this view.\n     */\n    private fun View.wrapContent() {\n        layoutParams = ViewGroup.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport android.graphics.PointF\nimport android.view.InputDevice\nimport android.view.KeyEvent\nimport android.view.MotionEvent\nimport android.view.View\nimport android.view.ViewGroup.LayoutParams\nimport androidx.core.view.children\nimport androidx.core.view.isGone\nimport androidx.core.view.isVisible\nimport androidx.viewpager.widget.ViewPager\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.InsertPage\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\nimport eu.kanade.tachiyomi.ui.reader.viewer.Viewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation.NavigationRegion\nimport kotlinx.coroutines.MainScope\nimport kotlinx.coroutines.cancel\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.injectLazy\nimport kotlin.math.min\n\n/**\n * Implementation of a [Viewer] to display pages with a [ViewPager].\n */\n@Suppress(\"LeakingThis\")\nabstract class PagerViewer(val activity: ReaderActivity) : Viewer {\n\n    val downloadManager: DownloadManager by injectLazy()\n\n    private val scope = MainScope()\n\n    /**\n     * View pager used by this viewer. It's abstract to implement L2R, R2L and vertical pagers on\n     * top of this class.\n     */\n    val pager = createPager()\n\n    /**\n     * Configuration used by the pager, like allow taps, scale mode on images, page transitions...\n     */\n    val config = PagerConfig(this, scope)\n\n    /**\n     * Adapter of the pager.\n     */\n    private val adapter = PagerViewerAdapter(this)\n\n    /**\n     * Currently active item. It can be a chapter page or a chapter transition.\n     */\n    private var currentPage: Any? = null\n\n    /**\n     * Viewer chapters to set when the pager enters idle mode. Otherwise, if the view was settling\n     * or dragging, there'd be a noticeable and annoying jump.\n     */\n    private var awaitingIdleViewerChapters: ViewerChapters? = null\n\n    /**\n     * Whether the view pager is currently in idle mode. It sets the awaiting chapters if setting\n     * this field to true.\n     */\n    private var isIdle = true\n        set(value) {\n            field = value\n            if (value) {\n                awaitingIdleViewerChapters?.let { viewerChapters ->\n                    setChaptersInternal(viewerChapters)\n                    awaitingIdleViewerChapters = null\n                    if (viewerChapters.currChapter.pages?.size == 1) {\n                        adapter.nextTransition?.to?.let(activity::requestPreloadChapter)\n                    }\n                }\n            }\n        }\n\n    private val pagerListener = object : ViewPager.SimpleOnPageChangeListener() {\n        override fun onPageSelected(position: Int) {\n            if (!activity.isScrollingThroughPages) {\n                activity.hideMenu()\n            }\n            onPageChange(position)\n        }\n\n        override fun onPageScrollStateChanged(state: Int) {\n            isIdle = state == ViewPager.SCROLL_STATE_IDLE\n        }\n    }\n\n    init {\n        pager.isVisible = false // Don't layout the pager yet\n        pager.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)\n        pager.isFocusable = false\n        pager.offscreenPageLimit = 1\n        pager.id = R.id.reader_pager\n        pager.adapter = adapter\n        pager.addOnPageChangeListener(pagerListener)\n        pager.tapListener = { event ->\n            val viewPosition = IntArray(2)\n            pager.getLocationOnScreen(viewPosition)\n            val viewPositionRelativeToWindow = IntArray(2)\n            pager.getLocationInWindow(viewPositionRelativeToWindow)\n            val pos = PointF(\n                (event.rawX - viewPosition[0] + viewPositionRelativeToWindow[0]) / pager.width,\n                (event.rawY - viewPosition[1] + viewPositionRelativeToWindow[1]) / pager.height,\n            )\n            when (config.navigator.getAction(pos)) {\n                NavigationRegion.MENU -> activity.toggleMenu()\n                NavigationRegion.NEXT -> moveToNext()\n                NavigationRegion.PREV -> moveToPrevious()\n                NavigationRegion.RIGHT -> moveRight()\n                NavigationRegion.LEFT -> moveLeft()\n            }\n        }\n        pager.longTapListener = f@{\n            if (activity.viewModel.state.value.menuVisible || config.longTapEnabled) {\n                val item = adapter.items.getOrNull(pager.currentItem)\n                if (item is ReaderPage) {\n                    activity.onPageLongTap(item)\n                    return@f true\n                }\n            }\n            false\n        }\n\n        config.dualPageSplitChangedListener = { enabled ->\n            if (!enabled) {\n                cleanupPageSplit()\n            }\n        }\n\n        config.imagePropertyChangedListener = {\n            refreshAdapter()\n        }\n\n        config.navigationModeChangedListener = {\n            val showOnStart = config.navigationOverlayOnStart || config.forceNavigationOverlay\n            activity.binding.navigationOverlay.setNavigation(config.navigator, showOnStart)\n        }\n    }\n\n    override fun destroy() {\n        super.destroy()\n        scope.cancel()\n    }\n\n    /**\n     * Creates a new ViewPager.\n     */\n    abstract fun createPager(): Pager\n\n    /**\n     * Returns the view this viewer uses.\n     */\n    override fun getView(): View {\n        return pager\n    }\n\n    /**\n     * Returns the PagerPageHolder for the provided page\n     */\n    private fun getPageHolder(page: ReaderPage): PagerPageHolder? =\n        pager.children\n            .filterIsInstance(PagerPageHolder::class.java)\n            .firstOrNull { it.item == page }\n\n    /**\n     * Called when a new page (either a [ReaderPage] or [ChapterTransition]) is marked as active\n     */\n    private fun onPageChange(position: Int) {\n        val page = adapter.items.getOrNull(position)\n        if (page != null && currentPage != page) {\n            val allowPreload = checkAllowPreload(page as? ReaderPage)\n            val forward = when {\n                currentPage is ReaderPage && page is ReaderPage -> {\n                    // if both pages have the same number, it's a split page with an InsertPage\n                    if (page.number == (currentPage as ReaderPage).number) {\n                        // the InsertPage is always the second in the reading direction\n                        page is InsertPage\n                    } else {\n                        page.number > (currentPage as ReaderPage).number\n                    }\n                }\n                currentPage is ChapterTransition.Prev && page is ReaderPage ->\n                    false\n                else -> true\n            }\n            currentPage = page\n            when (page) {\n                is ReaderPage -> onReaderPageSelected(page, allowPreload, forward)\n                is ChapterTransition -> onTransitionSelected(page)\n            }\n        }\n    }\n\n    private fun checkAllowPreload(page: ReaderPage?): Boolean {\n        // Page is transition page - preload allowed\n        page ?: return true\n\n        // Initial opening - preload allowed\n        currentPage ?: return true\n\n        // Allow preload for\n        // 1. Going to next chapter from chapter transition\n        // 2. Going between pages of same chapter\n        // 3. Next chapter page\n        return when (page.chapter) {\n            (currentPage as? ChapterTransition.Next)?.to -> true\n            (currentPage as? ReaderPage)?.chapter -> true\n            adapter.nextTransition?.to -> true\n            else -> false\n        }\n    }\n\n    /**\n     * Called when a [ReaderPage] is marked as active. It notifies the\n     * activity of the change and requests the preload of the next chapter if this is the last page.\n     */\n    private fun onReaderPageSelected(page: ReaderPage, allowPreload: Boolean, forward: Boolean) {\n        val pages = page.chapter.pages ?: return\n        logcat { \"onReaderPageSelected: ${page.number}/${pages.size}\" }\n        activity.onPageSelected(page)\n\n        // Notify holder of page change\n        getPageHolder(page)?.onPageSelected(forward)\n\n        // Skip preload on inserts it causes unwanted page jumping\n        if (page is InsertPage) {\n            return\n        }\n\n        // Preload next chapter once we're within the last 5 pages of the current chapter\n        val inPreloadRange = pages.size - page.number < 5\n        if (inPreloadRange && allowPreload && page.chapter == adapter.currentChapter) {\n            logcat { \"Request preload next chapter because we're at page ${page.number} of ${pages.size}\" }\n            adapter.nextTransition?.to?.let(activity::requestPreloadChapter)\n        }\n    }\n\n    /**\n     * Called when a [ChapterTransition] is marked as active. It request the\n     * preload of the destination chapter of the transition.\n     */\n    private fun onTransitionSelected(transition: ChapterTransition) {\n        logcat { \"onTransitionSelected: $transition\" }\n        val toChapter = transition.to\n        if (toChapter != null) {\n            logcat { \"Request preload destination chapter because we're on the transition\" }\n            activity.requestPreloadChapter(toChapter)\n        } else if (transition is ChapterTransition.Next) {\n            // No more chapters, show menu because the user is probably going to close the reader\n            activity.showMenu()\n        }\n    }\n\n    /**\n     * Tells this viewer to set the given [chapters] as active. If the pager is currently idle,\n     * it sets the chapters immediately, otherwise they are saved and set when it becomes idle.\n     */\n    override fun setChapters(chapters: ViewerChapters) {\n        if (isIdle) {\n            setChaptersInternal(chapters)\n        } else {\n            awaitingIdleViewerChapters = chapters\n        }\n    }\n\n    /**\n     * Sets the active [chapters] on this pager.\n     */\n    private fun setChaptersInternal(chapters: ViewerChapters) {\n        // Remove listener so the change in item doesn't trigger it\n        pager.removeOnPageChangeListener(pagerListener)\n\n        val forceTransition = config.alwaysShowChapterTransition ||\n            adapter.items.getOrNull(pager.currentItem) is ChapterTransition\n        adapter.setChapters(chapters, forceTransition)\n\n        // Layout the pager once a chapter is being set\n        if (pager.isGone) {\n            logcat { \"Pager first layout\" }\n            val pages = chapters.currChapter.pages ?: return\n            moveToPage(pages[min(chapters.currChapter.requestedPage, pages.lastIndex)])\n            pager.isVisible = true\n        }\n\n        pager.addOnPageChangeListener(pagerListener)\n        // Manually call onPageChange to update the UI\n        onPageChange(pager.currentItem)\n    }\n\n    /**\n     * Tells this viewer to move to the given [page].\n     */\n    override fun moveToPage(page: ReaderPage) {\n        val position = adapter.items.indexOf(page)\n        if (position != -1) {\n            val currentPosition = pager.currentItem\n            pager.setCurrentItem(position, true)\n            // manually call onPageChange since ViewPager listener is not triggered in this case\n            if (currentPosition == position) {\n                onPageChange(position)\n            }\n        } else {\n            logcat { \"Page $page not found in adapter\" }\n        }\n    }\n\n    /**\n     * Moves to the next page.\n     */\n    open fun moveToNext() {\n        moveRight()\n    }\n\n    /**\n     * Moves to the previous page.\n     */\n    open fun moveToPrevious() {\n        moveLeft()\n    }\n\n    /**\n     * Moves to the page at the right.\n     */\n    protected open fun moveRight() {\n        if (pager.currentItem != adapter.count - 1) {\n            val holder = (currentPage as? ReaderPage)?.let(::getPageHolder)\n            if (holder != null && config.navigateToPan && holder.canPanRight()) {\n                holder.panRight()\n            } else {\n                pager.setCurrentItem(pager.currentItem + 1, config.usePageTransitions)\n            }\n        }\n    }\n\n    /**\n     * Moves to the page at the left.\n     */\n    protected open fun moveLeft() {\n        if (pager.currentItem != 0) {\n            val holder = (currentPage as? ReaderPage)?.let(::getPageHolder)\n            if (holder != null && config.navigateToPan && holder.canPanLeft()) {\n                holder.panLeft()\n            } else {\n                pager.setCurrentItem(pager.currentItem - 1, config.usePageTransitions)\n            }\n        }\n    }\n\n    /**\n     * Moves to the page at the top (or previous).\n     */\n    protected open fun moveUp() {\n        moveToPrevious()\n    }\n\n    /**\n     * Moves to the page at the bottom (or next).\n     */\n    protected open fun moveDown() {\n        moveToNext()\n    }\n\n    /**\n     * Resets the adapter in order to recreate all the views. Used when a image configuration is\n     * changed.\n     */\n    private fun refreshAdapter() {\n        val currentItem = pager.currentItem\n        adapter.refresh()\n        pager.adapter = adapter\n        pager.setCurrentItem(currentItem, false)\n    }\n\n    /**\n     * Called from the containing activity when a key [event] is received. It should return true\n     * if the event was handled, false otherwise.\n     */\n    override fun handleKeyEvent(event: KeyEvent): Boolean {\n        val isUp = event.action == KeyEvent.ACTION_UP\n        val ctrlPressed = event.metaState.and(KeyEvent.META_CTRL_ON) > 0\n\n        when (event.keyCode) {\n            KeyEvent.KEYCODE_VOLUME_DOWN -> {\n                if (!config.volumeKeysEnabled || activity.viewModel.state.value.menuVisible) {\n                    return false\n                } else if (isUp) {\n                    if (!config.volumeKeysInverted) moveDown() else moveUp()\n                }\n            }\n            KeyEvent.KEYCODE_VOLUME_UP -> {\n                if (!config.volumeKeysEnabled || activity.viewModel.state.value.menuVisible) {\n                    return false\n                } else if (isUp) {\n                    if (!config.volumeKeysInverted) moveUp() else moveDown()\n                }\n            }\n            KeyEvent.KEYCODE_DPAD_RIGHT -> {\n                if (isUp) {\n                    if (ctrlPressed) moveToNext() else moveRight()\n                }\n            }\n            KeyEvent.KEYCODE_DPAD_LEFT -> {\n                if (isUp) {\n                    if (ctrlPressed) moveToPrevious() else moveLeft()\n                }\n            }\n            KeyEvent.KEYCODE_DPAD_DOWN -> if (isUp) moveDown()\n            KeyEvent.KEYCODE_DPAD_UP -> if (isUp) moveUp()\n            KeyEvent.KEYCODE_PAGE_DOWN -> if (isUp) moveDown()\n            KeyEvent.KEYCODE_PAGE_UP -> if (isUp) moveUp()\n            KeyEvent.KEYCODE_MENU -> if (isUp) activity.toggleMenu()\n            else -> return false\n        }\n        return true\n    }\n\n    /**\n     * Called from the containing activity when a generic motion [event] is received. It should\n     * return true if the event was handled, false otherwise.\n     */\n    override fun handleGenericMotionEvent(event: MotionEvent): Boolean {\n        if (event.source and InputDevice.SOURCE_CLASS_POINTER != 0) {\n            when (event.action) {\n                MotionEvent.ACTION_SCROLL -> {\n                    if (event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f) {\n                        moveDown()\n                    } else {\n                        moveUp()\n                    }\n                    return true\n                }\n            }\n        }\n        return false\n    }\n\n    fun onPageSplit(currentPage: ReaderPage, newPage: InsertPage) {\n        activity.runOnUiThread {\n            // Need to insert on UI thread else images will go blank\n            adapter.onPageSplit(currentPage, newPage)\n        }\n    }\n\n    private fun cleanupPageSplit() {\n        adapter.cleanupPageSplit()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport android.view.View\nimport android.view.ViewGroup\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.InsertPage\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\nimport eu.kanade.tachiyomi.ui.reader.viewer.calculateChapterGap\nimport eu.kanade.tachiyomi.util.system.createReaderThemeContext\nimport eu.kanade.tachiyomi.widget.ViewPagerAdapter\nimport tachiyomi.core.common.util.system.logcat\n\n/**\n * Pager adapter used by this [viewer] to where [ViewerChapters] updates are posted.\n */\nclass PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {\n\n    /**\n     * List of currently set items.\n     */\n    var items: MutableList<Any> = mutableListOf()\n        private set\n\n    /**\n     * Holds preprocessed items so they don't get removed when changing chapter\n     */\n    private var preprocessed: MutableMap<Int, InsertPage> = mutableMapOf()\n\n    var nextTransition: ChapterTransition.Next? = null\n        private set\n\n    var currentChapter: ReaderChapter? = null\n\n    /**\n     * Context that has been wrapped to use the correct theme values based on the\n     * current app theme and reader background color\n     */\n    private var readerThemedContext = viewer.activity.createReaderThemeContext()\n\n    /**\n     * Updates this adapter with the given [chapters]. It handles setting a few pages of the\n     * next/previous chapter to allow seamless transitions and inverting the pages if the viewer\n     * has R2L direction.\n     */\n    fun setChapters(chapters: ViewerChapters, forceTransition: Boolean) {\n        val newItems = mutableListOf<Any>()\n\n        // Forces chapter transition if there is missing chapters\n        val prevHasMissingChapters = calculateChapterGap(chapters.currChapter, chapters.prevChapter) > 0\n        val nextHasMissingChapters = calculateChapterGap(chapters.nextChapter, chapters.currChapter) > 0\n\n        // Add previous chapter pages and transition\n        chapters.prevChapter?.pages?.let(newItems::addAll)\n\n        // Skip transition page if the chapter is loaded & current page is not a transition page\n        if (prevHasMissingChapters || forceTransition || chapters.prevChapter?.state !is ReaderChapter.State.Loaded) {\n            newItems.add(ChapterTransition.Prev(chapters.currChapter, chapters.prevChapter))\n        }\n\n        var insertPageLastPage: InsertPage? = null\n\n        // Add current chapter.\n        val currPages = chapters.currChapter.pages\n        if (currPages != null) {\n            val pages = currPages.toMutableList()\n\n            val lastPage = pages.last()\n\n            // Insert preprocessed pages into current page list\n            preprocessed.keys.sortedDescending()\n                .forEach { key ->\n                    if (lastPage.index == key) {\n                        insertPageLastPage = preprocessed[key]\n                    }\n                    preprocessed[key]?.let { pages.add(key + 1, it) }\n                }\n\n            newItems.addAll(pages)\n        }\n\n        currentChapter = chapters.currChapter\n\n        // Add next chapter transition and pages.\n        nextTransition = ChapterTransition.Next(chapters.currChapter, chapters.nextChapter)\n            .also {\n                if (\n                    nextHasMissingChapters ||\n                    forceTransition ||\n                    chapters.nextChapter?.state !is ReaderChapter.State.Loaded\n                ) {\n                    newItems.add(it)\n                }\n            }\n\n        chapters.nextChapter?.pages?.let(newItems::addAll)\n\n        // Resets double-page splits, else insert pages get misplaced\n        items.filterIsInstance<InsertPage>().also { items.removeAll(it) }\n\n        if (viewer is R2LPagerViewer) {\n            newItems.reverse()\n        }\n\n        preprocessed = mutableMapOf()\n        items = newItems\n        notifyDataSetChanged()\n\n        // Will skip insert page otherwise\n        if (insertPageLastPage != null) {\n            viewer.moveToPage(insertPageLastPage)\n        }\n    }\n\n    /**\n     * Returns the amount of items of the adapter.\n     */\n    override fun getCount(): Int {\n        return items.size\n    }\n\n    /**\n     * Creates a new view for the item at the given [position].\n     */\n    override fun createView(container: ViewGroup, position: Int): View {\n        return when (val item = items[position]) {\n            is ReaderPage -> PagerPageHolder(readerThemedContext, viewer, item)\n            is ChapterTransition -> PagerTransitionHolder(readerThemedContext, viewer, item)\n            else -> throw NotImplementedError(\"Holder for ${item.javaClass} not implemented\")\n        }\n    }\n\n    /**\n     * Returns the current position of the given [view] on the adapter.\n     */\n    override fun getItemPosition(view: Any): Int {\n        if (view is PositionableView) {\n            val position = items.indexOf(view.item)\n            if (position != -1) {\n                return position\n            } else {\n                logcat { \"Position for ${view.item} not found\" }\n            }\n        }\n        return POSITION_NONE\n    }\n\n    fun onPageSplit(currentPage: Any?, newPage: InsertPage) {\n        if (currentPage !is ReaderPage) return\n\n        val currentIndex = items.indexOf(currentPage)\n\n        // Put aside preprocessed pages for next chapter so they don't get removed when changing chapter\n        if (currentPage.chapter.chapter.id != currentChapter?.chapter?.id) {\n            preprocessed[newPage.index] = newPage\n            return\n        }\n\n        val placeAtIndex = when (viewer) {\n            is L2RPagerViewer,\n            is VerticalPagerViewer,\n            -> currentIndex + 1\n            else -> currentIndex\n        }\n\n        // It will enter a endless cycle of insert pages\n        if (viewer is R2LPagerViewer && placeAtIndex - 1 >= 0 && items[placeAtIndex - 1] is InsertPage) {\n            return\n        }\n\n        // Same here it will enter a endless cycle of insert pages\n        if (items[placeAtIndex] is InsertPage) {\n            return\n        }\n\n        items.add(placeAtIndex, newPage)\n\n        notifyDataSetChanged()\n    }\n\n    fun cleanupPageSplit() {\n        val insertPages = items.filterIsInstance<InsertPage>()\n        items.removeAll(insertPages)\n        notifyDataSetChanged()\n    }\n\n    fun refresh() {\n        readerThemedContext = viewer.activity.createReaderThemeContext()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewers.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.pager\n\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\n\n/**\n * Implementation of a left to right PagerViewer.\n */\nclass L2RPagerViewer(activity: ReaderActivity) : PagerViewer(activity) {\n    /**\n     * Creates a new left to right pager.\n     */\n    override fun createPager(): Pager {\n        return Pager(activity)\n    }\n}\n\n/**\n * Implementation of a right to left PagerViewer.\n */\nclass R2LPagerViewer(activity: ReaderActivity) : PagerViewer(activity) {\n    /**\n     * Creates a new right to left pager.\n     */\n    override fun createPager(): Pager {\n        return Pager(activity)\n    }\n\n    /**\n     * Moves to the next page. On a R2L pager the next page is the one at the left.\n     */\n    override fun moveToNext() {\n        moveLeft()\n    }\n\n    /**\n     * Moves to the previous page. On a R2L pager the previous page is the one at the right.\n     */\n    override fun moveToPrevious() {\n        moveRight()\n    }\n}\n\n/**\n * Implementation of a vertical (top to bottom) PagerViewer.\n */\nclass VerticalPagerViewer(activity: ReaderActivity) : PagerViewer(activity) {\n    /**\n     * Creates a new vertical pager.\n     */\n    override fun createPager(): Pager {\n        return Pager(activity, isHorizontal = false)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.view.ViewGroup\nimport android.widget.LinearLayout\nimport androidx.recyclerview.widget.DiffUtil\nimport androidx.recyclerview.widget.RecyclerView\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView\nimport eu.kanade.tachiyomi.ui.reader.viewer.calculateChapterGap\nimport eu.kanade.tachiyomi.util.system.createReaderThemeContext\n\n/**\n * RecyclerView Adapter used by this [viewer] to where [ViewerChapters] updates are posted.\n */\nclass WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {\n\n    /**\n     * List of currently set items.\n     */\n    var items: List<Any> = emptyList()\n        private set\n\n    var currentChapter: ReaderChapter? = null\n\n    /**\n     * Context that has been wrapped to use the correct theme values based on the\n     * current app theme and reader background color\n     */\n    private var readerThemedContext = viewer.activity.createReaderThemeContext()\n\n    /**\n     * Updates this adapter with the given [chapters]. It handles setting a few pages of the\n     * next/previous chapter to allow seamless transitions.\n     */\n    fun setChapters(chapters: ViewerChapters, forceTransition: Boolean) {\n        val newItems = mutableListOf<Any>()\n\n        // Forces chapter transition if there is missing chapters\n        val prevHasMissingChapters = calculateChapterGap(chapters.currChapter, chapters.prevChapter) > 0\n        val nextHasMissingChapters = calculateChapterGap(chapters.nextChapter, chapters.currChapter) > 0\n\n        // Add previous chapter pages and transition.\n        chapters.prevChapter?.pages?.let(newItems::addAll)\n\n        // Skip transition page if the chapter is loaded & current page is not a transition page\n        if (prevHasMissingChapters || forceTransition || chapters.prevChapter?.state !is ReaderChapter.State.Loaded) {\n            newItems.add(ChapterTransition.Prev(chapters.currChapter, chapters.prevChapter))\n        }\n\n        // Add current chapter.\n        val currPages = chapters.currChapter.pages\n        if (currPages != null) {\n            newItems.addAll(currPages)\n        }\n\n        currentChapter = chapters.currChapter\n\n        // Add next chapter transition and pages.\n        if (nextHasMissingChapters || forceTransition || chapters.nextChapter?.state !is ReaderChapter.State.Loaded) {\n            newItems.add(ChapterTransition.Next(chapters.currChapter, chapters.nextChapter))\n        }\n\n        chapters.nextChapter?.pages?.let(newItems::addAll)\n\n        updateItems(newItems)\n    }\n\n    private fun updateItems(newItems: List<Any>) {\n        val result = DiffUtil.calculateDiff(Callback(items, newItems))\n        items = newItems\n        result.dispatchUpdatesTo(this)\n    }\n\n    fun refresh() {\n        readerThemedContext = viewer.activity.createReaderThemeContext()\n    }\n\n    /**\n     * Returns the amount of items of the adapter.\n     */\n    override fun getItemCount(): Int {\n        return items.size\n    }\n\n    /**\n     * Returns the view type for the item at the given [position].\n     */\n    override fun getItemViewType(position: Int): Int {\n        return when (val item = items[position]) {\n            is ReaderPage -> PAGE_VIEW\n            is ChapterTransition -> TRANSITION_VIEW\n            else -> error(\"Unknown view type for ${item.javaClass}\")\n        }\n    }\n\n    /**\n     * Creates a new view holder for an item with the given [viewType].\n     */\n    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {\n        return when (viewType) {\n            PAGE_VIEW -> {\n                val view = ReaderPageImageView(readerThemedContext, isWebtoon = true)\n                WebtoonPageHolder(view, viewer)\n            }\n            TRANSITION_VIEW -> {\n                val view = LinearLayout(readerThemedContext)\n                WebtoonTransitionHolder(view, viewer)\n            }\n            else -> error(\"Unknown view type\")\n        }\n    }\n\n    /**\n     * Binds an existing view [holder] with the item at the given [position].\n     */\n    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {\n        val item = items[position]\n        when (holder) {\n            is WebtoonPageHolder -> holder.bind(item as ReaderPage)\n            is WebtoonTransitionHolder -> holder.bind(item as ChapterTransition)\n        }\n    }\n\n    /**\n     * Recycles an existing view [holder] before adding it to the view pool.\n     */\n    override fun onViewRecycled(holder: RecyclerView.ViewHolder) {\n        when (holder) {\n            is WebtoonPageHolder -> holder.recycle()\n            is WebtoonTransitionHolder -> holder.recycle()\n        }\n    }\n\n    /**\n     * Diff util callback used to dispatch delta updates instead of full dataset changes.\n     */\n    private class Callback(\n        private val oldItems: List<Any>,\n        private val newItems: List<Any>,\n    ) : DiffUtil.Callback() {\n\n        /**\n         * Returns true if these two items are the same.\n         */\n        override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {\n            val oldItem = oldItems[oldItemPosition]\n            val newItem = newItems[newItemPosition]\n\n            return oldItem == newItem\n        }\n\n        /**\n         * Returns true if the contents of the items are the same.\n         */\n        override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {\n            return true\n        }\n\n        /**\n         * Returns the size of the old list.\n         */\n        override fun getOldListSize(): Int {\n            return oldItems.size\n        }\n\n        /**\n         * Returns the size of the new list.\n         */\n        override fun getNewListSize(): Int {\n            return newItems.size\n        }\n    }\n}\n\n/**\n * View holder type of a chapter page view.\n */\nprivate const val PAGE_VIEW = 0\n\n/**\n * View holder type of a chapter transition view.\n */\nprivate const val TRANSITION_VIEW = 1\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonBaseHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.content.Context\nimport android.view.View\nimport android.view.ViewGroup.LayoutParams\nimport androidx.recyclerview.widget.RecyclerView\n\nabstract class WebtoonBaseHolder(\n    view: View,\n    protected val viewer: WebtoonViewer,\n) : RecyclerView.ViewHolder(view) {\n\n    /**\n     * Context getter because it's used often.\n     */\n    val context: Context get() = itemView.context\n\n    /**\n     * Called when the view is recycled and being added to the view pool.\n     */\n    open fun recycle() {}\n\n    /**\n     * Extension method to set layout params to wrap content on this view.\n     */\n    protected fun View.wrapContent() {\n        layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerConfig\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.DisabledNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.EdgeNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.KindlishNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.LNavigation\nimport eu.kanade.tachiyomi.ui.reader.viewer.navigation.RightAndLeftNavigation\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * Configuration used by webtoon viewers.\n */\nclass WebtoonConfig(\n    scope: CoroutineScope,\n    readerPreferences: ReaderPreferences = Injekt.get(),\n) : ViewerConfig(readerPreferences, scope) {\n\n    var themeChangedListener: (() -> Unit)? = null\n\n    var imageCropBorders = false\n        private set\n\n    var zoomOutDisabled = false\n        private set\n\n    var zoomPropertyChangedListener: ((Boolean) -> Unit)? = null\n\n    var sidePadding = 0\n        private set\n\n    var doubleTapZoom = true\n        private set\n\n    var doubleTapZoomChangedListener: ((Boolean) -> Unit)? = null\n\n    val theme = readerPreferences.readerTheme.get()\n\n    init {\n        readerPreferences.cropBordersWebtoon\n            .register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.webtoonSidePadding\n            .register({ sidePadding = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.navigationModeWebtoon\n            .register({ navigationMode = it }, { updateNavigation(it) })\n\n        readerPreferences.webtoonNavInverted\n            .register({ tappingInverted = it }, { navigator.invertMode = it })\n        readerPreferences.webtoonNavInverted.changes()\n            .drop(1)\n            .onEach { navigationModeChangedListener?.invoke() }\n            .launchIn(scope)\n\n        readerPreferences.dualPageSplitWebtoon\n            .register({ dualPageSplit = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.dualPageInvertWebtoon\n            .register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() })\n\n        readerPreferences.dualPageRotateToFitWebtoon\n            .register(\n                { dualPageRotateToFit = it },\n                { imagePropertyChangedListener?.invoke() },\n            )\n\n        readerPreferences.dualPageRotateToFitInvertWebtoon\n            .register(\n                { dualPageRotateToFitInvert = it },\n                { imagePropertyChangedListener?.invoke() },\n            )\n\n        readerPreferences.webtoonDisableZoomOut\n            .register(\n                { zoomOutDisabled = it },\n                { zoomPropertyChangedListener?.invoke(it) },\n            )\n\n        readerPreferences.webtoonDoubleTapZoomEnabled\n            .register(\n                { doubleTapZoom = it },\n                { doubleTapZoomChangedListener?.invoke(it) },\n            )\n\n        readerPreferences.readerTheme.changes()\n            .drop(1)\n            .distinctUntilChanged()\n            .onEach { themeChangedListener?.invoke() }\n            .launchIn(scope)\n    }\n\n    override var navigator: ViewerNavigation = defaultNavigation()\n        set(value) {\n            field = value.also { it.invertMode = tappingInverted }\n        }\n\n    override fun defaultNavigation(): ViewerNavigation {\n        return LNavigation()\n    }\n\n    override fun updateNavigation(navigationMode: Int) {\n        this.navigator = when (navigationMode) {\n            0 -> defaultNavigation()\n            1 -> LNavigation()\n            2 -> KindlishNavigation()\n            3 -> EdgeNavigation()\n            4 -> RightAndLeftNavigation()\n            5 -> DisabledNavigation()\n            else -> defaultNavigation()\n        }\n        navigationModeChangedListener?.invoke()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonFrame.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.content.Context\nimport android.graphics.Rect\nimport android.view.GestureDetector\nimport android.view.MotionEvent\nimport android.view.ScaleGestureDetector\nimport android.widget.FrameLayout\n\n/**\n * Frame layout which contains a [WebtoonRecyclerView]. It's needed to handle touch events,\n * because the recyclerview is scaled and its touch events are translated, which breaks the\n * detectors.\n *\n * TODO consider integrating this class into [WebtoonViewer].\n */\nclass WebtoonFrame(context: Context) : FrameLayout(context) {\n\n    /**\n     * Scale detector, either with pinch or quick scale.\n     */\n    private val scaleDetector = ScaleGestureDetector(context, ScaleListener())\n\n    /**\n     * Fling detector.\n     */\n    private val flingDetector = GestureDetector(context, FlingListener())\n\n    var doubleTapZoom = true\n        set(value) {\n            field = value\n            recycler?.doubleTapZoom = value\n            scaleDetector.isQuickScaleEnabled = value\n        }\n\n    var zoomOutDisabled = false\n        set(value) {\n            field = value\n            recycler?.zoomOutDisabled = value\n        }\n\n    /**\n     * Recycler view added in this frame.\n     */\n    private val recycler: WebtoonRecyclerView?\n        get() = getChildAt(0) as? WebtoonRecyclerView\n\n    /**\n     * Dispatches a touch event to the detectors.\n     */\n    override fun dispatchTouchEvent(ev: MotionEvent): Boolean {\n        scaleDetector.onTouchEvent(ev)\n        flingDetector.onTouchEvent(ev)\n\n        // Get the bounding box of the recyclerview and translate any motion events to be within it.\n        // Used to allow scrolling outside the recyclerview.\n        val recyclerRect = Rect()\n        recycler?.getHitRect(recyclerRect) ?: return super.dispatchTouchEvent(ev)\n        // Shrink the box to account for any rounding issues.\n        recyclerRect.inset(1, 1)\n\n        if (recyclerRect.right < recyclerRect.left || recyclerRect.bottom < recyclerRect.top) {\n            return super.dispatchTouchEvent(ev)\n        }\n\n        ev.setLocation(\n            ev.x.coerceIn(recyclerRect.left.toFloat(), recyclerRect.right.toFloat()),\n            ev.y.coerceIn(recyclerRect.top.toFloat(), recyclerRect.bottom.toFloat()),\n        )\n        return super.dispatchTouchEvent(ev)\n    }\n\n    /**\n     * Scale listener used to delegate events to the recycler view.\n     */\n    inner class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener() {\n        override fun onScaleBegin(detector: ScaleGestureDetector): Boolean {\n            recycler?.onScaleBegin()\n            return true\n        }\n\n        override fun onScale(detector: ScaleGestureDetector): Boolean {\n            recycler?.onScale(detector.scaleFactor)\n            return true\n        }\n\n        override fun onScaleEnd(detector: ScaleGestureDetector) {\n            recycler?.onScaleEnd()\n        }\n    }\n\n    /**\n     * Fling listener used to delegate events to the recycler view.\n     */\n    inner class FlingListener : GestureDetector.SimpleOnGestureListener() {\n        override fun onDown(e: MotionEvent): Boolean {\n            return true\n        }\n\n        override fun onFling(\n            e1: MotionEvent?,\n            e2: MotionEvent,\n            velocityX: Float,\n            velocityY: Float,\n        ): Boolean {\n            recycler?.onManualScroll()\n            return recycler?.zoomFling(velocityX.toInt(), velocityY.toInt()) ?: false\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonLayoutManager.kt",
    "content": "@file:Suppress(\"PackageDirectoryMismatch\")\n\npackage androidx.recyclerview.widget\n\nimport android.content.Context\nimport androidx.recyclerview.widget.RecyclerView.NO_POSITION\n\n/**\n * Layout manager used by the webtoon viewer. Item prefetch is disabled because the extra layout\n * space feature is used which allows setting the image even if the holder is not visible,\n * avoiding (in most cases) black views when they are visible.\n *\n * This layout manager uses the same package name as the support library in order to use a package\n * protected method.\n */\nclass WebtoonLayoutManager(context: Context, private val extraLayoutSpace: Int) : LinearLayoutManager(context) {\n\n    init {\n        isItemPrefetchEnabled = false\n    }\n\n    /**\n     * Returns the custom extra layout space.\n     */\n    @Deprecated(\"Deprecated in Java\")\n    override fun getExtraLayoutSpace(state: RecyclerView.State): Int {\n        return extraLayoutSpace\n    }\n\n    /**\n     * Returns the position of the last item whose end side is visible on screen.\n     */\n    fun findLastEndVisibleItemPosition(): Int {\n        ensureLayoutState()\n        val callback = if (mOrientation == HORIZONTAL) {\n            mHorizontalBoundCheck\n        } else {\n            mVerticalBoundCheck\n        }.mCallback\n        val start = callback.parentStart\n        val end = callback.parentEnd\n        for (i in childCount - 1 downTo 0) {\n            val child = getChildAt(i)!!\n            val childStart = callback.getChildStart(child)\n            val childEnd = callback.getChildEnd(child)\n            if (childEnd <= end || childStart < start) {\n                return getPosition(child)\n            }\n        }\n        return NO_POSITION\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.content.res.Resources\nimport android.view.LayoutInflater\nimport android.view.ViewGroup\nimport android.view.ViewGroup.LayoutParams.MATCH_PARENT\nimport android.view.ViewGroup.LayoutParams.WRAP_CONTENT\nimport android.widget.FrameLayout\nimport androidx.core.view.isVisible\nimport androidx.core.view.updateLayoutParams\nimport androidx.core.view.updateMargins\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView\nimport eu.kanade.presentation.util.formattedMessage\nimport eu.kanade.tachiyomi.databinding.ReaderErrorBinding\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderProgressIndicator\nimport eu.kanade.tachiyomi.ui.webview.WebViewActivity\nimport eu.kanade.tachiyomi.util.system.dpToPx\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.MainScope\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.supervisorScope\nimport logcat.LogPriority\nimport okio.Buffer\nimport okio.BufferedSource\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\n\n/**\n * Holder of the webtoon reader for a single page of a chapter.\n *\n * @param frame the root view for this holder.\n * @param viewer the webtoon viewer.\n * @constructor creates a new webtoon holder.\n */\nclass WebtoonPageHolder(\n    private val frame: ReaderPageImageView,\n    viewer: WebtoonViewer,\n) : WebtoonBaseHolder(frame, viewer) {\n\n    /**\n     * Loading progress bar to indicate the current progress.\n     */\n    private val progressIndicator = createProgressIndicator()\n\n    /**\n     * Progress bar container. Needed to keep a minimum height size of the holder, otherwise the\n     * adapter would create more views to fill the screen, which is not wanted.\n     */\n    private lateinit var progressContainer: ViewGroup\n\n    /**\n     * Error layout to show when the image fails to load.\n     */\n    private var errorLayout: ReaderErrorBinding? = null\n\n    /**\n     * Getter to retrieve the height of the recycler view.\n     */\n    private val parentHeight\n        get() = viewer.recycler.height\n\n    /**\n     * Page of a chapter.\n     */\n    private var page: ReaderPage? = null\n\n    private val scope = MainScope()\n\n    /**\n     * Job for loading the page.\n     */\n    private var loadJob: Job? = null\n\n    init {\n        refreshLayoutParams()\n\n        frame.onImageLoaded = { onImageDecoded() }\n        frame.onImageLoadError = { error -> setError(error) }\n        frame.onScaleChanged = { viewer.activity.hideMenu() }\n    }\n\n    /**\n     * Binds the given [page] with this view holder, subscribing to its state.\n     */\n    fun bind(page: ReaderPage) {\n        this.page = page\n        loadJob?.cancel()\n        loadJob = scope.launch { loadPageAndProcessStatus() }\n        refreshLayoutParams()\n    }\n\n    private fun refreshLayoutParams() {\n        frame.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT).apply {\n            if (!viewer.isContinuous) {\n                bottomMargin = 15.dpToPx\n            }\n\n            val margin = Resources.getSystem().displayMetrics.widthPixels * (viewer.config.sidePadding / 100f)\n            marginEnd = margin.toInt()\n            marginStart = margin.toInt()\n        }\n    }\n\n    /**\n     * Called when the view is recycled and added to the view pool.\n     */\n    override fun recycle() {\n        loadJob?.cancel()\n        loadJob = null\n\n        removeErrorLayout()\n        frame.recycle()\n        progressIndicator.setProgress(0)\n        progressContainer.isVisible = true\n    }\n\n    /**\n     * Loads the page and processes changes to the page's status.\n     *\n     * Returns immediately if there is no page or the page has no PageLoader.\n     * Otherwise, this function does not return. It will continue to process status changes until\n     * the Job is cancelled.\n     */\n    private suspend fun loadPageAndProcessStatus() {\n        val page = page ?: return\n        val loader = page.chapter.pageLoader ?: return\n        supervisorScope {\n            launchIO {\n                loader.loadPage(page)\n            }\n            page.statusFlow.collectLatest { state ->\n                when (state) {\n                    Page.State.Queue -> setQueued()\n                    Page.State.LoadPage -> setLoading()\n                    Page.State.DownloadImage -> {\n                        setDownloading()\n                        page.progressFlow.collectLatest { value ->\n                            progressIndicator.setProgress(value)\n                        }\n                    }\n                    Page.State.Ready -> setImage()\n                    is Page.State.Error -> setError(state.error)\n                }\n            }\n        }\n    }\n\n    /**\n     * Called when the page is queued.\n     */\n    private fun setQueued() {\n        progressContainer.isVisible = true\n        progressIndicator.show()\n        removeErrorLayout()\n    }\n\n    /**\n     * Called when the page is loading.\n     */\n    private fun setLoading() {\n        progressContainer.isVisible = true\n        progressIndicator.show()\n        removeErrorLayout()\n    }\n\n    /**\n     * Called when the page is downloading\n     */\n    private fun setDownloading() {\n        progressContainer.isVisible = true\n        progressIndicator.show()\n        removeErrorLayout()\n    }\n\n    /**\n     * Called when the page is ready.\n     */\n    private suspend fun setImage() {\n        progressIndicator.setProgress(0)\n\n        val streamFn = page?.stream ?: return\n\n        try {\n            val (source, isAnimated) = withIOContext {\n                val source = streamFn().use { process(Buffer().readFrom(it)) }\n                val isAnimated = ImageUtil.isAnimatedAndSupported(source)\n                Pair(source, isAnimated)\n            }\n            withUIContext {\n                frame.setImage(\n                    source,\n                    isAnimated,\n                    ReaderPageImageView.Config(\n                        zoomDuration = viewer.config.doubleTapAnimDuration,\n                        minimumScaleType = SubsamplingScaleImageView.SCALE_TYPE_FIT_WIDTH,\n                        cropBorders = viewer.config.imageCropBorders,\n                    ),\n                )\n                removeErrorLayout()\n            }\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e)\n            withUIContext {\n                setError(e)\n            }\n        }\n    }\n\n    private fun process(imageSource: BufferedSource): BufferedSource {\n        if (viewer.config.dualPageRotateToFit) {\n            return rotateDualPage(imageSource)\n        }\n\n        if (viewer.config.dualPageSplit) {\n            val isDoublePage = ImageUtil.isWideImage(imageSource)\n            if (isDoublePage) {\n                val upperSide = if (viewer.config.dualPageInvert) ImageUtil.Side.LEFT else ImageUtil.Side.RIGHT\n                return ImageUtil.splitAndMerge(imageSource, upperSide)\n            }\n        }\n\n        return imageSource\n    }\n\n    private fun rotateDualPage(imageSource: BufferedSource): BufferedSource {\n        val isDoublePage = ImageUtil.isWideImage(imageSource)\n        return if (isDoublePage) {\n            val rotation = if (viewer.config.dualPageRotateToFitInvert) -90f else 90f\n            ImageUtil.rotateImage(imageSource, rotation)\n        } else {\n            imageSource\n        }\n    }\n\n    /**\n     * Called when the page has an error.\n     */\n    private fun setError(error: Throwable?) {\n        progressContainer.isVisible = false\n        initErrorLayout(error)\n    }\n\n    /**\n     * Called when the image is decoded and going to be displayed.\n     */\n    private fun onImageDecoded() {\n        progressContainer.isVisible = false\n        removeErrorLayout()\n    }\n\n    /**\n     * Creates a new progress bar.\n     */\n    private fun createProgressIndicator(): ReaderProgressIndicator {\n        progressContainer = FrameLayout(context)\n        frame.addView(progressContainer, MATCH_PARENT, parentHeight)\n\n        val progress = ReaderProgressIndicator(context).apply {\n            updateLayoutParams<FrameLayout.LayoutParams> {\n                updateMargins(top = parentHeight / 4)\n            }\n        }\n        progressContainer.addView(progress)\n        return progress\n    }\n\n    /**\n     * Initializes a button to retry pages.\n     */\n    private fun initErrorLayout(error: Throwable?): ReaderErrorBinding {\n        if (errorLayout == null) {\n            errorLayout = ReaderErrorBinding.inflate(LayoutInflater.from(context), frame, true)\n            errorLayout?.root?.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, (parentHeight * 0.8).toInt())\n            errorLayout?.actionRetry?.setOnClickListener {\n                page?.let { it.chapter.pageLoader?.retryPage(it) }\n            }\n        }\n\n        val imageUrl = page?.imageUrl\n        errorLayout?.actionOpenInWebView?.isVisible = imageUrl != null\n        if (imageUrl != null) {\n            if (imageUrl.startsWith(\"http\", true)) {\n                errorLayout?.actionOpenInWebView?.setOnClickListener {\n                    val sourceId = viewer.activity.viewModel.manga?.source\n\n                    val intent = WebViewActivity.newIntent(context, imageUrl, sourceId)\n                    context.startActivity(intent)\n                }\n            }\n        }\n\n        errorLayout?.errorMessage?.text = with(context) { error?.formattedMessage }\n            ?: context.stringResource(MR.strings.decode_image_error)\n\n        return errorLayout!!\n    }\n\n    /**\n     * Removes the decode error layout from the holder, if found.\n     */\n    private fun removeErrorLayout() {\n        errorLayout?.let {\n            frame.removeView(it.root)\n            errorLayout = null\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.animation.AnimatorSet\nimport android.animation.ValueAnimator\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.view.HapticFeedbackConstants\nimport android.view.MotionEvent\nimport android.view.ViewConfiguration\nimport android.view.animation.DecelerateInterpolator\nimport androidx.core.animation.doOnEnd\nimport androidx.recyclerview.widget.LinearLayoutManager\nimport androidx.recyclerview.widget.RecyclerView\nimport eu.kanade.tachiyomi.ui.reader.viewer.GestureDetectorWithLongTap\nimport kotlin.math.abs\n\n/**\n * Implementation of a [RecyclerView] used by the webtoon reader.\n */\nclass WebtoonRecyclerView @JvmOverloads constructor(\n    context: Context,\n    attrs: AttributeSet? = null,\n    defStyle: Int = 0,\n) : RecyclerView(context, attrs, defStyle) {\n\n    private var isZooming = false\n    private var atLastPosition = false\n    private var atFirstPosition = false\n    private var halfWidth = 0\n    private var halfHeight = 0\n    var originalHeight = 0\n        private set\n    private var heightSet = false\n    private var firstVisibleItemPosition = 0\n    private var lastVisibleItemPosition = 0\n    private var currentScale = DEFAULT_RATE\n    var zoomOutDisabled = false\n        set(value) {\n            field = value\n            if (value && currentScale < DEFAULT_RATE) {\n                zoom(currentScale, DEFAULT_RATE, x, 0f, y, 0f)\n            }\n        }\n    private val minRate\n        get() = if (zoomOutDisabled) DEFAULT_RATE else MIN_RATE\n\n    private val listener = GestureListener()\n    private val detector = Detector()\n\n    var doubleTapZoom = true\n\n    var tapListener: ((MotionEvent) -> Unit)? = null\n    var longTapListener: ((MotionEvent) -> Boolean)? = null\n\n    private var isManuallyScrolling = false\n    private var tapDuringManualScroll = false\n\n    override fun onMeasure(widthSpec: Int, heightSpec: Int) {\n        halfWidth = MeasureSpec.getSize(widthSpec) / 2\n        halfHeight = MeasureSpec.getSize(heightSpec) / 2\n        if (!heightSet) {\n            originalHeight = MeasureSpec.getSize(heightSpec)\n            heightSet = true\n        }\n        super.onMeasure(widthSpec, heightSpec)\n    }\n\n    override fun onTouchEvent(e: MotionEvent): Boolean {\n        if (e.actionMasked == MotionEvent.ACTION_DOWN) {\n            tapDuringManualScroll = isManuallyScrolling\n        }\n\n        detector.onTouchEvent(e)\n        return super.onTouchEvent(e)\n    }\n\n    override fun onScrolled(dx: Int, dy: Int) {\n        super.onScrolled(dx, dy)\n        val layoutManager = layoutManager\n        lastVisibleItemPosition =\n            (layoutManager as LinearLayoutManager).findLastVisibleItemPosition()\n        firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition()\n    }\n\n    override fun onScrollStateChanged(state: Int) {\n        super.onScrollStateChanged(state)\n        val layoutManager = layoutManager\n        val visibleItemCount = layoutManager?.childCount ?: 0\n        val totalItemCount = layoutManager?.itemCount ?: 0\n        atLastPosition = visibleItemCount > 0 && lastVisibleItemPosition == totalItemCount - 1\n        atFirstPosition = firstVisibleItemPosition == 0\n\n        if (state == SCROLL_STATE_IDLE) {\n            isManuallyScrolling = false\n        }\n    }\n\n    private fun getPositionX(positionX: Float): Float {\n        if (currentScale < 1) {\n            return 0f\n        }\n        val maxPositionX = halfWidth * (currentScale - 1)\n        return positionX.coerceIn(-maxPositionX, maxPositionX)\n    }\n\n    private fun getPositionY(positionY: Float): Float {\n        if (currentScale < 1) {\n            return (originalHeight / 2 - halfHeight).toFloat()\n        }\n        val maxPositionY = halfHeight * (currentScale - 1)\n        return positionY.coerceIn(-maxPositionY, maxPositionY)\n    }\n\n    private fun zoom(\n        fromRate: Float,\n        toRate: Float,\n        fromX: Float,\n        toX: Float,\n        fromY: Float,\n        toY: Float,\n    ) {\n        isZooming = true\n        val animatorSet = AnimatorSet()\n        val translationXAnimator = ValueAnimator.ofFloat(fromX, toX)\n        translationXAnimator.addUpdateListener { animation -> x = animation.animatedValue as Float }\n\n        val translationYAnimator = ValueAnimator.ofFloat(fromY, toY)\n        translationYAnimator.addUpdateListener { animation -> y = animation.animatedValue as Float }\n\n        val scaleAnimator = ValueAnimator.ofFloat(fromRate, toRate)\n        scaleAnimator.addUpdateListener { animation ->\n            currentScale = animation.animatedValue as Float\n            setScaleRate(currentScale)\n        }\n        animatorSet.playTogether(translationXAnimator, translationYAnimator, scaleAnimator)\n        animatorSet.duration = ANIMATOR_DURATION_TIME.toLong()\n        animatorSet.interpolator = DecelerateInterpolator()\n        animatorSet.start()\n        animatorSet.doOnEnd {\n            isZooming = false\n            currentScale = toRate\n        }\n    }\n\n    fun zoomFling(velocityX: Int, velocityY: Int): Boolean {\n        if (currentScale <= 1f) return false\n\n        val distanceTimeFactor = 0.4f\n        val animatorSet = AnimatorSet()\n\n        if (velocityX != 0) {\n            val dx = (distanceTimeFactor * velocityX / 2)\n            val newX = getPositionX(x + dx)\n            val translationXAnimator = ValueAnimator.ofFloat(x, newX)\n            translationXAnimator.addUpdateListener { animation -> x = getPositionX(animation.animatedValue as Float) }\n            animatorSet.play(translationXAnimator)\n        }\n        if (velocityY != 0 && (atFirstPosition || atLastPosition)) {\n            val dy = (distanceTimeFactor * velocityY / 2)\n            val newY = getPositionY(y + dy)\n            val translationYAnimator = ValueAnimator.ofFloat(y, newY)\n            translationYAnimator.addUpdateListener { animation -> y = getPositionY(animation.animatedValue as Float) }\n            animatorSet.play(translationYAnimator)\n        }\n\n        animatorSet.duration = 400\n        animatorSet.interpolator = DecelerateInterpolator()\n        animatorSet.start()\n\n        return true\n    }\n\n    private fun zoomScrollBy(dx: Int, dy: Int) {\n        if (dx != 0) {\n            x = getPositionX(x + dx)\n        }\n        if (dy != 0) {\n            y = getPositionY(y + dy)\n        }\n    }\n\n    private fun setScaleRate(rate: Float) {\n        scaleX = rate\n        scaleY = rate\n    }\n\n    fun onScale(scaleFactor: Float) {\n        currentScale *= scaleFactor\n        currentScale = currentScale.coerceIn(\n            minRate,\n            MAX_SCALE_RATE,\n        )\n\n        setScaleRate(currentScale)\n\n        layoutParams.height = if (currentScale < 1) {\n            (originalHeight / currentScale).toInt()\n        } else {\n            originalHeight\n        }\n        halfHeight = layoutParams.height / 2\n\n        if (currentScale != DEFAULT_RATE) {\n            x = getPositionX(x)\n            y = getPositionY(y)\n        } else {\n            x = 0f\n            y = 0f\n        }\n\n        requestLayout()\n    }\n\n    fun onScaleBegin() {\n        if (detector.isDoubleTapping) {\n            detector.isQuickScaling = true\n        }\n    }\n\n    fun onScaleEnd() {\n        if (scaleX < minRate) {\n            zoom(currentScale, minRate, x, 0f, y, 0f)\n        }\n    }\n\n    fun onManualScroll() {\n        isManuallyScrolling = true\n    }\n\n    inner class GestureListener : GestureDetectorWithLongTap.Listener() {\n\n        override fun onSingleTapConfirmed(ev: MotionEvent): Boolean {\n            if (!tapDuringManualScroll) {\n                tapListener?.invoke(ev)\n            }\n            return false\n        }\n\n        override fun onDoubleTap(ev: MotionEvent): Boolean {\n            detector.isDoubleTapping = true\n            return false\n        }\n\n        fun onDoubleTapConfirmed(ev: MotionEvent) {\n            if (!isZooming && doubleTapZoom) {\n                if (scaleX != DEFAULT_RATE) {\n                    zoom(currentScale, DEFAULT_RATE, x, 0f, y, 0f)\n                    layoutParams.height = originalHeight\n                    halfHeight = layoutParams.height / 2\n                    requestLayout()\n                } else {\n                    val toScale = 2f\n                    val toX = (halfWidth - ev.x) * (toScale - 1)\n                    val toY = (halfHeight - ev.y) * (toScale - 1)\n                    zoom(DEFAULT_RATE, toScale, 0f, toX, 0f, toY)\n                }\n            }\n        }\n\n        override fun onLongTapConfirmed(ev: MotionEvent) {\n            if (longTapListener?.invoke(ev) == true) {\n                performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)\n            }\n        }\n    }\n\n    inner class Detector : GestureDetectorWithLongTap(context, listener) {\n\n        private var scrollPointerId = 0\n        private var downX = 0\n        private var downY = 0\n        private val touchSlop = ViewConfiguration.get(context).scaledTouchSlop\n        private var isZoomDragging = false\n        var isDoubleTapping = false\n        var isQuickScaling = false\n\n        override fun onTouchEvent(ev: MotionEvent): Boolean {\n            val action = ev.actionMasked\n            val actionIndex = ev.actionIndex\n\n            when (action) {\n                MotionEvent.ACTION_DOWN -> {\n                    scrollPointerId = ev.getPointerId(0)\n                    downX = (ev.x + 0.5f).toInt()\n                    downY = (ev.y + 0.5f).toInt()\n                }\n                MotionEvent.ACTION_POINTER_DOWN -> {\n                    scrollPointerId = ev.getPointerId(actionIndex)\n                    downX = (ev.getX(actionIndex) + 0.5f).toInt()\n                    downY = (ev.getY(actionIndex) + 0.5f).toInt()\n                }\n                MotionEvent.ACTION_MOVE -> {\n                    if (isDoubleTapping && isQuickScaling) {\n                        return true\n                    }\n\n                    val index = ev.findPointerIndex(scrollPointerId)\n                    if (index < 0) {\n                        return false\n                    }\n\n                    val x = (ev.getX(index) + 0.5f).toInt()\n                    val y = (ev.getY(index) + 0.5f).toInt()\n                    var dx = x - downX\n                    var dy = if (atFirstPosition || atLastPosition) y - downY else 0\n\n                    if (!isZoomDragging && currentScale > 1f) {\n                        var startScroll = false\n\n                        if (abs(dx) > touchSlop) {\n                            if (dx < 0) {\n                                dx += touchSlop\n                            } else {\n                                dx -= touchSlop\n                            }\n                            startScroll = true\n                        }\n                        if (abs(dy) > touchSlop) {\n                            if (dy < 0) {\n                                dy += touchSlop\n                            } else {\n                                dy -= touchSlop\n                            }\n                            startScroll = true\n                        }\n\n                        if (startScroll) {\n                            isZoomDragging = true\n                        }\n                    }\n\n                    if (isZoomDragging) {\n                        zoomScrollBy(dx, dy)\n                    }\n                }\n                MotionEvent.ACTION_UP -> {\n                    if (isDoubleTapping && !isQuickScaling) {\n                        listener.onDoubleTapConfirmed(ev)\n                    }\n                    isZoomDragging = false\n                    isDoubleTapping = false\n                    isQuickScaling = false\n                }\n                MotionEvent.ACTION_CANCEL -> {\n                    isZoomDragging = false\n                    isDoubleTapping = false\n                    isQuickScaling = false\n                }\n            }\n            return super.onTouchEvent(ev)\n        }\n    }\n}\n\nprivate const val ANIMATOR_DURATION_TIME = 200\nprivate const val MIN_RATE = 0.5f\nprivate const val DEFAULT_RATE = 1f\nprivate const val MAX_SCALE_RATE = 3f\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonSubsamplingImageView.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.view.MotionEvent\nimport com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView\n\n/**\n * Implementation of subsampling scale image view that ignores all touch events, because the\n * webtoon viewer handles all the gestures.\n */\nclass WebtoonSubsamplingImageView @JvmOverloads constructor(\n    context: Context,\n    attrs: AttributeSet? = null,\n) : SubsamplingScaleImageView(context, attrs) {\n\n    override fun onTouchEvent(event: MotionEvent): Boolean {\n        return false\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonTransitionHolder.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.view.Gravity\nimport android.view.ViewGroup.LayoutParams.MATCH_PARENT\nimport android.view.ViewGroup.LayoutParams.WRAP_CONTENT\nimport android.widget.LinearLayout\nimport androidx.appcompat.widget.AppCompatButton\nimport androidx.appcompat.widget.AppCompatTextView\nimport androidx.core.view.isNotEmpty\nimport androidx.core.view.isVisible\nimport com.google.android.material.progressindicator.CircularProgressIndicator\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderChapter\nimport eu.kanade.tachiyomi.ui.reader.viewer.ReaderTransitionView\nimport eu.kanade.tachiyomi.util.system.dpToPx\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.MainScope\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.launch\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\n\n/**\n * Holder of the webtoon viewer that contains a chapter transition.\n */\nclass WebtoonTransitionHolder(\n    val layout: LinearLayout,\n    viewer: WebtoonViewer,\n) : WebtoonBaseHolder(layout, viewer) {\n\n    private val scope = MainScope()\n    private var stateJob: Job? = null\n\n    private val transitionView = ReaderTransitionView(context)\n\n    /**\n     * View container of the current status of the transition page. Child views will be added\n     * dynamically.\n     */\n    private var pagesContainer = LinearLayout(context).apply {\n        orientation = LinearLayout.VERTICAL\n        gravity = Gravity.CENTER\n    }\n\n    init {\n        layout.layoutParams = LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT)\n        layout.orientation = LinearLayout.VERTICAL\n        layout.gravity = Gravity.CENTER\n\n        val paddingVertical = 128.dpToPx\n        val paddingHorizontal = 32.dpToPx\n        layout.setPadding(paddingHorizontal, paddingVertical, paddingHorizontal, paddingVertical)\n\n        val childMargins = 16.dpToPx\n        val childParams = LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT).apply {\n            setMargins(0, childMargins, 0, childMargins)\n        }\n\n        layout.addView(transitionView)\n        layout.addView(pagesContainer, childParams)\n    }\n\n    /**\n     * Binds the given [transition] with this view holder, subscribing to its state.\n     */\n    fun bind(transition: ChapterTransition) {\n        transitionView.bind(transition, viewer.downloadManager, viewer.activity.viewModel.manga)\n\n        transition.to?.let { observeStatus(it, transition) }\n    }\n\n    /**\n     * Called when the view is recycled and being added to the view pool.\n     */\n    override fun recycle() {\n        stateJob?.cancel()\n    }\n\n    /**\n     * Observes the status of the page list of the next/previous chapter. Whenever there's a new\n     * state, the pages container is cleaned up before setting the new state.\n     */\n    private fun observeStatus(chapter: ReaderChapter, transition: ChapterTransition) {\n        stateJob?.cancel()\n        stateJob = scope.launch {\n            chapter.stateFlow\n                .collectLatest { state ->\n                    pagesContainer.removeAllViews()\n                    when (state) {\n                        is ReaderChapter.State.Loading -> setLoading()\n                        is ReaderChapter.State.Error -> setError(state.error, transition)\n                        is ReaderChapter.State.Wait, is ReaderChapter.State.Loaded -> {\n                            // No additional view is added\n                        }\n                    }\n                    pagesContainer.isVisible = pagesContainer.isNotEmpty()\n                }\n        }\n    }\n\n    /**\n     * Sets the loading state on the pages container.\n     */\n    private fun setLoading() {\n        val progress = CircularProgressIndicator(context)\n        progress.isIndeterminate = true\n\n        val textView = AppCompatTextView(context).apply {\n            wrapContent()\n            text = context.stringResource(MR.strings.transition_pages_loading)\n        }\n\n        pagesContainer.addView(progress)\n        pagesContainer.addView(textView)\n    }\n\n    /**\n     * Sets the error state on the pages container.\n     */\n    private fun setError(error: Throwable, transition: ChapterTransition) {\n        val textView = AppCompatTextView(context).apply {\n            wrapContent()\n            text = context.stringResource(MR.strings.transition_pages_error, error.message ?: \"\")\n        }\n\n        val retryBtn = AppCompatButton(context).apply {\n            wrapContent()\n            text = context.stringResource(MR.strings.action_retry)\n            setOnClickListener {\n                val toChapter = transition.to\n                if (toChapter != null) {\n                    viewer.activity.requestPreloadChapter(toChapter)\n                }\n            }\n        }\n\n        pagesContainer.addView(textView)\n        pagesContainer.addView(retryBtn)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt",
    "content": "package eu.kanade.tachiyomi.ui.reader.viewer.webtoon\n\nimport android.graphics.PointF\nimport android.view.KeyEvent\nimport android.view.MotionEvent\nimport android.view.View\nimport android.view.ViewGroup\nimport android.view.ViewGroup.LayoutParams.MATCH_PARENT\nimport androidx.core.app.ActivityCompat\nimport androidx.core.view.isGone\nimport androidx.core.view.isVisible\nimport androidx.recyclerview.widget.RecyclerView\nimport androidx.recyclerview.widget.WebtoonLayoutManager\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport eu.kanade.tachiyomi.ui.reader.model.ChapterTransition\nimport eu.kanade.tachiyomi.ui.reader.model.ReaderPage\nimport eu.kanade.tachiyomi.ui.reader.model.ViewerChapters\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.ui.reader.viewer.Viewer\nimport eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation.NavigationRegion\nimport kotlinx.coroutines.MainScope\nimport kotlinx.coroutines.cancel\nimport tachiyomi.core.common.util.system.logcat\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport uy.kohesive.injekt.injectLazy\nimport kotlin.math.max\nimport kotlin.math.min\n\n/**\n * Implementation of a [Viewer] to display pages with a [RecyclerView].\n */\nclass WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = true) : Viewer {\n\n    val downloadManager: DownloadManager by injectLazy()\n\n    private val scope = MainScope()\n\n    /**\n     * Recycler view used by this viewer.\n     */\n    val recycler = WebtoonRecyclerView(activity)\n\n    /**\n     * Frame containing the recycler view.\n     */\n    private val frame = WebtoonFrame(activity)\n\n    /**\n     * Distance to scroll when the user taps on one side of the recycler view.\n     */\n    private val scrollDistance = activity.resources.displayMetrics.heightPixels * 3 / 4\n\n    /**\n     * Layout manager of the recycler view.\n     */\n    private val layoutManager = WebtoonLayoutManager(activity, scrollDistance)\n\n    /**\n     * Configuration used by this viewer, like allow taps, or crop image borders.\n     */\n    val config = WebtoonConfig(scope)\n\n    /**\n     * Adapter of the recycler view.\n     */\n    private val adapter = WebtoonAdapter(this)\n\n    /**\n     * Currently active item. It can be a chapter page or a chapter transition.\n     */\n    private var currentPage: Any? = null\n\n    private val threshold: Int =\n        Injekt.get<ReaderPreferences>()\n            .readerHideThreshold\n            .get()\n            .threshold\n\n    init {\n        recycler.setItemViewCacheSize(RECYCLER_VIEW_CACHE_SIZE)\n        recycler.isVisible = false // Don't let the recycler layout yet\n        recycler.layoutParams = ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)\n        recycler.isFocusable = false\n        recycler.itemAnimator = null\n        recycler.layoutManager = layoutManager\n        recycler.adapter = adapter\n        recycler.addOnScrollListener(\n            object : RecyclerView.OnScrollListener() {\n                override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {\n                    onScrolled()\n\n                    if ((dy > threshold || dy < -threshold) && activity.viewModel.state.value.menuVisible) {\n                        activity.hideMenu()\n                    }\n\n                    if (dy < 0) {\n                        val firstIndex = layoutManager.findFirstVisibleItemPosition()\n                        val firstItem = adapter.items.getOrNull(firstIndex)\n                        if (firstItem is ChapterTransition.Prev && firstItem.to != null) {\n                            activity.requestPreloadChapter(firstItem.to)\n                        }\n                    }\n\n                    val lastIndex = layoutManager.findLastEndVisibleItemPosition()\n                    val lastItem = adapter.items.getOrNull(lastIndex)\n                    if (lastItem is ChapterTransition.Next && lastItem.to == null) {\n                        activity.showMenu()\n                    }\n                }\n            },\n        )\n        recycler.tapListener = { event ->\n            val viewPosition = IntArray(2)\n            recycler.getLocationOnScreen(viewPosition)\n            val viewPositionRelativeToWindow = IntArray(2)\n            recycler.getLocationInWindow(viewPositionRelativeToWindow)\n            val pos = PointF(\n                (event.rawX - viewPosition[0] + viewPositionRelativeToWindow[0]) / recycler.width,\n                (event.rawY - viewPosition[1] + viewPositionRelativeToWindow[1]) / recycler.originalHeight,\n            )\n            when (config.navigator.getAction(pos)) {\n                NavigationRegion.MENU -> activity.toggleMenu()\n                NavigationRegion.NEXT, NavigationRegion.RIGHT -> scrollDown()\n                NavigationRegion.PREV, NavigationRegion.LEFT -> scrollUp()\n            }\n        }\n        recycler.longTapListener = f@{ event ->\n            if (activity.viewModel.state.value.menuVisible || config.longTapEnabled) {\n                val child = recycler.findChildViewUnder(event.x, event.y)\n                if (child != null) {\n                    val position = recycler.getChildAdapterPosition(child)\n                    val item = adapter.items.getOrNull(position)\n                    if (item is ReaderPage) {\n                        activity.onPageLongTap(item)\n                        return@f true\n                    }\n                }\n            }\n            false\n        }\n\n        config.imagePropertyChangedListener = {\n            refreshAdapter()\n        }\n\n        config.themeChangedListener = {\n            ActivityCompat.recreate(activity)\n        }\n\n        config.doubleTapZoomChangedListener = {\n            frame.doubleTapZoom = it\n        }\n\n        config.zoomPropertyChangedListener = {\n            frame.zoomOutDisabled = it\n        }\n\n        config.navigationModeChangedListener = {\n            val showOnStart = config.navigationOverlayOnStart || config.forceNavigationOverlay\n            activity.binding.navigationOverlay.setNavigation(config.navigator, showOnStart)\n        }\n\n        frame.layoutParams = ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)\n        frame.addView(recycler)\n    }\n\n    private fun checkAllowPreload(page: ReaderPage?): Boolean {\n        // Page is transition page - preload allowed\n        page ?: return true\n\n        // Initial opening - preload allowed\n        currentPage ?: return true\n\n        val nextItem = adapter.items.getOrNull(adapter.items.size - 1)\n        val nextChapter = (nextItem as? ChapterTransition.Next)?.to ?: (nextItem as? ReaderPage)?.chapter\n\n        // Allow preload for\n        // 1. Going between pages of same chapter\n        // 2. Next chapter page\n        return when (page.chapter) {\n            (currentPage as? ReaderPage)?.chapter -> true\n            nextChapter -> true\n            else -> false\n        }\n    }\n\n    /**\n     * Returns the view this viewer uses.\n     */\n    override fun getView(): View {\n        return frame\n    }\n\n    /**\n     * Destroys this viewer. Called when leaving the reader or swapping viewers.\n     */\n    override fun destroy() {\n        super.destroy()\n        scope.cancel()\n    }\n\n    /**\n     * Called from the RecyclerView listener when a [page] is marked as active. It notifies the\n     * activity of the change and requests the preload of the next chapter if this is the last page.\n     */\n    private fun onPageSelected(page: ReaderPage, allowPreload: Boolean) {\n        val pages = page.chapter.pages ?: return\n        logcat { \"onPageSelected: ${page.number}/${pages.size}\" }\n        activity.onPageSelected(page)\n\n        // Preload next chapter once we're within the last 5 pages of the current chapter\n        val inPreloadRange = pages.size - page.number < 5\n        if (inPreloadRange && allowPreload && page.chapter == adapter.currentChapter) {\n            logcat { \"Request preload next chapter because we're at page ${page.number} of ${pages.size}\" }\n            val nextItem = adapter.items.getOrNull(adapter.items.size - 1)\n            val transitionChapter = (nextItem as? ChapterTransition.Next)?.to ?: (nextItem as?ReaderPage)?.chapter\n            if (transitionChapter != null) {\n                logcat { \"Requesting to preload chapter ${transitionChapter.chapter.chapter_number}\" }\n                activity.requestPreloadChapter(transitionChapter)\n            }\n        }\n    }\n\n    /**\n     * Called from the RecyclerView listener when a [transition] is marked as active. It request the\n     * preload of the destination chapter of the transition.\n     */\n    private fun onTransitionSelected(transition: ChapterTransition) {\n        logcat { \"onTransitionSelected: $transition\" }\n        val toChapter = transition.to\n        if (toChapter != null) {\n            logcat { \"Request preload destination chapter because we're on the transition\" }\n            activity.requestPreloadChapter(toChapter)\n        }\n    }\n\n    /**\n     * Tells this viewer to set the given [chapters] as active.\n     */\n    override fun setChapters(chapters: ViewerChapters) {\n        val forceTransition = config.alwaysShowChapterTransition || currentPage is ChapterTransition\n        adapter.setChapters(chapters, forceTransition)\n\n        if (recycler.isGone) {\n            logcat { \"Recycler first layout\" }\n            val pages = chapters.currChapter.pages ?: return\n            moveToPage(pages[min(chapters.currChapter.requestedPage, pages.lastIndex)])\n            recycler.isVisible = true\n        }\n    }\n\n    /**\n     * Tells this viewer to move to the given [page].\n     */\n    override fun moveToPage(page: ReaderPage) {\n        val position = adapter.items.indexOf(page)\n        if (position != -1) {\n            layoutManager.scrollToPositionWithOffset(position, 0)\n            if (layoutManager.findLastEndVisibleItemPosition() == -1) {\n                onScrolled(pos = position)\n            }\n        } else {\n            logcat { \"Page $page not found in adapter\" }\n        }\n    }\n\n    fun onScrolled(pos: Int? = null) {\n        val position = pos ?: layoutManager.findLastEndVisibleItemPosition()\n        val item = adapter.items.getOrNull(position)\n        val allowPreload = checkAllowPreload(item as? ReaderPage)\n        if (item != null && currentPage != item) {\n            currentPage = item\n            when (item) {\n                is ReaderPage -> onPageSelected(item, allowPreload)\n                is ChapterTransition -> onTransitionSelected(item)\n            }\n        }\n    }\n\n    /**\n     * Scrolls up by [scrollDistance].\n     */\n    private fun scrollUp() {\n        if (config.usePageTransitions) {\n            recycler.smoothScrollBy(0, -scrollDistance)\n        } else {\n            recycler.scrollBy(0, -scrollDistance)\n        }\n    }\n\n    /**\n     * Scrolls down by [scrollDistance].\n     */\n    private fun scrollDown() {\n        if (config.usePageTransitions) {\n            recycler.smoothScrollBy(0, scrollDistance)\n        } else {\n            recycler.scrollBy(0, scrollDistance)\n        }\n    }\n\n    /**\n     * Called from the containing activity when a key [event] is received. It should return true\n     * if the event was handled, false otherwise.\n     */\n    override fun handleKeyEvent(event: KeyEvent): Boolean {\n        val isUp = event.action == KeyEvent.ACTION_UP\n\n        when (event.keyCode) {\n            KeyEvent.KEYCODE_VOLUME_DOWN -> {\n                if (!config.volumeKeysEnabled || activity.viewModel.state.value.menuVisible) {\n                    return false\n                } else if (isUp) {\n                    if (!config.volumeKeysInverted) scrollDown() else scrollUp()\n                }\n            }\n            KeyEvent.KEYCODE_VOLUME_UP -> {\n                if (!config.volumeKeysEnabled || activity.viewModel.state.value.menuVisible) {\n                    return false\n                } else if (isUp) {\n                    if (!config.volumeKeysInverted) scrollUp() else scrollDown()\n                }\n            }\n            KeyEvent.KEYCODE_MENU -> if (isUp) activity.toggleMenu()\n\n            KeyEvent.KEYCODE_DPAD_LEFT,\n            KeyEvent.KEYCODE_DPAD_UP,\n            KeyEvent.KEYCODE_PAGE_UP,\n            -> if (isUp) scrollUp()\n\n            KeyEvent.KEYCODE_DPAD_RIGHT,\n            KeyEvent.KEYCODE_DPAD_DOWN,\n            KeyEvent.KEYCODE_PAGE_DOWN,\n            -> if (isUp) scrollDown()\n            else -> return false\n        }\n        return true\n    }\n\n    /**\n     * Called from the containing activity when a generic motion [event] is received. It should\n     * return true if the event was handled, false otherwise.\n     */\n    override fun handleGenericMotionEvent(event: MotionEvent): Boolean {\n        return false\n    }\n\n    /**\n     * Notifies adapter of changes around the current page to trigger a relayout in the recycler.\n     * Used when an image configuration is changed.\n     */\n    private fun refreshAdapter() {\n        val position = layoutManager.findLastEndVisibleItemPosition()\n        adapter.refresh()\n        adapter.notifyItemRangeChanged(\n            max(0, position - 3),\n            min(position + 3, adapter.itemCount - 1),\n        )\n    }\n}\n\n// Double the cache size to reduce rebinds/recycles incurred by the extra layout space on scroll direction changes\nprivate const val RECYCLER_VIEW_CACHE_SIZE = 4\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/security/UnlockActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.security\n\nimport android.os.Bundle\nimport androidx.biometric.BiometricPrompt\nimport androidx.fragment.app.FragmentActivity\nimport eu.kanade.tachiyomi.ui.base.activity.BaseActivity\nimport eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil\nimport eu.kanade.tachiyomi.util.system.AuthenticatorUtil.startAuthentication\nimport logcat.LogPriority\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\n\n/**\n * Blank activity with a BiometricPrompt.\n */\nclass UnlockActivity : BaseActivity() {\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        startAuthentication(\n            stringResource(MR.strings.unlock_app_title, stringResource(MR.strings.app_name)),\n            confirmationRequired = false,\n            callback = object : AuthenticatorUtil.AuthenticationCallback() {\n                override fun onAuthenticationError(\n                    activity: FragmentActivity?,\n                    errorCode: Int,\n                    errString: CharSequence,\n                ) {\n                    super.onAuthenticationError(activity, errorCode, errString)\n                    logcat(LogPriority.ERROR) { errString.toString() }\n                    finishAffinity()\n                }\n\n                override fun onAuthenticationSucceeded(\n                    activity: FragmentActivity?,\n                    result: BiometricPrompt.AuthenticationResult,\n                ) {\n                    super.onAuthenticationSucceeded(activity, result)\n                    SecureActivityDelegate.unlock()\n                    finish()\n                }\n            },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.setting\n\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.WindowInsetsSides\nimport androidx.compose.foundation.layout.consumeWindowInsets\nimport androidx.compose.foundation.layout.only\nimport androidx.compose.foundation.layout.systemBars\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.ui.Modifier\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.more.settings.screen.SettingsAppearanceScreen\nimport eu.kanade.presentation.more.settings.screen.SettingsDataScreen\nimport eu.kanade.presentation.more.settings.screen.SettingsMainScreen\nimport eu.kanade.presentation.more.settings.screen.SettingsTrackingScreen\nimport eu.kanade.presentation.more.settings.screen.about.AboutScreen\nimport eu.kanade.presentation.util.DefaultNavigatorScreenTransition\nimport eu.kanade.presentation.util.LocalBackPress\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.presentation.util.isTabletUi\nimport tachiyomi.presentation.core.components.TwoPanelBox\n\nclass SettingsScreen(\n    private val destination: Int? = null,\n) : Screen() {\n\n    constructor(destination: Destination) : this(destination.id)\n\n    @Composable\n    override fun Content() {\n        val parentNavigator = LocalNavigator.currentOrThrow\n        if (!isTabletUi()) {\n            Navigator(\n                screen = when (destination) {\n                    Destination.About.id -> AboutScreen\n                    Destination.DataAndStorage.id -> SettingsDataScreen\n                    Destination.Tracking.id -> SettingsTrackingScreen\n                    else -> SettingsMainScreen\n                },\n                onBackPressed = null,\n            ) {\n                val pop: () -> Unit = {\n                    if (it.canPop) {\n                        it.pop()\n                    } else {\n                        parentNavigator.pop()\n                    }\n                }\n                CompositionLocalProvider(LocalBackPress provides pop) {\n                    DefaultNavigatorScreenTransition(navigator = it)\n                }\n            }\n        } else {\n            Navigator(\n                screen = when (destination) {\n                    Destination.About.id -> AboutScreen\n                    Destination.DataAndStorage.id -> SettingsDataScreen\n                    Destination.Tracking.id -> SettingsTrackingScreen\n                    else -> SettingsAppearanceScreen\n                },\n                onBackPressed = null,\n            ) {\n                val insets = WindowInsets.systemBars.only(WindowInsetsSides.Horizontal)\n                TwoPanelBox(\n                    modifier = Modifier\n                        .windowInsetsPadding(insets)\n                        .consumeWindowInsets(insets),\n                    startContent = {\n                        CompositionLocalProvider(LocalBackPress provides parentNavigator::pop) {\n                            SettingsMainScreen.Content(twoPane = true)\n                        }\n                    },\n                    endContent = { DefaultNavigatorScreenTransition(navigator = it) },\n                )\n            }\n        }\n    }\n\n    sealed class Destination(val id: Int) {\n        data object About : Destination(0)\n        data object DataAndStorage : Destination(1)\n        data object Tracking : Destination(2)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/setting/track/BaseOAuthLoginActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.setting.track\n\nimport android.content.Intent\nimport android.net.Uri\nimport android.os.Bundle\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.ui.base.activity.BaseActivity\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.util.view.setComposeContent\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport uy.kohesive.injekt.injectLazy\n\nabstract class BaseOAuthLoginActivity : BaseActivity() {\n\n    internal val trackerManager: TrackerManager by injectLazy()\n\n    abstract fun handleResult(uri: Uri)\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n\n        setComposeContent {\n            LoadingScreen()\n        }\n\n        val data = intent.data\n        if (data == null) {\n            returnToSettings()\n        } else {\n            handleResult(data)\n        }\n    }\n\n    internal fun returnToSettings() {\n        finish()\n\n        val intent = Intent(this, MainActivity::class.java).apply {\n            addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)\n        }\n        startActivity(intent)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/setting/track/TrackLoginActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.setting.track\n\nimport android.net.Uri\nimport androidx.lifecycle.lifecycleScope\nimport kotlinx.coroutines.launch\n\nclass TrackLoginActivity : BaseOAuthLoginActivity() {\n\n    override fun handleResult(uri: Uri) {\n        val data = when {\n            !uri.encodedQuery.isNullOrBlank() -> uri.encodedQuery\n            !uri.encodedFragment.isNullOrBlank() -> uri.encodedFragment\n            else -> null\n        }\n            ?.split(\"&\")\n            ?.filter { it.isNotBlank() }\n            ?.associate {\n                val parts = it.split(\"=\", limit = 2).map<String, String>(Uri::decode)\n                parts[0] to parts.getOrNull(1)\n            }\n            .orEmpty()\n\n        lifecycleScope.launch {\n            when (uri.host) {\n                \"anilist-auth\" -> handleAniList(data[\"access_token\"])\n                \"bangumi-auth\" -> handleBangumi(data[\"code\"])\n                \"myanimelist-auth\" -> handleMyAnimeList(data[\"code\"])\n                \"shikimori-auth\" -> handleShikimori(data[\"code\"])\n            }\n            returnToSettings()\n        }\n    }\n\n    private suspend fun handleAniList(accessToken: String?) {\n        if (accessToken != null) {\n            trackerManager.aniList.login(accessToken)\n        } else {\n            trackerManager.aniList.logout()\n        }\n    }\n\n    private suspend fun handleBangumi(code: String?) {\n        if (code != null) {\n            trackerManager.bangumi.login(code)\n        } else {\n            trackerManager.bangumi.logout()\n        }\n    }\n\n    private suspend fun handleMyAnimeList(code: String?) {\n        if (code != null) {\n            trackerManager.myAnimeList.login(code)\n        } else {\n            trackerManager.myAnimeList.logout()\n        }\n    }\n\n    private suspend fun handleShikimori(code: String?) {\n        if (code != null) {\n            trackerManager.shikimori.login(code)\n        } else {\n            trackerManager.shikimori.logout()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.stats\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.more.stats.StatsScreenContent\nimport eu.kanade.presentation.more.stats.StatsScreenState\nimport eu.kanade.presentation.util.Screen\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.LoadingScreen\n\nclass StatsScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { StatsScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        Scaffold(\n            topBar = { scrollBehavior ->\n                AppBar(\n                    title = stringResource(MR.strings.label_stats),\n                    navigateUp = navigator::pop,\n                    scrollBehavior = scrollBehavior,\n                )\n            },\n        ) { paddingValues ->\n            if (state is StatsScreenState.Loading) {\n                LoadingScreen()\n                return@Scaffold\n            }\n\n            StatsScreenContent(\n                state = state as StatsScreenState.Success,\n                paddingValues = paddingValues,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.stats\n\nimport androidx.compose.ui.util.fastDistinctBy\nimport androidx.compose.ui.util.fastFilter\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.util.fastCountNot\nimport eu.kanade.presentation.more.stats.StatsScreenState\nimport eu.kanade.presentation.more.stats.data.StatsData\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport eu.kanade.tachiyomi.source.model.SManga\nimport kotlinx.coroutines.flow.update\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.history.interactor.GetTotalReadDuration\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED\nimport tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ\nimport tachiyomi.domain.manga.interactor.GetLibraryManga\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass StatsScreenModel(\n    private val downloadManager: DownloadManager = Injekt.get(),\n    private val getLibraryManga: GetLibraryManga = Injekt.get(),\n    private val getTotalReadDuration: GetTotalReadDuration = Injekt.get(),\n    private val getTracks: GetTracks = Injekt.get(),\n    private val preferences: LibraryPreferences = Injekt.get(),\n    private val trackerManager: TrackerManager = Injekt.get(),\n) : StateScreenModel<StatsScreenState>(StatsScreenState.Loading) {\n\n    private val loggedInTrackers by lazy { trackerManager.loggedInTrackers() }\n\n    init {\n        screenModelScope.launchIO {\n            val libraryManga = getLibraryManga.await()\n\n            val distinctLibraryManga = libraryManga.fastDistinctBy { it.id }\n\n            val mangaTrackMap = getMangaTrackMap(distinctLibraryManga)\n            val scoredMangaTrackerMap = getScoredMangaTrackMap(mangaTrackMap)\n\n            val meanScore = getTrackMeanScore(scoredMangaTrackerMap)\n\n            val overviewStatData = StatsData.Overview(\n                libraryMangaCount = distinctLibraryManga.size,\n                completedMangaCount = distinctLibraryManga.count {\n                    it.manga.status.toInt() == SManga.COMPLETED && it.unreadCount == 0L\n                },\n                totalReadDuration = getTotalReadDuration.await(),\n            )\n\n            val titlesStatData = StatsData.Titles(\n                globalUpdateItemCount = getGlobalUpdateItemCount(libraryManga),\n                startedMangaCount = distinctLibraryManga.count { it.hasStarted },\n                localMangaCount = distinctLibraryManga.count { it.manga.isLocal() },\n            )\n\n            val chaptersStatData = StatsData.Chapters(\n                totalChapterCount = distinctLibraryManga.sumOf { it.totalChapters }.toInt(),\n                readChapterCount = distinctLibraryManga.sumOf { it.readCount }.toInt(),\n                downloadCount = downloadManager.getDownloadCount(),\n            )\n\n            val trackersStatData = StatsData.Trackers(\n                trackedTitleCount = mangaTrackMap.count { it.value.isNotEmpty() },\n                meanScore = meanScore,\n                trackerCount = loggedInTrackers.size,\n            )\n\n            mutableState.update {\n                StatsScreenState.Success(\n                    overview = overviewStatData,\n                    titles = titlesStatData,\n                    chapters = chaptersStatData,\n                    trackers = trackersStatData,\n                )\n            }\n        }\n    }\n\n    private fun getGlobalUpdateItemCount(libraryManga: List<LibraryManga>): Int {\n        val includedCategories = preferences.updateCategories.get().map { it.toLong() }\n        val excludedCategories = preferences.updateCategoriesExclude.get().map { it.toLong() }\n        val updateRestrictions = preferences.autoUpdateMangaRestrictions.get()\n\n        return libraryManga.filter {\n            val included = includedCategories.isEmpty() || it.categories.intersect(includedCategories).isNotEmpty()\n            val excluded = it.categories.intersect(excludedCategories).isNotEmpty()\n            included && !excluded\n        }\n            .fastCountNot {\n                (MANGA_NON_COMPLETED in updateRestrictions && it.manga.status.toInt() == SManga.COMPLETED) ||\n                    (MANGA_HAS_UNREAD in updateRestrictions && it.unreadCount != 0L) ||\n                    (MANGA_NON_READ in updateRestrictions && it.totalChapters > 0 && !it.hasStarted)\n            }\n    }\n\n    private suspend fun getMangaTrackMap(libraryManga: List<LibraryManga>): Map<Long, List<Track>> {\n        val loggedInTrackerIds = loggedInTrackers.map { it.id }.toHashSet()\n        return libraryManga.associate { manga ->\n            val tracks = getTracks.await(manga.id)\n                .fastFilter { it.trackerId in loggedInTrackerIds }\n\n            manga.id to tracks\n        }\n    }\n\n    private fun getScoredMangaTrackMap(mangaTrackMap: Map<Long, List<Track>>): Map<Long, List<Track>> {\n        return mangaTrackMap.mapNotNull { (mangaId, tracks) ->\n            val trackList = tracks.mapNotNull { track ->\n                track.takeIf { it.score > 0.0 }\n            }\n            if (trackList.isEmpty()) return@mapNotNull null\n            mangaId to trackList\n        }.toMap()\n    }\n\n    private fun getTrackMeanScore(scoredMangaTrackMap: Map<Long, List<Track>>): Double {\n        return scoredMangaTrackMap\n            .map { (_, tracks) ->\n                tracks.map(::get10PointScore).average()\n            }\n            .fastFilter { !it.isNaN() }\n            .average()\n    }\n\n    private fun get10PointScore(track: Track): Double {\n        val service = trackerManager.get(track.trackerId)!!\n        return service.get10PointScore(track)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.updates\n\nimport android.app.Application\nimport androidx.compose.material3.SnackbarHostState\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.util.fastFilter\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.preference.asState\nimport eu.kanade.core.util.addOrRemove\nimport eu.kanade.core.util.insertSeparators\nimport eu.kanade.domain.chapter.interactor.SetReadStatus\nimport eu.kanade.presentation.manga.components.ChapterDownloadAction\nimport eu.kanade.presentation.updates.UpdatesUiModel\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.download.model.Download\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateJob\nimport eu.kanade.tachiyomi.util.lang.toLocalDate\nimport kotlinx.collections.immutable.PersistentList\nimport kotlinx.collections.immutable.mutate\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toPersistentList\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.flatMapLatest\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.merge\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport logcat.LogPriority\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.launchNonCancellable\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.interactor.GetChapter\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.ChapterUpdate\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.model.applyFilter\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.updates.interactor.GetUpdates\nimport tachiyomi.domain.updates.model.UpdatesWithRelations\nimport tachiyomi.domain.updates.service.UpdatesPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.ZonedDateTime\n\nclass UpdatesScreenModel(\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val downloadManager: DownloadManager = Injekt.get(),\n    private val downloadCache: DownloadCache = Injekt.get(),\n    private val updateChapter: UpdateChapter = Injekt.get(),\n    private val setReadStatus: SetReadStatus = Injekt.get(),\n    private val getUpdates: GetUpdates = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val getChapter: GetChapter = Injekt.get(),\n    private val libraryPreferences: LibraryPreferences = Injekt.get(),\n    private val updatesPreferences: UpdatesPreferences = Injekt.get(),\n    val snackbarHostState: SnackbarHostState = SnackbarHostState(),\n) : StateScreenModel<UpdatesScreenModel.State>(State()) {\n\n    private val _events: Channel<Event> = Channel(Int.MAX_VALUE)\n    val events: Flow<Event> = _events.receiveAsFlow()\n\n    val lastUpdated by libraryPreferences.lastUpdatedTimestamp.asState(screenModelScope)\n\n    // First and last selected index in list\n    private val selectedPositions: Array<Int> = arrayOf(-1, -1)\n    private val selectedChapterIds: HashSet<Long> = HashSet()\n\n    init {\n        screenModelScope.launchIO {\n            // Set date limit for recent chapters\n            val limit = ZonedDateTime.now().minusMonths(3).toInstant()\n\n            combine(\n                // needed for SQL filters (unread, started, bookmarked, etc)\n                getUpdatesItemPreferenceFlow()\n                    .distinctUntilChanged()\n                    .flatMapLatest {\n                        getUpdates.subscribe(\n                            limit,\n                            unread = it.filterUnread.toBooleanOrNull(),\n                            started = it.filterStarted.toBooleanOrNull(),\n                            bookmarked = it.filterBookmarked.toBooleanOrNull(),\n                            hideExcludedScanlators = it.filterExcludedScanlators,\n                        ).distinctUntilChanged()\n                    },\n                downloadCache.changes,\n                downloadManager.queueState,\n                // needed for Kotlin filters (downloaded)\n                getUpdatesItemPreferenceFlow().distinctUntilChanged { old, new ->\n                    old.filterDownloaded == new.filterDownloaded\n                },\n            ) { updates, _, _, itemPreferences ->\n                updates\n                    .toUpdateItems()\n                    .applyFilters(itemPreferences)\n                    .toPersistentList()\n            }\n                .collectLatest { updateItems ->\n                    mutableState.update {\n                        it.copy(\n                            isLoading = false,\n                            items = updateItems,\n                        )\n                    }\n                }\n        }\n\n        screenModelScope.launchIO {\n            merge(downloadManager.statusFlow(), downloadManager.progressFlow())\n                .catch { logcat(LogPriority.ERROR, it) }\n                .collect(this@UpdatesScreenModel::updateDownloadState)\n        }\n\n        getUpdatesItemPreferenceFlow()\n            .map { prefs ->\n                listOf(\n                    prefs.filterUnread,\n                    prefs.filterDownloaded,\n                    prefs.filterStarted,\n                    prefs.filterBookmarked,\n                )\n                    .any { it != TriState.DISABLED }\n            }\n            .distinctUntilChanged()\n            .onEach {\n                mutableState.update { state ->\n                    state.copy(hasActiveFilters = it)\n                }\n            }\n            .launchIn(screenModelScope)\n    }\n\n    private fun List<UpdatesItem>.applyFilters(\n        preferences: ItemPreferences,\n    ): List<UpdatesItem> {\n        val filterDownloaded = preferences.filterDownloaded\n\n        val filterFnDownloaded: (UpdatesItem) -> Boolean = {\n            applyFilter(filterDownloaded) {\n                it.downloadStateProvider() == Download.State.DOWNLOADED\n            }\n        }\n\n        return fastFilter {\n            filterFnDownloaded(it)\n        }\n    }\n\n    private fun List<UpdatesWithRelations>.toUpdateItems(): List<UpdatesItem> {\n        return this\n            .map { update ->\n                val activeDownload = downloadManager.getQueuedDownloadOrNull(update.chapterId)\n                val downloaded = downloadManager.isChapterDownloaded(\n                    update.chapterName,\n                    update.scanlator,\n                    update.chapterUrl,\n                    update.mangaTitle,\n                    update.sourceId,\n                )\n                val downloadState = when {\n                    activeDownload != null -> activeDownload.status\n                    downloaded -> Download.State.DOWNLOADED\n                    else -> Download.State.NOT_DOWNLOADED\n                }\n                UpdatesItem(\n                    update = update,\n                    downloadStateProvider = { downloadState },\n                    downloadProgressProvider = { activeDownload?.progress ?: 0 },\n                    selected = update.chapterId in selectedChapterIds,\n                )\n            }\n    }\n\n    fun updateLibrary(): Boolean {\n        val started = LibraryUpdateJob.startNow(Injekt.get<Application>())\n        screenModelScope.launch {\n            _events.send(Event.LibraryUpdateTriggered(started))\n        }\n        return started\n    }\n\n    /**\n     * Update status of chapters.\n     *\n     * @param download download object containing progress.\n     */\n    private fun updateDownloadState(download: Download) {\n        mutableState.update { state ->\n            val newItems = state.items.mutate { list ->\n                val modifiedIndex = list.indexOfFirst { it.update.chapterId == download.chapter.id }\n                if (modifiedIndex < 0) return@mutate\n\n                val item = list[modifiedIndex]\n                list[modifiedIndex] = item.copy(\n                    downloadStateProvider = { download.status },\n                    downloadProgressProvider = { download.progress },\n                )\n            }\n            state.copy(items = newItems)\n        }\n    }\n\n    fun downloadChapters(items: List<UpdatesItem>, action: ChapterDownloadAction) {\n        if (items.isEmpty()) return\n        screenModelScope.launch {\n            when (action) {\n                ChapterDownloadAction.START -> {\n                    downloadChapters(items)\n                    if (items.any { it.downloadStateProvider() == Download.State.ERROR }) {\n                        downloadManager.startDownloads()\n                    }\n                }\n                ChapterDownloadAction.START_NOW -> {\n                    val chapterId = items.singleOrNull()?.update?.chapterId ?: return@launch\n                    startDownloadingNow(chapterId)\n                }\n                ChapterDownloadAction.CANCEL -> {\n                    val chapterId = items.singleOrNull()?.update?.chapterId ?: return@launch\n                    cancelDownload(chapterId)\n                }\n                ChapterDownloadAction.DELETE -> {\n                    deleteChapters(items)\n                }\n            }\n            toggleAllSelection(false)\n        }\n    }\n\n    private fun startDownloadingNow(chapterId: Long) {\n        downloadManager.startDownloadNow(chapterId)\n    }\n\n    private fun cancelDownload(chapterId: Long) {\n        val activeDownload = downloadManager.getQueuedDownloadOrNull(chapterId) ?: return\n        downloadManager.cancelQueuedDownloads(listOf(activeDownload))\n        updateDownloadState(activeDownload.apply { status = Download.State.NOT_DOWNLOADED })\n    }\n\n    /**\n     * Mark the selected updates list as read/unread.\n     * @param updates the list of selected updates.\n     * @param read whether to mark chapters as read or unread.\n     */\n    fun markUpdatesRead(updates: List<UpdatesItem>, read: Boolean) {\n        screenModelScope.launchIO {\n            setReadStatus.await(\n                read = read,\n                chapters = updates\n                    .mapNotNull { getChapter.await(it.update.chapterId) }\n                    .toTypedArray(),\n            )\n        }\n        toggleAllSelection(false)\n    }\n\n    /**\n     * Bookmarks the given list of chapters.\n     * @param updates the list of chapters to bookmark.\n     */\n    fun bookmarkUpdates(updates: List<UpdatesItem>, bookmark: Boolean) {\n        screenModelScope.launchIO {\n            updates\n                .filterNot { it.update.bookmark == bookmark }\n                .map { ChapterUpdate(id = it.update.chapterId, bookmark = bookmark) }\n                .let { updateChapter.awaitAll(it) }\n        }\n        toggleAllSelection(false)\n    }\n\n    /**\n     * Downloads the given list of chapters with the manager.\n     * @param updatesItem the list of chapters to download.\n     */\n    private fun downloadChapters(updatesItem: List<UpdatesItem>) {\n        screenModelScope.launchNonCancellable {\n            val groupedUpdates = updatesItem.groupBy { it.update.mangaId }.values\n            for (updates in groupedUpdates) {\n                val mangaId = updates.first().update.mangaId\n                val manga = getManga.await(mangaId) ?: continue\n                // Don't download if source isn't available\n                sourceManager.get(manga.source) ?: continue\n                val chapters = updates.mapNotNull { getChapter.await(it.update.chapterId) }\n                downloadManager.downloadChapters(manga, chapters)\n            }\n        }\n    }\n\n    /**\n     * Delete selected chapters\n     *\n     * @param updatesItem list of chapters\n     */\n    fun deleteChapters(updatesItem: List<UpdatesItem>) {\n        screenModelScope.launchNonCancellable {\n            updatesItem\n                .groupBy { it.update.mangaId }\n                .entries\n                .forEach { (mangaId, updates) ->\n                    val manga = getManga.await(mangaId) ?: return@forEach\n                    val source = sourceManager.get(manga.source) ?: return@forEach\n                    val chapters = updates.mapNotNull { getChapter.await(it.update.chapterId) }\n                    downloadManager.deleteChapters(chapters, manga, source)\n                }\n        }\n        toggleAllSelection(false)\n    }\n\n    fun showConfirmDeleteChapters(updatesItem: List<UpdatesItem>) {\n        setDialog(Dialog.DeleteConfirmation(updatesItem))\n    }\n\n    fun toggleSelection(\n        item: UpdatesItem,\n        selected: Boolean,\n        fromLongPress: Boolean = false,\n    ) {\n        mutableState.update { state ->\n            val newItems = state.items.toMutableList().apply {\n                val selectedIndex = indexOfFirst { it.update.chapterId == item.update.chapterId }\n                if (selectedIndex < 0) return@apply\n\n                val selectedItem = get(selectedIndex)\n                if (selectedItem.selected == selected) return@apply\n\n                val firstSelection = none { it.selected }\n                set(selectedIndex, selectedItem.copy(selected = selected))\n                selectedChapterIds.addOrRemove(item.update.chapterId, selected)\n\n                if (selected && fromLongPress) {\n                    if (firstSelection) {\n                        selectedPositions[0] = selectedIndex\n                        selectedPositions[1] = selectedIndex\n                    } else {\n                        // Try to select the items in-between when possible\n                        val range: IntRange\n                        if (selectedIndex < selectedPositions[0]) {\n                            range = selectedIndex + 1..<selectedPositions[0]\n                            selectedPositions[0] = selectedIndex\n                        } else if (selectedIndex > selectedPositions[1]) {\n                            range = (selectedPositions[1] + 1)..<selectedIndex\n                            selectedPositions[1] = selectedIndex\n                        } else {\n                            // Just select itself\n                            range = IntRange.EMPTY\n                        }\n\n                        range.forEach {\n                            val inbetweenItem = get(it)\n                            if (!inbetweenItem.selected) {\n                                selectedChapterIds.add(inbetweenItem.update.chapterId)\n                                set(it, inbetweenItem.copy(selected = true))\n                            }\n                        }\n                    }\n                } else if (!fromLongPress) {\n                    if (!selected) {\n                        if (selectedIndex == selectedPositions[0]) {\n                            selectedPositions[0] = indexOfFirst { it.selected }\n                        } else if (selectedIndex == selectedPositions[1]) {\n                            selectedPositions[1] = indexOfLast { it.selected }\n                        }\n                    } else {\n                        if (selectedIndex < selectedPositions[0]) {\n                            selectedPositions[0] = selectedIndex\n                        } else if (selectedIndex > selectedPositions[1]) {\n                            selectedPositions[1] = selectedIndex\n                        }\n                    }\n                }\n            }\n            state.copy(items = newItems.toPersistentList())\n        }\n    }\n\n    fun toggleAllSelection(selected: Boolean) {\n        mutableState.update { state ->\n            val newItems = state.items.map {\n                selectedChapterIds.addOrRemove(it.update.chapterId, selected)\n                it.copy(selected = selected)\n            }\n            state.copy(items = newItems.toPersistentList())\n        }\n\n        selectedPositions[0] = -1\n        selectedPositions[1] = -1\n    }\n\n    fun invertSelection() {\n        mutableState.update { state ->\n            val newItems = state.items.map {\n                selectedChapterIds.addOrRemove(it.update.chapterId, !it.selected)\n                it.copy(selected = !it.selected)\n            }\n            state.copy(items = newItems.toPersistentList())\n        }\n        selectedPositions[0] = -1\n        selectedPositions[1] = -1\n    }\n\n    fun setDialog(dialog: Dialog?) {\n        mutableState.update { it.copy(dialog = dialog) }\n    }\n\n    fun resetNewUpdatesCount() {\n        libraryPreferences.newUpdatesCount.set(0)\n    }\n\n    private fun getUpdatesItemPreferenceFlow(): Flow<ItemPreferences> {\n        return combine(\n            updatesPreferences.filterDownloaded.changes(),\n            updatesPreferences.filterUnread.changes(),\n            updatesPreferences.filterStarted.changes(),\n            updatesPreferences.filterBookmarked.changes(),\n            updatesPreferences.filterExcludedScanlators.changes(),\n        ) { downloaded, unread, started, bookmarked, excludedScanlators ->\n            ItemPreferences(\n                filterDownloaded = downloaded,\n                filterUnread = unread,\n                filterStarted = started,\n                filterBookmarked = bookmarked,\n                filterExcludedScanlators = excludedScanlators,\n            )\n        }\n    }\n\n    fun showFilterDialog() {\n        mutableState.update { it.copy(dialog = Dialog.FilterSheet) }\n    }\n\n    @Immutable\n    private data class ItemPreferences(\n        val filterDownloaded: TriState,\n        val filterUnread: TriState,\n        val filterStarted: TriState,\n        val filterBookmarked: TriState,\n        val filterExcludedScanlators: Boolean,\n    )\n\n    @Immutable\n    data class State(\n        val isLoading: Boolean = true,\n        val hasActiveFilters: Boolean = false,\n        val items: PersistentList<UpdatesItem> = persistentListOf(),\n        val dialog: Dialog? = null,\n    ) {\n        val selected = items.filter { it.selected }\n        val selectionMode = selected.isNotEmpty()\n\n        fun getUiModel(): List<UpdatesUiModel> {\n            return items\n                .map { UpdatesUiModel.Item(it) }\n                .insertSeparators { before, after ->\n                    val beforeDate = before?.item?.update?.dateFetch?.toLocalDate()\n                    val afterDate = after?.item?.update?.dateFetch?.toLocalDate()\n                    when {\n                        beforeDate != afterDate && afterDate != null -> UpdatesUiModel.Header(afterDate)\n                        // Return null to avoid adding a separator between two items.\n                        else -> null\n                    }\n                }\n        }\n    }\n\n    sealed interface Dialog {\n        data class DeleteConfirmation(val toDelete: List<UpdatesItem>) : Dialog\n        data object FilterSheet : Dialog\n    }\n\n    sealed interface Event {\n        data object InternalError : Event\n        data class LibraryUpdateTriggered(val started: Boolean) : Event\n    }\n}\n\nprivate fun TriState.toBooleanOrNull(): Boolean? {\n    return when (this) {\n        TriState.DISABLED -> null\n        TriState.ENABLED_IS -> true\n        TriState.ENABLED_NOT -> false\n    }\n}\n\n@Immutable\ndata class UpdatesItem(\n    val update: UpdatesWithRelations,\n    val downloadStateProvider: () -> Download.State,\n    val downloadProgressProvider: () -> Int,\n    val selected: Boolean = false,\n)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesSettingsScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.updates\n\nimport cafe.adriel.voyager.core.model.ScreenModel\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.domain.updates.service.UpdatesPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass UpdatesSettingsScreenModel(\n    val updatesPreferences: UpdatesPreferences = Injekt.get(),\n) : ScreenModel {\n\n    fun toggleFilter(preference: (UpdatesPreferences) -> Preference<TriState>) {\n        preference(updatesPreferences).getAndSet {\n            it.next()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt",
    "content": "package eu.kanade.tachiyomi.ui.updates\n\nimport androidx.compose.animation.graphics.res.animatedVectorResource\nimport androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter\nimport androidx.compose.animation.graphics.vector.AnimatedImageVector\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.DisposableEffect\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.Navigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport cafe.adriel.voyager.navigator.tab.LocalTabNavigator\nimport cafe.adriel.voyager.navigator.tab.TabOptions\nimport eu.kanade.presentation.updates.UpdateScreen\nimport eu.kanade.presentation.updates.UpdatesDeleteConfirmationDialog\nimport eu.kanade.presentation.updates.UpdatesFilterDialog\nimport eu.kanade.presentation.util.Tab\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.download.DownloadQueueScreen\nimport eu.kanade.tachiyomi.ui.home.HomeScreen\nimport eu.kanade.tachiyomi.ui.main.MainActivity\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.ui.reader.ReaderActivity\nimport eu.kanade.tachiyomi.ui.updates.UpdatesScreenModel.Event\nimport kotlinx.coroutines.flow.collectLatest\nimport mihon.feature.upcoming.UpcomingScreen\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\ndata object UpdatesTab : Tab {\n\n    override val options: TabOptions\n        @Composable\n        get() {\n            val isSelected = LocalTabNavigator.current.current.key == key\n            val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_updates_enter)\n            return TabOptions(\n                index = 1u,\n                title = stringResource(MR.strings.label_recent_updates),\n                icon = rememberAnimatedVectorPainter(image, isSelected),\n            )\n        }\n\n    override suspend fun onReselect(navigator: Navigator) {\n        navigator.push(DownloadQueueScreen)\n    }\n\n    @Composable\n    override fun Content() {\n        val context = LocalContext.current\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { UpdatesScreenModel() }\n        val settingsScreenModel = rememberScreenModel { UpdatesSettingsScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        UpdateScreen(\n            state = state,\n            snackbarHostState = screenModel.snackbarHostState,\n            lastUpdated = screenModel.lastUpdated,\n            onClickCover = { item -> navigator.push(MangaScreen(item.update.mangaId)) },\n            onSelectAll = screenModel::toggleAllSelection,\n            onInvertSelection = screenModel::invertSelection,\n            onUpdateLibrary = screenModel::updateLibrary,\n            onDownloadChapter = screenModel::downloadChapters,\n            onMultiBookmarkClicked = screenModel::bookmarkUpdates,\n            onMultiMarkAsReadClicked = screenModel::markUpdatesRead,\n            onMultiDeleteClicked = screenModel::showConfirmDeleteChapters,\n            onUpdateSelected = screenModel::toggleSelection,\n            onOpenChapter = {\n                val intent = ReaderActivity.newIntent(context, it.update.mangaId, it.update.chapterId)\n                context.startActivity(intent)\n            },\n            onCalendarClicked = { navigator.push(UpcomingScreen()) },\n            onFilterClicked = screenModel::showFilterDialog,\n            hasActiveFilters = state.hasActiveFilters,\n        )\n\n        val onDismissDialog = { screenModel.setDialog(null) }\n        when (val dialog = state.dialog) {\n            is UpdatesScreenModel.Dialog.DeleteConfirmation -> {\n                UpdatesDeleteConfirmationDialog(\n                    onDismissRequest = onDismissDialog,\n                    onConfirm = { screenModel.deleteChapters(dialog.toDelete) },\n                )\n            }\n            is UpdatesScreenModel.Dialog.FilterSheet -> {\n                UpdatesFilterDialog(\n                    onDismissRequest = onDismissDialog,\n                    screenModel = settingsScreenModel,\n                )\n            }\n            null -> {}\n        }\n\n        LaunchedEffect(Unit) {\n            screenModel.events.collectLatest { event ->\n                when (event) {\n                    Event.InternalError -> screenModel.snackbarHostState.showSnackbar(\n                        context.stringResource(MR.strings.internal_error),\n                    )\n                    is Event.LibraryUpdateTriggered -> {\n                        val msg = if (event.started) {\n                            MR.strings.updating_library\n                        } else {\n                            MR.strings.update_already_running\n                        }\n                        screenModel.snackbarHostState.showSnackbar(context.stringResource(msg))\n                    }\n                }\n            }\n        }\n\n        LaunchedEffect(state.selectionMode) {\n            HomeScreen.showBottomNav(!state.selectionMode)\n        }\n\n        LaunchedEffect(state.isLoading) {\n            if (!state.isLoading) {\n                (context as? MainActivity)?.ready = true\n            }\n        }\n        DisposableEffect(Unit) {\n            screenModel.resetNewUpdatesCount()\n\n            onDispose {\n                screenModel.resetNewUpdatesCount()\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewActivity.kt",
    "content": "package eu.kanade.tachiyomi.ui.webview\n\nimport android.app.Activity\nimport android.app.assist.AssistContent\nimport android.content.Context\nimport android.content.Intent\nimport android.os.Build\nimport android.os.Bundle\nimport android.widget.Toast\nimport androidx.core.net.toUri\nimport eu.kanade.presentation.webview.WebViewScreenContent\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.base.activity.BaseActivity\nimport eu.kanade.tachiyomi.util.system.WebViewUtil\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport eu.kanade.tachiyomi.util.system.toast\nimport eu.kanade.tachiyomi.util.view.setComposeContent\nimport logcat.LogPriority\nimport okhttp3.HttpUrl.Companion.toHttpUrl\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.injectLazy\n\nclass WebViewActivity : BaseActivity() {\n\n    private val sourceManager: SourceManager by injectLazy()\n    private val network: NetworkHelper by injectLazy()\n\n    private var assistUrl: String? = null\n\n    init {\n        registerSecureActivity(this)\n    }\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n            overrideActivityTransition(\n                Activity.OVERRIDE_TRANSITION_OPEN,\n                R.anim.shared_axis_x_push_enter,\n                R.anim.shared_axis_x_push_exit,\n            )\n        } else {\n            @Suppress(\"DEPRECATION\")\n            overridePendingTransition(R.anim.shared_axis_x_push_enter, R.anim.shared_axis_x_push_exit)\n        }\n        super.onCreate(savedInstanceState)\n\n        if (!WebViewUtil.supportsWebView(this)) {\n            toast(MR.strings.information_webview_required, Toast.LENGTH_LONG)\n            finish()\n            return\n        }\n\n        val url = intent.extras?.getString(URL_KEY) ?: return\n        assistUrl = url\n\n        var headers = emptyMap<String, String>()\n        (sourceManager.get(intent.extras!!.getLong(SOURCE_KEY)) as? HttpSource)?.let { source ->\n            try {\n                headers = source.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: \"\" }\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e) { \"Failed to build headers\" }\n            }\n        }\n\n        setComposeContent {\n            WebViewScreenContent(\n                onNavigateUp = { finish() },\n                initialTitle = intent.extras?.getString(TITLE_KEY),\n                url = url,\n                headers = headers,\n                onUrlChange = { assistUrl = it },\n                onShare = this::shareWebpage,\n                onOpenInBrowser = this::openInBrowser,\n                onClearCookies = this::clearCookies,\n            )\n        }\n    }\n\n    override fun onProvideAssistContent(outContent: AssistContent) {\n        super.onProvideAssistContent(outContent)\n        assistUrl?.let { outContent.webUri = it.toUri() }\n    }\n\n    override fun finish() {\n        super.finish()\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n            overrideActivityTransition(\n                Activity.OVERRIDE_TRANSITION_CLOSE,\n                R.anim.shared_axis_x_pop_enter,\n                R.anim.shared_axis_x_pop_exit,\n            )\n        } else {\n            @Suppress(\"DEPRECATION\")\n            overridePendingTransition(R.anim.shared_axis_x_pop_enter, R.anim.shared_axis_x_pop_exit)\n        }\n    }\n\n    private fun shareWebpage(url: String) {\n        try {\n            startActivity(url.toUri().toShareIntent(this, type = \"text/plain\"))\n        } catch (e: Exception) {\n            toast(e.message)\n        }\n    }\n\n    private fun openInBrowser(url: String) {\n        openInBrowser(url, forceDefaultBrowser = true)\n    }\n\n    private fun clearCookies(url: String) {\n        val cleared = network.cookieJar.remove(url.toHttpUrl())\n        logcat { \"Cleared $cleared cookies for: $url\" }\n    }\n\n    companion object {\n        private const val URL_KEY = \"url_key\"\n        private const val SOURCE_KEY = \"source_key\"\n        private const val TITLE_KEY = \"title_key\"\n\n        fun newIntent(context: Context, url: String, sourceId: Long? = null, title: String? = null): Intent {\n            return Intent(context, WebViewActivity::class.java).apply {\n                addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n                putExtra(URL_KEY, url)\n                putExtra(SOURCE_KEY, sourceId)\n                putExtra(TITLE_KEY, title)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewScreen.kt",
    "content": "package eu.kanade.tachiyomi.ui.webview\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.util.AssistContentScreen\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.presentation.webview.WebViewScreenContent\n\nclass WebViewScreen(\n    private val url: String,\n    private val initialTitle: String? = null,\n    private val sourceId: Long? = null,\n) : Screen(), AssistContentScreen {\n\n    private var assistUrl: String? = null\n\n    override fun onProvideAssistUrl() = assistUrl\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val context = LocalContext.current\n        val screenModel = rememberScreenModel { WebViewScreenModel(sourceId) }\n\n        WebViewScreenContent(\n            onNavigateUp = { navigator.pop() },\n            initialTitle = initialTitle,\n            url = url,\n            headers = screenModel.headers,\n            onUrlChange = { assistUrl = it },\n            onShare = { screenModel.shareWebpage(context, it) },\n            onOpenInBrowser = { screenModel.openInBrowser(context, it) },\n            onClearCookies = screenModel::clearCookies,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewScreenModel.kt",
    "content": "package eu.kanade.tachiyomi.ui.webview\n\nimport android.content.Context\nimport androidx.core.net.toUri\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport eu.kanade.presentation.more.stats.StatsScreenState\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.util.system.openInBrowser\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport eu.kanade.tachiyomi.util.system.toast\nimport logcat.LogPriority\nimport okhttp3.HttpUrl.Companion.toHttpUrlOrNull\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass WebViewScreenModel(\n    val sourceId: Long?,\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val network: NetworkHelper = Injekt.get(),\n) : StateScreenModel<StatsScreenState>(StatsScreenState.Loading) {\n\n    var headers = emptyMap<String, String>()\n\n    init {\n        sourceId?.let { sourceManager.get(it) as? HttpSource }?.let { source ->\n            try {\n                headers = source.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: \"\" }\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e) { \"Failed to build headers\" }\n            }\n        }\n    }\n\n    fun shareWebpage(context: Context, url: String) {\n        try {\n            context.startActivity(url.toUri().toShareIntent(context, type = \"text/plain\"))\n        } catch (e: Exception) {\n            context.toast(e.message)\n        }\n    }\n\n    fun openInBrowser(context: Context, url: String) {\n        context.openInBrowser(url, forceDefaultBrowser = true)\n    }\n\n    fun clearCookies(url: String) {\n        url.toHttpUrlOrNull()?.let {\n            val cleared = network.cookieJar.remove(it)\n            logcat { \"Cleared $cleared cookies for: $url\" }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt",
    "content": "package eu.kanade.tachiyomi.util\n\nimport android.content.Context\nimport android.os.Build\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.extension.ExtensionManager\nimport eu.kanade.tachiyomi.util.storage.getUriCompat\nimport eu.kanade.tachiyomi.util.system.WebViewUtil\nimport eu.kanade.tachiyomi.util.system.createFileInCacheDir\nimport eu.kanade.tachiyomi.util.system.toShareIntent\nimport eu.kanade.tachiyomi.util.system.toast\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.lang.withUIContext\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.OffsetDateTime\nimport java.time.ZoneId\n\nclass CrashLogUtil(\n    private val context: Context,\n    private val extensionManager: ExtensionManager = Injekt.get(),\n    private val preferences: BasePreferences = Injekt.get(),\n) {\n\n    suspend fun dumpLogs(exception: Throwable? = null) = withNonCancellableContext {\n        try {\n            val file = context.createFileInCacheDir(\"mihon_crash_logs.txt\")\n\n            file.appendText(getDebugInfo() + \"\\n\\n\")\n            getExtensionsInfo()?.let { file.appendText(\"$it\\n\\n\") }\n            exception?.let { file.appendText(\"$it\\n\\n\") }\n\n            Runtime.getRuntime().exec(\"logcat *:E -d -v year -v zone -f ${file.absolutePath}\").waitFor()\n\n            val uri = file.getUriCompat(context)\n            context.startActivity(uri.toShareIntent(context, \"text/plain\"))\n        } catch (e: Throwable) {\n            withUIContext { context.toast(\"Failed to get logs\") }\n        }\n    }\n\n    fun getDebugInfo(): String {\n        return \"\"\"\n            App ID: ${BuildConfig.APPLICATION_ID}\n            App version: ${BuildConfig.VERSION_NAME} (${BuildConfig.COMMIT_SHA}, ${BuildConfig.VERSION_CODE}, ${BuildConfig.BUILD_TIME})\n            Installation ID: ${preferences.installationId.get()}\n            Android version: ${Build.VERSION.RELEASE} (SDK ${Build.VERSION.SDK_INT}; build ${Build.DISPLAY})\n            Device brand: ${Build.BRAND}\n            Device manufacturer: ${Build.MANUFACTURER}\n            Device name: ${Build.DEVICE} (${Build.PRODUCT})\n            Device model: ${Build.MODEL}\n            WebView: ${WebViewUtil.getVersion(context)}\n            Current time: ${OffsetDateTime.now(ZoneId.systemDefault())}\n        \"\"\".trimIndent()\n    }\n\n    private fun getExtensionsInfo(): String? {\n        val availableExtensions = extensionManager.availableExtensionsFlow.value.associateBy { it.pkgName }\n\n        val extensionInfoList = extensionManager.installedExtensionsFlow.value\n            .sortedBy { it.name }\n            .mapNotNull {\n                val availableExtension = availableExtensions[it.pkgName]\n                val hasUpdate = (availableExtension?.versionCode ?: 0) > it.versionCode\n\n                if (!hasUpdate && !it.isObsolete) return@mapNotNull null\n\n                \"\"\"\n                    - ${it.name}\n                      Installed: ${it.versionName} / Available: ${availableExtension?.versionName ?: \"?\"}\n                      Obsolete: ${it.isObsolete}\n                \"\"\".trimIndent()\n            }\n\n        return if (extensionInfoList.isNotEmpty()) {\n            (listOf(\"Problematic extensions:\") + extensionInfoList)\n                .joinToString(\"\\n\")\n        } else {\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/MangaExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util\n\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.hasCustomCover\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.source.model.SManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.source.local.image.LocalCoverManager\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.InputStream\nimport java.time.Instant\n\n/**\n * Call before updating [Manga.thumbnail_url] to ensure old cover can be cleared from cache\n */\nfun Manga.prepUpdateCover(coverCache: CoverCache, remoteManga: SManga, refreshSameUrl: Boolean): Manga {\n    // Never refresh covers if the new url is null, as the current url has possibly become invalid\n    val newUrl = remoteManga.thumbnail_url ?: return this\n\n    // Never refresh covers if the url is empty to avoid \"losing\" existing covers\n    if (newUrl.isEmpty()) return this\n\n    if (!refreshSameUrl && thumbnailUrl == newUrl) return this\n\n    return when {\n        isLocal() -> {\n            this.copy(coverLastModified = Instant.now().toEpochMilli())\n        }\n        hasCustomCover(coverCache) -> {\n            coverCache.deleteFromCache(this, false)\n            this\n        }\n        else -> {\n            coverCache.deleteFromCache(this, false)\n            this.copy(coverLastModified = Instant.now().toEpochMilli())\n        }\n    }\n}\n\nfun Manga.removeCovers(coverCache: CoverCache = Injekt.get()): Manga {\n    if (isLocal()) return this\n    return if (coverCache.deleteFromCache(this, true) > 0) {\n        return copy(coverLastModified = Instant.now().toEpochMilli())\n    } else {\n        this\n    }\n}\n\nsuspend fun Manga.editCover(\n    coverManager: LocalCoverManager,\n    stream: InputStream,\n    updateManga: UpdateManga = Injekt.get(),\n    coverCache: CoverCache = Injekt.get(),\n) {\n    if (isLocal()) {\n        coverManager.update(toSManga(), stream)\n        updateManga.awaitUpdateCoverLastModified(id)\n    } else if (favorite) {\n        coverCache.setCustomCoverToCache(this, stream)\n        updateManga.awaitUpdateCoverLastModified(id)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/PkceUtil.kt",
    "content": "package eu.kanade.tachiyomi.util\n\nimport java.security.SecureRandom\nimport java.util.Base64\n\nobject PkceUtil {\n\n    fun generateCodeVerifier(): String {\n        val codeVerifier = ByteArray(50)\n        SecureRandom().nextBytes(codeVerifier)\n        return Base64.getUrlEncoder()\n            .withoutPadding()\n            .encodeToString(codeVerifier)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterFilterDownloaded.kt",
    "content": "package eu.kanade.tachiyomi.util.chapter\n\nimport eu.kanade.tachiyomi.data.download.DownloadCache\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.source.local.isLocal\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * Returns a copy of the list with not downloaded chapters removed.\n */\nfun List<Chapter>.filterDownloaded(manga: Manga): List<Chapter> {\n    if (manga.isLocal()) return this\n\n    val downloadCache: DownloadCache = Injekt.get()\n\n    return filter { downloadCache.isChapterDownloaded(it.name, it.scanlator, it.url, manga.title, manga.source, false) }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterGetNextUnread.kt",
    "content": "package eu.kanade.tachiyomi.util.chapter\n\nimport eu.kanade.domain.chapter.model.applyFilters\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.ui.manga.ChapterList\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\n\n/**\n * Gets next unread chapter with filters and sorting applied\n */\nfun List<Chapter>.getNextUnread(manga: Manga, downloadManager: DownloadManager): Chapter? {\n    return applyFilters(manga, downloadManager).let { chapters ->\n        if (manga.sortDescending()) {\n            chapters.findLast { !it.read }\n        } else {\n            chapters.find { !it.read }\n        }\n    }\n}\n\n/**\n * Gets next unread chapter with filters and sorting applied\n */\nfun List<ChapterList.Item>.getNextUnread(manga: Manga): Chapter? {\n    return applyFilters(manga).let { chapters ->\n        if (manga.sortDescending()) {\n            chapters.findLast { !it.chapter.read }\n        } else {\n            chapters.find { !it.chapter.read }\n        }\n    }?.chapter\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterRemoveDuplicates.kt",
    "content": "package eu.kanade.tachiyomi.util.chapter\n\nimport tachiyomi.domain.chapter.model.Chapter\n\n/**\n * Returns a copy of the list with duplicate chapters removed\n */\nfun List<Chapter>.removeDuplicates(currentChapter: Chapter): List<Chapter> {\n    return groupBy { it.chapterNumber }\n        .map { (_, chapters) ->\n            chapters.find { it.id == currentChapter.id }\n                ?: chapters.find { it.scanlator == currentChapter.scanlator }\n                ?: chapters.first()\n        }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/lang/CloseableExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.lang\n\nimport java.io.Closeable\n\n/**\n * Executes the given block function on this resources and then closes it down correctly whether an exception is\n * thrown or not.\n *\n * @param block a function to process with given Closeable resources.\n * @return the result of block function invoked on this resource.\n */\ninline fun <T : Closeable?> Array<T>.use(block: () -> Unit) {\n    var blockException: Throwable? = null\n    try {\n        return block()\n    } catch (e: Throwable) {\n        blockException = e\n        throw e\n    } finally {\n        when (blockException) {\n            null -> forEach { it?.close() }\n            else -> forEach {\n                try {\n                    it?.close()\n                } catch (closeException: Throwable) {\n                    blockException.addSuppressed(closeException)\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.lang\n\nimport android.content.Context\nimport tachiyomi.core.common.i18n.pluralStringResource\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport java.text.DateFormat\nimport java.time.Instant\nimport java.time.LocalDate\nimport java.time.LocalDateTime\nimport java.time.ZoneId\nimport java.time.format.DateTimeFormatter\nimport java.time.format.FormatStyle\nimport java.time.temporal.ChronoUnit\nimport java.util.Date\nimport kotlin.math.absoluteValue\n\nfun LocalDateTime.toDateTimestampString(dateTimeFormatter: DateTimeFormatter): String {\n    val date = dateTimeFormatter.format(this)\n    val time = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).format(this)\n    return \"$date $time\"\n}\n\nfun Date.toTimestampString(): String {\n    return DateFormat.getTimeInstance(DateFormat.SHORT).format(this)\n}\n\nfun Long.convertEpochMillisZone(\n    from: ZoneId,\n    to: ZoneId,\n): Long {\n    return LocalDateTime.ofInstant(Instant.ofEpochMilli(this), from)\n        .atZone(to)\n        .toInstant()\n        .toEpochMilli()\n}\n\nfun Long.toLocalDate(): LocalDate {\n    return LocalDate.ofInstant(Instant.ofEpochMilli(this), ZoneId.systemDefault())\n}\n\nfun Instant.toLocalDate(zoneId: ZoneId = ZoneId.systemDefault()): LocalDate {\n    return LocalDate.ofInstant(this, zoneId)\n}\n\nfun LocalDate.toRelativeString(\n    context: Context,\n    relative: Boolean = true,\n    dateFormat: DateTimeFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT),\n): String {\n    if (!relative) {\n        return dateFormat.format(this)\n    }\n    val now = LocalDate.now()\n    val difference = ChronoUnit.DAYS.between(this, now)\n    return when {\n        difference < -7 -> dateFormat.format(this)\n        difference < 0 -> context.pluralStringResource(\n            MR.plurals.upcoming_relative_time,\n            difference.toInt().absoluteValue,\n            difference.toInt().absoluteValue,\n        )\n        difference < 1 -> context.stringResource(MR.strings.relative_time_today)\n        difference < 7 -> context.pluralStringResource(\n            MR.plurals.relative_time,\n            difference.toInt(),\n            difference.toInt(),\n        )\n        else -> dateFormat.format(this)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/lang/RectFExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.lang\n\nimport android.graphics.RectF\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\n\nfun RectF.invert(invertMode: ReaderPreferences.TappingInvertMode): RectF {\n    val horizontal = invertMode.shouldInvertHorizontal\n    val vertical = invertMode.shouldInvertVertical\n    return when {\n        horizontal && vertical -> RectF(1f - this.right, 1f - this.bottom, 1f - this.left, 1f - this.top)\n        vertical -> RectF(this.left, 1f - this.bottom, this.right, 1f - this.top)\n        horizontal -> RectF(1f - this.right, this.top, 1f - this.left, this.bottom)\n        else -> this\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.storage\n\nimport android.content.Context\nimport android.net.Uri\nimport androidx.core.content.FileProvider\nimport eu.kanade.tachiyomi.BuildConfig\nimport java.io.File\n\nval Context.cacheImageDir: File\n    get() = File(cacheDir, \"shared_image\")\n\n/**\n * Returns the uri of a file\n *\n * @param context context of application\n */\nfun File.getUriCompat(context: Context): Uri {\n    return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + \".provider\", this)\n}\n\n/**\n * Copies this file to the given [target] file while marking the file as read-only.\n *\n * @see File.copyTo\n */\nfun File.copyAndSetReadOnlyTo(target: File, overwrite: Boolean = false, bufferSize: Int = DEFAULT_BUFFER_SIZE): File {\n    if (!this.exists()) {\n        throw NoSuchFileException(file = this, reason = \"The source file doesn't exist.\")\n    }\n\n    if (target.exists()) {\n        if (!overwrite) {\n            throw FileAlreadyExistsException(\n                file = this,\n                other = target,\n                reason = \"The destination file already exists.\",\n            )\n        } else if (!target.delete()) {\n            throw FileAlreadyExistsException(\n                file = this,\n                other = target,\n                reason = \"Tried to overwrite the destination, but failed to delete it.\",\n            )\n        }\n    }\n\n    if (this.isDirectory) {\n        if (!target.mkdirs()) {\n            throw FileSystemException(file = this, other = target, reason = \"Failed to create target directory.\")\n        }\n    } else {\n        target.parentFile?.mkdirs()\n\n        this.inputStream().use { input ->\n            target.outputStream().use { output ->\n                // Set read-only\n                target.setReadOnly()\n\n                input.copyTo(output, bufferSize)\n            }\n        }\n    }\n\n    return target\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/storage/OkioExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.storage\n\nimport okio.BufferedSource\nimport okio.buffer\nimport okio.sink\nimport java.io.File\nimport java.io.OutputStream\n\n/**\n * Saves the given source to a file and closes it. Directories will be created if needed.\n *\n * @param file the file where the source is copied.\n */\nfun BufferedSource.saveTo(file: File) {\n    try {\n        // Create parent dirs if needed\n        file.parentFile?.mkdirs()\n\n        // Copy to destination\n        saveTo(file.outputStream())\n    } catch (e: Exception) {\n        close()\n        file.delete()\n        throw e\n    }\n}\n\n/**\n * Saves the given source to an output stream and closes both resources.\n *\n * @param stream the stream where the source is copied.\n */\nfun BufferedSource.saveTo(stream: OutputStream) {\n    use { input ->\n        stream.sink().buffer().use {\n            it.writeAll(input)\n            it.flush()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/AnimationExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport android.provider.Settings\n\n/**\n * Gets the duration multiplier for general animations on the device\n * @see Settings.Global.ANIMATOR_DURATION_SCALE\n */\nval Context.animatorDurationScale: Float\n    get() = Settings.Global.getFloat(this.contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1f)\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/AuthenticatorUtil.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport androidx.annotation.CallSuper\nimport androidx.biometric.BiometricManager\nimport androidx.biometric.BiometricManager.Authenticators\nimport androidx.biometric.BiometricPrompt\nimport androidx.biometric.BiometricPrompt.AuthenticationError\nimport androidx.biometric.auth.AuthPromptCallback\nimport androidx.biometric.auth.startClass2BiometricOrCredentialAuthentication\nimport androidx.core.content.ContextCompat\nimport androidx.fragment.app.FragmentActivity\nimport kotlinx.coroutines.suspendCancellableCoroutine\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport kotlin.coroutines.resume\n\nobject AuthenticatorUtil {\n\n    /**\n     * A check to avoid double authentication on older APIs when confirming settings changes since\n     * the biometric prompt is launched in a separate activity outside of the app.\n     */\n    var isAuthenticating = false\n\n    /**\n     * Launches biometric prompt.\n     *\n     * @param title String title that will be shown on the prompt\n     * @param subtitle Optional string subtitle that will be shown on the prompt\n     * @param confirmationRequired Whether require explicit user confirmation after passive biometric is recognized\n     * @param callback Callback object to handle the authentication events\n     */\n    fun FragmentActivity.startAuthentication(\n        title: String,\n        subtitle: String? = null,\n        confirmationRequired: Boolean = true,\n        callback: AuthenticationCallback,\n    ) {\n        isAuthenticating = true\n        startClass2BiometricOrCredentialAuthentication(\n            title = title,\n            subtitle = subtitle,\n            confirmationRequired = confirmationRequired,\n            executor = ContextCompat.getMainExecutor(this),\n            callback = callback,\n        )\n    }\n\n    suspend fun FragmentActivity.authenticate(\n        title: String,\n        subtitle: String? = stringResource(MR.strings.confirm_lock_change),\n    ): Boolean = suspendCancellableCoroutine { cont ->\n        if (!isAuthenticationSupported()) {\n            cont.resume(true)\n            return@suspendCancellableCoroutine\n        }\n\n        startAuthentication(\n            title,\n            subtitle,\n            callback = object : AuthenticationCallback() {\n                override fun onAuthenticationSucceeded(\n                    activity: FragmentActivity?,\n                    result: BiometricPrompt.AuthenticationResult,\n                ) {\n                    super.onAuthenticationSucceeded(activity, result)\n                    cont.resume(true)\n                }\n\n                override fun onAuthenticationError(\n                    activity: FragmentActivity?,\n                    errorCode: Int,\n                    errString: CharSequence,\n                ) {\n                    super.onAuthenticationError(activity, errorCode, errString)\n                    activity?.toast(errString.toString())\n                    cont.resume(false)\n                }\n            },\n        )\n    }\n\n    /**\n     * Returns true if Class 2 biometric or credential lock is set and available to use\n     */\n    fun Context.isAuthenticationSupported(): Boolean {\n        val authenticators = Authenticators.BIOMETRIC_WEAK or Authenticators.DEVICE_CREDENTIAL\n        return BiometricManager.from(this).canAuthenticate(authenticators) == BiometricManager.BIOMETRIC_SUCCESS\n    }\n\n    /**\n     * [AuthPromptCallback] with extra check\n     *\n     * @see isAuthenticating\n     */\n    abstract class AuthenticationCallback : AuthPromptCallback() {\n        /**\n         * Called when an unrecoverable error has been encountered and authentication has stopped.\n         *\n         *\n         * After this method is called, no further events will be sent for the current\n         * authentication session.\n         *\n         * @param activity  The activity that is currently hosting the prompt.\n         * @param errorCode An integer ID associated with the error.\n         * @param errString A human-readable string that describes the error.\n         */\n        @CallSuper\n        override fun onAuthenticationError(\n            activity: FragmentActivity?,\n            @AuthenticationError errorCode: Int,\n            errString: CharSequence,\n        ) {\n            isAuthenticating = false\n        }\n\n        /**\n         * Called when the user has successfully authenticated.\n         *\n         *\n         * After this method is called, no further events will be sent for the current\n         * authentication session.\n         *\n         * @param activity The activity that is currently hosting the prompt.\n         * @param result   An object containing authentication-related data.\n         */\n        @CallSuper\n        override fun onAuthenticationSucceeded(\n            activity: FragmentActivity?,\n            result: BiometricPrompt.AuthenticationResult,\n        ) {\n            isAuthenticating = false\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/BuildConfig.kt",
    "content": "@file:Suppress(\"UNUSED\", \"KotlinConstantConditions\")\n\npackage eu.kanade.tachiyomi.util.system\n\nimport eu.kanade.tachiyomi.BuildConfig\n\nval telemetryIncluded: Boolean\n    inline get() = BuildConfig.TELEMETRY_INCLUDED\n\nval updaterEnabled: Boolean\n    inline get() = BuildConfig.UPDATER_ENABLED\n\nval isDebugBuildType: Boolean\n    inline get() = BuildConfig.BUILD_TYPE == \"debug\"\n\nval isPreviewBuildType: Boolean\n    inline get() = BuildConfig.BUILD_TYPE == \"preview\"\n\nval isReleaseBuildType: Boolean\n    inline get() = BuildConfig.BUILD_TYPE == \"release\"\n\nval isFossBuildType: Boolean\n    inline get() = BuildConfig.BUILD_TYPE == \"foss\"\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/ChildFirstPathClassLoader.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport dalvik.system.PathClassLoader\nimport java.io.IOException\nimport java.io.InputStream\nimport java.net.URL\nimport java.util.Enumeration\n\n/**\n * A parent-last class loader that will try in order:\n * - the system class loader\n * - the child class loader\n * - the parent class loader.\n */\nclass ChildFirstPathClassLoader(\n    dexPath: String,\n    librarySearchPath: String?,\n    parent: ClassLoader,\n) : PathClassLoader(dexPath, librarySearchPath, parent) {\n\n    private val systemClassLoader: ClassLoader? = getSystemClassLoader()\n\n    override fun loadClass(name: String?, resolve: Boolean): Class<*> {\n        var c = findLoadedClass(name)\n\n        if (c == null && systemClassLoader != null) {\n            try {\n                c = systemClassLoader.loadClass(name)\n            } catch (_: ClassNotFoundException) {}\n        }\n\n        if (c == null) {\n            c = try {\n                findClass(name)\n            } catch (_: ClassNotFoundException) {\n                super.loadClass(name, resolve)\n            }\n        }\n\n        if (resolve) {\n            resolveClass(c)\n        }\n\n        return c\n    }\n\n    override fun getResource(name: String?): URL? {\n        return systemClassLoader?.getResource(name)\n            ?: findResource(name)\n            ?: super.getResource(name)\n    }\n\n    override fun getResources(name: String?): Enumeration<URL> {\n        val systemUrls = systemClassLoader?.getResources(name)\n        val localUrls = findResources(name)\n        val parentUrls = parent?.getResources(name)\n        val urls = buildList {\n            while (systemUrls?.hasMoreElements() == true) {\n                add(systemUrls.nextElement())\n            }\n\n            while (localUrls?.hasMoreElements() == true) {\n                add(localUrls.nextElement())\n            }\n\n            while (parentUrls?.hasMoreElements() == true) {\n                add(parentUrls.nextElement())\n            }\n        }\n\n        return object : Enumeration<URL> {\n            val iterator = urls.iterator()\n\n            override fun hasMoreElements() = iterator.hasNext()\n            override fun nextElement() = iterator.next()\n        }\n    }\n\n    override fun getResourceAsStream(name: String?): InputStream? {\n        return try {\n            getResource(name)?.openStream()\n        } catch (_: IOException) {\n            return null\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.ClipData\nimport android.content.ClipboardManager\nimport android.content.Context\nimport android.content.Intent\nimport android.content.pm.PackageManager\nimport android.content.res.Configuration\nimport android.net.Uri\nimport android.os.Build\nimport android.os.PowerManager\nimport android.provider.Settings\nimport androidx.appcompat.view.ContextThemeWrapper\nimport androidx.core.content.getSystemService\nimport androidx.core.net.toUri\nimport com.hippo.unifile.UniFile\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.ThemeMode\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.ui.base.delegate.ThemingDelegate\nimport eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences\nimport eu.kanade.tachiyomi.util.lang.truncateCenter\nimport logcat.LogPriority\nimport rikka.sui.Sui\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.i18n.MR\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.io.File\n\n/**\n * Copies a string to clipboard\n *\n * @param label Label to show to the user describing the content\n * @param content the actual text to copy to the board\n */\nfun Context.copyToClipboard(label: String, content: String) {\n    if (content.isBlank()) return\n\n    try {\n        val clipboard = getSystemService<ClipboardManager>()!!\n        clipboard.setPrimaryClip(ClipData.newPlainText(label, content))\n\n        // Android 13 and higher shows a visual confirmation of copied contents\n        // https://developer.android.com/about/versions/13/features/copy-paste\n        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) {\n            toast(stringResource(MR.strings.copied_to_clipboard, content.truncateCenter(50)))\n        }\n    } catch (e: Throwable) {\n        logcat(LogPriority.ERROR, e)\n        toast(MR.strings.clipboard_copy_error)\n    }\n}\n\nval Context.powerManager: PowerManager\n    get() = getSystemService()!!\n\nfun Context.openInBrowser(url: String, forceDefaultBrowser: Boolean = false) {\n    this.openInBrowser(url.toUri(), forceDefaultBrowser)\n}\n\nfun Context.openInBrowser(uri: Uri, forceDefaultBrowser: Boolean = false) {\n    try {\n        val intent = Intent(Intent.ACTION_VIEW, uri).apply {\n            // Force default browser so that verified extensions don't re-open Tachiyomi\n            if (forceDefaultBrowser) {\n                defaultBrowserPackageName()?.let { setPackage(it) }\n            }\n        }\n        startActivity(intent)\n    } catch (e: Exception) {\n        toast(e.message)\n    }\n}\n\nprivate fun Context.defaultBrowserPackageName(): String? {\n    val browserIntent = Intent(Intent.ACTION_VIEW, \"http://\".toUri())\n    val resolveInfo = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n        packageManager.resolveActivity(\n            browserIntent,\n            PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_DEFAULT_ONLY.toLong()),\n        )\n    } else {\n        packageManager.resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY)\n    }\n    return resolveInfo\n        ?.activityInfo?.packageName\n        ?.takeUnless { it in DeviceUtil.invalidDefaultBrowsers }\n}\n\nfun Context.createFileInCacheDir(name: String): File {\n    val file = File(externalCacheDir, name)\n    if (file.exists()) {\n        file.delete()\n    }\n    file.createNewFile()\n    return file\n}\n\n/**\n * Creates night mode Context depending on reader theme/background\n *\n * Context wrapping method obtained from AppCompatDelegateImpl\n * https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java;l=348;drc=e28752c96fc3fb4d3354781469a1af3dbded4898\n */\nfun Context.createReaderThemeContext(): Context {\n    val preferences = Injekt.get<UiPreferences>()\n    val readerPreferences = Injekt.get<ReaderPreferences>()\n    val themeMode = preferences.themeMode.get()\n    val isDarkBackground = when (readerPreferences.readerTheme.get()) {\n        1, 2 -> true // Black, Gray\n        3 -> when (themeMode) { // Automatic bg uses activity background by default\n            ThemeMode.SYSTEM -> applicationContext.isNightMode()\n            else -> themeMode == ThemeMode.DARK\n        }\n        else -> false // White\n    }\n    val expected = if (isDarkBackground) Configuration.UI_MODE_NIGHT_YES else Configuration.UI_MODE_NIGHT_NO\n    if (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK != expected) {\n        val overrideConf = Configuration()\n        overrideConf.setTo(resources.configuration)\n        overrideConf.uiMode = (overrideConf.uiMode and Configuration.UI_MODE_NIGHT_MASK.inv()) or expected\n\n        val wrappedContext = ContextThemeWrapper(this, R.style.Theme_Tachiyomi)\n        wrappedContext.applyOverrideConfiguration(overrideConf)\n        ThemingDelegate.getThemeResIds(preferences.appTheme.get(), preferences.themeDarkAmoled.get())\n            .forEach { wrappedContext.theme.applyStyle(it, true) }\n        return wrappedContext\n    }\n    return this\n}\n\n/**\n * Gets document size of provided [Uri]\n *\n * @return document size of [uri] or null if size can't be obtained\n */\nfun Context.getUriSize(uri: Uri): Long? {\n    return UniFile.fromUri(this, uri)?.length()?.takeIf { it >= 0 }\n}\n\n/**\n * Returns true if [packageName] is installed.\n */\nfun Context.isPackageInstalled(packageName: String): Boolean {\n    return try {\n        packageManager.getApplicationInfo(packageName, 0)\n        true\n    } catch (e: PackageManager.NameNotFoundException) {\n        false\n    }\n}\n\nval Context.hasMiuiPackageInstaller get() = isPackageInstalled(\"com.miui.packageinstaller\")\n\nval Context.isShizukuInstalled get() = isPackageInstalled(\"moe.shizuku.privileged.api\") || Sui.isSui()\n\nfun Context.launchRequestPackageInstallsPermission() {\n    Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply {\n        data = \"package:$packageName\".toUri()\n        startActivity(this)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/DeviceUtilExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.os.Build\nimport com.google.android.material.color.DynamicColors\n\nval DeviceUtil.isDynamicColorAvailable by lazy {\n    DynamicColors.isDynamicColorAvailable() || (DeviceUtil.isSamsung && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/DisplayExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.app.Activity\nimport android.content.Context\nimport android.content.res.Configuration\nimport android.os.Build\nimport android.view.View\nimport eu.kanade.domain.ui.UiPreferences\nimport eu.kanade.domain.ui.model.TabletUiMode\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nprivate const val TABLET_UI_REQUIRED_SCREEN_WIDTH_DP = 720\n\n// some tablets have screen width like 711dp = 1600px / 2.25\nprivate const val TABLET_UI_MIN_SCREEN_WIDTH_PORTRAIT_DP = 700\n\n// make sure icons on the nav rail fit\nprivate const val TABLET_UI_MIN_SCREEN_WIDTH_LANDSCAPE_DP = 600\n\nfun Configuration.isTabletUi(): Boolean {\n    return smallestScreenWidthDp >= TABLET_UI_REQUIRED_SCREEN_WIDTH_DP\n}\n\n// TODO: move the logic to `isTabletUi()` when main activity is rewritten in Compose\nfun Context.prepareTabletUiContext(): Context {\n    val configuration = resources.configuration\n    val expected = when (Injekt.get<UiPreferences>().tabletUiMode.get()) {\n        TabletUiMode.AUTOMATIC ->\n            configuration.smallestScreenWidthDp >= when (configuration.orientation) {\n                Configuration.ORIENTATION_PORTRAIT -> TABLET_UI_MIN_SCREEN_WIDTH_PORTRAIT_DP\n                else -> TABLET_UI_MIN_SCREEN_WIDTH_LANDSCAPE_DP\n            }\n        TabletUiMode.ALWAYS -> true\n        TabletUiMode.LANDSCAPE -> configuration.orientation == Configuration.ORIENTATION_LANDSCAPE\n        TabletUiMode.NEVER -> false\n    }\n    if (configuration.isTabletUi() != expected) {\n        val overrideConf = Configuration()\n        overrideConf.setTo(configuration)\n        overrideConf.smallestScreenWidthDp = if (expected) {\n            overrideConf.smallestScreenWidthDp.coerceAtLeast(TABLET_UI_REQUIRED_SCREEN_WIDTH_DP)\n        } else {\n            overrideConf.smallestScreenWidthDp.coerceAtMost(TABLET_UI_REQUIRED_SCREEN_WIDTH_DP - 1)\n        }\n        return createConfigurationContext(overrideConf)\n    }\n    return this\n}\n\n/**\n * Returns true if current context is in night mode\n */\nfun Context.isNightMode(): Boolean {\n    return resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES\n}\n\n/**\n * Checks whether if the device has a display cutout (i.e. notch, camera cutout, etc.).\n *\n * Only works on Android 9+.\n */\nfun Activity.hasDisplayCutout(): Boolean {\n    return window.decorView.hasDisplayCutout()\n}\n\n/**\n * Checks whether if the device has a display cutout (i.e. notch, camera cutout, etc.).\n *\n * Only works on Android 9+.\n */\nfun View.hasDisplayCutout(): Boolean {\n    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && rootWindowInsets?.displayCutout != null\n}\n\n/**\n * Gets system's config_navBarNeedsScrim boolean flag added in Android 10, defaults to true.\n */\nfun Context.isNavigationBarNeedsScrim(): Boolean {\n    return Build.VERSION.SDK_INT < Build.VERSION_CODES.Q ||\n        InternalResourceHelper.getBoolean(this, \"config_navBarNeedsScrim\", true)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/DrawableExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.graphics.Bitmap\nimport android.graphics.drawable.BitmapDrawable\nimport android.graphics.drawable.Drawable\nimport androidx.core.graphics.drawable.toBitmap\nimport coil3.size.ScaleDrawable\n\nfun Drawable.getBitmapOrNull(): Bitmap? = when (this) {\n    is BitmapDrawable -> bitmap\n    is ScaleDrawable -> child.toBitmap()\n    else -> null\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/IntentExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.ClipData\nimport android.content.Context\nimport android.content.Intent\nimport android.net.Uri\nimport android.os.Build\nimport androidx.core.content.IntentCompat\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport java.io.Serializable\n\nfun Uri.toShareIntent(context: Context, type: String = \"image/*\", message: String? = null): Intent {\n    val uri = this\n\n    val shareIntent = Intent(Intent.ACTION_SEND).apply {\n        when (uri.scheme) {\n            \"http\", \"https\" -> {\n                putExtra(Intent.EXTRA_TEXT, uri.toString())\n            }\n            \"content\" -> {\n                message?.let { putExtra(Intent.EXTRA_TEXT, it) }\n                putExtra(Intent.EXTRA_STREAM, uri)\n            }\n        }\n        clipData = ClipData.newRawUri(null, uri)\n        setType(type)\n        flags = Intent.FLAG_GRANT_READ_URI_PERMISSION\n    }\n\n    return Intent.createChooser(shareIntent, context.stringResource(MR.strings.action_share)).apply {\n        flags = Intent.FLAG_ACTIVITY_NEW_TASK\n    }\n}\n\ninline fun <reified T> Intent.getParcelableExtraCompat(name: String): T? {\n    return IntentCompat.getParcelableExtra(this, name, T::class.java)\n}\n\ninline fun <reified T : Serializable> Intent.getSerializableExtraCompat(name: String): T? {\n    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n        getSerializableExtra(name, T::class.java)\n    } else {\n        @Suppress(\"DEPRECATION\")\n        getSerializableExtra(name) as? T\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/InternalResourceHelper.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.annotation.SuppressLint\nimport android.content.Context\nimport android.content.res.Resources\n\nobject InternalResourceHelper {\n\n    fun getBoolean(context: Context, resName: String, defaultValue: Boolean): Boolean {\n        val id = getResourceId(resName, \"bool\")\n        return if (id != 0) {\n            context.createPackageContext(\"android\", 0).resources.getBoolean(id)\n        } else {\n            defaultValue\n        }\n    }\n\n    /**\n     * Get resource id from system resources\n     * @param resName resource name to get\n     * @param type resource type of [resName] to get\n     * @return 0 if not available\n     */\n    @SuppressLint(\"DiscouragedApi\")\n    private fun getResourceId(resName: String, type: String): Int {\n        return Resources.getSystem().getIdentifier(resName, type, \"android\")\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport androidx.core.os.LocaleListCompat\nimport eu.kanade.tachiyomi.ui.browse.source.SourcesScreenModel\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport java.util.Locale\n\n/**\n * Utility class to change the application's language in runtime.\n */\nobject LocaleHelper {\n\n    /**\n     * Sorts by display name, except keeps the \"all\" (displayed as \"Multi\") locale at the top.\n     */\n    val comparator = { a: String, b: String ->\n        if (a == \"all\") {\n            -1\n        } else if (b == \"all\") {\n            1\n        } else {\n            getLocalizedDisplayName(a).compareTo(getLocalizedDisplayName(b))\n        }\n    }\n\n    /**\n     * Returns display name of a string language code.\n     */\n    fun getSourceDisplayName(lang: String?, context: Context): String {\n        return when (lang) {\n            SourcesScreenModel.LAST_USED_KEY -> context.stringResource(MR.strings.last_used_source)\n            SourcesScreenModel.PINNED_KEY -> context.stringResource(MR.strings.pinned_sources)\n            \"other\" -> context.stringResource(MR.strings.other_source)\n            \"all\" -> context.stringResource(MR.strings.multi_lang)\n            else -> getLocalizedDisplayName(lang)\n        }\n    }\n\n    fun getDisplayName(lang: String): String {\n        val normalizedLang = when (lang) {\n            \"zh-CN\" -> \"zh-Hans\"\n            \"zh-TW\" -> \"zh-Hant\"\n            else -> lang\n        }\n\n        return Locale.forLanguageTag(normalizedLang).displayName\n    }\n\n    fun getShortDisplayName(lang: String?, uppercase: Boolean = false): String {\n        return when (lang) {\n            null -> \"\"\n            \"es-419\" -> \"es-la\"\n            \"zh-CN\" -> \"zh-hans\"\n            \"zh-TW\" -> \"zh-hant\"\n            else -> lang\n        }\n            .let { if (uppercase) it.uppercase(Locale.ENGLISH) else it }\n    }\n\n    /**\n     * Returns display name of a string language code.\n     *\n     * @param lang empty for system language\n     */\n    fun getLocalizedDisplayName(lang: String?): String {\n        if (lang == null) {\n            return \"\"\n        }\n\n        val locale = when (lang) {\n            \"\" -> LocaleListCompat.getAdjustedDefault()[0]\n            \"zh-CN\" -> Locale.forLanguageTag(\"zh-Hans\")\n            \"zh-TW\" -> Locale.forLanguageTag(\"zh-Hant\")\n            else -> Locale.forLanguageTag(lang)\n        }\n        return locale!!.getDisplayName(locale).replaceFirstChar { it.uppercase(locale) }\n    }\n\n    /**\n     * Return the default languages enabled for the sources.\n     */\n    fun getDefaultEnabledLanguages(): Set<String> {\n        return setOf(\"all\", \"en\", Locale.getDefault().language)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport android.net.ConnectivityManager\nimport android.net.NetworkCapabilities\nimport android.net.wifi.WifiManager\nimport android.os.Build\nimport androidx.core.content.getSystemService\n\nval Context.connectivityManager: ConnectivityManager\n    get() = getSystemService()!!\n\nval Context.wifiManager: WifiManager\n    get() = getSystemService()!!\n\nfun Context.isOnline(): Boolean {\n    val activeNetwork = connectivityManager.activeNetwork ?: return false\n    val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false\n    val maxTransport = when {\n        Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 -> NetworkCapabilities.TRANSPORT_LOWPAN\n        else -> NetworkCapabilities.TRANSPORT_WIFI_AWARE\n    }\n    return (NetworkCapabilities.TRANSPORT_CELLULAR..maxTransport).any(networkCapabilities::hasTransport)\n}\n\n/**\n * Returns true if device is connected to Wifi.\n */\nfun Context.isConnectedToWifi(): Boolean {\n    if (!wifiManager.isWifiEnabled) return false\n\n    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n        val activeNetwork = connectivityManager.activeNetwork ?: return false\n        val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false\n\n        networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) &&\n            networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)\n    } else {\n        @Suppress(\"DEPRECATION\")\n        wifiManager.connectionInfo.bssid != null\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport android.net.ConnectivityManager.NetworkCallback\nimport android.net.Network\nimport android.net.NetworkCapabilities\nimport kotlinx.coroutines.channels.awaitClose\nimport kotlinx.coroutines.flow.callbackFlow\n\ndata class NetworkState(\n    val isConnected: Boolean,\n    val isValidated: Boolean,\n    val isWifi: Boolean,\n) {\n    val isOnline = isConnected && isValidated\n}\n\n@Suppress(\"DEPRECATION\")\nfun Context.activeNetworkState(): NetworkState {\n    val capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)\n    return NetworkState(\n        isConnected = connectivityManager.activeNetworkInfo?.isConnected ?: false,\n        isValidated = capabilities?.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) ?: false,\n        isWifi = wifiManager.isWifiEnabled && capabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ?: false,\n    )\n}\n\nfun Context.networkStateFlow() = callbackFlow {\n    val networkCallback = object : NetworkCallback() {\n        override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) {\n            trySend(activeNetworkState())\n        }\n        override fun onLost(network: Network) {\n            trySend(activeNetworkState())\n        }\n    }\n\n    connectivityManager.registerDefaultNetworkCallback(networkCallback)\n    awaitClose {\n        connectivityManager.unregisterNetworkCallback(networkCallback)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/NotificationExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.Manifest\nimport android.app.Notification\nimport android.app.NotificationManager\nimport android.content.Context\nimport android.os.Build\nimport androidx.core.app.NotificationChannelCompat\nimport androidx.core.app.NotificationChannelGroupCompat\nimport androidx.core.app.NotificationCompat\nimport androidx.core.app.NotificationManagerCompat\nimport androidx.core.app.NotificationManagerCompat.NotificationWithIdAndTag\nimport androidx.core.content.PermissionChecker\nimport androidx.core.content.getSystemService\nimport eu.kanade.tachiyomi.R\n\nval Context.notificationManager: NotificationManager\n    get() = getSystemService()!!\n\nfun Context.notify(id: Int, channelId: String, block: (NotificationCompat.Builder.() -> Unit)? = null) {\n    val notification = notificationBuilder(channelId, block).build()\n    this.notify(id, notification)\n}\n\nfun Context.notify(id: Int, notification: Notification) {\n    if (\n        Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&\n        PermissionChecker.checkSelfPermission(\n            this,\n            Manifest.permission.POST_NOTIFICATIONS,\n        ) != PermissionChecker.PERMISSION_GRANTED\n    ) {\n        return\n    }\n\n    NotificationManagerCompat.from(this).notify(id, notification)\n}\n\nfun Context.notify(notificationWithIdAndTags: List<NotificationWithIdAndTag>) {\n    if (\n        Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&\n        PermissionChecker.checkSelfPermission(\n            this,\n            Manifest.permission.POST_NOTIFICATIONS,\n        ) != PermissionChecker.PERMISSION_GRANTED\n    ) {\n        return\n    }\n\n    NotificationManagerCompat.from(this).notify(notificationWithIdAndTags)\n}\n\nfun Context.cancelNotification(id: Int) {\n    NotificationManagerCompat.from(this).cancel(id)\n}\n\n/**\n * Helper method to create a notification builder.\n *\n * @param id the channel id.\n * @param block the function that will execute inside the builder.\n * @return a notification to be displayed or updated.\n */\nfun Context.notificationBuilder(\n    channelId: String,\n    block: (NotificationCompat.Builder.() -> Unit)? = null,\n): NotificationCompat.Builder {\n    val builder = NotificationCompat.Builder(this, channelId)\n        .setColor(getColor(R.color.accent_blue))\n    if (block != null) {\n        builder.block()\n    }\n    return builder\n}\n\n/**\n * Helper method to build a notification channel group.\n *\n * @param channelId the channel id.\n * @param block the function that will execute inside the builder.\n * @return a notification channel group to be displayed or updated.\n */\nfun buildNotificationChannelGroup(\n    channelId: String,\n    block: (NotificationChannelGroupCompat.Builder.() -> Unit),\n): NotificationChannelGroupCompat {\n    val builder = NotificationChannelGroupCompat.Builder(channelId)\n    builder.block()\n    return builder.build()\n}\n\n/**\n * Helper method to build a notification channel.\n *\n * @param channelId the channel id.\n * @param channelImportance the channel importance.\n * @param block the function that will execute inside the builder.\n * @return a notification channel to be displayed or updated.\n */\nfun buildNotificationChannel(\n    channelId: String,\n    channelImportance: Int,\n    block: (NotificationChannelCompat.Builder.() -> Unit),\n): NotificationChannelCompat {\n    val builder = NotificationChannelCompat.Builder(channelId, channelImportance)\n    builder.block()\n    return builder.build()\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/system/WorkManagerExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport androidx.work.CoroutineWorker\nimport androidx.work.WorkInfo\nimport androidx.work.WorkManager\nimport kotlinx.coroutines.delay\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\n\nval Context.workManager: WorkManager\n    get() = WorkManager.getInstance(this)\n\nfun WorkManager.isRunning(tag: String): Boolean {\n    val list = this.getWorkInfosByTag(tag).get()\n    return list.any { it.state == WorkInfo.State.RUNNING }\n}\n\n/**\n * Makes this worker run in the context of a foreground service.\n *\n * Note that this function is a no-op if the process is subject to foreground\n * service restrictions.\n *\n * Moving to foreground service context requires the worker to run a bit longer,\n * allowing Service.startForeground() to be called and avoiding system crash.\n */\nsuspend fun CoroutineWorker.setForegroundSafely() {\n    try {\n        setForeground(getForegroundInfo())\n        delay(500)\n    } catch (e: IllegalStateException) {\n        logcat(LogPriority.ERROR, e) { \"Not allowed to set foreground job\" }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/view/EditTextPreferenceExtensions.kt",
    "content": "@file:Suppress(\"PackageDirectoryMismatch\")\n\npackage androidx.preference\n\n/**\n * Returns package-private [EditTextPreference.getOnBindEditTextListener]\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\")\nfun EditTextPreference.getOnBindEditTextListener(): EditTextPreference.OnBindEditTextListener? {\n    return onBindEditTextListener\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt",
    "content": "@file:Suppress(\"NOTHING_TO_INLINE\")\n\npackage eu.kanade.tachiyomi.util.view\n\nimport android.content.res.Resources\nimport android.graphics.Rect\nimport android.view.Gravity\nimport android.view.Menu\nimport android.view.MenuItem\nimport android.view.View\nimport androidx.activity.ComponentActivity\nimport androidx.activity.compose.setContent\nimport androidx.annotation.MenuRes\nimport androidx.appcompat.widget.PopupMenu\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionContext\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.ui.platform.ComposeView\nimport androidx.compose.ui.platform.ViewCompositionStrategy\nimport eu.kanade.presentation.theme.TachiyomiTheme\nimport eu.kanade.tachiyomi.R\n\ninline fun ComponentActivity.setComposeContent(\n    parent: CompositionContext? = null,\n    crossinline content: @Composable () -> Unit,\n) {\n    setContent(parent) {\n        TachiyomiTheme {\n            CompositionLocalProvider(\n                LocalTextStyle provides MaterialTheme.typography.bodySmall,\n                LocalContentColor provides MaterialTheme.colorScheme.onBackground,\n            ) {\n                content()\n            }\n        }\n    }\n}\n\nfun ComposeView.setComposeContent(\n    content: @Composable () -> Unit,\n) {\n    setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)\n    setContent {\n        TachiyomiTheme {\n            CompositionLocalProvider(\n                LocalTextStyle provides MaterialTheme.typography.bodySmall,\n                LocalContentColor provides MaterialTheme.colorScheme.onBackground,\n            ) {\n                content()\n            }\n        }\n    }\n}\n\n/**\n * Shows a popup menu on top of this view.\n *\n * @param menuRes menu items to inflate the menu with.\n * @param initMenu function to execute when the menu after is inflated.\n * @param onMenuItemClick function to execute when a menu item is clicked.\n */\ninline fun View.popupMenu(\n    @MenuRes menuRes: Int,\n    noinline initMenu: (Menu.() -> Unit)? = null,\n    noinline onMenuItemClick: MenuItem.() -> Unit,\n): PopupMenu {\n    val popup = PopupMenu(context, this, Gravity.NO_GRAVITY, R.attr.actionOverflowMenuStyle, 0)\n    popup.menuInflater.inflate(menuRes, popup.menu)\n\n    if (initMenu != null) {\n        popup.menu.initMenu()\n    }\n    popup.setOnMenuItemClickListener {\n        it.onMenuItemClick()\n        true\n    }\n\n    popup.show()\n    return popup\n}\n\nfun View?.isVisibleOnScreen(): Boolean {\n    if (this == null) {\n        return false\n    }\n    if (!this.isShown) {\n        return false\n    }\n    val actualPosition = Rect()\n    this.getGlobalVisibleRect(actualPosition)\n    val screen =\n        Rect(0, 0, Resources.getSystem().displayMetrics.widthPixels, Resources.getSystem().displayMetrics.heightPixels)\n    return actualPosition.intersect(screen)\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/util/view/WindowExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.view\n\nimport android.view.Window\nimport android.view.WindowManager\n\nfun Window.setSecureScreen(enabled: Boolean) {\n    if (enabled) {\n        setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)\n    } else {\n        clearFlags(WindowManager.LayoutParams.FLAG_SECURE)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt",
    "content": "package eu.kanade.tachiyomi.widget\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.widget.EditText\nimport androidx.core.view.inputmethod.EditorInfoCompat\nimport com.google.android.material.textfield.TextInputEditText\nimport eu.kanade.domain.base.BasePreferences\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.widget.TachiyomiTextInputEditText.Companion.setIncognito\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.cancel\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n/**\n * A custom [TextInputEditText] that sets [EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING] to imeOptions\n * if [BasePreferences.incognitoMode] is true. Some IMEs may not respect this flag.\n *\n * @see setIncognito\n */\nclass TachiyomiTextInputEditText @JvmOverloads constructor(\n    context: Context,\n    attrs: AttributeSet? = null,\n    defStyleAttr: Int = R.attr.editTextStyle,\n) : TextInputEditText(context, attrs, defStyleAttr) {\n\n    private var scope: CoroutineScope? = null\n\n    override fun onAttachedToWindow() {\n        super.onAttachedToWindow()\n        scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)\n        setIncognito(scope!!)\n    }\n\n    override fun onDetachedFromWindow() {\n        super.onDetachedFromWindow()\n        scope?.cancel()\n        scope = null\n    }\n\n    companion object {\n        /**\n         * Sets Flow to this [EditText] that sets [EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING] to imeOptions\n         * if [BasePreferences.incognitoMode] is true. Some IMEs may not respect this flag.\n         */\n        fun EditText.setIncognito(viewScope: CoroutineScope) {\n            Injekt.get<BasePreferences>().incognitoMode.changes()\n                .onEach {\n                    imeOptions = if (it) {\n                        imeOptions or EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING\n                    } else {\n                        imeOptions and EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING.inv()\n                    }\n                }\n                .launchIn(viewScope)\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/tachiyomi/widget/ViewPagerAdapter.kt",
    "content": "package eu.kanade.tachiyomi.widget\n\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.viewpager.widget.PagerAdapter\n\nabstract class ViewPagerAdapter : PagerAdapter() {\n\n    protected abstract fun createView(container: ViewGroup, position: Int): View\n\n    protected open fun destroyView(container: ViewGroup, position: Int, view: View) {\n    }\n\n    override fun instantiateItem(container: ViewGroup, position: Int): Any {\n        val view = createView(container, position)\n        container.addView(view)\n        return view\n    }\n\n    override fun destroyItem(container: ViewGroup, position: Int, obj: Any) {\n        val view = obj as View\n        destroyView(container, position, view)\n        container.removeView(view)\n    }\n\n    override fun isViewFromObject(view: View, obj: Any): Boolean {\n        return view === obj\n    }\n\n    interface PositionableView {\n        val item: Any\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/eu/kanade/test/DummyTracker.kt",
    "content": "package eu.kanade.test\n\nimport dev.icerock.moko.resources.StringResource\nimport eu.kanade.tachiyomi.R\nimport eu.kanade.tachiyomi.data.track.Tracker\nimport eu.kanade.tachiyomi.data.track.model.TrackSearch\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.flowOf\nimport okhttp3.OkHttpClient\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.i18n.MR\n\ndata class DummyTracker(\n    override val id: Long,\n    override val name: String,\n    override val supportsReadingDates: Boolean = false,\n    override val supportsPrivateTracking: Boolean = false,\n    override val isLoggedIn: Boolean = false,\n    override val isLoggedInFlow: Flow<Boolean> = flowOf(false),\n    val valLogo: Int = R.drawable.brand_anilist,\n    val valStatuses: List<Long> = (1L..6L).toList(),\n    val valReadingStatus: Long = 1L,\n    val valRereadingStatus: Long = 1L,\n    val valCompletionStatus: Long = 2L,\n    val valScoreList: ImmutableList<String> = (0..10).map(Int::toString).toImmutableList(),\n    val val10PointScore: Double = 5.4,\n    val valSearchResults: List<TrackSearch> = listOf(),\n) : Tracker {\n\n    override val client: OkHttpClient\n        get() = TODO(\"Not yet implemented\")\n\n    override fun getLogo(): Int = valLogo\n\n    override fun getStatusList(): List<Long> = valStatuses\n\n    override fun getStatus(status: Long): StringResource? = when (status) {\n        1L -> MR.strings.reading\n        2L -> MR.strings.plan_to_read\n        3L -> MR.strings.completed\n        4L -> MR.strings.on_hold\n        5L -> MR.strings.dropped\n        6L -> MR.strings.repeating\n        else -> null\n    }\n\n    override fun getReadingStatus(): Long = valReadingStatus\n\n    override fun getRereadingStatus(): Long = valRereadingStatus\n\n    override fun getCompletionStatus(): Long = valCompletionStatus\n\n    override fun getScoreList(): ImmutableList<String> = valScoreList\n\n    override fun get10PointScore(track: Track): Double = val10PointScore\n\n    override fun indexToScore(index: Int): Double = getScoreList()[index].toDouble()\n\n    override fun displayScore(track: Track): String =\n        track.score.toString()\n\n    override suspend fun update(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        didReadChapter: Boolean,\n    ): eu.kanade.tachiyomi.data.database.models.Track = track\n\n    override suspend fun bind(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        hasReadChapters: Boolean,\n    ): eu.kanade.tachiyomi.data.database.models.Track = track\n\n    override suspend fun search(query: String): List<TrackSearch> = valSearchResults\n\n    override suspend fun refresh(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n    ): eu.kanade.tachiyomi.data.database.models.Track = track\n\n    override suspend fun login(username: String, password: String) = Unit\n\n    override fun logout() = Unit\n\n    override fun getUsername(): String = \"username\"\n\n    override fun getPassword(): String = \"passw0rd\"\n\n    override fun saveCredentials(username: String, password: String) = Unit\n\n    override suspend fun register(\n        item: eu.kanade.tachiyomi.data.database.models.Track,\n        mangaId: Long,\n    ) = Unit\n\n    override suspend fun setRemoteStatus(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        status: Long,\n    ) = Unit\n\n    override suspend fun setRemoteLastChapterRead(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        chapterNumber: Int,\n    ) = Unit\n\n    override suspend fun setRemoteScore(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        scoreString: String,\n    ) = Unit\n\n    override suspend fun setRemoteStartDate(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        epochMillis: Long,\n    ) = Unit\n\n    override suspend fun setRemoteFinishDate(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        epochMillis: Long,\n    ) = Unit\n\n    override suspend fun setRemotePrivate(\n        track: eu.kanade.tachiyomi.data.database.models.Track,\n        private: Boolean,\n    ) = Unit\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/app/shizuku/ShellInterface.kt",
    "content": "/*\n * Copyright 2024 Mihon Open Source Project\n * Copyright 2015-2024 Javier Tomás\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * The file contains code originally licensed under the MIT license:\n *\n * Copyright (c) 2024 Zachary Wander\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\npackage mihon.app.shizuku\n\nimport android.annotation.SuppressLint\nimport android.app.PendingIntent\nimport android.content.Context\nimport android.content.Intent\nimport android.content.IntentSender\nimport android.content.pm.PackageInstaller\nimport android.content.res.AssetFileDescriptor\nimport android.os.Build\nimport android.os.IBinder\nimport android.os.ParcelFileDescriptor\nimport android.os.UserHandle\nimport eu.kanade.tachiyomi.BuildConfig\nimport eu.kanade.tachiyomi.extension.installer.ACTION_INSTALL_RESULT\nimport rikka.shizuku.SystemServiceHelper\nimport java.io.OutputStream\nimport kotlin.system.exitProcess\n\nclass ShellInterface : IShellInterface.Stub() {\n\n    private val context = createContext()\n    private val userId = UserHandle::class.java\n        .getMethod(\"myUserId\")\n        .invoke(null) as Int\n    private val packageName = BuildConfig.APPLICATION_ID\n\n    @SuppressLint(\"PrivateApi\")\n    override fun install(apk: AssetFileDescriptor) {\n        val pmInterface = Class.forName($$\"android.content.pm.IPackageManager$Stub\")\n            .getMethod(\"asInterface\", IBinder::class.java)\n            .invoke(null, SystemServiceHelper.getSystemService(\"package\"))\n\n        val packageInstaller = Class.forName(\"android.content.pm.IPackageManager\")\n            .getMethod(\"getPackageInstaller\")\n            .invoke(pmInterface)\n\n        val params = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL).apply {\n            val installFlags = this::class.java.getField(\"installFlags\")\n            installFlags.set(\n                this,\n                installFlags.getInt(this) or REPLACE_EXISTING_INSTALL_FLAG,\n            )\n\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {\n                setPackageSource(PackageInstaller.PACKAGE_SOURCE_STORE)\n            }\n\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n                setInstallerPackageName(packageName)\n            }\n        }\n\n        val sessionId = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {\n            packageInstaller::class.java.getMethod(\n                \"createSession\",\n                PackageInstaller.SessionParams::class.java,\n                String::class.java,\n                String::class.java,\n                Int::class.java,\n            ).invoke(packageInstaller, params, packageName, packageName, userId) as Int\n        } else {\n            packageInstaller::class.java.getMethod(\n                \"createSession\",\n                PackageInstaller.SessionParams::class.java,\n                String::class.java,\n                Int::class.java,\n            ).invoke(packageInstaller, params, packageName, userId) as Int\n        }\n\n        val session = packageInstaller::class.java\n            .getMethod(\"openSession\", Int::class.java)\n            .invoke(packageInstaller, sessionId)\n\n        session::class.java.getMethod(\n            \"openWrite\",\n            String::class.java,\n            Long::class.java,\n            Long::class.java,\n        )\n            .invoke(session, \"extension\", 0L, apk.length)\n            .let { it as ParcelFileDescriptor }\n            .let { fd ->\n                val revocable = Class.forName(\"android.os.SystemProperties\")\n                    .getMethod(\"getBoolean\", String::class.java, Boolean::class.java)\n                    .invoke(null, \"fw.revocable_fd\", false) as Boolean\n\n                if (revocable) {\n                    ParcelFileDescriptor.AutoCloseOutputStream(fd)\n                } else {\n                    Class.forName($$\"android.os.FileBridge$FileBridgeOutputStream\")\n                        .getConstructor(ParcelFileDescriptor::class.java)\n                        .newInstance(fd) as OutputStream\n                }\n            }\n            .use { output ->\n                apk.createInputStream().use { input -> input.copyTo(output) }\n            }\n\n        val statusIntent = PendingIntent.getBroadcast(\n            context,\n            0,\n            Intent(ACTION_INSTALL_RESULT).setPackage(packageName),\n            PendingIntent.FLAG_MUTABLE,\n        )\n\n        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {\n            session::class.java.getMethod(\"commit\", IntentSender::class.java, Boolean::class.java)\n                .invoke(session, statusIntent.intentSender, false)\n        } else {\n            session::class.java.getMethod(\"commit\", IntentSender::class.java)\n                .invoke(session, statusIntent.intentSender)\n        }\n    }\n\n    override fun destroy() {\n        exitProcess(0)\n    }\n\n    @SuppressLint(\"PrivateApi\")\n    private fun createContext(): Context {\n        val activityThread = Class.forName(\"android.app.ActivityThread\")\n        val systemMain = activityThread.getMethod(\"systemMain\").invoke(null)\n        val systemContext = activityThread.getMethod(\"getSystemContext\").invoke(systemMain) as Context\n\n        val shellUserHandle = UserHandle::class.java\n            .getConstructor(Int::class.java)\n            .newInstance(userId)\n\n        val shellContext = systemContext::class.java.getMethod(\n            \"createPackageContextAsUser\",\n            String::class.java,\n            Int::class.java,\n            UserHandle::class.java,\n        ).invoke(\n            systemContext,\n            \"com.android.shell\",\n            Context.CONTEXT_INCLUDE_CODE or Context.CONTEXT_IGNORE_SECURITY,\n            shellUserHandle,\n        ) as Context\n\n        return shellContext.createPackageContext(\"com.android.shell\", 0)\n    }\n}\n\n// Constant hidden from the SDK\n// https://cs.android.com/android/platform/superproject/main/+/512046e84bcc51cc241bc6599f83ab345e93ab12:frameworks/base/core/java/android/content/pm/PackageManager.java;l=1682-1689\nprivate const val REPLACE_EXISTING_INSTALL_FLAG = 0x00000002\n"
  },
  {
    "path": "app/src/main/java/mihon/core/designsystem/utils/WindowSize.kt",
    "content": "package mihon.core.designsystem.utils\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.ui.platform.LocalConfiguration\nimport androidx.compose.ui.unit.dp\n\n@Composable\n@ReadOnlyComposable\nfun isMediumWidthWindow(): Boolean {\n    val configuration = LocalConfiguration.current\n    return configuration.screenWidthDp > MediumWidthWindowSize.value\n}\n\n@Composable\n@ReadOnlyComposable\nfun isExpandedWidthWindow(): Boolean {\n    val configuration = LocalConfiguration.current\n    return configuration.screenWidthDp > ExpandedWidthWindowSize.value\n}\n\nval MediumWidthWindowSize = 600.dp\nval ExpandedWidthWindowSize = 840.dp\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/Migration.kt",
    "content": "package mihon.core.migration\n\ninterface Migration {\n    val version: Float\n\n    suspend operator fun invoke(migrationContext: MigrationContext): Boolean\n\n    val isAlways: Boolean\n        get() = version == ALWAYS\n\n    companion object {\n        const val ALWAYS = -1f\n\n        fun of(version: Float, action: suspend (MigrationContext) -> Boolean): Migration = object : Migration {\n            override val version: Float = version\n\n            override suspend operator fun invoke(migrationContext: MigrationContext): Boolean {\n                return action(migrationContext)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/MigrationCompletedListener.kt",
    "content": "package mihon.core.migration\n\ntypealias MigrationCompletedListener = () -> Unit\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/MigrationContext.kt",
    "content": "package mihon.core.migration\n\nimport uy.kohesive.injekt.Injekt\n\nclass MigrationContext(val dryrun: Boolean) {\n\n    inline fun <reified T> get(): T? {\n        return Injekt.getInstanceOrNull(T::class.java)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/MigrationJobFactory.kt",
    "content": "package mihon.core.migration\n\nimport kotlinx.coroutines.CompletableDeferred\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.CoroutineStart\nimport kotlinx.coroutines.Deferred\nimport kotlinx.coroutines.async\nimport tachiyomi.core.common.util.system.logcat\n\nclass MigrationJobFactory(\n    private val migrationContext: MigrationContext,\n    private val scope: CoroutineScope,\n) {\n\n    fun create(migrations: List<Migration>): Deferred<Boolean> = with(scope) {\n        return migrations.sortedBy { it.version }\n            .fold(CompletableDeferred(true)) { acc: Deferred<Boolean>, migration: Migration ->\n                if (!migrationContext.dryrun) {\n                    logcat {\n                        \"Running migration: { name = ${migration::class.simpleName}, version = ${migration.version} }\"\n                    }\n                    async(start = CoroutineStart.UNDISPATCHED) {\n                        val prev = acc.await()\n                        migration(migrationContext) || prev\n                    }\n                } else {\n                    logcat {\n                        \"(Dry-run) Running migration: { name = ${migration::class.simpleName}, version = ${migration.version} }\"\n                    }\n                    CompletableDeferred(true)\n                }\n            }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/MigrationStrategy.kt",
    "content": "package mihon.core.migration\n\nimport kotlinx.coroutines.CompletableDeferred\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Deferred\nimport kotlinx.coroutines.launch\n\ninterface MigrationStrategy {\n    operator fun invoke(migrations: List<Migration>): Deferred<Boolean>\n}\n\nclass DefaultMigrationStrategy(\n    private val migrationJobFactory: MigrationJobFactory,\n    private val migrationCompletedListener: MigrationCompletedListener,\n    private val scope: CoroutineScope,\n) : MigrationStrategy {\n\n    override operator fun invoke(migrations: List<Migration>): Deferred<Boolean> = with(scope) {\n        if (migrations.isEmpty()) {\n            return@with CompletableDeferred(false)\n        }\n\n        val chain = migrationJobFactory.create(migrations)\n\n        launch {\n            if (chain.await()) migrationCompletedListener()\n        }.start()\n\n        chain\n    }\n}\n\nclass InitialMigrationStrategy(private val strategy: DefaultMigrationStrategy) : MigrationStrategy {\n\n    override operator fun invoke(migrations: List<Migration>): Deferred<Boolean> {\n        return strategy(migrations.filter { it.isAlways })\n    }\n}\n\nclass NoopMigrationStrategy(val state: Boolean) : MigrationStrategy {\n\n    override fun invoke(migrations: List<Migration>): Deferred<Boolean> {\n        return CompletableDeferred(state)\n    }\n}\n\nclass VersionRangeMigrationStrategy(\n    private val versions: IntRange,\n    private val strategy: DefaultMigrationStrategy,\n) : MigrationStrategy {\n\n    override operator fun invoke(migrations: List<Migration>): Deferred<Boolean> {\n        return strategy(migrations.filter { it.isAlways || it.version.toInt() in versions })\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/MigrationStrategyFactory.kt",
    "content": "package mihon.core.migration\n\nclass MigrationStrategyFactory(\n    private val factory: MigrationJobFactory,\n    private val migrationCompletedListener: MigrationCompletedListener,\n) {\n\n    fun create(old: Int, new: Int): MigrationStrategy {\n        val strategy = when {\n            old == 0 -> InitialMigrationStrategy(\n                strategy = DefaultMigrationStrategy(factory, migrationCompletedListener, Migrator.scope),\n            )\n            old >= new -> NoopMigrationStrategy(false)\n            else -> VersionRangeMigrationStrategy(\n                versions = (old + 1)..new,\n                strategy = DefaultMigrationStrategy(factory, migrationCompletedListener, Migrator.scope),\n            )\n        }\n        return strategy\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/Migrator.kt",
    "content": "package mihon.core.migration\n\nimport kotlinx.coroutines.CompletableDeferred\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Deferred\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.runBlocking\n\nobject Migrator {\n\n    private var result: Deferred<Boolean>? = null\n    val scope = CoroutineScope(Dispatchers.IO + Job())\n\n    fun initialize(\n        old: Int,\n        new: Int,\n        migrations: List<Migration>,\n        dryrun: Boolean = false,\n        onMigrationComplete: () -> Unit,\n    ) {\n        val migrationContext = MigrationContext(dryrun)\n        val migrationJobFactory = MigrationJobFactory(migrationContext, scope)\n        val migrationStrategyFactory = MigrationStrategyFactory(migrationJobFactory, onMigrationComplete)\n        val strategy = migrationStrategyFactory.create(old, new)\n        result = strategy(migrations)\n    }\n\n    suspend fun await(): Boolean {\n        val result = result ?: CompletableDeferred(false)\n        return result.await()\n    }\n\n    fun release() {\n        result = null\n    }\n\n    fun awaitAndRelease(): Boolean = runBlocking {\n        await().also { release() }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/migrations/CategoryPreferencesCleanupMigration.kt",
    "content": "package mihon.core.migration.migrations\n\nimport mihon.core.migration.Migration\nimport mihon.core.migration.MigrationContext\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences\n\nclass CategoryPreferencesCleanupMigration : Migration {\n    override val version: Float = 10f\n\n    override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext {\n        val libraryPreferences = migrationContext.get<LibraryPreferences>() ?: return@withIOContext false\n        val downloadPreferences = migrationContext.get<DownloadPreferences>() ?: return@withIOContext false\n\n        val getCategories = migrationContext.get<GetCategories>() ?: return@withIOContext false\n        val allCategories = getCategories.await().map { it.id.toString() }.toSet()\n\n        val defaultCategory = libraryPreferences.defaultCategory.get()\n        if (defaultCategory.toString() !in allCategories) {\n            libraryPreferences.defaultCategory.delete()\n        }\n\n        val categoryPreferences = listOf(\n            libraryPreferences.updateCategories,\n            libraryPreferences.updateCategoriesExclude,\n            downloadPreferences.removeExcludeCategories,\n            downloadPreferences.downloadNewChapterCategories,\n            downloadPreferences.downloadNewChapterCategoriesExclude,\n        )\n        categoryPreferences.forEach { preference ->\n            val ids = preference.get()\n            val garbageIds = ids.minus(allCategories)\n            if (garbageIds.isEmpty()) return@forEach\n            preference.set(ids.minus(garbageIds))\n        }\n        return@withIOContext true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/migrations/InstallationIdMigration.kt",
    "content": "package mihon.core.migration.migrations\n\nimport eu.kanade.domain.base.BasePreferences\nimport mihon.core.common.FeatureFlags\nimport mihon.core.migration.Migration\nimport mihon.core.migration.MigrationContext\nimport kotlin.uuid.ExperimentalUuidApi\n\nclass InstallationIdMigration : Migration {\n    override val version: Float = Migration.ALWAYS\n\n    @OptIn(ExperimentalUuidApi::class)\n    override suspend fun invoke(migrationContext: MigrationContext): Boolean {\n        val installationId = migrationContext.get<BasePreferences>()?.installationId ?: return false\n        if (!installationId.isSet()) installationId.set(FeatureFlags.newInstallationId())\n        return true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/migrations/Migrations.kt",
    "content": "package mihon.core.migration.migrations\n\nimport mihon.core.migration.Migration\n\nval migrations: List<Migration>\n    get() = listOf(\n        SetupBackupCreateMigration(),\n        SetupLibraryUpdateMigration(),\n        TrustExtensionRepositoryMigration(),\n        CategoryPreferencesCleanupMigration(),\n        InstallationIdMigration(),\n    )\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/migrations/SetupBackupCreateMigration.kt",
    "content": "package mihon.core.migration.migrations\n\nimport android.app.Application\nimport eu.kanade.tachiyomi.data.backup.create.BackupCreateJob\nimport mihon.core.migration.Migration\nimport mihon.core.migration.MigrationContext\n\nclass SetupBackupCreateMigration : Migration {\n    override val version: Float = Migration.ALWAYS\n\n    override suspend fun invoke(migrationContext: MigrationContext): Boolean {\n        val context = migrationContext.get<Application>() ?: return false\n        BackupCreateJob.setupTask(context)\n        return true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/migrations/SetupLibraryUpdateMigration.kt",
    "content": "package mihon.core.migration.migrations\n\nimport android.app.Application\nimport eu.kanade.tachiyomi.data.library.LibraryUpdateJob\nimport mihon.core.migration.Migration\nimport mihon.core.migration.MigrationContext\n\nclass SetupLibraryUpdateMigration : Migration {\n    override val version: Float = Migration.ALWAYS\n\n    override suspend fun invoke(migrationContext: MigrationContext): Boolean {\n        val context = migrationContext.get<Application>() ?: return false\n        LibraryUpdateJob.setupTask(context)\n        return true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/core/migration/migrations/TrustExtensionRepositoryMigration.kt",
    "content": "package mihon.core.migration.migrations\n\nimport eu.kanade.domain.source.service.SourcePreferences\nimport logcat.LogPriority\nimport mihon.core.migration.Migration\nimport mihon.core.migration.MigrationContext\nimport mihon.domain.extensionrepo.exception.SaveExtensionRepoException\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\n\nclass TrustExtensionRepositoryMigration : Migration {\n    override val version: Float = 7f\n\n    override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext {\n        val sourcePreferences = migrationContext.get<SourcePreferences>() ?: return@withIOContext false\n        val extensionRepositoryRepository =\n            migrationContext.get<ExtensionRepoRepository>() ?: return@withIOContext false\n        for ((index, source) in sourcePreferences.extensionRepos.get().withIndex()) {\n            try {\n                extensionRepositoryRepository.upsertRepo(\n                    source,\n                    \"Repo #${index + 1}\",\n                    null,\n                    source,\n                    \"NOFINGERPRINT-${index + 1}\",\n                )\n            } catch (e: SaveExtensionRepoException) {\n                logcat(LogPriority.ERROR, e) { \"Error Migrating Extension Repo with baseUrl: $source\" }\n            }\n        }\n        sourcePreferences.extensionRepos.delete()\n        return@withIOContext true\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/domain/migration/models/MigrationFlag.kt",
    "content": "package mihon.domain.migration.models\n\nenum class MigrationFlag(val flag: Int) {\n    CHAPTER(0b00001),\n    CATEGORY(0b00010),\n\n    // 0b00100 was used for manga trackers\n    CUSTOM_COVER(0b01000),\n    NOTES(0b100000),\n    REMOVE_DOWNLOAD(0b10000),\n    ;\n\n    companion object {\n        fun fromBit(bit: Int): Set<MigrationFlag> {\n            return buildSet {\n                entries.forEach { entry ->\n                    if (bit and entry.flag != 0) add(entry)\n                }\n            }\n        }\n\n        fun toBit(flags: Set<MigrationFlag>): Int {\n            return flags.map { it.flag }\n                .reduceOrNull { acc, mask -> acc or mask }\n                ?: 0\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/domain/migration/usecases/MigrateMangaUseCase.kt",
    "content": "package mihon.domain.migration.usecases\n\nimport eu.kanade.domain.chapter.interactor.SyncChaptersWithSource\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.hasCustomCover\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport eu.kanade.tachiyomi.data.track.EnhancedTracker\nimport eu.kanade.tachiyomi.data.track.TrackerManager\nimport kotlinx.coroutines.CancellationException\nimport mihon.domain.migration.models.MigrationFlag\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.category.interactor.SetMangaCategories\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.interactor.UpdateChapter\nimport tachiyomi.domain.chapter.model.toChapterUpdate\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.track.interactor.GetTracks\nimport tachiyomi.domain.track.interactor.InsertTrack\nimport java.time.Instant\n\nclass MigrateMangaUseCase(\n    private val sourcePreferences: SourcePreferences,\n    private val trackerManager: TrackerManager,\n    private val sourceManager: SourceManager,\n    private val downloadManager: DownloadManager,\n    private val updateManga: UpdateManga,\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n    private val syncChaptersWithSource: SyncChaptersWithSource,\n    private val updateChapter: UpdateChapter,\n    private val getCategories: GetCategories,\n    private val setMangaCategories: SetMangaCategories,\n    private val getTracks: GetTracks,\n    private val insertTrack: InsertTrack,\n    private val coverCache: CoverCache,\n) {\n    private val enhancedServices by lazy { trackerManager.trackers.filterIsInstance<EnhancedTracker>() }\n\n    suspend operator fun invoke(current: Manga, target: Manga, replace: Boolean) {\n        val targetSource = sourceManager.get(target.source) ?: return\n        val currentSource = sourceManager.get(current.source)\n        val flags = sourcePreferences.migrationFlags.get()\n\n        try {\n            val chapters = targetSource.getChapterList(target.toSManga())\n\n            try {\n                syncChaptersWithSource.await(chapters, target, targetSource)\n            } catch (_: Exception) {\n                // Worst case, chapters won't be synced\n            }\n\n            // Update chapters read, bookmark and dateFetch\n            if (MigrationFlag.CHAPTER in flags) {\n                val prevMangaChapters = getChaptersByMangaId.await(current.id)\n                val mangaChapters = getChaptersByMangaId.await(target.id)\n\n                val maxChapterRead = prevMangaChapters\n                    .filter { it.read }\n                    .maxOfOrNull { it.chapterNumber }\n\n                val updatedMangaChapters = mangaChapters.map { mangaChapter ->\n                    var updatedChapter = mangaChapter\n                    if (updatedChapter.isRecognizedNumber) {\n                        val prevChapter = prevMangaChapters\n                            .find { it.isRecognizedNumber && it.chapterNumber == updatedChapter.chapterNumber }\n\n                        if (prevChapter != null) {\n                            updatedChapter = updatedChapter.copy(\n                                dateFetch = prevChapter.dateFetch,\n                                bookmark = prevChapter.bookmark,\n                            )\n                        }\n\n                        if (maxChapterRead != null && updatedChapter.chapterNumber <= maxChapterRead) {\n                            updatedChapter = updatedChapter.copy(read = true)\n                        }\n                    }\n\n                    updatedChapter\n                }\n\n                val chapterUpdates = updatedMangaChapters.map { it.toChapterUpdate() }\n                updateChapter.awaitAll(chapterUpdates)\n            }\n\n            // Update categories\n            if (MigrationFlag.CATEGORY in flags) {\n                val categoryIds = getCategories.await(current.id).map { it.id }\n                setMangaCategories.await(target.id, categoryIds)\n            }\n\n            // Update track\n            getTracks.await(current.id).mapNotNull { track ->\n                val updatedTrack = track.copy(mangaId = target.id)\n\n                val service = enhancedServices\n                    .firstOrNull { it.isTrackFrom(updatedTrack, current, currentSource) }\n\n                if (service != null) {\n                    service.migrateTrack(updatedTrack, target, targetSource)\n                } else {\n                    updatedTrack\n                }\n            }\n                .takeIf { it.isNotEmpty() }\n                ?.let { insertTrack.awaitAll(it) }\n\n            // Delete downloaded\n            if (MigrationFlag.REMOVE_DOWNLOAD in flags && currentSource != null) {\n                downloadManager.deleteManga(current, currentSource)\n            }\n\n            // Update custom cover (recheck if custom cover exists)\n            if (MigrationFlag.CUSTOM_COVER in flags && current.hasCustomCover()) {\n                coverCache.setCustomCoverToCache(target, coverCache.getCustomCoverFile(current.id).inputStream())\n            }\n\n            val currentMangaUpdate = MangaUpdate(\n                id = current.id,\n                favorite = false,\n                dateAdded = 0,\n            )\n                .takeIf { replace }\n            val targetMangaUpdate = MangaUpdate(\n                id = target.id,\n                favorite = true,\n                chapterFlags = current.chapterFlags,\n                viewerFlags = current.viewerFlags,\n                dateAdded = if (replace) current.dateAdded else Instant.now().toEpochMilli(),\n                notes = if (MigrationFlag.NOTES in flags) current.notes else null,\n            )\n\n            updateManga.awaitAll(listOfNotNull(currentMangaUpdate, targetMangaUpdate))\n        } catch (e: Throwable) {\n            if (e is CancellationException) {\n                throw e\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/common/utils/MigrationFlag.kt",
    "content": "package mihon.feature.common.utils\n\nimport dev.icerock.moko.resources.StringResource\nimport mihon.domain.migration.models.MigrationFlag\nimport tachiyomi.i18n.MR\n\nfun MigrationFlag.getLabel(): StringResource {\n    return when (this) {\n        MigrationFlag.CHAPTER -> MR.strings.chapters\n        MigrationFlag.CATEGORY -> MR.strings.categories\n        MigrationFlag.CUSTOM_COVER -> MR.strings.custom_cover\n        MigrationFlag.NOTES -> MR.strings.action_notes\n        MigrationFlag.REMOVE_DOWNLOAD -> MR.strings.delete_downloaded\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/config/MigrationConfigScreen.kt",
    "content": "package mihon.feature.migration.config\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyItemScope\nimport androidx.compose.foundation.lazy.itemsIndexed\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowForward\nimport androidx.compose.material.icons.outlined.Deselect\nimport androidx.compose.material.icons.outlined.DragHandle\nimport androidx.compose.material.icons.outlined.SelectAll\nimport androidx.compose.material3.ElevatedCard\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.ListItem\nimport androidx.compose.material3.ListItemDefaults\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.SmallExtendedFloatingActionButton\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.derivedStateOf\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastForEachIndexed\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.presentation.browse.components.SourceIcon\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport eu.kanade.tachiyomi.ui.browse.migration.search.MigrateSearchScreen\nimport eu.kanade.tachiyomi.util.system.LocaleHelper\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.coroutines.flow.update\nimport mihon.feature.migration.list.MigrationListScreen\nimport sh.calvin.reorderable.ReorderableCollectionItemScope\nimport sh.calvin.reorderable.ReorderableItem\nimport sh.calvin.reorderable.ReorderableLazyListState\nimport sh.calvin.reorderable.rememberReorderableLazyListState\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.Pill\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport tachiyomi.presentation.core.util.shouldExpandFAB\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MigrationConfigScreen(private val mangaIds: Collection<Long>) : Screen() {\n\n    constructor(mangaId: Long) : this(listOf(mangaId))\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { ScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        var migrationSheetOpen by rememberSaveable { mutableStateOf(false) }\n\n        fun continueMigration(openSheet: Boolean, extraSearchQuery: String?) {\n            val mangaId = mangaIds.singleOrNull()\n            if (mangaId == null && openSheet) {\n                migrationSheetOpen = true\n                return\n            }\n            val screen = if (mangaId == null) {\n                MigrationListScreen(mangaIds, extraSearchQuery)\n            } else {\n                MigrateSearchScreen(mangaId)\n            }\n            navigator.replace(screen)\n        }\n\n        if (state.isLoading) {\n            LoadingScreen()\n            return\n        }\n\n        val (selectedSources, availableSources) = state.sources.partition { it.isSelected }\n        val showLanguage by remember(state) {\n            derivedStateOf {\n                state.sources.distinctBy { it.source.lang }.size > 1\n            }\n        }\n\n        val lazyListState = rememberLazyListState()\n        Scaffold(\n            topBar = {\n                AppBar(\n                    title = null,\n                    navigateUp = navigator::pop,\n                    scrollBehavior = it,\n                    actions = {\n                        AppBarActions(\n                            persistentListOf(\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.migrationConfigScreen_selectAllLabel),\n                                    icon = Icons.Outlined.SelectAll,\n                                    onClick = { screenModel.toggleSelection(ScreenModel.SelectionConfig.All) },\n                                ),\n                                AppBar.Action(\n                                    title = stringResource(MR.strings.migrationConfigScreen_selectNoneLabel),\n                                    icon = Icons.Outlined.Deselect,\n                                    onClick = { screenModel.toggleSelection(ScreenModel.SelectionConfig.None) },\n                                ),\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.migrationConfigScreen_selectEnabledLabel),\n                                    onClick = { screenModel.toggleSelection(ScreenModel.SelectionConfig.Enabled) },\n                                ),\n                                AppBar.OverflowAction(\n                                    title = stringResource(MR.strings.migrationConfigScreen_selectPinnedLabel),\n                                    onClick = { screenModel.toggleSelection(ScreenModel.SelectionConfig.Pinned) },\n                                ),\n                            ),\n                        )\n                    },\n                )\n            },\n            floatingActionButton = {\n                SmallExtendedFloatingActionButton(\n                    text = { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) },\n                    icon = { Icon(imageVector = Icons.AutoMirrored.Outlined.ArrowForward, contentDescription = null) },\n                    onClick = {\n                        screenModel.saveSources()\n                        continueMigration(openSheet = true, extraSearchQuery = null)\n                    },\n                    expanded = lazyListState.shouldExpandFAB(),\n                )\n            },\n        ) { contentPadding ->\n            val reorderableState = rememberReorderableLazyListState(lazyListState, contentPadding) { from, to ->\n                val fromIndex = selectedSources.indexOfFirst { it.id == from.key }\n                val toIndex = selectedSources.indexOfFirst { it.id == to.key }\n                if (fromIndex == -1 || toIndex == -1) return@rememberReorderableLazyListState\n                screenModel.orderSource(fromIndex, toIndex)\n            }\n\n            FastScrollLazyColumn(\n                modifier = Modifier.fillMaxSize(),\n                state = lazyListState,\n                contentPadding = contentPadding,\n            ) {\n                listOf(selectedSources, availableSources).fastForEachIndexed { listIndex, sources ->\n                    val selectedSourceList = listIndex == 0\n                    if (sources.isNotEmpty()) {\n                        val headerPrefix = if (selectedSourceList) \"selected\" else \"available\"\n                        item(\"$headerPrefix-header\") {\n                            Text(\n                                text = stringResource(\n                                    resource = if (selectedSourceList) {\n                                        MR.strings.migrationConfigScreen_selectedHeader\n                                    } else {\n                                        MR.strings.migrationConfigScreen_availableHeader\n                                    },\n                                ),\n                                style = MaterialTheme.typography.bodyMedium,\n                                modifier = Modifier\n                                    .padding(MaterialTheme.padding.medium)\n                                    .animateItem(),\n                            )\n                        }\n                    }\n                    itemsIndexed(\n                        items = sources,\n                        key = { _, item -> item.id },\n                    ) { index, item ->\n                        SourceItemContainer(\n                            firstItem = index == 0,\n                            lastItem = index == (sources.size - 1),\n                            source = item,\n                            showLanguage = showLanguage,\n                            dragEnabled = selectedSourceList && sources.size > 1,\n                            state = reorderableState,\n                            key = { if (selectedSourceList) it.id else \"available-${it.id}\" },\n                            onClick = { screenModel.toggleSelection(item.id) },\n                        )\n                    }\n                }\n            }\n        }\n\n        if (migrationSheetOpen) {\n            MigrationConfigScreenSheet(\n                preferences = screenModel.sourcePreferences,\n                onDismissRequest = { migrationSheetOpen = false },\n                onStartMigration = { extraSearchQuery ->\n                    migrationSheetOpen = false\n                    continueMigration(openSheet = false, extraSearchQuery = extraSearchQuery)\n                },\n            )\n        }\n    }\n\n    @Composable\n    private fun LazyItemScope.SourceItemContainer(\n        firstItem: Boolean,\n        lastItem: Boolean,\n        source: MigrationSource,\n        showLanguage: Boolean,\n        dragEnabled: Boolean,\n        state: ReorderableLazyListState,\n        key: (MigrationSource) -> Any,\n        onClick: () -> Unit,\n    ) {\n        val shape = remember(firstItem, lastItem) {\n            val top = if (firstItem) 12.dp else 0.dp\n            val bottom = if (lastItem) 12.dp else 0.dp\n            RoundedCornerShape(top, top, bottom, bottom)\n        }\n\n        ReorderableItem(\n            state = state,\n            key = key(source),\n            enabled = dragEnabled,\n        ) { _ ->\n            ElevatedCard(\n                shape = shape,\n                modifier = Modifier\n                    .padding(horizontal = MaterialTheme.padding.medium)\n                    .animateItem(),\n            ) {\n                SourceItem(\n                    source = source,\n                    showLanguage = showLanguage,\n                    dragEnabled = dragEnabled,\n                    scope = this@ReorderableItem,\n                    onClick = onClick,\n                )\n            }\n        }\n\n        if (!lastItem) {\n            HorizontalDivider(modifier = Modifier.padding(horizontal = MaterialTheme.padding.medium))\n        }\n    }\n\n    @Composable\n    private fun SourceItem(\n        source: MigrationSource,\n        showLanguage: Boolean,\n        dragEnabled: Boolean,\n        scope: ReorderableCollectionItemScope,\n        onClick: () -> Unit,\n    ) {\n        ListItem(\n            headlineContent = {\n                Row(\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    SourceIcon(source = source.source)\n                    Text(\n                        text = source.name,\n                        maxLines = 1,\n                        overflow = TextOverflow.Ellipsis,\n                        style = MaterialTheme.typography.bodyMedium,\n                        modifier = Modifier.weight(1f),\n                    )\n                    if (showLanguage) {\n                        Pill(\n                            text = LocaleHelper.getShortDisplayName(source.shortLanguage, uppercase = true),\n                            style = MaterialTheme.typography.bodySmall,\n                        )\n                    }\n                }\n            },\n            trailingContent = if (dragEnabled) {\n                {\n                    Icon(\n                        imageVector = Icons.Outlined.DragHandle,\n                        contentDescription = null,\n                        modifier = with(scope) {\n                            Modifier.draggableHandle()\n                        },\n                    )\n                }\n            } else {\n                null\n            },\n            colors = ListItemDefaults.colors(\n                containerColor = Color.Transparent,\n            ),\n            modifier = Modifier.clickable(onClick = onClick),\n        )\n    }\n\n    private class ScreenModel(\n        val sourcePreferences: SourcePreferences = Injekt.get(),\n        private val sourceManager: SourceManager = Injekt.get(),\n    ) : StateScreenModel<ScreenModel.State>(State()) {\n\n        private val sourcesComparator = { includedSources: List<Long> ->\n            compareBy<MigrationSource>(\n                { !it.isSelected },\n                { includedSources.indexOf(it.id) },\n                { with(it) { \"$name ($shortLanguage)\" } },\n            )\n        }\n\n        init {\n            screenModelScope.launchIO {\n                initSources()\n                mutableState.update { it.copy(isLoading = false) }\n            }\n        }\n\n        private fun updateSources(action: (List<MigrationSource>) -> List<MigrationSource>) {\n            mutableState.update { state ->\n                val updatedSources = action(state.sources)\n                val includedSources = updatedSources.mapNotNull { if (!it.isSelected) null else it.id }\n                state.copy(sources = updatedSources.sortedWith(sourcesComparator(includedSources)))\n            }\n            saveSources()\n        }\n\n        private fun initSources() {\n            val languages = sourcePreferences.enabledLanguages.get()\n            val pinnedSources = sourcePreferences.pinnedSources.get().mapNotNull { it.toLongOrNull() }\n            val includedSources = sourcePreferences.migrationSources.get()\n            val disabledSources = sourcePreferences.disabledSources.get()\n                .mapNotNull { it.toLongOrNull() }\n            val sources = sourceManager.getCatalogueSources()\n                .asSequence()\n                .filterIsInstance<HttpSource>()\n                .filter { it.lang in languages }\n                .map {\n                    val source = Source(\n                        id = it.id,\n                        lang = it.lang,\n                        name = it.name,\n                        supportsLatest = false,\n                        isStub = false,\n                    )\n                    MigrationSource(\n                        source = source,\n                        isSelected = when {\n                            includedSources.isNotEmpty() -> source.id in includedSources\n                            pinnedSources.isNotEmpty() -> source.id in pinnedSources\n                            else -> source.id !in disabledSources\n                        },\n                    )\n                }\n                .toList()\n\n            mutableState.update { state ->\n                state.copy(sources = sources.sortedWith(sourcesComparator(includedSources)))\n            }\n        }\n\n        fun toggleSelection(id: Long) {\n            updateSources { sources ->\n                sources.map { source ->\n                    source.copy(isSelected = if (source.source.id == id) !source.isSelected else source.isSelected)\n                }\n            }\n        }\n\n        fun toggleSelection(config: SelectionConfig) {\n            val pinnedSources = sourcePreferences.pinnedSources.get().mapNotNull { it.toLongOrNull() }\n            val disabledSources = sourcePreferences.disabledSources.get().mapNotNull { it.toLongOrNull() }\n            val isSelected: (Long) -> Boolean = {\n                when (config) {\n                    SelectionConfig.All -> true\n                    SelectionConfig.None -> false\n                    SelectionConfig.Pinned -> it in pinnedSources\n                    SelectionConfig.Enabled -> it !in disabledSources\n                }\n            }\n            updateSources { sources ->\n                sources.map { source ->\n                    source.copy(isSelected = isSelected(source.source.id))\n                }\n            }\n        }\n\n        fun orderSource(from: Int, to: Int) {\n            updateSources {\n                it.toMutableList()\n                    .apply {\n                        add(to, removeAt(from))\n                    }\n                    .toList()\n            }\n        }\n\n        fun saveSources() {\n            state.value.sources\n                .filter { source -> source.isSelected }\n                .map { source -> source.source.id }\n                .let { sources -> sourcePreferences.migrationSources.set(sources) }\n        }\n\n        data class State(\n            val isLoading: Boolean = true,\n            val sources: List<MigrationSource> = emptyList(),\n        )\n\n        enum class SelectionConfig {\n            All,\n            None,\n            Pinned,\n            Enabled,\n        }\n    }\n\n    data class MigrationSource(\n        val source: Source,\n        val isSelected: Boolean,\n    ) {\n        val id: Long\n            inline get() = source.id\n\n        val name: String\n            inline get() = source.name\n\n        val shortLanguage: String = LocaleHelper.getShortDisplayName(source.lang)\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt",
    "content": "package mihon.feature.migration.config\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.FlowRow\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Check\nimport androidx.compose.material.icons.outlined.Warning\nimport androidx.compose.material3.FilterChip\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.ListItem\nimport androidx.compose.material3.ListItemDefaults\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.Switch\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.util.fastForEach\nimport eu.kanade.core.util.fastFilterNot\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.presentation.components.AdaptiveSheet\nimport mihon.domain.migration.models.MigrationFlag\nimport mihon.feature.common.utils.getLabel\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.getAndSet\nimport tachiyomi.core.common.preference.toggle\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.material.Button\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.theme.active\nimport tachiyomi.presentation.core.theme.header\nimport tachiyomi.presentation.core.util.collectAsState\n\n@Composable\nfun MigrationConfigScreenSheet(\n    preferences: SourcePreferences,\n    onDismissRequest: () -> Unit,\n    onStartMigration: (extraSearchQuery: String?) -> Unit,\n) {\n    var extraSearchQuery by rememberSaveable { mutableStateOf(\"\") }\n    val migrationFlags by preferences.migrationFlags.collectAsState()\n    AdaptiveSheet(onDismissRequest = onDismissRequest) {\n        Column(modifier = Modifier.fillMaxWidth()) {\n            Column(\n                modifier = Modifier\n                    .weight(1f, fill = false)\n                    .fillMaxWidth()\n                    .verticalScroll(rememberScrollState())\n                    .padding(top = MaterialTheme.padding.medium),\n            ) {\n                Text(\n                    text = stringResource(MR.strings.migrationConfigScreen_dataToMigrateHeader),\n                    style = MaterialTheme.typography.header,\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .padding(top = MaterialTheme.padding.extraSmall)\n                        .padding(horizontal = MaterialTheme.padding.medium),\n                )\n                Spacer(modifier = Modifier.height(MaterialTheme.padding.extraSmall))\n                FlowRow(\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .padding(horizontal = MaterialTheme.padding.medium)\n                        .padding(bottom = MaterialTheme.padding.extraSmall),\n                    horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n                ) {\n                    MigrationFlag.entries\n                        .fastFilterNot { it == MigrationFlag.REMOVE_DOWNLOAD }\n                        .fastForEach { flag ->\n                            val selected = flag in migrationFlags\n                            FilterChip(\n                                selected = selected,\n                                onClick = {\n                                    preferences.migrationFlags.getAndSet { currentFlags ->\n                                        if (flag in currentFlags) {\n                                            currentFlags - flag\n                                        } else {\n                                            currentFlags + flag\n                                        }\n                                    }\n                                },\n                                label = { Text(stringResource(flag.getLabel())) },\n                                leadingIcon = {\n                                    if (selected) {\n                                        Icon(\n                                            imageVector = Icons.Outlined.Check,\n                                            contentDescription = null,\n                                        )\n                                    }\n                                },\n                            )\n                        }\n                }\n                val removeDownloads = MigrationFlag.REMOVE_DOWNLOAD in migrationFlags\n                MigrationSheetSwitchItem(\n                    title = stringResource(MR.strings.migrationConfigScreen_removeDownloadsTitle),\n                    subtitle = null,\n                    checked = removeDownloads,\n                    onClick = {\n                        preferences.migrationFlags.getAndSet {\n                            if (removeDownloads) {\n                                it - MigrationFlag.REMOVE_DOWNLOAD\n                            } else {\n                                it + MigrationFlag.REMOVE_DOWNLOAD\n                            }\n                        }\n                    },\n                )\n                MigrationSheetDividerItem()\n                OutlinedTextField(\n                    value = extraSearchQuery,\n                    onValueChange = { extraSearchQuery = it },\n                    label = { Text(stringResource(MR.strings.migrationConfigScreen_additionalSearchQueryLabel)) },\n                    supportingText = {\n                        Text(stringResource(MR.strings.migrationConfigScreen_additionalSearchQuerySupportingText))\n                    },\n                    singleLine = true,\n                    modifier = Modifier\n                        .fillMaxWidth()\n                        .padding(\n                            horizontal = MaterialTheme.padding.medium,\n                            vertical = MaterialTheme.padding.extraSmall,\n                        ),\n                )\n                MigrationSheetSwitchItem(\n                    title = stringResource(MR.strings.migrationConfigScreen_hideUnmatchedTitle),\n                    subtitle = null,\n                    preference = preferences.migrationHideUnmatched,\n                )\n                MigrationSheetSwitchItem(\n                    title = stringResource(MR.strings.migrationConfigScreen_hideWithoutUpdatesTitle),\n                    subtitle = stringResource(MR.strings.migrationConfigScreen_hideWithoutUpdatesSubtitle),\n                    preference = preferences.migrationHideWithoutUpdates,\n                )\n                MigrationSheetDividerItem()\n                MigrationSheetWarningItem(stringResource(MR.strings.migrationConfigScreen_enhancedOptionsWarning))\n                MigrationSheetSwitchItem(\n                    title = stringResource(MR.strings.migrationConfigScreen_deepSearchModeTitle),\n                    subtitle = stringResource(MR.strings.migrationConfigScreen_deepSearchModeSubtitle),\n                    preference = preferences.migrationDeepSearchMode,\n                )\n                MigrationSheetSwitchItem(\n                    title = stringResource(MR.strings.migrationConfigScreen_prioritizeByChaptersTitle),\n                    subtitle = stringResource(MR.strings.migrationConfigScreen_prioritizeByChaptersSubtitle),\n                    preference = preferences.migrationPrioritizeByChapters,\n                )\n            }\n            HorizontalDivider()\n            Button(\n                onClick = {\n                    val cleanedExtraSearchQuery = extraSearchQuery.trim().ifBlank { null }\n                    onStartMigration(cleanedExtraSearchQuery)\n                },\n                modifier = Modifier\n                    .fillMaxWidth()\n                    .padding(\n                        horizontal = MaterialTheme.padding.medium,\n                        vertical = MaterialTheme.padding.small,\n                    ),\n            ) {\n                Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText))\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun MigrationSheetSwitchItem(\n    title: String,\n    subtitle: String?,\n    preference: Preference<Boolean>,\n) {\n    MigrationSheetSwitchItem(\n        title = title,\n        subtitle = subtitle,\n        checked = preference.collectAsState().value,\n        onClick = { preference.toggle() },\n    )\n}\n\n@Composable\nprivate fun MigrationSheetSwitchItem(\n    title: String,\n    subtitle: String?,\n    checked: Boolean,\n    onClick: () -> Unit,\n) {\n    ListItem(\n        headlineContent = { Text(text = title) },\n        supportingContent = subtitle?.let { { Text(text = subtitle) } },\n        trailingContent = {\n            Switch(\n                checked = checked,\n                onCheckedChange = null,\n            )\n        },\n        colors = ListItemDefaults.colors(containerColor = Color.Transparent),\n        modifier = Modifier.clickable(onClick = onClick),\n    )\n}\n\n@Composable\nprivate fun MigrationSheetDividerItem() {\n    HorizontalDivider(modifier = Modifier.padding(vertical = MaterialTheme.padding.extraSmall))\n}\n\n@Composable\nprivate fun MigrationSheetWarningItem(\n    text: String,\n) {\n    ListItem(\n        leadingContent = {\n            Icon(\n                imageVector = Icons.Outlined.Warning,\n                contentDescription = null,\n                tint = MaterialTheme.colorScheme.active,\n            )\n        },\n        headlineContent = {\n            Text(\n                text = text,\n                color = MaterialTheme.colorScheme.error,\n                modifier = Modifier,\n            )\n        },\n        colors = ListItemDefaults.colors(containerColor = Color.Transparent),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/dialog/MigrateMangaDialog.kt",
    "content": "package mihon.feature.migration.dialog\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.FlowRow\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.util.fastForEach\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.core.screen.Screen\nimport eu.kanade.domain.manga.model.hasCustomCover\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.data.cache.CoverCache\nimport eu.kanade.tachiyomi.data.download.DownloadManager\nimport kotlinx.coroutines.flow.update\nimport mihon.domain.migration.models.MigrationFlag\nimport mihon.domain.migration.usecases.MigrateMangaUseCase\nimport mihon.feature.common.utils.getLabel\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.LabeledCheckbox\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.screens.LoadingScreen\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\n@Composable\ninternal fun Screen.MigrateMangaDialog(\n    current: Manga,\n    target: Manga,\n    onClickTitle: () -> Unit,\n    onDismissRequest: () -> Unit,\n    onComplete: () -> Unit = onDismissRequest,\n) {\n    val scope = rememberCoroutineScope()\n\n    val screenModel = rememberScreenModel { MigrateDialogScreenModel() }\n    LaunchedEffect(current, target) {\n        screenModel.init(current, target)\n    }\n    val state by screenModel.state.collectAsState()\n\n    if (state.isMigrated) return\n\n    if (state.isMigrating) {\n        LoadingScreen(\n            modifier = Modifier.background(MaterialTheme.colorScheme.background.copy(alpha = 0.7f)),\n        )\n        return\n    }\n\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = {\n            Text(text = stringResource(MR.strings.migration_dialog_what_to_include))\n        },\n        text = {\n            Column(\n                modifier = Modifier.verticalScroll(rememberScrollState()),\n            ) {\n                state.applicableFlags.fastForEach { flag ->\n                    LabeledCheckbox(\n                        label = stringResource(flag.getLabel()),\n                        checked = flag in state.selectedFlags,\n                        onCheckedChange = { screenModel.toggleSelection(flag) },\n                    )\n                }\n            }\n        },\n        confirmButton = {\n            FlowRow(\n                horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n            ) {\n                TextButton(\n                    onClick = {\n                        onDismissRequest()\n                        onClickTitle()\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.action_show_manga))\n                }\n\n                Spacer(modifier = Modifier.weight(1f))\n\n                TextButton(\n                    onClick = {\n                        scope.launchIO {\n                            screenModel.migrateManga(replace = false)\n                            withUIContext { onComplete() }\n                        }\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.copy))\n                }\n                TextButton(\n                    onClick = {\n                        scope.launchIO {\n                            screenModel.migrateManga(replace = true)\n                            withUIContext { onComplete() }\n                        }\n                    },\n                ) {\n                    Text(text = stringResource(MR.strings.migrate))\n                }\n            }\n        },\n    )\n}\n\nprivate class MigrateDialogScreenModel(\n    private val sourcePreference: SourcePreferences = Injekt.get(),\n    private val coverCache: CoverCache = Injekt.get(),\n    private val downloadManager: DownloadManager = Injekt.get(),\n    private val migrateManga: MigrateMangaUseCase = Injekt.get(),\n) : StateScreenModel<MigrateDialogScreenModel.State>(State()) {\n\n    fun init(current: Manga, target: Manga) {\n        val applicableFlags = buildList {\n            MigrationFlag.entries.forEach {\n                val applicable = when (it) {\n                    MigrationFlag.CHAPTER -> true\n                    MigrationFlag.CATEGORY -> true\n                    MigrationFlag.CUSTOM_COVER -> current.hasCustomCover(coverCache)\n                    MigrationFlag.NOTES -> current.notes.isNotBlank()\n                    MigrationFlag.REMOVE_DOWNLOAD -> downloadManager.getDownloadCount(current) > 0\n                }\n                if (applicable) add(it)\n            }\n        }\n        val selectedFlags = sourcePreference.migrationFlags.get()\n        mutableState.update {\n            State(\n                current = current,\n                target = target,\n                applicableFlags = applicableFlags,\n                selectedFlags = selectedFlags,\n            )\n        }\n    }\n\n    fun toggleSelection(flag: MigrationFlag) {\n        mutableState.update {\n            val selectedFlags = it.selectedFlags.toMutableSet()\n                .apply { if (contains(flag)) remove(flag) else add(flag) }\n                .toSet()\n            it.copy(selectedFlags = selectedFlags)\n        }\n    }\n\n    suspend fun migrateManga(replace: Boolean) {\n        val state = state.value\n        val current = state.current ?: return\n        val target = state.target ?: return\n        sourcePreference.migrationFlags.set(state.selectedFlags)\n        mutableState.update { it.copy(isMigrating = true) }\n        migrateManga(current, target, replace)\n        mutableState.update { it.copy(isMigrating = false, isMigrated = true) }\n    }\n\n    data class State(\n        val current: Manga? = null,\n        val target: Manga? = null,\n        val applicableFlags: List<MigrationFlag> = emptyList(),\n        val selectedFlags: Set<MigrationFlag> = emptySet(),\n        val isMigrating: Boolean = false,\n        val isMigrated: Boolean = false,\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/MigrationListScreen.kt",
    "content": "package mihon.feature.migration.list\n\nimport android.widget.Toast\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.platform.LocalContext\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.browse.migration.search.MigrateSearchScreen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\nimport eu.kanade.tachiyomi.util.system.toast\nimport mihon.feature.migration.list.components.MigrationExitDialog\nimport mihon.feature.migration.list.components.MigrationMangaDialog\nimport mihon.feature.migration.list.components.MigrationProgressDialog\nimport tachiyomi.i18n.MR\n\nclass MigrationListScreen(private val mangaIds: Collection<Long>, private val extraSearchQuery: String?) : Screen() {\n\n    private var matchOverride: Pair<Long, Long>? = null\n\n    fun addMatchOverride(current: Long, target: Long) {\n        matchOverride = current to target\n    }\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n        val screenModel = rememberScreenModel { MigrationListScreenModel(mangaIds, extraSearchQuery) }\n        val state by screenModel.state.collectAsState()\n        val context = LocalContext.current\n\n        LaunchedEffect(matchOverride) {\n            val (current, target) = matchOverride ?: return@LaunchedEffect\n            screenModel.useMangaForMigration(\n                current = current,\n                target = target,\n                onMissingChapters = {\n                    context.toast(MR.strings.migrationListScreen_matchWithoutChapterToast, Toast.LENGTH_LONG)\n                },\n            )\n            matchOverride = null\n        }\n\n        LaunchedEffect(screenModel) {\n            screenModel.navigateBackEvent.collect {\n                navigator.pop()\n            }\n        }\n        MigrationListScreenContent(\n            items = state.items,\n            migrationComplete = state.migrationComplete,\n            finishedCount = state.finishedCount,\n            onItemClick = {\n                navigator.push(MangaScreen(it.id, true))\n            },\n            onSearchManually = { migrationItem ->\n                navigator push MigrateSearchScreen(migrationItem.manga.id)\n            },\n            onSkip = { screenModel.removeManga(it) },\n            onMigrate = { screenModel.migrateNow(mangaId = it, replace = true) },\n            onCopy = { screenModel.migrateNow(mangaId = it, replace = false) },\n            openMigrationDialog = screenModel::showMigrateDialog,\n        )\n\n        when (val dialog = state.dialog) {\n            is MigrationListScreenModel.Dialog.Migrate -> {\n                MigrationMangaDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    copy = dialog.copy,\n                    totalCount = dialog.totalCount,\n                    skippedCount = dialog.skippedCount,\n                    onMigrate = {\n                        if (dialog.copy) {\n                            screenModel.copyMangas()\n                        } else {\n                            screenModel.migrateMangas()\n                        }\n                    },\n                )\n            }\n            is MigrationListScreenModel.Dialog.Progress -> {\n                MigrationProgressDialog(\n                    progress = dialog.progress,\n                    exitMigration = screenModel::cancelMigrate,\n                )\n            }\n            MigrationListScreenModel.Dialog.Exit -> {\n                MigrationExitDialog(\n                    onDismissRequest = screenModel::dismissDialog,\n                    exitMigration = navigator::pop,\n                )\n            }\n            null -> Unit\n        }\n\n        BackHandler(true) {\n            screenModel.showExitDialog()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/MigrationListScreenContent.kt",
    "content": "package mihon.feature.migration.list\n\nimport androidx.compose.foundation.Image\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.IntrinsicSize\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.aspectRatio\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.widthIn\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.ArrowForward\nimport androidx.compose.material.icons.outlined.Close\nimport androidx.compose.material.icons.outlined.ContentCopy\nimport androidx.compose.material.icons.outlined.CopyAll\nimport androidx.compose.material.icons.outlined.Done\nimport androidx.compose.material.icons.outlined.DoneAll\nimport androidx.compose.material.icons.outlined.MoreVert\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.DropdownMenu\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Brush\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.layout.ContentScale\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.DpOffset\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.AppBarActions\nimport eu.kanade.presentation.manga.components.MangaCover\nimport eu.kanade.presentation.util.animateItemFastScroll\nimport eu.kanade.presentation.util.formatChapterNumber\nimport eu.kanade.presentation.util.rememberResourceBitmapPainter\nimport eu.kanade.tachiyomi.R\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport mihon.feature.migration.list.models.MigratingManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.Badge\nimport tachiyomi.presentation.core.components.BadgeGroup\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.components.material.topSmallPaddingValues\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.plus\n\n@Composable\nfun MigrationListScreenContent(\n    items: ImmutableList<MigratingManga>,\n    migrationComplete: Boolean,\n    finishedCount: Int,\n    onItemClick: (Manga) -> Unit,\n    onSearchManually: (MigratingManga) -> Unit,\n    onSkip: (Long) -> Unit,\n    onMigrate: (Long) -> Unit,\n    onCopy: (Long) -> Unit,\n    openMigrationDialog: (Boolean) -> Unit,\n) {\n    Scaffold(\n        topBar = { scrollBehavior ->\n            AppBar(\n                title = if (items.isNotEmpty()) {\n                    stringResource(MR.strings.migrationListScreenTitleWithProgress, finishedCount, items.size)\n                } else {\n                    stringResource(MR.strings.migrationListScreenTitle)\n                },\n                actions = {\n                    AppBarActions(\n                        persistentListOf(\n                            AppBar.Action(\n                                title = stringResource(MR.strings.migrationListScreen_copyActionLabel),\n                                icon = if (items.size == 1) Icons.Outlined.ContentCopy else Icons.Outlined.CopyAll,\n                                onClick = { openMigrationDialog(true) },\n                                enabled = migrationComplete,\n                            ),\n                            AppBar.Action(\n                                title = stringResource(MR.strings.migrationListScreen_migrateActionLabel),\n                                icon = if (items.size == 1) Icons.Outlined.Done else Icons.Outlined.DoneAll,\n                                onClick = { openMigrationDialog(false) },\n                                enabled = migrationComplete,\n                            ),\n                        ),\n                    )\n                },\n                scrollBehavior = scrollBehavior,\n            )\n        },\n    ) { contentPadding ->\n        FastScrollLazyColumn(contentPadding = contentPadding + topSmallPaddingValues) {\n            items(items, key = { it.manga.id }) { item ->\n                Row(\n                    Modifier\n                        .fillMaxWidth()\n                        .animateItemFastScroll()\n                        .padding(\n                            start = MaterialTheme.padding.medium,\n                            end = MaterialTheme.padding.small,\n                        )\n                        .height(IntrinsicSize.Min),\n                    horizontalArrangement = Arrangement.SpaceBetween,\n                    verticalAlignment = Alignment.CenterVertically,\n                ) {\n                    MigrationListItem(\n                        modifier = Modifier\n                            .weight(1f)\n                            .align(Alignment.Top)\n                            .fillMaxHeight(),\n                        manga = item.manga,\n                        source = item.source,\n                        chapterCount = item.chapterCount,\n                        latestChapter = item.latestChapter,\n                        onClick = { onItemClick(item.manga) },\n                    )\n\n                    Icon(\n                        imageVector = Icons.AutoMirrored.Outlined.ArrowForward,\n                        contentDescription = null,\n                        modifier = Modifier.weight(0.2f),\n                    )\n\n                    val result by item.searchResult.collectAsState()\n                    MigrationListItemResult(\n                        modifier = Modifier\n                            .weight(1f)\n                            .align(Alignment.Top)\n                            .fillMaxHeight(),\n                        result = result,\n                        onItemClick = onItemClick,\n                    )\n\n                    MigrationListItemAction(\n                        modifier = Modifier.weight(0.2f),\n                        result = result,\n                        onSearchManually = { onSearchManually(item) },\n                        onSkip = { onSkip(item.manga.id) },\n                        onMigrate = { onMigrate(item.manga.id) },\n                        onCopy = { onCopy(item.manga.id) },\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nfun MigrationListItem(\n    modifier: Modifier,\n    manga: Manga,\n    source: String,\n    chapterCount: Int,\n    latestChapter: Double?,\n    onClick: () -> Unit,\n) {\n    Column(\n        modifier = modifier\n            .widthIn(max = 150.dp)\n            .fillMaxWidth()\n            .clip(MaterialTheme.shapes.small)\n            .clickable(onClick = onClick)\n            .padding(4.dp),\n    ) {\n        Box(\n            modifier = Modifier\n                .fillMaxWidth()\n                .aspectRatio(MangaCover.Book.ratio),\n        ) {\n            MangaCover.Book(\n                modifier = Modifier.fillMaxWidth(),\n                data = manga,\n            )\n            Box(\n                modifier = Modifier\n                    .clip(RoundedCornerShape(bottomStart = 4.dp, bottomEnd = 4.dp))\n                    .background(\n                        Brush.verticalGradient(\n                            0f to Color.Transparent,\n                            1f to MaterialTheme.colorScheme.background,\n                        ),\n                    )\n                    .fillMaxHeight(0.4f)\n                    .fillMaxWidth()\n                    .align(Alignment.BottomCenter),\n            )\n            Text(\n                modifier = Modifier\n                    .padding(8.dp)\n                    .align(Alignment.BottomStart),\n                text = manga.title,\n                overflow = TextOverflow.Ellipsis,\n                maxLines = 2,\n                style = MaterialTheme.typography.labelMedium,\n            )\n            BadgeGroup(modifier = Modifier.padding(4.dp)) {\n                Badge(text = \"$chapterCount\")\n            }\n        }\n\n        Column(\n            modifier = Modifier\n                .padding(MaterialTheme.padding.extraSmall),\n            verticalArrangement = Arrangement.spacedBy(2.dp),\n        ) {\n            Text(\n                text = source,\n                overflow = TextOverflow.Ellipsis,\n                maxLines = 1,\n                style = MaterialTheme.typography.titleSmall,\n            )\n            val formattedLatestChapters = remember(latestChapter) {\n                latestChapter?.let(::formatChapterNumber)\n            }\n            Text(\n                text = stringResource(\n                    MR.strings.migrationListScreen_latestChapterLabel,\n                    formattedLatestChapters ?: stringResource(MR.strings.migrationListScreen_unknownLatestChapter),\n                ),\n                overflow = TextOverflow.Ellipsis,\n                maxLines = 1,\n                style = MaterialTheme.typography.bodyMedium,\n            )\n        }\n    }\n}\n\n@Composable\nfun MigrationListItemResult(\n    modifier: Modifier,\n    result: MigratingManga.SearchResult,\n    onItemClick: (Manga) -> Unit,\n) {\n    Box(modifier.height(IntrinsicSize.Min)) {\n        when (result) {\n            MigratingManga.SearchResult.Searching -> {\n                Box(\n                    modifier = Modifier\n                        .widthIn(max = 150.dp)\n                        .fillMaxSize()\n                        .aspectRatio(MangaCover.Book.ratio),\n                    contentAlignment = Alignment.Center,\n                ) {\n                    CircularProgressIndicator()\n                }\n            }\n            MigratingManga.SearchResult.NotFound -> {\n                Column(\n                    Modifier\n                        .widthIn(max = 150.dp)\n                        .fillMaxSize()\n                        .padding(4.dp),\n                ) {\n                    Image(\n                        painter = rememberResourceBitmapPainter(id = R.drawable.cover_error),\n                        contentDescription = null,\n                        modifier = Modifier\n                            .fillMaxWidth()\n                            .aspectRatio(MangaCover.Book.ratio)\n                            .clip(MaterialTheme.shapes.extraSmall),\n                        contentScale = ContentScale.Crop,\n                    )\n                    Text(\n                        text = stringResource(MR.strings.migrationListScreen_noMatchFoundText),\n                        modifier = Modifier.padding(MaterialTheme.padding.extraSmall),\n                        style = MaterialTheme.typography.titleSmall,\n                    )\n                }\n            }\n            is MigratingManga.SearchResult.Success -> {\n                MigrationListItem(\n                    modifier = Modifier.fillMaxSize(),\n                    manga = result.manga,\n                    source = result.source,\n                    chapterCount = result.chapterCount,\n                    latestChapter = result.latestChapter,\n                    onClick = { onItemClick(result.manga) },\n                )\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun MigrationListItemAction(\n    modifier: Modifier,\n    result: MigratingManga.SearchResult,\n    onSearchManually: () -> Unit,\n    onSkip: () -> Unit,\n    onMigrate: () -> Unit,\n    onCopy: () -> Unit,\n) {\n    var menuExpanded by rememberSaveable { mutableStateOf(false) }\n    val closeMenu = { menuExpanded = false }\n    Box(modifier) {\n        when (result) {\n            MigratingManga.SearchResult.Searching -> {\n                IconButton(onClick = onSkip) {\n                    Icon(\n                        imageVector = Icons.Outlined.Close,\n                        contentDescription = null,\n                    )\n                }\n            }\n            MigratingManga.SearchResult.NotFound, is MigratingManga.SearchResult.Success -> {\n                IconButton(onClick = { menuExpanded = true }) {\n                    Icon(\n                        imageVector = Icons.Outlined.MoreVert,\n                        contentDescription = null,\n                    )\n                }\n                DropdownMenu(\n                    expanded = menuExpanded,\n                    onDismissRequest = closeMenu,\n                    offset = DpOffset(8.dp, (-56).dp),\n                ) {\n                    DropdownMenuItem(\n                        text = { Text(stringResource(MR.strings.migrationListScreen_searchManuallyActionLabel)) },\n                        onClick = {\n                            closeMenu()\n                            onSearchManually()\n                        },\n                    )\n                    DropdownMenuItem(\n                        text = { Text(stringResource(MR.strings.migrationListScreen_skipActionLabel)) },\n                        onClick = {\n                            closeMenu()\n                            onSkip()\n                        },\n                    )\n                    if (result is MigratingManga.SearchResult.Success) {\n                        DropdownMenuItem(\n                            text = { Text(stringResource(MR.strings.migrationListScreen_migrateNowActionLabel)) },\n                            onClick = {\n                                closeMenu()\n                                onMigrate()\n                            },\n                        )\n                        DropdownMenuItem(\n                            text = { Text(stringResource(MR.strings.migrationListScreen_copyNowActionLabel)) },\n                            onClick = {\n                                closeMenu()\n                                onCopy()\n                            },\n                        )\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt",
    "content": "package mihon.feature.migration.list\n\nimport androidx.annotation.FloatRange\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.domain.chapter.interactor.SyncChaptersWithSource\nimport eu.kanade.domain.manga.interactor.UpdateManga\nimport eu.kanade.domain.manga.model.toSManga\nimport eu.kanade.domain.source.service.SourcePreferences\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.getNameForMangaInfo\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.collections.immutable.toPersistentList\nimport kotlinx.coroutines.CancellationException\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.cancel\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.currentCoroutineContext\nimport kotlinx.coroutines.ensureActive\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.isActive\nimport kotlinx.coroutines.sync.Semaphore\nimport kotlinx.coroutines.sync.withPermit\nimport logcat.LogPriority\nimport mihon.domain.migration.usecases.MigrateMangaUseCase\nimport mihon.feature.migration.list.models.MigratingManga\nimport mihon.feature.migration.list.models.MigratingManga.SearchResult\nimport mihon.feature.migration.list.search.SmartSourceSearchEngine\nimport tachiyomi.core.common.util.lang.launchIO\nimport tachiyomi.core.common.util.lang.withUIContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.manga.interactor.GetManga\nimport tachiyomi.domain.manga.interactor.NetworkToLocalManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.service.SourceManager\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass MigrationListScreenModel(\n    mangaIds: Collection<Long>,\n    extraSearchQuery: String?,\n    private val preferences: SourcePreferences = Injekt.get(),\n    private val sourceManager: SourceManager = Injekt.get(),\n    private val getManga: GetManga = Injekt.get(),\n    private val networkToLocalManga: NetworkToLocalManga = Injekt.get(),\n    private val updateManga: UpdateManga = Injekt.get(),\n    private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get(),\n    private val getChaptersByMangaId: GetChaptersByMangaId = Injekt.get(),\n    private val migrateManga: MigrateMangaUseCase = Injekt.get(),\n) : StateScreenModel<MigrationListScreenModel.State>(State()) {\n\n    private val smartSearchEngine = SmartSourceSearchEngine(extraSearchQuery)\n\n    val items\n        inline get() = state.value.items\n\n    private val hideUnmatched = preferences.migrationHideUnmatched.get()\n    private val hideWithoutUpdates = preferences.migrationHideWithoutUpdates.get()\n\n    private val navigateBackChannel = Channel<Unit>()\n    val navigateBackEvent = navigateBackChannel.receiveAsFlow()\n\n    private var migrateJob: Job? = null\n\n    init {\n        screenModelScope.launchIO {\n            val manga = mangaIds\n                .map {\n                    async {\n                        val manga = getManga.await(it) ?: return@async null\n                        val chapterInfo = getChapterInfo(it)\n                        MigratingManga(\n                            manga = manga,\n                            chapterCount = chapterInfo.chapterCount,\n                            latestChapter = chapterInfo.latestChapter,\n                            source = sourceManager.getOrStub(manga.source).getNameForMangaInfo(),\n                            parentContext = screenModelScope.coroutineContext,\n                        )\n                    }\n                }\n                .awaitAll()\n                .filterNotNull()\n            mutableState.update { it.copy(items = manga.toImmutableList()) }\n            runMigrations(manga)\n        }\n    }\n\n    private suspend fun getChapterInfo(id: Long) = getChaptersByMangaId.await(id).let { chapters ->\n        ChapterInfo(\n            latestChapter = chapters.maxOfOrNull { it.chapterNumber },\n            chapterCount = chapters.size,\n        )\n    }\n\n    private suspend fun Manga.toSuccessSearchResult(): SearchResult.Success {\n        val chapterInfo = getChapterInfo(id)\n        val source = sourceManager.getOrStub(source).getNameForMangaInfo()\n        return SearchResult.Success(\n            manga = this,\n            chapterCount = chapterInfo.chapterCount,\n            latestChapter = chapterInfo.latestChapter,\n            source = source,\n        )\n    }\n\n    private suspend fun runMigrations(mangas: List<MigratingManga>) {\n        val prioritizeByChapters = preferences.migrationPrioritizeByChapters.get()\n        val deepSearchMode = preferences.migrationDeepSearchMode.get()\n\n        val sources = preferences.migrationSources.get()\n            .mapNotNull { sourceManager.get(it) as? CatalogueSource }\n\n        for (manga in mangas) {\n            if (!currentCoroutineContext().isActive) break\n            if (manga.manga.id !in state.value.mangaIds) continue\n            if (manga.searchResult.value != SearchResult.Searching) continue\n            if (!manga.migrationScope.isActive) continue\n\n            val result = try {\n                manga.migrationScope.async {\n                    if (prioritizeByChapters) {\n                        val sourceSemaphore = Semaphore(5)\n                        sources.map { source ->\n                            async innerAsync@{\n                                sourceSemaphore.withPermit {\n                                    val result = searchSource(manga.manga, source, deepSearchMode)\n                                    if (result == null || result.second.chapterCount == 0) return@innerAsync null\n                                    result\n                                }\n                            }\n                        }\n                            .mapNotNull { it.await() }\n                            .maxByOrNull { it.second.latestChapter ?: 0.0 }\n                    } else {\n                        sources.forEach { source ->\n                            val result = searchSource(manga.manga, source, deepSearchMode)\n                            if (result != null) return@async result\n                        }\n                        null\n                    }\n                }\n                    .await()\n            } catch (_: CancellationException) {\n                continue\n            }\n\n            if (result != null && result.first.thumbnailUrl == null) {\n                try {\n                    val newManga = sourceManager.getOrStub(result.first.source).getMangaDetails(result.first.toSManga())\n                    updateManga.awaitUpdateFromSource(result.first, newManga, true)\n                } catch (e: CancellationException) {\n                    throw e\n                } catch (_: Exception) {\n                }\n            }\n\n            manga.searchResult.value = result?.first?.toSuccessSearchResult() ?: SearchResult.NotFound\n\n            if (result == null && hideUnmatched) {\n                removeManga(manga)\n            }\n            if (result != null &&\n                hideWithoutUpdates &&\n                (result.second.latestChapter ?: 0.0) <= (manga.latestChapter ?: 0.0)\n            ) {\n                removeManga(manga)\n            }\n\n            updateMigrationProgress()\n        }\n    }\n\n    private suspend fun searchSource(\n        manga: Manga,\n        source: CatalogueSource,\n        deepSearchMode: Boolean,\n    ): Pair<Manga, ChapterInfo>? {\n        return try {\n            val searchResult = if (deepSearchMode) {\n                smartSearchEngine.deepSearch(source, manga.title)\n            } else {\n                smartSearchEngine.regularSearch(source, manga.title)\n            }\n\n            if (searchResult == null || (searchResult.url == manga.url && source.id == manga.source)) return null\n\n            val localManga = networkToLocalManga(searchResult)\n            try {\n                val chapters = source.getChapterList(localManga.toSManga())\n                syncChaptersWithSource.await(chapters, localManga, source)\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e)\n            }\n            localManga to getChapterInfo(localManga.id)\n        } catch (e: CancellationException) {\n            throw e\n        } catch (_: Exception) {\n            null\n        }\n    }\n\n    private suspend fun updateMigrationProgress() {\n        mutableState.update { state ->\n            state.copy(\n                finishedCount = items.count { it.searchResult.value != SearchResult.Searching },\n                migrationComplete = migrationComplete(),\n            )\n        }\n        if (items.isEmpty()) {\n            navigateBack()\n        }\n    }\n\n    private fun migrationComplete() = items.all { it.searchResult.value != SearchResult.Searching } &&\n        items.any { it.searchResult.value is SearchResult.Success }\n\n    fun useMangaForMigration(current: Long, target: Long, onMissingChapters: () -> Unit) {\n        val migratingManga = items.find { it.manga.id == current } ?: return\n        migratingManga.searchResult.value = SearchResult.Searching\n        screenModelScope.launchIO {\n            val result = migratingManga.migrationScope.async {\n                val manga = getManga.await(target) ?: return@async null\n                try {\n                    val source = sourceManager.get(manga.source)!!\n                    val chapters = source.getChapterList(manga.toSManga())\n                    syncChaptersWithSource.await(chapters, manga, source)\n                } catch (_: Exception) {\n                    return@async null\n                }\n                manga\n            }\n                .await()\n\n            if (result == null) {\n                migratingManga.searchResult.value = SearchResult.NotFound\n                withUIContext { onMissingChapters() }\n                return@launchIO\n            }\n\n            try {\n                val newManga = sourceManager.getOrStub(result.source).getMangaDetails(result.toSManga())\n                updateManga.awaitUpdateFromSource(result, newManga, true)\n            } catch (e: CancellationException) {\n                throw e\n            } catch (_: Exception) {\n            }\n            migratingManga.searchResult.value = result.toSuccessSearchResult()\n            updateMigrationProgress()\n        }\n    }\n\n    fun migrateMangas() {\n        migrateMangas(replace = true)\n    }\n\n    fun copyMangas() {\n        migrateMangas(replace = false)\n    }\n\n    private fun migrateMangas(replace: Boolean) {\n        migrateJob = screenModelScope.launchIO {\n            mutableState.update { it.copy(dialog = Dialog.Progress(0f)) }\n            val items = items\n            try {\n                items.forEachIndexed { index, manga ->\n                    try {\n                        ensureActive()\n                        val target = manga.searchResult.value.let {\n                            if (it is SearchResult.Success) {\n                                it.manga\n                            } else {\n                                null\n                            }\n                        }\n                        if (target != null) {\n                            migrateManga(current = manga.manga, target = target, replace = replace)\n                        }\n                    } catch (e: Exception) {\n                        if (e is CancellationException) throw e\n                        logcat(LogPriority.WARN, throwable = e)\n                    }\n                    mutableState.update {\n                        it.copy(dialog = Dialog.Progress((index.toFloat() / items.size).coerceAtMost(1f)))\n                    }\n                }\n\n                navigateBack()\n            } finally {\n                mutableState.update { it.copy(dialog = null) }\n                migrateJob = null\n            }\n        }\n    }\n\n    fun cancelMigrate() {\n        migrateJob?.cancel()\n        migrateJob = null\n    }\n\n    private suspend fun navigateBack() {\n        navigateBackChannel.send(Unit)\n    }\n\n    fun migrateNow(mangaId: Long, replace: Boolean) {\n        screenModelScope.launchIO {\n            val manga = items.find { it.manga.id == mangaId } ?: return@launchIO\n            val target = (manga.searchResult.value as? SearchResult.Success)?.manga ?: return@launchIO\n            migrateManga(current = manga.manga, target = target, replace = replace)\n\n            removeManga(mangaId)\n        }\n    }\n\n    fun removeManga(mangaId: Long) {\n        screenModelScope.launchIO {\n            val item = items.find { it.manga.id == mangaId } ?: return@launchIO\n            removeManga(item)\n            item.migrationScope.cancel()\n            updateMigrationProgress()\n        }\n    }\n\n    private fun removeManga(item: MigratingManga) {\n        mutableState.update { it.copy(items = items.toPersistentList().remove(item)) }\n    }\n\n    override fun onDispose() {\n        super.onDispose()\n        items.forEach {\n            it.migrationScope.cancel()\n        }\n    }\n\n    fun showMigrateDialog(copy: Boolean) {\n        mutableState.update { state ->\n            state.copy(\n                dialog = Dialog.Migrate(\n                    copy = copy,\n                    totalCount = items.size,\n                    skippedCount = items.count { it.searchResult.value == SearchResult.NotFound },\n                ),\n            )\n        }\n    }\n\n    fun showExitDialog() {\n        mutableState.update {\n            it.copy(dialog = Dialog.Exit)\n        }\n    }\n\n    fun dismissDialog() {\n        mutableState.update { it.copy(dialog = null) }\n    }\n\n    data class ChapterInfo(\n        val latestChapter: Double?,\n        val chapterCount: Int,\n    )\n\n    sealed interface Dialog {\n        data class Migrate(val copy: Boolean, val totalCount: Int, val skippedCount: Int) : Dialog\n        data class Progress(@FloatRange(0.0, 1.0) val progress: Float) : Dialog\n        data object Exit : Dialog\n    }\n\n    data class State(\n        val items: ImmutableList<MigratingManga> = persistentListOf(),\n        val finishedCount: Int = 0,\n        val migrationComplete: Boolean = false,\n        val dialog: Dialog? = null,\n    ) {\n        val mangaIds: List<Long> = items.map { it.manga.id }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/components/MigrationExitDialog.kt",
    "content": "package mihon.feature.migration.list.components\n\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MigrationExitDialog(\n    onDismissRequest: () -> Unit,\n    exitMigration: () -> Unit,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = {\n            Text(text = stringResource(MR.strings.migrationListScreen_exitDialogTitle))\n        },\n        confirmButton = {\n            TextButton(onClick = exitMigration) {\n                Text(text = stringResource(MR.strings.migrationListScreen_exitDialog_stopLabel))\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.migrationListScreen_exitDialog_cancelLabel))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/components/MigrationMangaDialog.kt",
    "content": "package mihon.feature.migration.list.components\n\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.pluralStringResource\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MigrationMangaDialog(\n    onDismissRequest: () -> Unit,\n    copy: Boolean,\n    totalCount: Int,\n    skippedCount: Int,\n    onMigrate: () -> Unit,\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = {\n            Text(\n                text = pluralStringResource(\n                    resource = if (copy) {\n                        MR.plurals.migrationListScreen_migrateDialog_copyTitle\n                    } else {\n                        MR.plurals.migrationListScreen_migrateDialog_migrateTitle\n                    },\n                    count = totalCount,\n                    totalCount,\n                ),\n            )\n        },\n        text = {\n            if (skippedCount > 0) {\n                Text(\n                    text = pluralStringResource(\n                        resource = MR.plurals.migrationListScreen_migrateDialog_skipText,\n                        count = skippedCount,\n                        skippedCount,\n                    ),\n                )\n            }\n        },\n        confirmButton = {\n            TextButton(onClick = onMigrate) {\n                Text(\n                    text = stringResource(\n                        resource = if (copy) {\n                            MR.strings.migrationListScreen_migrateDialog_copyLabel\n                        } else {\n                            MR.strings.migrationListScreen_migrateDialog_migrateLabel\n                        },\n                    ),\n                )\n            }\n        },\n        dismissButton = {\n            TextButton(onClick = onDismissRequest) {\n                Text(text = stringResource(MR.strings.migrationListScreen_migrateDialog_cancelLabel))\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/components/MigrationProgressDialog.kt",
    "content": "package mihon.feature.migration.list.components\n\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.material3.AlertDialog\nimport androidx.compose.material3.LinearProgressIndicator\nimport androidx.compose.material3.ProgressIndicatorDefaults\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.ui.window.DialogProperties\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun MigrationProgressDialog(\n    progress: Float,\n    exitMigration: () -> Unit,\n) {\n    AlertDialog(\n        onDismissRequest = {},\n        confirmButton = {\n            TextButton(onClick = exitMigration) {\n                Text(text = stringResource(MR.strings.migrationListScreen_progressDialog_cancelLabel))\n            }\n        },\n        text = {\n            if (!progress.isNaN()) {\n                val progressAnimated by animateFloatAsState(\n                    targetValue = progress,\n                    animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec,\n                    label = \"migration_progress\",\n                )\n                LinearProgressIndicator(\n                    progress = { progressAnimated },\n                )\n            }\n        },\n        properties = DialogProperties(\n            dismissOnBackPress = false,\n            dismissOnClickOutside = false,\n        ),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/models/MigratingManga.kt",
    "content": "package mihon.feature.migration.list.models\n\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.SupervisorJob\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport tachiyomi.domain.manga.model.Manga\nimport kotlin.coroutines.CoroutineContext\n\nclass MigratingManga(\n    val manga: Manga,\n    val chapterCount: Int,\n    val latestChapter: Double?,\n    val source: String,\n    parentContext: CoroutineContext,\n) {\n    val migrationScope = CoroutineScope(parentContext + SupervisorJob() + Dispatchers.Default)\n\n    val searchResult = MutableStateFlow<SearchResult>(SearchResult.Searching)\n\n    sealed interface SearchResult {\n        data object Searching : SearchResult\n        data object NotFound : SearchResult\n        data class Success(\n            val manga: Manga,\n            val chapterCount: Int,\n            val latestChapter: Double?,\n            val source: String,\n        ) : SearchResult\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/search/BaseSmartSearchEngine.kt",
    "content": "package mihon.feature.migration.list.search\n\nimport com.aallam.similarity.NormalizedLevenshtein\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.supervisorScope\nimport java.util.Locale\n\ntypealias SearchAction<T> = suspend (String) -> List<T>\n\nabstract class BaseSmartSearchEngine<T>(\n    private val extraSearchParams: String? = null,\n    private val eligibleThreshold: Double = MIN_ELIGIBLE_THRESHOLD,\n) {\n    private val normalizedLevenshtein = NormalizedLevenshtein()\n\n    protected abstract fun getTitle(result: T): String\n\n    protected suspend fun regularSearch(searchAction: SearchAction<T>, title: String): T? {\n        return baseSearch(searchAction, listOf(title)) {\n            normalizedLevenshtein.similarity(title, getTitle(it))\n        }\n    }\n\n    protected suspend fun deepSearch(searchAction: SearchAction<T>, title: String): T? {\n        val cleanedTitle = cleanDeepSearchTitle(title)\n\n        val queries = getDeepSearchQueries(cleanedTitle)\n\n        return baseSearch(searchAction, queries) {\n            val cleanedMangaTitle = cleanDeepSearchTitle(getTitle(it))\n            normalizedLevenshtein.similarity(cleanedTitle, cleanedMangaTitle)\n        }\n    }\n\n    private suspend fun baseSearch(\n        searchAction: SearchAction<T>,\n        queries: List<String>,\n        calculateDistance: (T) -> Double,\n    ): T? {\n        val eligibleManga = supervisorScope {\n            queries.map { query ->\n                async(Dispatchers.Default) {\n                    val builtQuery = if (!extraSearchParams.isNullOrBlank()) {\n                        \"$query $extraSearchParams\"\n                    } else {\n                        query\n                    }\n\n                    val candidates = searchAction(builtQuery)\n                    candidates\n                        .map {\n                            val distance = if (queries.size > 1 || candidates.size > 1) {\n                                calculateDistance(it)\n                            } else {\n                                1.0\n                            }\n                            SearchEntry(it, distance)\n                        }\n                        .filter { it.distance >= eligibleThreshold }\n                }\n            }\n                .flatMap { it.await() }\n        }\n\n        return eligibleManga.maxByOrNull { it.distance }?.entry\n    }\n\n    private fun cleanDeepSearchTitle(title: String): String {\n        val preTitle = title.lowercase(Locale.getDefault())\n\n        // Remove text in brackets\n        var cleanedTitle = removeTextInBrackets(preTitle, true)\n        if (cleanedTitle.length <= 5) { // Title is suspiciously short, try parsing it backwards\n            cleanedTitle = removeTextInBrackets(preTitle, false)\n        }\n\n        // Strip chapter reference RU\n        cleanedTitle = cleanedTitle.replace(chapterRefCyrillicRegexp, \" \").trim()\n\n        // Strip non-special characters\n        val cleanedTitleEng = cleanedTitle.replace(titleRegex, \" \")\n\n        // Do not strip foreign language letters if cleanedTitle is too short\n        cleanedTitle = if (cleanedTitleEng.length <= 5) {\n            cleanedTitle.replace(titleCyrillicRegex, \" \")\n        } else {\n            cleanedTitleEng\n        }\n\n        // Strip splitters and consecutive spaces\n        cleanedTitle = cleanedTitle.trim().replace(\" - \", \" \").replace(consecutiveSpacesRegex, \" \").trim()\n\n        return cleanedTitle\n    }\n\n    private fun removeTextInBrackets(text: String, readForward: Boolean): String {\n        val openingChars = if (readForward) \"([<{\" else \")]}>\"\n        val closingChars = if (readForward) \")]}>\" else \"([<{\"\n        var depth = 0\n\n        return buildString {\n            for (char in (if (readForward) text else text.reversed())) {\n                when (char) {\n                    in openingChars -> depth++\n                    in closingChars -> if (depth > 0) depth-- // Avoid depth going negative on mismatched closing\n                    else -> if (depth == 0) {\n                        // If reading backward, the result is reversed, so prepend\n                        if (readForward) append(char) else insert(0, char)\n                    }\n                }\n            }\n        }\n    }\n\n    private fun getDeepSearchQueries(cleanedTitle: String): List<String> {\n        val splitCleanedTitle = cleanedTitle.split(\" \")\n        val splitSortedByLargest = splitCleanedTitle.sortedByDescending { it.length }\n\n        if (splitCleanedTitle.isEmpty()) {\n            return emptyList()\n        }\n\n        // Search cleaned title\n        // Search two largest words\n        // Search largest word\n        // Search first two words\n        // Search first word\n        val searchQueries = listOf(\n            listOf(cleanedTitle),\n            splitSortedByLargest.take(2),\n            splitSortedByLargest.take(1),\n            splitCleanedTitle.take(2),\n            splitCleanedTitle.take(1),\n        )\n\n        return searchQueries\n            .map { it.joinToString(\" \").trim() }\n            .distinct()\n    }\n\n    companion object {\n        const val MIN_ELIGIBLE_THRESHOLD = 0.4\n\n        private val titleRegex = Regex(\"[^a-zA-Z0-9- ]\")\n        private val titleCyrillicRegex = Regex(\"[^\\\\p{L}0-9- ]\")\n        private val consecutiveSpacesRegex = Regex(\" +\")\n        private val chapterRefCyrillicRegexp = Regex(\"\"\"((- часть|- глава) \\d*)\"\"\")\n    }\n}\n\ndata class SearchEntry<T>(val entry: T, val distance: Double)\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/migration/list/search/SmartSourceSearchEngine.kt",
    "content": "package mihon.feature.migration.list.search\n\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.model.SManga\nimport mihon.domain.manga.model.toDomainManga\nimport tachiyomi.domain.manga.model.Manga\n\nclass SmartSourceSearchEngine(extraSearchParams: String?) : BaseSmartSearchEngine<SManga>(extraSearchParams) {\n\n    override fun getTitle(result: SManga) = result.title\n\n    suspend fun regularSearch(source: CatalogueSource, title: String): Manga? {\n        return regularSearch(makeSearchAction(source), title).let {\n            it?.toDomainManga(source.id)\n        }\n    }\n\n    suspend fun deepSearch(source: CatalogueSource, title: String): Manga? {\n        return deepSearch(makeSearchAction(source), title).let {\n            it?.toDomainManga(source.id)\n        }\n    }\n\n    private fun makeSearchAction(source: CatalogueSource): SearchAction<SManga> = { query ->\n        source.getSearchManga(1, query, source.getFilterList()).mangas\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/UpcomingScreen.kt",
    "content": "package mihon.feature.upcoming\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport cafe.adriel.voyager.core.model.rememberScreenModel\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.util.Screen\nimport eu.kanade.tachiyomi.ui.manga.MangaScreen\n\nclass UpcomingScreen : Screen() {\n\n    @Composable\n    override fun Content() {\n        val navigator = LocalNavigator.currentOrThrow\n\n        val screenModel = rememberScreenModel { UpcomingScreenModel() }\n        val state by screenModel.state.collectAsState()\n\n        UpcomingScreenContent(\n            state = state,\n            setSelectedYearMonth = screenModel::setSelectedYearMonth,\n            onClickUpcoming = { navigator.push(MangaScreen(it.id)) },\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt",
    "content": "package mihon.feature.upcoming\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.items\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.outlined.HelpOutline\nimport androidx.compose.material3.Badge\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.text.font.FontWeight\nimport cafe.adriel.voyager.navigator.LocalNavigator\nimport cafe.adriel.voyager.navigator.currentOrThrow\nimport eu.kanade.presentation.components.AppBar\nimport eu.kanade.presentation.components.relativeDateText\nimport eu.kanade.presentation.util.isTabletUi\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.ImmutableMap\nimport kotlinx.coroutines.launch\nimport mihon.feature.upcoming.components.UpcomingItem\nimport mihon.feature.upcoming.components.calendar.Calendar\nimport tachiyomi.core.common.Constants\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.components.FastScrollLazyColumn\nimport tachiyomi.presentation.core.components.TwoPanelBox\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport java.time.LocalDate\nimport java.time.YearMonth\n\n@Composable\nfun UpcomingScreenContent(\n    state: UpcomingScreenModel.State,\n    setSelectedYearMonth: (YearMonth) -> Unit,\n    onClickUpcoming: (manga: Manga) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val scope = rememberCoroutineScope()\n    val listState = rememberLazyListState()\n    val onClickDay: (LocalDate, Int) -> Unit = { date, offset ->\n        state.headerIndexes[date]?.let {\n            scope.launch {\n                listState.animateScrollToItem(it + offset)\n            }\n        }\n    }\n    Scaffold(\n        topBar = { UpcomingToolbar() },\n        modifier = modifier,\n    ) { paddingValues ->\n        if (isTabletUi()) {\n            UpcomingScreenLargeImpl(\n                listState = listState,\n                items = state.items,\n                events = state.events,\n                paddingValues = paddingValues,\n                selectedYearMonth = state.selectedYearMonth,\n                setSelectedYearMonth = setSelectedYearMonth,\n                onClickDay = { onClickDay(it, 0) },\n                onClickUpcoming = onClickUpcoming,\n            )\n        } else {\n            UpcomingScreenSmallImpl(\n                listState = listState,\n                items = state.items,\n                events = state.events,\n                paddingValues = paddingValues,\n                selectedYearMonth = state.selectedYearMonth,\n                setSelectedYearMonth = setSelectedYearMonth,\n                onClickDay = { onClickDay(it, 1) },\n                onClickUpcoming = onClickUpcoming,\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun UpcomingToolbar() {\n    val navigator = LocalNavigator.currentOrThrow\n    val uriHandler = LocalUriHandler.current\n\n    AppBar(\n        title = stringResource(MR.strings.label_upcoming),\n        navigateUp = navigator::pop,\n        actions = {\n            IconButton(onClick = { uriHandler.openUri(Constants.URL_HELP_UPCOMING) }) {\n                Icon(\n                    imageVector = Icons.AutoMirrored.Outlined.HelpOutline,\n                    contentDescription = stringResource(MR.strings.upcoming_guide),\n                )\n            }\n        },\n    )\n}\n\n@Composable\nprivate fun DateHeading(\n    date: LocalDate,\n    mangaCount: Int,\n) {\n    Row(\n        verticalAlignment = Alignment.CenterVertically,\n        modifier = Modifier.fillMaxWidth(),\n    ) {\n        Text(\n            text = relativeDateText(date),\n            modifier = Modifier\n                .padding(MaterialTheme.padding.small)\n                .padding(start = MaterialTheme.padding.small),\n            color = MaterialTheme.colorScheme.onSurfaceVariant,\n            fontWeight = FontWeight.SemiBold,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n        Badge(\n            containerColor = MaterialTheme.colorScheme.primary,\n            contentColor = MaterialTheme.colorScheme.onPrimary,\n        ) {\n            Text(\"$mangaCount\")\n        }\n    }\n}\n\n@Composable\nprivate fun UpcomingScreenSmallImpl(\n    listState: LazyListState,\n    items: ImmutableList<UpcomingUIModel>,\n    events: ImmutableMap<LocalDate, Int>,\n    paddingValues: PaddingValues,\n    selectedYearMonth: YearMonth,\n    setSelectedYearMonth: (YearMonth) -> Unit,\n    onClickDay: (LocalDate) -> Unit,\n    onClickUpcoming: (manga: Manga) -> Unit,\n) {\n    FastScrollLazyColumn(\n        contentPadding = paddingValues,\n        state = listState,\n    ) {\n        item(key = \"upcoming-calendar\") {\n            Calendar(\n                selectedYearMonth = selectedYearMonth,\n                events = events,\n                setSelectedYearMonth = setSelectedYearMonth,\n                onClickDay = onClickDay,\n            )\n        }\n        items(\n            items = items,\n            key = { \"upcoming-${it.hashCode()}\" },\n            contentType = {\n                when (it) {\n                    is UpcomingUIModel.Header -> \"header\"\n                    is UpcomingUIModel.Item -> \"item\"\n                }\n            },\n        ) { item ->\n            when (item) {\n                is UpcomingUIModel.Item -> {\n                    UpcomingItem(\n                        upcoming = item.manga,\n                        onClick = { onClickUpcoming(item.manga) },\n                    )\n                }\n                is UpcomingUIModel.Header -> {\n                    DateHeading(\n                        date = item.date,\n                        mangaCount = item.mangaCount,\n                    )\n                }\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun UpcomingScreenLargeImpl(\n    listState: LazyListState,\n    items: ImmutableList<UpcomingUIModel>,\n    events: ImmutableMap<LocalDate, Int>,\n    paddingValues: PaddingValues,\n    selectedYearMonth: YearMonth,\n    setSelectedYearMonth: (YearMonth) -> Unit,\n    onClickDay: (LocalDate) -> Unit,\n    onClickUpcoming: (manga: Manga) -> Unit,\n) {\n    TwoPanelBox(\n        modifier = Modifier.padding(paddingValues),\n        startContent = {\n            Calendar(\n                selectedYearMonth = selectedYearMonth,\n                events = events,\n                setSelectedYearMonth = setSelectedYearMonth,\n                onClickDay = onClickDay,\n            )\n        },\n        endContent = {\n            FastScrollLazyColumn(state = listState) {\n                items(\n                    items = items,\n                    key = { \"upcoming-${it.hashCode()}\" },\n                    contentType = {\n                        when (it) {\n                            is UpcomingUIModel.Header -> \"header\"\n                            is UpcomingUIModel.Item -> \"item\"\n                        }\n                    },\n                ) { item ->\n                    when (item) {\n                        is UpcomingUIModel.Item -> {\n                            UpcomingItem(\n                                upcoming = item.manga,\n                                onClick = { onClickUpcoming(item.manga) },\n                            )\n                        }\n                        is UpcomingUIModel.Header -> {\n                            DateHeading(\n                                date = item.date,\n                                mangaCount = item.mangaCount,\n                            )\n                        }\n                    }\n                }\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt",
    "content": "package mihon.feature.upcoming\n\nimport androidx.compose.ui.util.fastMap\nimport androidx.compose.ui.util.fastMapIndexedNotNull\nimport cafe.adriel.voyager.core.model.StateScreenModel\nimport cafe.adriel.voyager.core.model.screenModelScope\nimport eu.kanade.core.util.insertSeparatorsReversed\nimport eu.kanade.tachiyomi.util.lang.toLocalDate\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.ImmutableMap\nimport kotlinx.collections.immutable.persistentListOf\nimport kotlinx.collections.immutable.persistentMapOf\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.collections.immutable.toImmutableMap\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.update\nimport kotlinx.coroutines.launch\nimport mihon.domain.upcoming.interactor.GetUpcomingManga\nimport tachiyomi.domain.manga.model.Manga\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.LocalDate\nimport java.time.YearMonth\n\nclass UpcomingScreenModel(\n    private val getUpcomingManga: GetUpcomingManga = Injekt.get(),\n) : StateScreenModel<UpcomingScreenModel.State>(State()) {\n\n    init {\n        screenModelScope.launch {\n            getUpcomingManga.subscribe().collectLatest {\n                mutableState.update { state ->\n                    val upcomingItems = it.toUpcomingUIModels()\n                    state.copy(\n                        items = upcomingItems,\n                        events = upcomingItems.toEvents(),\n                        headerIndexes = upcomingItems.getHeaderIndexes(),\n                    )\n                }\n            }\n        }\n    }\n\n    private fun List<Manga>.toUpcomingUIModels(): ImmutableList<UpcomingUIModel> {\n        var mangaCount = 0\n        return fastMap { UpcomingUIModel.Item(it) }\n            .insertSeparatorsReversed { before, after ->\n                if (after != null) mangaCount++\n\n                val beforeDate = before?.manga?.expectedNextUpdate?.toLocalDate()\n                val afterDate = after?.manga?.expectedNextUpdate?.toLocalDate()\n\n                if (beforeDate != afterDate && afterDate != null) {\n                    UpcomingUIModel.Header(afterDate, mangaCount).also { mangaCount = 0 }\n                } else {\n                    null\n                }\n            }\n            .toImmutableList()\n    }\n\n    private fun List<UpcomingUIModel>.toEvents(): ImmutableMap<LocalDate, Int> {\n        return filterIsInstance<UpcomingUIModel.Header>()\n            .associate { it.date to it.mangaCount }\n            .toImmutableMap()\n    }\n\n    private fun List<UpcomingUIModel>.getHeaderIndexes(): ImmutableMap<LocalDate, Int> {\n        return fastMapIndexedNotNull { index, upcomingUIModel ->\n            if (upcomingUIModel is UpcomingUIModel.Header) {\n                upcomingUIModel.date to index\n            } else {\n                null\n            }\n        }\n            .toMap()\n            .toImmutableMap()\n    }\n\n    fun setSelectedYearMonth(yearMonth: YearMonth) {\n        mutableState.update { it.copy(selectedYearMonth = yearMonth) }\n    }\n\n    data class State(\n        val selectedYearMonth: YearMonth = YearMonth.now(),\n        val items: ImmutableList<UpcomingUIModel> = persistentListOf(),\n        val events: ImmutableMap<LocalDate, Int> = persistentMapOf(),\n        val headerIndexes: ImmutableMap<LocalDate, Int> = persistentMapOf(),\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/UpcomingUIModel.kt",
    "content": "package mihon.feature.upcoming\n\nimport tachiyomi.domain.manga.model.Manga\nimport java.time.LocalDate\n\nsealed interface UpcomingUIModel {\n    data class Header(val date: LocalDate, val mangaCount: Int) : UpcomingUIModel\n    data class Item(val manga: Manga) : UpcomingUIModel\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/components/UpcomingItem.kt",
    "content": "package mihon.feature.upcoming.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\nimport eu.kanade.presentation.manga.components.MangaCover\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.asMangaCover\nimport tachiyomi.presentation.core.components.material.padding\n\nprivate val UpcomingItemHeight = 96.dp\n\n@Composable\nfun UpcomingItem(\n    upcoming: Manga,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Row(\n        modifier = modifier\n            .clickable(onClick = onClick)\n            .height(UpcomingItemHeight)\n            .padding(\n                horizontal = MaterialTheme.padding.medium,\n                vertical = MaterialTheme.padding.small,\n            ),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.large),\n    ) {\n        MangaCover.Book(\n            modifier = Modifier.fillMaxHeight(),\n            data = upcoming.asMangaCover(),\n        )\n        Text(\n            modifier = Modifier.weight(1f),\n            text = upcoming.title,\n            fontWeight = FontWeight.SemiBold,\n            maxLines = 2,\n            overflow = TextOverflow.Ellipsis,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/components/calendar/Calendar.kt",
    "content": "package mihon.feature.upcoming.components.calendar\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.widthIn\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport androidx.compose.ui.util.fastForEach\nimport io.woong.compose.grid.SimpleGridCells\nimport io.woong.compose.grid.VerticalGrid\nimport kotlinx.collections.immutable.ImmutableMap\nimport kotlinx.collections.immutable.toImmutableList\nimport mihon.core.designsystem.utils.isExpandedWidthWindow\nimport mihon.core.designsystem.utils.isMediumWidthWindow\nimport tachiyomi.presentation.core.components.material.padding\nimport java.time.DayOfWeek\nimport java.time.LocalDate\nimport java.time.YearMonth\nimport java.time.format.TextStyle\nimport java.time.temporal.WeekFields\nimport java.util.Locale\n\nprivate val FontSize = 16.sp\nprivate const val DAYS_OF_WEEK = 7\n\n@Composable\nfun Calendar(\n    selectedYearMonth: YearMonth,\n    events: ImmutableMap<LocalDate, Int>,\n    setSelectedYearMonth: (YearMonth) -> Unit,\n    onClickDay: (day: LocalDate) -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Column(\n        modifier = modifier.fillMaxWidth(),\n        horizontalAlignment = Alignment.CenterHorizontally,\n        verticalArrangement = Arrangement.spacedBy(4.dp),\n    ) {\n        CalenderHeader(\n            yearMonth = selectedYearMonth,\n            onPreviousClick = { setSelectedYearMonth(selectedYearMonth.minusMonths(1L)) },\n            onNextClick = { setSelectedYearMonth(selectedYearMonth.plusMonths(1L)) },\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(vertical = MaterialTheme.padding.small)\n                .padding(start = MaterialTheme.padding.medium),\n        )\n        CalendarGrid(\n            selectedYearMonth = selectedYearMonth,\n            events = events,\n            onClickDay = onClickDay,\n        )\n    }\n}\n\n@Composable\nprivate fun CalendarGrid(\n    selectedYearMonth: YearMonth,\n    events: ImmutableMap<LocalDate, Int>,\n    onClickDay: (day: LocalDate) -> Unit,\n) {\n    val localeFirstDayOfWeek = WeekFields.of(Locale.getDefault()).firstDayOfWeek.value\n    val weekDays = remember {\n        (0 until DAYS_OF_WEEK)\n            .map { DayOfWeek.of((localeFirstDayOfWeek - 1 + it) % DAYS_OF_WEEK + 1) }\n            .toImmutableList()\n    }\n\n    val emptyFieldCount = weekDays.indexOf(selectedYearMonth.atDay(1).dayOfWeek)\n    val daysInMonth = selectedYearMonth.lengthOfMonth()\n\n    VerticalGrid(\n        columns = SimpleGridCells.Fixed(DAYS_OF_WEEK),\n        modifier = if (isMediumWidthWindow() && !isExpandedWidthWindow()) {\n            Modifier.widthIn(max = 360.dp)\n        } else {\n            Modifier\n        },\n    ) {\n        weekDays.fastForEach { item ->\n            Text(\n                text = item.getDisplayName(\n                    TextStyle.NARROW,\n                    Locale.getDefault(),\n                ),\n                textAlign = TextAlign.Center,\n                fontWeight = FontWeight.SemiBold,\n                fontSize = FontSize,\n            )\n        }\n        repeat(emptyFieldCount) { Box { } }\n        repeat(daysInMonth) { dayIndex ->\n            val localDate = selectedYearMonth.atDay(dayIndex + 1)\n            CalendarDay(\n                date = localDate,\n                onDayClick = { onClickDay(localDate) },\n                events = events[localDate] ?: 0,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/components/calendar/CalendarDay.kt",
    "content": "package mihon.feature.upcoming.components.calendar\n\nimport androidx.compose.foundation.BorderStroke\nimport androidx.compose.foundation.border\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.offset\nimport androidx.compose.foundation.shape.CircleShape\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.layout.layout\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport tachiyomi.presentation.core.components.material.DISABLED_ALPHA\nimport java.time.LocalDate\n\nprivate const val MAX_EVENTS = 3\n\n@Composable\nfun CalendarDay(\n    date: LocalDate,\n    events: Int,\n    onDayClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    val today = remember { LocalDate.now() }\n\n    Box(\n        modifier = modifier\n            .then(\n                if (today == date) {\n                    Modifier.border(\n                        border = BorderStroke(\n                            width = 1.dp,\n                            color = MaterialTheme.colorScheme.onBackground,\n                        ),\n                        shape = CircleShape,\n                    )\n                } else {\n                    Modifier\n                },\n            )\n            .clip(shape = CircleShape)\n            .clickable(onClick = onDayClick)\n            .circleLayout(),\n        contentAlignment = Alignment.Center,\n    ) {\n        Text(\n            text = date.dayOfMonth.toString(),\n            textAlign = TextAlign.Center,\n            fontSize = 16.sp,\n            color = if (date.isBefore(today)) {\n                MaterialTheme.colorScheme.onBackground.copy(alpha = DISABLED_ALPHA)\n            } else {\n                MaterialTheme.colorScheme.onBackground\n            },\n            fontWeight = FontWeight.SemiBold,\n        )\n        Row(Modifier.offset(y = 12.dp)) {\n            val size = events.coerceAtMost(MAX_EVENTS)\n            for (index in 0 until size) {\n                CalendarIndicator(\n                    index = index,\n                    size = 56.dp,\n                    color = MaterialTheme.colorScheme.primary,\n                )\n            }\n        }\n    }\n}\n\nprivate fun Modifier.circleLayout() = layout { measurable, constraints ->\n    val placeable = measurable.measure(constraints)\n\n    val currentHeight = placeable.height\n    val currentWidth = placeable.width\n    val newDiameter = maxOf(currentHeight, currentWidth)\n\n    layout(newDiameter, newDiameter) {\n        placeable.placeRelative(\n            x = (newDiameter - currentWidth) / 2,\n            y = (newDiameter - currentHeight) / 2,\n        )\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/components/calendar/CalendarHeader.kt",
    "content": "package mihon.feature.upcoming.components.calendar\n\nimport androidx.compose.animation.AnimatedContent\nimport androidx.compose.animation.AnimatedContentTransitionScope\nimport androidx.compose.animation.ContentTransform\nimport androidx.compose.animation.SizeTransform\nimport androidx.compose.animation.core.tween\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.slideInVertically\nimport androidx.compose.animation.slideOutVertically\nimport androidx.compose.animation.togetherWith\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.KeyboardArrowLeft\nimport androidx.compose.material.icons.filled.KeyboardArrowRight\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.tooling.preview.Preview\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport java.time.YearMonth\nimport java.time.format.DateTimeFormatter\nimport java.util.Locale\n\n@Composable\nfun CalenderHeader(\n    yearMonth: YearMonth,\n    onPreviousClick: () -> Unit,\n    onNextClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    Row(\n        modifier = modifier,\n        horizontalArrangement = Arrangement.SpaceBetween,\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        AnimatedContent(\n            targetState = yearMonth,\n            transitionSpec = { getAnimation() },\n            label = \"Change Month\",\n        ) { monthYear ->\n            Text(\n                text = getTitleText(monthYear),\n                style = MaterialTheme.typography.titleLarge,\n            )\n        }\n        Row {\n            IconButton(onClick = onPreviousClick) {\n                @Suppress(\"DEPRECATION\")\n                Icon(Icons.Default.KeyboardArrowLeft, stringResource(MR.strings.upcoming_calendar_prev))\n            }\n            IconButton(onClick = onNextClick) {\n                @Suppress(\"DEPRECATION\")\n                Icon(Icons.Default.KeyboardArrowRight, stringResource(MR.strings.upcoming_calendar_next))\n            }\n        }\n    }\n}\n\nprivate const val MONTH_YEAR_CHANGE_ANIMATION_DURATION = 200\n\nprivate fun AnimatedContentTransitionScope<YearMonth>.getAnimation(): ContentTransform {\n    val movingForward = targetState > initialState\n\n    val enterTransition = slideInVertically(\n        animationSpec = tween(durationMillis = MONTH_YEAR_CHANGE_ANIMATION_DURATION),\n    ) { height -> if (movingForward) height else -height } + fadeIn(\n        animationSpec = tween(durationMillis = MONTH_YEAR_CHANGE_ANIMATION_DURATION),\n    )\n    val exitTransition = slideOutVertically(\n        animationSpec = tween(durationMillis = MONTH_YEAR_CHANGE_ANIMATION_DURATION),\n    ) { height -> if (movingForward) -height else height } + fadeOut(\n        animationSpec = tween(durationMillis = MONTH_YEAR_CHANGE_ANIMATION_DURATION),\n    )\n    return (enterTransition togetherWith exitTransition)\n        .using(SizeTransform(clip = false))\n}\n\n@Composable\n@ReadOnlyComposable\nprivate fun getTitleText(monthYear: YearMonth): String {\n    val formatter = DateTimeFormatter.ofPattern(\"MMMM yyyy\", Locale.getDefault())\n    return formatter.format(monthYear)\n}\n\n@Preview\n@Composable\nprivate fun CalenderHeaderPreview() {\n    CalenderHeader(\n        yearMonth = YearMonth.now(),\n        onNextClick = {},\n        onPreviousClick = {},\n    )\n}\n"
  },
  {
    "path": "app/src/main/java/mihon/feature/upcoming/components/calendar/CalendarIndicator.kt",
    "content": "package mihon.feature.upcoming.components.calendar\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.shape.CircleShape\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\n\nprivate const val INDICATOR_SCALE = 12\nprivate const val INDICATOR_ALPHA_MULTIPLIER = 0.3f\n\n@Composable\nfun CalendarIndicator(\n    index: Int,\n    size: Dp,\n    color: Color,\n    modifier: Modifier = Modifier,\n) {\n    Box(\n        modifier = modifier\n            .padding(horizontal = 1.dp)\n            .clip(shape = CircleShape)\n            .background(color = color.copy(alpha = (index + 1) * INDICATOR_ALPHA_MULTIPLIER))\n            .size(size = size.div(INDICATOR_SCALE)),\n    )\n}\n"
  },
  {
    "path": "app/src/main/res/anim/shared_axis_x_pop_enter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"-5%p\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"0\" />\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"0\"\n        android:interpolator=\"@android:interpolator/linear_out_slow_in\"\n        android:toAlpha=\"1\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim/shared_axis_x_pop_exit.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"0\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"5%p\" />\n\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"1\"\n        android:interpolator=\"@android:interpolator/fast_out_linear_in\"\n        android:toAlpha=\"0\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim/shared_axis_x_push_enter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"5%p\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"0\" />\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"0\"\n        android:interpolator=\"@android:interpolator/linear_out_slow_in\"\n        android:toAlpha=\"1\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim/shared_axis_x_push_exit.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"0\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"-5%p\" />\n\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"1\"\n        android:interpolator=\"@android:interpolator/fast_out_linear_in\"\n        android:toAlpha=\"0\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim-v33/shared_axis_x_pop_enter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"-30dp\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"0\" />\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"0\"\n        android:interpolator=\"@android:interpolator/linear_out_slow_in\"\n        android:toAlpha=\"1\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim-v33/shared_axis_x_pop_exit.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"0\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"30dp\" />\n\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"1\"\n        android:interpolator=\"@android:interpolator/fast_out_linear_in\"\n        android:toAlpha=\"0\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim-v33/shared_axis_x_push_enter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"30dp\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"0\" />\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"0\"\n        android:interpolator=\"@android:interpolator/linear_out_slow_in\"\n        android:toAlpha=\"1\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/anim-v33/shared_axis_x_push_exit.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <translate\n        android:duration=\"300\"\n        android:fromXDelta=\"0\"\n        android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n        android:toXDelta=\"-30dp\" />\n\n    <alpha\n        android:duration=\"195\"\n        android:fromAlpha=\"1\"\n        android:interpolator=\"@android:interpolator/fast_out_linear_in\"\n        android:toAlpha=\"0\" />\n</set>\n"
  },
  {
    "path": "app/src/main/res/color/draggable_card_foreground.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\">\n    <item android:alpha=\"0.08\" android:color=\"?attr/colorPrimary\" app:state_dragged=\"true\" />\n    <item android:alpha=\"0.08\" android:color=\"?attr/colorPrimary\" android:state_activated=\"true\" />\n    <item android:color=\"@android:color/transparent\" />\n</selector>\n"
  },
  {
    "path": "app/src/main/res/drawable/anim_browse_enter.xml",
    "content": "<animated-vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\">\n    <aapt:attr name=\"android:drawable\">\n        <vector\n            android:name=\"browse_enter\"\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"24\"\n            android:viewportHeight=\"24\">\n            <group\n                android:name=\"main_parent\"\n                android:pivotX=\"12\"\n                android:pivotY=\"12\">\n                <group\n                    android:name=\"group\"\n                    android:pivotX=\"12\"\n                    android:pivotY=\"12\">\n                    <path\n                        android:name=\"dot\"\n                        android:fillColor=\"#000000\"\n                        android:pathData=\"M 12 10.9 C 12.61 10.9 13.1 11.39 13.1 12 C 13.1 12.61 12.61 13.1 12 13.1 C 11.39 13.1 10.9 12.61 10.9 12 C 10.9 11.39 11.39 10.9 12 10.9 Z\" />\n                </group>\n                <clip-path\n                    android:name=\"dot_mask\"\n                    android:pathData=\"M 0.188 0.188 L 0.188 24 L 23.938 24 L 23.938 0.188 L 0.188 0.188 Z M 12 10.9 C 12.61 10.9 13.1 11.39 13.1 12 C 13.1 12.61 12.61 13.1 12 13.1 C 11.39 13.1 10.9 12.61 10.9 12 C 10.9 11.39 11.39 10.9 12 10.9 Z\" />\n                <path\n                    android:name=\"compass\"\n                    android:fillColor=\"#000000\"\n                    android:pathData=\"M 6.5 17.5 L 14.01 14.01 L 17.5 6.5 L 9.99 9.99 L 6.5 17.5 Z M 12 10.9 C 12.61 10.9 13.1 11.39 13.1 12 C 13.1 12.61 12.61 13.1 12 13.1 C 11.39 13.1 10.9 12.61 10.9 12 C 10.9 11.39 11.39 10.9 12 10.9 Z\" />\n                <group\n                    android:name=\"ring_parent\"\n                    android:pivotX=\"12\"\n                    android:pivotY=\"12\"\n                    android:scaleX=\"0.833\"\n                    android:scaleY=\"0.833\">\n                    <path\n                        android:name=\"ring\"\n                        android:fillColor=\"#000000\"\n                        android:pathData=\"M 12 0 C 8.819 0 5.765 1.265 3.515 3.515 C 1.265 5.765 0 8.819 0 12 C 0 15.181 1.265 18.235 3.515 20.485 C 5.765 22.735 8.819 24 12 24 C 15.181 24 18.235 22.735 20.485 20.485 C 22.735 18.235 24 15.181 24 12 C 24 8.819 22.735 5.765 20.485 3.515 C 18.235 1.265 15.181 0 12 0 Z M 12 21.6 C 9.455 21.6 7.012 20.588 5.212 18.788 C 3.412 16.988 2.4 14.545 2.4 12 C 2.4 9.455 3.412 7.012 5.212 5.212 C 7.012 3.412 9.455 2.4 12 2.4 C 14.545 2.4 16.988 3.412 18.788 5.212 C 20.588 7.012 21.6 9.455 21.6 12 C 21.6 14.545 20.588 16.988 18.788 18.788 C 16.988 20.588 14.545 21.6 12 21.6 Z\"\n                        android:strokeAlpha=\"0\" />\n                </group>\n                <group android:name=\"group_1\" />\n            </group>\n        </vector>\n    </aapt:attr>\n    <target android:name=\"compass\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"pathData\"\n                android:valueFrom=\"M 9.99 9.99 C 9.408 11.242 8.827 12.493 8.245 13.745 C 7.663 14.997 7.082 16.248 6.5 17.5 C 6.5 17.5 6.5 17.5 6.5 17.5 C 9.003 16.337 11.507 15.173 14.01 14.01 C 15.173 11.507 16.337 9.003 17.5 6.5 C 14.997 7.663 12.493 8.827 9.99 9.99 M 12 10.9 C 11.39 10.9 10.9 11.39 10.9 12 C 10.9 12.305 11.023 12.58 11.221 12.779 C 11.42 12.977 11.695 13.1 12 13.1 C 12.61 13.1 13.1 12.61 13.1 12 C 13.1 11.39 12.61 10.9 12 10.9 L 12 10.9 M 12 12 L 12 12 L 12 12 L 12 12 L 12 12 L 12 12 L 12 12 M 12 12 L 12 12 C 12 12 12 12 12 12 C 12 12 12 12 12 12 C 12 12 12 12 12 12 C 12 12 12 12 12 12\"\n                android:valueTo=\"M 12 2 C 6.48 2 2 6.48 2 12 C 2 17.141 5.886 21.38 10.878 21.938 C 11.247 21.979 11.621 22 12 22 C 17.52 22 22 17.52 22 12 C 22 6.48 17.52 2 12 2 C 12 2 12 2 12 2 M 12 10.9 C 11.695 10.9 11.42 11.023 11.221 11.221 C 11.023 11.42 10.9 11.695 10.9 12 C 10.9 12.61 11.39 13.1 12 13.1 C 12.61 13.1 13.1 12.61 13.1 12 C 13.1 11.39 12.61 10.9 12 10.9 L 12 10.9 M 14.19 14.19 L 6 18 L 6 18 L 9.81 9.81 L 18 6 L 14.19 14.19 L 14.19 14.19 M 12 12 L 12 12 C 12 12 12 12 12 12 C 12 12 12 12 12 12 C 12 12 12 12 12 12 C 12 12 12 12 12 12\"\n                android:valueType=\"pathType\" />\n        </aapt:attr>\n    </target>\n    <target android:name=\"main_parent\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"rotation\"\n                android:valueFrom=\"0\"\n                android:valueTo=\"180\"\n                android:valueType=\"floatType\" />\n        </aapt:attr>\n    </target>\n    <target android:name=\"group\">\n        <aapt:attr name=\"android:animation\">\n            <set>\n                <objectAnimator\n                    android:duration=\"66\"\n                    android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                    android:propertyName=\"scaleX\"\n                    android:valueFrom=\"0\"\n                    android:valueTo=\"0\"\n                    android:valueType=\"floatType\" />\n                <objectAnimator\n                    android:duration=\"100\"\n                    android:interpolator=\"@android:anim/decelerate_interpolator\"\n                    android:propertyName=\"scaleX\"\n                    android:startOffset=\"66\"\n                    android:valueFrom=\"0\"\n                    android:valueTo=\"1\"\n                    android:valueType=\"floatType\" />\n                <objectAnimator\n                    android:duration=\"66\"\n                    android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                    android:propertyName=\"scaleY\"\n                    android:valueFrom=\"0\"\n                    android:valueTo=\"0\"\n                    android:valueType=\"floatType\" />\n                <objectAnimator\n                    android:duration=\"100\"\n                    android:interpolator=\"@android:anim/decelerate_interpolator\"\n                    android:propertyName=\"scaleY\"\n                    android:startOffset=\"66\"\n                    android:valueFrom=\"0\"\n                    android:valueTo=\"1\"\n                    android:valueType=\"floatType\" />\n            </set>\n        </aapt:attr>\n    </target>\n</animated-vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/anim_caret_down.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<animated-vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\">\n    <aapt:attr name=\"android:drawable\">\n        <vector\n            android:name=\"caret_up\"\n            android:width=\"24.0dip\"\n            android:height=\"24.0dip\"\n            android:viewportWidth=\"24.0\"\n            android:viewportHeight=\"24.0\">\n            <group\n                android:name=\"caret01\"\n                android:rotation=\"90.0\"\n                android:translateX=\"12.0\"\n                android:translateY=\"15.0\">\n                <group\n                    android:name=\"caret_l\"\n                    android:rotation=\"45.0\">\n                    <group\n                        android:name=\"caret_l_pivot\"\n                        android:translateY=\"4.0\">\n                        <group\n                            android:name=\"caret_l_rect_position\"\n                            android:translateY=\"-1.0\">\n                            <path\n                                android:name=\"caret_l_rect\"\n                                android:fillColor=\"#000\"\n                                android:pathData=\"M -1.0,-4.0 l 2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z\" />\n                        </group>\n                    </group>\n                </group>\n                <group\n                    android:name=\"caret_r\"\n                    android:rotation=\"-45.0\">\n                    <group\n                        android:name=\"caret_r_pivot\"\n                        android:translateY=\"-4.0\">\n                        <group\n                            android:name=\"caret_r_rect_position\"\n                            android:translateY=\"1.0\">\n                            <path\n                                android:name=\"caret_r_rect\"\n                                android:fillColor=\"#000\"\n                                android:pathData=\"M -1.0,-4.0 l 2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z\" />\n                        </group>\n                    </group>\n                </group>\n            </group>\n        </vector>\n    </aapt:attr>\n\n    <target android:name=\"caret01\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:pathData=\"M 12.0,9.0 c 0.0,0.66667 0.0,5.0 0.0,6.0\"\n                android:propertyXName=\"translateX\"\n                android:propertyYName=\"translateY\" />\n        </aapt:attr>\n    </target>\n    <target android:name=\"caret_l\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"rotation\"\n                android:valueFrom=\"-45.0\"\n                android:valueTo=\"45.0\"\n                android:valueType=\"floatType\" />\n        </aapt:attr>\n    </target>\n    <target\n        android:name=\"caret_r\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"rotation\"\n                android:valueFrom=\"45.0\"\n                android:valueTo=\"-45.0\"\n                android:valueType=\"floatType\" />\n        </aapt:attr>\n    </target>\n</animated-vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/anim_history_enter.xml",
    "content": "<animated-vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\">\n    <aapt:attr name=\"android:drawable\">\n        <vector\n            android:name=\"history_enter\"\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"24\"\n            android:viewportHeight=\"24\">\n            <path\n                android:name=\"clock\"\n                android:fillColor=\"#000000\"\n                android:pathData=\"M 12 8 L 12 13 L 16.28 15.54 L 17 14.33 L 13.5 12.25 L 13.5 8 L 12 8 Z\" />\n            <group\n                android:name=\"arrow_head\"\n                android:pivotX=\"13\"\n                android:pivotY=\"12\">\n                <path\n                    android:name=\"arrow\"\n                    android:fillColor=\"#000000\"\n                    android:pathData=\"M 13 3 C 8.03 3 4 7.03 4 12 L 1 12 L 4.89 15.89 L 4.96 16.03 L 9 12 L 6 12 C 6 8.13 9.13 5 13 5 C 16.87 5 20 8.13 20 12 C 20 15.87 16.87 19 13 19 C 11.07 19 9.32 18.21 8.06 16.94 L 6.64 18.36 C 8.27 19.99 10.51 21 13 21 C 17.97 21 22 16.97 22 12 C 22 7.03 17.97 3 13 3 Z M 13 3 Z\" />\n            </group>\n        </vector>\n    </aapt:attr>\n    <target android:name=\"arrow_head\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"500\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"rotation\"\n                android:valueFrom=\"360\"\n                android:valueTo=\"0\"\n                android:valueType=\"floatType\" />\n        </aapt:attr>\n    </target>\n</animated-vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/anim_library_enter.xml",
    "content": "<animated-vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\">\n    <aapt:attr name=\"android:drawable\">\n        <vector\n            android:name=\"vector\"\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"1080\"\n            android:viewportHeight=\"1080\">\n            <path\n                android:name=\"bookmark\"\n                android:fillColor=\"#000000\"\n                android:pathData=\"M 899.84 90.84 C 899.84 90.84 360.3 90.84 360.3 90.84 C 310.84 90.84 270.38 131.3 270.38 180.76 C 270.38 180.76 270.38 720.31 270.38 720.31 C 270.38 769.76 310.84 810.23 360.3 810.23 C 360.3 810.23 899.84 810.23 899.84 810.23 C 949.3 810.23 989.77 769.76 989.77 720.31 C 989.77 720.31 989.77 180.76 989.77 180.76 C 989.77 131.3 949.3 90.84 899.84 90.84 M 899.84 720.31 C 899.84 720.31 360.3 720.31 360.3 720.31 C 360.3 720.31 360.3 180.76 360.3 180.76 C 360.3 180.76 585.11 180.76 585.11 180.76 C 585.11 180.76 585.11 585.42 585.11 585.42 C 585.11 585.42 720 484.26 720 484.26 C 720 484.26 854.88 585.42 854.88 585.42 C 854.88 585.42 854.88 180.76 854.88 180.76 C 854.88 180.76 899.84 180.76 899.84 180.76 C 899.84 180.76 899.84 720.31 899.84 720.31\" />\n            <path\n                android:name=\"angle\"\n                android:fillColor=\"#000000\"\n                android:pathData=\"M 180.45 270.69 C 180.45 270.69 90.53 270.69 90.53 270.69 C 90.53 270.69 90.53 900.15 90.53 900.15 C 90.53 949.61 131 990.08 180.45 990.08 C 180.45 990.08 809.92 990.08 809.92 990.08 C 809.92 990.08 809.92 900.15 809.92 900.15 C 809.92 900.15 180.45 900.15 180.45 900.15 C 180.45 900.15 180.45 270.69 180.45 270.69\" />\n        </vector>\n    </aapt:attr>\n    <target android:name=\"bookmark\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"pathData\"\n                android:valueFrom=\"M 634.454 90.84 C 543.069 90.84 451.685 90.84 360.3 90.84 C 310.84 90.84 270.38 131.3 270.38 180.76 C 270.38 360.61 270.38 540.46 270.38 720.31 C 270.38 769.76 310.84 810.23 360.3 810.23 C 540.147 810.23 719.993 810.23 899.84 810.23 C 949.3 810.23 989.77 769.76 989.77 720.31 C 989.77 540.46 989.77 360.61 989.77 180.76 C 989.77 131.3 949.3 90.84 899.84 90.84 C 811.378 90.84 722.916 90.84 634.454 90.84 M 899.84 720.31 C 834.876 720.31 769.913 720.31 704.949 720.31 C 590.066 720.31 475.183 720.31 360.3 720.31 C 360.3 540.46 360.3 360.61 360.3 180.76 C 435.237 180.76 510.173 180.76 585.11 180.76 L 585.11 180.76 C 585.11 315.647 585.11 450.533 585.11 585.42 C 630.073 551.7 675.037 517.98 720 484.26 C 764.96 517.98 809.92 551.7 854.88 585.42 C 854.88 450.533 854.88 315.647 854.88 180.76 C 869.867 180.76 884.853 180.76 899.84 180.76 C 899.84 360.61 899.84 540.46 899.84 720.31\"\n                android:valueTo=\"M 900 90 C 720 90 540 90 360 90 C 310.5 90 270 130.5 270 180 C 270 360 270 540 270 720 C 270 769.5 310.5 810 360 810 C 540 810 720 810 900 810 C 949.5 810 990 769.5 990 720 C 990 540 990 360 990 180 C 990 130.5 949.5 90 900 90 C 900 90 900 90 900 90 M 900 540 C 862.5 517.5 825 495 787.5 472.5 C 750 495 712.5 517.5 675 540 C 675 540 675 540 675 540 C 675 471.351 675 402.701 675 334.052 L 675 180 C 675 180 675 180 675 180 C 713.708 180 752.416 180 791.124 180 C 827.416 180 863.708 180 900 180 C 900 233.194 900 286.387 900 339.581 C 900 406.387 900 473.194 900 540 C 900 540 900 540 900 540\"\n                android:valueType=\"pathType\" />\n        </aapt:attr>\n    </target>\n</animated-vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/anim_more_enter.xml",
    "content": "<animated-vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\">\n    <aapt:attr name=\"android:drawable\">\n        <vector\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"1080\"\n            android:viewportHeight=\"1080\">\n            <group android:name=\"_R_G\">\n                <group android:name=\"_R_G_L_2_G\">\n                    <path\n                        android:name=\"_R_G_L_2_G_D_0_P_0\"\n                        android:fillAlpha=\"1\"\n                        android:fillColor=\"#000000\"\n                        android:fillType=\"nonZero\"\n                        android:pathData=\" M270.46 450.51 C220.99,450.51 180.52,490.99 180.52,540.46 C180.52,589.93 220.99,630.41 270.46,630.41 C319.93,630.41 360.41,589.93 360.41,540.46 C360.41,490.99 319.93,450.51 270.46,450.51c \" />\n                </group>\n                <group android:name=\"_R_G_L_1_G\">\n                    <path\n                        android:name=\"_R_G_L_1_G_D_0_P_0\"\n                        android:fillAlpha=\"1\"\n                        android:fillColor=\"#000000\"\n                        android:fillType=\"nonZero\"\n                        android:pathData=\" M540.31 450.51 C490.84,450.51 450.36,490.99 450.36,540.46 C450.36,589.93 490.84,630.41 540.31,630.41 C589.78,630.41 630.26,589.93 630.26,540.46 C630.26,490.99 589.78,450.51 540.31,450.51c \" />\n                </group>\n                <group android:name=\"_R_G_L_0_G\">\n                    <path\n                        android:name=\"_R_G_L_0_G_D_0_P_0\"\n                        android:fillAlpha=\"1\"\n                        android:fillColor=\"#000000\"\n                        android:fillType=\"nonZero\"\n                        android:pathData=\" M810.16 450.51 C760.68,450.51 720.21,490.99 720.21,540.46 C720.21,589.93 760.68,630.41 810.16,630.41 C859.63,630.41 900.1,589.93 900.1,540.46 C900.1,490.99 859.63,450.51 810.16,450.51c \" />\n                </group>\n            </group>\n            <group android:name=\"time_group\" />\n        </vector>\n    </aapt:attr>\n    <target android:name=\"_R_G_L_2_G_D_0_P_0\">\n        <aapt:attr name=\"android:animation\">\n            <set android:ordering=\"together\">\n                <objectAnimator\n                    android:duration=\"83\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"0\"\n                    android:valueFrom=\"M270.46 450.51 C220.99,450.51 180.52,490.99 180.52,540.46 C180.52,589.93 220.99,630.41 270.46,630.41 C319.93,630.41 360.41,589.93 360.41,540.46 C360.41,490.99 319.93,450.51 270.46,450.51c \"\n                    android:valueTo=\"M270.46 450.51 C220.99,450.51 180.52,490.99 180.52,540.46 C180.52,589.93 220.99,630.41 270.46,630.41 C319.93,630.41 360.41,589.93 360.41,540.46 C360.41,490.99 319.93,450.51 270.46,450.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"100\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"83\"\n                    android:valueFrom=\"M270.46 450.51 C220.99,450.51 180.52,490.99 180.52,540.46 C180.52,589.93 220.99,630.41 270.46,630.41 C319.93,630.41 360.41,589.93 360.41,540.46 C360.41,490.99 319.93,450.51 270.46,450.51c \"\n                    android:valueTo=\"M272.31 322.51 C222.84,322.51 182.36,362.99 182.36,412.46 C182.36,461.93 222.84,502.41 272.31,502.41 C321.78,502.41 362.26,461.93 362.26,412.46 C362.26,362.99 321.78,322.51 272.31,322.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"133\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"183\"\n                    android:valueFrom=\"M272.31 322.51 C222.84,322.51 182.36,362.99 182.36,412.46 C182.36,461.93 222.84,502.41 272.31,502.41 C321.78,502.41 362.26,461.93 362.26,412.46 C362.26,362.99 321.78,322.51 272.31,322.51c \"\n                    android:valueTo=\"M270.46 486.51 C220.99,486.51 180.52,526.99 180.52,576.46 C180.52,625.93 220.99,666.41 270.46,666.41 C319.93,666.41 360.41,625.93 360.41,576.46 C360.41,526.99 319.93,486.51 270.46,486.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"67\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"317\"\n                    android:valueFrom=\"M270.46 486.51 C220.99,486.51 180.52,526.99 180.52,576.46 C180.52,625.93 220.99,666.41 270.46,666.41 C319.93,666.41 360.41,625.93 360.41,576.46 C360.41,526.99 319.93,486.51 270.46,486.51c \"\n                    android:valueTo=\"M270.46 450.51 C220.99,450.51 180.52,490.99 180.52,540.46 C180.52,589.93 220.99,630.41 270.46,630.41 C319.93,630.41 360.41,589.93 360.41,540.46 C360.41,490.99 319.93,450.51 270.46,450.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n            </set>\n        </aapt:attr>\n    </target>\n    <target android:name=\"_R_G_L_1_G_D_0_P_0\">\n        <aapt:attr name=\"android:animation\">\n            <set android:ordering=\"together\">\n                <objectAnimator\n                    android:duration=\"150\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"0\"\n                    android:valueFrom=\"M540.31 450.51 C490.84,450.51 450.36,490.99 450.36,540.46 C450.36,589.93 490.84,630.41 540.31,630.41 C589.78,630.41 630.26,589.93 630.26,540.46 C630.26,490.99 589.78,450.51 540.31,450.51c \"\n                    android:valueTo=\"M540.31 450.51 C490.84,450.51 450.36,490.99 450.36,540.46 C450.36,589.93 490.84,630.41 540.31,630.41 C589.78,630.41 630.26,589.93 630.26,540.46 C630.26,490.99 589.78,450.51 540.31,450.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"100\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"150\"\n                    android:valueFrom=\"M540.31 450.51 C490.84,450.51 450.36,490.99 450.36,540.46 C450.36,589.93 490.84,630.41 540.31,630.41 C589.78,630.41 630.26,589.93 630.26,540.46 C630.26,490.99 589.78,450.51 540.31,450.51c \"\n                    android:valueTo=\"M542.16 322.51 C492.68,322.51 452.21,362.99 452.21,412.46 C452.21,461.93 492.68,502.41 542.16,502.41 C591.63,502.41 632.1,461.93 632.1,412.46 C632.1,362.99 591.63,322.51 542.16,322.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"133\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"250\"\n                    android:valueFrom=\"M542.16 322.51 C492.68,322.51 452.21,362.99 452.21,412.46 C452.21,461.93 492.68,502.41 542.16,502.41 C591.63,502.41 632.1,461.93 632.1,412.46 C632.1,362.99 591.63,322.51 542.16,322.51c \"\n                    android:valueTo=\"M540.31 486.51 C490.84,486.51 450.36,526.99 450.36,576.46 C450.36,625.93 490.84,666.41 540.31,666.41 C589.78,666.41 630.26,625.93 630.26,576.46 C630.26,526.99 589.78,486.51 540.31,486.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"67\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"383\"\n                    android:valueFrom=\"M540.31 486.51 C490.84,486.51 450.36,526.99 450.36,576.46 C450.36,625.93 490.84,666.41 540.31,666.41 C589.78,666.41 630.26,625.93 630.26,576.46 C630.26,526.99 589.78,486.51 540.31,486.51c \"\n                    android:valueTo=\"M540.31 450.51 C490.84,450.51 450.36,490.99 450.36,540.46 C450.36,589.93 490.84,630.41 540.31,630.41 C589.78,630.41 630.26,589.93 630.26,540.46 C630.26,490.99 589.78,450.51 540.31,450.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n            </set>\n        </aapt:attr>\n    </target>\n    <target android:name=\"_R_G_L_0_G_D_0_P_0\">\n        <aapt:attr name=\"android:animation\">\n            <set android:ordering=\"together\">\n                <objectAnimator\n                    android:duration=\"217\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"0\"\n                    android:valueFrom=\"M810.16 450.51 C760.68,450.51 720.21,490.99 720.21,540.46 C720.21,589.93 760.68,630.41 810.16,630.41 C859.63,630.41 900.1,589.93 900.1,540.46 C900.1,490.99 859.63,450.51 810.16,450.51c \"\n                    android:valueTo=\"M810.16 450.51 C760.68,450.51 720.21,490.99 720.21,540.46 C720.21,589.93 760.68,630.41 810.16,630.41 C859.63,630.41 900.1,589.93 900.1,540.46 C900.1,490.99 859.63,450.51 810.16,450.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"100\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"217\"\n                    android:valueFrom=\"M810.16 450.51 C760.68,450.51 720.21,490.99 720.21,540.46 C720.21,589.93 760.68,630.41 810.16,630.41 C859.63,630.41 900.1,589.93 900.1,540.46 C900.1,490.99 859.63,450.51 810.16,450.51c \"\n                    android:valueTo=\"M812 322.51 C762.53,322.51 722.05,362.99 722.05,412.46 C722.05,461.93 762.53,502.41 812,502.41 C861.47,502.41 901.95,461.93 901.95,412.46 C901.95,362.99 861.47,322.51 812,322.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"133\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"317\"\n                    android:valueFrom=\"M812 322.51 C762.53,322.51 722.05,362.99 722.05,412.46 C722.05,461.93 762.53,502.41 812,502.41 C861.47,502.41 901.95,461.93 901.95,412.46 C901.95,362.99 861.47,322.51 812,322.51c \"\n                    android:valueTo=\"M810.16 486.51 C760.68,486.51 720.21,526.99 720.21,576.46 C720.21,625.93 760.68,666.41 810.16,666.41 C859.63,666.41 900.1,625.93 900.1,576.46 C900.1,526.99 859.63,486.51 810.16,486.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n                <objectAnimator\n                    android:duration=\"67\"\n                    android:propertyName=\"pathData\"\n                    android:startOffset=\"450\"\n                    android:valueFrom=\"M810.16 486.51 C760.68,486.51 720.21,526.99 720.21,576.46 C720.21,625.93 760.68,666.41 810.16,666.41 C859.63,666.41 900.1,625.93 900.1,576.46 C900.1,526.99 859.63,486.51 810.16,486.51c \"\n                    android:valueTo=\"M810.16 450.51 C760.68,450.51 720.21,490.99 720.21,540.46 C720.21,589.93 760.68,630.41 810.16,630.41 C859.63,630.41 900.1,589.93 900.1,540.46 C900.1,490.99 859.63,450.51 810.16,450.51c \"\n                    android:valueType=\"pathType\">\n                    <aapt:attr name=\"android:interpolator\">\n                        <pathInterpolator android:pathData=\"M 0.0,0.0 c0.5,0 0.5,1 1.0,1.0\" />\n                    </aapt:attr>\n                </objectAnimator>\n            </set>\n        </aapt:attr>\n    </target>\n    <target android:name=\"time_group\">\n        <aapt:attr name=\"android:animation\">\n            <set android:ordering=\"together\">\n                <objectAnimator\n                    android:duration=\"833\"\n                    android:propertyName=\"translateX\"\n                    android:startOffset=\"0\"\n                    android:valueFrom=\"0\"\n                    android:valueTo=\"1\"\n                    android:valueType=\"floatType\" />\n            </set>\n        </aapt:attr>\n    </target>\n</animated-vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/anim_updates_enter.xml",
    "content": "<animated-vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\">\n    <aapt:attr name=\"android:drawable\">\n        <vector\n            android:name=\"updates_enter\"\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"24\"\n            android:viewportHeight=\"24\">\n            <path\n                android:name=\"updates_filled\"\n                android:fillColor=\"#000000\"\n                android:pathData=\"M 23 12 L 20.56 9.22 L 20.9 5.54 L 17.29 4.72 L 15.4 1.54 L 12 3 L 8.6 1.54 L 6.71 4.72 L 3.1 5.53 L 3.44 9.21 L 1 12 L 3.44 14.78 L 3.1 18.47 L 6.71 19.29 L 8.6 22.47 L 12 21 L 15.4 22.46 L 17.29 19.28 L 20.9 18.46 L 20.56 14.78 L 23 12 Z M 9.42 19.93 L 7.99 17.52 L 5.25 16.9 L 5.51 14.1 L 3.66 12 L 5.51 9.88 L 5.25 7.1 L 7.99 6.49 L 9.42 4.08 L 12 5.18 L 14.58 4.07 L 16.01 6.48 L 18.75 7.1 L 18.49 9.89 L 20.34 12 L 18.49 14.11 L 18.49 14.11 L 18.75 16.9 L 16.01 17.52 L 14.58 19.93 L 12 18.82 L 9.42 19.93 M 11 15 L 13 15 L 13 15.5 L 13 16 L 13 17 L 11 17 L 11 15 M 11 7 L 13 7 L 13 13 L 11 13 L 11 7\" />\n        </vector>\n    </aapt:attr>\n    <target android:name=\"updates_filled\">\n        <aapt:attr name=\"android:animation\">\n            <objectAnimator\n                android:duration=\"300\"\n                android:interpolator=\"@android:interpolator/fast_out_slow_in\"\n                android:propertyName=\"pathData\"\n                android:valueFrom=\"M 23 12 L 20.56 9.22 L 20.9 5.54 L 17.29 4.72 L 15.4 1.54 L 12 3 L 8.6 1.54 L 6.71 4.72 L 3.1 5.53 L 3.44 9.21 L 1 12 L 3.44 14.78 L 3.1 18.47 L 6.71 19.29 L 8.6 22.47 L 12 21 L 15.4 22.46 L 17.29 19.28 L 20.9 18.46 L 20.56 14.78 L 23 12 Z M 9.42 19.93 L 7.99 17.52 L 5.25 16.9 L 5.51 14.1 L 3.66 12 L 5.51 9.88 L 5.25 7.1 L 7.99 6.49 L 9.42 4.08 L 12 5.18 L 14.58 4.07 L 16.01 6.48 L 18.75 7.1 L 18.49 9.89 L 20.34 12 L 18.49 14.11 L 18.49 14.11 L 18.75 16.9 L 16.01 17.52 L 14.58 19.93 L 12 18.82 L 9.42 19.93 M 11 15 L 13 15 L 13 15.5 L 13 16 L 13 17 L 11 17 L 11 15 M 11 7 L 13 7 L 13 13 L 11 13 L 11 7\"\n                android:valueTo=\"M 23 12 L 20.56 9.22 L 20.9 5.54 L 17.29 4.72 L 15.4 1.54 L 12 3 L 8.6 1.54 L 6.71 4.72 L 3.1 5.53 L 3.44 9.21 L 1 12 L 3.44 14.78 L 3.1 18.47 L 6.71 19.29 L 8.6 22.47 L 12 21 L 15.4 22.46 L 17.29 19.28 L 20.9 18.46 L 20.56 14.78 L 23 12 Z M 12 13 L 11.5 13 L 11 13 L 11 12 L 11 11 L 11 10 L 11 9 L 11 8 L 11 7 L 12 7 L 13 7 L 13 7.857 L 13 8.714 L 13 9.571 L 13 10.429 L 13 11.286 L 13 12.143 L 13 13 L 13 13 L 13 13 L 12.5 13 L 12 13 M 11 15 L 13 15 L 13 16.058 L 13 17 L 13 17 L 11 17 L 11 15 M 12 10 L 12 10 L 12 10 L 12 10 L 12 10\"\n                android:valueType=\"pathType\" />\n        </aapt:attr>\n    </target>\n</animated-vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_anilist.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#1f2631\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"m63.6,43.6 l-36.8,105h28.6l6.2,-18.2h31.2l6.1,18.1h28.5L90.7,43.6zM68.2,107.1 L77.1,78.1 86.9,107.1z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#fefefe\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"M127,148.5h32.5q6.3,0 6.4,-6.3v-14q-0.1,-6.4 -6.4,-6.5h-37.6V50q-0.1,-6.3 -6.4,-6.4h-14q-6.3,0.1 -6.4,6.4v7.8c-3.2,-9.8 31.8,90.7 32,90.7\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#02a9ff\"\n      android:fillType=\"evenOdd\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_bangumi.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <group>\n    <clip-path\n        android:pathData=\"M0.03,0.03l192.01,0l0,192.01L0.03,192.03z\"/>\n    <path\n        android:pathData=\"M0.03,0.03l191.95,0l0,191.95L0.03,191.97z\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#2d2e2f\"\n        android:fillType=\"evenOdd\"/>\n    <path\n        android:pathData=\"M129.89,-36.09a3.42,3.42 0,1 1,5.7 3.87L87.4,36.59A31.9,31.9 0,0 1,100.22 46.16L157.23,46.16a17.09,17.09 0,0 1,17.09 17.09l0,93.98a17.09,17.09 0,0 1,-17.09 17.09L67.98,174.32L43.88,192.54a5.7,5.7 0,0 1,-8.54 -7.01l5.35,-11.22L-6.81,174.32a25.06,25.06 0,0 1,-25.06 -25.06L-31.87,63.25a17.09,17.09 0,0 1,17.09 -17.09L50.66,46.16a31.9,31.9 0,0 1,10.77 -8.71L-6.13,-31.76a3.42,3.42 0,0 1,4.9 -4.78L68.49,34.94a31.9,31.9 0,0 1,11.96 -0.34zM40.47,187.99l18.06,-13.67L46.96,174.32zM-6.81,55.28a7.97,7.97 0,0 0,-7.97 7.97l0,86.01a7.97,7.97 0,0 0,7.97 7.97l164.04,0a7.97,7.97 0,0 0,7.97 -7.97L165.2,63.25a7.97,7.97 0,0 0,-7.97 -7.97z\"\n        android:strokeLineJoin=\"round\"\n        android:fillType=\"evenOdd\">\n      <aapt:attr name=\"android:fillColor\">\n        <gradient\n            android:startX=\"71.22\"\n            android:startY=\"57.21\"\n            android:endX=\"71.22\"\n            android:endY=\"154.89\"\n            android:type=\"linear\">\n          <item android:offset=\"0\" android:color=\"#FFFF3599\"/>\n          <item android:offset=\"1\" android:color=\"#FFFF77AB\"/>\n        </gradient>\n      </aapt:attr>\n    </path>\n    <path\n        android:pathData=\"M157.23,55.28a7.97,7.97 0,0 1,7.97 7.97l0,86.01a7.97,7.97 0,0 1,-7.97 7.97L81.08,157.23L40.47,187.99l14.7,-30.76L-6.81,157.23a7.97,7.97 0,0 1,-7.97 -7.97L-14.78,63.25a7.97,7.97 0,0 1,7.97 -7.97z\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#fff\"\n        android:fillType=\"evenOdd\"/>\n    <path\n        android:pathData=\"M93.44,92.3a2.28,2.28 0,0 1,1.94 3.42l-18.23,30.76a2.28,2.28 0,0 1,-3.87 0l-18.23,-30.76a2.28,2.28 0,0 1,1.94 -3.42zM145.84,119.07a2.28,2.28 0,0 1,0 4.56l-36.17,0a2.28,2.28 0,0 1,0 -4.56zM40.75,118.78a2.28,2.28 0,0 1,0 4.56L4.58,123.34a2.28,2.28 0,0 1,0 -4.56zM75.21,120.89 L89.45,96.85L60.97,96.85zM145.84,111.09a2.28,2.28 0,0 1,0 4.56l-36.17,0a2.28,2.28 0,0 1,0 -4.56zM40.75,110.81a2.28,2.28 0,0 1,0 4.56L4.58,115.37a2.28,2.28 0,0 1,0 -4.56zM144.98,78.51a2.28,2.28 0,1 1,1.71 4.21L118.9,94.01l27.8,11.28a2.28,2.28 0,1 1,-1.71 4.21l-33.04,-13.39a2.28,2.28 0,0 1,0 -4.21zM2.48,79.48a2.28,2.28 0,0 1,2.96 -1.25l33.04,13.39a2.28,2.28 0,0 1,0 4.21l-33.04,13.39a2.28,2.28 0,0 1,-1.71 -4.21l27.85,-11.28 -27.85,-11.28a2.28,2.28 0,0 1,-1.25 -2.96\"\n        android:strokeLineJoin=\"round\"\n        android:fillType=\"evenOdd\">\n      <aapt:attr name=\"android:fillColor\">\n        <gradient\n            android:startX=\"75.21\"\n            android:startY=\"78.17\"\n            android:endX=\"75.21\"\n            android:endY=\"129.75\"\n            android:type=\"linear\">\n          <item android:offset=\"0\" android:color=\"#FFFF3599\"/>\n          <item android:offset=\"1\" android:color=\"#FFFF77AB\"/>\n        </gradient>\n      </aapt:attr>\n    </path>\n  </group>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_kavita.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#49c593\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M46.5,43.8c44.3,0 44.3,0 48,3.1 0.8,1 0.8,1 0.8,2.4h1.4l0.5,-1.2c0.9,-1.6 0.9,-1.6 4.3,-4.4h44v90.8l-30,0.2h-7.2l-6.8,0.1c-2.5,0.5 -3.2,1.3 -4.8,3.1h-1.4l-1.2,-1.3c-2,-1.9 -3.3,-1.8 -6,-1.8h-8.6l-10.1,-0.2 -22.9,-0.1z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#fefefe\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M39.6,54.8h6.9v79.7l30,-0.2h14c2.3,0.2 3.2,0.7 4.8,2.3v1.3h1.4l0.6,-1.3c0.8,-1.4 0.8,-1.4 2.1,-2.1h46.1V54.8h6.9c1.7,1.7 1.6,2.3 1.6,4.8v80.3c-0.2,1.5 -0.2,1.5 -1.6,2.8 -1.8,0.3 -1.8,0.3 -4.2,0.3h-37.8c-3.3,0.6 -5,2.6 -7.2,5 -2.5,2.4 -4.3,3 -7.8,3.3 -3.3,0 -5.3,-1.5 -7.7,-3.7L85,144c-2,-1 -3.4,-0.7 -5.5,-0.8h-4.1l-17,-0.2 -14.6,-0.1h-2.3c-1.9,-0.2 -1.9,-0.2 -3.2,-1.6 -0.3,-1.5 -0.3,-1.5 -0.3,-3.5V57.7c0.3,-1.6 0.3,-1.6 1.6,-3\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#424d72\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M46.5,43.8h43.3v0.6H47.2V129l29.6,-0.2h13.7c2.3,0.2 3.2,0.7 4.8,2.3v1.3h1.4l0.6,-1.3c0.8,-1.4 0.8,-1.4 2.1,-2.1h45.3V44.4h-43.3v-0.6h44v90.7l-30,0.2h-7.2l-6.8,0.1c-2.4,0.5 -3.1,1.3 -4.8,3.1h-1.4l-1.1,-1.3c-2,-1.9 -3.4,-1.8 -6.1,-1.8h-8.6l-10,-0.2 -22.9,-0.1z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#e2e6ec\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M57.5,52h11v19.3h-11z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#59d1f7\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M103.6,119.4h31.6v2.7h-31.6zM56.8,119.4h31.6v2.7L56.8,122.1zM103.6,111.1h31.6v2.8h-31.6zM56.8,111.1h31.6v2.8L56.8,113.9zM103.6,102.9h31.6v2.7h-31.6zM56.8,102.9h31.6v2.7L56.8,105.6zM103.6,94.6h31.6v2.8h-31.6zM56.8,94.6h31.6v2.8L56.8,97.4zM103.6,86.4h31.6L135.2,89h-31.6zM56.8,86.4h31.6L88.4,89L56.8,89zM103.6,78.1h31.6L135.2,81h-31.6zM56.8,78.1h31.6L88.4,81L56.8,81zM103.6,69.9h31.6v2.7h-31.6z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#e5e8f0\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M103.6,61.6h31.6v2.8h-31.6zM103.6,53.4h31.6L135.2,56h-31.6z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#e4e7ef\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M74.7,69.9h13.7v2.7H74.7z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#e5e8f0\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M74.7,61.6h13.7v2.8L74.7,64.4zM74.7,53.4h13.7L88.4,56L74.7,56z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#e5e8ef\"\n      android:fillType=\"nonZero\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_kitsu.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#312631\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"m113,51.3 l-2.2,0.2 -4.2,0.5 -1.5,0.2a59,59 0,0 0,-11.3 4L92,57v12.5l-0.2,13.7a10,10 0,0 1,-5.4 7.1,6 6,0 0,1 -3.5,0.8L80,91a189,189 0,0 1,-14.5 -5.5l-4.8,-1.9 -5.5,-1.8c-0.2,0 -1,0.8 -1.8,1.5l-2,1.7a199,199 0,0 0,-19 19.5,5 5,0 0,0 -1.5,4.3c0,0.8 1.3,2.5 2.2,2.9 1,0.5 2.4,0.6 3.3,0.3l2.5,-1.5a117,117 0,0 1,21.4 -11.9l2.2,-1 3,-1c2,0 4,1.5 4.4,3.2l0.2,0.8c0.3,0.3 -1.5,4.2 -2.2,4.9 -0.2,0.1 -0.3,0.4 -1.3,2.2l-0.7,1a64,64 0,0 0,-3.7 7.2l-0.8,1.7 -0.4,0.8 -0.9,2a98,98 0,0 0,-3.3 8.3c-1.4,4 -1.4,3.8 -1.4,5.2q0,2 1.6,3.3 0.8,0.8 2.3,0.8c1.9,0 2.8,-0.4 4.1,-2.2l2.6,-3.4a64,64 0,0 1,5.5 -6.6c1.5,-1.9 8.7,-9 10.5,-10.6a109,109 0,0 1,22.5 -16A125,125 0,0 1,138 86.6c3,-0.6 3.6,-0.6 4.6,0.6 0.7,0.7 0.6,2.4 -0.1,3.2a8,8 0,0 1,-3.7 1.5,76 76,0 0,0 -25.1,12 42,42 0,0 0,-6.8 5A66,66 0,0 0,89.5 132a51,51 0,0 0,-2.8 9.9,47 47,0 0,0 2.7,24c0.7,1.8 1.2,2.3 2.4,3 1.9,0.9 4.2,0.1 5.5,-2 3.6,-5.8 7.4,-9 15.5,-13l3,-1.4 0.7,-0.4 0.6,-0.3 1.8,-0.7 2.4,-1c1.4,-0.6 8.6,-4.3 9.7,-5l3.2,-2 3.6,-2.4 2.1,-1.4c2.6,-1.9 8,-7 10,-9.3l1,-1.3a44,44 0,0 0,5.8 -9.2,44 44,0 0,0 4.8,-21c0,-5 0,-5.9 -0.8,-9.5a48,48 0,0 0,-7.8 -18,47 47,0 0,0 -26,-18.1l-1.4,-0.3 -3,-0.7a69,69 0,0 0,-9.5 -0.7m-17.5,83.2a28,28 0,0 0,16.9 11.7l1,0.2 1.1,0.2q1.7,0.2 0.2,0.7a89,89 0,0 0,-13.2 7.3,34 34,0 0,0 -7.2,7.4c-0.7,1 -0.7,0.9 -1.7,-3.2a54,54 0,0 1,-1 -15,42 42,0 0,1 3.1,-10.3z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#f75239\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M72.3,22.7c-1.5,0.3 -2.4,1.2 -3.9,3.5L66.6,30a30,30 0,0 0,-2.2 14.7c0.1,0.9 0.1,1 -1.1,1.6a50,50 0,0 0,-6.2 4.1l-1.6,1.3q-0.3,0.2 -1.6,-0.5a31,31 0,0 0,-16.7 -2.8c-4,0.6 -4.7,0.9 -5.6,2q-1.1,1.1 -1,2.7c0,1 0.6,2.8 1.2,3.4l1,1.2 0.6,1 1.5,1.7c3.5,4 8.3,8.5 12.5,11.3 4,2.6 5.5,3.3 12,5.8l8.4,3.3 1.7,0.6 3.6,1.4 2,0.8c2,0.9 5.3,2 6.4,2.2q1.3,0.4 2.3,0a4,4 0,0 0,2.7 -3,613 613,0 0,0 -0.4,-34.6 43,43 0,0 0,-1.4 -6.2L83,37c-0.5,-1.3 -4,-8.2 -5.2,-10.4 -1.8,-3.2 -3.3,-4.2 -5.5,-3.9m1,7.2c3,5.8 4.4,8.6 4.8,9.7 0.4,1.3 0.4,1.4 0,1.5h-0.7l-1,0.3 -1.7,0.4 -1.3,0.3 -0.6,0.2q-3,1 -3,0.8a15,15 0,0 1,0 -4.3l0.2,-1.9c0.3,-2.1 2.4,-7.4 3,-7.4zM44,54c2.4,0.3 6.3,1.5 7,2q0,0.4 -1.2,2l-1.6,2 -1.4,2 -1,1.6 -1.1,-1a76,76 0,0 1,-7.6 -8.6h1.3a26,26 0,0 1,5.6 0\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#f75239\"\n      android:fillType=\"nonZero\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_komga.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#005ed3\"\n      android:fillType=\"evenOdd\"/>\n  <group>\n    <clip-path\n        android:pathData=\"M-0.01,-0.01l191.98,0l0,191.98L-0.01,191.98z\"/>\n    <path\n        android:pathData=\"M223.63,135.63a88,88 70.86,0 1,-99.89 87.18l-31.63,-31.63 0.89,-5.95 -28.19,-28.22 22.1,-21.38 -22.14,-21.38 31.63,-5.29 -4.26,-28.91 28.6,12.72 14.88,-25.58 22.17,22.34 21.31,-9.49 43.69,43.69q0.83,5.84 0.83,11.89\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#00459f\"\n        android:fillType=\"evenOdd\"/>\n    <path\n        android:pathData=\"M215.63,127.63a88,88 49.79,0 1,-99.86 87.21l-31.63,-31.63 0.89,-5.98 -28.26,-28.22 22.14,-21.38 -22.14,-21.38 31.63,-5.29 -4.26,-28.91 28.6,12.72L127.63,59.22l22.17,22.34 21.31,-9.49 43.72,43.72q0.79,5.84 0.79,11.86\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#00459f\"\n        android:fillType=\"evenOdd\"/>\n    <path\n        android:pathData=\"M184,96a88,88 65.09,0 1,-99.86 87.21l-31.63,-31.63 0.89,-5.98 -28.26,-28.22 22.14,-21.38L25.19,74.62l31.63,-5.29 -4.26,-28.91 28.6,12.72L96,27.59l22.17,22.34 21.31,-9.49 43.72,43.72q0.79,5.84 0.79,11.86\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#00459f\"\n        android:fillType=\"evenOdd\"/>\n    <path\n        android:pathData=\"m96,37.8 l12.75,21.93 24.27,-10.79 -3.61,24.65 26.47,4.43 -18.6,17.98 18.6,17.98 -26.47,4.47 3.61,24.61 -24.27,-10.79 -12.75,21.93 -12.75,-21.93 -24.27,10.79 3.61,-24.65 -26.47,-4.43 18.6,-17.98 -18.6,-17.98 26.47,-4.47 -3.61,-24.61 24.27,10.79z\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#ff0335\"\n        android:fillType=\"nonZero\"/>\n    <path\n        android:pathData=\"m155.88,113.98 l-26.47,4.47 3.61,24.61 -24.27,-10.79 -12.75,21.93L96,37.8l12.75,21.93 24.27,-10.79 -2.34,15.81 -1.27,8.83 20.21,3.37 6.26,1.07 -4.61,4.47 -13.99,13.51 3.92,3.78z\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#c2001b\"\n        android:fillType=\"nonZero\"/>\n    <path\n        android:pathData=\"m96,164.41 l-14.88,-25.54 -28.6,12.72 4.26,-28.91 -31.63,-5.29 22.14,-21.38L25.19,74.62l31.63,-5.29 -4.26,-28.91 28.6,12.72L96,27.59l14.88,25.58 28.6,-12.72 -4.26,28.91 31.63,5.29 -22.14,21.38 22.14,21.38 -31.63,5.29 4.26,28.91 -28.6,-12.72zM85.34,125.67 L96,143.92 106.66,125.7 126.56,134.53 123.57,114.18 144.95,110.57 129.86,96 144.98,81.43 123.57,77.82 126.56,57.47 106.62,66.33 96,48.08 85.34,66.3 65.44,57.47 68.43,77.82 47.05,81.43 62.14,96 47.02,110.57 68.43,114.18 65.44,134.53z\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#ffdf47\"\n        android:fillType=\"nonZero\"/>\n    <path\n        android:pathData=\"m146.63,97.86 l-1.92,-1.86 8.63,-8.35 13.51,-13.03 -19.18,-3.2 -12.44,-2.06 0.96,-6.6 3.3,-22.34 -28.6,12.72L96,27.56l0,20.52l10.66,18.22 19.9,-8.83 -1.38,9.14 -0.86,5.98 -0.76,5.22 0.86,0.17 20.52,3.44 -15.09,14.58 5.84,5.64 9.28,8.94 -21.42,3.61 2.99,20.35 -19.94,-8.87 -10.62,18.25l0,20.52l14.88,-25.58 28.6,12.72 -4.26,-28.91 31.63,-5.29z\"\n        android:strokeLineJoin=\"round\"\n        android:fillColor=\"#fec000\"\n        android:fillType=\"nonZero\"/>\n    <path\n        android:pathData=\"m116.97,54.77 l-5.65,33.08 25.29,30.59l-25.1,7.46l-17.68,-24.55l7.88,27.46l-24.31,7.22L59.05,72.01l24.31,-7.22l7.13,24.87l3.67,-28.08z\"\n        android:strokeLineJoin=\"round\"\n        android:strokeWidth=\"1.6\"\n        android:fillColor=\"#fff\"\n        android:fillType=\"nonZero\"\n        android:strokeColor=\"#000\"/>\n  </group>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_mangaupdates.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#92a0ad\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"M44.7,19h102.6A25.6,25.6 0,0 1,173 44.7v102.6a25.6,25.6 0,0 1,-25.7 25.7H44.7A25.6,25.6 0,0 1,19 147.3V44.7A25.6,25.6 0,0 1,44.7 19\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#cbd6e8\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M164.4,143.2q0,3.7 -0.5,7.5a22,22 0,0 1,-2.1 7q-1.5,3 -4.3,5.2a12,12 0,0 1,-7.4 2q-5.5,0 -8.5,-3.4a20,20 0,0 1,-3.8 -8.6,118 118,0 0,1 -2.3,-16.7l-1.6,-33.8a105,105 0,0 0,-2.8 -16.7,567 567,0 0,1 -8.5,26.3l-3.8,9.6a127,127 0,0 0,-5.2 17.8,175 175,0 0,1 -3,12.2q-0.7,2.2 -1.8,4.7 -0.8,2.4 -1.9,4.5a10,10 0,0 1,-2.2 3.1q-2.8,2.6 -6.7,3.3a26,26 0,0 1,-7 1,11 11,0 0,1 -9,-4 27,27 0,0 1,-4.9 -8.8,56 56,0 0,1 -1.9,-7.3l-1.5,-7.5q-2.3,-9.9 -5.4,-19.5 -3,-9.7 -5.6,-19.5 -3.5,7.8 -6.3,15.6a107,107 0,0 0,-4.7 28.6q0,6 -1.6,12.2 -1.2,4.5 -4,7 -2.6,2.6 -7.5,2.6a14,14 0,0 1,-12.2 -6.6q-1.7,-3 -2.4,-6.6 -0.5,-4 -0.5,-7.7 0,-8.2 2,-17.4 2.3,-9.5 5.1,-18.8l6.1,-18.7q3.4,-9.3 5.8,-17.2 2.3,-7.9 3.3,-15.5 1.2,-7.7 3,-15.5A26,26 0,0 1,55 31.4a21,21 0,0 1,5.6 -4q3,-1.5 6.8,-1.6 2.6,0 5.4,0.9a15,15 0,0 1,8.7 5.9q1.5,2.3 1.4,5.4 0,2.3 -0.4,4.5 -0.3,2.1 -0.3,4.4a271,271 0,0 0,10.6 74.9q7.2,-16.4 12,-33.5a1608,1608 0,0 0,12 -44.6q1.3,-5.1 3.7,-10 2.3,-4.5 5.6,-7.4 3.4,-3 8.7,-3a29,29 0,0 1,12.2 2.8q2.5,1.5 4.2,4 1.8,2.6 1.7,6.3 0,2.8 -0.3,5.6l-0.2,5.4a219,219 0,0 0,6.3 52q2.4,10.8 4,21.9 1.7,10.8 1.7,21.9\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#ff8c15\"\n      android:fillType=\"nonZero\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_myanimelist.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#2f52a2\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"M141.4,61.1h14.8v48.2h20.7l-3.4,13.1h-32.1zM129,60.7h-13c-5.2,0 -23.5,0 -31.6,20.2a59,59 0,0 0,5.6 50.4l12.4,-9s-5,-7 -7,-20.4L114,101.9l0.1,20.4h16.7L130.8,75.8h-16.5v13l-15.7,-0.1s2.6,-15.4 18.4,-15h15.6zM17,122.5L17,61h14.8l13.1,18.8L58.1,61h15v61.5L58,122.5L58,85.3l-13.1,17 -13,-17.1v37.3z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#fff\"\n      android:fillType=\"nonZero\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_shikimori.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#343434\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"m46,155.8 l-1.2,-0.5 -1,-0.5q0,-0.3 1,-1.3 3,-2.7 4.4,-4.7l1.7,-2.3c3,-3.2 6.8,-9.1 10,-15.2 2.1,-4 2.3,-4.3 2.5,-7.3a88,88 0,0 0,-1 -18.3c0,-0.2 -0.4,0 -3.8,1.4q-3.2,1.5 -3.7,2l-2,1.3c-1.6,0.8 -2,0.9 -4.7,0.3 -2.4,-0.5 -3.5,-1.1 -6,-3.3l-1,-1.1c0,-0.2 -1.1,-1.8 -2.6,-3.8l-0.7,-1 0.2,-1a9,9 0,0 0,0.2 -3.1l0.1,-2.3q0.2,-0.4 0.1,-1.1v-0.8l0.9,-0.4q0.8,-0.5 1.5,-0.4t1,-0.4q1.5,-1.5 2.7,-0.8c0.4,0.2 0.4,0.2 0.4,1.7 -0.1,1.7 0,1.7 1.2,2 1.3,0.2 3,0 7.4,-0.7 4,-0.8 9.6,-1.7 10.2,-1.7q0.4,0 1,-0.8l1.5,-1.5 0.8,-0.7h1.4c2.4,0.2 5.3,0.6 6.2,1 0.9,0.2 1,0.2 2.6,0l3.3,-0.5c4,-0.5 4.6,-0.6 4.8,-0.8q0,-0.1 0.4,0l0.7,-0.1c1.4,-0.8 1.6,-0.9 4,-1 1.2,0 2.6,0 3.3,-0.2 3,-0.6 12,-1.7 16.3,-2l1.6,-0.1 -0.2,-0.5q-0.4,-0.7 0,-0.7h2.3l0.8,-1.1 1,-1.4q0.1,-0.6 1.1,0.5l1.3,1.7 0.4,0.7h2.2l13,-0.3 5.2,0.5c0.8,0 0.8,0 -0.7,-2 -1,-1.3 -2.4,-2.6 -3.4,-3l-1,-0.6a11,11 0,0 0,-2.8 -1.1,14 14,0 0,1 -3.4,-1.6l-1.7,-0.3q-1.5,-0.4 -1.4,-0.6 0,-0.8 4.5,0.8 1.9,0.6 1.8,0.4 0,-0.3 -2.2,-1l-2.2,-1 0.2,-0.1q0.5,0 -0.4,-0.3 -0.5,0 -0.5,-0.4l-0.1,-0.2q-0.2,0 -0.1,-0.3v-0.2q-0.4,0 -1.3,1.6l-0.8,1L122,76.3l-1.4,-0.1q-0.3,0 -0.3,-0.3c0,-0.3 -0.2,-0.3 -2,-0.5L116,75.4q-0.4,0.3 -0.4,0t-0.8,-0.4l-7.1,-0.3q0,0.2 -0.2,0.3 -0.3,0.2 -0.4,-0.3c0,-0.5 0,-0.5 -1.3,-0.5l-1.2,0.1q0,0.2 0.2,0.2l0.8,0.3q0.5,0.4 1.1,0.4h0.7l0.2,0.2q0,0.2 -0.5,0.2h-2.5l0.7,0.1 1,0.6 0.3,0.5 -1,0.1 -1,0.3q-0.3,0.2 -0.1,-0.8v-0.9l-0.5,0.1 -1,0.4q-0.2,0.3 -1.4,0.2h-1l-0.2,-0.5q-0.2,-1.2 -0.8,-0.2 -0.4,0.5 -0.6,0.5t-0.2,0.3v0.3l-11.4,0.3 -1.3,0.2 0.6,0.1 1.2,0.1q1,0.4 -2.2,0.4c-2.6,0 -3,0.1 -2.5,0.5q0.4,0.2 -0.7,0.3l-1.7,0.1q-0.7,0 -0.4,0.2h1.1q1.4,0 0.6,0.4l-2,0.2c-1.6,0.1 -3.4,0.5 -3.7,0.9l-1,0.2 -1.5,0.1 -2.3,0.3q-1.8,0.2 -2.5,0.5c-0.5,0.2 -0.9,0.3 -5.1,0.2a36,36 0,0 1,-9.5 -1c-2.3,-0.5 -6.5,-2.8 -8.1,-4.4s-1.8,-2 -2.6,-6.4c-0.3,-2 -0.3,-2.6 -0.3,-5 0,-3.2 0.3,-4.1 1.4,-6.5 2.3,-4.9 5.7,-7.1 9.3,-6 1.6,0.4 3.3,0.7 4,0.7 1.1,0 3.3,0.4 3.5,0.6 0.3,0.4 -0.3,0.5 -3.1,0.5 -3.1,0.1 -3.8,0.3 -5.4,1a4,4 0,0 0,-2.3 2.5l-0.3,0.6 0.7,0.6q2.1,1.9 6.1,3l4.7,0.9 4.5,0.8 1.9,0.3c1.5,0.2 2.1,0.5 0.7,0.4h-0.5q0.3,0.3 1.4,0 1.7,-0.1 1.8,0.2l-0.2,0.1 -0.2,0.1 1.5,0.2 14.3,1.6q0.3,0 0,0.3 -0.6,0.2 0.5,0.4h1c0,-0.3 0.5,-0.3 2.3,-0.3 2.2,0 2.3,0 2.4,0.3q0.4,0.3 -0.6,0.5l-1,0.2 5.7,0.6c0.7,0 2.2,0 3.3,0.3 1.8,0.3 2.7,0.3 6,0.3a78,78 0,0 1,8.8 0.2q1,-0.2 1,0l1.8,0.4 2.7,0.6c1,0.3 4,0.8 6.4,1l3,0.6 2.8,0.7a20,20 0,0 1,7 3q4.4,2.3 5,8.6v1.5c-0.2,0.3 -0.2,0.3 1,0.6s2.5,1 2.4,1.2l-0.2,0.4c-0.1,0.4 0.9,1.4 1.5,1.7q0.7,0.1 1.1,0.5 0.6,0.3 0.5,1t0.6,1.6l1.2,1.5q0.9,0.7 0.3,1.8l-0.6,2.6c-0.5,2.5 -0.6,2.7 -2,3.4 -0.8,0.4 -1,0.5 -1.8,1.8q-1,1.3 0.7,2.3c0.8,0.6 -0.1,0.5 -1.5,-0.1q-1,-0.6 -2,0.3c-0.7,0.5 -1,0.5 -2.4,0.7h-1l-2,-1.3 -2.3,-1.3 -2.5,-1.1 -2.6,-1.5c-0.4,-0.2 -8.3,-2.4 -8.7,-2.4a42,42 0,0 1,3.4 11.7c0.6,4.3 1.5,9.9 1.8,10.7 0.8,2.4 2.2,4.6 6.1,9.7 3.7,4.8 8.1,10.7 8.4,11.4a25,25 0,0 1,1.6 5.8q0,0.3 -0.6,0.6 -1,0.1 -0.8,1.6 0,1 -2.1,3c-1,1 -1.3,1.2 -2,1.3 -1.1,0.2 -3.3,0.2 -4,0 -1.7,-0.5 -1.8,-0.6 -2,-1.2l-1,-1.3 -1.2,-1.7q-1.5,-2 -3.1,-2.8t-4.4,-2.8a11,11 0,0 1,-3 -3.6c-0.4,-0.7 -1,-1.8 -1.5,-2.4a13,13 0,0 1,-2.2 -4.6c-0.3,-1.4 -0.4,-1.7 -0.4,-5l-0.2,-11c-0.1,-8.1 -0.2,-8.3 -1,-11.5 -0.4,-1.6 -2.7,-9.3 -2.9,-9.4l-2,-0.2c-1.6,-0.2 -2.2,-0.2 -3.7,0q-1.8,0.4 -3.4,0.2l-1.6,0.1a234,234 0,0 1,4.9 22.7,44 44,0 0,1 0.1,9.9c-0.3,2.6 -0.6,4 -1.4,6a5,5 0,0 1,-1.6 2.5q-1.4,1.3 -1.3,2.2c0,0.6 -1.2,2.2 -1.8,2.6l-1,1 -0.8,1 -1,0.8q-1,1 -3,1.2c-2.3,0.1 -2.5,0 -5.2,-2.7l-3.7,-3.2q-1.4,-0.9 -1.5,-1.5c-0.3,-0.6 -2,-2.2 -3.3,-2.8q-0.9,-0.5 -1,-0.8 -0.2,-0.4 -1.1,-1l-1.2,-1.3 -0.6,-0.8q-0.4,-0.3 -0.7,-0.9l-0.8,-0.8q-0.4,-0.2 -0.3,-0.8v-0.8q-0.5,-0.4 0,-0.3l0.3,-0.1 -1.3,-1.7 -1.3,-1.7 2.1,1a91,91 0,0 0,9.8 4.2c2,0.9 2.7,1 3.4,0.5 1,-0.7 1,-1 1,-6.7 0.2,-5.7 0.4,-7.4 1,-12.6 0.3,-3 0.4,-4.2 0.4,-8.3l-0.1,-4.9a28,28 0,0 0,-7.2 1.2l-3.3,0.8 -2.9,0.6 -4,0.6 -3,0.3 -0.6,0.6 -1.6,1.1c-1,0.6 -1.2,0.8 -1.4,2q-0.7,4 0.8,9.4c0.6,2 0.9,2.5 1.9,4a14,14 0,0 1,2.4 8c0.1,2 0.1,2.3 0.5,3q0.5,0.8 0.5,1.1a8,8 0,0 1,-0.8 3.4l-0.5,1.1c-0.1,0.7 -1.4,1.8 -3,2.7a75,75 0,0 0,-7.4 7,51 51,0 0,1 -7.3,7q-1.3,1 -2.6,1.1l-1.4,0.3q-1.4,0.5 -2.3,0l-0.5,-0.4 -1,0.6c-1.2,0.7 -1.5,0.8 -1.8,0.5m94.4,-71 l-0.6,-0.3c-0.3,0.1 0.2,0.5 0.6,0.5q0.5,0 0,-0.2m-11,-9.7q0.2,-0.2 -0.1,-0.2l-0.5,-0.2q-0.2,-0.4 -0.2,0t0.4,0.5zM103.5,74.3q0.3,-0.1 0.2,-0.2c-0.2,-0.2 -0.8,0 -0.7,0.2q0.2,0.3 0.5,0m19.2,-1q1,0 1,-0.5c0,-0.4 0,-0.4 0.8,-0.4l1.9,0.1q1.4,0.1 -0.4,-0.2 -0.4,0 -0.4,-0.3h1l1,-0.1 -0.5,-0.1 -1,-0.2c-0.9,-0.2 -1,-0.2 -1.6,0.1 -0.5,0.3 -0.8,0.4 -1.7,0.3h-1.3q-0.2,0.3 -0.6,0c-0.4,-0.4 -0.7,-0.4 -2,-0.4h-1.5l2.6,0.5 2.6,0.6c0.2,0.2 -0.6,0.1 -3.3,-0.3l-2.3,-0.1q3,0.4 4,1c0.8,0.3 0.7,0.3 1.7,0\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#fff\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"M108.3,76q0,-0.5 0.6,-0.6 0.4,0 0.8,0.5 0.5,0.3 -0.6,0.3zM94.3,67.5q0.6,-0.6 2,-0.7 0.8,-0.2 0,0.4 -0.7,0.7 -1.7,0.7L94,67.9zM136.5,64.7v-1a3,3 0,0 0,-1 -2.7c-0.5,-0.6 -3.2,-2 -5,-2.6 -4,-1.4 -15,-2.5 -29.8,-3a156,156 0,0 1,-18.4 -1.2h-1.2q0,-0.2 -0.6,-0.2 -1.2,-0.1 -0.5,-0.5l-1.9,-0.4c-2.5,-0.4 -2.4,-0.4 -2.4,-0.1l-0.1,0.2q-0.2,0 -0.2,-0.2 0,-0.1 -0.2,0 -0.6,0.4 -0.7,-0.2 0.1,-0.3 -1.8,-0.7l-1.4,-0.2L71,51.9l0.4,0.2q1,0 1.1,0.4 0.1,0.3 -0.8,0.2 -2.2,-0.3 -2.2,-0.8 0,-0.2 0.2,-0.2 0.4,0 0,-0.2l-0.5,-0.1 -0.5,-0.2c-0.1,-0.2 -1.6,-0.7 -3.3,-1.2 -8,-2.5 -11,-4 -13.8,-7.1 -1,-1 -2.2,-2.7 -2.2,-3s0.5,0 0.6,0.3q0.5,0.8 2,1.9l1,1 0.6,0.4 1,0.8c1,0.7 3.1,1.9 3.4,1.8l-0.5,-0.5q-1,-0.7 -3.4,-4l-1,-1.5v0.9q0,1 -0.3,0.5l-0.7,-1.7q-0.4,-1.5 -1.1,-2.2 -1.1,-1.4 -1,-1.5c0.2,-0.2 1.2,0.9 1.5,1.5l0.8,1.1 0.5,0.6v-0.5c0,-0.6 0.1,-0.6 1.8,0.2q3.5,1.8 5.8,1.9 1.5,0 3.2,0.5A51,51 0,0 0,78 42.8l5.5,0.2 -9.4,-0.9c0.2,-0.1 0.9,-0.2 3.6,-0.1l4,-0.1q0.7,-0.3 7,-0.6 2.3,-0.2 3,-0.5 1.3,-0.4 5.5,-1c1.7,-0.4 2.2,-0.5 2.8,-1a2,2 0,0 1,1.5 -0.5l1.4,-0.1q0.8,-0.1 5.4,0.1c2.7,0.2 5.1,0.3 5.7,0.2a49,49 0,0 1,13.8 1.5l2.5,0.9q3.3,1 5.8,3.8c1.6,1.6 1.9,2.3 3.2,6.6 1,3.3 1,3.4 1.1,5.6 0.2,3.4 0,4.2 -1.7,5.6q-0.7,0.6 -0.7,1c0,0.8 -1,1.7 -1.4,1.2\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#fff\"\n      android:fillType=\"nonZero\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/brand_suwayomi.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"192dp\"\n    android:height=\"192dp\"\n    android:viewportWidth=\"192\"\n    android:viewportHeight=\"192\">\n  <path\n      android:pathData=\"M0,0h192v192H0z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#35d4d5\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"M96,96m-68.64,0a68.64,68.64 0,1 1,137.28 0a68.64,68.64 0,1 1,-137.28 0\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#1a1a1d\"\n      android:fillType=\"evenOdd\"/>\n  <path\n      android:pathData=\"m54.64,74.88 l27.46,-0.35c5.81,0 5.81,0 7.92,1.41a10.56,10.56 0,0 1,2.46 5.1q-0.53,2.46 -2.29,4.22l-5.81,7.92c-0.88,1.23 -0.88,1.23 -1.23,2.82l0.7,0.18c4.05,2.29 7.74,5.98 11.09,9.33l2.64,2.46q1.06,1.41 1.23,3.17l-4.05,4.58q-1.76,1.06 -3.52,0.7l-2.64,-2.29 -6.69,-7.04 -4.58,-4.05q-2.46,1.23 -4.22,2.99c-12.67,11.97 -12.67,11.97 -17.95,11.62a12.32,12.32 0,0 1,-4.93 -3.52l-0.35,-2.99q2.64,-2.64 5.98,-4.4A66.88,66.88 67.16,0 0,78.4 84.03L56.93,84.03c-0.88,0 -0.88,0 -1.76,-0.88q-0.7,-2.99 -0.53,-5.81z\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#fdfdfd\"\n      android:fillType=\"nonZero\"/>\n  <path\n      android:pathData=\"m146.34,74.53 l2.82,2.82c-1.06,14.08 -9.5,28.34 -19.18,38.37 -2.46,2.46 -3.17,3.34 -5.28,3.7q-2.46,-0.35 -4.58,-1.41l-2.29,-1.23c-0.35,-2.11 -0.35,-2.11 0.53,-3.34l5.63,-5.28c7.04,-7.04 10.91,-16.37 13.2,-25.7L116.77,82.45l0,13.9q-1.41,0.7 -2.82,0.53c-6.69,0 -6.69,0 -7.04,-0.53L106.91,72.94l32.38,-0.53c2.82,0 5.1,0 7.04,2.11\"\n      android:strokeLineJoin=\"round\"\n      android:fillColor=\"#f9f9f9\"\n      android:fillType=\"nonZero\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/cover_error.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--suppress AndroidElementNotAllowed -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:shape=\"rectangle\">\n    <item>\n        <color android:color=\"@color/cover_placeholder\" />\n    </item>\n\n    <item\n        android:top=\"48dp\"\n        android:bottom=\"48dp\"\n        android:left=\"48dp\"\n        android:right=\"48dp\">\n        <vector\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"24\"\n            android:viewportHeight=\"24\">\n            <path\n                android:fillColor=\"@color/cover_placeholder\"\n                android:pathData=\"M21,5v6.59l-2.29,-2.3c-0.39,-0.39 -1.03,-0.39 -1.42,0L14,12.59 10.71,9.3c-0.39,-0.39 -1.02,-0.39 -1.41,0L6,12.59 3,9.58L3,5c0,-1.1 0.9,-2 2,-2h14c1.1,0 2,0.9 2,2zM18,11.42l3,3.01L21,19c0,1.1 -0.9,2 -2,2L5,21c-1.1,0 -2,-0.9 -2,-2v-6.58l2.29,2.29c0.39,0.39 1.02,0.39 1.41,0l3.3,-3.3 3.29,3.29c0.39,0.39 1.02,0.39 1.41,0l3.3,-3.28z\"/>\n        </vector>\n    </item>\n\n</layer-list>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_book_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M18,2L6,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,4c0,-1.1 -0.9,-2 -2,-2zM9,4h2v5l-1,-0.75L9,9L9,4zM18,20L6,20L6,4h1v9l3,-2.25L13,13L13,4h5v16z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_close_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_crop_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17,15h2V7c0,-1.1 -0.9,-2 -2,-2H9v2h8v8zM7,17V1H5v4H1v2h4v10c0,1.1 0.9,2 2,2h10v4h2v-4h4v-2H7z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_crop_off_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M7,1l-2,0l0,1.18l2,2l0,-3.18z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17,7v7.18l0.82,0.82H19V7a2.0059,2.0059 0,0 0,-2 -2H9V6.18L9.82,7Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M19.0001,19l-2,-2h0L2.1,2.1 0.68,3.51 2.1707,5H1V7H4.1718L5,7.8278V17a2.0059,2.0059 0,0 0,2 2h9.1778L17,19.8218V23h2V21.8207L20.49,23.31 21.9,21.9l-2.9,-2.9ZM7,17V9.8268L14.1768,17Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M19.82,17l2,2l1.18,0l0,-2l-3.18,0z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_done_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_done_prev_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M22,18l-3,0l0,-4l-2,0l0,4l-3,0l4,4z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_download_chapter_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n  <path\n      android:pathData=\"M11.99,2C6.47,2 2,6.48 2,12C2,17.52 6.47,22 11.99,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 11.99,2zM12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4z\"\n      android:fillColor=\"#000000\"/>\n  <path\n      android:pathData=\"M18.041,12 L16.976,10.935 12.755,15.149L12.755,5.959L11.245,5.959L11.245,15.149L7.031,10.928 5.959,12l6.041,6.041z\"\n      android:fillColor=\"#000000\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_drag_handle_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M20,9H4v2h16V9zM4,15h16v-2H4V15z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_extension_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M20.5,11H19V7c0,-1.1 -0.9,-2 -2,-2h-4V3.5C13,2.12 11.88,1 10.5,1S8,2.12 8,3.5V5H4c-1.1,0 -1.99,0.9 -1.99,2v3.8H3.5c1.49,0 2.7,1.21 2.7,2.7s-1.21,2.7 -2.7,2.7H2V20c0,1.1 0.9,2 2,2h3.8v-1.5c0,-1.49 1.21,-2.7 2.7,-2.7 1.49,0 2.7,1.21 2.7,2.7V22H17c1.1,0 2,-0.9 2,-2v-4h1.5c1.38,0 2.5,-1.12 2.5,-2.5S21.88,11 20.5,11z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_folder_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_glasses_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M3,10C2.76,10 2.55,10.09 2.41,10.25C2.27,10.4 2.21,10.62 2.24,10.86L2.74,13.85C2.82,14.5 3.4,15 4,15H7C7.64,15 8.36,14.44 8.5,13.82L9.56,10.63C9.6,10.5 9.57,10.31 9.5,10.19C9.39,10.07 9.22,10 9,10H3M7,17H4C2.38,17 0.96,15.74 0.76,14.14L0.26,11.15C0.15,10.3 0.39,9.5 0.91,8.92C1.43,8.34 2.19,8 3,8H9C9.83,8 10.58,8.35 11.06,8.96C11.17,9.11 11.27,9.27 11.35,9.45C11.78,9.36 12.22,9.36 12.64,9.45C12.72,9.27 12.82,9.11 12.94,8.96C13.41,8.35 14.16,8 15,8H21C21.81,8 22.57,8.34 23.09,8.92C23.6,9.5 23.84,10.3 23.74,11.11L23.23,14.18C23.04,15.74 21.61,17 20,17H17C15.44,17 13.92,15.81 13.54,14.3L12.64,11.59C12.26,11.31 11.73,11.31 11.35,11.59L10.43,14.37C10.07,15.82 8.56,17 7,17M15,10C14.78,10 14.61,10.07 14.5,10.19C14.42,10.31 14.4,10.5 14.45,10.7L15.46,13.75C15.64,14.44 16.36,15 17,15H20C20.59,15 21.18,14.5 21.25,13.89L21.76,10.82C21.79,10.62 21.73,10.4 21.59,10.25C21.45,10.09 21.24,10 21,10H15Z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_info_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M11,7h2v2h-2zM11,11h2v6h-2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_background.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"108dp\"\n    android:height=\"108dp\"\n    android:viewportWidth=\"432\"\n    android:viewportHeight=\"432\">\n  <group>\n    <clip-path\n        android:pathData=\"M0,0h432v432h-432z\"/>\n    <path\n        android:pathData=\"M0,0h432v432h-432z\"\n        android:fillColor=\"#FAFAFA\"/>\n    <path\n        android:pathData=\"M322.13,215.5C322.13,272.66 274.64,319 216.07,319C157.49,319 110,272.66 110,215.5C110,158.34 157.49,112 216.07,112C274.64,112 322.13,158.34 322.13,215.5Z\"\n        android:fillColor=\"#F2FAFF\"/>\n    <path\n        android:pathData=\"M216.07,299.59C263.66,299.59 302.24,261.94 302.24,215.5C302.24,169.06 263.66,131.41 216.07,131.41C168.47,131.41 129.89,169.06 129.89,215.5C129.89,261.94 168.47,299.59 216.07,299.59ZM216.07,319C274.64,319 322.13,272.66 322.13,215.5C322.13,158.34 274.64,112 216.07,112C157.49,112 110,158.34 110,215.5C110,272.66 157.49,319 216.07,319Z\"\n        android:fillColor=\"#0058A0\"\n        android:fillType=\"evenOdd\"/>\n  </group>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_foreground.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"108dp\"\n    android:height=\"108dp\"\n    android:viewportWidth=\"432\"\n    android:viewportHeight=\"432\">\n  <path\n      android:pathData=\"M182.03,188.7L181.33,172.69C183.42,173.09 185.91,173.19 191.57,173.19C198.44,173.19 207.49,172.79 212.16,172.19C214.15,171.99 214.95,171.7 216.24,171L226.98,180.15C225.98,181.54 225.68,182.14 224.59,184.92C223.7,187.11 219.62,199.74 218.03,205.11C225.39,206.6 229.46,207.7 235.03,209.98C235.73,205.11 235.83,202.52 235.83,193.67C235.83,191.39 235.73,190.09 235.43,188.01L252.74,188.6C252.24,190.99 252.14,191.98 252.04,195.86C251.64,205.21 251.24,209.68 250.25,216.45C257.11,219.93 257.11,219.93 260.59,221.82C262.38,222.81 262.78,223.01 263.97,223.41L258.2,242.01C255.42,239.52 251.54,236.83 245.87,233.65C240.9,245.49 232.65,254.14 220.12,261C215.94,255.43 212.76,252.05 207.68,248.07C215.04,244.59 218.43,242.4 222.3,238.72C226.08,235.04 228.57,231.46 230.96,226.09C224.59,223.21 220.51,221.92 213.45,220.43C209.38,232.56 206.09,240.32 203.21,244.99C199.33,251.25 194.06,254.54 187.99,254.54C183.32,254.54 178.55,252.45 175.07,248.87C171.09,244.79 169,239.12 169,232.56C169,222.81 173.67,214.36 181.83,209.09C187.1,205.71 192.67,204.21 201.52,203.72C203.31,197.85 204.8,192.78 206.19,187.11C201.82,187.51 196.35,187.81 189.68,188.1C186.1,188.2 184.91,188.3 182.03,188.7ZM197.14,218.93C192.47,219.73 189.68,221.22 187.2,224.4C185.31,226.59 184.41,229.18 184.41,231.96C184.41,235.04 185.91,237.33 187.8,237.33C190.08,237.33 192.67,232.16 197.14,218.93Z\"\n      android:fillColor=\"#031019\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_monochrome.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"108dp\"\n    android:height=\"108dp\"\n    android:viewportWidth=\"432\"\n    android:viewportHeight=\"432\">\n  <path\n      android:fillColor=\"#FFFFFFFF\"\n      android:pathData=\"M162.3,173.59L161.22,148.63C164.47,149.25 168.35,149.41 177.18,149.41C187.87,149.41 201.98,148.79 209.26,147.86C212.36,147.55 213.6,147.09 215.61,146L232.35,160.26C230.8,162.43 230.34,163.36 228.63,167.7C227.24,171.11 220.88,190.79 218.4,199.16C229.87,201.48 236.22,203.18 244.9,206.75C245.99,199.16 246.14,195.13 246.14,181.33C246.14,177.77 245.99,175.76 245.52,172.5L272.49,173.43C271.71,177.15 271.56,178.7 271.4,184.74C270.78,199.31 270.16,206.29 268.61,216.82C279.31,222.25 279.31,222.25 284.73,225.19C287.52,226.74 288.14,227.05 290,227.67L281.01,256.65C276.67,252.78 270.63,248.59 261.8,243.63C254.05,262.08 241.18,275.56 221.66,286.25C215.15,277.57 210.19,272.3 202.29,266.11C213.75,260.68 219.02,257.27 225.07,251.54C230.96,245.8 234.83,240.22 238.55,231.85C228.63,227.36 222.28,225.35 211.27,223.02C204.92,241.93 199.8,254.02 195.31,261.3C189.27,271.06 181.05,276.18 171.6,276.18C164.32,276.18 156.88,272.92 151.45,267.35C145.25,260.99 142,252.16 142,241.93C142,226.74 149.28,213.57 161.99,205.35C170.21,200.09 178.88,197.76 192.68,196.99C195.47,187.84 197.79,179.94 199.96,171.11C193.14,171.73 184.62,172.19 174.24,172.65C168.66,172.81 166.8,172.96 162.3,173.59ZM185.86,220.7C178.57,221.94 174.24,224.26 170.36,229.22C167.42,232.63 166.02,236.66 166.02,241C166.02,245.8 168.35,249.37 171.29,249.37C174.85,249.37 178.88,241.31 185.86,220.7Z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_mihon.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"256dp\"\n    android:height=\"243.89189dp\"\n    android:viewportWidth=\"148\"\n    android:viewportHeight=\"141\">\n  <path\n      android:fillColor=\"#FFFFFFFF\"\n      android:pathData=\"M20.3,27.59L19.22,2.63C22.47,3.25 26.35,3.41 35.18,3.41C45.87,3.41 59.97,2.79 67.26,1.86C70.36,1.55 71.6,1.08 73.61,0L90.35,14.26C88.8,16.43 88.34,17.36 86.63,21.7C85.24,25.11 78.88,44.79 76.4,53.16C87.87,55.48 94.22,57.19 102.9,60.75C103.99,53.16 104.14,49.13 104.14,35.33C104.14,31.77 103.99,29.75 103.52,26.5L130.49,27.43C129.71,31.15 129.56,32.7 129.4,38.74C128.78,53.31 128.16,60.28 126.61,70.82C137.31,76.25 137.31,76.25 142.73,79.19C145.52,80.74 146.14,81.05 148,81.67L139.01,110.65C134.67,106.78 128.63,102.59 119.79,97.63C112.05,116.07 99.18,129.56 79.66,140.25C73.15,131.57 68.19,126.3 60.28,120.11C71.75,114.68 77.02,111.27 83.07,105.54C88.96,99.8 92.83,94.22 96.55,85.86C86.63,81.36 80.28,79.35 69.27,77.02C62.92,95.93 57.81,108.02 53.31,115.3C47.27,125.06 39.05,130.18 29.6,130.18C22.32,130.18 14.88,126.92 9.45,121.35C3.25,114.99 0,106.16 0,95.93C0,80.74 7.28,67.57 19.99,59.35C28.21,54.09 36.88,51.76 50.68,50.99C53.47,41.84 55.79,33.94 57.96,25.11C51.14,25.73 42.62,26.19 32.23,26.66C26.66,26.81 24.8,26.97 20.3,27.59ZM43.86,74.7C36.57,75.94 32.23,78.26 28.36,83.22C25.42,86.63 24.02,90.66 24.02,95C24.02,99.8 26.35,103.37 29.29,103.37C32.85,103.37 36.88,95.31 43.86,74.7Z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_mihon_splash.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item\n        android:width=\"72dp\"\n        android:height=\"72dp\"\n        android:drawable=\"@drawable/ic_mihon\"\n        android:gravity=\"center\" />\n</layer-list>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_overflow_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_pause_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_photo_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_play_arrow_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M8,5v14l11,-7z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_reader_continuous_vertical_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17.3159,1h-10a2.0059,2.0059 0,0 0,-2 2L5.3159,21a2.0059,2.0059 0,0 0,2 2h10a2.0059,2.0059 0,0 0,2 -2L19.3159,3A2.0059,2.0059 0,0 0,17.3159 1ZM17.3159,21h-10L7.3159,3h10Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M11.3083,5h2v5.5h-2z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M15.308,16l-2,0l0,-4.5l-2,0l0,4.5l-2,0l3,3l3,-3z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_reader_default_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M6.9906,18L6.9906,6h12L18.9906,3a2.0059,2.0059 0,0 0,-2 -2h-10a2.0059,2.0059 0,0 0,-2 2L4.9906,21a2.0059,2.0059 0,0 0,2 2h10a2.0059,2.0059 0,0 0,2 -2L18.9906,18h-12ZM6.9906,3h10L16.9906,4h-10ZM16.9906,21h-10L6.9906,20h10Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M21.7706,12.44l-0.02,0.03a3.5546,3.5546 0,0 0,0.05 -0.47,3.9031 3.9031,0 0,0 -0.05,-0.48l0.02,0.03 0.85,-0.68a0.5068,0.5068 0,0 0,0.12 -0.64l-0.84,-1.46a0.4986,0.4986 0,0 0,-0.61 -0.22l-1.01,0.39 0.0099,0.04a3.6135,3.6135 0,0 0,-0.8 -0.48l-0.17,-1.07a0.4879,0.4879 0,0 0,-0.49 -0.43h-1.68a0.4876,0.4876 0,0 0,-0.49 0.42l-0.17,1.08a3.6149,3.6149 0,0 0,-0.8 0.48l0.02,-0.03 -1.01,-0.39a0.4878,0.4878 0,0 0,-0.61 0.22l-0.84,1.46a0.5068,0.5068 0,0 0,0.12 0.64l0.85,0.68 0.02,-0.03a3.9148,3.9148 0,0 0,-0.05 0.48,3.915 3.915,0 0,0 0.05,0.48l-0.02,-0.03 -0.85,0.68a0.5068,0.5068 0,0 0,-0.12 0.64l0.84,1.46a0.4985,0.4985 0,0 0,0.61 0.22l1.01,-0.39 -0.02,-0.03a4.4991,4.4991 0,0 0,0.8 0.46l0.17,1.08a0.4876,0.4876 0,0 0,0.49 0.42h1.68a0.4876,0.4876 0,0 0,0.49 -0.42l0.17,-1.08a3.6138,3.6138 0,0 0,0.8 -0.48l-0.02,0.03 1.02,0.39a0.4879,0.4879 0,0 0,0.61 -0.22l0.84,-1.46a0.5068,0.5068 0,0 0,-0.12 -0.64ZM17.9906,14a2,2 0,1 1,2 -2A2.0059,2.0059 0,0 1,17.9906 14Z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_reader_ltr_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17.3159,18h-10L7.3159,16h-2v5a2.0059,2.0059 0,0 0,2 2h10a2.0059,2.0059 0,0 0,2 -2L19.3159,16h-2ZM17.3159,21h-10L7.3159,20h10Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M7.3159,6h10L17.3159,8h2L19.3159,3a2.0059,2.0059 0,0 0,-2 -2h-10a2.0059,2.0059 0,0 0,-2 2L5.3159,8h2ZM7.3159,3h10L17.3159,4h-10Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M22.311,12l-3,-3l0,2l-11.99,0l0,2l11.99,0l0,2l3,-3z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M2.3206,11h1.5v2h-1.5z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M4.8206,11h1.5v2h-1.5z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_reader_rtl_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M7,6H17V8h2V3a2.0059,2.0059 0,0 0,-2 -2H7A2.0059,2.0059 0,0 0,5 3V8H7ZM7,3H17V4H7Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17,18L7,18L7,16L5,16v5a2.0059,2.0059 0,0 0,2 2L17,23a2.0059,2.0059 0,0 0,2 -2L19,16L17,16ZM17,21L7,21L7,20L17,20Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M5.005,13l11.99,0l0,-2l-11.99,0l0,-2l-3,3l3,3l0,-2z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M20.4953,11h1.5v2h-1.5z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17.9953,11h1.5v2h-1.5z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_reader_vertical_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17,1L7,1A2.0059,2.0059 0,0 0,5 3L5,21a2.0059,2.0059 0,0 0,2 2L17,23a2.0059,2.0059 0,0 0,2 -2L19,3A2.0059,2.0059 0,0 0,17 1ZM17,3v1.0462L7,4.0462L7,3ZM17,6.0462v12L7,18.0462v-12ZM7,21v-0.9538L17,20.0462L17,21Z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M9,13l3,3l3,-3l-2,0l0,-5l-2,0l0,5l-2,0z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_reader_webtoon_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M11.992,19l3,-3l-2,0l0,-11l-2,0l0,11l-2,0l3,3z\" />\n    <path\n        android:fillColor=\"#000\"\n        android:pathData=\"M17,1L7,1A2.0059,2.0059 0,0 0,5 3L5,21a2.0059,2.0059 0,0 0,2 2L17,23a2.0059,2.0059 0,0 0,2 -2L19,3A2.0059,2.0059 0,0 0,17 1ZM17,21L7,21L7,3L17,3Z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_refresh_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_share_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n  <path\n      android:fillColor=\"#FFF\"\n      android:pathData=\"M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92s2.92,-1.31 2.92,-2.92c0,-1.61 -1.31,-2.92 -2.92,-2.92zM18,4c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM6,13c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM18,20.02c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_system_update_alt_white_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M12,16.5l4,-4h-3v-9h-2v9L8,12.5l4,4zM21,3.5h-6v1.99h6v14.03L3,19.52L3,5.49h6L9,3.5L3,3.5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2v-14c0,-1.1 -0.9,-2 -2,-2z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_tab_close_24px.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"960\"\n    android:viewportHeight=\"960\"\n    android:tint=\"?attr/colorControlNormal\">\n  <path\n      android:fillColor=\"@android:color/white\"\n      android:pathData=\"M476,540L560,456L644,540L700,484L616,400L700,316L644,260L560,344L476,260L420,316L504,400L420,484L476,540ZM320,720Q287,720 263.5,696.5Q240,673 240,640L240,160Q240,127 263.5,103.5Q287,80 320,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,640Q880,673 856.5,696.5Q833,720 800,720L320,720ZM320,640L800,640Q800,640 800,640Q800,640 800,640L800,160Q800,160 800,160Q800,160 800,160L320,160Q320,160 320,160Q320,160 320,160L320,640Q320,640 320,640Q320,640 320,640ZM160,880Q127,880 103.5,856.5Q80,833 80,800L80,240L160,240L160,800Q160,800 160,800Q160,800 160,800L720,800L720,880L160,880ZM320,160L320,160Q320,160 320,160Q320,160 320,160L320,640Q320,640 320,640Q320,640 320,640L320,640Q320,640 320,640Q320,640 320,640L320,160Q320,160 320,160Q320,160 320,160Z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_warning_white_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FFF\"\n        android:pathData=\"M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/line_divider.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:shape=\"rectangle\">\n\n    <size\n        android:width=\"1dp\"\n        android:height=\"1dp\" />\n\n    <solid android:color=\"?android:attr/divider\" />\n\n</shape>\n"
  },
  {
    "path": "app/src/main/res/drawable/material_popup_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item>\n        <shape>\n            <solid android:color=\"?attr/colorSurface\" />\n            <corners android:radius=\"@dimen/m3_alert_dialog_corner_size\" />\n        </shape>\n    </item>\n    <item>\n        <shape>\n            <solid android:color=\"@color/m3_popupmenu_overlay_color\" />\n            <corners android:radius=\"@dimen/m3_alert_dialog_corner_size\" />\n        </shape>\n    </item>\n</layer-list>\n"
  },
  {
    "path": "app/src/main/res/drawable/sc_collections_bookmark_48dp.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    tools:keep=\"@drawable/sc_collections_bookmark_48dp\">\n<background android:drawable=\"@color/accent_blue\"/>\n<foreground>\n    <vector\n        android:width=\"120dp\"\n        android:height=\"120dp\"\n        android:viewportWidth=\"56.0\"\n        android:viewportHeight=\"56.0\">\n        <group\n            android:translateX=\"16\"\n            android:translateY=\"16\">\n            <path\n                android:fillColor=\"#FFF\"\n                android:pathData=\"M4,6H2v14c0,1.1 0.9,2 2,2h14v-2H4V6z\"/>\n            <path\n                android:fillColor=\"#FFF\"\n                android:pathData=\"M20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM20,12l-2.5,-1.5L15,12L15,4h5v8z\"/>\n        </group>\n    </vector>\n</foreground>\n</adaptive-icon>\n"
  },
  {
    "path": "app/src/main/res/drawable/sc_explore_48dp.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    tools:keep=\"@drawable/sc_explore_48dp\">\n<background android:drawable=\"@color/accent_blue\"/>\n<foreground>\n    <vector\n        android:width=\"120dp\"\n        android:height=\"120dp\"\n        android:viewportWidth=\"56.0\"\n        android:viewportHeight=\"56.0\">\n        <group\n            android:translateX=\"16\"\n            android:translateY=\"16\">\n            <path\n                android:fillColor=\"#FFF\"\n                android:pathData=\"M12,10.9c-0.61,0 -1.1,0.49 -1.1,1.1s0.49,1.1 1.1,1.1c0.61,0 1.1,-0.49 1.1,-1.1s-0.49,-1.1 -1.1,-1.1zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM14.19,14.19L6,18l3.81,-8.19L18,6l-3.81,8.19z\" />\n        </group>\n    </vector>\n</foreground>\n</adaptive-icon>\n"
  },
  {
    "path": "app/src/main/res/drawable/sc_history_48dp.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    tools:keep=\"@drawable/sc_history_48dp\">\n<background android:drawable=\"@color/accent_blue\"/>\n<foreground>\n    <vector\n        android:width=\"120dp\"\n        android:height=\"120dp\"\n        android:viewportWidth=\"56.0\"\n        android:viewportHeight=\"56.0\">\n        <group\n            android:translateX=\"16\"\n            android:translateY=\"16\">\n            <path\n                android:fillColor=\"#FFF\"\n                android:pathData=\"M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z\" />\n        </group>\n    </vector>\n</foreground>\n</adaptive-icon>\n"
  },
  {
    "path": "app/src/main/res/drawable/sc_new_releases_48dp.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    tools:keep=\"@drawable/sc_new_releases_48dp\">\n<background android:drawable=\"@color/accent_blue\"/>\n<foreground>\n    <vector\n        android:width=\"120dp\"\n        android:height=\"120dp\"\n        android:viewportWidth=\"56.0\"\n        android:viewportHeight=\"56.0\">\n        <group\n            android:translateX=\"16\"\n            android:translateY=\"16\">\n            <path\n                android:fillColor=\"#FFF\"\n                android:pathData=\"M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z\" />\n        </group>\n    </vector>\n</foreground>\n</adaptive-icon>\n"
  },
  {
    "path": "app/src/main/res/layout/download_header.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<com.google.android.material.card.MaterialCardView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/container\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:layout_marginTop=\"8dp\"\n    app:cardBackgroundColor=\"?android:attr/colorBackground\"\n    app:cardElevation=\"0dp\"\n    app:cardForegroundColor=\"@color/draggable_card_foreground\">\n\n    <LinearLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\">\n\n        <TextView\n            android:id=\"@+id/title\"\n            style=\"@style/TextAppearance.Tachiyomi.SectionHeader\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:paddingHorizontal=\"16dp\"\n            android:paddingVertical=\"8dp\"\n            android:layout_weight=\"1\"\n            android:layout_gravity=\"center_vertical\"\n            tools:text=\"Title\" />\n\n        <ImageView\n            android:id=\"@+id/reorder\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_gravity=\"start\"\n            android:layout_marginEnd=\"4dp\"\n            android:paddingHorizontal=\"10dp\"\n            android:paddingVertical=\"8dp\"\n            android:scaleType=\"center\"\n            app:srcCompat=\"@drawable/ic_drag_handle_24dp\"\n            app:tint=\"?android:attr/textColorHint\"\n            tools:ignore=\"ContentDescription\" />\n\n    </LinearLayout>\n\n</com.google.android.material.card.MaterialCardView>\n"
  },
  {
    "path": "app/src/main/res/layout/download_item.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<com.google.android.material.card.MaterialCardView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/container\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    app:cardBackgroundColor=\"?android:attr/colorBackground\"\n    app:cardElevation=\"0dp\"\n    app:cardForegroundColor=\"@color/draggable_card_foreground\">\n\n    <androidx.constraintlayout.widget.ConstraintLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:paddingVertical=\"4dp\">\n\n        <ImageView\n            android:id=\"@+id/reorder\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_alignParentStart=\"true\"\n            android:layout_gravity=\"start\"\n            android:padding=\"16dp\"\n            android:scaleType=\"center\"\n            app:layout_constraintBottom_toBottomOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            app:srcCompat=\"@drawable/ic_drag_handle_24dp\"\n            app:tint=\"?android:attr/textColorHint\"\n            tools:ignore=\"ContentDescription\" />\n\n        <TextView\n            android:id=\"@+id/manga_full_title\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginEnd=\"8dp\"\n            android:layout_toEndOf=\"@id/reorder\"\n            android:ellipsize=\"end\"\n            android:maxLines=\"1\"\n            android:textAppearance=\"?attr/textAppearanceBodyMedium\"\n            app:layout_constraintEnd_toStartOf=\"@+id/download_progress_text\"\n            app:layout_constraintStart_toEndOf=\"@+id/reorder\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            tools:text=\"Manga title\" />\n\n        <TextView\n            android:id=\"@+id/chapter_title\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"2dp\"\n            android:layout_toEndOf=\"@id/reorder\"\n            android:ellipsize=\"end\"\n            android:maxLines=\"1\"\n            android:textAppearance=\"?attr/textAppearanceBodyMedium\"\n            android:textSize=\"12sp\"\n            app:layout_constraintEnd_toStartOf=\"@+id/menu\"\n            app:layout_constraintStart_toStartOf=\"@+id/manga_full_title\"\n            app:layout_constraintTop_toBottomOf=\"@+id/manga_full_title\"\n            tools:text=\"Chapter Title\" />\n\n        <com.google.android.material.progressindicator.LinearProgressIndicator\n            android:id=\"@+id/download_progress\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"8dp\"\n            android:layout_marginBottom=\"4dp\"\n            app:layout_constraintBottom_toBottomOf=\"parent\"\n            app:layout_constraintEnd_toStartOf=\"@+id/menu\"\n            app:layout_constraintStart_toEndOf=\"@+id/reorder\"\n            app:layout_constraintTop_toBottomOf=\"@+id/chapter_title\" />\n\n        <TextView\n            android:id=\"@+id/download_progress_text\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_toEndOf=\"@id/manga_full_title\"\n            android:maxLines=\"1\"\n            android:textAppearance=\"?attr/textAppearanceBodyMedium\"\n            android:textColor=\"?android:textColorSecondary\"\n            android:textSize=\"12sp\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/manga_full_title\"\n            app:layout_constraintEnd_toStartOf=\"@+id/menu\"\n            app:layout_constraintTop_toTopOf=\"@+id/manga_full_title\"\n            tools:text=\"0/10\" />\n\n        <ImageButton\n            android:id=\"@+id/menu\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginEnd=\"4dp\"\n            android:layout_toEndOf=\"@id/download_progress_text\"\n            android:background=\"?attr/selectableItemBackgroundBorderless\"\n            android:contentDescription=\"@string/action_menu\"\n            android:paddingHorizontal=\"10dp\"\n            android:paddingVertical=\"16dp\"\n            app:layout_constraintBottom_toBottomOf=\"parent\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            app:srcCompat=\"@drawable/ic_overflow_24dp\"\n            app:tint=\"?attr/colorOnBackground\" />\n\n    </androidx.constraintlayout.widget.ConstraintLayout>\n\n</com.google.android.material.card.MaterialCardView>\n"
  },
  {
    "path": "app/src/main/res/layout/download_list.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.recyclerview.widget.RecyclerView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:clipToPadding=\"false\"\n    tools:listitem=\"@layout/download_item\" />\n"
  },
  {
    "path": "app/src/main/res/layout/pref_widget_switch_material.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<com.google.android.material.materialswitch.MaterialSwitch\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:id=\"@+id/switchWidget\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:focusable=\"false\"\n    android:clickable=\"false\"\n    android:background=\"@null\"/>\n"
  },
  {
    "path": "app/src/main/res/layout/reader_activity.xml",
    "content": "<FrameLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\">\n\n    <FrameLayout\n        android:id=\"@+id/reader_container\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\">\n\n        <FrameLayout\n            android:id=\"@+id/viewer_container\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"match_parent\"\n            android:descendantFocusability=\"blocksDescendants\" />\n\n    </FrameLayout>\n\n    <eu.kanade.tachiyomi.ui.reader.ReaderNavigationOverlayView\n        android:id=\"@+id/navigation_overlay\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        android:clickable=\"false\"\n        android:focusable=\"false\"\n        android:visibility=\"gone\" />\n\n    <androidx.compose.ui.platform.ComposeView\n        android:id=\"@+id/compose_overlay\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\" />\n\n</FrameLayout>\n"
  },
  {
    "path": "app/src/main/res/layout/reader_error.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:orientation=\"vertical\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:layout_gravity=\"center\"\n    android:gravity=\"center\">\n\n    <TextView\n        android:id=\"@+id/error_message\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_margin=\"8dp\"\n        android:text=\"@string/decode_image_error\"\n        android:textAppearance=\"?attr/textAppearanceBodyMedium\" />\n\n    <eu.kanade.tachiyomi.ui.reader.viewer.ReaderButton\n        android:id=\"@+id/action_retry\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_margin=\"8dp\"\n        android:text=\"@string/action_retry\" />\n\n    <eu.kanade.tachiyomi.ui.reader.viewer.ReaderButton\n        android:id=\"@+id/action_open_in_web_view\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_margin=\"8dp\"\n        android:text=\"@string/action_open_in_web_view\"\n        android:visibility=\"gone\" />\n\n</LinearLayout>\n"
  },
  {
    "path": "app/src/main/res/menu/download_single.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<menu xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item\n        android:id=\"@+id/move_to_top\"\n        android:title=\"@string/action_move_to_top\" />\n\n    <item\n        android:id=\"@+id/move_to_top_series\"\n        android:title=\"@string/action_move_to_top_all_for_series\" />\n\n    <item\n        android:id=\"@+id/move_to_bottom\"\n        android:title=\"@string/action_move_to_bottom\" />\n\n    <item\n        android:id=\"@+id/move_to_bottom_series\"\n        android:title=\"@string/action_move_to_bottom_all_for_series\" />\n\n    <item\n        android:id=\"@+id/cancel_download\"\n        android:title=\"@string/action_cancel\" />\n\n    <item\n        android:id=\"@+id/cancel_series\"\n        android:title=\"@string/cancel_all_for_series\" />\n\n</menu>\n"
  },
  {
    "path": "app/src/main/res/mipmap/ic_launcher.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <background android:drawable=\"@drawable/ic_launcher_background\"/>\n    <foreground android:drawable=\"@drawable/ic_launcher_foreground\"/>\n    <monochrome android:drawable=\"@drawable/ic_launcher_monochrome\"/>\n</adaptive-icon>\n"
  },
  {
    "path": "app/src/main/res/values/bools.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <bool name=\"lightStatusBar\">true</bool>\n    <bool name=\"lightNavigationBar\">false</bool>\n    <bool name=\"elevationOverlayEnabled\">false</bool>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/dimens.xml",
    "content": "<resources>\n    <dimen name=\"appwidget_background_radius\">16dp</dimen>\n    <dimen name=\"appwidget_inner_radius\">12dp</dimen>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/ids.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <item name=\"reader_pager\" type=\"id\"/>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <!--========-->\n    <!--Toolbars-->\n    <!--========-->\n\n    <style name=\"Theme.Tachiyomi.ActionButton.Overflow\" parent=\"Widget.AppCompat.ActionButton.Overflow\">\n        <item name=\"android:tint\">?attr/colorOnSurface</item>\n    </style>\n\n\n    <!--===========-->\n    <!--AlertDialog-->\n    <!--===========-->\n    <style name=\"ThemeOverlay.Tachiyomi.MaterialAlertDialog\" parent=\"ThemeOverlay.Material3.MaterialAlertDialog\">\n        <item name=\"android:layout\">@layout/m3_alert_dialog</item>\n        <item name=\"android:background\">@drawable/material_popup_background</item>\n        <item name=\"dialogCornerRadius\">@dimen/m3_alert_dialog_corner_size</item>\n    </style>\n\n\n    <!--===============-->\n    <!--Text Appearance-->\n    <!--===============-->\n    <style name=\"TextAppearance.Widget.Button\" parent=\"TextAppearance.Material3.TitleSmall\" />\n\n    <style name=\"TextAppearance.Widget.Menu\" parent=\"TextAppearance.AppCompat.Menu\">\n        <item name=\"android:textColor\">?attr/colorOnBackground</item>\n    </style>\n\n    <style name=\"TextAppearance.Tachiyomi.Preference.Secondary\" parent=\"TextAppearance.Material3.BodySmall\" />\n\n    <style name=\"TextAppearance.Tachiyomi.SectionHeader\" parent=\"TextAppearance.Material3.LabelLarge\">\n        <item name=\"android:textColor\">?android:attr/textColorSecondary</item>\n    </style>\n\n\n    <!--=======================-->\n    <!--Widgets.MaterialDivider-->\n    <!--=======================-->\n    <style name=\"Widget.Tachiyomi.MaterialDivider\" parent=\"Widget.Material3.MaterialDivider\">\n        <item name=\"dividerColor\">@color/divider_default</item>\n    </style>\n\n\n    <!--==============-->\n    <!--Widgets.Switch-->\n    <!--==============-->\n    <style name=\"Widget.Tachiyomi.Switch\" parent=\"Widget.Material3.CompoundButton.Switch\">\n        <item name=\"materialThemeOverlay\">@style/ThemeOverlay.Tachiyomi.Switch</item>\n    </style>\n\n    <style name=\"ThemeOverlay.Tachiyomi.Switch\" parent=\"\">\n        <item name=\"elevationOverlayEnabled\">@bool/elevationOverlayEnabled</item>\n    </style>\n\n\n    <!--===========-->\n    <!--Preferences-->\n    <!--===========-->\n    <style name=\"PreferenceThemeOverlay.Tachiyomi\">\n        <item name=\"preferenceCategoryTitleTextAppearance\">?attr/textAppearanceBodyMedium</item>\n        <item name=\"switchPreferenceCompatStyle\">@style/PreferenceThemeOverlay.Tachiyomi.SwitchPreferenceCompat</item>\n    </style>\n\n    <style name=\"PreferenceThemeOverlay.Tachiyomi.SwitchPreferenceCompat\" parent=\"Preference.SwitchPreferenceCompat.Material\">\n        <item name=\"android:widgetLayout\">@layout/pref_widget_switch_material</item>\n    </style>\n\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/themes.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources xmlns:tools=\"http://schemas.android.com/tools\">\n\n    <!--============-->\n    <!-- Base Theme -->\n    <!--============-->\n\n    <!--== Theme Base ==-->\n    <style name=\"Base.Theme.Tachiyomi\" parent=\"Theme.Material3.DayNight.NoActionBar\">\n        <!-- Disallow \"Force dark theme\" -->\n        <item name=\"android:forceDarkAllowed\" tools:targetApi=\"Q\">false</item>\n\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/tachiyomi_primary</item>\n        <item name=\"colorOnPrimary\">@color/tachiyomi_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/tachiyomi_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/tachiyomi_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/tachiyomi_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/tachiyomi_secondary</item>\n        <item name=\"colorOnSecondary\">@color/tachiyomi_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/tachiyomi_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/tachiyomi_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/tachiyomi_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/tachiyomi_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/tachiyomi_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/tachiyomi_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/tachiyomi_background</item>\n        <item name=\"colorOnBackground\">@color/tachiyomi_onBackground</item>\n        <item name=\"colorSurface\">@color/tachiyomi_surface</item>\n        <item name=\"colorOnSurface\">@color/tachiyomi_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/tachiyomi_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/tachiyomi_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/tachiyomi_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/tachiyomi_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/tachiyomi_inverseOnSurface</item>\n        <item name=\"colorError\">@color/tachiyomi_error</item>\n        <item name=\"colorOnError\">@color/tachiyomi_onError</item>\n        <item name=\"colorErrorContainer\">@color/tachiyomi_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/tachiyomi_onErrorContainer</item>\n        <item name=\"colorOutline\">@color/tachiyomi_outline</item>\n        <item name=\"colorOutlineVariant\">@color/tachiyomi_outlineVariant</item>\n        <item name=\"colorSurfaceContainer\">@color/tachiyomi_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/tachiyomi_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/tachiyomi_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/tachiyomi_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/tachiyomi_surfaceContainerLowest</item>\n\n        <item name=\"android:divider\">@color/divider_default</item>\n        <item name=\"android:listDivider\">@drawable/line_divider</item>\n        <item name=\"materialDividerStyle\">@style/Widget.Tachiyomi.MaterialDivider</item>\n\n        <!-- Ripples -->\n        <item name=\"colorControlHighlight\">?attr/colorSurfaceVariant</item>\n\n        <!-- Handles RTL Text -->\n        <item name=\"android:textAlignment\">gravity</item>\n        <item name=\"android:textDirection\">locale</item>\n\n        <!-- Themes -->\n        <item name=\"android:windowLightStatusBar\">@bool/lightStatusBar</item>\n        <item name=\"android:statusBarColor\">@android:color/transparent</item>\n        <item name=\"android:navigationBarColor\">@color/amoled_surface</item>\n        <item name=\"android:navigationBarDividerColor\" tools:targetApi=\"o_mr1\">@null</item>\n        <item name=\"android:enforceNavigationBarContrast\" tools:targetApi=\"Q\">false</item>\n        <item name=\"android:enforceStatusBarContrast\" tools:targetApi=\"Q\">false</item>\n        <item name=\"android:itemTextAppearance\">@style/TextAppearance.Widget.Menu</item>\n        <item name=\"materialAlertDialogTheme\">@style/ThemeOverlay.Tachiyomi.MaterialAlertDialog</item>\n        <item name=\"alertDialogTheme\">@style/ThemeOverlay.Tachiyomi.MaterialAlertDialog</item>\n        <item name=\"textAppearanceButton\">@style/TextAppearance.Widget.Button</item>\n        <item name=\"android:buttonStyle\">?attr/borderlessButtonStyle</item>\n        <item name=\"android:backgroundDimAmount\">0.32</item>\n        <item name=\"windowActionModeOverlay\">true</item>\n        <item name=\"actionOverflowButtonStyle\">@style/Theme.Tachiyomi.ActionButton.Overflow</item>\n        <item name=\"preferenceTheme\">@style/PreferenceThemeOverlay.Tachiyomi</item>\n        <item name=\"textInputStyle\">@style/Widget.Material3.TextInputLayout.OutlinedBox</item>\n        <item name=\"appBarLayoutStyle\">@style/Widget.Material3.AppBarLayout</item>\n        <item name=\"toolbarStyle\">@style/Widget.Material3.Toolbar.Surface</item>\n        <item name=\"switchStyle\">@style/Widget.Tachiyomi.Switch</item>\n        <item name=\"materialSwitchStyle\">@style/Widget.Material3.CompoundButton.MaterialSwitch</item>\n        <item name=\"switchPreferenceCompatStyle\">@style/Widget.Tachiyomi.Switch</item>\n        <item name=\"materialCardViewStyle\">@style/Widget.Material3.CardView.Elevated</item>\n\n        <!-- Preference text appearance -->\n        <item name=\"android:textAppearanceListItem\">?attr/textAppearanceBodyLarge</item>\n        <item name=\"android:textAppearanceListItemSecondary\">@style/TextAppearance.Tachiyomi.Preference.Secondary</item>\n    </style>\n\n    <!--== Default Theme ==-->\n    <style name=\"Theme.Tachiyomi\" parent=\"Base.Theme.Tachiyomi\" />\n\n    <!-- Monet theme only support S+ -->\n    <style name=\"Theme.Tachiyomi.Monet\" />\n\n    <!--== Catppuccin Theme ==-->\n    <style name=\"Theme.Tachiyomi.Catppuccin\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/catppuccin_primary</item>\n        <item name=\"colorOnPrimary\">@color/catppuccin_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/catppuccin_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/catppuccin_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/catppuccin_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/catppuccin_secondary</item>\n        <item name=\"colorOnSecondary\">@color/catppuccin_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/catppuccin_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/catppuccin_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/catppuccin_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/catppuccin_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/catppuccin_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/catppuccin_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/catppuccin_background</item>\n        <item name=\"colorOnBackground\">@color/catppuccin_onBackground</item>\n        <item name=\"colorSurface\">@color/catppuccin_surface</item>\n        <item name=\"colorOnSurface\">@color/catppuccin_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/catppuccin_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/catppuccin_onSurfaceVariant</item>\n        <item name=\"colorSurfaceInverse\">@color/catppuccin_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/catppuccin_inverseOnSurface</item>\n        <item name=\"colorError\">@color/catppuccin_error</item>\n        <item name=\"colorOnError\">@color/catppuccin_onError</item>\n        <item name=\"colorErrorContainer\">@color/catppuccin_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/catppuccin_onErrorContainer</item>\n        <item name=\"colorOutline\">@color/catppuccin_outline</item>\n        <item name=\"colorOutlineVariant\">@color/catppuccin_outlineVariant</item>\n        <item name=\"scrimBackground\">@color/catppuccin_scrim</item>\n        <item name=\"colorSurfaceBright\">@color/catppuccin_surfaceBright</item>\n        <item name=\"colorSurfaceDim\">@color/catppuccin_surfaceDim</item>\n        <item name=\"colorSurfaceContainer\">@color/catppuccin_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/catppuccin_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/catppuccin_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/catppuccin_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/catppuccin_surfaceContainerLowest</item>\n    </style>\n    <!--== Green Apple Theme ==-->\n    <style name=\"Theme.Tachiyomi.GreenApple\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/greenapple_primary</item>\n        <item name=\"colorOnPrimary\">@color/greenapple_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/greenapple_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/greenapple_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/greenapple_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/greenapple_secondary</item>\n        <item name=\"colorOnSecondary\">@color/greenapple_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/greenapple_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/greenapple_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/greenapple_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/greenapple_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/greenapple_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/greenapple_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/greenapple_background</item>\n        <item name=\"colorOnBackground\">@color/greenapple_onBackground</item>\n        <item name=\"colorSurface\">@color/greenapple_surface</item>\n        <item name=\"colorOnSurface\">@color/greenapple_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/greenapple_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/greenapple_onSurfaceVariant</item>\n        <item name=\"colorSurfaceInverse\">@color/greenapple_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/greenapple_inverseOnSurface</item>\n        <item name=\"colorError\">@color/greenapple_error</item>\n        <item name=\"colorOnError\">@color/greenapple_onError</item>\n        <item name=\"colorErrorContainer\">@color/greenapple_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/greenapple_onErrorContainer</item>\n        <item name=\"colorOutline\">@color/greenapple_outline</item>\n        <item name=\"colorOutlineVariant\">@color/greenapple_outlineVariant</item>\n        <item name=\"scrimBackground\">@color/greenapple_scrim</item>\n        <item name=\"colorSurfaceBright\">@color/greenapple_surfaceBright</item>\n        <item name=\"colorSurfaceDim\">@color/greenapple_surfaceDim</item>\n        <item name=\"colorSurfaceContainer\">@color/greenapple_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/greenapple_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/greenapple_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/greenapple_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/greenapple_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Lavender Theme ==-->\n    <style name=\"Theme.Tachiyomi.Lavender\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/lavender_primary</item>\n        <item name=\"colorOnPrimary\">@color/lavender_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/lavender_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/lavender_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/lavender_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/lavender_secondary</item>\n        <item name=\"colorOnSecondary\">@color/lavender_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/lavender_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/lavender_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/lavender_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/lavender_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/lavender_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/lavender_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/lavender_background</item>\n        <item name=\"colorOnBackground\">@color/lavender_onBackground</item>\n        <item name=\"colorSurface\">@color/lavender_surface</item>\n        <item name=\"colorOnSurface\">@color/lavender_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/lavender_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/lavender_onSurfaceVariant</item>\n        <item name=\"colorSurfaceInverse\">@color/lavender_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/lavender_inverseOnSurface</item>\n        <item name=\"colorError\">@color/lavender_error</item>\n        <item name=\"colorOnError\">@color/lavender_onError</item>\n        <item name=\"colorErrorContainer\">@color/lavender_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/lavender_onErrorContainer</item>\n        <item name=\"colorOutline\">@color/lavender_outline</item>\n        <item name=\"colorOutlineVariant\">@color/lavender_outlineVariant</item>\n        <item name=\"scrimBackground\">@color/lavender_scrim</item>\n        <item name=\"colorSurfaceBright\">@color/lavender_surfaceBright</item>\n        <item name=\"colorSurfaceDim\">@color/lavender_surfaceDim</item>\n        <item name=\"colorSurfaceContainer\">@color/lavender_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/lavender_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/lavender_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/lavender_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/lavender_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Midnight Dusk Theme ==-->\n    <style name=\"Theme.Tachiyomi.MidnightDusk\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/midnightdusk_primary</item>\n        <item name=\"colorOnPrimary\">@color/midnightdusk_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/midnightdusk_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/midnightdusk_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/midnightdusk_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/midnightdusk_secondary</item>\n        <item name=\"colorOnSecondary\">@color/midnightdusk_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/midnightdusk_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/midnightdusk_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/midnightdusk_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/midnightdusk_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/midnightdusk_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/midnightdusk_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/midnightdusk_background</item>\n        <item name=\"colorOnBackground\">@color/midnightdusk_onBackground</item>\n        <item name=\"colorSurface\">@color/midnightdusk_surface</item>\n        <item name=\"colorOnSurface\">@color/midnightdusk_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/midnightdusk_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/midnightdusk_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/midnightdusk_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/midnightdusk_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/midnightdusk_inverseOnSurface</item>\n        <item name=\"colorOutline\">@color/midnightdusk_outline</item>\n        <item name=\"colorSurfaceContainer\">@color/midnightdusk_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/midnightdusk_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/midnightdusk_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/midnightdusk_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/midnightdusk_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Strawberry Daiquiri Theme ==-->\n    <style name=\"Theme.Tachiyomi.StrawberryDaiquiri\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/strawberry_primary</item>\n        <item name=\"colorOnPrimary\">@color/strawberry_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/strawberry_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/strawberry_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/strawberry_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/strawberry_secondary</item>\n        <item name=\"colorOnSecondary\">@color/strawberry_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/strawberry_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/strawberry_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/strawberry_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/strawberry_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/strawberry_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/strawberry_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/strawberry_background</item>\n        <item name=\"colorOnBackground\">@color/strawberry_onBackground</item>\n        <item name=\"colorSurface\">@color/strawberry_surface</item>\n        <item name=\"colorOnSurface\">@color/strawberry_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/strawberry_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/strawberry_onSurfaceVariant</item>\n        <item name=\"colorSurfaceInverse\">@color/strawberry_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/strawberry_inverseOnSurface</item>\n        <item name=\"colorError\">@color/strawberry_error</item>\n        <item name=\"colorOnError\">@color/strawberry_onError</item>\n        <item name=\"colorErrorContainer\">@color/strawberry_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/strawberry_onErrorContainer</item>\n        <item name=\"colorOutline\">@color/strawberry_outline</item>\n        <item name=\"colorOutlineVariant\">@color/strawberry_outlineVariant</item>\n        <item name=\"scrimBackground\">@color/strawberry_scrim</item>\n        <item name=\"colorSurfaceBright\">@color/strawberry_surfaceBright</item>\n        <item name=\"colorSurfaceDim\">@color/strawberry_surfaceDim</item>\n        <item name=\"colorSurfaceContainer\">@color/strawberry_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/strawberry_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/strawberry_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/strawberry_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/strawberry_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Tako Theme ==-->\n    <style name=\"Theme.Tachiyomi.Tako\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/tako_primary</item>\n        <item name=\"colorOnPrimary\">@color/tako_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/tako_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/tako_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/tako_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/tako_secondary</item>\n        <item name=\"colorOnSecondary\">@color/tako_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/tako_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/tako_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/tako_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/tako_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/tako_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/tako_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/tako_background</item>\n        <item name=\"colorOnBackground\">@color/tako_onBackground</item>\n        <item name=\"colorSurface\">@color/tako_surface</item>\n        <item name=\"colorOnSurface\">@color/tako_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/tako_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/tako_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/tako_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/tako_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/tako_inverseOnSurface</item>\n        <item name=\"colorOutline\">@color/tako_outline</item>\n        <item name=\"colorSurfaceContainer\">@color/tako_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/tako_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/tako_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/tako_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/tako_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Teal & Turquoise Theme ==-->\n    <style name=\"Theme.Tachiyomi.TealTurquoise\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/tealturquoise_primary</item>\n        <item name=\"colorOnPrimary\">@color/tealturquoise_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/tealturquoise_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/tealturquoise_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/tealturquoise_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/tealturquoise_secondary</item>\n        <item name=\"colorOnSecondary\">@color/tealturquoise_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/tealturquoise_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/tealturquoise_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/tealturquoise_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/tealturquoise_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/tealturquoise_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/tealturquoise_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/tealturquoise_background</item>\n        <item name=\"colorOnBackground\">@color/tealturquoise_onBackground</item>\n        <item name=\"colorSurface\">@color/tealturquoise_surface</item>\n        <item name=\"colorOnSurface\">@color/tealturquoise_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/tealturquoise_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/tealturquoise_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/tealturquoise_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/tealturquoise_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/tealturquoise_inverseOnSurface</item>\n        <item name=\"colorOutline\">@color/tealturquoise_outline</item>\n        <item name=\"colorSurfaceContainer\">@color/tealturquoise_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/tealturquoise_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/tealturquoise_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/tealturquoise_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/tealturquoise_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Yin & Yang Theme ==-->\n    <style name=\"Theme.Tachiyomi.YinYang\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/yinyang_primary</item>\n        <item name=\"colorOnPrimary\">@color/yinyang_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/yinyang_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/yinyang_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/yinyang_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/yinyang_secondary</item>\n        <item name=\"colorOnSecondary\">@color/yinyang_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/yinyang_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/yinyang_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/yinyang_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/yinyang_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/yinyang_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/yinyang_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/yinyang_background</item>\n        <item name=\"colorOnBackground\">@color/yinyang_onBackground</item>\n        <item name=\"colorSurface\">@color/yinyang_surface</item>\n        <item name=\"colorOnSurface\">@color/yinyang_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/yinyang_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/yinyang_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/yinyang_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/yinyang_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/yinyang_inverseOnSurface</item>\n        <item name=\"colorOutline\">@color/yinyang_outline</item>\n        <item name=\"colorSurfaceContainer\">@color/yinyang_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/yinyang_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/yinyang_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/yinyang_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/yinyang_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Yotsuba Theme ==-->\n    <style name=\"Theme.Tachiyomi.Yotsuba\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/yotsuba_primary</item>\n        <item name=\"colorOnPrimary\">@color/yotsuba_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/yotsuba_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/yotsuba_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/yotsuba_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/yotsuba_secondary</item>\n        <item name=\"colorOnSecondary\">@color/yotsuba_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/yotsuba_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/yotsuba_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/yotsuba_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/yotsuba_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/yotsuba_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/yotsuba_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/yotsuba_background</item>\n        <item name=\"colorOnBackground\">@color/yotsuba_onBackground</item>\n        <item name=\"colorSurface\">@color/yotsuba_surface</item>\n        <item name=\"colorOnSurface\">@color/yotsuba_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/yotsuba_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/yotsuba_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/yotsuba_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/yotsuba_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/yotsuba_inverseOnSurface</item>\n        <item name=\"colorOutline\">@color/yotsuba_outline</item>\n        <item name=\"colorSurfaceContainer\">@color/yotsuba_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/yotsuba_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/yotsuba_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/yotsuba_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/yotsuba_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Tidal Wave Theme ==-->\n    <style name=\"Theme.Tachiyomi.TidalWave\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/tidalwave_primary</item>\n        <item name=\"colorOnPrimary\">@color/tidalwave_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/tidalwave_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/tidalwave_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/tidalwave_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/tidalwave_secondary</item>\n        <item name=\"colorOnSecondary\">@color/tidalwave_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/tidalwave_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/tidalwave_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/tidalwave_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/tidalwave_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/tidalwave_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/tidalwave_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/tidalwave_background</item>\n        <item name=\"colorOnBackground\">@color/tidalwave_onBackground</item>\n        <item name=\"colorSurface\">@color/tidalwave_surface</item>\n        <item name=\"colorOnSurface\">@color/tidalwave_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/tidalwave_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/tidalwave_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/tidalwave_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/tidalwave_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/tidalwave_inverseOnSurface</item>\n        <item name=\"colorOutline\">@color/tidalwave_outline</item>\n        <item name=\"colorSurfaceContainer\">@color/tidalwave_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/tidalwave_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/tidalwave_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/tidalwave_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/tidalwave_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Nord Theme ==-->\n    <style name=\"Theme.Tachiyomi.Nord\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/nord_primary</item>\n        <item name=\"colorOnPrimary\">@color/nord_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/nord_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/nord_onPrimaryContainer</item>\n        <item name=\"colorPrimaryInverse\">@color/nord_inversePrimary</item>\n        <item name=\"colorSecondary\">@color/nord_secondary</item>\n        <item name=\"colorOnSecondary\">@color/nord_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/nord_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/nord_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/nord_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/nord_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/nord_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/nord_onTertiaryContainer</item>\n        <item name=\"android:colorBackground\">@color/nord_background</item>\n        <item name=\"colorOnBackground\">@color/nord_onBackground</item>\n        <item name=\"colorSurface\">@color/nord_surface</item>\n        <item name=\"colorOnSurface\">@color/nord_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/nord_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/nord_onSurfaceVariant</item>\n        <item name=\"elevationOverlayColor\">@color/nord_surfaceTint</item>\n        <item name=\"colorSurfaceInverse\">@color/nord_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/nord_inverseOnSurface</item>\n        <item name=\"colorOnError\">@color/nord_onError</item>\n        <item name=\"colorErrorContainer\">@color/nord_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/nord_onErrorContainer</item>\n        <item name=\"colorOutline\">@color/nord_outline</item>\n        <item name=\"colorOutlineVariant\">@color/nord_outlineVariant</item>\n        <item name=\"colorSurfaceContainer\">@color/nord_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/nord_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/nord_surfaceContainerHighest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/nord_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/nord_surfaceContainerLowest</item>\n    </style>\n\n    <!--== Monochrome Theme ==-->\n    <style name=\"Theme.Tachiyomi.Monochrome\">\n        <!-- Theme Colors -->\n        <item name=\"colorPrimary\">@color/monochrome_primary</item>\n        <item name=\"colorOnPrimary\">@color/monochrome_onPrimary</item>\n        <item name=\"colorPrimaryContainer\">@color/monochrome_primaryContainer</item>\n        <item name=\"colorOnPrimaryContainer\">@color/monochrome_onPrimaryContainer</item>\n        <item name=\"colorSecondary\">@color/monochrome_secondary</item>\n        <item name=\"colorOnSecondary\">@color/monochrome_onSecondary</item>\n        <item name=\"colorSecondaryContainer\">@color/monochrome_secondaryContainer</item>\n        <item name=\"colorOnSecondaryContainer\">@color/monochrome_onSecondaryContainer</item>\n        <item name=\"colorTertiary\">@color/monochrome_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/monochrome_onTertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/monochrome_tertiaryContainer</item>\n        <item name=\"colorOnTertiaryContainer\">@color/monochrome_onTertiaryContainer</item>\n        <item name=\"colorError\">@color/monochrome_error</item>\n        <item name=\"colorOnError\">@color/monochrome_onError</item>\n        <item name=\"colorErrorContainer\">@color/monochrome_errorContainer</item>\n        <item name=\"colorOnErrorContainer\">@color/monochrome_onErrorContainer</item>\n        <item name=\"android:colorBackground\">@color/monochrome_background</item>\n        <item name=\"colorOnBackground\">@color/monochrome_onBackground</item>\n        <item name=\"colorSurface\">@color/monochrome_surface</item>\n        <item name=\"colorOnSurface\">@color/monochrome_onSurface</item>\n        <item name=\"colorSurfaceVariant\">@color/monochrome_surfaceVariant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/monochrome_onSurfaceVariant</item>\n        <item name=\"colorOutline\">@color/monochrome_outline</item>\n        <item name=\"colorOutlineVariant\">@color/monochrome_outlineVariant</item>\n        <item name=\"colorSurfaceInverse\">@color/monochrome_inverseSurface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/monochrome_inverseOnSurface</item>\n        <item name=\"colorPrimaryInverse\">@color/monochrome_inversePrimary</item>\n        <item name=\"colorSurfaceDim\">@color/monochrome_surfaceDim</item>\n        <item name=\"colorSurfaceBright\">@color/monochrome_surfaceBright</item>\n        <item name=\"colorSurfaceContainerLowest\">@color/monochrome_surfaceContainerLowest</item>\n        <item name=\"colorSurfaceContainerLow\">@color/monochrome_surfaceContainerLow</item>\n        <item name=\"colorSurfaceContainer\">@color/monochrome_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/monochrome_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/monochrome_surfaceContainerHighest</item>\n    </style>\n\n    <!--== AMOLED Mode Overlay ==-->\n    <style name=\"ThemeOverlay.Tachiyomi.Amoled\" parent=\"\" />\n\n    <!--===============-->\n    <!-- Launch Screen -->\n    <!--===============-->\n\n    <!--== Splash Theme ==-->\n    <style name=\"Theme.Tachiyomi.SplashScreen\" parent=\"Theme.SplashScreen\">\n        <item name=\"windowSplashScreenAnimatedIcon\">@drawable/ic_mihon_splash</item>\n        <item name=\"windowSplashScreenBackground\">@color/splash</item>\n        <item name=\"postSplashScreenTheme\">@style/Theme.Tachiyomi</item>\n        <item name=\"android:statusBarColor\">@android:color/transparent</item>\n        <item name=\"android:navigationBarColor\">@android:color/transparent</item>\n        <item name=\"android:windowLightStatusBar\">false</item>\n        <item name=\"android:windowLightNavigationBar\" tools:targetApi=\"o_mr1\">false</item>\n    </style>\n\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-night/bools.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <bool name=\"lightStatusBar\">false</bool>\n    <bool name=\"lightNavigationBar\">false</bool>\n    <bool name=\"elevationOverlayEnabled\">true</bool>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-night/themes.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <!--== AMOLED Mode Overlay ==-->\n    <style name=\"ThemeOverlay.Tachiyomi.Amoled\" parent=\"\">\n        <!-- Theme Colors -->\n        <item name=\"android:colorBackground\">@color/amoled_background</item>\n        <item name=\"colorOnBackground\">@color/amoled_onBackground</item>\n        <item name=\"colorSurface\">@color/amoled_surface</item>\n        <item name=\"colorOnSurface\">@color/amoled_onSurface</item>\n        <item name=\"colorSurfaceContainer\">@color/amoled_surfaceContainer</item>\n        <item name=\"colorSurfaceContainerHigh\">@color/amoled_surfaceContainerHigh</item>\n        <item name=\"colorSurfaceContainerHighest\">@color/amoled_surfaceContainerHighest</item>\n    </style>\n\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-night-v31/themes.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- From ThemeOverlay.Material3.DynamicColors.Dark -->\n    <style name=\"Theme.Tachiyomi.Monet\">\n        <!-- Color palettes -->\n        <item name=\"colorPrimary\">@color/m3_sys_color_dynamic_dark_primary</item>\n        <item name=\"colorOnPrimary\">@color/m3_sys_color_dynamic_dark_on_primary</item>\n        <item name=\"colorPrimaryInverse\">@color/m3_sys_color_dynamic_dark_inverse_primary</item>\n        <item name=\"colorPrimaryContainer\">@color/m3_sys_color_dynamic_dark_primary_container</item>\n        <item name=\"colorOnPrimaryContainer\">@color/m3_sys_color_dynamic_dark_on_primary_container</item>\n        <item name=\"colorSecondary\">@color/m3_sys_color_dynamic_dark_secondary</item>\n        <item name=\"colorOnSecondary\">@color/m3_sys_color_dynamic_dark_on_secondary</item>\n        <item name=\"colorSecondaryContainer\">@color/m3_sys_color_dynamic_dark_secondary_container</item>\n        <item name=\"colorOnSecondaryContainer\">@color/m3_sys_color_dynamic_dark_on_secondary_container</item>\n        <item name=\"colorTertiary\">@color/m3_sys_color_dynamic_dark_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/m3_sys_color_dynamic_dark_on_tertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/m3_sys_color_dynamic_dark_tertiary_container</item>\n        <item name=\"colorOnTertiaryContainer\">@color/m3_sys_color_dynamic_dark_on_tertiary_container</item>\n        <item name=\"android:colorBackground\">@color/m3_sys_color_dynamic_dark_background</item>\n        <item name=\"colorOnBackground\">@color/m3_sys_color_dynamic_dark_on_background</item>\n        <item name=\"colorSurface\">@color/m3_sys_color_dynamic_dark_surface</item>\n        <item name=\"colorOnSurface\">@color/m3_sys_color_dynamic_dark_on_surface</item>\n        <item name=\"colorSurfaceVariant\">@color/m3_sys_color_dynamic_dark_surface_variant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/m3_sys_color_dynamic_dark_on_surface_variant</item>\n        <item name=\"colorSurfaceInverse\">@color/m3_sys_color_dynamic_dark_inverse_surface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/m3_sys_color_dynamic_dark_inverse_on_surface</item>\n        <item name=\"colorOutline\">@color/m3_sys_color_dynamic_dark_outline</item>\n\n        <!-- Default Framework Text Colors. -->\n        <item name=\"android:textColorPrimary\">@color/m3_dynamic_dark_default_color_primary_text</item>\n        <item name=\"android:textColorPrimaryInverse\">@color/m3_dynamic_default_color_primary_text</item>\n        <item name=\"android:textColorSecondary\">@color/m3_dynamic_dark_default_color_secondary_text</item>\n        <item name=\"android:textColorSecondaryInverse\">@color/m3_dynamic_default_color_secondary_text</item>\n        <item name=\"android:textColorTertiary\">@color/m3_dynamic_dark_default_color_secondary_text</item>\n        <item name=\"android:textColorTertiaryInverse\">@color/m3_dynamic_default_color_secondary_text</item>\n        <item name=\"android:textColorPrimaryDisableOnly\">@color/m3_dynamic_dark_primary_text_disable_only</item>\n        <item name=\"android:textColorPrimaryInverseDisableOnly\">@color/m3_dynamic_primary_text_disable_only</item>\n        <item name=\"android:textColorHint\">@color/m3_dynamic_dark_hint_foreground</item>\n        <item name=\"android:textColorHintInverse\">@color/m3_dynamic_hint_foreground</item>\n        <item name=\"android:textColorHighlight\">@color/m3_dynamic_dark_highlighted_text</item>\n        <item name=\"android:textColorHighlightInverse\">@color/m3_dynamic_highlighted_text</item>\n        <item name=\"android:textColorAlertDialogListItem\">@color/m3_dynamic_dark_default_color_primary_text</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-v27/bools.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <bool name=\"lightStatusBar\">true</bool>\n    <bool name=\"lightNavigationBar\">true</bool>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-v27/themes.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <style name=\"Base.V27.Tachiyomi\" parent=\"Base.Theme.Tachiyomi\">\n        <item name=\"android:navigationBarColor\">?attr/colorSurface</item>\n        <item name=\"android:windowLightNavigationBar\">@bool/lightNavigationBar</item>\n    </style>\n\n    <style name=\"Theme.Tachiyomi\" parent=\"Base.V27.Tachiyomi\" />\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-v31/themes.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- From ThemeOverlay.Material3.DynamicColors.Light -->\n    <style name=\"Theme.Tachiyomi.Monet\">\n        <!-- Color palettes -->\n        <item name=\"colorPrimary\">@color/m3_sys_color_dynamic_light_primary</item>\n        <item name=\"colorOnPrimary\">@color/m3_sys_color_dynamic_light_on_primary</item>\n        <item name=\"colorPrimaryInverse\">@color/m3_sys_color_dynamic_light_inverse_primary</item>\n        <item name=\"colorPrimaryContainer\">@color/m3_sys_color_dynamic_light_primary_container</item>\n        <item name=\"colorOnPrimaryContainer\">@color/m3_sys_color_dynamic_light_on_primary_container</item>\n        <item name=\"colorSecondary\">@color/m3_sys_color_dynamic_light_secondary</item>\n        <item name=\"colorOnSecondary\">@color/m3_sys_color_dynamic_light_on_secondary</item>\n        <item name=\"colorSecondaryContainer\">@color/m3_sys_color_dynamic_light_secondary_container</item>\n        <item name=\"colorOnSecondaryContainer\">@color/m3_sys_color_dynamic_light_on_secondary_container</item>\n        <item name=\"colorTertiary\">@color/m3_sys_color_dynamic_light_tertiary</item>\n        <item name=\"colorOnTertiary\">@color/m3_sys_color_dynamic_light_on_tertiary</item>\n        <item name=\"colorTertiaryContainer\">@color/m3_sys_color_dynamic_light_tertiary_container</item>\n        <item name=\"colorOnTertiaryContainer\">@color/m3_sys_color_dynamic_light_on_tertiary_container</item>\n        <item name=\"android:colorBackground\">@color/m3_sys_color_dynamic_light_background</item>\n        <item name=\"colorOnBackground\">@color/m3_sys_color_dynamic_light_on_background</item>\n        <item name=\"colorSurface\">@color/m3_sys_color_dynamic_light_surface</item>\n        <item name=\"colorOnSurface\">@color/m3_sys_color_dynamic_light_on_surface</item>\n        <item name=\"colorSurfaceVariant\">@color/m3_sys_color_dynamic_light_surface_variant</item>\n        <item name=\"colorOnSurfaceVariant\">@color/m3_sys_color_dynamic_light_on_surface_variant</item>\n        <item name=\"colorSurfaceInverse\">@color/m3_sys_color_dynamic_light_inverse_surface</item>\n        <item name=\"colorOnSurfaceInverse\">@color/m3_sys_color_dynamic_light_inverse_on_surface</item>\n        <item name=\"colorOutline\">@color/m3_sys_color_dynamic_light_outline</item>\n\n        <!-- Default Framework Text Colors. -->\n        <item name=\"android:textColorPrimary\">@color/m3_dynamic_default_color_primary_text</item>\n        <item name=\"android:textColorPrimaryInverse\">@color/m3_dynamic_dark_default_color_primary_text</item>\n        <item name=\"android:textColorSecondary\">@color/m3_dynamic_default_color_secondary_text</item>\n        <item name=\"android:textColorSecondaryInverse\">@color/m3_dynamic_dark_default_color_secondary_text</item>\n        <item name=\"android:textColorTertiary\">@color/m3_dynamic_default_color_secondary_text</item>\n        <item name=\"android:textColorTertiaryInverse\">@color/m3_dynamic_dark_default_color_secondary_text</item>\n        <item name=\"android:textColorPrimaryDisableOnly\">@color/m3_dynamic_primary_text_disable_only</item>\n        <item name=\"android:textColorPrimaryInverseDisableOnly\">@color/m3_dynamic_dark_primary_text_disable_only</item>\n        <item name=\"android:textColorHint\">@color/m3_dynamic_hint_foreground</item>\n        <item name=\"android:textColorHintInverse\">@color/m3_dynamic_dark_hint_foreground</item>\n        <item name=\"android:textColorHighlight\">@color/m3_dynamic_highlighted_text</item>\n        <item name=\"android:textColorHighlightInverse\">@color/m3_dynamic_dark_highlighted_text</item>\n        <item name=\"android:textColorAlertDialogListItem\">@color/m3_dynamic_default_color_primary_text</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/xml/network_security_config.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<network-security-config xmlns:tools=\"http://schemas.android.com/tools\">\n    <!-- Need to allow cleartext traffic for some sources -->\n    <base-config\n        cleartextTrafficPermitted=\"true\"\n        tools:ignore=\"InsecureBaseConfiguration\">\n        <trust-anchors>\n            <!-- Trust preinstalled CAs -->\n            <certificates src=\"system\" />\n\n            <!-- Additionally trust user added CAs -->\n            <certificates\n                src=\"user\"\n                tools:ignore=\"AcceptsUserCertificates\" />\n        </trust-anchors>\n    </base-config>\n</network-security-config>\n"
  },
  {
    "path": "app/src/main/res/xml/provider_paths.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<paths>\n    <cache-path\n        name=\"cache_files\"\n        path=\".\" />\n    <external-path\n        name=\"ext\"\n        path=\".\" />\n    <external-cache-path\n        name=\"ext_cache_files\"\n        path=\".\" />\n    <external-files-path\n        name=\"ext_files\"\n        path=\".\" />\n    <!--suppress AndroidElementNotAllowed -->\n    <root-path\n        name=\"ext_storage\"\n        path=\"/storage/\" />\n</paths>\n"
  },
  {
    "path": "app/src/main/res/xml/s_pen_actions.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<remote-actions\n    actionset_label=\"@string/app_name\"\n    version=\"1.2\">\n    <action\n        id=\"tachiyomi_next_page\"\n        label=\"@string/spen_next_page\"\n        priority=\"1\"\n        repeatable=\"true\"\n        repeatable_interval=\"short\"\n        trigger_key=\"CTRL_LEFT+DPAD_RIGHT\">\n        <preference\n            name=\"gesture\"\n            value=\"click\" />\n    </action>\n    <action\n        id=\"tachiyomi_previous_page\"\n        label=\"@string/spen_previous_page\"\n        priority=\"2\"\n        repeatable=\"true\"\n        repeatable_interval=\"short\"\n        trigger_key=\"CTRL_LEFT+DPAD_LEFT\">\n        <preference\n            name=\"gesture\"\n            value=\"double_click\" />\n    </action>\n    <action\n        id=\"tachiyomi_back\"\n        label=\"@string/action_webview_back\"\n        priority=\"3\"\n        repeatable=\"true\"\n        repeatable_interval=\"short\"\n        trigger_key=\"BACK\">\n        <preference\n            name=\"gesture\"\n            value=\"circle_ccw\" />\n    </action>\n    <action\n        id=\"tachiyomi_next_chapter\"\n        label=\"@string/action_next_chapter\"\n        priority=\"4\"\n        repeatable=\"true\"\n        repeatable_interval=\"short\"\n        trigger_key=\"N\">\n        <preference\n            name=\"gesture\"\n            value=\"swipe_right\" />\n    </action>\n    <action\n        id=\"tachiyomi_previous_chapter\"\n        label=\"@string/action_previous_chapter\"\n        priority=\"5\"\n        repeatable=\"true\"\n        repeatable_interval=\"short\"\n        trigger_key=\"P\">\n        <preference\n            name=\"gesture\"\n            value=\"swipe_left\" />\n    </action>\n</remote-actions>\n"
  },
  {
    "path": "app/src/main/res/xml/searchable.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<searchable xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:hint=\"@string/action_global_search_hint\"\n    android:label=\"@string/app_name\" />\n"
  },
  {
    "path": "app/src/test/java/mihon/core/migration/MigratorTest.kt",
    "content": "package mihon.core.migration\n\nimport io.kotest.assertions.nondeterministic.eventually\nimport io.mockk.slot\nimport io.mockk.spyk\nimport io.mockk.verify\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.DelicateCoroutinesApi\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.newSingleThreadContext\nimport kotlinx.coroutines.runBlocking\nimport kotlinx.coroutines.test.resetMain\nimport kotlinx.coroutines.test.setMain\nimport org.junit.jupiter.api.AfterAll\nimport org.junit.jupiter.api.Assertions.assertEquals\nimport org.junit.jupiter.api.Assertions.assertFalse\nimport org.junit.jupiter.api.Assertions.assertInstanceOf\nimport org.junit.jupiter.api.BeforeAll\nimport org.junit.jupiter.api.BeforeEach\nimport org.junit.jupiter.api.Test\nimport kotlin.time.Duration.Companion.seconds\n\nclass MigratorTest {\n\n    lateinit var migrationCompletedListener: MigrationCompletedListener\n    lateinit var migrationContext: MigrationContext\n    lateinit var migrationJobFactory: MigrationJobFactory\n    lateinit var migrationStrategyFactory: MigrationStrategyFactory\n\n    @BeforeEach\n    fun initialize() {\n        migrationContext = MigrationContext(false)\n        migrationJobFactory = spyk(MigrationJobFactory(migrationContext, CoroutineScope(Dispatchers.Main + Job())))\n        migrationCompletedListener = spyk<MigrationCompletedListener>(block = {})\n        migrationStrategyFactory = spyk(MigrationStrategyFactory(migrationJobFactory, migrationCompletedListener))\n    }\n\n    @Test\n    fun initialVersion() = runBlocking {\n        val strategy = migrationStrategyFactory.create(0, 1)\n        assertInstanceOf(InitialMigrationStrategy::class.java, strategy)\n\n        val migrations = slot<List<Migration>>()\n        val execute = strategy(listOf(Migration.of(Migration.ALWAYS) { true }, Migration.of(2f) { false }))\n\n        execute.await()\n\n        verify { migrationJobFactory.create(capture(migrations)) }\n        assertEquals(1, migrations.captured.size)\n        eventually(2.seconds) { verify { migrationCompletedListener() } }\n    }\n\n    @Test\n    fun sameVersion() = runBlocking {\n        val strategy = migrationStrategyFactory.create(1, 1)\n        assertInstanceOf(NoopMigrationStrategy::class.java, strategy)\n\n        val execute = strategy(listOf(Migration.of(Migration.ALWAYS) { true }, Migration.of(2f) { false }))\n\n        val result = execute.await()\n        assertFalse(result)\n\n        verify(exactly = 0) { migrationJobFactory.create(any()) }\n    }\n\n    @Test\n    fun noMigrations() = runBlocking {\n        val strategy = migrationStrategyFactory.create(1, 2)\n        assertInstanceOf(VersionRangeMigrationStrategy::class.java, strategy)\n\n        val execute = strategy(emptyList())\n\n        val result = execute.await()\n        assertFalse(result)\n\n        verify(exactly = 0) { migrationJobFactory.create(any()) }\n    }\n\n    @Test\n    fun smallMigration() = runBlocking {\n        val strategy = migrationStrategyFactory.create(1, 2)\n        assertInstanceOf(VersionRangeMigrationStrategy::class.java, strategy)\n\n        val migrations = slot<List<Migration>>()\n        val execute = strategy(listOf(Migration.of(Migration.ALWAYS) { true }, Migration.of(2f) { true }))\n\n        execute.await()\n\n        verify { migrationJobFactory.create(capture(migrations)) }\n        assertEquals(2, migrations.captured.size)\n        eventually(2.seconds) { verify { migrationCompletedListener() } }\n    }\n\n    @Test\n    fun largeMigration() = runBlocking {\n        val input = listOf(\n            Migration.of(Migration.ALWAYS) { true },\n            Migration.of(2f) { true },\n            Migration.of(3f) { true },\n            Migration.of(4f) { true },\n            Migration.of(5f) { true },\n            Migration.of(6f) { true },\n            Migration.of(7f) { true },\n            Migration.of(8f) { true },\n            Migration.of(9f) { true },\n            Migration.of(10f) { true },\n        )\n\n        val strategy = migrationStrategyFactory.create(1, 10)\n        assertInstanceOf(VersionRangeMigrationStrategy::class.java, strategy)\n\n        val migrations = slot<List<Migration>>()\n        val execute = strategy(input)\n\n        execute.await()\n\n        verify { migrationJobFactory.create(capture(migrations)) }\n        assertEquals(10, migrations.captured.size)\n        eventually(2.seconds) { verify { migrationCompletedListener() } }\n    }\n\n    @Test\n    fun withinRangeMigration() = runBlocking {\n        val strategy = migrationStrategyFactory.create(1, 2)\n        assertInstanceOf(VersionRangeMigrationStrategy::class.java, strategy)\n\n        val migrations = slot<List<Migration>>()\n        val execute = strategy(\n            listOf(\n                Migration.of(Migration.ALWAYS) { true },\n                Migration.of(2f) { true },\n                Migration.of(3f) { false },\n            ),\n        )\n\n        execute.await()\n\n        verify { migrationJobFactory.create(capture(migrations)) }\n        assertEquals(2, migrations.captured.size)\n        eventually(2.seconds) { verify { migrationCompletedListener() } }\n    }\n\n    companion object {\n\n        @OptIn(DelicateCoroutinesApi::class)\n        val mainThreadSurrogate = newSingleThreadContext(\"UI thread\")\n\n        @BeforeAll\n        @JvmStatic\n        fun setUp() {\n            Dispatchers.setMain(mainThreadSurrogate)\n        }\n\n        @AfterAll\n        @JvmStatic\n        fun tearDown() {\n            Dispatchers.resetMain() // reset the main dispatcher to the original Main dispatcher\n            mainThreadSurrogate.close()\n        }\n    }\n}\n"
  },
  {
    "path": "build.gradle.kts",
    "content": "buildscript {\n    dependencies {\n        classpath(libs.android.shortcut.gradle)\n    }\n}\n\nplugins {\n    alias(kotlinx.plugins.serialization) apply false\n    alias(libs.plugins.aboutLibraries) apply false\n    alias(libs.plugins.firebase.crashlytics) apply false\n    alias(libs.plugins.google.services) apply false\n    alias(libs.plugins.moko) apply false\n    alias(libs.plugins.sqldelight) apply false\n}\n\ntasks.register<Delete>(\"clean\") {\n    delete(rootProject.layout.buildDirectory)\n}\n"
  },
  {
    "path": "buildSrc/build.gradle.kts",
    "content": "plugins {\n    `kotlin-dsl`\n}\n\ndependencies {\n    implementation(androidx.gradle)\n    implementation(kotlinx.gradle)\n    implementation(kotlinx.compose.compiler.gradle)\n    implementation(libs.spotless.gradle)\n    implementation(gradleApi())\n\n    implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))\n    implementation(files(androidx.javaClass.superclass.protectionDomain.codeSource.location))\n    implementation(files(compose.javaClass.superclass.protectionDomain.codeSource.location))\n    implementation(files(kotlinx.javaClass.superclass.protectionDomain.codeSource.location))\n}\n\nrepositories {\n    gradlePluginPortal()\n    mavenCentral()\n    google()\n}\n"
  },
  {
    "path": "buildSrc/settings.gradle.kts",
    "content": "dependencyResolutionManagement {\n    versionCatalogs {\n        create(\"libs\") {\n            from(files(\"../gradle/libs.versions.toml\"))\n        }\n        create(\"androidx\") {\n            from(files(\"../gradle/androidx.versions.toml\"))\n        }\n        create(\"compose\") {\n            from(files(\"../gradle/compose.versions.toml\"))\n        }\n        create(\"kotlinx\") {\n            from(files(\"../gradle/kotlinx.versions.toml\"))\n        }\n    }\n}\n\nrootProject.name = \"mihon-buildSrc\"\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt",
    "content": "package mihon.buildlogic\n\nimport org.gradle.api.JavaVersion as GradleJavaVersion\nimport org.jetbrains.kotlin.gradle.dsl.JvmTarget as KotlinJvmTarget\n\nobject AndroidConfig {\n    const val COMPILE_SDK = 36\n    const val TARGET_SDK = 36\n    const val MIN_SDK = 26\n\n    // https://youtrack.jetbrains.com/issue/KT-66995/JvmTarget-and-JavaVersion-compatibility-for-easier-JVM-version-setup\n    val JavaVersion = GradleJavaVersion.VERSION_17\n    val JvmTarget = KotlinJvmTarget.JVM_17\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon/buildlogic/BuildConfig.kt",
    "content": "package mihon.buildlogic\n\nimport org.gradle.api.Project\n\ninterface BuildConfig {\n    val includeTelemetry: Boolean\n    val enableUpdater: Boolean\n    val enableCodeShrink: Boolean\n    val includeDependencyInfo: Boolean\n}\n\nval Project.Config: BuildConfig get() = object : BuildConfig {\n    override val includeTelemetry: Boolean = project.hasProperty(\"include-telemetry\")\n    override val enableUpdater: Boolean = project.hasProperty(\"enable-updater\")\n    override val enableCodeShrink: Boolean = !project.hasProperty(\"disable-code-shrink\")\n    override val includeDependencyInfo: Boolean = project.hasProperty(\"include-dependency-info\")\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt",
    "content": "package mihon.buildlogic\n\nimport org.gradle.api.Project\nimport java.time.Instant\nimport java.time.LocalDateTime\nimport java.time.ZoneOffset\nimport java.time.format.DateTimeFormatter\n\n// Git is needed in your system PATH for these commands to work.\n// If it's not installed, you can return a random value as a workaround\nfun Project.getCommitCount(): String {\n    return runCommand(\"git rev-list --count HEAD\")\n    // return \"1\"\n}\n\nfun Project.getGitSha(): String {\n    return runCommand(\"git rev-parse --short HEAD\")\n    // return \"1\"\n}\n\nprivate val BUILD_TIME_FORMATTER = DateTimeFormatter.ofPattern(\"yyyy-MM-dd'T'HH:mm:ss'Z'\")\n\n/**\n * @param useLastCommitTime If `true`, the build time is based on the timestamp of the last Git commit;\n *                          otherwise, the current time is used. Both are in UTC.\n * @return A formatted string representing the build time. The format used is defined by [BUILD_TIME_FORMATTER].\n */\nfun Project.getBuildTime(useLastCommitTime: Boolean): String {\n    return if (useLastCommitTime) {\n        val epoch = runCommand(\"git log -1 --format=%ct\").toLong()\n        Instant.ofEpochSecond(epoch).atOffset(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)\n    } else {\n        LocalDateTime.now(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)\n    }\n}\n\nprivate fun Project.runCommand(command: String): String {\n    return providers.exec {\n        commandLine = command.split(\" \")\n    }\n        .standardOutput\n        .asText\n        .get()\n        .trim()\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt",
    "content": "package mihon.buildlogic\n\nimport com.android.build.api.dsl.CommonExtension\nimport org.gradle.accessors.dm.LibrariesForAndroidx\nimport org.gradle.accessors.dm.LibrariesForCompose\nimport org.gradle.accessors.dm.LibrariesForKotlinx\nimport org.gradle.accessors.dm.LibrariesForLibs\nimport org.gradle.api.Project\nimport org.gradle.api.tasks.testing.Test\nimport org.gradle.api.tasks.testing.logging.TestLogEvent\nimport org.gradle.kotlin.dsl.configure\nimport org.gradle.kotlin.dsl.dependencies\nimport org.gradle.kotlin.dsl.provideDelegate\nimport org.gradle.kotlin.dsl.the\nimport org.gradle.kotlin.dsl.withType\nimport org.jetbrains.kotlin.compose.compiler.gradle.ComposeCompilerGradlePluginExtension\nimport org.jetbrains.kotlin.gradle.tasks.KotlinCompile\nimport java.io.File\n\nval Project.androidx get() = the<LibrariesForAndroidx>()\nval Project.compose get() = the<LibrariesForCompose>()\nval Project.kotlinx get() = the<LibrariesForKotlinx>()\nval Project.libs get() = the<LibrariesForLibs>()\n\ninternal fun Project.configureAndroid(commonExtension: CommonExtension<*, *, *, *, *, *>) {\n    commonExtension.apply {\n        compileSdk = AndroidConfig.COMPILE_SDK\n\n        defaultConfig {\n            minSdk = AndroidConfig.MIN_SDK\n        }\n\n        compileOptions {\n            sourceCompatibility = AndroidConfig.JavaVersion\n            targetCompatibility = AndroidConfig.JavaVersion\n            isCoreLibraryDesugaringEnabled = true\n        }\n    }\n\n    tasks.withType<KotlinCompile>().configureEach {\n        compilerOptions {\n            jvmTarget.set(AndroidConfig.JvmTarget)\n            freeCompilerArgs.addAll(\n                \"-Xcontext-parameters\",\n                \"-opt-in=kotlin.RequiresOptIn\",\n            )\n\n            // Treat all Kotlin warnings as errors (disabled by default)\n            // Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties\n            val warningsAsErrors: String? by project\n            allWarningsAsErrors.set(warningsAsErrors.toBoolean())\n\n        }\n    }\n\n    dependencies {\n        \"coreLibraryDesugaring\"(libs.desugar)\n    }\n}\n\ninternal fun Project.configureCompose(commonExtension: CommonExtension<*, *, *, *, *, *>) {\n    pluginManager.apply(kotlinx.plugins.compose.compiler.get().pluginId)\n\n    commonExtension.apply {\n        buildFeatures {\n            compose = true\n        }\n\n        dependencies {\n            \"implementation\"(platform(compose.bom))\n        }\n    }\n\n    extensions.configure<ComposeCompilerGradlePluginExtension> {\n        val enableMetrics = project.providers.gradleProperty(\"enableComposeCompilerMetrics\").orNull.toBoolean()\n        val enableReports = project.providers.gradleProperty(\"enableComposeCompilerReports\").orNull.toBoolean()\n\n        val rootBuildDir = rootProject.layout.buildDirectory.asFile.get()\n        val relativePath = projectDir.relativeTo(rootDir)\n\n        if (enableMetrics) {\n            rootBuildDir.resolve(\"compose-metrics\").resolve(relativePath).let(metricsDestination::set)\n        }\n\n        if (enableReports) {\n            rootBuildDir.resolve(\"compose-reports\").resolve(relativePath).let(reportsDestination::set)\n        }\n    }\n\n}\n\ninternal fun Project.configureTest() {\n    tasks.withType<Test> {\n        useJUnitPlatform()\n        testLogging {\n            events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED)\n        }\n    }\n}\n\nval Project.generatedBuildDir: File get() = project.layout.buildDirectory.asFile.get().resolve(\"generated/mihon\")\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon/buildlogic/tasks/LocalesConfigTask.kt",
    "content": "package mihon.buildlogic.tasks\n\nimport org.gradle.api.Project\nimport org.gradle.api.Task\nimport org.gradle.api.tasks.TaskProvider\nimport java.io.File\n\nprivate val emptyResourcesElement = \"<resources>\\\\s*</resources>|<resources\\\\s*/>\".toRegex()\n\nfun Project.getLocalesConfigTask(outputResourceDir: File): TaskProvider<Task> {\n    return tasks.register(\"generateLocalesConfig\") {\n        val locales = fileTree(\"$projectDir/src/commonMain/moko-resources/\")\n            .matching { include(\"**/strings.xml\") }\n            .filterNot { it.readText().contains(emptyResourcesElement) }\n            .map {\n                it.parentFile.name\n                    .replace(\"base\", \"en\")\n                    .replace(\"-r\", \"-\")\n                    .replace(\"+\", \"-\")\n            }\n            .sorted()\n            .joinToString(\"\\n\") { \"|   <locale android:name=\\\"$it\\\"/>\" }\n\n        val content = \"\"\"\n        |<?xml version=\"1.0\" encoding=\"utf-8\"?>\n        |<locale-config xmlns:android=\"http://schemas.android.com/apk/res/android\">\n        $locales\n        |</locale-config>\n        \"\"\".trimMargin()\n\n        outputResourceDir.resolve(\"xml/locales_config.xml\").apply {\n            parentFile.mkdirs()\n            writeText(content)\n        }\n    }\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon.android.application.compose.gradle.kts",
    "content": "import mihon.buildlogic.configureCompose\n\nplugins {\n    id(\"com.android.application\")\n    kotlin(\"android\")\n\n    id(\"mihon.code.lint\")\n}\n\nandroid {\n    configureCompose(this)\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon.android.application.gradle.kts",
    "content": "import mihon.buildlogic.AndroidConfig\nimport mihon.buildlogic.configureAndroid\nimport mihon.buildlogic.configureTest\n\nplugins {\n    id(\"com.android.application\")\n    kotlin(\"android\")\n\n    id(\"mihon.code.lint\")\n}\n\nandroid {\n    defaultConfig {\n        targetSdk = AndroidConfig.TARGET_SDK\n    }\n    configureAndroid(this)\n    configureTest()\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts",
    "content": "import mihon.buildlogic.configureAndroid\nimport mihon.buildlogic.configureTest\n\nplugins {\n    id(\"com.android.test\")\n    kotlin(\"android\")\n\n    id(\"mihon.code.lint\")\n}\n\nandroid {\n    configureAndroid(this)\n    configureTest()\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon.code.lint.gradle.kts",
    "content": "import org.gradle.accessors.dm.LibrariesForLibs\n\nplugins {\n    id(\"com.diffplug.spotless\")\n}\n\nval libs = the<LibrariesForLibs>()\n\nval xmlFormatExclude = buildList(2) {\n    add(\"**/build/**/*.xml\")\n\n    projectDir\n        .resolve(\"src/commonMain/moko-resources\")\n        .takeIf { it.isDirectory }\n        ?.let(::fileTree)\n        ?.matching { exclude(\"/base/**\") }\n        ?.let(::add)\n}\n    .toTypedArray()\n\nspotless {\n    kotlin {\n        target(\"**/*.kt\", \"**/*.kts\")\n        targetExclude(\"**/build/**/*.kt\")\n        ktlint(libs.ktlint.core.get().version)\n        trimTrailingWhitespace()\n        endWithNewline()\n    }\n    format(\"xml\") {\n        target(\"**/*.xml\")\n        targetExclude(*xmlFormatExclude)\n        trimTrailingWhitespace()\n        endWithNewline()\n    }\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts",
    "content": "import mihon.buildlogic.configureCompose\n\nplugins {\n    id(\"com.android.library\")\n\n    id(\"mihon.code.lint\")\n}\n\nandroid {\n    configureCompose(this)\n}\n"
  },
  {
    "path": "buildSrc/src/main/kotlin/mihon.library.gradle.kts",
    "content": "import mihon.buildlogic.configureAndroid\nimport mihon.buildlogic.configureTest\n\nplugins {\n    id(\"com.android.library\")\n\n    id(\"mihon.code.lint\")\n}\n\nandroid {\n    configureAndroid(this)\n    configureTest()\n}\n"
  },
  {
    "path": "core/archive/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    kotlin(\"android\")\n    kotlin(\"plugin.serialization\")\n}\n\nandroid {\n    namespace = \"mihon.core.archive\"\n}\n\ndependencies {\n    implementation(libs.jsoup)\n    implementation(libs.libarchive)\n    implementation(libs.unifile)\n}\n"
  },
  {
    "path": "core/archive/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "core/archive/src/main/kotlin/mihon/core/archive/ArchiveEntry.kt",
    "content": "package mihon.core.archive\n\nclass ArchiveEntry(\n    val name: String,\n    val isFile: Boolean,\n)\n"
  },
  {
    "path": "core/archive/src/main/kotlin/mihon/core/archive/ArchiveInputStream.kt",
    "content": "package mihon.core.archive\n\nimport me.zhanghai.android.libarchive.Archive\nimport me.zhanghai.android.libarchive.ArchiveEntry\nimport me.zhanghai.android.libarchive.ArchiveException\nimport java.io.InputStream\nimport java.nio.ByteBuffer\nimport kotlin.concurrent.Volatile\nimport mihon.core.archive.ArchiveEntry as MihonArchiveEntry\n\ninternal class ArchiveInputStream(buffer: Long, size: Long) : InputStream() {\n    private val lock = Any()\n\n    @Volatile\n    private var isClosed = false\n\n    private val archive = Archive.readNew()\n\n    init {\n        try {\n            Archive.setCharset(archive, Charsets.UTF_8.name().toByteArray())\n            Archive.readSupportFilterAll(archive)\n            Archive.readSupportFormatAll(archive)\n            Archive.readOpenMemoryUnsafe(archive, buffer, size)\n        } catch (e: ArchiveException) {\n            close()\n            throw e\n        }\n    }\n\n    private val oneByteBuffer = ByteBuffer.allocateDirect(1)\n\n    override fun read(): Int {\n        read(oneByteBuffer)\n        return if (oneByteBuffer.hasRemaining()) oneByteBuffer.get().toUByte().toInt() else -1\n    }\n\n    override fun read(b: ByteArray, off: Int, len: Int): Int {\n        val buffer = ByteBuffer.wrap(b, off, len)\n        read(buffer)\n        return if (buffer.hasRemaining()) buffer.remaining() else -1\n    }\n\n    private fun read(buffer: ByteBuffer) {\n        buffer.clear()\n        Archive.readData(archive, buffer)\n        buffer.flip()\n    }\n\n    override fun close() {\n        synchronized(lock) {\n            if (isClosed) return\n            isClosed = true\n        }\n\n        Archive.readFree(archive)\n    }\n\n    fun getNextEntry(): MihonArchiveEntry? {\n        return Archive.readNextHeader(archive).takeUnless { it == 0L }?.let { entry ->\n            val name = ArchiveEntry.pathnameUtf8(entry) ?: ArchiveEntry.pathname(entry)?.decodeToString() ?: return null\n            val isFile = ArchiveEntry.filetype(entry) == ArchiveEntry.AE_IFREG\n            MihonArchiveEntry(name, isFile)\n        }\n    }\n}\n"
  },
  {
    "path": "core/archive/src/main/kotlin/mihon/core/archive/ArchiveReader.kt",
    "content": "package mihon.core.archive\n\nimport android.os.ParcelFileDescriptor\nimport android.system.Os\nimport android.system.OsConstants\nimport me.zhanghai.android.libarchive.ArchiveException\nimport java.io.Closeable\nimport java.io.InputStream\n\nclass ArchiveReader(pfd: ParcelFileDescriptor) : Closeable {\n    private val size = pfd.statSize\n    private val address = Os.mmap(0, size, OsConstants.PROT_READ, OsConstants.MAP_PRIVATE, pfd.fileDescriptor, 0)\n\n    fun <T> useEntries(block: (Sequence<ArchiveEntry>) -> T): T = ArchiveInputStream(address, size).use {\n        block(generateSequence { it.getNextEntry() })\n    }\n\n    fun getInputStream(entryName: String): InputStream? {\n        val archive = ArchiveInputStream(address, size)\n        try {\n            while (true) {\n                val entry = archive.getNextEntry() ?: break\n                if (entry.name == entryName) {\n                    return archive\n                }\n            }\n        } catch (e: ArchiveException) {\n            archive.close()\n            throw e\n        }\n        archive.close()\n        return null\n    }\n\n    override fun close() {\n        Os.munmap(address, size)\n    }\n}\n"
  },
  {
    "path": "core/archive/src/main/kotlin/mihon/core/archive/EpubReader.kt",
    "content": "package mihon.core.archive\n\nimport org.jsoup.Jsoup\nimport org.jsoup.nodes.Document\nimport org.jsoup.parser.Parser\nimport java.io.Closeable\nimport java.io.File\nimport java.io.InputStream\n\n/**\n * Wrapper over ArchiveReader to load files in epub format.\n */\nclass EpubReader(private val reader: ArchiveReader) : Closeable by reader {\n\n    /**\n     * Path separator used by this epub.\n     */\n    private val pathSeparator = getPathSeparator()\n\n    /**\n     * Returns an input stream for reading the contents of the specified zip file entry.\n     */\n    fun getInputStream(entryName: String): InputStream? {\n        return reader.getInputStream(entryName)\n    }\n\n    /**\n     * Returns the path of all the images found in the epub file.\n     */\n    fun getImagesFromPages(): List<String> {\n        val ref = getPackageHref()\n        val doc = getPackageDocument(ref)\n        val pages = getPagesFromDocument(doc)\n        return getImagesFromPages(pages, ref)\n    }\n\n    /**\n     * Returns the path to the package document.\n     */\n    fun getPackageHref(): String {\n        val meta = getInputStream(resolveZipPath(\"META-INF\", \"container.xml\"))\n        if (meta != null) {\n            val metaDoc = meta.use { Jsoup.parse(it, null, \"\", Parser.xmlParser()) }\n            val path = metaDoc.getElementsByTag(\"rootfile\").first()?.attr(\"full-path\")\n            if (path != null) {\n                return path\n            }\n        }\n        return resolveZipPath(\"OEBPS\", \"content.opf\")\n    }\n\n    /**\n     * Returns the package document where all the files are listed.\n     */\n    fun getPackageDocument(ref: String): Document {\n        return getInputStream(ref)!!.use { Jsoup.parse(it, null, \"\", Parser.xmlParser()) }\n    }\n\n    /**\n     * Returns all the pages from the epub.\n     */\n    private fun getPagesFromDocument(document: Document): List<String> {\n        val pages = document.select(\"manifest > item\")\n            .filter { node -> \"application/xhtml+xml\" == node.attr(\"media-type\") }\n            .associateBy { it.attr(\"id\") }\n\n        val spine = document.select(\"spine > itemref\").map { it.attr(\"idref\") }\n        return spine.mapNotNull { pages[it] }.map { it.attr(\"href\") }\n    }\n\n    /**\n     * Returns all the images contained in every page from the epub.\n     */\n    private fun getImagesFromPages(pages: List<String>, packageHref: String): List<String> {\n        val result = mutableListOf<String>()\n        val basePath = getParentDirectory(packageHref)\n        pages.forEach { page ->\n            val entryPath = resolveZipPath(basePath, page)\n            val document = getInputStream(entryPath)!!.use { Jsoup.parse(it, null, \"\") }\n            val imageBasePath = getParentDirectory(entryPath)\n\n            document.allElements.forEach {\n                when (it.tagName()) {\n                    \"img\" -> result.add(resolveZipPath(imageBasePath, it.attr(\"src\")))\n                    \"image\" -> result.add(resolveZipPath(imageBasePath, it.attr(\"xlink:href\")))\n                }\n            }\n        }\n\n        return result\n    }\n\n    /**\n     * Returns the path separator used by the epub file.\n     */\n    private fun getPathSeparator(): String {\n        val meta = getInputStream(\"META-INF\\\\container.xml\")\n        return if (meta != null) {\n            meta.close()\n            \"\\\\\"\n        } else {\n            \"/\"\n        }\n    }\n\n    /**\n     * Resolves a zip path from base and relative components and a path separator.\n     */\n    private fun resolveZipPath(basePath: String, relativePath: String): String {\n        if (relativePath.startsWith(pathSeparator)) {\n            // Path is absolute, so return as-is.\n            return relativePath\n        }\n\n        var fixedBasePath = basePath.replace(pathSeparator, File.separator)\n        if (!fixedBasePath.startsWith(File.separator)) {\n            fixedBasePath = \"${File.separator}$fixedBasePath\"\n        }\n\n        val fixedRelativePath = relativePath.replace(pathSeparator, File.separator)\n        val resolvedPath = File(fixedBasePath, fixedRelativePath).canonicalPath\n        return resolvedPath.replace(File.separator, pathSeparator).substring(1)\n    }\n\n    /**\n     * Gets the parent directory of a path.\n     */\n    private fun getParentDirectory(path: String): String {\n        val separatorIndex = path.lastIndexOf(pathSeparator)\n        return if (separatorIndex >= 0) {\n            path.substring(0, separatorIndex)\n        } else {\n            \"\"\n        }\n    }\n}\n"
  },
  {
    "path": "core/archive/src/main/kotlin/mihon/core/archive/UniFileExtensions.kt",
    "content": "package mihon.core.archive\n\nimport android.content.Context\nimport android.os.ParcelFileDescriptor\nimport com.hippo.unifile.UniFile\n\ninternal fun UniFile.openFileDescriptor(context: Context, mode: String): ParcelFileDescriptor =\n    context.contentResolver.openFileDescriptor(uri, mode) ?: error(\"Failed to open file descriptor: ${filePath ?: uri}\")\n\nfun UniFile.archiveReader(context: Context) = openFileDescriptor(context, \"r\").use { ArchiveReader(it) }\n\nfun UniFile.epubReader(context: Context) = EpubReader(archiveReader(context))\n"
  },
  {
    "path": "core/archive/src/main/kotlin/mihon/core/archive/ZipWriter.kt",
    "content": "package mihon.core.archive\n\nimport android.content.Context\nimport android.system.Os\nimport android.system.StructStat\nimport com.hippo.unifile.UniFile\nimport me.zhanghai.android.libarchive.Archive\nimport me.zhanghai.android.libarchive.ArchiveEntry\nimport me.zhanghai.android.libarchive.ArchiveException\nimport java.io.Closeable\nimport java.nio.ByteBuffer\n\nclass ZipWriter(val context: Context, file: UniFile) : Closeable {\n    private val pfd = file.openFileDescriptor(context, \"wt\")\n    private val archive = Archive.writeNew()\n    private val entry = ArchiveEntry.new2(archive)\n    private val buffer = ByteBuffer.allocateDirect(8192)\n\n    init {\n        try {\n            Archive.setCharset(archive, Charsets.UTF_8.name().toByteArray())\n            Archive.writeSetFormatZip(archive)\n            Archive.writeZipSetCompressionStore(archive)\n            Archive.writeOpenFd(archive, pfd.fd)\n        } catch (e: ArchiveException) {\n            close()\n            throw e\n        }\n    }\n\n    fun write(file: UniFile) {\n        file.openFileDescriptor(context, \"r\").use {\n            val fd = it.fileDescriptor\n            ArchiveEntry.clear(entry)\n            ArchiveEntry.setPathnameUtf8(entry, file.name)\n            val stat = Os.fstat(fd)\n            ArchiveEntry.setStat(entry, stat.toArchiveStat())\n            Archive.writeHeader(archive, entry)\n            while (true) {\n                buffer.clear()\n                Os.read(fd, buffer)\n                if (buffer.position() == 0) break\n                buffer.flip()\n                Archive.writeData(archive, buffer)\n            }\n            Archive.writeFinishEntry(archive)\n        }\n    }\n\n    override fun close() {\n        ArchiveEntry.free(entry)\n        Archive.writeFree(archive)\n        pfd.close()\n    }\n}\n\nprivate fun StructStat.toArchiveStat() = ArchiveEntry.StructStat().apply {\n    stDev = st_dev\n    stMode = st_mode\n    stNlink = st_nlink.toInt()\n    stUid = st_uid\n    stGid = st_gid\n    stRdev = st_rdev\n    stSize = st_size\n    stBlksize = st_blksize\n    stBlocks = st_blocks\n    stAtim = st_atime.toTimespec()\n    stMtim = st_mtime.toTimespec()\n    stCtim = st_ctime.toTimespec()\n    stIno = st_ino\n}\n\nprivate fun Long.toTimespec() = ArchiveEntry.StructTimespec().also { it.tvSec = this }\n"
  },
  {
    "path": "core/common/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    kotlin(\"android\")\n    kotlin(\"plugin.serialization\")\n}\n\nandroid {\n    namespace = \"eu.kanade.tachiyomi.core.common\"\n}\n\nkotlin {\n    compilerOptions {\n        freeCompilerArgs.addAll(\n            \"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi\",\n            \"-opt-in=kotlinx.serialization.ExperimentalSerializationApi\",\n        )\n    }\n}\n\ndependencies {\n    implementation(projects.i18n)\n\n    api(libs.logcat)\n\n    api(libs.rxjava)\n\n    api(libs.okhttp.core)\n    api(libs.okhttp.logging)\n    api(libs.okhttp.brotli)\n    api(libs.okhttp.dnsoverhttps)\n    api(libs.okio)\n\n    implementation(libs.image.decoder)\n\n    implementation(libs.unifile)\n    implementation(libs.libarchive)\n\n    api(kotlinx.coroutines.core)\n    api(kotlinx.serialization.json)\n    api(kotlinx.serialization.json.okio)\n\n    api(libs.preferencektx)\n\n    implementation(libs.jsoup)\n\n    // Sort\n    implementation(libs.natural.comparator)\n\n    // JavaScript engine\n    implementation(libs.bundles.js.engine)\n\n    testImplementation(libs.bundles.test)\n    testRuntimeOnly(libs.junit.platform.launcher)\n}\n"
  },
  {
    "path": "core/common/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/PrivacyPreferences.kt",
    "content": "package eu.kanade.tachiyomi.core.security\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\n\nclass PrivacyPreferences(\n    preferenceStore: PreferenceStore,\n) {\n    val crashlytics: Preference<Boolean> = preferenceStore.getBoolean(\"crashlytics\", true)\n\n    val analytics: Preference<Boolean> = preferenceStore.getBoolean(\"analytics\", true)\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/SecurityPreferences.kt",
    "content": "package eu.kanade.tachiyomi.core.security\n\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.getEnum\nimport tachiyomi.i18n.MR\n\nclass SecurityPreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    val useAuthenticator: Preference<Boolean> = preferenceStore.getBoolean(\"use_biometric_lock\", false)\n\n    val lockAppAfter: Preference<Int> = preferenceStore.getInt(\"lock_app_after\", 0)\n\n    val secureScreen: Preference<SecureScreenMode> = preferenceStore.getEnum(\n        \"secure_screen_v2\",\n        SecureScreenMode.INCOGNITO,\n    )\n\n    val hideNotificationContent: Preference<Boolean> = preferenceStore.getBoolean(\"hide_notification_content\", false)\n\n    /**\n     * For app lock. Will be set when there is a pending timed lock.\n     * Otherwise, this pref should be deleted.\n     */\n    val lastAppClosed: Preference<Long> = preferenceStore.getLong(\n        Preference.appStateKey(\"last_app_closed\"),\n        0,\n    )\n\n    enum class SecureScreenMode(val titleRes: StringResource) {\n        ALWAYS(MR.strings.lock_always),\n        INCOGNITO(MR.strings.pref_incognito_mode),\n        NEVER(MR.strings.lock_never),\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/AndroidCookieJar.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport android.webkit.CookieManager\nimport okhttp3.Cookie\nimport okhttp3.CookieJar\nimport okhttp3.HttpUrl\n\nclass AndroidCookieJar : CookieJar {\n\n    private val manager = CookieManager.getInstance()\n\n    override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {\n        val urlString = url.toString()\n\n        cookies.forEach { manager.setCookie(urlString, it.toString()) }\n    }\n\n    override fun loadForRequest(url: HttpUrl): List<Cookie> {\n        return get(url)\n    }\n\n    fun get(url: HttpUrl): List<Cookie> {\n        val cookies = manager.getCookie(url.toString())\n\n        return if (cookies != null && cookies.isNotEmpty()) {\n            cookies.split(\";\").mapNotNull { Cookie.parse(url, it) }\n        } else {\n            emptyList()\n        }\n    }\n\n    fun remove(url: HttpUrl, cookieNames: List<String>? = null, maxAge: Int = -1): Int {\n        val urlString = url.toString()\n        val cookies = manager.getCookie(urlString) ?: return 0\n\n        fun List<String>.filterNames(): List<String> {\n            return if (cookieNames != null) {\n                this.filter { it in cookieNames }\n            } else {\n                this\n            }\n        }\n\n        return cookies.split(\";\")\n            .map { it.substringBefore(\"=\") }\n            .filterNames()\n            .onEach { manager.setCookie(urlString, \"$it=;Max-Age=$maxAge\") }\n            .count()\n    }\n\n    fun removeAll() {\n        manager.removeAllCookies {}\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport okhttp3.HttpUrl.Companion.toHttpUrl\nimport okhttp3.OkHttpClient\nimport okhttp3.dnsoverhttps.DnsOverHttps\nimport java.net.InetAddress\n\n/**\n * Based on https://github.com/square/okhttp/blob/ef5d0c83f7bbd3a0c0534e7ca23cbc4ee7550f3b/okhttp-dnsoverhttps/src/test/java/okhttp3/dnsoverhttps/DohProviders.java\n */\n\nconst val PREF_DOH_CLOUDFLARE = 1\nconst val PREF_DOH_GOOGLE = 2\nconst val PREF_DOH_ADGUARD = 3\nconst val PREF_DOH_QUAD9 = 4\nconst val PREF_DOH_ALIDNS = 5\nconst val PREF_DOH_DNSPOD = 6\nconst val PREF_DOH_360 = 7\nconst val PREF_DOH_QUAD101 = 8\nconst val PREF_DOH_MULLVAD = 9\nconst val PREF_DOH_CONTROLD = 10\nconst val PREF_DOH_NJALLA = 11\nconst val PREF_DOH_SHECAN = 12\n\nfun OkHttpClient.Builder.dohCloudflare() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://cloudflare-dns.com/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"162.159.36.1\"),\n            InetAddress.getByName(\"162.159.46.1\"),\n            InetAddress.getByName(\"1.1.1.1\"),\n            InetAddress.getByName(\"1.0.0.1\"),\n            InetAddress.getByName(\"162.159.132.53\"),\n            InetAddress.getByName(\"2606:4700:4700::1111\"),\n            InetAddress.getByName(\"2606:4700:4700::1001\"),\n            InetAddress.getByName(\"2606:4700:4700::0064\"),\n            InetAddress.getByName(\"2606:4700:4700::6400\"),\n        )\n        .build(),\n)\n\nfun OkHttpClient.Builder.dohGoogle() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://dns.google/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"8.8.4.4\"),\n            InetAddress.getByName(\"8.8.8.8\"),\n            InetAddress.getByName(\"2001:4860:4860::8888\"),\n            InetAddress.getByName(\"2001:4860:4860::8844\"),\n        )\n        .build(),\n)\n\n// AdGuard \"Default\" DNS works too but for the sake of making sure no site is blacklisted,\n// we use \"Unfiltered\"\nfun OkHttpClient.Builder.dohAdGuard() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://dns-unfiltered.adguard.com/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"94.140.14.140\"),\n            InetAddress.getByName(\"94.140.14.141\"),\n            InetAddress.getByName(\"2a10:50c0::1:ff\"),\n            InetAddress.getByName(\"2a10:50c0::2:ff\"),\n        )\n        .build(),\n)\n\nfun OkHttpClient.Builder.dohQuad9() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://dns.quad9.net/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"9.9.9.9\"),\n            InetAddress.getByName(\"149.112.112.112\"),\n            InetAddress.getByName(\"2620:fe::fe\"),\n            InetAddress.getByName(\"2620:fe::9\"),\n        )\n        .build(),\n)\n\nfun OkHttpClient.Builder.dohAliDNS() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://dns.alidns.com/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"223.5.5.5\"),\n            InetAddress.getByName(\"223.6.6.6\"),\n            InetAddress.getByName(\"2400:3200::1\"),\n            InetAddress.getByName(\"2400:3200:baba::1\"),\n        )\n        .build(),\n)\n\nfun OkHttpClient.Builder.dohDNSPod() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://doh.pub/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"1.12.12.12\"),\n            InetAddress.getByName(\"120.53.53.53\"),\n        )\n        .build(),\n)\n\nfun OkHttpClient.Builder.doh360() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://doh.360.cn/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"101.226.4.6\"),\n            InetAddress.getByName(\"218.30.118.6\"),\n            InetAddress.getByName(\"123.125.81.6\"),\n            InetAddress.getByName(\"140.207.198.6\"),\n            InetAddress.getByName(\"180.163.249.75\"),\n            InetAddress.getByName(\"101.199.113.208\"),\n            InetAddress.getByName(\"36.99.170.86\"),\n        )\n        .build(),\n)\n\nfun OkHttpClient.Builder.dohQuad101() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://dns.twnic.tw/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"101.101.101.101\"),\n            InetAddress.getByName(\"2001:de4::101\"),\n            InetAddress.getByName(\"2001:de4::102\"),\n        )\n        .build(),\n)\n\n/*\n * Mullvad DoH\n * without ad blocking option\n * Source: https://mullvad.net/en/help/dns-over-https-and-dns-over-tls\n */\nfun OkHttpClient.Builder.dohMullvad() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\" https://dns.mullvad.net/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"194.242.2.2\"),\n            InetAddress.getByName(\"2a07:e340::2\"),\n        )\n        .build(),\n)\n\n/*\n * Control D\n * unfiltered option\n * Source: https://controld.com/free-dns/?\n */\nfun OkHttpClient.Builder.dohControlD() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://freedns.controld.com/p0\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"76.76.2.0\"),\n            InetAddress.getByName(\"76.76.10.0\"),\n            InetAddress.getByName(\"2606:1a40::\"),\n            InetAddress.getByName(\"2606:1a40:1::\"),\n        )\n        .build(),\n)\n\n/*\n * Njalla\n * Non logging and uncensored\n */\nfun OkHttpClient.Builder.dohNajalla() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://dns.njal.la/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"95.215.19.53\"),\n            InetAddress.getByName(\"2001:67c:2354:2::53\"),\n        )\n        .build(),\n)\n\n/**\n * Source: https://shecan.ir/\n */\nfun OkHttpClient.Builder.dohShecan() = dns(\n    DnsOverHttps.Builder().client(build())\n        .url(\"https://free.shecan.ir/dns-query\".toHttpUrl())\n        .bootstrapDnsHosts(\n            InetAddress.getByName(\"178.22.122.100\"),\n            InetAddress.getByName(\"185.51.200.2\"),\n        )\n        .build(),\n)\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport android.content.Context\nimport app.cash.quickjs.QuickJs\nimport tachiyomi.core.common.util.lang.withIOContext\n\n/**\n * Util for evaluating JavaScript in sources.\n */\n@Suppress(\"UNUSED\", \"UNCHECKED_CAST\")\nclass JavaScriptEngine(context: Context) {\n\n    /**\n     * Evaluate arbitrary JavaScript code and get the result as a primtive type\n     * (e.g., String, Int).\n     *\n     * @since extensions-lib 1.4\n     * @param script JavaScript to execute.\n     * @return Result of JavaScript code as a primitive type.\n     */\n    suspend fun <T> evaluate(script: String): T = withIOContext {\n        QuickJs.create().use {\n            it.evaluate(script) as T\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor\nimport eu.kanade.tachiyomi.network.interceptor.IgnoreGzipInterceptor\nimport eu.kanade.tachiyomi.network.interceptor.UncaughtExceptionInterceptor\nimport eu.kanade.tachiyomi.network.interceptor.UserAgentInterceptor\nimport okhttp3.Cache\nimport okhttp3.OkHttpClient\nimport okhttp3.brotli.BrotliInterceptor\nimport okhttp3.logging.HttpLoggingInterceptor\nimport java.io.File\nimport java.util.concurrent.TimeUnit\n\nclass NetworkHelper(\n    private val context: Context,\n    private val preferences: NetworkPreferences,\n) {\n\n    val cookieJar = AndroidCookieJar()\n\n    private val clientBuilder: OkHttpClient.Builder = run {\n        val builder = OkHttpClient.Builder()\n            .cookieJar(cookieJar)\n            .connectTimeout(30, TimeUnit.SECONDS)\n            .readTimeout(30, TimeUnit.SECONDS)\n            .callTimeout(2, TimeUnit.MINUTES)\n            .cache(\n                Cache(\n                    directory = File(context.cacheDir, \"network_cache\"),\n                    maxSize = 5L * 1024 * 1024, // 5 MiB\n                ),\n            )\n            .addInterceptor(UncaughtExceptionInterceptor())\n            .addInterceptor(UserAgentInterceptor(::defaultUserAgentProvider))\n            .addNetworkInterceptor(IgnoreGzipInterceptor())\n            .addNetworkInterceptor(BrotliInterceptor)\n\n        if (preferences.verboseLogging.get()) {\n            val httpLoggingInterceptor = HttpLoggingInterceptor().apply {\n                level = HttpLoggingInterceptor.Level.HEADERS\n            }\n            builder.addNetworkInterceptor(httpLoggingInterceptor)\n        }\n\n        when (preferences.dohProvider.get()) {\n            PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()\n            PREF_DOH_GOOGLE -> builder.dohGoogle()\n            PREF_DOH_ADGUARD -> builder.dohAdGuard()\n            PREF_DOH_QUAD9 -> builder.dohQuad9()\n            PREF_DOH_ALIDNS -> builder.dohAliDNS()\n            PREF_DOH_DNSPOD -> builder.dohDNSPod()\n            PREF_DOH_360 -> builder.doh360()\n            PREF_DOH_QUAD101 -> builder.dohQuad101()\n            PREF_DOH_MULLVAD -> builder.dohMullvad()\n            PREF_DOH_CONTROLD -> builder.dohControlD()\n            PREF_DOH_NJALLA -> builder.dohNajalla()\n            PREF_DOH_SHECAN -> builder.dohShecan()\n            else -> builder\n        }\n    }\n\n    val nonCloudflareClient = clientBuilder.build()\n\n    val client = clientBuilder\n        .addInterceptor(\n            CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider),\n        )\n        .build()\n\n    /**\n     * @deprecated Since extension-lib 1.5\n     */\n    @Deprecated(\"The regular client handles Cloudflare by default\")\n    @Suppress(\"UNUSED\")\n    val cloudflareClient: OkHttpClient = client\n\n    fun defaultUserAgentProvider() = preferences.defaultUserAgent.get().trim()\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkPreferences.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\n\nclass NetworkPreferences(\n    preferenceStore: PreferenceStore,\n    verboseLoggingDefault: Boolean = false,\n) {\n\n    val verboseLogging: Preference<Boolean> = preferenceStore.getBoolean(\"verbose_logging\", verboseLoggingDefault)\n\n    val dohProvider: Preference<Int> = preferenceStore.getInt(\"doh_provider\", -1)\n\n    val defaultUserAgent: Preference<String> = preferenceStore.getString(\n        \"default_user_agent\",\n        \"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36\",\n    )\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.suspendCancellableCoroutine\nimport kotlinx.serialization.DeserializationStrategy\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.okio.decodeFromBufferedSource\nimport kotlinx.serialization.serializer\nimport okhttp3.Call\nimport okhttp3.Callback\nimport okhttp3.MediaType.Companion.toMediaType\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport okhttp3.Response\nimport rx.Observable\nimport rx.Producer\nimport rx.Subscription\nimport java.io.IOException\nimport kotlin.concurrent.atomics.AtomicBoolean\nimport kotlin.concurrent.atomics.ExperimentalAtomicApi\nimport kotlin.coroutines.resumeWithException\n\nval jsonMime = \"application/json; charset=utf-8\".toMediaType()\n\n@OptIn(ExperimentalAtomicApi::class)\nfun Call.asObservable(): Observable<Response> {\n    return Observable.unsafeCreate { subscriber ->\n        // Since Call is a one-shot type, clone it for each new subscriber.\n        val call = clone()\n\n        // Wrap the call in a helper which handles both unsubscription and backpressure.\n        val requestArbiter = object : Producer, Subscription {\n            val boolean = AtomicBoolean(false)\n            override fun request(n: Long) {\n                if (n == 0L || !boolean.compareAndSet(expectedValue = false, newValue = true)) return\n\n                try {\n                    val response = call.execute()\n                    if (!subscriber.isUnsubscribed) {\n                        subscriber.onNext(response)\n                        subscriber.onCompleted()\n                    }\n                } catch (e: Exception) {\n                    if (!subscriber.isUnsubscribed) {\n                        subscriber.onError(e)\n                    }\n                }\n            }\n\n            override fun unsubscribe() {\n                call.cancel()\n            }\n\n            override fun isUnsubscribed(): Boolean {\n                return call.isCanceled()\n            }\n        }\n\n        subscriber.add(requestArbiter)\n        subscriber.setProducer(requestArbiter)\n    }\n}\n\nfun Call.asObservableSuccess(): Observable<Response> {\n    return asObservable().doOnNext { response ->\n        if (!response.isSuccessful) {\n            response.close()\n            throw HttpException(response.code)\n        }\n    }\n}\n\n// Based on https://github.com/gildor/kotlin-coroutines-okhttp\n@OptIn(ExperimentalCoroutinesApi::class)\nprivate suspend fun Call.await(callStack: Array<StackTraceElement>): Response {\n    return suspendCancellableCoroutine { continuation ->\n        val callback =\n            object : Callback {\n                override fun onResponse(call: Call, response: Response) {\n                    continuation.resume(response) {\n                        response.body.close()\n                    }\n                }\n\n                override fun onFailure(call: Call, e: IOException) {\n                    // Don't bother with resuming the continuation if it is already cancelled.\n                    if (continuation.isCancelled) return\n                    val exception = IOException(e.message, e).apply { stackTrace = callStack }\n                    continuation.resumeWithException(exception)\n                }\n            }\n\n        enqueue(callback)\n\n        continuation.invokeOnCancellation {\n            try {\n                cancel()\n            } catch (ex: Throwable) {\n                // Ignore cancel exception\n            }\n        }\n    }\n}\n\nsuspend fun Call.await(): Response {\n    val callStack = Exception().stackTrace.run { copyOfRange(1, size) }\n    return await(callStack)\n}\n\n/**\n * @since extensions-lib 1.5\n */\nsuspend fun Call.awaitSuccess(): Response {\n    val callStack = Exception().stackTrace.run { copyOfRange(1, size) }\n    val response = await(callStack)\n    if (!response.isSuccessful) {\n        response.close()\n        throw HttpException(response.code).apply { stackTrace = callStack }\n    }\n    return response\n}\n\nfun OkHttpClient.newCachelessCallWithProgress(request: Request, listener: ProgressListener): Call {\n    val progressClient = newBuilder()\n        .cache(null)\n        .addNetworkInterceptor { chain ->\n            val originalResponse = chain.proceed(chain.request())\n            originalResponse.newBuilder()\n                .body(ProgressResponseBody(originalResponse.body, listener))\n                .build()\n        }\n        .build()\n\n    return progressClient.newCall(request)\n}\n\ncontext(_: Json)\ninline fun <reified T> Response.parseAs(): T {\n    return decodeFromJsonResponse(serializer(), this)\n}\n\ncontext(json: Json)\nfun <T> decodeFromJsonResponse(\n    deserializer: DeserializationStrategy<T>,\n    response: Response,\n): T {\n    return response.body.source().use {\n        json.decodeFromBufferedSource(deserializer, it)\n    }\n}\n\n/**\n * Exception that handles HTTP codes considered not successful by OkHttp.\n * Use it to have a standardized error message in the app across the extensions.\n *\n * @since extensions-lib 1.5\n * @param code [Int] the HTTP status code\n */\nclass HttpException(val code: Int) : IllegalStateException(\"HTTP error $code\")\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressListener.kt",
    "content": "package eu.kanade.tachiyomi.network\n\ninterface ProgressListener {\n    fun update(bytesRead: Long, contentLength: Long, done: Boolean)\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressResponseBody.kt",
    "content": "package eu.kanade.tachiyomi.network\n\nimport okhttp3.MediaType\nimport okhttp3.ResponseBody\nimport okio.Buffer\nimport okio.BufferedSource\nimport okio.ForwardingSource\nimport okio.Source\nimport okio.buffer\nimport java.io.IOException\n\nclass ProgressResponseBody(\n    private val responseBody: ResponseBody,\n    private val progressListener: ProgressListener,\n) : ResponseBody() {\n\n    private val bufferedSource: BufferedSource by lazy {\n        source(responseBody.source()).buffer()\n    }\n\n    override fun contentType(): MediaType? {\n        return responseBody.contentType()\n    }\n\n    override fun contentLength(): Long {\n        return responseBody.contentLength()\n    }\n\n    override fun source(): BufferedSource {\n        return bufferedSource\n    }\n\n    private fun source(source: Source): Source {\n        return object : ForwardingSource(source) {\n            var totalBytesRead = 0L\n\n            @Throws(IOException::class)\n            override fun read(sink: Buffer, byteCount: Long): Long {\n                val bytesRead = super.read(sink, byteCount)\n                // read() returns the number of bytes read, or -1 if this source is exhausted.\n                totalBytesRead += if (bytesRead != -1L) bytesRead else 0\n                progressListener.update(\n                    totalBytesRead,\n                    responseBody.contentLength(),\n                    bytesRead == -1L,\n                )\n                return bytesRead\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt",
    "content": "@file:Suppress(\"FunctionName\")\n\npackage eu.kanade.tachiyomi.network\n\nimport okhttp3.CacheControl\nimport okhttp3.FormBody\nimport okhttp3.Headers\nimport okhttp3.HttpUrl\nimport okhttp3.HttpUrl.Companion.toHttpUrl\nimport okhttp3.Request\nimport okhttp3.RequestBody\nimport java.util.concurrent.TimeUnit.MINUTES\n\nprivate val DEFAULT_CACHE_CONTROL = CacheControl.Builder().maxAge(10, MINUTES).build()\nprivate val DEFAULT_HEADERS = Headers.Builder().build()\nprivate val DEFAULT_BODY: RequestBody = FormBody.Builder().build()\n\nfun GET(\n    url: String,\n    headers: Headers = DEFAULT_HEADERS,\n    cache: CacheControl = DEFAULT_CACHE_CONTROL,\n): Request {\n    return GET(url.toHttpUrl(), headers, cache)\n}\n\n/**\n * @since extensions-lib 1.4\n */\nfun GET(\n    url: HttpUrl,\n    headers: Headers = DEFAULT_HEADERS,\n    cache: CacheControl = DEFAULT_CACHE_CONTROL,\n): Request {\n    return Request.Builder()\n        .url(url)\n        .headers(headers)\n        .cacheControl(cache)\n        .build()\n}\n\nfun POST(\n    url: String,\n    headers: Headers = DEFAULT_HEADERS,\n    body: RequestBody = DEFAULT_BODY,\n    cache: CacheControl = DEFAULT_CACHE_CONTROL,\n): Request {\n    return Request.Builder()\n        .url(url)\n        .post(body)\n        .headers(headers)\n        .cacheControl(cache)\n        .build()\n}\n\nfun PUT(\n    url: String,\n    headers: Headers = DEFAULT_HEADERS,\n    body: RequestBody = DEFAULT_BODY,\n    cache: CacheControl = DEFAULT_CACHE_CONTROL,\n): Request {\n    return Request.Builder()\n        .url(url)\n        .put(body)\n        .headers(headers)\n        .cacheControl(cache)\n        .build()\n}\n\nfun DELETE(\n    url: String,\n    headers: Headers = DEFAULT_HEADERS,\n    body: RequestBody = DEFAULT_BODY,\n    cache: CacheControl = DEFAULT_CACHE_CONTROL,\n): Request {\n    return Request.Builder()\n        .url(url)\n        .delete(body)\n        .headers(headers)\n        .cacheControl(cache)\n        .build()\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport android.annotation.SuppressLint\nimport android.content.Context\nimport android.webkit.WebResourceRequest\nimport android.webkit.WebResourceResponse\nimport android.webkit.WebView\nimport android.webkit.WebViewClient\nimport android.widget.Toast\nimport androidx.core.content.ContextCompat\nimport eu.kanade.tachiyomi.network.AndroidCookieJar\nimport eu.kanade.tachiyomi.util.system.isOutdated\nimport eu.kanade.tachiyomi.util.system.toast\nimport okhttp3.Cookie\nimport okhttp3.HttpUrl.Companion.toHttpUrl\nimport okhttp3.Interceptor\nimport okhttp3.Request\nimport okhttp3.Response\nimport org.jsoup.Jsoup\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport java.io.IOException\nimport java.util.concurrent.CountDownLatch\n\nclass CloudflareInterceptor(\n    private val context: Context,\n    private val cookieManager: AndroidCookieJar,\n    defaultUserAgentProvider: () -> String,\n) : WebViewInterceptor(context, defaultUserAgentProvider) {\n\n    private val executor = ContextCompat.getMainExecutor(context)\n\n    override fun shouldIntercept(response: Response): Boolean {\n        // Check if Cloudflare anti-bot is on\n        return if (response.code in ERROR_CODES && response.header(\"Server\") in SERVER_CHECK) {\n            val document = Jsoup.parse(\n                response.peekBody(Long.MAX_VALUE).string(),\n                response.request.url.toString(),\n            )\n\n            // solve with webview only on captcha, not on geo block\n            document.getElementById(\"challenge-error-title\") != null ||\n                document.getElementById(\"challenge-error-text\") != null\n        } else {\n            false\n        }\n    }\n\n    override fun intercept(\n        chain: Interceptor.Chain,\n        request: Request,\n        response: Response,\n    ): Response {\n        try {\n            response.close()\n            cookieManager.remove(request.url, COOKIE_NAMES, 0)\n            val oldCookie = cookieManager.get(request.url)\n                .firstOrNull { it.name == \"cf_clearance\" }\n            resolveWithWebView(request, oldCookie)\n\n            return chain.proceed(request)\n        }\n        // Because OkHttp's enqueue only handles IOExceptions, wrap the exception so that\n        // we don't crash the entire app\n        catch (e: CloudflareBypassException) {\n            throw IOException(context.stringResource(MR.strings.information_cloudflare_bypass_failure), e)\n        } catch (e: Exception) {\n            throw IOException(e)\n        }\n    }\n\n    @SuppressLint(\"SetJavaScriptEnabled\")\n    private fun resolveWithWebView(originalRequest: Request, oldCookie: Cookie?) {\n        // We need to lock this thread until the WebView finds the challenge solution url, because\n        // OkHttp doesn't support asynchronous interceptors.\n        val latch = CountDownLatch(1)\n\n        var webview: WebView? = null\n\n        var challengeFound = false\n        var cloudflareBypassed = false\n        var isWebViewOutdated = false\n\n        val origRequestUrl = originalRequest.url.toString()\n        val headers = parseHeaders(originalRequest.headers)\n\n        executor.execute {\n            webview = createWebView(originalRequest)\n\n            webview.webViewClient = object : WebViewClient() {\n                override fun onPageFinished(view: WebView, url: String) {\n                    fun isCloudFlareBypassed(): Boolean {\n                        return cookieManager.get(origRequestUrl.toHttpUrl())\n                            .firstOrNull { it.name == \"cf_clearance\" }\n                            .let { it != null && it != oldCookie }\n                    }\n\n                    if (isCloudFlareBypassed()) {\n                        cloudflareBypassed = true\n                        latch.countDown()\n                    }\n\n                    if (url == origRequestUrl && !challengeFound) {\n                        // The first request didn't return the challenge, abort.\n                        latch.countDown()\n                    }\n                }\n\n                override fun onReceivedHttpError(\n                    view: WebView?,\n                    request: WebResourceRequest?,\n                    errorResponse: WebResourceResponse?,\n                ) {\n                    if (request?.isForMainFrame == true) {\n                        if (errorResponse?.statusCode in ERROR_CODES) {\n                            // Found the Cloudflare challenge page.\n                            challengeFound = true\n                        } else {\n                            // Unlock thread, the challenge wasn't found.\n                            latch.countDown()\n                        }\n                    }\n                }\n            }\n\n            webview.loadUrl(origRequestUrl, headers)\n        }\n\n        latch.awaitFor30Seconds()\n\n        executor.execute {\n            if (!cloudflareBypassed) {\n                isWebViewOutdated = webview?.isOutdated() == true\n            }\n\n            webview?.run {\n                stopLoading()\n                destroy()\n            }\n        }\n\n        // Throw exception if we failed to bypass Cloudflare\n        if (!cloudflareBypassed) {\n            // Prompt user to update WebView if it seems too outdated\n            if (isWebViewOutdated) {\n                context.toast(MR.strings.information_webview_outdated, Toast.LENGTH_LONG)\n            }\n\n            throw CloudflareBypassException()\n        }\n    }\n}\n\nprivate val ERROR_CODES = listOf(403, 503)\nprivate val SERVER_CHECK = arrayOf(\"cloudflare-nginx\", \"cloudflare\")\nprivate val COOKIE_NAMES = listOf(\"cf_clearance\")\n\nprivate class CloudflareBypassException : Exception()\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/IgnoreGzipInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport okhttp3.Interceptor\nimport okhttp3.Response\n\n/**\n * To use [okhttp3.brotli.BrotliInterceptor] as a network interceptor,\n * add [IgnoreGzipInterceptor] right before it.\n *\n * This nullifies the transparent gzip of [okhttp3.internal.http.BridgeInterceptor]\n * so gzip and Brotli are explicitly handled by the [okhttp3.brotli.BrotliInterceptor].\n */\nclass IgnoreGzipInterceptor : Interceptor {\n    override fun intercept(chain: Interceptor.Chain): Response {\n        var request = chain.request()\n        if (request.header(\"Accept-Encoding\") == \"gzip\") {\n            request = request.newBuilder().removeHeader(\"Accept-Encoding\").build()\n        }\n        return chain.proceed(request)\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/RateLimitInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport android.os.SystemClock\nimport okhttp3.Interceptor\nimport okhttp3.OkHttpClient\nimport okhttp3.Response\nimport java.io.IOException\nimport java.util.ArrayDeque\nimport java.util.concurrent.Semaphore\nimport java.util.concurrent.TimeUnit\nimport kotlin.time.Duration\nimport kotlin.time.Duration.Companion.seconds\nimport kotlin.time.toDuration\nimport kotlin.time.toDurationUnit\n\n/**\n * An OkHttp interceptor that handles rate limiting.\n *\n * This uses `java.time` APIs and is the legacy method, kept\n * for compatibility reasons with existing extensions.\n *\n * Examples:\n *\n * permits = 5,  period = 1, unit = seconds  =>  5 requests per second\n * permits = 10, period = 2, unit = minutes  =>  10 requests per 2 minutes\n *\n * @since extension-lib 1.3\n *\n * @param permits [Int]   Number of requests allowed within a period of units.\n * @param period [Long]   The limiting duration. Defaults to 1.\n * @param unit [TimeUnit] The unit of time for the period. Defaults to seconds.\n */\n@Deprecated(\"Use the version with kotlin.time APIs instead.\")\nfun OkHttpClient.Builder.rateLimit(\n    permits: Int,\n    period: Long = 1,\n    unit: TimeUnit = TimeUnit.SECONDS,\n) = addInterceptor(RateLimitInterceptor(null, permits, period.toDuration(unit.toDurationUnit())))\n\n/**\n * An OkHttp interceptor that handles rate limiting.\n *\n * Examples:\n *\n * permits = 5,  period = 1.seconds  =>  5 requests per second\n * permits = 10, period = 2.minutes  =>  10 requests per 2 minutes\n *\n * @since extension-lib 1.5\n *\n * @param permits [Int]     Number of requests allowed within a period of units.\n * @param period [Duration] The limiting duration. Defaults to 1.seconds.\n */\nfun OkHttpClient.Builder.rateLimit(permits: Int, period: Duration = 1.seconds) =\n    addInterceptor(RateLimitInterceptor(null, permits, period))\n\n/** We can probably accept domains or wildcards by comparing with [endsWith], etc. */\n@Suppress(\"PLATFORM_CLASS_MAPPED_TO_KOTLIN\")\ninternal class RateLimitInterceptor(\n    private val host: String?,\n    private val permits: Int,\n    period: Duration,\n) : Interceptor {\n\n    private val requestQueue = ArrayDeque<Long>(permits)\n    private val rateLimitMillis = period.inWholeMilliseconds\n    private val fairLock = Semaphore(1, true)\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val call = chain.call()\n        if (call.isCanceled()) throw IOException(\"Canceled\")\n\n        val request = chain.request()\n        when (host) {\n            null, request.url.host -> {} // need rate limit\n            else -> return chain.proceed(request)\n        }\n\n        try {\n            fairLock.acquire()\n        } catch (e: InterruptedException) {\n            throw IOException(e)\n        }\n\n        val requestQueue = this.requestQueue\n        val timestamp: Long\n\n        try {\n            synchronized(requestQueue) {\n                while (requestQueue.size >= permits) { // queue is full, remove expired entries\n                    val periodStart = SystemClock.elapsedRealtime() - rateLimitMillis\n                    var hasRemovedExpired = false\n                    while (!requestQueue.isEmpty() && requestQueue.first <= periodStart) {\n                        requestQueue.removeFirst()\n                        hasRemovedExpired = true\n                    }\n                    if (call.isCanceled()) {\n                        throw IOException(\"Canceled\")\n                    } else if (hasRemovedExpired) {\n                        break\n                    } else {\n                        try { // wait for the first entry to expire, or notified by cached response\n                            (requestQueue as Object).wait(requestQueue.first - periodStart)\n                        } catch (_: InterruptedException) {\n                            continue\n                        }\n                    }\n                }\n\n                // add request to queue\n                timestamp = SystemClock.elapsedRealtime()\n                requestQueue.addLast(timestamp)\n            }\n        } finally {\n            fairLock.release()\n        }\n\n        val response = chain.proceed(request)\n        if (response.networkResponse == null) { // response is cached, remove it from queue\n            synchronized(requestQueue) {\n                if (requestQueue.isEmpty() || timestamp < requestQueue.first) return@synchronized\n                requestQueue.removeFirstOccurrence(timestamp)\n                (requestQueue as Object).notifyAll()\n            }\n        }\n\n        return response\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/SpecificHostRateLimitInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport okhttp3.HttpUrl\nimport okhttp3.HttpUrl.Companion.toHttpUrlOrNull\nimport okhttp3.OkHttpClient\nimport java.util.concurrent.TimeUnit\nimport kotlin.time.Duration\nimport kotlin.time.Duration.Companion.seconds\nimport kotlin.time.toDuration\nimport kotlin.time.toDurationUnit\n\n/**\n * An OkHttp interceptor that handles given url host's rate limiting.\n *\n * This uses Java Time APIs and is the legacy method, kept\n * for compatibility reasons with existing extensions.\n *\n * Examples:\n *\n * httpUrl = \"api.manga.com\".toHttpUrlOrNull(), permits = 5, period = 1, unit = seconds  =>  5 requests per second to api.manga.com\n * httpUrl = \"imagecdn.manga.com\".toHttpUrlOrNull(), permits = 10, period = 2, unit = minutes  =>  10 requests per 2 minutes to imagecdn.manga.com\n *\n * @since extension-lib 1.3\n *\n * @param httpUrl [HttpUrl] The url host that this interceptor should handle. Will get url's host by using HttpUrl.host()\n * @param permits [Int]     Number of requests allowed within a period of units.\n * @param period [Long]     The limiting duration. Defaults to 1.\n * @param unit [TimeUnit]   The unit of time for the period. Defaults to seconds.\n */\n@Deprecated(\"Use the version with kotlin.time APIs instead.\")\nfun OkHttpClient.Builder.rateLimitHost(\n    httpUrl: HttpUrl,\n    permits: Int,\n    period: Long = 1,\n    unit: TimeUnit = TimeUnit.SECONDS,\n) = addInterceptor(\n    RateLimitInterceptor(httpUrl.host, permits, period.toDuration(unit.toDurationUnit())),\n)\n\n/**\n * An OkHttp interceptor that handles given url host's rate limiting.\n *\n * Examples:\n *\n * httpUrl = \"https://api.manga.com\".toHttpUrlOrNull(), permits = 5, period = 1.seconds =>  5 requests per second to api.manga.com\n * httpUrl = \"https://imagecdn.manga.com\".toHttpUrlOrNull(), permits = 10, period = 2.minutes  =>  10 requests per 2 minutes to imagecdn.manga.com\n *\n * @since extension-lib 1.5\n *\n * @param httpUrl [HttpUrl] The url host that this interceptor should handle. Will get url's host by using HttpUrl.host()\n * @param permits [Int]     Number of requests allowed within a period of units.\n * @param period [Duration] The limiting duration. Defaults to 1.seconds.\n */\n@Suppress(\"UNUSED\")\nfun OkHttpClient.Builder.rateLimitHost(\n    httpUrl: HttpUrl,\n    permits: Int,\n    period: Duration = 1.seconds,\n) = addInterceptor(RateLimitInterceptor(httpUrl.host, permits, period))\n\n/**\n * An OkHttp interceptor that handles given url host's rate limiting.\n *\n * Examples:\n *\n * url = \"https://api.manga.com\", permits = 5, period = 1.seconds =>  5 requests per second to api.manga.com\n * url = \"https://imagecdn.manga.com\", permits = 10, period = 2.minutes  =>  10 requests per 2 minutes to imagecdn.manga.com\n *\n * @since extension-lib 1.5\n *\n * @param url [String]      The url host that this interceptor should handle. Will get url's host by using HttpUrl.host()\n * @param permits [Int]     Number of requests allowed within a period of units.\n * @param period [Duration] The limiting duration. Defaults to 1.seconds.\n */\n@Suppress(\"UNUSED\")\nfun OkHttpClient.Builder.rateLimitHost(url: String, permits: Int, period: Duration = 1.seconds) =\n    addInterceptor(RateLimitInterceptor(url.toHttpUrlOrNull()?.host, permits, period))\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/UncaughtExceptionInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport okhttp3.Interceptor\nimport okhttp3.Response\nimport java.io.IOException\n\n/**\n * Catches any uncaught exceptions from later in the chain and rethrows as a non-fatal\n * IOException to avoid catastrophic failure.\n *\n * This should be the first interceptor in the client.\n *\n * See https://square.github.io/okhttp/4.x/okhttp/okhttp3/-interceptor/\n */\nclass UncaughtExceptionInterceptor : Interceptor {\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        return try {\n            chain.proceed(chain.request())\n        } catch (e: Exception) {\n            if (e is IOException) {\n                throw e\n            } else {\n                throw IOException(e)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport okhttp3.Interceptor\nimport okhttp3.Response\n\nclass UserAgentInterceptor(\n    private val defaultUserAgentProvider: () -> String,\n) : Interceptor {\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val originalRequest = chain.request()\n\n        return if (originalRequest.header(\"User-Agent\").isNullOrEmpty()) {\n            val newRequest = originalRequest\n                .newBuilder()\n                .removeHeader(\"User-Agent\")\n                .addHeader(\"User-Agent\", defaultUserAgentProvider())\n                .build()\n            chain.proceed(newRequest)\n        } else {\n            chain.proceed(originalRequest)\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/WebViewInterceptor.kt",
    "content": "package eu.kanade.tachiyomi.network.interceptor\n\nimport android.content.Context\nimport android.os.Build\nimport android.webkit.WebSettings\nimport android.webkit.WebView\nimport android.widget.Toast\nimport eu.kanade.tachiyomi.util.system.DeviceUtil\nimport eu.kanade.tachiyomi.util.system.WebViewUtil\nimport eu.kanade.tachiyomi.util.system.setDefaultSettings\nimport eu.kanade.tachiyomi.util.system.toast\nimport okhttp3.Headers\nimport okhttp3.Interceptor\nimport okhttp3.Request\nimport okhttp3.Response\nimport tachiyomi.core.common.util.lang.launchUI\nimport tachiyomi.i18n.MR\nimport java.util.Locale\nimport java.util.concurrent.CountDownLatch\nimport java.util.concurrent.TimeUnit\n\nabstract class WebViewInterceptor(\n    private val context: Context,\n    private val defaultUserAgentProvider: () -> String,\n) : Interceptor {\n\n    /**\n     * When this is called, it initializes the WebView if it wasn't already. We use this to avoid\n     * blocking the main thread too much. If used too often we could consider moving it to the\n     * Application class.\n     */\n    private val initWebView by lazy {\n        // Crashes on some devices. We skip this in some cases since the only impact is slower\n        // WebView init in those rare cases.\n        // See https://bugs.chromium.org/p/chromium/issues/detail?id=1279562\n        if (DeviceUtil.isMiui || (Build.VERSION.SDK_INT == Build.VERSION_CODES.S && DeviceUtil.isSamsung)) {\n            return@lazy\n        }\n\n        try {\n            WebSettings.getDefaultUserAgent(context)\n        } catch (_: Exception) {\n            // Avoid some crashes like when Chrome/WebView is being updated.\n        }\n    }\n\n    abstract fun shouldIntercept(response: Response): Boolean\n\n    abstract fun intercept(chain: Interceptor.Chain, request: Request, response: Response): Response\n\n    override fun intercept(chain: Interceptor.Chain): Response {\n        val request = chain.request()\n        val response = chain.proceed(request)\n        if (!shouldIntercept(response)) {\n            return response\n        }\n\n        if (!WebViewUtil.supportsWebView(context)) {\n            launchUI {\n                context.toast(MR.strings.information_webview_required, Toast.LENGTH_LONG)\n            }\n            return response\n        }\n        initWebView\n\n        return intercept(chain, request, response)\n    }\n\n    fun parseHeaders(headers: Headers): Map<String, String> {\n        return headers\n            // Keeping unsafe header makes webview throw [net::ERR_INVALID_ARGUMENT]\n            .filter { (name, value) ->\n                isRequestHeaderSafe(name, value)\n            }\n            .groupBy(keySelector = { (name, _) -> name }) { (_, value) -> value }\n            .mapValues { it.value.getOrNull(0).orEmpty() }\n    }\n\n    fun CountDownLatch.awaitFor30Seconds() {\n        await(30, TimeUnit.SECONDS)\n    }\n\n    fun createWebView(request: Request): WebView {\n        return WebView(context).apply {\n            setDefaultSettings()\n            // Avoid sending empty User-Agent, Chromium WebView will reset to default if empty\n            settings.userAgentString = request.header(\"User-Agent\") ?: defaultUserAgentProvider()\n        }\n    }\n}\n\n// Based on [IsRequestHeaderSafe] in\n// https://source.chromium.org/chromium/chromium/src/+/main:services/network/public/cpp/header_util.cc\nprivate fun isRequestHeaderSafe(_name: String, _value: String): Boolean {\n    val name = _name.lowercase(Locale.ENGLISH)\n    val value = _value.lowercase(Locale.ENGLISH)\n    if (name in unsafeHeaderNames || name.startsWith(\"proxy-\")) return false\n    if (name == \"connection\" && value == \"upgrade\") return false\n    return true\n}\nprivate val unsafeHeaderNames = listOf(\n    \"content-length\", \"host\", \"trailer\", \"te\", \"upgrade\", \"cookie2\", \"keep-alive\", \"transfer-encoding\", \"set-cookie\",\n)\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/lang/Hash.kt",
    "content": "package eu.kanade.tachiyomi.util.lang\n\nimport java.security.MessageDigest\n\nobject Hash {\n\n    private val chars = charArrayOf(\n        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n        'a', 'b', 'c', 'd', 'e', 'f',\n    )\n\n    private val MD5 get() = MessageDigest.getInstance(\"MD5\")\n\n    private val SHA256 get() = MessageDigest.getInstance(\"SHA-256\")\n\n    fun sha256(bytes: ByteArray): String {\n        return encodeHex(SHA256.digest(bytes))\n    }\n\n    fun sha256(string: String): String {\n        return sha256(string.toByteArray())\n    }\n\n    fun md5(bytes: ByteArray): String {\n        return encodeHex(MD5.digest(bytes))\n    }\n\n    fun md5(string: String): String {\n        return md5(string.toByteArray())\n    }\n\n    private fun encodeHex(data: ByteArray): String {\n        val l = data.size\n        val out = CharArray(l shl 1)\n        var i = 0\n        var j = 0\n        while (i < l) {\n            out[j++] = chars[(240 and data[i].toInt()).ushr(4)]\n            out[j++] = chars[15 and data[i].toInt()]\n            i++\n        }\n        return String(out)\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/lang/StringExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.lang\n\nimport androidx.core.text.parseAsHtml\nimport net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator\nimport java.nio.charset.StandardCharsets\nimport kotlin.math.floor\n\n/**\n * Replaces the given string to have at most [count] characters using [replacement] at its end.\n * If [replacement] is longer than [count] an exception will be thrown when `length > count`.\n */\nfun String.chop(count: Int, replacement: String = \"…\"): String {\n    return if (length > count) {\n        take(count - replacement.length) + replacement\n    } else {\n        this\n    }\n}\n\n/**\n * Replaces the given string to have at most [count] characters using [replacement] near the center.\n * If [replacement] is longer than [count] an exception will be thrown when `length > count`.\n */\nfun String.truncateCenter(count: Int, replacement: String = \"...\"): String {\n    if (length <= count) {\n        return this\n    }\n\n    val pieceLength: Int = floor((count - replacement.length).div(2.0)).toInt()\n\n    return \"${take(pieceLength)}$replacement${takeLast(pieceLength)}\"\n}\n\n/**\n * Case-insensitive natural comparator for strings.\n */\nfun String.compareToCaseInsensitiveNaturalOrder(other: String): Int {\n    val comparator = CaseInsensitiveSimpleNaturalComparator.getInstance<String>()\n    return comparator.compare(this, other)\n}\n\n/**\n * Returns the size of the string as the number of bytes.\n */\nfun String.byteSize(): Int {\n    return toByteArray(StandardCharsets.UTF_8).size\n}\n\n/**\n * Returns a string containing the first [n] bytes from this string, or the entire string if this\n * string is shorter.\n */\nfun String.takeBytes(n: Int): String {\n    val bytes = toByteArray(StandardCharsets.UTF_8)\n    return if (bytes.size <= n) {\n        this\n    } else {\n        bytes.decodeToString(endIndex = n).replace(\"\\uFFFD\", \"\")\n    }\n}\n\n/**\n * HTML-decode the string\n */\nfun String.htmlDecode(): String {\n    return this.parseAsHtml().toString()\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/storage/DiskUtil.kt",
    "content": "package eu.kanade.tachiyomi.util.storage\n\nimport android.content.Context\nimport android.media.MediaScannerConnection\nimport android.net.Uri\nimport android.os.Environment\nimport android.os.StatFs\nimport androidx.core.content.ContextCompat\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.util.lang.Hash\nimport java.io.File\nimport java.nio.ByteBuffer\nimport java.nio.CharBuffer\nimport java.nio.charset.CodingErrorAction\n\nobject DiskUtil {\n\n    /**\n     * Returns the root folders of all the available external storages.\n     */\n    fun getExternalStorages(context: Context): List<File> {\n        return ContextCompat.getExternalFilesDirs(context, null)\n            .filterNotNull()\n            .mapNotNull {\n                val file = File(it.absolutePath.substringBefore(\"/Android/\"))\n                val state = Environment.getExternalStorageState(file)\n                if (state == Environment.MEDIA_MOUNTED || state == Environment.MEDIA_MOUNTED_READ_ONLY) {\n                    file\n                } else {\n                    null\n                }\n            }\n    }\n\n    fun hashKeyForDisk(key: String): String {\n        return Hash.md5(key)\n    }\n\n    fun getDirectorySize(f: File): Long {\n        var size: Long = 0\n        if (f.isDirectory) {\n            for (file in f.listFiles().orEmpty()) {\n                size += getDirectorySize(file)\n            }\n        } else {\n            size = f.length()\n        }\n        return size\n    }\n\n    /**\n     * Gets the total space for the disk that a file path points to, in bytes.\n     */\n    fun getTotalStorageSpace(file: File): Long {\n        return try {\n            val stat = StatFs(file.absolutePath)\n            stat.blockCountLong * stat.blockSizeLong\n        } catch (_: Exception) {\n            -1L\n        }\n    }\n\n    /**\n     * Gets the available space for the disk that a file path points to, in bytes.\n     */\n    fun getAvailableStorageSpace(file: File): Long {\n        return try {\n            val stat = StatFs(file.absolutePath)\n            stat.availableBlocksLong * stat.blockSizeLong\n        } catch (_: Exception) {\n            -1L\n        }\n    }\n\n    /**\n     * Gets the available space for the disk that a file path points to, in bytes.\n     */\n    fun getAvailableStorageSpace(f: UniFile): Long {\n        return try {\n            val stat = StatFs(f.uri.path)\n            stat.availableBlocksLong * stat.blockSizeLong\n        } catch (_: Exception) {\n            -1L\n        }\n    }\n\n    /**\n     * Don't display downloaded chapters in gallery apps creating `.nomedia`.\n     */\n    fun createNoMediaFile(dir: UniFile?, context: Context?) {\n        if (dir != null && dir.exists()) {\n            val nomedia = dir.findFile(NOMEDIA_FILE)\n            if (nomedia == null) {\n                dir.createFile(NOMEDIA_FILE)\n                context?.let { scanMedia(it, dir.uri) }\n            }\n        }\n    }\n\n    /**\n     * Scans the given file so that it can be shown in gallery apps, for example.\n     */\n    fun scanMedia(context: Context, uri: Uri) {\n        MediaScannerConnection.scanFile(context, arrayOf(uri.path), null, null)\n    }\n\n    /**\n     * Transform a filename fragment to make it safe to use on almost\n     * all commonly used filesystems. You can pass an entire filename,\n     * or just part of one, in case you want a specific part of a long\n     * filename to be truncated, rather than the end of it.\n     *\n     * Characters that are potentially unsafe for some filesystems are\n     * replaced with underscores. This includes the standard ones from\n     * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n     * but does allow any other valid Unicode code point.\n     *\n     * Excessively long filenames are truncated, by default to 240\n     * bytes. Note that the truncation is based on bytes rather than\n     * characters (code points), because this is what is relevant to\n     * filesystem restrictions in most cases.\n     *\n     * Leading periods are stripped, to avoid the creation of hidden\n     * files by default. If a hidden file is desired, a period can be\n     * prepended to the return value from this function.\n     *\n     * If the optional argument disallowNonAscii is set to true,\n     * then ANYTHING outside the ASCII range is replaced not with underscores,\n     * but with its hexadecimal encoding. This is to make it so that distinct\n     * non-English titles of things remain distinct, since not all\n     * places where this function is used also take care of\n     * disambiguation.\n     *\n     * We could instead replace only non-ASCII characters known to\n     * be problematic, but so far nobody with a non-Unicode-compliant\n     * device has been able to provide either directions to reproduce\n     * their issue nor any documentation or tests that would allow us\n     * to determine which characters are problems and which are not.\n     */\n    fun buildValidFilename(\n        origName: String,\n        maxBytes: Int = MAX_FILE_NAME_BYTES,\n        disallowNonAscii: Boolean = false,\n    ): String {\n        val name = origName.trim('.', ' ')\n        if (name.isEmpty()) {\n            return \"(invalid)\"\n        }\n        val sb = StringBuilder(name.length)\n        name.forEach { c ->\n            if (disallowNonAscii && c >= 0x80.toChar()) {\n                sb.append(\n                    c.toString().toByteArray(Charsets.UTF_8).toHexString(\n                        HexFormat {\n                            upperCase = false\n                        },\n                    ),\n                )\n            } else if (isValidFatFilenameChar(c)) {\n                sb.append(c)\n            } else {\n                sb.append('_')\n            }\n        }\n        return truncateToLength(sb.toString(), maxBytes)\n    }\n\n    /**\n     * Truncate a string to a maximum length, while maintaining valid Unicode encoding.\n     */\n    fun truncateToLength(s: String, maxBytes: Int): String {\n        val charset = Charsets.UTF_8\n        val decoder = charset.newDecoder()\n        val sba = s.toByteArray(charset)\n        if (sba.size <= maxBytes) {\n            return s\n        }\n        // Ensure truncation by having byte buffer = maxBytes\n        val bb = ByteBuffer.wrap(sba, 0, maxBytes)\n        val cb = CharBuffer.allocate(maxBytes)\n        // Ignore an incomplete character\n        decoder.onMalformedInput(CodingErrorAction.IGNORE)\n        decoder.decode(bb, cb, true)\n        decoder.flush(cb)\n        return String(cb.array(), 0, cb.position())\n    }\n\n    /**\n     * Returns true if the given character is a valid filename character, false otherwise.\n     */\n    private fun isValidFatFilenameChar(c: Char): Boolean {\n        if (0x00.toChar() <= c && c <= 0x1f.toChar()) {\n            return false\n        }\n        return when (c) {\n            '\"', '*', '/', ':', '<', '>', '?', '\\\\', '|', 0x7f.toChar() -> false\n            else -> true\n        }\n    }\n\n    const val NOMEDIA_FILE = \".nomedia\"\n\n    // Safe theoretical max filename size is 255 bytes and 1 char = 2-4 bytes (UTF-8).\n    // To allow for writing to ext4 through a FUSE layer in the future, also subtract 15\n    // reserved characters.\n    const val MAX_FILE_NAME_BYTES = 240\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/DensityExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.res.Resources\n\n/**\n * Converts to px.\n */\nval Int.dpToPx: Int\n    get() = (this * Resources.getSystem().displayMetrics.density).toInt()\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/DeviceUtil.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.annotation.SuppressLint\nimport android.app.ActivityManager\nimport android.content.Context\nimport android.os.Build\nimport androidx.core.content.getSystemService\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\n\nobject DeviceUtil {\n\n    val isMiui: Boolean by lazy {\n        getSystemProperty(\"ro.miui.ui.version.name\")?.isNotEmpty() ?: false\n    }\n\n    /**\n     * Extracts the MIUI major version code from a string like \"V12.5.3.0.QFGMIXM\".\n     *\n     * @return MIUI major version code (e.g., 13) or null if can't be parsed.\n     */\n    val miuiMajorVersion: Int? by lazy {\n        if (!isMiui) return@lazy null\n\n        Build.VERSION.INCREMENTAL\n            .substringBefore('.')\n            .trimStart('V')\n            .toIntOrNull()\n    }\n\n    @SuppressLint(\"PrivateApi\")\n    fun isMiuiOptimizationDisabled(): Boolean {\n        val sysProp = getSystemProperty(\"persist.sys.miui_optimization\")\n        if (sysProp == \"0\" || sysProp == \"false\") {\n            return true\n        }\n\n        return try {\n            Class.forName(\"android.miui.AppOpsUtils\")\n                .getDeclaredMethod(\"isXOptMode\")\n                .invoke(null) as Boolean\n        } catch (e: Exception) {\n            false\n        }\n    }\n\n    val isSamsung: Boolean by lazy {\n        Build.MANUFACTURER.equals(\"samsung\", ignoreCase = true)\n    }\n\n    val oneUiVersion: Double? by lazy {\n        try {\n            val semPlatformIntField = Build.VERSION::class.java.getDeclaredField(\"SEM_PLATFORM_INT\")\n            val version = semPlatformIntField.getInt(null) - 90000\n            if (version < 0) {\n                1.0\n            } else {\n                ((version / 10000).toString() + \".\" + version % 10000 / 100).toDouble()\n            }\n        } catch (e: Exception) {\n            null\n        }\n    }\n\n    /**\n     * A list of package names that may be incorrectly resolved as usable browsers by\n     * the system.\n     *\n     * If these are resolved for [android.content.Intent.ACTION_VIEW], it prevents the\n     * system from opening a proper browser or any usable app .\n     *\n     * Some of them may only be present on certain manufacturer's devices.\n     */\n    val invalidDefaultBrowsers = listOf(\n        \"android\",\n        // Honor\n        \"com.hihonor.android.internal.app\",\n        // Huawei\n        \"com.huawei.android.internal.app\",\n        // Lenovo\n        \"com.zui.resolver\",\n        // Infinix\n        \"com.transsion.resolver\",\n        // Xiaomi Redmi\n        \"com.android.intentresolver\",\n    )\n\n    /**\n     * ActivityManager#isLowRamDevice is based on a system property, which isn't\n     * necessarily trustworthy. 1GB is supposedly the regular threshold.\n     *\n     * Instead, we consider anything with less than 3GB of RAM as low memory\n     * considering how heavy image processing can be.\n     */\n    fun isLowRamDevice(context: Context): Boolean {\n        val memInfo = ActivityManager.MemoryInfo()\n        context.getSystemService<ActivityManager>()!!.getMemoryInfo(memInfo)\n        val totalMemBytes = memInfo.totalMem\n        return totalMemBytes < 3L * 1024 * 1024 * 1024\n    }\n\n    @SuppressLint(\"PrivateApi\")\n    private fun getSystemProperty(key: String?): String? {\n        return try {\n            Class.forName(\"android.os.SystemProperties\")\n                .getDeclaredMethod(\"get\", String::class.java)\n                .invoke(null, key) as String\n        } catch (e: Exception) {\n            logcat(LogPriority.WARN, e) { \"Unable to use SystemProperties.get()\" }\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/GLUtil.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport javax.microedition.khronos.egl.EGL10\nimport javax.microedition.khronos.egl.EGLConfig\nimport javax.microedition.khronos.egl.EGLContext\nimport kotlin.math.max\n\nobject GLUtil {\n    val DEVICE_TEXTURE_LIMIT: Int by lazy {\n        // Get EGL Display\n        val egl = EGLContext.getEGL() as EGL10\n        val display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY)\n\n        // Initialise\n        val version = IntArray(2)\n        egl.eglInitialize(display, version)\n\n        // Query total number of configurations\n        val totalConfigurations = IntArray(1)\n        egl.eglGetConfigs(display, null, 0, totalConfigurations)\n\n        // Query actual list configurations\n        val configurationsList = arrayOfNulls<EGLConfig>(totalConfigurations[0])\n        egl.eglGetConfigs(display, configurationsList, totalConfigurations[0], totalConfigurations)\n\n        val textureSize = IntArray(1)\n        var maximumTextureSize = 0\n\n        // Iterate through all the configurations to located the maximum texture size\n        for (i in 0..<totalConfigurations[0]) {\n            // Only need to check for width since opengl textures are always squared\n            egl.eglGetConfigAttrib(display, configurationsList[i], EGL10.EGL_MAX_PBUFFER_WIDTH, textureSize)\n\n            // Keep track of the maximum texture size\n            if (maximumTextureSize < textureSize[0]) maximumTextureSize = textureSize[0]\n        }\n\n        // Release\n        egl.eglTerminate(display)\n\n        // Return largest texture size found (after making it a multiplier of [Multiplier]), or default\n        max(maximumTextureSize, SAFE_TEXTURE_LIMIT)\n    }\n\n    const val SAFE_TEXTURE_LIMIT: Int = 2048\n\n    val CUSTOM_TEXTURE_LIMIT_OPTIONS: List<Int> by lazy {\n        val steps = DEVICE_TEXTURE_LIMIT / MULTIPLIER\n        buildList(steps) {\n            add(DEVICE_TEXTURE_LIMIT)\n            for (step in steps downTo 2) {\n                val value = step * MULTIPLIER\n                if (value >= DEVICE_TEXTURE_LIMIT) continue\n                add(value)\n            }\n        }\n    }\n}\n\nprivate const val MULTIPLIER: Int = 1024\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/ToastExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.content.Context\nimport android.widget.Toast\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.core.common.i18n.stringResource\n\n/**\n * Display a toast in this context.\n *\n * @param resource the text resource.\n * @param duration the duration of the toast. Defaults to short.\n */\nfun Context.toast(\n    resource: StringResource,\n    duration: Int = Toast.LENGTH_SHORT,\n    block: (Toast) -> Unit = {},\n): Toast {\n    return toast(stringResource(resource), duration, block)\n}\n\n/**\n * Display a toast in this context.\n *\n * @param text the text to display.\n * @param duration the duration of the toast. Defaults to short.\n */\nfun Context.toast(\n    text: String?,\n    duration: Int = Toast.LENGTH_SHORT,\n    block: (Toast) -> Unit = {},\n): Toast {\n    return Toast.makeText(applicationContext, text.orEmpty(), duration).also {\n        block(it)\n        it.show()\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt",
    "content": "package eu.kanade.tachiyomi.util.system\n\nimport android.annotation.SuppressLint\nimport android.content.Context\nimport android.content.pm.PackageManager\nimport android.webkit.CookieManager\nimport android.webkit.WebSettings\nimport android.webkit.WebView\nimport kotlinx.coroutines.suspendCancellableCoroutine\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport kotlin.coroutines.resume\n\nobject WebViewUtil {\n    private const val CHROME_PACKAGE = \"com.android.chrome\"\n    private const val SYSTEM_SETTINGS_PACKAGE = \"com.android.settings\"\n\n    const val MINIMUM_WEBVIEW_VERSION = 118\n\n    /**\n     * Uses the WebView's user agent string to create something similar to what Chrome on Android\n     * would return.\n     *\n     * Example of WebView user agent string:\n     *   Mozilla/5.0 (Linux; Android 13; Pixel 7 Build/TQ3A.230901.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36\n     *\n     * Example of Chrome on Android:\n     *   Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.3\n     */\n    fun getInferredUserAgent(context: Context): String {\n        return WebView(context)\n            .getDefaultUserAgentString()\n            .replace(\"; Android .*?\\\\)\".toRegex(), \"; Android 10; K)\")\n            .replace(\"Version/.* Chrome/\".toRegex(), \"Chrome/\")\n    }\n\n    fun getVersion(context: Context): String {\n        val webView = WebView.getCurrentWebViewPackage() ?: return \"how did you get here?\"\n        val pm = context.packageManager\n        val label = webView.applicationInfo!!.loadLabel(pm)\n        val version = webView.versionName\n        return \"$label $version\"\n    }\n\n    fun supportsWebView(context: Context): Boolean {\n        try {\n            // May throw android.webkit.WebViewFactory$MissingWebViewPackageException if WebView\n            // is not installed\n            CookieManager.getInstance()\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e)\n            return false\n        }\n\n        return context.packageManager.hasSystemFeature(PackageManager.FEATURE_WEBVIEW)\n    }\n\n    fun spoofedPackageName(context: Context): String {\n        return try {\n            context.packageManager.getPackageInfo(CHROME_PACKAGE, PackageManager.GET_META_DATA)\n\n            CHROME_PACKAGE\n        } catch (_: PackageManager.NameNotFoundException) {\n            SYSTEM_SETTINGS_PACKAGE\n        }\n    }\n}\n\nfun WebView.isOutdated(): Boolean {\n    return getWebViewMajorVersion() < WebViewUtil.MINIMUM_WEBVIEW_VERSION\n}\n\nsuspend fun WebView.getHtml(): String = suspendCancellableCoroutine {\n    evaluateJavascript(\"document.documentElement.outerHTML\") { html -> it.resume(html) }\n}\n\n@SuppressLint(\"SetJavaScriptEnabled\")\nfun WebView.setDefaultSettings() {\n    with(settings) {\n        javaScriptEnabled = true\n        domStorageEnabled = true\n        useWideViewPort = true\n        loadWithOverviewMode = true\n        cacheMode = WebSettings.LOAD_DEFAULT\n\n        // Handle popups properly\n        setSupportMultipleWindows(true)\n\n        // Allow zooming\n        setSupportZoom(true)\n        builtInZoomControls = true\n        displayZoomControls = false\n    }\n\n    CookieManager.getInstance().acceptThirdPartyCookies(this)\n}\n\nprivate fun WebView.getWebViewMajorVersion(): Int {\n    val uaRegexMatch = \"\"\".*Chrome/(\\d+)\\..*\"\"\".toRegex().matchEntire(getDefaultUserAgentString())\n    return if (uaRegexMatch != null && uaRegexMatch.groupValues.size > 1) {\n        uaRegexMatch.groupValues[1].toInt()\n    } else {\n        0\n    }\n}\n\n// Based on https://stackoverflow.com/a/29218966\nprivate fun WebView.getDefaultUserAgentString(): String {\n    val originalUA: String = settings.userAgentString\n\n    // Next call to getUserAgentString() will get us the default\n    settings.userAgentString = null\n    val defaultUserAgentString = settings.userAgentString\n\n    // Revert to original UA string\n    settings.userAgentString = originalUA\n\n    return defaultUserAgentString\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/mihon/core/common/FeatureFlags.kt",
    "content": "package mihon.core.common\n\nimport kotlin.uuid.ExperimentalUuidApi\nimport kotlin.uuid.Uuid\n\nobject FeatureFlags {\n\n    @OptIn(ExperimentalUuidApi::class)\n    fun newInstallationId(): String {\n        return Uuid.random().toHexDashString()\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/mihon/core/common/utils/Set.kt",
    "content": "package mihon.core.common.utils\n\nfun <T> Set<T>.mutate(action: (MutableSet<T>) -> Unit): Set<T> {\n    return toMutableSet().apply(action)\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/Constants.kt",
    "content": "package tachiyomi.core.common\n\nobject Constants {\n    const val URL_HELP = \"https://mihon.app/docs/guides/troubleshooting/\"\n    const val URL_HELP_UPCOMING = \"https://mihon.app/docs/faq/updates/upcoming\"\n    const val URL_DONATE = \"https://patreon.com/mihon/membership\"\n\n    const val MANGA_EXTRA = \"manga\"\n\n    const val MAIN_ACTIVITY = \"eu.kanade.tachiyomi.ui.main.MainActivity\"\n\n    // Shortcut actions\n    const val SHORTCUT_LIBRARY = \"eu.kanade.tachiyomi.SHOW_LIBRARY\"\n    const val SHORTCUT_MANGA = \"eu.kanade.tachiyomi.SHOW_MANGA\"\n    const val SHORTCUT_UPDATES = \"eu.kanade.tachiyomi.SHOW_RECENTLY_UPDATED\"\n    const val SHORTCUT_HISTORY = \"eu.kanade.tachiyomi.SHOW_RECENTLY_READ\"\n    const val SHORTCUT_SOURCES = \"eu.kanade.tachiyomi.SHOW_CATALOGUES\"\n    const val SHORTCUT_EXTENSIONS = \"eu.kanade.tachiyomi.EXTENSIONS\"\n    const val SHORTCUT_DOWNLOADS = \"eu.kanade.tachiyomi.SHOW_DOWNLOADS\"\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/i18n/Localize.kt",
    "content": "package tachiyomi.core.common.i18n\n\nimport android.content.Context\nimport dev.icerock.moko.resources.PluralsResource\nimport dev.icerock.moko.resources.StringResource\nimport dev.icerock.moko.resources.desc.Plural\nimport dev.icerock.moko.resources.desc.PluralFormatted\nimport dev.icerock.moko.resources.desc.Resource\nimport dev.icerock.moko.resources.desc.ResourceFormatted\nimport dev.icerock.moko.resources.desc.StringDesc\n\nfun Context.stringResource(resource: StringResource): String {\n    return StringDesc.Resource(resource).toString(this).fixed()\n}\n\nfun Context.stringResource(resource: StringResource, vararg args: Any): String {\n    return StringDesc.ResourceFormatted(resource, *args).toString(this).fixed()\n}\n\nfun Context.pluralStringResource(resource: PluralsResource, count: Int): String {\n    return StringDesc.Plural(resource, count).toString(this).fixed()\n}\n\nfun Context.pluralStringResource(resource: PluralsResource, count: Int, vararg args: Any): String {\n    return StringDesc.PluralFormatted(resource, count, *args).toString(this).fixed()\n}\n\n// TODO: janky workaround for https://github.com/icerockdev/moko-resources/issues/337\nprivate fun String.fixed() =\n    this.replace(\"\"\"\\\"\"\", \"\"\"\"\"\"\")\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/AndroidPreference.kt",
    "content": "package tachiyomi.core.common.preference\n\nimport android.content.SharedPreferences\nimport android.content.SharedPreferences.Editor\nimport androidx.core.content.edit\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.StateFlow\nimport kotlinx.coroutines.flow.conflate\nimport kotlinx.coroutines.flow.filter\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.flow.onStart\nimport kotlinx.coroutines.flow.stateIn\nimport tachiyomi.core.common.util.system.logcat\n\nsealed class AndroidPreference<T>(\n    private val preferences: SharedPreferences,\n    private val keyFlow: Flow<String?>,\n    private val key: String,\n    private val defaultValue: T,\n) : Preference<T> {\n\n    abstract fun read(preferences: SharedPreferences, key: String, defaultValue: T): T\n\n    abstract fun write(key: String, value: T): Editor.() -> Unit\n\n    override fun key(): String {\n        return key\n    }\n\n    override fun get(): T {\n        return try {\n            read(preferences, key, defaultValue)\n        } catch (e: ClassCastException) {\n            logcat { \"Invalid value for $key; deleting\" }\n            delete()\n            defaultValue\n        }\n    }\n\n    override fun set(value: T) {\n        preferences.edit(action = write(key, value))\n    }\n\n    override fun isSet(): Boolean {\n        return preferences.contains(key)\n    }\n\n    override fun delete() {\n        preferences.edit {\n            remove(key)\n        }\n    }\n\n    override fun defaultValue(): T {\n        return defaultValue\n    }\n\n    override fun changes(): Flow<T> {\n        return keyFlow\n            .filter { it == key || it == null }\n            .onStart { emit(\"ignition\") }\n            .map { get() }\n            .conflate()\n    }\n\n    override fun stateIn(scope: CoroutineScope): StateFlow<T> {\n        return changes().stateIn(scope, SharingStarted.Eagerly, get())\n    }\n\n    class StringPrimitive(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: String,\n    ) : AndroidPreference<String>(preferences, keyFlow, key, defaultValue) {\n        override fun read(\n            preferences: SharedPreferences,\n            key: String,\n            defaultValue: String,\n        ): String {\n            return preferences.getString(key, defaultValue) ?: defaultValue\n        }\n\n        override fun write(key: String, value: String): Editor.() -> Unit = {\n            putString(key, value)\n        }\n    }\n\n    class LongPrimitive(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: Long,\n    ) : AndroidPreference<Long>(preferences, keyFlow, key, defaultValue) {\n        override fun read(preferences: SharedPreferences, key: String, defaultValue: Long): Long {\n            return preferences.getLong(key, defaultValue)\n        }\n\n        override fun write(key: String, value: Long): Editor.() -> Unit = {\n            putLong(key, value)\n        }\n    }\n\n    class IntPrimitive(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: Int,\n    ) : AndroidPreference<Int>(preferences, keyFlow, key, defaultValue) {\n        override fun read(preferences: SharedPreferences, key: String, defaultValue: Int): Int {\n            return preferences.getInt(key, defaultValue)\n        }\n\n        override fun write(key: String, value: Int): Editor.() -> Unit = {\n            putInt(key, value)\n        }\n    }\n\n    class FloatPrimitive(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: Float,\n    ) : AndroidPreference<Float>(preferences, keyFlow, key, defaultValue) {\n        override fun read(preferences: SharedPreferences, key: String, defaultValue: Float): Float {\n            return preferences.getFloat(key, defaultValue)\n        }\n\n        override fun write(key: String, value: Float): Editor.() -> Unit = {\n            putFloat(key, value)\n        }\n    }\n\n    class BooleanPrimitive(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: Boolean,\n    ) : AndroidPreference<Boolean>(preferences, keyFlow, key, defaultValue) {\n        override fun read(\n            preferences: SharedPreferences,\n            key: String,\n            defaultValue: Boolean,\n        ): Boolean {\n            return preferences.getBoolean(key, defaultValue)\n        }\n\n        override fun write(key: String, value: Boolean): Editor.() -> Unit = {\n            putBoolean(key, value)\n        }\n    }\n\n    class StringSetPrimitive(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: Set<String>,\n    ) : AndroidPreference<Set<String>>(preferences, keyFlow, key, defaultValue) {\n        override fun read(\n            preferences: SharedPreferences,\n            key: String,\n            defaultValue: Set<String>,\n        ): Set<String> {\n            return preferences.getStringSet(key, defaultValue) ?: defaultValue\n        }\n\n        override fun write(key: String, value: Set<String>): Editor.() -> Unit = {\n            putStringSet(key, value)\n        }\n    }\n\n    class ObjectAsString<T>(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: T,\n        private val serializer: (T) -> String,\n        private val deserializer: (String) -> T,\n    ) : AndroidPreference<T>(preferences, keyFlow, key, defaultValue) {\n        override fun read(preferences: SharedPreferences, key: String, defaultValue: T): T {\n            return try {\n                preferences.getString(key, null)?.let(deserializer) ?: defaultValue\n            } catch (e: Exception) {\n                defaultValue\n            }\n        }\n\n        override fun write(key: String, value: T): Editor.() -> Unit = {\n            putString(key, serializer(value))\n        }\n    }\n\n    class ObjectAsInt<T>(\n        preferences: SharedPreferences,\n        keyFlow: Flow<String?>,\n        key: String,\n        defaultValue: T,\n        private val serializer: (T) -> Int,\n        private val deserializer: (Int) -> T,\n    ) : AndroidPreference<T>(preferences, keyFlow, key, defaultValue) {\n        override fun read(preferences: SharedPreferences, key: String, defaultValue: T): T {\n            return try {\n                if (preferences.contains(key)) preferences.getInt(key, 0).let(deserializer) else defaultValue\n            } catch (e: Exception) {\n                defaultValue\n            }\n        }\n\n        override fun write(key: String, value: T): Editor.() -> Unit = {\n            putInt(key, serializer(value))\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/AndroidPreferenceStore.kt",
    "content": "package tachiyomi.core.common.preference\n\nimport android.content.Context\nimport android.content.SharedPreferences\nimport androidx.preference.PreferenceManager\nimport kotlinx.coroutines.channels.awaitClose\nimport kotlinx.coroutines.flow.callbackFlow\nimport tachiyomi.core.common.preference.AndroidPreference.BooleanPrimitive\nimport tachiyomi.core.common.preference.AndroidPreference.FloatPrimitive\nimport tachiyomi.core.common.preference.AndroidPreference.IntPrimitive\nimport tachiyomi.core.common.preference.AndroidPreference.LongPrimitive\nimport tachiyomi.core.common.preference.AndroidPreference.ObjectAsInt\nimport tachiyomi.core.common.preference.AndroidPreference.ObjectAsString\nimport tachiyomi.core.common.preference.AndroidPreference.StringPrimitive\nimport tachiyomi.core.common.preference.AndroidPreference.StringSetPrimitive\n\nclass AndroidPreferenceStore(\n    context: Context,\n    private val sharedPreferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context),\n) : PreferenceStore {\n\n    private val keyFlow = sharedPreferences.keyFlow\n\n    override fun getString(key: String, defaultValue: String): Preference<String> {\n        return StringPrimitive(sharedPreferences, keyFlow, key, defaultValue)\n    }\n\n    override fun getLong(key: String, defaultValue: Long): Preference<Long> {\n        return LongPrimitive(sharedPreferences, keyFlow, key, defaultValue)\n    }\n\n    override fun getInt(key: String, defaultValue: Int): Preference<Int> {\n        return IntPrimitive(sharedPreferences, keyFlow, key, defaultValue)\n    }\n\n    override fun getFloat(key: String, defaultValue: Float): Preference<Float> {\n        return FloatPrimitive(sharedPreferences, keyFlow, key, defaultValue)\n    }\n\n    override fun getBoolean(key: String, defaultValue: Boolean): Preference<Boolean> {\n        return BooleanPrimitive(sharedPreferences, keyFlow, key, defaultValue)\n    }\n\n    override fun getStringSet(key: String, defaultValue: Set<String>): Preference<Set<String>> {\n        return StringSetPrimitive(sharedPreferences, keyFlow, key, defaultValue)\n    }\n\n    override fun <T> getObjectFromString(\n        key: String,\n        defaultValue: T,\n        serializer: (T) -> String,\n        deserializer: (String) -> T,\n    ): Preference<T> {\n        return ObjectAsString(\n            preferences = sharedPreferences,\n            keyFlow = keyFlow,\n            key = key,\n            defaultValue = defaultValue,\n            serializer = serializer,\n            deserializer = deserializer,\n        )\n    }\n\n    override fun <T> getObjectFromInt(\n        key: String,\n        defaultValue: T,\n        serializer: (T) -> Int,\n        deserializer: (Int) -> T,\n    ): Preference<T> {\n        return ObjectAsInt(\n            preferences = sharedPreferences,\n            keyFlow = keyFlow,\n            key = key,\n            defaultValue = defaultValue,\n            serializer = serializer,\n            deserializer = deserializer,\n        )\n    }\n\n    override fun getAll(): Map<String, *> {\n        return sharedPreferences.all ?: emptyMap<String, Any>()\n    }\n}\n\nprivate val SharedPreferences.keyFlow\n    get() = callbackFlow {\n        val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, key: String? ->\n            trySend(\n                key,\n            )\n        }\n        registerOnSharedPreferenceChangeListener(listener)\n        awaitClose {\n            unregisterOnSharedPreferenceChangeListener(listener)\n        }\n    }\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/CheckboxState.kt",
    "content": "package tachiyomi.core.common.preference\n\nsealed class CheckboxState<T>(open val value: T) {\n\n    abstract fun next(): CheckboxState<T>\n\n    sealed class State<T>(override val value: T) : CheckboxState<T>(value) {\n        data class Checked<T>(override val value: T) : State<T>(value)\n        data class None<T>(override val value: T) : State<T>(value)\n\n        val isChecked: Boolean\n            get() = this is Checked\n\n        override fun next(): CheckboxState<T> {\n            return when (this) {\n                is Checked -> None(value)\n                is None -> Checked(value)\n            }\n        }\n    }\n\n    sealed class TriState<T>(override val value: T) : CheckboxState<T>(value) {\n        data class Include<T>(override val value: T) : TriState<T>(value)\n        data class Exclude<T>(override val value: T) : TriState<T>(value)\n        data class None<T>(override val value: T) : TriState<T>(value)\n\n        override fun next(): CheckboxState<T> {\n            return when (this) {\n                is Exclude -> None(value)\n                is Include -> Exclude(value)\n                is None -> Include(value)\n            }\n        }\n    }\n}\n\ninline fun <T> T.asCheckboxState(condition: (T) -> Boolean): CheckboxState.State<T> {\n    return if (condition(this)) {\n        CheckboxState.State.Checked(this)\n    } else {\n        CheckboxState.State.None(this)\n    }\n}\n\ninline fun <T> List<T>.mapAsCheckboxState(condition: (T) -> Boolean): List<CheckboxState.State<T>> {\n    return this.map { it.asCheckboxState(condition) }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/InMemoryPreferenceStore.kt",
    "content": "package tachiyomi.core.common.preference\n\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.StateFlow\nimport kotlinx.coroutines.flow.flow\nimport kotlinx.coroutines.flow.stateIn\n\n/**\n * Local-copy implementation of PreferenceStore mostly for test and preview purposes\n */\nclass InMemoryPreferenceStore(\n    initialPreferences: Sequence<InMemoryPreference<*>> = sequenceOf(),\n) : PreferenceStore {\n\n    private val preferences: Map<String, Preference<*>> =\n        initialPreferences.toList().associateBy { it.key() }\n\n    override fun getString(key: String, defaultValue: String): Preference<String> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: String? = preferences[key]?.get() as? String\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    override fun getLong(key: String, defaultValue: Long): Preference<Long> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: Long? = preferences[key]?.get() as? Long\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    override fun getInt(key: String, defaultValue: Int): Preference<Int> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: Int? = preferences[key]?.get() as? Int\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    override fun getFloat(key: String, defaultValue: Float): Preference<Float> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: Float? = preferences[key]?.get() as? Float\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    override fun getBoolean(key: String, defaultValue: Boolean): Preference<Boolean> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: Boolean? = preferences[key]?.get() as? Boolean\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    override fun getStringSet(key: String, defaultValue: Set<String>): Preference<Set<String>> {\n        TODO(\"Not yet implemented\")\n    }\n\n    @Suppress(\"UNCHECKED_CAST\")\n    override fun <T> getObjectFromString(\n        key: String,\n        defaultValue: T,\n        serializer: (T) -> String,\n        deserializer: (String) -> T,\n    ): Preference<T> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: T? = preferences[key]?.get() as? T\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    @Suppress(\"UNCHECKED_CAST\")\n    override fun <T> getObjectFromInt(\n        key: String,\n        defaultValue: T,\n        serializer: (T) -> Int,\n        deserializer: (Int) -> T,\n    ): Preference<T> {\n        val default = InMemoryPreference(key, null, defaultValue)\n        val data: T? = preferences[key]?.get() as? T\n        return if (data == null) default else InMemoryPreference(key, data, defaultValue)\n    }\n\n    override fun getAll(): Map<String, *> {\n        return preferences\n    }\n\n    class InMemoryPreference<T>(\n        private val key: String,\n        private var data: T?,\n        private val defaultValue: T,\n    ) : Preference<T> {\n        override fun key(): String = key\n\n        override fun get(): T = data ?: defaultValue()\n\n        override fun isSet(): Boolean = data != null\n\n        override fun delete() {\n            data = null\n        }\n\n        override fun defaultValue(): T = defaultValue\n\n        override fun changes(): Flow<T> = flow { data }\n\n        override fun stateIn(scope: CoroutineScope): StateFlow<T> {\n            return changes().stateIn(scope, SharingStarted.Eagerly, get())\n        }\n\n        override fun set(value: T) {\n            data = value\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/Preference.kt",
    "content": "package tachiyomi.core.common.preference\n\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.StateFlow\n\ninterface Preference<T> {\n\n    fun key(): String\n\n    fun get(): T\n\n    fun set(value: T)\n\n    fun isSet(): Boolean\n\n    fun delete()\n\n    fun defaultValue(): T\n\n    fun changes(): Flow<T>\n\n    fun stateIn(scope: CoroutineScope): StateFlow<T>\n\n    companion object {\n        /**\n         * A preference that should not be exposed in places like backups without user consent.\n         */\n        fun isPrivate(key: String): Boolean {\n            return key.startsWith(PRIVATE_PREFIX)\n        }\n        fun privateKey(key: String): String {\n            return \"$PRIVATE_PREFIX$key\"\n        }\n\n        /**\n         * A preference used for internal app state that isn't really a user preference\n         * and therefore should not be in places like backups.\n         */\n        fun isAppState(key: String): Boolean {\n            return key.startsWith(APP_STATE_PREFIX)\n        }\n        fun appStateKey(key: String): String {\n            return \"$APP_STATE_PREFIX$key\"\n        }\n\n        private const val APP_STATE_PREFIX = \"__APP_STATE_\"\n        private const val PRIVATE_PREFIX = \"__PRIVATE_\"\n    }\n}\n\ninline fun <reified T, R : T> Preference<T>.getAndSet(crossinline block: (T) -> R) = set(\n    block(get()),\n)\n\noperator fun <T> Preference<Set<T>>.plusAssign(item: T) {\n    set(get() + item)\n}\n\noperator fun <T> Preference<Set<T>>.plusAssign(items: Iterable<T>) {\n    set(get() + items)\n}\n\noperator fun <T> Preference<Set<T>>.minusAssign(item: T) {\n    set(get() - item)\n}\n\nfun Preference<Boolean>.toggle(): Boolean {\n    set(!get())\n    return get()\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/PreferenceStore.kt",
    "content": "package tachiyomi.core.common.preference\n\ninterface PreferenceStore {\n\n    fun getString(key: String, defaultValue: String = \"\"): Preference<String>\n\n    fun getLong(key: String, defaultValue: Long = 0): Preference<Long>\n\n    fun getInt(key: String, defaultValue: Int = 0): Preference<Int>\n\n    fun getFloat(key: String, defaultValue: Float = 0f): Preference<Float>\n\n    fun getBoolean(key: String, defaultValue: Boolean = false): Preference<Boolean>\n\n    fun getStringSet(key: String, defaultValue: Set<String> = emptySet()): Preference<Set<String>>\n\n    fun <T> getObjectFromString(\n        key: String,\n        defaultValue: T,\n        serializer: (T) -> String,\n        deserializer: (String) -> T,\n    ): Preference<T>\n\n    fun <T> getObjectFromInt(\n        key: String,\n        defaultValue: T,\n        serializer: (T) -> Int,\n        deserializer: (Int) -> T,\n    ): Preference<T>\n\n    fun getAll(): Map<String, *>\n}\n\nfun PreferenceStore.getLongArray(\n    key: String,\n    defaultValue: List<Long>,\n): Preference<List<Long>> {\n    return getObjectFromString(\n        key = key,\n        defaultValue = defaultValue,\n        serializer = { it.joinToString(\",\") },\n        deserializer = { it.split(\",\").mapNotNull { l -> l.toLongOrNull() } },\n    )\n}\n\ninline fun <reified T : Enum<T>> PreferenceStore.getEnum(\n    key: String,\n    defaultValue: T,\n): Preference<T> {\n    return getObjectFromString(\n        key = key,\n        defaultValue = defaultValue,\n        serializer = { it.name },\n        deserializer = {\n            try {\n                enumValueOf(it)\n            } catch (e: IllegalArgumentException) {\n                defaultValue\n            }\n        },\n    )\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/preference/TriState.kt",
    "content": "package tachiyomi.core.common.preference\n\nenum class TriState {\n    DISABLED, // Disable filter\n    ENABLED_IS, // Enabled with \"is\" filter\n    ENABLED_NOT, // Enabled with \"not\" filter\n    ;\n\n    fun next(): TriState {\n        return when (this) {\n            DISABLED -> ENABLED_IS\n            ENABLED_IS -> ENABLED_NOT\n            ENABLED_NOT -> DISABLED\n        }\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/storage/AndroidStorageFolderProvider.kt",
    "content": "package tachiyomi.core.common.storage\n\nimport android.content.Context\nimport android.os.Environment\nimport androidx.core.net.toUri\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\nimport java.io.File\n\nclass AndroidStorageFolderProvider(\n    private val context: Context,\n) : FolderProvider {\n\n    override fun directory(): File {\n        return File(\n            Environment.getExternalStorageDirectory().absolutePath + File.separator +\n                context.stringResource(MR.strings.app_name),\n        )\n    }\n\n    override fun path(): String {\n        return directory().toUri().toString()\n    }\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/storage/FolderProvider.kt",
    "content": "package tachiyomi.core.common.storage\n\nimport java.io.File\n\ninterface FolderProvider {\n\n    fun directory(): File\n\n    fun path(): String\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/storage/UniFileExtensions.kt",
    "content": "package tachiyomi.core.common.storage\n\nimport com.hippo.unifile.UniFile\n\nval UniFile.extension: String?\n    get() = name?.substringAfterLast('.')\n\nval UniFile.nameWithoutExtension: String?\n    get() = name?.substringBeforeLast('.')\n\nval UniFile.displayablePath: String\n    get() = filePath ?: uri.toString()\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/util/lang/BooleanExtensions.kt",
    "content": "package tachiyomi.core.common.util.lang\n\nfun Boolean.toLong() = if (this) 1L else 0L\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/util/lang/CoroutinesExtensions.kt",
    "content": "package tachiyomi.core.common.util.lang\n\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.CoroutineStart\nimport kotlinx.coroutines.DelicateCoroutinesApi\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.GlobalScope\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.NonCancellable\nimport kotlinx.coroutines.launch\nimport kotlinx.coroutines.withContext\n\n/**\n * Think twice before using this. This is a delicate API. It is easy to accidentally create resource or memory leaks when GlobalScope is used.\n *\n * **Possible replacements**\n * - suspend function\n * - custom scope like view or presenter scope\n */\n@DelicateCoroutinesApi\nfun launchUI(block: suspend CoroutineScope.() -> Unit): Job =\n    GlobalScope.launch(Dispatchers.Main, CoroutineStart.DEFAULT, block)\n\n/**\n * Think twice before using this. This is a delicate API. It is easy to accidentally create resource or memory leaks when GlobalScope is used.\n *\n * **Possible replacements**\n * - suspend function\n * - custom scope like view or presenter scope\n */\n@DelicateCoroutinesApi\nfun launchIO(block: suspend CoroutineScope.() -> Unit): Job =\n    GlobalScope.launch(Dispatchers.IO, CoroutineStart.DEFAULT, block)\n\n/**\n * Think twice before using this. This is a delicate API. It is easy to accidentally create resource or memory leaks when GlobalScope is used.\n *\n * **Possible replacements**\n * - suspend function\n * - custom scope like view or presenter scope\n */\n@DelicateCoroutinesApi\nfun launchNow(block: suspend CoroutineScope.() -> Unit): Job =\n    GlobalScope.launch(Dispatchers.Main, CoroutineStart.UNDISPATCHED, block)\n\nfun CoroutineScope.launchUI(block: suspend CoroutineScope.() -> Unit): Job =\n    launch(Dispatchers.Main, block = block)\n\nfun CoroutineScope.launchIO(block: suspend CoroutineScope.() -> Unit): Job =\n    launch(Dispatchers.IO, block = block)\n\nfun CoroutineScope.launchNonCancellable(block: suspend CoroutineScope.() -> Unit): Job =\n    launchIO { withContext(NonCancellable, block) }\n\nsuspend fun <T> withUIContext(block: suspend CoroutineScope.() -> T) = withContext(\n    Dispatchers.Main,\n    block,\n)\n\nsuspend fun <T> withIOContext(block: suspend CoroutineScope.() -> T) = withContext(\n    Dispatchers.IO,\n    block,\n)\n\nsuspend fun <T> withNonCancellableContext(block: suspend CoroutineScope.() -> T) =\n    withContext(NonCancellable, block)\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/util/lang/RxCoroutineBridge.kt",
    "content": "package tachiyomi.core.common.util.lang\n\nimport kotlinx.coroutines.CancellableContinuation\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport kotlinx.coroutines.suspendCancellableCoroutine\nimport rx.Observable\nimport rx.Subscriber\nimport rx.Subscription\nimport kotlin.coroutines.resume\nimport kotlin.coroutines.resumeWithException\n\n/*\n * Util functions for bridging RxJava and coroutines. Taken from TachiyomiEH/SY.\n */\n\nsuspend fun <T> Observable<T>.awaitSingle(): T = single().awaitOne()\n\n@OptIn(InternalCoroutinesApi::class)\nprivate suspend fun <T> Observable<T>.awaitOne(): T = suspendCancellableCoroutine { cont ->\n    cont.unsubscribeOnCancellation(\n        subscribe(\n            object : Subscriber<T>() {\n                override fun onStart() {\n                    request(1)\n                }\n\n                override fun onNext(t: T) {\n                    cont.resume(t)\n                }\n\n                override fun onCompleted() {\n                    if (cont.isActive) {\n                        cont.resumeWithException(\n                            IllegalStateException(\n                                \"Should have invoked onNext\",\n                            ),\n                        )\n                    }\n                }\n\n                override fun onError(e: Throwable) {\n                    /*\n                     * Rx1 observable throws NoSuchElementException if cancellation happened before\n                     * element emission. To mitigate this we try to atomically resume continuation with exception:\n                     * if resume failed, then we know that continuation successfully cancelled itself\n                     */\n                    val token = cont.tryResumeWithException(e)\n                    if (token != null) {\n                        cont.completeResume(token)\n                    }\n                }\n            },\n        ),\n    )\n}\n\nprivate fun <T> CancellableContinuation<T>.unsubscribeOnCancellation(sub: Subscription) =\n    invokeOnCancellation { sub.unsubscribe() }\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/util/lang/SortUtil.kt",
    "content": "package tachiyomi.core.common.util.lang\n\nimport java.text.Collator\nimport java.util.Locale\n\nprivate val collator by lazy {\n    val locale = Locale.getDefault()\n    Collator.getInstance(locale).apply {\n        strength = Collator.PRIMARY\n    }\n}\n\nfun String.compareToWithCollator(other: String): Int {\n    return collator.compare(this, other)\n}\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt",
    "content": "package tachiyomi.core.common.util.system\n\nimport android.content.Context\nimport android.content.res.Configuration\nimport android.content.res.Resources\nimport android.graphics.Bitmap\nimport android.graphics.BitmapFactory\nimport android.graphics.BitmapRegionDecoder\nimport android.graphics.Color\nimport android.graphics.Matrix\nimport android.graphics.Rect\nimport android.graphics.drawable.ColorDrawable\nimport android.graphics.drawable.Drawable\nimport android.graphics.drawable.GradientDrawable\nimport android.os.Build\nimport androidx.annotation.ColorInt\nimport androidx.core.graphics.alpha\nimport androidx.core.graphics.applyCanvas\nimport androidx.core.graphics.blue\nimport androidx.core.graphics.createBitmap\nimport androidx.core.graphics.get\nimport androidx.core.graphics.green\nimport androidx.core.graphics.red\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.util.system.GLUtil\nimport logcat.LogPriority\nimport okio.Buffer\nimport okio.BufferedSource\nimport tachiyomi.decoder.Format\nimport tachiyomi.decoder.ImageDecoder\nimport java.io.InputStream\nimport java.util.Locale\nimport kotlin.math.abs\nimport kotlin.math.max\nimport kotlin.math.min\n\nobject ImageUtil {\n\n    fun isImage(name: String?, openStream: (() -> InputStream)? = null): Boolean {\n        if (name == null) return false\n\n        val extension = name.substringAfterLast('.')\n        return ImageType.entries.any { it.extension == extension } || openStream?.let { findImageType(it) } != null\n    }\n\n    fun findImageType(openStream: () -> InputStream): ImageType? {\n        return openStream().use { findImageType(it) }\n    }\n\n    fun findImageType(stream: InputStream): ImageType? {\n        return try {\n            when (getImageType(stream)?.format) {\n                Format.Avif -> ImageType.AVIF\n                Format.Gif -> ImageType.GIF\n                Format.Heif -> ImageType.HEIF\n                Format.Jpeg -> ImageType.JPEG\n                Format.Jxl -> ImageType.JXL\n                Format.Png -> ImageType.PNG\n                Format.Webp -> ImageType.WEBP\n                else -> null\n            }\n        } catch (e: Exception) {\n            null\n        }\n    }\n\n    fun getExtensionFromMimeType(mime: String?, openStream: () -> InputStream): String {\n        val type = mime?.let { ImageType.entries.find { it.mime == mime } } ?: findImageType(openStream)\n        return type?.extension ?: \"jpg\"\n    }\n\n    fun isAnimatedAndSupported(source: BufferedSource): Boolean {\n        return try {\n            val type = getImageType(source.peek().inputStream()) ?: return false\n            // https://coil-kt.github.io/coil/getting_started/#supported-image-formats\n            when (type.format) {\n                Format.Gif -> true\n                // Animated WebP on Android 9+\n                Format.Webp -> type.isAnimated && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P\n                // Animated Heif on Android 11+\n                Format.Heif -> type.isAnimated && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R\n                else -> false\n            }\n        } catch (e: Exception) {\n            false\n        }\n    }\n\n    private fun getImageType(stream: InputStream): tachiyomi.decoder.ImageType? {\n        val bytes = ByteArray(32)\n\n        val length = if (stream.markSupported()) {\n            stream.mark(bytes.size)\n            stream.read(bytes, 0, bytes.size).also { stream.reset() }\n        } else {\n            stream.read(bytes, 0, bytes.size)\n        }\n\n        if (length == -1) {\n            return null\n        }\n\n        return ImageDecoder.findType(bytes)\n    }\n\n    enum class ImageType(val mime: String, val extension: String) {\n        AVIF(\"image/avif\", \"avif\"),\n        GIF(\"image/gif\", \"gif\"),\n        HEIF(\"image/heif\", \"heif\"),\n        JPEG(\"image/jpeg\", \"jpg\"),\n        JXL(\"image/jxl\", \"jxl\"),\n        PNG(\"image/png\", \"png\"),\n        WEBP(\"image/webp\", \"webp\"),\n    }\n\n    /**\n     * Check whether the image is wide (which we consider a double-page spread).\n     *\n     * @return true if the width is greater than the height\n     */\n    fun isWideImage(imageSource: BufferedSource): Boolean {\n        val options = extractImageOptions(imageSource)\n        return options.outWidth > options.outHeight\n    }\n\n    /**\n     * Extract the 'side' part from [BufferedSource] and return it as [BufferedSource].\n     */\n    fun splitInHalf(imageSource: BufferedSource, side: Side): BufferedSource {\n        val imageBitmap = BitmapFactory.decodeStream(imageSource.inputStream())\n        val height = imageBitmap.height\n        val width = imageBitmap.width\n\n        val singlePage = Rect(0, 0, width / 2, height)\n\n        val half = createBitmap(width / 2, height)\n        val part = when (side) {\n            Side.RIGHT -> Rect(width - width / 2, 0, width, height)\n            Side.LEFT -> Rect(0, 0, width / 2, height)\n        }\n        half.applyCanvas {\n            drawBitmap(imageBitmap, part, singlePage, null)\n        }\n        val output = Buffer()\n        half.compress(Bitmap.CompressFormat.JPEG, 100, output.outputStream())\n\n        return output\n    }\n\n    fun rotateImage(imageSource: BufferedSource, degrees: Float): BufferedSource {\n        val imageBitmap = BitmapFactory.decodeStream(imageSource.inputStream())\n        val rotated = rotateBitMap(imageBitmap, degrees)\n\n        val output = Buffer()\n        rotated.compress(Bitmap.CompressFormat.JPEG, 100, output.outputStream())\n\n        return output\n    }\n\n    private fun rotateBitMap(bitmap: Bitmap, degrees: Float): Bitmap {\n        val matrix = Matrix().apply { postRotate(degrees) }\n        return Bitmap.createBitmap(bitmap, 0, 0, bitmap.width, bitmap.height, matrix, true)\n    }\n\n    /**\n     * Split the image into left and right parts, then merge them into a new image.\n     */\n    fun splitAndMerge(imageSource: BufferedSource, upperSide: Side): BufferedSource {\n        val imageBitmap = BitmapFactory.decodeStream(imageSource.inputStream())\n        val height = imageBitmap.height\n        val width = imageBitmap.width\n\n        val result = createBitmap(width / 2, height * 2)\n        result.applyCanvas {\n            // right -> upper\n            val rightPart = when (upperSide) {\n                Side.RIGHT -> Rect(width - width / 2, 0, width, height)\n                Side.LEFT -> Rect(0, 0, width / 2, height)\n            }\n            val upperPart = Rect(0, 0, width / 2, height)\n            drawBitmap(imageBitmap, rightPart, upperPart, null)\n            // left -> bottom\n            val leftPart = when (upperSide) {\n                Side.LEFT -> Rect(width - width / 2, 0, width, height)\n                Side.RIGHT -> Rect(0, 0, width / 2, height)\n            }\n            val bottomPart = Rect(0, height, width / 2, height * 2)\n            drawBitmap(imageBitmap, leftPart, bottomPart, null)\n        }\n\n        val output = Buffer()\n        result.compress(Bitmap.CompressFormat.JPEG, 100, output.outputStream())\n        return output\n    }\n\n    enum class Side {\n        RIGHT,\n        LEFT,\n    }\n\n    /**\n     * Check whether the image is considered a tall image.\n     *\n     * @return true if the height:width ratio is greater than 3.\n     */\n    private fun isTallImage(imageSource: BufferedSource): Boolean {\n        val options = extractImageOptions(imageSource)\n        return (options.outHeight / options.outWidth) > 3\n    }\n\n    /**\n     * Splits tall images to improve performance of reader\n     */\n    fun splitTallImage(tmpDir: UniFile, imageFile: UniFile, filenamePrefix: String): Boolean {\n        val imageSource = imageFile.openInputStream().use { Buffer().readFrom(it) }\n        if (isAnimatedAndSupported(imageSource) || !isTallImage(imageSource)) {\n            return true\n        }\n\n        val bitmapRegionDecoder = getBitmapRegionDecoder(imageSource.peek().inputStream())\n        if (bitmapRegionDecoder == null) {\n            logcat { \"Failed to create new instance of BitmapRegionDecoder\" }\n            return false\n        }\n\n        val options = extractImageOptions(imageSource).apply {\n            inJustDecodeBounds = false\n        }\n\n        val splitDataList = options.splitData\n\n        return try {\n            splitDataList.forEach { splitData ->\n                val splitImageName = splitImageName(filenamePrefix, splitData.index)\n                // Remove pre-existing split if exists (this split shouldn't exist under normal circumstances)\n                tmpDir.findFile(splitImageName)?.delete()\n\n                val splitFile = tmpDir.createFile(splitImageName)!!\n\n                val region = Rect(0, splitData.topOffset, splitData.splitWidth, splitData.bottomOffset)\n\n                splitFile.openOutputStream().use { outputStream ->\n                    val splitBitmap = bitmapRegionDecoder.decodeRegion(region, options)\n                    splitBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)\n                    splitBitmap.recycle()\n                }\n                logcat {\n                    \"Success: Split #${splitData.index + 1} with topOffset=${splitData.topOffset} \" +\n                        \"height=${splitData.splitHeight} bottomOffset=${splitData.bottomOffset}\"\n                }\n            }\n            imageFile.delete()\n            true\n        } catch (e: Exception) {\n            // Image splits were not successfully saved so delete them and keep the original image\n            splitDataList\n                .map { splitImageName(filenamePrefix, it.index) }\n                .forEach { tmpDir.findFile(it)?.delete() }\n            logcat(LogPriority.ERROR, e)\n            false\n        } finally {\n            bitmapRegionDecoder.recycle()\n        }\n    }\n\n    private fun splitImageName(filenamePrefix: String, index: Int) = \"${filenamePrefix}__${\"%03d\".format(\n        Locale.ENGLISH,\n        index + 1,\n    )}.jpg\"\n\n    private val BitmapFactory.Options.splitData\n        get(): List<SplitData> {\n            val imageHeight = outHeight\n            val imageWidth = outWidth\n\n            // -1 so it doesn't try to split when imageHeight = optimalImageHeight\n            val partCount = (imageHeight - 1) / optimalImageHeight + 1\n            val optimalSplitHeight = imageHeight / partCount\n\n            logcat {\n                \"Generating SplitData for image (height: $imageHeight): \" +\n                    \"$partCount parts @ ${optimalSplitHeight}px height per part\"\n            }\n\n            return buildList {\n                val range = 0..<partCount\n                for (index in range) {\n                    // Only continue if the list is empty or there is image remaining\n                    if (isNotEmpty() && imageHeight <= last().bottomOffset) break\n\n                    val topOffset = index * optimalSplitHeight\n                    var splitHeight = min(optimalSplitHeight, imageHeight - topOffset)\n\n                    if (index == range.last) {\n                        val remainingHeight = imageHeight - (topOffset + splitHeight)\n                        splitHeight += remainingHeight\n                    }\n\n                    add(SplitData(index, topOffset, splitHeight, imageWidth))\n                }\n            }\n        }\n\n    data class SplitData(\n        val index: Int,\n        val topOffset: Int,\n        val splitHeight: Int,\n        val splitWidth: Int,\n    ) {\n        val bottomOffset = topOffset + splitHeight\n    }\n\n    fun canUseHardwareBitmap(bitmap: Bitmap): Boolean {\n        return canUseHardwareBitmap(bitmap.width, bitmap.height)\n    }\n\n    fun canUseHardwareBitmap(imageSource: BufferedSource): Boolean {\n        return with(extractImageOptions(imageSource)) {\n            canUseHardwareBitmap(outWidth, outHeight)\n        }\n    }\n\n    var hardwareBitmapThreshold: Int = GLUtil.SAFE_TEXTURE_LIMIT\n\n    private fun canUseHardwareBitmap(width: Int, height: Int): Boolean {\n        if (HARDWARE_BITMAP_UNSUPPORTED) return false\n        return maxOf(width, height) <= hardwareBitmapThreshold\n    }\n\n    /**\n     * Algorithm for determining what background to accompany a comic/manga page\n     */\n    fun chooseBackground(context: Context, imageStream: InputStream): Drawable {\n        val decoder = ImageDecoder.newInstance(imageStream)\n        val image = decoder?.decode()\n        decoder?.recycle()\n\n        val whiteColor = Color.WHITE\n        if (image == null) return ColorDrawable(whiteColor)\n        if (image.width < 50 || image.height < 50) {\n            return ColorDrawable(whiteColor)\n        }\n\n        val top = 5\n        val bot = image.height - 5\n        val left = (image.width * 0.0275).toInt()\n        val right = image.width - left\n        val midX = image.width / 2\n        val midY = image.height / 2\n        val offsetX = (image.width * 0.01).toInt()\n        val leftOffsetX = left - offsetX\n        val rightOffsetX = right + offsetX\n\n        val topLeftPixel = image[left, top]\n        val topRightPixel = image[right, top]\n        val midLeftPixel = image[left, midY]\n        val midRightPixel = image[right, midY]\n        val topCenterPixel = image[midX, top]\n        val botLeftPixel = image[left, bot]\n        val bottomCenterPixel = image[midX, bot]\n        val botRightPixel = image[right, bot]\n\n        val topLeftIsDark = topLeftPixel.isDark()\n        val topRightIsDark = topRightPixel.isDark()\n        val midLeftIsDark = midLeftPixel.isDark()\n        val midRightIsDark = midRightPixel.isDark()\n        val topMidIsDark = topCenterPixel.isDark()\n        val botLeftIsDark = botLeftPixel.isDark()\n        val botRightIsDark = botRightPixel.isDark()\n\n        var darkBG =\n            (topLeftIsDark && (botLeftIsDark || botRightIsDark || topRightIsDark || midLeftIsDark || topMidIsDark)) ||\n                (topRightIsDark && (botRightIsDark || botLeftIsDark || midRightIsDark || topMidIsDark))\n\n        val topAndBotPixels =\n            listOf(topLeftPixel, topCenterPixel, topRightPixel, botRightPixel, bottomCenterPixel, botLeftPixel)\n        val isNotWhiteAndCloseTo = topAndBotPixels.mapIndexed { index, color ->\n            val other = topAndBotPixels[(index + 1) % topAndBotPixels.size]\n            !color.isWhite() && color.isCloseTo(other)\n        }\n        if (isNotWhiteAndCloseTo.all { it }) {\n            return ColorDrawable(topLeftPixel)\n        }\n\n        val cornerPixels = listOf(topLeftPixel, topRightPixel, botLeftPixel, botRightPixel)\n        val numberOfWhiteCorners = cornerPixels.map { cornerPixel -> cornerPixel.isWhite() }\n            .filter { it }\n            .size\n        if (numberOfWhiteCorners > 2) {\n            darkBG = false\n        }\n\n        var blackColor = when {\n            topLeftIsDark -> topLeftPixel\n            topRightIsDark -> topRightPixel\n            botLeftIsDark -> botLeftPixel\n            botRightIsDark -> botRightPixel\n            else -> whiteColor\n        }\n\n        var overallWhitePixels = 0\n        var overallBlackPixels = 0\n        var topBlackStreak = 0\n        var topWhiteStreak = 0\n        var botBlackStreak = 0\n        var botWhiteStreak = 0\n        outer@ for (x in intArrayOf(left, right, leftOffsetX, rightOffsetX)) {\n            var whitePixelsStreak = 0\n            var whitePixels = 0\n            var blackPixelsStreak = 0\n            var blackPixels = 0\n            var blackStreak = false\n            var whiteStreak = false\n            val notOffset = x == left || x == right\n            inner@ for ((index, y) in (0..<image.height step image.height / 25).withIndex()) {\n                val pixel = image[x, y]\n                val pixelOff = image[x + (if (x < image.width / 2) -offsetX else offsetX), y]\n                if (pixel.isWhite()) {\n                    whitePixelsStreak++\n                    whitePixels++\n                    if (notOffset) {\n                        overallWhitePixels++\n                    }\n                    if (whitePixelsStreak > 14) {\n                        whiteStreak = true\n                    }\n                    if (whitePixelsStreak > 6 && whitePixelsStreak >= index - 1) {\n                        topWhiteStreak = whitePixelsStreak\n                    }\n                } else {\n                    whitePixelsStreak = 0\n                    if (pixel.isDark() && pixelOff.isDark()) {\n                        blackPixels++\n                        if (notOffset) {\n                            overallBlackPixels++\n                        }\n                        blackPixelsStreak++\n                        if (blackPixelsStreak >= 14) {\n                            blackStreak = true\n                        }\n                        continue@inner\n                    }\n                }\n                if (blackPixelsStreak > 6 && blackPixelsStreak >= index - 1) {\n                    topBlackStreak = blackPixelsStreak\n                }\n                blackPixelsStreak = 0\n            }\n            if (blackPixelsStreak > 6) {\n                botBlackStreak = blackPixelsStreak\n            } else if (whitePixelsStreak > 6) {\n                botWhiteStreak = whitePixelsStreak\n            }\n            when {\n                blackPixels > 22 -> {\n                    if (x == right || x == rightOffsetX) {\n                        blackColor = when {\n                            topRightIsDark -> topRightPixel\n                            botRightIsDark -> botRightPixel\n                            else -> blackColor\n                        }\n                    }\n                    darkBG = true\n                    overallWhitePixels = 0\n                    break@outer\n                }\n                blackStreak -> {\n                    darkBG = true\n                    if (x == right || x == rightOffsetX) {\n                        blackColor = when {\n                            topRightIsDark -> topRightPixel\n                            botRightIsDark -> botRightPixel\n                            else -> blackColor\n                        }\n                    }\n                    if (blackPixels > 18) {\n                        overallWhitePixels = 0\n                        break@outer\n                    }\n                }\n                whiteStreak || whitePixels > 22 -> darkBG = false\n            }\n        }\n\n        val topIsBlackStreak = topBlackStreak > topWhiteStreak\n        val bottomIsBlackStreak = botBlackStreak > botWhiteStreak\n        if (overallWhitePixels > 9 && overallWhitePixels > overallBlackPixels) {\n            darkBG = false\n        }\n        if (topIsBlackStreak && bottomIsBlackStreak) {\n            darkBG = true\n        }\n\n        val isLandscape = context.resources.configuration?.orientation == Configuration.ORIENTATION_LANDSCAPE\n        if (isLandscape) {\n            return when {\n                darkBG -> ColorDrawable(blackColor)\n                else -> ColorDrawable(whiteColor)\n            }\n        }\n\n        val botCornersIsWhite = botLeftPixel.isWhite() && botRightPixel.isWhite()\n        val topCornersIsWhite = topLeftPixel.isWhite() && topRightPixel.isWhite()\n\n        val topCornersIsDark = topLeftIsDark && topRightIsDark\n        val botCornersIsDark = botLeftIsDark && botRightIsDark\n\n        val topOffsetCornersIsDark = image[leftOffsetX, top].isDark() && image[rightOffsetX, top].isDark()\n        val botOffsetCornersIsDark = image[leftOffsetX, bot].isDark() && image[rightOffsetX, bot].isDark()\n\n        val gradient = when {\n            darkBG && botCornersIsWhite -> {\n                intArrayOf(blackColor, blackColor, whiteColor, whiteColor)\n            }\n            darkBG && topCornersIsWhite -> {\n                intArrayOf(whiteColor, whiteColor, blackColor, blackColor)\n            }\n            darkBG -> {\n                return ColorDrawable(blackColor)\n            }\n            topIsBlackStreak ||\n                (\n                    topCornersIsDark &&\n                        topOffsetCornersIsDark &&\n                        (topMidIsDark || overallBlackPixels > 9)\n                    ) -> {\n                intArrayOf(blackColor, blackColor, whiteColor, whiteColor)\n            }\n            bottomIsBlackStreak ||\n                (\n                    botCornersIsDark &&\n                        botOffsetCornersIsDark &&\n                        (bottomCenterPixel.isDark() || overallBlackPixels > 9)\n                    ) -> {\n                intArrayOf(whiteColor, whiteColor, blackColor, blackColor)\n            }\n            else -> {\n                return ColorDrawable(whiteColor)\n            }\n        }\n\n        return GradientDrawable(\n            GradientDrawable.Orientation.TOP_BOTTOM,\n            gradient,\n        )\n    }\n\n    private fun @receiver:ColorInt Int.isDark(): Boolean =\n        red < 40 && blue < 40 && green < 40 && alpha > 200\n\n    private fun @receiver:ColorInt Int.isCloseTo(other: Int): Boolean =\n        abs(red - other.red) < 30 && abs(green - other.green) < 30 && abs(blue - other.blue) < 30\n\n    private fun @receiver:ColorInt Int.isWhite(): Boolean =\n        red + blue + green > 740\n\n    /**\n     * Used to check an image's dimensions without loading it in the memory.\n     */\n    private fun extractImageOptions(imageSource: BufferedSource): BitmapFactory.Options {\n        val options = BitmapFactory.Options().apply { inJustDecodeBounds = true }\n        BitmapFactory.decodeStream(imageSource.peek().inputStream(), null, options)\n        return options\n    }\n\n    private fun getBitmapRegionDecoder(imageStream: InputStream): BitmapRegionDecoder? {\n        return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {\n            BitmapRegionDecoder.newInstance(imageStream)\n        } else {\n            @Suppress(\"DEPRECATION\")\n            BitmapRegionDecoder.newInstance(imageStream, false)\n        }\n    }\n\n    private val optimalImageHeight = getDisplayMaxHeightInPx * 2\n\n    /**\n     * Taken from Coil\n     * (https://github.com/coil-kt/coil/blob/1674d3516f061aeacbe749a435b1924f9648fd41/coil-core/src/androidMain/kotlin/coil3/util/hardwareBitmaps.kt)\n     * ---\n     * Maintains a list of devices with broken/incomplete/unstable hardware bitmap implementations.\n     *\n     * Model names are retrieved from\n     * [Google's official device list](https://support.google.com/googleplay/answer/1727131?hl=en).\n     *\n     */\n    val HARDWARE_BITMAP_UNSUPPORTED = when (Build.VERSION.SDK_INT) {\n        26 -> run {\n            val model = Build.MODEL ?: return@run false\n\n            // Samsung Galaxy (ALL)\n            if (model.removePrefix(\"SAMSUNG-\").startsWith(\"SM-\")) return@run true\n\n            val device = Build.DEVICE ?: return@run false\n\n            return@run device in arrayOf(\n                \"nora\", \"nora_8917\", \"nora_8917_n\", // Moto E5\n                \"james\", \"rjames_f\", \"rjames_go\", \"pettyl\", // Moto E5 Play\n                \"hannah\", \"ahannah\", \"rhannah\", // Moto E5 Plus\n\n                \"ali\", \"ali_n\", // Moto G6\n                \"aljeter\", \"aljeter_n\", \"jeter\", // Moto G6 Play\n                \"evert\", \"evert_n\", \"evert_nt\", // Moto G6 Plus\n\n                \"G3112\", \"G3116\", \"G3121\", \"G3123\", \"G3125\", // Xperia XA1\n                \"G3412\", \"G3416\", \"G3421\", \"G3423\", \"G3426\", // Xperia XA1 Plus\n                \"G3212\", \"G3221\", \"G3223\", \"G3226\", // Xperia XA1 Ultra\n\n                \"BV6800Pro\", // BlackView BV6800Pro\n                \"CatS41\", // Cat S41\n                \"Hi9Pro\", // CHUWI Hi9 Pro\n                \"manning\", // Lenovo K8 Note\n                \"N5702L\", // NUU Mobile G3\n            )\n        }\n\n        27 -> run {\n            val device = Build.DEVICE ?: return@run false\n\n            return@run device in arrayOf(\n                \"mcv1s\", // LG Tribute Empire\n                \"mcv3\", // LG K11\n                \"mcv5a\", // LG Q7\n                \"mcv7a\", // LG Stylo 4\n\n                \"A30ATMO\", // T-Mobile REVVL 2\n                \"A70AXLTMO\", // T-Mobile REVVL 2 PLUS\n\n                \"A3A_8_4G_TMO\", // Alcatel 9027W\n                \"Edison_CKT\", // Alcatel ONYX\n                \"EDISON_TF\", // Alcatel TCL XL2\n                \"FERMI_TF\", // Alcatel A501DL\n                \"U50A_ATT\", // Alcatel TETRA\n                \"U50A_PLUS_ATT\", // Alcatel 5059R\n                \"U50A_PLUS_TF\", // Alcatel TCL LX\n                \"U50APLUSTMO\", // Alcatel 5059Z\n                \"U5A_PLUS_4G\", // Alcatel 1X\n\n                \"RCT6513W87DK5e\", // RCA Galileo Pro\n                \"RCT6873W42BMF9A\", // RCA Voyager\n                \"RCT6A03W13\", // RCA 10 Viking\n                \"RCT6B03W12\", // RCA Atlas 10 Pro\n                \"RCT6B03W13\", // RCA Atlas 10 Pro+\n                \"RCT6T06E13\", // RCA Artemis 10\n\n                \"A3_Pro\", // Umidigi A3 Pro\n                \"One\", // Umidigi One\n                \"One_Max\", // Umidigi One Max\n                \"One_Pro\", // Umidigi One Pro\n                \"Z2\", // Umidigi Z2\n                \"Z2_PRO\", // Umidigi Z2 Pro\n\n                \"Armor_3\", // Ulefone Armor 3\n                \"Armor_6\", // Ulefone Armor 6\n\n                \"Blackview\", // Blackview BV6000\n                \"BV9500\", // Blackview BV9500\n                \"BV9500Pro\", // Blackview BV9500Pro\n\n                \"A6L-C\", // Nuu A6L-C\n                \"N5002LA\", // Nuu A7L\n                \"N5501LA\", // Nuu A5L\n\n                \"Power_2_Pro\", // Leagoo Power 2 Pro\n                \"Power_5\", // Leagoo Power 5\n                \"Z9\", // Leagoo Z9\n\n                \"V0310WW\", // Blu VIVO VI+\n                \"V0330WW\", // Blu VIVO XI\n\n                \"A3\", // BenQ A3\n                \"ASUS_X018_4\", // Asus ZenFone Max Plus M1 (ZB570TL)\n                \"C210AE\", // Wiko Life\n                \"fireball\", // DROID Incredible 4G LTE\n                \"ILA_X1\", // iLA X1\n                \"Infinix-X605_sprout\", // Infinix NOTE 5 Stylus\n                \"j7maxlte\", // Samsung Galaxy J7 Max\n                \"KING_KONG_3\", // Cubot King Kong 3\n                \"M10500\", // Packard Bell M10500\n                \"S70\", // Altice ALTICE S70\n                \"S80Lite\", // Doogee S80Lite\n                \"SGINO6\", // SGiNO 6\n                \"st18c10bnn\", // Barnes and Noble BNTV650\n                \"TECNO-CA8\", // Tecno CAMON X Pro,\n                \"SHIFT6m\", // SHIFT 6m\n            )\n        }\n\n        else -> false\n    }\n}\n\nval getDisplayMaxHeightInPx: Int\n    get() = Resources.getSystem().displayMetrics.let { max(it.heightPixels, it.widthPixels) }\n"
  },
  {
    "path": "core/common/src/main/kotlin/tachiyomi/core/common/util/system/LogcatExtensions.kt",
    "content": "package tachiyomi.core.common.util.system\n\nimport logcat.LogPriority\nimport logcat.asLog\nimport logcat.logcat\n\ninline fun Any.logcat(\n    priority: LogPriority = LogPriority.DEBUG,\n    throwable: Throwable? = null,\n    message: () -> String = { \"\" },\n) = logcat(priority = priority) {\n    var msg = message()\n    if (throwable != null) {\n        if (msg.isNotBlank()) msg += \"\\n\"\n        msg += throwable.asLog()\n    }\n    msg\n}\n"
  },
  {
    "path": "core-metadata/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    kotlin(\"android\")\n    kotlin(\"plugin.serialization\")\n}\n\nandroid {\n    namespace = \"tachiyomi.core.metadata\"\n\n    defaultConfig {\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n        consumerProguardFiles(\"consumer-rules.pro\")\n    }\n}\n\ndependencies {\n    implementation(projects.sourceApi)\n\n    implementation(kotlinx.bundles.serialization)\n}\n"
  },
  {
    "path": "core-metadata/consumer-rules.pro",
    "content": ""
  },
  {
    "path": "core-metadata/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile"
  },
  {
    "path": "core-metadata/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "core-metadata/src/main/java/tachiyomi/core/metadata/comicinfo/ComicInfo.kt",
    "content": "package tachiyomi.core.metadata.comicinfo\n\nimport eu.kanade.tachiyomi.source.model.SManga\nimport kotlinx.serialization.Serializable\nimport nl.adaptivity.xmlutil.serialization.XmlElement\nimport nl.adaptivity.xmlutil.serialization.XmlSerialName\nimport nl.adaptivity.xmlutil.serialization.XmlValue\n\nconst val COMIC_INFO_FILE = \"ComicInfo.xml\"\n\nfun SManga.getComicInfo() = ComicInfo(\n    series = ComicInfo.Series(title),\n    summary = description?.let { ComicInfo.Summary(it) },\n    writer = author?.let { ComicInfo.Writer(it) },\n    penciller = artist?.let { ComicInfo.Penciller(it) },\n    genre = genre?.let { ComicInfo.Genre(it) },\n    publishingStatus = ComicInfo.PublishingStatusTachiyomi(\n        ComicInfoPublishingStatus.toComicInfoValue(status.toLong()),\n    ),\n    title = null,\n    number = null,\n    web = null,\n    translator = null,\n    inker = null,\n    colorist = null,\n    letterer = null,\n    coverArtist = null,\n    tags = null,\n    categories = null,\n    source = null,\n)\n\nfun SManga.copyFromComicInfo(comicInfo: ComicInfo) {\n    comicInfo.series?.let { title = it.value }\n    comicInfo.writer?.let { author = it.value }\n    comicInfo.summary?.let { description = it.value }\n\n    listOfNotNull(\n        comicInfo.genre?.value,\n        comicInfo.tags?.value,\n        comicInfo.categories?.value,\n    )\n        .distinct()\n        .joinToString(\", \") { it.trim() }\n        .takeIf { it.isNotEmpty() }\n        ?.let { genre = it }\n\n    listOfNotNull(\n        comicInfo.penciller?.value,\n        comicInfo.inker?.value,\n        comicInfo.colorist?.value,\n        comicInfo.letterer?.value,\n        comicInfo.coverArtist?.value,\n    )\n        .flatMap { it.split(\", \") }\n        .distinct()\n        .joinToString(\", \") { it.trim() }\n        .takeIf { it.isNotEmpty() }\n        ?.let { artist = it }\n\n    status = ComicInfoPublishingStatus.toSMangaValue(comicInfo.publishingStatus?.value)\n}\n\n// https://anansi-project.github.io/docs/comicinfo/schemas/v2.0\n@Suppress(\"UNUSED\")\n@Serializable\n@XmlSerialName(\"ComicInfo\", \"\", \"\")\ndata class ComicInfo(\n    val title: Title?,\n    val series: Series?,\n    val number: Number?,\n    val summary: Summary?,\n    val writer: Writer?,\n    val penciller: Penciller?,\n    val inker: Inker?,\n    val colorist: Colorist?,\n    val letterer: Letterer?,\n    val coverArtist: CoverArtist?,\n    val translator: Translator?,\n    val genre: Genre?,\n    val tags: Tags?,\n    val web: Web?,\n    val publishingStatus: PublishingStatusTachiyomi?,\n    val categories: CategoriesTachiyomi?,\n    val source: SourceMihon?,\n) {\n    @XmlElement(false)\n    @XmlSerialName(\"xmlns:xsd\", \"\", \"\")\n    val xmlSchema: String = \"http://www.w3.org/2001/XMLSchema\"\n\n    @XmlElement(false)\n    @XmlSerialName(\"xmlns:xsi\", \"\", \"\")\n    val xmlSchemaInstance: String = \"http://www.w3.org/2001/XMLSchema-instance\"\n\n    @Serializable\n    @XmlSerialName(\"Title\", \"\", \"\")\n    data class Title(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Series\", \"\", \"\")\n    data class Series(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Number\", \"\", \"\")\n    data class Number(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Summary\", \"\", \"\")\n    data class Summary(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Writer\", \"\", \"\")\n    data class Writer(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Penciller\", \"\", \"\")\n    data class Penciller(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Inker\", \"\", \"\")\n    data class Inker(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Colorist\", \"\", \"\")\n    data class Colorist(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Letterer\", \"\", \"\")\n    data class Letterer(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"CoverArtist\", \"\", \"\")\n    data class CoverArtist(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Translator\", \"\", \"\")\n    data class Translator(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Genre\", \"\", \"\")\n    data class Genre(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Tags\", \"\", \"\")\n    data class Tags(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Web\", \"\", \"\")\n    data class Web(@XmlValue(true) val value: String = \"\")\n\n    // The spec doesn't have a good field for this\n    @Serializable\n    @XmlSerialName(\"PublishingStatusTachiyomi\", \"http://www.w3.org/2001/XMLSchema\", \"ty\")\n    data class PublishingStatusTachiyomi(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"Categories\", \"http://www.w3.org/2001/XMLSchema\", \"ty\")\n    data class CategoriesTachiyomi(@XmlValue(true) val value: String = \"\")\n\n    @Serializable\n    @XmlSerialName(\"SourceMihon\", \"http://www.w3.org/2001/XMLSchema\", \"mh\")\n    data class SourceMihon(@XmlValue(true) val value: String = \"\")\n}\n\nenum class ComicInfoPublishingStatus(\n    val comicInfoValue: String,\n    val sMangaModelValue: Int,\n) {\n    ONGOING(\"Ongoing\", SManga.ONGOING),\n    COMPLETED(\"Completed\", SManga.COMPLETED),\n    LICENSED(\"Licensed\", SManga.LICENSED),\n    PUBLISHING_FINISHED(\"Publishing finished\", SManga.PUBLISHING_FINISHED),\n    CANCELLED(\"Cancelled\", SManga.CANCELLED),\n    ON_HIATUS(\"On hiatus\", SManga.ON_HIATUS),\n    UNKNOWN(\"Unknown\", SManga.UNKNOWN),\n    ;\n\n    companion object {\n        fun toComicInfoValue(value: Long): String {\n            return entries.firstOrNull { it.sMangaModelValue == value.toInt() }?.comicInfoValue\n                ?: UNKNOWN.comicInfoValue\n        }\n\n        fun toSMangaValue(value: String?): Int {\n            return entries.firstOrNull { it.comicInfoValue == value }?.sMangaModelValue\n                ?: UNKNOWN.sMangaModelValue\n        }\n    }\n}\n"
  },
  {
    "path": "core-metadata/src/main/java/tachiyomi/core/metadata/tachiyomi/MangaDetails.kt",
    "content": "package tachiyomi.core.metadata.tachiyomi\n\nimport kotlinx.serialization.Serializable\n\n@Serializable\nclass MangaDetails(\n    val title: String? = null,\n    val author: String? = null,\n    val artist: String? = null,\n    val description: String? = null,\n    val genre: List<String>? = null,\n    val status: Int? = null,\n)\n"
  },
  {
    "path": "data/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    kotlin(\"android\")\n    kotlin(\"plugin.serialization\")\n    alias(libs.plugins.sqldelight)\n}\n\nandroid {\n    namespace = \"tachiyomi.data\"\n\n    defaultConfig {\n        consumerProguardFiles(\"consumer-rules.pro\")\n    }\n\n    sqldelight {\n        databases {\n            create(\"Database\") {\n                packageName.set(\"tachiyomi.data\")\n                dialect(libs.sqldelight.dialects.sql)\n                schemaOutputDirectory.set(project.file(\"./src/main/sqldelight\"))\n            }\n        }\n    }\n}\n\nkotlin {\n    compilerOptions {\n        freeCompilerArgs.add(\"-opt-in=kotlinx.serialization.ExperimentalSerializationApi\")\n    }\n}\n\ndependencies {\n    implementation(projects.sourceApi)\n    implementation(projects.domain)\n    implementation(projects.core.common)\n\n    api(libs.bundles.sqldelight)\n}\n"
  },
  {
    "path": "data/consumer-rules.pro",
    "content": ""
  },
  {
    "path": "data/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile"
  },
  {
    "path": "data/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "data/src/main/java/mihon/data/repository/ExtensionRepoRepositoryImpl.kt",
    "content": "package mihon.data.repository\n\nimport android.database.sqlite.SQLiteException\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.map\nimport mihon.domain.extensionrepo.exception.SaveExtensionRepoException\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\nimport tachiyomi.data.DatabaseHandler\n\nclass ExtensionRepoRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : ExtensionRepoRepository {\n    override fun subscribeAll(): Flow<List<ExtensionRepo>> {\n        return handler.subscribeToList { extension_reposQueries.findAll(::mapExtensionRepo) }\n    }\n\n    override suspend fun getAll(): List<ExtensionRepo> {\n        return handler.awaitList { extension_reposQueries.findAll(::mapExtensionRepo) }\n    }\n\n    override suspend fun getRepo(baseUrl: String): ExtensionRepo? {\n        return handler.awaitOneOrNull { extension_reposQueries.findOne(baseUrl, ::mapExtensionRepo) }\n    }\n\n    override suspend fun getRepoBySigningKeyFingerprint(fingerprint: String): ExtensionRepo? {\n        return handler.awaitOneOrNull {\n            extension_reposQueries.findOneBySigningKeyFingerprint(fingerprint, ::mapExtensionRepo)\n        }\n    }\n\n    override fun getCount(): Flow<Int> {\n        return handler.subscribeToOne { extension_reposQueries.count() }.map { it.toInt() }\n    }\n\n    override suspend fun insertRepo(\n        baseUrl: String,\n        name: String,\n        shortName: String?,\n        website: String,\n        signingKeyFingerprint: String,\n    ) {\n        try {\n            handler.await { extension_reposQueries.insert(baseUrl, name, shortName, website, signingKeyFingerprint) }\n        } catch (ex: SQLiteException) {\n            throw SaveExtensionRepoException(ex)\n        }\n    }\n\n    override suspend fun upsertRepo(\n        baseUrl: String,\n        name: String,\n        shortName: String?,\n        website: String,\n        signingKeyFingerprint: String,\n    ) {\n        try {\n            handler.await { extension_reposQueries.upsert(baseUrl, name, shortName, website, signingKeyFingerprint) }\n        } catch (ex: SQLiteException) {\n            throw SaveExtensionRepoException(ex)\n        }\n    }\n\n    override suspend fun replaceRepo(newRepo: ExtensionRepo) {\n        handler.await {\n            extension_reposQueries.replace(\n                newRepo.baseUrl,\n                newRepo.name,\n                newRepo.shortName,\n                newRepo.website,\n                newRepo.signingKeyFingerprint,\n            )\n        }\n    }\n\n    override suspend fun deleteRepo(baseUrl: String) {\n        return handler.await { extension_reposQueries.delete(baseUrl) }\n    }\n\n    private fun mapExtensionRepo(\n        baseUrl: String,\n        name: String,\n        shortName: String?,\n        website: String,\n        signingKeyFingerprint: String,\n    ): ExtensionRepo = ExtensionRepo(\n        baseUrl = baseUrl,\n        name = name,\n        shortName = shortName,\n        website = website,\n        signingKeyFingerprint = signingKeyFingerprint,\n    )\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/AndroidDatabaseHandler.kt",
    "content": "package tachiyomi.data\n\nimport androidx.paging.PagingSource\nimport app.cash.sqldelight.ExecutableQuery\nimport app.cash.sqldelight.Query\nimport app.cash.sqldelight.coroutines.asFlow\nimport app.cash.sqldelight.coroutines.mapToList\nimport app.cash.sqldelight.coroutines.mapToOne\nimport app.cash.sqldelight.coroutines.mapToOneOrNull\nimport app.cash.sqldelight.db.SqlDriver\nimport kotlinx.coroutines.CoroutineDispatcher\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.withContext\n\nclass AndroidDatabaseHandler(\n    val db: Database,\n    private val driver: SqlDriver,\n    val queryDispatcher: CoroutineDispatcher = Dispatchers.IO,\n    val transactionDispatcher: CoroutineDispatcher = queryDispatcher,\n) : DatabaseHandler {\n\n    val suspendingTransactionId = ThreadLocal<Int>()\n\n    override suspend fun <T> await(inTransaction: Boolean, block: suspend Database.() -> T): T {\n        return dispatch(inTransaction, block)\n    }\n\n    override suspend fun <T : Any> awaitList(\n        inTransaction: Boolean,\n        block: suspend Database.() -> Query<T>,\n    ): List<T> {\n        return dispatch(inTransaction) { block(db).executeAsList() }\n    }\n\n    override suspend fun <T : Any> awaitOne(\n        inTransaction: Boolean,\n        block: suspend Database.() -> Query<T>,\n    ): T {\n        return dispatch(inTransaction) { block(db).executeAsOne() }\n    }\n\n    override suspend fun <T : Any> awaitOneExecutable(\n        inTransaction: Boolean,\n        block: suspend Database.() -> ExecutableQuery<T>,\n    ): T {\n        return dispatch(inTransaction) { block(db).executeAsOne() }\n    }\n\n    override suspend fun <T : Any> awaitOneOrNull(\n        inTransaction: Boolean,\n        block: suspend Database.() -> Query<T>,\n    ): T? {\n        return dispatch(inTransaction) { block(db).executeAsOneOrNull() }\n    }\n\n    override suspend fun <T : Any> awaitOneOrNullExecutable(\n        inTransaction: Boolean,\n        block: suspend Database.() -> ExecutableQuery<T>,\n    ): T? {\n        return dispatch(inTransaction) { block(db).executeAsOneOrNull() }\n    }\n\n    override fun <T : Any> subscribeToList(block: Database.() -> Query<T>): Flow<List<T>> {\n        return block(db).asFlow().mapToList(queryDispatcher)\n    }\n\n    override fun <T : Any> subscribeToOne(block: Database.() -> Query<T>): Flow<T> {\n        return block(db).asFlow().mapToOne(queryDispatcher)\n    }\n\n    override fun <T : Any> subscribeToOneOrNull(block: Database.() -> Query<T>): Flow<T?> {\n        return block(db).asFlow().mapToOneOrNull(queryDispatcher)\n    }\n\n    override fun <T : Any> subscribeToPagingSource(\n        countQuery: Database.() -> Query<Long>,\n        queryProvider: Database.(Long, Long) -> Query<T>,\n    ): PagingSource<Long, T> {\n        return QueryPagingSource(\n            handler = this,\n            countQuery = countQuery,\n            queryProvider = { limit, offset ->\n                queryProvider.invoke(db, limit, offset)\n            },\n        )\n    }\n\n    private suspend fun <T> dispatch(inTransaction: Boolean, block: suspend Database.() -> T): T {\n        // Create a transaction if needed and run the calling block inside it.\n        if (inTransaction) {\n            return withTransaction { block(db) }\n        }\n\n        // If we're currently in the transaction thread, there's no need to dispatch our query.\n        if (driver.currentTransaction() != null) {\n            return block(db)\n        }\n\n        // Get the current database context and run the calling block.\n        val context = getCurrentDatabaseContext()\n        return withContext(context) { block(db) }\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/DatabaseAdapter.kt",
    "content": "package tachiyomi.data\n\nimport app.cash.sqldelight.ColumnAdapter\nimport eu.kanade.tachiyomi.source.model.UpdateStrategy\nimport java.util.Date\n\nobject DateColumnAdapter : ColumnAdapter<Date, Long> {\n    override fun decode(databaseValue: Long): Date = Date(databaseValue)\n    override fun encode(value: Date): Long = value.time\n}\n\nprivate const val LIST_OF_STRINGS_SEPARATOR = \", \"\nobject StringListColumnAdapter : ColumnAdapter<List<String>, String> {\n    override fun decode(databaseValue: String) = if (databaseValue.isEmpty()) {\n        emptyList()\n    } else {\n        databaseValue.split(LIST_OF_STRINGS_SEPARATOR)\n    }\n    override fun encode(value: List<String>) = value.joinToString(\n        separator = LIST_OF_STRINGS_SEPARATOR,\n    )\n}\n\nobject UpdateStrategyColumnAdapter : ColumnAdapter<UpdateStrategy, Long> {\n    override fun decode(databaseValue: Long): UpdateStrategy =\n        UpdateStrategy.entries.getOrElse(databaseValue.toInt()) { UpdateStrategy.ALWAYS_UPDATE }\n\n    override fun encode(value: UpdateStrategy): Long = value.ordinal.toLong()\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/DatabaseHandler.kt",
    "content": "package tachiyomi.data\n\nimport androidx.paging.PagingSource\nimport app.cash.sqldelight.ExecutableQuery\nimport app.cash.sqldelight.Query\nimport kotlinx.coroutines.flow.Flow\n\ninterface DatabaseHandler {\n\n    suspend fun <T> await(inTransaction: Boolean = false, block: suspend Database.() -> T): T\n\n    suspend fun <T : Any> awaitList(\n        inTransaction: Boolean = false,\n        block: suspend Database.() -> Query<T>,\n    ): List<T>\n\n    suspend fun <T : Any> awaitOne(\n        inTransaction: Boolean = false,\n        block: suspend Database.() -> Query<T>,\n    ): T\n\n    suspend fun <T : Any> awaitOneExecutable(\n        inTransaction: Boolean = false,\n        block: suspend Database.() -> ExecutableQuery<T>,\n    ): T\n\n    suspend fun <T : Any> awaitOneOrNull(\n        inTransaction: Boolean = false,\n        block: suspend Database.() -> Query<T>,\n    ): T?\n\n    suspend fun <T : Any> awaitOneOrNullExecutable(\n        inTransaction: Boolean = false,\n        block: suspend Database.() -> ExecutableQuery<T>,\n    ): T?\n\n    fun <T : Any> subscribeToList(block: Database.() -> Query<T>): Flow<List<T>>\n\n    fun <T : Any> subscribeToOne(block: Database.() -> Query<T>): Flow<T>\n\n    fun <T : Any> subscribeToOneOrNull(block: Database.() -> Query<T>): Flow<T?>\n\n    fun <T : Any> subscribeToPagingSource(\n        countQuery: Database.() -> Query<Long>,\n        queryProvider: Database.(Long, Long) -> Query<T>,\n    ): PagingSource<Long, T>\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/QueryPagingSource.kt",
    "content": "package tachiyomi.data\n\nimport androidx.paging.PagingSource\nimport androidx.paging.PagingState\nimport app.cash.sqldelight.Query\nimport kotlin.properties.Delegates\n\nclass QueryPagingSource<RowType : Any>(\n    val handler: DatabaseHandler,\n    val countQuery: Database.() -> Query<Long>,\n    val queryProvider: Database.(Long, Long) -> Query<RowType>,\n) : PagingSource<Long, RowType>(), Query.Listener {\n\n    override val jumpingSupported: Boolean = true\n\n    private var currentQuery: Query<RowType>? by Delegates.observable(null) { _, old, new ->\n        old?.removeListener(this)\n        new?.addListener(this)\n    }\n\n    init {\n        registerInvalidatedCallback {\n            currentQuery?.removeListener(this)\n            currentQuery = null\n        }\n    }\n\n    override suspend fun load(params: LoadParams<Long>): LoadResult<Long, RowType> {\n        try {\n            val key = params.key ?: 0L\n            val loadSize = params.loadSize\n            val count = handler.awaitOne { countQuery() }\n\n            val (offset, limit) = when (params) {\n                is LoadParams.Prepend -> key - loadSize to loadSize.toLong()\n                else -> key to loadSize.toLong()\n            }\n\n            val data = handler.awaitList {\n                queryProvider(limit, offset)\n                    .also { currentQuery = it }\n            }\n\n            val (prevKey, nextKey) = when (params) {\n                is LoadParams.Append -> (offset - loadSize to offset + loadSize)\n                else -> (offset to offset + loadSize)\n            }\n\n            return LoadResult.Page(\n                data = data,\n                prevKey = if (offset <= 0L || prevKey < 0L) null else prevKey,\n                nextKey = if (offset + loadSize >= count) null else nextKey,\n                itemsBefore = maxOf(0L, offset).toInt(),\n                itemsAfter = maxOf(0L, count - (offset + loadSize)).toInt(),\n            )\n        } catch (e: Exception) {\n            return LoadResult.Error(throwable = e)\n        }\n    }\n\n    override fun getRefreshKey(state: PagingState<Long, RowType>): Long? {\n        return state.anchorPosition?.let { anchorPosition ->\n            val anchorPage = state.closestPageToPosition(anchorPosition)\n            anchorPage?.prevKey ?: anchorPage?.nextKey\n        }\n    }\n\n    override fun queryResultsChanged() {\n        invalidate()\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/TransactionContext.kt",
    "content": "package tachiyomi.data\n\nimport kotlinx.coroutines.CoroutineDispatcher\nimport kotlinx.coroutines.Job\nimport kotlinx.coroutines.asContextElement\nimport kotlinx.coroutines.runBlocking\nimport kotlinx.coroutines.suspendCancellableCoroutine\nimport kotlinx.coroutines.withContext\nimport java.util.concurrent.RejectedExecutionException\nimport kotlin.concurrent.atomics.AtomicInt\nimport kotlin.concurrent.atomics.ExperimentalAtomicApi\nimport kotlin.concurrent.atomics.decrementAndFetch\nimport kotlin.concurrent.atomics.incrementAndFetch\nimport kotlin.coroutines.ContinuationInterceptor\nimport kotlin.coroutines.CoroutineContext\nimport kotlin.coroutines.EmptyCoroutineContext\nimport kotlin.coroutines.coroutineContext\nimport kotlin.coroutines.resume\n\n/**\n * Returns the transaction dispatcher if we are on a transaction, or the database dispatchers.\n */\ninternal suspend fun AndroidDatabaseHandler.getCurrentDatabaseContext(): CoroutineContext {\n    return coroutineContext[TransactionElement]?.transactionDispatcher ?: queryDispatcher\n}\n\n/**\n * Calls the specified suspending [block] in a database transaction. The transaction will be\n * marked as successful unless an exception is thrown in the suspending [block] or the coroutine\n * is cancelled.\n *\n * SQLDelight will only perform at most one transaction at a time, additional transactions are queued\n * and executed on a first come, first serve order.\n *\n * Performing blocking database operations is not permitted in a coroutine scope other than the\n * one received by the suspending block. It is recommended that all [Dao] function invoked within\n * the [block] be suspending functions.\n *\n * The dispatcher used to execute the given [block] will utilize threads from SQLDelight's query executor.\n */\ninternal suspend fun <T> AndroidDatabaseHandler.withTransaction(block: suspend () -> T): T {\n    // Use inherited transaction context if available, this allows nested suspending transactions.\n    val transactionContext =\n        coroutineContext[TransactionElement]?.transactionDispatcher ?: createTransactionContext()\n    return withContext(transactionContext) {\n        val transactionElement = coroutineContext[TransactionElement]!!\n        transactionElement.acquire()\n        try {\n            db.transactionWithResult {\n                runBlocking(transactionContext) {\n                    block()\n                }\n            }\n        } finally {\n            transactionElement.release()\n        }\n    }\n}\n\n/**\n * Creates a [CoroutineContext] for performing database operations within a coroutine transaction.\n *\n * The context is a combination of a dispatcher, a [TransactionElement] and a thread local element.\n *\n * * The dispatcher will dispatch coroutines to a single thread that is taken over from the SQLDelight\n * query executor. If the coroutine context is switched, suspending DAO functions will be able to\n * dispatch to the transaction thread.\n *\n * * The [TransactionElement] serves as an indicator for inherited context, meaning, if there is a\n * switch of context, suspending DAO methods will be able to use the indicator to dispatch the\n * database operation to the transaction thread.\n *\n * * The thread local element serves as a second indicator and marks threads that are used to\n * execute coroutines within the coroutine transaction, more specifically it allows us to identify\n * if a blocking DAO method is invoked within the transaction coroutine. Never assign meaning to\n * this value, for now all we care is if its present or not.\n */\nprivate suspend fun AndroidDatabaseHandler.createTransactionContext(): CoroutineContext {\n    val controlJob = Job()\n    // make sure to tie the control job to this context to avoid blocking the transaction if\n    // context get cancelled before we can even start using this job. Otherwise, the acquired\n    // transaction thread will forever wait for the controlJob to be cancelled.\n    // see b/148181325\n    coroutineContext[Job]?.invokeOnCompletion {\n        controlJob.cancel()\n    }\n\n    val dispatcher = transactionDispatcher.acquireTransactionThread(controlJob)\n    val transactionElement = TransactionElement(controlJob, dispatcher)\n    val threadLocalElement =\n        suspendingTransactionId.asContextElement(System.identityHashCode(controlJob))\n    return dispatcher + transactionElement + threadLocalElement\n}\n\n/**\n * Acquires a thread from the executor and returns a [ContinuationInterceptor] to dispatch\n * coroutines to the acquired thread. The [controlJob] is used to control the release of the\n * thread by cancelling the job.\n */\nprivate suspend fun CoroutineDispatcher.acquireTransactionThread(\n    controlJob: Job,\n): ContinuationInterceptor {\n    return suspendCancellableCoroutine { continuation ->\n        continuation.invokeOnCancellation {\n            // We got cancelled while waiting to acquire a thread, we can't stop our attempt to\n            // acquire a thread, but we can cancel the controlling job so once it gets acquired it\n            // is quickly released.\n            controlJob.cancel()\n        }\n        try {\n            dispatch(EmptyCoroutineContext) {\n                runBlocking {\n                    // Thread acquired, resume coroutine\n                    continuation.resume(coroutineContext[ContinuationInterceptor]!!)\n                    controlJob.join()\n                }\n            }\n        } catch (ex: RejectedExecutionException) {\n            // Couldn't acquire a thread, cancel coroutine\n            continuation.cancel(\n                IllegalStateException(\n                    \"Unable to acquire a thread to perform the database transaction\",\n                    ex,\n                ),\n            )\n        }\n    }\n}\n\n/**\n * A [CoroutineContext.Element] that indicates there is an on-going database transaction.\n */\n@OptIn(ExperimentalAtomicApi::class)\nprivate class TransactionElement(\n    private val transactionThreadControlJob: Job,\n    val transactionDispatcher: ContinuationInterceptor,\n) : CoroutineContext.Element {\n\n    companion object Key : CoroutineContext.Key<TransactionElement>\n\n    override val key: CoroutineContext.Key<TransactionElement>\n        get() = TransactionElement\n\n    /**\n     * Number of transactions (including nested ones) started with this element.\n     * Call [acquire] to increase the count and [release] to decrease it. If the count reaches zero\n     * when [release] is invoked then the transaction job is cancelled and the transaction thread\n     * is released.\n     */\n    private val referenceCount = AtomicInt(0)\n\n    fun acquire() {\n        referenceCount.incrementAndFetch()\n    }\n\n    fun release() {\n        val count = referenceCount.decrementAndFetch()\n        if (count < 0) {\n            throw IllegalStateException(\"Transaction was never started or was already released\")\n        } else if (count == 0) {\n            // Cancel the job that controls the transaction thread, causing it to be released.\n            transactionThreadControlJob.cancel()\n        }\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/category/CategoryRepositoryImpl.kt",
    "content": "package tachiyomi.data.category\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.data.Database\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.model.CategoryUpdate\nimport tachiyomi.domain.category.repository.CategoryRepository\n\nclass CategoryRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : CategoryRepository {\n\n    override suspend fun get(id: Long): Category? {\n        return handler.awaitOneOrNull { categoriesQueries.getCategory(id, ::mapCategory) }\n    }\n\n    override suspend fun getAll(): List<Category> {\n        return handler.awaitList { categoriesQueries.getCategories(::mapCategory) }\n    }\n\n    override fun getAllAsFlow(): Flow<List<Category>> {\n        return handler.subscribeToList { categoriesQueries.getCategories(::mapCategory) }\n    }\n\n    override suspend fun getCategoriesByMangaId(mangaId: Long): List<Category> {\n        return handler.awaitList {\n            categoriesQueries.getCategoriesByMangaId(mangaId, ::mapCategory)\n        }\n    }\n\n    override fun getCategoriesByMangaIdAsFlow(mangaId: Long): Flow<List<Category>> {\n        return handler.subscribeToList {\n            categoriesQueries.getCategoriesByMangaId(mangaId, ::mapCategory)\n        }\n    }\n\n    override suspend fun insert(category: Category) {\n        handler.await {\n            categoriesQueries.insert(\n                name = category.name,\n                order = category.order,\n                flags = category.flags,\n            )\n        }\n    }\n\n    override suspend fun updatePartial(update: CategoryUpdate) {\n        handler.await {\n            updatePartialBlocking(update)\n        }\n    }\n\n    override suspend fun updatePartial(updates: List<CategoryUpdate>) {\n        handler.await(inTransaction = true) {\n            for (update in updates) {\n                updatePartialBlocking(update)\n            }\n        }\n    }\n\n    private fun Database.updatePartialBlocking(update: CategoryUpdate) {\n        categoriesQueries.update(\n            name = update.name,\n            order = update.order,\n            flags = update.flags,\n            categoryId = update.id,\n        )\n    }\n\n    override suspend fun updateAllFlags(flags: Long?) {\n        handler.await {\n            categoriesQueries.updateAllFlags(flags)\n        }\n    }\n\n    override suspend fun delete(categoryId: Long) {\n        handler.await {\n            categoriesQueries.delete(\n                categoryId = categoryId,\n            )\n        }\n    }\n\n    private fun mapCategory(\n        id: Long,\n        name: String,\n        order: Long,\n        flags: Long,\n    ): Category {\n        return Category(\n            id = id,\n            name = name,\n            order = order,\n            flags = flags,\n        )\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt",
    "content": "package tachiyomi.data.chapter\n\nimport kotlinx.coroutines.flow.Flow\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.toLong\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.ChapterUpdate\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass ChapterRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : ChapterRepository {\n\n    override suspend fun addAll(chapters: List<Chapter>): List<Chapter> {\n        return try {\n            handler.await(inTransaction = true) {\n                chapters.map { chapter ->\n                    chaptersQueries.insert(\n                        chapter.mangaId,\n                        chapter.url,\n                        chapter.name,\n                        chapter.scanlator,\n                        chapter.read,\n                        chapter.bookmark,\n                        chapter.lastPageRead,\n                        chapter.chapterNumber,\n                        chapter.sourceOrder,\n                        chapter.dateFetch,\n                        chapter.dateUpload,\n                        chapter.version,\n                    )\n                    val lastInsertId = chaptersQueries.selectLastInsertedRowId().executeAsOne()\n                    chapter.copy(id = lastInsertId)\n                }\n            }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            emptyList()\n        }\n    }\n\n    override suspend fun update(chapterUpdate: ChapterUpdate) {\n        partialUpdate(chapterUpdate)\n    }\n\n    override suspend fun updateAll(chapterUpdates: List<ChapterUpdate>) {\n        partialUpdate(*chapterUpdates.toTypedArray())\n    }\n\n    private suspend fun partialUpdate(vararg chapterUpdates: ChapterUpdate) {\n        handler.await(inTransaction = true) {\n            chapterUpdates.forEach { chapterUpdate ->\n                chaptersQueries.update(\n                    mangaId = chapterUpdate.mangaId,\n                    url = chapterUpdate.url,\n                    name = chapterUpdate.name,\n                    scanlator = chapterUpdate.scanlator,\n                    read = chapterUpdate.read,\n                    bookmark = chapterUpdate.bookmark,\n                    lastPageRead = chapterUpdate.lastPageRead,\n                    chapterNumber = chapterUpdate.chapterNumber,\n                    sourceOrder = chapterUpdate.sourceOrder,\n                    dateFetch = chapterUpdate.dateFetch,\n                    dateUpload = chapterUpdate.dateUpload,\n                    chapterId = chapterUpdate.id,\n                    version = chapterUpdate.version,\n                    isSyncing = 0,\n                )\n            }\n        }\n    }\n\n    override suspend fun removeChaptersWithIds(chapterIds: List<Long>) {\n        try {\n            handler.await { chaptersQueries.removeChaptersWithIds(chapterIds) }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n\n    override suspend fun getChapterByMangaId(mangaId: Long, applyScanlatorFilter: Boolean): List<Chapter> {\n        return handler.awaitList {\n            chaptersQueries.getChaptersByMangaId(mangaId, applyScanlatorFilter.toLong(), ::mapChapter)\n        }\n    }\n\n    override suspend fun getScanlatorsByMangaId(mangaId: Long): List<String> {\n        return handler.awaitList {\n            chaptersQueries.getScanlatorsByMangaId(mangaId) { it.orEmpty() }\n        }\n    }\n\n    override fun getScanlatorsByMangaIdAsFlow(mangaId: Long): Flow<List<String>> {\n        return handler.subscribeToList {\n            chaptersQueries.getScanlatorsByMangaId(mangaId) { it.orEmpty() }\n        }\n    }\n\n    override suspend fun getBookmarkedChaptersByMangaId(mangaId: Long): List<Chapter> {\n        return handler.awaitList {\n            chaptersQueries.getBookmarkedChaptersByMangaId(\n                mangaId,\n                ::mapChapter,\n            )\n        }\n    }\n\n    override suspend fun getChapterById(id: Long): Chapter? {\n        return handler.awaitOneOrNull { chaptersQueries.getChapterById(id, ::mapChapter) }\n    }\n\n    override suspend fun getChapterByMangaIdAsFlow(mangaId: Long, applyScanlatorFilter: Boolean): Flow<List<Chapter>> {\n        return handler.subscribeToList {\n            chaptersQueries.getChaptersByMangaId(mangaId, applyScanlatorFilter.toLong(), ::mapChapter)\n        }\n    }\n\n    override suspend fun getChapterByUrlAndMangaId(url: String, mangaId: Long): Chapter? {\n        return handler.awaitOneOrNull {\n            chaptersQueries.getChapterByUrlAndMangaId(\n                url,\n                mangaId,\n                ::mapChapter,\n            )\n        }\n    }\n\n    private fun mapChapter(\n        id: Long,\n        mangaId: Long,\n        url: String,\n        name: String,\n        scanlator: String?,\n        read: Boolean,\n        bookmark: Boolean,\n        lastPageRead: Long,\n        chapterNumber: Double,\n        sourceOrder: Long,\n        dateFetch: Long,\n        dateUpload: Long,\n        lastModifiedAt: Long,\n        version: Long,\n        @Suppress(\"UNUSED_PARAMETER\")\n        isSyncing: Long,\n    ): Chapter = Chapter(\n        id = id,\n        mangaId = mangaId,\n        read = read,\n        bookmark = bookmark,\n        lastPageRead = lastPageRead,\n        dateFetch = dateFetch,\n        sourceOrder = sourceOrder,\n        url = url,\n        name = name,\n        dateUpload = dateUpload,\n        chapterNumber = chapterNumber,\n        scanlator = scanlator,\n        lastModifiedAt = lastModifiedAt,\n        version = version,\n    )\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/chapter/ChapterSanitizer.kt",
    "content": "package tachiyomi.data.chapter\n\nobject ChapterSanitizer {\n\n    fun String.sanitize(title: String): String {\n        return trim()\n            .removePrefix(title)\n            .trim(*CHAPTER_TRIM_CHARS)\n    }\n\n    private val CHAPTER_TRIM_CHARS = arrayOf(\n        // Whitespace\n        ' ',\n        '\\u0009',\n        '\\u000A',\n        '\\u000B',\n        '\\u000C',\n        '\\u000D',\n        '\\u0020',\n        '\\u0085',\n        '\\u00A0',\n        '\\u1680',\n        '\\u2000',\n        '\\u2001',\n        '\\u2002',\n        '\\u2003',\n        '\\u2004',\n        '\\u2005',\n        '\\u2006',\n        '\\u2007',\n        '\\u2008',\n        '\\u2009',\n        '\\u200A',\n        '\\u2028',\n        '\\u2029',\n        '\\u202F',\n        '\\u205F',\n        '\\u3000',\n\n        // Separators\n        '-',\n        '_',\n        ',',\n        ':',\n    ).toCharArray()\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/history/HistoryMapper.kt",
    "content": "package tachiyomi.data.history\n\nimport tachiyomi.domain.history.model.History\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.domain.manga.model.MangaCover\nimport java.util.Date\n\nobject HistoryMapper {\n    fun mapHistory(\n        id: Long,\n        chapterId: Long,\n        readAt: Date?,\n        readDuration: Long,\n    ): History = History(\n        id = id,\n        chapterId = chapterId,\n        readAt = readAt,\n        readDuration = readDuration,\n    )\n\n    fun mapHistoryWithRelations(\n        historyId: Long,\n        mangaId: Long,\n        chapterId: Long,\n        title: String,\n        thumbnailUrl: String?,\n        sourceId: Long,\n        isFavorite: Boolean,\n        coverLastModified: Long,\n        chapterNumber: Double,\n        readAt: Date?,\n        readDuration: Long,\n    ): HistoryWithRelations = HistoryWithRelations(\n        id = historyId,\n        chapterId = chapterId,\n        mangaId = mangaId,\n        title = title,\n        chapterNumber = chapterNumber,\n        readAt = readAt,\n        readDuration = readDuration,\n        coverData = MangaCover(\n            mangaId = mangaId,\n            sourceId = sourceId,\n            isMangaFavorite = isFavorite,\n            url = thumbnailUrl,\n            lastModified = coverLastModified,\n        ),\n    )\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/history/HistoryRepositoryImpl.kt",
    "content": "package tachiyomi.data.history\n\nimport kotlinx.coroutines.flow.Flow\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.history.model.History\nimport tachiyomi.domain.history.model.HistoryUpdate\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.domain.history.repository.HistoryRepository\n\nclass HistoryRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : HistoryRepository {\n\n    override fun getHistory(query: String): Flow<List<HistoryWithRelations>> {\n        return handler.subscribeToList {\n            historyViewQueries.history(query, HistoryMapper::mapHistoryWithRelations)\n        }\n    }\n\n    override suspend fun getLastHistory(): HistoryWithRelations? {\n        return handler.awaitOneOrNull {\n            historyViewQueries.getLatestHistory(HistoryMapper::mapHistoryWithRelations)\n        }\n    }\n\n    override suspend fun getTotalReadDuration(): Long {\n        return handler.awaitOne { historyQueries.getReadDuration() }\n    }\n\n    override suspend fun getHistoryByMangaId(mangaId: Long): List<History> {\n        return handler.awaitList { historyQueries.getHistoryByMangaId(mangaId, HistoryMapper::mapHistory) }\n    }\n\n    override suspend fun resetHistory(historyId: Long) {\n        try {\n            handler.await { historyQueries.resetHistoryById(historyId) }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, throwable = e)\n        }\n    }\n\n    override suspend fun resetHistoryByMangaId(mangaId: Long) {\n        try {\n            handler.await { historyQueries.resetHistoryByMangaId(mangaId) }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, throwable = e)\n        }\n    }\n\n    override suspend fun deleteAllHistory(): Boolean {\n        return try {\n            handler.await { historyQueries.removeAllHistory() }\n            true\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, throwable = e)\n            false\n        }\n    }\n\n    override suspend fun upsertHistory(historyUpdate: HistoryUpdate) {\n        try {\n            handler.await {\n                historyQueries.upsert(\n                    historyUpdate.chapterId,\n                    historyUpdate.readAt,\n                    historyUpdate.sessionReadDuration,\n                )\n            }\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, throwable = e)\n        }\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/manga/MangaMapper.kt",
    "content": "package tachiyomi.data.manga\n\nimport eu.kanade.tachiyomi.source.model.UpdateStrategy\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\n\nobject MangaMapper {\n    fun mapManga(\n        id: Long,\n        source: Long,\n        url: String,\n        artist: String?,\n        author: String?,\n        description: String?,\n        genre: List<String>?,\n        title: String,\n        status: Long,\n        thumbnailUrl: String?,\n        favorite: Boolean,\n        lastUpdate: Long?,\n        nextUpdate: Long?,\n        initialized: Boolean,\n        viewerFlags: Long,\n        chapterFlags: Long,\n        coverLastModified: Long,\n        dateAdded: Long,\n        updateStrategy: UpdateStrategy,\n        calculateInterval: Long,\n        lastModifiedAt: Long,\n        favoriteModifiedAt: Long?,\n        version: Long,\n        @Suppress(\"UNUSED_PARAMETER\")\n        isSyncing: Long,\n        notes: String,\n    ): Manga = Manga(\n        id = id,\n        source = source,\n        favorite = favorite,\n        lastUpdate = lastUpdate ?: 0,\n        nextUpdate = nextUpdate ?: 0,\n        fetchInterval = calculateInterval.toInt(),\n        dateAdded = dateAdded,\n        viewerFlags = viewerFlags,\n        chapterFlags = chapterFlags,\n        coverLastModified = coverLastModified,\n        url = url,\n        title = title,\n        artist = artist,\n        author = author,\n        description = description,\n        genre = genre,\n        status = status,\n        thumbnailUrl = thumbnailUrl,\n        updateStrategy = updateStrategy,\n        initialized = initialized,\n        lastModifiedAt = lastModifiedAt,\n        favoriteModifiedAt = favoriteModifiedAt,\n        version = version,\n        notes = notes,\n    )\n\n    fun mapLibraryManga(\n        id: Long,\n        source: Long,\n        url: String,\n        artist: String?,\n        author: String?,\n        description: String?,\n        genre: List<String>?,\n        title: String,\n        status: Long,\n        thumbnailUrl: String?,\n        favorite: Boolean,\n        lastUpdate: Long?,\n        nextUpdate: Long?,\n        initialized: Boolean,\n        viewerFlags: Long,\n        chapterFlags: Long,\n        coverLastModified: Long,\n        dateAdded: Long,\n        updateStrategy: UpdateStrategy,\n        calculateInterval: Long,\n        lastModifiedAt: Long,\n        favoriteModifiedAt: Long?,\n        version: Long,\n        isSyncing: Long,\n        notes: String,\n        totalCount: Long,\n        readCount: Double,\n        latestUpload: Long,\n        chapterFetchedAt: Long,\n        lastRead: Long,\n        bookmarkCount: Double,\n        categories: String,\n    ): LibraryManga = LibraryManga(\n        manga = mapManga(\n            id,\n            source,\n            url,\n            artist,\n            author,\n            description,\n            genre,\n            title,\n            status,\n            thumbnailUrl,\n            favorite,\n            lastUpdate,\n            nextUpdate,\n            initialized,\n            viewerFlags,\n            chapterFlags,\n            coverLastModified,\n            dateAdded,\n            updateStrategy,\n            calculateInterval,\n            lastModifiedAt,\n            favoriteModifiedAt,\n            version,\n            isSyncing,\n            notes,\n        ),\n        categories = categories.split(\",\").map { it.toLong() },\n        totalChapters = totalCount,\n        readCount = readCount.toLong(),\n        bookmarkCount = bookmarkCount.toLong(),\n        latestUpload = latestUpload,\n        chapterFetchedAt = chapterFetchedAt,\n        lastRead = lastRead,\n    )\n\n    fun mapMangaWithChapterCount(\n        id: Long,\n        source: Long,\n        url: String,\n        artist: String?,\n        author: String?,\n        description: String?,\n        genre: List<String>?,\n        title: String,\n        status: Long,\n        thumbnailUrl: String?,\n        favorite: Boolean,\n        lastUpdate: Long?,\n        nextUpdate: Long?,\n        initialized: Boolean,\n        viewerFlags: Long,\n        chapterFlags: Long,\n        coverLastModified: Long,\n        dateAdded: Long,\n        updateStrategy: UpdateStrategy,\n        calculateInterval: Long,\n        lastModifiedAt: Long,\n        favoriteModifiedAt: Long?,\n        version: Long,\n        isSyncing: Long,\n        notes: String,\n        totalCount: Long,\n    ): MangaWithChapterCount = MangaWithChapterCount(\n        manga = mapManga(\n            id,\n            source,\n            url,\n            artist,\n            author,\n            description,\n            genre,\n            title,\n            status,\n            thumbnailUrl,\n            favorite,\n            lastUpdate,\n            nextUpdate,\n            initialized,\n            viewerFlags,\n            chapterFlags,\n            coverLastModified,\n            dateAdded,\n            updateStrategy,\n            calculateInterval,\n            lastModifiedAt,\n            favoriteModifiedAt,\n            version,\n            isSyncing,\n            notes,\n        ),\n        chapterCount = totalCount,\n    )\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt",
    "content": "package tachiyomi.data.manga\n\nimport kotlinx.coroutines.flow.Flow\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.data.StringListColumnAdapter\nimport tachiyomi.data.UpdateStrategyColumnAdapter\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\nimport tachiyomi.domain.manga.repository.MangaRepository\nimport java.time.LocalDate\nimport java.time.ZoneId\n\nclass MangaRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : MangaRepository {\n\n    override suspend fun getMangaById(id: Long): Manga {\n        return handler.awaitOne { mangasQueries.getMangaById(id, MangaMapper::mapManga) }\n    }\n\n    override suspend fun getMangaByIdAsFlow(id: Long): Flow<Manga> {\n        return handler.subscribeToOne { mangasQueries.getMangaById(id, MangaMapper::mapManga) }\n    }\n\n    override suspend fun getMangaByUrlAndSourceId(url: String, sourceId: Long): Manga? {\n        return handler.awaitOneOrNull {\n            mangasQueries.getMangaByUrlAndSource(\n                url,\n                sourceId,\n                MangaMapper::mapManga,\n            )\n        }\n    }\n\n    override fun getMangaByUrlAndSourceIdAsFlow(url: String, sourceId: Long): Flow<Manga?> {\n        return handler.subscribeToOneOrNull {\n            mangasQueries.getMangaByUrlAndSource(\n                url,\n                sourceId,\n                MangaMapper::mapManga,\n            )\n        }\n    }\n\n    override suspend fun getFavorites(): List<Manga> {\n        return handler.awaitList { mangasQueries.getFavorites(MangaMapper::mapManga) }\n    }\n\n    override suspend fun getReadMangaNotInLibrary(): List<Manga> {\n        return handler.awaitList { mangasQueries.getReadMangaNotInLibrary(MangaMapper::mapManga) }\n    }\n\n    override suspend fun getLibraryManga(): List<LibraryManga> {\n        return handler.awaitList { libraryViewQueries.library(MangaMapper::mapLibraryManga) }\n    }\n\n    override fun getLibraryMangaAsFlow(): Flow<List<LibraryManga>> {\n        return handler.subscribeToList { libraryViewQueries.library(MangaMapper::mapLibraryManga) }\n    }\n\n    override fun getFavoritesBySourceId(sourceId: Long): Flow<List<Manga>> {\n        return handler.subscribeToList { mangasQueries.getFavoriteBySourceId(sourceId, MangaMapper::mapManga) }\n    }\n\n    override suspend fun getDuplicateLibraryManga(id: Long, title: String): List<MangaWithChapterCount> {\n        return handler.awaitList {\n            mangasQueries.getDuplicateLibraryManga(id, title, MangaMapper::mapMangaWithChapterCount)\n        }\n    }\n\n    override suspend fun getUpcomingManga(statuses: Set<Long>): Flow<List<Manga>> {\n        val epochMillis = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toEpochSecond() * 1000\n        return handler.subscribeToList {\n            mangasQueries.getUpcomingManga(epochMillis, statuses, MangaMapper::mapManga)\n        }\n    }\n\n    override suspend fun resetViewerFlags(): Boolean {\n        return try {\n            handler.await { mangasQueries.resetViewerFlags() }\n            true\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            false\n        }\n    }\n\n    override suspend fun setMangaCategories(mangaId: Long, categoryIds: List<Long>) {\n        handler.await(inTransaction = true) {\n            mangas_categoriesQueries.deleteMangaCategoryByMangaId(mangaId)\n            categoryIds.map { categoryId ->\n                mangas_categoriesQueries.insert(mangaId, categoryId)\n            }\n        }\n    }\n\n    override suspend fun update(update: MangaUpdate): Boolean {\n        return try {\n            partialUpdate(update)\n            true\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            false\n        }\n    }\n\n    override suspend fun updateAll(mangaUpdates: List<MangaUpdate>): Boolean {\n        return try {\n            partialUpdate(*mangaUpdates.toTypedArray())\n            true\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            false\n        }\n    }\n\n    override suspend fun insertNetworkManga(manga: List<Manga>): List<Manga> {\n        return handler.await(inTransaction = true) {\n            manga.map {\n                mangasQueries.insertNetworkManga(\n                    source = it.source,\n                    url = it.url,\n                    artist = it.artist,\n                    author = it.author,\n                    description = it.description,\n                    genre = it.genre,\n                    title = it.title,\n                    status = it.status,\n                    thumbnailUrl = it.thumbnailUrl,\n                    favorite = it.favorite,\n                    lastUpdate = it.lastUpdate,\n                    nextUpdate = it.nextUpdate,\n                    calculateInterval = it.fetchInterval.toLong(),\n                    initialized = it.initialized,\n                    viewerFlags = it.viewerFlags,\n                    chapterFlags = it.chapterFlags,\n                    coverLastModified = it.coverLastModified,\n                    dateAdded = it.dateAdded,\n                    updateStrategy = it.updateStrategy,\n                    version = it.version,\n                    updateTitle = it.title.isNotBlank(),\n                    updateCover = !it.thumbnailUrl.isNullOrBlank(),\n                    updateDetails = it.initialized,\n                    mapper = MangaMapper::mapManga,\n                )\n                    .executeAsOne()\n            }\n        }\n    }\n\n    private suspend fun partialUpdate(vararg mangaUpdates: MangaUpdate) {\n        handler.await(inTransaction = true) {\n            mangaUpdates.forEach { value ->\n                mangasQueries.update(\n                    source = value.source,\n                    url = value.url,\n                    artist = value.artist,\n                    author = value.author,\n                    description = value.description,\n                    genre = value.genre?.let(StringListColumnAdapter::encode),\n                    title = value.title,\n                    status = value.status,\n                    thumbnailUrl = value.thumbnailUrl,\n                    favorite = value.favorite,\n                    lastUpdate = value.lastUpdate,\n                    nextUpdate = value.nextUpdate,\n                    calculateInterval = value.fetchInterval?.toLong(),\n                    initialized = value.initialized,\n                    viewer = value.viewerFlags,\n                    chapterFlags = value.chapterFlags,\n                    coverLastModified = value.coverLastModified,\n                    dateAdded = value.dateAdded,\n                    mangaId = value.id,\n                    updateStrategy = value.updateStrategy?.let(UpdateStrategyColumnAdapter::encode),\n                    version = value.version,\n                    isSyncing = 0,\n                    notes = value.notes,\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/release/GithubRelease.kt",
    "content": "package tachiyomi.data.release\n\nimport kotlinx.serialization.SerialName\nimport kotlinx.serialization.Serializable\n\n/**\n * Contains information about the latest release from GitHub.\n */\n@Serializable\ndata class GithubRelease(\n    @SerialName(\"tag_name\")\n    val version: String,\n    @SerialName(\"body\")\n    val info: String,\n    @SerialName(\"html_url\")\n    val releaseLink: String,\n    @SerialName(\"assets\")\n    val assets: List<GitHubAsset>,\n)\n\n/**\n * Asset class containing asset name and download url.\n */\n@Serializable\ndata class GitHubAsset(\n    val name: String,\n    @SerialName(\"browser_download_url\")\n    val downloadLink: String,\n)\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/release/ReleaseServiceImpl.kt",
    "content": "package tachiyomi.data.release\n\nimport android.os.Build\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport tachiyomi.domain.release.interactor.GetApplicationRelease\nimport tachiyomi.domain.release.model.Release\nimport tachiyomi.domain.release.service.ReleaseService\n\nclass ReleaseServiceImpl(\n    private val networkService: NetworkHelper,\n    private val json: Json,\n) : ReleaseService {\n\n    override suspend fun latest(arguments: GetApplicationRelease.Arguments): Release? {\n        val release = with(json) {\n            networkService.client\n                .newCall(GET(\"https://api.github.com/repos/${arguments.repository}/releases/latest\"))\n                .awaitSuccess()\n                .parseAs<GithubRelease>()\n        }\n\n        val downloadLink = getDownloadLink(release = release, isFoss = arguments.isFoss) ?: return null\n\n        return Release(\n            version = release.version,\n            info = release.info.substringBeforeLast(\"<!-->\").replace(gitHubUsernameMentionRegex) { mention ->\n                \"[${mention.value}](https://github.com/${mention.value.substring(1)})\"\n            },\n            releaseLink = release.releaseLink,\n            downloadLink = downloadLink,\n        )\n    }\n\n    private fun getDownloadLink(release: GithubRelease, isFoss: Boolean): String? {\n        val map = release.assets.associate { asset ->\n            BUILD_TYPES.find { \"-$it\" in asset.name } to asset.downloadLink\n        }\n\n        return if (!isFoss) {\n            map[Build.SUPPORTED_ABIS[0]] ?: map[null]\n        } else {\n            map[FOSS]\n        }\n    }\n\n    companion object {\n        private const val FOSS = \"foss\"\n        private val BUILD_TYPES = listOf(FOSS, \"arm64-v8a\", \"armeabi-v7a\", \"x86_64\", \"x86\")\n\n        /**\n         * Regular expression that matches a mention to a valid GitHub username, like it's\n         * done in GitHub Flavored Markdown. It follows these constraints:\n         *\n         * - Alphanumeric with single hyphens (no consecutive hyphens)\n         * - Cannot begin or end with a hyphen\n         * - Max length of 39 characters\n         *\n         * Reference: https://stackoverflow.com/a/30281147\n         */\n        private val gitHubUsernameMentionRegex = \"\"\"\\B@([a-z0-9](?:-(?=[a-z0-9])|[a-z0-9]){0,38}(?<=[a-z0-9]))\"\"\"\n            .toRegex(RegexOption.IGNORE_CASE)\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/source/SourcePagingSource.kt",
    "content": "package tachiyomi.data.source\n\nimport androidx.paging.PagingState\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport eu.kanade.tachiyomi.source.model.MangasPage\nimport mihon.domain.manga.model.toDomainManga\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.domain.manga.interactor.NetworkToLocalManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.repository.SourcePagingSource\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\nclass SourceSearchPagingSource(\n    source: CatalogueSource,\n    private val query: String,\n    private val filters: FilterList,\n) : BaseSourcePagingSource(source) {\n    override suspend fun requestNextPage(currentPage: Int): MangasPage {\n        return source.getSearchManga(currentPage, query, filters)\n    }\n}\n\nclass SourcePopularPagingSource(source: CatalogueSource) : BaseSourcePagingSource(source) {\n    override suspend fun requestNextPage(currentPage: Int): MangasPage {\n        return source.getPopularManga(currentPage)\n    }\n}\n\nclass SourceLatestPagingSource(source: CatalogueSource) : BaseSourcePagingSource(source) {\n    override suspend fun requestNextPage(currentPage: Int): MangasPage {\n        return source.getLatestUpdates(currentPage)\n    }\n}\n\nabstract class BaseSourcePagingSource(\n    protected val source: CatalogueSource,\n    private val networkToLocalManga: NetworkToLocalManga = Injekt.get(),\n) : SourcePagingSource() {\n\n    private val seenManga = hashSetOf<String>()\n\n    abstract suspend fun requestNextPage(currentPage: Int): MangasPage\n\n    override suspend fun load(params: LoadParams<Long>): LoadResult<Long, Manga> {\n        val page = params.key ?: 1\n\n        return try {\n            val mangasPage = withIOContext {\n                requestNextPage(page.toInt())\n                    .takeIf { it.mangas.isNotEmpty() }\n                    ?: throw NoResultsException()\n            }\n\n            val manga = mangasPage.mangas\n                .map { it.toDomainManga(source.id) }\n                .filter { seenManga.add(it.url) }\n                .let { networkToLocalManga(it) }\n\n            LoadResult.Page(\n                data = manga,\n                prevKey = null,\n                nextKey = if (mangasPage.hasNextPage) page + 1 else null,\n            )\n        } catch (e: Exception) {\n            LoadResult.Error(e)\n        }\n    }\n\n    override fun getRefreshKey(state: PagingState<Long, Manga>): Long? {\n        return state.anchorPosition?.let { anchorPosition ->\n            val anchorPage = state.closestPageToPosition(anchorPosition)\n            anchorPage?.prevKey ?: anchorPage?.nextKey\n        }\n    }\n}\n\nclass NoResultsException : Exception()\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/source/SourceRepositoryImpl.kt",
    "content": "package tachiyomi.data.source\n\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.map\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.source.model.SourceWithCount\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.domain.source.repository.SourcePagingSource\nimport tachiyomi.domain.source.repository.SourceRepository\nimport tachiyomi.domain.source.service.SourceManager\nimport tachiyomi.domain.source.model.Source as DomainSource\n\nclass SourceRepositoryImpl(\n    private val sourceManager: SourceManager,\n    private val handler: DatabaseHandler,\n) : SourceRepository {\n\n    override fun getSources(): Flow<List<DomainSource>> {\n        return sourceManager.catalogueSources.map { sources ->\n            sources.map {\n                mapSourceToDomainSource(it).copy(\n                    supportsLatest = it.supportsLatest,\n                )\n            }\n        }\n    }\n\n    override fun getOnlineSources(): Flow<List<DomainSource>> {\n        return sourceManager.catalogueSources.map { sources ->\n            sources\n                .filterIsInstance<HttpSource>()\n                .map(::mapSourceToDomainSource)\n        }\n    }\n\n    override fun getSourcesWithFavoriteCount(): Flow<List<Pair<DomainSource, Long>>> {\n        return combine(\n            handler.subscribeToList { mangasQueries.getSourceIdWithFavoriteCount() },\n            sourceManager.catalogueSources,\n        ) { sourceIdWithFavoriteCount, _ -> sourceIdWithFavoriteCount }\n            .map {\n                it.map { (sourceId, count) ->\n                    val source = sourceManager.getOrStub(sourceId)\n                    val domainSource = mapSourceToDomainSource(source).copy(\n                        isStub = source is StubSource,\n                    )\n                    domainSource to count\n                }\n            }\n    }\n\n    override fun getSourcesWithNonLibraryManga(): Flow<List<SourceWithCount>> {\n        val sourceIdWithNonLibraryManga =\n            handler.subscribeToList { mangasQueries.getSourceIdsWithNonLibraryManga() }\n        return sourceIdWithNonLibraryManga.map { sourceId ->\n            sourceId.map { (sourceId, count) ->\n                val source = sourceManager.getOrStub(sourceId)\n                val domainSource = mapSourceToDomainSource(source).copy(\n                    isStub = source is StubSource,\n                )\n                SourceWithCount(domainSource, count)\n            }\n        }\n    }\n\n    override fun search(\n        sourceId: Long,\n        query: String,\n        filterList: FilterList,\n    ): SourcePagingSource {\n        val source = sourceManager.get(sourceId) as CatalogueSource\n        return SourceSearchPagingSource(source, query, filterList)\n    }\n\n    override fun getPopular(sourceId: Long): SourcePagingSource {\n        val source = sourceManager.get(sourceId) as CatalogueSource\n        return SourcePopularPagingSource(source)\n    }\n\n    override fun getLatest(sourceId: Long): SourcePagingSource {\n        val source = sourceManager.get(sourceId) as CatalogueSource\n        return SourceLatestPagingSource(source)\n    }\n\n    private fun mapSourceToDomainSource(source: Source): DomainSource = DomainSource(\n        id = source.id,\n        lang = source.lang,\n        name = source.name,\n        supportsLatest = false,\n        isStub = false,\n    )\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/source/StubSourceRepositoryImpl.kt",
    "content": "package tachiyomi.data.source\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.source.model.StubSource\nimport tachiyomi.domain.source.repository.StubSourceRepository\n\nclass StubSourceRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : StubSourceRepository {\n\n    override fun subscribeAll(): Flow<List<StubSource>> {\n        return handler.subscribeToList { sourcesQueries.findAll(::mapStubSource) }\n    }\n\n    override suspend fun getStubSource(id: Long): StubSource? {\n        return handler.awaitOneOrNull { sourcesQueries.findOne(id, ::mapStubSource) }\n    }\n\n    override suspend fun upsertStubSource(id: Long, lang: String, name: String) {\n        handler.await { sourcesQueries.upsert(id, lang, name) }\n    }\n\n    private fun mapStubSource(\n        id: Long,\n        lang: String,\n        name: String,\n    ): StubSource = StubSource(id = id, lang = lang, name = name)\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/track/TrackMapper.kt",
    "content": "package tachiyomi.data.track\n\nimport tachiyomi.domain.track.model.Track\n\nobject TrackMapper {\n    fun mapTrack(\n        id: Long,\n        mangaId: Long,\n        syncId: Long,\n        remoteId: Long,\n        libraryId: Long?,\n        title: String,\n        lastChapterRead: Double,\n        totalChapters: Long,\n        status: Long,\n        score: Double,\n        remoteUrl: String,\n        startDate: Long,\n        finishDate: Long,\n        private: Boolean,\n    ): Track = Track(\n        id = id,\n        mangaId = mangaId,\n        trackerId = syncId,\n        remoteId = remoteId,\n        libraryId = libraryId,\n        title = title,\n        lastChapterRead = lastChapterRead,\n        totalChapters = totalChapters,\n        status = status,\n        score = score,\n        remoteUrl = remoteUrl,\n        startDate = startDate,\n        finishDate = finishDate,\n        private = private,\n    )\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/track/TrackRepositoryImpl.kt",
    "content": "package tachiyomi.data.track\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.domain.track.repository.TrackRepository\n\nclass TrackRepositoryImpl(\n    private val handler: DatabaseHandler,\n) : TrackRepository {\n\n    override suspend fun getTrackById(id: Long): Track? {\n        return handler.awaitOneOrNull { manga_syncQueries.getTrackById(id, TrackMapper::mapTrack) }\n    }\n\n    override suspend fun getTracksByMangaId(mangaId: Long): List<Track> {\n        return handler.awaitList {\n            manga_syncQueries.getTracksByMangaId(mangaId, TrackMapper::mapTrack)\n        }\n    }\n\n    override fun getTracksAsFlow(): Flow<List<Track>> {\n        return handler.subscribeToList {\n            manga_syncQueries.getTracks(TrackMapper::mapTrack)\n        }\n    }\n\n    override fun getTracksByMangaIdAsFlow(mangaId: Long): Flow<List<Track>> {\n        return handler.subscribeToList {\n            manga_syncQueries.getTracksByMangaId(mangaId, TrackMapper::mapTrack)\n        }\n    }\n\n    override suspend fun delete(mangaId: Long, trackerId: Long) {\n        handler.await {\n            manga_syncQueries.delete(\n                mangaId = mangaId,\n                syncId = trackerId,\n            )\n        }\n    }\n\n    override suspend fun insert(track: Track) {\n        insertValues(track)\n    }\n\n    override suspend fun insertAll(tracks: List<Track>) {\n        insertValues(*tracks.toTypedArray())\n    }\n\n    private suspend fun insertValues(vararg tracks: Track) {\n        handler.await(inTransaction = true) {\n            tracks.forEach { mangaTrack ->\n                manga_syncQueries.insert(\n                    mangaId = mangaTrack.mangaId,\n                    syncId = mangaTrack.trackerId,\n                    remoteId = mangaTrack.remoteId,\n                    libraryId = mangaTrack.libraryId,\n                    title = mangaTrack.title,\n                    lastChapterRead = mangaTrack.lastChapterRead,\n                    totalChapters = mangaTrack.totalChapters,\n                    status = mangaTrack.status,\n                    score = mangaTrack.score,\n                    remoteUrl = mangaTrack.remoteUrl,\n                    startDate = mangaTrack.startDate,\n                    finishDate = mangaTrack.finishDate,\n                    private = mangaTrack.private,\n                )\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt",
    "content": "package tachiyomi.data.updates\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.core.common.util.lang.toLong\nimport tachiyomi.data.DatabaseHandler\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.domain.updates.model.UpdatesWithRelations\nimport tachiyomi.domain.updates.repository.UpdatesRepository\n\nclass UpdatesRepositoryImpl(\n    private val databaseHandler: DatabaseHandler,\n) : UpdatesRepository {\n\n    override suspend fun awaitWithRead(\n        read: Boolean,\n        after: Long,\n        limit: Long,\n    ): List<UpdatesWithRelations> {\n        return databaseHandler.awaitList {\n            updatesViewQueries.getUpdatesByReadStatus(\n                read = read,\n                after = after,\n                limit = limit,\n                mapper = ::mapUpdatesWithRelations,\n            )\n        }\n    }\n\n    override fun subscribeAll(\n        after: Long,\n        limit: Long,\n        unread: Boolean?,\n        started: Boolean?,\n        bookmarked: Boolean?,\n        hideExcludedScanlators: Boolean,\n    ): Flow<List<UpdatesWithRelations>> {\n        return databaseHandler.subscribeToList {\n            updatesViewQueries.getRecentUpdatesWithFilters(\n                after = after,\n                limit = limit,\n                // invert because unread in Kotlin -> read column in SQL\n                read = unread?.let { !it },\n                started = started?.toLong(),\n                bookmarked = bookmarked,\n                hideExcludedScanlators = hideExcludedScanlators.toLong(),\n                mapper = ::mapUpdatesWithRelations,\n            )\n        }\n    }\n\n    override fun subscribeWithRead(\n        read: Boolean,\n        after: Long,\n        limit: Long,\n    ): Flow<List<UpdatesWithRelations>> {\n        return databaseHandler.subscribeToList {\n            updatesViewQueries.getUpdatesByReadStatus(\n                read = read,\n                after = after,\n                limit = limit,\n                mapper = ::mapUpdatesWithRelations,\n            )\n        }\n    }\n\n    private fun mapUpdatesWithRelations(\n        mangaId: Long,\n        mangaTitle: String,\n        chapterId: Long,\n        chapterName: String,\n        scanlator: String?,\n        chapterUrl: String,\n        read: Boolean,\n        bookmark: Boolean,\n        lastPageRead: Long,\n        sourceId: Long,\n        favorite: Boolean,\n        thumbnailUrl: String?,\n        coverLastModified: Long,\n        dateUpload: Long,\n        dateFetch: Long,\n        excludedScanlator: String?,\n    ): UpdatesWithRelations = UpdatesWithRelations(\n        mangaId = mangaId,\n        mangaTitle = mangaTitle,\n        chapterId = chapterId,\n        chapterName = chapterName,\n        scanlator = scanlator,\n        chapterUrl = chapterUrl,\n        read = read,\n        bookmark = bookmark,\n        lastPageRead = lastPageRead,\n        sourceId = sourceId,\n        dateFetch = dateFetch,\n        coverData = MangaCover(\n            mangaId = mangaId,\n            sourceId = sourceId,\n            isMangaFavorite = favorite,\n            url = thumbnailUrl,\n            lastModified = coverLastModified,\n        ),\n    )\n}\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/categories.sq",
    "content": "CREATE TABLE categories(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    name TEXT NOT NULL,\n    sort INTEGER NOT NULL,\n    flags INTEGER NOT NULL\n);\n\n-- Insert system category\nINSERT OR IGNORE INTO categories(_id, name, sort, flags) VALUES (0, \"\", -1, 0);\n-- Disallow deletion of default category\nCREATE TRIGGER IF NOT EXISTS system_category_delete_trigger BEFORE DELETE\nON categories\nBEGIN SELECT CASE\n    WHEN old._id <= 0 THEN\n        RAISE(ABORT, \"System category can't be deleted\")\n    END;\nEND;\n\ngetCategory:\nSELECT *\nFROM categories\nWHERE _id = :id\nLIMIT 1;\n\ngetCategories:\nSELECT\n_id AS id,\nname,\nsort AS `order`,\nflags\nFROM categories\nORDER BY sort;\n\ngetCategoriesByMangaId:\nSELECT\nC._id AS id,\nC.name,\nC.sort AS `order`,\nC.flags\nFROM categories C\nJOIN mangas_categories MC\nON C._id = MC.category_id\nWHERE MC.manga_id = :mangaId;\n\ninsert:\nINSERT INTO categories(name, sort, flags)\nVALUES (:name, :order, :flags);\n\ndelete:\nDELETE FROM categories\nWHERE _id = :categoryId;\n\nupdate:\nUPDATE categories\nSET name = coalesce(:name, name),\n    sort = coalesce(:order, sort),\n    flags = coalesce(:flags, flags)\nWHERE _id = :categoryId;\n\nupdateAllFlags:\nUPDATE categories SET\nflags = coalesce(?, flags);\n\nselectLastInsertedRowId:\nSELECT last_insert_rowid();"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/chapters.sq",
    "content": "import kotlin.Boolean;\n\nCREATE TABLE chapters(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    manga_id INTEGER NOT NULL,\n    url TEXT NOT NULL,\n    name TEXT NOT NULL,\n    scanlator TEXT,\n    read INTEGER AS Boolean NOT NULL,\n    bookmark INTEGER AS Boolean NOT NULL,\n    last_page_read INTEGER NOT NULL,\n    chapter_number REAL NOT NULL,\n    source_order INTEGER NOT NULL,\n    date_fetch INTEGER NOT NULL,\n    date_upload INTEGER NOT NULL,\n    last_modified_at INTEGER NOT NULL DEFAULT 0,\n    version INTEGER NOT NULL DEFAULT 0,\n    is_syncing INTEGER NOT NULL DEFAULT 0,\n    FOREIGN KEY(manga_id) REFERENCES mangas (_id)\n    ON DELETE CASCADE\n);\n\nCREATE INDEX chapters_manga_id_index ON chapters(manga_id);\nCREATE INDEX chapters_unread_by_manga_index ON chapters(manga_id, read) WHERE read = 0;\nCREATE INDEX idx_chapters_url ON chapters(url);\n\nCREATE TRIGGER update_last_modified_at_chapters\nAFTER UPDATE ON chapters\nFOR EACH ROW\nBEGIN\n  UPDATE chapters\n  SET last_modified_at = strftime('%s', 'now')\n  WHERE _id = new._id;\nEND;\n\nCREATE TRIGGER update_chapter_and_manga_version AFTER UPDATE ON chapters\nWHEN new.is_syncing = 0 AND (\n    new.read != old.read OR\n    new.bookmark != old.bookmark OR\n    new.last_page_read != old.last_page_read\n)\nBEGIN\n    -- Update the chapter version\n    UPDATE chapters SET version = version + 1\n    WHERE _id = new._id;\n\n    -- Update the manga version\n    UPDATE mangas SET version = version + 1\n    WHERE _id = new.manga_id AND (SELECT is_syncing FROM mangas WHERE _id = new.manga_id) = 0;\nEND;\n\ngetChapterById:\nSELECT *\nFROM chapters\nWHERE _id = :id;\n\ngetChaptersByMangaId:\nSELECT C.*\nFROM chapters C\nLEFT JOIN excluded_scanlators ES\nON C.manga_id = ES.manga_id\nAND C.scanlator = ES.scanlator\nWHERE C.manga_id = :mangaId\nAND (\n    :applyScanlatorFilter = 0\n    OR ES.scanlator IS NULL\n);\n\ngetScanlatorsByMangaId:\nSELECT scanlator\nFROM chapters\nWHERE manga_id = :mangaId;\n\ngetBookmarkedChaptersByMangaId:\nSELECT *\nFROM chapters\nWHERE bookmark\nAND manga_id = :mangaId;\n\ngetChapterByUrl:\nSELECT *\nFROM chapters\nWHERE url = :chapterUrl;\n\ngetChapterByUrlAndMangaId:\nSELECT *\nFROM chapters\nWHERE url = :chapterUrl\nAND manga_id = :mangaId;\n\nremoveChaptersWithIds:\nDELETE FROM chapters\nWHERE _id IN :chapterIds;\n\nresetIsSyncing:\nUPDATE chapters\nSET is_syncing = 0\nWHERE is_syncing = 1;\n\ninsert:\nINSERT INTO chapters(manga_id, url, name, scanlator, read, bookmark, last_page_read, chapter_number, source_order, date_fetch, date_upload, last_modified_at, version, is_syncing)\nVALUES (:mangaId, :url, :name, :scanlator, :read, :bookmark, :lastPageRead, :chapterNumber, :sourceOrder, :dateFetch, :dateUpload, 0, :version, 0);\n\nupdate:\nUPDATE chapters\nSET manga_id = coalesce(:mangaId, manga_id),\n    url = coalesce(:url, url),\n    name = coalesce(:name, name),\n    scanlator = coalesce(:scanlator, scanlator),\n    read = coalesce(:read, read),\n    bookmark = coalesce(:bookmark, bookmark),\n    last_page_read = coalesce(:lastPageRead, last_page_read),\n    chapter_number = coalesce(:chapterNumber, chapter_number),\n    source_order = coalesce(:sourceOrder, source_order),\n    date_fetch = coalesce(:dateFetch, date_fetch),\n    date_upload = coalesce(:dateUpload, date_upload),\n    version = coalesce(:version, version),\n    is_syncing = coalesce(:isSyncing, is_syncing)\nWHERE _id = :chapterId;\n\nselectLastInsertedRowId:\nSELECT last_insert_rowid();"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/excluded_scanlators.sq",
    "content": "CREATE TABLE excluded_scanlators(\n    manga_id INTEGER NOT NULL,\n    scanlator TEXT NOT NULL,\n    FOREIGN KEY(manga_id) REFERENCES mangas (_id)\n    ON DELETE CASCADE\n);\n\nCREATE INDEX excluded_scanlators_manga_id_index ON excluded_scanlators(manga_id);\nCREATE INDEX idx_excluded_scanlators_scanlator ON excluded_scanlators(scanlator);\n\ninsert:\nINSERT INTO excluded_scanlators(manga_id, scanlator)\nVALUES (:mangaId, :scanlator);\n\nremove:\nDELETE FROM excluded_scanlators\nWHERE manga_id = :mangaId\nAND scanlator IN :scanlators;\n\ngetExcludedScanlatorsByMangaId:\nSELECT scanlator\nFROM excluded_scanlators\nWHERE manga_id = :mangaId;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/extension_repos.sq",
    "content": "CREATE TABLE extension_repos (\n    base_url TEXT NOT NULL PRIMARY KEY,\n    name TEXT NOT NULL,\n    short_name TEXT,\n    website TEXT NOT NULL,\n    signing_key_fingerprint TEXT UNIQUE NOT NULL\n);\n\nfindOne:\nSELECT *\nFROM extension_repos\nWHERE base_url = :base_url;\n\nfindOneBySigningKeyFingerprint:\nSELECT *\nFROM extension_repos\nWHERE signing_key_fingerprint = :fingerprint;\n\nfindAll:\nSELECT *\nFROM extension_repos;\n\ncount:\nSELECT COUNT(*)\nFROM extension_repos;\n\ninsert:\nINSERT INTO extension_repos(base_url, name, short_name, website, signing_key_fingerprint)\nVALUES (:base_url, :name, :short_name, :website, :fingerprint);\n\nupsert:\nINSERT INTO extension_repos(base_url, name, short_name, website, signing_key_fingerprint)\nVALUES (:base_url, :name, :short_name, :website, :fingerprint)\nON CONFLICT(base_url)\nDO UPDATE\nSET\n    name = :name,\n    short_name = :short_name,\n    website =: website,\n    signing_key_fingerprint = :fingerprint\nWHERE base_url = base_url;\n\nreplace:\nINSERT INTO extension_repos(base_url, name, short_name, website, signing_key_fingerprint)\nVALUES (:base_url, :name, :short_name, :website, :fingerprint)\nON CONFLICT(signing_key_fingerprint)\nDO UPDATE\nSET\n    base_url = :base_url,\n    name = :name,\n    short_name = :short_name,\n    website =: website\nWHERE signing_key_fingerprint = signing_key_fingerprint;\n\ndelete:\nDELETE FROM extension_repos\nWHERE base_url = :base_url;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/history.sq",
    "content": "import java.util.Date;\n\nCREATE TABLE history(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    chapter_id INTEGER NOT NULL UNIQUE,\n    last_read INTEGER AS Date,\n    time_read INTEGER NOT NULL,\n    FOREIGN KEY(chapter_id) REFERENCES chapters (_id)\n    ON DELETE CASCADE\n);\n\nCREATE INDEX history_history_chapter_id_index ON history(chapter_id);\nCREATE INDEX idx_history_last_read ON history(last_read);\n\ngetHistoryByMangaId:\nSELECT\nH._id,\nH.chapter_id,\nH.last_read,\nH.time_read\nFROM history H\nJOIN chapters C\nON H.chapter_id = C._id\nWHERE C.manga_id = :mangaId AND C._id = H.chapter_id;\n\ngetHistoryByChapterUrl:\nSELECT\nH._id,\nH.chapter_id,\nH.last_read,\nH.time_read\nFROM history H\nJOIN chapters C\nON H.chapter_id = C._id\nWHERE C.url = :chapterUrl AND C._id = H.chapter_id;\n\nresetHistoryById:\nUPDATE history\nSET last_read = 0\nWHERE _id = :historyId;\n\nresetHistoryByMangaId:\nUPDATE history\nSET last_read = 0\nWHERE _id IN (\n    SELECT H._id\n    FROM mangas M\n    INNER JOIN chapters C\n    ON M._id = C.manga_id\n    INNER JOIN history H\n    ON C._id = H.chapter_id\n    WHERE M._id = :mangaId\n);\n\nremoveAllHistory:\nDELETE FROM history;\n\nremoveResettedHistory:\nDELETE FROM history\nWHERE last_read = 0;\n\nupsert:\nINSERT INTO history(chapter_id, last_read, time_read)\nVALUES (:chapterId, :readAt, :time_read)\nON CONFLICT(chapter_id)\nDO UPDATE\nSET\n    last_read = :readAt,\n    time_read = time_read + :time_read\nWHERE chapter_id = :chapterId;\n\ngetReadDuration:\nSELECT coalesce(sum(time_read), 0)\nFROM history;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/manga_sync.sq",
    "content": "import kotlin.Boolean;\n\nCREATE TABLE manga_sync(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    manga_id INTEGER NOT NULL,\n    sync_id INTEGER NOT NULL,\n    remote_id INTEGER NOT NULL,\n    library_id INTEGER,\n    title TEXT NOT NULL,\n    last_chapter_read REAL NOT NULL,\n    total_chapters INTEGER NOT NULL,\n    status INTEGER NOT NULL,\n    score REAL NOT NULL,\n    remote_url TEXT NOT NULL,\n    start_date INTEGER NOT NULL,\n    finish_date INTEGER NOT NULL,\n    private INTEGER AS Boolean DEFAULT 0 NOT NULL,\n    UNIQUE (manga_id, sync_id) ON CONFLICT REPLACE,\n    FOREIGN KEY(manga_id) REFERENCES mangas (_id)\n    ON DELETE CASCADE\n);\n\nCREATE INDEX idx_manga_sync_manga_id ON manga_sync(manga_id);\n\ndelete:\nDELETE FROM manga_sync\nWHERE manga_id = :mangaId AND sync_id = :syncId;\n\ngetTracks:\nSELECT *\nFROM manga_sync;\n\ngetTrackById:\nSELECT *\nFROM manga_sync\nWHERE _id = :id;\n\ngetTracksByMangaId:\nSELECT *\nFROM manga_sync\nWHERE manga_id = :mangaId;\n\ninsert:\nINSERT INTO manga_sync(manga_id,sync_id,remote_id,library_id,title,last_chapter_read,total_chapters,status,score,remote_url,start_date,finish_date,private)\nVALUES (:mangaId,:syncId,:remoteId,:libraryId,:title,:lastChapterRead,:totalChapters,:status,:score,:remoteUrl,:startDate,:finishDate,:private);\n\nupdate:\nUPDATE manga_sync\nSET\n    manga_id = coalesce(:mangaId, manga_id),\n    sync_id = coalesce(:syncId, sync_id),\n    remote_id = coalesce(:mediaId, remote_id),\n    library_id = coalesce(:libraryId, library_id),\n    title = coalesce(:title, title),\n    last_chapter_read = coalesce(:lastChapterRead, last_chapter_read),\n    total_chapters = coalesce(:totalChapter, total_chapters),\n    status = coalesce(:status, status),\n    score = coalesce(:score, score),\n    remote_url = coalesce(:trackingUrl, remote_url),\n    start_date = coalesce(:startDate, start_date),\n    finish_date = coalesce(:finishDate, finish_date),\n    private = coalesce(:private, private)\nWHERE _id = :id;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/mangas.sq",
    "content": "import eu.kanade.tachiyomi.source.model.UpdateStrategy;\nimport kotlin.collections.List;\nimport kotlin.Boolean;\nimport kotlin.String;\n\nCREATE TABLE mangas(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    source INTEGER NOT NULL,\n    url TEXT NOT NULL,\n    artist TEXT,\n    author TEXT,\n    description TEXT,\n    genre TEXT AS List<String>,\n    title TEXT NOT NULL,\n    status INTEGER NOT NULL,\n    thumbnail_url TEXT,\n    favorite INTEGER AS Boolean NOT NULL,\n    last_update INTEGER,\n    next_update INTEGER,\n    initialized INTEGER AS Boolean NOT NULL,\n    viewer INTEGER NOT NULL,\n    chapter_flags INTEGER NOT NULL,\n    cover_last_modified INTEGER NOT NULL,\n    date_added INTEGER NOT NULL,\n    update_strategy INTEGER AS UpdateStrategy NOT NULL DEFAULT 0,\n    calculate_interval INTEGER DEFAULT 0 NOT NULL,\n    last_modified_at INTEGER NOT NULL DEFAULT 0,\n    favorite_modified_at INTEGER,\n    version INTEGER NOT NULL DEFAULT 0,\n    is_syncing INTEGER NOT NULL DEFAULT 0,\n    notes TEXT NOT NULL DEFAULT \"\"\n);\n\nCREATE INDEX library_favorite_index ON mangas(favorite) WHERE favorite = 1;\nCREATE INDEX mangas_url_index ON mangas(url);\nCREATE INDEX idx_mangas_source ON mangas(source);\n\nCREATE TRIGGER update_last_favorited_at_mangas\nAFTER UPDATE OF favorite ON mangas\nBEGIN\n  UPDATE mangas\n  SET favorite_modified_at = strftime('%s', 'now')\n  WHERE _id = new._id;\nEND;\n\nCREATE TRIGGER update_last_modified_at_mangas\nAFTER UPDATE ON mangas\nFOR EACH ROW\nBEGIN\n  UPDATE mangas\n  SET last_modified_at = strftime('%s', 'now')\n  WHERE _id = new._id;\nEND;\n\nCREATE TRIGGER update_manga_version AFTER UPDATE ON mangas\nBEGIN\n    UPDATE mangas SET version = version + 1\n    WHERE _id = new._id AND new.is_syncing = 0 AND (\n        new.url != old.url OR\n        new.description != old.description OR\n        new.favorite != old.favorite\n    );\nEND;\n\ngetMangaById:\nSELECT *\nFROM mangas\nWHERE _id = :id;\n\n-- TODO: this should ideally never really have more than 1 result\ngetMangaByUrlAndSource:\nSELECT *\nFROM mangas\nWHERE url = :url\nAND source = :source\nLIMIT 1;\n\ngetFavorites:\nSELECT *\nFROM mangas\nWHERE favorite = 1;\n\ngetReadMangaNotInLibrary:\nSELECT *\nFROM mangas\nWHERE favorite = 0 AND _id IN (\n    SELECT DISTINCT chapters.manga_id\n    FROM chapters\n    WHERE read = 1 OR last_page_read != 0\n);\n\ngetAllManga:\nSELECT *\nFROM mangas;\n\ngetAllMangaSourceAndUrl:\nSELECT source, url\nFROM mangas;\n\ngetMangasWithFavoriteTimestamp:\nSELECT *\nFROM mangas\nWHERE favorite_modified_at IS NOT NULL;\n\ngetSourceIdWithFavoriteCount:\nSELECT\nsource,\ncount(*)\nFROM mangas\nWHERE favorite = 1\nGROUP BY source;\n\ngetFavoriteBySourceId:\nSELECT *\nFROM mangas\nWHERE favorite = 1\nAND source = :sourceId;\n\ngetDuplicateLibraryManga:\nWITH\ntrack_dupes AS (\n    SELECT DISTINCT S2.manga_id\n    FROM manga_sync S1\n    INNER JOIN manga_sync S2\n    ON S1.sync_id = S2.sync_id\n    AND S1.remote_id = S2.remote_id\n    AND S1.manga_id != S2.manga_id\n    WHERE S1.manga_id = :id\n),\nduplicates AS (\n    SELECT M.*\n    FROM mangas M\n    LEFT JOIN track_dupes D\n    ON D.manga_id = _id\n    WHERE favorite = 1\n    AND _id != :id\n    AND (lower(title) LIKE '%' || lower(:title) || '%' OR D.manga_id IS NOT NULL)\n),\nchapter_counts AS (\n    SELECT\n        M._id AS manga_id,\n        count(*) AS chapter_count\n    FROM duplicates M\n    JOIN chapters C\n    ON M._id = C.manga_id\n    LEFT JOIN excluded_scanlators ES\n    ON C.manga_id = ES.manga_id\n    AND C.scanlator = ES.scanlator\n    WHERE ES.scanlator IS NULL\n    GROUP BY M._id\n)\nSELECT\n    M.*,\n    coalesce(CC.chapter_count, 0) AS chapter_count\nFROM duplicates M\nLEFT JOIN chapter_counts CC\nON M._id = CC.manga_id;\n\ngetUpcomingManga:\nSELECT *\nFROM mangas\nWHERE next_update >= :startOfDay\nAND favorite = 1\nAND status IN :statuses\nORDER BY next_update ASC;\n\nresetViewerFlags:\nUPDATE mangas\nSET viewer = 0;\n\nresetIsSyncing:\nUPDATE mangas\nSET is_syncing = 0\nWHERE is_syncing = 1;\n\ngetSourceIdsWithNonLibraryManga:\nSELECT source, COUNT(*) AS manga_count\nFROM mangas\nWHERE favorite = 0\nGROUP BY source;\n\ndeleteNonLibraryManga:\nDELETE FROM mangas\nWHERE favorite = 0\nAND source IN :sourceIds\nAND (\n    :keepReadManga = 0\n    OR _id NOT IN (\n        SELECT DISTINCT manga_id\n        FROM chapters\n        WHERE read = 1\n        OR last_page_read != 0\n    )\n);\n\ninsert:\nINSERT INTO mangas(source, url, artist, author, description, genre, title, status, thumbnail_url, favorite, last_update, next_update, initialized, viewer, chapter_flags, cover_last_modified, date_added, update_strategy, calculate_interval, last_modified_at, version, notes)\nVALUES (:source, :url, :artist, :author, :description, :genre, :title, :status, :thumbnailUrl, :favorite, :lastUpdate, :nextUpdate, :initialized, :viewerFlags, :chapterFlags, :coverLastModified, :dateAdded, :updateStrategy, :calculateInterval, 0, :version, :notes);\n\nupdate:\nUPDATE mangas SET\n    source = coalesce(:source, source),\n    url = coalesce(:url, url),\n    artist = coalesce(:artist, artist),\n    author = coalesce(:author, author),\n    description = coalesce(:description, description),\n    genre = coalesce(:genre, genre),\n    title = coalesce(:title, title),\n    status = coalesce(:status, status),\n    thumbnail_url = coalesce(:thumbnailUrl, thumbnail_url),\n    favorite = coalesce(:favorite, favorite),\n    last_update = coalesce(:lastUpdate, last_update),\n    next_update = coalesce(:nextUpdate, next_update),\n    initialized = coalesce(:initialized, initialized),\n    viewer = coalesce(:viewer, viewer),\n    chapter_flags = coalesce(:chapterFlags, chapter_flags),\n    cover_last_modified = coalesce(:coverLastModified, cover_last_modified),\n    date_added = coalesce(:dateAdded, date_added),\n    update_strategy = coalesce(:updateStrategy, update_strategy),\n    calculate_interval = coalesce(:calculateInterval, calculate_interval),\n    version = coalesce(:version, version),\n    is_syncing = coalesce(:isSyncing, is_syncing),\n    notes = coalesce(:notes, notes)\nWHERE _id = :mangaId;\n\nselectLastInsertedRowId:\nSELECT last_insert_rowid();\n\ninsertNetworkManga {\n    -- Insert the manga if it doesn't exist already\n    INSERT INTO mangas(\n        source, url, artist, author, description, genre, title, status, thumbnail_url, favorite,\n        last_update, next_update, initialized, viewer, chapter_flags, cover_last_modified, date_added,\n        update_strategy, calculate_interval, last_modified_at, version\n    )\n    SELECT\n        :source, :url, :artist, :author, :description, :genre, :title, :status, :thumbnailUrl, :favorite,\n        :lastUpdate, :nextUpdate, :initialized, :viewerFlags, :chapterFlags, :coverLastModified, :dateAdded,\n        :updateStrategy, :calculateInterval, 0, :version\n    WHERE NOT EXISTS(SELECT 0 FROM mangas WHERE source = :source AND url = :url);\n\n    -- Update the relevant details if applicable and not favorite\n    UPDATE mangas\n    SET\n        title = CASE WHEN :updateTitle THEN :title ELSE title END,\n        thumbnail_url = CASE WHEN :updateCover THEN :thumbnailUrl ELSE thumbnail_url END,\n        author = CASE WHEN :updateDetails THEN :author ELSE author END,\n        artist = CASE WHEN :updateDetails THEN :artist ELSE artist END,\n        description = CASE WHEN :updateDetails THEN :description ELSE description END,\n        genre = CASE WHEN :updateDetails THEN :genre ELSE genre END,\n        status = CASE WHEN :updateDetails THEN :status ELSE status END,\n        update_strategy = CASE WHEN :updateDetails THEN :updateStrategy ELSE update_strategy END,\n        initialized = :updateDetails\n    WHERE source = :source\n    AND url = :url\n    AND favorite = 0;\n\n    -- Finally return the manga\n    SELECT *\n    FROM mangas\n    WHERE source = :source\n    AND url = :url\n    LIMIT 1;\n}\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq",
    "content": "CREATE TABLE mangas_categories(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    manga_id INTEGER NOT NULL,\n    category_id INTEGER NOT NULL,\n    FOREIGN KEY(category_id) REFERENCES categories (_id)\n    ON DELETE CASCADE,\n    FOREIGN KEY(manga_id) REFERENCES mangas (_id)\n    ON DELETE CASCADE\n);\n\nCREATE INDEX idx_mangas_categories_manga_id ON mangas_categories(manga_id);\nCREATE INDEX idx_mangas_categories_category_id ON mangas_categories(category_id);\n\nCREATE TRIGGER insert_manga_category_update_version AFTER INSERT ON mangas_categories\nBEGIN\n    UPDATE mangas\n    SET version = version + 1\n    WHERE _id = new.manga_id AND (SELECT is_syncing FROM mangas WHERE _id = new.manga_id) = 0;\nEND;\n\ninsert:\nINSERT INTO mangas_categories(manga_id, category_id)\nVALUES (:mangaId, :categoryId);\n\ndeleteMangaCategoryByMangaId:\nDELETE FROM mangas_categories\nWHERE manga_id = :mangaId;"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/data/sources.sq",
    "content": "CREATE TABLE sources(\n    _id INTEGER NOT NULL PRIMARY KEY,\n    lang TEXT NOT NULL,\n    name TEXT NOT NULL\n);\n\nfindAll:\nSELECT *\nFROM sources;\n\nfindOne:\nSELECT *\nFROM sources\nWHERE _id = :id;\n\nupsert:\nINSERT INTO sources(_id, lang, name)\nVALUES (:id, :lang, :name)\nON CONFLICT(_id)\nDO UPDATE\nSET\n    lang = :lang,\n    name = :name\nWHERE _id = :id;"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/1.sqm",
    "content": "-- MangaUpdates score fixing --\nUPDATE manga_sync\nSET score = max(score, 0)\nWHERE sync_id = 7;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/10.sqm",
    "content": "-- Migration to add performance indexes\n\nCREATE INDEX IF NOT EXISTS idx_mangas_source ON mangas(source);\nCREATE INDEX IF NOT EXISTS idx_chapters_url ON chapters(url);\nCREATE INDEX IF NOT EXISTS idx_mangas_categories_manga_id ON mangas_categories(manga_id);\nCREATE INDEX IF NOT EXISTS idx_mangas_categories_category_id ON mangas_categories(category_id);\nCREATE INDEX IF NOT EXISTS idx_excluded_scanlators_scanlator ON excluded_scanlators(scanlator);\nCREATE INDEX IF NOT EXISTS idx_manga_sync_manga_id ON manga_sync(manga_id);\nCREATE INDEX IF NOT EXISTS idx_history_last_read ON history(last_read);\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/2.sqm",
    "content": "-- Mangas table\nALTER TABLE mangas ADD COLUMN version INTEGER NOT NULL DEFAULT 0;\nALTER TABLE mangas ADD COLUMN is_syncing INTEGER NOT NULL DEFAULT 0;\n\n-- Chapters table\nALTER TABLE chapters ADD COLUMN version INTEGER NOT NULL DEFAULT 0;\nALTER TABLE chapters ADD COLUMN is_syncing INTEGER NOT NULL DEFAULT 0;\n\n-- Mangas triggers\nDROP TRIGGER IF EXISTS update_manga_version;\nCREATE TRIGGER update_manga_version AFTER UPDATE ON mangas\nBEGIN\n    UPDATE mangas SET version = version + 1\n    WHERE _id = new._id AND new.is_syncing = 0 AND (\n        new.url != old.url OR\n        new.description != old.description OR\n        new.favorite != old.favorite\n    );\nEND;\n\n-- Chapters triggers\nDROP TRIGGER IF EXISTS update_chapter_and_manga_version;\nCREATE TRIGGER update_chapter_and_manga_version AFTER UPDATE ON chapters\nWHEN new.is_syncing = 0 AND (\n    new.read != old.read OR\n    new.bookmark != old.bookmark OR\n    new.last_page_read != old.last_page_read\n)\nBEGIN\n    -- Update the chapter version\n    UPDATE chapters SET version = version + 1\n    WHERE _id = new._id;\n\n    -- Update the manga version\n    UPDATE mangas SET version = version + 1\n    WHERE _id = new.manga_id AND (SELECT is_syncing FROM mangas WHERE _id = new.manga_id) = 0;\nEND;\n\n-- manga_categories table\nDROP TRIGGER IF EXISTS insert_manga_category_update_version;\nCREATE TRIGGER insert_manga_category_update_version AFTER INSERT ON mangas_categories\nBEGIN\n    UPDATE mangas\n    SET version = version + 1\n    WHERE _id = new.manga_id AND (SELECT is_syncing FROM mangas WHERE _id = new.manga_id) = 0;\nEND;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/3.sqm",
    "content": "-- Create ExtensionRepo table --\nCREATE TABLE extension_repos (\n    base_url TEXT NOT NULL PRIMARY KEY,\n    name TEXT NOT NULL,\n    short_name TEXT,\n    website TEXT NOT NULL,\n    signing_key_fingerprint TEXT UNIQUE NOT NULL\n);\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/4.sqm",
    "content": "import kotlin.Boolean;\n\n-- Add private field for tracking\nALTER TABLE manga_sync ADD COLUMN private INTEGER AS Boolean DEFAULT 0 NOT NULL;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/5.sqm",
    "content": "-- Add notes column\nALTER TABLE mangas\nADD notes TEXT NOT NULL DEFAULT \"\";\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/6.sqm",
    "content": "DROP VIEW IF EXISTS libraryView;\n\nCREATE VIEW libraryView AS\nSELECT\n    M.*,\n    coalesce(C.total, 0) AS totalCount,\n    coalesce(C.readCount, 0) AS readCount,\n    coalesce(C.latestUpload, 0) AS latestUpload,\n    coalesce(C.fetchedAt, 0) AS chapterFetchedAt,\n    coalesce(C.lastRead, 0) AS lastRead,\n    coalesce(C.bookmarkCount, 0) AS bookmarkCount,\n    coalesce(MC.categories, '0') AS categories\nFROM mangas M\nLEFT JOIN (\n    SELECT\n        chapters.manga_id,\n        count(*) AS total,\n        sum(read) AS readCount,\n        coalesce(max(chapters.date_upload), 0) AS latestUpload,\n        coalesce(max(history.last_read), 0) AS lastRead,\n        coalesce(max(chapters.date_fetch), 0) AS fetchedAt,\n        sum(chapters.bookmark) AS bookmarkCount\n    FROM chapters\n    LEFT JOIN excluded_scanlators\n    ON chapters.manga_id = excluded_scanlators.manga_id\n    AND chapters.scanlator = excluded_scanlators.scanlator\n    LEFT JOIN history\n    ON chapters._id = history.chapter_id\n    WHERE excluded_scanlators.scanlator IS NULL\n    GROUP BY chapters.manga_id\n) AS C\nON M._id = C.manga_id\nLEFT JOIN (\n    SELECT manga_id, group_concat(category_id) AS categories\n    FROM mangas_categories\n    GROUP BY manga_id\n) AS MC\nON MC.manga_id = M._id\nWHERE M.favorite = 1;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/7.sqm",
    "content": "-- Add chapter urls to updates view\nDROP VIEW IF EXISTS updatesView;\nCREATE VIEW updatesView AS\nSELECT\n    mangas._id AS mangaId,\n    mangas.title AS mangaTitle,\n    chapters._id AS chapterId,\n    chapters.name AS chapterName,\n    chapters.scanlator,\n    chapters.url AS chapterUrl,\n    chapters.read,\n    chapters.bookmark,\n    chapters.last_page_read,\n    mangas.source,\n    mangas.favorite,\n    mangas.thumbnail_url AS thumbnailUrl,\n    mangas.cover_last_modified AS coverLastModified,\n    chapters.date_upload AS dateUpload,\n    chapters.date_fetch AS datefetch\nFROM mangas JOIN chapters\nON mangas._id = chapters.manga_id\nWHERE favorite = 1\nAND date_fetch > date_added\nORDER BY date_fetch DESC;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/8.sqm",
    "content": "-- Save the current remote_id as library_id, since old Kitsu tracker did not use this correctly\nUPDATE manga_sync SET library_id = remote_id WHERE sync_id = 3;\n\n-- Kitsu and Suwayomi aren't using the remote_id field properly, but for both the ID is present in the URL\n-- This parses a url and gets the ID from the trailing path part, e.g. https://kitsu.app/manga/<id>\n-- Based on https://stackoverflow.com/a/38330814\nUPDATE manga_sync SET remote_id = replace(remote_url, rtrim(remote_url, replace(remote_url, '/', '')), '') WHERE sync_id IN (3, 9);\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/migrations/9.sqm",
    "content": "-- Add excluded_scanlators to updatesView\nDROP VIEW IF EXISTS updatesView;\n\nCREATE VIEW updatesView AS\nSELECT\n    mangas._id AS mangaId,\n    mangas.title AS mangaTitle,\n    chapters._id AS chapterId,\n    chapters.name AS chapterName,\n    chapters.scanlator,\n    chapters.url AS chapterUrl,\n    chapters.read,\n    chapters.bookmark,\n    chapters.last_page_read,\n    mangas.source,\n    mangas.favorite,\n    mangas.thumbnail_url AS thumbnailUrl,\n    mangas.cover_last_modified AS coverLastModified,\n    chapters.date_upload AS dateUpload,\n    chapters.date_fetch AS datefetch,\n    excluded_scanlators.scanlator as excludedScanlator\nFROM mangas JOIN chapters\nON mangas._id = chapters.manga_id\nLEFT JOIN excluded_scanlators\nON mangas._id = excluded_scanlators.manga_id\nAND chapters.scanlator = excluded_scanlators.scanlator\nWHERE favorite = 1\nAND date_fetch > date_added\nORDER BY date_fetch DESC;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/view/historyView.sq",
    "content": "CREATE VIEW historyView AS\nSELECT\n    history._id AS id,\n    mangas._id AS mangaId,\n    chapters._id AS chapterId,\n    mangas.title,\n    mangas.thumbnail_url AS thumbnailUrl,\n    mangas.source,\n    mangas.favorite,\n    mangas.cover_last_modified,\n    chapters.chapter_number AS chapterNumber,\n    history.last_read AS readAt,\n    history.time_read AS readDuration,\n    max_last_read.last_read AS maxReadAt,\n    max_last_read.chapter_id AS maxReadAtChapterId\nFROM mangas\nJOIN chapters\nON mangas._id = chapters.manga_id\nJOIN history\nON chapters._id = history.chapter_id\nJOIN (\n    SELECT chapters.manga_id,chapters._id AS chapter_id, MAX(history.last_read) AS last_read\n    FROM chapters JOIN history\n    ON chapters._id = history.chapter_id\n    GROUP BY chapters.manga_id\n) AS max_last_read\nON chapters.manga_id = max_last_read.manga_id;\n\nhistory:\nSELECT\nid,\nmangaId,\nchapterId,\ntitle,\nthumbnailUrl,\nsource,\nfavorite,\ncover_last_modified,\nchapterNumber,\nreadAt,\nreadDuration\nFROM historyView\nWHERE historyView.readAt > 0\nAND maxReadAtChapterId = historyView.chapterId\nAND lower(historyView.title) LIKE ('%' || :query || '%')\nORDER BY readAt DESC;\n\ngetLatestHistory:\nSELECT\nid,\nmangaId,\nchapterId,\ntitle,\nthumbnailUrl,\nsource,\nfavorite,\ncover_last_modified,\nchapterNumber,\nreadAt,\nreadDuration\nFROM historyView\nWHERE historyView.readAt > 0\nORDER BY readAt DESC\nLIMIT 1;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/view/libraryView.sq",
    "content": "CREATE VIEW libraryView AS\nSELECT\n    M.*,\n    coalesce(C.total, 0) AS totalCount,\n    coalesce(C.readCount, 0) AS readCount,\n    coalesce(C.latestUpload, 0) AS latestUpload,\n    coalesce(C.fetchedAt, 0) AS chapterFetchedAt,\n    coalesce(C.lastRead, 0) AS lastRead,\n    coalesce(C.bookmarkCount, 0) AS bookmarkCount,\n    coalesce(MC.categories, '0') AS categories\nFROM mangas M\nLEFT JOIN (\n    SELECT\n        chapters.manga_id,\n        count(*) AS total,\n        sum(read) AS readCount,\n        coalesce(max(chapters.date_upload), 0) AS latestUpload,\n        coalesce(max(history.last_read), 0) AS lastRead,\n        coalesce(max(chapters.date_fetch), 0) AS fetchedAt,\n        sum(chapters.bookmark) AS bookmarkCount\n    FROM chapters\n    LEFT JOIN excluded_scanlators\n    ON chapters.manga_id = excluded_scanlators.manga_id\n    AND chapters.scanlator = excluded_scanlators.scanlator\n    LEFT JOIN history\n    ON chapters._id = history.chapter_id\n    WHERE excluded_scanlators.scanlator IS NULL\n    GROUP BY chapters.manga_id\n) AS C\nON M._id = C.manga_id\nLEFT JOIN (\n    SELECT manga_id, group_concat(category_id) AS categories\n    FROM mangas_categories\n    GROUP BY manga_id\n) AS MC\nON MC.manga_id = M._id\nWHERE M.favorite = 1;\n\nlibrary:\nSELECT *\nFROM libraryView;\n"
  },
  {
    "path": "data/src/main/sqldelight/tachiyomi/view/updatesView.sq",
    "content": "CREATE VIEW updatesView AS\nSELECT\n    mangas._id AS mangaId,\n    mangas.title AS mangaTitle,\n    chapters._id AS chapterId,\n    chapters.name AS chapterName,\n    chapters.scanlator,\n    chapters.url AS chapterUrl,\n    chapters.read,\n    chapters.bookmark,\n    chapters.last_page_read,\n    mangas.source,\n    mangas.favorite,\n    mangas.thumbnail_url AS thumbnailUrl,\n    mangas.cover_last_modified AS coverLastModified,\n    chapters.date_upload AS dateUpload,\n    chapters.date_fetch AS datefetch,\n    excluded_scanlators.scanlator AS excludedScanlator\nFROM mangas JOIN chapters\nON mangas._id = chapters.manga_id\nLEFT JOIN excluded_scanlators\nON mangas._id = excluded_scanlators.manga_id\nAND chapters.scanlator = excluded_scanlators.scanlator\nWHERE favorite = 1\nAND date_fetch > date_added\nORDER BY date_fetch DESC;\n\ngetRecentUpdates:\nSELECT *\nFROM updatesView\nWHERE dateUpload > :after\nLIMIT :limit;\n\ngetRecentUpdatesWithFilters:\nSELECT *\nFROM updatesView\nWHERE dateUpload > :after\nAND (:read IS NULL OR read = :read)\n-- Started means some progress but not finished, Read means finished chapter, thus:\nAND (\n    :started IS NULL\n    OR (:started = 1 AND last_page_read > 0 AND read = 0)\n    OR (:started = 0 AND last_page_read = 0 AND read = 0)\n)\nAND (:bookmarked IS NULL OR bookmark = :bookmarked)\nAND (\n    (excludedScanlator IS NULL OR :hideExcludedScanlators = 0)\n)\nLIMIT :limit;\n\ngetUpdatesByReadStatus:\nSELECT *\nFROM updatesView\nWHERE read = :read\nAND dateUpload > :after\nLIMIT :limit;\n"
  },
  {
    "path": "domain/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    kotlin(\"android\")\n    kotlin(\"plugin.serialization\")\n}\n\nandroid {\n    namespace = \"tachiyomi.domain\"\n\n    defaultConfig {\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n        consumerProguardFiles(\"consumer-rules.pro\")\n    }\n}\n\nkotlin {\n    compilerOptions {\n        freeCompilerArgs.add(\"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi\")\n    }\n}\n\ndependencies {\n    implementation(projects.sourceApi)\n    implementation(projects.core.common)\n\n    implementation(platform(kotlinx.coroutines.bom))\n    implementation(kotlinx.bundles.coroutines)\n    implementation(kotlinx.bundles.serialization)\n\n    implementation(libs.unifile)\n\n    api(libs.sqldelight.android.paging)\n\n    compileOnly(compose.runtime.annotation)\n\n    testImplementation(libs.bundles.test)\n    testImplementation(kotlinx.coroutines.test)\n    testRuntimeOnly(libs.junit.platform.launcher)\n}\n"
  },
  {
    "path": "domain/consumer-rules.pro",
    "content": ""
  },
  {
    "path": "domain/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile"
  },
  {
    "path": "domain/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/chapter/interactor/FilterChaptersForDownload.kt",
    "content": "package mihon.domain.chapter.interactor\n\nimport tachiyomi.domain.category.interactor.GetCategories\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.manga.model.Manga\n\n/**\n * Interactor responsible for determining which chapters of a manga should be downloaded.\n *\n * @property getChaptersByMangaId Interactor for retrieving chapters by manga ID.\n * @property downloadPreferences User preferences related to chapter downloads.\n * @property getCategories Interactor for retrieving categories associated with a manga.\n */\nclass FilterChaptersForDownload(\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n    private val downloadPreferences: DownloadPreferences,\n    private val getCategories: GetCategories,\n) {\n\n    /**\n     * Determines which chapters of a manga should be downloaded based on user preferences.\n     *\n     * @param manga The manga for which chapters may be downloaded.\n     * @param newChapters The list of new chapters available for the manga.\n     * @return A list of chapters that should be downloaded\n     */\n    suspend fun await(manga: Manga, newChapters: List<Chapter>): List<Chapter> {\n        if (\n            newChapters.isEmpty() ||\n            !downloadPreferences.downloadNewChapters.get() ||\n            !manga.shouldDownloadNewChapters()\n        ) {\n            return emptyList()\n        }\n\n        if (!downloadPreferences.downloadNewUnreadChaptersOnly.get()) return newChapters\n\n        val readChapterNumbers = getChaptersByMangaId.await(manga.id)\n            .asSequence()\n            .filter { it.read && it.isRecognizedNumber }\n            .map { it.chapterNumber }\n            .toSet()\n\n        return newChapters.filterNot { it.chapterNumber in readChapterNumbers }\n    }\n\n    /**\n     * Determines whether new chapters should be downloaded for the manga based on user preferences and the\n     * categories to which the manga belongs.\n     *\n     * @return `true` if chapters of the manga should be downloaded\n     */\n    private suspend fun Manga.shouldDownloadNewChapters(): Boolean {\n        if (!favorite) return false\n\n        val categories = getCategories.await(id).map { it.id }.ifEmpty { listOf(DEFAULT_CATEGORY_ID) }\n        val includedCategories = downloadPreferences.downloadNewChapterCategories.get().map { it.toLong() }\n        val excludedCategories = downloadPreferences.downloadNewChapterCategoriesExclude.get().map { it.toLong() }\n\n        return when {\n            // Default Download from all categories\n            includedCategories.isEmpty() && excludedCategories.isEmpty() -> true\n            // In excluded category\n            categories.any { it in excludedCategories } -> false\n            // Included category not selected\n            includedCategories.isEmpty() -> true\n            // In included category\n            else -> categories.any { it in includedCategories }\n        }\n    }\n\n    companion object {\n        private const val DEFAULT_CATEGORY_ID = 0L\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/exception/SaveExtensionRepoException.kt",
    "content": "package mihon.domain.extensionrepo.exception\n\nimport java.io.IOException\n\n/**\n * Exception to abstract over SQLiteException and SQLiteConstraintException for multiplatform.\n *\n * @param throwable the source throwable to include for tracing.\n */\nclass SaveExtensionRepoException(throwable: Throwable) : IOException(\"Error Saving Repository to Database\", throwable)\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/interactor/CreateExtensionRepo.kt",
    "content": "package mihon.domain.extensionrepo.interactor\n\nimport logcat.LogPriority\nimport mihon.domain.extensionrepo.exception.SaveExtensionRepoException\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\nimport mihon.domain.extensionrepo.service.ExtensionRepoService\nimport okhttp3.HttpUrl.Companion.toHttpUrlOrNull\nimport tachiyomi.core.common.util.system.logcat\n\nclass CreateExtensionRepo(\n    private val repository: ExtensionRepoRepository,\n    private val service: ExtensionRepoService,\n) {\n    private val repoRegex = \"\"\"^https://.*/index\\.min\\.json$\"\"\".toRegex()\n\n    suspend fun await(indexUrl: String): Result {\n        val formattedIndexUrl = indexUrl.toHttpUrlOrNull()\n            ?.toString()\n            ?.takeIf { it.matches(repoRegex) }\n            ?: return Result.InvalidUrl\n\n        val baseUrl = formattedIndexUrl.removeSuffix(\"/index.min.json\")\n        return service.fetchRepoDetails(baseUrl)?.let { insert(it) } ?: Result.InvalidUrl\n    }\n\n    private suspend fun insert(repo: ExtensionRepo): Result {\n        return try {\n            repository.insertRepo(\n                repo.baseUrl,\n                repo.name,\n                repo.shortName,\n                repo.website,\n                repo.signingKeyFingerprint,\n            )\n            Result.Success\n        } catch (e: SaveExtensionRepoException) {\n            logcat(LogPriority.WARN, e) { \"SQL Conflict attempting to add new repository ${repo.baseUrl}\" }\n            return handleInsertionError(repo)\n        }\n    }\n\n    /**\n     * Error Handler for insert when there are trying to create new repositories\n     *\n     * SaveExtensionRepoException doesn't provide constraint info in exceptions.\n     * First check if the conflict was on primary key. if so return RepoAlreadyExists\n     * Then check if the conflict was on fingerprint. if so Return DuplicateFingerprint\n     * If neither are found, there was some other Error, and return Result.Error\n     *\n     * @param repo Extension Repo holder for passing to DB/Error Dialog\n     */\n    private suspend fun handleInsertionError(repo: ExtensionRepo): Result {\n        val repoExists = repository.getRepo(repo.baseUrl)\n        if (repoExists != null) {\n            return Result.RepoAlreadyExists\n        }\n        val matchingFingerprintRepo = repository.getRepoBySigningKeyFingerprint(repo.signingKeyFingerprint)\n        if (matchingFingerprintRepo != null) {\n            return Result.DuplicateFingerprint(matchingFingerprintRepo, repo)\n        }\n        return Result.Error\n    }\n\n    sealed interface Result {\n        data class DuplicateFingerprint(val oldRepo: ExtensionRepo, val newRepo: ExtensionRepo) : Result\n        data object InvalidUrl : Result\n        data object RepoAlreadyExists : Result\n        data object Success : Result\n        data object Error : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/interactor/DeleteExtensionRepo.kt",
    "content": "package mihon.domain.extensionrepo.interactor\n\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\n\nclass DeleteExtensionRepo(\n    private val repository: ExtensionRepoRepository,\n) {\n    suspend fun await(baseUrl: String) {\n        repository.deleteRepo(baseUrl)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/interactor/GetExtensionRepo.kt",
    "content": "package mihon.domain.extensionrepo.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\n\nclass GetExtensionRepo(\n    private val repository: ExtensionRepoRepository,\n) {\n    fun subscribeAll(): Flow<List<ExtensionRepo>> = repository.subscribeAll()\n\n    suspend fun getAll(): List<ExtensionRepo> = repository.getAll()\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/interactor/GetExtensionRepoCount.kt",
    "content": "package mihon.domain.extensionrepo.interactor\n\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\n\nclass GetExtensionRepoCount(\n    private val repository: ExtensionRepoRepository,\n) {\n    fun subscribe() = repository.getCount()\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/interactor/ReplaceExtensionRepo.kt",
    "content": "package mihon.domain.extensionrepo.interactor\n\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\n\nclass ReplaceExtensionRepo(\n    private val repository: ExtensionRepoRepository,\n) {\n    suspend fun await(repo: ExtensionRepo) {\n        repository.replaceRepo(repo)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/interactor/UpdateExtensionRepo.kt",
    "content": "package mihon.domain.extensionrepo.interactor\n\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.coroutines.coroutineScope\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport mihon.domain.extensionrepo.repository.ExtensionRepoRepository\nimport mihon.domain.extensionrepo.service.ExtensionRepoService\n\nclass UpdateExtensionRepo(\n    private val repository: ExtensionRepoRepository,\n    private val service: ExtensionRepoService,\n) {\n\n    suspend fun awaitAll() = coroutineScope {\n        repository.getAll()\n            .map { async { await(it) } }\n            .awaitAll()\n    }\n\n    suspend fun await(repo: ExtensionRepo) {\n        val newRepo = service.fetchRepoDetails(repo.baseUrl) ?: return\n        if (\n            repo.signingKeyFingerprint.startsWith(\"NOFINGERPRINT\") ||\n            repo.signingKeyFingerprint == newRepo.signingKeyFingerprint\n        ) {\n            repository.upsertRepo(newRepo)\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/model/ExtensionRepo.kt",
    "content": "package mihon.domain.extensionrepo.model\n\ndata class ExtensionRepo(\n    val baseUrl: String,\n    val name: String,\n    val shortName: String?,\n    val website: String,\n    val signingKeyFingerprint: String,\n)\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/repository/ExtensionRepoRepository.kt",
    "content": "package mihon.domain.extensionrepo.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport mihon.domain.extensionrepo.model.ExtensionRepo\n\ninterface ExtensionRepoRepository {\n\n    fun subscribeAll(): Flow<List<ExtensionRepo>>\n\n    suspend fun getAll(): List<ExtensionRepo>\n\n    suspend fun getRepo(baseUrl: String): ExtensionRepo?\n\n    suspend fun getRepoBySigningKeyFingerprint(fingerprint: String): ExtensionRepo?\n\n    fun getCount(): Flow<Int>\n\n    suspend fun insertRepo(\n        baseUrl: String,\n        name: String,\n        shortName: String?,\n        website: String,\n        signingKeyFingerprint: String,\n    )\n\n    suspend fun upsertRepo(\n        baseUrl: String,\n        name: String,\n        shortName: String?,\n        website: String,\n        signingKeyFingerprint: String,\n    )\n\n    suspend fun upsertRepo(repo: ExtensionRepo) {\n        upsertRepo(\n            baseUrl = repo.baseUrl,\n            name = repo.name,\n            shortName = repo.shortName,\n            website = repo.website,\n            signingKeyFingerprint = repo.signingKeyFingerprint,\n        )\n    }\n\n    suspend fun replaceRepo(newRepo: ExtensionRepo)\n\n    suspend fun deleteRepo(baseUrl: String)\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/service/ExtensionRepoDto.kt",
    "content": "package mihon.domain.extensionrepo.service\n\nimport kotlinx.serialization.Serializable\nimport mihon.domain.extensionrepo.model.ExtensionRepo\n\n@Serializable\ndata class ExtensionRepoMetaDto(\n    val meta: ExtensionRepoDto,\n)\n\n@Serializable\ndata class ExtensionRepoDto(\n    val name: String,\n    val shortName: String?,\n    val website: String,\n    val signingKeyFingerprint: String,\n)\n\nfun ExtensionRepoMetaDto.toExtensionRepo(baseUrl: String): ExtensionRepo {\n    return ExtensionRepo(\n        baseUrl = baseUrl,\n        name = meta.name,\n        shortName = meta.shortName,\n        website = meta.website,\n        signingKeyFingerprint = meta.signingKeyFingerprint,\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/extensionrepo/service/ExtensionRepoService.kt",
    "content": "package mihon.domain.extensionrepo.service\n\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.parseAs\nimport kotlinx.serialization.json.Json\nimport logcat.LogPriority\nimport mihon.domain.extensionrepo.model.ExtensionRepo\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.logcat\n\nclass ExtensionRepoService(\n    networkHelper: NetworkHelper,\n    private val json: Json,\n) {\n    val client = networkHelper.client\n\n    suspend fun fetchRepoDetails(\n        repo: String,\n    ): ExtensionRepo? {\n        return withIOContext {\n            try {\n                with(json) {\n                    client.newCall(GET(\"$repo/repo.json\"))\n                        .awaitSuccess()\n                        .parseAs<ExtensionRepoMetaDto>()\n                        .toExtensionRepo(baseUrl = repo)\n                }\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e) { \"Failed to fetch repo details\" }\n                null\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/manga/model/SManga.kt",
    "content": "package mihon.domain.manga.model\n\nimport eu.kanade.tachiyomi.source.model.SManga\nimport tachiyomi.domain.manga.model.Manga\n\nfun SManga.toDomainManga(sourceId: Long): Manga {\n    return Manga.create().copy(\n        url = url,\n        title = title,\n        artist = artist,\n        author = author,\n        description = description,\n        genre = getGenres(),\n        status = status.toLong(),\n        thumbnailUrl = thumbnail_url,\n        updateStrategy = update_strategy,\n        initialized = initialized,\n        source = sourceId,\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/mihon/domain/upcoming/interactor/GetUpcomingManga.kt",
    "content": "package mihon.domain.upcoming.interactor\n\nimport eu.kanade.tachiyomi.source.model.SManga\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass GetUpcomingManga(\n    private val mangaRepository: MangaRepository,\n) {\n\n    private val includedStatuses = setOf(\n        SManga.ONGOING.toLong(),\n        SManga.PUBLISHING_FINISHED.toLong(),\n    )\n\n    suspend fun subscribe(): Flow<List<Manga>> {\n        return mangaRepository.getUpcomingManga(includedStatuses)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/backup/service/BackupPreferences.kt",
    "content": "package tachiyomi.domain.backup.service\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\n\nclass BackupPreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    val backupInterval: Preference<Int> = preferenceStore.getInt(\"backup_interval\", 12)\n\n    val lastAutoBackupTimestamp: Preference<Long> = preferenceStore.getLong(\n        Preference.appStateKey(\"last_auto_backup_timestamp\"),\n        0L,\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/CreateCategoryWithName.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.repository.CategoryRepository\nimport tachiyomi.domain.library.service.LibraryPreferences\n\nclass CreateCategoryWithName(\n    private val categoryRepository: CategoryRepository,\n    private val preferences: LibraryPreferences,\n) {\n\n    private val initialFlags: Long\n        get() {\n            val sort = preferences.sortingMode.get()\n            return sort.type.flag or sort.direction.flag\n        }\n\n    suspend fun await(name: String): Result = withNonCancellableContext {\n        val categories = categoryRepository.getAll()\n        val nextOrder = categories.maxOfOrNull { it.order }?.plus(1) ?: 0\n        val newCategory = Category(\n            id = 0,\n            name = name,\n            order = nextOrder,\n            flags = initialFlags,\n        )\n\n        try {\n            categoryRepository.insert(newCategory)\n            Result.Success\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            Result.InternalError(e)\n        }\n    }\n\n    sealed interface Result {\n        data object Success : Result\n        data class InternalError(val error: Throwable) : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/DeleteCategory.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.model.CategoryUpdate\nimport tachiyomi.domain.category.repository.CategoryRepository\nimport tachiyomi.domain.download.service.DownloadPreferences\nimport tachiyomi.domain.library.service.LibraryPreferences\n\nclass DeleteCategory(\n    private val categoryRepository: CategoryRepository,\n    private val libraryPreferences: LibraryPreferences,\n    private val downloadPreferences: DownloadPreferences,\n) {\n\n    suspend fun await(categoryId: Long) = withNonCancellableContext {\n        try {\n            categoryRepository.delete(categoryId)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            return@withNonCancellableContext Result.InternalError(e)\n        }\n\n        val categories = categoryRepository.getAll()\n        val updates = categories.mapIndexed { index, category ->\n            CategoryUpdate(\n                id = category.id,\n                order = index.toLong(),\n            )\n        }\n\n        val defaultCategory = libraryPreferences.defaultCategory.get()\n        if (defaultCategory == categoryId.toInt()) {\n            libraryPreferences.defaultCategory.delete()\n        }\n\n        val categoryPreferences = listOf(\n            libraryPreferences.updateCategories,\n            libraryPreferences.updateCategoriesExclude,\n            downloadPreferences.removeExcludeCategories,\n            downloadPreferences.downloadNewChapterCategories,\n            downloadPreferences.downloadNewChapterCategoriesExclude,\n        )\n        val categoryIdString = categoryId.toString()\n        categoryPreferences.forEach { preference ->\n            val ids = preference.get()\n            if (categoryIdString !in ids) return@forEach\n            preference.set(ids.minus(categoryIdString))\n        }\n\n        try {\n            categoryRepository.updatePartial(updates)\n            Result.Success\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            Result.InternalError(e)\n        }\n    }\n\n    sealed interface Result {\n        data object Success : Result\n        data class InternalError(val error: Throwable) : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/GetCategories.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.repository.CategoryRepository\n\nclass GetCategories(\n    private val categoryRepository: CategoryRepository,\n) {\n\n    fun subscribe(): Flow<List<Category>> {\n        return categoryRepository.getAllAsFlow()\n    }\n\n    fun subscribe(mangaId: Long): Flow<List<Category>> {\n        return categoryRepository.getCategoriesByMangaIdAsFlow(mangaId)\n    }\n\n    suspend fun await(): List<Category> {\n        return categoryRepository.getAll()\n    }\n\n    suspend fun await(mangaId: Long): List<Category> {\n        return categoryRepository.getCategoriesByMangaId(mangaId)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/RenameCategory.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.model.CategoryUpdate\nimport tachiyomi.domain.category.repository.CategoryRepository\n\nclass RenameCategory(\n    private val categoryRepository: CategoryRepository,\n) {\n\n    suspend fun await(categoryId: Long, name: String) = withNonCancellableContext {\n        val update = CategoryUpdate(\n            id = categoryId,\n            name = name,\n        )\n\n        try {\n            categoryRepository.updatePartial(update)\n            Result.Success\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            Result.InternalError(e)\n        }\n    }\n\n    suspend fun await(category: Category, name: String) = await(category.id, name)\n\n    sealed interface Result {\n        data object Success : Result\n        data class InternalError(val error: Throwable) : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/ReorderCategory.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport kotlinx.coroutines.sync.Mutex\nimport kotlinx.coroutines.sync.withLock\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.model.CategoryUpdate\nimport tachiyomi.domain.category.repository.CategoryRepository\n\nclass ReorderCategory(\n    private val categoryRepository: CategoryRepository,\n) {\n    private val mutex = Mutex()\n\n    suspend fun await(category: Category, newIndex: Int) = withNonCancellableContext {\n        mutex.withLock {\n            val categories = categoryRepository.getAll()\n                .filterNot(Category::isSystemCategory)\n                .toMutableList()\n\n            val currentIndex = categories.indexOfFirst { it.id == category.id }\n            if (currentIndex == -1) {\n                return@withNonCancellableContext Result.Unchanged\n            }\n\n            try {\n                categories.add(newIndex, categories.removeAt(currentIndex))\n\n                val updates = categories.mapIndexed { index, category ->\n                    CategoryUpdate(\n                        id = category.id,\n                        order = index.toLong(),\n                    )\n                }\n\n                categoryRepository.updatePartial(updates)\n                Result.Success\n            } catch (e: Exception) {\n                logcat(LogPriority.ERROR, e)\n                Result.InternalError(e)\n            }\n        }\n    }\n\n    sealed interface Result {\n        data object Success : Result\n        data object Unchanged : Result\n        data class InternalError(val error: Throwable) : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/ResetCategoryFlags.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport tachiyomi.domain.category.repository.CategoryRepository\nimport tachiyomi.domain.library.model.plus\nimport tachiyomi.domain.library.service.LibraryPreferences\n\nclass ResetCategoryFlags(\n    private val preferences: LibraryPreferences,\n    private val categoryRepository: CategoryRepository,\n) {\n\n    suspend fun await() {\n        val sort = preferences.sortingMode.get()\n        categoryRepository.updateAllFlags(sort.type + sort.direction)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayMode.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.service.LibraryPreferences\n\nclass SetDisplayMode(\n    private val preferences: LibraryPreferences,\n) {\n\n    fun await(display: LibraryDisplayMode) {\n        preferences.displayMode.set(display)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/SetMangaCategories.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass SetMangaCategories(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun await(mangaId: Long, categoryIds: List<Long>) {\n        try {\n            mangaRepository.setMangaCategories(mangaId, categoryIds)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.model.CategoryUpdate\nimport tachiyomi.domain.category.repository.CategoryRepository\nimport tachiyomi.domain.library.model.LibrarySort\nimport tachiyomi.domain.library.model.plus\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport kotlin.random.Random\n\nclass SetSortModeForCategory(\n    private val preferences: LibraryPreferences,\n    private val categoryRepository: CategoryRepository,\n) {\n\n    suspend fun await(categoryId: Long?, type: LibrarySort.Type, direction: LibrarySort.Direction) {\n        val category = categoryId?.let { categoryRepository.get(it) }\n        val flags = (category?.flags ?: 0) + type + direction\n        if (type == LibrarySort.Type.Random) {\n            preferences.randomSortSeed.set(Random.nextInt())\n        }\n        if (category != null && preferences.categorizedDisplaySettings.get()) {\n            categoryRepository.updatePartial(\n                CategoryUpdate(\n                    id = category.id,\n                    flags = flags,\n                ),\n            )\n        } else {\n            preferences.sortingMode.set(LibrarySort(type, direction))\n            categoryRepository.updateAllFlags(flags)\n        }\n    }\n\n    suspend fun await(\n        category: Category?,\n        type: LibrarySort.Type,\n        direction: LibrarySort.Direction,\n    ) {\n        await(category?.id, type, direction)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/interactor/UpdateCategory.kt",
    "content": "package tachiyomi.domain.category.interactor\n\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.domain.category.model.CategoryUpdate\nimport tachiyomi.domain.category.repository.CategoryRepository\n\nclass UpdateCategory(\n    private val categoryRepository: CategoryRepository,\n) {\n\n    suspend fun await(payload: CategoryUpdate): Result = withNonCancellableContext {\n        try {\n            categoryRepository.updatePartial(payload)\n            Result.Success\n        } catch (e: Exception) {\n            Result.Error(e)\n        }\n    }\n\n    sealed interface Result {\n        data object Success : Result\n        data class Error(val error: Exception) : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/model/Category.kt",
    "content": "package tachiyomi.domain.category.model\n\nimport java.io.Serializable\n\ndata class Category(\n    val id: Long,\n    val name: String,\n    val order: Long,\n    val flags: Long,\n) : Serializable {\n\n    val isSystemCategory: Boolean = id == UNCATEGORIZED_ID\n\n    companion object {\n        const val UNCATEGORIZED_ID = 0L\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/model/CategoryUpdate.kt",
    "content": "package tachiyomi.domain.category.model\n\ndata class CategoryUpdate(\n    val id: Long,\n    val name: String? = null,\n    val order: Long? = null,\n    val flags: Long? = null,\n)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/category/repository/CategoryRepository.kt",
    "content": "package tachiyomi.domain.category.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.category.model.Category\nimport tachiyomi.domain.category.model.CategoryUpdate\n\ninterface CategoryRepository {\n\n    suspend fun get(id: Long): Category?\n\n    suspend fun getAll(): List<Category>\n\n    fun getAllAsFlow(): Flow<List<Category>>\n\n    suspend fun getCategoriesByMangaId(mangaId: Long): List<Category>\n\n    fun getCategoriesByMangaIdAsFlow(mangaId: Long): Flow<List<Category>>\n\n    suspend fun insert(category: Category)\n\n    suspend fun updatePartial(update: CategoryUpdate)\n\n    suspend fun updatePartial(updates: List<CategoryUpdate>)\n\n    suspend fun updateAllFlags(flags: Long?)\n\n    suspend fun delete(categoryId: Long)\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/GetBookmarkedChaptersByMangaId.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass GetBookmarkedChaptersByMangaId(\n    private val chapterRepository: ChapterRepository,\n) {\n\n    suspend fun await(mangaId: Long): List<Chapter> {\n        return try {\n            chapterRepository.getBookmarkedChaptersByMangaId(mangaId)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            emptyList()\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/GetChapter.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass GetChapter(\n    private val chapterRepository: ChapterRepository,\n) {\n\n    suspend fun await(id: Long): Chapter? {\n        return try {\n            chapterRepository.getChapterById(id)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            null\n        }\n    }\n\n    suspend fun await(url: String, mangaId: Long): Chapter? {\n        return try {\n            chapterRepository.getChapterByUrlAndMangaId(url, mangaId)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/GetChapterByUrlAndMangaId.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass GetChapterByUrlAndMangaId(\n    private val chapterRepository: ChapterRepository,\n) {\n\n    suspend fun await(url: String, sourceId: Long): Chapter? {\n        return try {\n            chapterRepository.getChapterByUrlAndMangaId(url, sourceId)\n        } catch (e: Exception) {\n            null\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/GetChaptersByMangaId.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass GetChaptersByMangaId(\n    private val chapterRepository: ChapterRepository,\n) {\n\n    suspend fun await(mangaId: Long, applyScanlatorFilter: Boolean = false): List<Chapter> {\n        return try {\n            chapterRepository.getChapterByMangaId(mangaId, applyScanlatorFilter)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            emptyList()\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/SetMangaDefaultChapterFlags.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport tachiyomi.core.common.util.lang.withNonCancellableContext\nimport tachiyomi.domain.library.service.LibraryPreferences\nimport tachiyomi.domain.manga.interactor.GetFavorites\nimport tachiyomi.domain.manga.interactor.SetMangaChapterFlags\nimport tachiyomi.domain.manga.model.Manga\n\nclass SetMangaDefaultChapterFlags(\n    private val libraryPreferences: LibraryPreferences,\n    private val setMangaChapterFlags: SetMangaChapterFlags,\n    private val getFavorites: GetFavorites,\n) {\n\n    suspend fun await(manga: Manga) {\n        withNonCancellableContext {\n            with(libraryPreferences) {\n                setMangaChapterFlags.awaitSetAllFlags(\n                    mangaId = manga.id,\n                    unreadFilter = filterChapterByRead.get(),\n                    downloadedFilter = filterChapterByDownloaded.get(),\n                    bookmarkedFilter = filterChapterByBookmarked.get(),\n                    sortingMode = sortChapterBySourceOrNumber.get(),\n                    sortingDirection = sortChapterByAscendingOrDescending.get(),\n                    displayMode = displayChapterByNameOrNumber.get(),\n                )\n            }\n        }\n    }\n\n    suspend fun awaitAll() {\n        withNonCancellableContext {\n            getFavorites.await().forEach { await(it) }\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/ShouldUpdateDbChapter.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport tachiyomi.domain.chapter.model.Chapter\n\nclass ShouldUpdateDbChapter {\n\n    fun await(dbChapter: Chapter, sourceChapter: Chapter): Boolean {\n        return dbChapter.scanlator != sourceChapter.scanlator ||\n            dbChapter.name != sourceChapter.name ||\n            dbChapter.dateUpload != sourceChapter.dateUpload ||\n            dbChapter.chapterNumber != sourceChapter.chapterNumber ||\n            dbChapter.sourceOrder != sourceChapter.sourceOrder\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/interactor/UpdateChapter.kt",
    "content": "package tachiyomi.domain.chapter.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.chapter.model.ChapterUpdate\nimport tachiyomi.domain.chapter.repository.ChapterRepository\n\nclass UpdateChapter(\n    private val chapterRepository: ChapterRepository,\n) {\n\n    suspend fun await(chapterUpdate: ChapterUpdate) {\n        try {\n            chapterRepository.update(chapterUpdate)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n\n    suspend fun awaitAll(chapterUpdates: List<ChapterUpdate>) {\n        try {\n            chapterRepository.updateAll(chapterUpdates)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/model/Chapter.kt",
    "content": "package tachiyomi.domain.chapter.model\n\ndata class Chapter(\n    val id: Long,\n    val mangaId: Long,\n    val read: Boolean,\n    val bookmark: Boolean,\n    val lastPageRead: Long,\n    val dateFetch: Long,\n    val sourceOrder: Long,\n    val url: String,\n    val name: String,\n    val dateUpload: Long,\n    val chapterNumber: Double,\n    val scanlator: String?,\n    val lastModifiedAt: Long,\n    val version: Long,\n) {\n    val isRecognizedNumber: Boolean\n        get() = chapterNumber >= 0f\n\n    fun copyFrom(other: Chapter): Chapter {\n        return copy(\n            name = other.name,\n            url = other.url,\n            dateUpload = other.dateUpload,\n            chapterNumber = other.chapterNumber,\n            scanlator = other.scanlator?.ifBlank { null },\n        )\n    }\n\n    companion object {\n        fun create() = Chapter(\n            id = -1,\n            mangaId = -1,\n            read = false,\n            bookmark = false,\n            lastPageRead = 0,\n            dateFetch = 0,\n            sourceOrder = 0,\n            url = \"\",\n            name = \"\",\n            dateUpload = -1,\n            chapterNumber = -1.0,\n            scanlator = null,\n            lastModifiedAt = 0,\n            version = 1,\n        )\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/model/ChapterUpdate.kt",
    "content": "package tachiyomi.domain.chapter.model\n\ndata class ChapterUpdate(\n    val id: Long,\n    val mangaId: Long? = null,\n    val read: Boolean? = null,\n    val bookmark: Boolean? = null,\n    val lastPageRead: Long? = null,\n    val dateFetch: Long? = null,\n    val sourceOrder: Long? = null,\n    val url: String? = null,\n    val name: String? = null,\n    val dateUpload: Long? = null,\n    val chapterNumber: Double? = null,\n    val scanlator: String? = null,\n    val version: Long? = null,\n)\n\nfun Chapter.toChapterUpdate(): ChapterUpdate {\n    return ChapterUpdate(\n        id,\n        mangaId,\n        read,\n        bookmark,\n        lastPageRead,\n        dateFetch,\n        sourceOrder,\n        url,\n        name,\n        dateUpload,\n        chapterNumber,\n        scanlator,\n        version,\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/model/NoChaptersException.kt",
    "content": "package tachiyomi.domain.chapter.model\n\nclass NoChaptersException : Exception()\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/repository/ChapterRepository.kt",
    "content": "package tachiyomi.domain.chapter.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.model.ChapterUpdate\n\ninterface ChapterRepository {\n\n    suspend fun addAll(chapters: List<Chapter>): List<Chapter>\n\n    suspend fun update(chapterUpdate: ChapterUpdate)\n\n    suspend fun updateAll(chapterUpdates: List<ChapterUpdate>)\n\n    suspend fun removeChaptersWithIds(chapterIds: List<Long>)\n\n    suspend fun getChapterByMangaId(mangaId: Long, applyScanlatorFilter: Boolean = false): List<Chapter>\n\n    suspend fun getScanlatorsByMangaId(mangaId: Long): List<String>\n\n    fun getScanlatorsByMangaIdAsFlow(mangaId: Long): Flow<List<String>>\n\n    suspend fun getBookmarkedChaptersByMangaId(mangaId: Long): List<Chapter>\n\n    suspend fun getChapterById(id: Long): Chapter?\n\n    suspend fun getChapterByMangaIdAsFlow(mangaId: Long, applyScanlatorFilter: Boolean = false): Flow<List<Chapter>>\n\n    suspend fun getChapterByUrlAndMangaId(url: String, mangaId: Long): Chapter?\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/service/ChapterRecognition.kt",
    "content": "package tachiyomi.domain.chapter.service\n\n/**\n * -R> = regex conversion.\n */\nobject ChapterRecognition {\n\n    private const val NUMBER_PATTERN = \"\"\"([0-9]+)(\\.[0-9]+)?(\\.?[a-z]+)?\"\"\"\n\n    /**\n     * All cases with Ch.xx\n     * Mokushiroku Alice Vol.1 Ch. 4: Misrepresentation -R> 4\n     */\n    private val basic = Regex(\"\"\"(?<=ch\\.) *$NUMBER_PATTERN\"\"\")\n\n    /**\n     * Example: Bleach 567: Down With Snowwhite -R> 567\n     */\n    private val number = Regex(NUMBER_PATTERN)\n\n    /**\n     * Regex used to remove unwanted tags\n     * Example Prison School 12 v.1 vol004 version1243 volume64 -R> Prison School 12\n     */\n    private val unwanted = Regex(\"\"\"\\b(?:v|ver|vol|version|volume|season|s)[^a-z]?[0-9]+\"\"\")\n\n    /**\n     * Regex used to remove unwanted whitespace\n     * Example One Piece 12 special -R> One Piece 12special\n     */\n    private val unwantedWhiteSpace = Regex(\"\"\"\\s(?=extra|special|omake)\"\"\")\n\n    fun parseChapterNumber(\n        mangaTitle: String,\n        chapterName: String,\n        chapterNumber: Double? = null,\n    ): Double {\n        // If chapter number is known return.\n        if (chapterNumber != null && (chapterNumber == -2.0 || chapterNumber > -1.0)) {\n            return chapterNumber\n        }\n\n        // Get chapter title with lower case\n        val cleanChapterName = chapterName.lowercase()\n            // Remove manga title from chapter title.\n            .replace(mangaTitle.lowercase(), \"\").trim()\n            // Remove comma's or hyphens.\n            .replace(',', '.')\n            .replace('-', '.')\n            // Remove unwanted white spaces.\n            .replace(unwantedWhiteSpace, \"\")\n\n        val numberMatch = number.findAll(cleanChapterName)\n\n        when {\n            numberMatch.none() -> {\n                return chapterNumber ?: -1.0\n            }\n            numberMatch.count() > 1 -> {\n                // Remove unwanted tags.\n                unwanted.replace(cleanChapterName, \"\").let { name ->\n                    // Check base case ch.xx\n                    basic.find(name)?.let { return getChapterNumberFromMatch(it) }\n\n                    // need to find again first number might already removed\n                    number.find(name)?.let { return getChapterNumberFromMatch(it) }\n                }\n            }\n        }\n\n        // return the first number encountered\n        return getChapterNumberFromMatch(numberMatch.first())\n    }\n\n    /**\n     * Check if chapter number is found and return it\n     * @param match result of regex\n     * @return chapter number if found else null\n     */\n    private fun getChapterNumberFromMatch(match: MatchResult): Double {\n        return match.let {\n            val initial = it.groups[1]?.value?.toDouble()!!\n            val subChapterDecimal = it.groups[2]?.value\n            val subChapterAlpha = it.groups[3]?.value\n            val addition = checkForDecimal(subChapterDecimal, subChapterAlpha)\n            initial.plus(addition)\n        }\n    }\n\n    /**\n     * Check for decimal in received strings\n     * @param decimal decimal value of regex\n     * @param alpha alpha value of regex\n     * @return decimal/alpha float value\n     */\n    private fun checkForDecimal(decimal: String?, alpha: String?): Double {\n        if (!decimal.isNullOrEmpty()) {\n            return decimal.toDouble()\n        }\n\n        if (!alpha.isNullOrEmpty()) {\n            if (alpha.contains(\"extra\")) {\n                return 0.99\n            }\n\n            if (alpha.contains(\"omake\")) {\n                return 0.98\n            }\n\n            if (alpha.contains(\"special\")) {\n                return 0.97\n            }\n\n            val trimmedAlpha = alpha.trimStart('.')\n            if (trimmedAlpha.length == 1) {\n                return parseAlphaPostFix(trimmedAlpha[0])\n            }\n        }\n\n        return 0.0\n    }\n\n    /**\n     * x.a -> x.1, x.b -> x.2, etc\n     */\n    private fun parseAlphaPostFix(alpha: Char): Double {\n        val number = alpha.code - ('a'.code - 1)\n        if (number >= 10) return 0.0\n        return number / 10.0\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/service/ChapterSort.kt",
    "content": "package tachiyomi.domain.chapter.service\n\nimport tachiyomi.core.common.util.lang.compareToWithCollator\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\n\nfun getChapterSort(\n    manga: Manga,\n    sortDescending: Boolean = manga.sortDescending(),\n): (\n    Chapter,\n    Chapter,\n) -> Int {\n    return when (manga.sorting) {\n        Manga.CHAPTER_SORTING_SOURCE -> when (sortDescending) {\n            true -> { c1, c2 -> c1.sourceOrder.compareTo(c2.sourceOrder) }\n            false -> { c1, c2 -> c2.sourceOrder.compareTo(c1.sourceOrder) }\n        }\n        Manga.CHAPTER_SORTING_NUMBER -> when (sortDescending) {\n            true -> { c1, c2 -> c2.chapterNumber.compareTo(c1.chapterNumber) }\n            false -> { c1, c2 -> c1.chapterNumber.compareTo(c2.chapterNumber) }\n        }\n        Manga.CHAPTER_SORTING_UPLOAD_DATE -> when (sortDescending) {\n            true -> { c1, c2 -> c2.dateUpload.compareTo(c1.dateUpload) }\n            false -> { c1, c2 -> c1.dateUpload.compareTo(c2.dateUpload) }\n        }\n        Manga.CHAPTER_SORTING_ALPHABET -> when (sortDescending) {\n            true -> { c1, c2 -> c2.name.compareToWithCollator(c1.name) }\n            false -> { c1, c2 -> c1.name.compareToWithCollator(c2.name) }\n        }\n        else -> throw NotImplementedError(\"Invalid chapter sorting method: ${manga.sorting}\")\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt",
    "content": "package tachiyomi.domain.chapter.service\n\nimport tachiyomi.domain.chapter.model.Chapter\nimport kotlin.math.floor\n\nfun List<Double>.missingChaptersCount(): Int {\n    if (this.isEmpty()) {\n        return 0\n    }\n\n    val chapters = this\n        // Ignore unknown chapter numbers\n        .filterNot { it == -1.0 }\n        // Convert to integers, as we cannot check if 16.5 is missing\n        .map(Double::toInt)\n        // Only keep unique chapters so that -1 or 16 are not counted multiple times\n        .distinct()\n        .sorted()\n\n    if (chapters.isEmpty()) {\n        return 0\n    }\n\n    var missingChaptersCount = 0\n    var previousChapter = 0 // The actual chapter number, not the array index\n\n    // We go from 0 to lastChapter - Make sure to use the current index instead of the value\n    for (i in chapters.indices) {\n        val currentChapter = chapters[i]\n        if (currentChapter > previousChapter + 1) {\n            // Add the amount of missing chapters\n            missingChaptersCount += currentChapter - previousChapter - 1\n        }\n        previousChapter = currentChapter\n    }\n\n    return missingChaptersCount\n}\n\nfun calculateChapterGap(higherChapter: Chapter?, lowerChapter: Chapter?): Int {\n    if (higherChapter == null || lowerChapter == null) return 0\n    if (!higherChapter.isRecognizedNumber || !lowerChapter.isRecognizedNumber) return 0\n    return calculateChapterGap(higherChapter.chapterNumber, lowerChapter.chapterNumber)\n}\n\nfun calculateChapterGap(higherChapterNumber: Double, lowerChapterNumber: Double): Int {\n    if (higherChapterNumber < 0.0 || lowerChapterNumber < 0.0) return 0\n    return floor(higherChapterNumber).toInt() - floor(lowerChapterNumber).toInt() - 1\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/download/service/DownloadPreferences.kt",
    "content": "package tachiyomi.domain.download.service\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\n\nclass DownloadPreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    val downloadOnlyOverWifi: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_download_only_over_wifi_key\",\n        true,\n    )\n\n    val saveChaptersAsCBZ: Preference<Boolean> = preferenceStore.getBoolean(\"save_chapter_as_cbz\", true)\n\n    val splitTallImages: Preference<Boolean> = preferenceStore.getBoolean(\"split_tall_images\", true)\n\n    val autoDownloadWhileReading: Preference<Int> = preferenceStore.getInt(\"auto_download_while_reading\", 0)\n\n    val removeAfterReadSlots: Preference<Int> = preferenceStore.getInt(\"remove_after_read_slots\", -1)\n\n    val removeAfterMarkedAsRead: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_remove_after_marked_as_read_key\",\n        false,\n    )\n\n    val removeBookmarkedChapters: Preference<Boolean> = preferenceStore.getBoolean(\"pref_remove_bookmarked\", false)\n\n    val removeExcludeCategories: Preference<Set<String>> = preferenceStore.getStringSet(\n        REMOVE_EXCLUDE_CATEGORIES_PREF_KEY,\n        emptySet(),\n    )\n\n    val downloadNewChapters: Preference<Boolean> = preferenceStore.getBoolean(\"download_new\", false)\n\n    val downloadNewChapterCategories: Preference<Set<String>> = preferenceStore.getStringSet(\n        DOWNLOAD_NEW_CATEGORIES_PREF_KEY,\n        emptySet(),\n    )\n\n    val downloadNewChapterCategoriesExclude: Preference<Set<String>> = preferenceStore.getStringSet(\n        DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY,\n        emptySet(),\n    )\n\n    val downloadNewUnreadChaptersOnly: Preference<Boolean> = preferenceStore.getBoolean(\n        \"download_new_unread_chapters_only\",\n        false,\n    )\n\n    val parallelSourceLimit: Preference<Int> = preferenceStore.getInt(\"download_parallel_source_limit\", 5)\n\n    val parallelPageLimit: Preference<Int> = preferenceStore.getInt(\"download_parallel_page_limit\", 5)\n\n    companion object {\n        private const val REMOVE_EXCLUDE_CATEGORIES_PREF_KEY = \"remove_exclude_categories\"\n        private const val DOWNLOAD_NEW_CATEGORIES_PREF_KEY = \"download_new_categories\"\n        private const val DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY = \"download_new_categories_exclude\"\n        val categoryPreferenceKeys = setOf(\n            REMOVE_EXCLUDE_CATEGORIES_PREF_KEY,\n            DOWNLOAD_NEW_CATEGORIES_PREF_KEY,\n            DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY,\n        )\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/interactor/GetHistory.kt",
    "content": "package tachiyomi.domain.history.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.history.model.History\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.domain.history.repository.HistoryRepository\n\nclass GetHistory(\n    private val repository: HistoryRepository,\n) {\n\n    suspend fun await(mangaId: Long): List<History> {\n        return repository.getHistoryByMangaId(mangaId)\n    }\n\n    fun subscribe(query: String): Flow<List<HistoryWithRelations>> {\n        return repository.getHistory(query)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/interactor/GetNextChapters.kt",
    "content": "package tachiyomi.domain.history.interactor\n\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.service.getChapterSort\nimport tachiyomi.domain.history.repository.HistoryRepository\nimport tachiyomi.domain.manga.interactor.GetManga\nimport kotlin.math.max\n\nclass GetNextChapters(\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n    private val getManga: GetManga,\n    private val historyRepository: HistoryRepository,\n) {\n\n    suspend fun await(onlyUnread: Boolean = true): List<Chapter> {\n        val history = historyRepository.getLastHistory() ?: return emptyList()\n        return await(history.mangaId, history.chapterId, onlyUnread)\n    }\n\n    suspend fun await(mangaId: Long, onlyUnread: Boolean = true): List<Chapter> {\n        val manga = getManga.await(mangaId) ?: return emptyList()\n        val chapters = getChaptersByMangaId.await(mangaId, applyScanlatorFilter = true)\n            .sortedWith(getChapterSort(manga, sortDescending = false))\n\n        return if (onlyUnread) {\n            chapters.filterNot { it.read }\n        } else {\n            chapters\n        }\n    }\n\n    suspend fun await(\n        mangaId: Long,\n        fromChapterId: Long,\n        onlyUnread: Boolean = true,\n    ): List<Chapter> {\n        val chapters = await(mangaId, onlyUnread)\n        val currChapterIndex = chapters.indexOfFirst { it.id == fromChapterId }\n        val nextChapters = chapters.subList(max(0, currChapterIndex), chapters.size)\n\n        if (onlyUnread) {\n            return nextChapters\n        }\n\n        // The \"next chapter\" is either:\n        // - The current chapter if it isn't completely read\n        // - The chapters after the current chapter if the current one is completely read\n        val fromChapter = chapters.getOrNull(currChapterIndex)\n        return if (fromChapter != null && !fromChapter.read) {\n            nextChapters\n        } else {\n            nextChapters.drop(1)\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/interactor/GetTotalReadDuration.kt",
    "content": "package tachiyomi.domain.history.interactor\n\nimport tachiyomi.domain.history.repository.HistoryRepository\n\nclass GetTotalReadDuration(\n    private val repository: HistoryRepository,\n) {\n\n    suspend fun await(): Long {\n        return repository.getTotalReadDuration()\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/interactor/RemoveHistory.kt",
    "content": "package tachiyomi.domain.history.interactor\n\nimport tachiyomi.domain.history.model.HistoryWithRelations\nimport tachiyomi.domain.history.repository.HistoryRepository\n\nclass RemoveHistory(\n    private val repository: HistoryRepository,\n) {\n\n    suspend fun awaitAll(): Boolean {\n        return repository.deleteAllHistory()\n    }\n\n    suspend fun await(history: HistoryWithRelations) {\n        repository.resetHistory(history.id)\n    }\n\n    suspend fun await(mangaId: Long) {\n        repository.resetHistoryByMangaId(mangaId)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/interactor/UpsertHistory.kt",
    "content": "package tachiyomi.domain.history.interactor\n\nimport tachiyomi.domain.history.model.HistoryUpdate\nimport tachiyomi.domain.history.repository.HistoryRepository\n\nclass UpsertHistory(\n    private val historyRepository: HistoryRepository,\n) {\n\n    suspend fun await(historyUpdate: HistoryUpdate) {\n        historyRepository.upsertHistory(historyUpdate)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/model/History.kt",
    "content": "package tachiyomi.domain.history.model\n\nimport java.util.Date\n\ndata class History(\n    val id: Long,\n    val chapterId: Long,\n    val readAt: Date?,\n    val readDuration: Long,\n) {\n    companion object {\n        fun create() = History(\n            id = -1L,\n            chapterId = -1L,\n            readAt = null,\n            readDuration = -1L,\n        )\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/model/HistoryUpdate.kt",
    "content": "package tachiyomi.domain.history.model\n\nimport java.util.Date\n\ndata class HistoryUpdate(\n    val chapterId: Long,\n    val readAt: Date,\n    val sessionReadDuration: Long,\n)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt",
    "content": "package tachiyomi.domain.history.model\n\nimport tachiyomi.domain.manga.model.MangaCover\nimport java.util.Date\n\ndata class HistoryWithRelations(\n    val id: Long,\n    val chapterId: Long,\n    val mangaId: Long,\n    val title: String,\n    val chapterNumber: Double,\n    val readAt: Date?,\n    val readDuration: Long,\n    val coverData: MangaCover,\n)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/history/repository/HistoryRepository.kt",
    "content": "package tachiyomi.domain.history.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.history.model.History\nimport tachiyomi.domain.history.model.HistoryUpdate\nimport tachiyomi.domain.history.model.HistoryWithRelations\n\ninterface HistoryRepository {\n\n    fun getHistory(query: String): Flow<List<HistoryWithRelations>>\n\n    suspend fun getLastHistory(): HistoryWithRelations?\n\n    suspend fun getTotalReadDuration(): Long\n\n    suspend fun getHistoryByMangaId(mangaId: Long): List<History>\n\n    suspend fun resetHistory(historyId: Long)\n\n    suspend fun resetHistoryByMangaId(mangaId: Long)\n\n    suspend fun deleteAllHistory(): Boolean\n\n    suspend fun upsertHistory(historyUpdate: HistoryUpdate)\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/library/model/Flag.kt",
    "content": "package tachiyomi.domain.library.model\n\ninterface Flag {\n    val flag: Long\n}\n\ninterface Mask {\n    val mask: Long\n}\n\ninterface FlagWithMask : Flag, Mask\n\noperator fun Long.contains(other: Flag): Boolean {\n    return if (other is Mask) {\n        other.flag == this and other.mask\n    } else {\n        other.flag == this\n    }\n}\n\noperator fun Long.plus(other: Flag): Long {\n    return if (other is Mask) {\n        this and other.mask.inv() or (other.flag and other.mask)\n    } else {\n        this or other.flag\n    }\n}\n\noperator fun Flag.plus(other: Flag): Long {\n    return if (other is Mask) {\n        this.flag and other.mask.inv() or (other.flag and other.mask)\n    } else {\n        this.flag or other.flag\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/library/model/LibraryDisplayMode.kt",
    "content": "package tachiyomi.domain.library.model\n\nsealed interface LibraryDisplayMode {\n\n    data object CompactGrid : LibraryDisplayMode\n    data object ComfortableGrid : LibraryDisplayMode\n    data object List : LibraryDisplayMode\n    data object CoverOnlyGrid : LibraryDisplayMode\n\n    object Serializer {\n        fun deserialize(serialized: String): LibraryDisplayMode {\n            return LibraryDisplayMode.deserialize(serialized)\n        }\n\n        fun serialize(value: LibraryDisplayMode): String {\n            return value.serialize()\n        }\n    }\n\n    companion object {\n        val values by lazy { setOf(CompactGrid, ComfortableGrid, List, CoverOnlyGrid) }\n        val default = CompactGrid\n\n        fun deserialize(serialized: String): LibraryDisplayMode {\n            return when (serialized) {\n                \"COMFORTABLE_GRID\" -> ComfortableGrid\n                \"COMPACT_GRID\" -> CompactGrid\n                \"COVER_ONLY_GRID\" -> CoverOnlyGrid\n                \"LIST\" -> List\n                else -> default\n            }\n        }\n    }\n\n    fun serialize(): String {\n        return when (this) {\n            ComfortableGrid -> \"COMFORTABLE_GRID\"\n            CompactGrid -> \"COMPACT_GRID\"\n            CoverOnlyGrid -> \"COVER_ONLY_GRID\"\n            List -> \"LIST\"\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/library/model/LibraryManga.kt",
    "content": "package tachiyomi.domain.library.model\n\nimport tachiyomi.domain.manga.model.Manga\n\ndata class LibraryManga(\n    val manga: Manga,\n    val categories: List<Long>,\n    val totalChapters: Long,\n    val readCount: Long,\n    val bookmarkCount: Long,\n    val latestUpload: Long,\n    val chapterFetchedAt: Long,\n    val lastRead: Long,\n) {\n    val id: Long = manga.id\n\n    val unreadCount\n        get() = totalChapters - readCount\n\n    val hasBookmarks\n        get() = bookmarkCount > 0\n\n    val hasStarted = readCount > 0\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/library/model/LibrarySortMode.kt",
    "content": "package tachiyomi.domain.library.model\n\nimport tachiyomi.domain.category.model.Category\n\ndata class LibrarySort(\n    val type: Type,\n    val direction: Direction,\n) : FlagWithMask {\n\n    override val flag: Long\n        get() = type + direction\n\n    override val mask: Long\n        get() = type.mask or direction.mask\n\n    val isAscending: Boolean\n        get() = direction == Direction.Ascending\n\n    sealed class Type(\n        override val flag: Long,\n    ) : FlagWithMask {\n\n        override val mask: Long = 0b00111100L\n\n        data object Alphabetical : Type(0b00000000)\n        data object LastRead : Type(0b00000100)\n        data object LastUpdate : Type(0b00001000)\n        data object UnreadCount : Type(0b00001100)\n        data object TotalChapters : Type(0b00010000)\n        data object LatestChapter : Type(0b00010100)\n        data object ChapterFetchDate : Type(0b00011000)\n        data object DateAdded : Type(0b00011100)\n        data object TrackerMean : Type(0b00100000)\n        data object Random : Type(0b00111100)\n\n        companion object {\n            fun valueOf(flag: Long): Type {\n                return types.find { type -> type.flag == flag and type.mask } ?: default.type\n            }\n        }\n    }\n\n    sealed class Direction(\n        override val flag: Long,\n    ) : FlagWithMask {\n\n        override val mask: Long = 0b01000000L\n\n        data object Ascending : Direction(0b01000000)\n        data object Descending : Direction(0b00000000)\n\n        companion object {\n            fun valueOf(flag: Long): Direction {\n                return directions.find { direction -> direction.flag == flag and direction.mask } ?: default.direction\n            }\n        }\n    }\n\n    object Serializer {\n        fun deserialize(serialized: String): LibrarySort {\n            return LibrarySort.deserialize(serialized)\n        }\n\n        fun serialize(value: LibrarySort): String {\n            return value.serialize()\n        }\n    }\n\n    companion object {\n        val types by lazy {\n            setOf(\n                Type.Alphabetical,\n                Type.LastRead,\n                Type.LastUpdate,\n                Type.UnreadCount,\n                Type.TotalChapters,\n                Type.LatestChapter,\n                Type.ChapterFetchDate,\n                Type.DateAdded,\n                Type.TrackerMean,\n                Type.Random,\n            )\n        }\n        val directions by lazy { setOf(Direction.Ascending, Direction.Descending) }\n        val default = LibrarySort(Type.Alphabetical, Direction.Ascending)\n\n        fun valueOf(flag: Long?): LibrarySort {\n            if (flag == null) return default\n            return LibrarySort(\n                Type.valueOf(flag),\n                Direction.valueOf(flag),\n            )\n        }\n\n        fun deserialize(serialized: String): LibrarySort {\n            if (serialized.isEmpty()) return default\n            return try {\n                val values = serialized.split(\",\")\n                val type = when (values[0]) {\n                    \"ALPHABETICAL\" -> Type.Alphabetical\n                    \"LAST_READ\" -> Type.LastRead\n                    \"LAST_MANGA_UPDATE\" -> Type.LastUpdate\n                    \"UNREAD_COUNT\" -> Type.UnreadCount\n                    \"TOTAL_CHAPTERS\" -> Type.TotalChapters\n                    \"LATEST_CHAPTER\" -> Type.LatestChapter\n                    \"CHAPTER_FETCH_DATE\" -> Type.ChapterFetchDate\n                    \"DATE_ADDED\" -> Type.DateAdded\n                    \"TRACKER_MEAN\" -> Type.TrackerMean\n                    \"RANDOM\" -> Type.Random\n                    else -> Type.Alphabetical\n                }\n                val ascending = if (values[1] == \"ASCENDING\") Direction.Ascending else Direction.Descending\n                LibrarySort(type, ascending)\n            } catch (e: Exception) {\n                default\n            }\n        }\n    }\n\n    fun serialize(): String {\n        val type = when (type) {\n            Type.Alphabetical -> \"ALPHABETICAL\"\n            Type.LastRead -> \"LAST_READ\"\n            Type.LastUpdate -> \"LAST_MANGA_UPDATE\"\n            Type.UnreadCount -> \"UNREAD_COUNT\"\n            Type.TotalChapters -> \"TOTAL_CHAPTERS\"\n            Type.LatestChapter -> \"LATEST_CHAPTER\"\n            Type.ChapterFetchDate -> \"CHAPTER_FETCH_DATE\"\n            Type.DateAdded -> \"DATE_ADDED\"\n            Type.TrackerMean -> \"TRACKER_MEAN\"\n            Type.Random -> \"RANDOM\"\n        }\n        val direction = if (direction == Direction.Ascending) \"ASCENDING\" else \"DESCENDING\"\n        return \"$type,$direction\"\n    }\n}\n\nval Category?.sort: LibrarySort\n    get() = LibrarySort.valueOf(this?.flags)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt",
    "content": "package tachiyomi.domain.library.service\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.preference.getEnum\nimport tachiyomi.domain.library.model.LibraryDisplayMode\nimport tachiyomi.domain.library.model.LibrarySort\nimport tachiyomi.domain.manga.model.Manga\n\nclass LibraryPreferences(\n    private val preferenceStore: PreferenceStore,\n) {\n\n    val displayMode: Preference<LibraryDisplayMode> = preferenceStore.getObjectFromString(\n        \"pref_display_mode_library\",\n        LibraryDisplayMode.default,\n        LibraryDisplayMode.Serializer::serialize,\n        LibraryDisplayMode.Serializer::deserialize,\n    )\n\n    val sortingMode: Preference<LibrarySort> = preferenceStore.getObjectFromString(\n        \"library_sorting_mode\",\n        LibrarySort.default,\n        LibrarySort.Serializer::serialize,\n        LibrarySort.Serializer::deserialize,\n    )\n\n    val randomSortSeed: Preference<Int> = preferenceStore.getInt(\"library_random_sort_seed\", 0)\n\n    val portraitColumns: Preference<Int> = preferenceStore.getInt(\"pref_library_columns_portrait_key\", 0)\n\n    val landscapeColumns: Preference<Int> = preferenceStore.getInt(\"pref_library_columns_landscape_key\", 0)\n\n    val lastUpdatedTimestamp: Preference<Long> = preferenceStore.getLong(\n        Preference.appStateKey(\"library_update_last_timestamp\"),\n        0L,\n    )\n    val autoUpdateInterval: Preference<Int> = preferenceStore.getInt(\"pref_library_update_interval_key\", 0)\n\n    val autoUpdateDeviceRestrictions: Preference<Set<String>> = preferenceStore.getStringSet(\n        \"library_update_restriction\",\n        setOf(\n            DEVICE_ONLY_ON_WIFI,\n        ),\n    )\n    val autoUpdateMangaRestrictions: Preference<Set<String>> = preferenceStore.getStringSet(\n        \"library_update_manga_restriction\",\n        setOf(\n            MANGA_HAS_UNREAD,\n            MANGA_NON_COMPLETED,\n            MANGA_NON_READ,\n            MANGA_OUTSIDE_RELEASE_PERIOD,\n        ),\n    )\n\n    val autoUpdateMetadata: Preference<Boolean> = preferenceStore.getBoolean(\"auto_update_metadata\", false)\n\n    val showContinueReadingButton: Preference<Boolean> = preferenceStore.getBoolean(\n        \"display_continue_reading_button\",\n        false,\n    )\n\n    val markDuplicateReadChapterAsRead: Preference<Set<String>> = preferenceStore.getStringSet(\n        \"mark_duplicate_read_chapter_read\",\n        emptySet(),\n    )\n\n    // region Filter\n\n    val filterDownloaded: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_library_downloaded_v2\",\n        TriState.DISABLED,\n    )\n\n    val filterUnread: Preference<TriState> = preferenceStore.getEnum(\"pref_filter_library_unread_v2\", TriState.DISABLED)\n\n    val filterStarted: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_library_started_v2\",\n        TriState.DISABLED,\n    )\n\n    val filterBookmarked: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_library_bookmarked_v2\",\n        TriState.DISABLED,\n    )\n\n    val filterCompleted: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_library_completed_v2\",\n        TriState.DISABLED,\n    )\n\n    val filterIntervalCustom: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_library_interval_custom\",\n        TriState.DISABLED,\n    )\n\n    fun filterTracking(id: Int): Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_library_tracked_${id}_v2\",\n        TriState.DISABLED,\n    )\n\n    // endregion\n\n    // region Badges\n\n    val downloadBadge: Preference<Boolean> = preferenceStore.getBoolean(\"display_download_badge\", false)\n\n    val unreadBadge: Preference<Boolean> = preferenceStore.getBoolean(\"display_unread_badge\", true)\n\n    val localBadge: Preference<Boolean> = preferenceStore.getBoolean(\"display_local_badge\", true)\n\n    val languageBadge: Preference<Boolean> = preferenceStore.getBoolean(\"display_language_badge\", false)\n\n    val newShowUpdatesCount: Preference<Boolean> = preferenceStore.getBoolean(\"library_show_updates_count\", true)\n    val newUpdatesCount: Preference<Int> = preferenceStore.getInt(\n        Preference.appStateKey(\"library_unseen_updates_count\"),\n        0,\n    )\n\n    // endregion\n\n    // region Category\n\n    val defaultCategory: Preference<Int> = preferenceStore.getInt(DEFAULT_CATEGORY_PREF_KEY, -1)\n\n    val lastUsedCategory: Preference<Int> = preferenceStore.getInt(Preference.appStateKey(\"last_used_category\"), 0)\n\n    val categoryTabs: Preference<Boolean> = preferenceStore.getBoolean(\"display_category_tabs\", true)\n\n    val categoryNumberOfItems: Preference<Boolean> = preferenceStore.getBoolean(\"display_number_of_items\", false)\n\n    val categorizedDisplaySettings: Preference<Boolean> = preferenceStore.getBoolean(\"categorized_display\", false)\n\n    val updateCategories: Preference<Set<String>> = preferenceStore.getStringSet(\n        LIBRARY_UPDATE_CATEGORIES_PREF_KEY,\n        emptySet(),\n    )\n\n    val updateCategoriesExclude: Preference<Set<String>> = preferenceStore.getStringSet(\n        LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY,\n        emptySet(),\n    )\n\n    // endregion\n\n    // region Chapter\n\n    val filterChapterByRead: Preference<Long> = preferenceStore.getLong(\n        \"default_chapter_filter_by_read\",\n        Manga.SHOW_ALL,\n    )\n\n    val filterChapterByDownloaded: Preference<Long> = preferenceStore.getLong(\n        \"default_chapter_filter_by_downloaded\",\n        Manga.SHOW_ALL,\n    )\n\n    val filterChapterByBookmarked: Preference<Long> = preferenceStore.getLong(\n        \"default_chapter_filter_by_bookmarked\",\n        Manga.SHOW_ALL,\n    )\n\n    // and upload date\n    val sortChapterBySourceOrNumber: Preference<Long> = preferenceStore.getLong(\n        \"default_chapter_sort_by_source_or_number\",\n        Manga.CHAPTER_SORTING_SOURCE,\n    )\n\n    val displayChapterByNameOrNumber: Preference<Long> = preferenceStore.getLong(\n        \"default_chapter_display_by_name_or_number\",\n        Manga.CHAPTER_DISPLAY_NAME,\n    )\n\n    val sortChapterByAscendingOrDescending: Preference<Long> = preferenceStore.getLong(\n        \"default_chapter_sort_by_ascending_or_descending\",\n        Manga.CHAPTER_SORT_DESC,\n    )\n\n    fun setChapterSettingsDefault(manga: Manga) {\n        filterChapterByRead.set(manga.unreadFilterRaw)\n        filterChapterByDownloaded.set(manga.downloadedFilterRaw)\n        filterChapterByBookmarked.set(manga.bookmarkedFilterRaw)\n        sortChapterBySourceOrNumber.set(manga.sorting)\n        displayChapterByNameOrNumber.set(manga.displayMode)\n        sortChapterByAscendingOrDescending.set(\n            if (manga.sortDescending()) Manga.CHAPTER_SORT_DESC else Manga.CHAPTER_SORT_ASC,\n        )\n    }\n\n    val autoClearChapterCache: Preference<Boolean> = preferenceStore.getBoolean(\"auto_clear_chapter_cache\", false)\n\n    val hideMissingChapters: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_hide_missing_chapter_indicators\",\n        false,\n    )\n    // endregion\n\n    // region Swipe Actions\n\n    val swipeToStartAction: Preference<ChapterSwipeAction> = preferenceStore.getEnum(\n        \"pref_chapter_swipe_end_action\",\n        ChapterSwipeAction.ToggleBookmark,\n    )\n\n    val swipeToEndAction: Preference<ChapterSwipeAction> = preferenceStore.getEnum(\n        \"pref_chapter_swipe_start_action\",\n        ChapterSwipeAction.ToggleRead,\n    )\n\n    val updateMangaTitles: Preference<Boolean> = preferenceStore.getBoolean(\"pref_update_library_manga_titles\", false)\n\n    val disallowNonAsciiFilenames: Preference<Boolean> = preferenceStore.getBoolean(\n        \"disallow_non_ascii_filenames\",\n        false,\n    )\n\n    // endregion\n\n    enum class ChapterSwipeAction {\n        ToggleRead,\n        ToggleBookmark,\n        Download,\n        Disabled,\n    }\n\n    companion object {\n        const val DEVICE_ONLY_ON_WIFI = \"wifi\"\n        const val DEVICE_NETWORK_NOT_METERED = \"network_not_metered\"\n        const val DEVICE_CHARGING = \"ac\"\n\n        const val MANGA_NON_COMPLETED = \"manga_ongoing\"\n        const val MANGA_HAS_UNREAD = \"manga_fully_read\"\n        const val MANGA_NON_READ = \"manga_started\"\n        const val MANGA_OUTSIDE_RELEASE_PERIOD = \"manga_outside_release_period\"\n\n        const val MARK_DUPLICATE_CHAPTER_READ_NEW = \"new\"\n        const val MARK_DUPLICATE_CHAPTER_READ_EXISTING = \"existing\"\n\n        const val DEFAULT_CATEGORY_PREF_KEY = \"default_category\"\n        private const val LIBRARY_UPDATE_CATEGORIES_PREF_KEY = \"library_update_categories\"\n        private const val LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY = \"library_update_categories_exclude\"\n        val categoryPreferenceKeys = setOf(\n            DEFAULT_CATEGORY_PREF_KEY,\n            LIBRARY_UPDATE_CATEGORIES_PREF_KEY,\n            LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY,\n        )\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/FetchInterval.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.chapter.interactor.GetChaptersByMangaId\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport java.time.Instant\nimport java.time.ZoneId\nimport java.time.ZonedDateTime\nimport java.time.temporal.ChronoUnit\nimport kotlin.math.absoluteValue\n\nclass FetchInterval(\n    private val getChaptersByMangaId: GetChaptersByMangaId,\n) {\n\n    suspend fun toMangaUpdate(\n        manga: Manga,\n        dateTime: ZonedDateTime,\n        window: Pair<Long, Long>,\n    ): MangaUpdate {\n        val interval = manga.fetchInterval.takeIf { it < 0 } ?: calculateInterval(\n            chapters = getChaptersByMangaId.await(manga.id, applyScanlatorFilter = true),\n            zone = dateTime.zone,\n        )\n        val currentWindow = if (window.first == 0L && window.second == 0L) {\n            getWindow(ZonedDateTime.now())\n        } else {\n            window\n        }\n        val nextUpdate = calculateNextUpdate(manga, interval, dateTime, currentWindow)\n\n        return MangaUpdate(id = manga.id, nextUpdate = nextUpdate, fetchInterval = interval)\n    }\n\n    fun getWindow(dateTime: ZonedDateTime): Pair<Long, Long> {\n        val today = dateTime.toLocalDate().atStartOfDay(dateTime.zone)\n        val lowerBound = today.minusDays(GRACE_PERIOD)\n        val upperBound = today.plusDays(GRACE_PERIOD)\n        return Pair(lowerBound.toEpochSecond() * 1000, upperBound.toEpochSecond() * 1000 - 1)\n    }\n\n    internal fun calculateInterval(chapters: List<Chapter>, zone: ZoneId): Int {\n        val chapterWindow = if (chapters.size <= 8) 3 else 10\n\n        val uploadDates = chapters.asSequence()\n            .filter { it.dateUpload > 0L }\n            .sortedByDescending { it.dateUpload }\n            .map {\n                ZonedDateTime.ofInstant(Instant.ofEpochMilli(it.dateUpload), zone)\n                    .toLocalDate()\n                    .atStartOfDay()\n            }\n            .distinct()\n            .take(chapterWindow)\n            .toList()\n\n        val fetchDates = chapters.asSequence()\n            .sortedByDescending { it.dateFetch }\n            .map {\n                ZonedDateTime.ofInstant(Instant.ofEpochMilli(it.dateFetch), zone)\n                    .toLocalDate()\n                    .atStartOfDay()\n            }\n            .distinct()\n            .take(chapterWindow)\n            .toList()\n\n        val interval = when {\n            // Enough upload date from source\n            uploadDates.size >= 3 -> {\n                val ranges = uploadDates.windowed(2).map { x -> x[1].until(x[0], ChronoUnit.DAYS) }.sorted()\n                ranges[(ranges.size - 1) / 2].toInt()\n            }\n            // Enough fetch date from client\n            fetchDates.size >= 3 -> {\n                val ranges = fetchDates.windowed(2).map { x -> x[1].until(x[0], ChronoUnit.DAYS) }.sorted()\n                ranges[(ranges.size - 1) / 2].toInt()\n            }\n            // Default to 7 days\n            else -> 7\n        }\n\n        return interval.coerceIn(1, MAX_INTERVAL)\n    }\n\n    private fun calculateNextUpdate(\n        manga: Manga,\n        interval: Int,\n        dateTime: ZonedDateTime,\n        window: Pair<Long, Long>,\n    ): Long {\n        if (manga.nextUpdate in window.first.rangeTo(window.second + 1)) {\n            return manga.nextUpdate\n        }\n\n        val latestDate = ZonedDateTime.ofInstant(\n            if (manga.lastUpdate > 0) Instant.ofEpochMilli(manga.lastUpdate) else Instant.now(),\n            dateTime.zone,\n        )\n            .toLocalDate()\n            .atStartOfDay()\n        val timeSinceLatest = ChronoUnit.DAYS.between(latestDate, dateTime).toInt()\n        val cycle = timeSinceLatest.floorDiv(\n            interval.absoluteValue.takeIf { interval < 0 }\n                ?: increaseInterval(interval, timeSinceLatest, increaseWhenOver = 10),\n        )\n        return latestDate.plusDays((cycle + 1) * interval.absoluteValue.toLong()).toEpochSecond(dateTime.offset) * 1000\n    }\n\n    private fun increaseInterval(delta: Int, timeSinceLatest: Int, increaseWhenOver: Int): Int {\n        if (delta >= MAX_INTERVAL) return MAX_INTERVAL\n\n        // double delta again if missed more than 9 check in new delta\n        val cycle = timeSinceLatest.floorDiv(delta) + 1\n        return if (cycle > increaseWhenOver) {\n            increaseInterval(delta * 2, timeSinceLatest, increaseWhenOver)\n        } else {\n            delta\n        }\n    }\n\n    companion object {\n        const val MAX_INTERVAL = 28\n\n        private const val GRACE_PERIOD = 1L\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/GetDuplicateLibraryManga.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass GetDuplicateLibraryManga(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend operator fun invoke(manga: Manga): List<MangaWithChapterCount> {\n        return mangaRepository.getDuplicateLibraryManga(manga.id, manga.title.lowercase())\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/GetFavorites.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass GetFavorites(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun await(): List<Manga> {\n        return mangaRepository.getFavorites()\n    }\n\n    fun subscribe(sourceId: Long): Flow<List<Manga>> {\n        return mangaRepository.getFavoritesBySourceId(sourceId)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/GetLibraryManga.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.catch\nimport kotlinx.coroutines.flow.retry\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.repository.MangaRepository\nimport kotlin.time.Duration.Companion.seconds\n\nclass GetLibraryManga(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun await(): List<LibraryManga> {\n        return mangaRepository.getLibraryManga()\n    }\n\n    fun subscribe(): Flow<List<LibraryManga>> {\n        return mangaRepository.getLibraryMangaAsFlow()\n            .retry {\n                if (it is NullPointerException) {\n                    delay(0.5.seconds)\n                    true\n                } else {\n                    false\n                }\n            }.catch {\n                this@GetLibraryManga.logcat(LogPriority.ERROR, it)\n            }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/GetManga.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass GetManga(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun await(id: Long): Manga? {\n        return try {\n            mangaRepository.getMangaById(id)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            null\n        }\n    }\n\n    suspend fun subscribe(id: Long): Flow<Manga> {\n        return mangaRepository.getMangaByIdAsFlow(id)\n    }\n\n    fun subscribe(url: String, sourceId: Long): Flow<Manga?> {\n        return mangaRepository.getMangaByUrlAndSourceIdAsFlow(url, sourceId)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/GetMangaByUrlAndSourceId.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass GetMangaByUrlAndSourceId(\n    private val mangaRepository: MangaRepository,\n) {\n    suspend fun await(url: String, sourceId: Long): Manga? {\n        return mangaRepository.getMangaByUrlAndSourceId(url, sourceId)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/GetMangaWithChapters.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.combine\nimport tachiyomi.domain.chapter.model.Chapter\nimport tachiyomi.domain.chapter.repository.ChapterRepository\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass GetMangaWithChapters(\n    private val mangaRepository: MangaRepository,\n    private val chapterRepository: ChapterRepository,\n) {\n\n    suspend fun subscribe(id: Long, applyScanlatorFilter: Boolean = false): Flow<Pair<Manga, List<Chapter>>> {\n        return combine(\n            mangaRepository.getMangaByIdAsFlow(id),\n            chapterRepository.getChapterByMangaIdAsFlow(id, applyScanlatorFilter),\n        ) { manga, chapters ->\n            Pair(manga, chapters)\n        }\n    }\n\n    suspend fun awaitManga(id: Long): Manga {\n        return mangaRepository.getMangaById(id)\n    }\n\n    suspend fun awaitChapters(id: Long, applyScanlatorFilter: Boolean = false): List<Chapter> {\n        return chapterRepository.getChapterByMangaId(id, applyScanlatorFilter)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass NetworkToLocalManga(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend operator fun invoke(manga: Manga): Manga {\n        return invoke(listOf(manga)).single()\n    }\n\n    suspend operator fun invoke(manga: List<Manga>): List<Manga> {\n        return mangaRepository.insertNetworkManga(manga)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/ResetViewerFlags.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass ResetViewerFlags(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun await(): Boolean {\n        return mangaRepository.resetViewerFlags()\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/SetMangaChapterFlags.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass SetMangaChapterFlags(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend fun awaitSetDownloadedFilter(manga: Manga, flag: Long): Boolean {\n        return mangaRepository.update(\n            MangaUpdate(\n                id = manga.id,\n                chapterFlags = manga.chapterFlags.setFlag(flag, Manga.CHAPTER_DOWNLOADED_MASK),\n            ),\n        )\n    }\n\n    suspend fun awaitSetUnreadFilter(manga: Manga, flag: Long): Boolean {\n        return mangaRepository.update(\n            MangaUpdate(\n                id = manga.id,\n                chapterFlags = manga.chapterFlags.setFlag(flag, Manga.CHAPTER_UNREAD_MASK),\n            ),\n        )\n    }\n\n    suspend fun awaitSetBookmarkFilter(manga: Manga, flag: Long): Boolean {\n        return mangaRepository.update(\n            MangaUpdate(\n                id = manga.id,\n                chapterFlags = manga.chapterFlags.setFlag(flag, Manga.CHAPTER_BOOKMARKED_MASK),\n            ),\n        )\n    }\n\n    suspend fun awaitSetDisplayMode(manga: Manga, flag: Long): Boolean {\n        return mangaRepository.update(\n            MangaUpdate(\n                id = manga.id,\n                chapterFlags = manga.chapterFlags.setFlag(flag, Manga.CHAPTER_DISPLAY_MASK),\n            ),\n        )\n    }\n\n    suspend fun awaitSetSortingModeOrFlipOrder(manga: Manga, flag: Long): Boolean {\n        val newFlags = manga.chapterFlags.let {\n            if (manga.sorting == flag) {\n                // Just flip the order\n                val orderFlag = if (manga.sortDescending()) {\n                    Manga.CHAPTER_SORT_ASC\n                } else {\n                    Manga.CHAPTER_SORT_DESC\n                }\n                it.setFlag(orderFlag, Manga.CHAPTER_SORT_DIR_MASK)\n            } else {\n                // Set new flag with ascending order\n                it\n                    .setFlag(flag, Manga.CHAPTER_SORTING_MASK)\n                    .setFlag(Manga.CHAPTER_SORT_ASC, Manga.CHAPTER_SORT_DIR_MASK)\n            }\n        }\n        return mangaRepository.update(\n            MangaUpdate(\n                id = manga.id,\n                chapterFlags = newFlags,\n            ),\n        )\n    }\n\n    suspend fun awaitSetAllFlags(\n        mangaId: Long,\n        unreadFilter: Long,\n        downloadedFilter: Long,\n        bookmarkedFilter: Long,\n        sortingMode: Long,\n        sortingDirection: Long,\n        displayMode: Long,\n    ): Boolean {\n        return mangaRepository.update(\n            MangaUpdate(\n                id = mangaId,\n                chapterFlags = 0L.setFlag(unreadFilter, Manga.CHAPTER_UNREAD_MASK)\n                    .setFlag(downloadedFilter, Manga.CHAPTER_DOWNLOADED_MASK)\n                    .setFlag(bookmarkedFilter, Manga.CHAPTER_BOOKMARKED_MASK)\n                    .setFlag(sortingMode, Manga.CHAPTER_SORTING_MASK)\n                    .setFlag(sortingDirection, Manga.CHAPTER_SORT_DIR_MASK)\n                    .setFlag(displayMode, Manga.CHAPTER_DISPLAY_MASK),\n            ),\n        )\n    }\n\n    private fun Long.setFlag(flag: Long, mask: Long): Long {\n        return this and mask.inv() or (flag and mask)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/interactor/UpdateMangaNotes.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.repository.MangaRepository\n\nclass UpdateMangaNotes(\n    private val mangaRepository: MangaRepository,\n) {\n\n    suspend operator fun invoke(mangaId: Long, notes: String): Boolean {\n        return mangaRepository.update(\n            MangaUpdate(\n                id = mangaId,\n                notes = notes,\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/model/Manga.kt",
    "content": "package tachiyomi.domain.manga.model\n\nimport androidx.compose.runtime.Immutable\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.source.model.UpdateStrategy\nimport tachiyomi.core.common.preference.TriState\nimport java.io.Serializable\nimport java.time.Instant\n\n@Immutable\ndata class Manga(\n    val id: Long,\n    val source: Long,\n    val favorite: Boolean,\n    val lastUpdate: Long,\n    val nextUpdate: Long,\n    val fetchInterval: Int,\n    val dateAdded: Long,\n    val viewerFlags: Long,\n    val chapterFlags: Long,\n    val coverLastModified: Long,\n    val url: String,\n    val title: String,\n    val artist: String?,\n    val author: String?,\n    val description: String?,\n    val genre: List<String>?,\n    val status: Long,\n    val thumbnailUrl: String?,\n    val updateStrategy: UpdateStrategy,\n    val initialized: Boolean,\n    val lastModifiedAt: Long,\n    val favoriteModifiedAt: Long?,\n    val version: Long,\n    val notes: String,\n) : Serializable {\n\n    val expectedNextUpdate: Instant?\n        get() = nextUpdate\n            .takeIf { status != SManga.COMPLETED.toLong() }\n            ?.let { Instant.ofEpochMilli(it) }\n\n    val sorting: Long\n        get() = chapterFlags and CHAPTER_SORTING_MASK\n\n    val displayMode: Long\n        get() = chapterFlags and CHAPTER_DISPLAY_MASK\n\n    val unreadFilterRaw: Long\n        get() = chapterFlags and CHAPTER_UNREAD_MASK\n\n    val downloadedFilterRaw: Long\n        get() = chapterFlags and CHAPTER_DOWNLOADED_MASK\n\n    val bookmarkedFilterRaw: Long\n        get() = chapterFlags and CHAPTER_BOOKMARKED_MASK\n\n    val unreadFilter: TriState\n        get() = when (unreadFilterRaw) {\n            CHAPTER_SHOW_UNREAD -> TriState.ENABLED_IS\n            CHAPTER_SHOW_READ -> TriState.ENABLED_NOT\n            else -> TriState.DISABLED\n        }\n\n    val bookmarkedFilter: TriState\n        get() = when (bookmarkedFilterRaw) {\n            CHAPTER_SHOW_BOOKMARKED -> TriState.ENABLED_IS\n            CHAPTER_SHOW_NOT_BOOKMARKED -> TriState.ENABLED_NOT\n            else -> TriState.DISABLED\n        }\n\n    fun sortDescending(): Boolean {\n        return chapterFlags and CHAPTER_SORT_DIR_MASK == CHAPTER_SORT_DESC\n    }\n\n    companion object {\n        // Generic filter that does not filter anything\n        const val SHOW_ALL = 0x00000000L\n\n        const val CHAPTER_SORT_DESC = 0x00000000L\n        const val CHAPTER_SORT_ASC = 0x00000001L\n        const val CHAPTER_SORT_DIR_MASK = 0x00000001L\n\n        const val CHAPTER_SHOW_UNREAD = 0x00000002L\n        const val CHAPTER_SHOW_READ = 0x00000004L\n        const val CHAPTER_UNREAD_MASK = 0x00000006L\n\n        const val CHAPTER_SHOW_DOWNLOADED = 0x00000008L\n        const val CHAPTER_SHOW_NOT_DOWNLOADED = 0x00000010L\n        const val CHAPTER_DOWNLOADED_MASK = 0x00000018L\n\n        const val CHAPTER_SHOW_BOOKMARKED = 0x00000020L\n        const val CHAPTER_SHOW_NOT_BOOKMARKED = 0x00000040L\n        const val CHAPTER_BOOKMARKED_MASK = 0x00000060L\n\n        const val CHAPTER_SORTING_SOURCE = 0x00000000L\n        const val CHAPTER_SORTING_NUMBER = 0x00000100L\n        const val CHAPTER_SORTING_UPLOAD_DATE = 0x00000200L\n        const val CHAPTER_SORTING_ALPHABET = 0x00000300L\n        const val CHAPTER_SORTING_MASK = 0x00000300L\n\n        const val CHAPTER_DISPLAY_NAME = 0x00000000L\n        const val CHAPTER_DISPLAY_NUMBER = 0x00100000L\n        const val CHAPTER_DISPLAY_MASK = 0x00100000L\n\n        fun create() = Manga(\n            id = -1L,\n            url = \"\",\n            title = \"\",\n            source = -1L,\n            favorite = false,\n            lastUpdate = 0L,\n            nextUpdate = 0L,\n            fetchInterval = 0,\n            dateAdded = 0L,\n            viewerFlags = 0L,\n            chapterFlags = 0L,\n            coverLastModified = 0L,\n            artist = null,\n            author = null,\n            description = null,\n            genre = null,\n            status = 0L,\n            thumbnailUrl = null,\n            updateStrategy = UpdateStrategy.ALWAYS_UPDATE,\n            initialized = false,\n            lastModifiedAt = 0L,\n            favoriteModifiedAt = null,\n            version = 0L,\n            notes = \"\",\n        )\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/model/MangaCover.kt",
    "content": "package tachiyomi.domain.manga.model\n\n/**\n * Contains the required data for MangaCoverFetcher\n */\ndata class MangaCover(\n    val mangaId: Long,\n    val sourceId: Long,\n    val isMangaFavorite: Boolean,\n    val url: String?,\n    val lastModified: Long,\n)\n\nfun Manga.asMangaCover(): MangaCover {\n    return MangaCover(\n        mangaId = id,\n        sourceId = source,\n        isMangaFavorite = favorite,\n        url = thumbnailUrl,\n        lastModified = coverLastModified,\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/model/MangaUpdate.kt",
    "content": "package tachiyomi.domain.manga.model\n\nimport eu.kanade.tachiyomi.source.model.UpdateStrategy\n\ndata class MangaUpdate(\n    val id: Long,\n    val source: Long? = null,\n    val favorite: Boolean? = null,\n    val lastUpdate: Long? = null,\n    val nextUpdate: Long? = null,\n    val fetchInterval: Int? = null,\n    val dateAdded: Long? = null,\n    val viewerFlags: Long? = null,\n    val chapterFlags: Long? = null,\n    val coverLastModified: Long? = null,\n    val url: String? = null,\n    val title: String? = null,\n    val artist: String? = null,\n    val author: String? = null,\n    val description: String? = null,\n    val genre: List<String>? = null,\n    val status: Long? = null,\n    val thumbnailUrl: String? = null,\n    val updateStrategy: UpdateStrategy? = null,\n    val initialized: Boolean? = null,\n    val version: Long? = null,\n    val notes: String? = null,\n)\n\nfun Manga.toMangaUpdate(): MangaUpdate {\n    return MangaUpdate(\n        id = id,\n        source = source,\n        favorite = favorite,\n        lastUpdate = lastUpdate,\n        nextUpdate = nextUpdate,\n        fetchInterval = fetchInterval,\n        dateAdded = dateAdded,\n        viewerFlags = viewerFlags,\n        chapterFlags = chapterFlags,\n        coverLastModified = coverLastModified,\n        url = url,\n        title = title,\n        artist = artist,\n        author = author,\n        description = description,\n        genre = genre,\n        status = status,\n        thumbnailUrl = thumbnailUrl,\n        updateStrategy = updateStrategy,\n        initialized = initialized,\n        version = version,\n        notes = notes,\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/model/MangaWithChapterCount.kt",
    "content": "package tachiyomi.domain.manga.model\n\ndata class MangaWithChapterCount(\n    val manga: Manga,\n    val chapterCount: Long,\n)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/model/TriState.kt",
    "content": "package tachiyomi.domain.manga.model\n\nimport tachiyomi.core.common.preference.TriState\n\ninline fun applyFilter(filter: TriState, predicate: () -> Boolean): Boolean = when (filter) {\n    TriState.DISABLED -> true\n    TriState.ENABLED_IS -> predicate()\n    TriState.ENABLED_NOT -> !predicate()\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/manga/repository/MangaRepository.kt",
    "content": "package tachiyomi.domain.manga.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.library.model.LibraryManga\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.manga.model.MangaUpdate\nimport tachiyomi.domain.manga.model.MangaWithChapterCount\n\ninterface MangaRepository {\n\n    suspend fun getMangaById(id: Long): Manga\n\n    suspend fun getMangaByIdAsFlow(id: Long): Flow<Manga>\n\n    suspend fun getMangaByUrlAndSourceId(url: String, sourceId: Long): Manga?\n\n    fun getMangaByUrlAndSourceIdAsFlow(url: String, sourceId: Long): Flow<Manga?>\n\n    suspend fun getFavorites(): List<Manga>\n\n    suspend fun getReadMangaNotInLibrary(): List<Manga>\n\n    suspend fun getLibraryManga(): List<LibraryManga>\n\n    fun getLibraryMangaAsFlow(): Flow<List<LibraryManga>>\n\n    fun getFavoritesBySourceId(sourceId: Long): Flow<List<Manga>>\n\n    suspend fun getDuplicateLibraryManga(id: Long, title: String): List<MangaWithChapterCount>\n\n    suspend fun getUpcomingManga(statuses: Set<Long>): Flow<List<Manga>>\n\n    suspend fun resetViewerFlags(): Boolean\n\n    suspend fun setMangaCategories(mangaId: Long, categoryIds: List<Long>)\n\n    suspend fun update(update: MangaUpdate): Boolean\n\n    suspend fun updateAll(mangaUpdates: List<MangaUpdate>): Boolean\n\n    suspend fun insertNetworkManga(manga: List<Manga>): List<Manga>\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt",
    "content": "package tachiyomi.domain.release.interactor\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.domain.release.model.Release\nimport tachiyomi.domain.release.service.ReleaseService\nimport java.time.Instant\nimport java.time.temporal.ChronoUnit\n\nclass GetApplicationRelease(\n    private val service: ReleaseService,\n    private val preferenceStore: PreferenceStore,\n) {\n\n    private val lastChecked: Preference<Long> by lazy {\n        preferenceStore.getLong(Preference.appStateKey(\"last_app_check\"), 0)\n    }\n\n    suspend fun await(arguments: Arguments): Result {\n        val now = Instant.now()\n\n        // Limit checks to once every 3 days at most\n        val nextCheckTime = Instant.ofEpochMilli(lastChecked.get()).plus(3, ChronoUnit.DAYS)\n        if (!arguments.forceCheck && now.isBefore(nextCheckTime)) {\n            return Result.NoNewUpdate\n        }\n\n        val release = service.latest(arguments) ?: return Result.NoNewUpdate\n\n        lastChecked.set(now.toEpochMilli())\n\n        // Check if latest version is different from current version\n        val isNewVersion = isNewVersion(\n            arguments.isPreview,\n            arguments.commitCount,\n            arguments.versionName,\n            release.version,\n        )\n        return when {\n            isNewVersion -> Result.NewUpdate(release)\n            else -> Result.NoNewUpdate\n        }\n    }\n\n    private fun isNewVersion(\n        isPreview: Boolean,\n        commitCount: Int,\n        versionName: String,\n        versionTag: String,\n    ): Boolean {\n        // Removes prefixes like \"r\" or \"v\"\n        val newVersion = versionTag.replace(\"[^\\\\d.]\".toRegex(), \"\")\n        return if (isPreview) {\n            // Preview builds: based on releases in \"mihonapp/mihon-preview\" repo\n            // tagged as something like \"r1234\"\n            newVersion.toInt() > commitCount\n        } else {\n            // Release builds: based on releases in \"mihonapp/mihon\" repo\n            // tagged as something like \"v0.1.2\"\n            val oldVersion = versionName.replace(\"[^\\\\d.]\".toRegex(), \"\")\n\n            val newSemVer = newVersion.split(\".\").map { it.toInt() }\n            val oldSemVer = oldVersion.split(\".\").map { it.toInt() }\n\n            oldSemVer.mapIndexed { index, i ->\n                if (newSemVer[index] > i) {\n                    return true\n                }\n            }\n\n            false\n        }\n    }\n\n    data class Arguments(\n        val isFoss: Boolean,\n        val isPreview: Boolean,\n        val commitCount: Int,\n        val versionName: String,\n        val repository: String,\n        val forceCheck: Boolean = false,\n    )\n\n    sealed interface Result {\n        data class NewUpdate(val release: Release) : Result\n        data object NoNewUpdate : Result\n        data object OsTooOld : Result\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/release/model/Release.kt",
    "content": "package tachiyomi.domain.release.model\n\n/**\n * Contains information about the latest release.\n */\ndata class Release(\n    val version: String,\n    val info: String,\n    val releaseLink: String,\n    val downloadLink: String,\n)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/release/service/ReleaseService.kt",
    "content": "package tachiyomi.domain.release.service\n\nimport tachiyomi.domain.release.interactor.GetApplicationRelease\nimport tachiyomi.domain.release.model.Release\n\ninterface ReleaseService {\n\n    suspend fun latest(arguments: GetApplicationRelease.Arguments): Release?\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/interactor/GetRemoteManga.kt",
    "content": "package tachiyomi.domain.source.interactor\n\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport tachiyomi.domain.source.repository.SourcePagingSource\nimport tachiyomi.domain.source.repository.SourceRepository\n\nclass GetRemoteManga(\n    private val repository: SourceRepository,\n) {\n\n    operator fun invoke(sourceId: Long, query: String, filterList: FilterList): SourcePagingSource {\n        return when (query) {\n            QUERY_POPULAR -> repository.getPopular(sourceId)\n            QUERY_LATEST -> repository.getLatest(sourceId)\n            else -> repository.search(sourceId, query, filterList)\n        }\n    }\n\n    companion object {\n        const val QUERY_POPULAR = \"eu.kanade.domain.source.interactor.POPULAR\"\n        const val QUERY_LATEST = \"eu.kanade.domain.source.interactor.LATEST\"\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/interactor/GetSourcesWithNonLibraryManga.kt",
    "content": "package tachiyomi.domain.source.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.source.model.SourceWithCount\nimport tachiyomi.domain.source.repository.SourceRepository\n\nclass GetSourcesWithNonLibraryManga(\n    private val repository: SourceRepository,\n) {\n\n    fun subscribe(): Flow<List<SourceWithCount>> {\n        return repository.getSourcesWithNonLibraryManga()\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/model/Pin.kt",
    "content": "package tachiyomi.domain.source.model\n\nsealed class Pin(val code: Int) {\n    data object Unpinned : Pin(0b00)\n    data object Pinned : Pin(0b01)\n    data object Actual : Pin(0b10)\n}\n\ninline fun Pins(builder: Pins.PinsBuilder.() -> Unit = {}): Pins {\n    return Pins.PinsBuilder().apply(builder).flags()\n}\n\nfun Pins(vararg pins: Pin) = Pins {\n    pins.forEach { +it }\n}\n\ndata class Pins(val code: Int = Pin.Unpinned.code) {\n\n    operator fun contains(pin: Pin): Boolean = pin.code and code == pin.code\n\n    operator fun plus(pin: Pin): Pins = Pins(code or pin.code)\n\n    operator fun minus(pin: Pin): Pins = Pins(code xor pin.code)\n\n    companion object {\n        val unpinned = Pins(Pin.Unpinned)\n\n        val pinned = Pins(Pin.Pinned, Pin.Actual)\n    }\n\n    class PinsBuilder(var code: Int = 0) {\n        operator fun Pin.unaryPlus() {\n            this@PinsBuilder.code = code or this@PinsBuilder.code\n        }\n\n        operator fun Pin.unaryMinus() {\n            this@PinsBuilder.code = code or this@PinsBuilder.code\n        }\n\n        fun flags(): Pins = Pins(code)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/model/Source.kt",
    "content": "package tachiyomi.domain.source.model\n\ndata class Source(\n    val id: Long,\n    val lang: String,\n    val name: String,\n    val supportsLatest: Boolean,\n    val isStub: Boolean,\n    val pin: Pins = Pins.unpinned,\n    val isUsedLast: Boolean = false,\n) {\n\n    val visualName: String\n        get() = when {\n            lang.isEmpty() -> name\n            else -> \"$name (${lang.uppercase()})\"\n        }\n\n    val key: () -> String = {\n        when {\n            isUsedLast -> \"$id-lastused\"\n            else -> \"$id\"\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/model/SourceWithCount.kt",
    "content": "package tachiyomi.domain.source.model\n\ndata class SourceWithCount(\n    val source: Source,\n    val count: Long,\n) {\n\n    val id: Long\n        get() = source.id\n\n    val name: String\n        get() = source.name\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/model/StubSource.kt",
    "content": "package tachiyomi.domain.source.model\n\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\n\nclass StubSource(\n    override val id: Long,\n    override val lang: String,\n    override val name: String,\n) : Source {\n\n    private val isInvalid: Boolean = name.isBlank() || lang.isBlank()\n\n    override suspend fun getMangaDetails(manga: SManga): SManga =\n        throw SourceNotInstalledException()\n\n    override suspend fun getChapterList(manga: SManga): List<SChapter> =\n        throw SourceNotInstalledException()\n    override suspend fun getPageList(chapter: SChapter): List<Page> =\n        throw SourceNotInstalledException()\n\n    override fun toString(): String =\n        if (!isInvalid) \"$name (${lang.uppercase()})\" else id.toString()\n\n    companion object {\n        fun from(source: Source): StubSource {\n            return StubSource(id = source.id, lang = source.lang, name = source.name)\n        }\n    }\n}\n\nclass SourceNotInstalledException : Exception()\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/repository/SourceRepository.kt",
    "content": "package tachiyomi.domain.source.repository\n\nimport androidx.paging.PagingSource\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.domain.source.model.Source\nimport tachiyomi.domain.source.model.SourceWithCount\n\ntypealias SourcePagingSource = PagingSource<Long, Manga>\n\ninterface SourceRepository {\n\n    fun getSources(): Flow<List<Source>>\n\n    fun getOnlineSources(): Flow<List<Source>>\n\n    fun getSourcesWithFavoriteCount(): Flow<List<Pair<Source, Long>>>\n\n    fun getSourcesWithNonLibraryManga(): Flow<List<SourceWithCount>>\n\n    fun search(sourceId: Long, query: String, filterList: FilterList): SourcePagingSource\n\n    fun getPopular(sourceId: Long): SourcePagingSource\n\n    fun getLatest(sourceId: Long): SourcePagingSource\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/repository/StubSourceRepository.kt",
    "content": "package tachiyomi.domain.source.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.source.model.StubSource\n\ninterface StubSourceRepository {\n    fun subscribeAll(): Flow<List<StubSource>>\n\n    suspend fun getStubSource(id: Long): StubSource?\n\n    suspend fun upsertStubSource(id: Long, lang: String, name: String)\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/source/service/SourceManager.kt",
    "content": "package tachiyomi.domain.source.service\n\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.online.HttpSource\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.StateFlow\nimport tachiyomi.domain.source.model.StubSource\n\ninterface SourceManager {\n\n    val isInitialized: StateFlow<Boolean>\n\n    val catalogueSources: Flow<List<CatalogueSource>>\n\n    fun get(sourceKey: Long): Source?\n\n    fun getOrStub(sourceKey: Long): Source\n\n    fun getOnlineSources(): List<HttpSource>\n\n    fun getCatalogueSources(): List<CatalogueSource>\n\n    fun getStubSources(): List<StubSource>\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/storage/service/StorageManager.kt",
    "content": "package tachiyomi.domain.storage.service\n\nimport android.content.Context\nimport androidx.core.net.toUri\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport kotlinx.coroutines.CoroutineScope\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.channels.Channel\nimport kotlinx.coroutines.flow.SharingStarted\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport kotlinx.coroutines.flow.receiveAsFlow\nimport kotlinx.coroutines.flow.shareIn\n\nclass StorageManager(\n    private val context: Context,\n    storagePreferences: StoragePreferences,\n) {\n\n    private val scope = CoroutineScope(Dispatchers.IO)\n\n    private var baseDir: UniFile? = getBaseDir(storagePreferences.baseStorageDirectory.get())\n\n    private val _changes: Channel<Unit> = Channel(Channel.UNLIMITED)\n    val changes = _changes.receiveAsFlow()\n        .shareIn(scope, SharingStarted.Lazily, 1)\n\n    init {\n        storagePreferences.baseStorageDirectory.changes()\n            .drop(1)\n            .distinctUntilChanged()\n            .onEach { uri ->\n                baseDir = getBaseDir(uri)\n                baseDir?.let { parent ->\n                    parent.createDirectory(AUTOMATIC_BACKUPS_PATH)\n                    parent.createDirectory(LOCAL_SOURCE_PATH)\n                    parent.createDirectory(DOWNLOADS_PATH).also {\n                        DiskUtil.createNoMediaFile(it, context)\n                    }\n                }\n                _changes.send(Unit)\n            }\n            .launchIn(scope)\n    }\n\n    private fun getBaseDir(uri: String): UniFile? {\n        return UniFile.fromUri(context, uri.toUri())\n            .takeIf { it?.exists() == true }\n    }\n\n    fun getAutomaticBackupsDirectory(): UniFile? {\n        return baseDir?.createDirectory(AUTOMATIC_BACKUPS_PATH)\n    }\n\n    fun getDownloadsDirectory(): UniFile? {\n        return baseDir?.createDirectory(DOWNLOADS_PATH)\n    }\n\n    fun getLocalSourceDirectory(): UniFile? {\n        return baseDir?.createDirectory(LOCAL_SOURCE_PATH)\n    }\n}\n\nprivate const val AUTOMATIC_BACKUPS_PATH = \"autobackup\"\nprivate const val DOWNLOADS_PATH = \"downloads\"\nprivate const val LOCAL_SOURCE_PATH = \"local\"\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/storage/service/StoragePreferences.kt",
    "content": "package tachiyomi.domain.storage.service\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.storage.FolderProvider\n\nclass StoragePreferences(\n    folderProvider: FolderProvider,\n    preferenceStore: PreferenceStore,\n) {\n\n    val baseStorageDirectory: Preference<String> = preferenceStore.getString(\n        Preference.appStateKey(\"storage_dir\"),\n        folderProvider.path(),\n    )\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/track/interactor/DeleteTrack.kt",
    "content": "package tachiyomi.domain.track.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.track.repository.TrackRepository\n\nclass DeleteTrack(\n    private val trackRepository: TrackRepository,\n) {\n\n    suspend fun await(mangaId: Long, trackerId: Long) {\n        try {\n            trackRepository.delete(mangaId, trackerId)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/track/interactor/GetTracks.kt",
    "content": "package tachiyomi.domain.track.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.domain.track.repository.TrackRepository\n\nclass GetTracks(\n    private val trackRepository: TrackRepository,\n) {\n\n    suspend fun awaitOne(id: Long): Track? {\n        return try {\n            trackRepository.getTrackById(id)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            null\n        }\n    }\n\n    suspend fun await(mangaId: Long): List<Track> {\n        return try {\n            trackRepository.getTracksByMangaId(mangaId)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n            emptyList()\n        }\n    }\n\n    fun subscribe(mangaId: Long): Flow<List<Track>> {\n        return trackRepository.getTracksByMangaIdAsFlow(mangaId)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/track/interactor/GetTracksPerManga.kt",
    "content": "package tachiyomi.domain.track.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.map\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.domain.track.repository.TrackRepository\n\nclass GetTracksPerManga(\n    private val trackRepository: TrackRepository,\n) {\n\n    fun subscribe(): Flow<Map<Long, List<Track>>> {\n        return trackRepository.getTracksAsFlow().map { tracks -> tracks.groupBy { it.mangaId } }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/track/interactor/InsertTrack.kt",
    "content": "package tachiyomi.domain.track.interactor\n\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.track.model.Track\nimport tachiyomi.domain.track.repository.TrackRepository\n\nclass InsertTrack(\n    private val trackRepository: TrackRepository,\n) {\n\n    suspend fun await(track: Track) {\n        try {\n            trackRepository.insert(track)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n\n    suspend fun awaitAll(tracks: List<Track>) {\n        try {\n            trackRepository.insertAll(tracks)\n        } catch (e: Exception) {\n            logcat(LogPriority.ERROR, e)\n        }\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/track/model/Track.kt",
    "content": "package tachiyomi.domain.track.model\n\nimport java.io.Serializable\n\ndata class Track(\n    val id: Long,\n    val mangaId: Long,\n    val trackerId: Long,\n    val remoteId: Long,\n    val libraryId: Long?,\n    val title: String,\n    val lastChapterRead: Double,\n    val totalChapters: Long,\n    val status: Long,\n    val score: Double,\n    val remoteUrl: String,\n    val startDate: Long,\n    val finishDate: Long,\n    val private: Boolean,\n) : Serializable\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/track/repository/TrackRepository.kt",
    "content": "package tachiyomi.domain.track.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.track.model.Track\n\ninterface TrackRepository {\n\n    suspend fun getTrackById(id: Long): Track?\n\n    suspend fun getTracksByMangaId(mangaId: Long): List<Track>\n\n    fun getTracksAsFlow(): Flow<List<Track>>\n\n    fun getTracksByMangaIdAsFlow(mangaId: Long): Flow<List<Track>>\n\n    suspend fun delete(mangaId: Long, trackerId: Long)\n\n    suspend fun insert(track: Track)\n\n    suspend fun insertAll(tracks: List<Track>)\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt",
    "content": "package tachiyomi.domain.updates.interactor\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.updates.model.UpdatesWithRelations\nimport tachiyomi.domain.updates.repository.UpdatesRepository\nimport java.time.Instant\n\nclass GetUpdates(\n    private val repository: UpdatesRepository,\n) {\n\n    suspend fun await(read: Boolean, after: Long): List<UpdatesWithRelations> {\n        return repository.awaitWithRead(read, after, limit = 500)\n    }\n\n    fun subscribe(\n        instant: Instant,\n        unread: Boolean?,\n        started: Boolean?,\n        bookmarked: Boolean?,\n        hideExcludedScanlators: Boolean,\n    ): Flow<List<UpdatesWithRelations>> {\n        return repository.subscribeAll(\n            instant.toEpochMilli(),\n            limit = 500,\n            unread = unread,\n            started = started,\n            bookmarked = bookmarked,\n            hideExcludedScanlators = hideExcludedScanlators,\n        )\n    }\n\n    fun subscribe(read: Boolean, after: Long): Flow<List<UpdatesWithRelations>> {\n        return repository.subscribeWithRead(read, after, limit = 500)\n    }\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/updates/model/UpdatesWithRelations.kt",
    "content": "package tachiyomi.domain.updates.model\n\nimport tachiyomi.domain.manga.model.MangaCover\n\ndata class UpdatesWithRelations(\n    val mangaId: Long,\n    val mangaTitle: String,\n    val chapterId: Long,\n    val chapterName: String,\n    val scanlator: String?,\n    val chapterUrl: String,\n    val read: Boolean,\n    val bookmark: Boolean,\n    val lastPageRead: Long,\n    val sourceId: Long,\n    val dateFetch: Long,\n    val coverData: MangaCover,\n)\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/updates/repository/UpdatesRepository.kt",
    "content": "package tachiyomi.domain.updates.repository\n\nimport kotlinx.coroutines.flow.Flow\nimport tachiyomi.domain.updates.model.UpdatesWithRelations\n\ninterface UpdatesRepository {\n\n    suspend fun awaitWithRead(read: Boolean, after: Long, limit: Long): List<UpdatesWithRelations>\n\n    fun subscribeAll(\n        after: Long,\n        limit: Long,\n        unread: Boolean?,\n        started: Boolean?,\n        bookmarked: Boolean?,\n        hideExcludedScanlators: Boolean,\n    ): Flow<List<UpdatesWithRelations>>\n\n    fun subscribeWithRead(read: Boolean, after: Long, limit: Long): Flow<List<UpdatesWithRelations>>\n}\n"
  },
  {
    "path": "domain/src/main/java/tachiyomi/domain/updates/service/UpdatesPreferences.kt",
    "content": "package tachiyomi.domain.updates.service\n\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.preference.getEnum\n\nclass UpdatesPreferences(\n    preferenceStore: PreferenceStore,\n) {\n\n    val filterDownloaded: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_updates_downloaded\",\n        TriState.DISABLED,\n    )\n\n    val filterUnread: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_updates_unread\",\n        TriState.DISABLED,\n    )\n\n    val filterStarted: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_updates_started\",\n        TriState.DISABLED,\n    )\n\n    val filterBookmarked: Preference<TriState> = preferenceStore.getEnum(\n        \"pref_filter_updates_bookmarked\",\n        TriState.DISABLED,\n    )\n\n    val filterExcludedScanlators: Preference<Boolean> = preferenceStore.getBoolean(\n        \"pref_filter_updates_hide_excluded_scanlators\",\n        false,\n    )\n}\n"
  },
  {
    "path": "domain/src/test/java/tachiyomi/domain/chapter/service/ChapterRecognitionTest.kt",
    "content": "package tachiyomi.domain.chapter.service\n\nimport io.kotest.matchers.shouldBe\nimport org.junit.jupiter.api.Test\nimport org.junit.jupiter.api.parallel.Execution\nimport org.junit.jupiter.api.parallel.ExecutionMode\n\n@Execution(ExecutionMode.CONCURRENT)\nclass ChapterRecognitionTest {\n\n    @Test\n    fun `Basic Ch prefix`() {\n        val mangaTitle = \"Mokushiroku Alice\"\n\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch.4: Misrepresentation\", 4.0)\n    }\n\n    @Test\n    fun `Basic Ch prefix with space after period`() {\n        val mangaTitle = \"Mokushiroku Alice\"\n\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol. 1 Ch. 4: Misrepresentation\", 4.0)\n    }\n\n    @Test\n    fun `Basic Ch prefix with decimal`() {\n        val mangaTitle = \"Mokushiroku Alice\"\n\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch.4.1: Misrepresentation\", 4.1)\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch.4.4: Misrepresentation\", 4.4)\n    }\n\n    @Test\n    fun `Basic Ch prefix with alpha postfix`() {\n        val mangaTitle = \"Mokushiroku Alice\"\n\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch.4.a: Misrepresentation\", 4.1)\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch.4.b: Misrepresentation\", 4.2)\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch.4.extra: Misrepresentation\", 4.99)\n    }\n\n    @Test\n    fun `Name containing one number`() {\n        val mangaTitle = \"Bleach\"\n\n        assertChapter(mangaTitle, \"Bleach 567 Down With Snowwhite\", 567.0)\n    }\n\n    @Test\n    fun `Name containing one number and decimal`() {\n        val mangaTitle = \"Bleach\"\n\n        assertChapter(mangaTitle, \"Bleach 567.1 Down With Snowwhite\", 567.1)\n        assertChapter(mangaTitle, \"Bleach 567.4 Down With Snowwhite\", 567.4)\n    }\n\n    @Test\n    fun `Name containing one number and alpha`() {\n        val mangaTitle = \"Bleach\"\n\n        assertChapter(mangaTitle, \"Bleach 567.a Down With Snowwhite\", 567.1)\n        assertChapter(mangaTitle, \"Bleach 567.b Down With Snowwhite\", 567.2)\n        assertChapter(mangaTitle, \"Bleach 567.extra Down With Snowwhite\", 567.99)\n    }\n\n    @Test\n    fun `Chapter containing manga title and number`() {\n        val mangaTitle = \"Solanin\"\n\n        assertChapter(mangaTitle, \"Solanin 028 Vol. 2\", 28.0)\n    }\n\n    @Test\n    fun `Chapter containing manga title and number decimal`() {\n        val mangaTitle = \"Solanin\"\n\n        assertChapter(mangaTitle, \"Solanin 028.1 Vol. 2\", 28.1)\n        assertChapter(mangaTitle, \"Solanin 028.4 Vol. 2\", 28.4)\n    }\n\n    @Test\n    fun `Chapter containing manga title and number alpha`() {\n        val mangaTitle = \"Solanin\"\n\n        assertChapter(mangaTitle, \"Solanin 028.a Vol. 2\", 28.1)\n        assertChapter(mangaTitle, \"Solanin 028.b Vol. 2\", 28.2)\n        assertChapter(mangaTitle, \"Solanin 028.extra Vol. 2\", 28.99)\n    }\n\n    @Test\n    fun `Extreme case`() {\n        val mangaTitle = \"Onepunch-Man\"\n\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 028\", 28.0)\n    }\n\n    @Test\n    fun `Extreme case with decimal`() {\n        val mangaTitle = \"Onepunch-Man\"\n\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 028.1\", 28.1)\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 028.4\", 28.4)\n    }\n\n    @Test\n    fun `Extreme case with alpha`() {\n        val mangaTitle = \"Onepunch-Man\"\n\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 028.a\", 28.1)\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 028.b\", 28.2)\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 028.extra\", 28.99)\n    }\n\n    @Test\n    fun `Chapter containing dot v2`() {\n        val mangaTitle = \"random\"\n\n        assertChapter(mangaTitle, \"Vol.1 Ch.5v.2: Alones\", 5.0)\n    }\n\n    @Test\n    fun `Number in manga title`() {\n        val mangaTitle = \"Ayame 14\"\n\n        assertChapter(mangaTitle, \"Ayame 14 1 - The summer of 14\", 1.0)\n    }\n\n    @Test\n    fun `Space between ch x`() {\n        val mangaTitle = \"Mokushiroku Alice\"\n\n        assertChapter(mangaTitle, \"Mokushiroku Alice Vol.1 Ch. 4: Misrepresentation\", 4.0)\n    }\n\n    @Test\n    fun `Chapter title with ch substring`() {\n        val mangaTitle = \"Ayame 14\"\n\n        assertChapter(mangaTitle, \"Vol.1 Ch.1: March 25 (First Day Cohabiting)\", 1.0)\n    }\n\n    @Test\n    fun `Chapter containing multiple zeros`() {\n        val mangaTitle = \"random\"\n\n        assertChapter(mangaTitle, \"Vol.001 Ch.003: Kaguya Doesn't Know Much\", 3.0)\n    }\n\n    @Test\n    fun `Chapter with version before number`() {\n        val mangaTitle = \"Onepunch-Man\"\n\n        assertChapter(mangaTitle, \"Onepunch-Man Punch Ver002 086 : Creeping Darkness [3]\", 86.0)\n    }\n\n    @Test\n    fun `Version attached to chapter number`() {\n        val mangaTitle = \"Ansatsu Kyoushitsu\"\n\n        assertChapter(mangaTitle, \"Ansatsu Kyoushitsu 011v002: Assembly Time\", 11.0)\n    }\n\n    /**\n     * Case where the chapter title contains the chapter\n     * But wait it's not actual the chapter number.\n     */\n    @Test\n    fun `Number after manga title with chapter in chapter title case`() {\n        val mangaTitle = \"Tokyo ESP\"\n\n        assertChapter(mangaTitle, \"Tokyo ESP 027: Part 002: Chapter 001\", 027.0)\n    }\n\n    /**\n     * Case where the chapter title contains the unwanted tag\n     * But follow by chapter number.\n     */\n    @Test\n    fun `Number after unwanted tag`() {\n        val mangaTitle = \"One-punch Man\"\n\n        assertChapter(mangaTitle, \"Mag Version 195.5\", 195.5)\n    }\n\n    @Test\n    fun `Unparseable chapter`() {\n        val mangaTitle = \"random\"\n\n        assertChapter(mangaTitle, \"Foo\", -1.0)\n    }\n\n    @Test\n    fun `Chapter with time in title`() {\n        val mangaTitle = \"random\"\n\n        assertChapter(mangaTitle, \"Fairy Tail 404: 00:00\", 404.0)\n    }\n\n    @Test\n    fun `Chapter with alpha without dot`() {\n        val mangaTitle = \"random\"\n\n        assertChapter(mangaTitle, \"Asu No Yoichi 19a\", 19.1)\n    }\n\n    @Test\n    fun `Chapter title containing extra and vol`() {\n        val mangaTitle = \"Fairy Tail\"\n\n        assertChapter(mangaTitle, \"Fairy Tail 404.extravol002\", 404.99)\n        assertChapter(mangaTitle, \"Fairy Tail 404 extravol002\", 404.99)\n    }\n\n    @Test\n    fun `Chapter title containing omake (japanese extra) and vol`() {\n        val mangaTitle = \"Fairy Tail\"\n\n        assertChapter(mangaTitle, \"Fairy Tail 404.omakevol002\", 404.98)\n        assertChapter(mangaTitle, \"Fairy Tail 404 omakevol002\", 404.98)\n    }\n\n    @Test\n    fun `Chapter title containing special and vol`() {\n        val mangaTitle = \"Fairy Tail\"\n\n        assertChapter(mangaTitle, \"Fairy Tail 404.specialvol002\", 404.97)\n        assertChapter(mangaTitle, \"Fairy Tail 404 specialvol002\", 404.97)\n    }\n\n    @Test\n    fun `Chapter title containing commas`() {\n        val mangaTitle = \"One Piece\"\n\n        assertChapter(mangaTitle, \"One Piece 300,a\", 300.1)\n        assertChapter(mangaTitle, \"One Piece Ch,123,extra\", 123.99)\n        assertChapter(mangaTitle, \"One Piece the sunny, goes swimming 024,005\", 24.005)\n    }\n\n    @Test\n    fun `Chapter title containing hyphens`() {\n        val mangaTitle = \"Solo Leveling\"\n\n        assertChapter(mangaTitle, \"ch 122-a\", 122.1)\n        assertChapter(mangaTitle, \"Solo Leveling Ch.123-extra\", 123.99)\n        assertChapter(mangaTitle, \"Solo Leveling, 024-005\", 24.005)\n        assertChapter(mangaTitle, \"Ch.191-200 Read Online\", 191.200)\n    }\n\n    @Test\n    fun `Chapters containing season`() {\n        assertChapter(\"D.I.C.E\", \"D.I.C.E[Season 001] Ep. 007\", 7.0)\n    }\n\n    @Test\n    fun `Chapters in format sx - chapter xx`() {\n        assertChapter(\"The Gamer\", \"S3 - Chapter 20\", 20.0)\n    }\n\n    @Test\n    fun `Chapters ending with s`() {\n        assertChapter(\"One Outs\", \"One Outs 001\", 1.0)\n    }\n\n    @Test\n    fun `Chapters containing ordinals`() {\n        val mangaTitle = \"The Sister of the Woods with a Thousand Young\"\n\n        assertChapter(mangaTitle, \"The 1st Night\", 1.0)\n        assertChapter(mangaTitle, \"The 2nd Night\", 2.0)\n        assertChapter(mangaTitle, \"The 3rd Night\", 3.0)\n        assertChapter(mangaTitle, \"The 4th Night\", 4.0)\n    }\n\n    private fun assertChapter(mangaTitle: String, name: String, expected: Double) {\n        ChapterRecognition.parseChapterNumber(mangaTitle, name) shouldBe expected\n    }\n}\n"
  },
  {
    "path": "domain/src/test/java/tachiyomi/domain/chapter/service/MissingChaptersTest.kt",
    "content": "package tachiyomi.domain.chapter.service\n\nimport io.kotest.matchers.shouldBe\nimport org.junit.jupiter.api.Test\nimport org.junit.jupiter.api.parallel.Execution\nimport org.junit.jupiter.api.parallel.ExecutionMode\nimport tachiyomi.domain.chapter.model.Chapter\n\n@Execution(ExecutionMode.CONCURRENT)\nclass MissingChaptersTest {\n\n    @Test\n    fun `missingChaptersCount returns 0 when empty list`() {\n        emptyList<Double>().missingChaptersCount() shouldBe 0\n    }\n\n    @Test\n    fun `missingChaptersCount returns 0 when all unknown chapter numbers`() {\n        listOf(-1.0, -1.0, -1.0).missingChaptersCount() shouldBe 0\n    }\n\n    @Test\n    fun `missingChaptersCount handles repeated base chapter numbers`() {\n        listOf(1.0, 1.0, 1.1, 1.5, 1.6, 1.99).missingChaptersCount() shouldBe 0\n    }\n\n    @Test\n    fun `missingChaptersCount returns number of missing chapters`() {\n        listOf(-1.0, 1.0, 2.0, 2.2, 4.0, 6.0, 10.0, 11.0).missingChaptersCount() shouldBe 5\n    }\n\n    @Test\n    fun `calculateChapterGap returns difference`() {\n        calculateChapterGap(chapter(10.0), chapter(9.0)) shouldBe 0f\n        calculateChapterGap(chapter(10.0), chapter(8.0)) shouldBe 1f\n        calculateChapterGap(chapter(10.0), chapter(8.5)) shouldBe 1f\n        calculateChapterGap(chapter(10.0), chapter(1.1)) shouldBe 8f\n\n        calculateChapterGap(10.0, 9.0) shouldBe 0f\n        calculateChapterGap(10.0, 8.0) shouldBe 1f\n        calculateChapterGap(10.0, 8.5) shouldBe 1f\n        calculateChapterGap(10.0, 1.1) shouldBe 8f\n    }\n\n    @Test\n    fun `calculateChapterGap returns 0 if either are not valid chapter numbers`() {\n        calculateChapterGap(chapter(-1.0), chapter(10.0)) shouldBe 0\n        calculateChapterGap(chapter(99.0), chapter(-1.0)) shouldBe 0\n\n        calculateChapterGap(-1.0, 10.0) shouldBe 0\n        calculateChapterGap(99.0, -1.0) shouldBe 0\n    }\n\n    private fun chapter(number: Double) = Chapter.create().copy(\n        chapterNumber = number,\n    )\n}\n"
  },
  {
    "path": "domain/src/test/java/tachiyomi/domain/library/model/LibraryFlagsTest.kt",
    "content": "package tachiyomi.domain.library.model\n\nimport io.kotest.matchers.shouldBe\nimport io.kotest.matchers.shouldNotBe\nimport org.junit.jupiter.api.Test\nimport org.junit.jupiter.api.parallel.Execution\nimport org.junit.jupiter.api.parallel.ExecutionMode\n\n@Execution(ExecutionMode.CONCURRENT)\nclass LibraryFlagsTest {\n\n    @Test\n    fun `Check the amount of flags`() {\n        LibraryDisplayMode.values.size shouldBe 4\n        LibrarySort.types.size shouldBe 10\n        LibrarySort.directions.size shouldBe 2\n    }\n\n    @Test\n    fun `Test Flag plus operator (LibrarySort)`() {\n        val current = LibrarySort(LibrarySort.Type.LastRead, LibrarySort.Direction.Ascending)\n        val new = LibrarySort(LibrarySort.Type.DateAdded, LibrarySort.Direction.Ascending)\n        val flag = current + new\n\n        flag shouldBe 0b01011100\n    }\n\n    @Test\n    fun `Test Flag plus operator`() {\n        val sort = LibrarySort(LibrarySort.Type.DateAdded, LibrarySort.Direction.Ascending)\n\n        sort.flag shouldBe 0b01011100\n    }\n\n    @Test\n    fun `Test Flag plus operator with old flag as base`() {\n        val currentSort = LibrarySort(\n            LibrarySort.Type.UnreadCount,\n            LibrarySort.Direction.Descending,\n        )\n        currentSort.flag shouldBe 0b00001100\n\n        val sort = LibrarySort(LibrarySort.Type.DateAdded, LibrarySort.Direction.Ascending)\n        val flag = currentSort.flag + sort\n\n        flag shouldBe 0b01011100\n        flag shouldNotBe currentSort.flag\n    }\n\n    @Test\n    fun `Test default flags`() {\n        val sort = LibrarySort.default\n        val flag = sort.type + sort.direction\n\n        flag shouldBe 0b01000000\n    }\n}\n"
  },
  {
    "path": "domain/src/test/java/tachiyomi/domain/manga/interactor/FetchIntervalTest.kt",
    "content": "package tachiyomi.domain.manga.interactor\n\nimport io.kotest.matchers.shouldBe\nimport io.mockk.mockk\nimport org.junit.jupiter.api.Test\nimport org.junit.jupiter.api.parallel.Execution\nimport org.junit.jupiter.api.parallel.ExecutionMode\nimport tachiyomi.domain.chapter.model.Chapter\nimport java.time.ZoneOffset\nimport java.time.ZonedDateTime\nimport kotlin.time.Duration\nimport kotlin.time.Duration.Companion.days\nimport kotlin.time.Duration.Companion.hours\nimport kotlin.time.DurationUnit\nimport kotlin.time.toDuration\nimport kotlin.time.toJavaDuration\n\n@Execution(ExecutionMode.CONCURRENT)\nclass FetchIntervalTest {\n\n    private val testTime = ZonedDateTime.parse(\"2020-01-01T00:00:00Z\")\n    private val testZoneId = ZoneOffset.UTC\n    private var chapter = Chapter.create().copy(\n        dateFetch = testTime.toEpochSecond() * 1000,\n        dateUpload = testTime.toEpochSecond() * 1000,\n    )\n\n    private val fetchInterval = FetchInterval(mockk())\n\n    @Test\n    fun `returns default interval of 7 days when not enough distinct days`() {\n        val chaptersWithUploadDate = (1..50).map {\n            chapterWithTime(chapter, 1.days)\n        }\n        fetchInterval.calculateInterval(chaptersWithUploadDate, testZoneId) shouldBe 7\n\n        val chaptersWithoutUploadDate = chaptersWithUploadDate.map {\n            it.copy(dateUpload = 0L)\n        }\n        fetchInterval.calculateInterval(chaptersWithoutUploadDate, testZoneId) shouldBe 7\n    }\n\n    @Test\n    fun `returns interval based on more recent chapters`() {\n        val oldChapters = (1..5).map {\n            chapterWithTime(chapter, (it * 7).days) // Would have interval of 7 days\n        }\n        val newChapters = (1..10).map {\n            chapterWithTime(chapter, oldChapters.lastUploadDate() + it.days)\n        }\n\n        val chapters = oldChapters + newChapters\n\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 1\n    }\n\n    @Test\n    fun `returns interval based on smaller subset of recent chapters if very few chapters`() {\n        val oldChapters = (1..3).map {\n            chapterWithTime(chapter, (it * 7).days)\n        }\n        // Significant gap between chapters\n        val newChapters = (1..3).map {\n            chapterWithTime(chapter, oldChapters.lastUploadDate() + 365.days + (it * 7).days)\n        }\n\n        val chapters = oldChapters + newChapters\n\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 7\n    }\n\n    @Test\n    fun `returns interval of 7 days when multiple chapters in 1 day`() {\n        val chapters = (1..10).map {\n            chapterWithTime(chapter, 10.hours)\n        }\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 7\n    }\n\n    @Test\n    fun `returns interval of 7 days when multiple chapters in 2 days`() {\n        val chapters = (1..2).map {\n            chapterWithTime(chapter, 1.days)\n        } + (1..5).map {\n            chapterWithTime(chapter, 2.days)\n        }\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 7\n    }\n\n    @Test\n    fun `returns interval of 1 day when chapters are released every 1 day`() {\n        val chapters = (1..20).map {\n            chapterWithTime(chapter, it.days)\n        }\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 1\n    }\n\n    @Test\n    fun `returns interval of 1 day when delta is less than 1 day`() {\n        val chapters = (1..20).map {\n            chapterWithTime(chapter, (15 * it).hours)\n        }\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 1\n    }\n\n    @Test\n    fun `returns interval of 2 days when chapters are released every 2 days`() {\n        val chapters = (1..20).map {\n            chapterWithTime(chapter, (2 * it).days)\n        }\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 2\n    }\n\n    @Test\n    fun `returns interval with floored value when interval is decimal`() {\n        val chaptersWithUploadDate = (1..5).map {\n            chapterWithTime(chapter, (25 * it).hours)\n        }\n        fetchInterval.calculateInterval(chaptersWithUploadDate, testZoneId) shouldBe 1\n\n        val chaptersWithoutUploadDate = chaptersWithUploadDate.map {\n            it.copy(dateUpload = 0L)\n        }\n        fetchInterval.calculateInterval(chaptersWithoutUploadDate, testZoneId) shouldBe 1\n    }\n\n    @Test\n    fun `returns interval of 2 days when chapters are released just below every 2 days`() {\n        val chapters = (1..20).map {\n            chapterWithTime(chapter, (43 * it).hours)\n        }\n        fetchInterval.calculateInterval(chapters, testZoneId) shouldBe 2\n    }\n\n    private fun chapterWithTime(chapter: Chapter, duration: Duration): Chapter {\n        val newTime = testTime.plus(duration.toJavaDuration()).toEpochSecond() * 1000\n        return chapter.copy(dateFetch = newTime, dateUpload = newTime)\n    }\n\n    private fun List<Chapter>.lastUploadDate() =\n        last().dateUpload.toDuration(DurationUnit.MILLISECONDS)\n}\n"
  },
  {
    "path": "domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt",
    "content": "package tachiyomi.domain.release.interactor\n\nimport io.kotest.matchers.shouldBe\nimport io.mockk.coEvery\nimport io.mockk.coVerify\nimport io.mockk.every\nimport io.mockk.mockk\nimport kotlinx.coroutines.test.runTest\nimport org.junit.jupiter.api.BeforeEach\nimport org.junit.jupiter.api.Test\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.PreferenceStore\nimport tachiyomi.domain.release.model.Release\nimport tachiyomi.domain.release.service.ReleaseService\nimport java.time.Instant\n\nclass GetApplicationReleaseTest {\n\n    private lateinit var getApplicationRelease: GetApplicationRelease\n    private lateinit var releaseService: ReleaseService\n    private lateinit var preference: Preference<Long>\n\n    @BeforeEach\n    fun beforeEach() {\n        val preferenceStore = mockk<PreferenceStore>()\n        preference = mockk()\n        every { preferenceStore.getLong(any(), any()) } returns preference\n        releaseService = mockk()\n\n        getApplicationRelease = GetApplicationRelease(releaseService, preferenceStore)\n    }\n\n    @Test\n    fun `When has update but is preview expect new update`() = runTest {\n        every { preference.get() } returns 0\n        every { preference.set(any()) }.answers { }\n\n        val release = Release(\n            \"r2000\",\n            \"info\",\n            \"http://example.com/release_link\",\n            \"http://example.com/release_link.apk\",\n        )\n\n        coEvery { releaseService.latest(any()) } returns release\n\n        val result = getApplicationRelease.await(\n            GetApplicationRelease.Arguments(\n                isFoss = false,\n                isPreview = true,\n                commitCount = 1000,\n                versionName = \"\",\n                repository = \"test\",\n            ),\n        )\n\n        (result as GetApplicationRelease.Result.NewUpdate).release shouldBe GetApplicationRelease.Result.NewUpdate(\n            release,\n        ).release\n    }\n\n    @Test\n    fun `When has update expect new update`() = runTest {\n        every { preference.get() } returns 0\n        every { preference.set(any()) }.answers { }\n\n        val release = Release(\n            \"v2.0.0\",\n            \"info\",\n            \"http://example.com/release_link\",\n            \"http://example.com/release_link.apk\",\n        )\n\n        coEvery { releaseService.latest(any()) } returns release\n\n        val result = getApplicationRelease.await(\n            GetApplicationRelease.Arguments(\n                isFoss = false,\n                isPreview = false,\n                commitCount = 0,\n                versionName = \"v1.0.0\",\n                repository = \"test\",\n            ),\n        )\n\n        (result as GetApplicationRelease.Result.NewUpdate).release shouldBe GetApplicationRelease.Result.NewUpdate(\n            release,\n        ).release\n    }\n\n    @Test\n    fun `When has no update expect no new update`() = runTest {\n        every { preference.get() } returns 0\n        every { preference.set(any()) }.answers { }\n\n        val release = Release(\n            \"v1.0.0\",\n            \"info\",\n            \"http://example.com/release_link\",\n            \"http://example.com/release_link.apk\",\n        )\n\n        coEvery { releaseService.latest(any()) } returns release\n\n        val result = getApplicationRelease.await(\n            GetApplicationRelease.Arguments(\n                isFoss = false,\n                isPreview = false,\n                commitCount = 0,\n                versionName = \"v2.0.0\",\n                repository = \"test\",\n            ),\n        )\n\n        result shouldBe GetApplicationRelease.Result.NoNewUpdate\n    }\n\n    @Test\n    fun `When now is before three days expect no new update`() = runTest {\n        every { preference.get() } returns Instant.now().toEpochMilli()\n        every { preference.set(any()) }.answers { }\n\n        val release = Release(\n            \"v1.0.0\",\n            \"info\",\n            \"http://example.com/release_link\",\n            \"http://example.com/release_link.apk\",\n        )\n\n        coEvery { releaseService.latest(any()) } returns release\n\n        val result = getApplicationRelease.await(\n            GetApplicationRelease.Arguments(\n                isFoss = false,\n                isPreview = false,\n                commitCount = 0,\n                versionName = \"v2.0.0\",\n                repository = \"test\",\n            ),\n        )\n\n        coVerify(exactly = 0) { releaseService.latest(any()) }\n        result shouldBe GetApplicationRelease.Result.NoNewUpdate\n    }\n}\n"
  },
  {
    "path": "gradle/androidx.versions.toml",
    "content": "[versions]\nagp_version = \"8.13.2\"\nlifecycle_version = \"2.10.0\"\npaging_version = \"3.4.2\"\ninterpolator_version = \"1.0.0\"\nsqlite = \"2.6.2\"\n\n[libraries]\ngradle = { module = \"com.android.tools.build:gradle\", version.ref = \"agp_version\" }\n\nannotation = \"androidx.annotation:annotation:1.9.1\"\nappcompat = \"androidx.appcompat:appcompat:1.7.1\"\nbiometricktx = \"androidx.biometric:biometric-ktx:1.2.0-alpha05\"\nconstraintlayout = \"androidx.constraintlayout:constraintlayout:2.2.1\"\ncorektx = \"androidx.core:core-ktx:1.18.0\"\nsplashscreen = \"androidx.core:core-splashscreen:1.2.0\"\nrecyclerview = \"androidx.recyclerview:recyclerview:1.4.0\"\nviewpager = \"androidx.viewpager:viewpager:1.1.0\"\nprofileinstaller = \"androidx.profileinstaller:profileinstaller:1.4.1\"\n\nlifecycle-common = { module = \"androidx.lifecycle:lifecycle-common\", version.ref = \"lifecycle_version\" }\nlifecycle-process = { module = \"androidx.lifecycle:lifecycle-process\", version.ref = \"lifecycle_version\" }\nlifecycle-runtimektx = { module = \"androidx.lifecycle:lifecycle-runtime-ktx\", version.ref = \"lifecycle_version\" }\n\nworkmanager = \"androidx.work:work-runtime:2.11.1\"\n\npaging-runtime = { module = \"androidx.paging:paging-runtime\", version.ref = \"paging_version\" }\npaging-compose = { module = \"androidx.paging:paging-compose\", version.ref = \"paging_version\" }\n\ninterpolator = { group = \"androidx.interpolator\", name = \"interpolator\", version.ref = \"interpolator_version\" }\n\nbenchmark-macro = \"androidx.benchmark:benchmark-macro-junit4:1.4.1\"\ntest-ext = \"androidx.test.ext:junit-ktx:1.3.0\"\ntest-espresso-core = \"androidx.test.espresso:espresso-core:3.7.0\"\ntest-uiautomator = \"androidx.test.uiautomator:uiautomator:2.3.0\"\n\nsqlite-bundled = { module = \"androidx.sqlite:sqlite-bundled\", version.ref = \"sqlite\" }\n\n[bundles]\nlifecycle = [\"lifecycle-common\", \"lifecycle-process\", \"lifecycle-runtimektx\"]\n"
  },
  {
    "path": "gradle/compose.versions.toml",
    "content": "[versions]\ncompose-bom = \"2026.03.00\"\n\n[libraries]\nactivity = \"androidx.activity:activity-compose:1.13.0\"\nbom = { group = \"androidx.compose\", name = \"compose-bom\", version.ref = \"compose-bom\" }\nfoundation = { module = \"androidx.compose.foundation:foundation\" }\nanimation = { module = \"androidx.compose.animation:animation\" }\nanimation-graphics = { module = \"androidx.compose.animation:animation-graphics\" }\nruntime = { module = \"androidx.compose.runtime:runtime\" }\nruntime-annotation = { module = \"androidx.compose.runtime:runtime-annotation\" }\nui-tooling = { module = \"androidx.compose.ui:ui-tooling\" }\nui-tooling-preview = { module = \"androidx.compose.ui:ui-tooling-preview\" }\nui-util = { module = \"androidx.compose.ui:ui-util\" }\n\nmaterial3-core = { module = \"androidx.compose.material3:material3\" }\nmaterial-icons = { module = \"androidx.compose.material:material-icons-extended\" }\n\nglance = \"androidx.glance:glance-appwidget:1.1.1\"\n"
  },
  {
    "path": "gradle/kotlinx.versions.toml",
    "content": "[versions]\nkotlin_version = \"2.3.20\"\nserialization_version = \"1.10.0\"\nxml_serialization_version = \"0.91.3\"\n\n[libraries]\nreflect = { module = \"org.jetbrains.kotlin:kotlin-reflect\", version.ref = \"kotlin_version\" }\ngradle = { module = \"org.jetbrains.kotlin:kotlin-gradle-plugin\", version.ref = \"kotlin_version\" }\ncompose-compiler-gradle = { module = \"org.jetbrains.kotlin:compose-compiler-gradle-plugin\", version.ref = \"kotlin_version\" }\n\nimmutables = { module = \"org.jetbrains.kotlinx:kotlinx-collections-immutable\", version = \"0.4.0\" }\n\ncoroutines-bom = { module = \"org.jetbrains.kotlinx:kotlinx-coroutines-bom\", version = \"1.10.2\" }\ncoroutines-core = { module = \"org.jetbrains.kotlinx:kotlinx-coroutines-core\" }\ncoroutines-android = { module = \"org.jetbrains.kotlinx:kotlinx-coroutines-android\" }\ncoroutines-guava = { module = \"org.jetbrains.kotlinx:kotlinx-coroutines-guava\" }\ncoroutines-test = { module = \"org.jetbrains.kotlinx:kotlinx-coroutines-test\" }\n\nserialization-json = { module = \"org.jetbrains.kotlinx:kotlinx-serialization-json\", version.ref = \"serialization_version\" }\nserialization-json-okio = { module = \"org.jetbrains.kotlinx:kotlinx-serialization-json-okio\", version.ref = \"serialization_version\" }\nserialization-protobuf = { module = \"org.jetbrains.kotlinx:kotlinx-serialization-protobuf\", version.ref = \"serialization_version\" }\n\nserialization-xml-core = { module = \"io.github.pdvrieze.xmlutil:core-android\", version.ref = \"xml_serialization_version\" }\nserialization-xml = { module = \"io.github.pdvrieze.xmlutil:serialization\", version.ref = \"xml_serialization_version\" }\n\n[bundles]\ncoroutines = [\"coroutines-core\", \"coroutines-android\", \"coroutines-guava\"]\nserialization = [\"serialization-json\", \"serialization-json-okio\", \"serialization-protobuf\", \"serialization-xml-core\", \"serialization-xml\"]\n\n[plugins]\nandroid = { id = \"org.jetbrains.kotlin.android\", version.ref = \"kotlin_version\" }\ncompose-compiler = { id = \"org.jetbrains.kotlin.plugin.compose\", version.ref = \"kotlin_version\" }\nserialization = { id = \"org.jetbrains.kotlin.plugin.serialization\", version.ref = \"kotlin_version\" }\n"
  },
  {
    "path": "gradle/libs.versions.toml",
    "content": "[versions]\naboutlib_version = \"13.2.1\"\nleakcanary = \"2.14\"\nmoko = \"0.26.1\"\nokhttp_version = \"5.3.2\"\nshizuku_version = \"13.1.5\"\nsqldelight = \"2.3.2\"\nvoyager = \"1.1.0-beta03\"\nspotless = \"8.4.0\"\nktlint-core = \"1.8.0\"\nfirebase-bom = \"34.11.0\"\nmarkdown = \"0.39.2\"\njunit = \"6.0.3\"\nmaterialKolor = \"5.0.0-alpha07\"\n\n[libraries]\ndesugar = \"com.android.tools:desugar_jdk_libs:2.1.5\"\nandroid-shortcut-gradle = \"com.github.zellius:android-shortcut-gradle-plugin:0.1.2\"\n\nrxjava = \"io.reactivex:rxjava:1.3.8\"\n\nokhttp-core = { module = \"com.squareup.okhttp3:okhttp\", version.ref = \"okhttp_version\" }\nokhttp-logging = { module = \"com.squareup.okhttp3:logging-interceptor\", version.ref = \"okhttp_version\" }\nokhttp-brotli = { module = \"com.squareup.okhttp3:okhttp-brotli\", version.ref = \"okhttp_version\" }\nokhttp-dnsoverhttps = { module = \"com.squareup.okhttp3:okhttp-dnsoverhttps\", version.ref = \"okhttp_version\" }\nokio = \"com.squareup.okio:okio:3.17.0\"\n\nconscrypt-android = \"org.conscrypt:conscrypt-android:2.5.3\"\n\nquickjs-android = { group = \"com.github.zhanghai.quickjs-java\", name = \"quickjs-android\", version = \"547f5b1597\" }\n\njsoup = \"org.jsoup:jsoup:1.22.1\"\n\ndisklrucache = \"com.jakewharton:disklrucache:2.0.2\"\nunifile = \"com.github.tachiyomiorg:unifile:e0def6b3dc\"\nlibarchive = \"me.zhanghai.android.libarchive:library:1.1.6\"\n\npreferencektx = \"androidx.preference:preference-ktx:1.2.1\"\n\ninjekt = \"com.github.mihonapp:injekt:91edab2317\"\n\ncoil-bom = { module = \"io.coil-kt.coil3:coil-bom\", version = \"3.4.0\" }\ncoil-core = { module = \"io.coil-kt.coil3:coil\" }\ncoil-gif = { module = \"io.coil-kt.coil3:coil-gif\" }\ncoil-compose = { module = \"io.coil-kt.coil3:coil-compose\" }\ncoil-network-okhttp = { module = \"io.coil-kt.coil3:coil-network-okhttp\" }\n\nsubsamplingscaleimageview = \"com.github.tachiyomiorg:subsampling-scale-image-view:66e0db195d\"\nimage-decoder = \"com.github.tachiyomiorg:image-decoder:41c059e540\"\n\nnatural-comparator = \"com.github.gpanther:java-nat-sort:natural-comparator-1.1\"\n\nricheditor-compose = \"com.mohamedrejeb.richeditor:richeditor-compose:1.0.0-rc13\"\n\nmaterial = \"com.google.android.material:material:1.12.0\"\nflexible-adapter-core = \"com.github.arkon.FlexibleAdapter:flexible-adapter:c8013533\"\nphotoview = \"com.github.chrisbanes:PhotoView:2.3.0\"\ndirectionalviewpager = \"com.github.tachiyomiorg:DirectionalViewPager:1.0.0\"\ncompose-materialmotion = \"io.github.fornewid:material-motion-compose-core:2.0.1\"\ncompose-webview = \"io.github.kevinnzou:compose-webview:0.33.6\"\ncompose-grid = \"io.woong.compose.grid:grid:1.2.2\"\nreorderable = { module = \"sh.calvin.reorderable:reorderable\", version = \"3.0.0\" }\n\nswipe = \"me.saket.swipe:swipe:1.3.0\"\n\nmoko-core = { module = \"dev.icerock.moko:resources\", version.ref = \"moko\" }\n\nlogcat = \"com.squareup.logcat:logcat:0.4\"\n\nfirebase-bom = { module = \"com.google.firebase:firebase-bom\", version.ref = \"firebase-bom\" }\nfirebase-analytics = { module = \"com.google.firebase:firebase-analytics\" }\nfirebase-crashlytics = { module = \"com.google.firebase:firebase-crashlytics\" }\n\naboutLibraries-compose = { module = \"com.mikepenz:aboutlibraries-compose-m3\", version.ref = \"aboutlib_version\" }\n\nshizuku-api = { module = \"dev.rikka.shizuku:api\", version.ref = \"shizuku_version\" }\nshizuku-provider = { module = \"dev.rikka.shizuku:provider\", version.ref = \"shizuku_version\" }\n\nleakcanary-android = { module = \"com.squareup.leakcanary:leakcanary-android\", version.ref = \"leakcanary\" }\nleakcanary-plumber = { module = \"com.squareup.leakcanary:plumber-android\", version.ref = \"leakcanary\" }\n\nsqldelight-androidx-driver = { module = \"com.eygraber:sqldelight-androidx-driver\", version = \"0.0.17\" }\nsqldelight-coroutines = { module = \"app.cash.sqldelight:coroutines-extensions-jvm\", version.ref = \"sqldelight\" }\nsqldelight-android-paging = { module = \"app.cash.sqldelight:androidx-paging3-extensions\", version.ref = \"sqldelight\" }\nsqldelight-dialects-sql = { module = \"app.cash.sqldelight:sqlite-3-38-dialect\", version.ref = \"sqldelight\" }\n\njunit-jupiter = { module = \"org.junit.jupiter:junit-jupiter\", version.ref = \"junit\" }\njunit-platform-launcher = { module = \"org.junit.platform:junit-platform-launcher\" }\nkotest-assertions = \"io.kotest:kotest-assertions-core:6.1.7\"\nmockk = \"io.mockk:mockk:1.14.9\"\n\nvoyager-navigator = { module = \"cafe.adriel.voyager:voyager-navigator\", version.ref = \"voyager\" }\nvoyager-screenmodel = { module = \"cafe.adriel.voyager:voyager-screenmodel\", version.ref = \"voyager\" }\nvoyager-tab-navigator = { module = \"cafe.adriel.voyager:voyager-tab-navigator\", version.ref = \"voyager\" }\nvoyager-transitions = { module = \"cafe.adriel.voyager:voyager-transitions\", version.ref = \"voyager\" }\n\nspotless-gradle = { group = \"com.diffplug.spotless\", name = \"spotless-plugin-gradle\", version.ref = \"spotless\" }\nktlint-core = { module = \"com.pinterest.ktlint:ktlint-cli\", version.ref = \"ktlint-core\" }\n\nmarkdown-core = { module = \"com.mikepenz:multiplatform-markdown-renderer\", version.ref = \"markdown\" }\nmarkdown-coil = { module = \"com.mikepenz:multiplatform-markdown-renderer-coil3\", version.ref = \"markdown\" }\n\nstringSimilarity = { module = \"com.aallam.similarity:string-similarity-kotlin\", version = \"0.1.0\" }\n\nmaterialKolor = { module = \"com.materialkolor:material-kolor\", version.ref = \"materialKolor\" }\n\n[plugins]\ngoogle-services = { id = \"com.google.gms.google-services\", version = \"4.4.4\" }\naboutLibraries = { id = \"com.mikepenz.aboutlibraries.plugin.android\", version.ref = \"aboutlib_version\" }\nsqldelight = { id = \"app.cash.sqldelight\", version.ref = \"sqldelight\" }\nmoko = { id = \"dev.icerock.mobile.multiplatform-resources\", version.ref = \"moko\" }\nfirebase-crashlytics = { id = \"com.google.firebase.crashlytics\", version = \"3.0.6\" }\n\n[bundles]\nokhttp = [\"okhttp-core\", \"okhttp-logging\", \"okhttp-brotli\", \"okhttp-dnsoverhttps\"]\njs-engine = [\"quickjs-android\"]\ncoil = [\"coil-core\", \"coil-gif\", \"coil-compose\", \"coil-network-okhttp\"]\nshizuku = [\"shizuku-api\", \"shizuku-provider\"]\nsqldelight = [\"sqldelight-androidx-driver\", \"sqldelight-coroutines\", \"sqldelight-android-paging\"]\nvoyager = [\"voyager-navigator\", \"voyager-screenmodel\", \"voyager-tab-navigator\", \"voyager-transitions\"]\ntest = [\"junit-jupiter\", \"kotest-assertions\", \"mockk\"]\nmarkdown = [\"markdown-core\", \"markdown-coil\"]\n"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "content": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-8.14.4-bin.zip\nnetworkTimeout=10000\nvalidateDistributionUrl=true\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\n"
  },
  {
    "path": "gradle.properties",
    "content": "android.nonTransitiveRClass=false\nandroid.useAndroidX=true\n\nkotlin.code.style=official\nkotlin.mpp.androidSourceSetLayoutVersion=2\n\norg.gradle.caching=true\norg.gradle.configureondemand=true\norg.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8\norg.gradle.parallel=true\n"
  },
  {
    "path": "gradlew",
    "content": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      https://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n# SPDX-License-Identifier: Apache-2.0\n#\n\n##############################################################################\n#\n#   Gradle start up script for POSIX generated by Gradle.\n#\n#   Important for running:\n#\n#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is\n#       noncompliant, but you have some other compliant shell such as ksh or\n#       bash, then to run this script, type that shell name before the whole\n#       command line, like:\n#\n#           ksh Gradle\n#\n#       Busybox and similar reduced shells will NOT work, because this script\n#       requires all of these POSIX shell features:\n#         * functions;\n#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,\n#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;\n#         * compound commands having a testable exit status, especially «case»;\n#         * various built-in commands including «command», «set», and «ulimit».\n#\n#   Important for patching:\n#\n#   (2) This script targets any POSIX shell, so it avoids extensions provided\n#       by Bash, Ksh, etc; in particular arrays are avoided.\n#\n#       The \"traditional\" practice of packing multiple parameters into a\n#       space-separated string is a well documented source of bugs and security\n#       problems, so this is (mostly) avoided, by progressively accumulating\n#       options in \"$@\", and eventually passing that to Java.\n#\n#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,\n#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;\n#       see the in-line comments for details.\n#\n#       There are tweaks for specific operating systems such as AIX, CygWin,\n#       Darwin, MinGW, and NonStop.\n#\n#   (3) This script is generated from the Groovy template\n#       https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt\n#       within the Gradle project.\n#\n#       You can find Gradle at https://github.com/gradle/gradle/.\n#\n##############################################################################\n\n# Attempt to set APP_HOME\n\n# Resolve links: $0 may be a link\napp_path=$0\n\n# Need this for daisy-chained symlinks.\nwhile\n    APP_HOME=${app_path%\"${app_path##*/}\"}  # leaves a trailing /; empty if no leading path\n    [ -h \"$app_path\" ]\ndo\n    ls=$( ls -ld \"$app_path\" )\n    link=${ls#*' -> '}\n    case $link in             #(\n      /*)   app_path=$link ;; #(\n      *)    app_path=$APP_HOME$link ;;\n    esac\ndone\n\n# This is normally unused\n# shellcheck disable=SC2034\nAPP_BASE_NAME=${0##*/}\n# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)\nAPP_HOME=$( cd -P \"${APP_HOME:-./}\" > /dev/null && printf '%s\\n' \"$PWD\" ) || exit\n\n# Use the maximum available, or set MAX_FD != -1 to use that value.\nMAX_FD=maximum\n\nwarn () {\n    echo \"$*\"\n} >&2\n\ndie () {\n    echo\n    echo \"$*\"\n    echo\n    exit 1\n} >&2\n\n# OS specific support (must be 'true' or 'false').\ncygwin=false\nmsys=false\ndarwin=false\nnonstop=false\ncase \"$( uname )\" in                #(\n  CYGWIN* )         cygwin=true  ;; #(\n  Darwin* )         darwin=true  ;; #(\n  MSYS* | MINGW* )  msys=true    ;; #(\n  NONSTOP* )        nonstop=true ;;\nesac\n\nCLASSPATH=\"\\\\\\\"\\\\\\\"\"\n\n\n# Determine the Java command to use to start the JVM.\nif [ -n \"$JAVA_HOME\" ] ; then\n    if [ -x \"$JAVA_HOME/jre/sh/java\" ] ; then\n        # IBM's JDK on AIX uses strange locations for the executables\n        JAVACMD=$JAVA_HOME/jre/sh/java\n    else\n        JAVACMD=$JAVA_HOME/bin/java\n    fi\n    if [ ! -x \"$JAVACMD\" ] ; then\n        die \"ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nelse\n    JAVACMD=java\n    if ! command -v java >/dev/null 2>&1\n    then\n        die \"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nfi\n\n# Increase the maximum file descriptors if we can.\nif ! \"$cygwin\" && ! \"$darwin\" && ! \"$nonstop\" ; then\n    case $MAX_FD in #(\n      max*)\n        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.\n        # shellcheck disable=SC2039,SC3045\n        MAX_FD=$( ulimit -H -n ) ||\n            warn \"Could not query maximum file descriptor limit\"\n    esac\n    case $MAX_FD in  #(\n      '' | soft) :;; #(\n      *)\n        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.\n        # shellcheck disable=SC2039,SC3045\n        ulimit -n \"$MAX_FD\" ||\n            warn \"Could not set maximum file descriptor limit to $MAX_FD\"\n    esac\nfi\n\n# Collect all arguments for the java command, stacking in reverse order:\n#   * args from the command line\n#   * the main class name\n#   * -classpath\n#   * -D...appname settings\n#   * --module-path (only if needed)\n#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.\n\n# For Cygwin or MSYS, switch paths to Windows format before running java\nif \"$cygwin\" || \"$msys\" ; then\n    APP_HOME=$( cygpath --path --mixed \"$APP_HOME\" )\n    CLASSPATH=$( cygpath --path --mixed \"$CLASSPATH\" )\n\n    JAVACMD=$( cygpath --unix \"$JAVACMD\" )\n\n    # Now convert the arguments - kludge to limit ourselves to /bin/sh\n    for arg do\n        if\n            case $arg in                                #(\n              -*)   false ;;                            # don't mess with options #(\n              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath\n                    [ -e \"$t\" ] ;;                      #(\n              *)    false ;;\n            esac\n        then\n            arg=$( cygpath --path --ignore --mixed \"$arg\" )\n        fi\n        # Roll the args list around exactly as many times as the number of\n        # args, so each arg winds up back in the position where it started, but\n        # possibly modified.\n        #\n        # NB: a `for` loop captures its iteration list before it begins, so\n        # changing the positional parameters here affects neither the number of\n        # iterations, nor the values presented in `arg`.\n        shift                   # remove old arg\n        set -- \"$@\" \"$arg\"      # push replacement arg\n    done\nfi\n\n\n# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nDEFAULT_JVM_OPTS='\"-Xmx64m\" \"-Xms64m\"'\n\n# Collect all arguments for the java command:\n#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,\n#     and any embedded shellness will be escaped.\n#   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be\n#     treated as '${Hostname}' itself on the command line.\n\nset -- \\\n        \"-Dorg.gradle.appname=$APP_BASE_NAME\" \\\n        -classpath \"$CLASSPATH\" \\\n        -jar \"$APP_HOME/gradle/wrapper/gradle-wrapper.jar\" \\\n        \"$@\"\n\n# Stop when \"xargs\" is not available.\nif ! command -v xargs >/dev/null 2>&1\nthen\n    die \"xargs is not available\"\nfi\n\n# Use \"xargs\" to parse quoted args.\n#\n# With -n1 it outputs one arg per line, with the quotes and backslashes removed.\n#\n# In Bash we could simply go:\n#\n#   readarray ARGS < <( xargs -n1 <<<\"$var\" ) &&\n#   set -- \"${ARGS[@]}\" \"$@\"\n#\n# but POSIX shell has neither arrays nor command substitution, so instead we\n# post-process each arg (as a line of input to sed) to backslash-escape any\n# character that might be a shell metacharacter, then use eval to reverse\n# that process (while maintaining the separation between arguments), and wrap\n# the whole thing up as a single \"set\" statement.\n#\n# This will of course break if any of these variables contains a newline or\n# an unmatched quote.\n#\n\neval \"set -- $(\n        printf '%s\\n' \"$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS\" |\n        xargs -n1 |\n        sed ' s~[^-[:alnum:]+,./:=@_]~\\\\&~g; ' |\n        tr '\\n' ' '\n    )\" '\"$@\"'\n\nexec \"$JAVACMD\" \"$@\"\n"
  },
  {
    "path": "gradlew.bat",
    "content": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \"License\");\n@rem you may not use this file except in compliance with the License.\n@rem You may obtain a copy of the License at\n@rem\n@rem      https://www.apache.org/licenses/LICENSE-2.0\n@rem\n@rem Unless required by applicable law or agreed to in writing, software\n@rem distributed under the License is distributed on an \"AS IS\" BASIS,\n@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n@rem See the License for the specific language governing permissions and\n@rem limitations under the License.\n@rem\n@rem SPDX-License-Identifier: Apache-2.0\n@rem\n\n@if \"%DEBUG%\"==\"\" @echo off\n@rem ##########################################################################\n@rem\n@rem  Gradle startup script for Windows\n@rem\n@rem ##########################################################################\n\n@rem Set local scope for the variables with windows NT shell\nif \"%OS%\"==\"Windows_NT\" setlocal\n\nset DIRNAME=%~dp0\nif \"%DIRNAME%\"==\"\" set DIRNAME=.\n@rem This is normally unused\nset APP_BASE_NAME=%~n0\nset APP_HOME=%DIRNAME%\n\n@rem Resolve any \".\" and \"..\" in APP_HOME to make it shorter.\nfor %%i in (\"%APP_HOME%\") do set APP_HOME=%%~fi\n\n@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nset DEFAULT_JVM_OPTS=\"-Xmx64m\" \"-Xms64m\"\n\n@rem Find java.exe\nif defined JAVA_HOME goto findJavaFromJavaHome\n\nset JAVA_EXE=java.exe\n%JAVA_EXE% -version >NUL 2>&1\nif %ERRORLEVEL% equ 0 goto execute\n\necho. 1>&2\necho ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2\necho. 1>&2\necho Please set the JAVA_HOME variable in your environment to match the 1>&2\necho location of your Java installation. 1>&2\n\ngoto fail\n\n:findJavaFromJavaHome\nset JAVA_HOME=%JAVA_HOME:\"=%\nset JAVA_EXE=%JAVA_HOME%/bin/java.exe\n\nif exist \"%JAVA_EXE%\" goto execute\n\necho. 1>&2\necho ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2\necho. 1>&2\necho Please set the JAVA_HOME variable in your environment to match the 1>&2\necho location of your Java installation. 1>&2\n\ngoto fail\n\n:execute\n@rem Setup the command line\n\nset CLASSPATH=\n\n\n@rem Execute Gradle\n\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% \"-Dorg.gradle.appname=%APP_BASE_NAME%\" -classpath \"%CLASSPATH%\" -jar \"%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\" %*\n\n:end\n@rem End local scope for the variables with windows NT shell\nif %ERRORLEVEL% equ 0 goto mainEnd\n\n:fail\nrem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\nrem the _cmd.exe /c_ return code!\nset EXIT_CODE=%ERRORLEVEL%\nif %EXIT_CODE% equ 0 set EXIT_CODE=1\nif not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\nexit /b %EXIT_CODE%\n\n:mainEnd\nif \"%OS%\"==\"Windows_NT\" endlocal\n\n:omega\n"
  },
  {
    "path": "i18n/README.md",
    "content": "# i18n\n\nThis module houses the string resources and translations.\n\nOriginal English strings are managed in `src/commonMain/moko-resources/base/`. Translations are done externally via Weblate. See [our website](https://mihon.app/docs/contribute#translation) for more details. "
  },
  {
    "path": "i18n/build.gradle.kts",
    "content": "import mihon.buildlogic.generatedBuildDir\nimport mihon.buildlogic.tasks.getLocalesConfigTask\nimport org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi\n\nplugins {\n    id(\"mihon.library\")\n    kotlin(\"multiplatform\")\n    alias(libs.plugins.moko)\n}\n\nkotlin {\n    androidTarget()\n\n    applyDefaultHierarchyTemplate()\n\n    sourceSets {\n        commonMain {\n            dependencies {\n                api(libs.moko.core)\n            }\n        }\n    }\n\n    @OptIn(ExperimentalKotlinGradlePluginApi::class)\n    compilerOptions {\n        freeCompilerArgs.add(\"-Xexpect-actual-classes\")\n    }\n}\n\nval generatedAndroidResourceDir = generatedBuildDir.resolve(\"android/res\")\n\nandroid {\n    namespace = \"tachiyomi.i18n\"\n\n    sourceSets {\n        val main by getting\n        main.res.srcDirs(\n            \"src/commonMain/resources\",\n            generatedAndroidResourceDir,\n        )\n    }\n\n    lint {\n        disable.addAll(listOf(\"MissingTranslation\", \"ExtraTranslation\"))\n    }\n}\n\nmultiplatformResources {\n    resourcesPackage.set(\"tachiyomi.i18n\")\n}\n\ntasks {\n    val localesConfigTask = project.getLocalesConfigTask(generatedAndroidResourceDir)\n    preBuild {\n        dependsOn(localesConfigTask)\n    }\n}\n"
  },
  {
    "path": "i18n/src/androidMain/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/am/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d ምድብ</item>\n        <item quantity=\"other\">%d ምድቦች</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">ከ %1$s ደቂቃ በኋላ</item>\n        <item quantity=\"other\">ከ %1$s ደቂቃዎች በኋላ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">ከ %2$s ስህተት ጋር በ %1$s ውስጥ ተከናውኗል</item>\n        <item quantity=\"other\">ከ %2$s ስህተት ጋር በ %1$s ውስጥ ተከናውኗል</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/am/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"obsolete_extension_message\">ይህ ቅጥያ ከእንግዲህ አይገኝም።</string>\n    <string name=\"untrusted_extension_message\">ይህ ቅጥያ ባልታመነ የእውቅና ማረጋገጫ ተፈርሟል እና አልነቃም።\n\\n\n\\nተንኮል አዘል ቅጥያ በታቺሚሚ ውስጥ የተከማቸውን ማንኛውንም የመግቢያ ማስረጃዎችን በማንበብ ወይም የዘፈቀደ ኮድን ሊፈጽም ይችላል ፡፡\n\\n\n\\nበዚህ የምስክር ወረቀት በመተማመን እነዚህን አደጋዎች ይቀበላሉ ፡፡</string>\n    <string name=\"untrusted_extension\">የማይታመን ቅጥያ</string>\n    <string name=\"ext_uninstall\">ማራገፍ</string>\n    <string name=\"ext_untrusted\">የማይታመን</string>\n    <string name=\"ext_trust\">አደራ</string>\n    <string name=\"ext_installed\">ተጭኗል</string>\n    <string name=\"ext_installing\">በመጫን ላይ</string>\n    <string name=\"ext_downloading\">በማውረድ ላይ</string>\n    <string name=\"ext_pending\">በመጠባበቅ ላይ</string>\n    <string name=\"ext_install\">ጫን</string>\n    <string name=\"ext_obsolete\">ጊዜ ያለፈበት</string>\n    <string name=\"ext_update\">አዘምን</string>\n    <string name=\"ext_updates_pending\">ዝመናዎች በመጠባበቅ ላይ ናቸው</string>\n    <string name=\"all\">ሁሉም</string>\n    <string name=\"default_category_summary\">ሁል ጊዜም ይጠይቁ</string>\n    <string name=\"default_category\">ነባሪ ምድብ</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">ቤተ-መጽሐፍትን ሲያዘምኑ አዲስ ሽፋን እና ዝርዝሮችን ይፈልጉ</string>\n    <string name=\"pref_library_update_refresh_metadata\">ዲበ ውሂብን በራስ-ሰር አድስ</string>\n    <string name=\"pref_update_only_non_completed\">ቀጣይ ማንጋን ብቻ ያዘምኑ</string>\n    <string name=\"charging\">ኃይል በመሙላት ላይ</string>\n    <string name=\"pref_library_update_restriction\">የቤተ-መጽሐፍት ዝመና ገደቦች</string>\n    <string name=\"update_weekly\">ሳምንታዊ</string>\n    <string name=\"update_48hour\">በየ 2 ቀኑ</string>\n    <string name=\"update_24hour\">በየቀኑ</string>\n    <string name=\"update_12hour\">በየ 12 ሰዓቱ</string>\n    <string name=\"update_6hour\">በየ 6 ሰዓቱ</string>\n    <string name=\"update_never\">መመሪያ</string>\n    <string name=\"pref_library_update_interval\">የቤተ-መጽሐፍት ማዘመኛ ድግግሞሽ</string>\n    <string name=\"pref_category_library_update\">ዝመናዎች</string>\n    <string name=\"landscape\">የመሬት ገጽታ</string>\n    <string name=\"portrait\">የቁም ስዕል</string>\n    <string name=\"pref_library_columns\">ዕቃዎች በአንድ ረድፍ</string>\n    <string name=\"pref_category_display\">ማሳያ</string>\n    <string name=\"parental_controls_info\">ይህ በይፋዊ ወይም በስህተት የተጠቆሙ ሊሆኑ የሚችሉ ቅጥያዎች በመተግበሪያው ውስጥ 18+ ይዘትን እንዳያሳዩ አያግደውም ፡፡</string>\n    <string name=\"hide_notification_content\">የማሳወቂያ ይዘትን ደብቅ</string>\n    <string name=\"secure_screen_summary\">መተግበሪያዎችን ሲቀይሩ የመተግበሪያ ይዘቶችን ደብቅ እና ቅጽበታዊ ገጽ እይታዎችን ያግዳል</string>\n    <string name=\"secure_screen\">ደህንነቱ የተጠበቀ ማያ ገጽ</string>\n    <string name=\"lock_never\">በጭራሽ</string>\n    <string name=\"lock_always\">ሁል ጊዜ</string>\n    <string name=\"lock_when_idle\">ስራ ሲፈታ ቆልፍ</string>\n    <string name=\"lock_with_biometrics\">በባዮሜትሪክስ ቆልፍ</string>\n    <string name=\"pref_category_security\">ደህንነት</string>\n    <string name=\"pref_manage_notifications\">ማሳወቂያዎችን ያቀናብሩ</string>\n    <string name=\"pref_date_format\">የቀን ቅርጸት</string>\n    <string name=\"theme_dark\">በርቷል</string>\n    <string name=\"theme_light\">ጠፍቷል</string>\n    <string name=\"theme_system\">ስርዓት ይከተሉ</string>\n    <string name=\"pref_category_theme\">ገጽታ</string>\n    <string name=\"pref_category_about\">ስለ</string>\n    <string name=\"pref_category_advanced\">የላቀ</string>\n    <string name=\"pref_category_tracking\">መከታተል</string>\n    <string name=\"pref_category_downloads\">ውርዶች</string>\n    <string name=\"pref_category_reader\">አንባቢ</string>\n    <string name=\"pref_category_library\">ቤተ መጻሕፍት</string>\n    <string name=\"pref_category_general\">ጄኔራል</string>\n    <string name=\"app_not_available\">መተግበሪያ አይገኝም</string>\n    <string name=\"loading\">በመጫን ላይ…</string>\n    <string name=\"action_webview_refresh\">አድስ</string>\n    <string name=\"action_webview_forward\">ወደፊት</string>\n    <string name=\"action_webview_back\">ተመለስ</string>\n    <string name=\"action_restore\">እነበረበት መልስ</string>\n    <string name=\"action_open_log\">መዝገብ ይክፈቱ</string>\n    <string name=\"action_undo\">ቀልብስ</string>\n    <string name=\"action_reset\">ዳግም አስጀምር</string>\n    <string name=\"action_save\">አስቀምጥ</string>\n    <string name=\"action_share\">ሼር</string>\n    <string name=\"action_install\">ጫን</string>\n    <string name=\"action_move_to_bottom\">ወደ ታች ውሰድ</string>\n    <string name=\"action_move_to_top\">ወደ ላይ ውሰድ</string>\n    <string name=\"action_oldest\">በጣም ጥንታዊ</string>\n    <string name=\"action_newest\">በጣም አዲስ</string>\n    <string name=\"action_sort\">ደርድር</string>\n    <string name=\"action_cancel_all\">ሁሉንም ሰርዝ</string>\n    <string name=\"action_cancel\">ሰርዝ</string>\n    <string name=\"action_unpin\">ይንቀሉ</string>\n    <string name=\"action_pin\">ሚስማር</string>\n    <string name=\"action_disable\">አሰናክል</string>\n    <string name=\"action_display_show_tabs\">የምድብ ትሮችን አሳይ</string>\n    <string name=\"action_display_download_badge\">ባጆችን ያውርዱ</string>\n    <string name=\"action_display_comfortable_grid\">ምቹ ፍርግርግ</string>\n    <string name=\"action_display_list\">ዝርዝር</string>\n    <string name=\"action_display_grid\">የታመቀ ፍርግርግ</string>\n    <string name=\"action_display\">ማሳያ</string>\n    <string name=\"action_display_mode\">የማሳያ ሁነታ</string>\n    <string name=\"action_migrate\">ፍልሰት</string>\n    <string name=\"action_open_in_web_view\">በድር እይታ ውስጥ ክፈት</string>\n    <string name=\"action_open_in_browser\">በአሳሽ ውስጥ ክፈት</string>\n    <string name=\"action_resume\">የራስ መግለጫ</string>\n    <string name=\"action_start\">ይጀምሩ</string>\n    <string name=\"action_remove\">አስወግድ</string>\n    <string name=\"action_retry\">እንደገና ሞክር</string>\n    <string name=\"action_next_chapter\">ቀጣይ ምዕራፍ</string>\n    <string name=\"action_previous_chapter\">ቀዳሚ ምዕራፍ</string>\n    <string name=\"action_pause\">ለአፍታ አቁም</string>\n    <string name=\"action_view_chapters\">ምዕራፎችን ይመልከቱ</string>\n    <string name=\"action_edit_cover\">ሽፋን አርትዕ</string>\n    <string name=\"action_move_category\">ምድቦችን ያዘጋጁ</string>\n    <string name=\"action_rename_category\">ምድብ እንደገና ይሰይሙ</string>\n    <string name=\"action_edit_categories\">ምድቦችን ያርትዑ</string>\n    <string name=\"action_add_category\">ምድብ አክል</string>\n    <string name=\"action_add\">አክል</string>\n    <string name=\"action_edit\">አርትዕ</string>\n    <string name=\"action_disable_all\">ሁሉንም ያሰናክሉ</string>\n    <string name=\"action_enable_all\">ሁሉንም አንቃ</string>\n    <string name=\"action_update_library\">ቤተ-መጽሐፍት ያዘምኑ</string>\n    <string name=\"action_delete\">ደምስስ</string>\n    <string name=\"action_remove_bookmark\">የደንበኝነት ምዝገባ ምልክት ያድርጉበት</string>\n    <string name=\"action_bookmark\">ዕልባት</string>\n    <string name=\"action_download\">አውርድ</string>\n    <string name=\"action_mark_previous_as_read\">የቀደመውን እንደተነበበ ምልክት ያድርጉበት</string>\n    <string name=\"action_mark_as_unread\">እንዳልተነበበ ምልክት ያድርጉ</string>\n    <string name=\"action_mark_as_read\">እንደተነበበ ምልክት ያድርጉ</string>\n    <string name=\"action_select_inverse\">ተገላቢጦሽ ምረጥ</string>\n    <string name=\"action_select_all\">ሁሉንም ምረጥ</string>\n    <string name=\"action_global_search\">ዓለም አቀፍ ፍለጋ</string>\n    <string name=\"action_search_settings\">የፍለጋ ቅንብሮች</string>\n    <string name=\"action_search\">ፈልግ</string>\n    <string name=\"action_sort_date_added\">ቀን ታክሏል</string>\n    <string name=\"action_sort_latest_chapter\">የቅርብ ጊዜ ምዕራፍ</string>\n    <string name=\"action_sort_last_read\">ለመጨረሻ ጊዜ የተነበበው</string>\n    <string name=\"action_sort_total\">ጠቅላላ ምዕራፎች</string>\n    <string name=\"action_filter_empty\">ማጣሪያውን ያስወግዱ</string>\n    <string name=\"action_filter_unread\">ያልተነበበ</string>\n    <string name=\"action_filter_bookmarked\">ዕልባት ተደርጓል</string>\n    <string name=\"action_filter\">ማጣሪያ</string>\n    <string name=\"action_menu\">ምናሌ</string>\n    <string name=\"action_settings\">ማስተካከያዎች</string>\n    <string name=\"label_extensions\">ኢክስቴንሽኖች</string>\n    <string name=\"history\">ታሪክ</string>\n    <string name=\"track\">መከታተል</string>\n    <string name=\"chapters\">ምዕራፎች</string>\n    <string name=\"manga\">ማንጋ</string>\n    <string name=\"categories\">ምድቦች</string>\n    <string name=\"information_empty_category\">ምንም ምድቦች የሉዎትም። ቤተ-መጽሐፍትዎን ለማደራጀት አንድ ለመፍጠር የመደመር አዝራሩን መታ ያድርጉ።</string>\n    <string name=\"information_empty_library\">ቤተ-መጽሐፍትዎ ባዶ ነው ተከታታዮችን ከአሰሳ ወደ ቤተ-መጽሐፍትዎ ያክሉ።</string>\n    <string name=\"information_no_recent_manga\">በቅርቡ የተነበበ ነገር የለም</string>\n    <string name=\"information_no_recent\">የቅርብ ጊዜ ዝመናዎች የሉም</string>\n    <string name=\"information_no_downloads\">ምንም የሚወርድ የለም</string>\n    <string name=\"label_help\">እገዛ</string>\n    <string name=\"label_extension_info\">የኤክስቴንሽን መረጃ</string>\n    <string name=\"label_migration\">ፍልሰት</string>\n    <string name=\"label_backup\">ምትኬ</string>\n    <string name=\"label_sources\">ምንጮች</string>\n    <string name=\"label_recent_manga\">ታሪክ</string>\n    <string name=\"label_recent_updates\">ዝመናዎች</string>\n    <string name=\"label_library\">ቤተ መጻሕፍት</string>\n    <string name=\"label_download_queue\">የሚወርድ ወረፋ</string>\n    <string name=\"label_settings\">ማስተካከያዎች</string>\n    <string name=\"label_more\">ተጨማሪ</string>\n    <string name=\"name\">ስም</string>\n    <string name=\"pref_remove_bookmarked_chapters\">ዕልባት የተደረገባቸውን ምዕራፎች ሰርዝ</string>\n    <string name=\"pref_remove_after_read\">ካነበብኩ በኋላ</string>\n    <string name=\"pref_remove_after_marked_as_read\">በእጅ እንደተነበበ ምልክት ከተደረገ በኋላ</string>\n    <string name=\"pref_category_delete_chapters\">ምዕራፎችን ሰርዝ</string>\n    <string name=\"pref_webtoon_side_padding\">የጎን ሽፋን</string>\n    <string name=\"pref_category_reading\">ንባብ</string>\n    <string name=\"pref_category_reading_mode\">የንባብ ሁነታ</string>\n    <string name=\"pref_always_show_chapter_transition\">ሁልጊዜ የምዕራፍ ሽግግርን ያሳዩ</string>\n    <string name=\"rotation_force_landscape\">የመሬት ገጽታን ያስገድዱ</string>\n    <string name=\"rotation_force_portrait\">የግዳጅ ምስል</string>\n    <string name=\"rotation_free\">ፍርይ</string>\n    <string name=\"pref_rotation_type\">ማሽከርከር</string>\n    <string name=\"double_tap_anim_speed_fast\">በፍጥነት</string>\n    <string name=\"double_tap_anim_speed_normal\">መደበኛ</string>\n    <string name=\"double_tap_anim_speed_0\">ምንም እነማ የለም</string>\n    <string name=\"zoom_start_center\">ማዕከል</string>\n    <string name=\"zoom_start_right\">ቀኝ</string>\n    <string name=\"zoom_start_left\">ግራ</string>\n    <string name=\"zoom_start_automatic\">ራስ-ሰር</string>\n    <string name=\"pref_zoom_start\">የመነሻ አቀማመጥን ያጉሉ</string>\n    <string name=\"scale_type_smart_fit\">ብልጥ ብቃት</string>\n    <string name=\"scale_type_original_size\">የመጀመሪያ መጠን</string>\n    <string name=\"scale_type_fit_height\">የአካል ብቃት ቁመት</string>\n    <string name=\"scale_type_fit_width\">የአካል ብቃት ስፋት</string>\n    <string name=\"scale_type_stretch\">ዘርጋ</string>\n    <string name=\"scale_type_fit_screen\">የአካል ብቃት ማያ ገጽ</string>\n    <string name=\"pref_image_scale_type\">ልኬት ዓይነት</string>\n    <string name=\"pager_viewer\">ተለጠፈ</string>\n    <string name=\"vertical_plus_viewer\">ቀጣይነት ያለው አቀባዊ</string>\n    <string name=\"webtoon_viewer\">ዌብቱን</string>\n    <string name=\"vertical_viewer\">አቀባዊ</string>\n    <string name=\"right_to_left_viewer\">ከቀኝ ወደ ግራ</string>\n    <string name=\"left_to_right_viewer\">ከግራ ወደ ቀኝ</string>\n    <string name=\"pref_viewer_type\">ነባሪ የንባብ ሁነታ</string>\n    <string name=\"black_background\">ጥቁር</string>\n    <string name=\"gray_background\">ግራጫ</string>\n    <string name=\"white_background\">ነጭ</string>\n    <string name=\"pref_reader_theme\">የጀርባ ቀለም</string>\n    <string name=\"pref_read_with_long_tap\">ረጅም መታ መገናኛ</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">የድምጽ ቁልፎችን ገልብጥ</string>\n    <string name=\"pref_read_with_volume_keys\">የድምፅ ቁልፎች</string>\n    <string name=\"pref_reader_navigation\">አሰሳ</string>\n    <string name=\"pref_skip_filtered_chapters\">የተጣራ ምዕራፎችን ይዝለሉ</string>\n    <string name=\"pref_skip_read_chapters\">የተነበቡ ምልክት የተደረገባቸውን ምዕራፎች ይዝለሉ</string>\n    <string name=\"pref_keep_screen_on\">ማያ ገጹን ያብሩ</string>\n    <string name=\"filter_mode_darken\">ማቃጠል / ጨለማ</string>\n    <string name=\"filter_mode_lighten\">ዶጅ / መብረቅ</string>\n    <string name=\"filter_mode_screen\">ማያ ገጽ</string>\n    <string name=\"filter_mode_multiply\">ተባዙ</string>\n    <string name=\"filter_mode_overlay\">ተደራቢ</string>\n    <string name=\"pref_color_filter_mode\">የቀለም ማጣሪያ ድብልቅ ሁነታ</string>\n    <string name=\"pref_custom_color_filter\">ብጁ ቀለም ማጣሪያ</string>\n    <string name=\"pref_custom_brightness\">ብጁ ብሩህነት</string>\n    <string name=\"pref_crop_borders\">የሰብል ድንበሮች</string>\n    <string name=\"pref_show_reading_mode_summary\">አንባቢ ሲከፈት የአሁኑን ሁነታ በአጭሩ ያሳዩ</string>\n    <string name=\"pref_show_reading_mode\">የንባብ ሁነታን አሳይ</string>\n    <string name=\"pref_show_page_number\">የገጽ ቁጥርን አሳይ</string>\n    <string name=\"pref_double_tap_anim_speed\">ሁለቴ መታ የአኒሜሽን ፍጥነት</string>\n    <string name=\"pref_page_transitions\">የገጽ ሽግግሮች</string>\n    <string name=\"pref_cutout_short\">በመቁረጥ አካባቢ ውስጥ ይዘትን አሳይ</string>\n    <string name=\"pref_fullscreen\">ሙሉ ማያ</string>\n    <string name=\"ext_nsfw_warning\">18+ ይዘትን ይያዝ</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"action_sort_alpha\">በፊደል ደርድር</string>\n    <string name=\"information_webview_required\">ለታቺዮሚ የድር እይታ ያስፈልጋል</string>\n    <string name=\"information_cloudflare_bypass_failure\">ክላዉድ ፍሌር ን ማለፍ አልተሳካም</string>\n    <string name=\"download_notifier_no_network\">ምንም የአውታረ መረብ ግንኙነት አይገኝም</string>\n    <string name=\"tapping_inverted_both\">ሁለቱም</string>\n    <string name=\"tapping_inverted_vertical\">አቀባዊ</string>\n    <string name=\"tapping_inverted_horizontal\">አግድም</string>\n    <string name=\"tapping_inverted_none\">የለም</string>\n    <string name=\"pref_read_with_tapping_inverted\">ተገልብጦ መታ ማድረግ</string>\n    <string name=\"channel_ext_updates\">የቅጥያ ዝመናዎች</string>\n    <string name=\"channel_new_chapters\">የምዕራፍ ዝመናዎች</string>\n    <string name=\"channel_errors\">ስህተቶች</string>\n    <string name=\"channel_complete\">ተጠናቀቀ</string>\n    <string name=\"channel_progress\">እድገት</string>\n    <string name=\"channel_common\">የተለመደ</string>\n    <string name=\"download_notifier_download_paused\">ማውረድ ለአፍታ ቆሟል</string>\n    <string name=\"color_filter_r_value\">ቀ</string>\n    <string name=\"color_filter_b_value\">ቢ</string>\n    <string name=\"color_filter_g_value\">ኣ</string>\n    <string name=\"invalid_backup_file\">ልክ ያልሆነ የመጠባበቂያ ፋይል</string>\n    <string name=\"backup_created\">ምትኬ ተፈጥሯል</string>\n    <string name=\"pref_backup_interval\">የመጠባበቂያ ድግግሞሽ</string>\n    <string name=\"pref_restore_backup_summ\">ቤተ-መጽሐፍት ከመጠባበቂያ ፋይል ይመልሱ</string>\n    <string name=\"pref_restore_backup\">ምትኬ ወደነበረበት</string>\n    <string name=\"pref_create_backup_summ\">የአሁኑን ቤተ-መጽሐፍት ወደነበረበት ለመመለስ ሊያገለግል ይችላል</string>\n    <string name=\"pref_create_backup\">ምትኬን ይፍጠሩ</string>\n    <string name=\"tracking_info\">በክትትል አገልግሎቶች ውስጥ የምዕራፍ እድገትን ለማዘመን የአንድ-መንገድ ማመሳሰል። ከመከታተያ አዝራራቸው የግለሰቦችን የማንጋ ግቤቶች መከታተልን ያዘጋጁ።</string>\n    <string name=\"services\">አገልግሎቶች</string>\n    <string name=\"pref_auto_update_manga_sync\">ካነበቡ በኋላ የምዕራፍ እድገትን ያዘምኑ</string>\n    <string name=\"pref_download_new\">አዳዲስ ምዕራፎችን ያውርዱ</string>\n    <string name=\"fifth_to_last\">አምስተኛው እስከ መጨረሻው ምዕራፍ</string>\n    <string name=\"fourth_to_last\">ከአራተኛ እስከ መጨረሻው ምዕራፍ</string>\n    <string name=\"third_to_last\">ሦስተኛው እስከ መጨረሻው ምዕራፍ</string>\n    <string name=\"second_to_last\">ሁለተኛ እስከ መጨረሻው ምዕራፍ</string>\n    <string name=\"last_read_chapter\">ለመጨረሻ ጊዜ የተነበበው ምዕራፍ</string>\n    <string name=\"disabled\">ተሰናክሏል</string>\n    <string name=\"download_notifier_text_only_wifi\">ምንም የ ዋይ-ፋይ ግንኙነት የለም</string>\n    <string name=\"download_notifier_unknown_error\">ባልተጠበቀ ስህተት ምክንያት ምዕራፍ ማውረድ አልተቻለም</string>\n    <string name=\"download_notifier_title_error\">ስህተት</string>\n    <string name=\"download_notifier_downloader_title\">አውራጅ</string>\n    <string name=\"chapter_settings_updated\">ነባሪ የምዕራፍ ቅንጅቶች ተዘምነዋል</string>\n    <string name=\"information_webview_outdated\">ለተሻለ ተኳኋኝነት እባክዎ የድር እይታን መተግበሪያውን ያዘምኑ</string>\n    <string name=\"pref_clear_cookies\">ኩኪዎችን ያጽዱ</string>\n    <string name=\"label_network\">አውታረ መረብ</string>\n    <string name=\"restoring_backup_canceled\">ተሰርዟል ወደነበረበት መመለስ</string>\n    <string name=\"restoring_backup_error\">ምትኬን ወደነበረበት መመለስ አልተሳካም</string>\n    <string name=\"restoring_backup\">ምትኬን ወደነበረበት መመለስ</string>\n    <string name=\"restore_in_progress\">እነበረበት መልስ ቀድሞውኑ በሂደት ላይ ነው</string>\n    <string name=\"creating_backup_error\">ምትኬ አልተሳካም</string>\n    <string name=\"creating_backup\">ምትኬን መፍጠር</string>\n    <string name=\"backup_choice\">ምትኬ ለማስቀመጥ ምን ይፈልጋሉ?</string>\n    <string name=\"backup_in_progress\">ምትኬ ቀድሞውኑ በሂደት ላይ ነው</string>\n    <string name=\"restore_duration\">%1$02d ደቂቃ ፣ %2$02d ሰከንድ</string>\n    <string name=\"restore_completed\">እነበረበት መልስ ተጠናቅቋል</string>\n    <string name=\"backup_restore_missing_trackers\">መከታተያዎች አልገቡም:</string>\n    <string name=\"backup_restore_missing_sources\">የጠፋ ምንጮች:</string>\n    <string name=\"invalid_backup_file_missing_manga\">ምትኬ ማንኛውንም ማንጋ አልያዘም ፡፡</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ar/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"zero\">لايوجد تحديث للإضافة</item>\n        <item quantity=\"one\">يتوفر تحديث لإضافة</item>\n        <item quantity=\"two\">يتوفر تحديث لإضافتان</item>\n        <item quantity=\"few\">يتوفر تحديث %d إضافات</item>\n        <item quantity=\"many\">يتوفر تحديث %d إضافات</item>\n        <item quantity=\"other\">يتوفر تحديث %d إضافات</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"zero\">الفصول %1$s</item>\n        <item quantity=\"one\">الفصول %1$s وفصل آخر</item>\n        <item quantity=\"two\">الفصول %1$s و%2$d فصول أخرى</item>\n        <item quantity=\"few\">الفصول %1$s و%2$d فصول أخرى</item>\n        <item quantity=\"many\">الفصول %1$s و%2$d فصول أخرى</item>\n        <item quantity=\"other\">الفصول %1$s و%2$d فصول أخرى</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"zero\">لا توجد فصول جديدة</item>\n        <item quantity=\"one\">فصل جديد</item>\n        <item quantity=\"two\">فصلان جديدان</item>\n        <item quantity=\"few\">%1$d فصول جديدة</item>\n        <item quantity=\"many\">%1$d فصول جديدة</item>\n        <item quantity=\"other\">%1$d فصول جديدة</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"zero\">لا شيء</item>\n        <item quantity=\"one\">إدخال واحد</item>\n        <item quantity=\"two\">إدخالين</item>\n        <item quantity=\"few\">ادخالات %d ل</item>\n        <item quantity=\"many\">ادخالات %d ل</item>\n        <item quantity=\"other\">ادخالات %d ل</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"zero\">%1$s عنصر متبقي</item>\n        <item quantity=\"one\">عنصر واحد متبقي</item>\n        <item quantity=\"two\">عنصران متبقيان</item>\n        <item quantity=\"few\">%1$s عناصر متبقية</item>\n        <item quantity=\"many\">%1$s عناصر متبقية</item>\n        <item quantity=\"other\">%1$s عناصر متبقية</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"zero\">بعد أقل من دقيقة</item>\n        <item quantity=\"one\">بعد دقيقة</item>\n        <item quantity=\"two\">بعد دقيقتين</item>\n        <item quantity=\"few\">بعد %1$s دقائق</item>\n        <item quantity=\"many\">بعد %1$s دقائق</item>\n        <item quantity=\"other\">بعد %1$s دقائق</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"zero\">لا يوجد فئات</item>\n        <item quantity=\"one\">فئة</item>\n        <item quantity=\"two\">فئتان</item>\n        <item quantity=\"few\">%d فئات</item>\n        <item quantity=\"many\">%d فئات</item>\n        <item quantity=\"other\">%d فئات</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"zero\">تمَّ في %1$s وبدون أخطاء</item>\n        <item quantity=\"one\">تمَّ في %1$s وفيه خطأ</item>\n        <item quantity=\"two\">تمَّ في %1$s وفيه خطآن</item>\n        <item quantity=\"few\">تمَّ في %1$s وفيه %2$s أخطاء</item>\n        <item quantity=\"many\">تمَّ في %1$s وفيه %2$s خطأً</item>\n        <item quantity=\"other\">تمَّ في %1$s وفيه %2$s خطأ</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"zero\">لا متتبّع</item>\n        <item quantity=\"one\">متتبّع واحد</item>\n        <item quantity=\"two\">متتبعان</item>\n        <item quantity=\"few\">بضعة متتبّعين (%d)</item>\n        <item quantity=\"many\">عدّة متتبّعين (%d)</item>\n        <item quantity=\"other\">%d متتبّعاً</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"zero\">لا فصول</item>\n        <item quantity=\"one\">فصل واحد</item>\n        <item quantity=\"two\">فصلين</item>\n        <item quantity=\"few\">%1$s فصول</item>\n        <item quantity=\"many\">%1$s فصول</item>\n        <item quantity=\"other\">%1$s فصول</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"zero\">لا يُتخطَّى أيُّ فصل</item>\n        <item quantity=\"one\">يُتخطَّى فصل، وذلك إما لأن المصدر مفقود أو لأنه مصفًّى</item>\n        <item quantity=\"two\">يُتخطَّى فصلان، وذلك إما لأن المصدر مفقود أو لأنهما مصفَّان</item>\n        <item quantity=\"few\">تُتخطَّى %d فصول، وذلك إما لأن المصدر مفقود أو لأنهم مصفَّون</item>\n        <item quantity=\"many\">يُتخطَّى %d فصلًا، وذلك إما لأن المصدر مفقود أو لأنهم مصفَّون</item>\n        <item quantity=\"other\">يُتخطَّى %d فصل، وذلك إما لأن المصدر مفقود أو لأنهم مصفَّون</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"zero\">الأمس</item>\n        <item quantity=\"one\">منذ يوم</item>\n        <item quantity=\"two\">منذ يومين</item>\n        <item quantity=\"few\">منذ %1$d أيام</item>\n        <item quantity=\"many\">منذ %1$d أيام</item>\n        <item quantity=\"other\">منذ %1$d أيام</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"zero\">لا يوجد فصل تالٍ لم يُقرأ</item>\n        <item quantity=\"one\">الفصل غير المقروء التالي</item>\n        <item quantity=\"two\">الفصلان غير المقروءين التاليان</item>\n        <item quantity=\"few\">%d فصول تالية لم تُقرأ</item>\n        <item quantity=\"many\">%d فصلًا تاليًا لم يُقرؤوا</item>\n        <item quantity=\"other\">%d فصل تالٍ لم يُقرؤوا</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"zero\">لا فصل تالي</item>\n        <item quantity=\"one\">الفصل التالي</item>\n        <item quantity=\"two\">%d فصول تالية</item>\n        <item quantity=\"few\">%d فصول تالية</item>\n        <item quantity=\"many\">%d فصل تالي</item>\n        <item quantity=\"other\">%d فصل تالي</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"zero\">لا يوجد أيُّ فصل مفقود</item>\n        <item quantity=\"one\">فصل واحد مفقود</item>\n        <item quantity=\"two\">فصلان مفقودان</item>\n        <item quantity=\"few\">%1$s فصول مفقودة</item>\n        <item quantity=\"many\">%1$s فصلًا مفقودًا</item>\n        <item quantity=\"other\">%1$s فصل مفقود</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"zero\">لا يوم</item>\n        <item quantity=\"one\">يوم واحد</item>\n        <item quantity=\"two\">يومان</item>\n        <item quantity=\"few\">%d أيام</item>\n        <item quantity=\"many\">%d يومًا</item>\n        <item quantity=\"other\">%d يوم</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"zero\">لا مستودعات</item>\n        <item quantity=\"one\">مستودع</item>\n        <item quantity=\"two\">مستودعان</item>\n        <item quantity=\"few\">%d مستودعات</item>\n        <item quantity=\"many\">%d مستودعات</item>\n        <item quantity=\"other\">%d مستودعات</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"zero\">%1$s صفحات</item>\n        <item quantity=\"one\">صفحة</item>\n        <item quantity=\"two\">صفحتان</item>\n        <item quantity=\"few\">%1$s صفحات</item>\n        <item quantity=\"many\">%1$s صفحات</item>\n        <item quantity=\"other\">%1$s صفحات</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"zero\">اليوم</item>\n        <item quantity=\"one\">غداً</item>\n        <item quantity=\"two\">بعد غد</item>\n        <item quantity=\"few\">بعد %1$d أيام</item>\n        <item quantity=\"many\">بعد %1$d أيام</item>\n        <item quantity=\"other\">بعد %1$d أيام</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"zero\">نقل %1$d مدخل؟</item>\n        <item quantity=\"one\">نقل مدخل؟</item>\n        <item quantity=\"two\">نقل مدخلان؟</item>\n        <item quantity=\"few\">نقل %1$d مداخل؟</item>\n        <item quantity=\"many\">نقل %1$d مدخل؟</item>\n        <item quantity=\"other\">نقل %1$d مدخل؟</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"zero\">نسخ %1$d مدخل؟</item>\n        <item quantity=\"one\">نسخ مدخل؟</item>\n        <item quantity=\"two\">نسخ مدخلان؟</item>\n        <item quantity=\"few\">نسخ %1$d مداخل؟</item>\n        <item quantity=\"many\">نسخ %1$d مدخل؟</item>\n        <item quantity=\"other\">نسخ %1$d مدخل؟</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"zero\">لا مدخل ثم تجاوزه</item>\n        <item quantity=\"one\">مدخل ثم تجاوزه</item>\n        <item quantity=\"two\">مدخلان ثم تجاوزه</item>\n        <item quantity=\"few\">%1$d مدخل ثم تجاوزه</item>\n        <item quantity=\"many\">%1$d مدخل ثم تجاوزه</item>\n        <item quantity=\"other\">%1$d مدخل ثم تجاوزه</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ar/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">الاسم</string>\n    <string name=\"categories\">الفئات</string>\n    <string name=\"manga\">إدخالات المكتبة</string>\n    <string name=\"chapters\">فصول</string>\n    <string name=\"track\">تعقب</string>\n    <string name=\"history\">تاريخ</string>\n    <string name=\"label_settings\">اﻹعدادات</string>\n    <string name=\"label_download_queue\">قائمة التنزيلات</string>\n    <string name=\"label_library\">المكتبة</string>\n    <string name=\"label_recent_manga\">السجل</string>\n    <string name=\"label_recent_updates\">التحديثات</string>\n    <string name=\"label_backup\">النسخ الاحتياطي والاستعادة</string>\n    <string name=\"action_settings\">اﻹعدادات</string>\n    <string name=\"action_filter\">الترتيب حسب</string>\n    <string name=\"action_filter_bookmarked\">المحفوظة</string>\n    <string name=\"action_filter_unread\">غير مقروءة</string>\n    <string name=\"action_filter_empty\">إزالة الترتيب</string>\n    <string name=\"action_sort_alpha\">أبجديًا</string>\n    <string name=\"action_sort_total\">عدد الفصول</string>\n    <string name=\"action_sort_last_read\">آخر ما قرأت</string>\n    <string name=\"action_search\">بحث</string>\n    <string name=\"action_select_all\">تحديد الكل</string>\n    <string name=\"action_mark_as_read\">تحديد كمقروء</string>\n    <string name=\"action_mark_as_unread\">تحديد كغير مقروء</string>\n    <string name=\"action_mark_previous_as_read\">تحديد السابق كمقروء</string>\n    <string name=\"action_download\">تنزيل</string>\n    <string name=\"action_bookmark\">احفظ الفصل كإشارة مرجعية</string>\n    <string name=\"action_remove_bookmark\">إزالة الإشارة المرجعية</string>\n    <string name=\"action_delete\">حذف</string>\n    <string name=\"action_update_library\">تحديث المكتبة</string>\n    <string name=\"action_edit\">تعديل</string>\n    <string name=\"action_add\">أضف</string>\n    <string name=\"action_add_category\">إضافة فئة</string>\n    <string name=\"action_edit_categories\">تعديل الفئات</string>\n    <string name=\"action_rename_category\">إعادة تسمية الفئة</string>\n    <string name=\"action_move_category\">حدد الفئات</string>\n    <string name=\"action_edit_cover\">تعديل صورة الغلاف</string>\n    <string name=\"action_pause\">إيقاف موقت</string>\n    <string name=\"action_previous_chapter\">الفصل السابق</string>\n    <string name=\"action_next_chapter\">الفصل التالي</string>\n    <string name=\"action_retry\">إعادة المحاولة</string>\n    <string name=\"action_remove\">إزالة</string>\n    <string name=\"action_resume\">استئناف</string>\n    <string name=\"action_open_in_browser\">فتح فى المتصفح</string>\n    <string name=\"action_display_mode\">وضع العرض</string>\n    <string name=\"action_display\">العرض</string>\n    <string name=\"action_display_grid\">شبكة مدمجة</string>\n    <string name=\"action_display_list\">قائمة</string>\n    <string name=\"action_cancel\">إلغاء</string>\n    <string name=\"action_sort\">فرز</string>\n    <string name=\"action_install\">تثبيت</string>\n    <string name=\"action_share\">مشاركة</string>\n    <string name=\"action_save\">حفظ</string>\n    <string name=\"action_reset\">إعادة تعيين</string>\n    <string name=\"action_undo\">تراجع</string>\n    <string name=\"action_open_log\">فتح السجل</string>\n    <string name=\"action_restore\">إستعادة</string>\n    <string name=\"loading\">جار التحميل…</string>\n    <string name=\"app_not_available\">التطبيق غير متوفر</string>\n    <string name=\"pref_category_general\">عام</string>\n    <string name=\"pref_category_reader\">القارئ</string>\n    <string name=\"pref_category_downloads\">التنزيلات</string>\n    <string name=\"pref_category_tracking\">التتبع</string>\n    <string name=\"pref_category_advanced\">اﻹعدادات المتقدمة</string>\n    <string name=\"pref_category_about\">حول التطبيق</string>\n    <string name=\"pref_library_columns\">العناصر لكل صف</string>\n    <string name=\"portrait\">طوليٌّ</string>\n    <string name=\"landscape\">عرضيٌّ</string>\n    <string name=\"pref_library_update_interval\">التحديثات التلقائية</string>\n    <string name=\"update_never\">إيقاف</string>\n    <string name=\"update_6hour\">كل ٦ ساعات</string>\n    <string name=\"update_12hour\">كل ١٢ ساعة</string>\n    <string name=\"update_24hour\">يومياً</string>\n    <string name=\"update_48hour\">كل يومان</string>\n    <string name=\"update_weekly\">أسبوعياً</string>\n    <string name=\"all\">الكل</string>\n    <string name=\"pref_library_update_restriction\">تقييد التحديث التلقائي للجهاز</string>\n    <string name=\"charging\">عند الشحن</string>\n    <string name=\"pref_update_only_non_completed\">حالها «تمَّت»</string>\n    <string name=\"pref_auto_update_manga_sync\">تحديث تقدّم الفصول بعد القراءة</string>\n    <string name=\"default_category\">الفئة المبدئية</string>\n    <string name=\"default_category_summary\">السؤال دائماً</string>\n    <string name=\"pref_fullscreen\">وضع الشاشة الكاملة</string>\n    <string name=\"pref_page_transitions\">مؤثرات الانتقال بين الصفحات</string>\n    <string name=\"pref_show_page_number\">عرض رقم الصفحة</string>\n    <string name=\"pref_crop_borders\">اقتصاص الحدود</string>\n    <string name=\"pref_custom_brightness\">سطوع مُخصّص</string>\n    <string name=\"pref_custom_color_filter\">مُرشح الألوان المخصص</string>\n    <string name=\"pref_keep_screen_on\">ابقاء الشاشة مفتوحة</string>\n    <string name=\"pref_reader_navigation\">التنقل</string>\n    <string name=\"pref_read_with_volume_keys\">أزرار الصوت</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">أزرار الصوت المعكوسة</string>\n    <string name=\"pref_reader_theme\">لون الخلفية</string>\n    <string name=\"white_background\">أبيض</string>\n    <string name=\"black_background\">أسود</string>\n    <string name=\"pref_viewer_type\">وضع القراءة الافتراضي</string>\n    <string name=\"left_to_right_viewer\">صفحيٌّ (يسارًا فيمينًا)</string>\n    <string name=\"right_to_left_viewer\">صفحيٌّ (يمينًا فيسارًا)</string>\n    <string name=\"vertical_viewer\">صفحيٌّ (عموديٌّ)</string>\n    <string name=\"webtoon_viewer\">شريط طويل</string>\n    <string name=\"pref_image_scale_type\">كيفية ضبط الأبعاد</string>\n    <string name=\"scale_type_fit_screen\">ملائمة الشاشة</string>\n    <string name=\"scale_type_stretch\">التمدد</string>\n    <string name=\"scale_type_fit_width\">ملائمة العرض</string>\n    <string name=\"scale_type_fit_height\">ملائمة الطول</string>\n    <string name=\"scale_type_original_size\">الحجم اﻷصلى</string>\n    <string name=\"scale_type_smart_fit\">الملائمة الذكية</string>\n    <string name=\"pref_zoom_start\">موضع بدء التكبير</string>\n    <string name=\"zoom_start_automatic\">تلقائي</string>\n    <string name=\"zoom_start_left\">اليسار</string>\n    <string name=\"zoom_start_right\">اليمين</string>\n    <string name=\"zoom_start_center\">المركز</string>\n    <string name=\"pref_rotation_type\">التدوير الافتراضي</string>\n    <string name=\"rotation_free\">حر</string>\n    <string name=\"rotation_force_portrait\">الوضع الرأسي اﻹجباري</string>\n    <string name=\"rotation_force_landscape\">الوضع الأفقي الإجباري</string>\n    <string name=\"pref_remove_after_marked_as_read\">بعد وضع علامة \\\"مقروءة\\\" يدوياً</string>\n    <string name=\"pref_remove_after_read\">الحذف تلقائيا بعد القراءة</string>\n    <string name=\"disabled\">معطل</string>\n    <string name=\"last_read_chapter\">آخر فصل مقروء</string>\n    <string name=\"second_to_last\">من الفصل الثاني قبل الأخير</string>\n    <string name=\"third_to_last\">‪من الفصل الثالث قبل اﻷخير</string>\n    <string name=\"fourth_to_last\">من الفصل الرابع قبل اﻷخير</string>\n    <string name=\"fifth_to_last\">من الفصل الخامس قبل اﻷخير</string>\n    <string name=\"pref_download_new\">تنزيل الفصول الجديدة</string>\n    <string name=\"services\">المتتبِّعات</string>\n    <string name=\"pref_create_backup\">إنشاء نسخة إحتياطية</string>\n    <string name=\"pref_create_backup_summ\">يمكن استخدامها لإستعادة المكتبة الحالية</string>\n    <string name=\"pref_restore_backup\">إستعادة النسخة الإحتياطية</string>\n    <string name=\"pref_restore_backup_summ\">إستعادة مكتبة من ملف نسخة إحتياطية</string>\n    <string name=\"pref_backup_interval\">معدل النسخ الاحتياطي التلقائي</string>\n    <string name=\"backup_created\">أُنشئت نسخة احتياطية</string>\n    <string name=\"restore_completed\">اكتملت الاستعادة</string>\n    <string name=\"backup_choice\">ما الذي تريد نسخه احتياطيّاً؟</string>\n    <string name=\"restoring_backup\">تُستعاد النسخة الاحتياطية</string>\n    <string name=\"creating_backup\">تُنشأ النسخة الاحتياطية</string>\n    <string name=\"action_global_search\">بحث شامل</string>\n    <string name=\"color_filter_r_value\">احمر</string>\n    <string name=\"color_filter_g_value\">اخضر</string>\n    <string name=\"color_filter_b_value\">أزرق</string>\n    <string name=\"color_filter_a_value\">ألفا</string>\n    <string name=\"pref_clear_chapter_cache\">مسح الذاكرة المؤقتة للفصول</string>\n    <string name=\"used_cache\">المستخدمة: %1$s</string>\n    <string name=\"cache_deleted\">تم محو الذاكرة المؤقتة. %1$d ملف تم محوه</string>\n    <string name=\"cache_delete_error\">حدث خطأ أثناء محو ذاكرة التخزين المؤقت</string>\n    <string name=\"pref_clear_cookies\">محو ملفات تعريف الارتباط</string>\n    <string name=\"cookies_cleared\">تم محو ملفات تعريف الارتباط</string>\n    <string name=\"pref_clear_database\">محو قاعدة البيانات</string>\n    <string name=\"pref_clear_database_summary\">مسح سجلّ الإدخالات التي ليست محفوظة في مكتبتك</string>\n    <string name=\"clear_database_completed\">تم حذف المدخلات</string>\n    <string name=\"version\">اﻹصدار</string>\n    <string name=\"pref_enable_acra\">إرسال تقارير الأعطال</string>\n    <string name=\"pref_acra_summary\">هذا يساعد فى حل أي مشاكل. لن يتم إرسال أيّة بيانات حساسة</string>\n    <string name=\"login_title\">تسجيل الدخول إلى %1$s</string>\n    <string name=\"username\">اسم المستخدم</string>\n    <string name=\"password\">كلمة المرور</string>\n    <string name=\"login\">تسجيل الدخول</string>\n    <string name=\"login_success\">تم تسجيل الدخول</string>\n    <string name=\"unknown_error\">خطأ غير معروف</string>\n    <string name=\"updating_category\">جار تحديث الفئة</string>\n    <string name=\"no_more_results\">لا توجد نتائج أخرى</string>\n    <string name=\"local_source\">مصدر محلِّي</string>\n    <string name=\"other_source\">أخرى</string>\n    <string name=\"action_global_search_hint\">البحث الشامل…</string>\n    <string name=\"latest\">الأحدث</string>\n    <string name=\"browse\">تصفَّح</string>\n    <string name=\"ongoing\">مستمرَّة</string>\n    <string name=\"unknown\">مجهول</string>\n    <string name=\"licensed\">مرخَّصة</string>\n    <string name=\"remove_from_library\">أزل من المكتبة</string>\n    <string name=\"delete_downloads_for_manga\">حذف الفصول المنزلة؟</string>\n    <string name=\"display_mode_chapter\">الفصل %1$s</string>\n    <string name=\"chapter_downloading_progress\">جاري التنزيل (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">خطأ</string>\n    <string name=\"chapter_paused\">متوقّف</string>\n    <string name=\"show_title\">عنوان المصدر</string>\n    <string name=\"show_chapter_number\">رقم الفصل</string>\n    <string name=\"sort_by_source\">حسب المصدر</string>\n    <string name=\"sort_by_number\">حسب رقم الفصل</string>\n    <string name=\"manga_download\">تنزيل</string>\n    <string name=\"download_unread\">غير مقروء</string>\n    <string name=\"confirm_delete_chapters\">هل أنت متأكد من أنك تريد حذف الفصول المحددة؟</string>\n    <string name=\"manga_tracking_tab\">التتبع</string>\n    <string name=\"reading\">القراءة</string>\n    <string name=\"completed\">مكتملة</string>\n    <string name=\"dropped\">متروكة</string>\n    <string name=\"on_hold\">معلَّقة</string>\n    <string name=\"plan_to_read\">أنوي قراءتها</string>\n    <string name=\"score\">التقييم</string>\n    <string name=\"title\">العنوان</string>\n    <string name=\"status\">الحال</string>\n    <string name=\"error_category_exists\">توجد بالفعل فئة بهذا الاسم!</string>\n    <string name=\"snack_categories_deleted\">تم حذف الفئات</string>\n    <string name=\"dialog_with_checkbox_remove_description\">سيؤدي هذا إلى إزالة تاريخ قراءة هذا الفصل. هل أنت متأكد؟</string>\n    <string name=\"dialog_with_checkbox_reset\">إعادة تعيين جميع الفصول لهذا الإدخال</string>\n    <string name=\"snack_add_to_library\">إضافة إلى المكتبة؟</string>\n    <string name=\"picture_saved\">تم حفظ الصورة</string>\n    <string name=\"custom_filter\">مُرشح مخصص</string>\n    <string name=\"set_as_cover\">عيِّنها غلافًا</string>\n    <string name=\"cover_updated\">حُدِّث الغلاف</string>\n    <string name=\"chapter_progress\">الصفحة: %1$d</string>\n    <string name=\"no_next_chapter\">لم يتم العثور على الفصل التالي</string>\n    <string name=\"decode_image_error\">تعذَّر تحميل هذه الصورة</string>\n    <string name=\"confirm_set_image_as_cover\">هل تريد تعيين هذه الصورة كغلاف؟</string>\n    <string name=\"download_queue_error\">فشل تنزيل الفصول. يمكنك إعادة المحاولة في قسم التنزيلات</string>\n    <string name=\"notification_new_chapters\">تم إيجاد فصول جديدة</string>\n    <string name=\"notification_cover_update_failed\">فشل تحديث الغلاف</string>\n    <string name=\"notification_first_add_to_library\">الرجاء إضافة الإدخال إلى مكتبتك قبل القيام بذلك</string>\n    <string name=\"file_select_cover\">اختر صورة الغلاف</string>\n    <string name=\"file_select_backup\">اختر ملف النسخة الاحتياطية</string>\n    <string name=\"update_check_confirm\">تنزيل</string>\n    <string name=\"update_check_no_new_updates\">لا تتوفر تحديثات جديدة</string>\n    <string name=\"update_check_notification_download_in_progress\">جار التنزيل…</string>\n    <string name=\"update_check_notification_download_complete\">اضغط لتثبيت التحديث</string>\n    <string name=\"update_check_notification_download_error\">حدث خطأ في التنزيل</string>\n    <string name=\"update_check_notification_update_available\">نسخة جديدة متوفرة!</string>\n    <string name=\"information_no_downloads\">لا توجد تنزيلات</string>\n    <string name=\"information_no_recent\">لا توجد تحديثات جديدة</string>\n    <string name=\"information_no_recent_manga\">لم تقرأ شيئًا مؤخَّرًا</string>\n    <string name=\"information_empty_library\">مكتبتك فارغة</string>\n    <string name=\"download_notifier_downloader_title\">مدير التنزيل</string>\n    <string name=\"download_notifier_title_error\">خطأ</string>\n    <string name=\"download_notifier_unknown_error\">فشل تنزيل الفصل بسبب حدوث خطأ غير متوقع</string>\n    <string name=\"download_notifier_text_only_wifi\">لا يتوفر اتصال واي فاي</string>\n    <string name=\"download_notifier_no_network\">لا يتوفر اتصال بالشبكة</string>\n    <string name=\"download_notifier_download_paused\">توقفت التنزيلات</string>\n    <string name=\"channel_common\">عام</string>\n    <string name=\"label_migration\">نقل</string>\n    <string name=\"label_extensions\">الإضافات</string>\n    <string name=\"label_extension_info\">معلومات الإضافة</string>\n    <string name=\"action_display_download_badge\">الفصول المحملة</string>\n    <string name=\"ext_update\">حدث</string>\n    <string name=\"ext_install\">تثبيت</string>\n    <string name=\"ext_pending\">المُعلقة</string>\n    <string name=\"ext_downloading\">جارى التنزيل</string>\n    <string name=\"ext_installing\">جاري التثبيت</string>\n    <string name=\"ext_installed\">تم التثبيت</string>\n    <string name=\"ext_trust\">الثقة</string>\n    <string name=\"ext_untrusted\">غير موثوق فيه</string>\n    <string name=\"ext_uninstall\">إلغاء التثبيت</string>\n    <string name=\"untrusted_extension\">إضافة ذات ريبة</string>\n    <string name=\"untrusted_extension_message\">يمكن للملحقات الخبيثة قراءة أي بيانات اعتماد مخزنة لتسجيل الدخول أو تنفيذ تعليمات برمجية عشوائية.\n\\n\n\\nمن خلال الوثوق بهذا الامتداد، فإنك تقبل هذه المخاطر.</string>\n    <string name=\"pref_double_tap_anim_speed\">سرعة مؤثر النقر المزدوج</string>\n    <string name=\"pager_viewer\">عارض الصفحات</string>\n    <string name=\"double_tap_anim_speed_0\">لا مؤثرات</string>\n    <string name=\"double_tap_anim_speed_normal\">طبيعي</string>\n    <string name=\"double_tap_anim_speed_fast\">سريع</string>\n    <string name=\"manga_added_library\">تم الإضافة إلى المكتبة</string>\n    <string name=\"manga_removed_library\">تم الإزالة من المكتبة</string>\n    <string name=\"copied_to_clipboard\">نُسخ إلى الحافظة:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">المصدر غير مثبت: %1$s</string>\n    <string name=\"repeating\">إعادة القراءة</string>\n    <string name=\"track_status\">الحالة</string>\n    <string name=\"track_type\">النوع</string>\n    <string name=\"migration_dialog_what_to_include\">اختر بيانات لتضمينها</string>\n    <string name=\"migrate\">نقل</string>\n    <string name=\"copy\">نسخ</string>\n    <string name=\"information_empty_category\">ليست لديك أيّة فئات، اضغط زر اﻹضافة لإنشاء واحدة لتنظيم مكتبتك.</string>\n    <string name=\"transition_finished\">تمَّ الانتهاء من:</string>\n    <string name=\"transition_current\">الحالي:</string>\n    <string name=\"transition_next\">التّالي:</string>\n    <string name=\"transition_previous\">السّابق:</string>\n    <string name=\"transition_no_next\">لا يوجدُ فصل تالي</string>\n    <string name=\"transition_no_previous\">لا يوجدُ فصل سابق</string>\n    <string name=\"transition_pages_loading\">جار تحميل الصّفحات…</string>\n    <string name=\"transition_pages_error\">فشل تحميل الصّفحات: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">أظهر الإجراءات عند الضغط المطوَّل</string>\n    <string name=\"action_open_in_web_view\">فتح في WebView</string>\n    <string name=\"pref_skip_read_chapters\">تخطي الفصول المقروءة</string>\n    <string name=\"filter_mode_overlay\">التراكب</string>\n    <string name=\"filter_mode_multiply\">مضاعفة</string>\n    <string name=\"filter_mode_screen\">الشاشة</string>\n    <string name=\"label_help\">المساعدة</string>\n    <string name=\"pref_color_filter_mode\">مُرشح الألوان ”وضع الألوان الممزوجة“</string>\n    <string name=\"filter_mode_lighten\">مراوغة / تفتيح</string>\n    <string name=\"filter_mode_darken\">حرق / تغميق</string>\n    <string name=\"no_results_found\">لم يُعثر على أيِّ نتائج</string>\n    <string name=\"migration_selection_prompt\">اختيار مصدر للنقل من</string>\n    <string name=\"action_webview_back\">عودة</string>\n    <string name=\"action_webview_forward\">تقدم</string>\n    <string name=\"action_webview_refresh\">تحديث</string>\n    <string name=\"pref_category_library\">المكتبة</string>\n    <string name=\"label_more\">المزيد</string>\n    <string name=\"action_move_to_top\">نقل إلى الأعلى</string>\n    <string name=\"action_oldest\">الأقدم</string>\n    <string name=\"action_newest\">الأَحدثْ</string>\n    <string name=\"action_cancel_all\">إلغاء الكل</string>\n    <string name=\"action_view_chapters\">عرض الفصول</string>\n    <string name=\"action_sort_latest_chapter\">أحدث فصل</string>\n    <string name=\"action_menu\">القائمة</string>\n    <string name=\"label_sources\">المصادر</string>\n    <string name=\"action_move_to_bottom\">نقل إلى الأسفل</string>\n    <string name=\"lock_never\">أبدًا</string>\n    <string name=\"lock_always\">دائماً</string>\n    <string name=\"lock_when_idle\">أوصد في حالة السكون</string>\n    <string name=\"lock_with_biometrics\">اطلب فتح القفل</string>\n    <string name=\"pref_category_security\">الأمان و الخصوصية</string>\n    <string name=\"pref_manage_notifications\">أدر الإشعارات</string>\n    <string name=\"pref_date_format\">صيغة التاريخ</string>\n    <string name=\"theme_system\">النظام</string>\n    <string name=\"theme_dark\">داكن</string>\n    <string name=\"theme_light\">فاتح</string>\n    <string name=\"battery_optimization_disabled\">تم إلغاء وضع تحسين البطارية مُسبقاً</string>\n    <string name=\"pref_disable_battery_optimization_summary\">يساعد في عملية تحديث المكتبة والنسخ الإحتياطي في الخلفية</string>\n    <string name=\"pref_disable_battery_optimization\">إطفاء وضع تحسين البطارية</string>\n    <string name=\"pref_category_reading\">اعدادات القرآءة</string>\n    <string name=\"pref_always_show_chapter_transition\">اظهار فواصل الانتقال بين الفصول</string>\n    <string name=\"pref_skip_filtered_chapters\">تخطي الفصول المُرشحة</string>\n    <string name=\"pref_cutout_short\">اظهار محتوى المناطق المقطوعة</string>\n    <string name=\"obsolete_extension_message\">هذه الإضافة لم تعد متوفرة. قد لا تعمل بشكل صحيح ويمكن أن تسبب بمشاكل في التطبيق. يوصى بإلغائه.</string>\n    <string name=\"ext_obsolete\">قديم جدًا</string>\n    <string name=\"ext_updates_pending\">التحديثات معلقة</string>\n    <string name=\"pref_category_library_update\">التحديث العام</string>\n    <string name=\"pref_category_display\">العرض</string>\n    <string name=\"hide_notification_content\">أخفِ محتوى الإشعارات</string>\n    <string name=\"secure_screen_summary\">تُخفي الشاشة الآمنة محتوى التطبيق عند التبديل بين التطبيقات، وتمنع التقاط الشاشة كذلك</string>\n    <string name=\"secure_screen\">الشاشة الآمنة</string>\n    <string name=\"label_downloaded_only\">المُنزل فقط</string>\n    <string name=\"check_for_updates\">تحقَّق من وجود تحديثات</string>\n    <string name=\"licenses\">التراخيص مفتوحة المصدر</string>\n    <string name=\"website\">الموقع الإلكتروني</string>\n    <string name=\"restoring_backup_canceled\">أُلغيت الاستعادة</string>\n    <string name=\"restoring_backup_error\">فشل استعادة النسخ الاحتياطي</string>\n    <string name=\"restore_in_progress\">الاستعادة قيد التقدم بالفعل</string>\n    <string name=\"creating_backup_error\">فشل النسخ الاحتياطي</string>\n    <string name=\"backup_in_progress\">يُنسخ احتياطيًّا بالفعل</string>\n    <string name=\"restore_duration\">%1$02dدقيقة،%2$02dثانية</string>\n    <string name=\"action_unpin\">إلغاء التثبيت</string>\n    <string name=\"action_pin\">تثبيت</string>\n    <string name=\"action_select_inverse\">عكس التحديد</string>\n    <string name=\"channel_ext_updates\">تحديثات اﻹضافات</string>\n    <string name=\"channel_new_chapters\">تحديثات الفصول</string>\n    <string name=\"information_webview_outdated\">يرجى تحديث تطبيق WebView لتوافق أفضل</string>\n    <string name=\"information_webview_required\">إن وجود WebView لازم ليعمل التطبيق</string>\n    <string name=\"information_cloudflare_bypass_failure\">فشل في تجاوز Cloudflare</string>\n    <string name=\"notification_chapters_multiple\">الفصول %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">الفصل %1$s و%2$d فصول أخرى</string>\n    <string name=\"notification_chapters_single\">الفصل %1$s</string>\n    <string name=\"recent_manga_time\">الفصل %1$s - %2$s</string>\n    <string name=\"updating_library\">تَحديثُ المكتبة</string>\n    <string name=\"viewer\">وضع القراءة</string>\n    <string name=\"pref_category_for_this_series\">القسم الخاص بهذه السلسلة</string>\n    <string name=\"paused\">متوقِّفة</string>\n    <string name=\"add_tracking\">أضف تتبُّعًا</string>\n    <string name=\"manga_info_collapse\">أقل</string>\n    <string name=\"manga_info_expand\">المزيد</string>\n    <string name=\"in_library\">في المكتبة</string>\n    <string name=\"add_to_library\">إضافة إلى المكتبة</string>\n    <string name=\"local_source_help_guide\">دليل استخدام المصادر المحلية</string>\n    <string name=\"pinned_sources\">المثبتة</string>\n    <string name=\"last_used_source\">آخر مصدر مُستخدم</string>\n    <string name=\"logout_success\">تم تسجيل الخروج</string>\n    <string name=\"logout\">تسجيل الخروج</string>\n    <string name=\"logout_title\">تسجيل الخروج من %1$s؟</string>\n    <string name=\"email\">البريد الإلكتروني</string>\n    <string name=\"downloaded_only_summary\">تصفية جميع الإدخالات في مكتبتك</string>\n    <string name=\"pref_webtoon_side_padding\">الإزاحة الجانبية</string>\n    <string name=\"vertical_plus_viewer\">شريط طويل بين أجزائه فجوات</string>\n    <string name=\"gray_background\">رمادي</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">تعذر فتح إعدادات الجهاز</string>\n    <string name=\"action_migrate\">نقل</string>\n    <string name=\"label_data\">البيانات</string>\n    <string name=\"backup_restore_missing_sources\">المصادر المفقودة:</string>\n    <string name=\"invalid_backup_file_missing_manga\">النسخة الإحتياطية لا تحتوي على أيّة إدخالات المكتبة.</string>\n    <string name=\"invalid_backup_file\">ملف النسخ الاحتياطي غير صالح:</string>\n    <string name=\"tracking_info\">مزامنة أحادية تُحدِّث قراءة الفصول في المتتبعات الخارجية، ولك تعيين التتبِّع لكلِّ مدخلة على حدى، وذلك من زرِّ التتبع فيهم.</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">تحقق من وجود غلاف جديد وتفاصيل جديدة عند تحديث المكتبة</string>\n    <string name=\"pref_library_update_refresh_metadata\">تحديث البيانات الوصفية تلقائياً</string>\n    <string name=\"sort_by_upload_date\">حسب تاريخ الرفع</string>\n    <string name=\"pref_refresh_library_covers\">حدّث صور اغلفة المكتبة</string>\n    <string name=\"action_display_comfortable_grid\">شبكة مريحة</string>\n    <string name=\"tabs_header\">قوائم</string>\n    <string name=\"action_display_show_tabs\">إظهار قوائم الفئة</string>\n    <string name=\"page_list_empty_error\">لم يتم العثور على أيّة صفحات</string>\n    <string name=\"action_enable_all\">تفعيل الكل</string>\n    <string name=\"action_disable_all\">تعطيل الكل</string>\n    <string name=\"pref_show_reading_mode_summary\">إظهار الوضع الحالي لفترةٍ وجيزةٍ عند فتح القارئ</string>\n    <string name=\"pref_show_reading_mode\">إظهار وضع القراءة</string>\n    <string name=\"pref_category_theme\">السمة</string>\n    <string name=\"action_disable\">تعطيل</string>\n    <string name=\"action_start\">ابدأ</string>\n    <string name=\"action_sort_date_added\">تاريخ الإضافة</string>\n    <string name=\"whats_new\">ما الجديد</string>\n    <string name=\"requires_app_restart\">يتطلب إعادة تشغيل التطبيق ليتم تفعيله</string>\n    <string name=\"label_network\">التشبيك</string>\n    <string name=\"backup_restore_missing_trackers\">أجهزة التتبع التي لم يتم تسجيل الدخول إليها:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">حذف الفصول ذات العلامة المرجعية</string>\n    <string name=\"pref_category_delete_chapters\">حذف الفصول</string>\n    <string name=\"pref_category_reading_mode\">وضع القراءة</string>\n    <string name=\"ext_nsfw_warning\">بعض المصادر من هذا الامتداد قد تحتوى على محتوى للبالغين (+18)</string>\n    <string name=\"ext_nsfw_short\">محتوى غير لائق</string>\n    <string name=\"parental_controls_info\">هذا لا يمنع الإضافات غير الرسمية أو التي تم وضع علامة عليها بشكل غير صحيح من إظهار محتوى غير لائق داخل التطبيق.</string>\n    <string name=\"tapping_inverted_both\">كليهما</string>\n    <string name=\"tapping_inverted_vertical\">عمودي</string>\n    <string name=\"tapping_inverted_horizontal\">أفقي</string>\n    <string name=\"tapping_inverted_none\">لا شيء</string>\n    <string name=\"pref_read_with_tapping_inverted\">عكس مناطق اللمس</string>\n    <string name=\"channel_errors\">أخطاء</string>\n    <string name=\"channel_complete\">مُكتمل</string>\n    <string name=\"channel_progress\">التقدّم</string>\n    <string name=\"download_insufficient_space\">تعذّر تنزيل الفصول بسبب انخفاض مساحة التخزين</string>\n    <string name=\"loader_not_implemented_error\">لم يتم العثور على المصدر</string>\n    <string name=\"unknown_status\">حالة غير معروفة</string>\n    <string name=\"unknown_author\">مؤلّف غير معروف</string>\n    <string name=\"no_pinned_sources\">لا تمتلك أيّة مصادر مثبّتة</string>\n    <string name=\"action_global_search_query\">إبحث عن \\\"%1$s\\\" بشكلٍ شامل</string>\n    <string name=\"updated_version\">حُدِّث إلى الإصدار v%1$s</string>\n    <string name=\"no_chapters_error\">لم يُعثر على فصول</string>\n    <string name=\"share_page_info\">%1$s: %2$s, صفحة %3$d</string>\n    <string name=\"chapter_settings_updated\">إعدادات الفصل الإفتراضية المُحدثة</string>\n    <string name=\"set_chapter_settings_as_default\">تعيين كافتراضي</string>\n    <string name=\"also_set_chapter_settings_for_library\">تنطبق أيضًا على جميع الإدخالات في مكتبتي</string>\n    <string name=\"confirm_set_chapter_settings\">هل أنت متأكد أنك تريد حفظ هذه الإعدادات كافتراضي؟</string>\n    <string name=\"chapter_settings\">إعدادات الفصل</string>\n    <string name=\"action_search_settings\">إعدادات البحث</string>\n    <string name=\"downloaded_chapters\">الفصول المنزَّلة</string>\n    <string name=\"manga_from_library\">من المكتبة</string>\n    <string name=\"clear_history_confirmation\">أمتأكِّد؟ سوف يُحذف التاريخ.</string>\n    <string name=\"clear_history_completed\">حُذف التاريخ</string>\n    <string name=\"pref_incognito_mode_summary\">إيقاف سجل القراءة</string>\n    <string name=\"pref_incognito_mode\">الوضع المخفي</string>\n    <string name=\"pref_clear_history\">مسح السجل</string>\n    <string name=\"spen_next_page\">الصفحة التالية</string>\n    <string name=\"spen_previous_page\">الصفحة السابقة</string>\n    <string name=\"migration_help_guide\">دليل نقل المصدر</string>\n    <string name=\"pref_category_nsfw_content\">محتوى +18</string>\n    <string name=\"pref_show_nsfw_source\">اعرض في قوائم المصادر والامتدادات</string>\n    <string name=\"myanimelist_relogin\">رجاء سجل دخولك في MAL مجدداً</string>\n    <string name=\"file_picker_error\">لم يتم العثور على تطبيق منتقي الملفات</string>\n    <string name=\"pref_viewer_nav\">مناطق اللمس</string>\n    <string name=\"l_nav\">في شكل حرف L</string>\n    <string name=\"edge_nav\">حافَّة</string>\n    <string name=\"kindlish_nav\">كأنه كِندِل</string>\n    <string name=\"action_filter_tracked\">مُتتبَعة</string>\n    <string name=\"action_display_show_number_of_items\">إظهار عدد العناصر</string>\n    <string name=\"track_finished_reading_date\">تاريخ انهاء القراءة</string>\n    <string name=\"track_started_reading_date\">تاريخ بدء القراءة</string>\n    <string name=\"pref_dump_crash_logs_summary\">يحفظ سجلات الأخطاء في ملف للمشاركة مع المطورين</string>\n    <string name=\"pref_dump_crash_logs\">شارك سجلَّات الاعطال</string>\n    <string name=\"right_and_left_nav\">يميناً ويساراً</string>\n    <string name=\"pref_dual_page_invert_summary\">إذا كان موضع تقسيم الصفحات العريضة لا يتطابق مع اتجاه القراءة</string>\n    <string name=\"pref_dual_page_invert\">عكس موضع تقسيم الصفحة</string>\n    <string name=\"pref_dual_page_split\">تقسيم الصفحات العريضة</string>\n    <string name=\"action_desc\">تنازلياً</string>\n    <string name=\"action_asc\">تصاعدياً</string>\n    <string name=\"action_order_by_upload_date\">حسب تاريخ الرفع</string>\n    <string name=\"action_order_by_chapter_number\">حسب رقم الفصل</string>\n    <string name=\"pref_dns_over_https\">إستخدام DNS عبر HTTPS (DoH)</string>\n    <string name=\"backup_restore_content_full\">قد تحتاج إلى تثبيت أي إضافات مفقودة وتسجيل الدخول إلى خدمات التتبع بعد ذلك لاستخدامها.</string>\n    <string name=\"nav_zone_right\">يمين</string>\n    <string name=\"nav_zone_left\">يسار</string>\n    <string name=\"nav_zone_next\">التالي</string>\n    <string name=\"nav_zone_prev\">السابق</string>\n    <string name=\"pref_show_navigation_mode_summary\">عرض مناطق اللمس للتنقل عند فتح القارئ لفترة وجيزة</string>\n    <string name=\"pref_show_navigation_mode\">إظهار مناطق اللمس</string>\n    <string name=\"action_sort_chapter_fetch_date\">تاريخ الرفع</string>\n    <string name=\"rotation_landscape\">افقي</string>\n    <string name=\"rotation_portrait\">رأسي</string>\n    <string name=\"rotation_type\">التدوير</string>\n    <string name=\"automatic_background\">تلقائيًّا</string>\n    <string name=\"pref_create_folder_per_manga_summary\">يُنشِئ مجلدات وفقًا لعناوين المدخلات</string>\n    <string name=\"pref_create_folder_per_manga\">احفظ الصفحات في مجلدات منفصلة</string>\n    <string name=\"pref_reader_actions\">الإجراءات</string>\n    <string name=\"pref_grayscale\">تدرج رمادي</string>\n    <string name=\"exclude\">إستثناء: %s</string>\n    <string name=\"include\">تضمين: %s</string>\n    <string name=\"none\">لا شيء</string>\n    <string name=\"pref_library_update_categories_details\">الإدخالات في الفئات المستبعدة لن يتم تحديثها حتى و ان كانت أيضا في الفئات المضمنة.</string>\n    <string name=\"action_show_errors\">اضغط لإظهار التفاصيل</string>\n    <string name=\"pref_category_auto_download\">التنزيل التلقائي</string>\n    <string name=\"pref_download_new_categories_details\">لن يتم تنزيل الإدخالات في الفئات المستبعدة حتى إذا كانت موجودة أيضًا في الفئات المضمنة.</string>\n    <string name=\"notification_incognito_text\">إلغاء تفعيل الوضع الخفي</string>\n    <string name=\"clipboard_copy_error\">فشل النسخ إلى الحافظة</string>\n    <string name=\"update_check_eol\">نسخة الاندرويد هذه اصبحت غير مدعومة</string>\n    <string name=\"source_unsupported\">المصدر غير مدعوم</string>\n    <string name=\"unread\">لم يُقرأ</string>\n    <string name=\"date\">التاريخ</string>\n    <string name=\"local_filter_order_by\">ترتيب حسب</string>\n    <string name=\"chapter_not_found\">لم يُعثر على الفصل</string>\n    <string name=\"off\">إيقاف</string>\n    <string name=\"on\">تشغيل</string>\n    <string name=\"restrictions\">قيود: %s</string>\n    <string name=\"error_no_match\">لا يوجد مطابقات</string>\n    <string name=\"error_sharing_cover\">فشلت مشاركة الغلاف</string>\n    <string name=\"error_saving_cover\">خطأ في حفظ الغلاف</string>\n    <string name=\"cover_saved\">حُفظ الغلاف</string>\n    <string name=\"manga_cover\">غُلاف</string>\n    <string name=\"local_invalid_format\">تنسيق الفصل غير صالح</string>\n    <string name=\"tracking_guide\">تعليمات التعقب</string>\n    <string name=\"categorized_display_settings\">إعدادات فرز كل صنف</string>\n    <string name=\"cancel_all_for_series\">إلغاء الكل لهذه السلسلة</string>\n    <string name=\"action_display_local_badge\">مصدر محلّي</string>\n    <string name=\"information_empty_category_dialog\">ليس لديك اي قوائم بعد.</string>\n    <string name=\"action_start_downloading_now\">ابدأ التحميل الآن</string>\n    <string name=\"theme_strawberrydaiquiri\">أحمر</string>\n    <string name=\"theme_midnightdusk\">منتصف الليل</string>\n    <string name=\"theme_greenapple\">أخضر</string>\n    <string name=\"pref_app_theme\">مظهر التطبيق</string>\n    <string name=\"pref_lowest\">أدنى</string>\n    <string name=\"pref_low\">دنيا</string>\n    <string name=\"pref_high\">عالية</string>\n    <string name=\"pref_highest\">أعلى</string>\n    <string name=\"pref_hide_threshold\">حساسية التمرير لإخفاء القائمة</string>\n    <string name=\"pref_dark_theme_pure_black\">وضع داكن الأسود النقي</string>\n    <string name=\"theme_yotsuba\">يوتسوبا</string>\n    <string name=\"theme_yinyang\">ين &amp; يانغ</string>\n    <string name=\"theme_tako\">تاكو</string>\n    <string name=\"theme_monet\">ديناميك</string>\n    <string name=\"about_dont_kill_my_app\">تقوم بعض الشركات المصنعة بوضع قيود إضافية على التطبيقات التي قد تقضي على الخدمات التي تعمل في الخلفية. يحتوي هذا الموقع على مزيد من المعلومات حول كيفية إصلاحه.</string>\n    <string name=\"restore_miui_warning\">قد لا يعمل النسخ الاحتياطيُّ أو الاستعادة إن عطِّلت أمثَلَة MIUI.</string>\n    <string name=\"enhanced_tracking_info\">يُحسِّن مصادر معينة، وتُتابَع المدخلات حال إضافتها للمكتبة.</string>\n    <string name=\"enhanced_services\">المتتبِّعات المحسَّنة</string>\n    <string name=\"relative_time_today\">اليوم</string>\n    <string name=\"confirm_lock_change\">المصادقة لتأكيد التغيير</string>\n    <string name=\"label_default\">الافتراضي</string>\n    <string name=\"label_background_activity\">الأنشطة التي تعمل في الخلفية</string>\n    <string name=\"action_track\">تتبع</string>\n    <string name=\"pref_inverted_colors\">معكوس</string>\n    <string name=\"theme_tealturquoise\">ازرق مخضر و فيروز</string>\n    <string name=\"pref_category_appearance\">المظهر</string>\n    <string name=\"getting_started_guide\">دليل البدء</string>\n    <string name=\"help_translate\">ساعد بالترجمة</string>\n    <string name=\"pref_tablet_ui_mode\">واجهة مستخدم الجهاز اللوحي</string>\n    <string name=\"pref_remove_exclude_categories\">الفئات المستثناة</string>\n    <string name=\"ext_installer_pref\">المثبِّت</string>\n    <string name=\"action_sort_count\">إجمالي الإدخالات</string>\n    <string name=\"label_warning\">تحذير</string>\n    <string name=\"action_display_language_badge\">اللغة</string>\n    <string name=\"backup_info\">زد على ذلك حفظ الاحتياط في غير هذا المكان، وتنبَّه لوجود الخطير فيها ككلمات السر، وتحفَّظ من مشاركتها.</string>\n    <string name=\"notification_size_warning\">التحديثات الكبيرة تضر بالمصادر، وتؤدي لتحديثات أبطأ، وقد تسبب زيادة في استهلاك البطارية۔ اضغط لمعرفة المزيد۔</string>\n    <string name=\"pref_verbose_logging\">التسجيل المطول</string>\n    <string name=\"ext_app_info\">معلومات التطبيق</string>\n    <string name=\"ext_install_service_notif\">جارٍ تثبيت الإضافة …</string>\n    <string name=\"pref_verbose_logging_summary\">طباعة السجلات المطولة في سجل النظام (يقلل من أداء التطبيق)</string>\n    <string name=\"channel_app_updates\">تحديثات التطبيق</string>\n    <string name=\"ext_update_all\">تحديث الكل</string>\n    <string name=\"update_72hour\">كل ثلاثة ايام</string>\n    <string name=\"connected_to_wifi\">فقط على شبكة WI-FI</string>\n    <string name=\"ext_installer_shizuku_stopped\">«Shizuku» لا يعمل</string>\n    <string name=\"publishing_finished\">انتهى النشر</string>\n    <string name=\"cancelled\">أُلغيت</string>\n    <string name=\"on_hiatus\">متوقفة</string>\n    <string name=\"library_errors_help\">للحصول على المساعده في إصلاح أخطاء تحديث المكتبة، أنظر هنا%1$s</string>\n    <string name=\"save_chapter_as_cbz\">احفظ كأرشيف CBZ</string>\n    <string name=\"privacy_policy\">سياسة الخصوصية</string>\n    <string name=\"pref_update_only_completely_read\">فيها فصول لم تُقرأ</string>\n    <string name=\"ext_installer_legacy\">قياسي</string>\n    <string name=\"pref_auto_clear_chapter_cache\">امسح ملفات التخزين المؤقت عند فتح التطبيق</string>\n    <string name=\"database_clean\">لا شئ للتنظيف</string>\n    <string name=\"clear_database_source_item_count\">%1$d مدخلةً في قاعدة البيانات وليست في المكتبة</string>\n    <string name=\"extension_api_error\">فشل الحصول على قائمة الملحقات</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">ثبِّت «شيزوكو» وشغِّله لتستخدمه مثبِّت إضافات.</string>\n    <string name=\"download_queue_size_warning\">تحذير: يمكن أن تؤدِّي التنزيلات كبيرة الحجم والعدد إلى إبطاء المصادر، وقد يُحظر %s منها بسبب ذلك. اضغط لمعرفة المزيد۔</string>\n    <string name=\"action_show_manga\">إظهار الدخول</string>\n    <string name=\"action_display_cover_only_grid\">شبكة بالاغلفة</string>\n    <string name=\"skipped_reason_not_started\">تُخُطِّيت بسبب عدم وجود فصول قُرئت</string>\n    <string name=\"skipped_reason_not_caught_up\">تُخُطِّيت لوجود فصول لم تُقرأ</string>\n    <string name=\"pref_update_only_started\">لم يبدأ هذا بعد</string>\n    <string name=\"skipped_reason_completed\">تُخُطِّيت لأنها مكتملة</string>\n    <string name=\"pref_navigate_pan\">حرِّك الصور الواسعة</string>\n    <string name=\"pref_landscape_zoom\">كبِّر الصور العريضة تلقائيًّا</string>\n    <string name=\"error_saving_picture\">خطأ أثناء حفظ الصورة</string>\n    <string name=\"disabled_nav\">معطل</string>\n    <string name=\"rotation_reverse_portrait\">رأسي بالعكس</string>\n    <string name=\"notification_update_error\">فشل %1$d تحديث أو تحديثات</string>\n    <string name=\"learn_more\">اضغط لمعرفة المزيد</string>\n    <string name=\"action_move_to_top_all_for_series\">نقل سلسلة الفصول للأعلى</string>\n    <string name=\"empty_backup_error\">لا توجد مدخلات في المكتبة لإجراء نسخة احتياطي‮‮ة</string>\n    <string name=\"action_close\">اغلاق</string>\n    <string name=\"update_check_open\">فتح في GitHub</string>\n    <string name=\"pref_clear_webview_data\">احذف بيانات WebView</string>\n    <string name=\"webview_data_deleted\">حُذفت بيانات WebView</string>\n    <string name=\"source_filter_empty_screen\">لا يوجد مصادر مثبته</string>\n    <string name=\"source_empty_screen\">لا يوجد مصدر</string>\n    <string name=\"action_sort_unread_count\">المانجا الغير مقروءة</string>\n    <string name=\"action_sort_last_manga_update\">آخر فحص للتحديث</string>\n    <string name=\"split_tall_images_summary\">يحسِّن أداء القارئ</string>\n    <string name=\"download_notifier_split_page_not_found\">لم يُعثر على الصفحة %d أثناء التقسيم</string>\n    <string name=\"download_notifier_split_page_path_not_found\">لم يتم العثور على مسار الصفخة %d</string>\n    <string name=\"pref_reset_viewer_flags_success\">اعادة تعيين جميع اعدادات القارئ</string>\n    <string name=\"pref_reset_viewer_flags_summary\">إعادة تعيين اعدادات القراءه لكل القصص</string>\n    <string name=\"ext_info_language\">اللغة</string>\n    <string name=\"ext_info_age_rating\">التقييم العمري</string>\n    <string name=\"ext_info_version\">الإصدار</string>\n    <string name=\"pref_reset_viewer_flags_error\">لم يمكن إعادة تعيين إعدادات القارئ</string>\n    <string name=\"empty_screen\">هذا محرج</string>\n    <string name=\"unfinished_list\">قائمة غير المنتهية</string>\n    <string name=\"network_not_metered\">على الشبكات غير المحدودة فقط</string>\n    <string name=\"pref_reset_viewer_flags\">إعادة ضبط إعدادات قراءة السلسلة</string>\n    <string name=\"reading_list\">قائمة القراءة</string>\n    <string name=\"wish_list\">قائمة الرغبات</string>\n    <string name=\"complete_list\">قائمة المكتملة</string>\n    <string name=\"on_hold_list\">قائمة المعلَّقة</string>\n    <string name=\"custom_cover\">غلاف مخصص</string>\n    <string name=\"cant_open_last_read_chapter\">غير قادر على فتح آخر فصل تم قراءته</string>\n    <string name=\"not_installed\">غير مثبت</string>\n    <string name=\"pref_app_language\">لغة تطبيق</string>\n    <string name=\"delete_category_confirmation\">هل تُريد محو هذه الفئة \\\"%s\\\"؟</string>\n    <string name=\"internal_error\">خطأ داخلي: تحقق من سجل الاعطال لمزيداً من المعلومات</string>\n    <string name=\"pref_reset_user_agent_string\">اعادة ضبط وتر وكيل ألمستخدم الإفتراضي</string>\n    <string name=\"pref_user_agent_string\">وتر وكيل المستخدم الافتراضي</string>\n    <string name=\"delete_category\">مسح الفئة</string>\n    <string name=\"description_placeholder\">لا وصف</string>\n    <string name=\"theme_lavender\">أُرجواني</string>\n    <string name=\"appwidget_unavailable_locked\">لا تتاح الأداة حال تمكين قفل التطبيق</string>\n    <string name=\"appwidget_updates_description\">اطَّلع على ما حُدِّث مؤخَّرًا في مكتبتك</string>\n    <string name=\"action_remove_everything\">حذف كل شيء</string>\n    <string name=\"theme_tidalwave\">موجة مد و جزر</string>\n    <string name=\"multi_lang\">متعدد</string>\n    <string name=\"update_already_running\">هنالك تحديث جارٍ بالفعل</string>\n    <string name=\"download_ahead\">التنزيل المسبق</string>\n    <string name=\"download_ahead_info\">ينفع حين كون الفصل الحاليِّ والذي يليه منزَّلين.</string>\n    <string name=\"auto_download_while_reading\">التحميل تلقائيا أثناء القراءة</string>\n    <string name=\"are_you_sure\">هل أنت واثق؟</string>\n    <string name=\"updates_last_update_info\">آخر تحديث للمكتبة: %s</string>\n    <string name=\"error_user_agent_string_blank\">سلسلة وكيل المستخدم لا يمكن أن تكون فارغة</string>\n    <string name=\"popular\">شائع</string>\n    <string name=\"remove_manga\">أنت على وشك أن تحذف \\\"%s\\\" من مكتبتك</string>\n    <string name=\"missing_storage_permission\">لم يتم منح أذن التخزين</string>\n    <string name=\"action_search_hint\">بحث…</string>\n    <string name=\"skipped_reason_not_always_update\">تُخُطِّيت لأن السلسلة لا تتطلب تحديثات</string>\n    <string name=\"crash_screen_description\">واجه %s خطأً غير متوقَّع. تنبغي لك مشاركة سجلَّات الانهيار في قناة الدعم في دسكورد.</string>\n    <string name=\"crash_screen_title\">عفوًا!</string>\n    <string name=\"crash_screen_restart_application\">أعد تشغيل التطبيق</string>\n    <string name=\"pref_appearance_summary\">مظهر، التاريخ والوقت</string>\n    <string name=\"pref_library_summary\">الفئات، التحديث الشامل، تمرير الفصول</string>\n    <string name=\"pref_reader_summary\">وضع القراءة، العرض، التنقل</string>\n    <string name=\"pref_downloads_summary\">التحميل التلقائي، التحميل مقدما</string>\n    <string name=\"pref_tracking_summary\">تزامن التقدم أحادي الاتجاه، مزامنة محسّنة</string>\n    <string name=\"pref_browse_summary\">المصادر، الامتدادات، البحث العالمي</string>\n    <string name=\"pref_backup_summary\">النسخ الاحتياطي اليدوي والآلي وحيِّز التخزين</string>\n    <string name=\"pref_security_summary\">قفل التطبيق، شاشة آمنة</string>\n    <string name=\"pref_advanced_summary\">تفريغ سجلات الأعطال وتحسينات البطارية</string>\n    <string name=\"fdroid_warning\">لا يتم دعم إصدارات F-Droid رسميا.\n\\nانقر لمعرفة المزيد.</string>\n    <string name=\"invalid_location\">موقع غير صالح: %s</string>\n    <string name=\"pref_invalidate_download_cache_summary\">فرض التطبيق على إعادة التحقق من الفصول التي تم تنزيلها</string>\n    <string name=\"track_remove_date_conf_title\">إزالة التاريخ؟</string>\n    <string name=\"track_remove_start_date_conf_text\">%s سيؤدي هذا إلى إزالة تاريخ البدء المحدد مسبقًا من</string>\n    <string name=\"action_display_show_continue_reading_button\">زرُّ متابعة القراءة</string>\n    <string name=\"updates_last_update_info_just_now\">في هذه اللحظة</string>\n    <string name=\"track_remove_finish_date_conf_text\">%s سيؤدي ذلك إلى إزالة تاريخ الانتهاء المحدد مسبقا من</string>\n    <string name=\"pref_invalidate_download_cache\">فهرس التنزيلات غير صالح</string>\n    <string name=\"unknown_title\">عنوان غير معروف</string>\n    <string name=\"download_notifier_cache_renewal\">التحقق من التنزيلات</string>\n    <string name=\"action_open_random_manga\">فتح إدخال عشوائي</string>\n    <string name=\"error_user_agent_string_invalid\">سلسلة وكيل المستخدم المبدئية غير صالحة</string>\n    <string name=\"information_no_entries_found\">لم يتم العثور على إدخالات في هذه الفئة</string>\n    <string name=\"label_stats\">إحصائيات</string>\n    <string name=\"label_started\">بدأت</string>\n    <string name=\"label_local\">محلي</string>\n    <string name=\"label_downloaded\">المنزَّل</string>\n    <string name=\"label_overview_section\">نظرة عامة</string>\n    <string name=\"label_completed_titles\">إدخالات مكتملة</string>\n    <string name=\"label_read_duration\">مدة القرائة</string>\n    <string name=\"label_titles_section\">إدخالات</string>\n    <string name=\"label_titles_in_global_update\">في التحديث العام</string>\n    <string name=\"label_total_chapters\">الكل</string>\n    <string name=\"label_read_chapters\">إقرا</string>\n    <string name=\"label_tracker_section\">متتبعين</string>\n    <string name=\"label_tracked_titles\">إدخالات متتبعة</string>\n    <string name=\"label_mean_score\">يعني النتيجة</string>\n    <string name=\"label_used\">مستعمل</string>\n    <string name=\"not_applicable\">غير متوفر</string>\n    <string name=\"day_short\">%d ي</string>\n    <string name=\"hour_short\">%d س</string>\n    <string name=\"minute_short\">%d د</string>\n    <string name=\"seconds_short\">%d ث</string>\n    <string name=\"information_no_manga_category\">الفئة فارغة</string>\n    <string name=\"action_not_now\">ليس الان</string>\n    <string name=\"pref_library_update_show_tab_badge\">إظهار عدد الادخالات غير المقروءة في ايقونة التحديثات</string>\n    <string name=\"pref_skip_dupe_chapters\">تجاوز الفصول المكررة</string>\n    <string name=\"enhanced_services_not_installed\">متوفر ولكن المصدر غير مثبت: %s</string>\n    <string name=\"copied_to_clipboard_plain\">نسخ الى الحافظة</string>\n    <string name=\"track_error\">%1$s خطأ: %2$s</string>\n    <string name=\"information_required_plain\">*مطلوب</string>\n    <string name=\"action_copy_to_clipboard\">نسخ إلى الحافظة</string>\n    <string name=\"pref_hide_in_library_items\">إخفاء الإدخالات الموجودة بالفعل في المكتبة</string>\n    <string name=\"action_update_category\">تحديث الفئة</string>\n    <string name=\"split_tall_images\">افصل الصور الطويلة</string>\n    <string name=\"overlay_header\">التراكب</string>\n    <string name=\"pref_page_rotate\">دوِّر الصفحات العريضة لتلائم الشاشة</string>\n    <string name=\"pref_page_rotate_invert\">اعكس اتِّجاه الصفحات العريضة المدوَّرة</string>\n    <string name=\"pref_debug_info\">معلومات التنقيح</string>\n    <string name=\"pref_double_tap_zoom\">انقر مرتين لتكبِّر</string>\n    <string name=\"pref_chapter_swipe_end\">إجراء التمرير الى اليمين</string>\n    <string name=\"pref_chapter_swipe_start\">إجراء التمرير الى اليسار</string>\n    <string name=\"action_set_interval\">عيِّد المدة</string>\n    <string name=\"action_filter_interval_custom\">مدة جلب مخصَّصة</string>\n    <string name=\"manga_display_interval_title\">قدِّر كلَّ</string>\n    <string name=\"pref_update_only_in_release_period\">ليس ضمن مدة الإصدار المتوقعة</string>\n    <string name=\"skipped_reason_not_in_release_period\">تُخُطِّيت بسبب عدم توقع صدور اليوم</string>\n    <string name=\"manga_display_modified_interval_title\">عيِّن التحديث كلَّ</string>\n    <string name=\"intervals_header\">المدة</string>\n    <string name=\"action_sort_next_updated\">التحديث المتوقع القادم</string>\n    <string name=\"track_delete_title\">أأزيل تتبع %s؟</string>\n    <string name=\"track_delete_text\">هذا يزيل التتبع محليًّا.</string>\n    <string name=\"action_ok\">حسنًا</string>\n    <string name=\"track_delete_remote_text\">وكذلك أزله من %s</string>\n    <string name=\"delete_downloaded\">حذف التنزيلات</string>\n    <string name=\"syncing_library\">تُزامن المكتبة</string>\n    <string name=\"library_sync_complete\">انتهت مزامنة المكتبة</string>\n    <string name=\"has_results\">وُجدت نتائج</string>\n    <string name=\"create_backup_file_error\">تعذَّر إنشاء ملفِّ نسخ احتياطيِّ</string>\n    <string name=\"track_activity_name\">ولوج المتتبِّع</string>\n    <string name=\"download_cache_invalidated\">أُفسد فهرس التنزيلات</string>\n    <string name=\"information_cloudflare_help\">اضغط هنا للمساعدة فى Cloudflare</string>\n    <string name=\"exception_offline\">لا اتصال بالإنترنت</string>\n    <string name=\"exception_http\">خطأ HTTP %d، انظر في WebView</string>\n    <string name=\"exception_unknown_host\">لا يمكن الوصول إلى %s</string>\n    <string name=\"unlock_app_title\">افتح %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">انقل السلسلة للقعر</string>\n    <string name=\"pref_relative_format\">التوقيت النسبي</string>\n    <string name=\"pref_relative_format_summary\">«%1$s» بدلًا عن «%2$s»</string>\n    <string name=\"notification_updating_progress\">تحديث المكتبة… (%s)</string>\n    <string name=\"source_settings\">إعدادات المصادر</string>\n    <string name=\"app_settings\">إعدادات التطبيق</string>\n    <string name=\"file_null_uri_error\">لا ملفات حُدِّدت</string>\n    <string name=\"label_data_storage\">البيانات والتخزين</string>\n    <string name=\"relative_time_span_never\">أبدًا</string>\n    <string name=\"pref_flash_page_summ\">يخفِّف الحرق في شاشات الحبر</string>\n    <string name=\"last_auto_backup_info\">آخر احتياط تلقائي: %s</string>\n    <string name=\"pref_flash_page\">أشرق الشاشة إذا تغيرت الصفحة</string>\n    <string name=\"pref_storage_usage\">التخزين</string>\n    <string name=\"action_sort_tracker_score\">نقاط المتتبع</string>\n    <string name=\"action_create\">أنشئ</string>\n    <string name=\"action_apply\">نفِّذ</string>\n    <string name=\"action_revert_to_default\">صفِّر</string>\n    <string name=\"no_scanlators_found\">لم يُعثَر على مترجمين</string>\n    <string name=\"scanlator\">سكانليتور</string>\n    <string name=\"exclude_scanlators\">احجب بعض المترجمين</string>\n    <string name=\"action_menu_overflow_description\">خيارات أكثر</string>\n    <string name=\"selected\">محدَّد</string>\n    <string name=\"not_selected\">غير مُحدَّد</string>\n    <string name=\"action_bar_up_description\">تصفح الاعلى</string>\n    <string name=\"pref_storage_location\">مكان التخزين</string>\n    <string name=\"pref_storage_location_info\">يُستخدَم في الاحتياط وتنزيل الفصول والمصدر المحليِّ.</string>\n    <string name=\"onboarding_storage_action_select\">حدِّد مجلَّدًا</string>\n    <string name=\"pref_onboarding_guide\">دليل البدء</string>\n    <string name=\"onboarding_guides_new_user\">أحديث العهد بـ%s؟ طالع دليل البدء.</string>\n    <string name=\"onboarding_action_finish\">ابدأ</string>\n    <string name=\"onboarding_storage_selection_required\">لا بد من تحديد مجلَّد</string>\n    <string name=\"onboarding_heading\">أهلًا وسهلًا!</string>\n    <string name=\"onboarding_guides_returning_user\">أستخدمتَ %s قبلًا؟</string>\n    <string name=\"onboarding_action_skip\">تخطَّ</string>\n    <string name=\"onboarding_action_next\">التالي</string>\n    <string name=\"onboarding_description\">أول أمرنا أن نضبط بعض الأمور، ولك أن تغيرها في الإعدادات لاحقًا.</string>\n    <string name=\"no_location_set\">لم يُعيَّن موضع للتخزين</string>\n    <string name=\"onboarding_storage_info\">حدِّد مجلَّدًا يُخزِّن فيه %1$s الفصول المنزَّلة والاحتياطات وغيرها.\n\\n\n\\nوالأحسن أن يكون المجلَّد مخصوصًا لذلك.\n\\n\n\\nالمجلَّد المحدَّد: %2$s</string>\n    <string name=\"onboarding_permission_install_apps\">إذن تثبيت التطبيقات</string>\n    <string name=\"onboarding_permission_install_apps_description\">لتثبيت ملحقات المصدر.</string>\n    <string name=\"onboarding_permission_notifications\">إذن الإشعار</string>\n    <string name=\"onboarding_permission_notifications_description\">احصل على تنبيهات لتحديثات المكتبة والمزيد.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">استخدام البطارية في الخلفية</string>\n    <string name=\"onboarding_permission_action_grant\">منح</string>\n    <string name=\"ext_permission_install_apps_warning\">الأذونات مطلوبة لتثبيت الإضافات. انقر هنا لمنحها.</string>\n    <string name=\"ext_revoke_trust\">إبطال الإضافات غير الموثوق بها</string>\n    <string name=\"label_extension_repos\">مستودع الإضافات</string>\n    <string name=\"label_add_repo_input\">رابط المستودع</string>\n    <string name=\"action_add_repo_message\">إضافة مستودعات إضافية إلى %s. يجب أن يكون هذا الرابط ينتهي بـ \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">هذا المستودع موجود بالفعل!</string>\n    <string name=\"action_delete_repo\">حذف المستودع</string>\n    <string name=\"invalid_repo_name\">رابط المستودع غير صالح</string>\n    <string name=\"delete_repo_confirmation\">هل ترغب في حذف \\\"%s\\\" من المستودع؟</string>\n    <string name=\"action_open_repo\">مستودع مفتوح المصدر</string>\n    <string name=\"invalid_backup_file_error\">الخطأ الكامل:</string>\n    <string name=\"private_settings\">تضمين إعدادات حساسة (على سبيل المثال، رموز تسجيل دخول المتتبع)</string>\n    <string name=\"manga_interval_expected_update_soon\">قريباً</string>\n    <string name=\"manga_interval_custom_amount\">تكرار تحديث مخصص:</string>\n    <string name=\"onboarding_storage_help_info\">هل تقوم بالتحديث من إصدار أقدم ولست متأكداً مما تختاره؟ ارجع إلى دليل التخزين لمزيد من المعلومات.</string>\n    <string name=\"onboarding_storage_help_action\">دليل التخزين</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">تجنّب الانقطاعات في تحديثات المكتبة الطويلة الأمد والتنزيلات واستعادة النسخ الاحتياطية.</string>\n    <string name=\"pref_library_update_smart_update\">تحديث ذكي</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"information_empty_repos\">لم يتم تعيين أي مستودع .</string>\n    <string name=\"action_add_repo\">إضافة مستودع</string>\n    <string name=\"manga_interval_expected_update\">من المتوقع أن يتم إصدار فصول جديدة في حوالي 1%1$s، والتحقق من كل 2%2$s .</string>\n    <string name=\"available_disk_space_info\">متاح: %1$s / الكل: %2$s</string>\n    <string name=\"upcoming_calendar_prev\">الشهر السابق</string>\n    <string name=\"upcoming_guide\">الدليل القادم</string>\n    <string name=\"upcoming_calendar_next\">الشهر القادم</string>\n    <string name=\"label_upcoming\">القادم</string>\n    <string name=\"action_view_upcoming\">عرض الثحديثات القادمة</string>\n    <string name=\"action_add_anyway\">أضف على أي حال</string>\n    <string name=\"action_replace_repo\">استبدل</string>\n    <string name=\"action_replace_repo_title\">بصمة مفتاح التوقيع موجودة بالفعل</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">تعطيل التصغير</string>\n    <string name=\"manga_interval_expected_update_null\">المانجا اما منتهية او لا يوجد تاريخ اصدار متوقع.</string>\n    <string name=\"pref_flash_style_white_black\">أبيض وأسود</string>\n    <string name=\"file_picker_uri_permission_unsupported\">فشل في الحصول على الوصول المستمر إلى المجلد. قد يتصرف التطبيق بشكل غير متوقع.</string>\n    <string name=\"pref_flash_duration_summary\">%1$s مث</string>\n    <string name=\"pref_flash_duration\">مدة الوميض</string>\n    <string name=\"pref_flash_page_interval\">يومض كل(مدة)</string>\n    <string name=\"pref_flash_style_black\">أسود</string>\n    <string name=\"pref_flash_style_white\">أبيض</string>\n    <string name=\"pref_flash_with\">يومض مع</string>\n    <string name=\"action_replace_repo_message\">يحتوي المستودع %1$s على نفس بصمة مفتاح التوقيع الموجودة في %2$s.\n\\nإذا كان هذا متوقعًا، فسيتم استبدال %2$s، وإلا فاتصل بمشرف الرابطالخاص بك.</string>\n    <string name=\"pref_display_profile\">ملف تعريف عرض خاص</string>\n    <string name=\"action_copy_link\">نسخ الرابط</string>\n    <string name=\"extensionRepo_settings\">مستودع الإضافات</string>\n    <string name=\"invalid_backup_file_unknown\">ملف النسخة الإحتياطية معطل أو لا يعمل</string>\n    <string name=\"invalid_backup_file_json\">لا يتم دعم النسخ الاحتياطي لـ JSON</string>\n    <string name=\"artist\">فنان</string>\n    <string name=\"author\">الكاتب</string>\n    <string name=\"label_auto\">تلقائي</string>\n    <string name=\"onboarding_permission_analytics_description\">أرسل بيانات بشكل مخفي للمساهمة في تطوير البرنامج.</string>\n    <string name=\"pref_security\">الأمن</string>\n    <string name=\"pref_firebase\">سجلات التحليلات و الأخطاء</string>\n    <string name=\"action_sort_random\">عشوائي</string>\n    <string name=\"onboarding_permission_crashlytics\">أرسل سجلات الخطأ</string>\n    <string name=\"onboarding_permission_crashlytics_description\">أرسل سجلات الخطأ للمطورين بشكل خفي.</string>\n    <string name=\"onboarding_permission_analytics\">السماح للتحليلات</string>\n    <string name=\"action_notes\">ملاحظات</string>\n    <string name=\"action_edit_notes\">تعديل الملاحظات</string>\n    <string name=\"action_display_unread_badge\">فصول غير مقروءة</string>\n    <string name=\"theme_monochrome\">أحادي اللون</string>\n    <string name=\"firebase_summary\">سيسمح لنا إرسال سجلات الأعطال والتحليلات بتحديد المشكلات وإصلاحها وتحسين الأداء وجعل التحديثات المستقبلية أكثر ملاءمة لاحتياجاتك</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">بعد قرائة الفصل</string>\n    <string name=\"storage_failed_to_create_directory\">فشل في انشاء المكتبة:%s</string>\n    <string name=\"storage_failed_to_create_download_directory\">فشل في تحميل المكتبة</string>\n    <string name=\"action_toggle_private_off\">التتبع العلني</string>\n    <string name=\"pref_behavior\">تصرف</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">بعد نقل الفصل الجديد</string>\n    <string name=\"ext_remove\">احدف</string>\n    <string name=\"ext_confirm_remove\">حدف الإمتداد؟</string>\n    <string name=\"add_repo_confirmation\">هل تريد اضافة الفهرس \\\"%s\\\"؟</string>\n    <string name=\"pref_update_library_manga_titles\">تحديث عنوان المانغا لتطابق المصدر</string>\n    <string name=\"logging_in\">جاري الدخول…</string>\n    <string name=\"pref_update_library_manga_titles_summary\">تحذير: إذا تمت إعادة تسمية المانجا، فسيتم إزالتها من قائمة التنزيل (إن وجدت).</string>\n    <string name=\"action_toggle_private_on\">التتبع الخاص</string>\n    <string name=\"notes_placeholder\">استمتعت بالجزء حين …</string>\n    <string name=\"trackers_updated_summary\">تحديث المتابعات إلى الفصل %d</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">استخدم فك التشفير القديم لقارئ الشرائط الطويلة</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">اعتبر الفصول المقروئة مرتين مقروئة</string>\n    <string name=\"remove_private_extension_message\">هل تريد فعلا حدف الامتداد \\\"%s\\\"؟</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">ادا تم تحميل صورة فارغة قلل الحد تدريجيا لحل المشكلة.\\nتم تحديد:%s</string>\n    <string name=\"library_list\">قائمة المكتبات</string>\n    <string name=\"non_library_settings\">جميع الإدخالات المقروئة</string>\n    <string name=\"pref_hardware_bitmap_threshold\">عتبة خريطة الصورة النقطية للأجهزة المخصصة</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">افتراضي (%d)</string>\n    <string name=\"possible_duplicates_summary\">لديك مداخلات متشابهة في مكتبك بنفس الاسم.\\n\\nحدد واحدة للنقل أو الإضافة على أي حال.</string>\n    <string name=\"possible_duplicates_title\">التكرارات المحتملة</string>\n    <string name=\"confirm_tracker_update\">تحديث المتابعات إلى الفصل %d؟</string>\n    <string name=\"pref_incognito_mode_extension_summary\">إيقاف قراءة التاريخ مؤقتًا للتمديد</string>\n    <string name=\"label_donate\">تبرع</string>\n    <string name=\"theme_catppuccin\">كاتبوتشين</string>\n    <string name=\"pref_display_images_description\">­تقديم الصور في أوصاف المانجا</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">إخفاء مؤشرات الفصل المفقودة</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">يؤثر على الأداء. فعّله فقط إذا لم يُحل تقليل عتبة الخريطة النقطية مشاكل الصورة الفارغة</string>\n    <string name=\"pref_download_new_unread_chapters_only\">تخطي تنزيل الفصول المقروءة المكررة</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">تحديث التقدم عند وضع علامة عليه كمقروء</string>\n    <string name=\"export\">يصدّر</string>\n    <string name=\"library_exported\">تم تصدير المكتبة</string>\n    <string name=\"clear_database_text\">أنت على وشك إزالة الإدخالات من قاعدة البيانات</string>\n    <string name=\"clear_database_history_warning\">سيتم فقدان قراءة الفصول وتقدم الإدخالات غير الموجودة في المكتبة</string>\n    <string name=\"clear_db_exclude_read\">الاحتفاظ بالإدخالات مع الفصول المقروءة</string>\n    <string name=\"tracked_privately\">تم تعقبها بشكل خاص</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">مُختار</string>\n    <string name=\"migrationConfigScreen.availableHeader\">متاح</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">تحديد الكل</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">لا تحدد</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">­حدد المصادر الممكنة</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">تحديد المصادر المثبتة</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">اكمل</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">البيانات المراد نقلها</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">حذف التنزيلات الخاصة بالإدخال الحالي بعد الترحيل</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">­كلمات رئيسية إضافية (اختياري)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">يساعد في تضييق نتائج البحث عن طريق إضافة كلمات رئيسية إضافية</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">إخفاء الإدخالات التي لا تحتوي على تطابق</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">إخفاء الإدخالات بدون فصول أحدث</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">إظهار الإدخال فقط إذا كانت المباراة تحتوي على فصول إضافية</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">هذه الخيارات بطيئة وخطيرة وقد تؤدي إلى فرض قيود من المصادر</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">وضع البحث المتقدم</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">يقسم العنوان إلى كلمات رئيسية لإجراء بحث أوسع</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">المطابقة على أساس رقم الفصل</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">في حال تفعيله، يتم اختيار المطابقة الأبعد. وإلا، يتم اختيار المطابقة الأولى حسب أولوية المصدر.</string>\n    <string name=\"migrationListScreenTitle\">‎نقل</string>\n    <string name=\"migrationListScreenTitleWithProgress\">نقل (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">قطع</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">نقل</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">لم يتم العثور على بدائل</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">الأحدث: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">مجهول</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">البحث اليدوي</string>\n    <string name=\"migrationListScreen.skipActionLabel\">لا تنقل</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">نقل الآن</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">نسخ الآن</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">وقف النقل؟</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">إيقاف</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">إلغاء</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">نسخ</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">نقل</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">إلغاء</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">إلغاء</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">لم يتم العثور على فصول، لا يمكن استخدام هذا الإدخال للنقل</string>\n    <string name=\"action_webview_close_tab\">أغلق التبويب</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">منع استخدام أسماء ملفات بغير الحروف اللاتينية</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">يضمن التوافق مع بعض وسائط التخزين التي لا تدعم الترميز الموحد. عند تفعيل هذا الخيار، ستحتاج إلى إعادة تسمية مجلدات المصدر والمانغا يدويًا عبر استبدال الأحرف غير التابعة لـ ASCII (المحارف اللاتينية) بتمثيلها السداسي العشري (hex) بنظام UTF-8 وبحروف صغيرة. ملفات الفصول لا تحتاج إلى إعادة تسمية.</string>\n    <string name=\"pref_download_concurrent_sources\">تنزيل مصادر متعددة في وقت واحد</string>\n    <string name=\"pref_download_concurrent_pages\">تنزيل صفحات متعددة في وقت واحد</string>\n    <string name=\"pref_download_concurrent_pages_summary\">عدد الصفحات التي يتم تنزيلها في وقت واحد لكل مصدر</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/as/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">এক্সটেনচন আপডেট উপলব্ধ</item>\n        <item quantity=\"other\">%d এক্সটেনচন আপডেটসমূহ উপলব্ধ</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d ৰেপো</item>\n        <item quantity=\"other\">%d ৰেপোসমূহ</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s মিনিট পিছত</item>\n        <item quantity=\"other\">%1$s মিনিটৰ পিছত</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">কালি</item>\n        <item quantity=\"other\">%1$d দিনৰ আগতে</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">কাইলৈ</item>\n        <item quantity=\"other\">%1$d দিনত</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d শিতান</item>\n        <item quantity=\"other\">%d শিতানসমূহ</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">পৰৱৰ্তী অপঠিত অধ্যায়</item>\n        <item quantity=\"other\">পৰৱৰ্তী %d অপঠিত অধ্যায়সমূহ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$sত %2$s ত্ৰুটি সৈতে সমাপ্ত</item>\n        <item quantity=\"other\">%1$sত %2$s ত্ৰুটিৰ সৈতে সমাপ্ত</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s বাকী আছে</item>\n        <item quantity=\"other\">%1$s বাকী আছে</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">১ দিন</item>\n        <item quantity=\"other\">%d দিন</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">১ পৃষ্ঠা</item>\n        <item quantity=\"other\">%1$s পৃষ্ঠাসমূহ</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">অপস্থিত %1$s অধ্যায়</item>\n        <item quantity=\"other\">অপস্থিত %1$s অধ্যায়সমূহ</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s অধ্যায়</item>\n        <item quantity=\"other\">%1$s অধ্যায়সমূহ</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">পৰৱৰ্তী অধ্যায়</item>\n        <item quantity=\"other\">পৰৱৰ্তী %d অধ্যায়সমূহ</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d ট্ৰেকাৰ</item>\n        <item quantity=\"other\">%d ট্ৰেকাৰসমূহ</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d অধ্যায় স্কিপ কৰা হৈছে, উৎসত নাইবা ফিল্টাৰ কৰি আঁতৰোৱা হৈছে</item>\n        <item quantity=\"other\">%d অধ্যায়সমূহ স্কিপ কৰা হৈছে, উৎসত নাইবা ফিল্টাৰ কৰি আঁতৰোৱা হৈছে</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d প্ৰৱিষ্টিৰ বাবে</item>\n        <item quantity=\"other\">%d প্ৰৱিষ্টিসমূহৰ বাবে</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d নতুন অধ্যায়</item>\n        <item quantity=\"other\">%1$d নতুন অধ্যায়সমূহ</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">অধ্যায়সমূহ %1$s আৰু 1 অধিক</item>\n        <item quantity=\"other\">অধ্যায়সমূহ %1$s আৰু %2$d অধিক</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$d প্ৰৱেশ প্ৰব্ৰজন কৰক?</item>\n        <item quantity=\"other\">%1$d প্ৰবিষ্টসমূহ প্ৰব্ৰজন কৰক?</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/as/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"on\">চালু</string>\n    <string name=\"off\">বন্ধ</string>\n    <string name=\"label_library\">পুথিভঁৰাল</string>\n    <string name=\"label_recent_updates\">আপডেটসমূহ</string>\n    <string name=\"label_upcoming\">আসন্ন</string>\n    <string name=\"label_started\">আৰম্ভ হৈছে</string>\n    <string name=\"label_local\">স্থানীয়</string>\n    <string name=\"label_downloaded\">ডাউনলোড কৰা</string>\n    <string name=\"unlock_app_title\">%s আনলক কৰক</string>\n    <string name=\"action_webview_forward\">সামনে</string>\n    <string name=\"action_webview_refresh\">পুনৰপ্ৰাপ্তি কৰক</string>\n    <string name=\"onboarding_action_next\">পৰৱৰ্তী</string>\n    <string name=\"pref_category_general\">সাধাৰণ</string>\n    <string name=\"pref_category_appearance\">দেখাত</string>\n    <string name=\"pref_category_tracking\">ট্ৰেকিং</string>\n    <string name=\"pref_category_advanced\">উন্নত</string>\n    <string name=\"pref_category_about\">বিষয়ে</string>\n    <string name=\"lock_with_biometrics\">আনলকৰ প্ৰয়োজন</string>\n    <string name=\"lock_when_idle\">নিশ্ক্ৰিয় হৈ থাকিলে লক কৰক</string>\n    <string name=\"portrait\">উল্লম্ব</string>\n    <string name=\"landscape\">অনুভূমিক</string>\n    <string name=\"pref_category_library_update\">সৰ্বসাধাৰণ সন্মিলনী</string>\n    <string name=\"pref_library_update_restriction\">স্বয়ংক্ৰিয় আপডেটৰ যন্ত্ৰৰ সীমাবদ্ধতা</string>\n    <string name=\"connected_to_wifi\">কেৱল Wi-Fi ত</string>\n    <string name=\"network_not_metered\">কেৱল অবিমিত নেটৱৰ্কত</string>\n    <string name=\"charging\">চাৰ্জিং সময়ত</string>\n    <string name=\"pref_library_update_smart_update\">স্মাৰ্ট আপডেট</string>\n    <string name=\"pref_update_only_completely_read\">অপঠিত অধ্যায়ৰ পৰা আঁতৰাওক</string>\n    <string name=\"pref_update_only_non_completed\">সম্পূৰ্ণ অৱস্থাৰ পৰা আঁতৰাওক</string>\n    <string name=\"default_category\">ডিফল্ট শ্ৰেণী</string>\n    <string name=\"all\">সকলো</string>\n    <string name=\"ext_obsolete\">অচল</string>\n    <string name=\"ext_info_age_rating\">বয়সৰ মূল্যাংকন</string>\n    <string name=\"ext_installer_pref\">ইন্সটলাৰ</string>\n    <string name=\"ext_installer_legacy\">পুৰণি</string>\n    <string name=\"error_repo_exists\">এই ৰেপো ইতিমধ্যে আছে!</string>\n    <string name=\"action_open_repo\">উৎস ৰেপো খোলক</string>\n    <string name=\"action_replace_repo\">প্ৰতিস্থাপন কৰক</string>\n    <string name=\"pref_show_navigation_mode_summary\">পঢ়ুৱৈ খোলাৰ সময়ত ক্ষণেকৰ বাবে দেখুৱাওক</string>\n    <string name=\"pref_grayscale\">ধূসর ৰং</string>\n    <string name=\"pref_inverted_colors\">উলটাই দিয়া ৰং</string>\n    <string name=\"filter_mode_overlay\">আৱৰণ</string>\n    <string name=\"white_background\">বগা</string>\n    <string name=\"edge_nav\">কোন</string>\n    <string name=\"nav_zone_left\">বাঁও</string>\n    <string name=\"pref_category_reading\">পঢ়া</string>\n    <string name=\"pref_webtoon_side_padding\">পৰ্দা পৰিসৰ</string>\n    <string name=\"pref_hide_threshold\">স্ক্ৰ\\'ল কৰিলে মেনু লুকুৱাবৰ সংবেদনশীলতা</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">জুম আউট বন্ধ কৰক</string>\n    <string name=\"fourth_to_last\">চতুৰ্থ শেহতীয়া পঢ়া অধ্যায়</string>\n    <string name=\"pref_download_new_categories_details\">বহিঃস্তৰিত শ্ৰেণীবিভাগত থকা প্ৰৱিষ্টসমূহ ডাউনলোড নহ\\'ব, যদিও সেয়া অন্তৰ্ভুক্ত শ্ৰেণীবিভাগত থাকে।</string>\n    <string name=\"download_ahead\">আগৰ অধ্যায় ডাউনলোড কৰক</string>\n    <string name=\"pref_restore_backup_summ\">বেকআপ ফাইলৰ পৰা গ্ৰন্থাগাৰ পুনৰুদ্ধাৰ কৰক</string>\n    <string name=\"action_create\">সৃষ্টি কৰক</string>\n    <string name=\"invalid_backup_file_missing_manga\">বেকআপত কোনো গ্ৰন্থাগাৰ প্ৰৱিষ্ট নাই।</string>\n    <string name=\"restore_completed\">পুনৰুদ্ধাৰ সম্পূৰ্ণ</string>\n    <string name=\"restore_duration\">%1$02d মিনিট, %2$02d ছেকেণ্ড</string>\n    <string name=\"missing_storage_permission\">সংৰক্ষণ অনুমতি প্ৰদান কৰা হোৱা নাই</string>\n    <string name=\"in_library\">লাইব্ৰেৰীত</string>\n    <string name=\"manga_added_library\">লাইব্ৰেৰীলৈ যোগ কৰা হৈছে</string>\n    <string name=\"track_remove_finish_date_conf_text\">%s পৰা আপোনাৰ আগৰ নিৰ্বাচিত শেষৰ তাৰিখ মচি দিব</string>\n    <string name=\"snack_categories_deleted\">শ্রেণীবোৰ মচি দিয়া হৈছে</string>\n    <string name=\"dialog_with_checkbox_reset\">এই প্ৰৱিষ্টৰ বাবে সকলো অধ্যায়ৰ পুনৰ চেক কৰক</string>\n    <string name=\"update_check_open\">GitHub ত খোলক</string>\n    <string name=\"information_no_downloads\">কোনো ডাউনলোড নাই</string>\n    <string name=\"channel_errors\">ত্ৰুটিসমূহ</string>\n    <string name=\"channel_new_chapters\">অধ্যায় আপডেট</string>\n    <string name=\"exception_http\">HTTP %d, WebView ত ৱেবছাইট পৰীক্ষা কৰক</string>\n    <string name=\"selected\">বাচনি কৰা</string>\n    <string name=\"not_selected\">বাচনি নকৰা</string>\n    <string name=\"action_menu_overflow_description\">অধিক বিকল্প</string>\n    <string name=\"action_bar_up_description\">উৰ্ধে নেভিগেট কৰক</string>\n    <string name=\"name\">নাম</string>\n    <string name=\"categories\">শ্ৰেণীবিভাগসমূহ</string>\n    <string name=\"manga\">পুথিভঁৰালৰ উপাদানসমূহ</string>\n    <string name=\"chapters\">অধ্যায়সমূহ</string>\n    <string name=\"track\">ট্ৰেকিং</string>\n    <string name=\"delete_downloaded\">ডাউনলোড কৰা মচক</string>\n    <string name=\"history\">ইতিহাস</string>\n    <string name=\"scanlator\">স্কেনলেটৰ</string>\n    <string name=\"label_more\">অধিক</string>\n    <string name=\"label_settings\">ছেটিংছ</string>\n    <string name=\"label_download_queue\">ডাউনলোড ক্ৰমানুসাৰী</string>\n    <string name=\"label_recent_manga\">ইতিহাস</string>\n    <string name=\"label_sources\">উৎসসমূহ</string>\n    <string name=\"label_backup\">ব্যাকআপ আৰু পুনৰুদ্ধাৰ</string>\n    <string name=\"label_data_storage\">ডাটা আৰু সংৰক্ষণ</string>\n    <string name=\"label_stats\">পৰিসংখ্যা</string>\n    <string name=\"label_migration\">স্থানান্তৰ</string>\n    <string name=\"label_extensions\">এক্সটেনশ্বনসমূহ</string>\n    <string name=\"label_extension_info\">এক্সটেনশ্বন তথ্য</string>\n    <string name=\"label_help\">সহায়</string>\n    <string name=\"label_warning\">সতৰ্কবাণী</string>\n    <string name=\"confirm_lock_change\">পৰিবৰ্তন নিশ্চিত কৰিবলৈ প্ৰমাণীকৰণ কৰক</string>\n    <string name=\"label_default\">পূৰ্বনির্ধাৰিত</string>\n    <string name=\"action_settings\">সেটিংচ</string>\n    <string name=\"action_menu\">মেনু</string>\n    <string name=\"action_filter\">ফিল্টাৰ</string>\n    <string name=\"action_set_interval\">সময় অন্তৰ্বাল স্থাপন কৰক</string>\n    <string name=\"action_filter_bookmarked\">বুকমাৰ্ক কৰা</string>\n    <string name=\"action_filter_tracked\">ট্ৰেক কৰা</string>\n    <string name=\"action_filter_unread\">অপঢ়া</string>\n    <string name=\"action_filter_interval_custom\">অনুকূলিত আপডেট মাৰ্জিন</string>\n    <string name=\"action_filter_empty\">ফিল্টাৰ আঁতৰাওক</string>\n    <string name=\"action_sort_alpha\">বৰ্ণানুক্ৰমিকভাৱে</string>\n    <string name=\"action_sort_count\">মুঠ প্ৰৱিষ্টি</string>\n    <string name=\"action_sort_total\">মুঠ অধ্যায়</string>\n    <string name=\"action_sort_last_read\">শেষ পঢ়া</string>\n    <string name=\"action_sort_last_manga_update\">শেষ আপডেট পৰীক্ষা</string>\n    <string name=\"action_sort_unread_count\">অপঢ়া সংখ্যাৰ ভিত্তিত</string>\n    <string name=\"action_sort_next_updated\">পৰৱৰ্তী আপডেট আশা কৰা হৈছে</string>\n    <string name=\"action_sort_latest_chapter\">শেষ অধ্যায়</string>\n    <string name=\"action_sort_chapter_fetch_date\">অধ্যায় আহৰণ তাৰিখ</string>\n    <string name=\"action_sort_date_added\">যোগ কৰা তাৰিখ</string>\n    <string name=\"action_search\">সন্ধান কৰক</string>\n    <string name=\"action_sort_tracker_score\">ট্ৰেকাৰ স্ক\\'ৰ</string>\n    <string name=\"action_search_hint\">সন্ধান কৰক…</string>\n    <string name=\"action_search_settings\">সন্ধান সেটিংচ</string>\n    <string name=\"action_global_search\">সৰ্বভৌম সন্ধান</string>\n    <string name=\"action_select_all\">সকলো বাছক</string>\n    <string name=\"action_select_inverse\">বিপৰীত বাছক</string>\n    <string name=\"action_mark_as_read\">পঢ়া বুলি চিহ্নিত কৰক</string>\n    <string name=\"action_mark_as_unread\">অপঢ়া বুলি চিহ্নিত কৰক</string>\n    <string name=\"action_mark_previous_as_read\">পূৰ্বৰটো পঢ়া বুলি চিহ্নিত কৰক</string>\n    <string name=\"action_download\">ডাউনলোড কৰক</string>\n    <string name=\"action_bookmark\">অধ্যায় বুকমাৰ্ক কৰক</string>\n    <string name=\"action_remove_bookmark\">অধ্যায়ৰ বুকমাৰ্ক আঁতৰাওক</string>\n    <string name=\"action_delete\">মচক</string>\n    <string name=\"action_update_library\">পুথিভঁৰাল আপডেট কৰক</string>\n    <string name=\"action_enable_all\">সকলো সক্ৰিয় কৰক</string>\n    <string name=\"action_disable_all\">সকলো নিষ্ক্ৰিয় কৰক</string>\n    <string name=\"action_edit\">সম্পাদনা কৰক</string>\n    <string name=\"action_add\">যোগ কৰক</string>\n    <string name=\"action_update_category\">শ্ৰেণী আপডেট কৰক</string>\n    <string name=\"action_open_random_manga\">এটা যিকোনো প্ৰৱিষ্টি খুলক</string>\n    <string name=\"action_add_category\">শ্ৰেণী যোগ কৰক</string>\n    <string name=\"action_edit_categories\">শ্ৰেণীবোৰ সম্পাদনা কৰক</string>\n    <string name=\"action_rename_category\">শ্ৰেণীৰ নাম সলনি কৰক</string>\n    <string name=\"action_move_category\">শ্ৰেণীবোৰ স্থাপন কৰক</string>\n    <string name=\"delete_category_confirmation\">আপুনি কি %s শ্ৰেণী মচিব বিচাৰে?</string>\n    <string name=\"delete_category\">শ্ৰেণী মচক</string>\n    <string name=\"action_edit_cover\">মুৰৰ পৃষ্ঠাটী সম্পাদনা কৰক</string>\n    <string name=\"action_view_chapters\">অধ্যায়বোৰ চাওক</string>\n    <string name=\"action_pause\">থামক</string>\n    <string name=\"action_previous_chapter\">পূৰ্বৰ অধ্যায়</string>\n    <string name=\"action_next_chapter\">পৰবৰ্তী অধ্যায়</string>\n    <string name=\"action_retry\">আনুষ্ঠানিক প্ৰয়াস কৰক</string>\n    <string name=\"action_remove\">আঁতৰাওক</string>\n    <string name=\"action_copy_to_clipboard\">ক্লিপবোর্ডত কপি কৰক</string>\n    <string name=\"action_remove_everything\">সকলো আঁতৰাওক</string>\n    <string name=\"action_start\">আৰম্ভ কৰক</string>\n    <string name=\"action_resume\">পুনৰ আৰম্ভ কৰক</string>\n    <string name=\"action_copy_link\">লিংক কপি কৰক</string>\n    <string name=\"action_open_in_browser\">ব্ৰাউজাৰত খোলক</string>\n    <string name=\"action_show_manga\">প্ৰৱিষ্টি দেখুৱাওক</string>\n    <string name=\"action_open_in_web_view\">WebViewত খোলক</string>\n    <string name=\"action_migrate\">স্থানান্তৰ কৰক</string>\n    <string name=\"action_display_mode\">প্ৰদৰ্শন মোড</string>\n    <string name=\"action_display\">প্ৰদৰ্শন</string>\n    <string name=\"action_display_grid\">সঙ্কলিত গ্ৰিড</string>\n    <string name=\"action_display_comfortable_grid\">সুবিধাজনক গ্ৰিড</string>\n    <string name=\"action_display_list\">তালিকা</string>\n    <string name=\"action_display_cover_only_grid\">ক\\'ভাৰ-মাত্ৰ গ্ৰিড</string>\n    <string name=\"action_display_download_badge\">ডাউনলোড কৰা অধ্যায়</string>\n    <string name=\"action_display_local_badge\">স্থানীয় উৎস</string>\n    <string name=\"action_display_language_badge\">ভাষা</string>\n    <string name=\"action_display_show_tabs\">শ্ৰেণীৰ ট্যাব দেখুৱাওক</string>\n    <string name=\"action_display_show_number_of_items\">পদাৰ্থৰ সংখ্যা দেখুৱাওক</string>\n    <string name=\"action_display_show_continue_reading_button\">পঢ়া অব্যাহত থকাক বোতাম</string>\n    <string name=\"action_disable\">নিষ্ক্ৰিয় কৰক</string>\n    <string name=\"action_pin\">পিন কৰক</string>\n    <string name=\"action_unpin\">আনপিন কৰক</string>\n    <string name=\"action_apply\">প্ৰয়োগ কৰক</string>\n    <string name=\"action_cancel\">বাতিল কৰক</string>\n    <string name=\"action_ok\">ঠিক আছে</string>\n    <string name=\"action_cancel_all\">সকলো বাতিল কৰক</string>\n    <string name=\"cancel_all_for_series\">এই চিৰিজৰ বাবে সকলো বাতিল কৰক</string>\n    <string name=\"action_sort\">বাছনি কৰক</string>\n    <string name=\"action_order_by_upload_date\">আপলোডৰ তাৰিখ অনুসাৰে</string>\n    <string name=\"action_order_by_chapter_number\">অধ্যায়ৰ নম্বৰ অনুসাৰে</string>\n    <string name=\"action_newest\">সৰ্বনৱীন</string>\n    <string name=\"action_oldest\">সৰ্বপুৰণি</string>\n    <string name=\"action_asc\">উৰ্ধ্বমুখী</string>\n    <string name=\"action_desc\">অধোগামী</string>\n    <string name=\"action_move_to_top\">শীৰ্ষলৈ লৈ যাওক</string>\n    <string name=\"action_move_to_top_all_for_series\">চিৰিজটো শীৰ্ষলৈ লৈ যাওক</string>\n    <string name=\"action_move_to_bottom\">নিম্নলৈ লৈ যাওক</string>\n    <string name=\"action_move_to_bottom_all_for_series\">চিৰিজটো নিম্নলৈ লৈ যাওক</string>\n    <string name=\"action_install\">ইন্সটল কৰক</string>\n    <string name=\"action_share\">শ্বেয়াৰ কৰক</string>\n    <string name=\"action_save\">সংৰক্ষণ কৰক</string>\n    <string name=\"action_reset\">ৰিচছেট কৰক</string>\n    <string name=\"action_revert_to_default\">ডিফল্টলৈ উভতাওক</string>\n    <string name=\"action_undo\">পিছলৈ যাওক</string>\n    <string name=\"action_close\">বন্ধ কৰক</string>\n    <string name=\"action_open_log\">লগ খোলক</string>\n    <string name=\"action_show_errors\">বিস্তারিত চাবলৈ টিপক</string>\n    <string name=\"action_restore\">পুনৰুদ্ধাৰ কৰক</string>\n    <string name=\"action_webview_back\">পিছলৈ</string>\n    <string name=\"action_start_downloading_now\">অতৈৰাই ডাউনলোড আৰম্ভ কৰক</string>\n    <string name=\"action_not_now\">এতিয়া নহয়</string>\n    <string name=\"action_add_anyway\">যিকোনো ক্ষেত্ৰত যোগ কৰক</string>\n    <string name=\"loading\">লোডিং…</string>\n    <string name=\"internal_error\">আন্তৰিক সমস্যাঃ অধিক তথ্যৰ বাবে ক্ৰেশ লগচ চাওক</string>\n    <string name=\"app_not_available\">এপ উপলব্ধ নাই</string>\n    <string name=\"pref_onboarding_guide\">অ\\'নব’ৰ্ডিং গাইড</string>\n    <string name=\"onboarding_heading\">স্বাগতম!</string>\n    <string name=\"onboarding_description\">প্ৰথমে কিছুমান বস্তু ঠিক কৰি লওঁ আহক। এইবোৰ আপুনি পাছত ছেটিংছত গ’ই সলনি কৰিব পাৰে।</string>\n    <string name=\"onboarding_action_finish\">আৰম্ভ কৰক</string>\n    <string name=\"onboarding_action_skip\">স্কিপ কৰক</string>\n    <string name=\"onboarding_storage_info\">%1$s-এ অধ্যায় ডাউনলোড, বেকআপ আৰু আন বহু বস্তু সংৰক্ষণ কৰিব পৰাকৈ এখন ফ’ল্ডাৰ বাচি লওঁক।\n\\n\n\\nএখন সজোৱা ফ’ল্ডাৰ বাচনি কৰা সুচিত।\n\\n\n\\nবাচনি কৰা ফ’ল্ডাৰ: %2$s</string>\n    <string name=\"onboarding_storage_action_select\">এখন ফ’ল্ডাৰ বাচনি কৰক</string>\n    <string name=\"onboarding_storage_selection_required\">এখন ফ’ল্ডাৰ বাচনি কৰিবই লাগিব</string>\n    <string name=\"onboarding_storage_help_info\">আগৰ সংস্কৰণৰ পৰা আপডেট কৰি আছেনে আৰু কি বাচি ল’ব নাজানে? অধিক তথ্যৰ বাবে সঞ্চয় গাইডটো চাওক।</string>\n    <string name=\"onboarding_storage_help_action\">সঞ্চয় গাইড</string>\n    <string name=\"onboarding_permission_install_apps\">এপ স্থাপন অনুমতি</string>\n    <string name=\"onboarding_permission_install_apps_description\">উৎস এক্সটেনচনসমূহ স্থাপন কৰিবলৈ।</string>\n    <string name=\"onboarding_permission_notifications\">নটিফিকেচনৰ অনুমতি</string>\n    <string name=\"onboarding_permission_notifications_description\">লাইব্ৰেৰীৰ আপডেট আৰু আন বহু বস্তুৰ বাবে সতৰ্কতা পাব।</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">পটভূমি বেটাৰী ব্যৱহাৰ</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">দীৰ্ঘম্যাদী লাইব্ৰেৰী আপডেট, ডাউনলোড আৰু বেকআপ পুনৰ স্থাপনৰ অন্তৰায় নোহোৱাৰ বাবে।</string>\n    <string name=\"onboarding_permission_action_grant\">অনুমতি দিয়ক</string>\n    <string name=\"onboarding_guides_new_user\">%s-ৰ নতুন ব্যৱহাৰকাৰী নেকি? আৰম্ভণি গাইড চাবলৈ আমাক সুপারিশ কৰা হৈছে।</string>\n    <string name=\"onboarding_guides_returning_user\">%s পুনৰ ইনষ্টল কৰি আছেনে?</string>\n    <string name=\"pref_category_reader\">পাঠক</string>\n    <string name=\"pref_category_downloads\">ডাউনলোড</string>\n    <string name=\"pref_appearance_summary\">থীম, তাৰিখ আৰু সময়ৰ ফৰ্মেট</string>\n    <string name=\"pref_category_library\">লাইব্ৰেৰী</string>\n    <string name=\"pref_library_summary\">শ্ৰেণীবিভাজন, গ্ল\\'বেল আপডেট, অধ্যায়ৰ সোয়াইপ</string>\n    <string name=\"pref_reader_summary\">পঢ়া ম\\'ড, প্ৰদৰ্শন, নেভিগেচন</string>\n    <string name=\"pref_tracking_summary\">একে-পথৰ প্ৰগতি ছিঙ্ক, উন্নত ছিঙ্ক</string>\n    <string name=\"pref_downloads_summary\">স্বয়ংক্ৰিয় ডাউনলোড, আগতীয়া ডাউনলোড</string>\n    <string name=\"pref_browse_summary\">উৎসসমূহ, এক্সটেনচন, গ্ল\\'বেল অনুসন্ধান</string>\n    <string name=\"pref_advanced_summary\">ক্ৰেশ লগসমূহ ডাম্প কৰক, বেটাৰী অপ্টিমাইজেশ্বন</string>\n    <string name=\"pref_backup_summary\">ম্যানুৱেল আৰু স্বয়ংক্ৰিয় বেকআপ, সঞ্চয় স্থান</string>\n    <string name=\"pref_security_summary\">এপ লক, সুৰক্ষিত পৰ্দা</string>\n    <string name=\"pref_category_theme\">থীম</string>\n    <string name=\"pref_app_theme\">এপ থীম</string>\n    <string name=\"theme_system\">পদ্ধতি</string>\n    <string name=\"theme_light\">হালধীয়া</string>\n    <string name=\"theme_dark\">গাঢ়</string>\n    <string name=\"theme_monet\">ডাইনামিক</string>\n    <string name=\"theme_greenapple\">সেউজ আপেল</string>\n    <string name=\"theme_lavender\">লাভেণ্ডাৰ</string>\n    <string name=\"theme_midnightdusk\">মধ্যৰাতি দুঃখ</string>\n    <string name=\"theme_nord\">ন\\'ৰ্ড</string>\n    <string name=\"theme_strawberrydaiquiri\">ষ্ট্ৰ’বেৰী ডাইকুৱাৰী</string>\n    <string name=\"theme_tako\">তাকো</string>\n    <string name=\"theme_tealturquoise\">টীল আৰু টাৰকুৱইজ</string>\n    <string name=\"theme_yinyang\">ইন আৰু ইয়াং</string>\n    <string name=\"theme_yotsuba\">ইয়তছুবা</string>\n    <string name=\"theme_tidalwave\">টাইডেল ৱেভ</string>\n    <string name=\"pref_dark_theme_pure_black\">বিশুদ্ধ ক\\'লা গাঢ় ম’ড</string>\n    <string name=\"pref_relative_format\">আপেক্ষিক টাইমষ্টেম্প</string>\n    <string name=\"pref_relative_format_summary\">%1$sৰ সলনি %2$s</string>\n    <string name=\"pref_date_format\">তাৰিখৰ ফৰ্মেট</string>\n    <string name=\"pref_manage_notifications\">নটিফিকেচনসমূহ পৰিচালনা কৰক</string>\n    <string name=\"pref_app_language\">এপৰ ভাষা</string>\n    <string name=\"pref_category_security\">নিরাপত্তা আৰু গোপনীয়তা</string>\n    <string name=\"lock_always\">সদায়</string>\n    <string name=\"lock_never\">কেতিয়াও নহয়</string>\n    <string name=\"hide_notification_content\">নটিফিকেশনৰ সামগ্ৰী লুকুৱাওক</string>\n    <string name=\"secure_screen\">সুৰক্ষিত পৰ্দা</string>\n    <string name=\"secure_screen_summary\">সুৰক্ষিত পৰ্দাই এপৰ সামগ্ৰীসমূহক এপ সলনি কৰাৰ সময়ত লুকুৱায় আৰু স্ক্ৰীনশ্বট ব্লক কৰে</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (১৮+) উৎসসমূহ</string>\n    <string name=\"pref_show_nsfw_source\">উৎস আৰু এক্সটেনচনৰ তালিকাত দেখুৱাওক</string>\n    <string name=\"parental_controls_info\">এইটো আনুষ্ঠানিকভাৱে অনুমোদিত নহয় বা ভুলকৈ চিহ্নিত কৰা এক্সটেনচনে NSFW (১৮+) বিষয়বস্তু দেখুৱাব পাৰে।</string>\n    <string name=\"relative_time_today\">আজি</string>\n    <string name=\"pref_category_display\">প্ৰদৰ্শন</string>\n    <string name=\"pref_library_columns\">শাৰীপ্ৰতি বস্তুসমূহ</string>\n    <string name=\"pref_library_update_interval\">স্বয়ংক্ৰিয় আপডেট</string>\n    <string name=\"update_never\">বন্ধ</string>\n    <string name=\"update_12hour\">প্ৰতি ১২ ঘণ্টা</string>\n    <string name=\"update_6hour\">প্ৰতি ৬ ঘণ্টা</string>\n    <string name=\"update_24hour\">প্ৰতি দিন</string>\n    <string name=\"update_48hour\">প্ৰতি ২ দিন</string>\n    <string name=\"update_72hour\">প্ৰতি ৩ দিন</string>\n    <string name=\"update_weekly\">প্ৰতি সপ্তাহ</string>\n    <string name=\"restrictions\">সীমাবদ্ধতা: %s</string>\n    <string name=\"pref_update_only_started\">অ আৰম্ভিত প্ৰৱিষ্টিসমূহ আঁতৰাওক</string>\n    <string name=\"pref_update_only_in_release_period\">পৰৱৰ্তী মুক্তিৰ সময় অনুমান কৰক</string>\n    <string name=\"pref_library_update_show_tab_badge\">আপডেট আইকনৰ ওপৰত অপঠিত গণনা দেখুৱাওক</string>\n    <string name=\"pref_library_update_refresh_metadata\">স্বয়ংক্ৰিয়ভাৱে মেটাডাটা ৰিফ্ৰেশ কৰক</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">লাইব্ৰেৰী আপডেট কৰাৰ সময়ত নতুন কাভাৰ আৰু বিৱৰণৰ সন্ধান কৰক</string>\n    <string name=\"default_category_summary\">সদায় সোধা হব</string>\n    <string name=\"categorized_display_settings\">শ্ৰেণী অনুসৰি ছাঁটকৰণৰ বাবে বিৱৰণী ছেটিংছ</string>\n    <string name=\"pref_library_update_categories_details\">অন্তৰ্ভুক্ত শ্ৰেণীত থাকিলেও বাদ দিয়া শ্ৰেণীসমূহৰ প্ৰৱিষ্টিসমূহ আপডেট নহ’ব।</string>\n    <string name=\"none\">কোনোও নহয়</string>\n    <string name=\"include\">অন্তৰ্ভুক্ত: %s</string>\n    <string name=\"exclude\">বাদ দিয়া: %s</string>\n    <string name=\"pref_chapter_swipe_end\">সোঁফালে চুইপ কৰা কাৰ্য</string>\n    <string name=\"pref_chapter_swipe_start\">বাওঁফালে চুইপ কৰা কাৰ্য</string>\n    <string name=\"multi_lang\">বহুভাষী</string>\n    <string name=\"ext_updates_pending\">আপডেট মুলতুবি আছে</string>\n    <string name=\"ext_update\">আপডেট কৰক</string>\n    <string name=\"ext_install\">ইন্সটল কৰক</string>\n    <string name=\"ext_update_all\">সকলো আপডেট কৰক</string>\n    <string name=\"ext_pending\">মুলতুবি</string>\n    <string name=\"ext_downloading\">ডাউনলোড কৰি আছে</string>\n    <string name=\"ext_installing\">ইন্সটল কৰি আছে</string>\n    <string name=\"ext_installed\">ইন্সটল কৰা হৈছে</string>\n    <string name=\"ext_trust\">বিশ্বাস কৰক</string>\n    <string name=\"ext_untrusted\">অবিশ্বাস্য</string>\n    <string name=\"ext_uninstall\">আনইন্সটল কৰক</string>\n    <string name=\"ext_app_info\">এপৰ তথ্য</string>\n    <string name=\"untrusted_extension\">অবিশ্বাস্য এক্সটেনশন</string>\n    <string name=\"obsolete_extension_message\">এই এক্সটেনচন এতিয়া উপলব্ধ নাই। ই হয়তো সঠিকভাৱে কাম নকৰে আৰু এপৰ লগত সমস্যা সৃষ্টি কৰিব পাৰে। ই আনইন্সটল কৰাৰ পৰামৰ্শ দিয়া হৈছে।</string>\n    <string name=\"extension_api_error\">উপলব্ধ এক্সটেনচনসমূহ পোৱা বিফল</string>\n    <string name=\"untrusted_extension_message\">দুৰভিসন্ধি এক্সটেনচনে সংৰক্ষিত যিকোনো লগইন প্ৰমাণপত্ৰ পঢ়িব পাৰে বা যিকোনো কোড চলাব পাৰে।\n\\n\n\\nএই এক্সটেনশন বিশ্বাস কৰিলে, আপুনি এই বিপদসমূহ স্বীকাৰ কৰিছে।</string>\n    <string name=\"ext_info_version\">সংস্কৰণ</string>\n    <string name=\"ext_nsfw_warning\">এই এক্সটেনচনৰ উৎসসমূহত NSFW (১৮+) বিষয়বস্তু থাকিব পাৰে</string>\n    <string name=\"ext_info_language\">ভাষা</string>\n    <string name=\"ext_nsfw_short\">১৮+</string>\n    <string name=\"ext_permission_install_apps_warning\">এক্সটেনচন ইন্সটল কৰিবলৈ অনুমতিৰ প্ৰয়োজন। ইয়াত টিপক।</string>\n    <string name=\"ext_install_service_notif\">এক্সটেনচন ইন্সটল কৰি আছে…</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku চলি নাই</string>\n    <string name=\"ext_revoke_trust\">অজ্ঞাত এক্সটেনচন বিশ্বাসৰ অধিকার বাতিল কৰক</string>\n    <string name=\"label_extension_repos\">এক্সটেনচন ৰেপোৰসমূহ</string>\n    <string name=\"information_empty_repos\">আপোনাৰ কোনো ৰেপো নাই।</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizuku ইন্সটল কৰক আৰু আৰম্ভ কৰক Shizuku এক্সটেনচন ইন্সটলাৰ হিচাপে ব্যৱহাৰ কৰিবলৈ।</string>\n    <string name=\"action_add_repo\">ৰেপো যোগ কৰক</string>\n    <string name=\"label_add_repo_input\">ৰেপো URL</string>\n    <string name=\"action_add_repo_message\">%s-ত অতিৰিক্ত ৰেপো যোগ কৰক। এইটো এনেকুৱা এটা URL হ\\'ব লাগিব যাৰ শেষত index.min.json থাকে।</string>\n    <string name=\"action_delete_repo\">ৰেপো মচক</string>\n    <string name=\"invalid_repo_name\">অবৈধ ৰেপো URL</string>\n    <string name=\"delete_repo_confirmation\">আপুনি কি ৰেপো %s মচিব বিচাৰে?</string>\n    <string name=\"add_repo_confirmation\">আপুনি কি ৰেপো %s যোগ কৰিব বিচাৰে?</string>\n    <string name=\"action_replace_repo_title\">স্বাক্ষৰ কি ফিংগাৰপ্ৰিন্ট ইতিমধ্যে আছে</string>\n    <string name=\"action_replace_repo_message\">ৰেপ’জিটৰী %1$s ৰ %2$s স্বাক্ষৰ কী ফিংগাৰপ্ৰিন্টৰ সৈতে একে।\n\\nযদি ই আশা কৰা হয়, %2$s প্রতিস্থাপন কৰা হ\\'ব, নহ\\'লে আপোনাৰ ৰেপো ৰক্ষণাবেক্ষকক যোগাযোগ কৰক।</string>\n    <string name=\"pref_fullscreen\">সম্পূৰ্ণ পর্দা</string>\n    <string name=\"pref_show_navigation_mode\">টেপৰ অঞ্চলসমূহ দেখুৱাওক</string>\n    <string name=\"pref_dual_page_split\">ব্যাপক পৃষ্ঠাবোৰ ভাগ কৰা</string>\n    <string name=\"pref_dual_page_invert\">পৃষ্ঠাৰ স্থান বিপৰীত কৰক</string>\n    <string name=\"pref_dual_page_invert_summary\">যদি ব্যাপক পৃষ্ঠাবোৰৰ স্থান পঢ়া দিশৰ সৈতে মিল নাখায়</string>\n    <string name=\"pref_page_rotate\">ব্যাপক পৃষ্ঠাবোৰ ফিট কৰিবলৈ ঘুৰাওক</string>\n    <string name=\"pref_page_rotate_invert\">ঘূৰোৱা ব্যাপক পৃষ্ঠাৰ অভিমুখ উলটাই দিয়া</string>\n    <string name=\"pref_double_tap_zoom\">জুম কৰিবলৈ দ্বৈত টেপ কৰক</string>\n    <string name=\"pref_cutout_short\">কণ্টেন্ট কেটাৰ অঞ্চলত দেখুৱাওক</string>\n    <string name=\"pref_page_transitions\">পৃষ্ঠা স্থানান্তৰৰ অ্যানিমেচন</string>\n    <string name=\"pref_flash_page\">পৃষ্ঠা পৰিবৰ্তনৰ সময়ত ফ্লেচ</string>\n    <string name=\"pref_flash_page_summ\">ই-ইঙ্ক স্ক্ৰিনত ঘোস্টিং কমায়</string>\n    <string name=\"pref_flash_duration\">ফ্লেচৰ সময়সীমা</string>\n    <string name=\"pref_flash_duration_summary\">%1$s মি.চি.</string>\n    <string name=\"pref_flash_page_interval\">প্ৰতি পৃষ্ঠা ফ্লেচ</string>\n    <string name=\"pref_flash_with\">ফ্লেচ কৰক</string>\n    <string name=\"pref_flash_style_black\">ক\\'লা</string>\n    <string name=\"pref_flash_style_white\">বগা</string>\n    <string name=\"pref_double_tap_anim_speed\">দ্বৈত টেপৰ অ্যানিমেচনৰ গতি</string>\n    <string name=\"pref_flash_style_white_black\">বগা আৰু ক\\'লা</string>\n    <string name=\"pref_show_page_number\">পৃষ্ঠা নম্বৰ দেখুৱাওক</string>\n    <string name=\"pref_show_reading_mode\">পঢ়া মোড দেখুৱাওক</string>\n    <string name=\"pref_show_reading_mode_summary\">পঢ়ুৱৈ খোলাৰ সময়ত ক্ষণেকৰ বাবে বৰ্তমান মোড দেখুৱাওক</string>\n    <string name=\"pref_display_profile\">নিজস্ব প্ৰদৰ্শন প্ৰফাইল</string>\n    <string name=\"pref_crop_borders\">কোনবোৰ কটক</string>\n    <string name=\"pref_custom_brightness\">নিজস্ব উজ্জ্বলতা</string>\n    <string name=\"pref_color_filter_mode\">ৰং চাবনি মিশ্ৰণ মোড</string>\n    <string name=\"filter_mode_multiply\">গুণন</string>\n    <string name=\"filter_mode_screen\">স্ক্ৰিন</string>\n    <string name=\"pref_custom_color_filter\">নিজস্ব ৰং চাবনি</string>\n    <string name=\"filter_mode_lighten\">ডজ/পোহৰ কৰা</string>\n    <string name=\"filter_mode_darken\">জ্বলাই/অন্ধকাৰ কৰা</string>\n    <string name=\"pref_keep_screen_on\">পৰ্দা চালু ৰাখক</string>\n    <string name=\"pref_skip_read_chapters\">পঢ়া অধ্যায়সমূহ বাদ দিয়ক</string>\n    <string name=\"pref_skip_filtered_chapters\">ফিল্টাৰ কৰা অধ্যায়সমূহ বাদ দিয়ক</string>\n    <string name=\"pref_skip_dupe_chapters\">ডুপ্লিকেট অধ্যায়সমূহ বাদ দিয়ক</string>\n    <string name=\"pref_reader_navigation\">সংক্ৰান্তি</string>\n    <string name=\"pref_read_with_tapping_inverted\">টেপৰ অঞ্চলসমূহ উলটাই দিয়া</string>\n    <string name=\"tapping_inverted_none\">একো নহয়</string>\n    <string name=\"tapping_inverted_horizontal\">আনুভূমিক</string>\n    <string name=\"pref_read_with_volume_keys\">ভলিউম কী</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">ভলিউম কী উলটাই দিয়া</string>\n    <string name=\"tapping_inverted_both\">দুয়োটা</string>\n    <string name=\"pref_reader_actions\">কৰ্মসমূহ</string>\n    <string name=\"pref_create_folder_per_manga_summary\">প্ৰবিষ্ট শিৰোনামৰ অনুসৰি ফোল্ডাৰ সৃষ্টি কৰে</string>\n    <string name=\"pref_read_with_long_tap\">দীৰ্ঘ টেপত কৰ্মসমূহ দেখুৱাওক</string>\n    <string name=\"pref_create_folder_per_manga\">প্ৰতি মাঙ্গাৰ বাবে পৃথক ফোল্ডাৰ সংৰক্ষণ কৰক</string>\n    <string name=\"pref_reader_theme\">পটভূমি ৰং</string>\n    <string name=\"gray_background\">ধূসৰ</string>\n    <string name=\"black_background\">ক\\'লা</string>\n    <string name=\"l_nav\">এল আকৃতিৰ</string>\n    <string name=\"automatic_background\">স্বয়ংক্ৰিয়</string>\n    <string name=\"pref_viewer_type\">ডিফল্ট পঢ়া মোড</string>\n    <string name=\"kindlish_nav\">কিন্ডল-যুক্ত</string>\n    <string name=\"right_and_left_nav\">সোঁমুখ আৰু বাঁওমুখ</string>\n    <string name=\"disabled_nav\">অক্ষম</string>\n    <string name=\"nav_zone_prev\">পূৰ্বৱৰ্তী</string>\n    <string name=\"nav_zone_next\">পৰৱৰ্তী</string>\n    <string name=\"nav_zone_right\">সোঁ</string>\n    <string name=\"left_to_right_viewer\">পৃষ্ঠা (বাঁওৰ পৰা সোঁ)</string>\n    <string name=\"right_to_left_viewer\">পৃষ্ঠা (সোঁৰ পৰা বাঁও)</string>\n    <string name=\"vertical_viewer\">পৃষ্ঠা (উল্লম্ব)</string>\n    <string name=\"webtoon_viewer\">দীঘল ফিতা</string>\n    <string name=\"vertical_plus_viewer\">ফাক থকা দীঘল ফিতা</string>\n    <string name=\"pager_viewer\">পৃষ্ঠা কৰা</string>\n    <string name=\"pref_viewer_nav\">টেপৰ অঞ্চলসমূহ</string>\n    <string name=\"pref_image_scale_type\">স্কেল প্ৰকাৰ</string>\n    <string name=\"scale_type_fit_screen\">পৰ্দাত ফিট কৰক</string>\n    <string name=\"scale_type_stretch\">প্ৰসাৰিত কৰক</string>\n    <string name=\"scale_type_fit_width\">পলমাই ফিট কৰক</string>\n    <string name=\"scale_type_fit_height\">উচ্চতাই ফিট কৰক</string>\n    <string name=\"scale_type_original_size\">মূল আকাৰ</string>\n    <string name=\"scale_type_smart_fit\">চতুৰ ফিট</string>\n    <string name=\"pref_navigate_pan\">ব্যাপক চিত্ৰসমূহ পেন কৰক</string>\n    <string name=\"pref_landscape_zoom\">স্বয়ংক্ৰিয়ভাৱে ব্যাপক চিত্ৰত জুম কৰক</string>\n    <string name=\"pref_zoom_start\">জুম আৰম্ভ স্থান</string>\n    <string name=\"zoom_start_automatic\">স্বয়ংক্ৰিয়</string>\n    <string name=\"zoom_start_left\">বাঁও</string>\n    <string name=\"zoom_start_right\">সোঁ</string>\n    <string name=\"zoom_start_center\">মধ্যম</string>\n    <string name=\"double_tap_anim_speed_0\">অ্যানিমেচন নাই</string>\n    <string name=\"double_tap_anim_speed_normal\">সাধাৰণ</string>\n    <string name=\"double_tap_anim_speed_fast\">দ্ৰুত</string>\n    <string name=\"pref_rotation_type\">ডিফল্ট ঘূৰণ</string>\n    <string name=\"rotation_type\">ঘূৰণ</string>\n    <string name=\"rotation_free\">মুক্ত</string>\n    <string name=\"rotation_portrait\">প’ৰট্ৰেইট</string>\n    <string name=\"rotation_landscape\">ল্যান্ডস্কেপ</string>\n    <string name=\"rotation_force_portrait\">প’ৰট্ৰেইট তালাচি</string>\n    <string name=\"rotation_force_landscape\">ল্যান্ডস্কেপ তালাচি</string>\n    <string name=\"rotation_reverse_portrait\">প’ৰট্ৰেইট বিপৰীত</string>\n    <string name=\"color_filter_r_value\">ৰঙা</string>\n    <string name=\"color_filter_g_value\">সেউজীয়া</string>\n    <string name=\"color_filter_b_value\">নীলা</string>\n    <string name=\"color_filter_a_value\">আলফা</string>\n    <string name=\"pref_always_show_chapter_transition\">সৰ্বদা অধ্যায় পৰিবৰ্তন দেখুৱাও</string>\n    <string name=\"pref_category_reading_mode\">পঢ়াৰ মোড</string>\n    <string name=\"pref_highest\">সৰ্বোচ্চ</string>\n    <string name=\"pref_high\">উচ্চ</string>\n    <string name=\"pref_low\">নিম্ন</string>\n    <string name=\"pref_lowest\">সৰ্বনিম্ন</string>\n    <string name=\"pref_category_delete_chapters\">অধ্যায় মচা</string>\n    <string name=\"pref_remove_after_marked_as_read\">হস্তচালিতভাবে পঢ়া চিহ্নিত কৰাৰ পিছত</string>\n    <string name=\"pref_remove_after_read\">পঢ়াৰ পিছত স্বয়ংক্ৰিয়ভাৱে মচা</string>\n    <string name=\"pref_remove_bookmarked_chapters\">বুকমাৰ্ক কৰা অধ্যায় মচাৰ অনুমতি দিয়ক</string>\n    <string name=\"pref_remove_exclude_categories\">বহিঃস্তৰিত শ্ৰেণীবিভাগসমূহ</string>\n    <string name=\"no_location_set\">কোনো সংৰক্ষণ স্থান নিৰ্ধাৰিত নহয়</string>\n    <string name=\"invalid_location\">অবৈধ স্থান: %s</string>\n    <string name=\"disabled\">বন্‌ধ</string>\n    <string name=\"last_read_chapter\">শেহতীয়া পঢ়া অধ্যায়</string>\n    <string name=\"second_to_last\">দ্বিতীয় শেহতীয়া পঢ়া অধ্যায়</string>\n    <string name=\"third_to_last\">তৃতীয় শেহতীয়া পঢ়া অধ্যায়</string>\n    <string name=\"fifth_to_last\">পঞ্চম শেহতীয়া পঢ়া অধ্যায়</string>\n    <string name=\"pref_category_auto_download\">স্বয়ংক্ৰিয় ডাউনলোড</string>\n    <string name=\"pref_download_new\">নতুন অধ্যায় ডাউনলোড কৰক</string>\n    <string name=\"pref_download_new_unread_chapters_only\">পঢ়া অধ্যায়ৰ অনুলিপি ডাউনলোড এৰাব</string>\n    <string name=\"auto_download_while_reading\">পঢ়াৰ সময়ত স্বয়ংক্ৰিয় ডাউনলোড</string>\n    <string name=\"download_ahead_info\">মাত্ৰ কাৰ্যকৰী যদি বৰ্তমান অধ্যায় আৰু পৰৱৰ্তী অধ্যায় ইতিমধ্যে ডাউনলোড কৰা হৈছে।</string>\n    <string name=\"save_chapter_as_cbz\">CBZ আর্কাইভ হিচাপে সংৰক্ষণ কৰক</string>\n    <string name=\"split_tall_images\">দীঘল চিত্ৰসমূহ ভাগ কৰক</string>\n    <string name=\"split_tall_images_summary\">পঢ়াৰ কাৰ্যক্ষমতা উন্নত কৰে</string>\n    <string name=\"services\">ট্ৰেকাৰসমূহ</string>\n    <string name=\"tracking_guide\">ট্ৰেকিং গাইড</string>\n    <string name=\"pref_auto_update_manga_sync\">পঢ়াৰ পাছত অগ্ৰগতি সৰ্পণ কৰক</string>\n    <string name=\"tracking_info\">বাহ্যিক ট্ৰেকাৰ সেৱাত অধ্যায়ৰ অগ্ৰগতি সৰ্পণ কৰিবলৈ একপথৰ সমন্বয়। তেওঁলোকৰ ট্ৰেকিং বুটামৰ পৰা ব্যক্তিগত প্ৰৱিষ্টৰ বাবে ট্ৰেকিং সেট আপ কৰক।</string>\n    <string name=\"enhanced_services\">উন্নত ট্ৰেকাৰসমূহ</string>\n    <string name=\"enhanced_services_not_installed\">উপলব্ধ কিন্তু উৎস ইন্সটল কৰা নাই: %s</string>\n    <string name=\"enhanced_tracking_info\">বিশেষ উৎসৰ বাবে উন্নত বৈশিষ্ট্য প্ৰদান কৰে। আপোনাৰ গ্ৰন্থাগাৰত যোগ কৰা হ\\'ল পৰিসৰটো স্বয়ংক্ৰিয়ভাৱে ট্ৰেক কৰা হয়।</string>\n    <string name=\"action_track\">ট্ৰেক কৰক</string>\n    <string name=\"track_activity_name\">ট্ৰেকাৰ লগইন</string>\n    <string name=\"pref_hide_in_library_items\">গ্ৰন্থাগাৰত ইতিমধ্যে থকা প্ৰৱিষ্টসমূহ লুকুৱাও</string>\n    <string name=\"pref_storage_location_info\">স্বয়ংক্ৰিয় বেকআপ, অধ্যায় ডাউনলোড, আৰু স্থানীয় উৎসৰ বাবে ব্যৱহৃত।</string>\n    <string name=\"pref_storage_location\">সংৰক্ষণ স্থান</string>\n    <string name=\"pref_create_backup\">বেকআপ সৃষ্টি কৰক</string>\n    <string name=\"pref_restore_backup\">বেকআপ পুনৰুদ্ধাৰ কৰক</string>\n    <string name=\"pref_backup_interval\">স্বয়ংক্ৰিয় বেকআপৰ সঁত্ৰণ</string>\n    <string name=\"backup_created\">বেকআপ সৃষ্টি কৰা হৈছে</string>\n    <string name=\"pref_create_backup_summ\">বৰ্তমান গ্ৰন্থাগাৰ পুনৰুদ্ধাৰ কৰিবলৈ ব্যৱহৃত হ\\'ব</string>\n    <string name=\"invalid_backup_file\">অবৈধ বেকআপ ফাইল:</string>\n    <string name=\"invalid_backup_file_error\">সম্পূৰ্ণ ত্ৰুটি:</string>\n    <string name=\"invalid_backup_file_json\">JSON বেকআপ সমৰ্থিত নহয়</string>\n    <string name=\"invalid_backup_file_unknown\">বেকআপ ফাইলৰ ত্ৰুটি</string>\n    <string name=\"backup_restore_missing_sources\">অপেক্ষিত উৎসসমূহ:</string>\n    <string name=\"backup_restore_missing_trackers\">ট্ৰেকাৰসমূহ লগইন হোৱা নাই:</string>\n    <string name=\"backup_restore_content_full\">আপোনাৰ গ্ৰন্থাগাৰ ব্যৱহাৰ কৰিবলৈ যিকোনো অনুপস্থিত এক্সটেনচনসমূহ ইনষ্টল কৰিবলৈ আৰু তাৰপিছত ট্ৰেকিং সেৱাসমূহত লগইন কৰিবলৈ লাগিব।</string>\n    <string name=\"backup_in_progress\">বেকআপ ইতিমধ্যে চলিত আছে</string>\n    <string name=\"backup_choice\">আপুনি কি বেকআপ কৰিব বিচাৰে?</string>\n    <string name=\"app_settings\">এপ্পৰ ছেটিংছ</string>\n    <string name=\"source_settings\">উৎসৰ ছেটিংছ</string>\n    <string name=\"extensionRepo_settings\">এক্সটেনচন ৰেপ\\'জ</string>\n    <string name=\"private_settings\">সংবেদনশীল ছেটিংছ অন্তৰ্ভুক্ত কৰক (যেনে, ট্ৰেকাৰ লগইন টোকেন)</string>\n    <string name=\"creating_backup\">বেকআপ সৃষ্টি কৰা হৈছে</string>\n    <string name=\"creating_backup_error\">বেকআপ ব্যৰ্থ</string>\n    <string name=\"empty_backup_error\">বেকআপ কৰিবলৈ কোনো গ্ৰন্থাগাৰ প্ৰৱিষ্ট নাই</string>\n    <string name=\"create_backup_file_error\">বেকআপ ফাইল সৃষ্টি কৰিব নোৱাৰিলে</string>\n    <string name=\"restore_miui_warning\">MIUI অপটিমাইজেশ্বন বন্ধ থাকিলে বেকআপ/পুনৰুদ্ধাৰ সঠিকভাৱে কাৰ্য কৰিব নোৱাৰে।</string>\n    <string name=\"restore_in_progress\">পুনৰুদ্ধাৰ ইতিমধ্যে চলিত আছে</string>\n    <string name=\"restoring_backup\">বেকআপ পুনৰুদ্ধাৰ কৰা হৈছে</string>\n    <string name=\"restoring_backup_error\">বেকআপ পুনৰুদ্ধাৰ ব্যৰ্থ</string>\n    <string name=\"restoring_backup_canceled\">পুনৰুদ্ধাৰ বাতিল</string>\n    <string name=\"last_auto_backup_info\">শেষ স্বয়ংক্ৰিয় বেকআপ: %s</string>\n    <string name=\"backup_info\">আপোনাৰ বেকআপৰ কপি অন্য ঠাইত ৰাখিব লাগে। বেকআপসমূহত সংবেদনশীল তথ্য অন্তৰ্ভুক্ত থাকিব পাৰে, যাৰ ভিতৰত কোনো সংৰক্ষিত পাসৱৰ্ড; ভাগ দিবৰ ক্ষেত্ৰত সাৱধান হ\\'ব।</string>\n    <string name=\"label_data\">ডাটা</string>\n    <string name=\"available_disk_space_info\">উপলব্ধ: %1$s / মুঠ: %2$s</string>\n    <string name=\"pref_clear_chapter_cache\">অধ্যায় কেছ ক্লিয়াৰ কৰক</string>\n    <string name=\"pref_storage_usage\">সংৰক্ষণ ব্যৱহাৰ</string>\n    <string name=\"used_cache\">ব্যৱহৃত: %1$s</string>\n    <string name=\"cache_deleted\">কেছ ক্লিয়াৰ কৰা হৈছে, %1$d ফাইল মচা হৈছে</string>\n    <string name=\"cache_delete_error\">ক্লিয়াৰ কৰাৰ সময়ত ত্ৰুটি</string>\n    <string name=\"pref_auto_clear_chapter_cache\">এপ্লিকেচন আৰম্ভণিৰ সময়ত অধ্যায় কেছ ক্লিয়াৰ কৰক</string>\n    <string name=\"syncing_library\">গ্ৰন্থাগাৰ সমন্বয় কৰা হৈছে</string>\n    <string name=\"library_sync_complete\">গ্ৰন্থাগাৰ সমন্বয় সম্পূৰ্ণ</string>\n    <string name=\"label_network\">নেটৱৰ্কিং</string>\n    <string name=\"pref_clear_cookies\">কুকি মচা</string>\n    <string name=\"pref_dns_over_https\">DNS HTTPSৰ ওপৰত (DoH)</string>\n    <string name=\"pref_user_agent_string\">ডিফল্ট ইউজাৰ এজেন্ট ষ্ট্ৰিং</string>\n    <string name=\"error_user_agent_string_blank\">ইউজাৰ এজেন্ট ষ্ট্ৰিং খালী নহ\\'ব পাৰে</string>\n    <string name=\"error_user_agent_string_invalid\">অবৈধ ইউজাৰ এজেন্ট ষ্ট্ৰিং</string>\n    <string name=\"pref_reset_user_agent_string\">ডিফল্ট ইউজাৰ এজেন্ট ষ্ট্ৰিং পুনৰ চমা</string>\n    <string name=\"requires_app_restart\">কাৰ্য্যকৰী হবলৈ এপ পুনৰ আৰম্ভণি প্ৰয়োজন</string>\n    <string name=\"cookies_cleared\">কুকি মচা হৈছে</string>\n    <string name=\"pref_invalidate_download_cache\">ডাউনলোডসমূহ পুনৰ সূচীভুক্ত কৰক</string>\n    <string name=\"download_cache_invalidated\">ডাউনলোড কেচ অবৈধ কৰা হৈছে</string>\n    <string name=\"pref_invalidate_download_cache_summary\">ডাউনলোড কৰা অধ্যায়সমূহ পুনৰ পৰীক্ষা কৰিবলৈ এপটো বাধ্য কৰা</string>\n    <string name=\"pref_clear_database\">ডাটাবেচ মচা</string>\n    <string name=\"pref_clear_database_summary\">আপোনাৰ লাইব্ৰেৰিত সংৰক্ষণ কৰা হোৱা নথিৰ ইতিহাস মচা</string>\n    <string name=\"clear_database_source_item_count\">ডাটাবেচত %1$d লাইব্ৰেৰিত নথিৰ সংখ্যা</string>\n    <string name=\"clear_database_completed\">নথি মচা হৈছে</string>\n    <string name=\"database_clean\">মচাৰ বাবে কিবা নাই</string>\n    <string name=\"pref_clear_webview_data\">WebView ডাটা মচা</string>\n    <string name=\"webview_data_deleted\">WebView ডাটা মচা হৈছে</string>\n    <string name=\"pref_refresh_library_covers\">লাইব্ৰেৰীৰ কভাৰসমূহ পুনৰ পূৰ্ণ কৰা</string>\n    <string name=\"pref_reset_viewer_flags\">প্ৰতি-সিৰিজ পাঠক স্থিতি পুনৰ চমা</string>\n    <string name=\"pref_reset_viewer_flags_summary\">সকল সিৰিজৰ পঢ়াৰ মড আৰু দিশ পুনৰ চমা</string>\n    <string name=\"pref_reset_viewer_flags_success\">সকলো পাঠক স্থিতি পুনৰ চমা</string>\n    <string name=\"pref_reset_viewer_flags_error\">পাঠক স্থিতি পুনৰ চমা হোৱা নাই</string>\n    <string name=\"pref_dump_crash_logs\">ক্রাশ লগসমূহ ভাগ কৰক</string>\n    <string name=\"pref_dump_crash_logs_summary\">ডেভেলপাৰসকলৰ সৈতে ভাগ কৰিবলৈ ত্ৰুটি লগসমূহ ফাইলত সংৰক্ষণ কৰক</string>\n    <string name=\"label_background_activity\">পটভূমি কাৰ্যকলাপ</string>\n    <string name=\"pref_disable_battery_optimization\">বেটাৰী অপ্টিমাইজেশন বন্ধ কৰক</string>\n    <string name=\"pref_disable_battery_optimization_summary\">পটভূমি লাইব্ৰেৰী আপডেট আৰু বেকআপত সহায় কৰে</string>\n    <string name=\"battery_optimization_disabled\">বেটাৰী অপ্টিমাইজেশন ইতিমধ্যে বন্ধ হৈছে</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">ডিভাইচৰ ছেটিংচ খোলাত অক্ষম</string>\n    <string name=\"about_dont_kill_my_app\">কিছুমান নিৰ্মাতাৰ অতিরিক্ত এপ নিষেধাজ্ঞা থাকে যি পটভূমি সেৱাসমূহ বন্ধ কৰে। ইয়াত অধিক তথ্য উপলব্ধ হৈছে কিদৰে সুৰ কৰক।</string>\n    <string name=\"pref_tablet_ui_mode\">টেবলেট UI</string>\n    <string name=\"pref_verbose_logging\">বিৱৰণযুক্ত লগিং</string>\n    <string name=\"pref_verbose_logging_summary\">ব্যৱস্থাৰ লগত বিৱৰণযুক্ত লগ প্ৰিন্ট কৰে (এপৰ কাৰ্যক্ষমতা হ্ৰাস কৰে)</string>\n    <string name=\"pref_debug_info\">ডিবাগ তথ্য</string>\n    <string name=\"whats_new\">নতুন কি</string>\n    <string name=\"website\">ৱেবছাইট</string>\n    <string name=\"version\">সংস্কৰণ</string>\n    <string name=\"help_translate\">অনুবাদ কৰিবলৈ সহায় কৰক</string>\n    <string name=\"licenses\">খুলা উৎস লাইচেন্স</string>\n    <string name=\"privacy_policy\">গোপনীয়তা নীতি</string>\n    <string name=\"check_for_updates\">আপডেট চাওক</string>\n    <string name=\"updated_version\">v%1$s ত আপডেট কৰা হৈছে</string>\n    <string name=\"pref_enable_acra\">ক্রাশ ৰিপ\\'ৰ্ট পঠিয়াব</string>\n    <string name=\"pref_acra_summary\">যিকোনো বাগ মেলাবলৈ সহায় কৰে। কোনো সংবেদনশীল তথ্য পঠিয়াব নোৱাৰি</string>\n    <string name=\"fdroid_warning\">F-Droid নিৰ্মাণসমূহৰ আনুষ্ঠানিক সমৰ্থন নাই।\n\\nঅধিক জানিবলৈ টেপ কৰক।</string>\n    <string name=\"label_downloaded_only\">মাত্ৰ ডাউনলোড কৰা</string>\n    <string name=\"notification_incognito_text\">ইনকগনিটো মড নিষ্ক্ৰিয় কৰক</string>\n    <string name=\"pref_incognito_mode\">ইনকগনিটো মড</string>\n    <string name=\"pref_incognito_mode_summary\">পঢ়াৰ ইতিহাস থামায়</string>\n    <string name=\"downloaded_only_summary\">আপোনাৰ লাইব্ৰেৰীৰ সকলো নথি ফিল্টাৰ কৰে</string>\n    <string name=\"login_title\">%1$s ত লগ ইন কৰক</string>\n    <string name=\"username\">ইউজাৰনেম</string>\n    <string name=\"email\">ইমেইল ঠিকনা</string>\n    <string name=\"password\">পাছৱাৰ্ড</string>\n    <string name=\"login\">লগইন</string>\n    <string name=\"login_success\">লগ ইন হৈছে</string>\n    <string name=\"logout_title\">%1$s পৰা লগ আউট কৰিবলৈ?</string>\n    <string name=\"logout\">লগ আউট</string>\n    <string name=\"logout_success\">আপুনি এতিয়া লগ আউট হৈছে</string>\n    <string name=\"downloaded_chapters\">ডাউনলোড কৰা অধ্যায়</string>\n    <string name=\"intervals_header\">অন্তৰালসমূহ</string>\n    <string name=\"unknown_error\">অজ্ঞাত ত্ৰুটি</string>\n    <string name=\"overlay_header\">অৱলম্বন</string>\n    <string name=\"updating_category\">শ্ৰেণী আপডেট কৰা</string>\n    <string name=\"manga_from_library\">লাইব্ৰেৰীৰ পৰা</string>\n    <string name=\"tabs_header\">টেব</string>\n    <string name=\"no_more_results\">অধিক ফলাফল নাই</string>\n    <string name=\"no_results_found\">ফলাফল কোৱা হোৱা নাই</string>\n    <string name=\"local_source\">স্থানীয় উৎস</string>\n    <string name=\"other_source\">অন্য</string>\n    <string name=\"last_used_source\">শেহতীয়াকৈ ব্যৱহৃত</string>\n    <string name=\"pinned_sources\">পিন কৰা</string>\n    <string name=\"action_global_search_hint\">বিশ্ববিদ্যালয় অনুসন্ধান…</string>\n    <string name=\"action_global_search_query\">“%1$s” বিশ্বব্যাপী অনুসন্ধান কৰক</string>\n    <string name=\"latest\">সৰ্বশেষ</string>\n    <string name=\"browse\">ব্ৰাউজ কৰক</string>\n    <string name=\"has_results\">ফলাফল আছে</string>\n    <string name=\"popular\">জনপ্ৰিয়</string>\n    <string name=\"local_source_help_guide\">স্থানীয় উৎস গাইড</string>\n    <string name=\"no_pinned_sources\">আপোনাৰ কোনো পিন কৰা উৎস নাই</string>\n    <string name=\"chapter_not_found\">অধ্যায় পোৱা নগ\\'ল</string>\n    <string name=\"local_invalid_format\">অবৈধ অধ্যায় ফৰ্মেট</string>\n    <string name=\"local_filter_order_by\">অৰ্ডাৰ বায়</string>\n    <string name=\"unknown_status\">অজানা অৱস্থা</string>\n    <string name=\"licensed\">লাইচেঞ্চ কৰা</string>\n    <string name=\"publishing_finished\">প্ৰকাশনাৰ সমাপ্তি</string>\n    <string name=\"cancelled\">বাতিল কৰা হৈছে</string>\n    <string name=\"date\">তাৰিখ</string>\n    <string name=\"ongoing\">চলি আছে</string>\n    <string name=\"unknown\">অজানা</string>\n    <string name=\"unknown_author\">অজানা লেখক</string>\n    <string name=\"on_hiatus\">বিৰতিত</string>\n    <string name=\"add_to_library\">লাইব্ৰেৰীলৈ যোগ কৰক</string>\n    <string name=\"remove_from_library\">লাইব্ৰেৰী পৰা মচি দিয়ক</string>\n    <string name=\"manga_removed_library\">লাইব্ৰেৰী পৰা মচি দিয়া হৈছে</string>\n    <string name=\"unknown_title\">অজানা শিৰোনাম</string>\n    <string name=\"manga_info_expand\">অধিক</string>\n    <string name=\"manga_info_collapse\">সৰু</string>\n    <string name=\"delete_downloads_for_manga\">ডাউনলোড কৰা অধ্যায়সমূহ মচি দিব নেকি?</string>\n    <string name=\"copied_to_clipboard_plain\">ক্লিপবোর্ডত কপি কৰা হৈছে</string>\n    <string name=\"copied_to_clipboard\">ক্লিপবোর্ডত কপি কৰা হৈছে:\n\\n%1$s</string>\n    <string name=\"clipboard_copy_error\">ক্লিপবোর্ডত কপি কৰিবলৈ ব্যর্থ</string>\n    <string name=\"source_not_installed\">উৎস স্থাপন কৰা হোৱা নাই: %1$s</string>\n    <string name=\"snack_add_to_library\">লাইব্ৰেৰীলৈ যোগ কৰিব নেকি?</string>\n    <string name=\"description_placeholder\">বৰ্ণনা নাই</string>\n    <string name=\"display_mode_chapter\">অধ্যায় %1$s</string>\n    <string name=\"manga_display_interval_title\">প্ৰতি কিমান সময়ত</string>\n    <string name=\"manga_display_modified_interval_title\">প্ৰতি কিমান সময়ত আপডেট কৰিব</string>\n    <string name=\"manga_interval_expected_update\">%1$sৰ ভিতৰত নতুন অধ্যায়ৰ মুক্তি আশা কৰা হৈছে, প্ৰতি %2$sত পৰীক্ষা কৰা হৈছে।</string>\n    <string name=\"manga_interval_expected_update_soon\">সোনকালে</string>\n    <string name=\"manga_interval_custom_amount\">নিজস্ব আপডেটৰ সঘনতা:</string>\n    <string name=\"chapter_downloading_progress\">ডাউনলোড কৰা হৈছে (%1$d/%2$d)</string>\n    <string name=\"manga_interval_expected_update_null\">এই মাঙ্গা সম্পূৰ্ণ হৈছে, বা কিবা মুক্তিৰ তাৰিখ নাই।</string>\n    <string name=\"chapter_error\">ভূল</string>\n    <string name=\"chapter_paused\">বিৰত</string>\n    <string name=\"show_title\">উৎসৰ শিৰোনাম</string>\n    <string name=\"show_chapter_number\">অধ্যায় নম্বৰ</string>\n    <string name=\"sort_by_source\">উৎসৰ দ্বাৰা</string>\n    <string name=\"sort_by_number\">অধ্যায় নম্বৰ দ্বাৰা</string>\n    <string name=\"sort_by_upload_date\">আপলোড তাৰিখৰ দ্বাৰা</string>\n    <string name=\"manga_download\">ডাউনলোড</string>\n    <string name=\"download_unread\">অপঢ়া</string>\n    <string name=\"custom_cover\">নিজস্ব কভাৰ</string>\n    <string name=\"manga_cover\">কভাৰ</string>\n    <string name=\"cover_saved\">কভাৰ সংৰক্ষিত</string>\n    <string name=\"error_saving_cover\">কভাৰ সংৰক্ষণ কৰাত ভূল</string>\n    <string name=\"error_sharing_cover\">কভাৰ শ্বেয়াৰ কৰাত ভূল</string>\n    <string name=\"confirm_delete_chapters\">আপুনি নিশ্চিতনে যে নিৰ্বাচিত অধ্যায়সমূহ মচিব পৰা যাব?</string>\n    <string name=\"chapter_settings\">অধ্যায়ৰ ছেটিংচ</string>\n    <string name=\"confirm_set_chapter_settings\">আপুনি নিশ্চিতনে যে এই ছেটিংচ ডিফল্ট হিচাপে সংৰক্ষণ কৰিব?</string>\n    <string name=\"also_set_chapter_settings_for_library\">মোৰ লাইব্ৰেৰীৰ সকলো প্ৰৱিষ্টলৈও প্ৰয়োগ কৰক</string>\n    <string name=\"set_chapter_settings_as_default\">ডিফল্ট হিচাপে ছেট কৰক</string>\n    <string name=\"no_chapters_error\">অধ্যায় কোৱা হোৱা নাই</string>\n    <string name=\"confirm_tracker_update\">অধ্যায় %dলৈ ট্রেকাৰ আপডেট কৰিবনে?</string>\n    <string name=\"manga_tracking_tab\">ট্রেকিং</string>\n    <string name=\"add_tracking\">ট্রেকিং যোগ কৰক</string>\n    <string name=\"unread\">অপঢ়া</string>\n    <string name=\"reading\">পঢ়া</string>\n    <string name=\"are_you_sure\">আপুনি নিশ্চিতনে?</string>\n    <string name=\"exclude_scanlators\">স্কেনলেটৰসমূহ বাদ দিয়ক</string>\n    <string name=\"no_scanlators_found\">কোনো স্কেনলেটৰ পোৱা নগ\\'ল</string>\n    <string name=\"completed\">সম্পূৰ্ণ</string>\n    <string name=\"dropped\">নিস্পত্তি কৰা হৈছে</string>\n    <string name=\"on_hold\">স্থগিত</string>\n    <string name=\"paused\">বিৰত</string>\n    <string name=\"plan_to_read\">পঢ়াৰ পরিকল্পনা</string>\n    <string name=\"repeating\">পুনৰ পঢ়া</string>\n    <string name=\"reading_list\">পঢ়াৰ তালিকা</string>\n    <string name=\"wish_list\">ইচ্ছাৰ তালিকা</string>\n    <string name=\"complete_list\">সম্পূৰ্ণ তালিকা</string>\n    <string name=\"on_hold_list\">স্থগিত তালিকা</string>\n    <string name=\"unfinished_list\">অসম্পূৰ্ণ তালিকা</string>\n    <string name=\"score\">স্ক\\'ৰ</string>\n    <string name=\"title\">শিৰোনাম</string>\n    <string name=\"status\">অৱস্থা</string>\n    <string name=\"track_status\">অৱস্থা</string>\n    <string name=\"track_started_reading_date\">আৰম্ভৰ তাৰিখ</string>\n    <string name=\"track_finished_reading_date\">শেষৰ তাৰিখ</string>\n    <string name=\"track_type\">প্ৰকাৰ</string>\n    <string name=\"myanimelist_relogin\">দয়া কৰি MAL পুনৰ লগইন কৰক</string>\n    <string name=\"source_unsupported\">উৎস সমৰ্থিত নহয়</string>\n    <string name=\"error_no_match\">কোনো মেচ নাই</string>\n    <string name=\"track_error\">%1$s ত ভূল: %2$s</string>\n    <string name=\"track_remove_date_conf_title\">তাৰিখ মচিবনে?</string>\n    <string name=\"track_remove_start_date_conf_text\">%s পৰা আপোনাৰ আগৰ নিৰ্বাচিত আৰম্ভৰ তাৰিখ মচি দিব</string>\n    <string name=\"track_delete_title\">%s ট্রেকিং মচিবনে?</string>\n    <string name=\"track_delete_text\">এইটো স্থানীয়ভাৱে ট্রেকিং মচিব।</string>\n    <string name=\"track_delete_remote_text\">%s তো মচিব</string>\n    <string name=\"error_category_exists\">এই নামৰ এটা শ্রেণী ইতিমধ্যে আছে!</string>\n    <string name=\"dialog_with_checkbox_remove_description\">এইটো অধ্যায়ৰ পঢ়া তাৰিখ মচি দিব। আপুনি নিশ্চিতনে?</string>\n    <string name=\"picture_saved\">ছবি সংৰক্ষিত</string>\n    <string name=\"error_saving_picture\">ছবি সংৰক্ষণ কৰাত ভূল</string>\n    <string name=\"custom_filter\">নিজৰ ফিল্টাৰ</string>\n    <string name=\"set_as_cover\">কভাৰ হিচাপে নিৰ্ধাৰণ কৰক</string>\n    <string name=\"cover_updated\">কভাৰ আপডেট কৰা হৈছে</string>\n    <string name=\"share_page_info\">%1$s: %2$s, পৃষ্ঠা %3$d</string>\n    <string name=\"chapter_progress\">পৃষ্ঠা: %1$d</string>\n    <string name=\"no_next_chapter\">পৰৱৰ্তী অধ্যায় পোৱা নগ\\'ল</string>\n    <string name=\"decode_image_error\">চিত্রটো লোড কৰিব পৰা নগ\\'ল</string>\n    <string name=\"confirm_set_image_as_cover\">এই চিত্ৰটো কভাৰ শিল্প হিচাপে ব্যৱহাৰ কৰিবনে?</string>\n    <string name=\"pref_category_for_this_series\">এই শ্ৰেণীৰ বাবে</string>\n    <string name=\"viewer\">পঢ়াৰ মোড</string>\n    <string name=\"transition_finished\">সম্পন্ন:</string>\n    <string name=\"transition_current\">বর্তমান:</string>\n    <string name=\"transition_next\">পৰৱৰ্তী:</string>\n    <string name=\"transition_previous\">পূৰ্বৰ:</string>\n    <string name=\"transition_no_next\">পৰৱৰ্তী অধ্যায় নাই</string>\n    <string name=\"transition_no_previous\">পূৰ্বৰ অধ্যায় নাই</string>\n    <string name=\"page_list_empty_error\">কোনো পৃষ্ঠা পোৱা নগ\\'ল</string>\n    <string name=\"transition_pages_loading\">পৃষ্ঠা লোড হৈ আছে…</string>\n    <string name=\"transition_pages_error\">পৃষ্ঠা লোড কৰাত ব্যৰ্থ: %1$s</string>\n    <string name=\"loader_not_implemented_error\">মূলটো পোৱা নগ\\'ল</string>\n    <string name=\"updating_library\">লাইব্রেৰী আপডেট হৈ আছে</string>\n    <string name=\"update_already_running\">এটা আপডেট ইতিমধ্যে চলি আছে</string>\n    <string name=\"cant_open_last_read_chapter\">শেষ পঢ়া অধ্যায় খোলাটো সম্ভব নহয়</string>\n    <string name=\"updates_last_update_info\">লাইব্রেৰী শেষ আপডেট: %s</string>\n    <string name=\"updates_last_update_info_just_now\">এতিয়া</string>\n    <string name=\"relative_time_span_never\">কদাচিৎ</string>\n    <string name=\"action_view_upcoming\">পৰৱৰ্তী আপডেট চাওক</string>\n    <string name=\"upcoming_guide\">পৰৱৰ্তী গাইড</string>\n    <string name=\"upcoming_calendar_next\">পৰৱৰ্তী মাহ</string>\n    <string name=\"upcoming_calendar_prev\">পূৰ্বৰ মাহ</string>\n    <string name=\"recent_manga_time\">চ. %1$s - %2$s</string>\n    <string name=\"pref_clear_history\">ইতিহাস সাফ কৰক</string>\n    <string name=\"clear_history_completed\">ইতিহাস মচি পেলোৱা হৈছে</string>\n    <string name=\"clear_history_confirmation\">আপুনি নিশ্চিত? সকলো ইতিহাস হেৰুৱাই যাব।</string>\n    <string name=\"source_empty_screen\">কোনো মূলে পোৱা নগ\\'ল</string>\n    <string name=\"migrate\">স্থানান্তৰ কৰক</string>\n    <string name=\"copy\">নকল কৰক</string>\n    <string name=\"empty_screen\">ভাল, এইটো অলপ অদ্ভুত</string>\n    <string name=\"source_filter_empty_screen\">কোনো প্ৰতিস্থাপন কৰা মূলে পোৱা নগ\\'ল</string>\n    <string name=\"migration_help_guide\">মূল স্থানান্তৰ গাইড</string>\n    <string name=\"migration_dialog_what_to_include\">অন্তৰ্ভুক্ত কৰাৰ বাবে তথ্য বাচনি কৰক</string>\n    <string name=\"migration_selection_prompt\">স্থানান্তৰ কৰিবলৈ মূল বাচনি কৰক</string>\n    <string name=\"not_installed\">স্থাপন কৰা নহ\\'ব</string>\n    <string name=\"crash_screen_title\">ওহো!</string>\n    <string name=\"crash_screen_restart_application\">অনুগ্রহ কৰি এপ্লিকেশ্বন পুনৰ আৰম্ভ কৰক</string>\n    <string name=\"crash_screen_description\">%s অপ্ৰত্যাশিত ত্ৰুটিৰ সন্মুখীন হৈছে। আমি আপোনাক সুপারিশ কৰোঁ যে, Discord ত আমাৰ সহায় চেনেলত ক্ৰাশ লগবোৰ শ্বেয়াৰ কৰক।</string>\n    <string name=\"label_overview_section\">সাৰাংশ</string>\n    <string name=\"label_completed_titles\">সম্পন্ন ৰেকৰ্ড</string>\n    <string name=\"label_read_duration\">পঢ়াৰ সময়</string>\n    <string name=\"label_titles_section\">ৰেকৰ্ড</string>\n    <string name=\"label_total_chapters\">মুঠ</string>\n    <string name=\"label_read_chapters\">পঢ়া</string>\n    <string name=\"label_titles_in_global_update\">আন্তৰাষ্ট্ৰীয় আপডেটত</string>\n    <string name=\"label_tracker_section\">ট্রেকাৰ</string>\n    <string name=\"label_tracked_titles\">ট্রেক কৰা ৰেকৰ্ড</string>\n    <string name=\"label_mean_score\">মধ্যম নম্বৰ</string>\n    <string name=\"label_used\">ব্যৱহৃত</string>\n    <string name=\"not_applicable\">প্ৰযোজ্য নহয়</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"download_queue_error\">অধ্যায়সমূহ ডাউনলোড কৰিবলৈ সক্ষম নহ\\'ল। আপুনি ডাউনলোডৰ অংশত পুনৰ চেষ্টা কৰিব পাৰে</string>\n    <string name=\"download_insufficient_space\">পৰ্যাপ্ত স্থান নাথাকাৰ বাবে অধ্যায়সমূহ ডাউনলোড কৰিবলৈ সক্ষম নহ\\'ল</string>\n    <string name=\"download_queue_size_warning\">সতৰ্কতা: ডাঙৰ বাল্ক ডাউনলোডে মূলে ধীৰগতিত পৰিণত কৰিব পাৰে আৰু/অথবা %s ব্লক কৰিব পাৰে। অধিক জানিবলৈ টেপ কৰক।</string>\n    <string name=\"notification_updating_progress\">লাইব্রেৰী আপডেট হৈ আছে… (%s)</string>\n    <string name=\"notification_size_warning\">ডাঙৰ আপডেটসমূহে মূলে ক্ষতি কৰে আৰু ধীৰ গতিত আপডেট হব পাৰে আৰু বেটাৰী ব্যৱহাৰ বৃদ্ধি পাব পাৰে। অধিক জানিবলৈ টেপ কৰক।</string>\n    <string name=\"notification_new_chapters\">নতুন অধ্যায় পোৱা গৈছে</string>\n    <string name=\"notification_chapters_single\">অধ্যায় %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">অধ্যায় %1$s আৰু %2$d অধিক</string>\n    <string name=\"notification_chapters_multiple\">অধ্যায়সমূহ %1$s</string>\n    <string name=\"notification_update_error\">%1$d আপডেট(s) ব্যৰ্থ</string>\n    <string name=\"learn_more\">অধিক জানিবলৈ টেপ কৰক</string>\n    <string name=\"notification_cover_update_failed\">কভাৰ আপডেট কৰিবলৈ ব্যৰ্থ</string>\n    <string name=\"notification_first_add_to_library\">এইটো কৰিবলৈ আগত অনুগ্ৰহ কৰি ৰেকৰ্ডটো আপোনাৰ লাইব্রেৰীত যোগ কৰক</string>\n    <string name=\"library_errors_help\">লাইব্রেৰী আপডেট ত্ৰুটিসমূহ মাকৰ বাবে সহায়ৰ বাবে চাওক %1$s</string>\n    <string name=\"skipped_reason_not_caught_up\">পঢ়া অধ্যায়ৰ অভাৱৰ বাবে বাদ দিয়া হৈছে</string>\n    <string name=\"skipped_reason_not_started\">কোনো অধ্যায় পঢ়া হোৱা নাই</string>\n    <string name=\"skipped_reason_completed\">ধাৰা সম্পন্নৰ বাবে বাদ দিয়া হৈছে</string>\n    <string name=\"skipped_reason_not_always_update\">ধাৰা আপডেটৰ প্রয়োজন নাই</string>\n    <string name=\"skipped_reason_not_in_release_period\">আজিৰ বাবে কোনো মুক্তিৰ আশা নাছিল</string>\n    <string name=\"file_select_cover\">আৱৰণ চিত্ৰ বাচক</string>\n    <string name=\"file_select_backup\">বেকআপ ফাইল বাচক</string>\n    <string name=\"file_picker_error\">ফাইল বাচনিৰ এপ পোৱা নগ\\'ল</string>\n    <string name=\"file_picker_uri_permission_unsupported\">স্থায়ী ফোল্ডাৰ প্ৰৱেশ লাভ কৰা নগ\\'ল। এপটো আশাহীনভাৱে আচৰণ কৰিব পাৰে।</string>\n    <string name=\"file_null_uri_error\">কোনো ফাইল বাচা হোৱা নাই</string>\n    <string name=\"update_check_confirm\">ডাউনলোড কৰক</string>\n    <string name=\"update_check_eol\">এই Android সংস্কৰণটো এতিয়া সমৰ্থিত নহয়</string>\n    <string name=\"update_check_notification_download_complete\">আপডেট ইনষ্টল কৰিবলৈ টেপ কৰক</string>\n    <string name=\"update_check_notification_download_error\">ডাউনলোড ত্ৰুটি</string>\n    <string name=\"update_check_no_new_updates\">নতুন আপডেট উপলব্ধ নাই</string>\n    <string name=\"update_check_notification_download_in_progress\">ডাউনলোড হৈছে…</string>\n    <string name=\"update_check_notification_update_available\">নতুন সংস্কৰণ উপলব্ধ!</string>\n    <string name=\"information_no_recent\">কোনো নতুন আপডেট নাই</string>\n    <string name=\"information_no_recent_manga\">সম্প্ৰতি কিবা পঢ়া হোৱা নাই</string>\n    <string name=\"information_empty_library\">আপোনাৰ লাইব্ৰেৰী খালী</string>\n    <string name=\"information_no_manga_category\">বিভাগ খালী</string>\n    <string name=\"information_no_entries_found\">এই বিভাগত কোনো প্ৰৱেশ পোৱা নগ\\'ল</string>\n    <string name=\"getting_started_guide\">আৰম্ভ কৰিবলৈ গাইড</string>\n    <string name=\"information_empty_category\">আপোনাৰ কোনো বিভাগ নাই। আপোনাৰ লাইব্ৰেৰী পৰিচালনা কৰিবলৈ এখন সৃষ্টি কৰিবলৈ প্লাছ বুটামত টেপ কৰক।</string>\n    <string name=\"information_empty_category_dialog\">আপোনাৰ এতিয়াও কোনো বিভাগ নাই।</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare পাৰ হোৱাৰ চেষ্টা বিফল</string>\n    <string name=\"information_cloudflare_help\">Cloudflare সহায়ৰ বাবে ইয়াত টেপ কৰক</string>\n    <string name=\"information_required_plain\">*আৱশ্যক</string>\n    <string name=\"information_webview_required\">এপটো কাম কৰিবলৈ WebView আৱশ্যক</string>\n    <string name=\"information_webview_outdated\">ভাল সামঞ্জস্যৰ বাবে WebView এপটো আপডেট কৰক</string>\n    <string name=\"chapter_settings_updated\">ডিফল্ট অধ্যায় সজাও বুজাই দিয়া হৈছে</string>\n    <string name=\"download_notifier_downloader_title\">ডাউনলোডাৰ</string>\n    <string name=\"download_notifier_title_error\">ত্ৰুটি</string>\n    <string name=\"download_notifier_unknown_error\">অপ্ৰত্যাশিত ত্ৰুটিৰ বাবে অধ্যায় ডাউনলোড কৰিব পৰা নগ\\'ল</string>\n    <string name=\"download_notifier_text_only_wifi\">কোনো Wi-Fi সংযোগ উপলব্ধ নাই</string>\n    <string name=\"download_notifier_no_network\">কোনো নেটৱৰ্ক সংযোগ উপলব্ধ নাই</string>\n    <string name=\"download_notifier_download_paused\">ডাউনলোড ৰোকা</string>\n    <string name=\"download_notifier_split_page_not_found\">পাতা %d বিচ্ছিন্নৰ সময়ত পোৱা নগ\\'ল</string>\n    <string name=\"download_notifier_split_page_path_not_found\">পাতা %d ৰ ফাইল পথ পোৱা নগ\\'ল</string>\n    <string name=\"download_notifier_cache_renewal\">ডাউনলোড পৰীক্ষা কৰা হৈছে</string>\n    <string name=\"channel_common\">সাধাৰণ</string>\n    <string name=\"channel_progress\">অগ্ৰগতি</string>\n    <string name=\"channel_complete\">সম্পূৰ্ণ</string>\n    <string name=\"channel_app_updates\">এপ আপডেট</string>\n    <string name=\"channel_ext_updates\">এক্সটেনচন আপডেট</string>\n    <string name=\"spen_previous_page\">পূৰ্বৰ পৃষ্ঠা</string>\n    <string name=\"appwidget_updates_description\">আপোনাৰ সাম্প্ৰতিক আপডেট কৰা লাইব্ৰেৰী প্ৰৱেশসমূহ চাওক</string>\n    <string name=\"appwidget_unavailable_locked\">এপ লক সক্ৰিয় থাকোতে উইজেট উপলব্ধ নহয়</string>\n    <string name=\"remove_manga\">আপুনি আপোনাৰ লাইব্ৰেৰীৰ পৰা \\\"%s\\\" মচাৰ বাবে সাজু হৈছে</string>\n    <string name=\"spen_next_page\">পৰৱৰ্তী পৃষ্ঠা</string>\n    <string name=\"exception_offline\">ইণ্টাৰনেট সংযোগ নাই</string>\n    <string name=\"exception_unknown_host\">%s পৌঁছাব পৰা নগ\\'ল</string>\n    <string name=\"tapping_inverted_vertical\">উলম্ব</string>\n    <string name=\"non_library_settings\">সকলো পঢ়া প্ৰৱেশ</string>\n    <string name=\"action_sort_random\">ৰেণ্ডম</string>\n    <string name=\"onboarding_permission_analytics_description\">এপৰ বৈশিষ্ট্য উন্নত কৰাৰ বাবে নামৰহিত ব্যৱহাৰ তথ্য পঠাওক।</string>\n    <string name=\"pref_security\">সুৰক্ষা</string>\n    <string name=\"pref_firebase\">এনেলিটিক্স আৰু ক্ৰেছ লগসমূহ</string>\n    <string name=\"onboarding_permission_analytics\">এনেলিটিক্সৰ অনুমতি দিয়ক</string>\n    <string name=\"firebase_summary\">ক্ৰেছ লগ আৰু এনেলিটিক্স পঠাওঁতে আমাক সমস্যাবোৰ চিনাক্ত কৰি সমাধান কৰিবলৈ, কাৰ্যক্ষমতা উন্নত কৰিবলৈ আৰু আপোনাৰ প্ৰয়োজনৰ অনুসাৰে ভৱিষ্যতৰ আপডেটসমূহ অধিক প্ৰাসংগিক কৰিবলৈ সহায় কৰিব।</string>\n    <string name=\"onboarding_permission_crashlytics_description\">ডেভেলপাৰসকললৈ নামৰহিত ক্ৰেছ লগসমূহ পঠাওক|</string>\n    <string name=\"onboarding_permission_crashlytics\">ক্ৰেছ লগসমূহ পঠাওক</string>\n    <string name=\"ext_remove\">আঁতৰাওক</string>\n    <string name=\"ext_confirm_remove\">এক্সটেনচন আঁতৰাবনে?</string>\n    <string name=\"remove_private_extension_message\">আপুনি কি \\\"%s\\\" এক্সটেনচনটো আঁতৰাব খুজিছে?</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">পঢ়া হিচাপে চিহ্নিত কৰাৰ সময়ত অগ্ৰগতি আপডেইট কৰক</string>\n    <string name=\"trackers_updated_summary\">ট্ৰেকাৰসমূহ অধ্যায় %d লৈ আপডেইট কৰা হৈছে</string>\n    <string name=\"pref_hardware_bitmap_threshold\">কাষ্টম হাৰ্ডৱেৰ বিটম্যাপ থ্ৰেশহোল্ড</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">যদি পাঠকে এটা খালী ছবি লোড কৰে ক্ৰমান্বয়ে থ্ৰেছহোল্ড হ্ৰাস কৰক। \\nবাচনি কৰা: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">ডিফল্ট (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">কাৰ্য্যক্ষমতাক প্ৰভাৱিত কৰে। কেৱল সামৰ্থবান কৰক যদি বিটমেপ থ্ৰেছহোল্ড হ্ৰাস কৰিলে খালী প্ৰতিমুৰ্তি সমস্যা সমাধান নহয়</string>\n    <string name=\"pref_incognito_mode_extension_summary\">সম্প্ৰসাৰণৰ বাবে ইতিহাস পঢ়া বন্ধ কৰক</string>\n    <string name=\"label_auto\">অটো</string>\n    <string name=\"theme_monochrome\">একবৰ্ণী</string>\n    <string name=\"clear_db_exclude_read\">পঢ়া অধ্যায়সহ এন্ট্ৰিসমূহ ৰক্ষা কৰক</string>\n    <string name=\"author\">লেখক</string>\n    <string name=\"artist\">কলা</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/base/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">After %1$s minute</item>\n        <item quantity=\"other\">After %1$s minutes</item>\n    </plurals>\n\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Yesterday</item>\n        <item quantity=\"other\">%1$d days ago</item>\n    </plurals>\n\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Tomorrow</item>\n        <item quantity=\"other\">In %1$d days</item>\n    </plurals>\n\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d category</item>\n        <item quantity=\"other\">%d categories</item>\n    </plurals>\n\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Next unread chapter</item>\n        <item quantity=\"other\">Next %d unread chapters</item>\n    </plurals>\n\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Done in %1$s with %2$s error</item>\n        <item quantity=\"other\">Done in %1$s with %2$s errors</item>\n    </plurals>\n\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s remaining</item>\n        <item quantity=\"other\">%1$s remaining</item>\n    </plurals>\n\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 day</item>\n        <item quantity=\"other\">%d days</item>\n    </plurals>\n\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 page</item>\n        <item quantity=\"other\">%1$s pages</item>\n    </plurals>\n\n    <!-- Manga info -->\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Missing %1$s chapter</item>\n        <item quantity=\"other\">Missing %1$s chapters</item>\n    </plurals>\n\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s chapter</item>\n        <item quantity=\"other\">%1$s chapters</item>\n    </plurals>\n\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Next chapter</item>\n        <item quantity=\"other\">Next %d chapters</item>\n    </plurals>\n\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d tracker</item>\n        <item quantity=\"other\">%d trackers</item>\n    </plurals>\n\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Skipping %d chapter, either the source is missing it or it has been filtered out</item>\n        <item quantity=\"other\">Skipping %d chapters, either the source is missing them or they have been filtered out</item>\n    </plurals>\n\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">For %d entry</item>\n        <item quantity=\"other\">For %d entries</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d new chapter</item>\n        <item quantity=\"other\">%1$d new chapters</item>\n    </plurals>\n\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Chapters %1$s and 1 more</item>\n        <item quantity=\"other\">Chapters %1$s and %2$d more</item>\n    </plurals>\n\n    <!--Extension Updates Notifications-->\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Extension update available</item>\n        <item quantity=\"other\">%d extension updates available</item>\n    </plurals>\n\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repo</item>\n        <item quantity=\"other\">%d repos</item>\n    </plurals>\n\n    <!--Migration-->\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrate %1$d entry?</item>\n        <item quantity=\"other\">Migrate %1$d entries?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Copy %1$d entry?</item>\n        <item quantity=\"other\">Copy %1$d entries?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">An entry was skipped</item>\n        <item quantity=\"other\">%1$d entries were skipped</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/base/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"app_name\" translatable=\"false\">Mihon</string>\n\n    <!-- Generic strings -->\n    <string name=\"on\">On</string>\n    <string name=\"off\">Off</string>\n    <string name=\"selected\">Selected</string>\n    <string name=\"not_selected\">Not selected</string>\n    <string name=\"action_menu_overflow_description\">More options</string>\n    <string name=\"action_bar_up_description\">Navigate up</string>\n\n    <!-- Models -->\n    <string name=\"name\">Name</string>\n    <string name=\"categories\">Categories</string>\n    <string name=\"manga\">Library entries</string>\n    <string name=\"chapters\">Chapters</string>\n    <string name=\"track\">Tracking</string>\n    <string name=\"delete_downloaded\">Delete downloaded</string>\n    <string name=\"history\">History</string>\n    <string name=\"scanlator\">Scanlator</string>\n\n    <!-- Screen titles -->\n    <string name=\"label_more\">More</string>\n    <string name=\"label_settings\">Settings</string>\n    <string name=\"label_download_queue\">Download queue</string>\n    <string name=\"label_library\">Library</string>\n    <string name=\"label_recent_updates\">Updates</string>\n    <string name=\"label_upcoming\">Upcoming</string>\n    <string name=\"label_recent_manga\">History</string>\n    <string name=\"label_sources\">Sources</string>\n    <string name=\"label_backup\">Backup and restore</string>\n    <string name=\"label_data_storage\">Data and storage</string>\n    <string name=\"label_stats\">Statistics</string>\n    <string name=\"label_migration\">Migrate</string>\n    <string name=\"label_extensions\">Extensions</string>\n    <string name=\"label_extension_info\">Extension info</string>\n    <string name=\"label_help\">Help</string>\n    <string name=\"label_donate\">Donate</string>\n    <string name=\"label_default\">Default</string>\n    <string name=\"label_warning\">Warning</string>\n    <string name=\"label_auto\">Auto</string>\n\n    <!-- Shared labels -->\n    <string name=\"label_started\">Started</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_downloaded\">Downloaded</string>\n\n    <string name=\"unlock_app_title\">Unlock %s</string>\n    <string name=\"confirm_lock_change\">Authenticate to confirm change</string>\n\n    <!-- Actions -->\n    <string name=\"action_settings\">Settings</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_set_interval\">Set interval</string>\n    <string name=\"action_filter_bookmarked\">Bookmarked</string>\n    <string name=\"action_filter_tracked\">Tracked</string>\n    <string name=\"action_filter_unread\">Unread</string>\n    <string name=\"action_filter_interval_custom\">Customized update frequency</string>\n    <!-- reserved for #4048 -->\n    <string name=\"action_filter_empty\">Remove filter</string>\n    <string name=\"action_sort_alpha\">Alphabetically</string>\n    <string name=\"action_sort_count\">Total entries</string>\n    <string name=\"action_sort_total\">Total chapters</string>\n    <string name=\"action_sort_last_read\">Last read</string>\n    <string name=\"action_sort_last_manga_update\">Last update check</string>\n    <string name=\"action_sort_unread_count\">Unread count</string>\n    <string name=\"action_sort_next_updated\">Next expected update</string>\n    <string name=\"action_sort_latest_chapter\">Latest chapter</string>\n    <string name=\"action_sort_chapter_fetch_date\">Chapter fetch date</string>\n    <string name=\"action_sort_date_added\">Date added</string>\n    <string name=\"action_sort_tracker_score\">Tracker score</string>\n    <string name=\"action_sort_random\">Random</string>\n    <string name=\"action_search\">Search</string>\n    <string name=\"action_search_hint\">Search…</string>\n    <string name=\"action_search_settings\">Search settings</string>\n    <string name=\"action_global_search\">Global search</string>\n    <string name=\"action_select_all\">Select all</string>\n    <string name=\"action_select_inverse\">Select inverse</string>\n    <string name=\"action_mark_as_read\">Mark as read</string>\n    <string name=\"action_mark_as_unread\">Mark as unread</string>\n    <string name=\"action_mark_previous_as_read\">Mark previous as read</string>\n    <string name=\"action_download\">Download</string>\n    <string name=\"action_bookmark\">Bookmark chapter</string>\n    <string name=\"action_remove_bookmark\">Unbookmark chapter</string>\n    <string name=\"action_delete\">Delete</string>\n    <string name=\"action_update_library\">Update library</string>\n    <string name=\"action_enable_all\">Enable all</string>\n    <string name=\"action_disable_all\">Disable all</string>\n    <string name=\"action_edit\">Edit</string>\n    <string name=\"action_add\">Add</string>\n    <string name=\"action_update_category\">Update category</string>\n    <string name=\"action_open_random_manga\">Open random entry</string>\n    <string name=\"action_add_category\">Add category</string>\n    <string name=\"action_edit_categories\">Edit categories</string>\n    <string name=\"action_rename_category\">Rename category</string>\n    <string name=\"action_move_category\">Set categories</string>\n    <string name=\"delete_category_confirmation\">Do you wish to delete the category \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Delete category</string>\n    <string name=\"action_edit_cover\">Edit cover</string>\n    <string name=\"action_view_chapters\">View chapters</string>\n    <string name=\"action_pause\">Pause</string>\n    <string name=\"action_previous_chapter\">Previous chapter</string>\n    <string name=\"action_next_chapter\">Next chapter</string>\n    <string name=\"action_retry\">Retry</string>\n    <string name=\"action_remove\">Remove</string>\n    <string name=\"action_remove_everything\">Remove everything</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"action_resume\">Resume</string>\n    <string name=\"action_open_in_browser\">Open in browser</string>\n    <string name=\"action_show_manga\">Show entry</string>\n    <string name=\"action_copy_to_clipboard\">Copy to clipboard</string>\n    <string name=\"action_copy_link\">Copy link</string>\n    <!-- Do not translate \"WebView\" -->\n    <string name=\"action_open_in_web_view\">Open in WebView</string>\n    <string name=\"action_web_view\" translatable=\"false\">WebView</string>\n    <string name=\"action_migrate\">Migrate</string>\n    <string name=\"action_display_mode\">Display mode</string>\n    <string name=\"action_display\">Display</string>\n    <string name=\"action_display_grid\">Compact grid</string>\n    <string name=\"action_display_comfortable_grid\">Comfortable grid</string>\n    <string name=\"action_display_list\">List</string>\n    <string name=\"action_display_cover_only_grid\">Cover-only grid</string>\n    <string name=\"action_display_download_badge\">Downloaded chapters</string>\n    <string name=\"action_display_unread_badge\">Unread chapters</string>\n    <string name=\"action_display_local_badge\">Local source</string>\n    <string name=\"action_display_language_badge\">Language</string>\n    <string name=\"action_display_show_tabs\">Show category tabs</string>\n    <string name=\"action_display_show_number_of_items\">Show number of items</string>\n    <string name=\"action_display_show_continue_reading_button\">Continue reading button</string>\n    <string name=\"action_disable\">Disable</string>\n    <string name=\"action_pin\">Pin</string>\n    <string name=\"action_unpin\">Unpin</string>\n    <string name=\"action_apply\">Apply</string>\n    <string name=\"action_cancel\">Cancel</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"action_cancel_all\">Cancel all</string>\n    <string name=\"cancel_all_for_series\">Cancel all for this series</string>\n    <string name=\"action_sort\">Sort</string>\n    <string name=\"action_order_by_upload_date\">By upload date</string>\n    <string name=\"action_order_by_chapter_number\">By chapter number</string>\n    <string name=\"action_newest\">Newest</string>\n    <string name=\"action_oldest\">Oldest</string>\n    <string name=\"action_asc\">Ascending</string>\n    <string name=\"action_desc\">Descending</string>\n    <string name=\"action_move_to_top\">Move to top</string>\n    <string name=\"action_move_to_top_all_for_series\">Move series to top</string>\n    <string name=\"action_move_to_bottom\">Move to bottom</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Move series to bottom</string>\n    <string name=\"action_notes\">Notes</string>\n    <string name=\"action_edit_notes\">Edit notes</string>\n    <string name=\"action_install\">Install</string>\n    <string name=\"action_share\">Share</string>\n    <string name=\"action_save\">Save</string>\n    <string name=\"action_reset\">Reset</string>\n    <string name=\"action_revert_to_default\">Revert to default</string>\n    <!-- missing undo feature after Compose rewrite #7454 -->\n    <string name=\"action_undo\">Undo</string>\n    <string name=\"action_close\">Close</string>\n    <string name=\"action_open_log\">Open log</string>\n    <string name=\"action_show_errors\">Tap to see details</string>\n    <string name=\"action_restore\">Restore</string>\n    <string name=\"action_webview_back\">Back</string>\n    <string name=\"action_webview_forward\">Forward</string>\n    <string name=\"action_webview_refresh\">Refresh</string>\n    <string name=\"action_webview_close_tab\">Close tab</string>\n    <string name=\"action_start_downloading_now\">Start downloading now</string>\n    <string name=\"action_not_now\">Not now</string>\n    <string name=\"action_add_anyway\">Add anyway</string>\n\n    <!-- Operations -->\n    <string name=\"loading\">Loading…</string>\n    <string name=\"internal_error\">InternalError: Check crash logs for further information</string>\n\n    <!-- Shortcuts-->\n    <string name=\"app_not_available\">App not available</string>\n\n    <!-- Onboarding -->\n    <string name=\"pref_onboarding_guide\">Onboarding guide</string>\n    <string name=\"onboarding_heading\">Welcome!</string>\n    <string name=\"onboarding_description\">Let\\'s set some things up first. You can always change these in the settings later too.</string>\n    <string name=\"onboarding_action_next\">Next</string>\n    <string name=\"onboarding_action_finish\">Get started</string>\n    <string name=\"onboarding_action_skip\">Skip</string>\n    <string name=\"onboarding_storage_info\">Select a folder where %1$s will store chapter downloads, backups, and more.\\n\\nA dedicated folder is recommended.\\n\\nSelected folder: %2$s</string>\n    <string name=\"onboarding_storage_action_select\">Select a folder</string>\n    <string name=\"onboarding_storage_selection_required\">A folder must be selected</string>\n    <string name=\"onboarding_storage_help_info\">Updating from an older version and not sure what to select? Refer to the storage guide for more information.</string>\n    <string name=\"onboarding_storage_help_action\">Storage guide</string>\n    <string name=\"onboarding_permission_install_apps\">Install apps permission</string>\n    <string name=\"onboarding_permission_install_apps_description\">To install source extensions.</string>\n    <string name=\"onboarding_permission_notifications\">Notification permission</string>\n    <string name=\"onboarding_permission_notifications_description\">Get notified for library updates and more.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Background battery usage</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Avoid interruptions to long-running library updates, downloads, and backup restores.</string>\n    <string name=\"onboarding_permission_crashlytics\">Send crash logs</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Send anonymized crash logs to the developers.</string>\n    <string name=\"onboarding_permission_analytics\">Allow analytics</string>\n    <string name=\"onboarding_permission_analytics_description\">Send anonymized usage data to improve app features.</string>\n    <string name=\"onboarding_permission_action_grant\">Grant</string>\n    <string name=\"onboarding_guides_new_user\">New to %s? We recommend checking out the getting started guide.</string>\n    <string name=\"onboarding_guides_returning_user\">Reinstalling %s?</string>\n\n    <!-- Preferences -->\n      <!-- Subsections -->\n    <string name=\"pref_category_general\">General</string>\n    <string name=\"pref_category_appearance\">Appearance</string>\n    <string name=\"pref_category_library\">Library</string>\n    <string name=\"pref_category_reader\">Reader</string>\n    <string name=\"pref_category_downloads\">Downloads</string>\n    <string name=\"pref_category_tracking\">Tracking</string>\n    <string name=\"pref_category_advanced\">Advanced</string>\n    <string name=\"pref_category_about\">About</string>\n\n    <string name=\"pref_appearance_summary\">Theme, date &amp; time format</string>\n    <string name=\"pref_library_summary\">Categories, global update, chapter swipe</string>\n    <string name=\"pref_reader_summary\">Reading mode, display, navigation</string>\n    <string name=\"pref_downloads_summary\">Automatic download, download ahead</string>\n    <string name=\"pref_tracking_summary\">One-way progress sync, enhanced sync</string>\n    <string name=\"pref_browse_summary\">Sources, extensions, global search</string>\n    <string name=\"pref_backup_summary\">Manual &amp; automatic backups, storage space</string>\n    <string name=\"pref_security_summary\">App lock, secure screen</string>\n    <string name=\"pref_advanced_summary\">Dump crash logs, battery optimizations</string>\n\n      <!-- General section -->\n    <string name=\"pref_category_theme\">Theme</string>\n    <string name=\"pref_app_theme\">App theme</string>\n    <string name=\"theme_system\">System</string>\n    <string name=\"theme_light\">Light</string>\n    <string name=\"theme_dark\">Dark</string>\n    <string name=\"theme_monet\">Dynamic</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"theme_greenapple\">Green Apple</string>\n    <string name=\"theme_lavender\">Lavender</string>\n    <string name=\"theme_midnightdusk\">Midnight Dusk</string>\n    <string name=\"theme_monochrome\">Monochrome</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"theme_strawberrydaiquiri\">Strawberry Daiquiri</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_tealturquoise\">Teal &amp; Turquoise</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_tidalwave\">Tidal Wave</string>\n    <string name=\"pref_dark_theme_pure_black\">Pure black dark mode</string>\n    <string name=\"pref_relative_format\">Relative timestamps</string>\n    <!-- \"Today\" instead of \"2023-12-31\" -->\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" instead of \\\"%2$s\\\"</string>\n    <string name=\"pref_date_format\">Date format</string>\n    <string name=\"pref_display_images_description\">Render images in manga descriptions</string>\n\n    <string name=\"pref_manage_notifications\">Manage notifications</string>\n    <string name=\"pref_app_language\">App language</string>\n\n    <string name=\"pref_category_security\">Security and privacy</string>\n    <string name=\"pref_security\">Security</string>\n    <string name=\"pref_firebase\">Analytics and Crash logs</string>\n\n    <string name=\"lock_with_biometrics\">Require unlock</string>\n    <string name=\"lock_when_idle\">Lock when idle</string>\n    <string name=\"lock_always\">Always</string>\n    <string name=\"lock_never\">Never</string>\n    <string name=\"hide_notification_content\">Hide notification content</string>\n    <string name=\"secure_screen\">Secure screen</string>\n    <string name=\"secure_screen_summary\">Secure screen hides app contents when switching apps and block screenshots</string>\n    <string name=\"firebase_summary\">Sending crash logs and analytics will allow us to identify and fix issues, improve performance, and make future updates more relevant to your needs</string>\n\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) sources</string>\n    <string name=\"pref_show_nsfw_source\">Show in sources and extensions lists</string>\n    <string name=\"parental_controls_info\">This does not prevent unofficial or potentially incorrectly flagged extensions from surfacing NSFW (18+) content within the app.</string>\n\n    <string name=\"relative_time_today\">Today</string>\n\n      <!-- Library section -->\n    <string name=\"pref_category_display\">Display</string>\n    <string name=\"pref_library_columns\">Items per row</string>\n    <string name=\"portrait\">Portrait</string>\n    <string name=\"landscape\">Landscape</string>\n\n    <string name=\"pref_category_library_update\">Global update</string>\n    <string name=\"pref_library_update_interval\">Automatic updates</string>\n    <string name=\"update_never\">Off</string>\n    <string name=\"update_6hour\">Every 6 hours</string>\n    <string name=\"update_12hour\">Every 12 hours</string>\n    <string name=\"update_24hour\">Daily</string>\n    <string name=\"update_48hour\">Every 2 days</string>\n    <string name=\"update_72hour\">Every 3 days</string>\n    <string name=\"update_weekly\">Weekly</string>\n    <string name=\"pref_library_update_restriction\">Automatic updates device restrictions</string>\n    <string name=\"connected_to_wifi\">Only on Wi-Fi</string>\n    <string name=\"network_not_metered\">Only on unmetered network</string>\n    <string name=\"charging\">When charging</string>\n    <string name=\"restrictions\">Restrictions: %s</string>\n\n    <string name=\"pref_library_update_smart_update\">Smart update</string>\n    <string name=\"pref_update_only_completely_read\">Skip entries with unread chapter(s)</string>\n    <string name=\"pref_update_only_non_completed\">Skip entries with \\\"Completed\\\" status</string>\n    <string name=\"pref_update_only_started\">Skip unstarted entries</string>\n    <string name=\"pref_update_only_in_release_period\">Predict next release time</string>\n    <string name=\"pref_library_update_show_tab_badge\">Show unread count on Updates icon</string>\n\n    <string name=\"pref_library_update_refresh_metadata\">Automatically refresh metadata</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Check for new cover and details when updating library</string>\n\n    <string name=\"default_category\">Default category</string>\n    <string name=\"default_category_summary\">Always ask</string>\n    <string name=\"categorized_display_settings\">Per-category settings for sort</string>\n    <string name=\"pref_library_update_categories_details\">Entries in excluded categories will not be updated even if they are also in included categories.</string>\n    <string name=\"all\">All</string>\n    <string name=\"none\">None</string>\n    <string name=\"include\">Include: %s</string>\n    <string name=\"exclude\">Exclude: %s</string>\n\n    <string name=\"pref_behavior\">Behavior</string>\n    <!-- This should be to the left for RTL locales -->\n    <string name=\"pref_chapter_swipe_end\">Chapter on swipe to right</string>\n    <!-- This should be to the right for RTL locales -->\n    <string name=\"pref_chapter_swipe_start\">Chapter on swipe to left</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Mark duplicate read chapter as read</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">After reading a chapter</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">After fetching new chapter</string>\n\n    <string name=\"pref_hide_missing_chapter_indicators\">Hide missing chapter indicators</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Disallow non-ASCII filenames</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Ensures compatibility with certain storage media that don't support Unicode. When this is enabled, you'll need to manually rename source and manga folders by replacing non-ASCII characters with their lowercase UTF-8 hexadecimal representations. Chapter files don't need to be renamed.</string>\n\n      <!-- Extension section -->\n    <string name=\"multi_lang\">Multi</string>\n    <string name=\"ext_updates_pending\">Updates pending</string>\n    <string name=\"ext_update\">Update</string>\n    <string name=\"ext_update_all\">Update all</string>\n    <string name=\"ext_obsolete\">Obsolete</string>\n    <string name=\"ext_install\">Install</string>\n    <string name=\"ext_pending\">Pending</string>\n    <string name=\"ext_downloading\">Downloading</string>\n    <string name=\"ext_installing\">Installing</string>\n    <string name=\"ext_installed\">Installed</string>\n    <string name=\"ext_trust\">Trust</string>\n    <string name=\"ext_untrusted\">Untrusted</string>\n    <string name=\"ext_uninstall\">Uninstall</string>\n    <string name=\"ext_remove\">Remove</string>\n    <string name=\"ext_confirm_remove\">Remove Extension?</string>\n    <string name=\"ext_app_info\">App info</string>\n    <string name=\"untrusted_extension\">Untrusted extension</string>\n    <string name=\"untrusted_extension_message\">Malicious extensions can read any stored login credentials or execute arbitrary code.\\n\\nBy trusting this extension, you accept these risks.</string>\n    <string name=\"obsolete_extension_message\">This extension is no longer available. It may not function properly and can cause issues with the app. Uninstalling it is recommended.</string>\n    <string name=\"remove_private_extension_message\">Do you really want to remove \\\"%s\\\" extension?</string>\n    <string name=\"extension_api_error\">Failed to fetch available extensions</string>\n    <string name=\"ext_info_version\">Version</string>\n    <string name=\"ext_info_language\">Language</string>\n    <string name=\"ext_info_age_rating\">Age rating</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">Sources from this extension may contain NSFW (18+) content</string>\n    <string name=\"ext_permission_install_apps_warning\">Permissions are needed to install extensions. Tap here to grant.</string>\n    <string name=\"ext_install_service_notif\">Installing extension…</string>\n    <string name=\"ext_installer_pref\">Installer</string>\n    <string name=\"ext_installer_legacy\">Legacy</string>\n    <string name=\"ext_installer_packageinstaller\" translatable=\"false\">PackageInstaller</string>\n    <string name=\"ext_installer_shizuku\" translatable=\"false\">Shizuku</string>\n    <string name=\"ext_installer_private\" translatable=\"false\">Private</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku is not running</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Install and start Shizuku to use Shizuku as extension installer.</string>\n    <string name=\"ext_revoke_trust\">Revoke trusted unknown extensions</string>\n\n    <!-- Extension repos -->\n    <string name=\"label_extension_repos\">Extension repos</string>\n    <string name=\"information_empty_repos\">You have no repos set.</string>\n    <string name=\"action_add_repo\">Add repo</string>\n    <string name=\"label_add_repo_input\">Repo URL</string>\n    <string name=\"action_add_repo_message\">Add additional repos to %s. This should be a URL that ends with \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">This repo already exists!</string>\n    <string name=\"action_delete_repo\">Delete repo</string>\n    <string name=\"invalid_repo_name\">Invalid repo URL</string>\n    <string name=\"delete_repo_confirmation\">Do you wish to delete the repo \\\"%s\\\"?</string>\n    <string name=\"add_repo_confirmation\">Do you wish to add the repo \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Open source repo</string>\n    <string name=\"action_replace_repo\">Replace</string>\n    <string name=\"action_replace_repo_title\">Signing Key Fingerprint Already Exists</string>\n    <string name=\"action_replace_repo_message\">Repository %1$s has the same Signing Key Fingerprint as %2$s.\\nIf this is expected, %2$s will be replaced, otherwise contact your repo maintainer.</string>\n\n      <!-- Reader section -->\n    <string name=\"pref_fullscreen\">Fullscreen</string>\n    <string name=\"pref_show_navigation_mode\">Show tap zones overlay</string>\n    <string name=\"pref_show_navigation_mode_summary\">Briefly show when reader is opened</string>\n    <string name=\"pref_dual_page_split\">Split wide pages</string>\n    <string name=\"pref_dual_page_invert\">Invert split page placement</string>\n    <string name=\"pref_dual_page_invert_summary\">If the placement of the split wide pages don\\'t match reading direction</string>\n    <string name=\"pref_page_rotate\">Rotate wide pages to fit</string>\n    <string name=\"pref_page_rotate_invert\">Flip orientation of rotated wide pages</string>\n    <string name=\"pref_double_tap_zoom\">Double tap to zoom</string>\n    <string name=\"pref_cutout_short\">Show content in cutout area</string>\n    <string name=\"pref_page_transitions\">Animate page transitions</string>\n    <string name=\"pref_flash_page\">Flash on page change</string>\n    <string name=\"pref_flash_page_summ\">Reduces ghosting on e-ink displays</string>\n    <string name=\"pref_flash_duration\">Flash duration</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flash every</string>\n    <string name=\"pref_flash_with\">Flash with</string>\n    <string name=\"pref_flash_style_black\">Black</string>\n    <string name=\"pref_flash_style_white\">White</string>\n    <string name=\"pref_flash_style_white_black\">White and Black</string>\n    <string name=\"pref_double_tap_anim_speed\">Double tap animation speed</string>\n    <string name=\"pref_show_page_number\">Show page number</string>\n    <string name=\"pref_show_reading_mode\">Show reading mode</string>\n    <string name=\"pref_show_reading_mode_summary\">Briefly show current mode when reader is opened</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Custom hardware bitmap threshold</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Default (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">If reader loads a blank image incrementally reduce the threshold.\\nSelected: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Use legacy decoder for long strip reader</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Affects performance. Only enable if reducing bitmap threshold doesn\\'t fix blank image issues</string>\n    <string name=\"pref_display_profile\">Custom display profile</string>\n    <string name=\"pref_crop_borders\">Crop borders</string>\n    <string name=\"pref_custom_brightness\">Custom brightness</string>\n    <string name=\"pref_grayscale\">Grayscale</string>\n    <string name=\"pref_inverted_colors\">Inverted</string>\n    <string name=\"pref_custom_color_filter\">Custom color filter</string>\n    <string name=\"pref_color_filter_mode\">Color filter blend mode</string>\n    <string name=\"filter_mode_overlay\">Overlay</string>\n    <string name=\"filter_mode_multiply\">Multiply</string>\n    <string name=\"filter_mode_screen\">Screen</string>\n    <string name=\"filter_mode_lighten\">Dodge / Lighten</string>\n    <string name=\"filter_mode_darken\">Burn / Darken</string>\n    <string name=\"pref_keep_screen_on\">Keep screen on</string>\n    <string name=\"pref_skip_read_chapters\">Skip chapters marked read</string>\n    <string name=\"pref_skip_filtered_chapters\">Skip filtered chapters</string>\n    <string name=\"pref_skip_dupe_chapters\">Skip duplicate chapters</string>\n    <string name=\"pref_reader_navigation\">Navigation</string>\n    <string name=\"pref_read_with_volume_keys\">Volume keys</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Invert volume keys</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invert tap zones</string>\n    <string name=\"tapping_inverted_none\">None</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_both\">Both</string>\n    <string name=\"pref_reader_actions\">Actions</string>\n    <string name=\"pref_read_with_long_tap\">Show actions on long tap</string>\n    <string name=\"pref_create_folder_per_manga\">Save pages into separate folders</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Creates folders according to entries\\' title</string>\n    <string name=\"pref_reader_theme\">Background color</string>\n    <string name=\"white_background\">White</string>\n    <string name=\"gray_background\">Gray</string>\n    <string name=\"black_background\">Black</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"pref_viewer_type\">Default reading mode</string>\n    <string name=\"l_nav\">L shaped</string>\n    <string name=\"kindlish_nav\">Kindle-ish</string>\n    <string name=\"edge_nav\">Edge</string>\n    <string name=\"right_and_left_nav\">Right and Left</string>\n    <string name=\"disabled_nav\">Disabled</string>\n    <string name=\"nav_zone_prev\">Prev</string>\n    <string name=\"nav_zone_next\">Next</string>\n    <string name=\"nav_zone_left\">Left</string>\n    <string name=\"nav_zone_right\">Right</string>\n    <string name=\"left_to_right_viewer\">Paged (left to right)</string>\n    <string name=\"right_to_left_viewer\">Paged (right to left)</string>\n    <string name=\"vertical_viewer\">Paged (vertical)</string>\n    <string name=\"webtoon_viewer\">Long strip</string>\n    <string name=\"vertical_plus_viewer\">Long strip with gaps</string>\n    <string name=\"pager_viewer\">Paged</string>\n    <string name=\"pref_viewer_nav\">Tap zones</string>\n    <string name=\"pref_image_scale_type\">Scale type</string>\n    <string name=\"scale_type_fit_screen\">Fit screen</string>\n    <string name=\"scale_type_stretch\">Stretch</string>\n    <string name=\"scale_type_fit_width\">Fit width</string>\n    <string name=\"scale_type_fit_height\">Fit height</string>\n    <string name=\"scale_type_original_size\">Original size</string>\n    <string name=\"scale_type_smart_fit\">Smart fit</string>\n    <string name=\"pref_navigate_pan\">Pan wide images</string>\n    <string name=\"pref_landscape_zoom\">Automatically zoom into wide images</string>\n    <string name=\"pref_zoom_start\">Zoom start position</string>\n    <string name=\"zoom_start_automatic\">Automatic</string>\n    <string name=\"zoom_start_left\">Left</string>\n    <string name=\"zoom_start_right\">Right</string>\n    <string name=\"zoom_start_center\">Center</string>\n    <string name=\"double_tap_anim_speed_0\">No animation</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Fast</string>\n    <string name=\"pref_rotation_type\">Default rotation</string>\n    <string name=\"rotation_type\">Rotation</string>\n    <string name=\"rotation_free\">Free</string>\n    <string name=\"rotation_portrait\">Portrait</string>\n    <string name=\"rotation_reverse_portrait\">Reverse portrait</string>\n    <string name=\"rotation_landscape\">Landscape</string>\n    <string name=\"rotation_force_portrait\">Locked portrait</string>\n    <string name=\"rotation_force_landscape\">Locked landscape</string>\n    <string name=\"color_filter_r_value\">Red</string>\n    <string name=\"color_filter_g_value\">Green</string>\n    <string name=\"color_filter_b_value\">Blue</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"pref_always_show_chapter_transition\">Always show chapter transition</string>\n    <string name=\"pref_category_reading_mode\">Reading mode</string>\n    <string name=\"pref_category_reading\">Reading</string>\n    <string name=\"pref_webtoon_side_padding\">Side padding</string>\n    <string name=\"pref_hide_threshold\">Sensitivity for hiding menu on scroll</string>\n    <string name=\"pref_highest\">Highest</string>\n    <string name=\"pref_high\">High</string>\n    <string name=\"pref_low\">Low</string>\n    <string name=\"pref_lowest\">Lowest</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Disable zoom out</string>\n\n      <!-- Downloads section -->\n    <string name=\"pref_category_delete_chapters\">Delete chapters</string>\n    <string name=\"pref_remove_after_marked_as_read\">After manually marked as read</string>\n    <string name=\"pref_remove_after_read\">After reading automatically delete</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Allow deleting bookmarked chapters</string>\n    <string name=\"pref_remove_exclude_categories\">Excluded categories</string>\n    <string name=\"no_location_set\">No storage location set</string>\n    <string name=\"invalid_location\">Invalid location: %s</string>\n    <string name=\"storage_failed_to_create_download_directory\">Failed to create download directory</string>\n    <string name=\"storage_failed_to_create_directory\">Failed to create directory: %s</string>\n    <string name=\"disabled\">Disabled</string>\n    <string name=\"last_read_chapter\">Last read chapter</string>\n    <string name=\"second_to_last\">Second to last read chapter</string>\n    <string name=\"third_to_last\">Third to last read chapter</string>\n    <string name=\"fourth_to_last\">Fourth to last read chapter</string>\n    <string name=\"fifth_to_last\">Fifth to last read chapter</string>\n    <string name=\"pref_category_auto_download\">Auto-download</string>\n    <string name=\"pref_download_new\">Download new chapters</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Skip downloading duplicate read chapters</string>\n    <string name=\"pref_download_new_categories_details\">Entries in excluded categories will not be downloaded even if they are also in included categories.</string>\n    <string name=\"download_ahead\">Download ahead</string>\n    <string name=\"auto_download_while_reading\">Auto download while reading</string>\n    <string name=\"download_ahead_info\">Only works if the current chapter + the next one are already downloaded.</string>\n    <string name=\"save_chapter_as_cbz\">Save as CBZ archive</string>\n    <string name=\"split_tall_images\">Split tall images</string>\n    <string name=\"split_tall_images_summary\">Improves reader performance</string>\n    <string name=\"pref_download_concurrent_sources\">Concurrent source downloads</string>\n    <string name=\"pref_download_concurrent_pages\">Concurrent page downloads</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Pages downloaded simultaneously per source</string>\n\n    <!-- Tracking section -->\n    <string name=\"tracking_guide\">Tracking guide</string>\n    <string name=\"pref_auto_update_manga_sync\">Update progress after reading</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Update progress when marked as read</string>\n    <string name=\"services\">Trackers</string>\n    <string name=\"tracking_info\">One-way sync to update the chapter progress in external tracker services. Set up tracking for individual entries from their tracking button.</string>\n    <string name=\"enhanced_services\">Enhanced trackers</string>\n    <string name=\"enhanced_services_not_installed\">Available but source not installed: %s</string>\n    <string name=\"enhanced_tracking_info\">Provides enhanced features for specific sources. Entries are automatically tracked when added to your library.</string>\n    <string name=\"track_activity_name\">Tracker login</string>\n\n      <!-- Browse section -->\n    <string name=\"pref_hide_in_library_items\">Hide entries already in library</string>\n\n      <!-- Data and storage section -->\n    <string name=\"pref_storage_location\">Storage location</string>\n    <string name=\"pref_storage_location_info\">Used for automatic backups, chapter downloads, and local source.</string>\n    <string name=\"pref_create_backup\">Create backup</string>\n    <string name=\"pref_create_backup_summ\">Can be used to restore current library</string>\n    <string name=\"pref_restore_backup\">Restore backup</string>\n    <string name=\"pref_restore_backup_summ\">Restore library from backup file</string>\n    <string name=\"pref_backup_interval\">Automatic backup frequency</string>\n    <string name=\"action_create\">Create</string>\n    <string name=\"backup_created\">Backup created</string>\n    <string name=\"invalid_backup_file\">Invalid backup file:</string>\n    <string name=\"invalid_backup_file_error\">Full error:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Backup does not contain any library entries.</string>\n    <string name=\"invalid_backup_file_json\">JSON backup not supported</string>\n    <string name=\"invalid_backup_file_unknown\">Backup file is corrupted</string>\n    <string name=\"backup_restore_missing_sources\">Missing sources:</string>\n    <string name=\"backup_restore_missing_trackers\">Trackers not logged into:</string>\n    <string name=\"backup_restore_content_full\">You may need to install any missing extensions and log in to tracking services afterwards to use them.</string>\n    <string name=\"restore_completed\">Restore completed</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sec</string>\n    <string name=\"backup_in_progress\">Backup is already in progress</string>\n    <string name=\"backup_choice\">What do you want to backup?</string>\n    <string name=\"app_settings\">App settings</string>\n    <string name=\"source_settings\">Source settings</string>\n    <string name=\"extensionRepo_settings\">Extension repos</string>\n    <string name=\"private_settings\">Include sensitive settings (e.g., tracker login tokens)</string>\n    <string name=\"non_library_settings\">All read entries</string>\n    <string name=\"creating_backup\">Creating backup</string>\n    <string name=\"creating_backup_error\">Backup failed</string>\n    <string name=\"missing_storage_permission\">Storage permissions not granted</string>\n    <string name=\"empty_backup_error\">No library entries to back up</string>\n    <string name=\"create_backup_file_error\">Couldn\\'t create a backup file</string>\n    <string name=\"restore_miui_warning\">Backup/restore may not function properly if MIUI Optimization is disabled.</string>\n    <string name=\"restore_in_progress\">Restore is already in progress</string>\n    <string name=\"restoring_backup\">Restoring backup</string>\n    <string name=\"restoring_backup_error\">Restoring backup failed</string>\n    <string name=\"restoring_backup_canceled\">Canceled restore</string>\n    <string name=\"backup_info\">You should keep copies of backups in other places as well. Backups may contain sensitive data including any stored passwords; be careful if sharing.</string>\n    <string name=\"last_auto_backup_info\">Last automatically backed up: %s</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"pref_storage_usage\">Storage usage</string>\n    <string name=\"available_disk_space_info\">Available: %1$s / Total: %2$s</string>\n    <string name=\"pref_clear_chapter_cache\">Clear chapter cache</string>\n    <string name=\"used_cache\">Used: %1$s</string>\n    <string name=\"cache_deleted\">Cache cleared, %1$d files deleted</string>\n    <string name=\"cache_delete_error\">Error occurred while clearing</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Clear chapter cache on app launch</string>\n    <string name=\"export\">Export</string>\n    <string name=\"library_list\">Library List</string>\n    <string name=\"library_exported\">Library Exported</string>\n\n    <!-- Sync section -->\n    <string name=\"syncing_library\">Syncing library</string>\n    <string name=\"library_sync_complete\">Library sync complete</string>\n\n      <!-- Advanced section -->\n    <string name=\"label_network\">Networking</string>\n    <string name=\"pref_clear_cookies\">Clear cookies</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"pref_user_agent_string\">Default user agent string</string>\n    <string name=\"error_user_agent_string_blank\">User agent string can not be blank</string>\n    <string name=\"error_user_agent_string_invalid\">Invalid user agent string</string>\n    <string name=\"pref_reset_user_agent_string\">Reset default user agent string</string>\n    <string name=\"requires_app_restart\">Requires app restart to take effect</string>\n    <string name=\"cookies_cleared\">Cookies cleared</string>\n    <string name=\"pref_invalidate_download_cache\">Reindex downloads</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Force app to recheck downloaded chapters</string>\n    <string name=\"download_cache_invalidated\">Recreating download index</string>\n    <string name=\"pref_clear_database\">Clear database</string>\n    <string name=\"pref_clear_database_summary\">Delete history for entries that are not saved in your library</string>\n    <string name=\"clear_database_source_item_count\">%1$d non-library entries in database</string>\n    <string name=\"clear_database_text\">You’re about to remove entries from the database</string>\n    <string name=\"clear_database_history_warning\">Read chapters and progress of non-library entries will be lost</string>\n    <string name=\"clear_db_exclude_read\">Keep entries with read chapters</string>\n    <string name=\"clear_database_completed\">Entries deleted</string>\n    <string name=\"database_clean\">Nothing to clear</string>\n    <string name=\"pref_clear_webview_data\">Clear WebView data</string>\n    <string name=\"webview_data_deleted\">WebView data cleared</string>\n    <string name=\"pref_refresh_library_covers\">Refresh library covers</string>\n    <string name=\"pref_reset_viewer_flags\">Reset per-series reader settings</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Resets reading mode and orientation of all series</string>\n    <string name=\"pref_reset_viewer_flags_success\">All reader settings reset</string>\n    <string name=\"pref_reset_viewer_flags_error\">Couldn\\'t reset reader settings</string>\n    <string name=\"pref_dump_crash_logs\">Share crash logs</string>\n    <string name=\"pref_dump_crash_logs_summary\">Saves error logs to a file for sharing with the developers</string>\n    <string name=\"label_background_activity\">Background activity</string>\n    <string name=\"pref_disable_battery_optimization\">Disable battery optimization</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Helps with background library updates and backups</string>\n    <string name=\"battery_optimization_disabled\">Battery optimization is already disabled</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Couldn\\'t open device settings</string>\n    <string name=\"about_dont_kill_my_app\">Some manufacturers have additional app restrictions that kill background services. This website has more info on how to fix it.</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet UI</string>\n    <string name=\"pref_verbose_logging\">Verbose logging</string>\n    <string name=\"pref_verbose_logging_summary\">Print verbose logs to system log (reduces app performance)</string>\n    <string name=\"pref_debug_info\">Debug info</string>\n    <string name=\"pref_update_library_manga_titles\">Update library manga titles to match source</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Warning: if a manga is renamed, it will be removed from the download queue (if present).</string>\n\n      <!-- About section -->\n    <string name=\"website\">Website</string>\n    <string name=\"version\">Version</string>\n    <string name=\"whats_new\">What\\'s new</string>\n    <string name=\"help_translate\">Help translate</string>\n    <string name=\"licenses\">Open source licenses</string>\n    <string name=\"privacy_policy\">Privacy policy</string>\n    <string name=\"check_for_updates\">Check for updates</string>\n    <string name=\"updated_version\">Updated to v%1$s</string>\n\n    <!-- ACRA -->\n    <string name=\"pref_enable_acra\">Send crash reports</string>\n    <string name=\"pref_acra_summary\">Helps fix any bugs. No sensitive data will be sent</string>\n\n\n    <!-- More -->\n    <string name=\"fdroid_warning\">F-Droid builds are not officially supported.\\nTap to learn more.</string>\n    <string name=\"label_downloaded_only\">Downloaded only</string>\n    <string name=\"pref_incognito_mode\">Incognito mode</string>\n    <string name=\"pref_incognito_mode_summary\">Pauses reading history</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pause reading history for extension</string>\n    <string name=\"notification_incognito_text\">Disable incognito mode</string>\n    <string name=\"downloaded_only_summary\">Filters all entries in your library</string>\n\n\n    <!-- Login dialog -->\n    <string name=\"login_title\">Log in to %1$s</string>\n    <string name=\"username\">Username</string>\n    <string name=\"email\">Email address</string>\n    <string name=\"password\">Password</string>\n    <string name=\"login\">Login</string>\n    <string name=\"logging_in\">Logging in…</string>\n    <string name=\"login_success\">Logged in</string>\n    <string name=\"logout_title\">Log out from %1$s?</string>\n    <string name=\"logout\">Log out</string>\n    <string name=\"logout_success\">You are now logged out</string>\n    <string name=\"unknown_error\">Unknown error</string>\n\n    <!-- Library -->\n    <string name=\"updating_category\">Updating category</string>\n    <string name=\"manga_from_library\">From library</string>\n    <string name=\"downloaded_chapters\">Downloaded chapters</string>\n    <string name=\"intervals_header\">Intervals</string>\n    <!-- For badges/buttons on library covers. -->\n    <string name=\"overlay_header\">Overlay</string>\n    <string name=\"tabs_header\">Tabs</string>\n\n    <!-- Browse source -->\n    <!-- missing prompt after Compose rewrite #7901 -->\n    <string name=\"no_more_results\">No more results</string>\n    <string name=\"no_results_found\">No results found</string>\n    <string name=\"local_source\">Local source</string>\n    <string name=\"other_source\">Other</string>\n    <string name=\"last_used_source\">Last used</string>\n    <string name=\"pinned_sources\">Pinned</string>\n    <string name=\"action_global_search_hint\">Global search…</string>\n    <string name=\"action_global_search_query\">Search for \\\"%1$s\\\" globally</string>\n    <string name=\"latest\">Latest</string>\n    <string name=\"popular\">Popular</string>\n    <string name=\"browse\">Browse</string>\n    <string name=\"has_results\">Has results</string>\n    <string name=\"local_source_help_guide\">Local source guide</string>\n    <string name=\"no_pinned_sources\">You have no pinned sources</string>\n    <string name=\"chapter_not_found\">Chapter not found</string>\n    <string name=\"local_invalid_format\">Invalid chapter format</string>\n    <string name=\"local_filter_order_by\">Order by</string>\n    <string name=\"date\">Date</string>\n\n    <!-- Manga info -->\n    <string name=\"ongoing\">Ongoing</string>\n    <string name=\"unknown\">Unknown</string>\n    <string name=\"unknown_author\">Unknown author</string>\n    <string name=\"author\">Author</string>\n    <string name=\"artist\">Artist</string>\n    <!-- reserved for #6163 -->\n    <string name=\"unknown_status\">Unknown status</string>\n    <string name=\"licensed\">Licensed</string>\n    <string name=\"publishing_finished\">Publishing finished</string>\n    <string name=\"cancelled\">Cancelled</string>\n    <string name=\"on_hiatus\">On hiatus</string>\n    <string name=\"add_to_library\">Add to library</string>\n    <string name=\"in_library\">In library</string>\n    <!-- missing confirm menu after Compose rewrite #7901 -->\n    <string name=\"remove_from_library\">Remove from library</string>\n    <string name=\"unknown_title\">Unknown title</string>\n    <string name=\"possible_duplicates_title\">Possible duplicates</string>\n    <string name=\"possible_duplicates_summary\">You have entries in your library with a similar name.\\n\\nSelect an entry to migrate or add anyway.</string>\n    <string name=\"manga_added_library\">Added to library</string>\n    <string name=\"manga_removed_library\">Removed from library</string>\n    <string name=\"manga_info_expand\">More</string>\n    <string name=\"manga_info_collapse\">Less</string>\n    <string name=\"delete_downloads_for_manga\">Delete downloaded chapters?</string>\n    <string name=\"copied_to_clipboard_plain\">Copied to clipboard</string>\n    <string name=\"copied_to_clipboard\">Copied to clipboard:\\n%1$s</string>\n    <string name=\"clipboard_copy_error\">Failed to copy to clipboard</string>\n    <string name=\"source_not_installed\">Source not installed: %1$s</string>\n    <string name=\"snack_add_to_library\">Add to library?</string>\n    <string name=\"description_placeholder\">No description</string>\n\n    <!-- Manga chapters -->\n    <string name=\"display_mode_chapter\">Chapter %1$s</string>\n    <string name=\"manga_display_interval_title\">Estimate every</string>\n    <string name=\"manga_display_modified_interval_title\">Set to update every</string>\n    <!-- \"... around 2 days\" -->\n    <string name=\"manga_interval_expected_update\">New chapters predicted to be released in around %1$s, checking around every %2$s.</string>\n    <string name=\"manga_interval_expected_update_null\">This manga is either completed, or there is no predicted release date.</string>\n    <string name=\"manga_interval_expected_update_soon\">Soon</string>\n    <string name=\"manga_interval_custom_amount\">Custom update frequency:</string>\n    <string name=\"chapter_downloading_progress\">Downloading (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Error</string>\n    <string name=\"chapter_paused\">Paused</string>\n    <string name=\"show_title\">Source title</string>\n    <string name=\"show_chapter_number\">Chapter number</string>\n    <string name=\"sort_by_source\">By source</string>\n    <string name=\"sort_by_number\">By chapter number</string>\n    <string name=\"sort_by_upload_date\">By upload date</string>\n    <string name=\"manga_download\">Download</string>\n    <string name=\"download_unread\">Unread</string>\n    <string name=\"download_bookmarked\">Bookmarked</string>\n    <string name=\"custom_cover\">Custom cover</string>\n    <string name=\"manga_cover\">Cover</string>\n    <string name=\"cover_saved\">Cover saved</string>\n    <string name=\"error_saving_cover\">Error saving cover</string>\n    <string name=\"error_sharing_cover\">Error sharing cover</string>\n    <string name=\"confirm_delete_chapters\">Are you sure you want to delete the selected chapters?</string>\n    <string name=\"chapter_settings\">Chapter settings</string>\n    <string name=\"confirm_set_chapter_settings\">Are you sure you want to save these settings as default?</string>\n    <string name=\"also_set_chapter_settings_for_library\">Also apply to all entries in my library</string>\n    <string name=\"set_chapter_settings_as_default\">Set as default</string>\n    <string name=\"no_chapters_error\">No chapters found</string>\n    <string name=\"are_you_sure\">Are you sure?</string>\n    <string name=\"exclude_scanlators\">Exclude scanlators</string>\n    <string name=\"no_scanlators_found\">No scanlators found</string>\n    <string name=\"confirm_tracker_update\">Update trackers to chapter %d?</string>\n    <string name=\"trackers_updated_summary\">Trackers updated to chapter %d</string>\n\n    <!-- Tracking Screen -->\n    <string name=\"manga_tracking_tab\">Tracking</string>\n    <string name=\"add_tracking\">Add tracking</string>\n    <string name=\"action_track\">Track</string>\n    <string name=\"unread\">Unread</string>\n    <string name=\"reading\">Reading</string>\n    <string name=\"completed\">Completed</string>\n    <string name=\"dropped\">Dropped</string>\n    <string name=\"on_hold\">On hold</string>\n    <string name=\"paused\">Paused</string>\n    <string name=\"plan_to_read\">Plan to read</string>\n    <string name=\"repeating\">Rereading</string>\n    <string name=\"reading_list\">Reading List</string>\n    <string name=\"wish_list\">Wish List</string>\n    <string name=\"complete_list\">Complete List</string>\n    <string name=\"on_hold_list\">On Hold List</string>\n    <string name=\"unfinished_list\">Unfinished List</string>\n    <string name=\"score\">Score</string>\n    <string name=\"title\">Title</string>\n    <string name=\"status\">Status</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_started_reading_date\">Start date</string>\n    <string name=\"track_finished_reading_date\">Finish date</string>\n    <string name=\"tracked_privately\">Tracked privately</string>\n    <string name=\"action_toggle_private_on\">Track privately</string>\n    <string name=\"action_toggle_private_off\">Track publicly</string>\n    <string name=\"track_type\">Type</string>\n    <string name=\"myanimelist_relogin\">Please login to MAL again</string>\n    <string name=\"source_unsupported\">Source is not supported</string>\n    <string name=\"error_no_match\">No match found</string>\n    <string name=\"track_error\">%1$s error: %2$s</string>\n    <string name=\"track_remove_date_conf_title\">Remove date?</string>\n    <string name=\"track_remove_start_date_conf_text\">This will remove your previously selected start date from %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">This will remove your previously selected finish date from %s</string>\n    <string name=\"track_delete_title\">Remove %s tracking?</string>\n    <string name=\"track_delete_text\">This will remove the tracking locally.</string>\n    <string name=\"track_delete_remote_text\">Also remove from %s</string>\n\n    <!-- Category activity -->\n    <string name=\"error_category_exists\">A category with this name already exists!</string>\n    <!-- missing undo feature after Compose rewrite #7454 -->\n    <string name=\"snack_categories_deleted\">Categories deleted</string>\n\n    <!-- Dialog option with checkbox view -->\n    <string name=\"dialog_with_checkbox_remove_description\">This will remove the read date of this chapter. Are you sure?</string>\n    <string name=\"dialog_with_checkbox_reset\">Reset all chapters for this entry</string>\n\n    <!-- Image notifier -->\n    <string name=\"picture_saved\">Picture saved</string>\n    <string name=\"error_saving_picture\">Error saving picture</string>\n\n    <!-- Reader activity -->\n    <string name=\"custom_filter\">Custom filter</string>\n    <string name=\"set_as_cover\">Set as cover</string>\n    <string name=\"cover_updated\">Cover updated</string>\n    <string name=\"share_page_info\">%1$s: %2$s, page %3$d</string>\n    <string name=\"chapter_progress\">Page: %1$d</string>\n    <string name=\"no_next_chapter\">Next chapter not found</string>\n    <string name=\"decode_image_error\">The image couldn\\'t be loaded</string>\n    <string name=\"confirm_set_image_as_cover\">Use this image as cover art?</string>\n    <string name=\"pref_category_for_this_series\">For this series</string>\n    <string name=\"viewer\">Reading mode</string>\n    <string name=\"transition_finished\">Finished:</string>\n    <string name=\"transition_current\">Current:</string>\n    <string name=\"transition_next\">Next:</string>\n    <string name=\"transition_previous\">Previous:</string>\n    <string name=\"transition_no_next\">There\\'s no next chapter</string>\n    <string name=\"transition_no_previous\">There\\'s no previous chapter</string>\n    <string name=\"transition_pages_loading\">Loading pages…</string>\n    <string name=\"transition_pages_error\">Failed to load pages: %1$s</string>\n    <string name=\"page_list_empty_error\">No pages found</string>\n    <string name=\"loader_not_implemented_error\">Source not found</string>\n\n    <!-- Updates -->\n    <string name=\"updating_library\">Updating library</string>\n    <string name=\"update_already_running\">An update is already running</string>\n    <string name=\"cant_open_last_read_chapter\">Unable to open last read chapter</string>\n    <string name=\"updates_last_update_info\">Library last updated: %s</string>\n    <string name=\"updates_last_update_info_just_now\">Just now</string>\n    <string name=\"relative_time_span_never\">Never</string>\n    <string name=\"action_view_upcoming\">View Upcoming Updates</string>\n    <string name=\"action_filter_excluded_scanlators\">Filter excluded scanlators</string>\n\n    <!-- Upcoming -->\n    <string name=\"upcoming_guide\">Upcoming Guide</string>\n    <string name=\"upcoming_calendar_next\">Next Month</string>\n    <string name=\"upcoming_calendar_prev\">Previous Month</string>\n\n    <!-- History -->\n    <string name=\"recent_manga_time\">Ch. %1$s - %2$s</string>\n    <string name=\"pref_clear_history\">Clear history</string>\n    <string name=\"clear_history_completed\">History deleted</string>\n    <string name=\"clear_history_confirmation\">Are you sure? All history will be lost.</string>\n\n    <!-- Source Screen -->\n    <string name=\"source_empty_screen\">No source found</string>\n\n    <!-- Source Filter Screen -->\n    <string name=\"source_filter_empty_screen\">No installed source found</string>\n\n    <!-- Source migration screen -->\n    <string name=\"migration_help_guide\">Source migration guide</string>\n    <string name=\"migration_dialog_what_to_include\">Select data to include</string>\n    <string name=\"migration_selection_prompt\">Select a source to migrate from</string>\n    <string name=\"migrate\">Migrate</string>\n    <!-- Make a copy (noun) when migrating. Don't use for copying to clipboard. -->\n    <string name=\"copy\">Copy</string>\n    <string name=\"empty_screen\">Well, this is awkward</string>\n    <string name=\"not_installed\">Not installed</string>\n\n    <!-- Crash screen -->\n    <string name=\"crash_screen_title\">Whoops!</string>\n    <string name=\"crash_screen_description\">%s ran into an unexpected error. We suggest you share the crash logs in our support channel on Discord.</string>\n    <string name=\"crash_screen_restart_application\">Restart the application</string>\n\n    <!-- Stats screen -->\n    <string name=\"label_overview_section\">Overview</string>\n    <string name=\"label_completed_titles\">Completed entries</string>\n    <string name=\"label_read_duration\">Read duration</string>\n    <string name=\"label_titles_section\">Entries</string>\n    <string name=\"label_titles_in_global_update\">In global update</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_read_chapters\">Read</string>\n    <string name=\"label_tracker_section\">Trackers</string>\n    <string name=\"label_tracked_titles\">Tracked entries</string>\n    <string name=\"label_mean_score\">Mean score</string>\n    <string name=\"label_used\">Used</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n\n    <!-- Downloads activity and service -->\n    <string name=\"download_queue_error\">Couldn\\'t download chapters. You can try again in the downloads section</string>\n    <string name=\"download_insufficient_space\">Couldn\\'t download chapters due to low storage space</string>\n    <string name=\"download_queue_size_warning\">Warning: large bulk downloads may lead to sources becoming slower and/or blocking %s. Tap to learn more.</string>\n\n    <!-- Library update service notifications -->\n    <string name=\"notification_updating_progress\">Updating library… (%s)</string>\n    <string name=\"notification_size_warning\">Large updates harm sources and may lead to slower updates and also increased battery usage. Tap to learn more.</string>\n    <string name=\"notification_new_chapters\">New chapters found</string>\n    <string name=\"notification_chapters_single\">Chapter %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Chapter %1$s and %2$d more</string>\n    <string name=\"notification_chapters_multiple\">Chapters %1$s</string>\n    <string name=\"notification_update_error\">%1$d update(s) failed</string>\n    <string name=\"learn_more\">Tap to learn more</string>\n    <string name=\"notification_cover_update_failed\">Failed to update cover</string>\n    <string name=\"notification_first_add_to_library\">Please add the entry to your library before doing this</string>\n    <string name=\"library_errors_help\">For help on how to fix library update errors, see %1$s</string>\n    <string name=\"skipped_reason_completed\">Skipped because series is complete</string>\n    <string name=\"skipped_reason_not_caught_up\">Skipped because there are unread chapters</string>\n    <string name=\"skipped_reason_not_started\">Skipped because no chapters are read</string>\n    <string name=\"skipped_reason_not_always_update\">Skipped because series does not require updates</string>\n    <string name=\"skipped_reason_not_in_release_period\">Skipped because no release was expected today</string>\n\n    <!-- File Picker Titles -->\n    <string name=\"file_select_cover\">Select cover image</string>\n    <string name=\"file_select_backup\">Select backup file</string>\n    <string name=\"file_picker_error\">No file picker app found</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Failed to acquire persistent folder access. The app may behave unexpectedly.</string>\n    <string name=\"file_null_uri_error\">No file selected</string>\n\n    <!--UpdateCheck-->\n    <string name=\"update_check_confirm\">Download</string>\n    <string name=\"update_check_open\">Open on GitHub</string>\n    <!-- reserved for future use -->\n    <string name=\"update_check_eol\">This Android version is no longer supported</string>\n    <string name=\"update_check_no_new_updates\">No new updates available</string>\n\n    <!--UpdateCheck Notifications-->\n    <string name=\"update_check_notification_download_in_progress\">Downloading…</string>\n    <string name=\"update_check_notification_download_complete\">Tap to install update</string>\n    <string name=\"update_check_notification_download_error\">Download error</string>\n    <string name=\"update_check_notification_update_available\">New version available!</string>\n\n    <!-- Information Text -->\n    <string name=\"information_no_downloads\">No downloads</string>\n    <string name=\"information_no_recent\">No recent updates</string>\n    <string name=\"information_no_recent_manga\">Nothing read recently</string>\n    <string name=\"information_empty_library\">Your library is empty</string>\n    <string name=\"information_no_manga_category\">Category is empty</string>\n    <string name=\"information_no_entries_found\">No entries found in this category</string>\n    <string name=\"getting_started_guide\">Getting started guide</string>\n    <string name=\"information_empty_category\">You have no categories. Tap the plus button to create one for organizing your library.</string>\n    <string name=\"information_empty_category_dialog\">You don\\'t have any categories yet.</string>\n    <string name=\"information_cloudflare_bypass_failure\">Failed to bypass Cloudflare</string>\n    <string name=\"information_cloudflare_help\">Tap here for help with Cloudflare</string>\n    <string name=\"information_required_plain\">*required</string>\n    <!-- Do not translate \"WebView\" -->\n    <string name=\"information_webview_required\">WebView is required for the app to function</string>\n    <!-- Do not translate \"WebView\" -->\n    <string name=\"information_webview_outdated\">Please update the WebView app for better compatibility</string>\n    <string name=\"chapter_settings_updated\">Updated default chapter settings</string>\n\n    <!-- Download Notification -->\n    <string name=\"download_notifier_downloader_title\">Downloader</string>\n    <string name=\"download_notifier_title_error\">Error</string>\n    <string name=\"download_notifier_unknown_error\">Could not download chapter due to unexpected error</string>\n    <string name=\"download_notifier_text_only_wifi\">No Wi-Fi connection available</string>\n    <string name=\"download_notifier_no_network\">No network connection available</string>\n    <string name=\"download_notifier_download_paused\">Downloads paused</string>\n    <string name=\"download_notifier_split_page_not_found\">Page %d not found while splitting</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Couldn\\'t find file path of page %d</string>\n    <string name=\"download_notifier_cache_renewal\">Checking downloads</string>\n\n    <!-- Notification channels -->\n    <string name=\"channel_common\">Common</string>\n    <string name=\"channel_progress\">Progress</string>\n    <string name=\"channel_complete\">Complete</string>\n    <string name=\"channel_errors\">Errors</string>\n    <string name=\"channel_new_chapters\">Chapter updates</string>\n    <string name=\"channel_app_updates\">App updates</string>\n    <string name=\"channel_ext_updates\">Extension updates</string>\n\n    <!-- S Pen actions -->\n    <string name=\"spen_previous_page\">Previous page</string>\n    <string name=\"spen_next_page\">Next page</string>\n\n    <!-- App widget -->\n    <string name=\"appwidget_updates_description\">See your recently updated library entries</string>\n    <string name=\"appwidget_unavailable_locked\">Widget not available when app lock is enabled</string>\n    <string name=\"remove_manga\">You are about to remove \\\"%s\\\" from your library</string>\n\n    <!-- Common exceptions -->\n    <!-- Do not translate \"WebView\" -->\n    <string name=\"exception_http\">HTTP %d, check website in WebView</string>\n    <string name=\"exception_offline\">No Internet connection</string>\n    <string name=\"exception_unknown_host\">Couldn\\'t reach %s</string>\n\n    <!-- Notes screen -->\n    <string name=\"notes_placeholder\">Enjoyed the part where…</string>\n\n    <string name=\"migrationConfigScreen.selectedHeader\">Selected</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Available</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Select all</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Select none</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Select enabled sources</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Select pinned sources</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Continue</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Data to migrate</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Delete downloads of current entry after migration</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Additional keywords (optional)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Helps narrow down search results by adding additional keywords</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Hide entries without a match</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Hide entries without newer chapters</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Only show entry if the match has additional chapters</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">These options are slow and dangerous and may lead to restrictions from sources</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Advanced search mode</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Breaks down the title into keywords for a wider search</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Match based on chapter number</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">If enabled, chooses the match furthest ahead. Otherwise, picks the first match by source priority.</string>\n    <string name=\"migrationListScreenTitle\">Migration</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migration (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copy</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrate</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">No alternatives found</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Latest: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Unknown</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Search manually</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Don\\'t migrate</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrate now</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copy now</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copy now</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Stop migrating?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Stop</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Cancel</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copy</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrate</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Cancel</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Cancel</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">No chapters found, this entry cannot be used for migration</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/be/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d катэгорыя</item>\n        <item quantity=\"few\">%d катэгорыі</item>\n        <item quantity=\"many\">%d катэгорый</item>\n        <item quantity=\"other\">%d катэгорый</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Пасля %1$s хвіліны</item>\n        <item quantity=\"few\">Пасля %1$s хвілін</item>\n        <item quantity=\"many\">Пасля %1$s хвілін</item>\n        <item quantity=\"other\">Пасля %1$s хвілін</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Учора</item>\n        <item quantity=\"few\">%1$d дні таму</item>\n        <item quantity=\"many\">%1$d дзён таму</item>\n        <item quantity=\"other\">%1$d дзён таму</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Наступная непрачытаная глава</item>\n        <item quantity=\"few\">Наступныя %d непрачытаныя главы</item>\n        <item quantity=\"many\">Наступныя %d непрачытаных глав</item>\n        <item quantity=\"other\">Наступныя %d непрачытаных глав</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/be/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"action_move_to_top\">Перайсці да пачатку</string>\n    <string name=\"action_desc\">Сыходны</string>\n    <string name=\"action_asc\">Узыходзячы</string>\n    <string name=\"action_oldest\">Найстарэйшы</string>\n    <string name=\"action_newest\">Найноўшы</string>\n    <string name=\"action_order_by_chapter_number\">Па нумару часткi</string>\n    <string name=\"action_order_by_upload_date\">Па даце загрузкі</string>\n    <string name=\"action_sort\">Сартаваць</string>\n    <string name=\"cancel_all_for_series\">Адмяніце ўсе для гэтай серыі</string>\n    <string name=\"action_cancel_all\">Адмяніць усе</string>\n    <string name=\"action_cancel\">Адмена</string>\n    <string name=\"action_unpin\">Адмацаваць</string>\n    <string name=\"action_pin\">Замацаваць</string>\n    <string name=\"action_disable\">Адключыць</string>\n    <string name=\"action_display_show_number_of_items\">Паказаць колькасць прадметаў</string>\n    <string name=\"action_display_show_tabs\">Паказаць укладкі катэгорый</string>\n    <string name=\"action_display_local_badge\">Значкі лакальных</string>\n    <string name=\"action_display_download_badge\">Значкі загружаных</string>\n    <string name=\"action_display_list\">Спіс</string>\n    <string name=\"action_display_comfortable_grid\">Зручная сетка</string>\n    <string name=\"action_display_grid\">Кампактная сетка</string>\n    <string name=\"action_display\">Выгляд</string>\n    <string name=\"action_display_mode\">Рэжым адлюстравання</string>\n    <string name=\"action_migrate\">Міграваць</string>\n    <string name=\"action_open_in_web_view\">Адкрыць у WebView</string>\n    <string name=\"action_open_in_browser\">Адкрыць у браўзэры</string>\n    <string name=\"action_resume\">Прадоўжыць</string>\n    <string name=\"action_start\">Пачаць</string>\n    <string name=\"action_remove\">Выдаляць</string>\n    <string name=\"action_retry\">Паўтарыць</string>\n    <string name=\"action_next_chapter\">Наступная частка</string>\n    <string name=\"action_previous_chapter\">Папярэдняя частка</string>\n    <string name=\"action_pause\">Паўза</string>\n    <string name=\"action_view_chapters\">Прагляд частак</string>\n    <string name=\"action_edit_cover\">Рэдагаваць вокладку</string>\n    <string name=\"action_move_category\">Дадаць у катэгорыі</string>\n    <string name=\"action_rename_category\">Перайменаваць катэгорыю</string>\n    <string name=\"action_edit_categories\">Рэдагаваць катэгорыі</string>\n    <string name=\"action_add_category\">Дадаць катэгорыю</string>\n    <string name=\"action_add\">Дадаць</string>\n    <string name=\"action_edit\">Рэдагаваць</string>\n    <string name=\"action_disable_all\">Адключыць усе</string>\n    <string name=\"action_enable_all\">Ўключыць усе</string>\n    <string name=\"action_update_library\">Абнавіць бібліятэку</string>\n    <string name=\"action_delete\">Выдаліць</string>\n    <string name=\"action_remove_bookmark\">Зняць закладку з часткi</string>\n    <string name=\"action_bookmark\">Закладка часткi</string>\n    <string name=\"action_download\">Скачаць</string>\n    <string name=\"action_mark_previous_as_read\">Пазначыць папярэдняе як прачытанае</string>\n    <string name=\"action_mark_as_unread\">Пазначыць як непрачытанае</string>\n    <string name=\"action_mark_as_read\">Адзначыць як прачытанае</string>\n    <string name=\"action_select_inverse\">Выбраць наадварот</string>\n    <string name=\"action_select_all\">Выбраць усе</string>\n    <string name=\"action_global_search\">Глабальны пошук</string>\n    <string name=\"action_search_settings\">Пошук налад</string>\n    <string name=\"action_search\">Пошук</string>\n    <string name=\"action_sort_date_added\">Дата дадання</string>\n    <string name=\"action_sort_chapter_fetch_date\">Дата атрымання</string>\n    <string name=\"action_sort_latest_chapter\">Апошняя частка</string>\n    <string name=\"action_sort_last_read\">Апошняе чытанне</string>\n    <string name=\"action_sort_total\">Усяго частак</string>\n    <string name=\"action_sort_alpha\">У алфавітным парадку</string>\n    <string name=\"action_filter_empty\">Зняць фільтр</string>\n    <string name=\"action_filter_unread\">Непрачытаны</string>\n    <string name=\"action_filter_tracked\">Адсочваецца</string>\n    <string name=\"action_filter_bookmarked\">Паведамленні ў закладкі</string>\n    <string name=\"action_filter\">Фільтр</string>\n    <string name=\"action_menu\">Меню</string>\n    <string name=\"action_settings\">Налады</string>\n    <string name=\"label_help\">Дапамога</string>\n    <string name=\"label_extension_info\">Інфармацыя аб пашырэнні</string>\n    <string name=\"name\">Назва</string>\n    <string name=\"label_extensions\">Пашырэння</string>\n    <string name=\"label_migration\">перанесці дадзеныя</string>\n    <string name=\"label_backup\">Рэзервовае капіяванне і аднаўленне</string>\n    <string name=\"label_sources\">Крыніцы</string>\n    <string name=\"label_recent_manga\">Гісторыя</string>\n    <string name=\"label_recent_updates\">Абнаўленні</string>\n    <string name=\"label_library\">Бібліятэка</string>\n    <string name=\"label_download_queue\">Чарга загрузак</string>\n    <string name=\"label_settings\">Налады</string>\n    <string name=\"label_more\">Яшчэ</string>\n    <string name=\"history\">Гісторыя</string>\n    <string name=\"track\">Адсочванне</string>\n    <string name=\"chapters\">Часткi</string>\n    <string name=\"manga\">Манга</string>\n    <string name=\"categories\">Катэгорыі</string>\n    <string name=\"ext_uninstall\">Выдаліць</string>\n    <string name=\"ext_untrusted\">Ненадзейны</string>\n    <string name=\"ext_trust\">Надзейны</string>\n    <string name=\"ext_installed\">Усталяваны</string>\n    <string name=\"ext_installing\">Устаноўка</string>\n    <string name=\"ext_downloading\">Загрузка</string>\n    <string name=\"ext_pending\">Чаканне</string>\n    <string name=\"ext_install\">Усталяваць</string>\n    <string name=\"ext_obsolete\">Састарэла</string>\n    <string name=\"ext_update\">Абнаўленне</string>\n    <string name=\"ext_updates_pending\">Даступны абнаўлення</string>\n    <string name=\"exclude\">Выключыць: %s</string>\n    <string name=\"include\">Уключаць: %s</string>\n    <string name=\"none\">Ніхто</string>\n    <string name=\"all\">Усе</string>\n    <string name=\"pref_library_update_categories_details\">Манга ў выключаных катэгорыях не будзе абнаўляцца, нават калі яны таксама знаходзяцца ў уключаных катэгорыях.</string>\n    <string name=\"categorized_display_settings\">Налады для кожнай катэгорыі для сартавання і адлюстравання</string>\n    <string name=\"default_category_summary\">Заўсёды пытацца</string>\n    <string name=\"default_category\">Катэгорыя па змаўчанні</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Правераць наяўнасць новай вокладкі і дэталяў пры абнаўленні бібліятэкі</string>\n    <string name=\"pref_library_update_refresh_metadata\">Аўтаматычнае абнаўленне метададзеных</string>\n    <string name=\"pref_update_only_non_completed\">Абнаўляць толькі незавершаную мангу</string>\n    <string name=\"restrictions\">Абмежаванні: %s</string>\n    <string name=\"charging\">Зарадка</string>\n    <string name=\"pref_library_update_restriction\">Абмежаванні на абнаўленне</string>\n    <string name=\"update_weekly\">Штотыдзень</string>\n    <string name=\"update_48hour\">Кожныя 2 дні</string>\n    <string name=\"update_24hour\">Штодня</string>\n    <string name=\"update_12hour\">Кожныя 12 гадзін</string>\n    <string name=\"update_6hour\">Кожныя 6 гадзін</string>\n    <string name=\"update_never\">Уручную</string>\n    <string name=\"pref_library_update_interval\">Частата абнаўлення</string>\n    <string name=\"pref_category_library_update\">Глабальнае абнаўленне</string>\n    <string name=\"landscape\">Гарызантальная</string>\n    <string name=\"portrait\">Партрэтная</string>\n    <string name=\"pref_library_columns\">Элементы ў радку</string>\n    <string name=\"pref_category_display\">Адлюстраванне</string>\n    <string name=\"parental_controls_info\">Гэта не перашкаджае таму, каб неафіцыйныя або патэнцыйна няправільна пазначаныя пашырэння адлюстроўвалі змесціва NSFW (18+) у дадатку.</string>\n    <string name=\"pref_show_nsfw_source\">Паказаць у спісе крыніц</string>\n    <string name=\"pref_category_nsfw_content\">Крыніцы NSFW (18+)</string>\n    <string name=\"hide_notification_content\">Схаваць змесціва апавяшчэнняў</string>\n    <string name=\"secure_screen_summary\">Схаваць змесціва прыкладання пры пераключэнні на іншыя прыкладання і блакаваць скрыншоты</string>\n    <string name=\"secure_screen\">Абарона экрана</string>\n    <string name=\"lock_never\">Ніколі</string>\n    <string name=\"lock_always\">Заўсёды</string>\n    <string name=\"lock_when_idle\">Блакаванне пры бяздзейнасці</string>\n    <string name=\"lock_with_biometrics\">Патрабаваць разблакоўку</string>\n    <string name=\"pref_category_security\">Бяспека</string>\n    <string name=\"pref_manage_notifications\">Кіраванне апавяшчэннямі</string>\n    <string name=\"pref_date_format\">Фармат даты</string>\n    <string name=\"pref_dark_theme_pure_black\">Чысты чорны цёмны рэжым</string>\n    <string name=\"theme_yotsuba\">Ёцуба</string>\n    <string name=\"theme_yinyang\">Інь і Ян</string>\n    <string name=\"theme_tako\">Тако</string>\n    <string name=\"theme_strawberrydaiquiri\">Клубнічны дайкiры</string>\n    <string name=\"theme_midnightdusk\">Паўночнае змярканне</string>\n    <string name=\"theme_greenapple\">Зялёны яблык</string>\n    <string name=\"theme_monet\">Дынамічная</string>\n    <string name=\"pref_app_theme\">Тэма прыкладання</string>\n    <string name=\"theme_dark\">Уключаны</string>\n    <string name=\"theme_light\">Выключаны</string>\n    <string name=\"theme_system\">У адпаведнасці з сістэмнай тэмай</string>\n    <string name=\"pref_category_theme\">Тэма</string>\n    <string name=\"pref_category_about\">Інфармацыя</string>\n    <string name=\"pref_category_advanced\">Дадаткова</string>\n    <string name=\"pref_category_tracking\">Адсочванне</string>\n    <string name=\"pref_category_downloads\">Загрузкi</string>\n    <string name=\"pref_category_reader\">Чыталка</string>\n    <string name=\"pref_category_library\">Бібліятэка</string>\n    <string name=\"pref_category_general\">Агульныя</string>\n    <string name=\"app_not_available\">Дадатак недаступны</string>\n    <string name=\"loading\">Пагрузка…</string>\n    <string name=\"action_start_downloading_now\">Пачаць загрузку прама зараз</string>\n    <string name=\"action_webview_refresh\">Асвяжыць</string>\n    <string name=\"action_webview_forward\">Наперад</string>\n    <string name=\"action_webview_back\">Назад</string>\n    <string name=\"action_restore\">Аднавіць</string>\n    <string name=\"action_show_errors\">Паказваць памылкі</string>\n    <string name=\"action_open_log\">Адкрыць часопіс</string>\n    <string name=\"action_undo\">Адмяніць</string>\n    <string name=\"action_reset\">Скід</string>\n    <string name=\"action_save\">Захаваць</string>\n    <string name=\"action_share\">Падзяліцца</string>\n    <string name=\"action_install\">Усталяваць</string>\n    <string name=\"action_move_to_bottom\">Перайсцi на дно</string>\n    <string name=\"information_no_recent\">Ніякіх апошніх абнаўленняў</string>\n    <string name=\"information_no_downloads\">Няма загрузак</string>\n    <string name=\"pref_page_transitions\">Анімацыя пераходаў паміж старонкамі</string>\n    <string name=\"pref_cutout_short\">Паказваць змесціва ў галіне выраза</string>\n    <string name=\"pref_dual_page_invert_summary\">Калі размяшчэнне падзелу на дзве старонкі не адпавядае кірунку чытання</string>\n    <string name=\"pref_dual_page_invert\">Інвертаваць размяшчэнне з падзелам на дзве старонкі</string>\n    <string name=\"pref_dual_page_split\">Падзел на дзве старонкі</string>\n    <string name=\"pref_show_navigation_mode_summary\">Паказваць зоны дотыку калі чыталка адкрыта</string>\n    <string name=\"pref_show_navigation_mode\">Паказваць накладанне схемы навігацыі</string>\n    <string name=\"pref_fullscreen\">Поўнаэкранны рэжым</string>\n    <string name=\"ext_nsfw_warning\">Можа ўтрымліваць кантэнт NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"obsolete_extension_message\">Гэта пашырэнне больш недаступна.</string>\n    <string name=\"untrusted_extension_message\">Гэта пашырэнне было падпісана ненадзейным сертыфікатам і не было актывавана.\n\\n\n\\nШкоднаснае пашырэнне можа счытваць любыя ўліковыя дадзеныя для ўваходу, якія захоўваюцца ў Mihon, або выконваць адвольны код.\n\\n\n\\nДавяраючы гэтаму сертыфікату, вы прымаеце на сябе гэтыя рызыкі.</string>\n    <string name=\"untrusted_extension\">Ненадзейнае пашырэнне</string>\n    <string name=\"pref_viewer_nav\">Схема навігацыі</string>\n    <string name=\"pager_viewer\">Пастаронкава</string>\n    <string name=\"vertical_plus_viewer\">Бесперапынна вертыкальна</string>\n    <string name=\"webtoon_viewer\">Вэб-комікс</string>\n    <string name=\"vertical_viewer\">Вертыкальна</string>\n    <string name=\"right_to_left_viewer\">Справа налева</string>\n    <string name=\"left_to_right_viewer\">Злева направа</string>\n    <string name=\"nav_zone_right\">Справа</string>\n    <string name=\"nav_zone_left\">Злева</string>\n    <string name=\"nav_zone_next\">Наступная</string>\n    <string name=\"nav_zone_prev\">Папярэдняя</string>\n    <string name=\"right_and_left_nav\">Справа і злева</string>\n    <string name=\"edge_nav\">Край</string>\n    <string name=\"kindlish_nav\">Kindle-падобная</string>\n    <string name=\"l_nav\">L-вобразная форма</string>\n    <string name=\"pref_viewer_type\">Рэжым чытання па змаўчанні</string>\n    <string name=\"automatic_background\">Аўтаматычна</string>\n    <string name=\"black_background\">Чорны</string>\n    <string name=\"gray_background\">Шэры</string>\n    <string name=\"white_background\">Белы</string>\n    <string name=\"pref_reader_theme\">Колер фону</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Ствараць тэчкі ў адпаведнасці з назвай мангі</string>\n    <string name=\"pref_create_folder_per_manga\">Захоўваць старонкі ў асобныя тэчкі</string>\n    <string name=\"pref_read_with_long_tap\">Паказаць пры доўгім націску</string>\n    <string name=\"pref_reader_actions\">Дзеяння</string>\n    <string name=\"tapping_inverted_both\">Абодва</string>\n    <string name=\"tapping_inverted_vertical\">Вертыкальна</string>\n    <string name=\"tapping_inverted_horizontal\">Гарызантальна</string>\n    <string name=\"tapping_inverted_none\">Не</string>\n    <string name=\"pref_read_with_tapping_inverted\">Націск наадварот</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Інвертаваць клавішы рэгулявання гучнасці</string>\n    <string name=\"pref_read_with_volume_keys\">Клавішы рэгулявання гучнасці</string>\n    <string name=\"pref_reader_navigation\">Навігацыя</string>\n    <string name=\"pref_skip_filtered_chapters\">Прапусціць адфільтраваныя часткi</string>\n    <string name=\"pref_skip_read_chapters\">Прапусціць часткi, адзначаныя як прачытаныя</string>\n    <string name=\"pref_keep_screen_on\">Трымаць экран уключаным</string>\n    <string name=\"filter_mode_darken\">Зацямненьне</string>\n    <string name=\"filter_mode_lighten\">Асвятленне</string>\n    <string name=\"filter_mode_screen\">Экран</string>\n    <string name=\"filter_mode_multiply\">Множанне</string>\n    <string name=\"filter_mode_overlay\">Перакрыцце</string>\n    <string name=\"pref_color_filter_mode\">Рэжым накладання каляровага фільтра</string>\n    <string name=\"pref_custom_color_filter\">Карыстацкі каляровы фільтр</string>\n    <string name=\"pref_grayscale\">Адценні шэрага</string>\n    <string name=\"pref_custom_brightness\">Карыстацкая яркасць</string>\n    <string name=\"off\">Выключаны</string>\n    <string name=\"on\">Уключаны</string>\n    <string name=\"pref_crop_borders\">Абрэзаць поля</string>\n    <string name=\"pref_show_reading_mode_summary\">Ненадоўга адлюстраваць бягучы рэжым пры адкрыцці чыталкі</string>\n    <string name=\"pref_show_reading_mode\">Паказаць рэжым чытання</string>\n    <string name=\"pref_show_page_number\">Паказаць нумар старонкі</string>\n    <string name=\"pref_double_tap_anim_speed\">Хуткасць анімацыі падвойнага націску</string>\n    <string name=\"double_tap_anim_speed_fast\">Хуткая</string>\n    <string name=\"double_tap_anim_speed_normal\">Звычайная</string>\n    <string name=\"double_tap_anim_speed_0\">Ніякай анімацыі</string>\n    <string name=\"zoom_start_center\">Цэнтральная</string>\n    <string name=\"zoom_start_right\">Справа</string>\n    <string name=\"zoom_start_left\">Злева</string>\n    <string name=\"zoom_start_automatic\">Аўтаматычная</string>\n    <string name=\"pref_zoom_start\">Стартавая пазіцыя павелічэння</string>\n    <string name=\"scale_type_smart_fit\">Разумны</string>\n    <string name=\"scale_type_original_size\">Зыходны памер</string>\n    <string name=\"scale_type_fit_height\">Па вышыні</string>\n    <string name=\"scale_type_fit_width\">Па шырыні</string>\n    <string name=\"scale_type_stretch\">Расцягнуць</string>\n    <string name=\"scale_type_fit_screen\">Змясціць у экран</string>\n    <string name=\"pref_image_scale_type\">Маштабаванне</string>\n    <string name=\"pref_inverted_colors\">Колеры наадварот</string>\n    <string name=\"relative_time_today\">Сёння</string>\n    <string name=\"theme_tealturquoise\">Бірузовы</string>\n    <string name=\"pref_category_appearance\">Знешнасць</string>\n    <string name=\"confirm_lock_change\">Аўтэнтыфікацыя для пацверджання змяненняў</string>\n    <string name=\"label_default\">Па змаўчанні</string>\n    <string name=\"information_empty_category\">У вас няма катэгорый. Націсніце кнопку \\\"Плюс\\\", каб стварыць яе для арганізацыі вашай бібліятэкі.</string>\n    <string name=\"information_empty_library\">Ваша бібліятэка пустая</string>\n    <string name=\"information_no_recent_manga\">У апошні час нічога не прачытана</string>\n    <string name=\"action_track\">Адсочваць</string>\n    <string name=\"enhanced_tracking_info\">Службы, якія прадстаўляюць пашыраныя функцыі для пэўных крыніц. Манга аўтаматычна адсочваецца пры даданні ў вашу бібліятэку.</string>\n    <string name=\"enhanced_services\">Пашыраныя паслугі</string>\n    <string name=\"tracking_info\">Аднабаковая сінхранізацыя для абнаўлення прагрэсу частак у службах адсочвання. Наладзьце адсочванне асобных запісаў мангі з дапамогай кнопкі адсочвання.</string>\n    <string name=\"services\">Паслугi</string>\n    <string name=\"pref_auto_update_manga_sync\">Абнаўляць прагрэс пасля чытання</string>\n    <string name=\"tracking_guide\">Кіраўніцтва па адсочванні</string>\n    <string name=\"pref_download_new_categories_details\">Манга ў выключаных катэгорыях не будзе загружана, нават калі яны таксама знаходзяцца ў уключаных катэгорыях.</string>\n    <string name=\"pref_download_new\">Спампаваць новыя часткi</string>\n    <string name=\"pref_category_auto_download\">Аўтаматычная загрузка</string>\n    <string name=\"fifth_to_last\">Пятая ад прачытанай часткi</string>\n    <string name=\"fourth_to_last\">Чацвёртая ад прачытанай часткi</string>\n    <string name=\"third_to_last\">Трэцяя ад прачытанай часткі</string>\n    <string name=\"second_to_last\">Перадапошняя частка</string>\n    <string name=\"last_read_chapter\">Апошняя прачытаная частка</string>\n    <string name=\"disabled\">Адключана</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Дазволіць выдаленне частак з закладкамі</string>\n    <string name=\"pref_remove_after_read\">Аўтаматычна пасля чытання</string>\n    <string name=\"pref_remove_after_marked_as_read\">Пасля таго, як пазначана як \\\"Прачытанае\\\"</string>\n    <string name=\"pref_category_delete_chapters\">Выдаліць часткі</string>\n    <string name=\"pref_lowest\">Найнізкая</string>\n    <string name=\"pref_low\">Нізкая</string>\n    <string name=\"pref_high\">Высокая</string>\n    <string name=\"pref_highest\">Найвышэйшая</string>\n    <string name=\"pref_hide_threshold\">Аўтаматычнае утойванне меню пры адчувальнасці да прагортцы</string>\n    <string name=\"pref_webtoon_side_padding\">Бакавой водступ</string>\n    <string name=\"pref_category_reading\">Чытаньне</string>\n    <string name=\"pref_category_reading_mode\">Рэжым чытання</string>\n    <string name=\"pref_always_show_chapter_transition\">Заўсёды паказваць пераход паміж часткамі</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"rotation_force_landscape\">Заблакаваная альбомная</string>\n    <string name=\"rotation_free\">Свабодная</string>\n    <string name=\"rotation_portrait\">Партрэтная</string>\n    <string name=\"rotation_landscape\">Альбомная</string>\n    <string name=\"rotation_force_portrait\">Заблакаваная партрэтная</string>\n    <string name=\"rotation_type\">Тып арыентацыі</string>\n    <string name=\"pref_rotation_type\">Тып арыентацыі па змаўчанні</string>\n    <string name=\"label_warning\">папярэджанне</string>\n    <string name=\"delete_category\">Выдаліць катэгорыю</string>\n    <string name=\"delete_category_confirmation\">Вы хочаце выдаліць катэгорыю \\\"%s\\\"?</string>\n    <string name=\"internal_error\">InternalError: Праверце журнал збояў для атрымання дадатковай інфармацыі</string>\n    <string name=\"ext_update_all\">Абнавіць усё</string>\n    <string name=\"ext_info_age_rating\">Узроставае абмежаванне</string>\n    <string name=\"pref_update_only_started\">Не пачата</string>\n    <string name=\"action_show_manga\">Паказаць мангу</string>\n    <string name=\"ext_info_version\">Версія</string>\n    <string name=\"action_sort_last_manga_update\">Апошняе абнаўленне мангі</string>\n    <string name=\"action_sort_unread_count\">Колькасць непрачытаных</string>\n    <string name=\"extension_api_error\">Не ўдалося атрымаць спіс пашырэнняў</string>\n    <string name=\"action_display_cover_only_grid\">Сетка без назвы</string>\n    <string name=\"ext_app_info\">Аб дадатку</string>\n    <string name=\"action_sort_count\">Колькасць мангі</string>\n    <string name=\"action_display_language_badge\">Мова</string>\n    <string name=\"network_not_metered\">Толькі ў безлемітнай сетцы</string>\n    <string name=\"ext_info_language\">Мова</string>\n    <string name=\"theme_lavender\">Лаванда</string>\n    <string name=\"pref_app_language\">Мова дадатку</string>\n    <string name=\"pref_update_only_completely_read\">Ёсць непрачытаныя главы</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku не працуе</string>\n    <string name=\"action_close\">Закрыць</string>\n    <string name=\"ext_install_service_notif\">Устаноўка пашырэнняў…</string>\n    <string name=\"action_move_to_top_all_for_series\">Перамясціць у пачатак спісу</string>\n    <string name=\"ext_installer_pref\">Усталёўнік</string>\n    <string name=\"ext_installer_legacy\">па змаўчанні</string>\n    <string name=\"action_remove_everything\">Выдаліць усё</string>\n    <string name=\"update_72hour\">Кожныя 3 дні</string>\n    <string name=\"connected_to_wifi\">Толькі па Wi-Fi</string>\n    <string name=\"not_selected\">Не выбрана</string>\n    <string name=\"action_bar_up_description\">Перайсці ўверх</string>\n    <string name=\"unlock_app_title\">Разблакіраваць %s</string>\n    <string name=\"label_started\">Пачата</string>\n    <string name=\"selected\">Выбрана</string>\n    <string name=\"action_menu_overflow_description\">Другія опцыі</string>\n    <string name=\"delete_downloaded\">Выдаліць загружанае</string>\n    <string name=\"label_data_storage\">Даныя і хаванне</string>\n    <string name=\"label_stats\">Статыстыка</string>\n    <string name=\"label_local\">На ўстройстве</string>\n    <string name=\"action_set_interval\">Задаць інтэрвал</string>\n    <string name=\"action_filter_interval_custom\">Наладжвальная частата абнаўлення</string>\n    <string name=\"label_upcoming\">Наступнае</string>\n    <string name=\"scanlator\">Перакладчык</string>\n    <string name=\"label_downloaded\">Загружана</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/bg/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">1 налично обновление за разширение</item>\n        <item quantity=\"other\">%d налични обновления за разширения</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Глави %1$s и още 1</item>\n        <item quantity=\"other\">Глави %1$s и още %2$d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">1 нова глава</item>\n        <item quantity=\"other\">%1$d нови глави</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">За 1 заглавие</item>\n        <item quantity=\"other\">За %d заглавия</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">1 оставаща</item>\n        <item quantity=\"other\">%1$s оставащи</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">След 1 минута</item>\n        <item quantity=\"other\">След %1$s минути</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Направено за %1$s с %2$s грешка</item>\n        <item quantity=\"other\">Направено за %1$s с %2$s грешки</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d категория</item>\n        <item quantity=\"other\">%d категории</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">1 глава</item>\n        <item quantity=\"other\">%1$s глави</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">1 тракер</item>\n        <item quantity=\"other\">%d тракери</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Има 1 липсваща глава, източникът липса или е филтриран</item>\n        <item quantity=\"other\">Има %d липсващи глави, източникът липса или е филтриран</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Вчера</item>\n        <item quantity=\"other\">Преди %1$d дни</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Следващата непрочетена глава</item>\n        <item quantity=\"other\">Следващите %d непрочетени глави</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 ден</item>\n        <item quantity=\"other\">%d дни</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Липсваща %1$s глава</item>\n        <item quantity=\"other\">Липсващи %1$s глави</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Следваща глава</item>\n        <item quantity=\"other\">Следващи %d глави</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d хранилище</item>\n        <item quantity=\"other\">%d хранилища</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 страница</item>\n        <item quantity=\"other\">%1$s страници</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Утре</item>\n        <item quantity=\"other\">След %1$d дни</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/bg/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Име</string>\n    <string name=\"label_settings\">Настройки</string>\n    <string name=\"label_download_queue\">Изтегляния</string>\n    <string name=\"label_library\">Библиотека</string>\n    <string name=\"label_recent_manga\">История</string>\n    <string name=\"label_recent_updates\">Нови глави</string>\n    <string name=\"label_backup\">Запази и възстанови</string>\n    <string name=\"action_settings\">Настройки</string>\n    <string name=\"action_filter\">Филтрирай</string>\n    <string name=\"action_filter_bookmarked\">Отбелязани</string>\n    <string name=\"action_filter_unread\">Непрочетени</string>\n    <string name=\"action_filter_empty\">Премахни филтрирането</string>\n    <string name=\"action_sort_alpha\">Азбучен ред</string>\n    <string name=\"action_sort_last_read\">Последно четене</string>\n    <string name=\"action_search\">Търсене</string>\n    <string name=\"action_select_all\">Избери всички</string>\n    <string name=\"action_mark_as_read\">Отбележи като прочетена</string>\n    <string name=\"action_mark_as_unread\">Отбележи като непрочетена</string>\n    <string name=\"action_mark_previous_as_read\">Отбележи предните глави като прочетени</string>\n    <string name=\"action_download\">Изтегли</string>\n    <string name=\"action_bookmark\">Отметни</string>\n    <string name=\"action_remove_bookmark\">Премахни отметнатата глава</string>\n    <string name=\"action_delete\">Изтрий</string>\n    <string name=\"action_update_library\">Обнови библиотеката</string>\n    <string name=\"action_edit\">Редактирай</string>\n    <string name=\"action_add\">Добави</string>\n    <string name=\"action_add_category\">Добави категория</string>\n    <string name=\"action_edit_categories\">Редактирай категории</string>\n    <string name=\"action_rename_category\">Преименувай категория</string>\n    <string name=\"action_move_category\">Запиши в категории</string>\n    <string name=\"action_edit_cover\">Промени корица</string>\n    <string name=\"action_pause\">Паузирай</string>\n    <string name=\"action_previous_chapter\">Предишна глава</string>\n    <string name=\"action_next_chapter\">Следваща глава</string>\n    <string name=\"action_retry\">Опитай пак</string>\n    <string name=\"action_remove\">Премахни</string>\n    <string name=\"action_resume\">Продължи</string>\n    <string name=\"action_open_in_browser\">Отвори в браузър</string>\n    <string name=\"action_display_mode\">Режим на показване</string>\n    <string name=\"action_display\">Покажи</string>\n    <string name=\"action_display_grid\">Компактна решетка</string>\n    <string name=\"action_display_list\">Списък</string>\n    <string name=\"action_cancel\">Отмени</string>\n    <string name=\"action_sort\">Сортирай</string>\n    <string name=\"action_install\">Инсталирай</string>\n    <string name=\"action_share\">Сподели</string>\n    <string name=\"action_save\">Запази</string>\n    <string name=\"action_reset\">Изчисти</string>\n    <string name=\"action_undo\">Върни</string>\n    <string name=\"loading\">Зареждане…</string>\n    <string name=\"pref_category_general\">Основни настройки</string>\n    <string name=\"pref_category_reader\">Четец</string>\n    <string name=\"pref_category_downloads\">Изтегляния</string>\n    <string name=\"pref_category_tracking\">Следене</string>\n    <string name=\"pref_category_advanced\">Разширени настройки</string>\n    <string name=\"pref_category_about\">За приложението</string>\n    <string name=\"pref_library_columns\">Манга на ред</string>\n    <string name=\"portrait\">Портретно</string>\n    <string name=\"landscape\">Пейзажно</string>\n    <string name=\"pref_library_update_interval\">Автоматини ъпдейти</string>\n    <string name=\"update_never\">Изключено</string>\n    <string name=\"update_6hour\">На всеки 6 часа</string>\n    <string name=\"update_12hour\">На всеки 12 часа</string>\n    <string name=\"update_24hour\">Ежедневно</string>\n    <string name=\"update_48hour\">През ден</string>\n    <string name=\"all\">Всички</string>\n    <string name=\"pref_library_update_restriction\">Автоматични актуализации на ограниченията на устройството</string>\n    <string name=\"charging\">На зарядно устройство</string>\n    <string name=\"pref_update_only_non_completed\">Със статус \\\"Завършена\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Обнови прогреса след прочитане</string>\n    <string name=\"pref_fullscreen\">Цял екран</string>\n    <string name=\"pref_page_transitions\">Анимирани преходи</string>\n    <string name=\"pref_show_page_number\">Номер на страница</string>\n    <string name=\"pref_custom_brightness\">Персонализирана яркост</string>\n    <string name=\"pref_custom_color_filter\">Персонализиран цветен филтър</string>\n    <string name=\"pref_keep_screen_on\">Не изключвай екрана</string>\n    <string name=\"pref_reader_navigation\">Навигация</string>\n    <string name=\"pref_read_with_volume_keys\">Бутони за звука</string>\n    <string name=\"pref_reader_theme\">Цвят на фона</string>\n    <string name=\"white_background\">Бял</string>\n    <string name=\"black_background\">Черен</string>\n    <string name=\"pref_viewer_type\">Режим на четене по подразбиране</string>\n    <string name=\"left_to_right_viewer\">От ляво надясно</string>\n    <string name=\"right_to_left_viewer\">От дясно наляво</string>\n    <string name=\"vertical_viewer\">Вертикално</string>\n    <string name=\"webtoon_viewer\">Уебкомикс</string>\n    <string name=\"pref_image_scale_type\">Увеличение</string>\n    <string name=\"scale_type_fit_screen\">Запълване</string>\n    <string name=\"scale_type_stretch\">Разтегляне</string>\n    <string name=\"scale_type_fit_width\">По ширина</string>\n    <string name=\"scale_type_fit_height\">По височина</string>\n    <string name=\"scale_type_original_size\">Оригинален размер</string>\n    <string name=\"scale_type_smart_fit\">Умно увеличение</string>\n    <string name=\"pref_zoom_start\">Начална позиция при увеличаване</string>\n    <string name=\"zoom_start_automatic\">Автоматична</string>\n    <string name=\"zoom_start_left\">Ляво</string>\n    <string name=\"zoom_start_right\">Дясно</string>\n    <string name=\"zoom_start_center\">Центрирано</string>\n    <string name=\"pref_rotation_type\">Стандартна ориентация</string>\n    <string name=\"rotation_free\">Свободно</string>\n    <string name=\"rotation_force_portrait\">Заключено - портрет</string>\n    <string name=\"rotation_force_landscape\">Заключено - пейзаж</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">След маркиране като прочетено</string>\n    <string name=\"pref_remove_after_read\">След прочитане автоматично изтрийте</string>\n    <string name=\"disabled\">Изключено</string>\n    <string name=\"last_read_chapter\">Последно прочетена глава</string>\n    <string name=\"second_to_last\">Предпоследна прочетена глава</string>\n    <string name=\"third_to_last\">Предпоследна трета прочетена глава</string>\n    <string name=\"fourth_to_last\">Четвърта предпоследна прочетена глава</string>\n    <string name=\"fifth_to_last\">Пета предпоследна прочетена глава</string>\n    <string name=\"pref_download_new\">Изтегляй нови глави</string>\n    <string name=\"services\">Услуги</string>\n    <string name=\"pref_clear_chapter_cache\">Изчисти кеша на главите</string>\n    <string name=\"used_cache\">Използвани: %1$s</string>\n    <string name=\"cache_deleted\">Кеш изчистен. %1$d файла бяха изчистени</string>\n    <string name=\"cache_delete_error\">Възникна грешка при изчистването на кеша</string>\n    <string name=\"pref_clear_cookies\">Изчисти бисквитки</string>\n    <string name=\"cookies_cleared\">Бисквитки изчистени</string>\n    <string name=\"pref_clear_database\">Изчисти базата данни</string>\n    <string name=\"pref_clear_database_summary\">Изтрий историята на манги, които не са запазени в библиотеката</string>\n    <string name=\"clear_database_completed\">Базата данни изчистена</string>\n    <string name=\"version\">Версия</string>\n    <string name=\"pref_enable_acra\">Изпращай данни за сривове</string>\n    <string name=\"pref_acra_summary\">Помага за оправянето на бъгове. Няма да се изпращат лични данни</string>\n    <string name=\"login_title\">Влизане в %1$s</string>\n    <string name=\"username\">Потребителско име</string>\n    <string name=\"password\">Парола</string>\n    <string name=\"login\">Влез</string>\n    <string name=\"login_success\">Влязохте</string>\n    <string name=\"unknown_error\">Неизвестна грешка</string>\n    <string name=\"updating_category\">Обновяване на категорията</string>\n    <string name=\"no_more_results\">Няма повече резултати</string>\n    <string name=\"ongoing\">Излизаща</string>\n    <string name=\"unknown\">Неизвестно</string>\n    <string name=\"licensed\">Лицензирана</string>\n    <string name=\"remove_from_library\">Премахни от библиотеката</string>\n    <string name=\"display_mode_chapter\">Глава %1$s</string>\n    <string name=\"chapter_downloading_progress\">Изтегляне (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Грешка</string>\n    <string name=\"show_title\">Оригинално заглавие</string>\n    <string name=\"show_chapter_number\">Номер на главата</string>\n    <string name=\"sort_by_source\">По източник</string>\n    <string name=\"sort_by_number\">По ред на главите</string>\n    <string name=\"manga_download\">Изтегли</string>\n    <string name=\"download_unread\">Непрочетени</string>\n    <string name=\"confirm_delete_chapters\">Сигурни ли сте, че искате да изтриете избраните глави?</string>\n    <string name=\"manga_tracking_tab\">Следене</string>\n    <string name=\"reading\">Чета</string>\n    <string name=\"completed\">Завършена</string>\n    <string name=\"dropped\">Изоставена</string>\n    <string name=\"on_hold\">На заден план</string>\n    <string name=\"plan_to_read\">Планирам да чета</string>\n    <string name=\"score\">Оценка</string>\n    <string name=\"title\">Заглавие</string>\n    <string name=\"status\">Статус</string>\n    <string name=\"chapters\">Глави</string>\n    <string name=\"error_category_exists\">Категория със същото име вече съществува!</string>\n    <string name=\"snack_categories_deleted\">Категориите бяха изтрити</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Това ще премахне датата на прочитане на главата. Сигурни ли сте?</string>\n    <string name=\"dialog_with_checkbox_reset\">Изчисти всички дати за тази манга</string>\n    <string name=\"snack_add_to_library\">Добавяне на мангата към библиотеката?</string>\n    <string name=\"picture_saved\">Изображението запазено</string>\n    <string name=\"custom_filter\">Персонализиран филтър</string>\n    <string name=\"set_as_cover\">Постави за корица</string>\n    <string name=\"cover_updated\">Корицата обновена</string>\n    <string name=\"chapter_progress\">Страница: %1$d</string>\n    <string name=\"no_next_chapter\">Не беше намерена следваща глава</string>\n    <string name=\"decode_image_error\">Неуспешно декодиране на изображението</string>\n    <string name=\"confirm_set_image_as_cover\">Желаете ли да използвате това изображение за корица?</string>\n    <string name=\"download_queue_error\">Не можахме да изтеглим главите. Може да опитате пак в секцията на изтеглянията</string>\n    <string name=\"notification_new_chapters\">Нови глави</string>\n    <string name=\"notification_cover_update_failed\">Грешка при обновяването на корицата</string>\n    <string name=\"notification_first_add_to_library\">Моля, добавете мангата в библиотеката си, преди да направите това</string>\n    <string name=\"file_select_cover\">Изберете корица</string>\n    <string name=\"file_select_backup\">Изберете резервно копие</string>\n    <string name=\"update_check_confirm\">Изтегли</string>\n    <string name=\"update_check_no_new_updates\">Няма налични актуализации</string>\n    <string name=\"update_check_notification_download_in_progress\">Изтегля се…</string>\n    <string name=\"update_check_notification_download_complete\">Изтегляне завършено</string>\n    <string name=\"update_check_notification_download_error\">Грешка при изтегляне</string>\n    <string name=\"update_check_notification_update_available\">Има нова версия!</string>\n    <string name=\"information_no_downloads\">Нямате изтегляния</string>\n    <string name=\"information_no_recent\">Нямате нови глави</string>\n    <string name=\"information_no_recent_manga\">Не сте чели нищо наскоро</string>\n    <string name=\"information_empty_library\">Библиотеката Ви е празна</string>\n    <string name=\"download_notifier_downloader_title\">Изтегли</string>\n    <string name=\"download_notifier_title_error\">Грешка</string>\n    <string name=\"download_notifier_unknown_error\">Получи се неочаквана грешка при изтеглянето на главата</string>\n    <string name=\"download_notifier_text_only_wifi\">Няма налична Wi-Fi връзка</string>\n    <string name=\"download_notifier_no_network\">Няма налична мрежова връзка</string>\n    <string name=\"categories\">Категории</string>\n    <string name=\"manga\">Манга</string>\n    <string name=\"track\">Следене</string>\n    <string name=\"history\">История</string>\n    <string name=\"action_sort_total\">Общ брой глави</string>\n    <string name=\"action_open_log\">Отвори лога</string>\n    <string name=\"action_restore\">Възстанови</string>\n    <string name=\"app_not_available\">Приложението не е достъпно</string>\n    <string name=\"update_weekly\">Ежеседмично</string>\n    <string name=\"default_category\">Категория по подразбиране</string>\n    <string name=\"default_category_summary\">Питай всеки път</string>\n    <string name=\"pref_crop_borders\">Изрязвай границите</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Обърнати бутони за звука</string>\n    <string name=\"pref_create_backup\">Създай резервно копие</string>\n    <string name=\"pref_create_backup_summ\">Може да се използва за възстановяване на текущата библиотека</string>\n    <string name=\"pref_restore_backup\">Възстанови резервно копие</string>\n    <string name=\"pref_restore_backup_summ\">Възстанови библиотеката от резервно копие</string>\n    <string name=\"pref_backup_interval\">Честота на запазване</string>\n    <string name=\"backup_created\">Резервно копие създадено</string>\n    <string name=\"restore_completed\">Възстановяването завършено</string>\n    <string name=\"backup_choice\">Какво искате да запазите?</string>\n    <string name=\"restoring_backup\">Възстановяване на копие</string>\n    <string name=\"creating_backup\">Създаване на резервно копие</string>\n    <string name=\"local_source\">Локални</string>\n    <string name=\"delete_downloads_for_manga\">Да се изтрият ли изтеглените глави?</string>\n    <string name=\"chapter_paused\">На пауза</string>\n    <string name=\"download_notifier_download_paused\">Изтеглянето спряно</string>\n    <string name=\"action_global_search\">Глобално търсене</string>\n    <string name=\"other_source\">Други</string>\n    <string name=\"action_global_search_hint\">Глобално търсене…</string>\n    <string name=\"latest\">Последни</string>\n    <string name=\"browse\">Търсене</string>\n    <string name=\"channel_common\">Общи</string>\n    <string name=\"action_display_download_badge\">Изтеглени глави</string>\n    <string name=\"information_empty_category\">Нямате категории. Натиснете плюса, за да създадете такава и да организирате библиотеката си.</string>\n    <string name=\"label_migration\">Мигриране</string>\n    <string name=\"label_extensions\">Разширения</string>\n    <string name=\"label_extension_info\">Информация</string>\n    <string name=\"ext_update\">Обнови</string>\n    <string name=\"ext_install\">Инсталирай</string>\n    <string name=\"ext_pending\">На изчакване</string>\n    <string name=\"ext_downloading\">Изтегля се</string>\n    <string name=\"ext_installing\">Инсталира се</string>\n    <string name=\"ext_installed\">Инсталирани</string>\n    <string name=\"ext_trust\">Потвърдени</string>\n    <string name=\"ext_untrusted\">Непотвърдени</string>\n    <string name=\"ext_uninstall\">Деинсталирай</string>\n    <string name=\"untrusted_extension\">Непотвърдено разширение</string>\n    <string name=\"untrusted_extension_message\">Следното разширение имаше непотвърден сертификат и не беше активирано.\n\\n\n\\nЗлонамереното разширение може да види всичката информация за вход в системата на Mihon или да компилира неблагонадежден код.\n\\n\n\\nПотвърждавайки този сертификат, вие приемате тези рискове.</string>\n    <string name=\"pref_double_tap_anim_speed\">Скорост на анимацията</string>\n    <string name=\"double_tap_anim_speed_0\">Без анимация</string>\n    <string name=\"double_tap_anim_speed_normal\">Нормална</string>\n    <string name=\"double_tap_anim_speed_fast\">Бързо</string>\n    <string name=\"manga_added_library\">Добавена към библиотеката</string>\n    <string name=\"manga_removed_library\">Премахната от библиотеката</string>\n    <string name=\"copied_to_clipboard\">Копирано към клипборда:\n\\n%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Изберете кои данни ще мигрирате</string>\n    <string name=\"migrate\">Мигрирай</string>\n    <string name=\"copy\">Копирай</string>\n    <string name=\"pager_viewer\">Страница</string>\n    <string name=\"source_not_installed\">Източникът не е инсталиран: %1$s</string>\n    <string name=\"repeating\">Препрочитане</string>\n    <string name=\"track_status\">Статус</string>\n    <string name=\"track_type\">Тип</string>\n    <string name=\"transition_finished\">Завършени:</string>\n    <string name=\"transition_current\">Текущи:</string>\n    <string name=\"transition_next\">Следва:</string>\n    <string name=\"transition_previous\">Предишна:</string>\n    <string name=\"transition_no_next\">Няма повече глави</string>\n    <string name=\"transition_no_previous\">Няма предишна глава</string>\n    <string name=\"transition_pages_loading\">Зареждане на страниците…</string>\n    <string name=\"transition_pages_error\">Не бяха заредени успешно: %1$s страници</string>\n    <string name=\"pref_read_with_long_tap\">Покажи при задържане върху екрана</string>\n    <string name=\"action_open_in_web_view\">Отвори в WebView</string>\n    <string name=\"pref_skip_read_chapters\">Пропускай прочетените глави</string>\n    <string name=\"pref_color_filter_mode\">Режим на цветовия филтър</string>\n    <string name=\"filter_mode_overlay\">Наложен</string>\n    <string name=\"filter_mode_multiply\">Умножен</string>\n    <string name=\"filter_mode_screen\">Екранен</string>\n    <string name=\"filter_mode_lighten\">Осветен</string>\n    <string name=\"filter_mode_darken\">Затъмнен</string>\n    <string name=\"label_help\">Помощ</string>\n    <string name=\"no_results_found\">Не бяха намерени резултати</string>\n    <string name=\"migration_selection_prompt\">Изберете източник, от който да мигрирате</string>\n    <string name=\"action_webview_back\">Назад</string>\n    <string name=\"action_webview_forward\">Напред</string>\n    <string name=\"action_webview_refresh\">Обнови</string>\n    <string name=\"pref_category_library\">Библиотека</string>\n    <string name=\"ext_obsolete\">Остарял</string>\n    <string name=\"obsolete_extension_message\">Това разширение вече не е достъпно.</string>\n    <string name=\"pref_date_format\">Формат на датата</string>\n    <string name=\"pref_category_library_update\">Глобалния обновявания</string>\n    <string name=\"logout_title\">Искате ли да излезете от %1$s?</string>\n    <string name=\"logout\">Излез</string>\n    <string name=\"logout_success\">Излязохте успешно</string>\n    <string name=\"paused\">На пауза</string>\n    <string name=\"secure_screen\">Сигурност</string>\n    <string name=\"channel_ext_updates\">Ъпдейти на разширенията</string>\n    <string name=\"channel_new_chapters\">Нови глави</string>\n    <string name=\"information_webview_outdated\">Моля, обновете WebView за по-добра съвместимост</string>\n    <string name=\"information_webview_required\">WebView е необходим за Mihon</string>\n    <string name=\"information_cloudflare_bypass_failure\">Грешка при минаването през Cloudflare</string>\n    <string name=\"notification_chapters_multiple\">Глави %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Глава %1$s и %2$d още</string>\n    <string name=\"notification_chapters_single\">Глава %1$s</string>\n    <string name=\"recent_manga_time\">Гл. %1$s - %2$s</string>\n    <string name=\"updating_library\">Обновяване на библиотеката</string>\n    <string name=\"add_tracking\">Добави проследяване</string>\n    <string name=\"manga_info_collapse\">По-малко</string>\n    <string name=\"manga_info_expand\">Повече</string>\n    <string name=\"in_library\">В библиотеката</string>\n    <string name=\"add_to_library\">Добави към библиотеката</string>\n    <string name=\"local_source_help_guide\">Помощ за локални източници</string>\n    <string name=\"pinned_sources\">Закачени</string>\n    <string name=\"last_used_source\">Последно използвани</string>\n    <string name=\"email\">Имейл адрес</string>\n    <string name=\"downloaded_only_summary\">Филтрира мангата в цялата Ви библиотека</string>\n    <string name=\"label_downloaded_only\">Само изтеглени</string>\n    <string name=\"check_for_updates\">Провери за ъпдейт</string>\n    <string name=\"licenses\">Лицензи за отворен код</string>\n    <string name=\"website\">Уебсайт</string>\n    <string name=\"battery_optimization_disabled\">Оптимизацията на батерията е изключена</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Помага при фонови обновявания на библиотеката и резервни копия</string>\n    <string name=\"pref_disable_battery_optimization\">Изключи оптимизация на батерията</string>\n    <string name=\"restoring_backup_canceled\">Отменено възстановяване</string>\n    <string name=\"restoring_backup_error\">Възстановяването неуспешно</string>\n    <string name=\"restore_in_progress\">Възстановяването е в процес</string>\n    <string name=\"creating_backup_error\">Съхраняването неуспешно</string>\n    <string name=\"backup_in_progress\">Архивирането вече е в ход</string>\n    <string name=\"restore_duration\">%1$02d мин, %2$02d сек</string>\n    <string name=\"pref_webtoon_side_padding\">Странично разстояние</string>\n    <string name=\"pref_category_reading\">Четене</string>\n    <string name=\"pref_always_show_chapter_transition\">Винаги показвай прехода между главите</string>\n    <string name=\"vertical_plus_viewer\">Безкраен вертикален изглед</string>\n    <string name=\"pref_skip_filtered_chapters\">Пропускай филтрирани глави</string>\n    <string name=\"pref_cutout_short\">Показвай съдържанието в изрязаната част</string>\n    <string name=\"ext_updates_pending\">Налични ъпдейти</string>\n    <string name=\"pref_category_display\">Показване</string>\n    <string name=\"hide_notification_content\">Скривай съдържанието на уведомленията</string>\n    <string name=\"secure_screen_summary\">Скрий съдържанието на приложението и блокирай снимките на екрана</string>\n    <string name=\"lock_never\">Никога</string>\n    <string name=\"lock_always\">Винаги</string>\n    <string name=\"lock_when_idle\">Заключи при неактивност</string>\n    <string name=\"lock_with_biometrics\">Изискване на отключване</string>\n    <string name=\"pref_category_security\">Сигурност</string>\n    <string name=\"pref_manage_notifications\">Уведомления</string>\n    <string name=\"theme_system\">Система на абонаментите</string>\n    <string name=\"theme_dark\">Включено</string>\n    <string name=\"theme_light\">Изключено</string>\n    <string name=\"action_move_to_top\">Премести най-горе</string>\n    <string name=\"action_move_to_bottom\">Премести най-долу</string>\n    <string name=\"action_oldest\">Най-стари</string>\n    <string name=\"action_newest\">Най-нови</string>\n    <string name=\"action_cancel_all\">Отмени всичко</string>\n    <string name=\"action_unpin\">Откачи</string>\n    <string name=\"action_pin\">Закачи</string>\n    <string name=\"action_view_chapters\">Преглед на глави</string>\n    <string name=\"action_select_inverse\">Избери обратно</string>\n    <string name=\"action_sort_latest_chapter\">Последна глава</string>\n    <string name=\"action_menu\">Меню</string>\n    <string name=\"label_sources\">Източници</string>\n    <string name=\"label_more\">Още</string>\n    <string name=\"viewer\">Режим на четене</string>\n    <string name=\"pref_category_for_this_series\">За тази поредица</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Системните настройки не бяха отворени</string>\n    <string name=\"pref_refresh_library_covers\">Обнови кориците</string>\n    <string name=\"tracking_info\">Еднопосочна синхронизация на прочетените глави. Установи проследяване за отделни манги от индивидуалния бутон за проследяване.</string>\n    <string name=\"gray_background\">Сиво</string>\n    <string name=\"action_migrate\">Мигрирай</string>\n    <string name=\"loader_not_implemented_error\">Източникът не е намерен</string>\n    <string name=\"page_list_empty_error\">Няма намерени страници</string>\n    <string name=\"sort_by_upload_date\">По дата на качване</string>\n    <string name=\"tabs_header\">Раздели</string>\n    <string name=\"label_data\">Данни</string>\n    <string name=\"requires_app_restart\">Изисква рестартиране, за да влезе в сила</string>\n    <string name=\"label_network\">Мрежа</string>\n    <string name=\"backup_restore_missing_sources\">Липсващи източници:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Резервното копие не съдържа манга.</string>\n    <string name=\"invalid_backup_file\">Невалиден резервен файл</string>\n    <string name=\"pref_show_reading_mode_summary\">Накратко показване на текущия режим при отваряне на четеца</string>\n    <string name=\"pref_show_reading_mode\">Покажи режим на четене</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Провери за нова корица и подробности при актуализиране на библиотеката</string>\n    <string name=\"pref_library_update_refresh_metadata\">Автоматично обновяване на метаданните</string>\n    <string name=\"action_disable\">Деактивирай</string>\n    <string name=\"action_display_show_tabs\">Показване на раздели за категории</string>\n    <string name=\"action_display_comfortable_grid\">Удобна решетка</string>\n    <string name=\"action_start\">Започни</string>\n    <string name=\"action_disable_all\">Деактивирай всички</string>\n    <string name=\"action_enable_all\">Активира всички</string>\n    <string name=\"tapping_inverted_none\">Без</string>\n    <string name=\"tapping_inverted_both\">И двете</string>\n    <string name=\"tapping_inverted_vertical\">Вертикално</string>\n    <string name=\"tapping_inverted_horizontal\">Хоризонтално</string>\n    <string name=\"channel_errors\">Грешки</string>\n    <string name=\"channel_complete\">Готово</string>\n    <string name=\"channel_progress\">Прогрес</string>\n    <string name=\"download_insufficient_space\">Главите не можаха да бъдат изтеглени поради недостатъчно място</string>\n    <string name=\"unknown_status\">Неизвестен статус</string>\n    <string name=\"unknown_author\">Неизвестен автор</string>\n    <string name=\"no_pinned_sources\">Нямате отметнати източници</string>\n    <string name=\"action_global_search_query\">Търси „%1$s“ глобално</string>\n    <string name=\"updated_version\">Обновена до v%1$s</string>\n    <string name=\"whats_new\">Какво е новото</string>\n    <string name=\"backup_restore_missing_trackers\">Не сте влезли като потребител в:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Позволи изтриване на отметнати глави</string>\n    <string name=\"pref_category_delete_chapters\">Изтрий глави</string>\n    <string name=\"pref_category_reading_mode\">Режим на четене</string>\n    <string name=\"ext_nsfw_warning\">Може да съдържа неприлично (18+) съдържание</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Тази настройка няма да спре неофициални или потенциално неправилно маркирани разширения да позволяват достъп до съдържание за възрастни (18+) в апликацията.</string>\n    <string name=\"pref_category_theme\">Тема</string>\n    <string name=\"action_sort_date_added\">Добавено на</string>\n    <string name=\"no_chapters_error\">Не са намерени глави</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) източници</string>\n    <string name=\"action_desc\">Низходящ</string>\n    <string name=\"action_asc\">Възходящ</string>\n    <string name=\"action_order_by_chapter_number\">По брой на главите</string>\n    <string name=\"action_order_by_upload_date\">По дата на качване</string>\n    <string name=\"action_display_show_number_of_items\">Покажи номера на предметите</string>\n    <string name=\"action_search_settings\">Настройки за търсене</string>\n    <string name=\"action_filter_tracked\">Следени</string>\n    <string name=\"edge_nav\">Край</string>\n    <string name=\"date\">Дата</string>\n    <string name=\"pref_dark_theme_pure_black\">Чисто черен режим</string>\n    <string name=\"label_default\">По подразбиране</string>\n    <string name=\"backup_restore_content_full\">Ще бъдат възстановени данните от резервното копие.\n\\n\n\\nТрябва да инсталирате липсващи разширения, ако има такива, и да се впишете в услугите за тракинг, за да ги ползвате.</string>\n    <string name=\"action_track\">Проследи</string>\n    <string name=\"restore_miui_warning\">Съхраняването/възстановяването може да не функционира правилно, ако MIUI Optimization е изключено.</string>\n    <string name=\"about_dont_kill_my_app\">Някои производители ограничават приложенията, за да убият задноплановите услуги. Следният уебсайт съдържа информация за разрешаването на проблема.</string>\n    <string name=\"pref_incognito_mode\">Инкогнито режим</string>\n    <string name=\"pref_incognito_mode_summary\">Не записва история, докато трае режимът</string>\n    <string name=\"local_filter_order_by\">Нареди по</string>\n    <string name=\"chapter_settings\">Настройки за главите</string>\n    <string name=\"action_start_downloading_now\">Започни изтеглянето сега</string>\n    <string name=\"ext_install_service_notif\">Инсталиране на разширение…</string>\n    <string name=\"ext_installer_legacy\">Стара версия</string>\n    <string name=\"ext_installer_pref\">Инсталатор</string>\n    <string name=\"pref_dump_crash_logs\">Разтовари записите от сривовете</string>\n    <string name=\"off\">Не</string>\n    <string name=\"rotation_landscape\">Пейзаж</string>\n    <string name=\"label_background_activity\">Работа на заден план</string>\n    <string name=\"notification_incognito_text\">Изключи инкогнито</string>\n    <string name=\"pref_category_appearance\">Облик</string>\n    <string name=\"on\">Да</string>\n    <string name=\"l_nav\">L-образно</string>\n    <string name=\"kindlish_nav\">Kindle-подобно</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Създава папки според заглавието на мангата</string>\n    <string name=\"automatic_background\">Автоматично</string>\n    <string name=\"pref_viewer_nav\">Схема на навигацията</string>\n    <string name=\"nav_zone_prev\">Преди</string>\n    <string name=\"nav_zone_next\">След</string>\n    <string name=\"nav_zone_left\">Ляво</string>\n    <string name=\"nav_zone_right\">Дясно</string>\n    <string name=\"pref_high\">Висока</string>\n    <string name=\"information_empty_category_dialog\">Нямате никакви категории.</string>\n    <string name=\"pref_dns_over_https\">DNS пред HTTPS</string>\n    <string name=\"action_sort_count\">Общ брой манга</string>\n    <string name=\"action_sort_chapter_fetch_date\">Дата на получаване</string>\n    <string name=\"action_display_local_badge\">Локална манга</string>\n    <string name=\"pref_hide_threshold\">Чувствителност за скриване на менюто при превъртане</string>\n    <string name=\"pref_highest\">Най-висока</string>\n    <string name=\"unread\">Непрочетена</string>\n    <string name=\"manga_cover\">Корица</string>\n    <string name=\"label_warning\">Предупреждение</string>\n    <string name=\"confirm_lock_change\">Удостоверете, за да потвърдите промяната</string>\n    <string name=\"cancel_all_for_series\">Премахни всичко от тази серия</string>\n    <string name=\"action_show_errors\">Вижте пълните подробности за грешката</string>\n    <string name=\"pref_app_theme\">Тема</string>\n    <string name=\"theme_monet\">Динамично</string>\n    <string name=\"theme_greenapple\">Зелена ябълка</string>\n    <string name=\"theme_midnightdusk\">Нощен здрач</string>\n    <string name=\"theme_strawberrydaiquiri\">Дайкири ягода</string>\n    <string name=\"theme_tako\">Тако</string>\n    <string name=\"theme_tealturquoise\">Циан и тюркоаз</string>\n    <string name=\"theme_yinyang\">Ин и Янг</string>\n    <string name=\"theme_yotsuba\">Йоцуба</string>\n    <string name=\"restrictions\">Ограничения: %s</string>\n    <string name=\"categorized_display_settings\">Различно сортиране и показване за всяка категоря</string>\n    <string name=\"pref_library_update_categories_details\">Манга в изключените категории няма да бъде обновявана дори ако се намира във включените категории.</string>\n    <string name=\"none\">Никоя</string>\n    <string name=\"include\">Включва: %s</string>\n    <string name=\"exclude\">Изключва: %s</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku не работи</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Инсталирайте и стартирайте Shizuku, за да използвате Shizuku като инсталатор на разширения.</string>\n    <string name=\"pref_show_navigation_mode\">Покажи оформлението на навигацията</string>\n    <string name=\"pref_dual_page_split\">Разделяне на широки страници</string>\n    <string name=\"pref_dual_page_invert_summary\">Ако позицията на разделението на широката страница не съвпада с посоката на четене</string>\n    <string name=\"pref_grayscale\">Черно-бяло</string>\n    <string name=\"pref_read_with_tapping_inverted\">Инвертирай докосване</string>\n    <string name=\"pref_reader_actions\">Действия</string>\n    <string name=\"pref_create_folder_per_manga\">Запазвай страниците в отделни папки</string>\n    <string name=\"right_and_left_nav\">Дясно и Ляво</string>\n    <string name=\"rotation_type\">Ориентация</string>\n    <string name=\"rotation_portrait\">Портрет</string>\n    <string name=\"pref_low\">Ниска</string>\n    <string name=\"pref_lowest\">Най-ниска</string>\n    <string name=\"pref_remove_exclude_categories\">Изключени категории</string>\n    <string name=\"pref_category_auto_download\">Автоматично изтегляне</string>\n    <string name=\"pref_download_new_categories_details\">Манга в изключени категории няма да бъде изтеглена, дори да се намира във включени категории.</string>\n    <string name=\"tracking_guide\">Наръчник при проследяване</string>\n    <string name=\"enhanced_services\">Подобрени услуги</string>\n    <string name=\"enhanced_tracking_info\">Услуги, предлагащи подобрени особености за определени източници. Манга се проследява автоматично, щом бъде добавена към библиотеката Ви.</string>\n    <string name=\"backup_info\">Автоматичното запазване е препоръчително. Препоръчваме да съхранявате резервните копия на няколко места.</string>\n    <string name=\"pref_verbose_logging\">Описателно записване</string>\n    <string name=\"help_translate\">Помогни с превода</string>\n    <string name=\"manga_from_library\">Манга от библиотеката</string>\n    <string name=\"downloaded_chapters\">Изтеглени глави</string>\n    <string name=\"clipboard_copy_error\">Не можа да се копира върху клипборда</string>\n    <string name=\"cover_saved\">Корицата запазена</string>\n    <string name=\"confirm_set_chapter_settings\">Сигурни ли сте, че искате да наложите тези настройки?</string>\n    <string name=\"also_set_chapter_settings_for_library\">Също приложи към всяка манга в библиотеката ми</string>\n    <string name=\"set_chapter_settings_as_default\">Направи по подразбиране</string>\n    <string name=\"track_started_reading_date\">Дата на започване</string>\n    <string name=\"pref_clear_history\">Изчисти историята</string>\n    <string name=\"clear_history_completed\">Историята изтрита</string>\n    <string name=\"clear_history_confirmation\">Напълно ли сте сигурен? Всичката ви история ще бъде загубена.</string>\n    <string name=\"migration_help_guide\">Наръчник за мигриране между източници</string>\n    <string name=\"notification_size_warning\">Предупреждение: големите актуализации вредят на източниците и могат да доведат до по-бавни актуализации, както и до повишено използване на батерията. Натиснете тук, за да научите повече.</string>\n    <string name=\"file_picker_error\">Не бе намерено приложение за подбор на файлове</string>\n    <string name=\"getting_started_guide\">Първи стъпки</string>\n    <string name=\"chapter_settings_updated\">Стандартните настройки на главите бяха обновени</string>\n    <string name=\"spen_previous_page\">Предишна страница</string>\n    <string name=\"spen_next_page\">Следваща страница</string>\n    <string name=\"action_display_language_badge\">Език</string>\n    <string name=\"pref_show_nsfw_source\">Показвай в списъка с източници и разширения</string>\n    <string name=\"relative_time_today\">Днес</string>\n    <string name=\"ext_app_info\">Информация</string>\n    <string name=\"pref_show_navigation_mode_summary\">Покажи зони за натискане, когато четецът се отвори</string>\n    <string name=\"pref_dual_page_invert\">Обърни позициите на разделените широки страници</string>\n    <string name=\"pref_inverted_colors\">Инвертирани цветове</string>\n    <string name=\"pref_dump_crash_logs_summary\">Запазва записи от сривове, които може да бъдат споделени с разработчиците</string>\n    <string name=\"pref_verbose_logging_summary\">Принтирай описателните записи в системните записи (ограничава производителността на приложението)</string>\n    <string name=\"chapter_not_found\">Главата не е намерена</string>\n    <string name=\"local_invalid_format\">Невалиден формат на главата</string>\n    <string name=\"error_saving_cover\">Грешка при запазването на корицата</string>\n    <string name=\"error_sharing_cover\">Грешка при споделянето на корицата</string>\n    <string name=\"track_finished_reading_date\">Дата на завършване</string>\n    <string name=\"myanimelist_relogin\">Моля, впишете се наново в MAL</string>\n    <string name=\"source_unsupported\">Източникът не се поддържа</string>\n    <string name=\"error_no_match\">Не е намерено съвпадение</string>\n    <string name=\"share_page_info\">%1$s: %2$s, страница %3$d</string>\n    <string name=\"update_check_eol\">Тази версия на Android повече не се поддържа</string>\n    <string name=\"pref_tablet_ui_mode\">Потребителски интерфейс на таблет</string>\n    <string name=\"clear_database_source_item_count\">%1$d небиблиотечна манга в базата данни</string>\n    <string name=\"database_clean\">Нищо за почистване</string>\n    <string name=\"channel_app_updates\">Актуализации на приложението</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Изчистване на кеша на главата при затваряне на приложението</string>\n    <string name=\"privacy_policy\">Политика за поверителност</string>\n    <string name=\"pref_update_only_completely_read\">С непрочетени глави</string>\n    <string name=\"ext_update_all\">Обнови всички</string>\n    <string name=\"extension_api_error\">Неуспешно получаване на списък с разширения</string>\n    <string name=\"update_72hour\">На всеки 3 дена</string>\n    <string name=\"connected_to_wifi\">Само през Wi-Fi</string>\n    <string name=\"download_queue_size_warning\">Предупреждение: големите масови изтегляния могат да доведат до забавяне на източниците и/или блокиране на %s. Натиснете тук, за да научите повече.</string>\n    <string name=\"action_show_manga\">Покажи манга</string>\n    <string name=\"action_display_cover_only_grid\">Решетка само с корици</string>\n    <string name=\"delete_category_confirmation\">Искате ли да изтриете категорията \\\"%s\\\"?</string>\n    <string name=\"internal_error\">InternalError: Провери записите за крашове за повече информация</string>\n    <string name=\"error_saving_picture\">Грешка при запазването на изображението</string>\n    <string name=\"update_already_running\">Обновява се</string>\n    <string name=\"not_installed\">Не е инсталиран</string>\n    <string name=\"rotation_reverse_portrait\">Обърнат портрет</string>\n    <string name=\"ext_info_language\">Език</string>\n    <string name=\"crash_screen_title\">Случи се неочаквана грешка</string>\n    <string name=\"auto_download_while_reading\">Автоматично изтегляне при четене</string>\n    <string name=\"description_placeholder\">Няма описание</string>\n    <string name=\"empty_backup_error\">Няма заглавия в библиотеката за резервно копие</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Нулирай режима на четене и ориентацията на всички поредици</string>\n    <string name=\"are_you_sure\">Сигурни ли сте?</string>\n    <string name=\"popular\">Популярни</string>\n    <string name=\"unfinished_list\">Списък с незавършени</string>\n    <string name=\"crash_screen_description\">%s се сблъска с неочаквана грешка. Препоръчваме да заснемете това съобщение, да запазите записите от крашовете и да ги споделите в нашия канал за поддръжка в Discord.</string>\n    <string name=\"updates_last_update_info\">Последно обновяване на библиотеката: %s</string>\n    <string name=\"reading_list\">Списък за четене</string>\n    <string name=\"cant_open_last_read_chapter\">Не може да се отвори последната прочетена глава</string>\n    <string name=\"source_empty_screen\">Не беше намерен източник</string>\n    <string name=\"crash_screen_restart_application\">Рестартирай приложението</string>\n    <string name=\"skipped_reason_completed\">Пропусната, понеже поредицата е завършена</string>\n    <string name=\"appwidget_unavailable_locked\">Приставката не е достъпна, когато е активирано заключване на приложението</string>\n    <string name=\"skipped_reason_not_always_update\">Пропусната, понеже поредицата не изисква обновления</string>\n    <string name=\"skipped_reason_not_started\">Пропусната, понеже не е започната</string>\n    <string name=\"update_check_open\">Отвори в GitHub</string>\n    <string name=\"pref_update_only_started\">Незапочнати</string>\n    <string name=\"pref_reset_viewer_flags\">Нулирай отделните настройки на четеца</string>\n    <string name=\"skipped_reason_not_caught_up\">Пропусната, понеже има непрочетени глави</string>\n    <string name=\"pref_user_agent_string\">User agent string по подразбиране</string>\n    <string name=\"error_user_agent_string_blank\">User agent string-ът не може да бъде празен</string>\n    <string name=\"pref_reset_user_agent_string\">Нулирай user agent string-a по подразбиране</string>\n    <string name=\"pref_landscape_zoom\">Увеличи пейзажно изображение</string>\n    <string name=\"complete_list\">Списък със завършени</string>\n    <string name=\"on_hold_list\">Списък със спрени</string>\n    <string name=\"download_ahead\">Предстоящо изтегляне</string>\n    <string name=\"download_ahead_info\">Работи само със заглавия в библиотеката и ако текущата и следващата глава са вече изтеглени</string>\n    <string name=\"appwidget_updates_description\">Виж наскоро обновената манга</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Не можа да бъде намерен файловият път на страница %d</string>\n    <string name=\"action_sort_last_manga_update\">Последно обновяване</string>\n    <string name=\"pref_clear_webview_data\">Изчисти данните на WebView</string>\n    <string name=\"empty_screen\">Това е неудобно</string>\n    <string name=\"cancelled\">Отменена</string>\n    <string name=\"library_errors_help\">За помощ при оправянето на грешки с обновленията, виж %1$s</string>\n    <string name=\"theme_tidalwave\">Приливна вълна</string>\n    <string name=\"action_sort_unread_count\">Брой непрочетени</string>\n    <string name=\"network_not_metered\">Само през неограничена мрежа</string>\n    <string name=\"action_move_to_top_all_for_series\">Премести поредицата най-горе</string>\n    <string name=\"theme_lavender\">Лавандула</string>\n    <string name=\"pref_app_language\">Език на приложението</string>\n    <string name=\"delete_category\">Изтрий категория</string>\n    <string name=\"ext_info_age_rating\">Възрастово ограничение</string>\n    <string name=\"wish_list\">Списък с желания</string>\n    <string name=\"save_chapter_as_cbz\">Запази като CBZ архив</string>\n    <string name=\"webview_data_deleted\">Данните на WebView изчистени</string>\n    <string name=\"pref_reset_viewer_flags_error\">Настройките на четеца не можаха да бъдат нулирани</string>\n    <string name=\"source_filter_empty_screen\">Не беше намерен инсталиран източник</string>\n    <string name=\"action_remove_everything\">Премахни всичко</string>\n    <string name=\"ext_info_version\">Версия</string>\n    <string name=\"on_hiatus\">В хиатус</string>\n    <string name=\"custom_cover\">Корица по избор</string>\n    <string name=\"notification_update_error\">%1$d провалени обновление/я</string>\n    <string name=\"action_search_hint\">Търсене…</string>\n    <string name=\"disabled_nav\">Деактивирано</string>\n    <string name=\"learn_more\">Натисни, за да научиш повече</string>\n    <string name=\"remove_manga\">Искате да премахнете \\\"%s\\\" от библиотеката си</string>\n    <string name=\"action_close\">Затвори</string>\n    <string name=\"pref_reset_viewer_flags_success\">Всички настройки на четеца нулирани</string>\n    <string name=\"pref_appearance_summary\">Тема, формат на датата и времето</string>\n    <string name=\"pref_library_summary\">Категории, глобални обновления</string>\n    <string name=\"pref_reader_summary\">Режим на четене, показване, навигация</string>\n    <string name=\"pref_downloads_summary\">Автоматични изтегляния, предстоящи изтегляния</string>\n    <string name=\"pref_tracking_summary\">Еднопосочна синхронизация, подобрена синхронизация</string>\n    <string name=\"pref_browse_summary\">Източници, разширения, глобално търсене</string>\n    <string name=\"pref_backup_summary\">Ръчно и автоматично създаване на бекъп</string>\n    <string name=\"pref_security_summary\">Заключване на приложението, екран за сигурност</string>\n    <string name=\"pref_advanced_summary\">Покажи записи от крашове, оптимизации за батерията</string>\n    <string name=\"multi_lang\">Мулти</string>\n    <string name=\"pref_navigate_pan\">Увеличи широките изображения при натискане</string>\n    <string name=\"split_tall_images_summary\">Подобрява производителността на четеца</string>\n    <string name=\"missing_storage_permission\">Не е дадено разрешение за съхранение</string>\n    <string name=\"publishing_finished\">Приключено издаване</string>\n    <string name=\"download_notifier_split_page_not_found\">Страница %d не беше намерена при разделяне</string>\n    <string name=\"manga_interval_expected_update_soon\">Скоро</string>\n    <string name=\"pref_chapter_swipe_start\">Глава на ляво плъзгане</string>\n    <string name=\"selected\">Избрано</string>\n    <string name=\"action_display_show_continue_reading_button\">Продължи да четеш</string>\n    <string name=\"action_copy_link\">Копирай връзка</string>\n    <string name=\"action_sort_next_updated\">Следващо очаквано обновление</string>\n    <string name=\"onboarding_storage_action_select\">Избери папка</string>\n    <string name=\"onboarding_storage_help_info\">Обновяваш от по-стара версия и не си сигурен какво да избереш? Объръни се към ръководството за съхранение за повече информация.</string>\n    <string name=\"theme_nord\">Норд</string>\n    <string name=\"theme_monochrome\">Монохром</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" вместо \\\"%2$s\\\"</string>\n    <string name=\"pref_flash_style_white\">Бяло</string>\n    <string name=\"pref_flash_style_white_black\">Бяло и черно</string>\n    <string name=\"available_disk_space_info\">Налични: %1$s / Общо: %2$s</string>\n    <string name=\"manga_display_modified_interval_title\">Задай обновление на всеки</string>\n    <string name=\"label_auto\">Автоматично</string>\n    <string name=\"label_local\">Локален</string>\n    <string name=\"action_sort_random\">Случайно</string>\n    <string name=\"onboarding_heading\">Добре дошли!</string>\n    <string name=\"onboarding_description\">Първо хайде да настрим някои неща. Можеш по всяко време да ги промениш от настройките.</string>\n    <string name=\"onboarding_action_finish\">Започни</string>\n    <string name=\"onboarding_action_skip\">Пропусни</string>\n    <string name=\"onboarding_storage_selection_required\">Трябва да бъде избрана папка</string>\n    <string name=\"onboarding_storage_help_action\">Ръководство за съхранение</string>\n    <string name=\"onboarding_permission_install_apps_description\">Да инсталира разширения за източници.</string>\n    <string name=\"onboarding_permission_notifications\">Разрешение за известия</string>\n    <string name=\"onboarding_permission_notifications_description\">Получавай известия за обновления в библиотеката и други</string>\n    <string name=\"pref_library_update_smart_update\">Умно обновяване</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">След прочитане на глава</string>\n    <string name=\"has_results\">Има резултати</string>\n    <string name=\"unknown_title\">Непознато заглавие</string>\n    <string name=\"possible_duplicates_title\">Възможни дубликати</string>\n    <string name=\"action_add_anyway\">Добави все пак</string>\n    <string name=\"action_create\">Създай</string>\n    <string name=\"invalid_backup_file_error\">Пълна грешка:</string>\n    <string name=\"track_error\">%1$s грешка: %2$s</string>\n    <string name=\"updates_last_update_info_just_now\">Току що</string>\n    <string name=\"label_overview_section\">Общ преглед</string>\n    <string name=\"label_read_chapters\">Прочетено</string>\n    <string name=\"hour_short\">%dч</string>\n    <string name=\"notification_updating_progress\">Обновяване на библиотеката... (%s)</string>\n    <string name=\"information_cloudflare_help\">Натисни тук за помощ с Cloudflare</string>\n    <string name=\"day_short\">%dд</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Пропусни изтегляне на дублиращи се прочетени глави</string>\n    <string name=\"intervals_header\">Интервали</string>\n    <string name=\"relative_time_span_never\">Никога</string>\n    <string name=\"action_set_interval\">Задай интервал</string>\n    <string name=\"action_open_random_manga\">Отвори случайна манга</string>\n    <string name=\"action_update_category\">Обнови категория</string>\n    <string name=\"information_no_entries_found\">Няма намерени манги в тази категория</string>\n    <string name=\"action_revert_to_default\">Върни към начални настройки</string>\n    <string name=\"action_not_now\">Не сега</string>\n    <string name=\"not_selected\">Не е избрано</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Маркирай дубликатите като прочетени</string>\n    <string name=\"action_notes\">Бележки</string>\n    <string name=\"action_edit_notes\">Редактирай бележки</string>\n    <string name=\"onboarding_action_next\">Следващ</string>\n    <string name=\"onboarding_guides_returning_user\">Преинсталираш %s?</string>\n    <string name=\"pref_hide_in_library_items\">Скрий манги, които са вече в библиотеката</string>\n    <string name=\"source_settings\">Настройки на източници</string>\n    <string name=\"manga_interval_expected_update\">Нови глави предвидени да бъдат качени след около %1$s, проверяване около всеки %2$s.</string>\n    <string name=\"upcoming_calendar_prev\">Предишен месец</string>\n    <string name=\"ext_remove\">Премахни</string>\n    <string name=\"ext_confirm_remove\">Премахни разширение?</string>\n    <string name=\"action_menu_overflow_description\">Още настройки</string>\n    <string name=\"delete_downloaded\">Изтрий</string>\n    <string name=\"label_data_storage\">Данни и съхранение</string>\n    <string name=\"label_stats\">Статистики</string>\n    <string name=\"label_downloaded\">Изтеглени</string>\n    <string name=\"unlock_app_title\">Отключи %s</string>\n    <string name=\"action_delete_repo\">Изтрий хранилище</string>\n    <string name=\"label_upcoming\">Предстоящи</string>\n    <string name=\"track_remove_date_conf_title\">Премахни дата?</string>\n    <string name=\"syncing_library\">Синхронизиране на библиотеката</string>\n    <string name=\"action_ok\">ОК</string>\n    <string name=\"action_add_repo\">Добави хрнилише</string>\n    <string name=\"upcoming_calendar_next\">Следващ месец</string>\n    <string name=\"label_completed_titles\">Завършени манги</string>\n    <string name=\"seconds_short\">%dсек</string>\n    <string name=\"exception_offline\">Няма връзка с интернет</string>\n    <string name=\"label_add_repo_input\">Линк към хранилището</string>\n    <string name=\"pref_skip_dupe_chapters\">Пропусни дублиращи се глави</string>\n    <string name=\"invalid_backup_file_unknown\">Резервното копие е повредено</string>\n    <string name=\"label_total_chapters\">Общо</string>\n    <string name=\"action_view_upcoming\">Преглед на предстоящите обновления</string>\n    <string name=\"label_titles_section\">Манги</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Премести най-долу</string>\n    <string name=\"label_started\">Започнати</string>\n    <string name=\"author\">Автор</string>\n    <string name=\"pref_chapter_swipe_end\">Глава на дясно плъзгане</string>\n    <string name=\"action_replace_repo\">Заместване</string>\n    <string name=\"pref_double_tap_zoom\">Натисни два пъти за увеличение</string>\n    <string name=\"pref_flash_style_black\">Черно</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">По подразбиране (%d)</string>\n    <string name=\"invalid_location\">Невалидно местоположение: %s</string>\n    <string name=\"exception_unknown_host\">Не можа да достигне %s</string>\n    <string name=\"action_display_unread_badge\">Непрочетени глави</string>\n    <string name=\"artist\">Художник</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">След извличане на нова глава</string>\n    <string name=\"remove_private_extension_message\">Наистина ли искаш да премахнеш \\\"%s\\\" разширение?</string>\n    <string name=\"invalid_backup_file_json\">Неподдържано JSON резервно копие</string>\n    <string name=\"app_settings\">Настройки за приложението</string>\n    <string name=\"information_required_plain\">*задължително</string>\n    <string name=\"track_delete_remote_text\">Също премахни от %s</string>\n    <string name=\"label_read_duration\">Продължителност на четене</string>\n    <string name=\"minute_short\">%dмин</string>\n    <string name=\"information_no_manga_category\">Категорията е празна</string>\n    <string name=\"storage_failed_to_create_download_directory\">Неможа да създаде деректория за изтегляния</string>\n    <string name=\"storage_failed_to_create_directory\">Неможа да създаде директория: %s</string>\n    <string name=\"non_library_settings\">Всички прочетени манги</string>\n    <string name=\"create_backup_file_error\">Не можа да създаде резервно копие</string>\n    <string name=\"library_sync_complete\">Сихронизиране на библиотеката завършено</string>\n    <string name=\"onboarding_permission_install_apps\">Разрешение за инсталиране на приложения</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Фоново потребление на батерията</string>\n    <string name=\"onboarding_storage_info\">Избери папка, където %1$s ще съхранява изтеглени глави, резервни копия и други.\\n\\nПрепоръчва се специална папка.\\nИзбрана папка: %2$s</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/bn/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">অধ্যায় %1$s এবং আরও ১টি</item>\n        <item quantity=\"other\">অধ্যায় %1$s এবং আরও %2$dটি</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s-এ সম্পন্ন হয়েছে, তবে %2$s ত্রুটি ছিল</item>\n        <item quantity=\"other\">%1$s-এ সম্পন্ন হয়েছে, তবে %2$sটি ত্রুটি ছিল</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%dটি বিভাগ</item>\n        <item quantity=\"other\">%dটি বিভাগসমূহ</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s মিনিট পর</item>\n        <item quantity=\"other\">%1$s মিনিট পর</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">এক্সটেনশন হালনাগাদ উপলব্ধ</item>\n        <item quantity=\"other\">%d এক্সটেনশন হালনাগাদ উপলব্ধ</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">১টি নতুন অধ্যায়</item>\n        <item quantity=\"other\">%1$dটি নতুন অধ্যায়</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">১টি শিরোনামের জন্য</item>\n        <item quantity=\"other\">%dটি শিরোনামের জন্য</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">1 অধ্যায় এড়িয়ে জাছি, হয় উৎসটি অনুপস্থিত বা এটি ফিল্টার করা হয়েছে</item>\n        <item quantity=\"other\">%d অধ্যায় কিপ করা হচ্ছে, হয় উৎসটি তাদের অনুপস্থিত অথবা সেগুলি ফিল্টার করা হয়েছে</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">1টি ট্র্যাকার</item>\n        <item quantity=\"other\">%dটি ট্র্যাকার</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">১টি অধ্যায়</item>\n        <item quantity=\"other\">%1$sটি অধ্যায়</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$sটি বাকি আছে</item>\n        <item quantity=\"other\">%1$sটি বাকি আছে</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">গতকাল</item>\n        <item quantity=\"other\">%1$d দিন আগে</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">পরবর্তী অপঠিত অধ্যায়</item>\n        <item quantity=\"other\">পরবর্তী %d টি অপঠিত অধ্যায়</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">পরবর্তী অধ্যায়</item>\n        <item quantity=\"other\">পরবর্তী %d অধ্যায়</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">১টি অধ্যায় নেই</item>\n        <item quantity=\"other\">%1$s টি অধ্যায় নেই</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">১ দিন</item>\n        <item quantity=\"other\">%d দিন</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">১ রিপো</item>\n        <item quantity=\"other\">%d রিপো</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">আগামীকাল</item>\n        <item quantity=\"other\">%1$d দিনে</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">১ পৃষ্ঠা</item>\n        <item quantity=\"other\">%1$s পৃষ্ঠা</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$dটি এন্ট্রি স্থানান্তর?</item>\n        <item quantity=\"other\">%1$dটি এন্ট্রি স্থানান্তর?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">%1$dটি এন্ট্রি কপি করবেন?</item>\n        <item quantity=\"other\">%1$dটি এন্ট্রি কপি করবেন?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">একটি এন্ট্রি বাদ দেওয়া হয়েছে</item>\n        <item quantity=\"other\">%1$dটি এন্ট্রি বাদ দেওয়া হয়েছে</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/bn/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">নাম</string>\n    <string name=\"categories\">বিভাগসমূহ</string>\n    <string name=\"manga\">পুস্তক সংগ্রহ</string>\n    <string name=\"chapters\">অধ্যায়সমূহ</string>\n    <string name=\"track\">ট্র্যাকিং</string>\n    <string name=\"history\">ইতিহাস</string>\n    <string name=\"label_settings\">সেটিংস</string>\n    <string name=\"label_download_queue\">ডাউনলোড সারি</string>\n    <string name=\"label_library\">লাইব্রেরি</string>\n    <string name=\"label_recent_manga\">ইতিহাস</string>\n    <string name=\"label_recent_updates\">আপডেট</string>\n    <string name=\"label_backup\">ব্যাকআপ এবং পুনরুদ্ধার</string>\n    <string name=\"action_settings\">সেটিংস</string>\n    <string name=\"action_filter\">বিশোধন</string>\n    <string name=\"action_filter_bookmarked\">বুকমার্ককৃত</string>\n    <string name=\"action_filter_unread\">অপঠিত</string>\n    <string name=\"action_filter_empty\">ফিল্টার সরান</string>\n    <string name=\"action_sort_alpha\">বর্ণানুক্রমে</string>\n    <string name=\"action_sort_total\">মোট অধ্যায়</string>\n    <string name=\"action_sort_last_read\">সর্বশেষ পঠিত</string>\n    <string name=\"action_search\">খুঁজুন</string>\n    <string name=\"action_global_search\">সর্বত্র খুঁজুন</string>\n    <string name=\"action_select_all\">সব নির্বাচন করুন</string>\n    <string name=\"action_mark_as_read\">পঠিত হিসেবে চিহ্নিত করুন</string>\n    <string name=\"action_mark_as_unread\">অপঠিত হিসাবে চিহ্নিত করুন</string>\n    <string name=\"action_mark_previous_as_read\">পূর্ববর্তী গুলো পঠিত হিসাবে চিহ্নিত করুন</string>\n    <string name=\"action_download\">ডাউনলোড</string>\n    <string name=\"action_bookmark\">বুকমার্ক অধ্যায়</string>\n    <string name=\"action_remove_bookmark\">বুকমার্ক সরান</string>\n    <string name=\"action_delete\">মুছুন</string>\n    <string name=\"action_update_library\">লাইব্রেরি আপডেট</string>\n    <string name=\"action_edit\">সম্পাদন করুন</string>\n    <string name=\"action_add\">যোগ করুন</string>\n    <string name=\"action_add_category\">ক্যাটাগরি অ্যাড</string>\n    <string name=\"action_edit_categories\">ক্যাটাগরি এডিট</string>\n    <string name=\"action_rename_category\">ক্যাটাগরির নাম পরিবর্তন</string>\n    <string name=\"action_move_category\">ক্যাটাগরি সেট করুন</string>\n    <string name=\"action_edit_cover\">মোড়ক সম্পাদনা করুন</string>\n    <string name=\"action_pause\">বিরতি দিন</string>\n    <string name=\"action_previous_chapter\">পূর্ববর্তী অধ্যায়</string>\n    <string name=\"action_next_chapter\">পরবর্তী আধ্যায়</string>\n    <string name=\"action_retry\">পুনরায় চেষ্টা করুন</string>\n    <string name=\"action_remove\">সরান</string>\n    <string name=\"action_resume\">রিজিউম</string>\n    <string name=\"action_open_in_browser\">ব্রাউজারে খুলুন</string>\n    <string name=\"action_display_mode\">প্রদর্শনের ধরন</string>\n    <string name=\"action_display\">প্রদর্শন</string>\n    <string name=\"action_display_grid\">কমপ্যাক্ট গ্রিড</string>\n    <string name=\"action_display_list\">তালিকা</string>\n    <string name=\"action_display_download_badge\">ডাউনলোড করা অধ্যায়</string>\n    <string name=\"action_cancel\">বাতিল</string>\n    <string name=\"action_sort\">সাজান</string>\n    <string name=\"action_install\">ইন্সটল করুন</string>\n    <string name=\"action_share\">শেয়ার</string>\n    <string name=\"action_save\">সংরক্ষণ করুন</string>\n    <string name=\"action_reset\">পুন:স্থাপন</string>\n    <string name=\"action_undo\">পূর্বাবস্থায় ফিরুন</string>\n    <string name=\"action_open_log\">লগ খুলুন</string>\n    <string name=\"action_restore\">পুনরুদ্ধার করুন</string>\n    <string name=\"loading\">লোড হচ্ছে…</string>\n    <string name=\"app_not_available\">অ্যাপটি অনুপলব্ধ</string>\n    <string name=\"pref_category_general\">সাধারণ</string>\n    <string name=\"pref_category_reader\">রিডার</string>\n    <string name=\"pref_category_downloads\">ডাউনলোডস</string>\n    <string name=\"pref_category_tracking\">ট্র্যাকিং</string>\n    <string name=\"pref_category_advanced\">অ্যাডভান্সড</string>\n    <string name=\"pref_category_about\">সম্বন্ধে</string>\n    <string name=\"pref_library_columns\">প্রতি সারিতে আইটেম</string>\n    <string name=\"portrait\">প্রতিকৃতি</string>\n    <string name=\"landscape\">ভূদৃশ্য</string>\n    <string name=\"pref_library_update_interval\">নিজেথেকে আপডেট</string>\n    <string name=\"update_never\">বন্ধ</string>\n    <string name=\"update_6hour\">প্রতি ৬ ঘন্টায়</string>\n    <string name=\"update_12hour\">প্রতি ১২ ঘন্টায়</string>\n    <string name=\"update_24hour\">প্রতিদিন</string>\n    <string name=\"update_48hour\">প্রতি ২ দিন</string>\n    <string name=\"update_weekly\">সাপ্তাহিক</string>\n    <string name=\"all\">সব</string>\n    <string name=\"pref_library_update_restriction\">নিজেথেকে আপডেটের সীমাবদ্ধতা</string>\n    <string name=\"charging\">চার্জ হচ্ছে</string>\n    <string name=\"pref_update_only_non_completed\">\\\"সম্পূর্ন\\\" শর্তসহিত</string>\n    <string name=\"pref_auto_update_manga_sync\">পড়ার পরে অগ্রগতি আপডেট করুন</string>\n    <string name=\"default_category\">সাধারণ বিভাগ</string>\n    <string name=\"default_category_summary\">সর্বদা জিজ্ঞাসা করুন</string>\n    <string name=\"pref_fullscreen\">সম্পূর্ণ পর্দা</string>\n    <string name=\"pref_page_transitions\">পৃষ্ঠা পালটানো এনিমেট করুন</string>\n    <string name=\"pref_show_page_number\">পৃষ্ঠা নম্বর দেখান</string>\n    <string name=\"pref_crop_borders\">প্রান্তগুলো কাটুন</string>\n    <string name=\"pref_custom_brightness\">স্বনির্ধারিত উজ্জ্বলতা</string>\n    <string name=\"pref_custom_color_filter\">স্বনির্ধারিত রঙ ফিল্টার</string>\n    <string name=\"pref_keep_screen_on\">পর্দা চালু রাখুন</string>\n    <string name=\"pref_reader_navigation\">ন্যাভিগেশন</string>\n    <string name=\"pref_read_with_volume_keys\">ভলিউম বোতামগুলো</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">ভলিউম বোতামগুলো ওল্টান</string>\n    <string name=\"pref_reader_theme\">ব্যাকগ্রাউন্ড রঙ</string>\n    <string name=\"white_background\">সাদা</string>\n    <string name=\"black_background\">কালো</string>\n    <string name=\"pref_viewer_type\">প্রকৃত পঠন ধরন</string>\n    <string name=\"left_to_right_viewer\">বাম থেকে ডানে (পেজড)</string>\n    <string name=\"right_to_left_viewer\">ডান থেকে বামে (পেজড)</string>\n    <string name=\"vertical_viewer\">উল্লম্বভাবে (পেজড)</string>\n    <string name=\"webtoon_viewer\">লং স্ট্রিপ</string>\n    <string name=\"pref_image_scale_type\">স্কেল ধরণ</string>\n    <string name=\"scale_type_fit_screen\">সম্পূর্ণ পর্দা জুড়ে</string>\n    <string name=\"scale_type_stretch\">প্রসারন</string>\n    <string name=\"scale_type_fit_width\">সম্পূর্ণ প্রস্থ</string>\n    <string name=\"scale_type_fit_height\">সম্পূর্ণ দৈর্ঘ্য</string>\n    <string name=\"scale_type_original_size\">আসল আকার</string>\n    <string name=\"scale_type_smart_fit\">উপযুক্ত ফিট</string>\n    <string name=\"pref_zoom_start\">জুম শুরুর অবস্থান</string>\n    <string name=\"zoom_start_automatic\">স্বয়ংক্রিয়</string>\n    <string name=\"zoom_start_left\">বামে</string>\n    <string name=\"zoom_start_right\">ডানে</string>\n    <string name=\"zoom_start_center\">মাঝে</string>\n    <string name=\"pref_rotation_type\">ডিফল্ট ঘূর্ণন</string>\n    <string name=\"rotation_free\">মুক্ত</string>\n    <string name=\"rotation_force_portrait\">লক করা পোর্ট্রেট</string>\n    <string name=\"rotation_force_landscape\">লক করা ল্যান্ডস্কেপ</string>\n    <string name=\"color_filter_r_value\">ল</string>\n    <string name=\"color_filter_g_value\">সবুজ</string>\n    <string name=\"color_filter_b_value\">নীল</string>\n    <string name=\"color_filter_a_value\">আলফা</string>\n    <string name=\"pref_remove_after_marked_as_read\">পঠিত হিসেবে চিহ্নিত করার পর</string>\n    <string name=\"pref_remove_after_read\">পড়ার পর স্বয়ংক্রিয়ভাবে</string>\n    <string name=\"disabled\">নিষ্ক্রিয়</string>\n    <string name=\"last_read_chapter\">শেষ পঠিত অধ্যায়</string>\n    <string name=\"second_to_last\">২য় থেকে শেষ অধ্যায়</string>\n    <string name=\"third_to_last\">৩য় থেকে শেষ অধ্যায়</string>\n    <string name=\"fourth_to_last\">৪র্থ থেকে শেষ অধ্যায়</string>\n    <string name=\"fifth_to_last\">৫ম থেকে শেষ অধ্যায়</string>\n    <string name=\"pref_download_new\">নতুন অধ্যায়গুলো ডাউনলোড করুন</string>\n    <string name=\"services\">সেবা সমূহ</string>\n    <string name=\"pref_create_backup\">ব্যাকআপ তৈরী করুন</string>\n    <string name=\"pref_create_backup_summ\">বর্তমান সংগ্রহশালা পুনরুদ্ধারের জন্য ব্যাবহার করা যাবে</string>\n    <string name=\"pref_restore_backup\">ব্যাকআপ পুনরুদ্ধার</string>\n    <string name=\"pref_restore_backup_summ\">ব্যাকআপ ফাইল থেকে সংগ্রহশালা পুনরুদ্ধার করুন</string>\n    <string name=\"pref_backup_interval\">ব্যাকআপ ফ্রিকোয়েন্সি</string>\n    <string name=\"backup_created\">ব্যাকআপ তৈরী হয়েছে</string>\n    <string name=\"restore_completed\">পুনরুদ্ধার সম্পন্ন হয়েছে</string>\n    <string name=\"backup_choice\">আপনি কি ব্যাকআপ করতে ইচ্ছুক?</string>\n    <string name=\"restoring_backup\">ব্যাকআপ পুনরুদ্ধার হচ্ছে</string>\n    <string name=\"creating_backup\">ব্যাকআপ তৈরী হচ্ছে</string>\n    <string name=\"pref_clear_chapter_cache\">অধ্যায়ের ক্যাচি পরিষ্কার করুন</string>\n    <string name=\"used_cache\">ব্যাবহৃত হয়েছে: %1$s</string>\n    <string name=\"cache_deleted\">ক্যাচি পরিষ্কার হয়েছে. %1$d ফাইল মুছে ফেলা হয়েছে</string>\n    <string name=\"cache_delete_error\">ক্যাচ পরিষ্কারের সময় একটি ত্রুটি দেখা দিয়েছে</string>\n    <string name=\"pref_clear_cookies\">কুকিস পরিষ্কার করুন</string>\n    <string name=\"cookies_cleared\">কুকিস পরিষ্কার হয়েছে</string>\n    <string name=\"pref_clear_database\">ডাটাবেজ পরিষ্কার করুন</string>\n    <string name=\"pref_clear_database_summary\">আপনার সংগ্রহশালাতে যেসব মাংগা সংরক্ষিত নেই সেগুলোর ইতিহাস মুছে ফেলুন</string>\n    <string name=\"clear_database_completed\">এন্ট্রিগুলো মুছে ফেলা হয়েছে</string>\n    <string name=\"version\">ভার্সন</string>\n    <string name=\"pref_enable_acra\">ক্র‍্যাশের প্রতিবেদন পাঠান</string>\n    <string name=\"pref_acra_summary\">বাগ ঠিক করার জন্য সাহায্য করুন। কোন সংবেদনশীল তথ্য পাঠানো হবে না</string>\n    <string name=\"login_title\">প্রবেশ করুন %1$sতে</string>\n    <string name=\"username\">ব্যাবহারকারীর নাম</string>\n    <string name=\"password\">গোপন শব্দ</string>\n    <string name=\"login\">প্রবেশ করুন</string>\n    <string name=\"login_success\">প্রবেশ হয়েছে</string>\n    <string name=\"unknown_error\">অজানা ত্রুটি</string>\n    <string name=\"updating_category\">বিভাগের হালনাগাদ হচ্ছে</string>\n    <string name=\"no_more_results\">আর কোনও ফলাফল নেই</string>\n    <string name=\"local_source\">লোকাল সোর্স</string>\n    <string name=\"other_source\">অন্যান্য</string>\n    <string name=\"action_global_search_hint\">সার্বজনীন খোঁজ…</string>\n    <string name=\"latest\">লেটেস্ট</string>\n    <string name=\"browse\">অনুসন্ধান</string>\n    <string name=\"ongoing\">চলমান</string>\n    <string name=\"unknown\">অজানা</string>\n    <string name=\"licensed\">লাইসেন্সকৃত</string>\n    <string name=\"remove_from_library\">সংগ্রহশালা থেকে অপসারণ করুন</string>\n    <string name=\"delete_downloads_for_manga\">ডাউনলোডকৃত অধ্যায়গুলো মুছে ফেলতে চান?</string>\n    <string name=\"display_mode_chapter\">অধ্যায় %1$s</string>\n    <string name=\"chapter_downloading_progress\">ডাউনলোড হচ্ছে (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">ত্রুটি</string>\n    <string name=\"chapter_paused\">থেমে আছে</string>\n    <string name=\"show_title\">উৎস শিরোনাম</string>\n    <string name=\"show_chapter_number\">অধ্যায় নাম্বার</string>\n    <string name=\"sort_by_source\">উৎস অনুযায়ী</string>\n    <string name=\"sort_by_number\">অধ্যায়ের নাম্বার অনুযায়ী</string>\n    <string name=\"manga_download\">ডাউনলোড</string>\n    <string name=\"download_unread\">অপঠিত</string>\n    <string name=\"confirm_delete_chapters\">আপনি কি নিশ্চিত যে আপনি নির্বাচিত অধ্যায়গুলো মুছে ফেলতে চান?</string>\n    <string name=\"manga_tracking_tab\">অনুসরিত</string>\n    <string name=\"reading\">পড়া হচ্ছে</string>\n    <string name=\"completed\">সম্পন্ন</string>\n    <string name=\"dropped\">বাদ পড়েছে</string>\n    <string name=\"on_hold\">স্থগিত</string>\n    <string name=\"plan_to_read\">পড়ার জন্য পরিকল্পিত</string>\n    <string name=\"score\">স্কোর</string>\n    <string name=\"title\">শিরোনাম</string>\n    <string name=\"status\">স্থিতি</string>\n    <string name=\"error_category_exists\">এই নামের একটি বিভাগ ইতিমধ্যে বিদ্যমান!</string>\n    <string name=\"snack_categories_deleted\">বিভাগগুলি মোছা হয়েছে</string>\n    <string name=\"dialog_with_checkbox_remove_description\">এটা এই অধ্যায়ের পড়ার সময়কাল সরিয়ে ফেলবে। আপনি নিশ্চিত?</string>\n    <string name=\"dialog_with_checkbox_reset\">এই মাংগার জন্য সব অধ্যায় পুনঃবিন্যাস করুন</string>\n    <string name=\"snack_add_to_library\">লাইব্রেরিতে যোগ করবেন?</string>\n    <string name=\"picture_saved\">ছবি সংরক্ষিত হয়েছে</string>\n    <string name=\"custom_filter\">স্বনির্ধারিত ফিল্টার</string>\n    <string name=\"set_as_cover\">প্রচ্ছদ হিসাবে সংরক্ষণ করুন</string>\n    <string name=\"cover_updated\">প্রচ্ছদ আপডেট হয়েছে</string>\n    <string name=\"chapter_progress\">পৃষ্ঠা: %1$d</string>\n    <string name=\"no_next_chapter\">পরবর্তী অধ্যায় খুঁজে পাওয়া যায়নি</string>\n    <string name=\"decode_image_error\">ছবিটি লোড করা যাচ্ছে না</string>\n    <string name=\"confirm_set_image_as_cover\">এই চিত্রটি কভার আর্ট হিসাবে ব্যবহার করবেন?</string>\n    <string name=\"download_queue_error\">অধ্যায়গুলি ডাউনলোড করা যায়নি। ডাউনলোড বিভাগে আপনি আবার চেষ্টা করতে পারেন</string>\n    <string name=\"notification_new_chapters\">নতুন অধ্যায় পাওয়া গিয়েছে</string>\n    <string name=\"notification_cover_update_failed\">প্রচ্ছদ হালনাগাদ করতে ব্যর্থ</string>\n    <string name=\"notification_first_add_to_library\">এটা করার আগে দয়া করে মাংগাটি আপনার সংগ্রহশালায় যোগ করুন</string>\n    <string name=\"file_select_cover\">প্রচ্ছদ চিত্র নির্বাচন করুন</string>\n    <string name=\"file_select_backup\">ব্যাকআপ ফাইল নির্বাচন করুন</string>\n    <string name=\"update_check_confirm\">ডাউনলোড</string>\n    <string name=\"update_check_no_new_updates\">নতুন কোন হালনাগাদ নেই</string>\n    <string name=\"update_check_notification_download_in_progress\">ডাউনলোড হচ্ছে…</string>\n    <string name=\"update_check_notification_download_complete\">ডাউনলোড সম্পন্ন হয়ে গেছে</string>\n    <string name=\"update_check_notification_download_error\">ডাউনলোড ত্রুটি দেখা গিয়েছে</string>\n    <string name=\"update_check_notification_update_available\">নতুন সংস্করণ উপলভ্য!</string>\n    <string name=\"information_no_downloads\">ডাউনলোড নেই</string>\n    <string name=\"information_no_recent\">কোন নতুন হালনাগাদ নেই</string>\n    <string name=\"information_no_recent_manga\">সম্প্রতি কিছু পড়া হয়নি</string>\n    <string name=\"information_empty_library\">আপনার সংগ্রহশালা খালি</string>\n    <string name=\"information_empty_category\">আপনার কোন বিভাগ নেই। আপনার সংগ্রহশালা সাজাতে যোগ চিহ্ন বাটনে চেপে একটি বিভাগ তৈরী করুন।</string>\n    <string name=\"download_notifier_downloader_title\">ডাউনলোডার</string>\n    <string name=\"download_notifier_title_error\">ত্রুটি</string>\n    <string name=\"download_notifier_unknown_error\">অপ্রত্যাশিত ত্রুটির কারণে অধ্যায় ডাউনলোড করা যায়নি</string>\n    <string name=\"download_notifier_text_only_wifi\">কোন ওয়াই-ফাই সংযোগ খুঁজে পাওয়া যায়নি</string>\n    <string name=\"download_notifier_no_network\">কোন নেটওয়ার্ক সংযোগ খুঁজে পাওয়া যায়নি</string>\n    <string name=\"download_notifier_download_paused\">ডাউনলোড বিরতি</string>\n    <string name=\"channel_common\">সাধারণ</string>\n    <string name=\"label_migration\">মাইগ্রেট</string>\n    <string name=\"label_extensions\">এক্সটেনশন</string>\n    <string name=\"label_extension_info\">এক্সটেনশনের বিবরন</string>\n    <string name=\"ext_update\">হালনাগাদ</string>\n    <string name=\"ext_install\">ইন্সটল</string>\n    <string name=\"ext_pending\">প্রক্রিয়াধীন</string>\n    <string name=\"ext_downloading\">ডাউনলোড হচ্ছে</string>\n    <string name=\"ext_installing\">ইন্সটল হচ্ছে</string>\n    <string name=\"ext_installed\">ইনস্টল করা</string>\n    <string name=\"ext_trust\">বিশ্বাস</string>\n    <string name=\"ext_untrusted\">অনির্ভরযোগ্য</string>\n    <string name=\"ext_uninstall\">আন ইন্সটল</string>\n    <string name=\"untrusted_extension\">অনির্ভর‍যোগ্য এক্সটেনশন</string>\n    <string name=\"untrusted_extension_message\">ক্ষতিকর এক্সটেনশন সংরক্ষিত লগইন তথ্য পড়তে পারে বা ইচ্ছেমতো কোড চালাতে পারে।\\n\\nএই এক্সটেনশনটিকে বিশ্বাস করলে আপনি এসব ঝুঁকি মেনে নিচ্ছেন।</string>\n    <string name=\"pref_double_tap_anim_speed\">দুই টোকার এনিমেশনের গতি</string>\n    <string name=\"double_tap_anim_speed_0\">এনিমেশন নেই</string>\n    <string name=\"double_tap_anim_speed_normal\">সাধারণ</string>\n    <string name=\"double_tap_anim_speed_fast\">দ্রুত</string>\n    <string name=\"manga_added_library\">সংগ্রহশালায় যোগ করা হয়েছে</string>\n    <string name=\"manga_removed_library\">সংগ্রহশালা থেকে অপসারণ করা হয়েছে</string>\n    <string name=\"copied_to_clipboard\">ক্লিপবোর্ডে কপি হয়েছে:\n\\n%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">যোগ করার জন্য উপাত্ত নির্বাচন করুন</string>\n    <string name=\"migrate\">মাইগ্রেট</string>\n    <string name=\"copy\">অনুলিপি</string>\n    <string name=\"pager_viewer\">পেজড</string>\n    <string name=\"source_not_installed\">উৎস ইন্সটল করা নেই: %1$s</string>\n    <string name=\"repeating\">পুনরায় পড়া</string>\n    <string name=\"track_status\">স্থিতি</string>\n    <string name=\"track_type\">ধরণ</string>\n    <string name=\"transition_finished\">শেষ:</string>\n    <string name=\"transition_current\">বর্তমান:</string>\n    <string name=\"transition_next\">পরবর্তী:</string>\n    <string name=\"transition_previous\">পূর্ববর্তী :</string>\n    <string name=\"transition_no_next\">পরবর্তী কোন অধ্যায় নেই</string>\n    <string name=\"transition_no_previous\">কোন পূর্ববর্তী অধ্যায় নেই</string>\n    <string name=\"transition_pages_loading\">পৃষ্ঠা লোড হচ্ছে …</string>\n    <string name=\"transition_pages_error\">পৃষ্ঠাগুলো লোড করতে ব্যর্থ হয়েছে: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">দীর্ঘ ট্যাপে দেখান</string>\n    <string name=\"action_open_in_web_view\">WebView তে খুলুন</string>\n    <string name=\"pref_skip_read_chapters\">পঠিত অধ্যায়গুলো এড়িয়ে যান</string>\n    <string name=\"pref_color_filter_mode\">রঙ ফিল্টার মিশ্রন মোড</string>\n    <string name=\"filter_mode_overlay\">আস্তরণ</string>\n    <string name=\"filter_mode_screen\">পর্দা</string>\n    <string name=\"filter_mode_lighten\">ডডজ / হালকা</string>\n    <string name=\"filter_mode_darken\">বার্ন/অন্ধকার</string>\n    <string name=\"filter_mode_multiply\">গুণ</string>\n    <string name=\"label_help\">সাহায্য</string>\n    <string name=\"no_results_found\">কোন ফলাফল পাওয়া যায়নি</string>\n    <string name=\"migration_selection_prompt\">মাইগ্রেট করার জন্য একটি সোর্স সিলেক্ট করুন</string>\n    <string name=\"action_webview_back\">পেছনে</string>\n    <string name=\"action_webview_forward\">অগ্রবর্তী</string>\n    <string name=\"action_webview_refresh\">রিফ্রেশ</string>\n    <string name=\"pref_category_library\">লাইব্রেরি</string>\n    <string name=\"ext_obsolete\">অচল</string>\n    <string name=\"obsolete_extension_message\">এই এক্সটেনশন আর উপলব্ধ নয়।</string>\n    <string name=\"email\">ইমেল ঠিকানা</string>\n    <string name=\"in_library\">লাইব্রেরিতে আছে</string>\n    <string name=\"add_to_library\">লাইব্রেরিতে যুক্ত করুন</string>\n    <string name=\"manga_info_expand\">আরও</string>\n    <string name=\"manga_info_collapse\">কম</string>\n    <string name=\"action_select_inverse\">উল্টো নির্বাচন করুন</string>\n    <string name=\"action_sort_date_added\">তারিখে যোগকৃত</string>\n    <string name=\"action_sort_latest_chapter\">সর্বশেষ অধ্যায়</string>\n    <string name=\"action_menu\">তালিকা</string>\n    <string name=\"label_sources\">সোর্স</string>\n    <string name=\"label_more\">আরও</string>\n    <string name=\"pref_category_display\">প্রদর্শন</string>\n    <string name=\"parental_controls_info\">এটি অ্যাপের মধ্যে প্রাপ্তবয়স্কদের (18+) বিষয়বস্তু সারফেস করা থেকে অনানুষ্ঠানিক বা সম্ভাব্য ভুলভাবে পতাকাঙ্কিত এক্সটেনশানগুলিকে বাধা দেয় না।</string>\n    <string name=\"hide_notification_content\">বিজ্ঞপ্তির বিষয়বস্তু লুকান</string>\n    <string name=\"secure_screen\">পর্দা নিরাপদ করুন</string>\n    <string name=\"lock_never\">কখনই না</string>\n    <string name=\"lock_always\">সবসময়</string>\n    <string name=\"lock_with_biometrics\">আনলক প্রয়োজন</string>\n    <string name=\"pref_category_security\">নিরাপত্তা ও গোপনীয়তা</string>\n    <string name=\"pref_manage_notifications\">বিজ্ঞপ্তি ব্যবস্থাপনা</string>\n    <string name=\"pref_date_format\">তারিখের রীতি</string>\n    <string name=\"theme_dark\">ডার্ক</string>\n    <string name=\"theme_light\">লাইট</string>\n    <string name=\"theme_system\">সিস্টেম</string>\n    <string name=\"pref_category_theme\">থিম</string>\n    <string name=\"action_move_to_bottom\">নীচে সরান</string>\n    <string name=\"action_move_to_top\">শীর্ষে সরান</string>\n    <string name=\"action_oldest\">প্রবীণতম</string>\n    <string name=\"action_newest\">নবীনতম</string>\n    <string name=\"action_cancel_all\">সব বাতিল করুন</string>\n    <string name=\"action_unpin\">আলগা করুন</string>\n    <string name=\"action_pin\">আটকান</string>\n    <string name=\"action_disable\">অক্ষম</string>\n    <string name=\"action_display_show_tabs\">ক্যাটাগরি ট্যাবগুলি দেখান</string>\n    <string name=\"action_display_comfortable_grid\">আরামপ্রদ গ্রিড</string>\n    <string name=\"action_migrate\">মাইগ্রেট</string>\n    <string name=\"action_start\">স্টার্ট</string>\n    <string name=\"action_view_chapters\">অধ্যায়গুলি দেখুন</string>\n    <string name=\"action_disable_all\">সব অক্ষম করুন</string>\n    <string name=\"action_enable_all\">সব সক্রিয় করুন</string>\n    <string name=\"pref_library_update_refresh_metadata\">মেটাডাটা স্বয়ংক্রিয়ভাবে রিফ্রেশ</string>\n    <string name=\"pref_category_library_update\">ব্যাপক আপডেট</string>\n    <string name=\"secure_screen_summary\">অ্যাপ পাল্টানোর সময় অ্যাপের কন্টেন্ট লুকান ও স্ক্রিনসট ব্লক করুন</string>\n    <string name=\"action_search_settings\">সেটিংসে খুঁজুন</string>\n    <string name=\"lock_when_idle\">কর্মহীন হলে লক হবে</string>\n    <string name=\"chapter_settings_updated\">হালনাগাদকৃত প্রকৃত শ্রেণির সেটিংস</string>\n    <string name=\"set_chapter_settings_as_default\">প্রকৃত হিসেবে সংরক্ষণ করুন</string>\n    <string name=\"confirm_set_chapter_settings\">আপনি কি নিশ্চিত সেটিংসগুলো প্রকৃত হিসেবে সংরক্ষণ করবেন?</string>\n    <string name=\"label_data\">তথ্য</string>\n    <string name=\"requires_app_restart\">কার্যকর করতে অ্যাপ পুনরারম্ভ করা লাগে</string>\n    <string name=\"label_network\">নেটওয়ার্ক</string>\n    <string name=\"restoring_backup_canceled\">পুনরুদ্ধার বাতিল করা হয়েছে</string>\n    <string name=\"restoring_backup_error\">ব্যাকআপ পুনরুদ্ধার ব্যর্থ হয়েছে</string>\n    <string name=\"restore_in_progress\">বর্তমানে পুনরুদ্ধার চলছে</string>\n    <string name=\"creating_backup_error\">ব্যাকআপ ব্যর্থ হয়েছে</string>\n    <string name=\"backup_in_progress\">ব্যাকআপ ইতিমধ্যেই চলছে</string>\n    <string name=\"restore_duration\">%1$02d মিনিট, %2$02d সেকেন্ড</string>\n    <string name=\"backup_restore_missing_sources\">উৎস অনুপলব্ধ:</string>\n    <string name=\"invalid_backup_file_missing_manga\">ব্যাকআপে কোনো মাংগা নেই।</string>\n    <string name=\"invalid_backup_file\">ব্যাকআপ ফাইল গ্রহণযোগ্য নয়:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">বুকমার্ক করা অধ্যায়গুলি মুছে ফেলার অনুমতি দিন</string>\n    <string name=\"pref_category_delete_chapters\">অধ্যায় মুছুন</string>\n    <string name=\"pref_webtoon_side_padding\">পার্শ্ব প্যাডিং</string>\n    <string name=\"pref_category_reading\">পড়া হচ্ছে</string>\n    <string name=\"pref_category_reading_mode\">পঠন ধরন</string>\n    <string name=\"pref_always_show_chapter_transition\">সবসময় অধ্যায় পরিবর্তন দেখান</string>\n    <string name=\"vertical_plus_viewer\">ফাঁকসহ লং স্ট্রিপ</string>\n    <string name=\"pref_show_reading_mode\">পঠন ধরন দেখান</string>\n    <string name=\"gray_background\">ধূসর</string>\n    <string name=\"pref_skip_filtered_chapters\">ফিলটারড অধ্যায় গুলো এড়িয়ে যান</string>\n    <string name=\"pref_cutout_short\">বিষয়বস্তু কাটআউটে দেখুন</string>\n    <string name=\"ext_nsfw_warning\">প্রাপ্তবয়স্কদের (18+) কন্টেন্ট থাকতে পারে</string>\n    <string name=\"ext_nsfw_short\">১৮+</string>\n    <string name=\"ext_updates_pending\">অনিষ্পন্ন হালনাগাদ</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">সংগ্রহশালা হালনাগেদের সময় নতুন মোড়ক এবং বর্ণনা খুঁজুন</string>\n    <string name=\"pinned_sources\">পিন করা</string>\n    <string name=\"backup_restore_missing_trackers\">ট্র্যাকারগুলিতে প্রবেশ হয়নি:</string>\n    <string name=\"pref_show_reading_mode_summary\">রিডার খোলা থাকলে বর্তমান মোড সংক্ষেপে দেখান</string>\n    <string name=\"tapping_inverted_both\">উভয়</string>\n    <string name=\"tapping_inverted_vertical\">উল্লম্ব</string>\n    <string name=\"tapping_inverted_horizontal\">অনুভূমিক</string>\n    <string name=\"tapping_inverted_none\">কিছুই না</string>\n    <string name=\"pref_read_with_tapping_inverted\">উল্টানো ট্যাপিং</string>\n    <string name=\"channel_ext_updates\">এক্সটেনশনের হালনাগাদগুলো</string>\n    <string name=\"channel_new_chapters\">অধ্যায়ের হালনাগাদগুলো</string>\n    <string name=\"channel_errors\">ত্রুটিসমূহ</string>\n    <string name=\"channel_complete\">সম্পূর্ণ</string>\n    <string name=\"channel_progress\">অগ্রগতি</string>\n    <string name=\"information_webview_outdated\">অনুগ্রহ করে উন্নততর সামঞ্জস্যতার জন্য ওয়েবভিউ অ্যাপটি হালনাগাদ করুন</string>\n    <string name=\"information_webview_required\">টাচিয়ামির জন্য ওয়েবভিউ প্রয়োজন</string>\n    <string name=\"information_cloudflare_bypass_failure\">ক্লাউডফ্লেয়ার বাইপাস করতে ব্যর্থ</string>\n    <string name=\"notification_chapters_multiple\">অধ্যায়গুলি %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">অধ্যায় %1$s এবং %2$d আরও</string>\n    <string name=\"notification_chapters_single\">অধ্যায় %1$s</string>\n    <string name=\"download_insufficient_space\">কম সঞ্চয়স্থানের কারণে অধ্যায়গুলি ডাউনলোড করা যায়নি</string>\n    <string name=\"recent_manga_time\">অঃ %1$s - %2$s</string>\n    <string name=\"updating_library\">সংগ্রহশালার হালনাগাদ হচ্ছে</string>\n    <string name=\"loader_not_implemented_error\">উৎস খুঁজে পাওয়া যায়নি</string>\n    <string name=\"page_list_empty_error\">কোনও পৃষ্ঠা পাওয়া যায় নি</string>\n    <string name=\"viewer\">পঠন ধরন</string>\n    <string name=\"pref_category_for_this_series\">এই সিরিজের জন্য</string>\n    <string name=\"share_page_info\">%1$s: %2$s, পৃষ্ঠা %3$d</string>\n    <string name=\"paused\">বিরতি</string>\n    <string name=\"add_tracking\">ট্র্যাকিং যোগ করুন</string>\n    <string name=\"no_chapters_error\">কোনও অধ্যায় পাওয়া যায় নি</string>\n    <string name=\"also_set_chapter_settings_for_library\">এছাড়াও আমার সংগ্রহশালার মাঙ্গাতে প্রয়োগ করুন</string>\n    <string name=\"chapter_settings\">অধ্যায় সেটিংস</string>\n    <string name=\"sort_by_upload_date\">আপলোডের তারিখ অনুযায়ী</string>\n    <string name=\"pref_refresh_library_covers\">লাইব্রেরির কভারগুলো রিফ্রেশ</string>\n    <string name=\"unknown_status\">অজানা অবস্থা</string>\n    <string name=\"unknown_author\">অজানা লেখক</string>\n    <string name=\"no_pinned_sources\">আপনার কোন পিন করা উৎস নেই</string>\n    <string name=\"local_source_help_guide\">লোকাল সোর্স গাইড</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" সার্বজনীনভাবে খুঁজুন</string>\n    <string name=\"last_used_source\">সর্বশেষ ব্যবহৃত</string>\n    <string name=\"tabs_header\">ট্যাব গুলি</string>\n    <string name=\"downloaded_chapters\">ডাউনলোড করা অধ্যায়</string>\n    <string name=\"manga_from_library\">লাইব্রেরীর মাঙ্গা</string>\n    <string name=\"logout_success\">আপনি এখন প্রস্থান করেছেন</string>\n    <string name=\"logout\">প্রস্থান</string>\n    <string name=\"logout_title\">প্রস্থান করবেন %1$s থেকে?</string>\n    <string name=\"downloaded_only_summary\">লাইব্রেরির সব এন্ট্রি ফিল্টার হবে</string>\n    <string name=\"pref_incognito_mode_summary\">পড়ার ইতিহাসে বিরতি দেয়</string>\n    <string name=\"pref_incognito_mode\">ছদ্মবেশী মোড</string>\n    <string name=\"label_downloaded_only\">শুধু ডাউনলোড</string>\n    <string name=\"updated_version\">v%1$s এ আপডেট হয়েছে</string>\n    <string name=\"check_for_updates\">সংস্করণ যাচাই</string>\n    <string name=\"licenses\">ওপেন সোর্স লাইসেন্স</string>\n    <string name=\"whats_new\">নতুন কি</string>\n    <string name=\"website\">ওয়েবসাইট</string>\n    <string name=\"pref_clear_history\">ইতিহাস সাফ করুন</string>\n    <string name=\"clear_history_confirmation\">আপনি নিশ্চিত? সব ইতিহাস মুছে যাবে।</string>\n    <string name=\"clear_history_completed\">ইতিহাস মুছে ফেলা হয়েছে</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">যন্ত্রের সেটিংস খোলা সম্ভব হয়নি</string>\n    <string name=\"battery_optimization_disabled\">ব্যাটারি অপ্টিমাইজেশন ইতিমধ্যে অক্ষম করা আছে</string>\n    <string name=\"pref_disable_battery_optimization_summary\">পিছেনে লাইব্রেরী হালনাগাদ ও ব্যাকআপে সাহায্য করে</string>\n    <string name=\"pref_disable_battery_optimization\">ব্যাটারি অপ্টিমাইজেশন অক্ষম করুন</string>\n    <string name=\"tracking_info\">ট্র্যাকিং সার্ভিসে অধ্যায়ের অগ্রগতি হালনাগাদের একমুখী পথ। স্বতন্ত্র মাঙ্গার ট্র্যকিং সেটাপের জন্য তাদের নিজস্ব ট্র্যাকিং বাটন ব্যবহার করুন।</string>\n    <string name=\"pref_show_nsfw_source\">উৎস এবং এক্সটেনশন তালিকায় প্রদর্শন করুন</string>\n    <string name=\"pref_category_nsfw_content\">প্রাপ্তবয়স্কদের জন্য (18+) উৎস</string>\n    <string name=\"action_filter_tracked\">ট্র্যাক করা হয়েছে</string>\n    <string name=\"pref_viewer_nav\">ন্যাভিগেশন নকশা</string>\n    <string name=\"action_display_show_number_of_items\">আইটেমের সংখ্যা প্রদর্শন করুন</string>\n    <string name=\"spen_next_page\">পরের পৃষ্ঠা</string>\n    <string name=\"spen_previous_page\">আগের পৃষ্ঠা</string>\n    <string name=\"file_picker_error\">কোনো ফাইল বাছাইকারী অ্যাপ পাওয়া যায় নি</string>\n    <string name=\"migration_help_guide\">উৎস স্থানান্তর গাইড</string>\n    <string name=\"myanimelist_relogin\">দয়া করে MAL এ আবার লগইন করুন</string>\n    <string name=\"track_finished_reading_date\">শেষ করার তারিখ</string>\n    <string name=\"track_started_reading_date\">শুরু করার তারিখ</string>\n    <string name=\"pref_dump_crash_logs_summary\">বিকাশকারীদের সাথে সেয়ার করার জন্য এরর লগগুলো একটি ফাইলে সংরক্ষণ করে</string>\n    <string name=\"right_and_left_nav\">ডান ও বাম</string>\n    <string name=\"edge_nav\">কিনার</string>\n    <string name=\"kindlish_nav\">কিন্ডেলের মতো</string>\n    <string name=\"l_nav\">L আকারের</string>\n    <string name=\"action_desc\">অধোগামী</string>\n    <string name=\"action_asc\">ঊর্ধ্বগামী</string>\n    <string name=\"action_order_by_chapter_number\">অধ্যায়ের নম্বর অনুসারে</string>\n    <string name=\"action_order_by_upload_date\">আপলোডের তারিখ অনুসারে</string>\n    <string name=\"error_no_match\">পাওয়া যায়নি</string>\n    <string name=\"source_unsupported\">উৎস সমর্থিত নয়</string>\n    <string name=\"unread\">অপঠিত</string>\n    <string name=\"error_sharing_cover\">কভার শেয়ার করার সময় ত্রুটি</string>\n    <string name=\"error_saving_cover\">কভার সংরক্ষণে ত্রুটি</string>\n    <string name=\"cover_saved\">কভার সংরক্ষিত</string>\n    <string name=\"manga_cover\">আবরণ</string>\n    <string name=\"clipboard_copy_error\">ক্লিপবোর্ডে কপি করা যায়নি</string>\n    <string name=\"date\">তারিখ</string>\n    <string name=\"local_filter_order_by\">ক্রমানুসার</string>\n    <string name=\"local_invalid_format\">দুর্বল অধ্যায় বিন্যাস</string>\n    <string name=\"chapter_not_found\">অধ্যায় পাওয়া যায় নি</string>\n    <string name=\"notification_incognito_text\">ছদ্মবেশী মোড নিষ্ক্রিয় করুন</string>\n    <string name=\"about_dont_kill_my_app\">কিছু নির্মাতাদের অতিরিক্ত অ্যাপ সীমাবদ্ধতা রয়েছে যা ব্যাকগ্রাউন্ড পরিষেবাগুলিকে হত্যা করে। এই ওয়েবসাইটে কিভাবে এটি ঠিক করা যায় সে সম্পর্কে আরও তথ্য রয়েছে।</string>\n    <string name=\"label_background_activity\">পটভূমি কার্যকলাপ</string>\n    <string name=\"pref_dump_crash_logs\">ক্র্যাশ লগ শেয়ার</string>\n    <string name=\"pref_dns_over_https\">এইচটিটিপিএস এর উপর ডিএনএস</string>\n    <string name=\"restore_miui_warning\">এমআইইউআই অপ্টিমাইজেশন নিষ্ক্রিয় থাকলে ব্যাকআপ/রিস্টোর সঠিকভাবে কাজ নাও করতে পারে।</string>\n    <string name=\"backup_restore_content_full\">সম্ভবত অনুপস্থিত এক্সটেনশন ইনস্টল করতে হবে এবং ট্র্যাকিং সার্ভিসগুলোতে পরে লগইন করতে হবে এগুলো ব্যবহার করতে।</string>\n    <string name=\"action_track\">ট্র্যাক</string>\n    <string name=\"enhanced_tracking_info\">নির্দিষ্ট উৎসের জন্য উন্নত বৈশিষ্ট্য প্রদান করে এমন পরিষেবা। আপনার লাইব্রেরিতে যোগ করা হলে মাঙ্গা স্বয়ংক্রিয়ভাবে ট্র্যাক করা হয়।</string>\n    <string name=\"enhanced_services\">উন্নত সেবা</string>\n    <string name=\"tracking_guide\">ট্র্যাকিং গাইড</string>\n    <string name=\"pref_download_new_categories_details\">বাদ দেওয়া ক্যাটাগরিতে থাকা মঙ্গা ডাউনলোড করা হবে না, যদিও সেগুলি অন্তর্ভুক্ত ক্যাটাগরিতেও আছে।</string>\n    <string name=\"pref_category_auto_download\">স্বয়ংক্রিয়ভাবে ডাউনলোড</string>\n    <string name=\"pref_lowest\">সর্বনিম্ন</string>\n    <string name=\"pref_low\">নিম্ম</string>\n    <string name=\"pref_high\">উচ্চ</string>\n    <string name=\"pref_highest\">সর্বোচ্চ</string>\n    <string name=\"pref_hide_threshold\">স্ক্রলে মেনু লুকানোর জন্য সংবেদনশীলতা</string>\n    <string name=\"rotation_landscape\">ভূদৃশ্য</string>\n    <string name=\"rotation_portrait\">প্রতিকৃতি</string>\n    <string name=\"rotation_type\">ঘূর্ণন</string>\n    <string name=\"nav_zone_right\">ডান</string>\n    <string name=\"nav_zone_left\">বাম</string>\n    <string name=\"nav_zone_next\">পরবর্তী</string>\n    <string name=\"nav_zone_prev\">পূর্ববর্তী</string>\n    <string name=\"automatic_background\">স্বয়ংক্রিয়</string>\n    <string name=\"pref_create_folder_per_manga_summary\">মাঙ্গা শিরোনাম অনুযায়ী ফোল্ডার তৈরি করে</string>\n    <string name=\"pref_create_folder_per_manga\">পৃষ্ঠাগুলি পৃথক ফোল্ডারে সংরক্ষণ করুন</string>\n    <string name=\"pref_reader_actions\">ক্রিয়া</string>\n    <string name=\"pref_inverted_colors\">উল্টানো</string>\n    <string name=\"pref_grayscale\">ধূসর স্কেল</string>\n    <string name=\"off\">বন্ধ</string>\n    <string name=\"on\">চালু</string>\n    <string name=\"pref_dual_page_invert_summary\">যদি দ্বৈত পৃষ্ঠার বিভক্তির স্থান পাঠের দিকের সাথে মেলে না</string>\n    <string name=\"pref_dual_page_invert\">ডুয়াল পেজ স্প্লিট প্লেসমেন্ট ইনভার্ট করুন</string>\n    <string name=\"pref_dual_page_split\">দ্বৈত পৃষ্ঠা বিভক্ত</string>\n    <string name=\"pref_show_navigation_mode_summary\">পাঠক খোলা হলে ট্যাপ জোন দেখান</string>\n    <string name=\"pref_show_navigation_mode\">নেভিগেশন বিন্যাস ওভারলে দেখান</string>\n    <string name=\"exclude\">বাদ দিন: %s</string>\n    <string name=\"include\">অন্তর্ভুক্ত করুন: %s</string>\n    <string name=\"none\">শূন্য</string>\n    <string name=\"pref_library_update_categories_details\">বাদ দেওয়া ক্যাটাগরিতে মঙ্গা আপডেট করা হবে না যদিও সেগুলি অন্তর্ভুক্ত ক্যাটাগরিতেও থাকে।</string>\n    <string name=\"categorized_display_settings\">সাজানোর এবং প্রদর্শনের জন্য প্রতি শ্রেণীর সেটিংস</string>\n    <string name=\"restrictions\">বিধিনিষেধ: %s</string>\n    <string name=\"relative_time_today\">সম্প্রতি</string>\n    <string name=\"pref_dark_theme_pure_black\">খাঁটি কালো ডার্ক মোড</string>\n    <string name=\"theme_yotsuba\">ইয়োৎসুবা</string>\n    <string name=\"theme_yinyang\">ইয়িন এবং ইয়াং</string>\n    <string name=\"theme_tealturquoise\">টিল এবং ফিরোজা</string>\n    <string name=\"theme_tako\">টাকো</string>\n    <string name=\"theme_strawberrydaiquiri\">স্ট্রবেরি ডাইকুইরি</string>\n    <string name=\"theme_midnightdusk\">মধ্যরাতের সন্ধ্যা</string>\n    <string name=\"theme_greenapple\">সবুজ আপেল</string>\n    <string name=\"theme_monet\">প্রগতিশীল</string>\n    <string name=\"pref_app_theme\">অ্যাপ থিম</string>\n    <string name=\"pref_category_appearance\">দৃশ্য</string>\n    <string name=\"action_start_downloading_now\">এখনই ডাউনলোড শুরু করুন</string>\n    <string name=\"action_show_errors\">সকল ত্রুটি দেখুন</string>\n    <string name=\"cancel_all_for_series\">এই সিরিজের সব বাতিল করুন</string>\n    <string name=\"action_display_local_badge\">লোকাল সোর্স</string>\n    <string name=\"information_empty_category_dialog\">আপনার এখনও কোন বিভাগ নেই |</string>\n    <string name=\"update_check_eol\">এই অ্যান্ড্রয়েড সংস্করণটি আর সমর্থিত নয়</string>\n    <string name=\"confirm_lock_change\">পরিবর্তন নিশ্চিত করতে প্রমাণীকরণ করুন</string>\n    <string name=\"action_sort_chapter_fetch_date\">প্রাপ্তির তারিখ</string>\n    <string name=\"label_default\">সাধারণ</string>\n    <string name=\"pref_remove_exclude_categories\">বর্জিত বিভাগ গুলি</string>\n    <string name=\"ext_app_info\">অ্যাপের তথ্য</string>\n    <string name=\"ext_update_all\">শব উপদাতে কর</string>\n    <string name=\"backup_info\">স্বয়ংক্রিয় ব্যাকআপ অত্যন্ত সুপারিশময়. আপনি অন্যান্য জায়গায়ও কপি রাখা উচিত।</string>\n    <string name=\"getting_started_guide\">শুরু হওয়ার গাইড</string>\n    <string name=\"channel_app_updates\">অ্যাপ আপডেট</string>\n    <string name=\"ext_installer_pref\">ইন্সটলআর</string>\n    <string name=\"ext_installer_legacy\">লেগাছি</string>\n    <string name=\"ext_installer_shizuku_stopped\">শিজুকু চলছে না</string>\n    <string name=\"ext_install_service_notif\">এক্সটেনশন ইন্সটল করা হচ্ছে…</string>\n    <string name=\"pref_verbose_logging\">ভার্বোস লগিং</string>\n    <string name=\"pref_verbose_logging_summary\">সিস্টেম লগে ভার্বোস লগ প্রিন্ট করুন (অ্যাপের কার্যক্ষমতা হ্রাস করে)</string>\n    <string name=\"help_translate\">অনুবাদে সাহায্য করুন</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">এক্সটেনশন ইনস্টলার হিসাবে Shizuku ব্যবহার করতে Shizuku ইনস্টল করুন এবং শুরু করুন।</string>\n    <string name=\"pref_tablet_ui_mode\">তাব্লেত উই</string>\n    <string name=\"action_sort_count\">মোট লেখা</string>\n    <string name=\"label_warning\">সতর্কতা</string>\n    <string name=\"action_display_language_badge\">ভাষা</string>\n    <string name=\"update_72hour\">প্রতি ৩ দিন</string>\n    <string name=\"connected_to_wifi\">সুধু মাত্র ওয়িফি তে</string>\n    <string name=\"notification_size_warning\">বেশি আপডেট সোর্সের ক্ষতি করতে পারে এবং আপডেট ধীর করে দিতে পারে, পাশাপাশি ব্যাটারি ব্যবহারের পরিমাণও বাড়াতে পারে। আরও জানতে ট্যাপ করুন।</string>\n    <string name=\"download_queue_size_warning\">সতর্কতা: বড় আকারের ডাউনলোডের ফলে উৎসগুলি মন্থর হয়ে যেতে পারে এবং/অথবা %s ব্লক হয়ে যেতে পারে। আরও জানতে এখানে ট্যাপ করুন।</string>\n    <string name=\"pref_auto_clear_chapter_cache\">অ্যাপ বন্দ্ধ করার সময় অধ্যায়ের ক্যাশে পরিষ্কার করুন</string>\n    <string name=\"database_clean\">তথ্যশালা পরিষ্কার</string>\n    <string name=\"clear_database_source_item_count\">তথ্যশালায় %1$d টি মাঙ্গা যেগুলি লাইব্রেরীতে নেই</string>\n    <string name=\"privacy_policy\">গোপনীয়তা নীতি</string>\n    <string name=\"extension_api_error\">এক্সটেনশন তালিকা পেতে ব্যার্থ হলো</string>\n    <string name=\"skipped_reason_completed\">এড়িয়ে যাওয়া হয়েছে কারণ সিরিজটি সম্পূর্ণ</string>\n    <string name=\"cancelled\">বাতিল করা হয়েছে</string>\n    <string name=\"on_hiatus\">বিরতিতে রয়েছে</string>\n    <string name=\"notification_update_error\">%1$d আপডেট(গুলি) ব্যর্থ হয়েছে</string>\n    <string name=\"publishing_finished\">সম্পূর্ণ প্রকাশিত</string>\n    <string name=\"action_sort_last_manga_update\">সর্বশেষ হালনাগাদ চেক</string>\n    <string name=\"delete_category_confirmation\">আপনি কি “%s” ক্যাটাগরিটি মুছে ফেলতে চান?</string>\n    <string name=\"appwidget_updates_description\">সম্প্রতি আপনার হালনাগাদকৃত মাঙ্গা দেখুন</string>\n    <string name=\"are_you_sure\">আপনি কি নিশ্চিত?</string>\n    <string name=\"action_sort_unread_count\">অপঠিত সংখ্যা</string>\n    <string name=\"action_remove_everything\">সবকিছু মুছে ফেলুন</string>\n    <string name=\"action_show_manga\">লেখা দেখান</string>\n    <string name=\"delete_category\">ক্যাটাগরি ডিলিট</string>\n    <string name=\"theme_lavender\">ল্যাভেণ্ডার</string>\n    <string name=\"action_search_hint\">খুঁজুন…</string>\n    <string name=\"action_display_cover_only_grid\">শুধু প্রচ্ছদসহ গ্রিড</string>\n    <string name=\"action_move_to_top_all_for_series\">সিরিজ কে উপরে তুলুন</string>\n    <string name=\"action_close\">বন্ধ</string>\n    <string name=\"complete_list\">লিস্ট সম্পূর্ন করুন</string>\n    <string name=\"unfinished_list\">অসম্পূর্ণ তালিকা</string>\n    <string name=\"on_hold_list\">স্থগিত তালিকা</string>\n    <string name=\"auto_download_while_reading\">পড়ার সময় সয়ংক্রিয়ভাবে ডাউনলোড</string>\n    <string name=\"pref_update_only_completely_read\">অপঠিত অধ্যায়সহ</string>\n    <string name=\"pref_update_only_started\">যেগুলো শুরু করা হয়নি</string>\n    <string name=\"webview_data_deleted\">ওয়েবভিউ ডাটা মুছা হয়েছে</string>\n    <string name=\"split_tall_images_summary\">পঠন কর্মক্ষমতা উন্নত করে</string>\n    <string name=\"pref_clear_webview_data\">ওয়েবভিইউ ডাটা মুছুন</string>\n    <string name=\"multi_lang\">বহু</string>\n    <string name=\"pref_library_summary\">বিভাগসমূহ, সার্বজনীন হালনাগাদ</string>\n    <string name=\"pref_app_language\">অ্যাপ ভাষা</string>\n    <string name=\"pref_appearance_summary\">থিম,সময় ও তারিখের ধরন</string>\n    <string name=\"pref_reader_summary\">পঠনের ধরন, ডিসপ্লে,নেভিগেশন</string>\n    <string name=\"pref_backup_summary\">ম্যানুয়াল ও সয়ংক্রিয় ব্যাকআপ</string>\n    <string name=\"pref_security_summary\">অ্যাপ লক,নিরাপদ পর্দা</string>\n    <string name=\"skipped_reason_not_caught_up\">অপঠিত অধ্যায় থাকায় এড়িয়ে যাওয়া হয়েছে</string>\n    <string name=\"label_local\">লোকাল</string>\n    <string name=\"action_copy_to_clipboard\">ক্লিপবোর্ডে কপি করুন</string>\n    <string name=\"pref_reset_viewer_flags_success\">সমস্ত পাঠক সেটিংস আবার</string>\n    <string name=\"label_stats\">পরিসংখ্যান</string>\n    <string name=\"label_downloaded\">ডাউনলোড হয়েছে</string>\n    <string name=\"label_started\">শুরু হয়েছে</string>\n    <string name=\"appwidget_unavailable_locked\">অ্যাপ লক চালু থাকলে Widget পাওয়া যায় না</string>\n    <string name=\"action_update_category\">ক্যাটাগরি আপডেট</string>\n    <string name=\"action_open_random_manga\">যেকোনো র্যান্ডম এন্ট্রি</string>\n    <string name=\"action_display_show_continue_reading_button\">পড়া চালিয়ে যান বোতাম</string>\n    <string name=\"download_notifier_cache_renewal\">ডাউনলোড চেক করা হচ্ছে</string>\n    <string name=\"download_notifier_split_page_path_not_found\">পৃষ্ঠার ফাইল পাথ খুঁজে পাওয়া যায়নি %d</string>\n    <string name=\"pref_invalidate_download_cache\">ডাউনলোড পুনঃসূচিপত্র</string>\n    <string name=\"action_not_now\">এখন না</string>\n    <string name=\"pref_debug_info\">ডিবাগ তথ্য</string>\n    <string name=\"skipped_reason_not_always_update\">বাদ দেওয়া হয়েছে কারণ সিরিজের আপডেটের প্রয়োজন নেই</string>\n    <string name=\"unlock_app_title\">আনলক %s</string>\n    <string name=\"action_set_interval\">সেট ইন্টারভেল</string>\n    <string name=\"delete_downloaded\">ডাউনলোড করা ফাইল ডিলেট করুন</string>\n    <string name=\"action_menu_overflow_description\">আর অপশন</string>\n    <string name=\"selected\">সিলেক্টেড</string>\n    <string name=\"not_selected\">নট সিলেক্টেড</string>\n    <string name=\"scanlator\">স্ক্যানলেটর</string>\n    <string name=\"action_bar_up_description\">নেভিগেট আপ</string>\n    <string name=\"label_data_storage\">ডাটা অ্যান্ড স্টোরেজ</string>\n    <string name=\"action_filter_interval_custom\">কাস্টমাইজড আনার ব্যবধান</string>\n    <string name=\"onboarding_storage_action_select\">ফোল্ডার নির্বাচন করুন</string>\n    <string name=\"pref_onboarding_guide\">অনবর্ডিং গাইড</string>\n    <string name=\"onboarding_action_finish\">শুরু করুন</string>\n    <string name=\"action_apply\">এপ্লাই</string>\n    <string name=\"onboarding_storage_selection_required\">একটি ফোল্ডার অবশ্যই ঠিক করতে হবে</string>\n    <string name=\"onboarding_permission_notifications\">নোটিফিকেশনের পারমিশন</string>\n    <string name=\"action_revert_to_default\">সকল সেটিং ডিফল্ট করুন</string>\n    <string name=\"onboarding_permission_install_apps\">অ্যাপের ইন্সটল করার পারমিশন</string>\n    <string name=\"onboarding_heading\">স্বাগতম!</string>\n    <string name=\"action_move_to_bottom_all_for_series\">নিচের দিকে সরান</string>\n    <string name=\"onboarding_action_skip\">বাদ দিন</string>\n    <string name=\"onboarding_action_next\">পরবর্তী</string>\n    <string name=\"onboarding_permission_install_apps_description\">সোর্স এক্সটেনশন ইনস্টল করার জন্য।</string>\n    <string name=\"onboarding_description\">প্রথমে কিছু ঠিক করে নিন , পরবর্তীতে আপনি চাইলে সেটিং থেকে সবকিছু পরিবর্তন করতে পারবেন।</string>\n    <string name=\"internal_error\">ইন্টারনাল ইরর: বাকি ইনফরমেশন পেতে ক্যাশ লগ দেখুন</string>\n    <string name=\"skipped_reason_not_started\">স্কিপ করা হয়েছে কারণ আগে কোন চ্যাপ্টার পড়া হয়নি</string>\n    <string name=\"action_sort_tracker_score\">ট্রেকার স্কোর</string>\n    <string name=\"action_ok\">ওকে</string>\n    <string name=\"action_sort_next_updated\">পরবর্তী আপডেটের সম্ভাব্য সময়</string>\n    <string name=\"action_copy_link\">লিংক কপি করুন</string>\n    <string name=\"label_auto\">স্বয়ংক্রিয়</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">পটভূমিতে ব্যাটারি ব্যবহার</string>\n    <string name=\"action_sort_random\">এলোমেলো</string>\n    <string name=\"onboarding_permission_notifications_description\">লাইব্রেরি আপডেট এবং আরও বিষয়ে নোটিফিকেশন পান।</string>\n    <string name=\"action_add_anyway\">যাই হোক যোগ করুন</string>\n    <string name=\"onboarding_storage_help_action\">স্টোরেজ গাইড</string>\n    <string name=\"onboarding_storage_help_info\">পুরোনো ভার্সন থেকে আপডেট করছেন এবং কী নির্বাচন করবেন তা নিশ্চিত নন? আরও তথ্যের জন্য স্টোরেজ গাইডটি দেখুন।</string>\n    <string name=\"label_upcoming\">আসন্ন</string>\n    <string name=\"action_display_unread_badge\">অপঠিত অধ্যায়</string>\n    <string name=\"action_notes\">নোটস</string>\n    <string name=\"action_edit_notes\">নোট পরিবর্তন</string>\n    <string name=\"action_webview_close_tab\">ট্যাব বন্ধ</string>\n    <string name=\"onboarding_storage_info\">একটি ফোল্ডার নির্বাচন করুন যেখানে %1$s অধ্যায় ডাউনলোড, ব্যাকআপ এবং আরও কিছু সংরক্ষণ করবে।\\n\\nএকটি নির্দিষ্ট ফোল্ডার ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।\\n\\nনির্বাচিত ফোল্ডার: %2$s</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">দীর্ঘস্থায়ী লাইব্রেরি আপডেট, ডাউনলোড এবং ব্যাকআপ পুনরুদ্ধারে বিঘ্ন এড়িয়ে চলুন।</string>\n    <string name=\"onboarding_permission_crashlytics\">ক্র্যাশ লগ পাঠান</string>\n    <string name=\"onboarding_permission_crashlytics_description\">ডেভেলপারদের কাছে অজ্ঞাতনামা ক্র্যাশ লগ পাঠান।</string>\n    <string name=\"onboarding_permission_analytics\">অ্যানালিটিক্স অনুমতি দিন</string>\n    <string name=\"onboarding_permission_analytics_description\">অ্যাপের ফিচার উন্নত করতে অজ্ঞাতনামা ব্যবহার ডেটা পাঠান।</string>\n    <string name=\"onboarding_permission_action_grant\">অনুমতি দিন</string>\n    <string name=\"onboarding_guides_new_user\">%s‑এ নতুন? আমাদের শুরু হওয়ারগাইড পড়ে দেখুন।</string>\n    <string name=\"onboarding_guides_returning_user\">%s পুনরায় ইনস্টল করছেন?</string>\n    <string name=\"theme_tidalwave\">টাইডাল ওয়েভ</string>\n    <string name=\"pref_relative_format\">আপেক্ষিক সময়চিহ্ন</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" এর পরিবর্তে \\\"%2$s\\\"</string>\n    <string name=\"pref_display_images_description\">মাঙ্গা বিবরণে ছবি প্রদর্শন</string>\n    <string name=\"pref_security\">নিরাপত্তা</string>\n    <string name=\"pref_firebase\">অ্যানালিটিক্স ও ক্র্যাশ লগস</string>\n    <string name=\"firebase_summary\">ক্র্যাশ লগ ও অ্যানালিটিক্স পাঠালে আমরা সমস্যা খুঁজে বের করে ঠিক করতে পারব, কর্মক্ষমতা ভালো হবে, এবং ভবিষ্যৎ আপডেটগুলো আপনার কাজে লাগবে</string>\n    <string name=\"network_not_metered\">শুধু আনলিমিটেড নেটওয়ার্কে</string>\n    <string name=\"pref_library_update_smart_update\">স্মার্ট আপডেট</string>\n    <string name=\"pref_update_only_in_release_period\">পরবর্তী রিলিজের সময় অনুমান করুন</string>\n    <string name=\"pref_library_update_show_tab_badge\">আপডেট আইকনে অপঠিত সংখ্যা দেখান</string>\n    <string name=\"pref_behavior\">ব্যবহার</string>\n    <string name=\"pref_chapter_swipe_end\">অধ্যায় ডানে সোয়াইপ করলে</string>\n    <string name=\"pref_chapter_swipe_start\">অধ্যায় বামে সোয়াইপ করলে</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">ডুপ্লিকেট পড়া অধ্যায়কে পড়া হিসেবে মার্ক করুন</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">একটি অধ্যায় পড়ার পর</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">নতুন অধ্যায় সংগ্রহের পর</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">অনুপস্থিত অধ্যায়ের চিহ্ন বন্ধ করুন</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">মিলহীন এন্ট্রি সরান</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">আরও কীওয়ার্ড যোগ করলে অনুসন্ধান ফলাফল সংকুচিত সাহায্য করে</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">অন্য কীওয়ার্ড (ঐচ্ছিক)</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">মাইগ্রেশনের পর বর্তমান এন্ট্রির ডাউনলোড মুছে ফেলুন</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">মাইগ্রেট করার জন্য ডেটা</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">অগ্রসর</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">পিন করা সোর্স নির্বাচন করুন</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">সক্রিয় সোর্স নির্বাচন করুন</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">কোনোটিই নির্বাচিত নয়</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">সব নির্বাচন করুন</string>\n    <string name=\"migrationConfigScreen.availableHeader\">উপলব্ধ</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">সিলেক্টেড</string>\n    <string name=\"notes_placeholder\">ভালো লেগেছে যেখানে…</string>\n    <string name=\"pref_flash_page_interval\">ফ্ল্যাশ প্রতি</string>\n    <string name=\"pref_flash_style_black\">কালো</string>\n    <string name=\"pref_flash_style_white\">সাদা</string>\n    <string name=\"pref_flash_style_white_black\">সাদা আর কালো</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">যদি রিডার একটি ফাঁকা ছবি লোড করে, ধাপে ধাপে থ্রেশহোল্ড কমিয়ে দিন।\\nসিলেক্টেড %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">পারফরম্যান্স অ্যাফেক্ট করবে। ফাঁকা ইমেজ সমস্যা থ্রেশহোল্ড কমিয়ে ঠিক না হলে কেবল এনেবল করবে</string>\n    <string name=\"label_donate\">ডোনেট</string>\n    <string name=\"pref_downloads_summary\">অটোমেটিক ডাউনলোড, আগাম ডাউনলোড</string>\n    <string name=\"pref_tracking_summary\">ওয়ান-ওয়ে প্রগ্রেস সিঙ্ক, এনহ্যান্সড সিঙ্ক</string>\n    <string name=\"pref_browse_summary\">সোর্স, এক্সটেনশন, গ্লোবাল সার্চ</string>\n    <string name=\"pref_advanced_summary\">ক্র্যাশ লগ ডাম্প, ব্যাটারি অপ্টিমাইজেশন</string>\n    <string name=\"theme_catppuccin\">ক্যাটপুচিন</string>\n    <string name=\"theme_monochrome\">মনোক্রোম</string>\n    <string name=\"theme_nord\">নর্ড</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">নন‑ASCII ফাইলনেম নিষিদ্ধ</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">কিছু স্টোরেজ মিডিয়া ইউনিকোড সমর্থন করে না। এই অপশন চালু করলে সোর্স এবং মাঙ্গা ফোল্ডারগুলো আপনাকে ম্যানুয়ালি নতুন নাম দিতে হবে। নন‑ASCII অক্ষরগুলোর পরিবর্তে ছোট হাতের UTF‑8 হেক্সাডেসিমাল কোড ব্যবহার করতে হবে। অধ্যায় ফাইলগুলো আলাদা করে নাম বদলানোর দরকার নেই।</string>\n    <string name=\"ext_remove\">সরান</string>\n    <string name=\"ext_confirm_remove\">এক্সটেনশন সরাতে চান?</string>\n    <string name=\"remove_private_extension_message\">আপনি কি নিশ্চিত \\\"%s\\\" এক্সটেনশন সরাতে চান?</string>\n    <string name=\"ext_info_version\">সংস্করণ</string>\n    <string name=\"ext_info_language\">ভাষা</string>\n    <string name=\"ext_info_age_rating\">বয়স সীমা</string>\n    <string name=\"ext_permission_install_apps_warning\">এক্সটেনশন ইনস্টল করতে অনুমতি লাগবে। অনুমতি দিতে এখানে ট্যাপ করুন।</string>\n    <string name=\"ext_revoke_trust\">অজানা এক্সটেনশনের ট্রাস্ট বাতিল</string>\n    <string name=\"label_extension_repos\">এক্সটেনশন রিপো</string>\n    <string name=\"information_empty_repos\">আপনার কোনো রিপো সেট করা নেই।</string>\n    <string name=\"action_add_repo\">রিপো অ্যাড করুন</string>\n    <string name=\"label_add_repo_input\">রিপো URL</string>\n    <string name=\"action_add_repo_message\">%s‑এ আরও রিপো যোগ করুন। এটি এমন একটি URL হতে হবে যা \\\"index.min.json\\\" দিয়ে শেষ হয়।</string>\n    <string name=\"error_repo_exists\">এই রিপো ইতিমধ্যে আছে!</string>\n    <string name=\"action_delete_repo\">রিপো ডিলিট</string>\n    <string name=\"invalid_repo_name\">ভুল রিপো URL</string>\n    <string name=\"delete_repo_confirmation\">আপনি কি “%s” রিপোটি ডিলিট করতে চান?</string>\n    <string name=\"add_repo_confirmation\">আপনি কি “%s” রিপোটি যোগ করতে চান?</string>\n    <string name=\"action_open_repo\">রিপোর সোর্সে যান</string>\n    <string name=\"action_replace_repo\">রিপ্লেস</string>\n    <string name=\"action_replace_repo_title\">সাইনিং কী ফিঙ্গারপ্রিন্ট ইতিমধ্যেই আছে</string>\n    <string name=\"action_replace_repo_message\">রিপোজিটরি %1$s এর সাইনিং কী ফিঙ্গারপ্রিন্ট %2$s এর সাথে একই।\\nযদি এটি প্রত্যাশিত হয়, তবে %2$s রিপ্লেস হবে, অন্যথায় আপনার রিপো মেইনটেইনারের সাথে যোগাযোগ করুন।</string>\n    <string name=\"pref_page_rotate\">চওড়া পেজ রোটেট করে ফিট হবে</string>\n    <string name=\"pref_page_rotate_invert\">রোটেট করা চওড়া পেজের অরিয়েন্টেশন উল্টানো হবে</string>\n    <string name=\"pref_double_tap_zoom\">জুম করতে ডাবল ট্যাপ</string>\n    <string name=\"pref_flash_page\">পেজ পরিবর্তনে ফ্ল্যাশ</string>\n    <string name=\"pref_flash_page_summ\">ই‑ইঙ্ক ডিসপ্লেতে ঘোস্টিং কমায়</string>\n    <string name=\"pref_flash_duration\">ফ্ল্যাশ সময়কাল</string>\n    <string name=\"pref_flash_duration_summary\">%1$s মি.সেকেন্ড</string>\n    <string name=\"pref_flash_with\">ফ্ল্যাশ সহ</string>\n    <string name=\"seconds_short\">%d সেকেন্ড</string>\n    <string name=\"minute_short\">%d মি.</string>\n    <string name=\"hour_short\">%d ঘণ্টা</string>\n    <string name=\"day_short\">%d দিন</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"label_used\">ব্যবহৃত</string>\n    <string name=\"label_mean_score\">গড় স্কোর</string>\n    <string name=\"label_tracked_titles\">ট্র্যাক করা এন্ট্রি</string>\n    <string name=\"label_tracker_section\">ট্র্যাকারসমূহ</string>\n    <string name=\"label_read_chapters\">পড়া</string>\n    <string name=\"label_total_chapters\">মোট</string>\n    <string name=\"label_titles_in_global_update\">গ্লোবাল আপডেটে</string>\n    <string name=\"label_titles_section\">এন্ট্রি সমূহ</string>\n    <string name=\"label_read_duration\">পড়ার সময়কাল</string>\n    <string name=\"label_completed_titles\">সম্পন্ন এন্ট্রি</string>\n    <string name=\"label_overview_section\">সারসংক্ষেপ</string>\n    <string name=\"crash_screen_restart_application\">অ্যাপ রিস্টার্ট করুন</string>\n    <string name=\"crash_screen_description\">%s অপ্রত্যাশিত ত্রুটিতে পড়েছে। ক্র্যাশ লগগুলো আমাদের Discordএর support চ্যানেলে শেয়ার করুন।</string>\n    <string name=\"crash_screen_title\">উফ!</string>\n    <string name=\"not_installed\">ইনস্টল করা হয়নি</string>\n    <string name=\"empty_screen\">আরে, এখানে তো কিছুই নেই</string>\n    <string name=\"pref_hardware_bitmap_threshold\">কাস্টম হার্ডওয়্যার বিটম্যাপ থ্রাশহোল্ড</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">ডিফল্ট (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">লিগ্যাসি ডিকোডার ব্যবহার করুন লং স্ট্রিপ রিডারের জন্য</string>\n    <string name=\"pref_display_profile\">কাস্টম ডিসপ্লে প্রোফাইল</string>\n    <string name=\"pref_skip_dupe_chapters\">ডুপ্লিকেট চ্যাপ্টার বাদ</string>\n    <string name=\"disabled_nav\">নিষ্ক্রিয়</string>\n    <string name=\"pref_navigate_pan\">চওড়া ছবি প্যান হবে</string>\n    <string name=\"pref_landscape_zoom\">অটোমেটিক জুম হবে চওড়া ছবিতে</string>\n    <string name=\"rotation_reverse_portrait\">উল্টো প্রতিকৃতি</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">জুম আউট বন্ধ</string>\n    <string name=\"no_location_set\">স্টোরেজ লোকেশন সেট নেই</string>\n    <string name=\"invalid_location\">ভুল লোকেশন: %s</string>\n    <string name=\"storage_failed_to_create_download_directory\">ডাউনলোড ফোল্ডার তৈরি ব্যর্থ হয়েছে</string>\n    <string name=\"storage_failed_to_create_directory\">ফোল্ডার তৈরি ব্যর্থ হয়েছে: %s</string>\n    <string name=\"pref_download_new_unread_chapters_only\">ডুপ্লিকেট পড়া অধ্যায় ডাউনলোড বাদ হবে</string>\n    <string name=\"download_ahead\">অধ্যায় আগাম ডাউনলোড</string>\n    <string name=\"download_ahead_info\">শুধু তখনই কাজ করবে যদি বর্তমান আর পরের অধ্যায় আগে থেকেই ডাউনলোড করা থাকে।</string>\n    <string name=\"save_chapter_as_cbz\">CBZ আর্কাইভ হিসেবে সেভ হবে</string>\n    <string name=\"split_tall_images\">লম্বা ছবি ভাগ হবে</string>\n    <string name=\"pref_download_concurrent_sources\">একসাথে কত সোর্স থেকে ডাউনলোড</string>\n    <string name=\"pref_download_concurrent_pages\">একসাথে পাতা ডাউনলোড</string>\n    <string name=\"pref_download_concurrent_pages_summary\">প্রতি সোর্স থেকে একসাথে ক’টি পাতা ডাউনলোড হবে</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">পড়া হিসেবে চিহ্নিত হলে অগ্রগতি আপডেট হবে</string>\n    <string name=\"enhanced_services_not_installed\">উপলব্ধ কিন্তু সোর্স ইনস্টল করা নেই: %s</string>\n    <string name=\"track_activity_name\">ট্র্যাকার লগইন</string>\n    <string name=\"pref_hide_in_library_items\">লাইব্রেরিতে থাকা আইটেম লুকানো হবে</string>\n    <string name=\"pref_storage_location\">স্টোরেজের ঠিকানা</string>\n    <string name=\"pref_storage_location_info\">অটোমেটিক ব্যাকআপ এর জন্য, চ্যাপ্টার ডাউনলোড ও লোকাল সোর্স এর জন্য ব্যবহার হয়।</string>\n    <string name=\"action_create\">তৈরি</string>\n    <string name=\"invalid_backup_file_error\">ফুল ইরর:</string>\n    <string name=\"invalid_backup_file_json\">JSON ব্যাকআপ সমর্থিত নয়</string>\n    <string name=\"invalid_backup_file_unknown\">ব্যাকআপ ফাইলটি নষ্ট হয়েছে</string>\n    <string name=\"app_settings\">অ্যাপ সেটিংস</string>\n    <string name=\"source_settings\">সোর্স সেটিংস</string>\n    <string name=\"extensionRepo_settings\">এক্সটেনশন রিপো</string>\n    <string name=\"private_settings\">সংবেদনশীল সেটিংস অন্তর্ভুক্ত করুন (যেমন, ট্র্যাকার লগইন টোকেন)</string>\n    <string name=\"non_library_settings\">সব পড়া এন্ট্রি</string>\n    <string name=\"missing_storage_permission\">স্টোরেজ অনুমতি দেওয়া হয়নি</string>\n    <string name=\"empty_backup_error\">ব্যাকআপ করার মতো কোন এন্ট্রি নেই</string>\n    <string name=\"create_backup_file_error\">ব্যাকআপ ফাইল তৈরি করা যায়নি</string>\n    <string name=\"last_auto_backup_info\">শেষবার স্বয়ংক্রিয়ভাবে ব্যাকআপ নেওয়া হয়েছে: %s</string>\n    <string name=\"pref_storage_usage\">স্টোরেজ ব্যবহার</string>\n    <string name=\"available_disk_space_info\">খালি: %1$s/ মোট: %2$s</string>\n    <string name=\"export\">এক্সপোর্ট</string>\n    <string name=\"library_list\">লাইব্রেরী লিস্ট</string>\n    <string name=\"library_exported\">লাইব্রেরী এক্সপোর্ট করা হয়েছে</string>\n    <string name=\"syncing_library\">লাইব্রেরী সিন্ক করা হচ্ছে</string>\n    <string name=\"library_sync_complete\">লাইব্রেরি সিঙ্ক সম্পন্ন হয়েছে</string>\n    <string name=\"pref_user_agent_string\">ডিফল্ট ইউজার এজেন্ট স্ট্রিং</string>\n    <string name=\"error_user_agent_string_blank\">ইউজার এজেন্ট স্ট্রিং খালি রাখা যাবে না</string>\n    <string name=\"error_user_agent_string_invalid\">অবৈধ ইউজার এজেন্ট স্ট্রিং</string>\n    <string name=\"clear_database_history_warning\">অধ্যায় পড়ার তথ্য ও লাইব্রেরির বাইরে থাকা এন্ট্রিগুলোর অগ্রগতি মুছে যাবে</string>\n    <string name=\"clear_db_exclude_read\">পড়া অধ্যায়গুলোর এন্ট্রিগুলি রাখুন</string>\n    <string name=\"pref_reset_viewer_flags\">প্রতি সিরিজের রিডার সেটিংস রিসেট</string>\n    <string name=\"pref_reset_viewer_flags_summary\">সব সিরিজের রিডিং মোড এবং অভিমুখ রিসেট</string>\n    <string name=\"pref_reset_viewer_flags_error\">রিডার সেটিংস রিসেট করা যায়নি</string>\n    <string name=\"pref_update_library_manga_titles\">লাইব্রেরির মাঙ্গার শিরোনাম সোর্সের সাথে মিলিয়ে আপডেট</string>\n    <string name=\"pref_update_library_manga_titles_summary\">সতর্কতা: নাম পরিবর্তিত মাঙ্গা ডাউনলোড কিউ থেকে সরানো হবে (যদি থাকে)।</string>\n    <string name=\"fdroid_warning\">F‑Droid বিল্ডগুলো আনুষ্ঠানিকভাবে সমর্থিত নয়।\\n বিস্তারিত জানতে ট্যাপ করুন।</string>\n    <string name=\"pref_incognito_mode_extension_summary\">এক্সটেনশনের জন্য রিডিং হিস্ট্রি বিরতি</string>\n    <string name=\"logging_in\">লগইন হচ্ছে…</string>\n    <string name=\"description_placeholder\">কোনও বর্ণনা নেই</string>\n    <string name=\"author\">লেখক</string>\n    <string name=\"artist\">শিল্পী</string>\n    <string name=\"popular\">জনপ্রিয়</string>\n    <string name=\"has_results\">ফলাফল আছে</string>\n    <string name=\"manga_display_interval_title\">অনুমান প্রতি</string>\n    <string name=\"manga_interval_expected_update_soon\">শীঘ্রই</string>\n    <string name=\"manga_interval_custom_amount\">নিজস্ব আপডেট ঘনত্ব:</string>\n    <string name=\"custom_cover\">নিজস্ব কভার</string>\n    <string name=\"exclude_scanlators\">স্ক্যানলেটর বাদ</string>\n    <string name=\"no_scanlators_found\">কোনো স্ক্যানলেটর পাওয়া যায়নি</string>\n    <string name=\"action_toggle_private_on\">ব্যক্তিগত ট্র্যাকিং</string>\n    <string name=\"track_error\">%1$s ত্রুটি: %2$s</string>\n    <string name=\"track_remove_date_conf_title\">তারিখ মুছবেন?</string>\n    <string name=\"track_remove_start_date_conf_text\">এটি %s থেকে পূর্বে নির্বাচিত শুরুর তারিখ মুছে ফেলবে</string>\n    <string name=\"track_remove_finish_date_conf_text\">এটি %s থেকে পূর্বে নির্বাচিত শেষ তারিখ মুছে ফেলবে</string>\n    <string name=\"track_delete_title\">%s ট্র্যাকিং মুছে ফেলা হবে?</string>\n    <string name=\"updates_last_update_info\">লাইব্রেরি সর্বশেষ আপডেট: %s</string>\n    <string name=\"action_view_upcoming\">আসন্ন আপডেটগুলো দেখুন</string>\n    <string name=\"upcoming_guide\">আসন্ন গাইড</string>\n    <string name=\"upcoming_calendar_next\">আগামী মাস</string>\n    <string name=\"upcoming_calendar_prev\">গত মাস</string>\n    <string name=\"track_delete_text\">এটি লোকাল ট্র্যাকিং থেকে মুছে যাবে।</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">সর্বশেষ: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">অজানা</string>\n    <string name=\"possible_duplicates_summary\">লাইব্রেরিতে মিল থাকা নামে এন্ট্রি রয়েছে।\\n\\nমাইগ্রেট করার জন্য একটি এন্ট্রি সিলেক্ট করুন অথবা তবুও অ্যাড করুন।</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">মাইগ্রেট</string>\n    <string name=\"migrationListScreen.skipActionLabel\">মাইগ্রেট করবেন না</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">এখনই মাইগ্রেট</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">কপি</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">মাইগ্রেট</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">ক্যানসেল</string>\n    <string name=\"manga_interval_expected_update_null\">এই মাঙ্গাটি সম্পূর্ণ হয়েছে, অথবা পরবর্তী প্রকাশের কোনো সম্ভাব্য তারিখ নেই।</string>\n    <string name=\"pref_reset_user_agent_string\">ডিফল্ট ইউজার এজেন্ট স্ট্রিং রিসেট</string>\n    <string name=\"pref_invalidate_download_cache_summary\">ডাউনলোড করা অধ্যায়গুলো জোরপূর্বক পুনরায় যাচাই হবে</string>\n    <string name=\"download_cache_invalidated\">ডাউনলোড ইনডেক্স অকার্যকর হয়েছে</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ca/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Després d’%1$s minut</item>\n        <item quantity=\"many\">Després de %1$s minuts</item>\n        <item quantity=\"other\">Després de %1$s minuts</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d capítol nou</item>\n        <item quantity=\"many\">%1$d capítols nous</item>\n        <item quantity=\"other\">%1$d capítols nous</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capítols %1$s i 1 més</item>\n        <item quantity=\"many\">Capítols %1$s i %2$d més</item>\n        <item quantity=\"other\">Capítols %1$s i %2$d més</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Per a %d element</item>\n        <item quantity=\"many\">Per a %d elements</item>\n        <item quantity=\"other\">Per a %d elements</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Hi ha una actualització d’una extensió</item>\n        <item quantity=\"many\">Hi ha actualitzacions de %d extensions</item>\n        <item quantity=\"other\">Hi ha actualitzacions de %d extensions</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">En resta %1$s</item>\n        <item quantity=\"many\">En resten %1$s</item>\n        <item quantity=\"other\">En resten %1$s</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Fet en %1$s amb %2$s error</item>\n        <item quantity=\"many\">Fet en %1$s amb %2$s errors</item>\n        <item quantity=\"other\">Fet en %1$s amb %2$s errors</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoria</item>\n        <item quantity=\"many\">%d categories</item>\n        <item quantity=\"other\">%d categories</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capítol</item>\n        <item quantity=\"many\">%1$s capítols</item>\n        <item quantity=\"other\">%1$s capítols</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d servei de seguiment</item>\n        <item quantity=\"many\">%d serveis de seguiment</item>\n        <item quantity=\"other\">%d serveis de seguiment</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">S’ha omès %d capítol. És possible que manqui a la font o que hagi estat filtrat</item>\n        <item quantity=\"many\">S’han omès %d capítols. És possible que manquin a la font o que hagin estat filtrats</item>\n        <item quantity=\"other\">S’han omès %d capítols. És possible que manquin a la font o que hagin estat filtrats</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ahir</item>\n        <item quantity=\"many\">Fa %1$d dies</item>\n        <item quantity=\"other\">Fa %1$d dies</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">El següent capítol no llegit</item>\n        <item quantity=\"many\">Els següents %d capítols no llegits</item>\n        <item quantity=\"other\">Els següents %d capítols no llegits</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">El següent capítol</item>\n        <item quantity=\"many\">Els següents %d capítols</item>\n        <item quantity=\"other\">Els següents %d capítols</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Manca %1$s capítol</item>\n        <item quantity=\"many\">Manquen %1$s capítols</item>\n        <item quantity=\"other\">Manquen %1$s capítols</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 dia</item>\n        <item quantity=\"many\">%d dies</item>\n        <item quantity=\"other\">%d dies</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repositori</item>\n        <item quantity=\"many\">%d repositoris</item>\n        <item quantity=\"other\">%d repositoris</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Demà</item>\n        <item quantity=\"many\">D’aquí a %1$d dies</item>\n        <item quantity=\"other\">D’aquí a %1$d dies</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 pàgina</item>\n        <item quantity=\"many\">%1$s pàgines</item>\n        <item quantity=\"other\">%1$s pàgines</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Voleu migrar %1$d element?</item>\n        <item quantity=\"many\">Voleu migrar %1$d elements?</item>\n        <item quantity=\"other\">Voleu migrar %1$d elements?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Voleu copiar %1$d element?</item>\n        <item quantity=\"many\">Voleu copiar %1$d elements?</item>\n        <item quantity=\"other\">Voleu copiar %1$d elements?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">S’ha omès un element</item>\n        <item quantity=\"many\">S’han omès %1$d elements</item>\n        <item quantity=\"other\">S’han omès %1$d elements</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ca/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nom</string>\n    <string name=\"categories\">Categories</string>\n    <string name=\"manga\">Elements de la biblioteca</string>\n    <string name=\"chapters\">Capítols</string>\n    <string name=\"track\">En seguiment</string>\n    <string name=\"history\">Historial</string>\n    <string name=\"label_settings\">Configuració</string>\n    <string name=\"label_download_queue\">Cua de baixades</string>\n    <string name=\"label_library\">Biblioteca</string>\n    <string name=\"label_recent_manga\">Historial</string>\n    <string name=\"label_recent_updates\">Novetats</string>\n    <string name=\"label_backup\">Còpia de seguretat i restauració</string>\n    <string name=\"label_migration\">Migració</string>\n    <string name=\"label_extensions\">Extensions</string>\n    <string name=\"label_extension_info\">Informació de l’extensió</string>\n    <string name=\"action_settings\">Configuració</string>\n    <string name=\"action_filter\">Filtra</string>\n    <string name=\"action_filter_bookmarked\">Marcats</string>\n    <string name=\"action_filter_unread\">No llegits</string>\n    <string name=\"action_filter_empty\">Elimina el filtre</string>\n    <string name=\"action_sort_alpha\">Alfabèticament</string>\n    <string name=\"action_sort_total\">Nombre total de capítols</string>\n    <string name=\"action_sort_last_read\">Darrera lectura</string>\n    <string name=\"action_search\">Cerca</string>\n    <string name=\"action_global_search\">Cerca global</string>\n    <string name=\"action_select_all\">Selecciona-ho tot</string>\n    <string name=\"action_mark_as_read\">Marca com a llegit</string>\n    <string name=\"action_mark_as_unread\">Marca com a no llegit</string>\n    <string name=\"action_mark_previous_as_read\">Marca els anteriors com a llegits</string>\n    <string name=\"action_download\">Baixa</string>\n    <string name=\"action_bookmark\">Marca el capítol</string>\n    <string name=\"action_remove_bookmark\">Desmarca el capítol</string>\n    <string name=\"action_delete\">Suprimeix</string>\n    <string name=\"action_update_library\">Actualitza la biblioteca</string>\n    <string name=\"action_edit\">Edita</string>\n    <string name=\"action_add\">Afegeix</string>\n    <string name=\"action_add_category\">Afegeix una categoria</string>\n    <string name=\"action_edit_categories\">Edita les categories</string>\n    <string name=\"action_rename_category\">Canvia el nom de la categoria</string>\n    <string name=\"action_move_category\">Defineix les categories</string>\n    <string name=\"action_edit_cover\">Edita la portada</string>\n    <string name=\"action_pause\">Pausa</string>\n    <string name=\"action_previous_chapter\">Capítol anterior</string>\n    <string name=\"action_next_chapter\">Capítol següent</string>\n    <string name=\"action_retry\">Torna-ho a provar</string>\n    <string name=\"action_remove\">Elimina</string>\n    <string name=\"action_resume\">Reprèn</string>\n    <string name=\"action_open_in_browser\">Obre al navegador</string>\n    <string name=\"action_display_mode\">Mode de visualització</string>\n    <string name=\"action_display\">Mostra</string>\n    <string name=\"action_display_grid\">Graella compacta</string>\n    <string name=\"action_display_list\">Llista</string>\n    <string name=\"action_display_download_badge\">Capítols baixats</string>\n    <string name=\"action_cancel\">Cancel·la</string>\n    <string name=\"action_sort\">Ordena</string>\n    <string name=\"action_install\">Instal·la</string>\n    <string name=\"action_share\">Comparteix</string>\n    <string name=\"action_save\">Desa</string>\n    <string name=\"action_reset\">Reinicia</string>\n    <string name=\"action_undo\">Desfés</string>\n    <string name=\"action_open_log\">Obre el registre</string>\n    <string name=\"action_restore\">Restaura</string>\n    <string name=\"loading\">S’està carregant…</string>\n    <string name=\"app_not_available\">Aplicació no disponible</string>\n    <string name=\"pref_category_general\">General</string>\n    <string name=\"pref_category_reader\">Lector</string>\n    <string name=\"pref_category_downloads\">Baixades</string>\n    <string name=\"pref_category_tracking\">Seguiment</string>\n    <string name=\"pref_category_advanced\">Avançat</string>\n    <string name=\"pref_category_about\">Quant a</string>\n    <string name=\"pref_library_columns\">Elements per fila</string>\n    <string name=\"portrait\">Vertical</string>\n    <string name=\"landscape\">Horitzontal</string>\n    <string name=\"pref_library_update_interval\">Actualitzacions automàtiques</string>\n    <string name=\"update_never\">Desactivades</string>\n    <string name=\"update_6hour\">Cada 6 hores</string>\n    <string name=\"update_12hour\">Cada 12 hores</string>\n    <string name=\"update_24hour\">Cada dia</string>\n    <string name=\"update_48hour\">Cada 2 dies</string>\n    <string name=\"update_weekly\">Cada setmana</string>\n    <string name=\"all\">Tot</string>\n    <string name=\"pref_library_update_restriction\">Restriccions del dispositiu per a les actualitzacions automàtiques</string>\n    <string name=\"charging\">Quan s’estigui carregant</string>\n    <string name=\"pref_update_only_non_completed\">Omet els elements amb l’estat «Completat»</string>\n    <string name=\"pref_auto_update_manga_sync\">Actualitza el progrés després de llegir</string>\n    <string name=\"default_category\">Categoria per defecte</string>\n    <string name=\"default_category_summary\">Demana-ho sempre</string>\n    <string name=\"ext_update\">Actualitza</string>\n    <string name=\"ext_install\">Instal·la</string>\n    <string name=\"ext_pending\">Pendent</string>\n    <string name=\"ext_downloading\">S’està baixant</string>\n    <string name=\"ext_installing\">S’està instal·lant</string>\n    <string name=\"ext_installed\">Instal·lades</string>\n    <string name=\"ext_trust\">Confia-hi</string>\n    <string name=\"ext_untrusted\">No és de confiança</string>\n    <string name=\"ext_uninstall\">Desinstal·la</string>\n    <string name=\"untrusted_extension\">Extensió que no és de confiança</string>\n    <string name=\"untrusted_extension_message\">Les extensions malicioses poden llegir qualsevol credencial d’inici de sessió desada o executar codi arbitrari.\\n\\nSi confieu en aquesta extensió, accepteu aquests riscos.</string>\n    <string name=\"pref_fullscreen\">Pantalla completa</string>\n    <string name=\"pref_page_transitions\">Anima les transicions de pàgina</string>\n    <string name=\"pref_show_page_number\">Mostra el número de pàgina</string>\n    <string name=\"pref_crop_borders\">Retalla les vores</string>\n    <string name=\"pref_custom_brightness\">Brillantor personalitzada</string>\n    <string name=\"pref_custom_color_filter\">Filtre de color personalitzat</string>\n    <string name=\"pref_keep_screen_on\">Mantingues la pantalla encesa</string>\n    <string name=\"pref_reader_navigation\">Navegació</string>\n    <string name=\"pref_read_with_volume_keys\">Tecles de volum</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverteix les tecles de volum</string>\n    <string name=\"pref_reader_theme\">Color de fons</string>\n    <string name=\"white_background\">Blanc</string>\n    <string name=\"black_background\">Negre</string>\n    <string name=\"pref_viewer_type\">Mode de lectura per defecte</string>\n    <string name=\"left_to_right_viewer\">Paginat (d’esquerra a dreta)</string>\n    <string name=\"right_to_left_viewer\">Paginat (de dreta a esquerra)</string>\n    <string name=\"vertical_viewer\">Paginat (vertical)</string>\n    <string name=\"webtoon_viewer\">Tira vertical</string>\n    <string name=\"pager_viewer\">Paginat</string>\n    <string name=\"pref_image_scale_type\">Tipus d’escalat</string>\n    <string name=\"scale_type_fit_screen\">Ajusta a la pantalla</string>\n    <string name=\"scale_type_stretch\">Estira</string>\n    <string name=\"scale_type_fit_width\">Ajusta a l’amplada</string>\n    <string name=\"scale_type_fit_height\">Ajusta a l’alçada</string>\n    <string name=\"scale_type_original_size\">Mida original</string>\n    <string name=\"scale_type_smart_fit\">Ajust intel·ligent</string>\n    <string name=\"pref_zoom_start\">Posició d’inici de l’ampliació</string>\n    <string name=\"zoom_start_automatic\">Automàtica</string>\n    <string name=\"zoom_start_left\">Esquerra</string>\n    <string name=\"zoom_start_right\">Dreta</string>\n    <string name=\"zoom_start_center\">Centre</string>\n    <string name=\"double_tap_anim_speed_0\">Sense animació</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Ràpida</string>\n    <string name=\"pref_rotation_type\">Rotació per defecte</string>\n    <string name=\"rotation_free\">Lliure</string>\n    <string name=\"rotation_force_portrait\">Vertical forçada</string>\n    <string name=\"rotation_force_landscape\">Horitzontal forçada</string>\n    <string name=\"color_filter_r_value\">Vermell</string>\n    <string name=\"color_filter_g_value\">Verd</string>\n    <string name=\"color_filter_b_value\">Blau</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_remove_after_marked_as_read\">Després de marcar com a llegit de manera manual</string>\n    <string name=\"pref_remove_after_read\">Suprimeix automàticament després de llegir</string>\n    <string name=\"pref_double_tap_anim_speed\">Velocitat de l’animació del doble toc</string>\n    <string name=\"disabled\">Desactivat</string>\n    <string name=\"last_read_chapter\">Darrer capítol llegit</string>\n    <string name=\"second_to_last\">Penúltim capítol llegit</string>\n    <string name=\"third_to_last\">Antepenúltim capítol llegit</string>\n    <string name=\"fourth_to_last\">Anteantepenúltim capítol llegit</string>\n    <string name=\"fifth_to_last\">Anteanteantepenúltim capítol llegit</string>\n    <string name=\"pref_download_new\">Baixa capítols nous</string>\n    <string name=\"services\">Serveis de seguiment</string>\n    <string name=\"pref_create_backup\">Crea una còpia de seguretat</string>\n    <string name=\"pref_create_backup_summ\">Es pot utilitzar per a restaurar la biblioteca actual</string>\n    <string name=\"pref_restore_backup\">Restaura una còpia de seguretat</string>\n    <string name=\"pref_restore_backup_summ\">Restaura la biblioteca del fitxer de còpia de seguretat</string>\n    <string name=\"pref_backup_interval\">Freqüència de la còpia de seguretat automàtica</string>\n    <string name=\"backup_created\">S’ha creat la còpia de seguretat</string>\n    <string name=\"restore_completed\">S’ha completat la restauració</string>\n    <string name=\"backup_choice\">De què voleu fer una còpia de seguretat?</string>\n    <string name=\"restoring_backup\">S’està restaurant la còpia de seguretat</string>\n    <string name=\"creating_backup\">S’està creant la còpia de seguretat</string>\n    <string name=\"pref_clear_chapter_cache\">Buida la memòria cau de capítols</string>\n    <string name=\"used_cache\">Ús: %1$s</string>\n    <string name=\"cache_deleted\">S’ha buidat la memòria cau i s’han suprimit %1$d fitxers</string>\n    <string name=\"cache_delete_error\">S’ha produït un error en netejar</string>\n    <string name=\"pref_clear_cookies\">Esborra les galetes</string>\n    <string name=\"cookies_cleared\">S’han esborrat les galetes</string>\n    <string name=\"pref_clear_database\">Buida la base de dades</string>\n    <string name=\"pref_clear_database_summary\">Suprimeix l’historial dels elements que no siguin a la biblioteca</string>\n    <string name=\"clear_database_completed\">S’han suprimit les entrades</string>\n    <string name=\"version\">Versió</string>\n    <string name=\"pref_enable_acra\">Envia informes d’errors</string>\n    <string name=\"pref_acra_summary\">Ajuda a solucionar errades. No s’enviaran dades sensibles</string>\n    <string name=\"login_title\">Inicia la sessió a %1$s</string>\n    <string name=\"username\">Nom d’usuari</string>\n    <string name=\"password\">Contrasenya</string>\n    <string name=\"login\">Inicia la sessió</string>\n    <string name=\"login_success\">S’ha iniciat la sessió</string>\n    <string name=\"unknown_error\">S’ha produït un error desconegut</string>\n    <string name=\"updating_category\">S’està actualitzant la categoria</string>\n    <string name=\"no_more_results\">No hi ha més resultats</string>\n    <string name=\"local_source\">Font local</string>\n    <string name=\"other_source\">Altres</string>\n    <string name=\"action_global_search_hint\">Cerca global…</string>\n    <string name=\"latest\">Recents</string>\n    <string name=\"browse\">Explora</string>\n    <string name=\"ongoing\">En curs</string>\n    <string name=\"unknown\">Desconegut</string>\n    <string name=\"licensed\">Llicenciat</string>\n    <string name=\"remove_from_library\">Elimina de la biblioteca</string>\n    <string name=\"manga_added_library\">S’ha afegit a la biblioteca</string>\n    <string name=\"manga_removed_library\">S’ha eliminat de la biblioteca</string>\n    <string name=\"delete_downloads_for_manga\">Voleu suprimir els capítols baixats?</string>\n    <string name=\"copied_to_clipboard\">S’ha copiat al porta-retalls:\\n%1$s</string>\n    <string name=\"source_not_installed\">Font no instal·lada: %1$s</string>\n    <string name=\"display_mode_chapter\">Capítol %1$s</string>\n    <string name=\"chapter_downloading_progress\">S’està baixant (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Error</string>\n    <string name=\"chapter_paused\">Pausat</string>\n    <string name=\"show_title\">Títol de la font</string>\n    <string name=\"show_chapter_number\">Número de capítol</string>\n    <string name=\"sort_by_source\">Per font</string>\n    <string name=\"sort_by_number\">Per número de capítol</string>\n    <string name=\"manga_download\">Baixa</string>\n    <string name=\"download_unread\">Els no llegits</string>\n    <string name=\"confirm_delete_chapters\">Esteu segur que voleu suprimir els capítols seleccionats?</string>\n    <string name=\"manga_tracking_tab\">En seguiment</string>\n    <string name=\"reading\">Llegint</string>\n    <string name=\"completed\">Completats</string>\n    <string name=\"dropped\">Abandonat</string>\n    <string name=\"on_hold\">En espera</string>\n    <string name=\"plan_to_read\">Pendent de llegir</string>\n    <string name=\"repeating\">Rellegint</string>\n    <string name=\"score\">Puntuació</string>\n    <string name=\"title\">Títol</string>\n    <string name=\"status\">Estat</string>\n    <string name=\"track_status\">Estat</string>\n    <string name=\"track_type\">Tipus</string>\n    <string name=\"error_category_exists\">Ja hi ha una categoria amb aquest nom!</string>\n    <string name=\"snack_categories_deleted\">S’han suprimit les categories</string>\n    <string name=\"dialog_with_checkbox_remove_description\">S’eliminarà la data de lectura d’aquest capítol. N’esteu segur?</string>\n    <string name=\"dialog_with_checkbox_reset\">Reinicia tots els capítols d’aquest element</string>\n    <string name=\"snack_add_to_library\">Voleu afegir-lo a la biblioteca?</string>\n    <string name=\"picture_saved\">S’ha desat la imatge</string>\n    <string name=\"custom_filter\">Filtre personalitzat</string>\n    <string name=\"set_as_cover\">Defineix com a portada</string>\n    <string name=\"cover_updated\">S’ha actualitzat la portada</string>\n    <string name=\"chapter_progress\">Pàgina: %1$d</string>\n    <string name=\"no_next_chapter\">No s’ha trobat el capítol següent</string>\n    <string name=\"decode_image_error\">No s’ha pogut carregar la imatge</string>\n    <string name=\"confirm_set_image_as_cover\">Voleu fer servir aquesta imatge com a portada?</string>\n    <string name=\"transition_finished\">Finalitzat:</string>\n    <string name=\"transition_current\">Actual:</string>\n    <string name=\"transition_next\">Següent:</string>\n    <string name=\"transition_previous\">Anterior:</string>\n    <string name=\"transition_no_next\">No hi ha capítol següent</string>\n    <string name=\"transition_no_previous\">No hi ha capítol anterior</string>\n    <string name=\"transition_pages_loading\">S’estan carregant les pàgines…</string>\n    <string name=\"transition_pages_error\">No s’han pogut carregar les pàgines: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Seleccioneu les dades a incloure</string>\n    <string name=\"migrate\">Migra</string>\n    <string name=\"copy\">Copia</string>\n    <string name=\"download_queue_error\">No s’han pogut baixar els capítols. Podeu tornar-ho a provar a la secció de baixades</string>\n    <string name=\"notification_new_chapters\">S’han trobat nous capítols</string>\n    <string name=\"notification_cover_update_failed\">No s’ha pogut actualitzar la portada</string>\n    <string name=\"notification_first_add_to_library\">Afegiu l’element a la vostra biblioteca abans de fer això</string>\n    <string name=\"file_select_cover\">Seleccioneu la imatge de portada</string>\n    <string name=\"file_select_backup\">Seleccioneu el fitxer de còpia de seguretat</string>\n    <string name=\"update_check_confirm\">Baixa</string>\n    <string name=\"update_check_no_new_updates\">No hi ha cap nova actualització disponible</string>\n    <string name=\"update_check_notification_download_in_progress\">S’està baixant…</string>\n    <string name=\"update_check_notification_download_complete\">Premeu per a instal·lar l’actualització</string>\n    <string name=\"update_check_notification_download_error\">Error de baixada</string>\n    <string name=\"update_check_notification_update_available\">Nova versió disponible!</string>\n    <string name=\"information_no_downloads\">No hi ha baixades</string>\n    <string name=\"information_no_recent\">No hi ha actualitzacions recents</string>\n    <string name=\"information_no_recent_manga\">No heu llegit res recentment</string>\n    <string name=\"information_empty_library\">La vostra biblioteca és buida</string>\n    <string name=\"information_empty_category\">No teniu categories. Premeu el botó més per a crear-ne una i organitzar la vostra biblioteca.</string>\n    <string name=\"download_notifier_downloader_title\">Baixades</string>\n    <string name=\"download_notifier_title_error\">Error</string>\n    <string name=\"download_notifier_unknown_error\">No s’ha pogut baixar el capítol a causa d’un error inesperat</string>\n    <string name=\"download_notifier_text_only_wifi\">No hi ha cap connexió Wi-Fi disponible</string>\n    <string name=\"download_notifier_no_network\">No hi ha cap connexió de xarxa disponible</string>\n    <string name=\"download_notifier_download_paused\">Baixades pausades</string>\n    <string name=\"channel_common\">General</string>\n    <string name=\"pref_read_with_long_tap\">Mostra les accions amb un toc llarg</string>\n    <string name=\"action_open_in_web_view\">Obre en una WebView</string>\n    <string name=\"pref_skip_read_chapters\">Omet capítols marcats com a llegits</string>\n    <string name=\"pref_color_filter_mode\">Mode de mescla del filtre de color</string>\n    <string name=\"filter_mode_overlay\">Sobreposa</string>\n    <string name=\"filter_mode_multiply\">Multiplica</string>\n    <string name=\"filter_mode_screen\">Protegeix</string>\n    <string name=\"filter_mode_lighten\">Esquiva / Il·lumina</string>\n    <string name=\"filter_mode_darken\">Crema / Enfosqueix</string>\n    <string name=\"label_help\">Ajuda</string>\n    <string name=\"no_results_found\">No s’ha trobat cap resultat</string>\n    <string name=\"migration_selection_prompt\">Seleccioneu una font a migrar</string>\n    <string name=\"action_webview_back\">Endarrere</string>\n    <string name=\"action_webview_forward\">Endavant</string>\n    <string name=\"action_webview_refresh\">Actualitza</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"ext_obsolete\">Obsoleta</string>\n    <string name=\"obsolete_extension_message\">Aquesta extensió ja no està disponible. És possible que no funcioni correctament i pot causar problemes a l’aplicació. És recomanable que la desinstal·leu.</string>\n    <string name=\"pref_date_format\">Format de data</string>\n    <string name=\"pref_category_library_update\">Actualització global</string>\n    <string name=\"logout_title\">Voleu tancar la sessió a %1$s?</string>\n    <string name=\"logout\">Tanca la sessió</string>\n    <string name=\"logout_success\">S’ha tancat la sessió</string>\n    <string name=\"paused\">Pausat</string>\n    <string name=\"label_more\">Més</string>\n    <string name=\"action_sort_latest_chapter\">Darrer capítol</string>\n    <string name=\"action_view_chapters\">Mostra els capítols</string>\n    <string name=\"action_cancel_all\">Cancel·la-ho tot</string>\n    <string name=\"theme_light\">Clar</string>\n    <string name=\"theme_dark\">Fosc</string>\n    <string name=\"theme_system\">Sistema</string>\n    <string name=\"pref_manage_notifications\">Gestiona les notificacions</string>\n    <string name=\"pref_category_security\">Seguretat i privadesa</string>\n    <string name=\"lock_with_biometrics\">Requereix desblocatge</string>\n    <string name=\"lock_when_idle\">Bloca per inactivitat</string>\n    <string name=\"lock_always\">Sempre</string>\n    <string name=\"lock_never\">Mai</string>\n    <string name=\"secure_screen\">Mode discret</string>\n    <string name=\"ext_updates_pending\">Actualitzacions pendents</string>\n    <string name=\"pref_cutout_short\">Mostra el contingut a l’àrea de retall</string>\n    <string name=\"information_cloudflare_bypass_failure\">No s’ha pogut evitar el Cloudflare</string>\n    <string name=\"information_webview_outdated\">Actualitzeu l’aplicació WebView per a tenir més bona compatibilitat</string>\n    <string name=\"channel_new_chapters\">Novetats de capítols</string>\n    <string name=\"secure_screen_summary\">El mode discret amaga el contingut de l’aplicació en canviar entre aplicacions i bloca les captures de pantalla</string>\n    <string name=\"pref_category_display\">Visualització</string>\n    <string name=\"notification_chapters_single\">Capítol %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Capítol %1$s i %2$d més</string>\n    <string name=\"notification_chapters_multiple\">Capítols %1$s</string>\n    <string name=\"hide_notification_content\">Amaga el contingut de les notificacions</string>\n    <string name=\"pref_disable_battery_optimization\">Desactiva l’optimització de la bateria</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Fa que funcionin millor les actualitzacions de la biblioteca en segon pla i les còpies de seguretat</string>\n    <string name=\"battery_optimization_disabled\">L’optimització de la bateria ja està desactivada</string>\n    <string name=\"email\">Adreça electrònica</string>\n    <string name=\"pref_always_show_chapter_transition\">Mostra sempre la transició de capítol</string>\n    <string name=\"action_menu\">Menú</string>\n    <string name=\"action_newest\">Els més nous</string>\n    <string name=\"action_oldest\">Els més antics</string>\n    <string name=\"action_move_to_top\">Mou a dalt de tot</string>\n    <string name=\"action_move_to_bottom\">Mou a sota de tot</string>\n    <string name=\"channel_ext_updates\">Actualitzacions d’extensions</string>\n    <string name=\"updating_library\">S’està actualitzant la biblioteca</string>\n    <string name=\"pref_category_reading\">Lectura</string>\n    <string name=\"pref_skip_filtered_chapters\">Omet els capítols filtrats</string>\n    <string name=\"label_sources\">Fonts</string>\n    <string name=\"action_select_inverse\">Inverteix la selecció</string>\n    <string name=\"pinned_sources\">Fixades</string>\n    <string name=\"action_pin\">Fixa</string>\n    <string name=\"add_tracking\">Afegeix un seguiment</string>\n    <string name=\"pref_webtoon_side_padding\">Espaiat lateral</string>\n    <string name=\"vertical_plus_viewer\">Tira vertical amb separació</string>\n    <string name=\"action_unpin\">Desfixa</string>\n    <string name=\"in_library\">A la biblioteca</string>\n    <string name=\"add_to_library\">Afegeix a la biblioteca</string>\n    <string name=\"information_webview_required\">La WebView és necessària per al funcionament de l’aplicació</string>\n    <string name=\"manga_info_collapse\">Menys</string>\n    <string name=\"manga_info_expand\">Més</string>\n    <string name=\"licenses\">Llicències de codi obert</string>\n    <string name=\"website\">Lloc web</string>\n    <string name=\"label_downloaded_only\">Només els baixats</string>\n    <string name=\"recent_manga_time\">Cap. %1$s - %2$s</string>\n    <string name=\"restoring_backup_error\">Ha fallat la restauració de la còpia de seguretat</string>\n    <string name=\"creating_backup_error\">Ha fallat la còpia de seguretat</string>\n    <string name=\"restoring_backup_canceled\">S’ha cancel·lat la restauració</string>\n    <string name=\"restore_in_progress\">Ja s’està fent una restauració</string>\n    <string name=\"backup_in_progress\">Ja s’està fent una còpia de seguretat</string>\n    <string name=\"local_source_help_guide\">Guia de fonts locals</string>\n    <string name=\"last_used_source\">Utilitzada per darrera vegada</string>\n    <string name=\"check_for_updates\">Comprova si hi ha actualitzacions</string>\n    <string name=\"restore_duration\">%1$02d min i %2$02d s</string>\n    <string name=\"downloaded_only_summary\">Filtra tots els elements de la vostra biblioteca</string>\n    <string name=\"gray_background\">Gris</string>\n    <string name=\"viewer\">Mode de lectura</string>\n    <string name=\"pref_category_for_this_series\">Per a aquesta sèrie</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">No s’ha pogut obrir la configuració del dispositiu</string>\n    <string name=\"tracking_info\">La sincronització és unidireccional per a actualitzar el progrés dels capítols als serveis de seguiment externs. Configureu el seguiment d’elements individuals al seu botó de seguiment.</string>\n    <string name=\"pref_refresh_library_covers\">Refresca les portades de la biblioteca</string>\n    <string name=\"sort_by_upload_date\">Per data de pujada</string>\n    <string name=\"label_data\">Dades</string>\n    <string name=\"backup_restore_missing_sources\">Manquen fonts:</string>\n    <string name=\"invalid_backup_file_missing_manga\">La còpia de seguretat no conté cap element de la biblioteca.</string>\n    <string name=\"invalid_backup_file\">Fitxer de còpia de seguretat invàlid:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Comprova si hi ha noves portades o detalls en actualitzar la biblioteca</string>\n    <string name=\"pref_library_update_refresh_metadata\">Refresca les metadades automàticament</string>\n    <string name=\"action_display_comfortable_grid\">Graella confortable</string>\n    <string name=\"action_migrate\">Migra</string>\n    <string name=\"tabs_header\">Pestanyes</string>\n    <string name=\"action_display_show_tabs\">Mostra les pestanyes de les categories</string>\n    <string name=\"page_list_empty_error\">No s’ha trobat cap pàgina</string>\n    <string name=\"action_disable_all\">Desactiva-ho tot</string>\n    <string name=\"action_enable_all\">Activa-ho tot</string>\n    <string name=\"tapping_inverted_both\">En totes dues direccions</string>\n    <string name=\"tapping_inverted_vertical\">En vertical</string>\n    <string name=\"tapping_inverted_horizontal\">En horitzontal</string>\n    <string name=\"tapping_inverted_none\">Cap</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverteix les zones de toc</string>\n    <string name=\"download_insufficient_space\">No s’han pogut baixar els capítols perquè hi ha poc espai d’emmagatzematge</string>\n    <string name=\"loader_not_implemented_error\">No s’ha trobat la font</string>\n    <string name=\"unknown_status\">Estat desconegut</string>\n    <string name=\"unknown_author\">Autor desconegut</string>\n    <string name=\"action_global_search_query\">Cerca «%1$s» globalment</string>\n    <string name=\"updated_version\">S’ha actualitzat a la v%1$s</string>\n    <string name=\"whats_new\">Novetats</string>\n    <string name=\"requires_app_restart\">Cal reiniciar l’aplicació perquè tingui efecte</string>\n    <string name=\"label_network\">Xarxa</string>\n    <string name=\"pref_category_reading_mode\">Mode de lectura</string>\n    <string name=\"pref_show_reading_mode_summary\">Mostra breument el mode actual en obrir el lector</string>\n    <string name=\"pref_show_reading_mode\">Mostra el mode de lectura</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_disable\">Desactiva</string>\n    <string name=\"action_start\">Inicia</string>\n    <string name=\"action_sort_date_added\">Data d’incorporació</string>\n    <string name=\"no_pinned_sources\">No teniu cap origen fixat</string>\n    <string name=\"channel_complete\">Completada</string>\n    <string name=\"channel_progress\">Progrés</string>\n    <string name=\"channel_errors\">Errors</string>\n    <string name=\"backup_restore_missing_trackers\">Serveis de seguiment sense sessió iniciada:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permet la supressió dels capítols marcats</string>\n    <string name=\"pref_category_delete_chapters\">Suprimeix capítols</string>\n    <string name=\"ext_nsfw_warning\">Les fonts d’aquesta extensió poden contenir contingut NSFW (+18)</string>\n    <string name=\"ext_nsfw_short\">+18</string>\n    <string name=\"parental_controls_info\">Això no evita que les extensions no oficials o possiblement mal etiquetades puguin mostrar contingut NSFW (+18) a l’aplicació.</string>\n    <string name=\"no_chapters_error\">No s’ha trobat cap capítol</string>\n    <string name=\"chapter_settings_updated\">S’ha actualitzat la configuració per defecte dels capítols</string>\n    <string name=\"set_chapter_settings_as_default\">Estableix com a per defecte</string>\n    <string name=\"also_set_chapter_settings_for_library\">Aplica-ho també a tots els elements de la biblioteca</string>\n    <string name=\"confirm_set_chapter_settings\">Esteu segur que voleu desar aquesta configuració com a configuració per defecte?</string>\n    <string name=\"chapter_settings\">Configuració dels capítols</string>\n    <string name=\"share_page_info\">%1$s: %2$s, pàgina %3$d</string>\n    <string name=\"action_search_settings\">Configuració de la cerca</string>\n    <string name=\"downloaded_chapters\">Capítols baixats</string>\n    <string name=\"manga_from_library\">De la biblioteca</string>\n    <string name=\"clear_history_confirmation\">N’esteu segur? Es perdrà tot l’historial.</string>\n    <string name=\"pref_incognito_mode_summary\">Pausa l’historial de lectura</string>\n    <string name=\"pref_incognito_mode\">Mode d’incògnit</string>\n    <string name=\"pref_clear_history\">Suprimeix l’historial</string>\n    <string name=\"clear_history_completed\">S’ha buidat l’historial</string>\n    <string name=\"spen_next_page\">Pàgina següent</string>\n    <string name=\"spen_previous_page\">Pàgina anterior</string>\n    <string name=\"migration_help_guide\">Guia de migració de fonts</string>\n    <string name=\"pref_category_nsfw_content\">Fonts NSFW (+18)</string>\n    <string name=\"file_picker_error\">No s’ha trobat cap aplicació de selecció de fitxers</string>\n    <string name=\"pref_show_nsfw_source\">Mostra a la llista de fonts i extensions</string>\n    <string name=\"myanimelist_relogin\">Torneu a iniciar la sessió a MAL</string>\n    <string name=\"track_finished_reading_date\">Data de finalització</string>\n    <string name=\"track_started_reading_date\">Data d’inici</string>\n    <string name=\"pref_dump_crash_logs_summary\">Desa els registres d’errors en un fitxer perquè el pugueu compartir amb els desenvolupadors</string>\n    <string name=\"pref_dump_crash_logs\">Comparteix el registre d’errors</string>\n    <string name=\"pref_viewer_nav\">Zones de toc</string>\n    <string name=\"edge_nav\">Vora</string>\n    <string name=\"kindlish_nav\">Semblant al Kindle</string>\n    <string name=\"l_nav\">En forma d’L</string>\n    <string name=\"action_desc\">Descendent</string>\n    <string name=\"action_asc\">Ascendent</string>\n    <string name=\"action_order_by_chapter_number\">Per número de capítol</string>\n    <string name=\"action_order_by_upload_date\">Per data de pujada</string>\n    <string name=\"action_filter_tracked\">En seguiment</string>\n    <string name=\"action_display_show_number_of_items\">Mostra el nombre d’elements</string>\n    <string name=\"right_and_left_nav\">A la dreta i a l’esquerra</string>\n    <string name=\"pref_dual_page_split\">Divideix les pàgines amples</string>\n    <string name=\"pref_dual_page_invert_summary\">Si la ubicació de les pàgines amples dividides no encaixa amb la direcció de lectura</string>\n    <string name=\"pref_dual_page_invert\">Inverteix la ubicació de la divisió de pàgines</string>\n    <string name=\"backup_restore_content_full\">Caldrà que instal·leu les extensions que manquin i que després inicieu la sessió als serveis de seguiment per a utilitzar-los.</string>\n    <string name=\"update_check_eol\">Aquesta versió d’Android ja no està suportada</string>\n    <string name=\"error_no_match\">No s’ha trobat cap coincidència</string>\n    <string name=\"source_unsupported\">La font no està suportada</string>\n    <string name=\"unread\">No llegit</string>\n    <string name=\"clipboard_copy_error\">No s’ha pogut copiar al porta-retalls</string>\n    <string name=\"notification_incognito_text\">Desactiva el mode d’incògnit</string>\n    <string name=\"pref_dns_over_https\">DNS sobre HTTPS (DoH)</string>\n    <string name=\"pref_download_new_categories_details\">Els elements de les categories excloses no es baixaran encara que també siguin a les categories incloses.</string>\n    <string name=\"pref_library_update_categories_details\">Els elements de les categories excloses no s’actualitzaran encara que també siguin a les categories incloses.</string>\n    <string name=\"pref_category_auto_download\">Baixada automàtica</string>\n    <string name=\"rotation_landscape\">Horitzontal</string>\n    <string name=\"rotation_portrait\">Vertical</string>\n    <string name=\"rotation_type\">Rotació</string>\n    <string name=\"nav_zone_right\">Dreta</string>\n    <string name=\"nav_zone_left\">Esquerra</string>\n    <string name=\"nav_zone_next\">Següent</string>\n    <string name=\"nav_zone_prev\">Anterior</string>\n    <string name=\"automatic_background\">Automàtic</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Crea carpetes segons el títol dels elements</string>\n    <string name=\"pref_create_folder_per_manga\">Desa les pàgines en carpetes separades</string>\n    <string name=\"pref_reader_actions\">Accions</string>\n    <string name=\"pref_grayscale\">Escala de grisos</string>\n    <string name=\"pref_show_navigation_mode_summary\">Mostra breument les zones de toc en obrir el lector</string>\n    <string name=\"pref_show_navigation_mode\">Mostra la superposició de les zones de toc</string>\n    <string name=\"include\">Inclou: %s</string>\n    <string name=\"exclude\">Exclou: %s</string>\n    <string name=\"none\">Cap</string>\n    <string name=\"action_show_errors\">Premeu per a veure’n els detalls</string>\n    <string name=\"cancel_all_for_series\">Cancel·la-ho tot per a aquesta sèrie</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data d’obtenció dels capítols</string>\n    <string name=\"date\">Data</string>\n    <string name=\"local_filter_order_by\">Ordena per</string>\n    <string name=\"local_invalid_format\">El format del capítol no és vàlid</string>\n    <string name=\"chapter_not_found\">No s’ha trobat el capítol</string>\n    <string name=\"error_sharing_cover\">S’ha produït un error en compartir la portada</string>\n    <string name=\"error_saving_cover\">S’ha produït un error en desar la portada</string>\n    <string name=\"cover_saved\">S’ha desat la portada</string>\n    <string name=\"manga_cover\">Portada</string>\n    <string name=\"tracking_guide\">Guia de seguiment</string>\n    <string name=\"off\">Desactivat</string>\n    <string name=\"on\">Activat</string>\n    <string name=\"categorized_display_settings\">Opcions d’ordenació per categoria</string>\n    <string name=\"restrictions\">Restriccions: %s</string>\n    <string name=\"action_display_local_badge\">Font local</string>\n    <string name=\"pref_lowest\">La més baixa</string>\n    <string name=\"pref_low\">Baixa</string>\n    <string name=\"pref_high\">Alta</string>\n    <string name=\"pref_highest\">La més alta</string>\n    <string name=\"pref_remove_exclude_categories\">Categories excloses</string>\n    <string name=\"information_empty_category_dialog\">Encara no teniu cap categoria.</string>\n    <string name=\"enhanced_services\">Serveis de seguiment millorats</string>\n    <string name=\"relative_time_today\">Avui</string>\n    <string name=\"label_default\">Per defecte</string>\n    <string name=\"label_warning\">Advertència</string>\n    <string name=\"confirm_lock_change\">Autentiqueu-vos per a confirmar el canvi</string>\n    <string name=\"theme_greenapple\">Verd poma</string>\n    <string name=\"pref_category_appearance\">Aparença</string>\n    <string name=\"action_start_downloading_now\">Inicia la baixada ara</string>\n    <string name=\"action_sort_count\">Nombre total d’elements</string>\n    <string name=\"pref_app_theme\">Tema de l’aplicació</string>\n    <string name=\"theme_monet\">Dinàmic</string>\n    <string name=\"action_display_language_badge\">Llengua</string>\n    <string name=\"theme_midnightdusk\">Capvespre</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri de maduixa</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_tealturquoise\">Xarxet i turquesa</string>\n    <string name=\"theme_yinyang\">Yin i yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Mode fosc negre pur</string>\n    <string name=\"update_72hour\">Cada 3 dies</string>\n    <string name=\"connected_to_wifi\">Només amb Wi-Fi</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instal·leu i inicieu el Shizuku per a utilitzar-lo com a instal·lador d’extensions.</string>\n    <string name=\"pref_hide_threshold\">Sensibilitat a l’hora d’amagar el menú en desplaçar</string>\n    <string name=\"pref_verbose_logging\">Registre detallat</string>\n    <string name=\"ext_update_all\">Actualitza-ho tot</string>\n    <string name=\"ext_installer_shizuku_stopped\">El Shizuku no s’està executant</string>\n    <string name=\"pref_inverted_colors\">Invertits</string>\n    <string name=\"restore_miui_warning\">És possible que la còpia de seguretat i la restauració no funcionin correctament si l’Optimització del MIUI està desactivada.</string>\n    <string name=\"label_background_activity\">Activitat en segon pla</string>\n    <string name=\"pref_tablet_ui_mode\">Interfície de tauleta</string>\n    <string name=\"help_translate\">Ajudeu a traduir</string>\n    <string name=\"getting_started_guide\">Guia d’introducció</string>\n    <string name=\"privacy_policy\">Política de privadesa</string>\n    <string name=\"ext_install_service_notif\">S’està instal·lant l’extensió…</string>\n    <string name=\"ext_installer_pref\">Instal·lador</string>\n    <string name=\"ext_installer_legacy\">Antic</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Buida la memòria cau de capítols en obrir l’aplicació</string>\n    <string name=\"enhanced_tracking_info\">Proporciona funcionalitats millorades per a fonts específiques. Els elements se segueixen automàticament en afegir-los a la vostra biblioteca.</string>\n    <string name=\"about_dont_kill_my_app\">Alguns fabricants tenen restriccions addicionals per a les aplicacions que finalitzen els serveis en segon pla. Aquest lloc web té més informació de com solucionar-ho.</string>\n    <string name=\"clear_database_source_item_count\">Hi ha %1$d elements a la base de dades que no són a la biblioteca</string>\n    <string name=\"cancelled\">Cancel·lada</string>\n    <string name=\"library_errors_help\">Per a obtenir ajuda per a resoldre errors d’actualització de la biblioteca, vegeu %1$s</string>\n    <string name=\"extension_api_error\">No s’han pogut obtenir les extensions disponibles</string>\n    <string name=\"pref_update_only_completely_read\">Omet els elements amb capítols no llegits</string>\n    <string name=\"save_chapter_as_cbz\">Desa com a arxiu CBZ</string>\n    <string name=\"backup_info\">També hauríeu de desar còpies de les còpies de seguretat en altres llocs. Les còpies de seguretat poden contenir dades sensibles, incloent-hi les contrasenyes desades; aneu amb compte si les compartiu.</string>\n    <string name=\"database_clean\">No hi ha res que calgui buidar</string>\n    <string name=\"pref_verbose_logging_summary\">Imprimeix registres detallats al registre del sistema (redueix el rendiment de l’aplicació)</string>\n    <string name=\"publishing_finished\">Publicació finalitzada</string>\n    <string name=\"on_hiatus\">En pausa</string>\n    <string name=\"channel_app_updates\">Actualitzacions de l’aplicació</string>\n    <string name=\"action_track\">Segueix</string>\n    <string name=\"ext_app_info\">Informació de l’aplicació</string>\n    <string name=\"download_queue_size_warning\">Advertència: Les baixades massa grosses poden fer que les fonts es tornin més lentes i/o bloquin el %s. Premeu per a obtenir-ne més informació.</string>\n    <string name=\"notification_size_warning\">Les actualitzacions grosses perjudiquen les fonts i poden implicar actualitzacions més lentes i un augment en l’ús de bateria. Premeu per a obtenir-ne més informació.</string>\n    <string name=\"pref_landscape_zoom\">Amplia automàticament les imatges amples</string>\n    <string name=\"action_show_manga\">Mostra l’element</string>\n    <string name=\"pref_navigate_pan\">Fes panoràmiques les imatges amples</string>\n    <string name=\"action_display_cover_only_grid\">Graella només a la portada</string>\n    <string name=\"pref_update_only_started\">Omet els elements no començats</string>\n    <string name=\"skipped_reason_completed\">S’ha omès perquè la sèrie està completada</string>\n    <string name=\"skipped_reason_not_started\">S’ha omès perquè no hi ha cap capítol llegit</string>\n    <string name=\"skipped_reason_not_caught_up\">S’ha omès perquè hi ha capítols no llegits</string>\n    <string name=\"learn_more\">Premeu per a obtenir més informació</string>\n    <string name=\"notification_update_error\">Han fallat %1$d actualitzacions</string>\n    <string name=\"rotation_reverse_portrait\">Vertical inversa</string>\n    <string name=\"action_move_to_top_all_for_series\">Mou la sèrie a dalt de tot</string>\n    <string name=\"disabled_nav\">Desactivat</string>\n    <string name=\"update_check_open\">Obre al GitHub</string>\n    <string name=\"error_saving_picture\">S’ha produït un error en desar la imatge</string>\n    <string name=\"empty_backup_error\">No hi ha cap element a la biblioteca del qual fer còpia de seguretat</string>\n    <string name=\"pref_clear_webview_data\">Neteja les dades de la WebView</string>\n    <string name=\"webview_data_deleted\">S’han netejat les dades de la WebView</string>\n    <string name=\"action_close\">Tanca</string>\n    <string name=\"source_filter_empty_screen\">No s’ha trobat cap font instal·lada</string>\n    <string name=\"source_empty_screen\">No s’ha trobat cap font</string>\n    <string name=\"action_sort_unread_count\">Nombre de no llegits</string>\n    <string name=\"action_sort_last_manga_update\">Darrera comprovació d’actualitzacions</string>\n    <string name=\"split_tall_images_summary\">Millora el rendiment del lector</string>\n    <string name=\"download_notifier_split_page_not_found\">No s’ha trobat la pàgina %d en dividir</string>\n    <string name=\"download_notifier_split_page_path_not_found\">No s’ha trobat el camí del fitxer de la pàgina %d</string>\n    <string name=\"pref_reset_viewer_flags\">Restableix les opcions del lector per sèrie</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Restableix el mode de lectura i l’orientació de totes les sèries</string>\n    <string name=\"pref_reset_viewer_flags_success\">S’han restablert tota la configuració del lector</string>\n    <string name=\"pref_reset_viewer_flags_error\">No s’ha pogut restablir la configuració del lector</string>\n    <string name=\"empty_screen\">Ostres, que estrany</string>\n    <string name=\"ext_info_language\">Llengua</string>\n    <string name=\"ext_info_version\">Versió</string>\n    <string name=\"ext_info_age_rating\">Valoració d’edat</string>\n    <string name=\"reading_list\">Llista de lectura</string>\n    <string name=\"wish_list\">Llista de desitjos</string>\n    <string name=\"complete_list\">Llista de completats</string>\n    <string name=\"on_hold_list\">Llista de pausats</string>\n    <string name=\"unfinished_list\">Llista d’inacabats</string>\n    <string name=\"network_not_metered\">Només en xarxes sense límits de dades</string>\n    <string name=\"cant_open_last_read_chapter\">No s’ha pogut obrir el darrer capítol llegit</string>\n    <string name=\"custom_cover\">Portada personalitzada</string>\n    <string name=\"not_installed\">No instal·lat</string>\n    <string name=\"pref_app_language\">Llengua de l’aplicació</string>\n    <string name=\"delete_category_confirmation\">Voleu eliminar la categoria «%s»?</string>\n    <string name=\"delete_category\">Elimina la categoria</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"description_placeholder\">Sense descripció</string>\n    <string name=\"internal_error\">Error intern: Reviseu els registres de fallades per a més informació</string>\n    <string name=\"pref_user_agent_string\">Cadena d’agent d’usuari per defecte</string>\n    <string name=\"pref_reset_user_agent_string\">Restableix la cadena d’agent d’usuari per defecte</string>\n    <string name=\"appwidget_unavailable_locked\">El widget no està disponible quan hi ha activat el blocatge de l’aplicació</string>\n    <string name=\"appwidget_updates_description\">Vegeu els elements de la biblioteca actualitzats recentment</string>\n    <string name=\"action_remove_everything\">Elimina-ho tot</string>\n    <string name=\"update_already_running\">Ja s’està executant una actualització</string>\n    <string name=\"theme_tidalwave\">Tsunami</string>\n    <string name=\"error_user_agent_string_blank\">La cadena de l’agent d’usuari no pot estar buida</string>\n    <string name=\"pref_appearance_summary\">Tema, formats de data i hora</string>\n    <string name=\"pref_library_summary\">Categories, actualitzacions globals i lliscament en capítols</string>\n    <string name=\"are_you_sure\">N’esteu segur?</string>\n    <string name=\"invalid_location\">Ubicació invàlida: %s</string>\n    <string name=\"auto_download_while_reading\">Baixa automàticament mentre es llegeix</string>\n    <string name=\"download_ahead_info\">Només funciona si el capítol actual i el següent ja estan baixats.</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"crash_screen_description\">S’ha produït un error inesperat al %s. Us suggerim que compartiu el registre d’errors al nostre canal d’assistència al Discord.</string>\n    <string name=\"missing_storage_permission\">No s’han concedit permisos d’emmagatzematge</string>\n    <string name=\"popular\">Populars</string>\n    <string name=\"pref_backup_summary\">Còpies de seguretat automàtiques i manuals i espai d’emmagatzematge</string>\n    <string name=\"pref_reader_summary\">Mode de lectura, visualització i navegació</string>\n    <string name=\"pref_downloads_summary\">Baixades automàtiques i per avançat</string>\n    <string name=\"multi_lang\">Múltiples</string>\n    <string name=\"error_user_agent_string_invalid\">La cadena d’agent d’usuari no és vàlida</string>\n    <string name=\"unknown_title\">Títol desconegut</string>\n    <string name=\"updates_last_update_info_just_now\">Ara mateix</string>\n    <string name=\"download_ahead\">Baixa per avançat</string>\n    <string name=\"pref_tracking_summary\">Sincronització en un sentit o millorada</string>\n    <string name=\"pref_browse_summary\">Fonts, extensions i cerca global</string>\n    <string name=\"pref_security_summary\">Blocatge de l’aplicació i mode discret</string>\n    <string name=\"pref_advanced_summary\">Bolcatge de registres d’errors i optimitzacions de la bateria</string>\n    <string name=\"crash_screen_restart_application\">Reinicia l’aplicació</string>\n    <string name=\"skipped_reason_not_always_update\">S’ha omès perquè no cal actualitzar la sèrie</string>\n    <string name=\"remove_manga\">Suprimireu «%s» de la vostra biblioteca</string>\n    <string name=\"action_search_hint\">Cerca…</string>\n    <string name=\"updates_last_update_info\">Biblioteca actualitzada per darrera vegada: %s</string>\n    <string name=\"download_notifier_cache_renewal\">S’estan comprovant les baixades</string>\n    <string name=\"action_open_random_manga\">Obre un element aleatori</string>\n    <string name=\"fdroid_warning\">Les compilacions de F-Droid no tenen assistència oficial.\\nPremeu per a obtenir-ne més informació.</string>\n    <string name=\"information_no_entries_found\">No s’ha trobat cap element en aquesta categoria</string>\n    <string name=\"action_display_show_continue_reading_button\">Botó per a continuar llegint</string>\n    <string name=\"pref_invalidate_download_cache\">Reindexa les baixades</string>\n    <string name=\"track_remove_finish_date_conf_text\">S’eliminarà la data de finalització seleccionada de %s</string>\n    <string name=\"track_remove_date_conf_title\">Voleu eliminar-ne la data?</string>\n    <string name=\"track_remove_start_date_conf_text\">S’eliminarà la data d’inici seleccionada de %s</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Força que l’aplicació torni a comprovar els capítols baixats</string>\n    <string name=\"label_stats\">Estadístiques</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_downloaded\">Baixats</string>\n    <string name=\"label_started\">Començats</string>\n    <string name=\"copied_to_clipboard_plain\">S’ha copiat al porta-retalls</string>\n    <string name=\"label_read_chapters\">Llegits</string>\n    <string name=\"label_total_chapters\">Totals</string>\n    <string name=\"pref_library_update_show_tab_badge\">Mostra el recompte de no llegits a la icona d’Actualitzacions</string>\n    <string name=\"pref_skip_dupe_chapters\">Omet els capítols duplicats</string>\n    <string name=\"enhanced_services_not_installed\">Disponible però la font no està instal·lada: %s</string>\n    <string name=\"label_read_duration\">Temps de lectura</string>\n    <string name=\"label_titles_section\">Elements</string>\n    <string name=\"label_completed_titles\">Elements completats</string>\n    <string name=\"track_error\">Error %1$s: %2$s</string>\n    <string name=\"action_not_now\">Ara no</string>\n    <string name=\"label_titles_in_global_update\">A l’actualització global</string>\n    <string name=\"label_overview_section\">Resum</string>\n    <string name=\"label_tracker_section\">Serveis de seguiment</string>\n    <string name=\"label_tracked_titles\">Elements seguits</string>\n    <string name=\"label_mean_score\">Puntuació mitjana</string>\n    <string name=\"information_required_plain\">*obligatori</string>\n    <string name=\"information_no_manga_category\">La categoria és buida</string>\n    <string name=\"label_used\">En ús</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"pref_hide_in_library_items\">Amaga els elements que ja són a la biblioteca</string>\n    <string name=\"action_copy_to_clipboard\">Copia al porta-retalls</string>\n    <string name=\"action_update_category\">Actualitza la categoria</string>\n    <string name=\"split_tall_images\">Divideix les imatges altes</string>\n    <string name=\"pref_chapter_swipe_end\">En lliscar cap a la dreta en un capítol</string>\n    <string name=\"pref_chapter_swipe_start\">En lliscar cap a l’esquerra en un capítol</string>\n    <string name=\"pref_double_tap_zoom\">Toca dues vegades per a ampliar</string>\n    <string name=\"overlay_header\">Superposició</string>\n    <string name=\"pref_page_rotate_invert\">Inverteix l’orientació de les pàgines amples rotades</string>\n    <string name=\"pref_page_rotate\">Rota les pàgines amples perquè s’ajustin a la pantalla</string>\n    <string name=\"pref_debug_info\">Informació de depuració</string>\n    <string name=\"action_set_interval\">Estableix l’interval</string>\n    <string name=\"action_filter_interval_custom\">Freqüència d’actualització personalitzat</string>\n    <string name=\"action_sort_next_updated\">Pròxima actualització prevista</string>\n    <string name=\"action_ok\">D’acord</string>\n    <string name=\"pref_update_only_in_release_period\">Preveu el moment de la pròxima publicació</string>\n    <string name=\"intervals_header\">Intervals</string>\n    <string name=\"manga_display_interval_title\">Estima cada</string>\n    <string name=\"manga_display_modified_interval_title\">S’actualitzarà cada</string>\n    <string name=\"track_delete_title\">Voleu deixar de seguir %s?</string>\n    <string name=\"track_delete_remote_text\">Elimina també de %s</string>\n    <string name=\"track_delete_text\">Se n’eliminarà el seguiment local.</string>\n    <string name=\"skipped_reason_not_in_release_period\">S’ha omès perquè no se n’espera cap publicació avui</string>\n    <string name=\"delete_downloaded\">Suprimeix els baixats</string>\n    <string name=\"has_results\">Té resultats</string>\n    <string name=\"syncing_library\">S’està sincronitzant la biblioteca</string>\n    <string name=\"library_sync_complete\">S’ha completat la sincronització de la biblioteca</string>\n    <string name=\"create_backup_file_error\">No s’ha pogut crear un fitxer de còpia de seguretat</string>\n    <string name=\"track_activity_name\">Inici de sessió al servei de seguiment</string>\n    <string name=\"download_cache_invalidated\">S’està recreant l’índex de baixades</string>\n    <string name=\"information_cloudflare_help\">Premeu aquí per a obtenir ajuda amb el Cloudflare</string>\n    <string name=\"unlock_app_title\">Desbloca %s</string>\n    <string name=\"exception_offline\">No hi ha connexió a Internet</string>\n    <string name=\"exception_http\">HTTP %d, comproveu el lloc web en una WebView</string>\n    <string name=\"exception_unknown_host\">No s’ha pogut accedir a %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Mou la sèrie a baix de tot</string>\n    <string name=\"pref_relative_format\">Marques de temps relatives</string>\n    <string name=\"pref_relative_format_summary\">«%1$s» en comptes de «%2$s»</string>\n    <string name=\"notification_updating_progress\">S’està actualitzant la biblioteca… (%s)</string>\n    <string name=\"source_settings\">Configuració de la font</string>\n    <string name=\"app_settings\">Configuració de l’aplicació</string>\n    <string name=\"file_null_uri_error\">No s’ha seleccionat cap fitxer</string>\n    <string name=\"action_create\">Crea</string>\n    <string name=\"relative_time_span_never\">Mai</string>\n    <string name=\"pref_flash_page_summ\">Redueix l’efecte fantasma en pantalles de tinta electrònica</string>\n    <string name=\"action_apply\">Aplica</string>\n    <string name=\"action_revert_to_default\">Torna a la configuració per defecte</string>\n    <string name=\"last_auto_backup_info\">Darrera còpia de seguretat automàtica: %s</string>\n    <string name=\"no_scanlators_found\">No s’ha trobat cap scanlator</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"pref_flash_page\">Centelleig en canviar de pàgina</string>\n    <string name=\"pref_storage_usage\">Ús de l’emmagatzematge</string>\n    <string name=\"action_sort_tracker_score\">Puntuació del servei de seguiment</string>\n    <string name=\"label_data_storage\">Dades i emmagatzematge</string>\n    <string name=\"exclude_scanlators\">Exclou scanlators</string>\n    <string name=\"selected\">Seleccionat</string>\n    <string name=\"not_selected\">No seleccionat</string>\n    <string name=\"pref_storage_location\">Ubicació de l’emmagatzematge</string>\n    <string name=\"pref_storage_location_info\">S’utilitza per a les còpies de seguretat automàtiques, les baixades de capítols i la font local.</string>\n    <string name=\"action_menu_overflow_description\">Més opcions</string>\n    <string name=\"action_bar_up_description\">Navega cap amunt</string>\n    <string name=\"onboarding_storage_action_select\">Selecciona una carpeta</string>\n    <string name=\"pref_onboarding_guide\">Guia de benvinguda</string>\n    <string name=\"onboarding_guides_new_user\">No heu fet servir mai el %s? Us recomanem que reviseu la guia de benvinguda.</string>\n    <string name=\"onboarding_action_finish\">Comença</string>\n    <string name=\"onboarding_storage_selection_required\">Cal que seleccioneu una carpeta</string>\n    <string name=\"onboarding_heading\">Et donem la benvinguda!</string>\n    <string name=\"onboarding_guides_returning_user\">Heu reinstal·lat %s?</string>\n    <string name=\"onboarding_action_skip\">Omet</string>\n    <string name=\"onboarding_action_next\">Següent</string>\n    <string name=\"onboarding_description\">Primer cal configurar unes quantes coses. Sempre podràs canviar aquestes opcions a la configuració.</string>\n    <string name=\"no_location_set\">No s’ha definit una ubicació d’emmagatzematge</string>\n    <string name=\"onboarding_storage_info\">Seleccioneu una carpeta on el %1$s emmagatzemarà les baixades dels capítols, les còpies de seguretat i més.\\n\\nÉs recomanable fer servir una carpeta dedicada.\\n\\nCarpeta seleccionada: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Permís de notificacions</string>\n    <string name=\"onboarding_permission_install_apps\">Permís per a instal·lar aplicacions</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Eviteu interrupcions en actualitzacions de la biblioteca, baixades i restauracions de còpies de seguretat que tinguin una llarga durada.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Ús de la bateria en segon pla</string>\n    <string name=\"onboarding_permission_install_apps_description\">Per a instal·lar extensions de fonts.</string>\n    <string name=\"onboarding_permission_notifications_description\">Rebeu notificacions quan hi hagi actualitzacions de la biblioteca i més.</string>\n    <string name=\"onboarding_permission_action_grant\">Permet</string>\n    <string name=\"available_disk_space_info\">Disponible: %1$s / Total: %2$s</string>\n    <string name=\"manga_interval_expected_update\">S’ha previst que se’n publicaran nous capítols d’aquí a %1$s, es comprova cada %2$s.</string>\n    <string name=\"invalid_backup_file_error\">Error complet:</string>\n    <string name=\"ext_permission_install_apps_warning\">Calen permisos per a instal·lar extensions. Premeu aquí per a concedir-les.</string>\n    <string name=\"private_settings\">Inclou-hi configuració sensible (per exemple, testimonis d’autenticació dels serveis de seguiment)</string>\n    <string name=\"label_extension_repos\">Repositoris d’extensions</string>\n    <string name=\"information_empty_repos\">No heu definit cap repositori.</string>\n    <string name=\"action_delete_repo\">Suprimeix el repositori</string>\n    <string name=\"action_add_repo_message\">Afegiu repositoris addicionals al %s. Ha de ser un URL que acabi amb «index.min.json».</string>\n    <string name=\"error_repo_exists\">Aquest repositori ja existeix!</string>\n    <string name=\"invalid_repo_name\">URL del repositori invàlid</string>\n    <string name=\"delete_repo_confirmation\">Voleu suprimir el repositori «%s»?</string>\n    <string name=\"onboarding_storage_help_action\">Guia d’emmagatzematge</string>\n    <string name=\"onboarding_storage_help_info\">Heu actualitzat d’una versió més antiga i no sabeu què heu de seleccionar? Consulteu la guia d’emmagatzematge per a més informació.</string>\n    <string name=\"theme_nord\">Nòrdic</string>\n    <string name=\"pref_library_update_smart_update\">Actualitzacions intel·ligents</string>\n    <string name=\"ext_revoke_trust\">Revoca les extensions de confiança desconegudes</string>\n    <string name=\"action_add_repo\">Afegeix un repositori</string>\n    <string name=\"label_add_repo_input\">URL del repositori</string>\n    <string name=\"manga_interval_expected_update_soon\">Aviat</string>\n    <string name=\"manga_interval_custom_amount\">Freqüència d’actualització personalitzada:</string>\n    <string name=\"action_open_repo\">Obre el repositori d’origen</string>\n    <string name=\"file_picker_uri_permission_unsupported\">No s’ha pogut obtenir accés persistent a la carpeta. És possible que l’aplicació es comporti de manera inesperada.</string>\n    <string name=\"label_upcoming\">Pròxim</string>\n    <string name=\"upcoming_guide\">Guia de pròximes actualitzacions</string>\n    <string name=\"upcoming_calendar_next\">Mes següent</string>\n    <string name=\"action_add_anyway\">Afegeix igualment</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Desactiva l’allunyament</string>\n    <string name=\"action_replace_repo\">Substitueix</string>\n    <string name=\"action_replace_repo_title\">L’empremta digital de la clau de xifratge ja existeix</string>\n    <string name=\"action_replace_repo_message\">La clau de xifratge del repositori %1$s té la mateixa empremta digital que %2$s.\\nSi espereu que sigui així, se substituirà %2$s. En cas contrari, contacteu amb el mantenidor del repositori.</string>\n    <string name=\"pref_display_profile\">Perfil de visualització personalitzat</string>\n    <string name=\"action_view_upcoming\">Mostra les pròximes actualitzacions</string>\n    <string name=\"upcoming_calendar_prev\">Mes anterior</string>\n    <string name=\"pref_flash_duration\">Durada del flaix</string>\n    <string name=\"pref_flash_style_white\">Blanc</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_with\">Flaix amb</string>\n    <string name=\"pref_flash_style_black\">Negre</string>\n    <string name=\"pref_flash_page_interval\">Flaix cada</string>\n    <string name=\"pref_flash_style_white_black\">Blanc i negre</string>\n    <string name=\"manga_interval_expected_update_null\">Aquest manga està completat o bé no té cap data de publicació prevista.</string>\n    <string name=\"invalid_backup_file_json\">Còpia de seguretat en JSON no suportada</string>\n    <string name=\"invalid_backup_file_unknown\">El fitxer de còpia de seguretat és corrupte</string>\n    <string name=\"extensionRepo_settings\">Repositoris d’extensions</string>\n    <string name=\"action_copy_link\">Copia l’enllaç</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Omet la baixada de capítols ja llegits duplicats</string>\n    <string name=\"add_repo_confirmation\">Voleu afegir el repositori «%s»?</string>\n    <string name=\"confirm_tracker_update\">Voleu actualitzar els serveis de seguiment al capítol %d?</string>\n    <string name=\"non_library_settings\">Tots els elements llegits</string>\n    <string name=\"onboarding_permission_analytics_description\">Envia dades d’ús anonimitzades per a millorar les funcionalitats de l’aplicació.</string>\n    <string name=\"action_sort_random\">Aleatòriament</string>\n    <string name=\"onboarding_permission_crashlytics\">Envia registres d’errors</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Envia registres d’errors anonimitzats als desenvolupadors.</string>\n    <string name=\"onboarding_permission_analytics\">Permet les analítiques</string>\n    <string name=\"pref_firebase\">Registres d’errors i analítiques</string>\n    <string name=\"pref_security\">Seguretat</string>\n    <string name=\"firebase_summary\">Si envieu registres d’errors i analítiques, ens permetreu identificar i solucionar problemes, millorar el rendiment i fer que les futures actualitzacions siguin més adequades a les vostres necessitats</string>\n    <string name=\"label_auto\">Automàtic</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pausa l’historial de lectura per a aquesta extensió</string>\n    <string name=\"trackers_updated_summary\">Els serveis de seguiment s’han actualitzat al capítol %d</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Actualitza el progrés en marcar com a llegit</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Per defecte (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Afecta el rendiment. Activeu-ho només si en reduir el llindar de mapes de bits no se solucionen els problemes d’imatges buides</string>\n    <string name=\"ext_remove\">Elimina</string>\n    <string name=\"ext_confirm_remove\">Voleu eliminar l’extensió?</string>\n    <string name=\"remove_private_extension_message\">Segur que voleu eliminar l’extensió «%s»?</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Si el lector carrega una imatge buida, reduïu-ne el llindar a poc a poc.\\nActual: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Llindar personalitzat dels mapes de bits per maquinari</string>\n    <string name=\"tracked_privately\">En seguiment de manera privada</string>\n    <string name=\"export\">Exporta</string>\n    <string name=\"library_exported\">S’ha exportat la biblioteca</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"action_toggle_private_off\">Segueix de manera pública</string>\n    <string name=\"theme_monochrome\">Monocrom</string>\n    <string name=\"library_list\">Llista de la biblioteca</string>\n    <string name=\"action_toggle_private_on\">Segueix de manera privada</string>\n    <string name=\"label_donate\">Dóna</string>\n    <string name=\"action_display_unread_badge\">Capítols no llegits</string>\n    <string name=\"action_notes\">Notes</string>\n    <string name=\"action_edit_notes\">Edita les notes</string>\n    <string name=\"action_webview_close_tab\">Tanca la pestanya</string>\n    <string name=\"theme_catppuccin\">Gatputxino</string>\n    <string name=\"pref_display_images_description\">Renderitza les imatges a les descripcions dels mangues</string>\n    <string name=\"pref_behavior\">Comportament</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marca els capítols duplicats de llegits com a llegits</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Després de llegir un capítol</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Després d’obtenir un capítol nou</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Amaga els indicadors de capítols que manquen</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">No permetis noms de fitxer que no siguin ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Assegura la compatibiloitat amb alguns mitjans d’emmagatzematge que no admeten Unicode. Quan ho activeu, caldrà que canvieu de nom manualment les carpetes de les fonts i dels mangues substituint-ne els caràcters que no siguin ASCII per llurs representacions hexadecimals UTF-8 en minúscules. No cal que canvieu de nom els fitxers dels capítols.</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Utilitza el decodificador antic per al lector de tira llarga</string>\n    <string name=\"storage_failed_to_create_download_directory\">No s’ha pogut crear el directori de baixada</string>\n    <string name=\"storage_failed_to_create_directory\">No s’ha pogut crear el directori: %s</string>\n    <string name=\"pref_download_concurrent_sources\">Baixades concurrents de fonts</string>\n    <string name=\"pref_download_concurrent_pages\">Baixades concurrents de pàgines</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Pàgines baixades simultàniament per font</string>\n    <string name=\"clear_database_text\">Suprimireu elements de la base de dades</string>\n    <string name=\"clear_database_history_warning\">Els capítols llegits i el progrés dels elements que no siguin a la biblioteca es perdran</string>\n    <string name=\"clear_db_exclude_read\">Conserva els elements amb capítols llegits</string>\n    <string name=\"pref_update_library_manga_titles\">Actualitza els títols dels mangues de la biblioteca perquè encaixin amb la font</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Advertència: si un manga canvia de nom, se suprimirà de la cua de baixades (si hi és).</string>\n    <string name=\"logging_in\">S’està iniciant la sessió…</string>\n    <string name=\"possible_duplicates_title\">Possibles duplicats</string>\n    <string name=\"possible_duplicates_summary\">Ja teniu elements a la biblioteca amb un nom similar.\\n\\nSeleccioneu un element per a migrar-lo o afegiu-lo igualment.</string>\n    <string name=\"notes_placeholder\">M’ha agradat la part en què…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Seleccionats</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponibles</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Selecciona-ho tot</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">No seleccionis res</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Selecciona les fonts activades</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Selecciona les fonts fixades</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Continua</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Dades que es migraran</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Suprimeix les baixades de l’element actual després de la migració</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Paraules clau addicionals (opcional)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Ajuda a acotar els resultats de la cerca afegint-hi paraules clau addicionals</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Amaga els elements sense coincidències</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Amaga els elements sense capítols nous</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Mostra un element només si la coincidència té capítols addicionals</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Aquestes opcions són lentes i perilloses, i poden implicar restriccions per part de les fonts</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Mode de cerca avançat</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Parteix el títol en paraules clau per a una cerca més àmplia</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Cerca coincidències basant-se en el número de capítol</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Si ho activeu, cerca la coincidència de més endavant. En cas contrari, agafa la primera coincidència per prioritat de les fonts.</string>\n    <string name=\"migrationListScreenTitle\">Migració</string>\n    <string name=\"migrationListScreenTitleWithProgress\">S’està migrant (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copia</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migra</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">No s’ha trobat cap alternativa</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Darrer: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Desconegut</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Cerca manualment</string>\n    <string name=\"migrationListScreen.skipActionLabel\">No migris</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migra ara</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copia ara</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Voleu aturar la migració?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Atura</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Cancel·la</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copia</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migra</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Cancel·la</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Cancel·la</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">No s’ha trobat cap capítol, aquest element no es pot utilitzar per a migrar</string>\n    <string name=\"action_filter_excluded_scanlators\">Filtra els scanlators exclosos</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ceb/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d Kategoriya</item>\n        <item quantity=\"other\">%d Mga kategoriya</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Human sa %1$s ka minuto</item>\n        <item quantity=\"other\">Human sa %1$s ka minuto</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Kagahapon</item>\n        <item quantity=\"other\">%1$d ka adlaw ang milabay</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Nabuhat sa %1$s nga adunay %2$s nga sayup</item>\n        <item quantity=\"other\">Nabuhat sa %1$s nga adunay %2$s nga mga sayop</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s ang nahibilin</item>\n        <item quantity=\"other\">%1$s ang nahibilin</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Ugma</item>\n        <item quantity=\"other\">Sa %1$d ka adlaw</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ceb/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"history\">Kasaysayan</string>\n    <string name=\"label_recent_updates\">Mga update</string>\n    <string name=\"confirm_lock_change\">Panghimatuod aron makumpirma ang pagbag-o</string>\n    <string name=\"action_settings\">Mga setting</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_filter_bookmarked\">Gi-bookmark</string>\n    <string name=\"action_filter_tracked\">Gisubay</string>\n    <string name=\"action_filter_unread\">Wala mabasa</string>\n    <string name=\"action_sort_alpha\">Alpabetiko</string>\n    <string name=\"action_sort_count\">Hingpit nga mga entry</string>\n    <string name=\"action_sort_total\">Kinatibuk sa mga kapitulo</string>\n    <string name=\"action_sort_last_read\">Katapusan nga pagbasa</string>\n    <string name=\"action_sort_unread_count\">Wala mabasa nga ihap</string>\n    <string name=\"action_sort_chapter_fetch_date\">Petsa sa pagkuha sa kapitulo</string>\n    <string name=\"action_sort_date_added\">Gidugang ang petsa</string>\n    <string name=\"action_search\">Pangitaa</string>\n    <string name=\"action_search_settings\">Mga setting sa pagpangita</string>\n    <string name=\"action_global_search\">Pangkalibutanon nga pagpangita</string>\n    <string name=\"action_select_all\">Pilia ang tanan</string>\n    <string name=\"action_select_inverse\">Pagpili inverse</string>\n    <string name=\"action_mark_as_read\">Markahi nga gibasa</string>\n    <string name=\"action_mark_as_unread\">Markahi nga wala pa mabasa</string>\n    <string name=\"action_mark_previous_as_read\">Markahi ang nauna nga nabasa na</string>\n    <string name=\"action_download\">Pag-download</string>\n    <string name=\"name\">Ngalan</string>\n    <string name=\"chapters\">Mga kapitulo</string>\n    <string name=\"label_more\">Dugang pa</string>\n    <string name=\"label_settings\">Mga setting</string>\n    <string name=\"label_sources\">Tinubdan</string>\n    <string name=\"label_default\">Default</string>\n    <string name=\"label_download_queue\">Pila sa Pag-download</string>\n    <string name=\"manga\">Mga entri sa basahonan</string>\n    <string name=\"track\">Pagsubay</string>\n    <string name=\"label_library\">Librarya</string>\n    <string name=\"categories\">Mga Kategoriya</string>\n    <string name=\"label_migration\">Molalin</string>\n    <string name=\"label_extensions\">Pagpadako</string>\n    <string name=\"label_extension_info\">Impormasyon sa Extension</string>\n    <string name=\"label_recent_manga\">Kasaysayan</string>\n    <string name=\"label_backup\">Tabang ug sa Pagpasig-uli</string>\n    <string name=\"action_filter\">Pagsala</string>\n    <string name=\"label_help\">Tabang</string>\n    <string name=\"label_warning\">Pasidaan</string>\n    <string name=\"action_sort_latest_chapter\">Pinakabag-o nga kapitulo</string>\n    <string name=\"action_filter_empty\">Kuhaa ang filter</string>\n    <string name=\"action_sort_last_manga_update\">Katapusan nga update sa manga</string>\n    <string name=\"all\">Tanan</string>\n    <string name=\"information_no_recent\">Walay bag-o nga mga update</string>\n    <string name=\"categorized_display_settings\">Matag-kategorya nga mga setting alang sa paghan-ay ug pagpakita</string>\n    <string name=\"information_no_downloads\">Walay mga pag-download</string>\n    <string name=\"information_no_recent_manga\">Walay nabasa bag-o lang</string>\n    <string name=\"information_empty_category\">Wala kay mga kategorya. i-tap ang plus button aron makahimo og usa para sa pag-organisar sa imong library.</string>\n    <string name=\"information_empty_library\">Walay sulod ang imong library</string>\n    <string name=\"action_bookmark\">Bookmark nga kapitulo</string>\n    <string name=\"action_remove_bookmark\">Unbookmark nga kapitulo</string>\n    <string name=\"action_delete\">Pagtangtang</string>\n    <string name=\"action_enable_all\">I-enable ang tanan</string>\n    <string name=\"action_add\">Idugang</string>\n    <string name=\"action_add_category\">Idugang ang kategorya</string>\n    <string name=\"action_edit_categories\">Usba ang mga kategorya</string>\n    <string name=\"action_rename_category\">Usba ang ngalan sa kategorya</string>\n    <string name=\"action_edit_cover\">Usba ang hapin</string>\n    <string name=\"action_view_chapters\">Tan-awa ang mga kapitulo</string>\n    <string name=\"action_remove\">Kuhaa</string>\n    <string name=\"action_previous_chapter\">Sa miaging kapitulo</string>\n    <string name=\"action_start\">Pagsugod</string>\n    <string name=\"action_next_chapter\">Sunod nga kapitulo</string>\n    <string name=\"action_retry\">Sulayi pag-usab</string>\n    <string name=\"action_resume\">Ipadayon</string>\n    <string name=\"action_show_manga\">Ipakita ang pagsulod</string>\n    <string name=\"action_migrate\">Paglalin</string>\n    <string name=\"action_display\">Pagpakita</string>\n    <string name=\"action_display_cover_only_grid\">Cover-only grid</string>\n    <string name=\"action_display_download_badge\">Gi-download nga mga kapitulo</string>\n    <string name=\"action_display_language_badge\">Pinulongan</string>\n    <string name=\"action_display_show_tabs\">Ipakita ang mga tab sa kategorya</string>\n    <string name=\"action_display_show_number_of_items\">Ipakita ang gidaghanon sa mga butang</string>\n    <string name=\"action_disable\">Pag-disable</string>\n    <string name=\"action_unpin\">Unpin</string>\n    <string name=\"action_cancel\">Pagkanselar</string>\n    <string name=\"action_disable_all\">I-disable ang tanan</string>\n    <string name=\"action_edit\">Edit</string>\n    <string name=\"action_update_library\">Pag-update sa librarya</string>\n    <string name=\"action_move_category\">Ibutang ang mga kategorya</string>\n    <string name=\"action_pause\">Paghunong</string>\n    <string name=\"action_open_in_browser\">Ablihi sa browser</string>\n    <string name=\"action_display_local_badge\">Lokal nga tinubdan</string>\n    <string name=\"action_open_in_web_view\">Ablihi sa WebView</string>\n    <string name=\"action_display_comfortable_grid\">Komportable nga grid</string>\n    <string name=\"action_display_mode\">Display mode</string>\n    <string name=\"action_display_list\">Listahan</string>\n    <string name=\"action_display_grid\">Compact nga grid</string>\n    <string name=\"action_pin\">Pin</string>\n    <string name=\"action_cancel_all\">Cancel tanan</string>\n    <string name=\"cancel_all_for_series\">Ikansela ang tanan alang niini nga serye</string>\n    <string name=\"action_sort\">Pagsunud-sunod</string>\n    <string name=\"action_newest\">Pinakabag-o</string>\n    <string name=\"action_move_to_bottom\">Lihok sa ubos</string>\n    <string name=\"action_install\">Pag-instalar</string>\n    <string name=\"action_save\">Tipigi</string>\n    <string name=\"action_reset\">I-reset</string>\n    <string name=\"action_undo\">I-undo</string>\n    <string name=\"action_close\">Suod nga</string>\n    <string name=\"action_webview_back\">Balik</string>\n    <string name=\"action_webview_refresh\">I-refresh</string>\n    <string name=\"loading\">Nagproseso…</string>\n    <string name=\"app_not_available\">Dili magamit ang app</string>\n    <string name=\"pref_category_general\">Heneral</string>\n    <string name=\"pref_category_appearance\">Panagway</string>\n    <string name=\"pref_category_library\">Library</string>\n    <string name=\"pref_category_reader\">Magbabasa</string>\n    <string name=\"pref_category_downloads\">Mga pag-download</string>\n    <string name=\"pref_category_tracking\">Pagsubay</string>\n    <string name=\"pref_category_advanced\">Abante</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"theme_dark\">Sa</string>\n    <string name=\"pref_app_theme\">Tema sa app</string>\n    <string name=\"theme_monet\">Dinamiko</string>\n    <string name=\"theme_greenapple\">Berde nga mansanas</string>\n    <string name=\"theme_midnightdusk\">Sa tungang gabii sa kilumkilom</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_tealturquoise\">Teal ug Turquoise</string>\n    <string name=\"theme_yinyang\">Yin ug Yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_date_format\">Pormat sa petsa</string>\n    <string name=\"lock_with_biometrics\">Kinahanglan nga ablihan</string>\n    <string name=\"lock_when_idle\">I-lock kung walay trabaho</string>\n    <string name=\"hide_notification_content\">Tagoa ang sulod sa pahibalo</string>\n    <string name=\"secure_screen\">Lig-on nga screen</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) Mga Tinubdan</string>\n    <string name=\"relative_time_today\">Karon</string>\n    <string name=\"pref_category_display\">Pagpakita</string>\n    <string name=\"pref_library_columns\">Mga butang kada laray</string>\n    <string name=\"portrait\">Hulagway</string>\n    <string name=\"landscape\">Landscape</string>\n    <string name=\"pref_category_library_update\">Tibuok kalibutan nga update</string>\n    <string name=\"update_never\">Off</string>\n    <string name=\"update_6hour\">Kada 6 ka oras</string>\n    <string name=\"update_12hour\">Matag 12 ka oras</string>\n    <string name=\"update_24hour\">Adlaw-adlaw</string>\n    <string name=\"update_48hour\">Kada 2 ka adlaw</string>\n    <string name=\"update_weekly\">Kada semana</string>\n    <string name=\"charging\">Sa dihang nag-charge</string>\n    <string name=\"restrictions\">Mga pagdili: %s</string>\n    <string name=\"pref_update_only_completely_read\">Uban sa wala pa mabasa nga (mga) kapitulo</string>\n    <string name=\"pref_update_only_started\">Wala pa kana nagsugod</string>\n    <string name=\"pref_library_update_refresh_metadata\">Awtomatikong i-refresh ang metadata</string>\n    <string name=\"default_category_summary\">Pangutana kanunay</string>\n    <string name=\"action_desc\">Nagpaubos</string>\n    <string name=\"action_order_by_upload_date\">Pinaagi sa petsa sa pag-upload</string>\n    <string name=\"action_order_by_chapter_number\">Pinaagi sa numero sa kapitulo</string>\n    <string name=\"action_oldest\">Kinatigulangan</string>\n    <string name=\"action_move_to_top\">Ibalhin sa ibabaw</string>\n    <string name=\"action_move_to_top_all_for_series\">Ibalhin ang serye sa ibabaw</string>\n    <string name=\"action_show_errors\">I-tap aron makita ang mga detalye</string>\n    <string name=\"action_asc\">Pagsaka</string>\n    <string name=\"action_share\">Ipaambit</string>\n    <string name=\"action_open_log\">Bukas nga log</string>\n    <string name=\"action_restore\">Iuli</string>\n    <string name=\"theme_light\">Off</string>\n    <string name=\"pref_category_about\">Mahitungod sa</string>\n    <string name=\"lock_never\">Dili gayud</string>\n    <string name=\"action_webview_forward\">Sa unahan</string>\n    <string name=\"action_start_downloading_now\">Sugdi ang pag-download karon</string>\n    <string name=\"theme_system\">Sunda ang sistema</string>\n    <string name=\"theme_strawberrydaiquiri\">Strawberry Daiquiri</string>\n    <string name=\"pref_manage_notifications\">Pagdumala sa mga pahibalo</string>\n    <string name=\"pref_category_security\">Seguridad</string>\n    <string name=\"pref_show_nsfw_source\">Ipakita sa mga tinubdan ug mga lista sa mga extension</string>\n    <string name=\"pref_dark_theme_pure_black\">Purong itom nga dark mode</string>\n    <string name=\"parental_controls_info\">Dili kini makapugong sa dili opisyal o posibleng sayop nga gi-flag nga mga extension gikan sa pag-surf sa NSFW (18+) nga sulod sulod sa app.</string>\n    <string name=\"lock_always\">Kanunay</string>\n    <string name=\"secure_screen_summary\">Ang luwas nga screen nagtago sa mga sulod sa app sa dihang nagbalhin-balhin og mga app ug nag-block sa mga screenshot</string>\n    <string name=\"pref_library_update_interval\">Awtomatikong mga update</string>\n    <string name=\"pref_library_update_restriction\">Awtomatikong pag-update sa mga pagdili sa device</string>\n    <string name=\"connected_to_wifi\">Sa Wi-Fi lang</string>\n    <string name=\"pref_update_only_non_completed\">Uban sa \\\"Nakumpleto\\\" nga kahimtang</string>\n    <string name=\"default_category\">Default nga kategorya</string>\n    <string name=\"update_72hour\">Kada 3 ka adlaw</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Susiha ang bag-ong hapin ug mga detalye kung mag-update sa librarya</string>\n    <string name=\"include\">Apil ang: %s</string>\n    <string name=\"ext_updates_pending\">Naghulat ang mga update</string>\n    <string name=\"ext_update\">Update</string>\n    <string name=\"ext_update_all\">Update tanan</string>\n    <string name=\"ext_installing\">Pag-instalar</string>\n    <string name=\"ext_installed\">Gi-install</string>\n    <string name=\"ext_trust\">Pagsalig</string>\n    <string name=\"ext_untrusted\">Dili kasaligan</string>\n    <string name=\"ext_uninstall\">I-uninstall</string>\n    <string name=\"untrusted_extension\">Dili kasaligan nga extension</string>\n    <string name=\"obsolete_extension_message\">Kini nga extension dili na magamit.</string>\n    <string name=\"extension_api_error\">Napakyas sa pagkuha sa listahan sa mga extension</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">Ang mga tinubdan gikan niini nga extension mahimong adunay sulod nga NSFW (18+)</string>\n    <string name=\"ext_install_service_notif\">Nag-instalar og extension…</string>\n    <string name=\"ext_installer_pref\">Installer</string>\n    <string name=\"ext_installer_legacy\">Kabilin</string>\n    <string name=\"ext_installer_shizuku_stopped\">Si Shizuku wala modagan</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">I-install ug sugdi ang Shizuku aron gamiton ang Shizuku isip extension installer.</string>\n    <string name=\"pref_fullscreen\">Fullscreen</string>\n    <string name=\"pref_dual_page_split\">Duha ka panid nga bahin</string>\n    <string name=\"pref_dual_page_invert\">Balita ang duha ka panid nga pagbahin sa pagbutang</string>\n    <string name=\"pref_dual_page_invert_summary\">Kung ang pagbutang sa doble nga panid sa panid dili motakdo sa direksyon sa pagbasa</string>\n    <string name=\"pref_double_tap_anim_speed\">Doble nga pag-tap sa katulin sa animation</string>\n    <string name=\"pref_show_page_number\">Ipakita ang numero sa panid</string>\n    <string name=\"pref_show_reading_mode\">Ipakita ang mode sa pagbasa</string>\n    <string name=\"pref_show_reading_mode_summary\">Sa daklit ipakita ang kasamtangan nga mode kung giablihan ang magbabasa</string>\n    <string name=\"pref_crop_borders\">Mga utlanan sa pananom</string>\n    <string name=\"on\">Sa</string>\n    <string name=\"pref_grayscale\">Grayscale</string>\n    <string name=\"pref_color_filter_mode\">Color filter blend mode</string>\n    <string name=\"filter_mode_multiply\">Pagdaghan</string>\n    <string name=\"filter_mode_lighten\">Dodge / Pagpagaan</string>\n    <string name=\"filter_mode_darken\">Pagsunog / Pagngitngit</string>\n    <string name=\"pref_keep_screen_on\">Ipadayon ang screen</string>\n    <string name=\"pref_skip_filtered_chapters\">Laktawan ang nasala nga mga kapitulo</string>\n    <string name=\"pref_reader_navigation\">Nabigasyon</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Ibalik ang mga yawe sa volume</string>\n    <string name=\"tapping_inverted_none\">Wala</string>\n    <string name=\"tapping_inverted_horizontal\">Pahigda</string>\n    <string name=\"tapping_inverted_both\">Ang duha</string>\n    <string name=\"pref_reader_actions\">Mga aksyon</string>\n    <string name=\"pref_create_folder_per_manga\">I-save ang mga panid sa lainlaing mga folder</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Naghimo ug mga folder sumala sa titulo sa manga</string>\n    <string name=\"white_background\">Puti</string>\n    <string name=\"gray_background\">Gray</string>\n    <string name=\"black_background\">Itom</string>\n    <string name=\"automatic_background\">Awtomatiko</string>\n    <string name=\"pref_viewer_type\">Default nga mode sa pagbasa</string>\n    <string name=\"l_nav\">L nga porma</string>\n    <string name=\"kindlish_nav\">Kindle-ish</string>\n    <string name=\"edge_nav\">Edge</string>\n    <string name=\"right_and_left_nav\">Tuo ug Wala</string>\n    <string name=\"disabled_nav\">Nabaldado</string>\n    <string name=\"nav_zone_prev\">Prev</string>\n    <string name=\"pref_show_navigation_mode\">Ipakita ang mga tap zone nga overlay</string>\n    <string name=\"pref_show_navigation_mode_summary\">Sa daklit ipakita kung giablihan ang magbabasa</string>\n    <string name=\"pref_read_with_tapping_inverted\">Balika ang mga tap zone</string>\n    <string name=\"ext_obsolete\">Karaan na</string>\n    <string name=\"exclude\">Dili iapil: %s</string>\n    <string name=\"ext_install\">Pag-instalar</string>\n    <string name=\"ext_downloading\">Nag-download</string>\n    <string name=\"pref_library_update_categories_details\">Ang manga sa wala iapil nga mga kategorya dili ma-update bisan kung naa usab sila sa mga gilakip nga kategorya.</string>\n    <string name=\"none\">Wala</string>\n    <string name=\"ext_pending\">Naghulat</string>\n    <string name=\"ext_app_info\">Impormasyon sa app</string>\n    <string name=\"untrusted_extension_message\">Kini nga extension gipirmahan gamit ang dili kasaligan nga sertipiko ug wala gi-aktibo.\n\\n\n\\nAng usa ka malisyoso nga extension mahimong makabasa sa bisan unsang mga kredensyal sa pag-login nga gitipigan sa Mihon o ipatuman ang arbitraryong code.\n\\n\n\\nPinaagi sa pagsalig niini nga sertipiko gidawat nimo kini nga mga risgo.</string>\n    <string name=\"pref_cutout_short\">Ipakita ang sulod sa ginunting nga lugar</string>\n    <string name=\"pref_page_transitions\">I-animate ang mga transisyon sa panid</string>\n    <string name=\"pref_custom_brightness\">Custom nga kahayag</string>\n    <string name=\"pref_read_with_volume_keys\">Mga yawe sa volume</string>\n    <string name=\"off\">Off</string>\n    <string name=\"pref_custom_color_filter\">Pasadya nga kolor nga filter</string>\n    <string name=\"filter_mode_overlay\">Pagahal-upan</string>\n    <string name=\"pref_skip_read_chapters\">Laktawan ang mga kapitulo nga gimarkahan nga nabasa</string>\n    <string name=\"pref_inverted_colors\">Baliktad</string>\n    <string name=\"filter_mode_screen\">Screen</string>\n    <string name=\"pref_read_with_long_tap\">Ipakita sa taas nga gripo</string>\n    <string name=\"tapping_inverted_vertical\">Bertikal</string>\n    <string name=\"pref_reader_theme\">Kolor sa background</string>\n    <string name=\"nav_zone_next\">Sunod</string>\n    <string name=\"nav_zone_left\">Sa wala</string>\n    <string name=\"nav_zone_right\">Husto</string>\n    <string name=\"webtoon_viewer\">Webtoon</string>\n    <string name=\"left_to_right_viewer\">Wala ngadto sa tuo</string>\n    <string name=\"right_to_left_viewer\">Tuo ngadto sa wala</string>\n    <string name=\"vertical_viewer\">Bertikal</string>\n    <string name=\"pager_viewer\">Paged</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_webtoon_side_padding\">Padding sa kilid</string>\n    <string name=\"pref_highest\">Pinakataas</string>\n    <string name=\"pref_lowest\">Kinaubsan</string>\n    <string name=\"pref_zoom_start\">Pag-zoom sa posisyon sa pagsugod</string>\n    <string name=\"zoom_start_left\">Sa wala</string>\n    <string name=\"zoom_start_right\">Husto</string>\n    <string name=\"zoom_start_center\">Sentro</string>\n    <string name=\"double_tap_anim_speed_0\">Walay animation</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"rotation_type\">Uri sa rotation</string>\n    <string name=\"rotation_free\">Libre</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"pref_always_show_chapter_transition\">Kanunay ipakita ang transisyon sa kapitulo</string>\n    <string name=\"pref_category_reading_mode\">Mode sa pagbasa</string>\n    <string name=\"pref_category_reading\">Pagbasa</string>\n    <string name=\"pref_high\">Taas</string>\n    <string name=\"pref_low\">Ubos</string>\n    <string name=\"pref_category_delete_chapters\">Pagtangtang sa mga kapitulo</string>\n    <string name=\"pref_remove_after_marked_as_read\">Human gimarkahan sa mano-mano ingon nabasa na</string>\n    <string name=\"pref_remove_after_read\">Human sa pagbasa awtomatikong tangtangon</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Tugoti ang pagtangtang sa gimarkahan nga mga kapitulo</string>\n    <string name=\"pref_remove_exclude_categories\">Wala iapil nga mga kategorya</string>\n    <string name=\"disabled\">Nabaldado</string>\n    <string name=\"fifth_to_last\">Ikalima hangtod sa kataposang pagbasa sa kapitulo</string>\n    <string name=\"pref_category_auto_download\">Awtomatikong pag-download</string>\n    <string name=\"pref_download_new_categories_details\">Ang manga sa wala iapil nga mga kategorya dili ma-download bisan kung naa usab sila sa mga gilakip nga kategorya.</string>\n    <string name=\"save_chapter_as_cbz\">I-save ingon CBZ archive</string>\n    <string name=\"tracking_guide\">Giya sa pagsubay</string>\n    <string name=\"network_not_metered\">Lamang sa ummetered network</string>\n    <string name=\"ext_info_language\">Pinulongan sa Extension</string>\n    <string name=\"ext_info_version\">Extension nga Bersyon</string>\n    <string name=\"ext_info_age_rating\">Rating sa Edad sa Extension</string>\n    <string name=\"vertical_plus_viewer\">Padayon nga bertikal</string>\n    <string name=\"scale_type_original_size\">Orihinal nga gidak-on</string>\n    <string name=\"scale_type_fit_screen\">Haom nga screen</string>\n    <string name=\"scale_type_stretch\">Pag-inat</string>\n    <string name=\"scale_type_fit_width\">Haom ang gilapdon</string>\n    <string name=\"scale_type_fit_height\">Haom nga gitas-on</string>\n    <string name=\"rotation_landscape\">Landscape</string>\n    <string name=\"rotation_force_portrait\">Naka-lock nga hulagway</string>\n    <string name=\"double_tap_anim_speed_fast\">Paspas</string>\n    <string name=\"rotation_force_landscape\">Naka-lock nga talan-awon</string>\n    <string name=\"pref_rotation_type\">Default nga tipo sa rotation</string>\n    <string name=\"rotation_portrait\">Hulagway</string>\n    <string name=\"rotation_reverse_portrait\">Baliktad nga hulagway</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"second_to_last\">Ikaduha hangtod sa kataposang pagbasa sa kapitulo</string>\n    <string name=\"action_track\">Track</string>\n    <string name=\"scale_type_smart_fit\">Smart angay</string>\n    <string name=\"zoom_start_automatic\">Awtomatiko</string>\n    <string name=\"pref_hide_threshold\">Pagkasensitibo sa pagtago sa menu sa scroll</string>\n    <string name=\"last_read_chapter\">Katapusan nga nabasa nga kapitulo</string>\n    <string name=\"third_to_last\">Ikatulo hangtod sa kataposang pagbasa sa kapitulo</string>\n    <string name=\"fourth_to_last\">Ika-upat hangtod sa kataposang pagbasa sa kapitulo</string>\n    <string name=\"pref_download_new\">Pag-download sa bag-ong mga kapitulo</string>\n    <string name=\"enhanced_tracking_info\">Mga serbisyo nga naghatag dugang nga mga bahin alang sa piho nga mga gigikanan. Awtomatikong gisubay ang Manga kon idugang sa imong librarya.</string>\n    <string name=\"tracking_info\">Usa ka paagi nga pag-sync aron ma-update ang pag-uswag sa kapitulo sa mga serbisyo sa pagsubay. I-set up ang tracking para sa indibidwal nga manga entries gikan sa ilang tracking button.</string>\n    <string name=\"enhanced_services\">Gipalambo nga mga serbisyo</string>\n    <string name=\"pref_auto_update_manga_sync\">Ang pag-uswag sa pag-update pagkahuman sa pagbasa</string>\n    <string name=\"split_tall_images_summary\">Nagpauswag sa pasundayag sa magbabasa pinaagi sa pagbahin sa taas nga na-download nga mga imahe.</string>\n    <string name=\"services\">Mga serbisyo</string>\n    <string name=\"pref_viewer_nav\">Pag-tap sa mga zone</string>\n    <string name=\"pref_create_backup\">Paghimo og backup</string>\n    <string name=\"pref_create_backup_summ\">Mahimong gamiton aron mapasig-uli ang kasamtangan nga librarya</string>\n    <string name=\"pref_image_scale_type\">Uri sa sukdanan sa hulagway</string>\n    <string name=\"pref_restore_backup\">Ibalik ang backup</string>\n    <string name=\"pref_restore_backup_summ\">Ibalik ang librarya gikan sa backup file</string>\n    <string name=\"backup_created\">Gihimo ang backup</string>\n    <string name=\"pref_backup_interval\">Kadaghanon sa pag-backup</string>\n    <string name=\"invalid_backup_file\">Dili balido nga backup file</string>\n    <string name=\"invalid_backup_file_missing_manga\">Ang backup walay bisan unsang manga.</string>\n    <string name=\"backup_restore_missing_sources\">Nawala nga mga tinubdan:</string>\n    <string name=\"empty_backup_error\">Walay mga entri sa library nga i-back up</string>\n    <string name=\"restore_miui_warning\">Ang pag-backup/pagpasig-uli mahimong dili molihok sa husto kung ang MIUI Optimization gi-disable.</string>\n    <string name=\"restore_in_progress\">Ang pagpasig-uli nagpadayon na</string>\n    <string name=\"restoring_backup_error\">Napakyas ang pag-uli sa backup</string>\n    <string name=\"restoring_backup_canceled\">Gikansela ang pagpasig-uli</string>\n    <string name=\"backup_info\">Ang mga awtomatikong pag-backup girekomendar kaayo. Kinahanglan nimong tipigan ang mga kopya sa ubang mga dapit usab.</string>\n    <string name=\"label_network\">Network</string>\n    <string name=\"pref_clear_cookies\">Tin-aw nga cookies</string>\n    <string name=\"pref_dns_over_https\">DNS sa HTTPS (DoH)</string>\n    <string name=\"requires_app_restart\">Nagkinahanglan nga i-restart ang app aron ma-epekto</string>\n    <string name=\"backup_in_progress\">Ang pag-backup nagpadayon na</string>\n    <string name=\"restore_duration\">%1$02d minuto , %2$02d ikaduha</string>\n    <string name=\"backup_choice\">Unsa ang gusto nimo i-backup?</string>\n    <string name=\"backup_restore_content_full\">Ang datos gikan sa backup file mapasig-uli.\n\\n\n\\nKinahanglan nimo nga i-install ang bisan unsang nawala nga mga extension ug mag-log in sa mga serbisyo sa pagsubay pagkahuman aron magamit kini.</string>\n    <string name=\"restore_completed\">Nakompleto ang pag-uli</string>\n    <string name=\"creating_backup\">Paghimo og backup</string>\n    <string name=\"backup_restore_missing_trackers\">Ang mga tracker wala naka-log in:</string>\n    <string name=\"restoring_backup\">Pag-uli sa backup</string>\n    <string name=\"cookies_cleared\">Gilimpyohan ang mga cookies</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"pref_clear_chapter_cache\">Hawani ang cache sa kapitulo</string>\n    <string name=\"creating_backup_error\">Napakyas ang pag-backup</string>\n    <string name=\"delete_category_confirmation\">Gusto ba nimong papason ang kategoryang \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Pagtangtang sa kategorya</string>\n    <string name=\"internal_error\">Internal nga Sayop: Susiha ang mga crash log para sa dugang nga impormasyon</string>\n    <string name=\"pref_navigate_pan\">Pag-navigate sa pan</string>\n    <string name=\"theme_lavender\">Lavender</string>\n    <string name=\"action_remove_everything\">Kuhaa ang tanan</string>\n    <string name=\"pref_app_language\">Pinulongan sa app</string>\n    <string name=\"used_cache\">Gigamit: %1$s</string>\n    <string name=\"database_clean\">Limpyo ang database</string>\n    <string name=\"pref_refresh_library_covers\">I-refresh ang mga hapin sa librarya</string>\n    <string name=\"pref_dump_crash_logs\">Dump crash logs</string>\n    <string name=\"pref_verbose_logging_summary\">I-print ang verbose logs ngadto sa system log (gipamenos ang performance sa app)</string>\n    <string name=\"about_dont_kill_my_app\">Ang ubang mga tiggama adunay dugang nga mga pagdili sa app nga nagpatay sa mga serbisyo sa background. Kini nga website adunay dugang nga impormasyon kon unsaon kini pag-ayo.</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Hawani ang cache sa kapitulo sa pagsira sa app</string>\n    <string name=\"pref_clear_database\">Klaro nga database</string>\n    <string name=\"clear_database_source_item_count\">%1$d non-library manga sa database</string>\n    <string name=\"pref_dump_crash_logs_summary\">Gitipigan ang mga log sa sayup sa usa ka file aron ipaambit sa mga nag-develop</string>\n    <string name=\"pref_clear_database_summary\">I-delete ang history para sa manga nga wala ma-save sa imong library</string>\n    <string name=\"pref_disable_battery_optimization\">I-disable ang pag-optimize sa baterya</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet UI</string>\n    <string name=\"pref_landscape_zoom\">I-zoom ang hulagway sa talan-awon</string>\n    <string name=\"battery_optimization_disabled\">Ang pag-optimize sa baterya gi-disable na</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Dili maablihan ang mga setting sa device</string>\n    <string name=\"pref_user_agent_string\">Default nga user agent string</string>\n    <string name=\"pref_reset_user_agent_string\">I-reset ang default user agent string</string>\n    <string name=\"cache_deleted\">Gitangtang ang cache. %1$d nga mga file ang natangtang</string>\n    <string name=\"cache_delete_error\">Nahitabo ang sayup samtang nanglimpyo</string>\n    <string name=\"clear_database_completed\">Gitangtang ang mga entry</string>\n    <string name=\"pref_clear_webview_data\">Tin-aw ang datos sa WebView</string>\n    <string name=\"webview_data_deleted\">Ang datos sa WebView gitangtang</string>\n    <string name=\"pref_reset_viewer_flags\">I-reset ang mga setting sa matag-serye nga magbabasa</string>\n    <string name=\"pref_reset_viewer_flags_summary\">I-reset ang mode sa pagbasa ug oryentasyon sa tanan nga serye</string>\n    <string name=\"pref_reset_viewer_flags_success\">Ang tanan nga mga setting sa magbabasa gi-reset</string>\n    <string name=\"pref_reset_viewer_flags_error\">Dili ma-reset ang mga setting sa magbabasa</string>\n    <string name=\"label_background_activity\">Kalihokan sa background</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Nagtabang sa mga update sa librarya sa background ug pag-backup</string>\n    <string name=\"pref_verbose_logging\">Verbose logging</string>\n    <string name=\"whats_new\">Unsay bag-o</string>\n    <string name=\"help_translate\">Tabang sa paghubad</string>\n    <string name=\"privacy_policy\">Polisiya sa pagkapribado</string>\n    <string name=\"downloaded_only_summary\">Pagsala sa tanang manga sa imong library</string>\n    <string name=\"pref_acra_summary\">Nakatabang sa pag-ayo sa bisan unsang mga bug. Walay sensitibo nga datos nga ipadala</string>\n    <string name=\"licenses\">Mga lisensya sa open source</string>\n    <string name=\"label_downloaded_only\">Na-download lang</string>\n    <string name=\"pref_incognito_mode_summary\">Paghunong sa pagbasa sa kasaysayan</string>\n    <string name=\"notification_incognito_text\">I-disable ang incognito mode</string>\n    <string name=\"pref_incognito_mode\">Incognito mode</string>\n    <string name=\"version\">Bersyon</string>\n    <string name=\"check_for_updates\">Susiha ang mga update</string>\n    <string name=\"updated_version\">Mga update sa v%1$s</string>\n    <string name=\"pref_enable_acra\">Ipadala ang mga taho sa pagkahagsa</string>\n    <string name=\"logout_success\">Naka-log out ka na karon</string>\n    <string name=\"password\">Password</string>\n    <string name=\"login\">Login</string>\n    <string name=\"logout_title\">Log out gikan sa %1$s?</string>\n    <string name=\"logout\">Log out</string>\n    <string name=\"login_success\">Naka-log in</string>\n    <string name=\"login_title\">Login sa %1$s</string>\n    <string name=\"email\">Email Address</string>\n    <string name=\"unknown_error\">Wala mailhi nga sayup</string>\n    <string name=\"username\">Username</string>\n    <string name=\"action_display_show_continue_reading_button\">Ipakita ang buton sa pagpadayon sa pagbasa</string>\n    <string name=\"action_search_hint\">Pangitaa…</string>\n    <string name=\"action_open_random_manga\">Abli nga random ang pagsulod</string>\n    <string name=\"label_stats\">Istatistika</string>\n    <string name=\"label_started\">Nagsugod</string>\n    <string name=\"label_downloaded\">Gi-download</string>\n    <string name=\"label_local\">Lokal</string>\n    <string name=\"pref_appearance_summary\">Tema, format sa petsa ug panahon</string>\n    <string name=\"action_not_now\">Dili karon</string>\n    <string name=\"information_webview_required\">Gikinahanlan ang WebView alang sa Mihon</string>\n    <string name=\"information_required_plain\">*gikinahanlan</string>\n    <string name=\"selected\">Napili</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/cs/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Po %1$s minutě</item>\n        <item quantity=\"few\">Po %1$s minutách</item>\n        <item quantity=\"other\">Po %1$s minutách</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s kapitola</item>\n        <item quantity=\"few\">%1$s kapitoly</item>\n        <item quantity=\"other\">%1$s kapitol</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s zbývá</item>\n        <item quantity=\"few\">%1$s zbývají</item>\n        <item quantity=\"other\">%1$s zbývá</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Dokončeno za %1$s s %2$s chybou</item>\n        <item quantity=\"few\">Dokončeno za %1$s s %2$s chybami</item>\n        <item quantity=\"other\">Dokončeno za %1$s s %2$s chybami</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategorie</item>\n        <item quantity=\"few\">%d kategorie</item>\n        <item quantity=\"other\">%d kategorií</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Je dostupná aktualizace rozšíření</item>\n        <item quantity=\"few\">Jsou dostupné %d aktualizace rozšíření</item>\n        <item quantity=\"other\">Je dostupných %d aktualizací rozšíření</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Kapitoly %1$s a 1 další</item>\n        <item quantity=\"few\">Kapitoly %1$s a %2$d další</item>\n        <item quantity=\"other\">Kapitoly %1$s a %2$d dalších</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nová kapitola</item>\n        <item quantity=\"few\">%1$d nové kapitoly</item>\n        <item quantity=\"other\">%1$d nových kapitol</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Pro %d položku</item>\n        <item quantity=\"few\">Pro %d položky</item>\n        <item quantity=\"other\">Pro %d položek</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Přeskočena %d kapitola, buď chybí ve zdroji nebo byla vyfiltrována</item>\n        <item quantity=\"few\">Přeskočeny %d kapitoly, buď chybí ve zdroji nebo byly vyfiltrovány</item>\n        <item quantity=\"other\">Přeskočeno %d kapitol, buď chybí ve zdroji nebo byly vyfiltrovány</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d sledovač</item>\n        <item quantity=\"few\">%d sledovače</item>\n        <item quantity=\"other\">%d sledovačů</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Včera</item>\n        <item quantity=\"few\">Před %1$d dny</item>\n        <item quantity=\"other\">Před %1$d dny</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Další nepřečtená kapitola</item>\n        <item quantity=\"few\">Další %d nepřečtené kapitoly</item>\n        <item quantity=\"other\">Dalších %d nepřečtených kapitol</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Další kapitola</item>\n        <item quantity=\"few\">Další %d kapitoly</item>\n        <item quantity=\"other\">Dalších %d kapitol</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Chybí %1$s kapitola</item>\n        <item quantity=\"few\">Chybí %1$s kapitoly</item>\n        <item quantity=\"other\">Chybí %1$s kapitol</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 den</item>\n        <item quantity=\"few\">%d dny</item>\n        <item quantity=\"other\">%d dní</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repozitář</item>\n        <item quantity=\"few\">%d repozitáře</item>\n        <item quantity=\"other\">%d repozitářů</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Zítra</item>\n        <item quantity=\"few\">Za %1$d dny</item>\n        <item quantity=\"other\">Za %1$d dnů</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 stránka</item>\n        <item quantity=\"few\">%1$s stránky</item>\n        <item quantity=\"other\">%1$s stránek</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrovat %1$d položku?</item>\n        <item quantity=\"few\">Migrovat %1$d položky?</item>\n        <item quantity=\"many\">Migrovat %1$d položek?</item>\n        <item quantity=\"other\">Migrovat %1$d položek?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Zkopírovat %1$d položku?</item>\n        <item quantity=\"few\">Zkopírovat %1$d položky?</item>\n        <item quantity=\"many\">Zkopírovat %1$d položkek?</item>\n        <item quantity=\"other\">Zkopírovat %1$d položkek?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Položka byla přeskočena</item>\n        <item quantity=\"few\">%1$d položky byly přeskočeny</item>\n        <item quantity=\"many\">%1$d položek bylo přeskočeno</item>\n        <item quantity=\"other\">%1$d položek bylo přeskočeno</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/cs/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"categories\">Kategorie</string>\n    <string name=\"manga\">Záznamy v knihovně</string>\n    <string name=\"chapters\">Kapitoly</string>\n    <string name=\"history\">Historie</string>\n    <string name=\"label_settings\">Nastavení</string>\n    <string name=\"label_library\">Knihovna</string>\n    <string name=\"label_recent_manga\">Historie</string>\n    <string name=\"label_backup\">Záloha a obnovení</string>\n    <string name=\"label_migration\">Přesunout</string>\n    <string name=\"label_extensions\">Rozšíření</string>\n    <string name=\"label_extension_info\">Informace o rozšíření</string>\n    <string name=\"action_settings\">Nastavení</string>\n    <string name=\"action_filter\">Filtr</string>\n    <string name=\"action_filter_unread\">Nepřečteno</string>\n    <string name=\"action_filter_empty\">Odstranit filtr</string>\n    <string name=\"action_sort_alpha\">Abecedně</string>\n    <string name=\"action_sort_last_read\">Naposledy čteno</string>\n    <string name=\"action_search\">Vyhledávání</string>\n    <string name=\"action_global_search\">Globální vyhledávání</string>\n    <string name=\"action_select_all\">Vybrat vše</string>\n    <string name=\"action_mark_as_read\">Označit jako přečtené</string>\n    <string name=\"action_mark_as_unread\">Označit jako nepřečtené</string>\n    <string name=\"action_mark_previous_as_read\">Označit předchozí jako přečtené</string>\n    <string name=\"action_download\">Stáhnout</string>\n    <string name=\"action_delete\">Odstranit</string>\n    <string name=\"action_edit\">Upravit</string>\n    <string name=\"action_add\">Přidat</string>\n    <string name=\"action_add_category\">Přidat kategorii</string>\n    <string name=\"action_edit_categories\">Upravit kategorie</string>\n    <string name=\"action_previous_chapter\">Předchozí kapitola</string>\n    <string name=\"action_next_chapter\">Následující kapitola</string>\n    <string name=\"action_remove\">Odstranit</string>\n    <string name=\"action_open_in_browser\">Otevřít v prohlížeči</string>\n    <string name=\"action_display_grid\">Kompaktní mřížka</string>\n    <string name=\"action_display_list\">Seznam</string>\n    <string name=\"action_cancel\">Zrušit</string>\n    <string name=\"action_install\">Instalovat</string>\n    <string name=\"action_share\">Sdílet</string>\n    <string name=\"action_save\">Uložit</string>\n    <string name=\"action_undo\">Zpět</string>\n    <string name=\"action_restore\">Obnovit</string>\n    <string name=\"loading\">Načítání…</string>\n    <string name=\"app_not_available\">Aplikace není k dispozici</string>\n    <string name=\"pref_category_downloads\">Stahování</string>\n    <string name=\"update_6hour\">Každých 6 hodiny</string>\n    <string name=\"update_12hour\">Každých 12 hodiny</string>\n    <string name=\"update_24hour\">Denně</string>\n    <string name=\"update_48hour\">Každé 2 dny</string>\n    <string name=\"update_weekly\">Týdně</string>\n    <string name=\"pref_update_only_non_completed\">Přeskočit položky ve stavu \\\"Dokončeno\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Aktualizovat počet kapitol po přečtení</string>\n    <string name=\"ext_update\">Aktualizovat</string>\n    <string name=\"ext_install\">Instalovat</string>\n    <string name=\"ext_pending\">Čeká se</string>\n    <string name=\"ext_downloading\">Stahování</string>\n    <string name=\"ext_installing\">Instalování</string>\n    <string name=\"ext_installed\">Nainstalováno</string>\n    <string name=\"ext_trust\">Důvěryhodné</string>\n    <string name=\"ext_untrusted\">Nedůvěryhodné</string>\n    <string name=\"ext_uninstall\">Odinstalovat</string>\n    <string name=\"untrusted_extension\">Nedůvěryhodné rozšíření</string>\n    <string name=\"untrusted_extension_message\">Škodlivé rozšíření může přečíst jakékoliv uložené přihlašovací údaje nebo spustit libovolný kód.\n\\n\n\\nDůvěřováním tohoto rozšířeni přijímáte tato rizika.</string>\n    <string name=\"pref_fullscreen\">Celá obrazovka</string>\n    <string name=\"pref_page_transitions\">Animovat přechody stránek</string>\n    <string name=\"pref_show_page_number\">Zobrazit číslo stránky</string>\n    <string name=\"pref_read_with_volume_keys\">Tlačítka hlasitosti</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Prohodit tlačítka hlasitosti</string>\n    <string name=\"pref_reader_theme\">Barva pozadí</string>\n    <string name=\"white_background\">Bílá</string>\n    <string name=\"black_background\">Černá</string>\n    <string name=\"left_to_right_viewer\">Stránkované (zleva doprava)</string>\n    <string name=\"right_to_left_viewer\">Stránkované (zprava doleva)</string>\n    <string name=\"pref_rotation_type\">Výchozí otáčení</string>\n    <string name=\"rotation_free\">Volné</string>\n    <string name=\"rotation_force_portrait\">Zamknuto na výšku</string>\n    <string name=\"rotation_force_landscape\">Zamknuto na šířku</string>\n    <string name=\"color_filter_r_value\">Červená</string>\n    <string name=\"color_filter_g_value\">Zelená</string>\n    <string name=\"color_filter_b_value\">Modrá</string>\n    <string name=\"color_filter_a_value\">Průhlednost</string>\n    <string name=\"pref_remove_after_marked_as_read\">Po ručním označení jako přečtené</string>\n    <string name=\"pref_remove_after_read\">Po přečtení automaticky smazat</string>\n    <string name=\"pref_download_new\">Stahovat nové kapitoly</string>\n    <string name=\"username\">Uživatelské jméno</string>\n    <string name=\"password\">Heslo</string>\n    <string name=\"login\">Přihlásit se</string>\n    <string name=\"login_success\">Přihlášení proběhlo úspěšně</string>\n    <string name=\"unknown_error\">Neznámá chyba</string>\n    <string name=\"no_more_results\">Žádné další výsledky</string>\n    <string name=\"action_global_search_hint\">Globální vyhledávání…</string>\n    <string name=\"ongoing\">Vycházející</string>\n    <string name=\"remove_from_library\">Odstranit z knihovny</string>\n    <string name=\"manga_added_library\">Přidáno do knihovny</string>\n    <string name=\"manga_removed_library\">Odstraněno z knihovny</string>\n    <string name=\"delete_downloads_for_manga\">Smazat stažené kapitoly?</string>\n    <string name=\"source_not_installed\">Zdroj není nainstalován: %1$s</string>\n    <string name=\"display_mode_chapter\">Kapitola %1$s</string>\n    <string name=\"chapter_downloading_progress\">Stahování (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Chyba</string>\n    <string name=\"chapter_paused\">Pozastaveno</string>\n    <string name=\"sort_by_source\">Podle zdroje</string>\n    <string name=\"manga_download\">Stáhnout</string>\n    <string name=\"download_unread\">Stáhnout nepřečtené</string>\n    <string name=\"confirm_delete_chapters\">Opravdu chcete smazat vybrané kapitoly?</string>\n    <string name=\"reading\">Rozečtené</string>\n    <string name=\"completed\">Dokončeno</string>\n    <string name=\"plan_to_read\">Plánuji číst</string>\n    <string name=\"repeating\">Znovu čtu</string>\n    <string name=\"score\">Skóre</string>\n    <string name=\"title\">Název</string>\n    <string name=\"track_type\">Typ</string>\n    <string name=\"dialog_with_checkbox_reset\">Obnovit všechny kapitoly pro tento záznam</string>\n    <string name=\"snack_add_to_library\">Přidat do knihovny?</string>\n    <string name=\"picture_saved\">Obrázek uložen</string>\n    <string name=\"custom_filter\">Vlastní filtr</string>\n    <string name=\"chapter_progress\">Stránka: %1$d</string>\n    <string name=\"no_next_chapter\">Další kapitola nenalezena</string>\n    <string name=\"decode_image_error\">Obrázek se nepodařilo načíst</string>\n    <string name=\"transition_finished\">Dokončeno:</string>\n    <string name=\"transition_current\">Aktuální:</string>\n    <string name=\"transition_next\">Následující:</string>\n    <string name=\"transition_previous\">Předchozí:</string>\n    <string name=\"transition_no_next\">Žádná další kapitola</string>\n    <string name=\"transition_no_previous\">Žádná předchozí kapitola</string>\n    <string name=\"transition_pages_loading\">Načítání stránek…</string>\n    <string name=\"migrate\">Přesunout</string>\n    <string name=\"copy\">Kopírovat</string>\n    <string name=\"download_queue_error\">Došlo k chybě při stahování kapitol. Zkuste to znovu v sekci stahování</string>\n    <string name=\"notification_new_chapters\">Nalezeny nové kapitoly</string>\n    <string name=\"file_select_backup\">Vybrat záložní soubor</string>\n    <string name=\"update_check_confirm\">Stáhnout</string>\n    <string name=\"update_check_no_new_updates\">Žádné nové aktualizace</string>\n    <string name=\"update_check_notification_download_complete\">Klepnutím nainstalujte aktualizaci</string>\n    <string name=\"update_check_notification_download_error\">Chyba při stahování</string>\n    <string name=\"update_check_notification_update_available\">Dostupná aktualizace!</string>\n    <string name=\"information_no_recent\">Žádné nedávné aktualizace</string>\n    <string name=\"information_no_recent_manga\">Nic nedávno čtené</string>\n    <string name=\"download_notifier_title_error\">Chyba</string>\n    <string name=\"download_notifier_unknown_error\">Při stahování kapitoly došlo k neznámé chybě</string>\n    <string name=\"download_notifier_text_only_wifi\">WiFi připojení není dostupné</string>\n    <string name=\"download_notifier_no_network\">Síťové připojení není dostupné</string>\n    <string name=\"download_notifier_download_paused\">Stahování pozastaveno</string>\n    <string name=\"label_download_queue\">Stahovací fronta</string>\n    <string name=\"name\">Název</string>\n    <string name=\"track\">Sledování</string>\n    <string name=\"label_recent_updates\">Aktualizace</string>\n    <string name=\"action_filter_bookmarked\">Založeno</string>\n    <string name=\"action_sort_total\">Celkem kapitol</string>\n    <string name=\"action_bookmark\">Založit kapitolu</string>\n    <string name=\"action_remove_bookmark\">Odstranit záložku</string>\n    <string name=\"action_update_library\">Aktualizovat knihovnu</string>\n    <string name=\"action_rename_category\">Přejmenovat kategorii</string>\n    <string name=\"action_move_category\">Vybrat kategorie</string>\n    <string name=\"action_pause\">Pauza</string>\n    <string name=\"action_retry\">Opakovat</string>\n    <string name=\"action_resume\">Pokračovat</string>\n    <string name=\"action_display_mode\">Režim zobrazení</string>\n    <string name=\"action_display\">Zobrazení</string>\n    <string name=\"action_display_download_badge\">Stažené kapitoly</string>\n    <string name=\"action_sort\">Seřadit</string>\n    <string name=\"action_reset\">Resetovat</string>\n    <string name=\"action_open_log\">Otevřít log</string>\n    <string name=\"pref_category_general\">Obecné</string>\n    <string name=\"pref_category_reader\">Čtečka</string>\n    <string name=\"pref_category_tracking\">Sledování</string>\n    <string name=\"pref_category_advanced\">Pokročilé</string>\n    <string name=\"pref_category_about\">O aplikaci</string>\n    <string name=\"pref_library_columns\">Položek na řádek</string>\n    <string name=\"portrait\">Na výšku</string>\n    <string name=\"landscape\">Na šířku</string>\n    <string name=\"pref_library_update_interval\">Automatické aktualizace</string>\n    <string name=\"update_never\">Nikdy</string>\n    <string name=\"all\">Vše</string>\n    <string name=\"charging\">Při nabíjení</string>\n    <string name=\"default_category\">Výchozí kategorie</string>\n    <string name=\"default_category_summary\">Vždy se zeptat</string>\n    <string name=\"pref_double_tap_anim_speed\">Rychlost animace při dvojkliku</string>\n    <string name=\"pref_crop_borders\">Oříznout okraje</string>\n    <string name=\"pref_custom_brightness\">Vlastní jas</string>\n    <string name=\"pref_custom_color_filter\">Vlastní barevný filtr</string>\n    <string name=\"pref_viewer_type\">Výchozí režim čtení</string>\n    <string name=\"vertical_viewer\">Stránkovaný (svisle)</string>\n    <string name=\"webtoon_viewer\">Dlouhý pruh</string>\n    <string name=\"pref_image_scale_type\">Typ úpravy velikosti</string>\n    <string name=\"scale_type_fit_screen\">Přizpůsobit obrazovce</string>\n    <string name=\"scale_type_stretch\">Natáhnout</string>\n    <string name=\"scale_type_fit_width\">Přizpůsobit šířku</string>\n    <string name=\"scale_type_fit_height\">Přizpůsobit šířku</string>\n    <string name=\"scale_type_original_size\">Původní velikost</string>\n    <string name=\"scale_type_smart_fit\">Chytré přizpůsobení</string>\n    <string name=\"pref_zoom_start\">Výchozí poloha zvětšení</string>\n    <string name=\"zoom_start_automatic\">Automaticky</string>\n    <string name=\"zoom_start_left\">Vlevo</string>\n    <string name=\"zoom_start_right\">Vpravo</string>\n    <string name=\"zoom_start_center\">Na střed</string>\n    <string name=\"double_tap_anim_speed_0\">Bez animace</string>\n    <string name=\"double_tap_anim_speed_normal\">Normální</string>\n    <string name=\"double_tap_anim_speed_fast\">Rychle</string>\n    <string name=\"services\">Sledovače</string>\n    <string name=\"pref_create_backup\">Vytvořit zálohu</string>\n    <string name=\"pref_restore_backup\">Obnovit zálohu</string>\n    <string name=\"pref_backup_interval\">Frekvence automatických záloh</string>\n    <string name=\"backup_created\">Záloha vytvořena</string>\n    <string name=\"restore_completed\">Obnova dokončena</string>\n    <string name=\"backup_choice\">Co chcete zálohovat?</string>\n    <string name=\"restoring_backup\">Obnovování zálohy</string>\n    <string name=\"creating_backup\">Vytváření zálohy</string>\n    <string name=\"pref_clear_chapter_cache\">Vymazat mezipaměť kapitol</string>\n    <string name=\"used_cache\">Využito: %1$s</string>\n    <string name=\"cache_deleted\">Mezipaměť smazána, %1$d souborů odstraněno</string>\n    <string name=\"cache_delete_error\">Během vymazávání došlo k chybě</string>\n    <string name=\"pref_clear_cookies\">Vymazat cookies</string>\n    <string name=\"cookies_cleared\">Cookies vymazány</string>\n    <string name=\"pref_clear_database\">Vyčistit databázi</string>\n    <string name=\"pref_clear_database_summary\">Smazat historii položek, které nejsou uloženy ve vaší knihovně</string>\n    <string name=\"clear_database_completed\">Položky byly smazány</string>\n    <string name=\"version\">Verze</string>\n    <string name=\"pref_enable_acra\">Odesílat hlášení o pádu</string>\n    <string name=\"pref_acra_summary\">Pomáhá opravit chyby. Nebudou odeslány žádné citlivé údaje</string>\n    <string name=\"updating_category\">Aktualizuji kategorie</string>\n    <string name=\"local_source\">Lokální zdroj</string>\n    <string name=\"other_source\">Ostatní</string>\n    <string name=\"latest\">Nejnovější</string>\n    <string name=\"browse\">Procházet</string>\n    <string name=\"unknown\">Neznámý</string>\n    <string name=\"licensed\">Licencovaný</string>\n    <string name=\"copied_to_clipboard\">Zkopírováno do schránky:\n\\n%1$s</string>\n    <string name=\"sort_by_number\">Podle čísla kapitoly</string>\n    <string name=\"manga_tracking_tab\">Sledování</string>\n    <string name=\"dropped\">Již nečtu</string>\n    <string name=\"on_hold\">Pozastaveno</string>\n    <string name=\"status\">Stav</string>\n    <string name=\"track_status\">Stav</string>\n    <string name=\"snack_categories_deleted\">Kategorie smazány</string>\n    <string name=\"set_as_cover\">Nastavit jako obal</string>\n    <string name=\"cover_updated\">Obal aktualizován</string>\n    <string name=\"action_edit_cover\">Upravit přebal</string>\n    <string name=\"pref_library_update_restriction\">Omezení zařízení pro automatické aktualizace</string>\n    <string name=\"pref_keep_screen_on\">Udržovat obrazovku zapnutou</string>\n    <string name=\"pref_reader_navigation\">Navigování</string>\n    <string name=\"pager_viewer\">Stránkovač</string>\n    <string name=\"disabled\">Zakázáno</string>\n    <string name=\"last_read_chapter\">Poslední přečtená kapitola</string>\n    <string name=\"second_to_last\">Předposlední kapitola</string>\n    <string name=\"third_to_last\">Třetí předposlední přečtená kapitola</string>\n    <string name=\"fourth_to_last\">Čtvrtá předposlední přečtená kapitola</string>\n    <string name=\"fifth_to_last\">Pátá předposlední přečtená kapitola</string>\n    <string name=\"pref_create_backup_summ\">Lze použít k obnovení aktuální knihovny</string>\n    <string name=\"pref_restore_backup_summ\">Obnovit knihovnu ze záložního souboru</string>\n    <string name=\"login_title\">Přihlásit se do %1$s</string>\n    <string name=\"show_title\">Název zdroje</string>\n    <string name=\"show_chapter_number\">Číslo kapitoly</string>\n    <string name=\"error_category_exists\">Kategorie s tímto jménem již existuje!</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Toto odstraní datum přečtení této kapitoly. Jste si jistý?</string>\n    <string name=\"confirm_set_image_as_cover\">Chcete tento obrázek nastavit jako obal?</string>\n    <string name=\"transition_pages_error\">Chyba při načítání stránek: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Vyberte data, která chcete zahrnout</string>\n    <string name=\"notification_cover_update_failed\">Chyba při aktualizaci obalu</string>\n    <string name=\"notification_first_add_to_library\">Přidejte si prosím položku do knihovny před tím, než toto uděláte</string>\n    <string name=\"file_select_cover\">Vybrat obrázek obalu</string>\n    <string name=\"update_check_notification_download_in_progress\">Probíhá stahování…</string>\n    <string name=\"information_no_downloads\">Žádné stahování</string>\n    <string name=\"information_empty_library\">Vaše knihovna je prázdná</string>\n    <string name=\"information_empty_category\">Nemáte žádné kategorie. Klikněte na tlačítko plus a vytvořte nějakou pro zorganizování vaší knihovny.</string>\n    <string name=\"download_notifier_downloader_title\">Stahovač</string>\n    <string name=\"channel_common\">Běžný</string>\n    <string name=\"label_help\">Nápověda</string>\n    <string name=\"action_open_in_web_view\">Otevřít ve WebView</string>\n    <string name=\"pref_read_with_long_tap\">Zobrazit akce dlouhým stisknutím</string>\n    <string name=\"pref_skip_read_chapters\">Přeskakovat přečtené kapitoly</string>\n    <string name=\"pref_color_filter_mode\">Režim mísení filtru barev</string>\n    <string name=\"filter_mode_overlay\">Překrytí</string>\n    <string name=\"filter_mode_multiply\">Násobení</string>\n    <string name=\"filter_mode_screen\">Obrazovka</string>\n    <string name=\"filter_mode_lighten\">Zesvětlit</string>\n    <string name=\"filter_mode_darken\">Ztmavit</string>\n    <string name=\"no_results_found\">Nenalezeny žádné výsledky</string>\n    <string name=\"migration_selection_prompt\">Vyberte zdroj, ze kterého chcete přesouvat</string>\n    <string name=\"action_webview_back\">Zpět</string>\n    <string name=\"action_webview_forward\">Vpřed</string>\n    <string name=\"action_webview_refresh\">Obnovit</string>\n    <string name=\"pref_category_library\">Knihovna</string>\n    <string name=\"ext_obsolete\">Zastaralý</string>\n    <string name=\"obsolete_extension_message\">Toto rozšíření již není k dispozici. Nemusí fungovat správně a může způsobit problémy s aplikací. Doporučujeme jej odinstalovat.</string>\n    <string name=\"logout\">Odhlásit se</string>\n    <string name=\"pref_date_format\">Formát data</string>\n    <string name=\"pref_category_library_update\">Globální aktualizace</string>\n    <string name=\"logout_title\">Odhlásit z %1$s?</string>\n    <string name=\"logout_success\">Nyní jste odhlášený</string>\n    <string name=\"paused\">Pozastaveno</string>\n    <string name=\"label_more\">Více</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"label_sources\">Zdroje</string>\n    <string name=\"spen_previous_page\">Předchozí stránka</string>\n    <string name=\"spen_next_page\">Následující stránka</string>\n    <string name=\"hide_notification_content\">Skrýt obsah oznámení</string>\n    <string name=\"lock_never\">Nikdy</string>\n    <string name=\"lock_always\">Vždy</string>\n    <string name=\"lock_when_idle\">Uzamknout při nečinnosti</string>\n    <string name=\"pref_category_security\">Bezpečnost a soukromí</string>\n    <string name=\"pref_manage_notifications\">Spravovat oznámení</string>\n    <string name=\"action_oldest\">Nejstarší</string>\n    <string name=\"action_newest\">Nejnovější</string>\n    <string name=\"action_view_chapters\">Zobrazit kapitoly</string>\n    <string name=\"action_sort_latest_chapter\">Poslední kapitola</string>\n    <string name=\"add_tracking\">Přidat sledování</string>\n    <string name=\"no_chapters_error\">Nebyly nalezeny žádné kapitoly</string>\n    <string name=\"set_chapter_settings_as_default\">Nastavit jako výchozí</string>\n    <string name=\"confirm_set_chapter_settings\">Jsi si jistý, že chceš tato nastavení uložit jako výchozí?</string>\n    <string name=\"chapter_settings\">Nastavení kapitoly</string>\n    <string name=\"sort_by_upload_date\">Podle data nahrání</string>\n    <string name=\"manga_info_collapse\">Méně</string>\n    <string name=\"manga_info_expand\">Více</string>\n    <string name=\"in_library\">V knihovně</string>\n    <string name=\"add_to_library\">Přidat do knihovny</string>\n    <string name=\"unknown_status\">Neznámý stav</string>\n    <string name=\"unknown_author\">Neznámý autor</string>\n    <string name=\"no_pinned_sources\">Nemáš žádné připnuté zdroje</string>\n    <string name=\"local_source_help_guide\">Návod pro lokální zdroj</string>\n    <string name=\"action_global_search_query\">Hledat \\\"%1$s\\\" globálně</string>\n    <string name=\"pinned_sources\">Připnuté</string>\n    <string name=\"last_used_source\">Naposledy použitý</string>\n    <string name=\"tabs_header\">Karty</string>\n    <string name=\"downloaded_chapters\">Stažené kapitoly</string>\n    <string name=\"manga_from_library\">Z knihovny</string>\n    <string name=\"email\">Emailová adresa</string>\n    <string name=\"pref_incognito_mode_summary\">Pozastaví historii čtení</string>\n    <string name=\"pref_incognito_mode\">Anonymní režim</string>\n    <string name=\"label_downloaded_only\">Pouze staženo</string>\n    <string name=\"updated_version\">Aktualizováno na verzi v%1$s</string>\n    <string name=\"check_for_updates\">Zkontrolovat aktualizace</string>\n    <string name=\"licenses\">Open Source licence</string>\n    <string name=\"whats_new\">Co je nového</string>\n    <string name=\"website\">Webová stránka</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Nelze otevřít nastavení zařízení</string>\n    <string name=\"battery_optimization_disabled\">Optimalizace je již vypnuta</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Pomáhá s aktualizacemi knihovny a záloh na pozadí</string>\n    <string name=\"pref_disable_battery_optimization\">Vypnout optimalizaci baterie</string>\n    <string name=\"pref_dump_crash_logs_summary\">Uloží chybové protokoly do souboru pro sdílení s vývojáři</string>\n    <string name=\"pref_dump_crash_logs\">Sdílet protokoly o selhání</string>\n    <string name=\"pref_refresh_library_covers\">Obnovit přebaly v knihovně</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"requires_app_restart\">Pro projevení je nutný restart aplikace</string>\n    <string name=\"pref_dns_over_https\">DNS přes HTTPS (DoH)</string>\n    <string name=\"label_network\">Síť</string>\n    <string name=\"restoring_backup_canceled\">Obnova zrušena</string>\n    <string name=\"restoring_backup_error\">Obnova ze zálohy selhala</string>\n    <string name=\"restore_in_progress\">Obnovení již probíhá</string>\n    <string name=\"creating_backup_error\">Zálohování selhalo</string>\n    <string name=\"backup_in_progress\">Zálohování již probíhá</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d s</string>\n    <string name=\"backup_restore_content_full\">Budeš poté muset doinstalovat jakékoliv chybějící rozšíření a přihlásit se do sledovacích služeb pro jejich použití.</string>\n    <string name=\"backup_restore_missing_trackers\">Sledovače, ve kterých nejsi přihlášený/á:</string>\n    <string name=\"backup_restore_missing_sources\">Chybějící zdroje:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Záloha neobsahuje žádné položky knihovny.</string>\n    <string name=\"invalid_backup_file\">Neplatný soubor se zálohou:</string>\n    <string name=\"tracking_info\">Jednosměrná synchronizace pro aktualizaci počtu přečtených kapitol v externích sledovacích službách. Nastavení sledování pro každou položku je možné z jejich tlačítka sledování.</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Povolení mazání kapitol se záložkami</string>\n    <string name=\"pref_category_delete_chapters\">Smazat kapitoly</string>\n    <string name=\"pref_category_reading_mode\">Režim čtení</string>\n    <string name=\"pref_viewer_nav\">Oblasti dotyku</string>\n    <string name=\"nav_zone_next\">Další</string>\n    <string name=\"right_and_left_nav\">Vpravo a Vlevo</string>\n    <string name=\"l_nav\">Ve tvaru písmene L</string>\n    <string name=\"gray_background\">Šedá</string>\n    <string name=\"tapping_inverted_both\">Obě</string>\n    <string name=\"tapping_inverted_vertical\">Vertikální</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontální</string>\n    <string name=\"tapping_inverted_none\">Žádné</string>\n    <string name=\"ext_nsfw_warning\">Zdroje z tohoto rozšíření mohou obsahovat NSFW (18+) obsah</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Kontrolovat dostupnost nových přebalů a detailů při aktualizaci knihovny</string>\n    <string name=\"pref_library_update_refresh_metadata\">Automaticky obnovovat metadata</string>\n    <string name=\"parental_controls_info\">Toto nastavení nemůže zamezit neoficiálním nebo špatně označeným rozšířením v zobrazování NSFW (18+) obsahu v aplikaci.</string>\n    <string name=\"pref_show_nsfw_source\">Zobrazovat v seznamu zdrojů a rozšíření</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) zdroje</string>\n    <string name=\"secure_screen_summary\">Secure screen skryje obsah aplikace při přepínání aplikací a blokuje tvorbu snímků obrazovky</string>\n    <string name=\"secure_screen\">Chráněná obrazovka</string>\n    <string name=\"lock_with_biometrics\">Vyžadovat odemknutí</string>\n    <string name=\"theme_dark\">Tmavý</string>\n    <string name=\"theme_light\">Světlý</string>\n    <string name=\"pref_category_theme\">Vzhled</string>\n    <string name=\"action_move_to_top\">Přesunout nahoru</string>\n    <string name=\"action_desc\">Sestupně</string>\n    <string name=\"action_asc\">Vzestupně</string>\n    <string name=\"action_order_by_chapter_number\">Podle čísel kapitol</string>\n    <string name=\"action_order_by_upload_date\">Podle data nahrání</string>\n    <string name=\"action_unpin\">Odepnout</string>\n    <string name=\"action_pin\">Připnout</string>\n    <string name=\"action_disable\">Zakázat</string>\n    <string name=\"action_display_show_number_of_items\">Zobrazovat počet položek</string>\n    <string name=\"action_start\">Začít</string>\n    <string name=\"channel_ext_updates\">Aktualizace rozšíření</string>\n    <string name=\"channel_new_chapters\">Aktualizace kapitol</string>\n    <string name=\"channel_errors\">Chyby</string>\n    <string name=\"channel_complete\">Dokončeno</string>\n    <string name=\"channel_progress\">Postup</string>\n    <string name=\"chapter_settings_updated\">Výchozí nastavení kapitol aktualizováno</string>\n    <string name=\"information_webview_outdated\">Prosím aktualizujte aplikaci WebView pro lepší kompatibilitu</string>\n    <string name=\"information_webview_required\">Je nutné mít nainstalovanou aplikaci WebView pro správné fungování aplikace</string>\n    <string name=\"information_cloudflare_bypass_failure\">Nastala chyba při obcházení služby Cloudflare</string>\n    <string name=\"notification_chapters_multiple\">Kapitoly %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Kapitola %1$s a %2$d dalších</string>\n    <string name=\"notification_chapters_single\">Kapitola %1$s</string>\n    <string name=\"download_insufficient_space\">Nelze stáhnout kapitoly kvůli nedostatku místa</string>\n    <string name=\"migration_help_guide\">Návod k přesunu zdrojů</string>\n    <string name=\"clear_history_confirmation\">Jste si jistý/á? Všechna historie bude navždy ztracena.</string>\n    <string name=\"pref_clear_history\">Vymazat historii</string>\n    <string name=\"clear_history_completed\">Historie vymazána</string>\n    <string name=\"recent_manga_time\">Kap. %1$s - %2$s</string>\n    <string name=\"updating_library\">Aktualizuji knihovnu</string>\n    <string name=\"loader_not_implemented_error\">Zdroj nenalezen</string>\n    <string name=\"page_list_empty_error\">Žádné stránky nenalezeny</string>\n    <string name=\"myanimelist_relogin\">Prosím přihlašte se do MAL znovu</string>\n    <string name=\"track_finished_reading_date\">Datum dokončení čtení</string>\n    <string name=\"track_started_reading_date\">Datum zahájení čtení</string>\n    <string name=\"pref_always_show_chapter_transition\">Vždy zobrazovat přechod mezi kapitolami</string>\n    <string name=\"kindlish_nav\">Podobné Kindlu</string>\n    <string name=\"action_move_to_bottom\">Přesunout dolů</string>\n    <string name=\"action_cancel_all\">Zrušit vše</string>\n    <string name=\"action_display_comfortable_grid\">Pohodlná mřížka</string>\n    <string name=\"action_migrate\">Přesunout</string>\n    <string name=\"action_disable_all\">Zakázat vše</string>\n    <string name=\"action_enable_all\">Povolit vše</string>\n    <string name=\"action_search_settings\">Nastavení vyhledávání</string>\n    <string name=\"action_sort_date_added\">Datum přidání</string>\n    <string name=\"action_filter_tracked\">Sledováno</string>\n    <string name=\"viewer\">Režim čtení</string>\n    <string name=\"pref_show_reading_mode\">Ukazovat režim čtení</string>\n    <string name=\"pref_category_for_this_series\">Pro tuto sérii</string>\n    <string name=\"share_page_info\">%1$s: %2$s, strana %3$d</string>\n    <string name=\"also_set_chapter_settings_for_library\">Také nastavit pro všechny položky v mé knihovně</string>\n    <string name=\"pref_category_reading\">Čtení</string>\n    <string name=\"pref_show_reading_mode_summary\">Při otevření čtečky krátce zobrazí aktuální režim</string>\n    <string name=\"ext_updates_pending\">Čekajících aktualizací</string>\n    <string name=\"file_picker_error\">Nebyla nalezena žádná aplikace pro výběr souborů</string>\n    <string name=\"downloaded_only_summary\">Filtruje všechnu položky ve vaší knihovně</string>\n    <string name=\"pref_download_new_categories_details\">Položky ve vynechaných kategoriích nebudou staženy, i kdyby byly také v zahrnutých kategoriích.</string>\n    <string name=\"pref_category_auto_download\">Automatické stahování</string>\n    <string name=\"pref_webtoon_side_padding\">Boční odsazení</string>\n    <string name=\"pref_skip_filtered_chapters\">Přeskakovat filtrované kapitoly</string>\n    <string name=\"pref_cutout_short\">Zobrazovat obsah v oblasti výřezu displeje</string>\n    <string name=\"pref_dual_page_invert_summary\">Pokud umístění rozdělených širokých stránek neodpovídá směru čtení</string>\n    <string name=\"pref_dual_page_invert\">Invertovat umístění rozdělené stránky</string>\n    <string name=\"pref_show_navigation_mode\">Zobrazit překrytí oblastí dotyku</string>\n    <string name=\"exclude\">Vynechat: %s</string>\n    <string name=\"include\">Zahrnout: %s</string>\n    <string name=\"none\">Žádné</string>\n    <string name=\"pref_library_update_categories_details\">Položky ve vynechaných kategoriích nebudou aktualizovány, i kdyby byly také v zahrnutých kategoriích.</string>\n    <string name=\"pref_category_display\">Zobrazení</string>\n    <string name=\"action_display_show_tabs\">Zobrazovat karty kategorií</string>\n    <string name=\"update_check_eol\">Tato verze systému Android již není podporována</string>\n    <string name=\"clipboard_copy_error\">Kopírování do schránky se nezdařilo</string>\n    <string name=\"vertical_plus_viewer\">Dlouhý pruh s mezerami</string>\n    <string name=\"edge_nav\">Okraj</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invertovat oblasti dotyku</string>\n    <string name=\"pref_dual_page_split\">Rozdělit široké stránky</string>\n    <string name=\"pref_show_navigation_mode_summary\">Krátce zobrazit, když je čtečka otevřena</string>\n    <string name=\"theme_system\">Systém</string>\n    <string name=\"action_show_errors\">Klepněte pro zobrazení podrobností</string>\n    <string name=\"action_sort_chapter_fetch_date\">Datum načtení kapitoly</string>\n    <string name=\"rotation_landscape\">Na šířku</string>\n    <string name=\"rotation_portrait\">Na výšku</string>\n    <string name=\"rotation_type\">Otáčení</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Vytváří složky podle názvu položky</string>\n    <string name=\"pref_create_folder_per_manga\">Uložit stránky do samostatných složek</string>\n    <string name=\"pref_reader_actions\">Akce</string>\n    <string name=\"nav_zone_right\">Vpravo</string>\n    <string name=\"nav_zone_left\">Vlevo</string>\n    <string name=\"nav_zone_prev\">Předchozí</string>\n    <string name=\"notification_incognito_text\">Zakázat anonymní režim</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"pref_grayscale\">Odstíny šedé</string>\n    <string name=\"cancel_all_for_series\">Zrušit vše pro tuto sérii</string>\n    <string name=\"error_no_match\">Žádná shoda nenalezena</string>\n    <string name=\"source_unsupported\">Zdroj není podporován</string>\n    <string name=\"unread\">Nepřečteno</string>\n    <string name=\"date\">Datum</string>\n    <string name=\"local_filter_order_by\">Seřadit podle</string>\n    <string name=\"local_invalid_format\">Neplatný formát kapitoly</string>\n    <string name=\"chapter_not_found\">Kapitola nenalezena</string>\n    <string name=\"restrictions\">Omezení: %s</string>\n    <string name=\"action_display_local_badge\">Lokální zdroj</string>\n    <string name=\"error_sharing_cover\">Při sdílení přebalu došlo k chybě</string>\n    <string name=\"error_saving_cover\">Při ukládání přebalu došlo k chybě</string>\n    <string name=\"cover_saved\">Přebal uložen</string>\n    <string name=\"manga_cover\">Přebal</string>\n    <string name=\"off\">Vypnuto</string>\n    <string name=\"on\">Zapnuto</string>\n    <string name=\"categorized_display_settings\">Nastavení řazení pro jednotlivé kategorie</string>\n    <string name=\"information_empty_category_dialog\">Nemáte žádné kategorie.</string>\n    <string name=\"action_start_downloading_now\">Začít stahovat nyní</string>\n    <string name=\"about_dont_kill_my_app\">Někteří výrobci používají další omezení aplikací, která vypíná služby na pozadí. Na této webové stránce najdete další informace o tom, jak to opravit.</string>\n    <string name=\"restore_miui_warning\">Pokud je MIUI optimalizace vypnutá, zálohování/obnovování nemusí fungovat správně.</string>\n    <string name=\"enhanced_tracking_info\">Poskytují rozšířené funkce pro konkrétní zdroje. Záznamy jsou po přidání do knihovny automaticky sledovány.</string>\n    <string name=\"enhanced_services\">Vylepšené sledovače</string>\n    <string name=\"tracking_guide\">Návod ke sledování</string>\n    <string name=\"pref_dark_theme_pure_black\">Čistě černý tmavý režim</string>\n    <string name=\"theme_yotsuba\">Jotsuba</string>\n    <string name=\"theme_yinyang\">Jin a Jang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Jahodové Daiquiri</string>\n    <string name=\"theme_midnightdusk\">Půlnoční Soumrak</string>\n    <string name=\"theme_greenapple\">Zelené Jablko</string>\n    <string name=\"theme_monet\">Dynamické</string>\n    <string name=\"pref_app_theme\">Motiv aplikace</string>\n    <string name=\"label_background_activity\">Činnost na pozadí</string>\n    <string name=\"pref_hide_threshold\">Citlivost pro skrytí menu při posouvání</string>\n    <string name=\"pref_lowest\">Nejnižší</string>\n    <string name=\"pref_low\">Nízké</string>\n    <string name=\"pref_high\">Vysoké</string>\n    <string name=\"pref_highest\">Nejvyšší</string>\n    <string name=\"getting_started_guide\">Příručka Začínáme</string>\n    <string name=\"pref_tablet_ui_mode\">Uživatelské rozhraní tabletu</string>\n    <string name=\"action_track\">Sledovat</string>\n    <string name=\"relative_time_today\">Dnes</string>\n    <string name=\"theme_tealturquoise\">Modrozelená a Tyrkysová</string>\n    <string name=\"pref_category_appearance\">Vzhled</string>\n    <string name=\"confirm_lock_change\">Potvrďte změnu ověřením</string>\n    <string name=\"label_default\">Výchozí</string>\n    <string name=\"help_translate\">Pomozte s překladem</string>\n    <string name=\"pref_remove_exclude_categories\">Vyloučené kategorie</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Nainstalujte a spusťte Shizuku, abyste jej mohli používat jako instalátor rozšíření.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku neběží</string>\n    <string name=\"ext_installer_legacy\">Původní</string>\n    <string name=\"ext_installer_pref\">Instalátor</string>\n    <string name=\"ext_install_service_notif\">Instaluji rozšíření…</string>\n    <string name=\"ext_app_info\">Info o Aplikaci</string>\n    <string name=\"pref_inverted_colors\">Invertované</string>\n    <string name=\"label_warning\">Varování</string>\n    <string name=\"backup_info\">Kopie záloh byste také měli uchovat na více místech. Zálohy mohou obsahovat citlivé informace, včetně jakýchkoliv uložených hesel; při sdílení buďte opatrní.</string>\n    <string name=\"action_sort_count\">Celkem položek</string>\n    <string name=\"action_select_inverse\">Vybrat obráceně</string>\n    <string name=\"action_display_language_badge\">Jazyk</string>\n    <string name=\"update_72hour\">Každé 3 dny</string>\n    <string name=\"connected_to_wifi\">Jen na Wi-Fi</string>\n    <string name=\"pref_verbose_logging\">Podrobné protokolování</string>\n    <string name=\"download_queue_size_warning\">Varování: hromadné stahování může vést k tomu, že zdroje zpomalí a/nebo zablokují %s. Klepnutím se dozvíte více.</string>\n    <string name=\"ext_update_all\">Aktualizovat vše</string>\n    <string name=\"pref_verbose_logging_summary\">Vypisovat podrobné informace do systémového protokolu (sníží výkon aplikace)</string>\n    <string name=\"channel_app_updates\">Aktualizace aplikace</string>\n    <string name=\"notification_size_warning\">Varování: velké aktualizace poškozují zdroje a můžou vést k pomalejším aktualizacím a zvýšenému využití baterie. Klepnutím se dozvíte více.</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Vymazat mezipaměť kapitol při spuštění aplikace</string>\n    <string name=\"extension_api_error\">Chyba v získání seznamu rozšíření</string>\n    <string name=\"privacy_policy\">Zásady ochrany osobních údajů</string>\n    <string name=\"clear_database_source_item_count\">%1$d položek v databázi co nejsou v knihovně</string>\n    <string name=\"pref_update_only_completely_read\">Přeskočit položky s nepřečtenými kapitolami</string>\n    <string name=\"database_clean\">Nic k vyčištění</string>\n    <string name=\"save_chapter_as_cbz\">Uložit jako CBZ archiv</string>\n    <string name=\"library_errors_help\">Nápovědu k tomu, jak opravit chyby při aktualizaci knihovny, viz %1$s</string>\n    <string name=\"publishing_finished\">Zveřejnění dokončeno</string>\n    <string name=\"cancelled\">Zrušeno</string>\n    <string name=\"action_show_manga\">Zobrazit položku</string>\n    <string name=\"action_display_cover_only_grid\">Mřížka jen s přebaly</string>\n    <string name=\"pref_update_only_started\">Přeskočit nerozečtené položky</string>\n    <string name=\"notification_update_error\">%1$d aktualizace(í) selhalo</string>\n    <string name=\"on_hiatus\">Má pauzu</string>\n    <string name=\"skipped_reason_not_caught_up\">Přeskočeno, protože obsahuje nepřečtené kapitoly</string>\n    <string name=\"action_move_to_top_all_for_series\">Přesunout sérii na začátek</string>\n    <string name=\"learn_more\">Klepnutím se dozvíte více</string>\n    <string name=\"skipped_reason_not_started\">Přeskočeno, protože nebyly přečteny žádné kapitoly</string>\n    <string name=\"skipped_reason_completed\">Přeskočeno, protože série je dokončena</string>\n    <string name=\"disabled_nav\">Zakázáno</string>\n    <string name=\"empty_backup_error\">Žádné záznamy v knihovně k zálohování</string>\n    <string name=\"source_empty_screen\">Žádný zdroj nenalezen</string>\n    <string name=\"pref_landscape_zoom\">Automatické přiblížení širokých obrázků</string>\n    <string name=\"source_filter_empty_screen\">Žádný nainstalovaný zdroj nenalezen</string>\n    <string name=\"update_check_open\">Otevřít na GitHubu</string>\n    <string name=\"error_saving_picture\">Chyba při ukládání obrázku</string>\n    <string name=\"action_close\">Zavřít</string>\n    <string name=\"rotation_reverse_portrait\">Obrácené na výšku</string>\n    <string name=\"pref_clear_webview_data\">Vyčistit data WebView</string>\n    <string name=\"webview_data_deleted\">Data z WebView vyčištěna</string>\n    <string name=\"reading_list\">Seznam četby</string>\n    <string name=\"wish_list\">Seznam přání</string>\n    <string name=\"network_not_metered\">Pouze na neměřené síti</string>\n    <string name=\"pref_reset_viewer_flags_success\">Všechna nastavení čtečky byla resetována</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Resetuje režim čtení a orientaci všech sérií</string>\n    <string name=\"pref_reset_viewer_flags\">Resetování nastavení čtečky pro jednotlivé série</string>\n    <string name=\"complete_list\">Seznam dokončených</string>\n    <string name=\"on_hold_list\">Seznam pozastavených</string>\n    <string name=\"unfinished_list\">Seznam nedokončených</string>\n    <string name=\"ext_info_language\">Jazyk</string>\n    <string name=\"ext_info_age_rating\">Věkové hodnocení</string>\n    <string name=\"ext_info_version\">Verze</string>\n    <string name=\"split_tall_images_summary\">Zlepšuje výkon čtečky</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nastavení čtečky se nepodařilo resetovat</string>\n    <string name=\"empty_screen\">No, tohle je trapné</string>\n    <string name=\"download_notifier_split_page_not_found\">Stránka %d nebyla při rozdělení nalezena</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nepodařilo se najít cestu k souboru stránky %d</string>\n    <string name=\"pref_navigate_pan\">Posunutí širokých snímků</string>\n    <string name=\"action_sort_unread_count\">Počet nepřečtených</string>\n    <string name=\"action_sort_last_manga_update\">Poslední kontrola aktualizace</string>\n    <string name=\"cant_open_last_read_chapter\">Nelze otevřít poslední přečtenou kapitolu</string>\n    <string name=\"custom_cover\">Vlastní obal</string>\n    <string name=\"not_installed\">Nenainstalováno</string>\n    <string name=\"pref_app_language\">Jazyk aplikace</string>\n    <string name=\"description_placeholder\">Bez popisu</string>\n    <string name=\"theme_lavender\">Levandule</string>\n    <string name=\"delete_category_confirmation\">Přejete si smazat kategorii \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Smazat kategorii</string>\n    <string name=\"internal_error\">InternalError: Zkontrolujte záznamy pádu pro další informace</string>\n    <string name=\"pref_reset_user_agent_string\">Obnovit výchozí řetězec pro user agent</string>\n    <string name=\"pref_user_agent_string\">Výchozí řetězec pro user agent</string>\n    <string name=\"action_remove_everything\">Odstranit vše</string>\n    <string name=\"appwidget_unavailable_locked\">Widget není k dispozici, když je povolen zámek aplikace</string>\n    <string name=\"appwidget_updates_description\">Podívejte se na své nedávno aktualizované záznamy v knihovně</string>\n    <string name=\"update_already_running\">Aktualizace již probíhá</string>\n    <string name=\"error_user_agent_string_blank\">Řetězec uživatelského agenta nemůže být prázdný</string>\n    <string name=\"theme_tidalwave\">Přílivová Vlna</string>\n    <string name=\"download_ahead\">Stáhování dopředu</string>\n    <string name=\"auto_download_while_reading\">Automatické stahování při čtení</string>\n    <string name=\"download_ahead_info\">Funguje pouze v případě, že aktuální kapitola + následující kapitola jsou již staženy.</string>\n    <string name=\"are_you_sure\">Jste si jistí?</string>\n    <string name=\"remove_manga\">Chystáte se odstranit \\\"%s\\\" ze své knihovny</string>\n    <string name=\"multi_lang\">Více</string>\n    <string name=\"updates_last_update_info\">Poslední aktualizace knihovny: %s</string>\n    <string name=\"popular\">Populární</string>\n    <string name=\"missing_storage_permission\">Nebyla udělena oprávnění k úložišti</string>\n    <string name=\"skipped_reason_not_always_update\">Přeskočeno, protože série nevyžaduje aktualizace</string>\n    <string name=\"action_search_hint\">Vyhledat…</string>\n    <string name=\"pref_reader_summary\">Režim čtení, displej, navigace</string>\n    <string name=\"pref_tracking_summary\">Jednosměrná synchronizace postupu, rozšířená synchronizace</string>\n    <string name=\"pref_appearance_summary\">Téma, formát data a času</string>\n    <string name=\"pref_library_summary\">Kategorie, globální aktualizace, přejetí po kapitole</string>\n    <string name=\"pref_downloads_summary\">Automatické stahování, stahování dopředu</string>\n    <string name=\"pref_browse_summary\">Zdroje, rozšíření, globální vyhledávání</string>\n    <string name=\"pref_security_summary\">Zámek aplikace, zabezpečená obrazovka</string>\n    <string name=\"pref_advanced_summary\">Výpis protokolů selhání, optimalizace baterie</string>\n    <string name=\"crash_screen_description\">%s narazil na neočekávanou chybu. Doporučujeme vám sdílet protokoly o selhání a poté je sdílet v našem kanálu podpory na Discordu.</string>\n    <string name=\"crash_screen_restart_application\">Restartujte aplikaci</string>\n    <string name=\"pref_backup_summary\">Ruční a automatické zálohování, místo v úložišti</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"invalid_location\">Neplatné umístění: %s</string>\n    <string name=\"unknown_title\">Neznámý titul</string>\n    <string name=\"error_user_agent_string_invalid\">Neplatný řetězec uživatelského agenta</string>\n    <string name=\"updates_last_update_info_just_now\">Právě teď</string>\n    <string name=\"download_notifier_cache_renewal\">Kontrola stahování</string>\n    <string name=\"information_no_entries_found\">V této kategorii nebyly nalezeny žádné položky</string>\n    <string name=\"action_open_random_manga\">Otevřít náhodnou položku</string>\n    <string name=\"fdroid_warning\">F-Droid sestavení nejsou oficiálně podporovány.\n\\nKlepnutím zobrazíte další informace.</string>\n    <string name=\"action_display_show_continue_reading_button\">Tlačítko Pokračovat ve čtení</string>\n    <string name=\"track_remove_date_conf_title\">Odstranit datum?</string>\n    <string name=\"track_remove_finish_date_conf_text\">Tím se odstraní dříve vybrané datum ukončení z %s</string>\n    <string name=\"track_remove_start_date_conf_text\">Tím se odstraní dříve vybrané datum zahájení z %s</string>\n    <string name=\"pref_invalidate_download_cache\">Znovu prohledat stažené</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Vynutit aplikaci znovu zkontrolovat stažené kapitoly</string>\n    <string name=\"label_started\">Započato</string>\n    <string name=\"label_local\">Lokální</string>\n    <string name=\"label_downloaded\">Staženo</string>\n    <string name=\"label_completed_titles\">Dokončené položky</string>\n    <string name=\"label_titles_in_global_update\">V globální aktualizaci</string>\n    <string name=\"label_total_chapters\">Celkem</string>\n    <string name=\"label_read_chapters\">Přečteno</string>\n    <string name=\"label_tracker_section\">Sledovače</string>\n    <string name=\"label_tracked_titles\">Sledované položky</string>\n    <string name=\"label_mean_score\">Průměrné skóre</string>\n    <string name=\"label_used\">Použité</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"label_titles_section\">Položky</string>\n    <string name=\"label_stats\">Statistiky</string>\n    <string name=\"label_overview_section\">Přehled</string>\n    <string name=\"label_read_duration\">Doba čtení</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_not_now\">Teď ne</string>\n    <string name=\"information_no_manga_category\">Kategorie je prázdná</string>\n    <string name=\"pref_library_update_show_tab_badge\">Zobrazit počet nepřečtených kapitol na ikoně Aktualizace</string>\n    <string name=\"copied_to_clipboard_plain\">Zkopírováno do schránky</string>\n    <string name=\"enhanced_services_not_installed\">K dispozici, ale zdroj není nainstalován: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Přeskakovat duplicitní kapitoly</string>\n    <string name=\"track_error\">%1$s chyba: %2$s</string>\n    <string name=\"information_required_plain\">*vyžadováno</string>\n    <string name=\"pref_hide_in_library_items\">Skrýt položky, které jsou již v knihovně</string>\n    <string name=\"action_copy_to_clipboard\">Zkopírovat do schránky</string>\n    <string name=\"action_update_category\">Aktualizovat kategorii</string>\n    <string name=\"split_tall_images\">Rozdělit vysoké obrázky</string>\n    <string name=\"overlay_header\">Překrytí</string>\n    <string name=\"pref_page_rotate_invert\">Překlopení orientace otočených širokých stránek</string>\n    <string name=\"pref_page_rotate\">Otočení širokých stránek tak, aby se vešly</string>\n    <string name=\"pref_debug_info\">Ladící informace</string>\n    <string name=\"pref_chapter_swipe_end\">Kapitola po přejetí doprava</string>\n    <string name=\"pref_chapter_swipe_start\">Kapitola po přejetí doleva</string>\n    <string name=\"pref_double_tap_zoom\">Přiblížení dvojitým klepnutím</string>\n    <string name=\"action_filter_interval_custom\">Přizpůsobený interval aktualizace</string>\n    <string name=\"action_sort_next_updated\">Další očekávaná aktualizace</string>\n    <string name=\"manga_display_interval_title\">Odhadovat každý</string>\n    <string name=\"manga_display_modified_interval_title\">Nastavit aktualizaci každých</string>\n    <string name=\"action_set_interval\">Nastavit interval</string>\n    <string name=\"pref_update_only_in_release_period\">Předpovědět čas příštího vydání</string>\n    <string name=\"intervals_header\">Intervaly</string>\n    <string name=\"skipped_reason_not_in_release_period\">Přeskočeno, protože dnes nebylo očekáváno žádné vydání</string>\n    <string name=\"track_delete_text\">Tím se lokálně odstraní sledování.</string>\n    <string name=\"track_delete_remote_text\">Odebrat také z %s</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_title\">Odebrat sledování %s?</string>\n    <string name=\"delete_downloaded\">Odstranit stažené</string>\n    <string name=\"has_results\">Má výsledky</string>\n    <string name=\"syncing_library\">Synchronizace knihovny</string>\n    <string name=\"library_sync_complete\">Synchronizace knihovny dokončena</string>\n    <string name=\"track_activity_name\">Přihlášení sledovače</string>\n    <string name=\"information_cloudflare_help\">Klepněte zde pro pomoc s Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Obnovování indexu stažených</string>\n    <string name=\"create_backup_file_error\">Nelze vytvořit soubor zálohy</string>\n    <string name=\"exception_offline\">Bez připojení k internetu</string>\n    <string name=\"exception_unknown_host\">Nelze dosáhnout %s</string>\n    <string name=\"exception_http\">HTTP %d, zkontrolovat web v WebView</string>\n    <string name=\"unlock_app_title\">Odemknout %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Přesunout sérii na konec</string>\n    <string name=\"pref_relative_format\">Relativní časová razítka</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" namísto \\\"%2$s\\\"</string>\n    <string name=\"app_settings\">Nastavení aplikace</string>\n    <string name=\"source_settings\">Nastavení zdroje</string>\n    <string name=\"notification_updating_progress\">Aktualizace knihovny... (%s)</string>\n    <string name=\"action_create\">Vytvořit</string>\n    <string name=\"relative_time_span_never\">Nikdy</string>\n    <string name=\"pref_flash_page_summ\">Snižuje vytváření artefaktů na e-ink displejích</string>\n    <string name=\"action_apply\">Použít</string>\n    <string name=\"action_revert_to_default\">Vrátit na výchozí</string>\n    <string name=\"last_auto_backup_info\">Poslední automatická záloha: %s</string>\n    <string name=\"no_scanlators_found\">Žádní překladatelé nenalezeni</string>\n    <string name=\"scanlator\">Překladatel</string>\n    <string name=\"pref_flash_page\">Bliknout při změně stránky</string>\n    <string name=\"pref_storage_usage\">Využití úložiště</string>\n    <string name=\"label_data_storage\">Data a úložiště</string>\n    <string name=\"file_null_uri_error\">Nevybrán žádný soubor</string>\n    <string name=\"exclude_scanlators\">Vynechat překladatele</string>\n    <string name=\"onboarding_storage_action_select\">Vybrat složku</string>\n    <string name=\"onboarding_heading\">Vítejte!</string>\n    <string name=\"action_menu_overflow_description\">Více možností</string>\n    <string name=\"onboarding_action_skip\">Přeskočit</string>\n    <string name=\"onboarding_action_next\">Další</string>\n    <string name=\"pref_storage_location\">Umístění úložiště</string>\n    <string name=\"pref_onboarding_guide\">Nástupní průvodce</string>\n    <string name=\"pref_storage_location_info\">Používá se pro automatické zálohování, stahování kapitol a lokální zdroj.</string>\n    <string name=\"onboarding_guides_new_user\">Jste v %s noví? Doporučujeme se podívat se na průvodce pro začátečníky.</string>\n    <string name=\"onboarding_action_finish\">Začínáme</string>\n    <string name=\"onboarding_storage_selection_required\">Složka musí být vybrána</string>\n    <string name=\"onboarding_permission_notifications\">Povolení oznámení</string>\n    <string name=\"onboarding_permission_install_apps\">Povolení stahovat aplikace</string>\n    <string name=\"available_disk_space_info\">Dostupné: %1$s / Celkem: %2$s</string>\n    <string name=\"onboarding_guides_returning_user\">Přeinstalováváte %s?</string>\n    <string name=\"selected\">Vybráno</string>\n    <string name=\"not_selected\">Nevybráno</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Vyhněte se přerušením dlouhých aktualizací knihovny, stahování a obnovení záloh.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Využití baterie na pozadí</string>\n    <string name=\"onboarding_permission_install_apps_description\">K nainstalování rozšíření zdrojů.</string>\n    <string name=\"action_bar_up_description\">Navigovat nahoru</string>\n    <string name=\"onboarding_description\">Pojďme nastavit nějaké věci. Vždy můžete tyto změny později změnit v nastavení.</string>\n    <string name=\"action_sort_tracker_score\">Skóre sledovače</string>\n    <string name=\"no_location_set\">Není nastaveno umístění úložiště</string>\n    <string name=\"onboarding_permission_notifications_description\">Buďte upozorněni na aktualizaci knihovny atd.</string>\n    <string name=\"ext_permission_install_apps_warning\">K instalaci rozšíření je nutné povolení. Klepněte zde pro udělení povolení.</string>\n    <string name=\"private_settings\">Zahrnout citlivé nastavení (např. přihlašovací tokeny sledovačů)</string>\n    <string name=\"onboarding_permission_action_grant\">Udělit</string>\n    <string name=\"onboarding_storage_info\">Vyberte složku, kde %1$s bude ukládat stahování kapitol, zálohy a další.\n\\n\n\\nJe doporučena vyhrazená složka.\n\\n\n\\nVybraná složka: %2$s</string>\n    <string name=\"invalid_backup_file_error\">Úplná chyba:</string>\n    <string name=\"pref_library_update_smart_update\">Chytrá aktualizace</string>\n    <string name=\"action_add_repo_message\">Přidat další repozitáře do %s. Měli by to být URL končící \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">Tento repozitář již existuje!</string>\n    <string name=\"action_delete_repo\">Odstranit repozitář</string>\n    <string name=\"invalid_repo_name\">Neplatná URL repozitáře</string>\n    <string name=\"delete_repo_confirmation\">Přejete si odstranit repozitář \\\"%s\\\"?</string>\n    <string name=\"manga_interval_expected_update\">Předpoklad vydání nových kapitol za zhruba %1$s, kontrola co %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Vlastní frekvence aktualizace:</string>\n    <string name=\"label_extension_repos\">Repozitáře rozšíření</string>\n    <string name=\"label_add_repo_input\">URL repozitáře</string>\n    <string name=\"information_empty_repos\">Nemáte nastaveny žádné repozitáře.</string>\n    <string name=\"onboarding_storage_help_action\">Průvodce uložištěm</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"action_add_repo\">Přidat repozitář</string>\n    <string name=\"ext_revoke_trust\">Zrušit důvěryhodná neznámá rozšíření</string>\n    <string name=\"action_open_repo\">Open source repozitář</string>\n    <string name=\"manga_interval_expected_update_soon\">Brzy</string>\n    <string name=\"onboarding_storage_help_info\">Aktualizujete ze starší verze a nevíte, co vybrat? Další informace naleznete v průvodci úložištěm.</string>\n    <string name=\"action_add_anyway\">Přesto přidat</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Zakázat oddálení</string>\n    <string name=\"action_replace_repo\">Nahradit</string>\n    <string name=\"action_replace_repo_title\">Otisk podepisovacího klíče již existuje</string>\n    <string name=\"action_replace_repo_message\">Repozitář %1$s má stejný otisk podepisovacího klíče jako %2$s\n\\nPokud to tak je správně, bude%2$s nahrazen, v opačném případě kontaktujte správce repozitáře.</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_style_white\">Bílou</string>\n    <string name=\"manga_interval_expected_update_null\">Tato manga je buďto dokončená, nebo nemá přibližné datum vydání.</string>\n    <string name=\"label_upcoming\">Nadcházející</string>\n    <string name=\"pref_flash_duration\">Délka bliknutí</string>\n    <string name=\"pref_flash_page_interval\">Bliknout každých</string>\n    <string name=\"pref_flash_with\">Bliknout</string>\n    <string name=\"pref_flash_style_black\">Černou</string>\n    <string name=\"pref_flash_style_white_black\">Bílou a Černou</string>\n    <string name=\"pref_display_profile\">Vlastní profil zobrazení</string>\n    <string name=\"action_view_upcoming\">Zobrazit nadcházející aktualizace</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Nepodařilo se získat trvalý přístup ke složce. Aplikace se může chovat zvláštně.</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Aktualizovat postup po přečtení</string>\n    <string name=\"action_copy_link\">Zkopírovat odkaz</string>\n    <string name=\"action_sort_random\">Náhodně</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Pošle anonymizovaná chybová hlášení vývojářům.</string>\n    <string name=\"onboarding_permission_analytics_description\">Pošle anonymizované údaje o používání pro vylepšení aplikace.</string>\n    <string name=\"pref_security\">Zabezpečení</string>\n    <string name=\"pref_firebase\">Analytika a záznamy o pádech</string>\n    <string name=\"firebase_summary\">Odesílání záznamů o pádech a analytických dat nám umožní identifikovat a opravit problémy, zlepšit výkon a přizpůsobit budoucí aktualizace vašim potřebám</string>\n    <string name=\"onboarding_permission_analytics\">Povolit analytiku</string>\n    <string name=\"add_repo_confirmation\">Chcete přidat repozitář \\\"%s\\\"?</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Má dopad na výkon. Povolte pouze pokud snížení limitu bitmapy nespraví problémy s prázdnými obrázky</string>\n    <string name=\"extensionRepo_settings\">Repozitáře rozšíření</string>\n    <string name=\"ext_remove\">Odstranit</string>\n    <string name=\"ext_confirm_remove\">Odstranit rozšíření?</string>\n    <string name=\"remove_private_extension_message\">Opravdu chcete odstranit rozšíření \\\"%s\\\"?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Přeskočit stahování duplicitních přečtených kapitol</string>\n    <string name=\"invalid_backup_file_json\">Záloha do JSONu není podporována</string>\n    <string name=\"invalid_backup_file_unknown\">Soubor se zálohou je poškozen</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Vlastní limit hardwarových bitmap</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Výchozí (%d)</string>\n    <string name=\"onboarding_permission_crashlytics\">Posílat chybová hlášení</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Jestliže čtenář načte prázdnou stránku, postupně snižuj prahovou hodnotu.\\nVybráno: %s</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pozastavit historii čtení pro rozšíření</string>\n    <string name=\"trackers_updated_summary\">Sledovače aktualizovány do kapitoly %d</string>\n    <string name=\"non_library_settings\">Všechny přečtené záznamy</string>\n    <string name=\"confirm_tracker_update\">Aktualizovat sledovače do kapitoly %d?</string>\n    <string name=\"upcoming_calendar_prev\">Předchozí měsíc</string>\n    <string name=\"upcoming_calendar_next\">Následující měsíc</string>\n    <string name=\"upcoming_guide\">Návod k nadcházejícím kapitolám</string>\n    <string name=\"label_auto\">Automaticky</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Označit duplicitní přečtenou kapitolu jako přečtenou</string>\n    <string name=\"theme_monochrome\">Černobílý</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"artist\">Umělec</string>\n    <string name=\"tracked_privately\">Sledováno soukromě</string>\n    <string name=\"export\">Exportovat</string>\n    <string name=\"library_list\">Seznam knihoven</string>\n    <string name=\"library_exported\">Knihovna byla exportována</string>\n    <string name=\"action_toggle_private_on\">Sledovat soukromě</string>\n    <string name=\"action_toggle_private_off\">Sledovat veřejně</string>\n    <string name=\"pref_behavior\">Chování</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Po přečtení kapitoly</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Po získání nové kapitoly</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Použít zastaralý dekodér pro dlouhý pruh</string>\n    <string name=\"pref_update_library_manga_titles\">Aktualizovat názvy mangy z knihovny, aby odpovídaly zdroji</string>\n    <string name=\"logging_in\">Přihlašování…</string>\n    <string name=\"notes_placeholder\">Užil jsem si tu část kde…</string>\n    <string name=\"action_notes\">Poznámky</string>\n    <string name=\"action_edit_notes\">Upravit poznámky</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Varování: pokud se manga přejmenuje, vymaže se z fronty stahování (pokud existuje).</string>\n    <string name=\"action_display_unread_badge\">Nepřečtené kapitoly</string>\n    <string name=\"possible_duplicates_title\">Možné duplikáty</string>\n    <string name=\"possible_duplicates_summary\">Existují položky ve knihovně s podobným jménem.\\n\\nVyber položku pro migraci nebo přesto přidat.</string>\n    <string name=\"storage_failed_to_create_download_directory\">Nepodařilo se vytvořit adresář pro stahování</string>\n    <string name=\"storage_failed_to_create_directory\">Nepodařilo se vytvořit adresář: %s</string>\n    <string name=\"clear_database_text\">Chystáte se odstranit položky z databáze</string>\n    <string name=\"clear_db_exclude_read\">Ponechat položky s přečtenými kapitolami</string>\n    <string name=\"label_donate\">Přispěj</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Skrýt indikátory chybějících kapitol</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Nepovolovat soubory s non-ASCII znaky</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Zajišťuje kompatibilitu s určitými úložnými médii, která nepodporují Unicode. Pokud je tato funkce povolena, budete muset ručně přejmenovat názvy složkek source a manga tak, že nahradíte non-ASCII znaky jejich malými hexadecimálními znaky v UTF-8. Názvy souborů kapitol není nutné přejmenovávat.</string>\n    <string name=\"pref_download_concurrent_sources\">Souběžné stahování zdrojů</string>\n    <string name=\"pref_download_concurrent_pages\">Souběžné stahování stránek</string>\n    <string name=\"action_webview_close_tab\">Zavřít okno</string>\n    <string name=\"calculating\">Vypočítávání…</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Souběžně stahované stránky na zdroj</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Vybrat vše</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Vybrat žádné</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Vybrat povolené zdroje</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Vybrat připnuté zdroje</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Pokračovat</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Data pro migraci</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Smazat stažené položky po migraci</string>\n    <string name=\"migrationListScreenTitle\">Migrace</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migrace (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopírovat</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrovat</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Nebyly nalezeny žádné alternativy</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Poslední: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Neznámý</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Vyhledat manuálně</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Nemigrovat</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrovat nyní</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Kopírovat nyní</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Zastavit migraci?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Zastavit</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Zrušit</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopírovat</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrovat</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Zrušit</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Zrušit</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Žádné kapitoly nebyly nalezeny, tuto položku nelze použít pro migraci</string>\n    <string name=\"download_bookmarked\">Založeno</string>\n    <string name=\"action_filter_excluded_scanlators\">Filtrovat vyloučené scanlatory</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Vybrané</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Dostupné</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Dodatečná klíčová slova (volitelné)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Pomáhá zúžit výsledky vyhledávání přidáním dalších klíčových slov</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Skrýt položky bez shody</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Skrýt položky bez nových kapitol</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Zobrazit položku, pouze pokud má shoda další kapitoly</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Tyto možnosti jsou pomalé, nebezpečné a mohou vést k omezení ze strany zdrojů</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Pokročilý režim vyhledávání</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Rozdělí název na klíčová slova pro rozsáhlejší vyhledávání</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Shoda podle čísla kapitoly</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Je-li povoleno, vybere shodu, která je nejdále. V opačném případě vybere první shodu podle priority zdroje.</string>\n    <string name=\"pref_display_images_description\">Zobrazovat obrázky v popisu mangy</string>\n    <string name=\"clear_database_history_warning\">Přečtené kapitoly a postup u položek mimo knihovnu budou ztraceny</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/cv/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d пухмӑш</item>\n        <item quantity=\"other\">%d пухмӑш</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s минут хыҫҫӑн</item>\n        <item quantity=\"other\">%1$s минут хыҫҫӑн</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s хушши %2$s йӑнӑшпа тӑвӑннӑ</item>\n        <item quantity=\"other\">%1$s хушши %2$s йӑнӑшпа тӑвӑннӑ</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Хушма валли ҫӗнетӳ пур</item>\n        <item quantity=\"other\">%d хушма валли ҫӗнетӳ пур</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">%1$s сыпӑкӗсем тата тепӗр 1</item>\n        <item quantity=\"other\">%1$s сыпӑкӗсем тата тепӗр %2$d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d ҫӗнӗ сыпӑк</item>\n        <item quantity=\"other\">%1$d ҫӗнӗ сыпӑк</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d хайлав валли</item>\n        <item quantity=\"other\">%d хайлав валли</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s сыпӑк</item>\n        <item quantity=\"other\">%1$s сыпӑк</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s йулчӗ</item>\n        <item quantity=\"other\">%1$s йулчӗ</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d йӗрлев</item>\n        <item quantity=\"other\">%d йӗрлев</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d сыпӑк ҫук</item>\n        <item quantity=\"other\">%d сыпӑк ҫук</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ӗнер</item>\n        <item quantity=\"other\">%1$d кун кайалла</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Тепӗр вуламан сыпӑк</item>\n        <item quantity=\"other\">Тепӗр %d вуламан сыпӑк</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 кун</item>\n        <item quantity=\"other\">%d кун</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s сыпӑк ҫук</item>\n        <item quantity=\"other\">%1$s сыпӑк ҫук</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Тепӗр сыпӑк</item>\n        <item quantity=\"other\">Тепӗр %d сыпӑк</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d усрав</item>\n        <item quantity=\"other\">%d усрав</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/cv/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"manga\">Вулавӑшри хайлавсем</string>\n    <string name=\"used_cache\">Усӑ курнӑ: %1$s</string>\n    <string name=\"cookies_cleared\">Куккисем катертнӗ</string>\n    <string name=\"pref_clear_cookies\">Кукки тасат</string>\n    <string name=\"label_network\">Тетел</string>\n    <string name=\"restore_duration\">%1$02d мин, %2$02d ҫек</string>\n    <string name=\"services\">Сервиссем</string>\n    <string name=\"pref_download_new\">Ҫӗнӗ сыпӑксене тийесе илмелле</string>\n    <string name=\"last_read_chapter\">Йулашки вуланӑ сыпăк</string>\n    <string name=\"disabled\">Сӳнтернӗ</string>\n    <string name=\"pref_remove_after_read\">Вуланӑ хыҫҫӑн катертмелле</string>\n    <string name=\"pref_category_reading\">Вулани</string>\n    <string name=\"color_filter_b_value\">Кӑвак</string>\n    <string name=\"color_filter_g_value\">Симӗс</string>\n    <string name=\"color_filter_r_value\">Хӗрлӗ</string>\n    <string name=\"double_tap_anim_speed_fast\">Хӑвӑрт</string>\n    <string name=\"double_tap_anim_speed_normal\">Йӗркеллӗ</string>\n    <string name=\"zoom_start_center\">Варринчен</string>\n    <string name=\"zoom_start_right\">Сылтӑмран</string>\n    <string name=\"zoom_start_left\">Сулахайран</string>\n    <string name=\"zoom_start_automatic\">Хӑй халлӗн</string>\n    <string name=\"scale_type_fit_height\">Ҫулӗшпе</string>\n    <string name=\"scale_type_fit_width\">Сарлакăшӗпе</string>\n    <string name=\"black_background\">Хура</string>\n    <string name=\"white_background\">Шурӑ</string>\n    <string name=\"pref_reader_theme\">Ӳкерчĕк хыҫӑн тӗсӗ</string>\n    <string name=\"filter_mode_screen\">Ыкран</string>\n    <string name=\"filter_mode_multiply\">Хутлани</string>\n    <string name=\"ext_uninstall\">Катерт</string>\n    <string name=\"ext_installed\">Лартнӑ</string>\n    <string name=\"ext_installing\">Лартӑнать</string>\n    <string name=\"ext_downloading\">Тийесе илӗнет</string>\n    <string name=\"ext_install\">Ларт</string>\n    <string name=\"ext_update\">Ҫӗнет</string>\n    <string name=\"all\">Пурне те</string>\n    <string name=\"default_category_summary\">Кашнинчех ыйтмалла</string>\n    <string name=\"charging\">Петтерей тулнӑ чух</string>\n    <string name=\"pref_library_update_restriction\">Хатӗр валли хӑй-хальлӗн ҫӗнетӳ чарӑвӗсем</string>\n    <string name=\"update_weekly\">Кашни ерне</string>\n    <string name=\"update_48hour\">Кашни 2 кун</string>\n    <string name=\"update_24hour\">Кашни кун</string>\n    <string name=\"update_12hour\">Кашни 12 сехет</string>\n    <string name=\"update_6hour\">Кашни 6 сехет</string>\n    <string name=\"pref_library_update_interval\">Ҫӗнетни тӑтӑшлӑхӗ</string>\n    <string name=\"pref_category_library_update\">Пӗтӗмӗшле ҫӗнетӳ</string>\n    <string name=\"pref_category_display\">Кӑтарт</string>\n    <string name=\"secure_screen\">Ыкран сыхлавӗ</string>\n    <string name=\"pref_category_security\">Сыхлав тата вӑрттӑнлӑх</string>\n    <string name=\"pref_manage_notifications\">Систерӳсене ӗнер</string>\n    <string name=\"pref_date_format\">Вӑхӑт хармачӗ</string>\n    <string name=\"theme_dark\">Тӗттӗм</string>\n    <string name=\"theme_light\">Ҫутӑ</string>\n    <string name=\"pref_category_advanced\">Тата</string>\n    <string name=\"pref_category_downloads\">Тийевсем</string>\n    <string name=\"pref_category_library\">Вулавӑш</string>\n    <string name=\"pref_category_general\">Тӗп</string>\n    <string name=\"app_not_available\">Апа кӗме май ҫук</string>\n    <string name=\"action_webview_refresh\">Ҫӗнет</string>\n    <string name=\"action_webview_forward\">Малалла</string>\n    <string name=\"action_webview_back\">Кайалла</string>\n    <string name=\"action_undo\">Пӑрахӑҫла</string>\n    <string name=\"action_save\">Упра</string>\n    <string name=\"action_share\">Пайлаш</string>\n    <string name=\"action_install\">Ларт</string>\n    <string name=\"action_move_to_bottom\">Вӗҫӗ патне куҫ</string>\n    <string name=\"action_move_to_top\">Пуҫӑ патне куҫ</string>\n    <string name=\"action_oldest\">Чи кивви</string>\n    <string name=\"action_newest\">Чи ҫӗнни</string>\n    <string name=\"action_cancel_all\">Пурне те пӑрахӑҫла</string>\n    <string name=\"action_cancel\">Пӑрахӑҫла</string>\n    <string name=\"action_pin\">Ҫаклат</string>\n    <string name=\"action_disable\">Сӳнтер</string>\n    <string name=\"action_display_download_badge\">Тийенӗ сыпӑксен шучӗ</string>\n    <string name=\"action_display_list\">Йат-йыш</string>\n    <string name=\"action_display\">Кӑтарт</string>\n    <string name=\"action_display_mode\">Кӑтарту тытӑмӗ</string>\n    <string name=\"action_open_in_web_view\">WebView-ра уҫ</string>\n    <string name=\"action_open_in_browser\">Тишкерӗшре уҫ</string>\n    <string name=\"action_resume\">Малалла</string>\n    <string name=\"action_start\">Пуҫла</string>\n    <string name=\"action_remove\">Катерт</string>\n    <string name=\"action_retry\">Ҫӗнӗрен</string>\n    <string name=\"action_pause\">Чар</string>\n    <string name=\"action_view_chapters\">Сыпӑксене пӑх</string>\n    <string name=\"action_edit_cover\">Хуплашкана улӑштар</string>\n    <string name=\"action_move_category\">Пухмӑша кӗрт</string>\n    <string name=\"action_rename_category\">Пухмӑш йатне улӑштар</string>\n    <string name=\"action_edit_categories\">Пухмӑшсене улӑштар</string>\n    <string name=\"action_add_category\">Пухмӑша хуш</string>\n    <string name=\"action_add\">Хуш</string>\n    <string name=\"action_mark_previous_as_read\">Умӗнхине вуланӑ тесе палӑрт</string>\n    <string name=\"action_edit\">Улӑштар</string>\n    <string name=\"action_disable_all\">Пурне те сӳнтер</string>\n    <string name=\"action_enable_all\">Пурне те ҫут</string>\n    <string name=\"action_update_library\">Вулавӑша ҫӗнет</string>\n    <string name=\"action_delete\">Катерт</string>\n    <string name=\"action_remove_bookmark\">Сыпӑк картнине катерт</string>\n    <string name=\"action_bookmark\">Сыпӑка карт</string>\n    <string name=\"action_download\">Тийесе ил</string>\n    <string name=\"action_mark_as_unread\">Вуламан тесе палӑрт</string>\n    <string name=\"action_mark_as_read\">Вуланӑ тесе палӑрт</string>\n    <string name=\"action_select_all\">Пурне те суйла</string>\n    <string name=\"action_global_search\">Пур ҫӗрте те шыра</string>\n    <string name=\"action_search\">Шыра</string>\n    <string name=\"action_sort_latest_chapter\">Йулашки сыпӑкпа</string>\n    <string name=\"action_sort_last_read\">Йулашки вуланипе</string>\n    <string name=\"action_sort_total\">Сыпӑк шучӗпе</string>\n    <string name=\"action_sort_alpha\">Сас паллисен йӗркипе</string>\n    <string name=\"action_filter_empty\">Алана катерт</string>\n    <string name=\"action_filter_unread\">Вуламан</string>\n    <string name=\"action_filter_bookmarked\">Картнӑ</string>\n    <string name=\"action_filter\">Ала</string>\n    <string name=\"action_menu\">Менӳ</string>\n    <string name=\"action_settings\">Ӗнерӳ</string>\n    <string name=\"history\">Кун-ҫул</string>\n    <string name=\"chapters\">Сыпӑксем</string>\n    <string name=\"categories\">Пухмӑшсем</string>\n    <string name=\"information_empty_library\">Санӑн вулавӑш пушӑ</string>\n    <string name=\"label_recent_manga\">Кун-ҫул</string>\n    <string name=\"label_download_queue\">Тийев черечӗ</string>\n    <string name=\"name\">Йат</string>\n    <string name=\"download_notifier_no_network\">Тетел ҫыхӑну ҫук</string>\n    <string name=\"download_notifier_text_only_wifi\">Wi-Fi ҫыхӑну ҫук</string>\n    <string name=\"download_notifier_title_error\">Йӑнӑш</string>\n    <string name=\"update_check_notification_update_available\">Ҫӗнӗ версси пур!</string>\n    <string name=\"update_check_notification_download_error\">Тийев йӑнӑшӗ</string>\n    <string name=\"update_check_notification_download_complete\">Тиенсе пӗтрӗ</string>\n    <string name=\"notification_chapters_single\">%1$s-мӗш сыпӑк</string>\n    <string name=\"notification_new_chapters\">Ҫӗнӗ сыпӑксем тупӑнман</string>\n    <string name=\"information_no_recent_manga\">Йулашки вӑхӑтра нимӗн те вуламан</string>\n    <string name=\"information_no_recent\">Пӗр ҫӗнетӳ те ҫук</string>\n    <string name=\"information_no_downloads\">Пӗр тийев те ҫук</string>\n    <string name=\"label_help\">Пулӑшу</string>\n    <string name=\"label_extension_info\">Хушма ҫинчен</string>\n    <string name=\"label_extensions\">Хушмасем</string>\n    <string name=\"label_sources\">Ҫӑл куҫсем</string>\n    <string name=\"label_recent_updates\">Ҫӗнӗлӗх</string>\n    <string name=\"label_library\">Вулавӑш</string>\n    <string name=\"label_settings\">Ӗнерӳсем</string>\n    <string name=\"label_more\">Тата</string>\n    <string name=\"action_display_show_tabs\">Пухмӑш кантӑкӗсене кӑтарт</string>\n    <string name=\"action_display_comfortable_grid\">Меллӗ сетке</string>\n    <string name=\"action_display_grid\">Ҫӑтӑ сетке</string>\n    <string name=\"action_select_inverse\">Хирӗҫле суйла</string>\n    <string name=\"update_never\">Сӳнтернӗ</string>\n    <string name=\"pref_library_columns\">Йӗркере миҫе йапала</string>\n    <string name=\"portrait\">Урлӑ</string>\n    <string name=\"landscape\">Тӑрӑх</string>\n    <string name=\"secure_screen_summary\">Ыкран сыхлавӗ тепӗр апсем ҫине куҫнӑ чух ку апӑн мӗн пуррине пытарать тата ыкрана сӑн ҫапма чарать</string>\n    <string name=\"hide_notification_content\">Систерӳсенче мӗн ҫырнине пытарни</string>\n    <string name=\"lock_never\">Нихӑҫан</string>\n    <string name=\"lock_always\">Йаланах</string>\n    <string name=\"action_open_log\">Тӑвӑм-пулӑм кӗнекине уҫ</string>\n    <string name=\"action_reset\">Тасат</string>\n    <string name=\"action_sort\">Уйӑр</string>\n    <string name=\"theme_system\">Ҫиҫтемри пекех</string>\n    <string name=\"pref_category_reader\">Вулӑш</string>\n    <string name=\"pref_category_tracking\">Йӗрлев</string>\n    <string name=\"loading\">Тийени…</string>\n    <string name=\"action_restore\">Тавӑр</string>\n    <string name=\"action_unpin\">Салт</string>\n    <string name=\"action_migrate\">Куҫар</string>\n    <string name=\"action_next_chapter\">Хыҫҫӑнхи сыпӑк</string>\n    <string name=\"action_previous_chapter\">Умӗнхи сыпӑк</string>\n    <string name=\"track\">Йӗрлев</string>\n    <string name=\"information_webview_outdated\">Чи лайӑх пӗрлӗхшӗн WebView-а ҫӗнет</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare-ран иртеймерӗ</string>\n    <string name=\"information_empty_category\">Санӑн пухмӑшсем ҫук. Хӑвӑн вулавӑша пухмӑшсем туса йӗркелеме «Хуш» пускӑч ҫине пус.</string>\n    <string name=\"label_migration\">Куҫару</string>\n    <string name=\"label_backup\">Йантӑлав тата тавӑру</string>\n    <string name=\"ext_obsolete\">Кивелнӗ</string>\n    <string name=\"ext_updates_pending\">Ҫӗнетӳ пур</string>\n    <string name=\"default_category\">Йаланхилле пухмӑш</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Вулавӑша ҫӗнетнӗ чухне ҫӗнӗ хуплашка тата вак-тӗвек пуррине тӗрӗслени</string>\n    <string name=\"pref_library_update_refresh_metadata\">Хӑй-халлӗн метта пӗлӗмсене ҫӗнетмелле</string>\n    <string name=\"pref_update_only_non_completed\">Вӗҫленнисене сиктермелле</string>\n    <string name=\"pref_category_about\">Ап ҫинчен</string>\n    <string name=\"ext_untrusted\">Шанчӑклӑ мар</string>\n    <string name=\"ext_trust\">Шанчӑклӑ</string>\n    <string name=\"ext_pending\">Кӗтет</string>\n    <string name=\"backup_restore_missing_sources\">Ҫук ҫӑл куҫсем:</string>\n    <string name=\"tracking_info\">Йӗрлев сервисӗсенче сыпӑкӑн ӳсӗмне ҫӗнетме пӗр йенлӗ килӗшӗвӗ. «Йӗрлев» пускӑч урлӑ йӗрлев ӗнерле.</string>\n    <string name=\"pref_auto_update_manga_sync\">Вуланӑ хыҫҫӑн сыпӑксен ӳсӗме ҫӗнет</string>\n    <string name=\"fifth_to_last\">Вуланӑ сыпӑкран пиллӗкмӗшӗ</string>\n    <string name=\"fourth_to_last\">Вуланӑ сыпӑкран тӑваттӑмӗшӗ</string>\n    <string name=\"third_to_last\">Вуланӑ сыпӑкран виҫҫӗмӗшӗ</string>\n    <string name=\"second_to_last\">Йулашкинчен маларахри</string>\n    <string name=\"pref_remove_after_marked_as_read\">Вуланӑ тесе палӑртнӑ хыҫҫӑн катертмелле</string>\n    <string name=\"scale_type_original_size\">Хӑйӗн виҫе</string>\n    <string name=\"pager_viewer\">Елсерен</string>\n    <string name=\"pref_viewer_type\">Йаланхилле вулав тытӑмӗ</string>\n    <string name=\"pref_color_filter_mode\">Тӗс алипе хутӑштармалли тытӑм</string>\n    <string name=\"pref_show_reading_mode_summary\">Вулӑш уҫӑ пулсан хальхи тытӑма кӗскен палӑртмалла</string>\n    <string name=\"pref_show_reading_mode\">Вулав тытӑма кӑтарт</string>\n    <string name=\"pref_fullscreen\">Тулли ыкран</string>\n    <string name=\"untrusted_extension\">Шанчӑклӑ мар хушма</string>\n    <string name=\"lock_when_idle\">Ним туман чух ҫаклатни</string>\n    <string name=\"display_mode_chapter\">%1$s-мӗш сыпӑк</string>\n    <string name=\"lock_with_biometrics\">Ҫаклатӑва уҫма пӳрне йӗрре ыйтни</string>\n    <string name=\"pref_webtoon_side_padding\">Айаккинчи чаку</string>\n    <string name=\"pref_always_show_chapter_transition\">Сыпӑксем урлӑ каҫнине йалан кӑтартмалла</string>\n    <string name=\"color_filter_a_value\">Тӑрӑлӑх мар</string>\n    <string name=\"rotation_force_landscape\">Ҫаклатнӑ тӑрӑхскер</string>\n    <string name=\"rotation_force_portrait\">Ҫаклатнӑ урлӑскер</string>\n    <string name=\"rotation_free\">Ирӗклӗ</string>\n    <string name=\"pref_rotation_type\">Йаланхилле урлӑ-тӑрӑх</string>\n    <string name=\"double_tap_anim_speed_0\">Енимсӗр</string>\n    <string name=\"pref_zoom_start\">Пысӑклатни пуҫламӑш тӑрӑмӗ</string>\n    <string name=\"scale_type_smart_fit\">Тӑнлӑ</string>\n    <string name=\"scale_type_stretch\">Тӑс</string>\n    <string name=\"scale_type_fit_screen\">Ыкранпа</string>\n    <string name=\"pref_image_scale_type\">Сарӑмлани</string>\n    <string name=\"vertical_plus_viewer\">Вӗҫӗмсӗрех урлӑ</string>\n    <string name=\"webtoon_viewer\">Вӑрӑм елсем</string>\n    <string name=\"vertical_viewer\">Елсерен (урлӑ)</string>\n    <string name=\"right_to_left_viewer\">Елсерен (сылтӑмран сулахайалла)</string>\n    <string name=\"left_to_right_viewer\">Елсерен (сулахайран сылтӑмалла)</string>\n    <string name=\"gray_background\">Сӑрӑ</string>\n    <string name=\"pref_read_with_long_tap\">Пусса тӑннӑ чух кӑтарт</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Йанравлӑх пускӑчӗсене вырӑнсемпе улӑштар</string>\n    <string name=\"pref_read_with_volume_keys\">Йанравлӑх пускӑчӗсем</string>\n    <string name=\"pref_reader_navigation\">Куҫӑм</string>\n    <string name=\"pref_skip_filtered_chapters\">Аланӑ сыпӑксене сиктермелле</string>\n    <string name=\"pref_skip_read_chapters\">Вуланӑ сыпӑксене сиктермелле</string>\n    <string name=\"pref_keep_screen_on\">Ыкрана ҫутӑ тыт</string>\n    <string name=\"filter_mode_darken\">Тӗттӗмлетӳ</string>\n    <string name=\"filter_mode_lighten\">Ҫутату</string>\n    <string name=\"filter_mode_overlay\">Витӗм</string>\n    <string name=\"pref_custom_color_filter\">Усӑҫ тӗс али</string>\n    <string name=\"pref_custom_brightness\">Усӑҫ йӑлтӑрлӑхӗ</string>\n    <string name=\"pref_crop_borders\">Касӑк чиккисем</string>\n    <string name=\"pref_show_page_number\">Ел шутне кӑтартни</string>\n    <string name=\"pref_double_tap_anim_speed\">Икӗ хут пуссан эним хӑвӑртлӑхӗ</string>\n    <string name=\"pref_page_transitions\">Елсем хушшипе енимлӗ куҫни</string>\n    <string name=\"obsolete_extension_message\">Ҫак хушмана урӑх кӗме май ҫук. Вӑл тӗрӗс мар ӗҫлеме тата апа йӑнӑшлаттарма пултарать. Ӑна катертме сӗнетпӗр.</string>\n    <string name=\"untrusted_extension_message\">Сийенлӗ хушма упранакан кирек мӗнле шут пӗлӗмӗсене шута илме йе хӑй ирӗклӗ йума пурнӑҫлама пултарать. \\n \\nҪак ӗнентерӳ хутне шаннипе есӗ ҫав теветкеле йышӑнатӑн.</string>\n    <string name=\"add_tracking\">Йӗрлев хуш</string>\n    <string name=\"manga_tracking_tab\">Йӗрле</string>\n    <string name=\"custom_filter\">Усӑҫ али</string>\n    <string name=\"pref_acra_summary\">Кирек мӗнле йӑнӑшсене тӳрлетме пулӑшать. Нимӗнле харкам пӗлӗм те ярӑнмасть</string>\n    <string name=\"label_downloaded_only\">Тиенӗсене ҫеҫ</string>\n    <string name=\"file_select_backup\">Янтӑв файла суйла</string>\n    <string name=\"dialog_with_checkbox_reset\">Ҫак манкӑн пур сыпӑка тасат</string>\n    <string name=\"pref_cutout_short\">Каснӑ тӑрӑхра шалашне кӑтарт</string>\n    <string name=\"pref_read_with_tapping_inverted\">Пусӑмсене вырӑнсемпе улӑштар</string>\n    <string name=\"tapping_inverted_both\">Иккӗш те</string>\n    <string name=\"tapping_inverted_vertical\">Урлӑ</string>\n    <string name=\"tapping_inverted_horizontal\">Тӑрӑх</string>\n    <string name=\"tapping_inverted_none\">Ҫук</string>\n    <string name=\"channel_ext_updates\">Хушмасен ҫӗнетӗвӗсем</string>\n    <string name=\"channel_new_chapters\">Сыпӑксен ҫӗнетӗвӗсем</string>\n    <string name=\"channel_common\">Яланхи</string>\n    <string name=\"download_notifier_download_paused\">Тийеве вӑхӑтлӑха чарнӑ</string>\n    <string name=\"download_notifier_unknown_error\">Кӗтмен йӑнӑша пула сыпӑксене тийесе илеймест</string>\n    <string name=\"download_notifier_downloader_title\">Тийевҫӗ</string>\n    <string name=\"information_webview_required\">Mihon валли WebView кирлӗ</string>\n    <string name=\"update_check_notification_download_in_progress\">Тийев…</string>\n    <string name=\"update_check_no_new_updates\">Ҫӗнетӳ тупӑнман</string>\n    <string name=\"update_check_confirm\">Тиесе ил</string>\n    <string name=\"file_select_cover\">Хуплашка суйла</string>\n    <string name=\"notification_first_add_to_library\">Ҫакна тӑвас умӗн манкка санӑн вулавӑша хуш-ха</string>\n    <string name=\"notification_cover_update_failed\">Хуплашкана ҫӗнетеймерӗ</string>\n    <string name=\"notification_chapters_single_and_more\">%1$s сыпӑкӗ тата ытти %2$d</string>\n    <string name=\"notification_chapters_multiple\">%1$s сыпӑкӗсем</string>\n    <string name=\"download_queue_error\">Сыпӑксене тийесе илме пулмасть. Тийевсем пайӗнче ҫӗнӗрен хӑтланса пӑхма пултаратӑн</string>\n    <string name=\"copy\">Ӑтавла</string>\n    <string name=\"migrate\">Куҫар</string>\n    <string name=\"migration_selection_prompt\">Куҫарма ҫӑл куҫ суйла</string>\n    <string name=\"migration_dialog_what_to_include\">Хушма пӗлӗмсене суйла</string>\n    <string name=\"recent_manga_time\">%1$s-мӗш сыпӑка %2$s</string>\n    <string name=\"updating_library\">Вулавӑша ҫӗнетни</string>\n    <string name=\"loader_not_implemented_error\">Ҫӑл куҫ тупӑнман</string>\n    <string name=\"page_list_empty_error\">Пӗр ел те тупӑнман</string>\n    <string name=\"transition_pages_error\">Елсем тийенеймерӗҫ: %1$s</string>\n    <string name=\"transition_pages_loading\">Елсене тийени…</string>\n    <string name=\"transition_no_previous\">Умӗнхи сыпӑк ҫук</string>\n    <string name=\"transition_no_next\">Малалли сыпӑк ҫук</string>\n    <string name=\"transition_previous\">Умӗнхи:</string>\n    <string name=\"transition_next\">Малалли:</string>\n    <string name=\"transition_current\">Хальхи:</string>\n    <string name=\"transition_finished\">Вӗҫленчӗ:</string>\n    <string name=\"viewer\">Вулав тытӑмӗ</string>\n    <string name=\"pref_category_for_this_series\">Ҫак серилӗх валли</string>\n    <string name=\"confirm_set_image_as_cover\">Ҫак сӑна хуплашка пек усӑ курмалла-и?</string>\n    <string name=\"decode_image_error\">Сӑн тийенмерӗ</string>\n    <string name=\"no_next_chapter\">Малалли сыпӑк тупӑнман</string>\n    <string name=\"chapter_progress\">%1$d-мӗш ел</string>\n    <string name=\"cover_updated\">Хуплашкана ҫӗнетнӗ</string>\n    <string name=\"set_as_cover\">Хуплашка пек ларт</string>\n    <string name=\"picture_saved\">Ӳкерчӗке упранӑ</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ҫакӑ вара сыпӑка вулани вӑхӑта катертӗ. Чӑнах катертесшӗн-и?</string>\n    <string name=\"snack_categories_deleted\">Пухмӑшсем катертнӗ</string>\n    <string name=\"error_category_exists\">Ун пек ятпа пухмӑш пур ӗнтӗ!</string>\n    <string name=\"track_type\">Тӗс</string>\n    <string name=\"track_status\">Хал</string>\n    <string name=\"status\">Хал</string>\n    <string name=\"title\">Ят</string>\n    <string name=\"score\">Хаклав</string>\n    <string name=\"repeating\">Ҫӗнӗрен вулатӑп</string>\n    <string name=\"plan_to_read\">Вулӑп</string>\n    <string name=\"paused\">Чарнӑ</string>\n    <string name=\"on_hold\">Чарнӑ</string>\n    <string name=\"dropped\">Пӑрахнӑ</string>\n    <string name=\"completed\">Вӗҫленӗ</string>\n    <string name=\"reading\">Вулатӑп</string>\n    <string name=\"confirm_delete_chapters\">Есӗ суйланӑ сыпӑксене катертесшӗнех-и?</string>\n    <string name=\"download_unread\">Вуламанине</string>\n    <string name=\"manga_download\">Тиесе ил</string>\n    <string name=\"sort_by_upload_date\">Тиенӗ вӑхӑчӗпе</string>\n    <string name=\"sort_by_number\">Сыпӑк шучӗпе</string>\n    <string name=\"sort_by_source\">Ҫӑл куҫпа</string>\n    <string name=\"show_chapter_number\">Сыпӑк шучӗ</string>\n    <string name=\"show_title\">Ҫӑл куҫ ячӗ</string>\n    <string name=\"chapter_paused\">Вӑхӑтлӑха чарнӑ</string>\n    <string name=\"chapter_error\">Йӑнӑш</string>\n    <string name=\"chapter_downloading_progress\">Тиенет (%1$d/%2$d)</string>\n    <string name=\"snack_add_to_library\">Манкка вулавăша хушмалла-и?</string>\n    <string name=\"source_not_installed\">Ҫӑл куҫа лартман: %1$s</string>\n    <string name=\"copied_to_clipboard\">Пайлашу буфере ӑтавланӑ:\n\\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">Тиенӗ сыпӑксене катертмелле-и?</string>\n    <string name=\"manga_info_collapse\">Сахалрах</string>\n    <string name=\"manga_info_expand\">Ытларах</string>\n    <string name=\"manga_removed_library\">Вулавӑшран катерт</string>\n    <string name=\"manga_added_library\">Вулавӑша хуш</string>\n    <string name=\"remove_from_library\">Вулавӑшран катерт</string>\n    <string name=\"in_library\">Вулавăшра</string>\n    <string name=\"add_to_library\">Вулавӑша хуш</string>\n    <string name=\"licensed\">Лиссенсиленӗ</string>\n    <string name=\"unknown_status\">Паллӑ мар хал</string>\n    <string name=\"unknown_author\">Паллӑ мар хайлавҫӑ</string>\n    <string name=\"unknown\">Паллă мар</string>\n    <string name=\"ongoing\">Тухакан</string>\n    <string name=\"local_source_help_guide\">Вырӑнти ҫӑл куҫ ертӳлӗхӗ</string>\n    <string name=\"browse\">Шырав</string>\n    <string name=\"latest\">Юлашки</string>\n    <string name=\"action_global_search_hint\">Пур ҫӗрте шыра…</string>\n    <string name=\"pinned_sources\">Ҫакнӑ</string>\n    <string name=\"last_used_source\">Юлашки усӑ курни</string>\n    <string name=\"other_source\">Ыттисем</string>\n    <string name=\"local_source\">Вырӑнти ҫӑл куҫ</string>\n    <string name=\"no_results_found\">Пӗр тупсӑм та тупӑнман</string>\n    <string name=\"no_more_results\">Урӑх тупсӑмсем ҫук</string>\n    <string name=\"tabs_header\">Кантӑксем</string>\n    <string name=\"invalid_backup_file\">Тӗрӗс мар йантӑлав хайӑлӗ:</string>\n    <string name=\"updating_category\">Пухмӑша ҫӗнетни</string>\n    <string name=\"unknown_error\">Паллӑ мар йӑнӑш</string>\n    <string name=\"logout_success\">Есӗ тухрӑн</string>\n    <string name=\"logout\">Тух</string>\n    <string name=\"logout_title\">“%1$s тухмалла-и?</string>\n    <string name=\"login_success\">Ӑнӑҫлӑ кӗни</string>\n    <string name=\"login\">Кӗр</string>\n    <string name=\"password\">Кӗме сӑмах</string>\n    <string name=\"email\">Ылӑккӑтрунлӑ пуштӑ тӗлӗ</string>\n    <string name=\"username\">Усӑҫ ячӗ</string>\n    <string name=\"login_title\">%1$s кӗр</string>\n    <string name=\"downloaded_only_summary\">Санӑн вулавӑшри манкка алат</string>\n    <string name=\"pref_enable_acra\">Ӳкнисем ҫинчен тишереревсем ямалла</string>\n    <string name=\"check_for_updates\">Ҫӗнетӳ пуррине тӗрӗсле</string>\n    <string name=\"licenses\">Уҫӑ юмлӑ лиссенсисем</string>\n    <string name=\"version\">Версси</string>\n    <string name=\"website\">Сайт</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Хатӗрӗн ӗнерлӗве уҫаймарӗ</string>\n    <string name=\"battery_optimization_disabled\">Петтерей лайӑхлатнине сӳнтернӗ ӗнтӗ</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Хыҫ планлӑ ҫӗнетӳпе тата янтавланипе пулӑшать</string>\n    <string name=\"pref_disable_battery_optimization\">Петтерей лайӑхлатнине сӳнтер</string>\n    <string name=\"pref_backup_interval\">Йантӑлав тунин тӑтӑшлӑхӗ</string>\n    <string name=\"pref_refresh_library_covers\">Вулавӑшри манкӑсен хуплашкисене ҫӗнет</string>\n    <string name=\"clear_database_completed\">Ҫыравсене катертнӗ</string>\n    <string name=\"pref_clear_database_summary\">Санӑн вулавӑшра упранман манкӑн вуланӑ кун-ҫулне катерт</string>\n    <string name=\"pref_clear_database\">Пӗлӗмсен кӗлете тасат</string>\n    <string name=\"cache_delete_error\">Кеше тасатнӑ чух йӑнӑш тухрӗ</string>\n    <string name=\"cache_deleted\">Кеша тастнӑ. %1$d файла катертнӗ</string>\n    <string name=\"pref_clear_chapter_cache\">Сыпӑксен кешне тасат</string>\n    <string name=\"label_data\">Пӗлӗмсем</string>\n    <string name=\"requires_app_restart\">Ҫакӑ вӑя кӗрес тесен хушӑма хупса уҫмалла</string>\n    <string name=\"restoring_backup_canceled\">Тавӑрнине пӑрахӑҫланӑ</string>\n    <string name=\"restoring_backup_error\">Йантӑлав тавӑрни йӑнӑшӗ</string>\n    <string name=\"restoring_backup\">Йантӑлав тавӑрни</string>\n    <string name=\"restore_in_progress\">Тавӑрни пурнӑҫланать ӗнтӗ</string>\n    <string name=\"creating_backup_error\">Йантӑлав тунин йӑнӑшӗ</string>\n    <string name=\"creating_backup\">Йантӑлав тӑвӑнать</string>\n    <string name=\"backup_choice\">Мӗн йантӑлав тӑвасшӑн?</string>\n    <string name=\"backup_in_progress\">Йантӑлав пурнӑҫланать ӗнтӗ</string>\n    <string name=\"restore_completed\">Тавӑрни вӗҫленнӗ</string>\n    <string name=\"pref_create_backup_summ\">Хальхи вулавăша тавӑрма усӑ курма пулать</string>\n    <string name=\"invalid_backup_file_missing_manga\">Йантӑлавра манкасем ҫук.</string>\n    <string name=\"backup_created\">Йантӑлав тӑвӑннӑ</string>\n    <string name=\"pref_restore_backup_summ\">Вулавӑша йантӑлавран тавӑр</string>\n    <string name=\"pref_restore_backup\">Йантӑлав тавӑр</string>\n    <string name=\"pref_create_backup\">Йантӑлав ту</string>\n    <string name=\"updated_version\">v%1$s верссиччен ҫӗнетнӗ</string>\n    <string name=\"whats_new\">Мӗн ҫӗнни</string>\n    <string name=\"pref_category_theme\">Темӗ</string>\n    <string name=\"action_sort_date_added\">Хушни вӑхӑчӗпе</string>\n    <string name=\"download_insufficient_space\">Тиск ҫинче вырӑн ҫитмен пирки сыпӑксем тийенеймерӗҫ</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" пур ҫӗрте шыра</string>\n    <string name=\"pref_category_reading_mode\">Вулав тытӑмӗ</string>\n    <string name=\"no_pinned_sources\">Санӑн ҫакнӑ ҫӑл куҫ ҫук</string>\n    <string name=\"channel_complete\">Вӗҫленӗ</string>\n    <string name=\"channel_progress\">Ӳсӗм</string>\n    <string name=\"channel_errors\">Йӑнӑшсем</string>\n    <string name=\"backup_restore_missing_trackers\">Кӗмен йӗрлевсем:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Картнӑ сыпӑксене катертмелле</string>\n    <string name=\"pref_category_delete_chapters\">Сыпӑксене катерт</string>\n    <string name=\"ext_nsfw_warning\">NSFW (18+) шалаш пулма пултарать</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Ҫакӑ апра чӑнлавлӑ мар йе тӗрӗс мар палӑртнӑ хушмасен NSFW (18+) шалашне кӑтартма чӑрмантармасть.</string>\n    <string name=\"no_chapters_error\">Сыпӑксем ҫук</string>\n    <string name=\"also_set_chapter_settings_for_library\">Тата манӑн вулавăшри пур манкӑ валли усӑ кур</string>\n    <string name=\"chapter_settings_updated\">Яланхилле сыпӑк ӗнерлев ҫӗнетнӗ</string>\n    <string name=\"set_chapter_settings_as_default\">Яланхилле</string>\n    <string name=\"confirm_set_chapter_settings\">Ҫак ӗнерелевсене яланхилле упрасшӑнах-и?</string>\n    <string name=\"share_page_info\">%1$s: %2$s, %3$d-мӗш ел</string>\n    <string name=\"chapter_settings\">Сыпӑк ӗнерлеве</string>\n    <string name=\"action_search_settings\">Ӗнерӳ шыра</string>\n    <string name=\"downloaded_chapters\">Тиесе илнӗ сыпӑксем</string>\n    <string name=\"manga_from_library\">Вулавӑшран манкӑ</string>\n    <string name=\"pref_incognito_mode_summary\">Вулани кун-ҫула чарса лартать</string>\n    <string name=\"pref_clear_history\">Кун-ҫул тасат</string>\n    <string name=\"clear_history_completed\">Кун-ҫула катертнӗ</string>\n    <string name=\"pref_incognito_mode\">Вӑрттӑнлӑх тытӑмӗ</string>\n    <string name=\"clear_history_confirmation\">Чӑнах катертесшӗн-и? Веҫ кун-ҫулӗ ҫухалӗ.</string>\n    <string name=\"spen_next_page\">Маллали сыпӑк</string>\n    <string name=\"spen_previous_page\">Умӗнхи эл</string>\n    <string name=\"migration_help_guide\">Ҫӑл куҫ куҫарассипе пулӑшу</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) ҫӑл куҫсем</string>\n    <string name=\"file_picker_error\">Файлсене суйламалли хушӑм тупӑнман</string>\n    <string name=\"myanimelist_relogin\">Тархасшӑн MAL-а ҫӗнӗрен кӗр</string>\n    <string name=\"pref_show_nsfw_source\">Ҫӑл куҫсен тата хушмасен йат-йышӗнче кӑтартни</string>\n    <string name=\"track_finished_reading_date\">Вулама вӗҫленӗ вӑхӑчӗ</string>\n    <string name=\"track_started_reading_date\">Вулама пуҫланӑ вӑхӑчӗ</string>\n    <string name=\"edge_nav\">Хӗррипе</string>\n    <string name=\"kindlish_nav\">Kindle пек</string>\n    <string name=\"l_nav\">L пек</string>\n    <string name=\"action_desc\">Пӗчӗкленнипе</string>\n    <string name=\"action_asc\">Пысӑкланнипе</string>\n    <string name=\"action_order_by_chapter_number\">Сыпӑк шучӗпе</string>\n    <string name=\"action_order_by_upload_date\">Тийесе илни вӑхӑчӗпе</string>\n    <string name=\"action_filter_tracked\">Йӗрленет</string>\n    <string name=\"pref_dump_crash_logs_summary\">Файлсенчи йӑнӑшсен логсене хатерлевҫӗсем патне яма упрать</string>\n    <string name=\"pref_dump_crash_logs\">Йӑнӑш кӗнекине тийесе йар</string>\n    <string name=\"pref_viewer_nav\">Куҫӑм палли</string>\n    <string name=\"right_and_left_nav\">Сылтӑмран сулахаялла</string>\n    <string name=\"pref_dual_page_invert_summary\">Анлӑ елсене пайлани вулав майлӑ мар пулсан</string>\n    <string name=\"pref_dual_page_invert\">Анлӑ елсене тепӗр майлӑ пайлани</string>\n    <string name=\"pref_dual_page_split\">Анлӑ елсене пайлани</string>\n    <string name=\"action_display_show_number_of_items\">Хайлавсен шутне кӑтарт</string>\n    <string name=\"nav_zone_right\">Сылтӑм</string>\n    <string name=\"nav_zone_left\">Сулахай</string>\n    <string name=\"nav_zone_next\">Хыҫҫӑнхи</string>\n    <string name=\"nav_zone_prev\">Умӗнхи</string>\n    <string name=\"pref_dns_over_https\">HTTPS урлӑ DNS</string>\n    <string name=\"pref_category_auto_download\">Хӑй халлӗн тийени</string>\n    <string name=\"exclude\">Кӑлармалла: %s</string>\n    <string name=\"include\">Кӗртмелле: %s</string>\n    <string name=\"none\">Ҫук</string>\n    <string name=\"action_sort_chapter_fetch_date\">Йулашки сыпӑк илнипе</string>\n    <string name=\"update_check_eol\">Ҫак Android версси урӑх</string>\n    <string name=\"clipboard_copy_error\">Пайлашу аса ӑтавланаймарӗ</string>\n    <string name=\"rotation_landscape\">Тӑрӑх</string>\n    <string name=\"rotation_portrait\">Урлӑ</string>\n    <string name=\"rotation_type\">Урлӑ-тӑрӑх тӗсӗ</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Папкӑсене сери йачӗпе туни</string>\n    <string name=\"pref_create_folder_per_manga\">Елсене уйрӑм папкӑсенче упрамалла</string>\n    <string name=\"pref_reader_actions\">Тӑвӑмсем</string>\n    <string name=\"pref_show_navigation_mode_summary\">Пусма вырӑнсене вулӑш уҫӑ чухне кӑтартмалла</string>\n    <string name=\"action_show_errors\">Йӑнӑшсене кӑтарт</string>\n    <string name=\"cancel_all_for_series\">Ҫак серилӗх валли пурне те пӑрахӑҫла</string>\n    <string name=\"pref_downloads_summary\">Хӑй халлӗн тийесе илни, малтанах тийени</string>\n    <string name=\"action_sort_last_manga_update\">Йулашки хут ҫӗнетӳ пуррине тӗрӗсленипе</string>\n    <string name=\"action_sort_unread_count\">Йулнӑ сыпӑксемпе</string>\n    <string name=\"action_sort_count\">Хайлав шучӗпе</string>\n    <string name=\"action_remove_everything\">Пурне те катерт</string>\n    <string name=\"delete_category_confirmation\">«%s» пухмӑша катертесшӗн-и?</string>\n    <string name=\"delete_category\">Пухмӑша катерт</string>\n    <string name=\"action_display_local_badge\">Вырӑнти ҫӑл куҫран</string>\n    <string name=\"label_warning\">Асӑрхаттару</string>\n    <string name=\"action_display_cover_only_grid\">Йатсӑр сетке</string>\n    <string name=\"action_move_to_top_all_for_series\">Хайлава пуҫа куҫар</string>\n    <string name=\"confirm_lock_change\">Улшӑнӑва ҫирӗплетме есӗлӗхе ҫирӗплет</string>\n    <string name=\"action_show_manga\">Хайлава кӑтарт</string>\n    <string name=\"action_display_language_badge\">Чӗлхе</string>\n    <string name=\"action_search_hint\">Шыра…</string>\n    <string name=\"action_close\">Хуп</string>\n    <string name=\"action_start_downloading_now\">Тийеве халех пуҫла</string>\n    <string name=\"internal_error\">InternalError: Хушма хыпар-пӗлӳ пӑхма тӑвӑм-пулӑм кӗнекине пӑх</string>\n    <string name=\"pref_category_appearance\">Кӑтартӑну</string>\n    <string name=\"on\">Ҫутнӑ</string>\n    <string name=\"off\">Сӳнтернӗ</string>\n    <string name=\"pref_appearance_summary\">Темӗ, кун тата вӑхӑт тытӑмӗ</string>\n    <string name=\"pref_library_summary\">Пухмӑшсем, пӗтӗмӗшле ҫӗнетӳ, сыпӑксене туртни</string>\n    <string name=\"pref_reader_summary\">Вулав тытӑмӗ, кӑтартӑнни, куҫӑм</string>\n    <string name=\"label_default\">Йаланхилле</string>\n    <string name=\"action_open_random_manga\">Ӑнсӑрт хайлав уҫ</string>\n    <string name=\"theme_strawberrydaiquiri\">Ҫӗр ҫырли тайккирийӗ</string>\n    <string name=\"theme_midnightdusk\">Ҫур ҫӗр ӗнтрӗкӗ</string>\n    <string name=\"pref_tracking_summary\">Пӗр йенлӗ ӳсӗм килӗштерӗвӗ, анлӑлатнӑ килӗштерӳ</string>\n    <string name=\"connected_to_wifi\">Wi-Fi урлӑ ҫеҫ</string>\n    <string name=\"action_display_show_continue_reading_button\">«Малалла вула» пускӑч</string>\n    <string name=\"pref_security_summary\">Апа ҫаклатни, ыкран хӳтӗлевӗ</string>\n    <string name=\"restrictions\">Чарусем: %s</string>\n    <string name=\"pref_update_only_completely_read\">Вуламан сыпӑклисене сиктермелле</string>\n    <string name=\"label_started\">Пуҫланӑ</string>\n    <string name=\"label_local\">Вырӑнти</string>\n    <string name=\"label_downloaded\">Тийесе илнӗ</string>\n    <string name=\"theme_tidalwave\">Шыв хӑпарнин хумӗ</string>\n    <string name=\"pref_app_theme\">Ап темми</string>\n    <string name=\"relative_time_today\">Пайан</string>\n    <string name=\"theme_lavender\">Лавантӑ</string>\n    <string name=\"theme_yinyang\">Ин тата Йан</string>\n    <string name=\"pref_browse_summary\">Ҫӑл куҫсем, хушмасем, пӗтӗмӗшле шырав</string>\n    <string name=\"theme_greenapple\">Симӗс пан улми</string>\n    <string name=\"theme_yotsuba\">Йутсупа</string>\n    <string name=\"network_not_metered\">Чараксӑр тетел урлӑ ҫеҫ</string>\n    <string name=\"pref_update_only_started\">Пуҫнанисене сиктермелле</string>\n    <string name=\"theme_tako\">Такку</string>\n    <string name=\"pref_dark_theme_pure_black\">Хуп-хура темӗ</string>\n    <string name=\"pref_app_language\">Ап чӗлхи</string>\n    <string name=\"action_not_now\">Халь мар</string>\n    <string name=\"update_72hour\">Кашни 3 кун</string>\n    <string name=\"theme_tealturquoise\">Симӗс кӑвак</string>\n    <string name=\"theme_monet\">Куҫӑмлӑ</string>\n    <string name=\"label_stats\">Шутлавсем</string>\n    <string name=\"action_copy_to_clipboard\">Пайлашу асне ӑт</string>\n    <string name=\"pref_backup_summary\">Хӑй тӗллӗн тата хӑй халлӗн йантӑлав</string>\n    <string name=\"action_update_category\">Пухмӑша ҫӗнет</string>\n    <string name=\"pref_advanced_summary\">Йӑнӑш кӗнекине тийесе йани, паттарейе лайӑхлатни</string>\n    <string name=\"pref_library_update_show_tab_badge\">Вуламан сыпӑксен шутне «Ҫӗнӗлӗх» ыккун ҫинче кӑтартни</string>\n    <string name=\"pref_landscape_zoom\">Сӑна тӑрӑх пысӑклатни</string>\n    <string name=\"multi_lang\">Нумай чӗлхеллӗ</string>\n    <string name=\"automatic_background\">Хӑй халлӗн</string>\n    <string name=\"disabled_nav\">Сӳнтернӗ</string>\n    <string name=\"extension_api_error\">Хушмасен йат-йышне илесси пулаймарӗ</string>\n    <string name=\"categorized_display_settings\">Кашни пухмӑшӑн хӑйӗн ала ӗнерӗвӗсем</string>\n    <string name=\"ext_app_info\">Ап ҫинчен</string>\n    <string name=\"split_tall_images_summary\">Вулӑшӑн тухӑҫа лайӑхлатать</string>\n    <string name=\"error_user_agent_string_blank\">User agent пушӑ пулмалла мар</string>\n    <string name=\"ext_info_language\">Чӗлхе</string>\n    <string name=\"pref_navigate_pan\">Пуснӑ чухне анлӑ сӑнсене сарӑмлатни</string>\n    <string name=\"split_tall_images\">Вӑрӑм сӑнсене пайлани</string>\n    <string name=\"missing_storage_permission\">Управ ирӗкӗсене паман</string>\n    <string name=\"ext_info_version\">Верҫҫи</string>\n    <string name=\"ext_update_all\">Пурне те ҫӗнет</string>\n    <string name=\"delete_downloaded\">Тийесе илнисене катерт</string>\n    <string name=\"pref_update_only_in_release_period\">Ҫӗнӗ сыпӑк хӑҫан тухассине шутламалла</string>\n    <string name=\"pref_chapter_swipe_end\">Сылтӑмалла туртсан сыпӑк</string>\n    <string name=\"pref_chapter_swipe_start\">Сулахайалла туртсан сыпӑк</string>\n    <string name=\"ext_installer_pref\">Ларткӑч</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ӗҫлемест</string>\n    <string name=\"ext_info_age_rating\">Ҫул-ӳсӗм чаравӗ</string>\n    <string name=\"action_sort_next_updated\">Тепӗр кӗтӗнекен ҫӗнетӳпе</string>\n    <string name=\"ext_install_service_notif\">Хушма лартни…</string>\n    <string name=\"action_set_interval\">Тӑтӑшлӑх палӑрт</string>\n    <string name=\"action_filter_interval_custom\">Ӗнерӳллӗ илӳ тӑтӑшлӑхӗ</string>\n    <string name=\"ext_installer_legacy\">Малтанхилле</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizuku-н хушма ларткӑча усӑ курма Shizuku ларт тата ҫут.</string>\n    <string name=\"action_ok\">Йурӗ</string>\n    <string name=\"unlock_app_title\">%s уҫ</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Хайлава вӗҫе куҫар</string>\n    <string name=\"pref_library_update_categories_details\">Кӗртнӗ пухмӑшсенче пулнӑ пулсан та кӑларса пӑрахнӑ пухмӑшсенче пулнӑ серилӗхсем ҫӗнелмӗҫ.</string>\n    <string name=\"selected\">Суйланӑ</string>\n    <string name=\"not_selected\">Суйламан</string>\n    <string name=\"action_bar_up_description\">Ҫӳлелле куҫ</string>\n    <string name=\"scanlator\">Куҫаруҫӑ</string>\n    <string name=\"label_data_storage\">Пӗлӗмсем тата усрав</string>\n    <string name=\"action_sort_tracker_score\">Йӗрлевҫӗн хаклавӗ</string>\n    <string name=\"action_apply\">Кӳр</string>\n    <string name=\"action_revert_to_default\">Йаланхилле тавӑр</string>\n    <string name=\"pref_onboarding_guide\">Пуҫлама пӗлкӗч</string>\n    <string name=\"onboarding_heading\">Килӗрех!</string>\n    <string name=\"onboarding_description\">Айтӑр темиҫе йапала ӗнерӗпӗр. Есӗ вӗсене йаланах кайран ӗнерӳсенче улӑштарма пултаратӑн.</string>\n    <string name=\"onboarding_action_next\">Малалла</string>\n    <string name=\"onboarding_action_finish\">Пуҫла</string>\n    <string name=\"onboarding_action_skip\">Ирттер</string>\n    <string name=\"onboarding_storage_action_select\">Папкӑ суйла</string>\n    <string name=\"onboarding_storage_selection_required\">Папкӑ суйламалла</string>\n    <string name=\"onboarding_storage_help_action\">Усрав пӗлкӗчӗ</string>\n    <string name=\"onboarding_permission_install_apps\">Апсене лартма ирӗк</string>\n    <string name=\"onboarding_permission_install_apps_description\">Ҫӑл куҫсен хушмисене лартма ирӗк парӗ.</string>\n    <string name=\"onboarding_permission_notifications\">Систерӳсем килме ирӗк</string>\n    <string name=\"onboarding_permission_notifications_description\">Вулавӑшри ҫӗнетӳсем пурри пирки тата ытти пирки пӗлтерӗ.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Петтерейе хыҫра усӑ курма ирӗк</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Тӑсӑлакан вулавӑш ҫӗнелни, тийени тата йантӑ ӑтава тавӑрни чарӑнасран хӑтӑлтарӗ.</string>\n    <string name=\"onboarding_permission_action_grant\">Ирӗк пар</string>\n    <string name=\"onboarding_guides_new_user\">%s апра ҫӗнни? Епӗр пуҫлав пӗлкӗчӗпе паллашма сӗнетпӗр.</string>\n    <string name=\"theme_nord\">Ҫур ҫӗр</string>\n    <string name=\"onboarding_storage_help_info\">Кивӗ верҫҫирен ҫӗнӗлетӗн те мӗн суламаллине пӗлместӗн? Нумайрах пӗлме усрав пӗлкӗчне кӗрсе пӑх.</string>\n    <string name=\"onboarding_guides_returning_user\">%s ҫӗнӗрен лартатӑн?</string>\n    <string name=\"pref_relative_format_summary\">«%2$s» вырӑнне «%1$s»</string>\n    <string name=\"label_upcoming\">Пулас</string>\n    <string name=\"action_menu_overflow_description\">Ытти ӗнерӳсем</string>\n    <string name=\"action_copy_link\">Каҫҫа ӑт</string>\n    <string name=\"action_sort_random\">Ӑнсӑрт</string>\n    <string name=\"onboarding_permission_crashlytics\">Йӑнӑшсен кӗнекине йар</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Вӑрттӑнлатнӑ йӑнӑшсен кӗнекине хатӗрлевҫӗсене йарса парӗ.</string>\n    <string name=\"onboarding_permission_analytics_description\">Апӑн ӗҫ-тивӗҫсене лайӑхлатма вӑрттӑнлатнӑ усӑ курав пӗлӗмӗсене йарса парӗ.</string>\n    <string name=\"onboarding_storage_info\">%1$s тийенӗ сыпӑксене, йантӑлав ӑтӑвӗсене тата ыттине упрамалли папкӑ суйла.\\n\\nУйтӑм папкӑ усӑ курма сӗнетпӗр.\\n\\nСуйланӑ папкӑ: %2$s</string>\n    <string name=\"onboarding_permission_analytics\">Тӗпчевлеме ирӗк</string>\n    <string name=\"action_add_anyway\">Пур пӗрех хуш</string>\n    <string name=\"label_auto\">Хӑй халлӗн</string>\n    <string name=\"action_display_unread_badge\">Вуламан сыпӑк</string>\n    <string name=\"action_notes\">Ҫырчӑк</string>\n    <string name=\"action_edit_notes\">Ҫырчӑк улӑштар</string>\n    <string name=\"theme_catppuccin\">Кушак пуҫҫин</string>\n    <string name=\"theme_monochrome\">Пӗр тӗс</string>\n    <string name=\"pref_relative_format\">Вӑхӑт иртни палли</string>\n    <string name=\"pref_security\">Сыхлав</string>\n    <string name=\"pref_firebase\">Тишкерӳ тата йӑнӑшсен кӗнеки</string>\n    <string name=\"firebase_summary\">Йӑнӑшсен кӗнекине тата тишкерӗве йарса йӑнӑшсене тупма, тухӑҫлӑхне аталантарма тата пулас ҫӗнетӳсене санӑн кирлӗлӗх тивӗҫтерме пулӑшӗ</string>\n    <string name=\"pref_library_update_smart_update\">Тӑнлӑ ҫӗнетӳ</string>\n    <string name=\"pref_behavior\">Тыткалу</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Иккӗллӗ сыпӑкне вуланӑ тесе палӑртмалла</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Сыпӑк вуланӑ хыҫҫӑн</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Ҫӗнӗ сыпӑк илнӗ хыҫҫӑн</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Ҫук сыпӑксен палӑрткӑчне кӑтартмалла мар</string>\n    <string name=\"ext_remove\">Катерт</string>\n    <string name=\"ext_confirm_remove\">Хушмана катертмелле</string>\n    <string name=\"remove_private_extension_message\">«%s» хушмана катертесшӗн-и?</string>\n    <string name=\"ext_permission_install_apps_warning\">Хушмасене лартма ирӗксем кирлӗ. Ирӗксене пама кунта пус.</string>\n    <string name=\"ext_revoke_trust\">Шанчӑклӑ мар хушмасенчен шанчӑк туртса илмелле</string>\n    <string name=\"label_extension_repos\">Хушмасен ҫӳпҫисем</string>\n    <string name=\"information_empty_repos\">Пӗр хушмасен ҫӳпҫи те ҫук.</string>\n    <string name=\"action_add_repo\">Хушмасен ҫӳпҫи хуш</string>\n    <string name=\"label_add_repo_input\">Хушмасен ҫӳпҫин URL-ӗ</string>\n    <string name=\"action_add_repo_message\">%s-а хушма хушмасен ҫӳпҫи хуш. «index.min.json» тенипе вӗҫленекен URL пулмалла.</string>\n    <string name=\"error_repo_exists\">Ку хушмасен ҫӳпҫи унсӑрах пур!</string>\n    <string name=\"action_delete_repo\">Хушмасен ҫӳпҫине катерт</string>\n    <string name=\"invalid_repo_name\">Хушмасен ҫӳпҫин йӑнӑш URL-ӗ</string>\n    <string name=\"delete_repo_confirmation\">«%s» хушма ҫӳпҫине катертесшӗн-и?</string>\n    <string name=\"add_repo_confirmation\">«%s» хушмасен ҫӳпҫине хушасшӑн-и?</string>\n    <string name=\"action_open_repo\">Хушмасен ҫӳпҫин ҫӑл куҫне уҫ</string>\n    <string name=\"action_replace_repo\">Ылмаштар</string>\n    <string name=\"pref_double_tap_zoom\">Пысӑклатма икӗ хут пусмалла</string>\n    <string name=\"pref_flash_duration_summary\">%1$s мҫ</string>\n    <string name=\"pref_flash_style_black\">Хура</string>\n    <string name=\"pref_flash_style_white\">Шурӑ</string>\n    <string name=\"pref_flash_style_white_black\">Шурӑпа хура</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Йаланхилле (%d)</string>\n    <string name=\"pref_inverted_colors\">Хирӗҫле тӗссем</string>\n    <string name=\"pref_skip_dupe_chapters\">Иккӗллӗ сыпӑксене сиктермелле</string>\n    <string name=\"rotation_reverse_portrait\">Хирӗҫле урлӑ</string>\n    <string name=\"invalid_location\">Йӑнӑш тӗл: %s</string>\n    <string name=\"action_create\">Ту</string>\n    <string name=\"invalid_backup_file_error\">Тулли йӑнӑш:</string>\n    <string name=\"app_settings\">Ап ӗнерӗвӗ</string>\n    <string name=\"source_settings\">Ҫӑл куҫ ӗнерӗвӗ</string>\n    <string name=\"extensionRepo_settings\">Хушмасен ҫӳпҫисем</string>\n    <string name=\"non_library_settings\">Пур вуланӑ серилӗх</string>\n    <string name=\"library_list\">Вулавӑш йат-йышӗ</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/da/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">I går</item>\n        <item quantity=\"other\">%1$d dage siden</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Efter %1$s minut</item>\n        <item quantity=\"other\">Efter %1$s minutter</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategori</item>\n        <item quantity=\"other\">%d kategorier</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Næste ulæste kapitel</item>\n        <item quantity=\"other\">Næste %d ulæste kapitler</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/da/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_recent_updates\">Opdateringer</string>\n    <string name=\"label_recent_manga\">Historik</string>\n    <string name=\"label_extension_info\">Udvidelses info</string>\n    <string name=\"label_help\">Hjælp</string>\n    <string name=\"label_migration\">Migerering</string>\n    <string name=\"label_default\">Standard</string>\n    <string name=\"label_warning\">Advarsel</string>\n    <string name=\"action_filter_bookmarked\">Bogmærket</string>\n    <string name=\"action_filter_empty\">Fjern filter</string>\n    <string name=\"action_select_inverse\">Inverter valg</string>\n    <string name=\"action_mark_as_read\">Markér som læst</string>\n    <string name=\"action_mark_as_unread\">Markér som ulæst</string>\n    <string name=\"action_mark_previous_as_read\">Markér tidligere som læst</string>\n    <string name=\"action_download\">Download</string>\n    <string name=\"action_bookmark\">Bogmærk kapitel</string>\n    <string name=\"action_enable_all\">Aktivér alt</string>\n    <string name=\"action_edit\">Rediger</string>\n    <string name=\"action_rename_category\">Omdøb kategori</string>\n    <string name=\"action_edit_cover\">Rediger omslag</string>\n    <string name=\"action_view_chapters\">Se kapitler</string>\n    <string name=\"action_display_comfortable_grid\">Komfortabelt grid</string>\n    <string name=\"action_display_cover_only_grid\">Kun covers som grid</string>\n    <string name=\"information_empty_library\">Dit bibliotek er tomt</string>\n    <string name=\"information_empty_category\">Du har ikke nogen kategorier. Tryk på plusset for at oprette en og organisere dit bibliotek.</string>\n    <string name=\"label_more\">Mere</string>\n    <string name=\"label_library\">Bibliotek</string>\n    <string name=\"categories\">Kategorier</string>\n    <string name=\"manga\">Biblioteksposter</string>\n    <string name=\"chapters\">Kapitler</string>\n    <string name=\"track\">Sporing</string>\n    <string name=\"label_sources\">Kilder</string>\n    <string name=\"label_settings\">Indstillinger</string>\n    <string name=\"name\">Navn</string>\n    <string name=\"information_no_recent\">Ingen nylige opdateringer</string>\n    <string name=\"action_sort_last_read\">Sidst læst</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_sort_alpha\">Alfabetisk</string>\n    <string name=\"action_remove\">Fjern</string>\n    <string name=\"label_download_queue\">Download kø</string>\n    <string name=\"history\">Historik</string>\n    <string name=\"label_backup\">Backup og gendannelse</string>\n    <string name=\"label_extensions\">Udvidelser</string>\n    <string name=\"information_no_recent_manga\">Intet læst for nyligt</string>\n    <string name=\"information_no_downloads\">Ingen downloads</string>\n    <string name=\"action_sort_chapter_fetch_date\">Dato hentet</string>\n    <string name=\"action_settings\">Indstillinger</string>\n    <string name=\"action_filter_unread\">Ulæst</string>\n    <string name=\"action_sort_count\">Manga ialt</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_sort_date_added\">Dato tilføjet</string>\n    <string name=\"action_select_all\">Vælg alt</string>\n    <string name=\"action_search_settings\">Søgeindstillinger</string>\n    <string name=\"action_update_library\">Opdater bibliotek</string>\n    <string name=\"action_add_category\">Tilføj kategori</string>\n    <string name=\"action_next_chapter\">Næste kapitel</string>\n    <string name=\"action_retry\">Forsøg igen</string>\n    <string name=\"action_display_language_badge\">Sprog</string>\n    <string name=\"action_sort_total\">Kapitler i alt</string>\n    <string name=\"action_sort_latest_chapter\">Seneste kapitel</string>\n    <string name=\"action_global_search\">Global søgning</string>\n    <string name=\"action_delete\">Slet</string>\n    <string name=\"action_add\">Tilføj</string>\n    <string name=\"action_search\">Søg</string>\n    <string name=\"action_edit_categories\">Rediger kategorier</string>\n    <string name=\"action_remove_bookmark\">Fjern bogmærke fra kapitel</string>\n    <string name=\"action_disable_all\">Deaktivér alt</string>\n    <string name=\"action_pause\">Pause</string>\n    <string name=\"action_previous_chapter\">Forrige kapitel</string>\n    <string name=\"action_open_in_browser\">Åben i browser</string>\n    <string name=\"action_show_manga\">Vis manga</string>\n    <string name=\"action_open_in_web_view\">Åben i WebView</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"action_resume\">Fortsæt</string>\n    <string name=\"action_migrate\">Migrere</string>\n    <string name=\"action_display\">Vis</string>\n    <string name=\"action_display_mode\">Visningsmåde</string>\n    <string name=\"action_display_grid\">Kompakt grid</string>\n    <string name=\"action_display_list\">Liste</string>\n    <string name=\"action_display_download_badge\">Downloaded kapitler</string>\n    <string name=\"action_display_local_badge\">Lokale manga</string>\n    <string name=\"action_filter_tracked\">Sporet</string>\n    <string name=\"action_move_category\">Vælg kategorier</string>\n    <string name=\"action_display_show_tabs\">Vis kategorifaner</string>\n    <string name=\"confirm_lock_change\">Godkend for at bekræfte ænding</string>\n    <string name=\"action_display_show_number_of_items\">Vis antal genstande</string>\n    <string name=\"action_disable\">Deaktivér</string>\n    <string name=\"action_pin\">Fastgør</string>\n    <string name=\"action_unpin\">Frigør</string>\n    <string name=\"action_order_by_upload_date\">Efter upload dato</string>\n    <string name=\"action_order_by_chapter_number\">Efter kapitelnummer</string>\n    <string name=\"action_oldest\">Ældste</string>\n    <string name=\"action_move_to_top\">Flyt til toppen</string>\n    <string name=\"action_move_to_top_all_for_series\">Flyt serie til toppen</string>\n    <string name=\"action_move_to_bottom\">Flyt til bunden</string>\n    <string name=\"action_install\">Installer</string>\n    <string name=\"action_share\">Del</string>\n    <string name=\"action_save\">Gem</string>\n    <string name=\"action_reset\">Nulstil</string>\n    <string name=\"action_undo\">Fortryd</string>\n    <string name=\"action_open_log\">Åben log</string>\n    <string name=\"cancel_all_for_series\">Afbryd alle for denne serie</string>\n    <string name=\"action_sort\">Sorter</string>\n    <string name=\"action_cancel_all\">Afbryd alle</string>\n    <string name=\"action_cancel\">Afbryd</string>\n    <string name=\"action_asc\">Stigende</string>\n    <string name=\"action_newest\">Nyeste</string>\n    <string name=\"action_desc\">Faldende</string>\n    <string name=\"action_show_errors\">Tryk for at se detaljer</string>\n    <string name=\"action_restore\">Gendan</string>\n    <string name=\"action_webview_back\">Tilbage</string>\n    <string name=\"action_webview_refresh\">Genindlæs</string>\n    <string name=\"action_start_downloading_now\">Start download nu</string>\n    <string name=\"loading\">Loader…</string>\n    <string name=\"app_not_available\">App ikke tilgængelig</string>\n    <string name=\"pref_category_general\">Generelt</string>\n    <string name=\"pref_category_appearance\">Udseende</string>\n    <string name=\"pref_category_downloads\">Downloads</string>\n    <string name=\"pref_category_tracking\">Sporing</string>\n    <string name=\"action_close\">Luk</string>\n    <string name=\"pref_category_reader\">Læser</string>\n    <string name=\"action_webview_forward\">Frem</string>\n    <string name=\"pref_category_library\">Bibliotek</string>\n    <string name=\"pref_category_advanced\">Avanceret</string>\n    <string name=\"pref_category_about\">Om</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"theme_system\">Følg system</string>\n    <string name=\"theme_light\">Fra</string>\n    <string name=\"theme_dark\">Til</string>\n    <string name=\"pref_app_theme\">App tema</string>\n    <string name=\"theme_monet\">Dynamisk</string>\n    <string name=\"theme_greenapple\">Æble grøn</string>\n    <string name=\"theme_midnightdusk\">Skumring</string>\n    <string name=\"theme_strawberrydaiquiri\">Jordbær Daiquiri</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_tealturquoise\">Blågrøn &amp; Turquoise</string>\n    <string name=\"theme_yinyang\">Yin-yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Kulsort</string>\n    <string name=\"pref_date_format\">Dato format</string>\n    <string name=\"pref_manage_notifications\">Håndter notifikationer</string>\n    <string name=\"pref_category_security\">Sikkerhed</string>\n    <string name=\"lock_with_biometrics\">Kræv oplåsning</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) kilder</string>\n    <string name=\"pref_show_nsfw_source\">Vis i kilder og udvidelsesliste</string>\n    <string name=\"parental_controls_info\">Dette forhindrer ikke uofficielle eller potentielt ukorrekt markerede udvidelser fra at vise NSFW (18+) indhold i appen.</string>\n    <string name=\"relative_time_today\">I dag</string>\n    <string name=\"lock_when_idle\">Lås ved inaktivitet</string>\n    <string name=\"lock_always\">Altid</string>\n    <string name=\"lock_never\">Aldrig</string>\n    <string name=\"hide_notification_content\">Skjul notifikationsindhold</string>\n    <string name=\"secure_screen\">Sikker skærm</string>\n    <string name=\"secure_screen_summary\">Sikker skærm skjuler app indhold, når der skiftes mellem apps, og blokerer for skærmbilleder</string>\n    <string name=\"pref_category_display\">Vis</string>\n    <string name=\"pref_library_update_restriction\">Enhedsbegrænsninger for automatiske opdateringer</string>\n    <string name=\"connected_to_wifi\">Kun på WiFi</string>\n    <string name=\"pref_library_columns\">Elementer per række</string>\n    <string name=\"landscape\">Liggende</string>\n    <string name=\"portrait\">Stående</string>\n    <string name=\"pref_category_library_update\">Global opdatering</string>\n    <string name=\"pref_library_update_interval\">Automatiske opdateringer</string>\n    <string name=\"update_never\">Fra</string>\n    <string name=\"update_6hour\">Hver 6. time</string>\n    <string name=\"update_12hour\">Hver 12. time</string>\n    <string name=\"update_24hour\">Dagligt</string>\n    <string name=\"update_48hour\">Hver anden dag</string>\n    <string name=\"update_72hour\">Hver tredje dag</string>\n    <string name=\"update_weekly\">Ugentligt</string>\n    <string name=\"charging\">Kun under opladning</string>\n    <string name=\"restrictions\">Begrænsninger: %s</string>\n    <string name=\"pref_update_only_completely_read\">Med ulæst kapitler</string>\n    <string name=\"pref_update_only_non_completed\">Med \\\"Færdig\\\" status</string>\n    <string name=\"pref_update_only_started\">Der ikke er blevet startet</string>\n    <string name=\"multi_lang\">Multi</string>\n    <string name=\"delete_category_confirmation\">Ønsker du at slette kategorien \\\"%s\\\"?</string>\n    <string name=\"theme_tidalwave\">Tidevandsbølge</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Søg efter nyt cover og detaljer, når biblioteket opdateres</string>\n    <string name=\"pref_library_update_refresh_metadata\">Opdater automatisk metadata</string>\n    <string name=\"default_category\">Standard kategori</string>\n    <string name=\"action_sort_last_manga_update\">Nyeste manga opdateringer</string>\n    <string name=\"action_sort_unread_count\">Antal ulæst</string>\n    <string name=\"delete_category\">Slet kategori</string>\n    <string name=\"exclude\">Ekskluder: %s</string>\n    <string name=\"theme_lavender\">Lavendel</string>\n    <string name=\"default_category_summary\">Spørg altid</string>\n    <string name=\"pref_library_update_categories_details\">Manga i ekskluderede kategorier vil ikke blive opdateret selv hvis de også er i inkluderede kategorier.</string>\n    <string name=\"all\">Alle</string>\n    <string name=\"none\">Ingen</string>\n    <string name=\"include\">Inkluder: %s</string>\n    <string name=\"pref_app_language\">App sprog</string>\n    <string name=\"action_remove_everything\">Fjern alt</string>\n    <string name=\"login\">Login</string>\n    <string name=\"unknown_error\">Ukendt fejl</string>\n    <string name=\"internal_error\">InternalError: Tjek nedbrudslogfiler for yderligere information</string>\n    <string name=\"logout_success\">Du er nu logget ud</string>\n    <string name=\"login_success\">Logget ind</string>\n    <string name=\"logout_title\">Log af %1$s?</string>\n    <string name=\"add_to_library\">Tilføj til bibliotek</string>\n    <string name=\"in_library\">I Biblioteket</string>\n    <string name=\"remove_from_library\">Fjern fra biblioteket</string>\n    <string name=\"logout\">Log af</string>\n    <string name=\"scale_type_fit_height\">Tilpas højde</string>\n    <string name=\"label_stats\">Statistik</string>\n    <string name=\"pref_fullscreen\">Fuldskærmsvisning</string>\n    <string name=\"white_background\">Hvid</string>\n    <string name=\"ext_pending\">Ventende</string>\n    <string name=\"ext_installer_pref\">Installationsprogram</string>\n    <string name=\"action_copy_to_clipboard\">Kopiér til udklipsholder</string>\n    <string name=\"unlock_app_title\">Lås op for %s</string>\n    <string name=\"pref_skip_filtered_chapters\">Spring over filtrerede kapitler</string>\n    <string name=\"label_downloaded\">Nedhentet</string>\n    <string name=\"ext_info_version\">Version</string>\n    <string name=\"action_set_interval\">Angiv interval</string>\n    <string name=\"delete_downloaded\">Slet nedhentede</string>\n    <string name=\"action_apply\">Anvend</string>\n    <string name=\"scale_type_fit_width\">Tilpas bredde</string>\n    <string name=\"pref_reader_theme\">Baggrundsfarve</string>\n    <string name=\"ext_info_language\">Sprog</string>\n    <string name=\"pref_viewer_type\">Standardlæsetilstand</string>\n    <string name=\"action_revert_to_default\">Nulstil til standard</string>\n    <string name=\"ext_install\">Installér</string>\n    <string name=\"on\">Til</string>\n    <string name=\"disabled_nav\">Deaktiveret</string>\n    <string name=\"action_search_hint\">Søg…</string>\n    <string name=\"nav_zone_next\">Næste</string>\n    <string name=\"pref_skip_read_chapters\">Spring over kapitler markeret som læst</string>\n    <string name=\"pref_downloads_summary\">Automatisk nedhentning, nedhent forud</string>\n    <string name=\"ext_installing\">Installerer</string>\n    <string name=\"tapping_inverted_vertical\">Lodret</string>\n    <string name=\"action_update_category\">Opdatér kategori</string>\n    <string name=\"ext_update_all\">Opdater alle</string>\n    <string name=\"ext_updates_pending\">Opdateringer venter</string>\n    <string name=\"off\">Fra</string>\n    <string name=\"pref_backup_summary\">Manuel og automatisk sikkerhedskopiering, lagerplads</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Flyt serie til bunden</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"ext_update\">Opdater</string>\n    <string name=\"tapping_inverted_both\">Begge</string>\n    <string name=\"tapping_inverted_horizontal\">Vandret</string>\n    <string name=\"label_data_storage\">Data og lagring</string>\n    <string name=\"pref_reader_summary\">Læsetilstand, skærmvisning, navigation</string>\n    <string name=\"nav_zone_right\">Højre</string>\n    <string name=\"nav_zone_prev\">Forrige</string>\n    <string name=\"ext_downloading\">Henter ned</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_uninstall\">Afinstallér</string>\n    <string name=\"action_not_now\">Ikke nu</string>\n    <string name=\"ext_install_service_notif\">Installerer udvidelse…</string>\n    <string name=\"pref_show_page_number\">Vis sidetal</string>\n    <string name=\"label_started\">Påbegyndt</string>\n    <string name=\"pref_show_reading_mode\">Vis læsetilstand</string>\n    <string name=\"pref_update_only_in_release_period\">Uden for forventet udgivelsesperiode</string>\n    <string name=\"ext_installed\">Installeret</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"right_and_left_nav\">Højre og Venstre</string>\n    <string name=\"scale_type_stretch\">Stræk</string>\n    <string name=\"black_background\">Sort</string>\n    <string name=\"automatic_background\">Automatisk</string>\n    <string name=\"pref_appearance_summary\">Tema, dato- og tidsformat</string>\n    <string name=\"pref_relative_format\">Relative tidsstempler</string>\n    <string name=\"ext_obsolete\">Forældet</string>\n    <string name=\"gray_background\">Grå</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" i stedet for \\\"%2$s\\\"</string>\n    <string name=\"action_sort_next_updated\">Næste forventede opdatering</string>\n    <string name=\"pref_browse_summary\">Kilder, udvidelser, global søgning</string>\n    <string name=\"nav_zone_left\">Venstre</string>\n    <string name=\"backup_created\">Sikkerhedskopi oprettet</string>\n    <string name=\"pref_always_show_chapter_transition\">Vis altid kapitelovergang</string>\n    <string name=\"action_create\">Opret</string>\n    <string name=\"pref_restore_backup\">Gendan sikkerhedskopi</string>\n    <string name=\"used_cache\">Brugt: %1$s</string>\n    <string name=\"pref_lowest\">Laveste</string>\n    <string name=\"rotation_type\">Rotation</string>\n    <string name=\"pref_category_delete_chapters\">Slet kapitler</string>\n    <string name=\"pref_create_backup\">Opret sikkerhedskopi</string>\n    <string name=\"rotation_portrait\">Stående</string>\n    <string name=\"pref_category_reading\">Læser</string>\n    <string name=\"channel_ext_updates\">Udvidelsesopdateringer</string>\n    <string name=\"creating_backup_error\">Sikkerhedskopiering mislykkedes</string>\n    <string name=\"rotation_free\">Fri</string>\n    <string name=\"channel_errors\">Fejl</string>\n    <string name=\"restore_completed\">Gendannelse fuldført</string>\n    <string name=\"pref_remove_exclude_categories\">Udelukkede kategorier</string>\n    <string name=\"fifth_to_last\">Femtesidst læste kapitel</string>\n    <string name=\"invalid_backup_file\">Ugyldig sikkerhedskopieringsfil</string>\n    <string name=\"channel_app_updates\">Appopdateringer</string>\n    <string name=\"spen_next_page\">Næste side</string>\n    <string name=\"exception_offline\">Ingen internetforbindelse</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"pref_category_reading_mode\">Læsetilstand</string>\n    <string name=\"remove_manga\">Du er ved at fjerne \\\"%s\\\" fra dit bibliotek</string>\n    <string name=\"pref_highest\">Højeste</string>\n    <string name=\"pref_low\">Lav</string>\n    <string name=\"source_settings\">Kildeindstillinger</string>\n    <string name=\"app_settings\">App-indstillinger</string>\n    <string name=\"fourth_to_last\">Fjerdesidst læste kapitel</string>\n    <string name=\"rotation_landscape\">Liggende</string>\n    <string name=\"requires_app_restart\">Kræver genstart af appen for at træde i kraft</string>\n    <string name=\"pref_backup_interval\">Automatisk sikkerhedskopieringsfrekvens</string>\n    <string name=\"split_tall_images\">Opdel høje billeder</string>\n    <string name=\"disabled\">Deaktiveret</string>\n    <string name=\"last_read_chapter\">Senest læste kapitel</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"pref_high\">Høj</string>\n    <string name=\"pref_restore_backup_summ\">Gendan biblioteket fra sikkerhedskopi</string>\n    <string name=\"spen_previous_page\">Forrige side</string>\n    <string name=\"third_to_last\">Tredjesidst læste kapitel</string>\n    <string name=\"invalid_location\">Ugyldig placering: %s</string>\n    <string name=\"pref_create_backup_summ\">Kan bruges til at gendanne nuværende bibliotek</string>\n    <string name=\"exception_http\">HTTP %d, tjek websiden i WebView</string>\n    <string name=\"second_to_last\">Næstsidst læste kapitel</string>\n    <string name=\"creating_backup\">Opretter sikkerhedskopi</string>\n    <string name=\"exception_unknown_host\">Kunne ikke nå %s</string>\n    <string name=\"channel_new_chapters\">Kapitelopdateringer</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/de/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Nach %1$s Minute</item>\n        <item quantity=\"other\">Nach %1$s Minuten</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d neues Kapitel</item>\n        <item quantity=\"other\">%1$d neue Kapitel</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Kapitel %1$s und 1 weiteres</item>\n        <item quantity=\"other\">Kapitel %1$s und %2$d weitere</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Für %d Eintrag</item>\n        <item quantity=\"other\">Für %d Einträge</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Erweiterungsaktualisierung verfügbar</item>\n        <item quantity=\"other\">%d Erweiterungsaktualisierungen verfügbar</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s verbleibend</item>\n        <item quantity=\"other\">%1$s verbleibend</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d Kategorie</item>\n        <item quantity=\"other\">%d Kategorien</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Erledigt in %1$s mit einem Fehler</item>\n        <item quantity=\"other\">Erledigt in %1$s mit %2$s Fehlern</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s Kapitel</item>\n        <item quantity=\"other\">%1$s Kapitel</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d Tracker</item>\n        <item quantity=\"other\">%d Tracker</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d Kapitel wird übersprungen, da die Quelle dieses entweder nicht besitzt, oder weil es rausgefiltert wurde</item>\n        <item quantity=\"other\">%d Kapitel werden übersprungen, da die Quelle diese entweder nicht besitzt, oder weil sie rausgefiltert wurden</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Gestern</item>\n        <item quantity=\"other\">Vor %1$d Tagen</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Nächstes ungelesenes Kapitel</item>\n        <item quantity=\"other\">Nächste %d ungelesene Kapitel</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Nächstes Kapitel</item>\n        <item quantity=\"other\">Nächste %d Kapitel</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s Kapitel fehlt</item>\n        <item quantity=\"other\">%1$s Kapitel fehlen</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 Tag</item>\n        <item quantity=\"other\">%d Tage</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d Repository</item>\n        <item quantity=\"other\">%d Repositorys</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Morgen</item>\n        <item quantity=\"other\">In %1$d Tagen</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 Seite</item>\n        <item quantity=\"other\">%1$s Seiten</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$d Eintrag migrieren?</item>\n        <item quantity=\"other\">%1$d Einträge migrieren?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">%1$d Eintrag kopieren?</item>\n        <item quantity=\"other\">%1$d Einträge kopieren?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Ein Eintrag wurde übersprungen</item>\n        <item quantity=\"other\">%1$d Einträge wurden übersprungen</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/de/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Name</string>\n    <string name=\"categories\">Kategorien</string>\n    <string name=\"manga\">Bibliothekseinträge</string>\n    <string name=\"chapters\">Kapitel</string>\n    <string name=\"history\">Verlauf</string>\n    <string name=\"label_settings\">Einstellungen</string>\n    <string name=\"label_download_queue\">Downloadwarteschlange</string>\n    <string name=\"label_library\">Bibliothek</string>\n    <string name=\"label_recent_manga\">Verlauf</string>\n    <string name=\"label_backup\">Sichern und Wiederherstellen</string>\n    <string name=\"action_settings\">Einstellungen</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_bookmarked\">Lesezeichen</string>\n    <string name=\"action_filter_unread\">Ungelesen</string>\n    <string name=\"action_filter_empty\">Filter entfernen</string>\n    <string name=\"action_sort_alpha\">Alphabetisch</string>\n    <string name=\"action_sort_total\">Kapitelanzahl</string>\n    <string name=\"action_sort_last_read\">Zuletzt gelesen</string>\n    <string name=\"action_search\">Suche</string>\n    <string name=\"action_select_all\">Alle auswählen</string>\n    <string name=\"action_mark_as_read\">Als gelesen markieren</string>\n    <string name=\"action_mark_as_unread\">Als ungelesen markieren</string>\n    <string name=\"action_mark_previous_as_read\">Vorherige Kapitel als gelesen markieren</string>\n    <string name=\"action_download\">Herunterladen</string>\n    <string name=\"action_bookmark\">Lesezeichen setzen</string>\n    <string name=\"action_remove_bookmark\">Lesezeichen entfernen</string>\n    <string name=\"action_delete\">Löschen</string>\n    <string name=\"action_update_library\">Bibliothek aktualisieren</string>\n    <string name=\"action_edit\">Bearbeiten</string>\n    <string name=\"action_add\">Hinzufügen</string>\n    <string name=\"action_add_category\">Kategorie hinzufügen</string>\n    <string name=\"action_edit_categories\">Kategorien bearbeiten</string>\n    <string name=\"action_rename_category\">Kategorie umbenennen</string>\n    <string name=\"action_move_category\">Kategorien festlegen</string>\n    <string name=\"action_edit_cover\">Cover bearbeiten</string>\n    <string name=\"action_pause\">Pause</string>\n    <string name=\"action_previous_chapter\">Vorheriges Kapitel</string>\n    <string name=\"action_next_chapter\">Nächstes Kapitel</string>\n    <string name=\"action_retry\">Erneut versuchen</string>\n    <string name=\"action_remove\">Entfernen</string>\n    <string name=\"action_resume\">Fortfahren</string>\n    <string name=\"action_open_in_browser\">Im Browser öffnen</string>\n    <string name=\"action_display_mode\">Anzeigemodus</string>\n    <string name=\"action_display\">Anzeige</string>\n    <string name=\"action_display_grid\">Kacheln</string>\n    <string name=\"action_display_list\">Liste</string>\n    <string name=\"action_cancel\">Abbrechen</string>\n    <string name=\"action_sort\">Sortierung</string>\n    <string name=\"action_install\">Installieren</string>\n    <string name=\"action_share\">Teilen</string>\n    <string name=\"action_save\">Speichern</string>\n    <string name=\"action_reset\">Zurücksetzen</string>\n    <string name=\"action_undo\">Rückgängig machen</string>\n    <string name=\"action_open_log\">Protokoll öffnen</string>\n    <string name=\"action_restore\">Wiederherstellen</string>\n    <string name=\"loading\">Wird geladen…</string>\n    <string name=\"app_not_available\">App nicht verfügbar</string>\n    <string name=\"pref_category_general\">Allgemein</string>\n    <string name=\"pref_category_reader\">Leser</string>\n    <string name=\"pref_category_downloads\">Downloads</string>\n    <string name=\"pref_category_tracking\">Tracking</string>\n    <string name=\"pref_category_advanced\">Erweitert</string>\n    <string name=\"pref_category_about\">Über</string>\n    <string name=\"pref_library_columns\">Elemente pro Zeile</string>\n    <string name=\"portrait\">Hochformat</string>\n    <string name=\"landscape\">Querformat</string>\n    <string name=\"pref_library_update_interval\">Automatische Aktualisierungen</string>\n    <string name=\"update_never\">Aus</string>\n    <string name=\"update_6hour\">Alle 6 Stunden</string>\n    <string name=\"update_12hour\">Alle 12 Stunden</string>\n    <string name=\"update_24hour\">Täglich</string>\n    <string name=\"update_48hour\">Alle 2 Tage</string>\n    <string name=\"update_weekly\">Wöchentlich</string>\n    <string name=\"all\">Alle</string>\n    <string name=\"pref_library_update_restriction\">Geräteeinschränkungen für automatische Aktualisierungen</string>\n    <string name=\"charging\">Beim Laden</string>\n    <string name=\"pref_update_only_non_completed\">Einträge mit dem Status „Abgeschlossen“ überspringen</string>\n    <string name=\"pref_auto_update_manga_sync\">Fortschritt nach dem Lesen aktualisieren</string>\n    <string name=\"default_category\">Standardkategorie</string>\n    <string name=\"default_category_summary\">Immer fragen</string>\n    <string name=\"pref_fullscreen\">Vollbild</string>\n    <string name=\"pref_page_transitions\">Animierte Seitenübergänge</string>\n    <string name=\"pref_show_page_number\">Seitennummer anzeigen</string>\n    <string name=\"pref_crop_borders\">Rand abschneiden</string>\n    <string name=\"pref_custom_brightness\">Benutzerdefinierte Helligkeit</string>\n    <string name=\"pref_custom_color_filter\">Benutzerdefinierten Farbfilter</string>\n    <string name=\"pref_keep_screen_on\">Bildschirm anlassen</string>\n    <string name=\"pref_reader_navigation\">Navigation</string>\n    <string name=\"pref_read_with_volume_keys\">Lautstärketasten</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Lautstärketasten umkehren</string>\n    <string name=\"pref_reader_theme\">Hintergrundfarbe</string>\n    <string name=\"white_background\">Weiß</string>\n    <string name=\"black_background\">Schwarz</string>\n    <string name=\"pref_viewer_type\">Standard-Lesemodus</string>\n    <string name=\"left_to_right_viewer\">Seiten (links nach rechts)</string>\n    <string name=\"right_to_left_viewer\">Seiten (rechts nach links)</string>\n    <string name=\"vertical_viewer\">Seiten (vertikal)</string>\n    <string name=\"webtoon_viewer\">Langer Streifen</string>\n    <string name=\"pref_image_scale_type\">Skalierung</string>\n    <string name=\"scale_type_fit_screen\">Bild ausfüllen</string>\n    <string name=\"scale_type_stretch\">Strecken</string>\n    <string name=\"scale_type_fit_width\">Horizontal ausfüllen</string>\n    <string name=\"scale_type_fit_height\">Vertikal ausfüllen</string>\n    <string name=\"scale_type_original_size\">Orginalgröße</string>\n    <string name=\"scale_type_smart_fit\">Intelligentes Ausfüllen</string>\n    <string name=\"pref_zoom_start\">Anfangsposition des Zooms</string>\n    <string name=\"zoom_start_automatic\">Automatisch</string>\n    <string name=\"zoom_start_left\">Links</string>\n    <string name=\"zoom_start_right\">Rechts</string>\n    <string name=\"zoom_start_center\">Mitte</string>\n    <string name=\"pref_rotation_type\">Standardausrichtung</string>\n    <string name=\"rotation_free\">Frei</string>\n    <string name=\"rotation_force_portrait\">Hochformat erzwingen</string>\n    <string name=\"rotation_force_landscape\">Querformat erzwingen</string>\n    <string name=\"color_filter_r_value\">Rot</string>\n    <string name=\"color_filter_g_value\">Grün</string>\n    <string name=\"color_filter_b_value\">Blau</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"pref_remove_after_marked_as_read\">Nachdem manuell als gelesen markiert</string>\n    <string name=\"pref_remove_after_read\">Automatisch nach dem Lesen löschen</string>\n    <string name=\"disabled\">Deaktiviert</string>\n    <string name=\"last_read_chapter\">Ab zuletzt gelesenem Kapitel</string>\n    <string name=\"second_to_last\">Ab zweitletzt gelesenem Kapitel</string>\n    <string name=\"third_to_last\">Ab drittletzt gelesenem Kapitel</string>\n    <string name=\"fourth_to_last\">Ab viertletzt gelesenem Kapitel</string>\n    <string name=\"fifth_to_last\">Ab fünftletzt gelesenem Kapitel</string>\n    <string name=\"pref_download_new\">Neue Kapitel herunterladen</string>\n    <string name=\"services\">Tracker</string>\n    <string name=\"pref_create_backup\">Datensicherung erstellen</string>\n    <string name=\"pref_create_backup_summ\">Kann benutzt werden, um die aktuelle Bibliothek wiederherzustellen</string>\n    <string name=\"pref_restore_backup\">Datensicherung wiederherstellen</string>\n    <string name=\"pref_restore_backup_summ\">Bibliothek mit Hilfe einer Datensicherung wiederherstellen</string>\n    <string name=\"pref_backup_interval\">Automatische Sicherungshäufigkeit</string>\n    <string name=\"backup_created\">Datensicherung erstellt</string>\n    <string name=\"restore_completed\">Wiederherstellen abgeschlossen</string>\n    <string name=\"backup_choice\">Was möchtest du sichern?</string>\n    <string name=\"restoring_backup\">Datensicherung wird wiederhergestellt</string>\n    <string name=\"creating_backup\">Datensicherung wird erstellt</string>\n    <string name=\"pref_clear_chapter_cache\">Kapitel-Zwischenspeicher leeren</string>\n    <string name=\"used_cache\">Belegt: %1$s</string>\n    <string name=\"cache_deleted\">Zwischenspeicher geleert, %1$d Dateien gelöscht</string>\n    <string name=\"cache_delete_error\">Fehler während des Leerens aufgetreten</string>\n    <string name=\"pref_clear_cookies\">Cookies löschen</string>\n    <string name=\"cookies_cleared\">Cookies gelöscht</string>\n    <string name=\"pref_clear_database\">Datenbank leeren</string>\n    <string name=\"pref_clear_database_summary\">Verlauf für Einträge löschen, die nicht in deiner Bibliothek gespeichert sind</string>\n    <string name=\"clear_database_completed\">Einträge gelöscht</string>\n    <string name=\"version\">Version</string>\n    <string name=\"pref_enable_acra\">Fehlerberichte senden</string>\n    <string name=\"pref_acra_summary\">Hilft bei der Behebung von Fehlern. Keine sensiblen Daten werden gesendet</string>\n    <string name=\"login_title\">Bei %1$s anmelden</string>\n    <string name=\"username\">Benutzername</string>\n    <string name=\"password\">Passwort</string>\n    <string name=\"login\">Anmelden</string>\n    <string name=\"login_success\">Angemeldet</string>\n    <string name=\"unknown_error\">Unbekannter Fehler</string>\n    <string name=\"updating_category\">Kategorie wird aktualisiert</string>\n    <string name=\"no_more_results\">Keine weiteren Ergebnisse</string>\n    <string name=\"local_source\">Lokale Quelle</string>\n    <string name=\"ongoing\">Fortlaufend</string>\n    <string name=\"unknown\">Unbekannt</string>\n    <string name=\"licensed\">Lizenziert</string>\n    <string name=\"remove_from_library\">Aus der Bibliothek entfernen</string>\n    <string name=\"delete_downloads_for_manga\">Heruntergeladene Kapitel löschen?</string>\n    <string name=\"display_mode_chapter\">Kapitel %1$s</string>\n    <string name=\"chapter_downloading_progress\">Wird heruntergeladen (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Fehler</string>\n    <string name=\"chapter_paused\">Pausiert</string>\n    <string name=\"show_title\">Quellentitel</string>\n    <string name=\"show_chapter_number\">Kapitelnummer</string>\n    <string name=\"sort_by_source\">Nach Quelle</string>\n    <string name=\"sort_by_number\">Nach Kapitelnummer</string>\n    <string name=\"manga_download\">Herunterladen</string>\n    <string name=\"download_unread\">Ungelesen</string>\n    <string name=\"confirm_delete_chapters\">Bist du sicher, dass du die ausgewählten Kapitel löschen willst?</string>\n    <string name=\"manga_tracking_tab\">Tracking</string>\n    <string name=\"reading\">Am Lesen</string>\n    <string name=\"completed\">Abgeschlossen</string>\n    <string name=\"dropped\">Abgebrochen</string>\n    <string name=\"on_hold\">Pausiert</string>\n    <string name=\"plan_to_read\">Plane ich zu Lesen</string>\n    <string name=\"score\">Bewertung</string>\n    <string name=\"title\">Titel</string>\n    <string name=\"status\">Status</string>\n    <string name=\"error_category_exists\">Eine Kategorie mit diesem Namen existiert bereits!</string>\n    <string name=\"snack_categories_deleted\">Kategorien gelöscht</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Das Lesedatum dieses Kapitels wird gelöscht. Bist du sicher?</string>\n    <string name=\"dialog_with_checkbox_reset\">Alle Kapitel dieses Eintrags zurücksetzen</string>\n    <string name=\"snack_add_to_library\">Zur Bibliothek hinzufügen?</string>\n    <string name=\"picture_saved\">Bild gespeichert</string>\n    <string name=\"custom_filter\">Eigener Filter</string>\n    <string name=\"set_as_cover\">Als Vorschaubild festlegen</string>\n    <string name=\"cover_updated\">Vorschaubild geändert</string>\n    <string name=\"chapter_progress\">Seite: %1$d</string>\n    <string name=\"no_next_chapter\">Nächstes Kapitel nicht gefunden</string>\n    <string name=\"decode_image_error\">Das Bild konnte nicht geladen werden</string>\n    <string name=\"confirm_set_image_as_cover\">Dieses Bild als Vorschaubild setzen?</string>\n    <string name=\"download_queue_error\">Fehler beim Herunterladen der Kapitel. Du kannst es in der Downloadsektion erneut versuchen</string>\n    <string name=\"notification_new_chapters\">Neue Kapitel gefunden</string>\n    <string name=\"notification_cover_update_failed\">Ändern des Vorschaubildes fehlgeschlagen</string>\n    <string name=\"notification_first_add_to_library\">Bitte füge den Eintrag deiner Bibliothek hinzu, bevor du dies tust</string>\n    <string name=\"file_select_cover\">Wähle ein Vorschaubild</string>\n    <string name=\"file_select_backup\">Wähle eine Sicherungsdatei</string>\n    <string name=\"update_check_confirm\">Herunterladen</string>\n    <string name=\"update_check_no_new_updates\">Kein neues Update verfügbar</string>\n    <string name=\"update_check_notification_download_in_progress\">Herunterladen…</string>\n    <string name=\"update_check_notification_download_complete\">Tippe, um das Update zu installieren</string>\n    <string name=\"update_check_notification_download_error\">Fehler beim Herunterladen</string>\n    <string name=\"update_check_notification_update_available\">Neue Version verfügbar!</string>\n    <string name=\"information_no_downloads\">Keine Downloads</string>\n    <string name=\"information_no_recent\">Keine neuen Kapitel</string>\n    <string name=\"information_no_recent_manga\">Nichts kürzlich gelesen</string>\n    <string name=\"information_empty_library\">Deine Bibliothek ist leer</string>\n    <string name=\"download_notifier_downloader_title\">Downloader</string>\n    <string name=\"download_notifier_title_error\">Fehler</string>\n    <string name=\"download_notifier_unknown_error\">Kapitel konnte aufgrund eines unerwarteten Fehlers nicht heruntergeladen werden</string>\n    <string name=\"download_notifier_text_only_wifi\">Keine WLAN-Verbindung verfügbar</string>\n    <string name=\"download_notifier_no_network\">Kein Netzwerk verfügbar</string>\n    <string name=\"download_notifier_download_paused\">Downloads pausiert</string>\n    <string name=\"track\">Tracking</string>\n    <string name=\"label_recent_updates\">Neues</string>\n    <string name=\"action_global_search\">Globale Suche</string>\n    <string name=\"other_source\">Andere</string>\n    <string name=\"action_global_search_hint\">Globale Suche…</string>\n    <string name=\"latest\">Neueste</string>\n    <string name=\"browse\">Stöbern</string>\n    <string name=\"channel_common\">Allgemein</string>\n    <string name=\"action_display_download_badge\">Heruntergelade Kapitel</string>\n    <string name=\"information_empty_category\">Keine Kategorien vorhanden. Tippe auf die Plus-Schaltfläche, um eine Kategorie zum Sortieren deiner Bibliothek zu erstellen.</string>\n    <string name=\"label_migration\">Migrieren</string>\n    <string name=\"label_extensions\">Erweiterungen</string>\n    <string name=\"label_extension_info\">Erweiterungsinformationen</string>\n    <string name=\"ext_update\">Aktualisieren</string>\n    <string name=\"ext_install\">Installieren</string>\n    <string name=\"ext_pending\">Anstehend</string>\n    <string name=\"ext_downloading\">Wird heruntergeladen</string>\n    <string name=\"ext_installing\">Wird installiert</string>\n    <string name=\"ext_installed\">Installiert</string>\n    <string name=\"ext_uninstall\">Deinstallieren</string>\n    <string name=\"untrusted_extension_message\">Bösartige Erweiterungen können gespeicherte Anmeldedaten auslesen oder beliebigen Code ausführen.\n\\n\n\\nDurch das Vertrauen in die Erweiterung akzeptierst du diese Risiken.</string>\n    <string name=\"double_tap_anim_speed_0\">Keine Animation</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Schnell</string>\n    <string name=\"manga_added_library\">Zur Bibliothek hinzugefügt</string>\n    <string name=\"manga_removed_library\">Aus der Bibliothek entfernt</string>\n    <string name=\"copied_to_clipboard\">In die Zwischenablage kopiert:\n\\n%1$s</string>\n    <string name=\"migrate\">Migrieren</string>\n    <string name=\"copy\">Kopieren</string>\n    <string name=\"ext_trust\">Vertrauen</string>\n    <string name=\"ext_untrusted\">Nicht vertrauenswürdig</string>\n    <string name=\"untrusted_extension\">Nicht vertrauenswürdige Erweiterung</string>\n    <string name=\"pref_double_tap_anim_speed\">Animationsgeschwindigkeit beim Doppeltippen</string>\n    <string name=\"migration_dialog_what_to_include\">Wähle zu beinhaltende Daten</string>\n    <string name=\"pager_viewer\">Seiten</string>\n    <string name=\"source_not_installed\">Quelle nicht installiert: %1$s</string>\n    <string name=\"repeating\">Am Wiederlesen</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Typ</string>\n    <string name=\"transition_finished\">Beendet:</string>\n    <string name=\"transition_current\">Aktuell:</string>\n    <string name=\"transition_next\">Als Nächstes:</string>\n    <string name=\"transition_previous\">Davor:</string>\n    <string name=\"transition_no_next\">Es gibt kein nächstes Kapitel</string>\n    <string name=\"transition_no_previous\">Es gibt kein vorheriges Kapitel</string>\n    <string name=\"transition_pages_loading\">Lade Seiten…</string>\n    <string name=\"transition_pages_error\">Seiten konnten nicht geladen werden: %1$s</string>\n    <string name=\"action_open_in_web_view\">In WebView öffnen</string>\n    <string name=\"pref_skip_read_chapters\">Gelesene Kapitel überspringen</string>\n    <string name=\"pref_read_with_long_tap\">Aktionen bei langem Antippen anzeigen</string>\n    <string name=\"filter_mode_overlay\">Overlay</string>\n    <string name=\"filter_mode_multiply\">Multiplizieren</string>\n    <string name=\"filter_mode_screen\">Bildschirm</string>\n    <string name=\"filter_mode_darken\">Brennen / Verdunkeln</string>\n    <string name=\"pref_color_filter_mode\">Farbfilter Mischmodus</string>\n    <string name=\"filter_mode_lighten\">Abwedeln / Aufhellen</string>\n    <string name=\"label_help\">Hilfe</string>\n    <string name=\"no_results_found\">Keine Ergebnisse gefunden</string>\n    <string name=\"migration_selection_prompt\">Wähle eine Quelle, aus welcher du migrieren möchtest</string>\n    <string name=\"action_webview_back\">Zurück</string>\n    <string name=\"action_webview_forward\">Vorwärts</string>\n    <string name=\"action_webview_refresh\">Aktualisieren</string>\n    <string name=\"pref_category_library\">Bibliothek</string>\n    <string name=\"ext_obsolete\">Veraltet</string>\n    <string name=\"obsolete_extension_message\">Diese Erweiterung ist nicht länger verfügbar. Sie funktioniert möglicherweise nicht mehr ordnungsgemäß und kann Probleme mit der App verursachen. Es wird empfohlen, sie zu deinstallieren.</string>\n    <string name=\"pref_date_format\">Datumsformat</string>\n    <string name=\"pref_category_library_update\">Globale Aktualisierung</string>\n    <string name=\"logout_title\">Aus %1$s abmelden?</string>\n    <string name=\"logout\">Abmelden</string>\n    <string name=\"logout_success\">Du bist jetzt abgemeldet</string>\n    <string name=\"paused\">Pausiert</string>\n    <string name=\"label_more\">Mehr</string>\n    <string name=\"action_sort_latest_chapter\">Neuestes Kapitel</string>\n    <string name=\"action_view_chapters\">Kapitel anzeigen</string>\n    <string name=\"action_cancel_all\">Alle abbrechen</string>\n    <string name=\"theme_light\">Hell</string>\n    <string name=\"theme_dark\">Dunkel</string>\n    <string name=\"theme_system\">System</string>\n    <string name=\"pref_manage_notifications\">Benachrichtigungen verwalten</string>\n    <string name=\"pref_category_security\">Sicherheit und Privatsphäre</string>\n    <string name=\"lock_with_biometrics\">Entsperren erforderlich</string>\n    <string name=\"lock_when_idle\">Während Inaktivität sperren</string>\n    <string name=\"lock_always\">Immer</string>\n    <string name=\"lock_never\">Nie</string>\n    <string name=\"secure_screen\">Sicherer Bildschirm</string>\n    <string name=\"ext_updates_pending\">Updates ausstehend</string>\n    <string name=\"pref_cutout_short\">Inhalt im Ausschnittbereich anzeigen</string>\n    <string name=\"information_cloudflare_bypass_failure\">Fehler beim Umgehen von Cloudflare</string>\n    <string name=\"information_webview_outdated\">Bitte aktualisiere die WebView-App für eine bessere Kompatibilität</string>\n    <string name=\"channel_new_chapters\">Kapitelaktualisierungen</string>\n    <string name=\"secure_screen_summary\">Sicherer Bildschirm verbirgt App-Inhalte beim Wechseln von Apps und blockiert Screenshots</string>\n    <string name=\"pref_category_display\">Anzeige</string>\n    <string name=\"notification_chapters_single\">Kapitel %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Kapitel %1$s und %2$d mehr</string>\n    <string name=\"notification_chapters_multiple\">Kapitel %1$s</string>\n    <string name=\"hide_notification_content\">Benachrichtigungsinhalt verbergen</string>\n    <string name=\"pref_disable_battery_optimization\">Akkuverbrauch-Optimierung deaktivieren</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Hilft bei Bibliotheksaktualisierungen und -sicherungen im Hintergrund</string>\n    <string name=\"battery_optimization_disabled\">Akkuverbrauch-Optimierung ist bereits deaktiviert</string>\n    <string name=\"email\">E-Mail-Adresse</string>\n    <string name=\"pref_always_show_chapter_transition\">Kapitelübergang immer anzeigen</string>\n    <string name=\"action_menu\">Menü</string>\n    <string name=\"action_newest\">Neueste</string>\n    <string name=\"action_oldest\">Älteste</string>\n    <string name=\"action_move_to_top\">Nach oben verschieben</string>\n    <string name=\"action_move_to_bottom\">Nach unten verschieben</string>\n    <string name=\"channel_ext_updates\">Erweiterungsupdates</string>\n    <string name=\"updating_library\">Bibliothek wird aktualisiert</string>\n    <string name=\"pref_skip_filtered_chapters\">Gefilterte Kapitel überspringen</string>\n    <string name=\"pref_category_reading\">Beim Lesen</string>\n    <string name=\"label_sources\">Quellen</string>\n    <string name=\"action_select_inverse\">Auswahl umkehren</string>\n    <string name=\"vertical_plus_viewer\">Langer Streifen mit Lücken</string>\n    <string name=\"pref_webtoon_side_padding\">Seitenränder</string>\n    <string name=\"pinned_sources\">Angeheftet</string>\n    <string name=\"action_unpin\">Loslösen</string>\n    <string name=\"action_pin\">Anheften</string>\n    <string name=\"add_tracking\">Tracking hinzufügen</string>\n    <string name=\"manga_info_collapse\">Weniger</string>\n    <string name=\"manga_info_expand\">Mehr</string>\n    <string name=\"in_library\">In der Bibliothek</string>\n    <string name=\"add_to_library\">Zur Bibliothek hinzufügen</string>\n    <string name=\"information_webview_required\">WebView ist für das Funktionieren der App erforderlich</string>\n    <string name=\"licenses\">Open-Source-Lizenzen</string>\n    <string name=\"website\">Webseite</string>\n    <string name=\"label_downloaded_only\">Nur Heruntergeladenes</string>\n    <string name=\"recent_manga_time\">Kap. %1$s - %2$s</string>\n    <string name=\"restoring_backup_error\">Datensicherungswiederherstellung fehlgeschlagen</string>\n    <string name=\"creating_backup_error\">Datensicherung fehlgeschlagen</string>\n    <string name=\"restoring_backup_canceled\">Wiederherstellung abgebrochen</string>\n    <string name=\"restore_in_progress\">Wiederherstellung wird bereits durchgeführt</string>\n    <string name=\"backup_in_progress\">Datensicherung wird bereits durchgeführt</string>\n    <string name=\"check_for_updates\">Nach Updates suchen</string>\n    <string name=\"last_used_source\">Zuletzt genutzt</string>\n    <string name=\"local_source_help_guide\">Anleitung für lokale Quellen</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d s</string>\n    <string name=\"downloaded_only_summary\">Filtert alle Einträge in deiner Bibliothek</string>\n    <string name=\"gray_background\">Grau</string>\n    <string name=\"viewer\">Lesemodus</string>\n    <string name=\"pref_category_for_this_series\">Für diese Serie</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Geräteeinstellungen konnten nicht geöffnet werden</string>\n    <string name=\"tracking_info\">Einweg-Synchronisation zum Aktualisieren der Kapitelfortschritte in den externen Trackingdiensten. Richte Tracking für einzelne Einträge über deren jeweiligen Trackingbutton ein.</string>\n    <string name=\"pref_refresh_library_covers\">Bibliothekscover aktualisieren</string>\n    <string name=\"sort_by_upload_date\">Nach Uploaddatum</string>\n    <string name=\"label_data\">Daten</string>\n    <string name=\"backup_restore_missing_sources\">Fehlende Quellen:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Datensicherung beinhaltet keinerlei Bibliothekseinträge.</string>\n    <string name=\"invalid_backup_file\">Ungültige Sicherungsdatei:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Auf neue Cover und Details überprüfen, wenn die Bibliothek aktualisiert wird</string>\n    <string name=\"pref_library_update_refresh_metadata\">Metadaten automatisch aktualisieren</string>\n    <string name=\"action_migrate\">Migrieren</string>\n    <string name=\"action_display_comfortable_grid\">Komfortable Kacheln</string>\n    <string name=\"tabs_header\">Registerkarten</string>\n    <string name=\"action_display_show_tabs\">Kategorienreiter anzeigen</string>\n    <string name=\"page_list_empty_error\">Keine Seiten gefunden</string>\n    <string name=\"action_disable_all\">Alles deaktivieren</string>\n    <string name=\"action_enable_all\">Alles aktivieren</string>\n    <string name=\"pref_show_reading_mode_summary\">Kurz den aktuellen Modus anzeigen, wenn der Leser geöffnet wird</string>\n    <string name=\"pref_show_reading_mode\">Lesemodus anzeigen</string>\n    <string name=\"action_start\">Starten</string>\n    <string name=\"loader_not_implemented_error\">Quelle nicht gefunden</string>\n    <string name=\"action_disable\">Deaktivieren</string>\n    <string name=\"requires_app_restart\">Erfordert einen Neustart der App, um wirksam zu werden</string>\n    <string name=\"label_network\">Vernetzung</string>\n    <string name=\"pref_read_with_tapping_inverted\">Tippzonen umkehren</string>\n    <string name=\"tapping_inverted_both\">Beide</string>\n    <string name=\"tapping_inverted_vertical\">Vertikal</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"tapping_inverted_none\">–</string>\n    <string name=\"unknown_status\">Unbekannter Status</string>\n    <string name=\"unknown_author\">Unbekannter Autor</string>\n    <string name=\"updated_version\">Auf v%1$s aktualisiert</string>\n    <string name=\"whats_new\">Was ist neu</string>\n    <string name=\"download_insufficient_space\">Herunterladen von Kapiteln aufgrund von zu wenig Speicherplatz nicht möglich</string>\n    <string name=\"action_global_search_query\">Überall nach „%1$s“ suchen</string>\n    <string name=\"action_sort_date_added\">Hinzufügedatum</string>\n    <string name=\"pref_category_reading_mode\">Lesemodus</string>\n    <string name=\"pref_category_theme\">Thema</string>\n    <string name=\"no_pinned_sources\">Du hast keine angehefteten Quellen</string>\n    <string name=\"channel_complete\">Abgeschlossen</string>\n    <string name=\"channel_progress\">Fortschritt</string>\n    <string name=\"channel_errors\">Fehler</string>\n    <string name=\"backup_restore_missing_trackers\">Nicht-angemeldete Tracker:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Erlauben, mit Lesezeichen versehene Kapitel zu löschen</string>\n    <string name=\"pref_category_delete_chapters\">Kapitel löschen</string>\n    <string name=\"ext_nsfw_warning\">Quellen dieser Erweiterung könnten NSFW/Ü18-Inhalte enthalten</string>\n    <string name=\"ext_nsfw_short\">Ü18</string>\n    <string name=\"parental_controls_info\">Dies verhindert nicht, dass inoffizielle oder möglicherweise falsch gekennzeichnete Erweiterungen NSFW/Ü18-Inhalte in der App anzeigen.</string>\n    <string name=\"no_chapters_error\">Keine Kapitel gefunden</string>\n    <string name=\"chapter_settings_updated\">Standard-Kapiteleinstellungen aktualisiert</string>\n    <string name=\"set_chapter_settings_as_default\">Als Standard setzen</string>\n    <string name=\"also_set_chapter_settings_for_library\">Auch für alle Einträge in meiner Bibliothek anwenden</string>\n    <string name=\"confirm_set_chapter_settings\">Bist du sicher, dass du diese Einstellungen als Standard speichern willst?</string>\n    <string name=\"chapter_settings\">Kapiteleinstellungen</string>\n    <string name=\"share_page_info\">%1$s: %2$s, Seite %3$d</string>\n    <string name=\"action_search_settings\">Einstellungen durchsuchen</string>\n    <string name=\"downloaded_chapters\">Heruntergeladene Kapitel</string>\n    <string name=\"manga_from_library\">Aus der Bibliothek</string>\n    <string name=\"pref_incognito_mode_summary\">Leseverlauf pausieren</string>\n    <string name=\"pref_incognito_mode\">Inkognito-Modus</string>\n    <string name=\"pref_clear_history\">Verlauf löschen</string>\n    <string name=\"clear_history_confirmation\">Bist du sicher? Der gesamte Verlauf wird gelöscht.</string>\n    <string name=\"clear_history_completed\">Verlauf gelöscht</string>\n    <string name=\"spen_next_page\">Nächste Seite</string>\n    <string name=\"spen_previous_page\">Vorherige Seite</string>\n    <string name=\"migration_help_guide\">Quellenmigration</string>\n    <string name=\"pref_category_nsfw_content\">NSFW/Ü18-Quellen</string>\n    <string name=\"pref_show_nsfw_source\">In Quellen- und Erweiterungslisten anzeigen</string>\n    <string name=\"file_picker_error\">Keine Dateiauswahl-App gefunden</string>\n    <string name=\"myanimelist_relogin\">Bitte logge dich erneut in MAL ein</string>\n    <string name=\"edge_nav\">Rand</string>\n    <string name=\"pref_viewer_nav\">Tippzonen</string>\n    <string name=\"kindlish_nav\">Kindle-Stil</string>\n    <string name=\"l_nav\">L-förmig</string>\n    <string name=\"track_finished_reading_date\">Enddatum</string>\n    <string name=\"track_started_reading_date\">Startdatum</string>\n    <string name=\"pref_dump_crash_logs_summary\">Speichert Fehlerprotokolle in einer Datei, die dann mit den Entwicklern geteilt wird</string>\n    <string name=\"pref_dump_crash_logs\">Absturzprotokolle teilen</string>\n    <string name=\"action_desc\">Absteigend</string>\n    <string name=\"action_asc\">Aufsteigend</string>\n    <string name=\"action_order_by_chapter_number\">Nach Kapitelnummer</string>\n    <string name=\"action_order_by_upload_date\">Nach Upload-Datum</string>\n    <string name=\"action_filter_tracked\">Getrackt</string>\n    <string name=\"action_display_show_number_of_items\">Anzahl der Elemente anzeigen</string>\n    <string name=\"right_and_left_nav\">Rechts und Links</string>\n    <string name=\"pref_dual_page_split\">Breite Seiten aufteilen</string>\n    <string name=\"pref_dual_page_invert_summary\">Falls die Platzierung der aufgeteilten Seiten nicht mit der Leserichtung übereinstimmt</string>\n    <string name=\"pref_dual_page_invert\">Platzierung aufgeteilter Seiten umkehren</string>\n    <string name=\"backup_restore_content_full\">Du musst jegliche fehlende Erweiterungen installieren und dich anschließend bei den Tracking-Anbietern einloggen, um sie zu benutzen.</string>\n    <string name=\"pref_show_navigation_mode_summary\">Kurz anzeigen, wenn der Leser geöffnet wird</string>\n    <string name=\"pref_show_navigation_mode\">Tippzonen-Overlay anzeigen</string>\n    <string name=\"nav_zone_right\">Rechts</string>\n    <string name=\"nav_zone_left\">Links</string>\n    <string name=\"nav_zone_next\">Weiter</string>\n    <string name=\"nav_zone_prev\">Zurück</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"exclude\">Ausschließen: %s</string>\n    <string name=\"include\">Einschließen: %s</string>\n    <string name=\"none\">Nichts</string>\n    <string name=\"action_sort_chapter_fetch_date\">Abrufdatum des Kapitels</string>\n    <string name=\"pref_download_new_categories_details\">Einträge in ausgeschlossenen Kategorien werden nicht heruntergeladen, auch wenn sie in eingeschlossenen Kategorien vorhanden sind.</string>\n    <string name=\"pref_category_auto_download\">Automatisches Herunterladen</string>\n    <string name=\"pref_library_update_categories_details\">Einträge in ausgeschlossenen Kategorien werden nicht aktualisiert, auch wenn sie in eingeschlossenen Kategorien vorhanden sind.</string>\n    <string name=\"action_show_errors\">Tippe, um Details anzuzeigen</string>\n    <string name=\"update_check_eol\">Diese Android-Version wird nicht mehr unterstützt</string>\n    <string name=\"clipboard_copy_error\">Kopieren in die Zwischenablage fehlgeschlagen</string>\n    <string name=\"rotation_landscape\">Querformat</string>\n    <string name=\"rotation_portrait\">Hochformat</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Erstellt Ordner nach den Titeln der Einträge</string>\n    <string name=\"pref_create_folder_per_manga\">Seiten in separaten Ordnern speichern</string>\n    <string name=\"rotation_type\">Ausrichtung</string>\n    <string name=\"pref_reader_actions\">Aktionen</string>\n    <string name=\"pref_grayscale\">Graustufen</string>\n    <string name=\"notification_incognito_text\">Inkognito-Modus deaktivieren</string>\n    <string name=\"automatic_background\">Automatisch</string>\n    <string name=\"cancel_all_for_series\">Alles für diese Serie abbrechen</string>\n    <string name=\"error_no_match\">Keine Übereinstimmung gefunden</string>\n    <string name=\"source_unsupported\">Quelle wird nicht unterstützt</string>\n    <string name=\"unread\">Ungelesen</string>\n    <string name=\"date\">Datum</string>\n    <string name=\"local_filter_order_by\">Sortiere nach</string>\n    <string name=\"local_invalid_format\">Ungültiges Kapitelformat</string>\n    <string name=\"chapter_not_found\">Kapitel nicht gefunden</string>\n    <string name=\"restrictions\">Einschränkungen: %s</string>\n    <string name=\"action_display_local_badge\">Lokale Quelle</string>\n    <string name=\"off\">Aus</string>\n    <string name=\"on\">An</string>\n    <string name=\"error_sharing_cover\">Fehler beim Teilen des Covers</string>\n    <string name=\"error_saving_cover\">Fehler beim Speichern des Covers</string>\n    <string name=\"cover_saved\">Cover gespeichert</string>\n    <string name=\"manga_cover\">Cover</string>\n    <string name=\"categorized_display_settings\">Sortierungseinstellungen pro Kategorie</string>\n    <string name=\"tracking_guide\">Tracking-Anleitung</string>\n    <string name=\"information_empty_category_dialog\">Du hast noch keine Kategorien.</string>\n    <string name=\"action_start_downloading_now\">Download jetzt starten</string>\n    <string name=\"about_dont_kill_my_app\">Einige Hersteller haben zusätzliche App-Beschränkungen, die Hintergrunddienste stoppen. Diese Webseite hat mehr Informationen darüber, wie man dies beheben kann.</string>\n    <string name=\"restore_miui_warning\">Die Sicherung/Wiederherstellung funktioniert möglicherweise nicht richtig, wenn die MIUI-Optimierung deaktiviert ist.</string>\n    <string name=\"pref_dark_theme_pure_black\">Tiefschwarzer Dunkelmodus</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Erdbeer-Daiquiri</string>\n    <string name=\"theme_midnightdusk\">Mitternachtsdämmerung</string>\n    <string name=\"theme_greenapple\">Grüner Apfel</string>\n    <string name=\"pref_app_theme\">App-Design</string>\n    <string name=\"enhanced_services\">Erweiterte Tracker</string>\n    <string name=\"enhanced_tracking_info\">Bieten für bestimmte Quellen erweiterte Funktionen an. Einträge werden automatisch getrackt, wenn sie deiner Bibliothek hinzugefügt werden.</string>\n    <string name=\"theme_monet\">Dynamisch</string>\n    <string name=\"label_background_activity\">Hintergrundaktivität</string>\n    <string name=\"pref_lowest\">Niedrigste</string>\n    <string name=\"pref_low\">Niedrig</string>\n    <string name=\"pref_high\">Hoch</string>\n    <string name=\"pref_highest\">Höchste</string>\n    <string name=\"pref_hide_threshold\">Empfindlichkeit für das Menü-Ausblenden beim Scrollen</string>\n    <string name=\"pref_inverted_colors\">Invertiert</string>\n    <string name=\"relative_time_today\">Heute</string>\n    <string name=\"theme_tealturquoise\">Blaugrün &amp; Türkis</string>\n    <string name=\"pref_category_appearance\">Erscheinungsbild</string>\n    <string name=\"confirm_lock_change\">Authentifiziere dich, um die Änderungen zu bestätigen</string>\n    <string name=\"label_default\">Standard</string>\n    <string name=\"action_track\">Tracken</string>\n    <string name=\"getting_started_guide\">Leitfaden für den Einstieg</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet-Benutzeroberfläche</string>\n    <string name=\"pref_remove_exclude_categories\">Ausgeschlossene Kategorien</string>\n    <string name=\"help_translate\">Beim Übersetzen mithelfen</string>\n    <string name=\"ext_app_info\">App-Informationen</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installiere und starte Shizuku, um Shizuku als Installationsprogramm für Erweiterungen zu verwenden.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku läuft nicht</string>\n    <string name=\"ext_installer_legacy\">Legacy</string>\n    <string name=\"ext_installer_pref\">Installationsprogramm</string>\n    <string name=\"ext_install_service_notif\">Erweiterung wird installiert…</string>\n    <string name=\"action_sort_count\">Einträge insgesamt</string>\n    <string name=\"pref_verbose_logging\">Ausführliche Protokollierung</string>\n    <string name=\"pref_verbose_logging_summary\">Ausführliche Protokolle im Systemprotokoll ausgeben (verringert die App-Leistung)</string>\n    <string name=\"action_display_language_badge\">Sprache</string>\n    <string name=\"label_warning\">Warnung</string>\n    <string name=\"notification_size_warning\">Große Aktualisierungen schaden Quellen und könnten zu langsameren Aktualisierungen sowie höherem Akkuverbrauch führen. Tippe, um mehr zu erfahren.</string>\n    <string name=\"backup_info\">Du solltest Kopien der Datensicherungen auch an anderen Orten aufbewahren. Datensicherungen beinhalten möglicherweise sensible Daten, einschließlich gespeicherter Passwörter. Sei vorsichtig beim Teilen.</string>\n    <string name=\"connected_to_wifi\">Nur über WLAN</string>\n    <string name=\"update_72hour\">Alle 3 Tage</string>\n    <string name=\"download_queue_size_warning\">Achtung: Große Downloads könnten dazu führen, dass Quellen langsamer werden und/oder %s blockieren. Tippe um mehr zu erfahren.</string>\n    <string name=\"ext_update_all\">Alle aktualisieren</string>\n    <string name=\"channel_app_updates\">App-Updates</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Kapitel-Zwischenspeicher beim Öffnen der App löschen</string>\n    <string name=\"clear_database_source_item_count\">%1$d Nicht-Bibliothekseinträge in der Datenbank</string>\n    <string name=\"database_clean\">Nichts zu bereinigen</string>\n    <string name=\"extension_api_error\">Laden der verfügbaren Erweiterungen ist fehlgeschlagen</string>\n    <string name=\"privacy_policy\">Datenschutzbestimmungen</string>\n    <string name=\"pref_update_only_completely_read\">Einträge mit ungelesen Kapiteln überspringen</string>\n    <string name=\"library_errors_help\">Für Hilfe zum Beheben von Fehlern bei Bibliotheksaktualisierungen, siehe %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Als CBZ-Archiv speichern</string>\n    <string name=\"cancelled\">Abgebrochen</string>\n    <string name=\"on_hiatus\">Unterbrochen</string>\n    <string name=\"publishing_finished\">Veröffentlichung abgeschlossen</string>\n    <string name=\"action_show_manga\">Eintrag anzeigen</string>\n    <string name=\"action_display_cover_only_grid\">Nur-Cover-Kacheln</string>\n    <string name=\"pref_landscape_zoom\">Bei breiten Bildern automatisch hineinzoomen</string>\n    <string name=\"pref_navigate_pan\">Innerhalb breiter Seiten navigieren</string>\n    <string name=\"pref_update_only_started\">Nicht begonnene Einträge überspringen</string>\n    <string name=\"skipped_reason_completed\">Übersprungen, da die Serie abgeschlossen ist</string>\n    <string name=\"skipped_reason_not_caught_up\">Übersprungen, weil es ungelesene Kapitel gibt</string>\n    <string name=\"skipped_reason_not_started\">Übersprungen, weil keine Kapitel gelesen wurden</string>\n    <string name=\"notification_update_error\">%1$d Aktualisierung(en) fehlgeschlagen</string>\n    <string name=\"learn_more\">Antippen, um mehr zu erfahren</string>\n    <string name=\"rotation_reverse_portrait\">Umgekehrtes Hochformat</string>\n    <string name=\"action_move_to_top_all_for_series\">Serie nach oben verschieben</string>\n    <string name=\"disabled_nav\">Deaktiviert</string>\n    <string name=\"error_saving_picture\">Fehler beim Speichern des Bildes</string>\n    <string name=\"empty_backup_error\">Keine zu sichernden Bibliothekseinträge verfügbar</string>\n    <string name=\"update_check_open\">Auf GitHub öffnen</string>\n    <string name=\"pref_clear_webview_data\">WebView-Daten löschen</string>\n    <string name=\"webview_data_deleted\">WebView-Daten gelöscht</string>\n    <string name=\"action_close\">Schließen</string>\n    <string name=\"source_filter_empty_screen\">Keine installierte Quelle gefunden</string>\n    <string name=\"source_empty_screen\">Keine Quelle gefunden</string>\n    <string name=\"action_sort_unread_count\">Anzahl an Ungelesenem</string>\n    <string name=\"action_sort_last_manga_update\">Letzte Aktualisierungsprüfung</string>\n    <string name=\"split_tall_images_summary\">Verbessert die Leserleistung</string>\n    <string name=\"download_notifier_split_page_not_found\">Seite %d während des Aufteilens nicht gefunden</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Dateipfad der Seite %d konnte nicht gefunden werden</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Setzt den Lesemodus und die Ausrichtung aller Serien zurück</string>\n    <string name=\"pref_reset_viewer_flags\">Lesereinstellungen für jede Serie zurücksetzen</string>\n    <string name=\"pref_reset_viewer_flags_success\">Alle Lesereinstellungen zurückgesetzt</string>\n    <string name=\"pref_reset_viewer_flags_error\">Lesereinstellungen konnten nicht zurückgesetzt werden</string>\n    <string name=\"empty_screen\">Tja, das ist jetzt etwas peinlich</string>\n    <string name=\"ext_info_version\">Version</string>\n    <string name=\"ext_info_language\">Sprache</string>\n    <string name=\"ext_info_age_rating\">Altersfreigabe</string>\n    <string name=\"wish_list\">Wunschliste</string>\n    <string name=\"complete_list\">Abgeschlossen-Liste</string>\n    <string name=\"on_hold_list\">Warteliste</string>\n    <string name=\"unfinished_list\">Unvollendet-Liste</string>\n    <string name=\"reading_list\">Leseliste</string>\n    <string name=\"network_not_metered\">Nur im nicht tarifgebundenen Netz</string>\n    <string name=\"cant_open_last_read_chapter\">Zuletzt gelesenes Kapitel konnte nicht geöffnet werden</string>\n    <string name=\"custom_cover\">Benutzerdefiniertes Cover</string>\n    <string name=\"not_installed\">Nicht installiert</string>\n    <string name=\"pref_app_language\">App-Sprache</string>\n    <string name=\"theme_lavender\">Lavendel</string>\n    <string name=\"description_placeholder\">Keine Beschreibung</string>\n    <string name=\"delete_category_confirmation\">Möchtest du die Kategorie „%s“ löschen?</string>\n    <string name=\"delete_category\">Kategorie löschen</string>\n    <string name=\"internal_error\">InternalError: Überprüfe die Absturzprotokolle für mehr Infos</string>\n    <string name=\"pref_user_agent_string\">Standard-User-Agent-Text</string>\n    <string name=\"pref_reset_user_agent_string\">Standard-User-Agent-Text zurücksetzen</string>\n    <string name=\"action_remove_everything\">Alles entfernen</string>\n    <string name=\"appwidget_updates_description\">Deine kürzlich aktualisierten Bibliothekseinträge ansehen</string>\n    <string name=\"appwidget_unavailable_locked\">Widget ist nicht verfügbar, wenn die App-Sperre aktiviert ist</string>\n    <string name=\"update_already_running\">Ein Update ist bereits im Gange</string>\n    <string name=\"error_user_agent_string_blank\">User-Agent-Text darf nicht leer sein</string>\n    <string name=\"theme_tidalwave\">Flutwelle</string>\n    <string name=\"download_ahead\">Im Voraus herunterladen</string>\n    <string name=\"auto_download_while_reading\">Automatisch während des Lesens herunterladen</string>\n    <string name=\"download_ahead_info\">Funktioniert nur, wenn das aktuelle Kapitel sowie das darauf folgende bereits heruntergeladen sind.</string>\n    <string name=\"are_you_sure\">Bist du dir sicher?</string>\n    <string name=\"remove_manga\">Du bist gerade dabei, „%s“ aus deiner Bibliothek zu entfernen</string>\n    <string name=\"multi_lang\">Mehrere Sprachen</string>\n    <string name=\"updates_last_update_info\">Bibliothek zuletzt aktualisiert: %s</string>\n    <string name=\"popular\">Beliebt</string>\n    <string name=\"missing_storage_permission\">Speicherberechtigungen nicht erteilt</string>\n    <string name=\"skipped_reason_not_always_update\">Übersprungen, da die Serie keine Aktualisierung benötigt</string>\n    <string name=\"action_search_hint\">Suchen…</string>\n    <string name=\"pref_appearance_summary\">Thema, Datums- und Zeitformat</string>\n    <string name=\"pref_reader_summary\">Lesemodus, Anzeige, Navigation</string>\n    <string name=\"pref_downloads_summary\">Automatische Downloads, im Voraus herunterladen</string>\n    <string name=\"pref_library_summary\">Kategorien, globale Aktualisierungen, Kapitelaktionen</string>\n    <string name=\"crash_screen_restart_application\">App neustarten</string>\n    <string name=\"pref_tracking_summary\">Einweg-Synchronisation, erweiterte Synchronisation</string>\n    <string name=\"pref_browse_summary\">Quellen, Erweiterungen, globale Suche</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"pref_advanced_summary\">Absturzprotokolle ausgeben, Akkuverbrauch-Optimierung</string>\n    <string name=\"pref_backup_summary\">Manuelle und automatische Datensicherungen, Speicherplatz</string>\n    <string name=\"crash_screen_description\">%s ist auf einen unerwarteten Fehler gestoßen. Wir empfehlen dir, die Absturzprotokolle in unseren Support-Kanal auf Discord zu teilen.</string>\n    <string name=\"pref_security_summary\">App-Sperre, sicherer Bildschirm</string>\n    <string name=\"unknown_title\">Unbekannter Titel</string>\n    <string name=\"invalid_location\">Ungültiger Speicherort: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Ungültiger User-Agent-Text</string>\n    <string name=\"updates_last_update_info_just_now\">Gerade eben</string>\n    <string name=\"download_notifier_cache_renewal\">Downloads werden überprüft</string>\n    <string name=\"action_open_random_manga\">Zufälligen Eintrag öffnen</string>\n    <string name=\"information_no_entries_found\">Keine Einträge in dieser Kategorie gefunden</string>\n    <string name=\"fdroid_warning\">F-Droid-Builds werden nicht offiziell unterstützt.\n\\nTippe, um mehr zu erfahren.</string>\n    <string name=\"action_display_show_continue_reading_button\">Weiterlesen-Button</string>\n    <string name=\"pref_invalidate_download_cache\">Downloads neu indizieren</string>\n    <string name=\"track_remove_date_conf_title\">Datum entfernen?</string>\n    <string name=\"track_remove_start_date_conf_text\">Dies wird dein zuvor gewähltes Startdatum von %s entfernen</string>\n    <string name=\"track_remove_finish_date_conf_text\">Dies wird dein zuvor gewähltes Enddatum von %s entfernen</string>\n    <string name=\"pref_invalidate_download_cache_summary\">App zwingen, heruntergeladene Kapitel erneut zu überprüfen</string>\n    <string name=\"label_overview_section\">Übersicht</string>\n    <string name=\"label_downloaded\">Heruntergeladen</string>\n    <string name=\"label_read_duration\">Lesedauer</string>\n    <string name=\"label_titles_in_global_update\">In der globalen Aktualisierung</string>\n    <string name=\"label_total_chapters\">Insgesamt</string>\n    <string name=\"label_read_chapters\">Gelesen</string>\n    <string name=\"label_mean_score\">Durchschnittswert</string>\n    <string name=\"label_used\">Verwendet</string>\n    <string name=\"not_applicable\">n. a.</string>\n    <string name=\"day_short\">%d d</string>\n    <string name=\"hour_short\">%d h</string>\n    <string name=\"label_local\">Lokal</string>\n    <string name=\"label_tracked_titles\">Getrackte Einträge</string>\n    <string name=\"label_completed_titles\">Abgeschlossene Einträge</string>\n    <string name=\"label_stats\">Statistiken</string>\n    <string name=\"label_started\">Gestartet</string>\n    <string name=\"label_titles_section\">Einträge</string>\n    <string name=\"label_tracker_section\">Tracker</string>\n    <string name=\"minute_short\">%d min</string>\n    <string name=\"seconds_short\">%d s</string>\n    <string name=\"action_not_now\">Nicht jetzt</string>\n    <string name=\"information_no_manga_category\">Kategorie ist leer</string>\n    <string name=\"pref_library_update_show_tab_badge\">Anzahl an Ungelesenem auf dem „Neues“-Symbol anzeigen</string>\n    <string name=\"copied_to_clipboard_plain\">In die Zwischenablage kopiert</string>\n    <string name=\"enhanced_services_not_installed\">Verfügbar, aber Quelle ist nicht installiert: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Doppelte Kapitel überspringen</string>\n    <string name=\"track_error\">%1$s-Fehler: %2$s</string>\n    <string name=\"information_required_plain\">*erforderlich</string>\n    <string name=\"pref_hide_in_library_items\">Einträge verbergen, die bereits in der Bibliothek sind</string>\n    <string name=\"action_copy_to_clipboard\">In die Zwischenablage kopieren</string>\n    <string name=\"action_update_category\">Kategorie aktualisieren</string>\n    <string name=\"split_tall_images\">Hohe Bilder teilen</string>\n    <string name=\"overlay_header\">Overlay</string>\n    <string name=\"pref_page_rotate\">Breite Seiten drehen, damit sie passen</string>\n    <string name=\"pref_page_rotate_invert\">Ausrichtung gedrehter breiter Seiten spiegeln</string>\n    <string name=\"pref_debug_info\">Debug-Info</string>\n    <string name=\"pref_chapter_swipe_end\">Kapitel beim Streichen nach rechts</string>\n    <string name=\"pref_chapter_swipe_start\">Kapitel beim Streichen nach links</string>\n    <string name=\"pref_double_tap_zoom\">Zum Zoomen doppeltippen</string>\n    <string name=\"intervals_header\">Intervalle</string>\n    <string name=\"action_filter_interval_custom\">Benutzerdefiniertes Aktualisierungsintervall</string>\n    <string name=\"action_set_interval\">Intervall einstellen</string>\n    <string name=\"action_sort_next_updated\">Nächste erwartete Aktualisierung</string>\n    <string name=\"pref_update_only_in_release_period\">Nächsten Veröffentlichungszeitpunkt vorhersagen</string>\n    <string name=\"skipped_reason_not_in_release_period\">Übersprungen, da heute keine Veröffentlichung erwartet wurde</string>\n    <string name=\"manga_display_interval_title\">Schätzt alle</string>\n    <string name=\"manga_display_modified_interval_title\">Aktualisiert alle</string>\n    <string name=\"track_delete_text\">Dies wird das lokale Tracking entfernen.</string>\n    <string name=\"track_delete_remote_text\">Auch aus %s entfernen</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_title\">Tracking von %s entfernen?</string>\n    <string name=\"delete_downloaded\">Heruntergeladenes löschen</string>\n    <string name=\"has_results\">Hat Ergebnisse</string>\n    <string name=\"syncing_library\">Bibliothek wird synchronisiert</string>\n    <string name=\"library_sync_complete\">Bibliothekssynchronisierung abgeschlossen</string>\n    <string name=\"information_cloudflare_help\">Tippe hier, um Hilfe zu Cloudflare zu erhalten</string>\n    <string name=\"download_cache_invalidated\">Downloads werden neu indexiert</string>\n    <string name=\"track_activity_name\">Tracker-Login</string>\n    <string name=\"create_backup_file_error\">Sicherungsdatei konnte nicht erstellt werden</string>\n    <string name=\"exception_http\">HTTP %d, überprüfe die Webseite in WebView</string>\n    <string name=\"exception_offline\">Keine Internetverbindung</string>\n    <string name=\"exception_unknown_host\">%s konnte nicht erreicht werden</string>\n    <string name=\"unlock_app_title\">%s entsperren</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Serie nach unten verschieben</string>\n    <string name=\"pref_relative_format\">Relative Zeitstempel</string>\n    <string name=\"pref_relative_format_summary\">„%1$s“ anstelle von „%2$s“</string>\n    <string name=\"app_settings\">App-Einstellungen</string>\n    <string name=\"source_settings\">Quelleneinstellungen</string>\n    <string name=\"notification_updating_progress\">Bibliothek wird aktualisiert… (%s)</string>\n    <string name=\"file_null_uri_error\">Keine Datei ausgewählt</string>\n    <string name=\"relative_time_span_never\">Nie</string>\n    <string name=\"pref_flash_page_summ\">Reduziert Ghosting auf E-Papier-Displays</string>\n    <string name=\"last_auto_backup_info\">Zuletzt automatisch gesichert: %s</string>\n    <string name=\"pref_flash_page\">Bei Umblättern aufleuchten</string>\n    <string name=\"label_data_storage\">Daten und Speicher</string>\n    <string name=\"action_create\">Erstellen</string>\n    <string name=\"action_apply\">Anwenden</string>\n    <string name=\"action_revert_to_default\">Auf Standard zurücksetzen</string>\n    <string name=\"no_scanlators_found\">Keine Scanlationgruppe gefunden</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"pref_storage_usage\">Speichernutzung</string>\n    <string name=\"action_sort_tracker_score\">Tracker-Bewertung</string>\n    <string name=\"exclude_scanlators\">Scanlationgruppe ausschließen</string>\n    <string name=\"selected\">Ausgewählt</string>\n    <string name=\"not_selected\">Nicht ausgewählt</string>\n    <string name=\"pref_storage_location\">Speicherort</string>\n    <string name=\"pref_storage_location_info\">Wird für automatische Datensicherungen, heruntergeladene Kapitel und lokale Quellen verwendet.</string>\n    <string name=\"action_menu_overflow_description\">Weitere Optionen</string>\n    <string name=\"action_bar_up_description\">Nach oben navigieren</string>\n    <string name=\"onboarding_storage_action_select\">Ordner auswählen</string>\n    <string name=\"pref_onboarding_guide\">Einführungstour</string>\n    <string name=\"onboarding_guides_new_user\">Neu bei %s? Wir empfehlen dir, unseren Einstiegsleitfaden anzusehen.</string>\n    <string name=\"onboarding_action_finish\">Loslegen</string>\n    <string name=\"onboarding_storage_selection_required\">Es muss ein Ordner ausgewählt sein</string>\n    <string name=\"onboarding_heading\">Willkommen!</string>\n    <string name=\"onboarding_guides_returning_user\">%s reinstalliert?</string>\n    <string name=\"onboarding_action_skip\">Überspringen</string>\n    <string name=\"onboarding_action_next\">Weiter</string>\n    <string name=\"onboarding_description\">Lass uns zuerst ein paar Dinge einrichten. Du kannst diese später in den Einstellungen jederzeit ändern.</string>\n    <string name=\"no_location_set\">Kein Speicherort festgelegt</string>\n    <string name=\"onboarding_storage_info\">Wähle einen Ordner aus, in welchem %1$s Kapitel-Downloads, Datensicherungen und mehr speichern wird.\n\\n\n\\nEin dedizierter Ordner wird empfohlen.\n\\n\n\\nAusgewählter Ordner: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Berechtigung für Benachrichtigungen</string>\n    <string name=\"onboarding_permission_install_apps\">Berechtigung zum Installieren von Apps</string>\n    <string name=\"available_disk_space_info\">Verfügbar: %1$s / Insgesamt: %2$s</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Verhindere Unterbrechungen bei lang anhaltenden Bibliotheksaktualisierungen, Downloads und Sicherungswiederherstellungen.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Akkunutzung im Hintergrund</string>\n    <string name=\"onboarding_permission_install_apps_description\">Zum Installieren von Quellenerweiterungen.</string>\n    <string name=\"onboarding_permission_notifications_description\">Erhalte Benachrichtigungen für Bibliotheksaktualisierungen und mehr.</string>\n    <string name=\"ext_permission_install_apps_warning\">Für das Installieren von Erweiterungen sind Berechtigungen erforderlich. Tippe hier, um sie zu gewähren.</string>\n    <string name=\"private_settings\">Sensible Einstellungen einbeziehen (z. B. Login-Token für Tracker)</string>\n    <string name=\"onboarding_permission_action_grant\">Zulassen</string>\n    <string name=\"invalid_backup_file_error\">Vollständiger Fehler:</string>\n    <string name=\"manga_interval_custom_amount\">Benutzerdefinierte Aktualisierungshäufigkeit:</string>\n    <string name=\"label_extension_repos\">Erweiterungs-Repositorys</string>\n    <string name=\"information_empty_repos\">Es wurden noch keine Repositorys festgelegt.</string>\n    <string name=\"action_add_repo\">Repository hinzufügen</string>\n    <string name=\"error_repo_exists\">Dieses Repository existiert bereits!</string>\n    <string name=\"action_delete_repo\">Repository löschen</string>\n    <string name=\"delete_repo_confirmation\">Möchtest du das Repository „%s“ löschen?</string>\n    <string name=\"onboarding_storage_help_info\">Du aktualisierst von einer älteren Version und bist dir nicht sicher, was du auswählen sollst? Schau dir den Speicherleitfaden für mehr Informationen an.</string>\n    <string name=\"onboarding_storage_help_action\">Speicherleitfaden</string>\n    <string name=\"pref_library_update_smart_update\">Intelligentes Aktualisieren</string>\n    <string name=\"label_add_repo_input\">Repository-URL</string>\n    <string name=\"action_add_repo_message\">Füge zusätzliche Repositorys zu %s hinzu. Deren URLs sollten mit „index.min.json“ enden.</string>\n    <string name=\"invalid_repo_name\">Ungültige Repository-URL</string>\n    <string name=\"manga_interval_expected_update\">Ca. %1$s bis zur Veröffentlichung neuer Kapitel, wird ca. alle %2$s überprüft.</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"action_open_repo\">Open-Source-Repository</string>\n    <string name=\"manga_interval_expected_update_soon\">Bald</string>\n    <string name=\"ext_revoke_trust\">Zertifikatsbestätigungen zurücknehmen</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Rauszoomen deaktivieren</string>\n    <string name=\"pref_display_profile\">Benutzerdefiniertes Anzeigeprofil</string>\n    <string name=\"action_add_anyway\">Trotzdem hinzufügen</string>\n    <string name=\"action_replace_repo\">Ersetzen</string>\n    <string name=\"action_replace_repo_title\">Signaturschlüssel-Fingerprint existiert bereits</string>\n    <string name=\"action_replace_repo_message\">Repository %1$s hat den gleichen Signaturschlüssel-Fingerprint wie %2$s.\n\\nFalls das erwünscht ist, wird %2$s nun ersetzt. Falls nicht, kontaktiere den Repository-Maintainer.</string>\n    <string name=\"upcoming_calendar_next\">Nächster Monat</string>\n    <string name=\"upcoming_calendar_prev\">Vorheriger Monat</string>\n    <string name=\"label_upcoming\">Bevorstehend</string>\n    <string name=\"action_view_upcoming\">Bevorstehende Aktualisierungen ansehen</string>\n    <string name=\"upcoming_guide\">Leitfaden für Bevorstehendes</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Dauerhafter Ordnerzugriff konnte nicht erlangt werden. Die App kann sich unerwartet verhalten.</string>\n    <string name=\"manga_interval_expected_update_null\">Dieser Manga ist entweder abgeschlossen, oder es existiert kein geschätztes Veröffentlichungsdatum.</string>\n    <string name=\"pref_flash_page_interval\">Leuchte jede</string>\n    <string name=\"pref_flash_with\">Leuchte mit</string>\n    <string name=\"pref_flash_style_black\">Schwarz</string>\n    <string name=\"pref_flash_style_white\">Weiß</string>\n    <string name=\"pref_flash_style_white_black\">Weiß und Schwarz</string>\n    <string name=\"pref_flash_duration\">Dauer des Leuchtens</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"action_copy_link\">Link kopieren</string>\n    <string name=\"extensionRepo_settings\">Erweiterungsrepositorys</string>\n    <string name=\"invalid_backup_file_unknown\">Sicherungsdatei ist beschädigt</string>\n    <string name=\"invalid_backup_file_json\">JSON-Sicherung wird nicht unterstützt</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Herunterladen von doppelten gelesenen Kapiteln überspringen</string>\n    <string name=\"add_repo_confirmation\">Möchtest du das Repository \\\"%s\\\" hinzufügen?</string>\n    <string name=\"confirm_tracker_update\">Tracker auf Kapitel %d aktualisieren?</string>\n    <string name=\"pref_firebase\">Datenerhebung und Absturzprotokolle</string>\n    <string name=\"onboarding_permission_analytics_description\">Sende anonymisierte Nutzungsdaten, um App-Funktionen zu verbessern.</string>\n    <string name=\"onboarding_permission_analytics\">Datenerhebung zulassen</string>\n    <string name=\"action_sort_random\">Zufällig</string>\n    <string name=\"onboarding_permission_crashlytics\">Absturzprotokolle senden</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Anonymisierte Absturzprotokolle an das Entwicklerteam senden.</string>\n    <string name=\"pref_security\">Sicherheit</string>\n    <string name=\"firebase_summary\">Das Übermitteln von Absturzprotokollen und erhobenen Daten ermöglicht es uns, Probleme zu erkennen und zu beheben, die Leistung zu verbessern und künftige Updates besser auf deine Bedürfnisse abzustimmen</string>\n    <string name=\"ext_remove\">Entfernen</string>\n    <string name=\"ext_confirm_remove\">Erweiterung entfernen?</string>\n    <string name=\"remove_private_extension_message\">Möchtest du die Erweiterung „%s“ wirklich entfernen?</string>\n    <string name=\"non_library_settings\">Alle gelesenen Einträge</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Fortschritt aktualisieren, wenn als gelesen markiert wird</string>\n    <string name=\"trackers_updated_summary\">Tracker auf Kapitel %d aktualisiert</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Reduziert stufenweise den Grenzwert, wenn der Leser nur ein leeres Bild lädt.\\nAusgewählt: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Benutzerdefinierter Hardware-Bitmap-Grenzwert</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Standard (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Beeinflusst die Leistung. Nur aktivieren, wenn das Reduzieren des Bitmap-Grenzwerts das Problem von leeren Bildern nicht behebt</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Leseverlauf für eine Erweiterung pausieren</string>\n    <string name=\"label_auto\">Automatisch</string>\n    <string name=\"theme_monochrome\">Monochrom</string>\n    <string name=\"tracked_privately\">Privat getrackt</string>\n    <string name=\"action_toggle_private_on\">Privat tracken</string>\n    <string name=\"action_toggle_private_off\">Öffentlich tracken</string>\n    <string name=\"library_list\">Bibliotheksliste</string>\n    <string name=\"library_exported\">Bibliothek exportiert</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"export\">Exportieren</string>\n    <string name=\"artist\">Illustrator</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Legacy-Decoder für Langer-Streifen-Leser verwenden</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Doppeltes gelesenes Kapitel als gelesen markieren</string>\n    <string name=\"action_display_unread_badge\">Ungelesene Kapitel</string>\n    <string name=\"pref_behavior\">Verhalten</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Nach dem Abrufen eines neuen Kapitels</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Nach dem Lesen eines Kapitels</string>\n    <string name=\"action_notes\">Notizen</string>\n    <string name=\"action_edit_notes\">Notizen bearbeiten</string>\n    <string name=\"notes_placeholder\">Mir gefiel der Teil, in dem…</string>\n    <string name=\"possible_duplicates_title\">Mögliche Duplikate</string>\n    <string name=\"possible_duplicates_summary\">In deiner Bibliothek existieren Einträge mit einem ähnlichen Namen.\\n\\nWähle einen Eintrag zum Migrieren aus oder füge ihn trotzdem hinzu.</string>\n    <string name=\"clear_database_text\">Du bist dabei, Einträge aus der Datenbank zu entfernen</string>\n    <string name=\"clear_database_history_warning\">Gelesene Kapitel und Fortschritte von Einträgen, die sich nicht in deiner Bibliothek befinden, werden gelöscht</string>\n    <string name=\"clear_db_exclude_read\">Einträge mit gelesenen Kapiteln behalten</string>\n    <string name=\"storage_failed_to_create_download_directory\">Erstellen eines Download-Verzeichnisses fehlgeschlagen</string>\n    <string name=\"storage_failed_to_create_directory\">Erstellen des Verzeichnisses fehlgeschlagen: %s</string>\n    <string name=\"pref_update_library_manga_titles\">Mangatitel in der Bibliothek mit ihren Quellen abgleichen</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Achtung: Sollte ein Manga umbenannt werden, wird er aus der Downloadwarteschlange entfernt (falls dort vorhanden).</string>\n    <string name=\"logging_in\">Einloggen…</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Alle auswählen</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Aktivierte Quellen auswählen</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Angepinnte Quellen auswählen</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Fortfahren</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Keine auswählen</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Ausgewählt</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Verfügbar</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Daten zum Migrieren</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Downloads des aktuellen Eintrags nach der Migration löschen</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Eintrag nur anzeigen, wenn das Ergebnis zusätzliche Kapitel beinhaltet</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Erweiterter Suchmodus</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Übereinstimmung basierend auf Kapitelnummer treffen</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Zusätzliche Suchbegriffe (optional)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Hilft dabei, mittels zusätzlicher Schlagwörter die Suchergebnisse einzugrenzen</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Einträge ohne Treffer verbergen</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Diese Optionen sind langsam und gefährlich und können zu Beschränkungen seitens der Quellen führen</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Einträge ohne neue Kapitel verbergen</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Teilt den Titel für eine breitere Suche in Schlagwörter auf</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopieren</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Keine Alternativen gefunden</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Neueste: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Unbekannt</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Manuell suchen</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Nicht migrieren</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Abbrechen</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopieren</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Indikator für fehlende Kapitel verbergen</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Falls aktiviert, wird die am weitesten entfernte Übereinstimmung gewählt. Andernfalls wird die erste Übereinstimmung nach Quellpriorität ausgewählt.</string>\n    <string name=\"migrationListScreenTitle\">Migration</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migration (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrieren</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Jetzt migrieren</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Jetzt kopieren</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Migrieren stoppen?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Stopp</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrieren</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Abbrechen</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Abbrechen</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Keine Kapitel gefunden, dieser Eintrag konnte nicht für eine Migration verwendet werden</string>\n    <string name=\"label_donate\">Spenden</string>\n    <string name=\"pref_display_images_description\">Bilder in Mangabeschreibungen anzeigen</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Nicht-ASCII-Dateinamen nicht zulassen</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Versichert Kompatibilität mit bestimmten Speichermedien, die Unicode nicht unterstützen. Ist diese Option aktiviert, müssen Quellen- und Manga-Ordner manuell umbenannt werden, indem Nicht-ASCII-Zeichen durch ihre UTF-8-Hexadezimaldarstellungen in Kleinbuchstaben ersetzt werden. Kapiteldateien müssen nicht umbenannt werden.</string>\n    <string name=\"pref_download_concurrent_sources\">Gleichzeitige Quellendownloads</string>\n    <string name=\"pref_download_concurrent_pages\">Gleichzeitige Seitendownloads</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Pro Quelle gleichzeitig heruntergeladene Seiten</string>\n    <string name=\"action_webview_close_tab\">Tab schließen</string>\n    <string name=\"action_filter_excluded_scanlators\">Ausgeschlossene Scanlationgruppen herausfiltern</string>\n    <string name=\"calculating\">Wird berechnet…</string>\n    <string name=\"download_bookmarked\">Mit Lesezeichen versehen</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/el/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d νέο κεφάλαιο</item>\n        <item quantity=\"other\">%1$d νέα κεφάλαια</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Για %d καταχώριση</item>\n        <item quantity=\"other\">Για %d καταχωρίσεις</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Διαθέσιμη ενημέρωση επέκτασης</item>\n        <item quantity=\"other\">%d διαθέσιμες ενημερώσεις επεκτάσεων</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Μετά από %1$s λεπτό</item>\n        <item quantity=\"other\">Μετά από %1$s λεπτά</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Κεφάλαια %1$s και 1 ακόμη</item>\n        <item quantity=\"other\">Κεφάλαια %1$s και %2$d ακόμη</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s που απομένει</item>\n        <item quantity=\"other\">%1$s που απομένουν</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d κατηγορία</item>\n        <item quantity=\"other\">%d κατηγορίες</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Έγινε σε %1$s με %2$s σφάλμα</item>\n        <item quantity=\"other\">Έγινε σε %1$s με %2$s σφάλματα</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s κεφάλαιο</item>\n        <item quantity=\"other\">%1$s κεφάλαια</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d ιχνηλάτης</item>\n        <item quantity=\"other\">%d ιχνηλάτες</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Παραλείπεται %d κεφάλαιο, είτε λείπει από την πηγή είτε έχει φιλτραριστεί</item>\n        <item quantity=\"other\">Παραλείπονται %d κεφάλαια, είτε λείπουν από την πηγή είτε έχουν φιλτραριστεί</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Εχθές</item>\n        <item quantity=\"other\">%1$d μέρες πριν</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Επόμενο αδιάβαστο κεφάλαιο</item>\n        <item quantity=\"other\">Επόμενα %d αδιάβαστα κεφάλαια</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Επόμενο κεφάλαιο</item>\n        <item quantity=\"other\">Επόμενα %d κεφάλαια</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Λείπει %1$s κεφάλαιο</item>\n        <item quantity=\"other\">Λείπουν %1$s κεφάλαια</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 ημέρα</item>\n        <item quantity=\"other\">%d ημέρες</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d αποθετήριο</item>\n        <item quantity=\"other\">%d αποθετήρια</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Μεταφορά %1$d καταχώρησης;</item>\n        <item quantity=\"other\">Μεταφορά %1$d καταχωρήσεων;</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Αντιγραφή %1$d καταχώρησης;</item>\n        <item quantity=\"other\">Αντιγραφή %1$d καταχωρήσεων;</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Αύριο</item>\n        <item quantity=\"other\">Σε %1$d ημέρες</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 σελίδα</item>\n        <item quantity=\"other\">%1$s σελίδες</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Μια καταχώρηση παραλείφθηκε</item>\n        <item quantity=\"other\">%1$d καταχωρήσεις παραλείφθηκαν</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/el/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Όνομα</string>\n    <string name=\"categories\">Κατηγορίες</string>\n    <string name=\"manga\">Καταχωρήσεις βιβλιοθήκης</string>\n    <string name=\"chapters\">Κεφάλαια</string>\n    <string name=\"track\">Παρακολούθηση</string>\n    <string name=\"history\">Ιστορικό</string>\n    <string name=\"label_settings\">Ρυθμίσεις</string>\n    <string name=\"label_download_queue\">Ουρά λήψεων</string>\n    <string name=\"label_library\">Βιβλιοθήκη</string>\n    <string name=\"label_recent_manga\">Ιστορικό</string>\n    <string name=\"label_recent_updates\">Ενημερώσεις</string>\n    <string name=\"label_backup\">Αντίγραφο ασφαλείας και επαναφορά</string>\n    <string name=\"label_migration\">Μεταφορά</string>\n    <string name=\"label_extensions\">Επεκτάσεις</string>\n    <string name=\"label_extension_info\">Πληροφορίες επέκτασης</string>\n    <string name=\"action_settings\">Ρυθμίσεις</string>\n    <string name=\"action_filter\">Φίλτρο</string>\n    <string name=\"action_filter_bookmarked\">Στους Σελιδοδείκτες</string>\n    <string name=\"action_filter_unread\">Αδιάβαστα</string>\n    <string name=\"action_filter_empty\">Αφαίρεση φίλτρου</string>\n    <string name=\"action_sort_alpha\">Αλφαβητικά</string>\n    <string name=\"action_sort_total\">Σύνολο κεφαλαίων</string>\n    <string name=\"action_sort_last_read\">Τελευταίο αναγνωσμένο</string>\n    <string name=\"action_search\">Αναζήτηση</string>\n    <string name=\"action_global_search\">Καθολική αναζήτηση</string>\n    <string name=\"action_select_all\">Επιλογή όλων</string>\n    <string name=\"action_mark_as_read\">Σήμανση ως αναγνωσμένο</string>\n    <string name=\"action_mark_as_unread\">Σήμανση ως μη αναγνωσμένο</string>\n    <string name=\"action_mark_previous_as_read\">Σήμανση προηγούμενου ως αναγνωσμένο</string>\n    <string name=\"action_download\">Λήψη</string>\n    <string name=\"action_bookmark\">Προσθήκη σελιδοδείκτη κεφαλαίου</string>\n    <string name=\"action_remove_bookmark\">Κατάργηση σελιδοδείκτη κεφαλαίου</string>\n    <string name=\"action_delete\">Διαγραφή</string>\n    <string name=\"action_update_library\">Ενημέρωση βιβλιοθήκης</string>\n    <string name=\"action_edit\">Επεξεργασία</string>\n    <string name=\"action_add\">Προσθήκη</string>\n    <string name=\"action_add_category\">Προσθήκη κατηγορίας</string>\n    <string name=\"action_edit_categories\">Επεξεργασία κατηγοριών</string>\n    <string name=\"action_rename_category\">Μετονομασία κατηγορίας</string>\n    <string name=\"action_move_category\">Ορισμός κατηγοριών</string>\n    <string name=\"action_edit_cover\">Επεξεργασία εξώφυλλου</string>\n    <string name=\"action_pause\">Παύση</string>\n    <string name=\"action_previous_chapter\">Προηγούμενο κεφάλαιο</string>\n    <string name=\"action_next_chapter\">Επόμενο κεφάλαιο</string>\n    <string name=\"action_retry\">Επανάληψη</string>\n    <string name=\"action_remove\">Αφαίρεση</string>\n    <string name=\"action_resume\">Συνέχεια</string>\n    <string name=\"action_open_in_browser\">Άνοιγμα σε πρόγραμμα περιήγησης</string>\n    <string name=\"action_display_mode\">Λειτουργία προβολής</string>\n    <string name=\"action_display\">Προβολή</string>\n    <string name=\"action_display_grid\">Συμπαγές πλέγμα</string>\n    <string name=\"action_display_list\">Λίστα</string>\n    <string name=\"action_display_download_badge\">Ληφθέντα κεφάλαια</string>\n    <string name=\"action_cancel\">Άκυρο</string>\n    <string name=\"action_sort\">Ταξινόμηση</string>\n    <string name=\"action_install\">Εγκατάσταση</string>\n    <string name=\"action_share\">Κοινοποίηση</string>\n    <string name=\"action_save\">Αποθήκευση</string>\n    <string name=\"action_reset\">Επαναφορά</string>\n    <string name=\"action_undo\">Αναίρεση</string>\n    <string name=\"action_open_log\">Άνοιγμα αρχείου καταγραφής</string>\n    <string name=\"action_restore\">Επαναφορά</string>\n    <string name=\"loading\">Φόρτωση…</string>\n    <string name=\"app_not_available\">Μη διαθέσιμη εφαρμογή</string>\n    <string name=\"pref_category_general\">Γενικά</string>\n    <string name=\"pref_category_reader\">Αναγνώστης</string>\n    <string name=\"pref_category_downloads\">Λήψεις</string>\n    <string name=\"pref_category_tracking\">Παρακολούθηση</string>\n    <string name=\"pref_category_advanced\">Για προχωρημένους</string>\n    <string name=\"pref_category_about\">Περί</string>\n    <string name=\"pref_library_columns\">Στοιχεία ανά σειρά</string>\n    <string name=\"portrait\">Κατακόρυφα</string>\n    <string name=\"landscape\">Οριζόντια</string>\n    <string name=\"pref_library_update_interval\">Αυτόματες ενημερώσεις</string>\n    <string name=\"update_never\">Απενεργοποιημένο</string>\n    <string name=\"update_6hour\">Κάθε 6 ώρες</string>\n    <string name=\"update_12hour\">Κάθε 12 ώρες</string>\n    <string name=\"update_24hour\">Καθημερινά</string>\n    <string name=\"update_48hour\">Κάθε 2 ημέρες</string>\n    <string name=\"update_weekly\">Εβδομαδιαία</string>\n    <string name=\"all\">Όλα</string>\n    <string name=\"pref_library_update_restriction\">Περιορισμοί αυτόματων ενημερώσεων συσκευής</string>\n    <string name=\"charging\">Κατά τη φόρτιση</string>\n    <string name=\"pref_update_only_non_completed\">Παράλειψη καταχωρήσεων με κατάσταση \\\"Ολοκληρώθηκε\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Ενημέρωση προόδου μετά την ανάγνωση</string>\n    <string name=\"default_category\">Προεπιλεγμένη κατηγορία</string>\n    <string name=\"default_category_summary\">Ερώτηση πάντα</string>\n    <string name=\"ext_update\">Ενημέρωση</string>\n    <string name=\"ext_install\">Εγκατάσταση</string>\n    <string name=\"ext_pending\">Αναμονή</string>\n    <string name=\"ext_downloading\">Γίνεται λήψη</string>\n    <string name=\"ext_installing\">Εγκατάσταση</string>\n    <string name=\"ext_installed\">Εγκαταστημένο</string>\n    <string name=\"ext_trust\">Εμπιστέψου</string>\n    <string name=\"ext_untrusted\">Μη αξιόπιστο</string>\n    <string name=\"ext_uninstall\">Απεγκατάσταση</string>\n    <string name=\"untrusted_extension\">Μη αξιόπιστη επέκταση</string>\n    <string name=\"untrusted_extension_message\">Οι κακόβουλες επεκτάσεις μπορούν να διαβάσουν τυχόν αποθηκευμένα διαπιστευτήρια σύνδεσης ή να εκτελέσουν αυθαίρετο κώδικα.\n\\n\n\\nΜε την εμπιστοσύνη αυτής της επέκτασης, αποδέχεστε αυτούς τους κινδύνους.</string>\n    <string name=\"pref_fullscreen\">Πλήρης οθόνη</string>\n    <string name=\"pref_page_transitions\">Ζωντανή μετάβαση σελίδας</string>\n    <string name=\"pref_double_tap_anim_speed\">Ταχύτητα κίνησης διπλού αγγίγματος</string>\n    <string name=\"pref_show_page_number\">Εμφάνιση αριθμού σελίδας</string>\n    <string name=\"pref_crop_borders\">Περικοπή άκρων</string>\n    <string name=\"pref_custom_brightness\">Προσαρμοσμένη φωτεινότητα</string>\n    <string name=\"pref_custom_color_filter\">Προσαρμοσμένο φίλτρο χρώματος</string>\n    <string name=\"pref_keep_screen_on\">Να κρατηθεί η οθόνη ανοιχτή</string>\n    <string name=\"pref_reader_navigation\">Πλοήγηση</string>\n    <string name=\"pref_read_with_volume_keys\">Πλήκτρα ήχου</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Αντιστροφή των πλήκτρων έντασης</string>\n    <string name=\"pref_reader_theme\">Χρώμα φόντου</string>\n    <string name=\"white_background\">Άσπρο</string>\n    <string name=\"black_background\">Μαύρο</string>\n    <string name=\"pref_viewer_type\">Προεπιλεγμένη λειτουργία ανάγνωσης</string>\n    <string name=\"left_to_right_viewer\">Σελιδοποιημένο (από αριστερά προς τα δεξιά)</string>\n    <string name=\"right_to_left_viewer\">Σελιδοποιημένο (από δεξιά προς τα αριστερά)</string>\n    <string name=\"vertical_viewer\">Σελιδοποιημένο (κατακόρυφα)</string>\n    <string name=\"webtoon_viewer\">Μακριά λωρίδα</string>\n    <string name=\"pager_viewer\">Σελιδοποίηση</string>\n    <string name=\"pref_image_scale_type\">Τύπος κλίμακας</string>\n    <string name=\"scale_type_fit_screen\">Προσαρμογή στην οθόνη</string>\n    <string name=\"scale_type_stretch\">Τέντωμα</string>\n    <string name=\"scale_type_fit_width\">Προσαρμογή στο πλάτος</string>\n    <string name=\"scale_type_fit_height\">Προσαρμογή στο ύψος</string>\n    <string name=\"scale_type_original_size\">Αρχικό μέγεθος</string>\n    <string name=\"scale_type_smart_fit\">Έξυπνη προσαρμογή</string>\n    <string name=\"pref_zoom_start\">Μεγέθυνση αρχικής θέσης</string>\n    <string name=\"zoom_start_automatic\">Αυτόματα</string>\n    <string name=\"zoom_start_left\">Αριστερά</string>\n    <string name=\"zoom_start_right\">Δεξιά</string>\n    <string name=\"zoom_start_center\">Κέντρο</string>\n    <string name=\"double_tap_anim_speed_0\">Χωρίς κίνηση</string>\n    <string name=\"double_tap_anim_speed_normal\">Κανονική</string>\n    <string name=\"double_tap_anim_speed_fast\">Γρήγορη</string>\n    <string name=\"pref_rotation_type\">Προεπιλεγμένη περιστροφή</string>\n    <string name=\"rotation_free\">Ελεύθερο</string>\n    <string name=\"rotation_force_portrait\">Κλειδωμένο κατακόρυφα</string>\n    <string name=\"rotation_force_landscape\">Κλειδωμένο οριζόντια</string>\n    <string name=\"color_filter_r_value\">Κόκκινο</string>\n    <string name=\"color_filter_g_value\">Πράσινο</string>\n    <string name=\"color_filter_b_value\">Μπλε</string>\n    <string name=\"color_filter_a_value\">Αλφα</string>\n    <string name=\"pref_remove_after_marked_as_read\">Αφού επισημανθεί χειροκίνητα ως αναγνωσμένο</string>\n    <string name=\"pref_remove_after_read\">Αυτόματη διαγραφή μετά την ανάγνωση</string>\n    <string name=\"disabled\">Απενεργοποιημένο</string>\n    <string name=\"last_read_chapter\">Τελευταίο αναγνωσμένο κεφάλαιο</string>\n    <string name=\"second_to_last\">Προτελευταίο αναγνωσμένο κεφάλαιο</string>\n    <string name=\"third_to_last\">Προ-προτελευταίο αναγνωσμένο κεφάλαιο</string>\n    <string name=\"fourth_to_last\">Προ-προ-προτελευταίο αναγνωσμένο κεφάλαιο</string>\n    <string name=\"fifth_to_last\">Προ-προ-προ-προτελευταίο αναγνωσμένο κεφάλαιο</string>\n    <string name=\"pref_download_new\">Λήψη νέων κεφαλαίων</string>\n    <string name=\"services\">Ιχνηλάτες</string>\n    <string name=\"pref_create_backup\">Δημιουργία αντιγράφου ασφαλείας</string>\n    <string name=\"pref_create_backup_summ\">Μπορεί να χρησιμοποιηθεί για επαναφορά τρέχουσας βιβλιοθήκης</string>\n    <string name=\"pref_restore_backup\">Επαναφορά αντιγράφου ασφαλείας</string>\n    <string name=\"pref_restore_backup_summ\">Επαναφορά βιβλιοθήκης από αρχείο αντιγράφου ασφαλείας</string>\n    <string name=\"pref_backup_interval\">Συχνότητα αυτόματων αντιγράφων ασφαλείας</string>\n    <string name=\"backup_created\">Δημιουργήθηκε αντίγραφο ασφαλείας</string>\n    <string name=\"restore_completed\">Η επαναφορά ολοκληρώθηκε</string>\n    <string name=\"backup_choice\">Τι αντίγραφο ασφαλείας θέλετε να δημιουργήσετε;</string>\n    <string name=\"restoring_backup\">Επαναφορά αντιγράφων ασφαλείας</string>\n    <string name=\"creating_backup\">Δημιουργία αντιγράφων ασφαλείας</string>\n    <string name=\"pref_clear_chapter_cache\">Καθάρισμα προσωρινής μνήμης κεφαλαίου</string>\n    <string name=\"used_cache\">Χρησιμοποιήθηκε: %1$s</string>\n    <string name=\"cache_deleted\">Η προσωρινή μνήμη διαγράφηκε, %1$d αρχεία διαγράφηκαν</string>\n    <string name=\"cache_delete_error\">Παρουσιάστηκε σφάλμα κατά την εκκαθάριση</string>\n    <string name=\"pref_clear_cookies\">Διαγραφή cookies</string>\n    <string name=\"cookies_cleared\">Τα cookies διαγράφηκαν</string>\n    <string name=\"pref_clear_database\">Καθαρισμός βάσης δεδομένων</string>\n    <string name=\"pref_clear_database_summary\">Διαγραφή ιστορικού για καταχωρήσεις που δεν έχουν αποθηκευτεί στη βιβλιοθήκη σας</string>\n    <string name=\"clear_database_completed\">Οι καταχωρίσεις διαγράφηκαν</string>\n    <string name=\"version\">Έκδοση</string>\n    <string name=\"pref_enable_acra\">Αποστολή αναφορών σφαλμάτων</string>\n    <string name=\"pref_acra_summary\">Βοηθά στην επιδιόρθωση τυχόν σφαλμάτων. Δεν θα αποστέλλονται ευαίσθητα δεδομένα</string>\n    <string name=\"login_title\">Σύνδεση στο %1$s</string>\n    <string name=\"username\">Όνομα χρήστη</string>\n    <string name=\"password\">Κωδικός πρόσβασης</string>\n    <string name=\"login\">Σύνδεση</string>\n    <string name=\"login_success\">Συνδεθήκατε επιτυχώς</string>\n    <string name=\"unknown_error\">Άγνωστο σφάλμα</string>\n    <string name=\"updating_category\">Ενημέρωση κατηγορίας</string>\n    <string name=\"no_more_results\">Δεν υπάρχουν άλλα αποτελέσματα</string>\n    <string name=\"local_source\">Τοπική πηγή</string>\n    <string name=\"other_source\">Άλλα</string>\n    <string name=\"action_global_search_hint\">Καθολική αναζήτηση…</string>\n    <string name=\"latest\">Νεότερα</string>\n    <string name=\"browse\">Περιήγηση</string>\n    <string name=\"ongoing\">Σε εξέλιξη</string>\n    <string name=\"unknown\">Άγνωστο</string>\n    <string name=\"licensed\">Αδειοδοτημένο</string>\n    <string name=\"remove_from_library\">Κατάργηση από τη βιβλιοθήκη</string>\n    <string name=\"manga_added_library\">Προστέθηκε στη βιβλιοθήκη</string>\n    <string name=\"manga_removed_library\">Αφαιρέθηκε από τη βιβλιοθήκη</string>\n    <string name=\"delete_downloads_for_manga\">Να διαγραφούν τα κεφάλαια που έχουν ληφθεί;</string>\n    <string name=\"copied_to_clipboard\">Αντιγράφηκε στο πρόχειρο:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Η πηγή δεν είναι εγκατεστημένη: %1$s</string>\n    <string name=\"display_mode_chapter\">Κεφάλαιο %1$s</string>\n    <string name=\"chapter_downloading_progress\">Λήψη (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Σφάλμα</string>\n    <string name=\"chapter_paused\">Παύση</string>\n    <string name=\"show_title\">Τίτλος πηγής</string>\n    <string name=\"show_chapter_number\">Αριθμός κεφαλαίου</string>\n    <string name=\"sort_by_source\">Με βάση την πηγή</string>\n    <string name=\"sort_by_number\">Ανά αριθμό κεφαλαίου</string>\n    <string name=\"manga_download\">Λήψη</string>\n    <string name=\"download_unread\">Αδιάβαστα</string>\n    <string name=\"confirm_delete_chapters\">Είστε βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα κεφάλαια;</string>\n    <string name=\"manga_tracking_tab\">Παρακολούθηση</string>\n    <string name=\"reading\">Ανάγνωση</string>\n    <string name=\"completed\">Ολοκληρωμένο</string>\n    <string name=\"dropped\">Παραλείφθηκε</string>\n    <string name=\"on_hold\">Σε αναμονή</string>\n    <string name=\"plan_to_read\">Προγραμματισμένο για ανάγνωση</string>\n    <string name=\"repeating\">Ξαναδιαβάζεται</string>\n    <string name=\"score\">Βαθμολογία</string>\n    <string name=\"title\">Τίτλος</string>\n    <string name=\"status\">Κατάσταση</string>\n    <string name=\"track_status\">Κατάσταση</string>\n    <string name=\"track_type\">Τύπος</string>\n    <string name=\"error_category_exists\">Μια κατηγορία με αυτό το όνομα υπάρχει ήδη!</string>\n    <string name=\"snack_categories_deleted\">Οι κατηγορίες διαγράφηκαν</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Αυτό θα αφαιρέσει την ημερομηνία ανάγνωσης αυτού του κεφαλαίου. Είστε σίγουροι;</string>\n    <string name=\"dialog_with_checkbox_reset\">Επαναφορά όλων των κεφαλαίων για αυτήν την καταχώρηση</string>\n    <string name=\"snack_add_to_library\">Προσθήκη στη βιβλιοθήκη;</string>\n    <string name=\"picture_saved\">Η εικόνα αποθηκεύτηκε</string>\n    <string name=\"custom_filter\">Προσαρμοσμένο φίλτρο</string>\n    <string name=\"set_as_cover\">Ορισμός ως εξώφυλλο</string>\n    <string name=\"cover_updated\">Το εξώφυλλο ενημερώθηκε</string>\n    <string name=\"chapter_progress\">Σελίδα: %1$d</string>\n    <string name=\"no_next_chapter\">Το επόμενο κεφάλαιο δεν βρέθηκε</string>\n    <string name=\"decode_image_error\">Δεν ήταν δυνατή η φόρτωση της εικόνας</string>\n    <string name=\"confirm_set_image_as_cover\">Χρησιμοποιήστε αυτήν την εικόνα ως εξώφυλλο;</string>\n    <string name=\"transition_finished\">Διαβασμένο:</string>\n    <string name=\"transition_current\">Τρέχον:</string>\n    <string name=\"transition_next\">Επόμενο:</string>\n    <string name=\"transition_previous\">Προηγούμενο:</string>\n    <string name=\"transition_no_next\">Δεν υπάρχει επόμενο κεφάλαιο</string>\n    <string name=\"transition_no_previous\">Δεν υπάρχει προηγούμενο κεφάλαιο</string>\n    <string name=\"transition_pages_loading\">Φόρτωση σελίδων…</string>\n    <string name=\"transition_pages_error\">Η φόρτωση σελίδων απέτυχε: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Επιλέξτε τα δεδομένα που θέλετε να συμπεριλάβετε</string>\n    <string name=\"migrate\">Μεταφορά</string>\n    <string name=\"copy\">Αντιγραφή</string>\n    <string name=\"download_queue_error\">Δεν ήταν δυνατή η λήψη κεφαλαίων. Μπορείτε να δοκιμάσετε ξανά στο τμήμα λήψεων</string>\n    <string name=\"notification_new_chapters\">Βρέθηκαν νέα κεφάλαια</string>\n    <string name=\"notification_cover_update_failed\">Δεν ήταν δυνατή η ενημέρωση του εξώφυλλου</string>\n    <string name=\"notification_first_add_to_library\">Παρακαλώ προσθέστε την καταχώρηση στη βιβλιοθήκη σας πριν το κάνετε αυτό</string>\n    <string name=\"file_select_cover\">Επιλέξτε εικόνα εξωφύλλου</string>\n    <string name=\"file_select_backup\">Επιλέξτε αρχείο αντιγράφου ασφαλείας</string>\n    <string name=\"update_check_confirm\">Λήψη</string>\n    <string name=\"update_check_no_new_updates\">Δεν υπάρχουν διαθέσιμες νέες ενημερώσεις</string>\n    <string name=\"update_check_notification_download_in_progress\">Γίνεται λήψη…</string>\n    <string name=\"update_check_notification_download_complete\">Πατήστε για να εγκαταστήσετε την ενημέρωση</string>\n    <string name=\"update_check_notification_download_error\">Σφάλμα λήψης</string>\n    <string name=\"update_check_notification_update_available\">Υπάρχει διαθέσιμη ενημέρωση!</string>\n    <string name=\"information_no_downloads\">Δεν υπάρχουν λήψεις</string>\n    <string name=\"information_no_recent\">Δεν υπάρχουν πρόσφατες ενημερώσεις</string>\n    <string name=\"information_no_recent_manga\">Τίποτα δεν διαβάστηκε πρόσφατα</string>\n    <string name=\"information_empty_library\">Η βιβλιοθήκη σας είναι κενή</string>\n    <string name=\"information_empty_category\">Δεν έχετε κατηγορίες. Πατήστε το κουμπί συν για να δημιουργήσετε μία για την οργάνωση της βιβλιοθήκης σας.</string>\n    <string name=\"download_notifier_downloader_title\">Πρόγραμμα λήψης</string>\n    <string name=\"download_notifier_title_error\">Σφάλμα</string>\n    <string name=\"download_notifier_unknown_error\">Το κεφάλαιο δεν μπορούσε να ληφθεί λόγο μη αναμενόμενου σφάλματος</string>\n    <string name=\"download_notifier_text_only_wifi\">Δεν υπάρχει διαθέσιμη σύνδεση Wi-Fi</string>\n    <string name=\"download_notifier_no_network\">Δεν υπάρχει διαθέσιμη σύνδεση δικτύου</string>\n    <string name=\"download_notifier_download_paused\">Λήψεις σε παύση</string>\n    <string name=\"channel_common\">Κοινό</string>\n    <string name=\"pref_read_with_long_tap\">Εμφάνιση ενεργειών με παρατεταμένο πάτημα</string>\n    <string name=\"action_open_in_web_view\">Άνοιγμα στο WebView</string>\n    <string name=\"pref_skip_read_chapters\">Προσπέραση διαβασμένων κεφαλαίων</string>\n    <string name=\"filter_mode_overlay\">Επικάλυψη</string>\n    <string name=\"filter_mode_multiply\">Πολλαπλασιασμός</string>\n    <string name=\"filter_mode_screen\">Οθόνη</string>\n    <string name=\"label_help\">Βοήθεια</string>\n    <string name=\"pref_color_filter_mode\">Μέθοδος μίξης χρωματικού φίλτρου</string>\n    <string name=\"filter_mode_lighten\">Dodge / Φώτισε</string>\n    <string name=\"filter_mode_darken\">Burn / Σκουραίωσε</string>\n    <string name=\"no_results_found\">Δεν βρέθηκαν αποτελέσματα</string>\n    <string name=\"migration_selection_prompt\">Επιλέξτε μια πηγή από την οποία θα μεταφερθείτε</string>\n    <string name=\"action_webview_back\">Πίσω</string>\n    <string name=\"action_webview_forward\">Μπροστά</string>\n    <string name=\"action_webview_refresh\">Ανανέωση</string>\n    <string name=\"pref_category_library\">Βιβλιοθήκη</string>\n    <string name=\"ext_obsolete\">Απαρχαιωμένο</string>\n    <string name=\"obsolete_extension_message\">Αυτή η επέκταση δεν είναι πλέον διαθέσιμη. Ενδέχεται να μη λειτουργεί σωστά και μπορεί να προκαλέσει προβλήματα με την εφαρμογή. Συνιστάται η απεγκατάσταση της.</string>\n    <string name=\"label_more\">Περισσότερα</string>\n    <string name=\"last_used_source\">Χρησιμοποιήθηκε τελευταία</string>\n    <string name=\"add_tracking\">Προσθήκη tracking</string>\n    <string name=\"pinned_sources\">Καρφιτσωμένα</string>\n    <string name=\"restore_duration\">%1$02d λεπτά, %2$02d δευτερόλεπτα</string>\n    <string name=\"action_select_inverse\">Επιλογή αντίστροφου</string>\n    <string name=\"channel_ext_updates\">Ενημερώσεις επεκτάσεων</string>\n    <string name=\"channel_new_chapters\">Ενημερώσεις κεφαλαίων</string>\n    <string name=\"information_webview_outdated\">Παρακαλώ ενημερώστε την εφαρμογή WebView για καλύτερη συμβατότητα</string>\n    <string name=\"information_webview_required\">Το WebView απαιτείται για τη λειτουργία της εφαρμογής</string>\n    <string name=\"notification_chapters_single_and_more\">Κεφάλαιο %1$s και %2$d ακόμη</string>\n    <string name=\"notification_chapters_multiple\">Κεφάλαια %1$s</string>\n    <string name=\"notification_chapters_single\">Κεφάλαιο %1$s</string>\n    <string name=\"recent_manga_time\">Κεφ. %1$s - %2$s</string>\n    <string name=\"updating_library\">Ενημέρωση βιβλιοθήκης</string>\n    <string name=\"paused\">Σε παύση</string>\n    <string name=\"manga_info_collapse\">Λιγότερα</string>\n    <string name=\"manga_info_expand\">Περισσότερα</string>\n    <string name=\"in_library\">Στη βιβλιοθήκη</string>\n    <string name=\"add_to_library\">Προσθήκη στη βιβλιοθήκη</string>\n    <string name=\"local_source_help_guide\">Οδηγός τοπικής πηγής</string>\n    <string name=\"information_cloudflare_bypass_failure\">Αποτυχία παράκαμψης του Cloudflare</string>\n    <string name=\"logout_success\">Έχετε αποσυνδεθεί</string>\n    <string name=\"logout\">Αποσύνδεση</string>\n    <string name=\"logout_title\">Αποσύνδεση από %1$s;</string>\n    <string name=\"email\">Διεύθυνση ηλεκτ. ταχυδρομείου</string>\n    <string name=\"check_for_updates\">Έλεγχος για ενημερώσεις</string>\n    <string name=\"licenses\">Άδειες ανοιχτού κώδικα</string>\n    <string name=\"website\">Ιστότοπος</string>\n    <string name=\"battery_optimization_disabled\">Η βελτιστοποίηση μπαταρίας είναι ήδη απενεργοποιημένη</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Βοηθά στις ενημερώσεις βιβλιοθήκης και τα αντίγραφα ασφαλείας στο παρασκήνιο</string>\n    <string name=\"pref_disable_battery_optimization\">Απενεργοποίηση βελτιστοποίησης μπαταρίας</string>\n    <string name=\"restoring_backup_canceled\">Η επαναφορά ακυρώθηκε</string>\n    <string name=\"restoring_backup_error\">Η επαναφορά του αντιγράφου ασφαλείας απέτυχε</string>\n    <string name=\"restore_in_progress\">Η επαναφορά βρίσκεται ήδη σε εξέλιξη</string>\n    <string name=\"creating_backup_error\">Η δημιουργία αντιγράφων ασφαλείας απέτυχε</string>\n    <string name=\"backup_in_progress\">Η δημιουργία αντιγράφων ασφαλείας βρίσκεται ήδη σε εξέλιξη</string>\n    <string name=\"pref_webtoon_side_padding\">Πλευρικό γέμισμα</string>\n    <string name=\"pref_category_reading\">Ανάγνωση</string>\n    <string name=\"pref_always_show_chapter_transition\">Να εμφανίζεται πάντα η μετάβαση κεφαλαίου</string>\n    <string name=\"vertical_plus_viewer\">Μακριά λωρίδα με κενά</string>\n    <string name=\"pref_skip_filtered_chapters\">Παράλειψη φιλτραρισμένων κεφαλαίων</string>\n    <string name=\"pref_cutout_short\">Εμφάνιση περιεχομένου στην περιοχή αποκοπής</string>\n    <string name=\"ext_updates_pending\">Εκκρεμούν ενημερώσεις</string>\n    <string name=\"pref_category_library_update\">Καθολική ενημέρωση</string>\n    <string name=\"pref_category_display\">Προβολή</string>\n    <string name=\"hide_notification_content\">Απόκρυψη περιεχομένου ειδοποιήσεων</string>\n    <string name=\"secure_screen_summary\">Η ασφαλής οθόνη αποκρύπτει τα περιεχόμενα εφαρμογών κατά την εναλλαγή εφαρμογών και εμποδίζει τα στιγμιότυπα οθόνης</string>\n    <string name=\"secure_screen\">Ασφάλισε την οθόνη</string>\n    <string name=\"lock_never\">Ποτέ</string>\n    <string name=\"lock_always\">Πάντα</string>\n    <string name=\"lock_when_idle\">Κλείδωμα όταν είναι αδρανής</string>\n    <string name=\"lock_with_biometrics\">Απαιτείται ξεκλείδωμα</string>\n    <string name=\"pref_category_security\">Ασφάλεια και ιδιωτικότητα</string>\n    <string name=\"pref_manage_notifications\">Διαχείριση ειδοποιήσεων</string>\n    <string name=\"pref_date_format\">Μορφή ημερομηνίας</string>\n    <string name=\"theme_system\">Σύστημα</string>\n    <string name=\"theme_dark\">Σκοτεινό</string>\n    <string name=\"theme_light\">Φωτεινό</string>\n    <string name=\"action_move_to_bottom\">Μετακίνηση στον πάτο</string>\n    <string name=\"action_move_to_top\">Μετακίνηση στην κορυφή</string>\n    <string name=\"action_cancel_all\">Ακύρωση όλων</string>\n    <string name=\"action_unpin\">Ξεκαρφίτσωμα</string>\n    <string name=\"action_pin\">Καρφίτσωμα</string>\n    <string name=\"action_view_chapters\">Προβολή κεφαλαίων</string>\n    <string name=\"action_sort_latest_chapter\">Νεότερο κεφάλαιο</string>\n    <string name=\"action_menu\">Μενού</string>\n    <string name=\"label_downloaded_only\">Ληφθέντα μόνο</string>\n    <string name=\"label_sources\">Πηγές</string>\n    <string name=\"action_oldest\">Παλαιότερο</string>\n    <string name=\"action_newest\">Νεότερο</string>\n    <string name=\"downloaded_only_summary\">Φιλτράρει όλες τις καταχωρήσεις στη βιβλιοθήκη σας</string>\n    <string name=\"gray_background\">Γκρι</string>\n    <string name=\"viewer\">Λειτουργία ανάγνωσης</string>\n    <string name=\"pref_category_for_this_series\">Για αυτήν τη σειρά</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Δεν ήταν δυνατό το άνοιγμα των ρυθμίσεων της συσκευής</string>\n    <string name=\"tracking_info\">Μονόδρομος συγχρονισμός για ενημέρωση των υπηρεσιών εξωτερικής παρακολούθησης προόδου κεφαλαίων. Ρυθμίστε την παρακολούθηση για μεμονωμένες καταχωρήσεις από το κουμπί παρακολούθησης τους.</string>\n    <string name=\"pref_refresh_library_covers\">Ανανέωση εξώφυλλων βιβλιοθήκης</string>\n    <string name=\"sort_by_upload_date\">Από ημερομηνία μεταφόρτωσης</string>\n    <string name=\"label_data\">Δεδομένα</string>\n    <string name=\"backup_restore_missing_sources\">Πηγές που λείπουν:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Το αντίγραφο ασφαλείας δεν περιέχει καταχωρήσεις βιβλιοθήκης.</string>\n    <string name=\"invalid_backup_file\">Μη έγκυρο αρχείο αντιγράφου ασφαλείας:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Έλεγχος για νέο εξώφυλλο και λεπτομέρειες κατά την ενημέρωση της βιβλιοθήκης</string>\n    <string name=\"pref_library_update_refresh_metadata\">Αυτόματη ανανέωση μεταδεδομένων</string>\n    <string name=\"action_migrate\">Μεταφορά</string>\n    <string name=\"action_display_comfortable_grid\">Άνετο πλέγμα</string>\n    <string name=\"tabs_header\">Καρτέλες</string>\n    <string name=\"action_display_show_tabs\">Εμφάνιση καρτελών κατηγοριών</string>\n    <string name=\"page_list_empty_error\">Δεν βρέθηκαν σελίδες</string>\n    <string name=\"action_disable_all\">Απενεργοποίηση όλων</string>\n    <string name=\"action_enable_all\">Ενεργοποίηση όλων</string>\n    <string name=\"pref_show_reading_mode_summary\">Σύντομη εμφάνιση της τρέχουσας κατάστασης λειτουργίας κατά το άνοιγμα του προγράμματος ανάγνωσης</string>\n    <string name=\"pref_show_reading_mode\">Εμφάνιση λειτουργίας ανάγνωσης</string>\n    <string name=\"action_start\">Έναρξη</string>\n    <string name=\"loader_not_implemented_error\">Δεν βρέθηκε πηγή</string>\n    <string name=\"action_disable\">Απενεργοποίηση</string>\n    <string name=\"requires_app_restart\">Απαιτείται επανεκκίνηση της εφαρμογής για να τεθεί σε ισχύ</string>\n    <string name=\"label_network\">Δίκτυο</string>\n    <string name=\"tapping_inverted_both\">Και τα δυο</string>\n    <string name=\"tapping_inverted_vertical\">Κάθετα</string>\n    <string name=\"tapping_inverted_horizontal\">Οριζόντια</string>\n    <string name=\"tapping_inverted_none\">Κανένα</string>\n    <string name=\"pref_read_with_tapping_inverted\">Αντιστροφή ζωνών πατήματος</string>\n    <string name=\"unknown_status\">Άγνωστη κατάσταση</string>\n    <string name=\"unknown_author\">Άγνωστος συγγραφέας</string>\n    <string name=\"updated_version\">Ενημερώθηκε σε v%1$s</string>\n    <string name=\"whats_new\">Τι νέο υπάρχει</string>\n    <string name=\"download_insufficient_space\">Δεν ήταν δυνατή η λήψη κεφαλαίων λόγω χαμηλού αποθηκευτικού χώρου</string>\n    <string name=\"action_global_search_query\">Αναζήτηση του \\\"%1$s\\\" καθολικά</string>\n    <string name=\"pref_category_reading_mode\">Λειτουργία ανάγνωσης</string>\n    <string name=\"pref_category_theme\">Θέμα</string>\n    <string name=\"action_sort_date_added\">Ημερομηνία προσθήκης</string>\n    <string name=\"no_pinned_sources\">Δεν έχετε καρφιτσωμένες πηγές</string>\n    <string name=\"channel_complete\">Ολοκληρωμένο</string>\n    <string name=\"channel_progress\">Η λήψη ολοκληρώθηκε</string>\n    <string name=\"channel_errors\">Σφάλματα</string>\n    <string name=\"backup_restore_missing_trackers\">Trackers που δεν έχουν συνδεθεί:</string>\n    <string name=\"pref_category_delete_chapters\">Διαγραφή κεφαλαίων</string>\n    <string name=\"ext_nsfw_warning\">Πηγές από αυτήν την επέκταση ενδέχεται να περιέχουν περιεχόμενο NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Να επιτρέπεται η διαγραφή κεφαλαίων με σελιδοδείκτη</string>\n    <string name=\"parental_controls_info\">Αυτό δεν εμποδίζει τις ανεπίσημες ή ενδεχομένως εσφαλμένα επισημασμένες επεκτάσεις να εμφανίζουν περιεχόμενο NSFW (18+) μέσα στην εφαρμογή.</string>\n    <string name=\"no_chapters_error\">Δεν βρέθηκαν κεφάλαια</string>\n    <string name=\"chapter_settings_updated\">Ενημερώθηκαν οι προεπιλεγμένες ρυθμίσεις κεφαλαίου</string>\n    <string name=\"set_chapter_settings_as_default\">Ορισμός ως προεπιλογής</string>\n    <string name=\"also_set_chapter_settings_for_library\">Εφαρμογή επίσης για όλες τις καταχωρήσεις στη βιβλιοθήκη μου</string>\n    <string name=\"confirm_set_chapter_settings\">Είστε σίγουροι ότι θέλετε να αποθηκεύσετε αυτές τις ρυθμίσεις ως προεπιλεγμένες;</string>\n    <string name=\"chapter_settings\">Ρυθμίσεις κεφαλαίου</string>\n    <string name=\"share_page_info\">%1$s: %2$s, σελίδα %3$d</string>\n    <string name=\"action_search_settings\">Αναζήτηση ρυθμίσεων</string>\n    <string name=\"downloaded_chapters\">Κεφάλαια που έχουν ληφθεί</string>\n    <string name=\"manga_from_library\">Από βιβλιοθήκη</string>\n    <string name=\"pref_incognito_mode_summary\">Παύει το ιστορικό ανάγνωσης</string>\n    <string name=\"pref_incognito_mode\">Λειτουργία ανώνυμης περιήγησης</string>\n    <string name=\"pref_clear_history\">Διαγραφή ιστορικού</string>\n    <string name=\"clear_history_confirmation\">Είστε σίγουροι; Όλο το ιστορικό θα χαθεί.</string>\n    <string name=\"clear_history_completed\">Το ιστορικό διαγράφηκε</string>\n    <string name=\"spen_next_page\">Επόμενη σελίδα</string>\n    <string name=\"spen_previous_page\">Προηγούμενη σελίδα</string>\n    <string name=\"migration_help_guide\">Οδηγός μεταφοράς πηγής</string>\n    <string name=\"pref_category_nsfw_content\">Πηγές NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Εμφάνιση στις λίστες πηγών και επεκτάσεων</string>\n    <string name=\"file_picker_error\">Δεν βρέθηκε εφαρμογή επιλογής αρχείων</string>\n    <string name=\"myanimelist_relogin\">Συνδεθείτε ξανά στο MAL</string>\n    <string name=\"pref_viewer_nav\">Ζώνες πατήματος</string>\n    <string name=\"edge_nav\">Άκρη</string>\n    <string name=\"kindlish_nav\">Σαν Kindle</string>\n    <string name=\"l_nav\">Σχήματος L</string>\n    <string name=\"track_finished_reading_date\">Ημερομηνία λήξης</string>\n    <string name=\"track_started_reading_date\">Ημερομηνία έναρξης</string>\n    <string name=\"pref_dump_crash_logs_summary\">Αποθηκεύει αρχεία καταγραφής σφαλμάτων σε ένα αρχείο για κοινή χρήση με τους προγραμματιστές</string>\n    <string name=\"pref_dump_crash_logs\">Κοινή χρήση αρχείων καταγραφής σφαλμάτων</string>\n    <string name=\"action_desc\">Φθίνουσα</string>\n    <string name=\"action_asc\">Αύξουσα</string>\n    <string name=\"action_order_by_chapter_number\">Κατά αριθμό κεφαλαίου</string>\n    <string name=\"action_order_by_upload_date\">Κατά ημερομηνία μεταφόρτωσης</string>\n    <string name=\"action_filter_tracked\">Παρακολουθούνται</string>\n    <string name=\"action_display_show_number_of_items\">Εμφάνιση αριθμού στοιχείων</string>\n    <string name=\"right_and_left_nav\">Δεξιά και Aριστερά</string>\n    <string name=\"pref_dual_page_split\">Διαχωρισμός πλατιών σελίδων</string>\n    <string name=\"pref_dual_page_invert_summary\">Εάν η τοποθέτηση των διαχωρισμένων πλατιών σελίδων δεν ταιριάζει με την κατεύθυνση ανάγνωσης</string>\n    <string name=\"pref_dual_page_invert\">Αντιστροφή τοποθέτησης διαχωρισμένης σελίδας</string>\n    <string name=\"backup_restore_content_full\">Ενδέχεται να χρειαστεί να εγκαταστήσετε τυχόν επεκτάσεις που λείπουν και στη συνέχεια να συνδεθείτε στις υπηρεσίες παρακολούθησης για να τις χρησιμοποιήσετε.</string>\n    <string name=\"pref_show_navigation_mode_summary\">Εμφάνιση εν συντομία κατά το άνοιγμα του προγράμματος ανάγνωσης</string>\n    <string name=\"pref_show_navigation_mode\">Εμφάνιση επικάλυψης ζωνών πατήματος</string>\n    <string name=\"nav_zone_right\">Δεξιά</string>\n    <string name=\"nav_zone_left\">Αριστερά</string>\n    <string name=\"nav_zone_next\">Επόμενο</string>\n    <string name=\"nav_zone_prev\">Προηγούμενο</string>\n    <string name=\"pref_dns_over_https\">DNS μέσω HTTPS (DoH)</string>\n    <string name=\"exclude\">Εξαίρεση: %s</string>\n    <string name=\"include\">Συμπερίληψη: %s</string>\n    <string name=\"none\">Κανένα</string>\n    <string name=\"action_sort_chapter_fetch_date\">Ημερομηνία ανάκτησης κεφαλαίου</string>\n    <string name=\"pref_download_new_categories_details\">Οι καταχωρήσεις σε εξαιρούμενες κατηγορίες δε θα ληφθούν ακόμη και αν βρίσκονται επίσης σε κατηγορίες που περιλαμβάνονται.</string>\n    <string name=\"pref_category_auto_download\">Αυτόματη λήψη</string>\n    <string name=\"pref_library_update_categories_details\">Οι καταχωρίσεις σε εξαιρούμενες κατηγορίες δε θα ενημερώνονται ακόμη και αν περιλαμβάνονται επίσης σε κατηγορίες που περιλαμβάνονται.</string>\n    <string name=\"action_show_errors\">Πατήστε για να δείτε λεπτομέρειες</string>\n    <string name=\"update_check_eol\">Αυτή η έκδοση Android δεν υποστηρίζεται πλέον</string>\n    <string name=\"clipboard_copy_error\">Απέτυχε η αντιγραφή στο πρόχειρο</string>\n    <string name=\"rotation_landscape\">Οριζόντια</string>\n    <string name=\"rotation_portrait\">Κατακόρυφα</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Δημιουργεί φακέλους σύμφωνα με τον τίτλο των καταχωρήσεων</string>\n    <string name=\"pref_create_folder_per_manga\">Αποθήκευση σελίδων σε ξεχωριστούς φακέλους</string>\n    <string name=\"pref_reader_actions\">Ενέργειες</string>\n    <string name=\"rotation_type\">Περιστροφή</string>\n    <string name=\"pref_grayscale\">Κλίμακα του γκρι</string>\n    <string name=\"notification_incognito_text\">Απενεργοποίηση λειτουργίας ανώνυμης περιήγησης</string>\n    <string name=\"automatic_background\">Αυτόματο</string>\n    <string name=\"cancel_all_for_series\">Ακύρωση όλων για αυτήν τη σειρά</string>\n    <string name=\"error_no_match\">Δεν βρέθηκε αντιστοιχία</string>\n    <string name=\"source_unsupported\">Η πηγή δεν υποστηρίζεται</string>\n    <string name=\"unread\">Αδιάβαστα</string>\n    <string name=\"date\">Ημερομηνία</string>\n    <string name=\"local_filter_order_by\">Ταξινόμηση κατά</string>\n    <string name=\"local_invalid_format\">Μη έγκυρη μορφή κεφαλαίου</string>\n    <string name=\"chapter_not_found\">Το κεφάλαιο δε βρέθηκε</string>\n    <string name=\"restrictions\">Περιορισμοί: %s</string>\n    <string name=\"action_display_local_badge\">Τοπική πηγή</string>\n    <string name=\"off\">Απενεργοποιημένο</string>\n    <string name=\"on\">Ενεργοποιημένο</string>\n    <string name=\"error_sharing_cover\">Σφάλμα κοινής χρήσης του εξωφύλλου</string>\n    <string name=\"error_saving_cover\">Σφάλμα αποθήκευσης εξωφύλλου</string>\n    <string name=\"cover_saved\">Το εξώφυλλο αποθηκεύτηκε</string>\n    <string name=\"manga_cover\">Εξώφυλλο</string>\n    <string name=\"categorized_display_settings\">Ρυθμίσεις για ταξινόμηση ανά κατηγορία</string>\n    <string name=\"tracking_guide\">Οδηγός tracking</string>\n    <string name=\"information_empty_category_dialog\">Δεν έχετε κατηγορίες ακόμα.</string>\n    <string name=\"action_start_downloading_now\">Έναρξη λήψης τώρα</string>\n    <string name=\"theme_midnightdusk\">Midnight Dusk</string>\n    <string name=\"theme_greenapple\">Πράσινο Μήλο</string>\n    <string name=\"pref_app_theme\">Θέμα εφαρμογής</string>\n    <string name=\"about_dont_kill_my_app\">Ορισμένοι κατασκευαστές έχουν πρόσθετους περιορισμούς εφαρμογών που εξουδετερώνουν τις υπηρεσίες παρασκηνίου. Αυτός ο ιστότοπος έχει περισσότερες πληροφορίες για το πώς να το διορθώσετε.</string>\n    <string name=\"restore_miui_warning\">Η δημιουργία αντιγράφων ασφαλείας/επαναφορά ενδέχεται να μη λειτουργεί σωστά εάν είναι απενεργοποιημένη η Βελτιστοποίηση MIUI.</string>\n    <string name=\"pref_dark_theme_pure_black\">Απόλυτα μαύρη σκοτεινή λειτουργία</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Γιν και Γιανγκ</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Φράουλα Daiquiri</string>\n    <string name=\"enhanced_tracking_info\">Παρέχει βελτιωμένες δυνατότητες για συγκεκριμένες πηγές. Οι καταχωρήσεις παρακολουθούνται αυτόματα όταν προστίθενται στη βιβλιοθήκη σας.</string>\n    <string name=\"enhanced_services\">Ενισχυμένοι trackers</string>\n    <string name=\"theme_monet\">Δυναμικό</string>\n    <string name=\"label_background_activity\">Δραστηριότητα παρασκηνίου</string>\n    <string name=\"pref_lowest\">Χαμηλότερη</string>\n    <string name=\"pref_low\">Χαμηλή</string>\n    <string name=\"pref_highest\">Ύψιστη</string>\n    <string name=\"pref_high\">Υψηλή</string>\n    <string name=\"pref_hide_threshold\">Ευαισθησία για την απόκρυψη του μενού κατά την κύλιση</string>\n    <string name=\"pref_inverted_colors\">Αντεστραμμένο</string>\n    <string name=\"relative_time_today\">Σήμερα</string>\n    <string name=\"theme_tealturquoise\">Teal &amp; Τιρκουάζ</string>\n    <string name=\"confirm_lock_change\">Έλεγχος ταυτότητας για επιβεβαίωση αλλαγής</string>\n    <string name=\"label_default\">Προεπιλογή</string>\n    <string name=\"pref_category_appearance\">Εμφάνιση</string>\n    <string name=\"action_track\">Παρακολούθηση</string>\n    <string name=\"getting_started_guide\">Οδηγός για τα πρώτα βήματα</string>\n    <string name=\"pref_tablet_ui_mode\">Διεπαφή χρήστη tablet</string>\n    <string name=\"pref_remove_exclude_categories\">Εξαιρούμενες κατηγορίες</string>\n    <string name=\"help_translate\">Βοηθήστε στη μετάφραση</string>\n    <string name=\"ext_app_info\">Πληροφορίες εφαρμογής</string>\n    <string name=\"ext_installer_pref\">Εγκαταστάτης</string>\n    <string name=\"ext_install_service_notif\">Εγκατάσταση επέκτασης…</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Εγκαταστήστε και ξεκινήστε το Shizuku για να χρησιμοποιήσετε το Shizuku ως πρόγραμμα εγκατάστασης επεκτάσεων.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Το Shizuku δεν τρέχει</string>\n    <string name=\"ext_installer_legacy\">Παλαιό</string>\n    <string name=\"action_sort_count\">Σύνολο καταχωρήσεων</string>\n    <string name=\"pref_verbose_logging\">Λεπτομερής καταγραφή</string>\n    <string name=\"pref_verbose_logging_summary\">Εκτύπωση λεπτομερών αρχείων καταγραφής στο αρχείο καταγραφής συστήματος (μειώνει την απόδοση της εφαρμογής)</string>\n    <string name=\"action_display_language_badge\">Γλώσσα</string>\n    <string name=\"label_warning\">Προειδοποίηση</string>\n    <string name=\"backup_info\">Θα πρέπει να κρατάτε αντίγραφα αντιγράφων ασφαλείας και σε άλλα μέρη. Τα αντίγραφα ασφαλείας ενδέχεται να περιέχουν ευαίσθητα δεδομένα, συμπεριλαμβανομένων τυχόν αποθηκευμένων κωδικών πρόσβασης, να είστε προσεκτικοί αν τα μοιράζεστε.</string>\n    <string name=\"notification_size_warning\">Οι μεγάλες ενημερώσεις βλάπτουν τις πηγές και μπορεί να οδηγήσουν σε πιο αργές ενημερώσεις και σε αυξημένη χρήση της μπαταρίας. Πατήστε για να μάθετε περισσότερα.</string>\n    <string name=\"connected_to_wifi\">Μόνο σε Wi-Fi</string>\n    <string name=\"update_72hour\">Κάθε 3 ημέρες</string>\n    <string name=\"download_queue_size_warning\">Προειδοποίηση: οι μαζικές λήψεις ενδέχεται να οδηγήσουν σε επιβράδυνση των πηγών ή/και αποκλεισμό του %s. Πατήστε για να μάθετε περισσότερα.</string>\n    <string name=\"ext_update_all\">Ενημέρωση όλων</string>\n    <string name=\"channel_app_updates\">Ενημερώσεις εφαρμογής</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Εκκαθάριση της προσωρινής μνήμης κεφαλαίων κατά την εκκίνηση της εφαρμογής</string>\n    <string name=\"clear_database_source_item_count\">%1$d καταχωρήσεις εκτός βιβλιοθήκης στη βάση δεδομένων</string>\n    <string name=\"database_clean\">Τίποτα προς εκκαθάριση</string>\n    <string name=\"extension_api_error\">Αποτυχία ανάκτησης διαθέσιμων επεκτάσεων</string>\n    <string name=\"privacy_policy\">Πολιτική απορρήτου</string>\n    <string name=\"pref_update_only_completely_read\">Παράλειψη καταχωρήσεων με αδιάβαστο(α) κεφάλαιο(α)</string>\n    <string name=\"library_errors_help\">Για βοήθεια σχετικά με τον τρόπο διόρθωσης σφαλμάτων ενημέρωσης βιβλιοθήκης, ανατρέξτε στο %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Αποθήκευση ως αρχείο CBZ</string>\n    <string name=\"cancelled\">Ακυρώθηκε</string>\n    <string name=\"on_hiatus\">Σε αναστολή</string>\n    <string name=\"publishing_finished\">Η έκδοση ολοκληρώθηκε</string>\n    <string name=\"action_show_manga\">Εμφάνιση καταχώρισης</string>\n    <string name=\"pref_landscape_zoom\">Αυτόματο ζουμ σε ευρείες εικόνες</string>\n    <string name=\"action_display_cover_only_grid\">Πλέγμα μόνο με εξώφυλλα</string>\n    <string name=\"pref_update_only_started\">Παράλειψη καταχωρήσεων που δεν έχουν αρχίσει</string>\n    <string name=\"pref_navigate_pan\">Μετατόπιση πλατιών εικόνων</string>\n    <string name=\"skipped_reason_completed\">Παραλείφθηκε επειδή η σειρά ολοκληρώθηκε</string>\n    <string name=\"skipped_reason_not_caught_up\">Παραβλέφθηκε επειδή υπάρχουν μη αναγνωσμένα κεφάλαια</string>\n    <string name=\"skipped_reason_not_started\">Παραλείπεται επειδή δεν έχουν διαβαστεί κεφάλαια</string>\n    <string name=\"notification_update_error\">%1$d ενημέρωση(ες) απέτυχε(-αν)</string>\n    <string name=\"learn_more\">Πατήστε για να μάθετε περισσότερα</string>\n    <string name=\"rotation_reverse_portrait\">Αντίστροφο πορτρέτο</string>\n    <string name=\"action_move_to_top_all_for_series\">Μετακίνηση σειράς προς τα πάνω</string>\n    <string name=\"disabled_nav\">Απενεργοποιημένο</string>\n    <string name=\"error_saving_picture\">Σφάλμα κατά την αποθήκευση της εικόνας</string>\n    <string name=\"empty_backup_error\">Δεν υπάρχουν καταχωρήσεις βιβλιοθήκης για δημιουργία αντιγράφων ασφαλείας</string>\n    <string name=\"update_check_open\">Άνοιγμα στο GitHub</string>\n    <string name=\"webview_data_deleted\">Τα δεδομένα WebView διαγράφηκαν</string>\n    <string name=\"pref_clear_webview_data\">Διαγραφή δεδομένων WebView</string>\n    <string name=\"action_close\">Κλείσιμο</string>\n    <string name=\"source_filter_empty_screen\">Δε βρέθηκε εγκατεστημένη πηγή</string>\n    <string name=\"action_sort_unread_count\">Αριθμός μη αναγνωσμένων</string>\n    <string name=\"action_sort_last_manga_update\">Τελευταίος έλεγχος ενημέρωσης</string>\n    <string name=\"source_empty_screen\">Δε βρέθηκε πηγή</string>\n    <string name=\"split_tall_images_summary\">Βελτιώνει την απόδοση του αναγνώστη</string>\n    <string name=\"download_notifier_split_page_not_found\">Η σελίδα %d δε βρέθηκε κατά τη διάσπαση</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Δεν ήταν δυνατή η εύρεση της διαδρομής αρχείου της σελίδας %d</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Επαναφέρει τη λειτουργία ανάγνωσης και τον προσανατολισμό όλων των σειρών</string>\n    <string name=\"pref_reset_viewer_flags\">Επαναφορά ρυθμίσεων προγράμματος ανάγνωσης ανά σειρά</string>\n    <string name=\"pref_reset_viewer_flags_error\">Δεν ήταν δυνατή η επαναφορά των ρυθμίσεων του προγράμματος ανάγνωσης</string>\n    <string name=\"pref_reset_viewer_flags_success\">Επαναφορά όλων των ρυθμίσεων προγράμματος ανάγνωσης</string>\n    <string name=\"empty_screen\">Λοιπόν, αυτό είναι άβολο</string>\n    <string name=\"ext_info_version\">Έκδοση</string>\n    <string name=\"ext_info_language\">Γλώσσα</string>\n    <string name=\"ext_info_age_rating\">Ηλικιακή βαθμολογία</string>\n    <string name=\"unfinished_list\">Ημιτελής λίστα</string>\n    <string name=\"complete_list\">Πλήρης Λίστα</string>\n    <string name=\"wish_list\">Λίστα επιθυμιών</string>\n    <string name=\"on_hold_list\">Λίστα αναμονής</string>\n    <string name=\"reading_list\">Λίστα ανάγνωσης</string>\n    <string name=\"network_not_metered\">Μόνο σε δίκτυο χωρίς μετρήσεις</string>\n    <string name=\"cant_open_last_read_chapter\">Αδυναμία ανοίγματος του τελευταίου κεφαλαίου που διαβάστηκε</string>\n    <string name=\"custom_cover\">Προσαρμοσμένο εξώφυλλο</string>\n    <string name=\"not_installed\">Δεν έχει εγκατασταθεί</string>\n    <string name=\"pref_app_language\">Γλώσσα εφαρμογής</string>\n    <string name=\"theme_lavender\">Λεβάντα</string>\n    <string name=\"description_placeholder\">Χωρίς περιγραφή</string>\n    <string name=\"delete_category\">Διαγραφή κατηγορίας</string>\n    <string name=\"delete_category_confirmation\">Θέλετε να διαγράψετε την κατηγορία \\\"%s\\\";</string>\n    <string name=\"internal_error\">InternalError: Ελέγξτε τα αρχεία καταγραφής σφαλμάτων για περισσότερες πληροφορίες</string>\n    <string name=\"pref_user_agent_string\">Προεπιλεγμένη συμβολοσειρά πράκτορα χρήστη</string>\n    <string name=\"pref_reset_user_agent_string\">Επαναφορά προεπιλεγμένης συμβολοσειράς πράκτορα χρήστη</string>\n    <string name=\"action_remove_everything\">Καταργήστε τα πάντα</string>\n    <string name=\"appwidget_updates_description\">Δείτε τις πρόσφατα ενημερωμένες καταχωρήσεις της βιβλιοθήκης σας</string>\n    <string name=\"appwidget_unavailable_locked\">Το widget δεν είναι διαθέσιμο όταν είναι ενεργοποιημένο το κλείδωμα εφαρμογών</string>\n    <string name=\"update_already_running\">Εκτελείται ήδη μια ενημέρωση</string>\n    <string name=\"error_user_agent_string_blank\">Η συμβολοσειρά πράκτορα χρήστη δεν μπορεί να είναι κενή</string>\n    <string name=\"theme_tidalwave\">Παλιρροϊκό κύμα</string>\n    <string name=\"download_ahead\">Λήψη εκ των προτέρων</string>\n    <string name=\"auto_download_while_reading\">Αυτόματη λήψη κατά την ανάγνωση</string>\n    <string name=\"download_ahead_info\">Λειτουργεί μόνο εάν το τρέχον κεφάλαιο + το επόμενο έχουν ήδη ληφθεί.</string>\n    <string name=\"are_you_sure\">Είστε σίγουροι;</string>\n    <string name=\"multi_lang\">Πολλαπλό</string>\n    <string name=\"popular\">Δημοφιλή</string>\n    <string name=\"updates_last_update_info\">Τελευταία ενημέρωση βιβλιοθήκης: %s</string>\n    <string name=\"remove_manga\">Πρόκειται να αφαιρέσετε το \\\"%s\\\" από τη βιβλιοθήκη σας</string>\n    <string name=\"missing_storage_permission\">Δεν έχουν χορηγηθεί δικαιώματα αποθήκευσης</string>\n    <string name=\"skipped_reason_not_always_update\">Παραλείφθηκε επειδή η σειρά δεν απαιτεί ενημερώσεις</string>\n    <string name=\"action_search_hint\">Αναζήτηση…</string>\n    <string name=\"pref_browse_summary\">Πηγές, επεκτάσεις, καθολική αναζήτηση</string>\n    <string name=\"crash_screen_title\">Ουπς!</string>\n    <string name=\"pref_appearance_summary\">Θέμα, μορφή ημερομηνίας και ώρας</string>\n    <string name=\"pref_library_summary\">Κατηγορίες, καθολική ενημέρωση, σύρσιμο κεφαλαίου</string>\n    <string name=\"pref_reader_summary\">Λειτουργία ανάγνωσης, οθόνη, πλοήγηση</string>\n    <string name=\"pref_tracking_summary\">Μονόδρομος συγχρονισμός προόδου, ενισχυμένος συγχρονισμός</string>\n    <string name=\"pref_backup_summary\">Χειροκίνητα &amp; αυτόματα αντίγραφα ασφαλείας, χώρος αποθήκευσης</string>\n    <string name=\"pref_security_summary\">Κλείδωμα εφαρμογής, ασφαλής οθόνη</string>\n    <string name=\"crash_screen_restart_application\">Επανεκκίνηση της εφαρμογής</string>\n    <string name=\"pref_downloads_summary\">Αυτόματη λήψη, λήψη εκ των προτέρων</string>\n    <string name=\"pref_advanced_summary\">Αρχεία καταγραφής σφαλμάτων, βελτιστοποιήσεις μπαταρίας</string>\n    <string name=\"crash_screen_description\">Το %s αντιμετώπισε ένα απροσδόκητο σφάλμα. Σας προτείνουμε να μοιραστείτε τα αρχεία καταγραφής σφαλμάτων στο κανάλι υποστήριξης μας στο Discord.</string>\n    <string name=\"unknown_title\">Άγνωστος τίτλος</string>\n    <string name=\"invalid_location\">Μη έγκυρη τοποθεσία: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Μη έγκυρη συμβολοσειρά πράκτορα χρήστη</string>\n    <string name=\"updates_last_update_info_just_now\">Μόλις τώρα</string>\n    <string name=\"download_notifier_cache_renewal\">Έλεγχος λήψεων</string>\n    <string name=\"fdroid_warning\">Οι εκδόσεις F-Droid δεν υποστηρίζονται επίσημα.\n\\nΠατήστε για να μάθετε περισσότερα.</string>\n    <string name=\"action_open_random_manga\">Άνοιγμα τυχαίας καταχώρησης</string>\n    <string name=\"information_no_entries_found\">Δε βρέθηκαν καταχωρήσεις σε αυτή την κατηγορία</string>\n    <string name=\"action_display_show_continue_reading_button\">Κουμπί συνέχειας ανάγνωσης</string>\n    <string name=\"track_remove_date_conf_title\">Κατάργηση ημερομηνίας;</string>\n    <string name=\"track_remove_finish_date_conf_text\">Αυτό θα καταργήσει την ημερομηνία λήξης που επιλέξατε προηγουμένως από το %s</string>\n    <string name=\"track_remove_start_date_conf_text\">Αυτό θα καταργήσει την ημερομηνία έναρξης που επιλέξατε προηγουμένως από το %s</string>\n    <string name=\"pref_invalidate_download_cache\">Επανακαταχώριση ευρετηρίου λήψεων</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Αναγκάστε την εφαρμογή να ελέγξει ξανά τα ληφθέντα κεφάλαια</string>\n    <string name=\"label_stats\">Στατιστικά</string>\n    <string name=\"label_local\">Τοπικό</string>\n    <string name=\"label_started\">Ξεκίνησε</string>\n    <string name=\"label_completed_titles\">Ολοκληρωμένες καταχωρήσεις</string>\n    <string name=\"label_read_duration\">Διάρκεια ανάγνωσης</string>\n    <string name=\"label_total_chapters\">Σύνολο</string>\n    <string name=\"label_read_chapters\">Αναγνωσμένα</string>\n    <string name=\"label_tracker_section\">Ιχνηλάτες</string>\n    <string name=\"not_applicable\">Δ/Υ</string>\n    <string name=\"day_short\">%dημ</string>\n    <string name=\"hour_short\">%dω</string>\n    <string name=\"seconds_short\">%dδ</string>\n    <string name=\"label_used\">Σε χρήση</string>\n    <string name=\"minute_short\">%dλ</string>\n    <string name=\"label_overview_section\">Σύνοψη</string>\n    <string name=\"label_titles_section\">Καταχωρήσεις</string>\n    <string name=\"label_tracked_titles\">Παρακολουθούμενες καταχωρήσεις</string>\n    <string name=\"label_mean_score\">Μέση βαθμολογία</string>\n    <string name=\"label_downloaded\">Κατεβασμένο</string>\n    <string name=\"label_titles_in_global_update\">Σε καθολική ενημέρωση</string>\n    <string name=\"action_not_now\">Όχι τώρα</string>\n    <string name=\"information_no_manga_category\">Η κατηγορία είναι άδεια</string>\n    <string name=\"pref_library_update_show_tab_badge\">Εμφάνιση του αριθμού των μη αναγνωσμένων στο εικονίδιο Ενημερώσεις</string>\n    <string name=\"copied_to_clipboard_plain\">Αντιγράφηκε στο πρόχειρο</string>\n    <string name=\"pref_skip_dupe_chapters\">Παράλειψη διπλότυπων κεφαλαίων</string>\n    <string name=\"enhanced_services_not_installed\">Διαθέσιμο αλλά η πηγή δεν έχει εγκατασταθεί: %s</string>\n    <string name=\"track_error\">%1$s σφάλμα: %2$s</string>\n    <string name=\"information_required_plain\">*απαιτούμενο</string>\n    <string name=\"pref_hide_in_library_items\">Απόκρυψη καταχωρήσεων που βρίσκονται ήδη στη βιβλιοθήκη</string>\n    <string name=\"action_copy_to_clipboard\">Αντιγραφή στο πρόχειρο</string>\n    <string name=\"action_update_category\">Ενημέρωση κατηγορίας</string>\n    <string name=\"split_tall_images\">Διαχωρισμός ψηλών εικόνων</string>\n    <string name=\"overlay_header\">Επικάλυψη</string>\n    <string name=\"pref_page_rotate\">Περιστροφή πλατιών σελίδων για να χωρέσουν</string>\n    <string name=\"pref_page_rotate_invert\">Αναστροφή του προσανατολισμού των πλατιών σελίδων που έχουν περιστραφεί</string>\n    <string name=\"pref_debug_info\">Πληροφορίες εντοπισμού σφαλμάτων</string>\n    <string name=\"pref_double_tap_zoom\">Διπλό πάτημα για ζουμ</string>\n    <string name=\"pref_chapter_swipe_start\">Κεφάλαιο με σύρσιμο προς τα αριστερά</string>\n    <string name=\"pref_chapter_swipe_end\">Κεφάλαιο με σύρσιμο προς τα δεξιά</string>\n    <string name=\"action_set_interval\">Ορισμός χρονικού διαστήματος</string>\n    <string name=\"action_filter_interval_custom\">Προσαρμοσμένη συχνότητα ενημέρωσης</string>\n    <string name=\"pref_update_only_in_release_period\">Πρόβλεψη χρόνου επόμενης απελευθέρωσης</string>\n    <string name=\"intervals_header\">Διαστήματα</string>\n    <string name=\"manga_display_interval_title\">Εκτίμηση κάθε</string>\n    <string name=\"manga_display_modified_interval_title\">Ρύθμιση για ενημέρωση κάθε</string>\n    <string name=\"action_sort_next_updated\">Επόμενη αναμενόμενη ενημέρωση</string>\n    <string name=\"skipped_reason_not_in_release_period\">Παραλείφθηκε επειδή δεν αναμενόταν κυκλοφορία σήμερα</string>\n    <string name=\"action_ok\">Εντάξει</string>\n    <string name=\"track_delete_title\">Κατάργηση παρακολούθησης %s;</string>\n    <string name=\"track_delete_remote_text\">Επίσης, αφαιρέστε από %s</string>\n    <string name=\"track_delete_text\">Αυτό θα καταργήσει την παρακολούθηση τοπικά.</string>\n    <string name=\"delete_downloaded\">Διαγραφή ληφθέντων</string>\n    <string name=\"has_results\">Έχει αποτελέσματα</string>\n    <string name=\"syncing_library\">Συγχρονισμός βιβλιοθήκης</string>\n    <string name=\"library_sync_complete\">Ο συγχρονισμός βιβλιοθήκης ολοκληρώθηκε</string>\n    <string name=\"information_cloudflare_help\">Πατήστε εδώ για βοήθεια με το Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Αναδημιουργία ευρετηρίου λήψεων</string>\n    <string name=\"track_activity_name\">Σύνδεση παρακολούθησης</string>\n    <string name=\"create_backup_file_error\">Δεν ήταν δυνατή η δημιουργία αντιγράφου ασφαλείας</string>\n    <string name=\"exception_unknown_host\">Δεν ήταν δυνατή η πρόσβαση στο %s</string>\n    <string name=\"exception_http\">HTTP %d, ελέγξτε την ιστοσελίδα στο WebView</string>\n    <string name=\"exception_offline\">Δεν υπάρχει σύνδεση στο διαδίκτυο</string>\n    <string name=\"unlock_app_title\">Ξεκλείδωμα %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Μετακίνηση σειράς προς τα κάτω</string>\n    <string name=\"pref_relative_format\">Σχετικές χρονικές σημάνσεις</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" αντί του \\\"%2$s\\\"</string>\n    <string name=\"app_settings\">Ρυθμίσεις εφαρμογής</string>\n    <string name=\"notification_updating_progress\">Ενημέρωση βιβλιοθήκης… (%s)</string>\n    <string name=\"source_settings\">Ρυθμίσεις πηγών</string>\n    <string name=\"file_null_uri_error\">Δεν έχει επιλεγεί αρχείο</string>\n    <string name=\"relative_time_span_never\">Ποτέ</string>\n    <string name=\"pref_flash_page_summ\">Μειώνει το ghosting σε οθόνες e-ink</string>\n    <string name=\"last_auto_backup_info\">Τελευταία αυτόματη δημιουργία αντιγράφων ασφαλείας: %s</string>\n    <string name=\"pref_flash_page\">Λευκό φλας κατά την αλλαγή σελίδας</string>\n    <string name=\"pref_storage_usage\">Χρήση αποθηκευτικού χώρου</string>\n    <string name=\"action_sort_tracker_score\">Σκορ tracker</string>\n    <string name=\"label_data_storage\">Δεδομένα και χώρος αποθήκευσης</string>\n    <string name=\"action_create\">Δημιουργία</string>\n    <string name=\"action_apply\">Υποβολή</string>\n    <string name=\"action_revert_to_default\">Επαναφορά προεπιλογής</string>\n    <string name=\"no_scanlators_found\">Δε βρέθηκαν scanlators</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"exclude_scanlators\">Εξαίρεση scanlator</string>\n    <string name=\"action_menu_overflow_description\">Περισσότερες επιλογές</string>\n    <string name=\"selected\">Επιλεγμένο</string>\n    <string name=\"not_selected\">Μη επιλεγμένο</string>\n    <string name=\"action_bar_up_description\">Πλοήγηση προς τα πάνω</string>\n    <string name=\"pref_storage_location\">Τοποθεσία αποθήκευσης</string>\n    <string name=\"pref_storage_location_info\">Χρησιμοποιείται για αυτόματα αντίγραφα ασφαλείας, λήψη κεφαλαίων και τοπική πηγή.</string>\n    <string name=\"onboarding_storage_action_select\">Επιλέξτε ένα φάκελο</string>\n    <string name=\"onboarding_action_finish\">Ξεκινήστε</string>\n    <string name=\"onboarding_storage_selection_required\">Ένας φάκελος πρέπει να επιλεγεί</string>\n    <string name=\"onboarding_heading\">Καλώς ορίσατε!</string>\n    <string name=\"onboarding_action_skip\">Παράλειψη</string>\n    <string name=\"onboarding_action_next\">Επόμενο</string>\n    <string name=\"pref_onboarding_guide\">Οδηγός εισαγωγής</string>\n    <string name=\"onboarding_guides_new_user\">Είστε νέοι στο %s; Σας συνιστούμε να ανατρέξετε στον οδηγό έναρξης.</string>\n    <string name=\"onboarding_guides_returning_user\">Επανεγκατάσταση %s;</string>\n    <string name=\"onboarding_description\">Ας ρυθμίσουμε πρώτα κάποια πράγματα. Μπορείτε πάντα να τα αλλάξετε στις ρυθμίσεις αργότερα.</string>\n    <string name=\"no_location_set\">Δεν έχει οριστεί τοποθεσία αποθήκευσης</string>\n    <string name=\"onboarding_storage_info\">Επιλέξτε ένα φάκελο όπου το %1$s θα αποθηκεύει λήψεις κεφαλαίων, αντίγραφα ασφαλείας και άλλα.\n\\n\n\\nΣυνιστάται ένας αποκλειστικός φάκελος.\n\\n\n\\nΕπιλεγμένος φάκελος: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Άδεια ειδοποιήσεων</string>\n    <string name=\"onboarding_permission_install_apps\">Άδεια εγκατάστασης εφαρμογών</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Αποφύγετε διακοπές σε μακροχρόνιες ενημερώσεις της βιβλιοθήκης, λήψεις και επαναφορές αντιγράφων ασφαλείας.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Χρήση μπαταρίας στο παρασκήνιο</string>\n    <string name=\"onboarding_permission_install_apps_description\">Για εγκατάσταση επεκτάσεων πηγών.</string>\n    <string name=\"onboarding_permission_notifications_description\">Ειδοποιηθείτε για ενημερώσεις της βιβλιοθήκης και άλλων.</string>\n    <string name=\"onboarding_permission_action_grant\">Παραχώρηση</string>\n    <string name=\"available_disk_space_info\">Διαθέσιμο: %1$s / Σύνολο: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">Απαιτούνται δικαιώματα για την εγκατάσταση επεκτάσεων. Πατήστε εδώ για παραχώρηση.</string>\n    <string name=\"private_settings\">Συμπεριλάβετε ευαίσθητες ρυθμίσεις (π.χ. διακριτικά σύνδεσης παρακολούθησης)</string>\n    <string name=\"invalid_backup_file_error\">Πλήρες σφάλμα:</string>\n    <string name=\"action_add_repo\">Προσθήκη αποθετηρίων</string>\n    <string name=\"action_delete_repo\">Διαγραφή αποθετηρίου</string>\n    <string name=\"onboarding_storage_help_info\">Ενημερώνετε από μια παλαιότερη έκδοση και δεν είστε σίγουροι τι να επιλέξετε; Ανατρέξτε στον οδηγό αποθήκευσης για περισσότερες πληροφορίες.</string>\n    <string name=\"onboarding_storage_help_action\">Οδηγός αποθήκευσης</string>\n    <string name=\"label_extension_repos\">Αποθετήρια επεκτάσεων</string>\n    <string name=\"information_empty_repos\">Δεν έχετε ορίσει αποθετήρια.</string>\n    <string name=\"invalid_repo_name\">Λανθασμένο URL αποθετηρίου</string>\n    <string name=\"manga_interval_expected_update\">Τα νέα κεφάλαια προβλέπεται να κυκλοφορήσουν σε περίπου %1$s, ελέγχοντας κάθε %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Προσαρμοσμένη συχνότητα ενημέρωσης:</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"pref_library_update_smart_update\">Έξυπνη ενημέρωση</string>\n    <string name=\"label_add_repo_input\">URL αποθετηρίου</string>\n    <string name=\"action_add_repo_message\">Προσθέστε επιπλέον αποθετήρια στο %s. Αυτό θα πρέπει να είναι ένα URL που τελειώνει με \\\"index.min.json\\\".</string>\n    <string name=\"delete_repo_confirmation\">Θέλετε να διαγράψετε το αποθετήριο \\\"%s\\\";</string>\n    <string name=\"error_repo_exists\">Αυτό το αποθετήριο υπάρχει ήδη!</string>\n    <string name=\"manga_interval_expected_update_soon\">Σύντομα</string>\n    <string name=\"ext_revoke_trust\">Ανάκληση αξιόπιστων άγνωστων επεκτάσεων</string>\n    <string name=\"action_open_repo\">Αποθετήριο ανοικτού κώδικα</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Απενεργοποίηση σμίκρυνσης εικόνας</string>\n    <string name=\"action_add_anyway\">Προσθέστε ούτως ή άλλως</string>\n    <string name=\"action_replace_repo_message\">Το αποθετήριο %1$s έχει το ίδιο δακτυλικό αποτύπωμα κλειδιού υπογραφής με το %2$s.\n\\nΕάν αυτό είναι αναμενόμενο, το %2$s θα αντικατασταθεί, διαφορετικά επικοινωνήστε με τον συντηρητή του αποθετηρίου σας.</string>\n    <string name=\"label_upcoming\">Ανερχόμενο</string>\n    <string name=\"pref_display_profile\">Προσαρμοσμένο προφίλ εμφάνισης</string>\n    <string name=\"action_view_upcoming\">Δείτε τις επερχόμενες ενημερώσεις</string>\n    <string name=\"action_replace_repo\">Αντικατάσταση</string>\n    <string name=\"action_replace_repo_title\">Το δακτυλικό αποτύπωμα κλειδιού υπογραφής υπάρχει ήδη</string>\n    <string name=\"upcoming_guide\">Οδηγός ανερχόμενων</string>\n    <string name=\"upcoming_calendar_next\">Επόμενο μήνα</string>\n    <string name=\"upcoming_calendar_prev\">Προηγούμενο Μήνα</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Αποτυχία απόκτησης μόνιμης πρόσβασης φακέλου. Η εφαρμογή μπορεί να συμπεριφέρεται απροσδόκητα.</string>\n    <string name=\"non_library_settings\">Όλες οι καταχωρήσεις που έχουν διαβαστεί</string>\n    <string name=\"action_copy_link\">Αντιγραφή συνδέσμου</string>\n    <string name=\"manga_interval_expected_update_null\">Αυτό το manga είτε έχει ολοκληρωθεί, είτε δεν υπάρχει προβλεπόμενη ημερομηνία κυκλοφορίας.</string>\n    <string name=\"action_sort_random\">Τυχαίο</string>\n    <string name=\"onboarding_permission_analytics\">Να επιτρέπονται τα αναλυτικά στοιχεία</string>\n    <string name=\"pref_firebase\">Αναλύσεις και αρχεία καταγραφής ατυχημάτων</string>\n    <string name=\"onboarding_permission_crashlytics\">Αποστολή αρχείων καταγραφής σφαλμάτων</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Παράλειψη λήψης διπλότυπων αναγνωσμένων κεφαλαίων</string>\n    <string name=\"firebase_summary\">Η αποστολή αρχείων καταγραφής σφαλμάτων και αναλυτικών στοιχείων θα μας επιτρέψει να εντοπίσουμε και να διορθώσουμε προβλήματα, να βελτιώσουμε την απόδοση και να κάνουμε τις μελλοντικές ενημερώσεις πιο σχετικές με τις ανάγκες σας</string>\n    <string name=\"add_repo_confirmation\">Θέλετε να προσθέσετε το repo \\\"%s\\\"?</string>\n    <string name=\"remove_private_extension_message\">Θέλετε πραγματικά να αφαιρέσετε την επέκταση \\\"%s?</string>\n    <string name=\"pref_flash_page_interval\">Φλας κάθε</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Αποστολή ανώνυμων αρχείων καταγραφής σφαλμάτων στους προγραμματιστές.</string>\n    <string name=\"onboarding_permission_analytics_description\">Αποστολή ανώνυμων δεδομένων χρήσης για τη βελτίωση των λειτουργιών της εφαρμογής.</string>\n    <string name=\"pref_security\">Ασφάλεια</string>\n    <string name=\"pref_flash_style_black\">Μαύρο</string>\n    <string name=\"pref_flash_style_white\">Λευκό</string>\n    <string name=\"extensionRepo_settings\">Repos επεκτάσεων</string>\n    <string name=\"ext_remove\">Αφαίρεση</string>\n    <string name=\"ext_confirm_remove\">Αφαίρεση επέκτασης?</string>\n    <string name=\"pref_flash_duration\">Διάρκεια Φλας</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_with\">Φλας με</string>\n    <string name=\"pref_flash_style_white_black\">Λευκό και Μαύρο</string>\n    <string name=\"confirm_tracker_update\">Ενημέρωση ανιχνευτών στο κεφάλαιο %d?</string>\n    <string name=\"invalid_backup_file_unknown\">Το αρχείο αντιγράφων ασφαλείας έχει καταστραφεί</string>\n    <string name=\"invalid_backup_file_json\">Δεν υποστηρίζεται η δημιουργία αντιγράφων ασφαλείας JSON</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Ενημέρωση προόδου όταν επισημανθεί ως αναγνωσμένη</string>\n    <string name=\"trackers_updated_summary\">Οι trackers ενημερώθηκαν στο κεφάλαιο %d</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Παύση ιστορικού ανάγνωσης για επέκταση</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Προεπιλογή (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Εάν ο αναγνώστης φορτώσει μια κενή εικόνα, μειώστε σταδιακά το όριο.\\nΕπιλεγμένο: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Επηρεάζει την απόδοση. Ενεργοποιήστε το μόνο αν η μείωση του ορίου bitmap δε διορθώνει τα προβλήματα κενών εικόνων</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Προσαρμοσμένο όριο bitmap υλικού</string>\n    <string name=\"label_auto\">Αυτόματο</string>\n    <string name=\"export\">Εξαγωγή</string>\n    <string name=\"library_list\">Κατάλογος Βιβλιοθήκης</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Χρησιμοποιήστε αποκωδικοποιητή παλαιού τύπου για ανάγνωση μακριών ταινιών</string>\n    <string name=\"theme_monochrome\">Μονόχρωμο</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Επισήμανση διπλότυπου αναγνωσμένου κεφαλαίου ως αναγνωσμένο</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Μετά τη λήψη του νέου κεφαλαίου</string>\n    <string name=\"action_display_unread_badge\">Μη αναγνωσμένα κεφάλαια</string>\n    <string name=\"pref_behavior\">Συμπεριφορά</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Μετά την ανάγνωση ενός κεφαλαίου</string>\n    <string name=\"library_exported\">Έγινε εξαγωγή της βιβλιοθήκης</string>\n    <string name=\"author\">Συγγραφέας</string>\n    <string name=\"artist\">Καλλιτέχνης</string>\n    <string name=\"tracked_privately\">Παρακολουθείται ιδιωτικά</string>\n    <string name=\"action_toggle_private_off\">Παρακολούθηση δημόσια</string>\n    <string name=\"action_toggle_private_on\">Παρακολούθηση ιδιωτικά</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Διαγραφή λήψεων της τρέχουσας καταχώρησης μετά τη μεταφορά</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Πρόσθετες λέξεις-κλειδιά (προαιρετικά)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Βοηθά στον περιορισμό των αποτελεσμάτων αναζήτησης με την προσθήκη πρόσθετων λέξεων-κλειδιών</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Εμφάνιση καταχώρησης μόνο αν ο συσχετισμός έχει πρόσθετα κεφάλαια</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Οι επιλογές αυτές είναι αργές και επικίνδυνες και μπορεί να οδηγήσουν σε περιορισμούς από τις πηγές</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Προηγμένη λειτουργία αναζήτησης</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Εάν είναι ενεργοποιημένη, επιλέγει την πιο μακρινή αντιστοιχία. Διαφορετικά, επιλέγει την πρώτη αντιστοιχία με βάση την προτεραιότητα πηγής.</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Άγνωστο</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Αναζήτηση χειροκίνητα</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Να μη γίνει μεταφορά</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Μεταφορά τώρα</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Αντιγραφή τώρα</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Να σταματήσετε η μεταφορά;</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Σταμάτημα</string>\n    <string name=\"possible_duplicates_summary\">Έχετε καταχωρήσεις στη βιβλιοθήκη σας με παρόμοιο όνομα.\\n\\nΕπιλέξτε μια καταχώρηση για να τη μεταφέρετε ή να την προσθέσετε ούτως ή άλλως.</string>\n    <string name=\"possible_duplicates_title\">Πιθανά διπλότυπα</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"pref_update_library_manga_titles\">Ενημέρωση τίτλων manga της βιβλιοθήκης για να ταιριάζουν με την πηγή</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Προειδοποίηση: αν ένα manga μετονομαστεί, θα αφαιρεθεί από την ουρά λήψης (αν υπάρχει).</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Επιλογή ενεργοποιημένων πηγών</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Επιλογή καρφιτσωμένων πηγών</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Συνέχειά</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Επιλεγμένο</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Διαθέσιμο</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Επιλογή όλων</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Επιλογή κανενός</string>\n    <string name=\"action_notes\">Σημειώσεις</string>\n    <string name=\"action_edit_notes\">Επεξεργασία σημείων</string>\n    <string name=\"notes_placeholder\">Μου άρεσε το σημείο όπου…</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Απόκρυψη δεικτών ελλείποντος κεφαλαίου</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Μεταφορά</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Δε βρέθηκαν εναλλακτικές</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Ακύρωση</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Αναλύει τον τίτλο σε λέξεις-κλειδιά για ευρύτερη αναζήτηση</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Ακύρωση</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Αντιστοίχιση με βάση τον αριθμό κεφαλαίου</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Αντιγραφή</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Μεταφορά</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Δε βρέθηκαν κεφάλαια, αυτή η καταχώρηση δεν μπορεί να χρησιμοποιηθεί για μεταφορά</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Μεταφορά (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Τελευταία: %1$s</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Ακύρωση</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Απόκρυψη καταχωρήσεων χωρίς αντιστοιχία</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Απόκρυψη καταχωρήσεων χωρίς νεότερα κεφάλαια</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Αντιγραφή</string>\n    <string name=\"migrationListScreenTitle\">Μεταφορά</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Δεδομένα προς μεταφορά</string>\n    <string name=\"logging_in\">Σύνδεση…</string>\n    <string name=\"clear_database_text\">Πρόκειται να αφαιρέσετε καταχωρήσεις από τη βάση δεδομένων</string>\n    <string name=\"clear_database_history_warning\">Τα αναγνωσμένα κεφάλαια και η πρόοδος των καταχωρήσεων που δεν είναι στη βιβλιοθήκη θα χαθούν</string>\n    <string name=\"clear_db_exclude_read\">Κρατήστε καταχωρήσεις με αναγνωσμένα κεφάλαια</string>\n    <string name=\"storage_failed_to_create_download_directory\">Αποτυχία δημιουργίας καταλόγου λήψης</string>\n    <string name=\"storage_failed_to_create_directory\">Αποτυχία δημιουργίας καταλόγου: %s</string>\n    <string name=\"label_donate\">Δωρεά</string>\n    <string name=\"pref_display_images_description\">Αναπαράσταση εικόνων σε περιγραφές manga</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Απαγόρευση μη ASCII ονομάτων αρχείων</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Εξασφαλίζει συμβατότητα με ορισμένα μέσα αποθήκευσης που δεν υποστηρίζουν Unicode. Όταν αυτή η επιλογή είναι ενεργοποιημένη, θα πρέπει να μετονομάσετε χειροκίνητα τους φακέλους πηγής και manga, αντικαθιστώντας τους χαρακτήρες που δεν είναι ASCII με τις μικρές κεφαλαίες δεκαεξαδικές αναπαραστάσεις UTF-8. Τα αρχεία κεφαλαίων δε χρειάζεται να μετονομάζονται.</string>\n    <string name=\"action_webview_close_tab\">Κλείσιμο καρτέλας</string>\n    <string name=\"pref_download_concurrent_sources\">Ταυτόχρονες λήψεις πηγών</string>\n    <string name=\"pref_download_concurrent_pages\">Ταυτόχρονες λήψεις σελίδων</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Σελίδες που λήφθηκαν ταυτόχρονα ανά πηγή</string>\n    <string name=\"calculating\">Υπολογισμός…</string>\n    <string name=\"download_bookmarked\">Προστέθηκε στους σελιδοδείκτες</string>\n    <string name=\"action_filter_excluded_scanlators\">Φιλτράρισμα εξαιρούμενων scanlator</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/eo/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Post %1$s minuto</item>\n        <item quantity=\"other\">Post %1$s minutoj</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategorio</item>\n        <item quantity=\"other\">%d kategorioj</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s ĉapitro</item>\n        <item quantity=\"other\">%1$s ĉapitroj</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Ĉapitroj %1$s kaj 1 pli</item>\n        <item quantity=\"other\">Ĉapitroj %1$s kaj %2$d pli</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nova ĉapitro</item>\n        <item quantity=\"other\">%1$d novaj ĉapitroj</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Por 1 elemento</item>\n        <item quantity=\"other\">Por %d elementoj</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Preterpasas %d ĉapitron, aŭ ĝi mankas ĉe la fonto aŭ ĝi estis elfiltrita</item>\n        <item quantity=\"other\">Preterpasas %d ĉapitrojn, aŭ ili mankas ĉe la fonto aŭ ili estis elfiltritaj</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">1 sekvilo</item>\n        <item quantity=\"other\">%d sekviloj</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s restanta</item>\n        <item quantity=\"other\">%1$s restantaj</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Farita en %1$s kun %2$s eraro</item>\n        <item quantity=\"other\">Farita en %1$s kun %2$s eraroj</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Hieraŭ</item>\n        <item quantity=\"other\">Antaŭ %1$d tagoj</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 tago</item>\n        <item quantity=\"other\">%d tagoj</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Sekva ĉapitro</item>\n        <item quantity=\"other\">Sekvaj %d ĉapitroj</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Mankas %1$s ĉapitro</item>\n        <item quantity=\"other\">Mankas %1$s ĉapitroj</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Sekva nelegita ĉapitro</item>\n        <item quantity=\"other\">Sekvaj %d nelegitaj ĉapitroj</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d deponejo</item>\n        <item quantity=\"other\">%d deponejoj</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Disponebla ĝisdatigo de etendaĵo</item>\n        <item quantity=\"other\">Disponeblaj %d ĝisdatigoj de etendaĵoj</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Morgaŭ</item>\n        <item quantity=\"other\">post %1$d tagoj</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 paĝo</item>\n        <item quantity=\"other\">%1$s paĝoj</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Ĉu migri %1$d elementon?</item>\n        <item quantity=\"other\">Ĉu mirgi %1$d elementojn?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Ĉu kopii %1$d elementon?</item>\n        <item quantity=\"other\">Ĉu kopii %1$d elementojn?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Elemento estis preterlasita</item>\n        <item quantity=\"other\">%1$d elementoj estis preterlasitaj</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/eo/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_sources\">Fontoj</string>\n    <string name=\"label_recent_manga\">Historio</string>\n    <string name=\"label_recent_updates\">Ĝisdatigoj</string>\n    <string name=\"label_library\">Biblioteko</string>\n    <string name=\"label_download_queue\">Elŝutvico</string>\n    <string name=\"label_settings\">Agordoj</string>\n    <string name=\"label_more\">Pli</string>\n    <string name=\"name\">Nomo</string>\n    <string name=\"information_no_recent\">Sen lastatempaj ĝisdatigoj</string>\n    <string name=\"information_no_downloads\">Sen elŝutoj</string>\n    <string name=\"label_help\">Helpo</string>\n    <string name=\"label_extension_info\">Pri etendaĵo</string>\n    <string name=\"label_extensions\">Etendaĵoj</string>\n    <string name=\"label_migration\">Migri</string>\n    <string name=\"label_backup\">Savkopii kaj restaŭri</string>\n    <string name=\"website\">Retejo</string>\n    <string name=\"username\">Uzantnomo</string>\n    <string name=\"password\">Pasvorto</string>\n    <string name=\"email\">Retpoŝta adreso</string>\n    <string name=\"action_view_chapters\">Vidi ĉapitrojn</string>\n    <string name=\"action_rename_category\">Alinomi kategorion</string>\n    <string name=\"action_edit_categories\">Redakti kategoriojn</string>\n    <string name=\"action_add_category\">Aldoni kategorion</string>\n    <string name=\"action_add\">Aldoni</string>\n    <string name=\"action_edit\">Redakti</string>\n    <string name=\"action_disable_all\">Malŝalti ĉiujn</string>\n    <string name=\"action_enable_all\">Ŝalti ĉiujn</string>\n    <string name=\"action_update_library\">Ĝisdatigi bibliotekon</string>\n    <string name=\"action_delete\">Forigi</string>\n    <string name=\"action_remove_bookmark\">Mallegosigni ĉapitron</string>\n    <string name=\"action_bookmark\">Legosigni ĉapitron</string>\n    <string name=\"action_download\">Elŝuti</string>\n    <string name=\"action_mark_as_unread\">Marki kiel nelegita</string>\n    <string name=\"action_mark_as_read\">Marki kiel legita</string>\n    <string name=\"action_select_all\">Elekti ĉiujn</string>\n    <string name=\"action_search_settings\">Serĉi agordojn</string>\n    <string name=\"action_search\">Serĉi</string>\n    <string name=\"action_sort_date_added\">Aldona dato</string>\n    <string name=\"action_sort_last_read\">Laste legitaj</string>\n    <string name=\"action_sort_total\">Ĉapitroj entute</string>\n    <string name=\"action_sort_alpha\">Alfabete</string>\n    <string name=\"action_filter_empty\">Forigi filtrilon</string>\n    <string name=\"action_filter_unread\">Nelegitaj</string>\n    <string name=\"action_filter_bookmarked\">Legosignitaj</string>\n    <string name=\"action_filter\">Filtrilo</string>\n    <string name=\"action_menu\">Menuo</string>\n    <string name=\"action_settings\">Agordoj</string>\n    <string name=\"history\">Historio</string>\n    <string name=\"chapters\">Ĉapitroj</string>\n    <string name=\"manga\">Bibliotekaj elementoj</string>\n    <string name=\"categories\">Kategorioj</string>\n    <string name=\"information_empty_library\">Via biblioteko malplenas</string>\n    <string name=\"information_no_recent_manga\">Neniu legita lastatempe</string>\n    <string name=\"hide_notification_content\">Kaŝi enhavon de sciigoj</string>\n    <string name=\"lock_never\">Neniam</string>\n    <string name=\"lock_always\">Ĉiam</string>\n    <string name=\"pref_category_security\">Sekureco kaj privateco</string>\n    <string name=\"pref_manage_notifications\">Administri sciigojn</string>\n    <string name=\"pref_date_format\">Data formo</string>\n    <string name=\"theme_dark\">Malhela</string>\n    <string name=\"theme_light\">Hela</string>\n    <string name=\"theme_system\">Sistema</string>\n    <string name=\"pref_category_theme\">Etoso</string>\n    <string name=\"pref_category_about\">Pri</string>\n    <string name=\"pref_category_downloads\">Elŝutoj</string>\n    <string name=\"pref_category_reader\">Legilo</string>\n    <string name=\"pref_category_library\">Biblioteko</string>\n    <string name=\"action_undo\">Malfari</string>\n    <string name=\"action_save\">Konservi</string>\n    <string name=\"action_share\">Konigi</string>\n    <string name=\"action_install\">Instali</string>\n    <string name=\"action_oldest\">Plej malnovaj</string>\n    <string name=\"action_newest\">Plej novaj</string>\n    <string name=\"action_sort\">Ordigi</string>\n    <string name=\"action_cancel_all\">Nuligi ĉiujn</string>\n    <string name=\"action_cancel\">Nuligi</string>\n    <string name=\"action_unpin\">Depingli</string>\n    <string name=\"action_pin\">Alpingli</string>\n    <string name=\"action_disable\">Malŝalti</string>\n    <string name=\"action_display_comfortable_grid\">Komforta krado</string>\n    <string name=\"action_display_list\">Listo</string>\n    <string name=\"action_migrate\">Migri</string>\n    <string name=\"action_open_in_browser\">Malfermi per retumilo</string>\n    <string name=\"action_start\">Komenci</string>\n    <string name=\"action_remove\">Forigi</string>\n    <string name=\"action_retry\">Reprovi</string>\n    <string name=\"action_next_chapter\">Sekva ĉapitro</string>\n    <string name=\"action_previous_chapter\">Antaŭa ĉapitro</string>\n    <string name=\"ext_uninstall\">Malinstali</string>\n    <string name=\"ext_untrusted\">Malfidinda</string>\n    <string name=\"ext_trust\">Fidi</string>\n    <string name=\"ext_installed\">Instalita</string>\n    <string name=\"ext_installing\">Instalata</string>\n    <string name=\"ext_downloading\">Elŝutata</string>\n    <string name=\"ext_install\">Instali</string>\n    <string name=\"ext_obsolete\">Malaktuala</string>\n    <string name=\"ext_update\">Ĝisdatigi</string>\n    <string name=\"exclude\">Ekskluzivi: %s</string>\n    <string name=\"include\">Inkluzivi: %s</string>\n    <string name=\"none\">Nenio</string>\n    <string name=\"default_category_summary\">Ĉiam demandi</string>\n    <string name=\"default_category\">Defaŭlta kategorio</string>\n    <string name=\"update_weekly\">Ĉiusemajne</string>\n    <string name=\"update_24hour\">Ĉiutage</string>\n    <string name=\"invalid_backup_file\">Nevalida savkopia dosiero:</string>\n    <string name=\"backup_created\">Savkopio kreita</string>\n    <string name=\"pref_create_backup\">Krei savkopion</string>\n    <string name=\"pref_download_new\">Elŝuti novajn ĉapitrojn</string>\n    <string name=\"disabled\">Malŝaltita</string>\n    <string name=\"pref_category_delete_chapters\">Forigi ĉapitrojn</string>\n    <string name=\"double_tap_anim_speed_0\">Sen animacioj</string>\n    <string name=\"scale_type_original_size\">Originala grando</string>\n    <string name=\"scale_type_stretch\">Streĉi</string>\n    <string name=\"scale_type_fit_screen\">Adapti al ekrano</string>\n    <string name=\"webtoon_viewer\">Longa strio</string>\n    <string name=\"black_background\">Nigra</string>\n    <string name=\"gray_background\">Griza</string>\n    <string name=\"white_background\">Blanka</string>\n    <string name=\"pref_reader_theme\">Fona koloro</string>\n    <string name=\"pref_read_with_volume_keys\">Laŭtecaj klavoj</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"nav_zone_next\">Sekva</string>\n    <string name=\"nav_zone_prev\">Antaŭa</string>\n    <string name=\"browse\">Foliumi</string>\n    <string name=\"downloaded_chapters\">Elŝutitaj ĉapitroj</string>\n    <string name=\"in_library\">En biblioteko</string>\n    <string name=\"manga_added_library\">Aldonita al biblioteko</string>\n    <string name=\"add_to_library\">Aldoni al biblioteko</string>\n    <string name=\"pref_remove_after_read\">Aŭtomate forigi post legado</string>\n    <string name=\"pref_category_reading\">Legadaj</string>\n    <string name=\"pref_category_reading_mode\">Lega reĝimo</string>\n    <string name=\"color_filter_a_value\">Travideblo</string>\n    <string name=\"color_filter_b_value\">Blua</string>\n    <string name=\"color_filter_g_value\">Verda</string>\n    <string name=\"color_filter_r_value\">Ruĝa</string>\n    <string name=\"rotation_free\">Libera</string>\n    <string name=\"pref_rotation_type\">Defaŭlta orientiĝo</string>\n    <string name=\"double_tap_anim_speed_fast\">Rapida</string>\n    <string name=\"double_tap_anim_speed_normal\">Normala</string>\n    <string name=\"zoom_start_automatic\">Aŭtomata</string>\n    <string name=\"scale_type_smart_fit\">Saĝe adapti</string>\n    <string name=\"scale_type_fit_height\">Adapti laŭ alto</string>\n    <string name=\"scale_type_fit_width\">Adapti laŭ larĝo</string>\n    <string name=\"vertical_plus_viewer\">Longa strio kun interspacoj</string>\n    <string name=\"vertical_viewer\">Paĝigita (vertikale)</string>\n    <string name=\"nav_zone_right\">Dekstra</string>\n    <string name=\"nav_zone_left\">Maldekstra</string>\n    <string name=\"right_and_left_nav\">Dekstre kaj maldekstre</string>\n    <string name=\"l_nav\">L-forme</string>\n    <string name=\"tapping_inverted_both\">Ambaŭe</string>\n    <string name=\"tapping_inverted_vertical\">Vertikale</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontale</string>\n    <string name=\"tapping_inverted_none\">Ne</string>\n    <string name=\"pref_reader_navigation\">Navigado</string>\n    <string name=\"pref_skip_read_chapters\">Preterpasi ĉapitrojn markitajn kiel legitaj</string>\n    <string name=\"pref_keep_screen_on\">Ne malŝalti ekranon</string>\n    <string name=\"filter_mode_screen\">Ekranado</string>\n    <string name=\"filter_mode_multiply\">Obligado</string>\n    <string name=\"filter_mode_overlay\">Plustavolo</string>\n    <string name=\"pref_custom_brightness\">Propra heleco</string>\n    <string name=\"pref_crop_borders\">Stuci borderojn</string>\n    <string name=\"pref_show_reading_mode\">Montri legadan reĝimon</string>\n    <string name=\"pref_show_page_number\">Montri paĝan nombron</string>\n    <string name=\"pref_fullscreen\">Plenekrano</string>\n    <string name=\"obsolete_extension_message\">Ĉi tiu etendaĵo ne plu disponeblas. Ĝi eble ne funkcios ĝuste kaj povas kaŭzi problemojn pri la apo. Malinstalado de ĝi estas rekomendata.</string>\n    <string name=\"all\">Ĉio</string>\n    <string name=\"update_48hour\">Ĉiun 2-an tagon</string>\n    <string name=\"update_12hour\">Ĉiun 12-an horon</string>\n    <string name=\"update_6hour\">Ĉiun 6-an horon</string>\n    <string name=\"update_never\">Malŝaltitaj</string>\n    <string name=\"pref_library_update_interval\">Aŭtomataj ĝisdatigoj</string>\n    <string name=\"pref_category_library_update\">Tuta ĝisdatigo</string>\n    <string name=\"landscape\">Horizontale</string>\n    <string name=\"portrait\">Vertikale</string>\n    <string name=\"pref_category_display\">Montrado</string>\n    <string name=\"pref_show_nsfw_source\">Montri en fontaj kaj etendaĵaj listoj</string>\n    <string name=\"pref_category_nsfw_content\">NSFW-fontoj (18+)</string>\n    <string name=\"pref_category_general\">Ĝeneralaj</string>\n    <string name=\"app_not_available\">Apo maldisponebla</string>\n    <string name=\"action_restore\">Restaŭri</string>\n    <string name=\"action_show_errors\">Tuŝeti pro vidi detalojn</string>\n    <string name=\"action_reset\">Restartigi</string>\n    <string name=\"action_display_show_number_of_items\">Montri nombron da elementoj</string>\n    <string name=\"action_display_show_tabs\">Montri kategoriajn langetojn</string>\n    <string name=\"action_display_download_badge\">Elŝutitaj ĉapitroj</string>\n    <string name=\"action_display_grid\">Kompakta krado</string>\n    <string name=\"action_display\">Montrado</string>\n    <string name=\"action_display_mode\">Montrada reĝimo</string>\n    <string name=\"action_open_in_web_view\">Malfermi per WebView</string>\n    <string name=\"action_resume\">Daŭrigi</string>\n    <string name=\"action_pause\">Paŭzigi</string>\n    <string name=\"action_edit_cover\">Redakti kovrilon</string>\n    <string name=\"action_move_category\">Agordi kategoriojn</string>\n    <string name=\"action_global_search\">Serĉi ĉie</string>\n    <string name=\"ext_updates_pending\">Ĝisdatigoj atendantaj</string>\n    <string name=\"pref_category_advanced\">Altnivelaj</string>\n    <string name=\"action_open_log\">Malfermi protokolon</string>\n    <string name=\"action_mark_previous_as_read\">Marki la antaŭan kiel legita</string>\n    <string name=\"action_sort_latest_chapter\">Lasta ĉapitro</string>\n    <string name=\"spen_next_page\">Sekva paĝo</string>\n    <string name=\"spen_previous_page\">Antaŭa paĝo</string>\n    <string name=\"channel_new_chapters\">Ĉapitraj ĝisdatigoj</string>\n    <string name=\"channel_errors\">Eraroj</string>\n    <string name=\"channel_complete\">Finitaj</string>\n    <string name=\"channel_progress\">Progreso</string>\n    <string name=\"download_notifier_title_error\">Eraro</string>\n    <string name=\"update_check_notification_update_available\">Nova versio disponebla!</string>\n    <string name=\"update_check_notification_download_error\">Elŝutada eraro</string>\n    <string name=\"update_check_notification_download_complete\">Tuŝetu por instali ĝisdatigon</string>\n    <string name=\"update_check_notification_download_in_progress\">Elŝutado…</string>\n    <string name=\"update_check_no_new_updates\">Sen novaj ĝisdatigoj disponeblaj</string>\n    <string name=\"update_check_confirm\">Elŝuti</string>\n    <string name=\"file_select_backup\">Elekti savkopian dosieron</string>\n    <string name=\"notification_chapters_multiple\">Ĉapitroj %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Ĉapitro %1$s kaj %2$d pli</string>\n    <string name=\"notification_chapters_single\">Ĉapitro %1$s</string>\n    <string name=\"notification_new_chapters\">Novaj ĉapitroj trovitaj</string>\n    <string name=\"copy\">Kopii</string>\n    <string name=\"migrate\">Migri</string>\n    <string name=\"clear_history_confirmation\">Ĉu vi certas? La tuta historio estos forigota.</string>\n    <string name=\"clear_history_completed\">Historio viŝita</string>\n    <string name=\"pref_clear_history\">Viŝi historion</string>\n    <string name=\"recent_manga_time\">Ĉap. %1$s - %2$s</string>\n    <string name=\"updating_library\">Ĝisdatigas bibliotekon</string>\n    <string name=\"loader_not_implemented_error\">Fonto ne trovita</string>\n    <string name=\"page_list_empty_error\">Neniu paĝo trovita</string>\n    <string name=\"transition_no_previous\">Ne estas antaŭa ĉapitro</string>\n    <string name=\"transition_no_next\">Ne estas sekva ĉapitro</string>\n    <string name=\"transition_previous\">Antaŭa:</string>\n    <string name=\"transition_next\">Sekva:</string>\n    <string name=\"transition_current\">Nuna:</string>\n    <string name=\"transition_finished\">Finita:</string>\n    <string name=\"viewer\">Legada reĝimo</string>\n    <string name=\"no_next_chapter\">Sekva ĉapitro ne trovita</string>\n    <string name=\"chapter_progress\">Paĝo: %1$d</string>\n    <string name=\"share_page_info\">%1$s: %2$s, paĝo %3$d</string>\n    <string name=\"picture_saved\">Bildo konservita</string>\n    <string name=\"snack_categories_deleted\">Kategorioj forigitaj</string>\n    <string name=\"error_category_exists\">Kategorio kun ĉi tiu nomo jam ekzistas!</string>\n    <string name=\"track_type\">Speco</string>\n    <string name=\"track_status\">Stato</string>\n    <string name=\"status\">Stato</string>\n    <string name=\"title\">Titolo</string>\n    <string name=\"score\">Takso</string>\n    <string name=\"repeating\">Legataj denove</string>\n    <string name=\"dropped\">Forĵetitaj</string>\n    <string name=\"completed\">Finitaj</string>\n    <string name=\"reading\">Legataj</string>\n    <string name=\"add_tracking\">Aldoni ŝanĝospuron</string>\n    <string name=\"manga_tracking_tab\">Sekvado</string>\n    <string name=\"no_chapters_error\">Neniu ĉapitro trovita</string>\n    <string name=\"set_chapter_settings_as_default\">Agordi kiel defaŭlta</string>\n    <string name=\"chapter_settings\">Ĉapitraj agordoj</string>\n    <string name=\"confirm_delete_chapters\">Ĉu vi certas, ke vi volas forigi elektitajn ĉapitrojn?</string>\n    <string name=\"download_unread\">Nelegitaj</string>\n    <string name=\"manga_download\">Elŝuti</string>\n    <string name=\"sort_by_upload_date\">Laŭ alŝutita dato</string>\n    <string name=\"sort_by_number\">Laŭ ĉapitra numero</string>\n    <string name=\"sort_by_source\">Laŭ fonto</string>\n    <string name=\"show_chapter_number\">Ĉapitra numero</string>\n    <string name=\"show_title\">Fonta titolo</string>\n    <string name=\"chapter_paused\">Paŭzigita</string>\n    <string name=\"chapter_error\">Eraro</string>\n    <string name=\"chapter_downloading_progress\">Elŝutado (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">Ĉapitro %1$s</string>\n    <string name=\"snack_add_to_library\">Ĉu aldoni mangaon al biblioteko?</string>\n    <string name=\"source_not_installed\">Fonto ne instalita: %1$s</string>\n    <string name=\"clipboard_copy_error\">Malsukcesis kopii al tondujo</string>\n    <string name=\"copied_to_clipboard\">Kopiita al tondujo: \\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">Ĉu forigi elŝutitajn ĉapitrojn?</string>\n    <string name=\"manga_info_collapse\">Malpli</string>\n    <string name=\"manga_info_expand\">Pli</string>\n    <string name=\"manga_removed_library\">Forigita de biblioteko</string>\n    <string name=\"remove_from_library\">Forigi el biblioteko</string>\n    <string name=\"unknown_status\">Nekonata stato</string>\n    <string name=\"unknown_author\">Nekonata aŭtoro</string>\n    <string name=\"unknown\">Nekonata</string>\n    <string name=\"ongoing\">Daŭranta</string>\n    <string name=\"no_pinned_sources\">Vi ne havas alpinglitajn fontojn</string>\n    <string name=\"latest\">Lastaj</string>\n    <string name=\"action_global_search_query\">Serĉi \\\"%1$s\\\" ĉie</string>\n    <string name=\"action_global_search_hint\">Ĉiea serĉo…</string>\n    <string name=\"pinned_sources\">Alpinglitaj</string>\n    <string name=\"last_used_source\">Laste uzitaj</string>\n    <string name=\"other_source\">Aliaj</string>\n    <string name=\"no_results_found\">Neniu rezulto trovita</string>\n    <string name=\"no_more_results\">Sen pliaj rezultoj</string>\n    <string name=\"tabs_header\">Langetoj</string>\n    <string name=\"manga_from_library\">De biblioteko</string>\n    <string name=\"unknown_error\">Nekonata eraro</string>\n    <string name=\"logout_success\">Vi nun estas elsalutinta</string>\n    <string name=\"logout\">Elsaluti</string>\n    <string name=\"logout_title\">Elsaluti el %1$s?</string>\n    <string name=\"login_success\">Ensalutinta</string>\n    <string name=\"login\">Ensaluti</string>\n    <string name=\"login_title\">Ensaluti al %1$s</string>\n    <string name=\"label_downloaded_only\">Nur elŝutitaj</string>\n    <string name=\"updated_version\">Ĝisdatigita al v%1$s</string>\n    <string name=\"licenses\">Malfermitkodaj permesiloj</string>\n    <string name=\"whats_new\">Kio novas</string>\n    <string name=\"version\">Versio</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Ne eblis malfermi aparatajn agordojn</string>\n    <string name=\"clear_database_completed\">Elementoj forigitaj</string>\n    <string name=\"pref_clear_database\">Viŝi datumbazon</string>\n    <string name=\"cache_delete_error\">Eraro okazis dum viŝado</string>\n    <string name=\"cache_deleted\">Kaŝmemoro viŝita, %1$d dosieroj forigitaj</string>\n    <string name=\"used_cache\">Uzata: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">Viŝi ĉapitran kaŝmemoron</string>\n    <string name=\"label_data\">Datumoj</string>\n    <string name=\"cookies_cleared\">Kuketoj viŝitaj</string>\n    <string name=\"pref_clear_cookies\">Viŝi kuketojn</string>\n    <string name=\"label_network\">Reto</string>\n    <string name=\"creating_backup_error\">Savkopia kreado fiaskis</string>\n    <string name=\"creating_backup\">Savkopia kreado</string>\n    <string name=\"backup_choice\">Kion vi volas savkopii?</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"backup_restore_missing_sources\">Mankantaj fontoj:</string>\n    <string name=\"pref_category_auto_download\">Aŭtomata elŝuto</string>\n    <string name=\"last_read_chapter\">Laste legita ĉapitro</string>\n    <string name=\"rotation_type\">Orientiĝo</string>\n    <string name=\"zoom_start_center\">Centra</string>\n    <string name=\"zoom_start_right\">Dekstra</string>\n    <string name=\"zoom_start_left\">Maldekstra</string>\n    <string name=\"pref_viewer_nav\">Tuŝetzonoj</string>\n    <string name=\"pager_viewer\">Paĝigita</string>\n    <string name=\"right_to_left_viewer\">Paĝigita (dekstre maldekstren)</string>\n    <string name=\"left_to_right_viewer\">Paĝigita (maldekstre dekstren)</string>\n    <string name=\"edge_nav\">Rande</string>\n    <string name=\"kindlish_nav\">Simile al Kindle</string>\n    <string name=\"pref_viewer_type\">Defaŭlta legada reĝimo</string>\n    <string name=\"automatic_background\">Aŭtomata</string>\n    <string name=\"pref_reader_actions\">Agoj</string>\n    <string name=\"pref_custom_color_filter\">Propra kolorfiltrilo</string>\n    <string name=\"off\">Malŝaltita</string>\n    <string name=\"on\">Ŝaltita</string>\n    <string name=\"pref_library_columns\">Elementoj vice</string>\n    <string name=\"relative_time_today\">Hodiaŭ</string>\n    <string name=\"theme_yinyang\">Jino kaj jango</string>\n    <string name=\"theme_greenapple\">Verda pomo</string>\n    <string name=\"pref_app_theme\">Apa etoso</string>\n    <string name=\"pref_category_appearance\">Aspekto</string>\n    <string name=\"action_start_downloading_now\">Komenci elŝuti nun</string>\n    <string name=\"action_webview_refresh\">Reŝargi</string>\n    <string name=\"action_webview_forward\">Antaŭen</string>\n    <string name=\"action_webview_back\">Reen</string>\n    <string name=\"action_move_to_bottom\">Movi al malsupro</string>\n    <string name=\"action_move_to_top\">Movi al supro</string>\n    <string name=\"action_desc\">Malkreskante</string>\n    <string name=\"action_asc\">Kreskante</string>\n    <string name=\"action_order_by_chapter_number\">Laŭ nombro da ĉapitroj</string>\n    <string name=\"action_order_by_upload_date\">Laŭ alŝuta dato</string>\n    <string name=\"action_select_inverse\">Elekti inverse</string>\n    <string name=\"label_default\">Defaŭlte</string>\n    <string name=\"information_empty_category\">Vi havas neniun kategorion. Tuŝeti la butonon kun plus, por krei ian kaj organizi vian bibliotekon.</string>\n    <string name=\"channel_ext_updates\">Etendaĵaj ĝisdatigoj</string>\n    <string name=\"download_notifier_download_paused\">Elŝutoj paŭzigitaj</string>\n    <string name=\"download_notifier_downloader_title\">Elŝutilo</string>\n    <string name=\"pref_category_for_this_series\">Por ĉi tiun serion</string>\n    <string name=\"custom_filter\">Propra filtrilo</string>\n    <string name=\"source_unsupported\">Fonto ne subtenata</string>\n    <string name=\"myanimelist_relogin\">Bonvolu ensaluti al MAL denove</string>\n    <string name=\"plan_to_read\">Planas legi</string>\n    <string name=\"paused\">Paŭzitaj</string>\n    <string name=\"on_hold\">Haltetitaj</string>\n    <string name=\"unread\">Nelegitaj</string>\n    <string name=\"also_set_chapter_settings_for_library\">Ankaŭ apliki al ĉiuj elementoj en mia biblioteko</string>\n    <string name=\"confirm_set_chapter_settings\">Ĉu vi certas, ke vi volas konservi ĉi tiujn agordojn kiel defaŭltaj?</string>\n    <string name=\"date\">Dato</string>\n    <string name=\"local_filter_order_by\">Ordigi laŭ</string>\n    <string name=\"local_invalid_format\">Nevalida ĉapitra formato</string>\n    <string name=\"chapter_not_found\">Ĉapitro netrovita</string>\n    <string name=\"local_source\">Loka fonto</string>\n    <string name=\"updating_category\">Ĝisdatigado de kategorio</string>\n    <string name=\"check_for_updates\">Kontroli ĝisdatigojn</string>\n    <string name=\"help_translate\">Helpu traduki</string>\n    <string name=\"restoring_backup\">Savkopia restaŭro</string>\n    <string name=\"restore_completed\">Restaŭro finita</string>\n    <string name=\"invalid_backup_file_missing_manga\">Savkopio enhavas neniun bibliotekan elementon.</string>\n    <string name=\"rotation_force_landscape\">Devige horizontala</string>\n    <string name=\"rotation_force_portrait\">Devige vertikala</string>\n    <string name=\"rotation_portrait\">Vertikala</string>\n    <string name=\"rotation_landscape\">Horizontala</string>\n    <string name=\"pref_grayscale\">Grizoskalo</string>\n    <string name=\"ext_nsfw_warning\">Fontoj de ĉi tiu etendaĵo eble enhavas NSFW-enhavon (18+)</string>\n    <string name=\"untrusted_extension\">Malfidinda etendaĵo</string>\n    <string name=\"charging\">Dum ŝargado</string>\n    <string name=\"lock_when_idle\">Ŝlosi kiam senokupa</string>\n    <string name=\"pref_dark_theme_pure_black\">Klara nigra reĝimo</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_midnightdusk\">Meznokta krepusko</string>\n    <string name=\"loading\">Ŝargado…</string>\n    <string name=\"cancel_all_for_series\">Nuligi ĉiujn por ĉi tiu serio</string>\n    <string name=\"confirm_lock_change\">Aŭtentigi por konfirmi ŝanĝon</string>\n    <string name=\"restoring_backup_canceled\">Restaŭro nuligita</string>\n    <string name=\"restoring_backup_error\">Savkopia restaŭro fiaskis</string>\n    <string name=\"restore_in_progress\">Restaŭro jam estas farata</string>\n    <string name=\"backup_in_progress\">Savkopio jam estas farata</string>\n    <string name=\"pref_backup_interval\">Ofteco de aŭtomata savkopio</string>\n    <string name=\"pref_restore_backup_summ\">Restaŭri bibliotekon de savkopia dosiero</string>\n    <string name=\"pref_restore_backup\">Restaŭri savkopion</string>\n    <string name=\"action_track\">Sekvi</string>\n    <string name=\"services\">Sekviloj</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Kreas dosierujojn laŭ elementaj titoloj</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inversigi laŭtecajn klavojn</string>\n    <string name=\"pref_inverted_colors\">Inversigita</string>\n    <string name=\"pref_dual_page_split\">Dividi larĝajn paĝojn</string>\n    <string name=\"ext_pending\">Atendanta</string>\n    <string name=\"pref_update_only_non_completed\">Preterpasi elementojn kun \\\"Finita\\\" statuso</string>\n    <string name=\"restrictions\">Limigoj: %s</string>\n    <string name=\"theme_yotsuba\">Jocuba</string>\n    <string name=\"theme_tealturquoise\">Bluverda k verdblua</string>\n    <string name=\"theme_strawberrydaiquiri\">Fraga dajkirio</string>\n    <string name=\"theme_monet\">Dinamika</string>\n    <string name=\"pref_category_tracking\">Sekvado</string>\n    <string name=\"action_display_local_badge\">Loka fonto</string>\n    <string name=\"action_sort_chapter_fetch_date\">Ĉapitra elŝuta dato</string>\n    <string name=\"track\">Sekvado</string>\n    <string name=\"pref_cutout_short\">Montri enhavon en fortondareo</string>\n    <string name=\"pref_library_update_restriction\">Aparataj limigoj por aŭtomataj ĝisdatigoj</string>\n    <string name=\"track_finished_reading_date\">Findato</string>\n    <string name=\"track_started_reading_date\">Komencdato</string>\n    <string name=\"backup_restore_missing_trackers\">Sekviloj ne ensalutintaj en:</string>\n    <string name=\"action_filter_tracked\">Sekvata</string>\n    <string name=\"pref_page_transitions\">Animacii paĝajn transpasojn</string>\n    <string name=\"pref_double_tap_anim_speed\">Animacia rapido de duobla tuŝeto</string>\n    <string name=\"pref_show_navigation_mode\">Montri plustavolon kun tuŝetzonoj</string>\n    <string name=\"secure_screen\">Sekura ekrano</string>\n    <string name=\"lock_with_biometrics\">Devigi malŝlosi</string>\n    <string name=\"pref_refresh_library_covers\">Aktualigi kovrilojn en biblioteko</string>\n    <string name=\"file_select_cover\">Elektu kovrilbildon</string>\n    <string name=\"confirm_set_image_as_cover\">Ĉu uzi ĉi tiun bildon kiel kovrilo?</string>\n    <string name=\"notification_cover_update_failed\">Aktualigo de kovrilo fiaskis</string>\n    <string name=\"migration_dialog_what_to_include\">Elekti datumojn por inkluzivi</string>\n    <string name=\"transition_pages_loading\">Ŝargas paĝojn…</string>\n    <string name=\"set_as_cover\">Agordi kiel kovrilo</string>\n    <string name=\"error_sharing_cover\">Eraro kunigante kovrilon</string>\n    <string name=\"error_saving_cover\">Eraro konservante kovrilon</string>\n    <string name=\"notification_incognito_text\">Malŝalti inkognitan reĝimon</string>\n    <string name=\"pref_incognito_mode\">Inkognita reĝimo</string>\n    <string name=\"pref_enable_acra\">Sendadi prikolapsajn raportojn</string>\n    <string name=\"pref_tablet_ui_mode\">Tabulkomputila fasado</string>\n    <string name=\"pref_disable_battery_optimization\">Malŝalti baterian optimumigon</string>\n    <string name=\"channel_common\">Ofta</string>\n    <string name=\"cover_updated\">Kovrilo aktualigita</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Kontroli ĉu estas nova kovrilo kaj detaloj dum biblioteka ĝisdatigo</string>\n    <string name=\"cover_saved\">Kovrilo konservita</string>\n    <string name=\"manga_cover\">Kovrilo</string>\n    <string name=\"pref_skip_filtered_chapters\">Preterpasi filtritajn ĉapitroj</string>\n    <string name=\"pref_show_navigation_mode_summary\">Koncize montri kiam legilo estas malfermita</string>\n    <string name=\"pref_library_update_refresh_metadata\">Aŭtomate aktualigi metadatumojn</string>\n    <string name=\"secure_screen_summary\">Sekura ekrano kaŝas apan enhavon dum ŝanĝado de apo kaj malpermesas ekrankopiojn</string>\n    <string name=\"label_stats\">Statistikoj</string>\n    <string name=\"label_warning\">Averto</string>\n    <string name=\"label_started\">Komencita</string>\n    <string name=\"label_local\">Loka</string>\n    <string name=\"label_downloaded\">Elŝutita</string>\n    <string name=\"action_set_interval\">Agordi intervalon</string>\n    <string name=\"action_filter_interval_custom\">Tajlorita ĝisdatiga ofteco</string>\n    <string name=\"action_copy_to_clipboard\">Kopii al tondujo</string>\n    <string name=\"delete_category\">Forigi kategorion</string>\n    <string name=\"onboarding_storage_info\">Elektu dosierujon kie %1$s konservos ĉapitrajn elŝutojn, savkopiojn, kaj aliajn. \\n\\nDediĉita dosierujo estas rekomendata.\\n\\nElektita dosierujo: %2$s</string>\n    <string name=\"action_not_now\">Ne nun</string>\n    <string name=\"action_display_language_badge\">Lingvo</string>\n    <string name=\"onboarding_storage_action_select\">Elekti dosierujon</string>\n    <string name=\"action_search_hint\">Serĉi…</string>\n    <string name=\"delete_category_confirmation\">Ĉu vi volas forigi la kategorion \\\"%s\\\"?</string>\n    <string name=\"action_apply\">Apliki</string>\n    <string name=\"action_revert_to_default\">Restarigi la defaŭltojn</string>\n    <string name=\"action_close\">Fermi</string>\n    <string name=\"action_ok\">Bone</string>\n    <string name=\"action_remove_everything\">Forigi ĉion</string>\n    <string name=\"onboarding_heading\">Bonvenon!</string>\n    <string name=\"onboarding_action_skip\">Preterpasi</string>\n    <string name=\"selected\">Elektitaj</string>\n    <string name=\"not_selected\">Ne elektitaj</string>\n    <string name=\"action_menu_overflow_description\">Pliaj opcioj</string>\n    <string name=\"delete_downloaded\">Forigi elŝutitajn</string>\n    <string name=\"label_data_storage\">Datumoj kaj konservejo</string>\n    <string name=\"action_update_category\">Ĝisdatigi kategorion</string>\n    <string name=\"onboarding_action_next\">Sekve</string>\n    <string name=\"onboarding_storage_selection_required\">Dosierujo devas esti elektita</string>\n    <string name=\"pref_appearance_summary\">Etoso, formo de dato k tempo</string>\n    <string name=\"pref_security_summary\">Apa ŝloso, sekura ekrano</string>\n    <string name=\"unlock_app_title\">Malŝlosi %s</string>\n    <string name=\"disabled_nav\">Malŝaltita</string>\n    <string name=\"invalid_backup_file_error\">Tuta eraro:</string>\n    <string name=\"source_settings\">Agordoj de la fonto</string>\n    <string name=\"app_settings\">Apaj agordoj</string>\n    <string name=\"theme_nord\">Nordo</string>\n    <string name=\"theme_tidalwave\">Cunamo</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" anstataŭ \\\"%2$s\\\"</string>\n    <string name=\"pref_app_language\">Apa lingvo</string>\n    <string name=\"ext_update_all\">Ĝisdatigi ĉiujn</string>\n    <string name=\"ext_info_version\">Versio</string>\n    <string name=\"ext_info_language\">Lingvo</string>\n    <string name=\"ext_installer_pref\">Instalilo</string>\n    <string name=\"ext_installer_legacy\">Malmoderna</string>\n    <string name=\"available_disk_space_info\">Disponebla: %1$s / Tuta: %2$s</string>\n    <string name=\"popular\">Popularaj</string>\n    <string name=\"has_results\">Havantaj rezultoj</string>\n    <string name=\"unknown_title\">Nekonata titolo</string>\n    <string name=\"description_placeholder\">Sen priskribo</string>\n    <string name=\"manga_interval_expected_update_soon\">Baldaŭ</string>\n    <string name=\"are_you_sure\">Ĉu vi certas?</string>\n    <string name=\"updates_last_update_info_just_now\">Ĵus</string>\n    <string name=\"relative_time_span_never\">Neniam</string>\n    <string name=\"track_error\">%1$s eraro: %2$s</string>\n    <string name=\"source_empty_screen\">Neniu fonto trovita</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"onboarding_permission_analytics\">Permesi analizojn</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Sendi anonimigajn prikolapsajn protokolojn al la programistoj.</string>\n    <string name=\"pref_advanced_summary\">Deponi protokolojn, bateriaj optimumigoj</string>\n    <string name=\"pref_security\">Sekureco</string>\n    <string name=\"action_copy_link\">Kopii ligilon</string>\n    <string name=\"onboarding_guides_returning_user\">Ĉu vi reinstalas %s?</string>\n    <string name=\"action_sort_random\">Hazarde</string>\n    <string name=\"action_open_random_manga\">Malfermi hazardan elementon</string>\n    <string name=\"action_move_to_top_all_for_series\">Movi serion al supro</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Movi serion al malsupro</string>\n    <string name=\"onboarding_storage_help_action\">Konserveja gvidilo</string>\n    <string name=\"onboarding_permission_install_apps\">Permeso por instali apojn</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Fona bateria uzado</string>\n    <string name=\"onboarding_permission_notifications_description\">Ricevi sciigojn pri bibliotekaj ĝisdatigoj kaj pli.</string>\n    <string name=\"onboarding_permission_crashlytics\">Sendi prikolapsajn protokolojn</string>\n    <string name=\"onboarding_permission_analytics_description\">Sendi anonimigaj uzadaj datumoj por plibonigi funkciojn de apo.</string>\n    <string name=\"onboarding_permission_action_grant\">Permesi</string>\n    <string name=\"onboarding_guides_new_user\">Ĉu vi estas en %s unua foje? Ni rekomendas kontroli komencantan gvidilon.</string>\n    <string name=\"pref_backup_summary\">Permanaj k aŭtomataj savkopioj, konserveja spaco</string>\n    <string name=\"theme_lavender\">Lavendo</string>\n    <string name=\"pref_relative_format\">Relativaj tempindikoj</string>\n    <string name=\"scanlator\">Skantradukisto</string>\n    <string name=\"action_show_manga\">Montri elementon</string>\n    <string name=\"pref_browse_summary\">Fontoj, etendaĵoj, ĉiea serĉo</string>\n    <string name=\"pref_downloads_summary\">Aŭtomata elŝuto, elŝuti antaŭe</string>\n    <string name=\"pref_tracking_summary\">Unuvoja sinkroniga progreso, plibonigita sinkronigo</string>\n    <string name=\"onboarding_description\">Komence ni agordu kelkajn aferojn. Vi ĉiam povas ŝanĝi ilin en la agordoj poste.</string>\n    <string name=\"label_upcoming\">Baldaŭa</string>\n    <string name=\"onboarding_permission_install_apps_description\">Por instali etendaĵojn de fontoj.</string>\n    <string name=\"pref_library_summary\">Kategorioj, ĉiea ĝisdatigo, ĉapitra ŝovumo</string>\n    <string name=\"pref_onboarding_guide\">Komencanta gvidilo</string>\n    <string name=\"action_display_show_continue_reading_button\">Butono por daŭrigi legadon</string>\n    <string name=\"action_sort_unread_count\">Nombro de nelegitaj</string>\n    <string name=\"action_bar_up_description\">Rulumi supren</string>\n    <string name=\"action_sort_count\">Elementoj entute</string>\n    <string name=\"action_sort_last_manga_update\">Lasta kontrolo de ĝisdatigoj</string>\n    <string name=\"action_sort_next_updated\">Sekva atendata ĝisdatigo</string>\n    <string name=\"action_sort_tracker_score\">Sekvila takso</string>\n    <string name=\"action_display_cover_only_grid\">Nur-kovrila krado</string>\n    <string name=\"internal_error\">InternalError: Kontrolu prikolapsajn protokolojn por pliaj informoj</string>\n    <string name=\"onboarding_storage_help_info\">Ĉu vi ĝisdatigas de pli malnova versio kaj ne certas kion elekti? Kontrolu la konservejan gvidilon por pliaj informoj.</string>\n    <string name=\"onboarding_action_finish\">Komencu</string>\n    <string name=\"action_add_anyway\">Aldoni ĉiuokaze</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Malebligi interrompojn por longedaŭraj bibliotekaj ĝisdatigoj, elŝutoj kaj savkopiaj restaŭroj.</string>\n    <string name=\"onboarding_permission_notifications\">Sciiga permeso</string>\n    <string name=\"pref_reader_summary\">Legada reĝimo, montrado, navigado</string>\n    <string name=\"pref_firebase\">Analitikoj kaj protokoloj</string>\n    <string name=\"firebase_summary\">Sendado de prikolapsaj protokoloj kaj analitikoj eblos al ni identigi kaj ripari problemojn, plibonigi rendimenton kaj igi estontajn ĝisdatigojn pli rilataj al viaj bezonoj</string>\n    <string name=\"parental_controls_info\">Tio ne preventas neoficialajn aŭ eventuale malĝuste markitajn etendaĵojn montri NSFW-enhavon (18+) ene de la apo.</string>\n    <string name=\"update_72hour\">Ĉiun 3-an tagon</string>\n    <string name=\"pref_update_only_started\">Preterpasi nekomencitajn elementojn</string>\n    <string name=\"pref_chapter_swipe_end\">Ĉapitro je ŝovumo dekstren</string>\n    <string name=\"ext_remove\">Forigi</string>\n    <string name=\"ext_confirm_remove\">Ĉu forigi etendaĵon?</string>\n    <string name=\"remove_private_extension_message\">Ĉu vi vere volas forigi etendaĵon \\\"%s\\\"?</string>\n    <string name=\"label_completed_titles\">Finitaj elementoj</string>\n    <string name=\"pref_update_only_in_release_period\">Prognozi daton de sekva eldono</string>\n    <string name=\"connected_to_wifi\">Nur per vifio</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ne ruliĝas</string>\n    <string name=\"categorized_display_settings\">Agordoj de ordigo laŭ kategorio</string>\n    <string name=\"pref_chapter_swipe_start\">Ĉapitro je ŝovumo maldekstren</string>\n    <string name=\"untrusted_extension_message\">Malicaj etendaĵoj povas legi ĉiujn el konservitaj ensalutiloj aŭ plenumi arbitran kodon.\\n\\nFidante ĉi tiun etendaĵon, vi akceptas tiujn riskojn.</string>\n    <string name=\"pref_library_update_smart_update\">Saĝa ĝisdatigo</string>\n    <string name=\"pref_update_only_completely_read\">Preterpasi elementojn kun nelegita(j)n ĉapitro(j)n</string>\n    <string name=\"pref_library_update_categories_details\">Elementoj en ekskluzivitaj kategorioj ne estos ĝisdatigotaj, eĉ se ili estas ankaŭ en inkluzivitaj kategorioj.</string>\n    <string name=\"pref_library_update_show_tab_badge\">Montri nombron de la nelegitaj sur piktogramo Ĝisdatigoj</string>\n    <string name=\"multi_lang\">Plur</string>\n    <string name=\"ext_app_info\">Pri apo</string>\n    <string name=\"extension_api_error\">Malsukcesis akiri etendaĵan liston</string>\n    <string name=\"ext_info_age_rating\">Aĝa takso</string>\n    <string name=\"ext_permission_install_apps_warning\">Permesoj bezonatas por instali etendaĵojn. Tuŝetu ĉi tie por permesi.</string>\n    <string name=\"ext_install_service_notif\">Instalado de etendaĵo…</string>\n    <string name=\"network_not_metered\">Nur per nemezurata reto</string>\n    <string name=\"action_delete_repo\">Forigi deponejon</string>\n    <string name=\"pref_flash_page\">Fulmi je paĝa ŝanĝo</string>\n    <string name=\"pref_page_rotate\">Turni larĝajn paĝojn por adapti</string>\n    <string name=\"label_extension_repos\">Etendaĵaj deponejoj</string>\n    <string name=\"pref_flash_page_summ\">Reduktas fantomigon sur e-ink-ekranoj</string>\n    <string name=\"pref_flash_duration\">Fulma daŭro</string>\n    <string name=\"pref_flash_style_black\">Nigro</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Defaŭlta (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Se legilo ŝargas malplenan bildon alkremente redukti la sojlon.\\nElektita: %s</string>\n    <string name=\"label_add_repo_input\">Deponeja URL</string>\n    <string name=\"action_add_repo_message\">Aldoni aldonajn deponejojn al %s. Ĉi tio estu URL kiu finas per \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">Ĉi tiu deponejo jam ekzistas!</string>\n    <string name=\"delete_repo_confirmation\">Ĉu vi volas forigi la deponejon \\\"%s\\\"?</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instali kaj lanĉi Shizuku-n por uzi Shizuku-n kiel etendaĵa instalilo.</string>\n    <string name=\"action_add_repo\">Aldoni deponejon</string>\n    <string name=\"action_replace_repo_title\">Subskriba ŝlosila fingropremo jam ekzistas</string>\n    <string name=\"action_replace_repo_message\">Deponejo %1$s havas la saman subskriban ŝlosilan fingropremaĵon kiel %2$s.\\nSe tio estis atendita, %2$s estos anstataŭigita, alikaze kontaktu prizorganton de la deponejo.</string>\n    <string name=\"action_open_repo\">Malfermitkoda deponejo</string>\n    <string name=\"pref_page_rotate_invert\">Inversigi orientiĝon de turnitaj larĝaj paĝoj</string>\n    <string name=\"ext_revoke_trust\">Eksvalidigi fidindajn nekonatajn etendaĵojn</string>\n    <string name=\"information_empty_repos\">Vi havas neniun agorditan deponejon.</string>\n    <string name=\"invalid_repo_name\">Nevalida deponeja URL</string>\n    <string name=\"pref_show_reading_mode_summary\">Koncize montri aktualan reĝimon kiam legilo estas malfermita</string>\n    <string name=\"add_repo_confirmation\">Ĉu vi volas aldoni la deponejon \\\"%s\\\"?</string>\n    <string name=\"pref_dual_page_invert\">Inversigi lokadon de dividitaj paĝoj</string>\n    <string name=\"pref_dual_page_invert_summary\">Se la lokado de la dividitaj larĝaj paĝoj ne kongruas kun lega direkto</string>\n    <string name=\"pref_double_tap_zoom\">Duoble tuŝeti por zomi</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Fulmi ĉiu</string>\n    <string name=\"pref_flash_with\">Fulmi per</string>\n    <string name=\"pref_flash_style_white\">Blanko</string>\n    <string name=\"pref_flash_style_white_black\">Blanko kaj nigro</string>\n    <string name=\"action_replace_repo\">Anstataŭigi</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Propra rastruma sojlo de aparataro</string>\n    <string name=\"filter_mode_darken\">Malheligi</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Influas rendimenton. Ŝaltu nur se redukto de rastruma sojlo ne riparas problemojn pri malplenaj bildoj</string>\n    <string name=\"pref_color_filter_mode\">Miksada reĝimo de kolorfiltrilo</string>\n    <string name=\"filter_mode_lighten\">Heligi</string>\n    <string name=\"pref_skip_dupe_chapters\">Preterpasi duoblaĵojn de ĉapitroj</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inversigi tuŝetzonojn</string>\n    <string name=\"pref_display_profile\">Propra montrada profilo</string>\n    <string name=\"pref_create_folder_per_manga\">Konservi paĝojn al apartaj dosierujoj</string>\n    <string name=\"pref_image_scale_type\">Skala speco</string>\n    <string name=\"pref_read_with_long_tap\">Montri agojn post longa tuŝeto</string>\n    <string name=\"download_ahead_info\">Nur funkcias se la aktuala ĉapitro + la sekva estas jam elŝutitaj.</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permesi forigi legosignajn ĉapitrojn</string>\n    <string name=\"pref_remove_exclude_categories\">Ekskluzivitaj kategorioj</string>\n    <string name=\"second_to_last\">Antaŭlaste legita ĉapitro</string>\n    <string name=\"tracking_guide\">Sekvada gvidilo</string>\n    <string name=\"pref_lowest\">Plej malalta</string>\n    <string name=\"invalid_location\">Nevalida loko: %s</string>\n    <string name=\"fourth_to_last\">La 4-a laste legita ĉapitro</string>\n    <string name=\"pref_high\">Alta</string>\n    <string name=\"pref_remove_after_marked_as_read\">Post permane markitaj kiel legitaj</string>\n    <string name=\"no_location_set\">Neniu konserveja loko agordita</string>\n    <string name=\"pref_download_new_categories_details\">Elementoj en ekskluzivitaj kategorioj ne estos elŝutotaj, eĉ se ili estas ankaŭ en inkluzivitaj kategorioj.</string>\n    <string name=\"auto_download_while_reading\">Aŭtomate elŝuti dum legado</string>\n    <string name=\"save_chapter_as_cbz\">Konservi kiel CBZ-arkivo</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Ĝisdatigi progreson kiam markita kiel legita</string>\n    <string name=\"tracking_info\">Unudirekte sinkronigi por ĝisdatigi la ĉapitran progreson en ekstera sekvila servo. Agordi sekvadon por apartaj elementoj per ilia sekvada butono.</string>\n    <string name=\"enhanced_services\">Plibonigitaj sekviloj</string>\n    <string name=\"rotation_reverse_portrait\">Inverse vertikala</string>\n    <string name=\"pref_webtoon_side_padding\">Flankaj marĝenoj</string>\n    <string name=\"pref_hide_threshold\">Sentemo por kaŝi menuon dum rulumo</string>\n    <string name=\"pref_low\">Malalta</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Ne elŝuti duoblaĵojn de legitaj ĉapitroj</string>\n    <string name=\"pref_always_show_chapter_transition\">Ĉiam montri ĉapitrajn transpaŝojn</string>\n    <string name=\"pref_landscape_zoom\">Aŭtomate zomi larĝajn bildojn</string>\n    <string name=\"split_tall_images\">Dividi altajn bildojn</string>\n    <string name=\"enhanced_services_not_installed\">Disponebla sed fonto ne estas instalita: %s</string>\n    <string name=\"fifth_to_last\">La 5-a laste legita ĉapitro</string>\n    <string name=\"pref_auto_update_manga_sync\">Ĝisdatigi progreson post lego</string>\n    <string name=\"pref_highest\">Plej alta</string>\n    <string name=\"pref_navigate_pan\">Panorami larĝajn bildojn</string>\n    <string name=\"pref_zoom_start\">Komenca zoma pozicio</string>\n    <string name=\"third_to_last\">La 3-a laste legita ĉapitro</string>\n    <string name=\"download_ahead\">Elŝuti antaŭe</string>\n    <string name=\"split_tall_images_summary\">Plibonigas legilan rendimenton</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Malebligi malzomon</string>\n    <string name=\"library_sync_complete\">Biblioteka sinkronigo finita</string>\n    <string name=\"non_library_settings\">Ĉiuj legitaj elementoj</string>\n    <string name=\"pref_dns_over_https\">DNS per HTTPS (DoH)</string>\n    <string name=\"track_activity_name\">Sekvila ensaluto</string>\n    <string name=\"pref_user_agent_string\">Defaŭlta ĉeno por \\\"user agent\\\"</string>\n    <string name=\"syncing_library\">Biblioteka sinkronigo</string>\n    <string name=\"pref_storage_location\">Konserveja loko</string>\n    <string name=\"enhanced_tracking_info\">Provizas plibonigitajn funkciojn por specifaj fontoj. Elementoj estas aŭtomate sekvataj kiam aldonitaj al via biblioteko.</string>\n    <string name=\"backup_restore_content_full\">Vi devos instali mankantajn etendaĵojn kaj ensaluti al sekvadaj servoj poste por uzi ilin.</string>\n    <string name=\"pref_reset_user_agent_string\">Restarigi defaŭltan ĉenon por \\\"user agent\\\"</string>\n    <string name=\"extensionRepo_settings\">Etendaĵaj deponejoj</string>\n    <string name=\"private_settings\">Inkluzivi konfidencajn agordojn (ekz. ensalutajn ĵetonojn de sekvilo)</string>\n    <string name=\"pref_storage_usage\">Konserveja uzo</string>\n    <string name=\"error_user_agent_string_blank\">Ĉeno por \\\"user agent\\\" ne povas malpleni</string>\n    <string name=\"error_user_agent_string_invalid\">Nevalida ĉeno por \\\"user agent\\\"</string>\n    <string name=\"empty_backup_error\">Neniu biblioteka elemento por savkopii</string>\n    <string name=\"backup_info\">Vi konservu kopiojn de savkopioj ankaŭ en aliaj lokoj. Savkopioj povas enhavi konfidencajn datumojn inkluzive konservitajn pasvortojn; atentu se vi konigos ilin.</string>\n    <string name=\"invalid_backup_file_unknown\">Savkopia dosiero estas difektita</string>\n    <string name=\"action_create\">Krei</string>\n    <string name=\"invalid_backup_file_json\">JSON-savkopio ne subtenata</string>\n    <string name=\"missing_storage_permission\">Konservejaj permesoj ne donitaj</string>\n    <string name=\"pref_hide_in_library_items\">Kaŝi elementojn jam en biblioteko</string>\n    <string name=\"pref_storage_location_info\">Uzata por aŭtomataj savkopioj, ĉapitraj elŝutoj kaj lokaj fontoj.</string>\n    <string name=\"pref_create_backup_summ\">Povas esti uzita por restaŭri aktualan bibliotekon</string>\n    <string name=\"create_backup_file_error\">Ne eblis krei savkopian dosieron</string>\n    <string name=\"restore_miui_warning\">Savkopiado/restaŭro ne funkcios ĝuste se MIUI-optimumigo estas malŝaltita.</string>\n    <string name=\"last_auto_backup_info\">Lasta aŭtomata ĝisdatigo: %s</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Viŝi ĉapitran kaŝmemoron je apa lanĉo</string>\n    <string name=\"pref_reset_viewer_flags_error\">Ne eblis restarigi legilajn agordojn</string>\n    <string name=\"pref_dump_crash_logs_summary\">Konservas protokolojn pri eraroj dosieren por kunigi kun la programistoj</string>\n    <string name=\"label_background_activity\">Fona aktiveco</string>\n    <string name=\"pref_clear_webview_data\">Viŝi datumojn de WebView</string>\n    <string name=\"pref_reset_viewer_flags_success\">Restarigo de ĉiuj legilaj agordoj</string>\n    <string name=\"requires_app_restart\">Devigas restartigi apon por efektiviĝi</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Restarigas legadan reĝimon kaj orientiĝon de ĉiuj serioj</string>\n    <string name=\"pref_invalidate_download_cache\">Reindeksi elŝutojn</string>\n    <string name=\"download_cache_invalidated\">Rekreado de indekso de elŝutoj</string>\n    <string name=\"pref_clear_database_summary\">Forigi historion de elementoj ne konservitaj en biblioteko</string>\n    <string name=\"clear_database_source_item_count\">%1$d nebibliotekaj elementoj en datumbazo</string>\n    <string name=\"database_clean\">Nenio por viŝi</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Devigu apon rekontroli elŝutitajn ĉapitrojn</string>\n    <string name=\"webview_data_deleted\">Datumoj de WebView viŝitaj</string>\n    <string name=\"pref_dump_crash_logs\">Konigi prikolapsajn protokolojn</string>\n    <string name=\"pref_reset_viewer_flags\">Restarigi legilajn agordojn de individuaj serioj</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Helpas pri fonaj ĝisdatigoj de biblioteko kaj savkopioj</string>\n    <string name=\"battery_optimization_disabled\">Bateria optimumigo jam estis malŝaltita</string>\n    <string name=\"about_dont_kill_my_app\">Kelkaj fabrikantoj havas aldonajn apajn malpermesojn, kiuj ĉesigas fonajn servojn. Jena retpaĝo havas pli da informoj pri kiel ripari tion.</string>\n    <string name=\"pref_verbose_logging_summary\">Konservi malkoncizajn protokolojn al sistema protokolo (reduktas apan rendimenton)</string>\n    <string name=\"pref_debug_info\">Infrormoj por sencimigo</string>\n    <string name=\"pref_verbose_logging\">Malkonciza protokolado</string>\n    <string name=\"privacy_policy\">Privateca politiko</string>\n    <string name=\"pref_acra_summary\">Helpas ripari cimojn. Neniuj konfidencaj datumoj estos sendotaj</string>\n    <string name=\"fdroid_warning\">Eldonoj ĉe F-Droid ne estas oficiale subtenataj.\\nTuŝetu por ekscii pli.</string>\n    <string name=\"label_auto\">Aŭtomate</string>\n    <string name=\"action_notes\">Notoj</string>\n    <string name=\"action_edit_notes\">Redakti notojn</string>\n    <string name=\"action_display_unread_badge\">Mallegi ĉapitron</string>\n    <string name=\"theme_monochrome\">Unukolora</string>\n    <string name=\"pref_behavior\">Konduto</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Post akiro de nova ĉapitro</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Post legado de ĉapitro</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marki duoblaĵon de legita ĉapitro kiel legita</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Uzi malmodernan malkodilon por longa stria legilo</string>\n    <string name=\"storage_failed_to_create_download_directory\">Fiaskis krei elŝutadan dosierujon</string>\n    <string name=\"storage_failed_to_create_directory\">Fiaskis krei dosierujon: %s</string>\n    <string name=\"possible_duplicates_title\">Eblaj duoblaĵoj</string>\n    <string name=\"decode_image_error\">La bildo ne eblis esti ŝargita</string>\n    <string name=\"download_queue_error\">Ne eblis elŝuti ĉapitrojn. Vi povas reprovi en la sekcio de elŝutoj</string>\n    <string name=\"download_insufficient_space\">Ne eblis elŝuti ĉapitrojn pro malgranda konserveja spaco</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Ne eblis trovi dosiervojon de paĝo %d</string>\n    <string name=\"exception_unknown_host\">Ne eblis atingi %s</string>\n    <string name=\"export\">Eksporti</string>\n    <string name=\"library_list\">Biblioteka listo</string>\n    <string name=\"library_exported\">Biblioteko eksportita</string>\n    <string name=\"clear_database_text\">Vi forigos elementojn el la datumbazo</string>\n    <string name=\"clear_database_history_warning\">Legitaj ĉapitrojn kaj progreso de nebibliotekaj elementoj estos perdotaj</string>\n    <string name=\"clear_db_exclude_read\">Neforigi elementojn kun legitaj ĉapitroj</string>\n    <string name=\"pref_update_library_manga_titles\">Ĝisdatigi mangaajn titolojn biblioteke por ke ili kongruu kun fonton</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Averto: se magao estis alinomita, ĝi estos forigota el la elŝutvico (se ekzistas).</string>\n    <string name=\"pref_incognito_mode_summary\">Paŭzigas legadan historion</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Paŭzigas legadan historion por etendaĵo</string>\n    <string name=\"downloaded_only_summary\">Filtras ĉiujn elementojn en via biblioteko</string>\n    <string name=\"logging_in\">Ensalutado…</string>\n    <string name=\"intervals_header\">Intervaloj</string>\n    <string name=\"overlay_header\">Plustavolo</string>\n    <string name=\"local_source_help_guide\">Gvidilo pri lokaj fontoj</string>\n    <string name=\"author\">Aŭtoro</string>\n    <string name=\"artist\">Artisto</string>\n    <string name=\"licensed\">Licencita</string>\n    <string name=\"publishing_finished\">Eldonado finita</string>\n    <string name=\"cancelled\">Rezignita</string>\n    <string name=\"on_hiatus\">En hiato</string>\n    <string name=\"possible_duplicates_summary\">Vi havas elementojn en via biblioteko kun simila nomo.\\n\\nElektu elementon por migri aŭ aldoni ĝin malgraŭ.</string>\n    <string name=\"copied_to_clipboard_plain\">Kopiita al tondujo</string>\n    <string name=\"manga_display_interval_title\">Estimi ĉiu</string>\n    <string name=\"manga_display_modified_interval_title\">Agordi por ĝisdatigi ĉiu</string>\n    <string name=\"manga_interval_expected_update\">Novaj ĉapitroj prognozataj eldoni post ĉirkaŭ %1$s, kontrolas ĉirkaŭ ĉiu %2$s.</string>\n    <string name=\"manga_interval_expected_update_null\">Ĉi tiu mangao estas aŭ finita, aŭ ne havas prognozatan eldonotan daton.</string>\n    <string name=\"manga_interval_custom_amount\">Propra ĝisdatiga ofteco:</string>\n    <string name=\"custom_cover\">Propra kovrilo</string>\n    <string name=\"exclude_scanlators\">Ekskluzivi skantradukistojn</string>\n    <string name=\"no_scanlators_found\">Neniu skantradukisto trovita</string>\n    <string name=\"confirm_tracker_update\">Ĝisdatigi ŝanĝospurilojn al ĉapitro %d?</string>\n    <string name=\"trackers_updated_summary\">Ŝanĝospuriloj ĝisdatigitaj al ĉapitro %d</string>\n    <string name=\"reading_list\">Listo de legataj</string>\n    <string name=\"wish_list\">Dezirlisto</string>\n    <string name=\"complete_list\">Listo de finitaj</string>\n    <string name=\"on_hold_list\">Listo de prokrastitaj</string>\n    <string name=\"unfinished_list\">Listo de nefinitaj</string>\n    <string name=\"action_toggle_private_on\">Sekvi private</string>\n    <string name=\"action_toggle_private_off\">Sekvi publike</string>\n    <string name=\"error_no_match\">Neniu kongruo trovita</string>\n    <string name=\"track_remove_date_conf_title\">Ĉu forigi daton?</string>\n    <string name=\"track_remove_start_date_conf_text\">Tio forigos vian antaŭe elektitan komencdaton el %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Tio forigos vian antaŭe elektitan findaton el %s</string>\n    <string name=\"track_delete_title\">Ĉu forigi sekvadon de %s?</string>\n    <string name=\"track_delete_text\">Tio forigos la sekvadon loke.</string>\n    <string name=\"track_delete_remote_text\">Ankaŭ forigi el %s</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Tio forigos la legdaton de ĉi tiu ĉapitro. Ĉu vi certas?</string>\n    <string name=\"dialog_with_checkbox_reset\">Restarigi ĉiujn ĉapitrojn por ĉi tiun elemento</string>\n    <string name=\"error_saving_picture\">Eraro konservante bildon</string>\n    <string name=\"transition_pages_error\">Malsukcesis ŝargi paĝojn: %1$s</string>\n    <string name=\"update_already_running\">Ĝisdatigado jam funkcias</string>\n    <string name=\"cant_open_last_read_chapter\">Ne eblas malfermi laste legitan ĉapitron</string>\n    <string name=\"updates_last_update_info\">Biblioteko laste ĝisdatigita: %s</string>\n    <string name=\"action_view_upcoming\">Vidi venontajn ĝisdatigojn</string>\n    <string name=\"upcoming_guide\">Gvidilo pri venontaj ĝisdatigoj</string>\n    <string name=\"upcoming_calendar_next\">Sekva monato</string>\n    <string name=\"upcoming_calendar_prev\">Antaŭa monato</string>\n    <string name=\"source_filter_empty_screen\">Neniu instalita fonto trovita</string>\n    <string name=\"migration_help_guide\">Gvidilo pri fonta migrado</string>\n    <string name=\"migration_selection_prompt\">Elektu fonton el kiu migri</string>\n    <string name=\"empty_screen\">Nu, estas embarase</string>\n    <string name=\"not_installed\">Ne instalitaj</string>\n    <string name=\"crash_screen_description\">%s trafis neatenditan eraron. Ni sugestas ke vi kunigu la prikolapsajn protokolojn ĉe nia subteneja kanalo ĉe Discord.</string>\n    <string name=\"crash_screen_restart_application\">Relanĉi la aplikaĵon</string>\n    <string name=\"label_overview_section\">Superrigardo</string>\n    <string name=\"label_read_duration\">Legada daŭro</string>\n    <string name=\"label_titles_section\">Elementoj</string>\n    <string name=\"label_titles_in_global_update\">En ĉiea ĝisdatigo</string>\n    <string name=\"label_total_chapters\">Entute</string>\n    <string name=\"label_read_chapters\">Legitaj</string>\n    <string name=\"label_tracker_section\">Sekviloj</string>\n    <string name=\"label_tracked_titles\">Sekvataj elementoj</string>\n    <string name=\"label_mean_score\">Mezuma takso</string>\n    <string name=\"label_used\">Uzataj</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dt</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"download_queue_size_warning\">Averto: grandaj amasaj elŝutoj povas igi fontojn fariĝi pli malrapidaj kaj/aŭ bloki %s. Tuŝetu por ekscii pli.</string>\n    <string name=\"notification_updating_progress\">Ĝisdatigado de biblioteko… (%s)</string>\n    <string name=\"notification_size_warning\">Grandaj ĝisdatigoj povas damaĝi fontojn kaj konduki al pli malrapidaj ĝisdatigoj kaj pliigan baterian uzadon. Tuŝetu por ekscii pli.</string>\n    <string name=\"notification_update_error\">%1$d ĝisdatigo(j) fiaskis</string>\n    <string name=\"learn_more\">Tuŝetu por ekscii pli</string>\n    <string name=\"notification_first_add_to_library\">Bonvolu aldoni la elementon al via biblioteko antaŭ ol fari tion</string>\n    <string name=\"library_errors_help\">Por helpo pri kiel ripari erarojn de bibliotekaj ĝisdatigoj, vidu %1$s</string>\n    <string name=\"skipped_reason_completed\">Preterlasita ĉar serio estas finita</string>\n    <string name=\"skipped_reason_not_caught_up\">Preterlasita ĉar estas nelegitaj ĉapitroj</string>\n    <string name=\"skipped_reason_not_started\">Preterlasita ĉar neniuj ĉapitroj estas legataj</string>\n    <string name=\"skipped_reason_not_always_update\">Preterlasita ĉar serio ne devigas havi ĝisdatigojn</string>\n    <string name=\"skipped_reason_not_in_release_period\">Preterlasis ĉar neniu eldono estis atendita hodiaŭ</string>\n    <string name=\"file_picker_error\">Neniu dosierelektila apo trovita</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Fiaskis akiri aliron al persista dosierujo. La apo eble kondutos neatendate.</string>\n    <string name=\"file_null_uri_error\">Neniu dosiero elektita</string>\n    <string name=\"update_check_open\">Malfermi ĉe GitHub</string>\n    <string name=\"update_check_eol\">Ĉi tiu Androida versio ne estas plu subtenata</string>\n    <string name=\"information_no_manga_category\">Kategorio malplenas</string>\n    <string name=\"information_no_entries_found\">Neniuj elementoj trovitaj en ĉi tiu kategorio</string>\n    <string name=\"getting_started_guide\">Komencanta gvidilo</string>\n    <string name=\"information_empty_category_dialog\">Vi nune havas neniujn kategoriojn.</string>\n    <string name=\"information_cloudflare_bypass_failure\">Malsukcesis ĉirkaŭpasi Cloudflare</string>\n    <string name=\"information_cloudflare_help\">Tuŝetu ĉi tie por helpo kun Cloudflare</string>\n    <string name=\"information_required_plain\">*nepra</string>\n    <string name=\"information_webview_required\">WebView estas nepra por ke la apo funkcios</string>\n    <string name=\"information_webview_outdated\">Bonvolu ĝisdatigi la WebView-apon por plibona kongruo</string>\n    <string name=\"chapter_settings_updated\">Aktualigis defaŭltajn ĉapitrajn agordojn</string>\n    <string name=\"download_notifier_unknown_error\">Ne eblis elŝuti ĉapitron pro neatendita eraro</string>\n    <string name=\"download_notifier_text_only_wifi\">Neniu Wi-Fi-konekto disponebla</string>\n    <string name=\"download_notifier_no_network\">Neniu retkonekto disponebla</string>\n    <string name=\"download_notifier_split_page_not_found\">Paĝo %d netrovita dum dividado</string>\n    <string name=\"download_notifier_cache_renewal\">Kontrolado de elŝutoj</string>\n    <string name=\"channel_app_updates\">Apaj ĝisdatigoj</string>\n    <string name=\"appwidget_updates_description\">Vidi vian laste ĝisdatigitaj elementoj</string>\n    <string name=\"appwidget_unavailable_locked\">Fenestraĵo nedisponebla kiam apa ŝloso estas ŝaltita</string>\n    <string name=\"remove_manga\">Vi forigos \\\"%s\\\" el via biblioteko</string>\n    <string name=\"exception_http\">HTTP %d, kontrolu retejon per WebView</string>\n    <string name=\"exception_offline\">Sen interreta konekto</string>\n    <string name=\"notes_placeholder\">Mi ĝuis kiam…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Elektita</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponebla</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Elekti ĉiujn</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Elekti neniun</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Elekti ŝaltitajn fontojn</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Elekti alpinglitajn fontojn</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Daŭrigi</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Datumoj por migri</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Forigi elŝutojn de aktuala elemento post migro</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Aldonaj ŝlosilvortoj (nedeviga)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Helpas malvastigi serĉrezultojn aldonante aldonajn ŝlosilvortojn</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Kaŝi elementojn sen kongruo</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Kaŝi elementojn sen pli novaj ĉapitroj</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Montri elementon nur se la kongruo havas aldonajn ĉapitrojn</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Tiuj opcioj estas malrapidaj kaj danĝeraj, kaj povas igi fontojn altrudi limigojn</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Altnivela serĉa reĝimo</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Dividas la titolon al ŝlosilvortojn por pli vasta serĉo</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Kongruo bazita sur ĉapitra nombro</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Se ŝaltita, elektas la plej antaŭan kongruon. Alikaze elektas la unuan kongruon laŭ fonta prioritato.</string>\n    <string name=\"migrationListScreenTitle\">Migrado</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migrado (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopii</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migri</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Neniu alternativo trovita</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Plej lasta: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Nekonata</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Serĉi permane</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Ne migri</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migri nun</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Kopii nun</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Ĉu haltigi migradon?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Haltigi</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Nuligi</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopii</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migri</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Nuligi</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Nuligi</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Neniu ĉapitro trovita, ĉi tiu elemento ne povas esti uzota por migri</string>\n    <string name=\"label_donate\">Donacu</string>\n    <string name=\"theme_catppuccin\">Katpuĉino</string>\n    <string name=\"pref_display_images_description\">Montri bildojn en mangaaj priskriboj</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Kaŝi mankantajn ĉapitrajn indikilojn</string>\n    <string name=\"tracked_privately\">Sekvata private</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Malpermesi ne-ASCII-dosiernomojn</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Certigas kongruon kun certaj konservejaj dosiersistemoj kiuj ne subtenas Unikodon. Kiam tio estas ŝaltita, vi bezonos permane renomi dosierujojn de fontoj kaj mangaoj anstataŭigante ne-ASCII-signojn per iliaj minusklaj UTF-8-deksesumaj prezentoj. Ĉapitraj dosieroj ne necesas esti renomitaj.</string>\n    <string name=\"action_webview_close_tab\">Fermi langeton</string>\n    <string name=\"pref_download_concurrent_sources\">Kunrulaj elŝutoj de fontoj</string>\n    <string name=\"pref_download_concurrent_pages\">Kunrulaj elŝutoj de paĝoj</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Paĝoj elŝutitaj sammomente por fonto</string>\n    <string name=\"action_filter_excluded_scanlators\">Filtri ekskluzivitajn skantradukistojn</string>\n    <string name=\"calculating\">Kalkulado…</string>\n    <string name=\"download_bookmarked\">Legosignita</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/es/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Tras %1$s minuto</item>\n        <item quantity=\"many\">Tras %1$s minutos</item>\n        <item quantity=\"other\">Tras %1$s minutos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nuevo capítulo</item>\n        <item quantity=\"many\">%1$d nuevos capítulos</item>\n        <item quantity=\"other\">%1$d nuevos capítulos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capítulos %1$s y 1 más</item>\n        <item quantity=\"many\">Capítulos %1$s y %2$d más</item>\n        <item quantity=\"other\">Capítulos %1$s y %2$d más</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Para %d título</item>\n        <item quantity=\"many\">Para %d títulos</item>\n        <item quantity=\"other\">Para %d títulos</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Actualización de extensión disponible</item>\n        <item quantity=\"many\">%d actualizaciones de extensiones disponibles</item>\n        <item quantity=\"other\">%d actualizaciones de extensiones disponibles</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">Queda %1$s</item>\n        <item quantity=\"many\">Quedan %1$s</item>\n        <item quantity=\"other\">Quedan %1$s</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoría</item>\n        <item quantity=\"many\">%d categorías</item>\n        <item quantity=\"other\">%d categorías</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Completada en %1$s con %2$s error</item>\n        <item quantity=\"many\">Completada en %1$s con %2$s errores</item>\n        <item quantity=\"other\">Completada en %1$s con %2$s errores</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capítulo</item>\n        <item quantity=\"many\">%1$s capítulos</item>\n        <item quantity=\"other\">%1$s capítulos</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d servicio de seguimiento</item>\n        <item quantity=\"many\">%d de servicios de seguimiento</item>\n        <item quantity=\"other\">%d servicios de seguimiento</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Se omite %d capítulo, o bien falta en la fuente o ha sido filtrado</item>\n        <item quantity=\"many\">Se omiten %d capítulos, o bien faltan en la fuente o han sido filtrados</item>\n        <item quantity=\"other\">Se omiten %d capítulos, o bien faltan en la fuente o han sido filtrados</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ayer</item>\n        <item quantity=\"many\">Hace %1$d días</item>\n        <item quantity=\"other\">Hace %1$d días</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Siguiente capítulo sin leer</item>\n        <item quantity=\"many\">Siguientes %d capítulos sin leer</item>\n        <item quantity=\"other\">Siguientes %d capítulos sin leer</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Siguiente capítulo</item>\n        <item quantity=\"many\">Siguientes %d capítulos</item>\n        <item quantity=\"other\">Siguientes %d capítulos</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Falta %1$s capítulo</item>\n        <item quantity=\"many\">Faltan %1$s capítulos</item>\n        <item quantity=\"other\">Faltan %1$s capítulos</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 día</item>\n        <item quantity=\"many\">%d días</item>\n        <item quantity=\"other\">%d días</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repositorio</item>\n        <item quantity=\"many\">%d repositorios</item>\n        <item quantity=\"other\">%d repositorios</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Mañana</item>\n        <item quantity=\"many\">Dentro de %1$d días</item>\n        <item quantity=\"other\">Dentro de %1$d días</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 página</item>\n        <item quantity=\"many\">%1$s páginas</item>\n        <item quantity=\"other\">%1$s páginas</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Se ha saltado un elemento</item>\n        <item quantity=\"many\">Se han saltado %1$d elementos</item>\n        <item quantity=\"other\">Se han saltado %1$d elementos</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">¿Copiar este elemento?</item>\n        <item quantity=\"many\">¿Copiar estos %1$d elementos?</item>\n        <item quantity=\"other\">¿Copiar estos %1$d elementos?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">¿Migrar este elemento?</item>\n        <item quantity=\"many\">¿Migrar estos %1$d elementos?</item>\n        <item quantity=\"other\">¿Migrar estos %1$d elementos?</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/es/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nombre</string>\n    <string name=\"label_settings\">Ajustes</string>\n    <string name=\"label_download_queue\">Cola de descargas</string>\n    <string name=\"label_library\">Biblioteca</string>\n    <string name=\"label_recent_manga\">Historial</string>\n    <string name=\"label_recent_updates\">Actualizaciones</string>\n    <string name=\"label_backup\">Copia de seguridad y restauración</string>\n    <string name=\"action_settings\">Ajustes</string>\n    <string name=\"action_filter\">Filtrar</string>\n    <string name=\"action_filter_unread\">Con capítulos sin leer</string>\n    <string name=\"action_filter_empty\">Quitar filtro</string>\n    <string name=\"action_search\">Buscar</string>\n    <string name=\"action_select_all\">Seleccionar todo</string>\n    <string name=\"action_mark_as_read\">Marcar como leído</string>\n    <string name=\"action_mark_as_unread\">Marcar como no leído</string>\n    <string name=\"action_mark_previous_as_read\">Todo leído hasta aquí</string>\n    <string name=\"action_download\">Descargar</string>\n    <string name=\"action_delete\">Borrar</string>\n    <string name=\"action_update_library\">Actualizar biblioteca</string>\n    <string name=\"action_edit\">Editar</string>\n    <string name=\"action_add_category\">Añadir categoría</string>\n    <string name=\"action_edit_categories\">Editar categorías</string>\n    <string name=\"action_rename_category\">Renombrar categoría</string>\n    <string name=\"action_move_category\">Asignar categorías</string>\n    <string name=\"action_edit_cover\">Editar la portada</string>\n    <string name=\"action_pause\">Pausar</string>\n    <string name=\"action_previous_chapter\">Capítulo anterior</string>\n    <string name=\"action_next_chapter\">Capítulo siguiente</string>\n    <string name=\"action_retry\">Reintentar</string>\n    <string name=\"action_remove\">Eliminar</string>\n    <string name=\"action_resume\">Reanudar</string>\n    <string name=\"action_open_in_browser\">Abrir en el navegador</string>\n    <string name=\"action_display_mode\">Modo de visualización</string>\n    <string name=\"action_cancel\">Cancelar</string>\n    <string name=\"action_sort\">Ordenar</string>\n    <string name=\"action_install\">Instalar</string>\n    <string name=\"loading\">Cargando…</string>\n    <string name=\"pref_category_general\">General</string>\n    <string name=\"pref_category_reader\">Visor</string>\n    <string name=\"pref_category_downloads\">Descargas</string>\n    <string name=\"pref_category_tracking\">Seguimiento</string>\n    <string name=\"pref_category_advanced\">Avanzado</string>\n    <string name=\"pref_category_about\">Acerca de</string>\n    <string name=\"pref_library_columns\">Títulos por fila</string>\n    <string name=\"portrait\">En vertical</string>\n    <string name=\"landscape\">En horizontal</string>\n    <string name=\"pref_library_update_interval\">Actualizaciones automáticas</string>\n    <string name=\"update_never\">No</string>\n    <string name=\"update_6hour\">Cada 6 horas</string>\n    <string name=\"update_12hour\">Cada 12 horas</string>\n    <string name=\"update_24hour\">Diarias</string>\n    <string name=\"update_48hour\">Cada 2 días</string>\n    <string name=\"pref_library_update_restriction\">Restringir las actualizaciones automáticas dependiendo del estado del dispositivo</string>\n    <string name=\"charging\">Mientras se carga la batería</string>\n    <string name=\"pref_update_only_non_completed\">Saltarse títulos cuyo estado de publicación sea «completado»</string>\n    <string name=\"pref_auto_update_manga_sync\">Actualizar progreso al terminar un capítulo</string>\n    <string name=\"pref_fullscreen\">Pantalla completa</string>\n    <string name=\"pref_page_transitions\">Transiciones de página animadas</string>\n    <string name=\"pref_show_page_number\">Mostrar el número de página</string>\n    <string name=\"pref_custom_brightness\">Utilizar brillo personalizado</string>\n    <string name=\"pref_keep_screen_on\">Mantener la pantalla encendida</string>\n    <string name=\"pref_reader_navigation\">Navegación</string>\n    <string name=\"pref_read_with_volume_keys\">Con las teclas de volumen</string>\n    <string name=\"pref_reader_theme\">Color de fondo</string>\n    <string name=\"white_background\">Blanco</string>\n    <string name=\"black_background\">Negro</string>\n    <string name=\"pref_viewer_type\">Sentido de lectura normal</string>\n    <string name=\"left_to_right_viewer\">Por páginas, de izquierda a derecha</string>\n    <string name=\"right_to_left_viewer\">Por páginas, de derecha a izquierda</string>\n    <string name=\"vertical_viewer\">Por páginas, de arriba abajo</string>\n    <string name=\"webtoon_viewer\">Tira vertical continua</string>\n    <string name=\"pref_image_scale_type\">Método de ampliación</string>\n    <string name=\"scale_type_fit_screen\">Ajustar al tamaño de pantalla</string>\n    <string name=\"scale_type_stretch\">Estirar la imagen</string>\n    <string name=\"scale_type_fit_width\">Ajustar a anchura</string>\n    <string name=\"scale_type_fit_height\">Ajustar a altura</string>\n    <string name=\"scale_type_original_size\">Tamaño original</string>\n    <string name=\"scale_type_smart_fit\">Ajuste inteligente</string>\n    <string name=\"pref_zoom_start\">Ampliación inicial</string>\n    <string name=\"zoom_start_automatic\">Automática</string>\n    <string name=\"zoom_start_left\">Hacia la izquierda</string>\n    <string name=\"zoom_start_right\">Hacia la derecha</string>\n    <string name=\"zoom_start_center\">Centrada</string>\n    <string name=\"pref_rotation_type\">Tipo de rotación inicial</string>\n    <string name=\"rotation_free\">Cualquier dirección</string>\n    <string name=\"rotation_force_portrait\">Forzar en vertical</string>\n    <string name=\"rotation_force_landscape\">Forzar en horizontal</string>\n    <string name=\"pref_remove_after_marked_as_read\">Borrarlos tras marcarlos como leídos de forma manual</string>\n    <string name=\"pref_remove_after_read\">Borrar capítulos terminados de forma automática</string>\n    <string name=\"services\">Servicios de seguimiento</string>\n    <string name=\"pref_clear_chapter_cache\">Limpiar la caché de capítulos</string>\n    <string name=\"used_cache\">Usado: %1$s</string>\n    <string name=\"cache_deleted\">Se vació la caché. Se han borrado %1$d archivos</string>\n    <string name=\"cache_delete_error\">Se produjo un error al limpiar</string>\n    <string name=\"pref_clear_cookies\">Borrar cookies</string>\n    <string name=\"cookies_cleared\">Cookies borradas</string>\n    <string name=\"pref_clear_database\">Borrar la base de datos</string>\n    <string name=\"pref_clear_database_summary\">Borra del historial los títulos que hayas leído pero no formen parte de tu biblioteca</string>\n    <string name=\"clear_database_completed\">Elementos borrados</string>\n    <string name=\"version\">Versión</string>\n    <string name=\"pref_enable_acra\">Enviar informes de fallos</string>\n    <string name=\"pref_acra_summary\">Ayuda a corregir cualquier error. No se enviará ninguna información personal</string>\n    <string name=\"login_title\">Iniciar sesión en %1$s</string>\n    <string name=\"username\">Nombre de usuario</string>\n    <string name=\"password\">Contraseña</string>\n    <string name=\"login\">Iniciar sesión</string>\n    <string name=\"login_success\">Conectado</string>\n    <string name=\"unknown_error\">Error desconocido</string>\n    <string name=\"updating_category\">Actualizando categoría</string>\n    <string name=\"ongoing\">En publicación</string>\n    <string name=\"unknown\">Desconocido</string>\n    <string name=\"licensed\">Con licencia</string>\n    <string name=\"remove_from_library\">Eliminar de biblioteca</string>\n    <string name=\"display_mode_chapter\">Capítulo %1$s</string>\n    <string name=\"chapter_downloading_progress\">Descargando (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Error</string>\n    <string name=\"show_title\">Título de la fuente</string>\n    <string name=\"show_chapter_number\">Número de capítulo</string>\n    <string name=\"sort_by_source\">Por fuente</string>\n    <string name=\"sort_by_number\">Por número de capítulo</string>\n    <string name=\"sort_by_upload_date\">Por fecha de subida</string>\n    <string name=\"manga_download\">Descargar</string>\n    <string name=\"download_unread\">Sin leer</string>\n    <string name=\"confirm_delete_chapters\">¿Seguro que quieres eliminar los capítulos seleccionados?</string>\n    <string name=\"reading\">Leyendo</string>\n    <string name=\"completed\">Completados</string>\n    <string name=\"dropped\">Abandonado</string>\n    <string name=\"on_hold\">En espera</string>\n    <string name=\"plan_to_read\">Para leer luego</string>\n    <string name=\"score\">Puntuación</string>\n    <string name=\"title\">Título</string>\n    <string name=\"status\">Estado</string>\n    <string name=\"chapters\">Capítulos</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Esto eliminará la fecha de lectura de este capítulo. ¿Estás seguro?</string>\n    <string name=\"dialog_with_checkbox_reset\">Reiniciar todos los capítulos de la serie actual</string>\n    <string name=\"chapter_progress\">Pág: %1$d</string>\n    <string name=\"no_next_chapter\">Siguiente capítulo no encontrado</string>\n    <string name=\"decode_image_error\">No se pudo cargar la imagen</string>\n    <string name=\"download_queue_error\">No se pudieron descargar los capítulos. Puedes volver a intentarlo en la sección de descargas</string>\n    <string name=\"notification_new_chapters\">Nuevos capítulos encontrados</string>\n    <string name=\"notification_first_add_to_library\">Primero tienes que añadir el título a tu biblioteca</string>\n    <string name=\"file_select_cover\">Elige una imagen de portada</string>\n    <string name=\"file_select_backup\">Elige una copia de respaldo</string>\n    <string name=\"update_check_confirm\">Descargar</string>\n    <string name=\"update_check_no_new_updates\">Ya estás usando la última versión disponible</string>\n    <string name=\"update_check_notification_download_in_progress\">Descargando…</string>\n    <string name=\"update_check_notification_download_complete\">Toca aquí para instalar la actualización</string>\n    <string name=\"update_check_notification_download_error\">Error de descarga</string>\n    <string name=\"update_check_notification_update_available\">¡Hay una nueva versión!</string>\n    <string name=\"information_no_downloads\">No hay descargas</string>\n    <string name=\"information_no_recent\">No hay actualizaciones recientes</string>\n    <string name=\"information_no_recent_manga\">No has leído nada últimamente</string>\n    <string name=\"information_empty_library\">Tu biblioteca está vacía</string>\n    <string name=\"download_notifier_title_error\">Error</string>\n    <string name=\"download_notifier_unknown_error\">No se ha podido descargar el capítulo debido a un error inesperado</string>\n    <string name=\"download_notifier_text_only_wifi\">No estás conectado a ninguna red Wi-Fi</string>\n    <string name=\"categories\">Categorías</string>\n    <string name=\"manga\">Contenido de la biblioteca</string>\n    <string name=\"track\">Seguimiento</string>\n    <string name=\"history\">Historial</string>\n    <string name=\"action_filter_bookmarked\">Favoritos</string>\n    <string name=\"action_sort_alpha\">Alfabéticamente</string>\n    <string name=\"action_sort_total\">Por número de capítulos publicados</string>\n    <string name=\"action_sort_last_read\">Por última fecha de lectura</string>\n    <string name=\"action_bookmark\">Marcar como favorito</string>\n    <string name=\"action_remove_bookmark\">Quitar como favorito</string>\n    <string name=\"action_add\">Añadir</string>\n    <string name=\"download_notifier_no_network\">No estás conectado a Internet</string>\n    <string name=\"download_notifier_download_paused\">Descarga pausada</string>\n    <string name=\"confirm_set_image_as_cover\">¿Usar esta imagen como portada?</string>\n    <string name=\"action_display\">Apariencia</string>\n    <string name=\"action_display_grid\">Cuadrícula compacta</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_share\">Compartir</string>\n    <string name=\"action_save\">Guardar</string>\n    <string name=\"action_reset\">Restablecer</string>\n    <string name=\"action_undo\">Deshacer</string>\n    <string name=\"action_open_log\">Abrir registro</string>\n    <string name=\"action_restore\">Restaurar</string>\n    <string name=\"app_not_available\">La aplicación no está disponible</string>\n    <string name=\"update_weekly\">Semanales</string>\n    <string name=\"all\">Todos</string>\n    <string name=\"default_category\">Categoría predeterminada</string>\n    <string name=\"default_category_summary\">Preguntar siempre</string>\n    <string name=\"pref_crop_borders\">Recortar bordes</string>\n    <string name=\"pref_custom_color_filter\">Filtro de color personalizado</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Teclas de volumen (al revés)</string>\n    <string name=\"color_filter_r_value\">Rojo</string>\n    <string name=\"color_filter_g_value\">Verde</string>\n    <string name=\"color_filter_b_value\">Azul</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"disabled\">Desactivado</string>\n    <string name=\"last_read_chapter\">Último capítulo leído</string>\n    <string name=\"second_to_last\">El penúltimo capítulo leído</string>\n    <string name=\"third_to_last\">El antepenúltimo capítulo leído</string>\n    <string name=\"fourth_to_last\">El trasantepenúltimo capítulo leído</string>\n    <string name=\"fifth_to_last\">El anteanteantepenúltimo capítulo leído</string>\n    <string name=\"pref_download_new\">Descargar capítulos nuevos</string>\n    <string name=\"pref_create_backup\">Crear una copia de seguridad</string>\n    <string name=\"pref_create_backup_summ\">Se puede utilizar para restaurar la biblioteca actual</string>\n    <string name=\"pref_restore_backup\">Restaurar copia de seguridad</string>\n    <string name=\"pref_restore_backup_summ\">Restaurar la biblioteca a partir de una copia de seguridad</string>\n    <string name=\"pref_backup_interval\">Frecuencia de respaldo automático</string>\n    <string name=\"backup_created\">Copia de seguridad creada</string>\n    <string name=\"restore_completed\">Restauración completada</string>\n    <string name=\"backup_choice\">¿De qué quieres hacer una copia de seguridad?</string>\n    <string name=\"restoring_backup\">Restaurando copia de seguridad</string>\n    <string name=\"creating_backup\">Creando copia de seguridad</string>\n    <string name=\"no_more_results\">No hay más resultados</string>\n    <string name=\"local_source\">Fuente local</string>\n    <string name=\"delete_downloads_for_manga\">¿Quieres borrar los capítulos descargados?</string>\n    <string name=\"chapter_paused\">Pausado</string>\n    <string name=\"manga_tracking_tab\">Seguimiento</string>\n    <string name=\"error_category_exists\">¡Ya existe una categoría con este nombre!</string>\n    <string name=\"snack_categories_deleted\">Categorías eliminadas</string>\n    <string name=\"snack_add_to_library\">¿Añadir manga a la biblioteca?</string>\n    <string name=\"picture_saved\">Imagen guardada</string>\n    <string name=\"custom_filter\">Filtro personalizado</string>\n    <string name=\"set_as_cover\">Poner como portada</string>\n    <string name=\"cover_updated\">Se ha actualizado la portada de la serie</string>\n    <string name=\"notification_cover_update_failed\">Error al actualizar la portada</string>\n    <string name=\"download_notifier_downloader_title\">Descargador</string>\n    <string name=\"action_global_search\">Búsqueda global</string>\n    <string name=\"action_display_download_badge\">Capítulos descargados</string>\n    <string name=\"other_source\">Otros</string>\n    <string name=\"action_global_search_hint\">Búsqueda global…</string>\n    <string name=\"latest\">Recientes</string>\n    <string name=\"browse\">Explorar</string>\n    <string name=\"channel_common\">Comunes</string>\n    <string name=\"information_empty_category\">No hay categorías. Pulsa el botón «+» para crear una y organizar tu biblioteca.</string>\n    <string name=\"label_migration\">Migrar</string>\n    <string name=\"label_extensions\">Extensiones</string>\n    <string name=\"label_extension_info\">Información de la extensión</string>\n    <string name=\"ext_update\">Actualizar</string>\n    <string name=\"ext_install\">Instalar</string>\n    <string name=\"ext_pending\">Pendiente</string>\n    <string name=\"ext_downloading\">Descargando</string>\n    <string name=\"ext_installing\">Instalando</string>\n    <string name=\"ext_installed\">Instalado</string>\n    <string name=\"ext_trust\">Confiar</string>\n    <string name=\"ext_untrusted\">No es fiable</string>\n    <string name=\"ext_uninstall\">Desinstalar</string>\n    <string name=\"untrusted_extension\">La extensión no es fiable</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Rápida</string>\n    <string name=\"transition_next\">Siguiente:</string>\n    <string name=\"transition_previous\">Anterior:</string>\n    <string name=\"transition_no_next\">No hay ningún capítulo más</string>\n    <string name=\"transition_no_previous\">No hay ningún capítulo anterior</string>\n    <string name=\"migrate\">Migrar</string>\n    <string name=\"copy\">Copiar</string>\n    <string name=\"untrusted_extension_message\">Una extensión maliciosa puede leer credenciales de inicio guardadas o ejecutar cualquier tipo de código en tu dispositivo. \\n \\nAl marcar al autor como de confianza aceptas estos riesgos.</string>\n    <string name=\"double_tap_anim_speed_0\">Sin animación</string>\n    <string name=\"manga_added_library\">Añadido a biblioteca</string>\n    <string name=\"manga_removed_library\">Quitado de biblioteca</string>\n    <string name=\"copied_to_clipboard\">Copiado en portapapeles:\n\\n«%1$s»</string>\n    <string name=\"source_not_installed\">Fuente no instalada: %1$s</string>\n    <string name=\"repeating\">Releyendo</string>\n    <string name=\"track_status\">Estado</string>\n    <string name=\"track_type\">Tipo</string>\n    <string name=\"transition_finished\">Finalizado:</string>\n    <string name=\"transition_current\">Actual:</string>\n    <string name=\"transition_pages_loading\">Cargando páginas…</string>\n    <string name=\"transition_pages_error\">Error al cargar páginas: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Elige qué datos incluir</string>\n    <string name=\"pref_double_tap_anim_speed\">Velocidad de animación de doble toque</string>\n    <string name=\"pager_viewer\">Por páginas</string>\n    <string name=\"pref_read_with_long_tap\">Menú de pulsación prolongada</string>\n    <string name=\"action_open_in_web_view\">Abrir en WebView</string>\n    <string name=\"pref_skip_read_chapters\">Saltar capítulos leídos</string>\n    <string name=\"pref_color_filter_mode\">Mezcla de colores</string>\n    <string name=\"filter_mode_overlay\">Superponer</string>\n    <string name=\"filter_mode_multiply\">Multiplicar</string>\n    <string name=\"filter_mode_screen\">Trama</string>\n    <string name=\"filter_mode_lighten\">Sobreexponer / Aclarar</string>\n    <string name=\"filter_mode_darken\">Subexponer / Oscurecer</string>\n    <string name=\"label_help\">Ayuda</string>\n    <string name=\"no_results_found\">No se han encontrado resultados</string>\n    <string name=\"migration_selection_prompt\">Selecciona una fuente a migrar</string>\n    <string name=\"action_webview_back\">Atrás</string>\n    <string name=\"action_webview_forward\">Adelante</string>\n    <string name=\"action_webview_refresh\">Actualizar</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"ext_obsolete\">Obsoleto</string>\n    <string name=\"obsolete_extension_message\">Esta extensión ya no está disponible. Puede que no funcione bien y te cause problemas con el resto de la aplicación, te recomendamos desinstalarla.</string>\n    <string name=\"pref_date_format\">Formato de fecha</string>\n    <string name=\"pref_category_library_update\">Actualización global</string>\n    <string name=\"logout\">Cerrar sesión</string>\n    <string name=\"logout_success\">Has cerrado sesión</string>\n    <string name=\"paused\">Pausado</string>\n    <string name=\"logout_title\">¿Cerrar sesión en %1$s?</string>\n    <string name=\"label_more\">Más</string>\n    <string name=\"action_sort_latest_chapter\">Por capítulo más reciente</string>\n    <string name=\"action_view_chapters\">Ver capítulos</string>\n    <string name=\"action_cancel_all\">Cancelar todo</string>\n    <string name=\"theme_light\">Claro</string>\n    <string name=\"theme_dark\">Oscuro</string>\n    <string name=\"theme_system\">Del sistema</string>\n    <string name=\"pref_manage_notifications\">Gestionar notificaciones</string>\n    <string name=\"pref_category_security\">Seguridad y privacidad</string>\n    <string name=\"lock_with_biometrics\">Desbloqueo biométrico</string>\n    <string name=\"lock_when_idle\">Bloquear por inactividad</string>\n    <string name=\"lock_always\">Siempre</string>\n    <string name=\"lock_never\">Nunca</string>\n    <string name=\"secure_screen\">Pantalla segura</string>\n    <string name=\"ext_updates_pending\">Actualizaciones pendientes</string>\n    <string name=\"pref_cutout_short\">Mostrar contenido en el área recortada</string>\n    <string name=\"information_cloudflare_bypass_failure\">Fallo al evitar Cloudflare</string>\n    <string name=\"information_webview_outdated\">Actualiza la aplicación WebView para mejorar la compatibilidad</string>\n    <string name=\"channel_new_chapters\">Nuevos capítulos</string>\n    <string name=\"secure_screen_summary\">Activando «pantalla segura» ocultas la vista previa del contenido de la ventana al cambiar de aplicación y se bloquean las capturas de pantalla</string>\n    <string name=\"pref_category_display\">Visualización</string>\n    <string name=\"notification_chapters_single\">Capítulo %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Capítulo %1$s y %2$d más</string>\n    <string name=\"notification_chapters_multiple\">Capítulos %1$s</string>\n    <string name=\"hide_notification_content\">Ocultar el contenido de las notificaciones</string>\n    <string name=\"pref_disable_battery_optimization\">Desactivar la optimización de batería</string>\n    <string name=\"email\">Correo electrónico</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Mejora la cadencia de las actualizaciones y las copias de respaldo que se hagan en segundo plano</string>\n    <string name=\"battery_optimization_disabled\">La optimización de la batería ya está desactivada</string>\n    <string name=\"pref_always_show_chapter_transition\">Hacer transición entre capítulos</string>\n    <string name=\"action_menu\">Menú</string>\n    <string name=\"action_newest\">Lo más nuevo</string>\n    <string name=\"action_oldest\">Lo más antiguo</string>\n    <string name=\"action_move_to_top\">Mover al principio</string>\n    <string name=\"action_move_to_bottom\">Mover al final</string>\n    <string name=\"updating_library\">Actualizando biblioteca</string>\n    <string name=\"channel_ext_updates\">Actualizaciones de extensiones</string>\n    <string name=\"pref_skip_filtered_chapters\">Saltar capítulos excluidos por filtros</string>\n    <string name=\"pref_category_reading\">Lectura</string>\n    <string name=\"label_sources\">Fuentes</string>\n    <string name=\"action_select_inverse\">Invertir selección</string>\n    <string name=\"vertical_plus_viewer\">Tira vertical discontinua</string>\n    <string name=\"pref_webtoon_side_padding\">Espaciado lateral</string>\n    <string name=\"pinned_sources\">Ancladas</string>\n    <string name=\"action_unpin\">Desanclar</string>\n    <string name=\"action_pin\">Anclar</string>\n    <string name=\"add_tracking\">Añadir seguimiento</string>\n    <string name=\"in_library\">En biblioteca</string>\n    <string name=\"add_to_library\">Añadir a la biblioteca</string>\n    <string name=\"information_webview_required\">Primero instala WebView para poder ver contenido de la aplicación</string>\n    <string name=\"manga_info_collapse\">Menos</string>\n    <string name=\"manga_info_expand\">Más</string>\n    <string name=\"licenses\">Licencias de código abierto</string>\n    <string name=\"website\">Página web</string>\n    <string name=\"label_downloaded_only\">Sólo ya descargados</string>\n    <string name=\"recent_manga_time\">Caps. %1$s-%2$s</string>\n    <string name=\"restoring_backup_canceled\">Se ha cancelado la restauración</string>\n    <string name=\"restoring_backup_error\">Ha fallado la restauración de la copia de respaldo</string>\n    <string name=\"restore_in_progress\">La restauración ya está en curso</string>\n    <string name=\"creating_backup_error\">No se han podido respaldar los datos</string>\n    <string name=\"backup_in_progress\">La copia de seguridad ya está en curso</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d seg</string>\n    <string name=\"last_used_source\">Usado recientemente</string>\n    <string name=\"check_for_updates\">Buscar actualizaciones</string>\n    <string name=\"local_source_help_guide\">Guía de fuente local</string>\n    <string name=\"downloaded_only_summary\">Filtra todos los elementos de tu biblioteca para ver solo los que estén disponibles sin conexión</string>\n    <string name=\"viewer\">Modo de lectura</string>\n    <string name=\"pref_category_for_this_series\">Para esta serie</string>\n    <string name=\"gray_background\">Gris</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">No se pudieron abrir los ajustes del dispositivo</string>\n    <string name=\"pref_refresh_library_covers\">Actualizar las portadas de la biblioteca</string>\n    <string name=\"tracking_info\">La sincronización de estos servicios solo funciona en un solo sentido. Cada título en tu biblioteca tiene un botón de seguimiento y tendrás que configurarlo a mano, uno a uno.</string>\n    <string name=\"label_data\">Datos</string>\n    <string name=\"backup_restore_missing_sources\">Fuentes que faltan:</string>\n    <string name=\"invalid_backup_file_missing_manga\">La copia de seguridad no contiene ningún título; la biblioteca está vacía.</string>\n    <string name=\"invalid_backup_file\">El archivo de copia de seguridad no parece estar bien:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Comprueba si hay una nueva portada, información y descripción al actualizar la biblioteca</string>\n    <string name=\"pref_library_update_refresh_metadata\">Actualizar automáticamente los metadatos</string>\n    <string name=\"action_display_comfortable_grid\">Cuadrícula amplia</string>\n    <string name=\"action_migrate\">Migrar</string>\n    <string name=\"tabs_header\">Pestañas</string>\n    <string name=\"action_display_show_tabs\">Mostrar pestañas de categorías</string>\n    <string name=\"page_list_empty_error\">No se encontraron páginas</string>\n    <string name=\"action_disable_all\">Desactivar todos</string>\n    <string name=\"action_enable_all\">Activar todos</string>\n    <string name=\"pref_show_reading_mode_summary\">Muestra brevemente el modo actual al abrir el visor</string>\n    <string name=\"pref_show_reading_mode\">Mostrar modo de lectura</string>\n    <string name=\"action_start\">Empezar</string>\n    <string name=\"loader_not_implemented_error\">No se ha encontrado la fuente</string>\n    <string name=\"action_disable\">Desactivar</string>\n    <string name=\"requires_app_restart\">Es necesario reiniciar la aplicación para que surta efecto</string>\n    <string name=\"label_network\">Red</string>\n    <string name=\"unknown_status\">Estado desconocido</string>\n    <string name=\"tapping_inverted_both\">Ambos</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"tapping_inverted_none\">No invertir</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invertir zonas de toque</string>\n    <string name=\"unknown_author\">Autor desconocido</string>\n    <string name=\"updated_version\">Actualizado a v%1$s</string>\n    <string name=\"whats_new\">Novedades</string>\n    <string name=\"download_insufficient_space\">No se pudo descargar ningún capítulo, queda muy poco espacio</string>\n    <string name=\"action_global_search_query\">Buscar por «%1$s» en todas las fuentes</string>\n    <string name=\"pref_category_reading_mode\">Modo de lectura</string>\n    <string name=\"pref_category_theme\">Esquema de colores</string>\n    <string name=\"action_sort_date_added\">Por antigüedad en la biblioteca</string>\n    <string name=\"no_pinned_sources\">Todavía no has anclado ninguna fuente</string>\n    <string name=\"channel_complete\">Terminadas</string>\n    <string name=\"channel_progress\">En progreso</string>\n    <string name=\"channel_errors\">Con errores</string>\n    <string name=\"backup_restore_missing_trackers\">Servicios de seguimiento sin conectar:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permitir el borrado de capítulos marcados como favoritos</string>\n    <string name=\"pref_category_delete_chapters\">Borrar capítulos</string>\n    <string name=\"ext_nsfw_warning\">Puede contener contenido para adultos (+18)</string>\n    <string name=\"ext_nsfw_short\">+18</string>\n    <string name=\"parental_controls_info\">Esto no evita que las extensiones extraoficiales o que estén mal clasificadas muestren contenido para mayores de 18 años en la aplicación.</string>\n    <string name=\"no_chapters_error\">No hay capítulos</string>\n    <string name=\"chapter_settings_updated\">Se han actualizado los ajustes predeterminados de capítulo</string>\n    <string name=\"set_chapter_settings_as_default\">Establecer como predeterminado</string>\n    <string name=\"also_set_chapter_settings_for_library\">Aplicar también a todos los elementos en mi biblioteca</string>\n    <string name=\"confirm_set_chapter_settings\">¿Seguro que quieres guardar estos ajustes como predeterminados?</string>\n    <string name=\"chapter_settings\">Ajustes de capítulo</string>\n    <string name=\"share_page_info\">%1$s: %2$s, página %3$d</string>\n    <string name=\"action_search_settings\">Ajustes de búsqueda</string>\n    <string name=\"downloaded_chapters\">Capítulos descargados</string>\n    <string name=\"manga_from_library\">En la biblioteca</string>\n    <string name=\"pref_incognito_mode_summary\">Pausa el historial de lectura</string>\n    <string name=\"pref_incognito_mode\">Modo incógnito</string>\n    <string name=\"pref_clear_history\">Borrar historial</string>\n    <string name=\"clear_history_confirmation\">¿Estás seguro? Perderás todo el historial.</string>\n    <string name=\"clear_history_completed\">Historial eliminado</string>\n    <string name=\"spen_next_page\">Siguiente página</string>\n    <string name=\"spen_previous_page\">Página anterior</string>\n    <string name=\"migration_help_guide\">Guía de migración de fuentes</string>\n    <string name=\"pref_category_nsfw_content\">Fuentes para adultos (+18)</string>\n    <string name=\"pref_show_nsfw_source\">Mostrar en la lista de fuentes y extensiones</string>\n    <string name=\"file_picker_error\">No se ha encontrado ninguna aplicación con la que elegir archivos</string>\n    <string name=\"myanimelist_relogin\">Vuelve a iniciar sesión en MAL</string>\n    <string name=\"kindlish_nav\">Estilo Kindle</string>\n    <string name=\"track_finished_reading_date\">Fecha de finalización</string>\n    <string name=\"track_started_reading_date\">Fecha de inicio</string>\n    <string name=\"pref_dump_crash_logs_summary\">Guarda los registros de errores en un archivo para compartirlos con los desarrolladores</string>\n    <string name=\"pref_dump_crash_logs\">Compartir los registros de fallos</string>\n    <string name=\"pref_viewer_nav\">Zonas de toque</string>\n    <string name=\"edge_nav\">Borde</string>\n    <string name=\"l_nav\">En forma de L</string>\n    <string name=\"action_desc\">Descendiente</string>\n    <string name=\"action_asc\">Ascendente</string>\n    <string name=\"action_order_by_chapter_number\">Por número de capítulo</string>\n    <string name=\"action_order_by_upload_date\">Por fecha de subida</string>\n    <string name=\"action_filter_tracked\">En seguimiento</string>\n    <string name=\"right_and_left_nav\">Derecha e izquierda</string>\n    <string name=\"backup_restore_content_full\">Tendrás que instalar las extensiones que falten e iniciar sesión en los servicios de seguimiento para poder usarlos.</string>\n    <string name=\"update_check_eol\">Esta versión de Android ya no es compatible</string>\n    <string name=\"clipboard_copy_error\">No se pudo copiar al portapapeles</string>\n    <string name=\"pref_dns_over_https\">DNS sobre HTTPS (DoH)</string>\n    <string name=\"pref_download_new_categories_details\">Los elementos de las categorías excluidas no se descargarán, aunque sí estén en alguna categoría con descargas.</string>\n    <string name=\"pref_category_auto_download\">Descarga automática</string>\n    <string name=\"rotation_landscape\">En horizontal</string>\n    <string name=\"rotation_portrait\">En vertical</string>\n    <string name=\"nav_zone_right\">Derecha</string>\n    <string name=\"nav_zone_left\">Izquierda</string>\n    <string name=\"nav_zone_next\">Siguiente</string>\n    <string name=\"nav_zone_prev\">Anterior</string>\n    <string name=\"pref_dual_page_invert_summary\">Si la partición de la página ancha no coincide con la dirección de lectura</string>\n    <string name=\"pref_dual_page_invert\">Dividir la página partida en la dirección contraria</string>\n    <string name=\"pref_dual_page_split\">Partir en dos las páginas anchas</string>\n    <string name=\"pref_show_navigation_mode_summary\">Muestra una vista previa de las zonas al abrir el visor</string>\n    <string name=\"pref_show_navigation_mode\">Ver superposición con zonas de toque</string>\n    <string name=\"exclude\">Excluir: %s</string>\n    <string name=\"include\">Incluir: %s</string>\n    <string name=\"none\">Ninguna</string>\n    <string name=\"pref_library_update_categories_details\">Los elementos en categorías excluidas no se actualizarán, aunque sí estén en alguna categoría con actualizaciones.</string>\n    <string name=\"action_show_errors\">Toca para ver los detalles</string>\n    <string name=\"action_display_show_number_of_items\">Mostrar el número de elementos</string>\n    <string name=\"action_sort_chapter_fetch_date\">Por fecha de obtención del capítulo</string>\n    <string name=\"rotation_type\">Tipo de rotación</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Crea carpetas según el título de la obra</string>\n    <string name=\"pref_create_folder_per_manga\">Guardar las páginas en carpetas independientes</string>\n    <string name=\"pref_reader_actions\">Acciones</string>\n    <string name=\"pref_grayscale\">Escala de grises</string>\n    <string name=\"restore_miui_warning\">Es posible que las funciones de copia de respaldo y restauración no funcionen correctamente si la opción «Optimización de MIUI» está desactivada.</string>\n    <string name=\"theme_midnightdusk\">Crepúsculo de medianoche</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri de fresa</string>\n    <string name=\"pref_dark_theme_pure_black\">Modo oscuro negro puro</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"restrictions\">Restricciones: %s</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin y yang</string>\n    <string name=\"theme_greenapple\">Manzana verde</string>\n    <string name=\"theme_monet\">Dinámico</string>\n    <string name=\"pref_app_theme\">Esquema de colores</string>\n    <string name=\"action_start_downloading_now\">Empezar la descarga</string>\n    <string name=\"cancel_all_for_series\">Cancelar todo para esta serie</string>\n    <string name=\"action_display_local_badge\">Contenido local</string>\n    <string name=\"about_dont_kill_my_app\">Algunos fabricantes restringen aún más ciertas aplicaciones y detienen sus servicios en segundo plano. Esta página web tiene más información sobre cómo solucionarlo.</string>\n    <string name=\"information_empty_category_dialog\">Todavía no existen categorías.</string>\n    <string name=\"error_no_match\">No se han encontrado coincidencias</string>\n    <string name=\"source_unsupported\">Fuente no soportada</string>\n    <string name=\"unread\">Sin leer</string>\n    <string name=\"error_sharing_cover\">Hubo un error al compartir la portada</string>\n    <string name=\"error_saving_cover\">Hubo un error al guardar la portada</string>\n    <string name=\"cover_saved\">Se ha guardado la portada</string>\n    <string name=\"manga_cover\">Portada</string>\n    <string name=\"date\">Fecha</string>\n    <string name=\"local_filter_order_by\">Ordenar por</string>\n    <string name=\"local_invalid_format\">El formato del capítulo no es correcto</string>\n    <string name=\"chapter_not_found\">No se ha encontrado el capítulo</string>\n    <string name=\"notification_incognito_text\">Desactivar el modo incógnito</string>\n    <string name=\"enhanced_tracking_info\">Ofrecen funciones mejoradas para ciertas fuentes. Se hace un seguimiento automático de los títulos al añadirlos a la biblioteca.</string>\n    <string name=\"enhanced_services\">Servicios de seguimiento mejorados</string>\n    <string name=\"tracking_guide\">Guía de seguimiento</string>\n    <string name=\"automatic_background\">Automático</string>\n    <string name=\"off\">No</string>\n    <string name=\"on\">Sí</string>\n    <string name=\"categorized_display_settings\">Establecer el tipo de orden para cada categoría</string>\n    <string name=\"label_background_activity\">Actividad en segundo plano</string>\n    <string name=\"action_track\">Seguir</string>\n    <string name=\"getting_started_guide\">Guía de introducción</string>\n    <string name=\"pref_tablet_ui_mode\">Interfaz de tableta</string>\n    <string name=\"pref_lowest\">Más baja</string>\n    <string name=\"pref_low\">Baja</string>\n    <string name=\"pref_high\">Alta</string>\n    <string name=\"pref_highest\">Más alta</string>\n    <string name=\"pref_hide_threshold\">Sensibilidad para ocultar automáticamente el menú al desplazarse</string>\n    <string name=\"pref_inverted_colors\">Invertir colores</string>\n    <string name=\"relative_time_today\">Hoy</string>\n    <string name=\"theme_tealturquoise\">Azul marino y turquesa</string>\n    <string name=\"pref_category_appearance\">Apariencia</string>\n    <string name=\"confirm_lock_change\">Identifícate para confirmar el cambio</string>\n    <string name=\"label_default\">Original</string>\n    <string name=\"pref_remove_exclude_categories\">Categorías excluidas</string>\n    <string name=\"help_translate\">Ayudar a traducir</string>\n    <string name=\"action_sort_count\">Por número total de elementos</string>\n    <string name=\"ext_installer_pref\">Instalador</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku no está activo</string>\n    <string name=\"ext_installer_legacy\">Clásico</string>\n    <string name=\"ext_install_service_notif\">Instalando extensión…</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instala e inicia Shizuku para utilizarlo como instalador de extensiones.</string>\n    <string name=\"ext_app_info\">Información de la aplicación</string>\n    <string name=\"pref_verbose_logging\">Registro detallado</string>\n    <string name=\"pref_verbose_logging_summary\">Mostrar registros detallados en el registro del sistema (reduce el rendimiento de la aplicación)</string>\n    <string name=\"label_warning\">Advertencia</string>\n    <string name=\"notification_size_warning\">Las actualizaciones grandes pueden implicar un mayor uso de la batería y que los distintos servicios bloqueen o ralenticen el acceso a tu dispositivo. Toca aquí para más información.</string>\n    <string name=\"action_display_language_badge\">Idioma</string>\n    <string name=\"backup_info\">Es una buena idea tener copias de respaldo fuera de tu dispositivo. Ten en cuenta que incluyen contraseñas y otros datos privados que seguramente no quieras compartir.</string>\n    <string name=\"connected_to_wifi\">Solo con Wi-Fi</string>\n    <string name=\"update_72hour\">Cada 3 días</string>\n    <string name=\"download_queue_size_warning\">Advertencia: Las descargas grandes pueden llevar a que las fuentes se vuelvan cada vez más lentas y en casos extremos que los servidores limiten o impidan el acceso a %s. Toca aquí para más información.</string>\n    <string name=\"ext_update_all\">Actualizar todas</string>\n    <string name=\"channel_app_updates\">Actualizaciones de la aplicación</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Limpiar la caché de capítulos al abrir la aplicación</string>\n    <string name=\"database_clean\">Base de datos limpia</string>\n    <string name=\"clear_database_source_item_count\">%1$d títulos que no pertenecen a la biblioteca en la base de datos</string>\n    <string name=\"extension_api_error\">No se han podido obtener las extensiones disponibles</string>\n    <string name=\"privacy_policy\">Política de privacidad</string>\n    <string name=\"pref_update_only_completely_read\">Saltarse títulos con capítulos por leer</string>\n    <string name=\"library_errors_help\">Si necesitas ayuda para resolver los errores de actualización de la biblioteca mira en %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Guardar como archivo CBZ</string>\n    <string name=\"on_hiatus\">En pausa</string>\n    <string name=\"publishing_finished\">Publicación finalizada</string>\n    <string name=\"cancelled\">Cancelada</string>\n    <string name=\"action_show_manga\">Ver la obra</string>\n    <string name=\"pref_navigate_pan\">Desplazarse por el resto de la página antes de cambiar</string>\n    <string name=\"action_display_cover_only_grid\">Cuadrícula sólo de portadas</string>\n    <string name=\"pref_landscape_zoom\">Acercar la vista en horizontal</string>\n    <string name=\"pref_update_only_started\">Saltarse títulos sin empezar</string>\n    <string name=\"skipped_reason_completed\">Omitido, ya que su publicación ha terminado</string>\n    <string name=\"skipped_reason_not_caught_up\">Omitido porque todavía hay capítulos sin leer</string>\n    <string name=\"skipped_reason_not_started\">Omitido porque no hay capítulos leídos</string>\n    <string name=\"learn_more\">Ver más detalles</string>\n    <string name=\"notification_update_error\">Actualizaciones fallidas: %1$d</string>\n    <string name=\"rotation_reverse_portrait\">En vertical, al revés</string>\n    <string name=\"action_move_to_top_all_for_series\">Mover al primer puesto</string>\n    <string name=\"disabled_nav\">Desactivado</string>\n    <string name=\"error_saving_picture\">No se ha podido guardar la imagen</string>\n    <string name=\"empty_backup_error\">No hay ningún elemento en la biblioteca que respaldar</string>\n    <string name=\"update_check_open\">Abrir en GitHub</string>\n    <string name=\"webview_data_deleted\">Se han limpiado los datos del WebView</string>\n    <string name=\"pref_clear_webview_data\">Limpiar datos del WebView</string>\n    <string name=\"action_close\">Cerrar</string>\n    <string name=\"source_filter_empty_screen\">Todavía no se ha instalado ninguna fuente</string>\n    <string name=\"source_empty_screen\">No se ha encontrado ninguna fuente</string>\n    <string name=\"action_sort_last_manga_update\">Por última comprobación de actualizaciones</string>\n    <string name=\"action_sort_unread_count\">Por capítulos restantes</string>\n    <string name=\"split_tall_images_summary\">Mejora el rendimiento del visor, dividiendo páginas descargadas mucho más altas que anchas</string>\n    <string name=\"download_notifier_split_page_not_found\">No se ha encontrado la página %d al dividir</string>\n    <string name=\"download_notifier_split_page_path_not_found\">La ruta al archivo de la página %d no se encuentra</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Restablece el modo de lectura y orientación en toda la biblioteca</string>\n    <string name=\"pref_reset_viewer_flags_success\">Se han restablecido los ajustes del visor</string>\n    <string name=\"pref_reset_viewer_flags\">Restablecer los ajustes del visor en cada serie</string>\n    <string name=\"pref_reset_viewer_flags_error\">No se pudieron restablecer los ajustes del visor</string>\n    <string name=\"empty_screen\">Houston, tenemos un problema</string>\n    <string name=\"ext_info_version\">Versión</string>\n    <string name=\"ext_info_language\">Idioma</string>\n    <string name=\"ext_info_age_rating\">Clasificación por edades</string>\n    <string name=\"reading_list\">Leyendo</string>\n    <string name=\"wish_list\">A leer en un futuro</string>\n    <string name=\"complete_list\">Leídos del todo</string>\n    <string name=\"on_hold_list\">En pausa</string>\n    <string name=\"unfinished_list\">Sin terminar</string>\n    <string name=\"network_not_metered\">Solo en conexiones no medidas</string>\n    <string name=\"cant_open_last_read_chapter\">No se pudo abrir el último capítulo leído</string>\n    <string name=\"custom_cover\">Portada personalizada</string>\n    <string name=\"not_installed\">Sin instalar</string>\n    <string name=\"pref_app_language\">Idioma de la aplicación</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"description_placeholder\">Sin descripción</string>\n    <string name=\"delete_category\">Borrar categoría</string>\n    <string name=\"delete_category_confirmation\">¿Quieres borrar la categoría «%s»?</string>\n    <string name=\"internal_error\">InternalError: Mira el registro de depuración para más información</string>\n    <string name=\"pref_user_agent_string\">Identificarse como otro navegador web («user agent»)</string>\n    <string name=\"pref_reset_user_agent_string\">Volver a la identificación de navegador («user agent») original</string>\n    <string name=\"action_remove_everything\">Quitar todo</string>\n    <string name=\"appwidget_updates_description\">Aquí aparecerá el contenido más reciente de tu biblioteca</string>\n    <string name=\"appwidget_unavailable_locked\">El widget no está disponible cuando el bloqueo de aplicación está activo</string>\n    <string name=\"update_already_running\">Ya se está actualizando</string>\n    <string name=\"theme_tidalwave\">Marea</string>\n    <string name=\"error_user_agent_string_blank\">La cadena con el agente de usuario («user agent») no puede estar vacía</string>\n    <string name=\"download_ahead_info\">Solo funciona si el capítulo actual y el que va después ya están descargados.</string>\n    <string name=\"download_ahead\">Descargar por adelantado</string>\n    <string name=\"auto_download_while_reading\">Descargar los siguientes capítulos mientras lees</string>\n    <string name=\"are_you_sure\">¿Estás seguro?</string>\n    <string name=\"updates_last_update_info\">La biblioteca se actualizó: %s</string>\n    <string name=\"remove_manga\">Estás a punto de borrar «%s» de tu biblioteca</string>\n    <string name=\"popular\">Populares</string>\n    <string name=\"multi_lang\">Varios idiomas</string>\n    <string name=\"missing_storage_permission\">No se han concedido los permisos de almacenamiento</string>\n    <string name=\"skipped_reason_not_always_update\">Omitido, ya que no es necesario actualizarse</string>\n    <string name=\"action_search_hint\">Buscar…</string>\n    <string name=\"pref_tracking_summary\">Sincroniza tu progreso de lectura; unidireccional o mejorada</string>\n    <string name=\"pref_downloads_summary\">Descargas automáticas y por adelantado</string>\n    <string name=\"pref_library_summary\">Categorías, actualizaciones generales y acciones al deslizar el dedo</string>\n    <string name=\"crash_screen_description\">%s se ha cerrado por un problema inesperado. Te sugerimos que compartas todos tus registros de depuración, enviándolos a nuestro canal de apoyo en Discord, en inglés.</string>\n    <string name=\"pref_reader_summary\">Modos de lectura, apariencia y navegación</string>\n    <string name=\"pref_appearance_summary\">Colores de la interfaz y formatos de fecha</string>\n    <string name=\"pref_advanced_summary\">Informes de fallos y ahorro de batería</string>\n    <string name=\"pref_security_summary\">Pantalla segura y desbloqueo biométrico</string>\n    <string name=\"pref_backup_summary\">Copias de seguridad manuales y automáticas, almacenamiento</string>\n    <string name=\"pref_browse_summary\">Fuentes, extensiones y búsqueda global</string>\n    <string name=\"crash_screen_title\">¡Vaya!</string>\n    <string name=\"crash_screen_restart_application\">Reiniciar la aplicación</string>\n    <string name=\"unknown_title\">Título desconocido</string>\n    <string name=\"invalid_location\">Ubicación incorrecta: %s</string>\n    <string name=\"updates_last_update_info_just_now\">Ahora mismo</string>\n    <string name=\"error_user_agent_string_invalid\">La cadena con el agente de usuario («user agent») no parece ser correcta</string>\n    <string name=\"download_notifier_cache_renewal\">Reindexando descargas</string>\n    <string name=\"action_open_random_manga\">Abrir un elemento al azar</string>\n    <string name=\"information_no_entries_found\">Parece que esta categoría está vacía</string>\n    <string name=\"fdroid_warning\">No damos soporte oficial a las versiones de F-Droid.\n\\nToca para más información.</string>\n    <string name=\"action_display_show_continue_reading_button\">Mostrar el botón de seguir leyendo</string>\n    <string name=\"track_remove_start_date_conf_text\">Al hacer esto %s ya no aparecerá como empezado ese día</string>\n    <string name=\"track_remove_date_conf_title\">¿Quieres quitar esta fecha?</string>\n    <string name=\"track_remove_finish_date_conf_text\">Al hacer esto %s ya no aparecerá como terminado ese día</string>\n    <string name=\"pref_invalidate_download_cache\">Reconstruir el índice de descargas</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Forzar a la aplicación a volver a comprobar los capítulos descargados</string>\n    <string name=\"label_started\">Empezados</string>\n    <string name=\"label_local\">En el dispositivo</string>\n    <string name=\"label_completed_titles\">Leídos del todo</string>\n    <string name=\"label_read_duration\">Tiempo de lectura</string>\n    <string name=\"label_read_chapters\">Leídos</string>\n    <string name=\"label_tracker_section\">Con seguimiento</string>\n    <string name=\"label_total_chapters\">En total</string>\n    <string name=\"label_titles_in_global_update\">Actualizados de forma global</string>\n    <string name=\"label_mean_score\">Puntuación media</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"label_used\">En uso</string>\n    <string name=\"not_applicable\">N/D</string>\n    <string name=\"label_tracked_titles\">En servicios de seguimiento</string>\n    <string name=\"label_downloaded\">Descargados</string>\n    <string name=\"label_stats\">Estadísticas</string>\n    <string name=\"label_overview_section\">Resumen</string>\n    <string name=\"label_titles_section\">Títulos</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_not_now\">Ahora no</string>\n    <string name=\"information_no_manga_category\">La categoría está vacía</string>\n    <string name=\"pref_library_update_show_tab_badge\">Ver número de capítulos por leer en el icono de actualizaciones</string>\n    <string name=\"copied_to_clipboard_plain\">Se ha copiado al portapapeles</string>\n    <string name=\"pref_skip_dupe_chapters\">Saltarse los capítulos repetidos</string>\n    <string name=\"enhanced_services_not_installed\">Están disponibles, pero las fuentes todavía no se han instalado: %s</string>\n    <string name=\"track_error\">%1$s error: %2$s</string>\n    <string name=\"information_required_plain\">*necesaria</string>\n    <string name=\"pref_hide_in_library_items\">Saltar elementos que ya estén en la biblioteca</string>\n    <string name=\"action_copy_to_clipboard\">Copiar al portapapeles</string>\n    <string name=\"action_update_category\">Actualizar categoría</string>\n    <string name=\"split_tall_images\">Dividir las imágenes altas</string>\n    <string name=\"overlay_header\">Superposición</string>\n    <string name=\"pref_page_rotate\">Girar las páginas anchas para adaptarlas a la pantalla</string>\n    <string name=\"pref_page_rotate_invert\">Girar las páginas anchas en la dirección opuesta</string>\n    <string name=\"pref_debug_info\">Información de depuración</string>\n    <string name=\"pref_chapter_swipe_start\">Al deslizar a la izquierda en un capítulo</string>\n    <string name=\"pref_chapter_swipe_end\">Al deslizar a la derecha en un capítulo</string>\n    <string name=\"pref_double_tap_zoom\">Ampliar tocando dos veces la pantalla</string>\n    <string name=\"action_sort_next_updated\">Próxima actualización prevista</string>\n    <string name=\"pref_update_only_in_release_period\">Intentar predecir cuándo sale el siguiente número</string>\n    <string name=\"intervals_header\">Intervalos</string>\n    <string name=\"manga_display_interval_title\">Estimar cada</string>\n    <string name=\"manga_display_modified_interval_title\">Forzar actualización cada</string>\n    <string name=\"skipped_reason_not_in_release_period\">No se ha comprobado ninguna actualización hoy al no prever ninguna</string>\n    <string name=\"action_set_interval\">Establecer intervalo</string>\n    <string name=\"action_filter_interval_custom\">Frecuencia de actualización personalizada</string>\n    <string name=\"action_ok\">Aceptar</string>\n    <string name=\"track_delete_title\">¿Quieres desvincular %s?</string>\n    <string name=\"track_delete_text\">Esto eliminará el seguimiento localmente.</string>\n    <string name=\"track_delete_remote_text\">Quitar también de %s</string>\n    <string name=\"delete_downloaded\">Borrar los ya descargados</string>\n    <string name=\"has_results\">Con resultados</string>\n    <string name=\"library_sync_complete\">La biblioteca se ha sincronizado correctamente</string>\n    <string name=\"syncing_library\">Sincronizando la biblioteca</string>\n    <string name=\"information_cloudflare_help\">Toca aquí para solucionar problemas de acceso con Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Reconstruyendo el índice de descargas</string>\n    <string name=\"track_activity_name\">Iniciar sesión en el servicio</string>\n    <string name=\"create_backup_file_error\">No se ha podido crear un archivo de respaldo</string>\n    <string name=\"exception_unknown_host\">«%s» no parece estar disponible</string>\n    <string name=\"exception_http\">HTTP %d, prueba abriendo la página web en WebView</string>\n    <string name=\"exception_offline\">Sin conexión a Internet</string>\n    <string name=\"unlock_app_title\">Desbloquear %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Mover al último puesto</string>\n    <string name=\"pref_relative_format\">Marcas de tiempo relativas</string>\n    <string name=\"pref_relative_format_summary\">«%1$s» en vez de «%2$s»</string>\n    <string name=\"notification_updating_progress\">Actualizando biblioteca... (%s)</string>\n    <string name=\"source_settings\">Ajustes de la fuente</string>\n    <string name=\"app_settings\">Ajustes de la aplicación</string>\n    <string name=\"file_null_uri_error\">No has elegido ningún archivo</string>\n    <string name=\"relative_time_span_never\">Nunca</string>\n    <string name=\"pref_flash_page_summ\">Esta transición minimiza las manchas y el efecto de retención de imagen en pantallas de tinta electrónica</string>\n    <string name=\"last_auto_backup_info\">Última copia automática: %s</string>\n    <string name=\"pref_flash_page\">Parpadear a blanco al cambiar de página</string>\n    <string name=\"label_data_storage\">Datos y almacenamiento</string>\n    <string name=\"pref_storage_usage\">Almacenamiento utilizado</string>\n    <string name=\"action_sort_tracker_score\">Por puntuación en el servicio de seguimiento</string>\n    <string name=\"action_apply\">Aplicar</string>\n    <string name=\"action_revert_to_default\">Restablecer vista</string>\n    <string name=\"action_create\">Crear</string>\n    <string name=\"no_scanlators_found\">No se ha encontrado ningún equipo de traducción</string>\n    <string name=\"scanlator\">Equipo de traducción</string>\n    <string name=\"exclude_scanlators\">Excluir equipo de traducción</string>\n    <string name=\"selected\">Seleccionado</string>\n    <string name=\"not_selected\">Sin seleccionar</string>\n    <string name=\"action_menu_overflow_description\">Más opciones</string>\n    <string name=\"action_bar_up_description\">Subir un nivel</string>\n    <string name=\"pref_storage_location\">Ubicación del almacenamiento</string>\n    <string name=\"pref_storage_location_info\">Se utiliza para las copias de seguridad automáticas, poder descargar capítulos y abrir los que ya tengas en tu dispositivo.</string>\n    <string name=\"onboarding_storage_action_select\">Elige una carpeta</string>\n    <string name=\"pref_onboarding_guide\">Guía para principiantes</string>\n    <string name=\"onboarding_guides_new_user\">¿Es la primera vez que instalas %s? Te recomendamos leer la guía de principiantes.</string>\n    <string name=\"onboarding_action_finish\">Comenzar</string>\n    <string name=\"onboarding_storage_selection_required\">Tienes que elegir una carpeta</string>\n    <string name=\"onboarding_heading\">¡Hola!</string>\n    <string name=\"onboarding_guides_returning_user\">¿No es la primera vez que instalas %s?</string>\n    <string name=\"onboarding_action_skip\">Saltar</string>\n    <string name=\"onboarding_action_next\">Siguiente</string>\n    <string name=\"onboarding_description\">Lo primero de todo es dejar las cosas a tu gusto. Siempre puedes volver a cambiarlas más tarde en los ajustes.</string>\n    <string name=\"no_location_set\">Todavía no has proporcionado ninguna carpeta</string>\n    <string name=\"onboarding_storage_info\">Elige una carpeta donde %1$s pueda guardar capítulos descargados, copias de seguridad y otras cosas.\\n\\nTe recomendamos que sea solo y exclusivamente para %1$s.\\n\\nCarpeta seleccionada: %2$s</string>\n    <string name=\"onboarding_permission_install_apps\">Permiso para instalar aplicaciones</string>\n    <string name=\"onboarding_permission_notifications\">Permitir notificaciones</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Previene cortes y retrasos al procesar tareas en segundo plano que tarden un poco; como al buscar y descargar contenido nuevo, así como al restaurar copias de respaldo.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Uso de batería en segundo plano</string>\n    <string name=\"onboarding_permission_install_apps_description\">Para poder instalar extensiones que te dejen encontrar y descargar contenido.</string>\n    <string name=\"onboarding_permission_notifications_description\">Recibe notificaciones cuando aparece contenido nuevo en tu biblioteca y otras cosas.</string>\n    <string name=\"onboarding_permission_action_grant\">Conceder</string>\n    <string name=\"available_disk_space_info\">Disponible: %1$s / Total: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">Toca aquí para conceder los permisos necesarios para instalar extensiones.</string>\n    <string name=\"private_settings\">Incluir datos privados, como las claves de inicio de sesión en plataformas de seguimiento</string>\n    <string name=\"invalid_backup_file_error\">Descripción completa del problema:</string>\n    <string name=\"manga_interval_expected_update\">Se espera que el siguiente número salga en aproximadamente %1$s, la aplicación busca actualizaciones cada %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Frecuencia de actualización personalizada:</string>\n    <string name=\"error_repo_exists\">¡Este repositorio ya existe!</string>\n    <string name=\"pref_library_update_smart_update\">Actualizaciones inteligentes</string>\n    <string name=\"invalid_repo_name\">La dirección URL del repositorio no parece ser correcta</string>\n    <string name=\"action_add_repo_message\">Añade más repositorios a %s; la dirección URL tiene que terminar en «index.min.json».</string>\n    <string name=\"delete_repo_confirmation\">¿Seguro que quieres borrar el repositorio «%s»?</string>\n    <string name=\"action_delete_repo\">Borrar repositorio</string>\n    <string name=\"action_add_repo\">Añadir un repositorio</string>\n    <string name=\"information_empty_repos\">Todavía no has añadido ningún repositorio.</string>\n    <string name=\"label_extension_repos\">Repositorios de extensiones</string>\n    <string name=\"label_add_repo_input\">Dirección URL del repositorio</string>\n    <string name=\"onboarding_storage_help_info\">¿Acabas de actualizar desde una versión más antigua y no sabes qué hacer? Échale un vistazo a la guía de almacenamiento.</string>\n    <string name=\"onboarding_storage_help_action\">Guía de almacenamiento</string>\n    <string name=\"theme_nord\">Norteño</string>\n    <string name=\"manga_interval_expected_update_soon\">Pronto</string>\n    <string name=\"ext_revoke_trust\">Dejar de marcar todas la extensiones desconocidas como de confianza</string>\n    <string name=\"action_open_repo\">Abrir repositorio</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Desactivar alejar</string>\n    <string name=\"pref_display_profile\">Perfil de visualización personalizado</string>\n    <string name=\"action_add_anyway\">Añadir de todos modos</string>\n    <string name=\"action_replace_repo\">Reemplazar</string>\n    <string name=\"action_replace_repo_title\">Ya hay una huella digital de la clave de firma</string>\n    <string name=\"action_replace_repo_message\">El repositorio %1$s tiene la misma huella digital de la clave de firma que %2$s.\\nSi ya contabas con ello y te parece bien se reemplazará %2$s. De lo contrario habla con la persona a cargo de este repositorio.</string>\n    <string name=\"label_upcoming\">Próximamente</string>\n    <string name=\"action_view_upcoming\">Ver las próximas actualizaciones</string>\n    <string name=\"upcoming_guide\">Próxima guía</string>\n    <string name=\"upcoming_calendar_next\">Próximo mes</string>\n    <string name=\"upcoming_calendar_prev\">Mes anterior</string>\n    <string name=\"file_picker_uri_permission_unsupported\">No se ha podido obtener un acceso continuo a la carpeta, por lo que la aplicación puede fallar de vez en cuando.</string>\n    <string name=\"pref_flash_page_interval\">Parpadear cada</string>\n    <string name=\"pref_flash_with\">Parpadear a</string>\n    <string name=\"pref_flash_style_white\">Blanco</string>\n    <string name=\"pref_flash_style_white_black\">Blanco y negro</string>\n    <string name=\"pref_flash_style_black\">Negro</string>\n    <string name=\"pref_flash_duration\">Duración</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"manga_interval_expected_update_null\">Este manga está terminado o no hay fecha de publicación prevista.</string>\n    <string name=\"invalid_backup_file_json\">Copia de seguridad JSON no compatible</string>\n    <string name=\"invalid_backup_file_unknown\">El archivo de la copia de seguridad está dañado</string>\n    <string name=\"extensionRepo_settings\">Repositorios de extensiones</string>\n    <string name=\"action_copy_link\">Copiar el enlace</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Omitir la descarga de capítulos duplicados y ya leídos</string>\n    <string name=\"add_repo_confirmation\">¿Quieres añadir el repositorio «%s»?</string>\n    <string name=\"confirm_tracker_update\">¿Marcar el capítulo %d como leído en los servicios de seguimiento?</string>\n    <string name=\"action_sort_random\">Al azar</string>\n    <string name=\"onboarding_permission_crashlytics\">Enviar registros de errores</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Envía registros anónimos de errores a los desarrolladores.</string>\n    <string name=\"pref_security\">Seguridad</string>\n    <string name=\"ext_remove\">Eliminar</string>\n    <string name=\"ext_confirm_remove\">¿Quieres quitar la extensión?</string>\n    <string name=\"remove_private_extension_message\">¿Seguro que quieres quitar la extensión «%s»?</string>\n    <string name=\"firebase_summary\">El envío de registros de errores y estadísticas de uso nos permitirá identificar y solucionar problemas, mejorar el rendimiento y hacer que las versiones futuras se adapten mejor a tus necesidades</string>\n    <string name=\"onboarding_permission_analytics\">Enviar estadísticas de uso</string>\n    <string name=\"onboarding_permission_analytics_description\">Comparte estadísticas de uso con las que mejorar la aplicación.</string>\n    <string name=\"pref_firebase\">Informar de errores y compartir datos</string>\n    <string name=\"non_library_settings\">Todas las obras leídas</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Actualizar el progreso al marcarlo como leído</string>\n    <string name=\"trackers_updated_summary\">El progreso de lectura ha saltado al capítulo %d</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Predeterminado (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Elegir un tamaño máximo con el que decodificar imágenes por hardware</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Si el visor carga una página en blanco te recomendamos ir reduciéndolo poco a poco hasta que funcione.\\nLímite actual: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Empeora el rendimiento, te recomendamos activarlo solo si la imagen sigue sin verse al reducir el tamaño máximo</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pausa el historial de lectura para las obras que dependan de esta extensión</string>\n    <string name=\"tracked_privately\">Seguimiento privado</string>\n    <string name=\"label_auto\">Automático</string>\n    <string name=\"theme_monochrome\">Monocromo</string>\n    <string name=\"export\">Exportar</string>\n    <string name=\"library_exported\">La biblioteca se ha exportado</string>\n    <string name=\"library_list\">Elementos en la biblioteca</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"action_toggle_private_off\">Seguir públicamente</string>\n    <string name=\"action_toggle_private_on\">Seguir de forma privada</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Cargar imágenes de tira vertical con el decodificador antiguo</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marcar capítulos duplicados como ya leídos</string>\n    <string name=\"action_display_unread_badge\">Capítulos por leer</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Al obtener capítulos nuevos</string>\n    <string name=\"pref_behavior\">Comportamiento</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Al terminar de leer un capítulo</string>\n    <string name=\"action_edit_notes\">Editar notas</string>\n    <string name=\"action_notes\">Notas</string>\n    <string name=\"notes_placeholder\">Me gustó la parte en la que…</string>\n    <string name=\"possible_duplicates_title\">Posibles duplicados</string>\n    <string name=\"possible_duplicates_summary\">Ya tienes otras obras en tu biblioteca con ese mismo nombre.\\n\\nElige una de ellas para empezar la migración o añadirla sin más.</string>\n    <string name=\"pref_update_library_manga_titles\">Actualizar los títulos para que coincidan con los de la fuente</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Cuidado: si se cambia el nombre también se borrará de la cola de descargas (si está ahí).</string>\n    <string name=\"logging_in\">Iniciando sesión…</string>\n    <string name=\"clear_db_exclude_read\">Conservar obras con capítulos leídos</string>\n    <string name=\"clear_database_history_warning\">Perderás los capítulos leídos y el progreso de lectura de las obras que no estén en tu biblioteca</string>\n    <string name=\"storage_failed_to_create_directory\">No se pudo crear la carpeta: %s</string>\n    <string name=\"storage_failed_to_create_download_directory\">No se pudo crear la carpeta de descarga</string>\n    <string name=\"clear_database_text\">Estás a punto de borrar elementos de tu base de datos</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Continuar</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Seleccionar todo</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponibles</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Elegidos</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Cancelar selección</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Selec. fuentes ancladas</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Selec. fuentes activas</string>\n    <string name=\"theme_catppuccin\">Miaupuchino</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Borrar las descargas del título actual tras la migración</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Los ajustes de aquí abajo pueden hacer que funcione más lento y te bloqueen de forma temporal las fuentes en línea</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Datos que migrar</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Otras claves de búsqueda (opcional)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Afina la búsqueda añadiendo más claves</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Ocultar los títulos que no coincidan</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Ocultar si no tiene capítulos nuevos</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Solo mostrarlo si este tiene capítulos nuevos</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Modo de búsqueda avanzada</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Amplía la búsqueda al buscar las palabras del título por separado, sin ser una coincidencia exacta</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Buscar coincidencias basadas en el número de capítulo</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrar</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Último: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Desconocido</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Búsqueda manual</string>\n    <string name=\"migrationListScreen.skipActionLabel\">No migrar</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copiar ahora</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">¿Parar la migración?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Parar</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Cancelar</string>\n    <string name=\"migrationListScreenTitle\">Migración</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">No se ha encontrado ningún capítulo, por lo que no se puede utilizar para migrar</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrar</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Al activarlo elige la coincidencia mayor, si no elige la primera que encuentre por prioridad de fuente.</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Cancelar</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copiar</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Cancelar</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copiar</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">No se encontraron títulos alternativos</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migrando (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrar ahora</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Ocultar los indicadores de capítulos que falten</string>\n    <string name=\"label_donate\">Donar</string>\n    <string name=\"pref_display_images_description\">Ver imágenes en las descripciones de manga</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Prohibir los nombres de archivo que no sean ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Permite guardar tus datos en ciertos tipos de almacenamiento que no admitan Unicode. Al activarlo tendrás que renombrar las carpetas de tus fuentes y manga, pasándolas a representaciones UTF-8 en hexadecimal en minúscula. No tienes que hacer lo mismo con las carpetas de capítulos.</string>\n    <string name=\"pref_download_concurrent_sources\">Descarga simultánea desde fuentes</string>\n    <string name=\"pref_download_concurrent_pages\">Descarga simultánea de páginas</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Cantidad de páginas a descargar simultáneamente desde cada fuente remota</string>\n    <string name=\"action_webview_close_tab\">Cerrar pestaña</string>\n    <string name=\"action_filter_excluded_scanlators\">Ocultar equipos de traducción excluidos</string>\n    <string name=\"calculating\">Calculando…</string>\n    <string name=\"download_bookmarked\">Favoritos</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/eu/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s-n egin da errore %2$s-ekin</item>\n        <item quantity=\"other\">%1$s-n egin da %2$s errorerekin</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Atzo</item>\n        <item quantity=\"other\">Duela %1$d egun</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Minutu baten ostean</item>\n        <item quantity=\"other\">%1$s minuturen ostean</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Kapitulu bat saltatzen, iturria falta da edo iragazia izan da</item>\n        <item quantity=\"other\">%d kapitulu saltatzen, iturria falta da edo iragaziak izan dira</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Titulu baterako</item>\n        <item quantity=\"other\">%d titulurako</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">1 geratzen da</item>\n        <item quantity=\"other\">%1$s geratzen dira</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">kategoria %d</item>\n        <item quantity=\"other\">%d kategoria</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">kapitulu 1</item>\n        <item quantity=\"other\">%1$s kapitulu</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">jarraitzaile 1</item>\n        <item quantity=\"other\">%d jarraitzaile</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">Kapitulu berri bat</item>\n        <item quantity=\"other\">%1$d kapitulu berri</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Luzapen baten eguneraketa eskuragarri</item>\n        <item quantity=\"other\">%d luzapenen eguneraketak eskuragarri</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">%1$s kapituluak eta bat gehiago</item>\n        <item quantity=\"other\">%1$s kapituluak eta %2$d gehiago</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/eu/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"no_chapters_error\">Ez dira kapitulurik aurkitu</string>\n    <string name=\"picture_saved\">Irudia gorde da</string>\n    <string name=\"channel_errors\">Erroreak</string>\n    <string name=\"unknown_error\">Akats ezezaguna</string>\n    <string name=\"ongoing\">Argitaratzen</string>\n    <string name=\"unknown\">Ezezaguna</string>\n    <string name=\"updating_library\">Liburutegia eguneratzen</string>\n    <string name=\"getting_started_guide\">Hasiberrientzako gida</string>\n    <string name=\"manga\">Manga</string>\n    <string name=\"chapters\">Kapituluak</string>\n    <string name=\"categories\">Kategoriak</string>\n    <string name=\"name\">Izena</string>\n    <string name=\"history\">Historiala</string>\n    <string name=\"lock_when_idle\">Blokeatu geldi geratzean</string>\n    <string name=\"default_category\">Kategoria lehentsia</string>\n    <string name=\"licensed\">Lizentziatua</string>\n    <string name=\"chapter_not_found\">Kapitulua ez da aurkitu</string>\n    <string name=\"loading\">Kargatzen…</string>\n    <string name=\"charging\">Telefonoa kargatzen</string>\n    <string name=\"title\">Titulua</string>\n    <string name=\"completed\">Bukatua</string>\n    <string name=\"unread\">Irakurri gabea</string>\n    <string name=\"l_nav\">L formakoa</string>\n    <string name=\"kindlish_nav\">Kindle erakoa</string>\n    <string name=\"edge_nav\">Egde erakoa</string>\n    <string name=\"right_and_left_nav\">Ezkerra eta eskuma</string>\n    <string name=\"none\">Ezer ez</string>\n    <string name=\"browse\">Arakatu</string>\n    <string name=\"local_source_help_guide\">Iturri lokalen gida</string>\n    <string name=\"no_results_found\">Ez dira emaitzarik aurkitu</string>\n    <string name=\"local_source\">Iturri lokala</string>\n    <string name=\"latest\">Azkenak</string>\n    <string name=\"no_more_results\">Ez dago emaitza gehiagorik</string>\n    <string name=\"download_queue_size_warning\">Abisua: deskarga handiek iturriak motelagoak izatea eta/edo %s blokeatzea ekar dezakete.</string>\n    <string name=\"creating_backup\">Babeskopia sortzen</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d seg</string>\n    <string name=\"add_tracking\">Gehitu jarraipena</string>\n    <string name=\"cache_delete_error\">Errore bat gertatu da cachea garbitzean</string>\n    <string name=\"backup_created\">Babeskopia sortu da</string>\n    <string name=\"restoring_backup\">Babeskopiatik berreskuratzen</string>\n    <string name=\"battery_optimization_disabled\">Bateriaren optimizazioa desgaituta dago dagoeneko</string>\n    <string name=\"cover_saved\">Azala gorde da</string>\n    <string name=\"cover_updated\">Azala eguneratu da</string>\n    <string name=\"clear_database_completed\">Sarrerak ezabatu dira</string>\n    <string name=\"migrate\">Migratu</string>\n    <string name=\"set_as_cover\">Ezarri azal gisa</string>\n    <string name=\"remove_from_library\">Kendu liburutegitik</string>\n    <string name=\"services\">Zerbitzuak</string>\n    <string name=\"check_for_updates\">Bilatu eguneraketak</string>\n    <string name=\"source_unsupported\">Iturria ez dago onartua</string>\n    <string name=\"restoring_backup_canceled\">Berreskuratzea bertan behera utzi da</string>\n    <string name=\"restore_miui_warning\">Baliteke babeskopiak/berreskuratzeak behar bezala ez funtzionatzea MIUI optimizazioa desgaituta badago.</string>\n    <string name=\"requires_app_restart\">Aplikazioa berrabiarazi behar da indarrean jartzeko</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instalatu eta abiarazi Shizuku luzapen instalatzaile gisa erabiltzeko.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ez dago martxan</string>\n    <string name=\"restore_completed\">Berreskuratu egin da</string>\n    <string name=\"cookies_cleared\">Cookieak garbitu dira</string>\n    <string name=\"dropped\">Alde batera utzia</string>\n    <string name=\"status\">Egoera</string>\n    <string name=\"untrusted_extension\">Fidagarria ez den luzapena</string>\n    <string name=\"obsolete_extension_message\">Luzapen hau jada ez dago eskuragarri.</string>\n    <string name=\"disabled\">Desgaitua</string>\n    <string name=\"invalid_backup_file\">Babeskopia fitxategi baliogabea</string>\n    <string name=\"label_backup\">Babeskopia egin eta leheneratu</string>\n    <string name=\"label_migration\">Migratu</string>\n    <string name=\"label_extensions\">Luzapenak</string>\n    <string name=\"label_extension_info\">Luzapenaren informazioa</string>\n    <string name=\"label_help\">Laguntza</string>\n    <string name=\"label_more\">Gehiago</string>\n    <string name=\"label_settings\">Ezarpenak</string>\n    <string name=\"label_download_queue\">Deskarga-ilara</string>\n    <string name=\"label_library\">Liburutegia</string>\n    <string name=\"label_recent_updates\">Eguneraketak</string>\n    <string name=\"label_recent_manga\">Historiala</string>\n    <string name=\"label_sources\">Iturriak</string>\n    <string name=\"error_saving_cover\">Errorea azala gordetzean</string>\n    <string name=\"error_sharing_cover\">Errorea azala partekatzean</string>\n    <string name=\"portrait\">Bertikala</string>\n    <string name=\"secure_screen\">Pantaila segurua</string>\n    <string name=\"hide_notification_content\">Ezkutatu jakinarazpenen edukia</string>\n    <string name=\"landscape\">Horizontala</string>\n    <string name=\"left_to_right_viewer\">Ezkerretik eskuinera</string>\n    <string name=\"right_to_left_viewer\">Eskuinetik ezkerrera</string>\n    <string name=\"vertical_viewer\">Bertikalki</string>\n    <string name=\"reading\">Irakurtzen</string>\n    <string name=\"on_hold\">Momentuz utzia</string>\n    <string name=\"plan_to_read\">Irakurtzeko asmoa dut</string>\n    <string name=\"paused\">Gelditurik</string>\n    <string name=\"score\">Puntuazioa</string>\n    <string name=\"backup_in_progress\">Babeskopia abian da dagoeneko</string>\n    <string name=\"channel_progress\">Aurrerapena</string>\n    <string name=\"logout\">Saioa itxi</string>\n    <string name=\"logout_success\">Saioa itxi da</string>\n    <string name=\"exclude\">Baztertu: %s</string>\n    <string name=\"ext_update_all\">Eguneratu guztiak</string>\n    <string name=\"ext_install\">Instalatu</string>\n    <string name=\"ext_pending\">Egiteke</string>\n    <string name=\"ext_downloading\">Deskargatzen</string>\n    <string name=\"ext_installing\">Instalatzen</string>\n    <string name=\"ext_nsfw_warning\">NSFW (18+) edukia izan dezake</string>\n    <string name=\"ext_installer_pref\">Instalatzailea</string>\n    <string name=\"pref_fullscreen\">Pantaila osoa</string>\n    <string name=\"pref_grayscale\">Gris-eskala</string>\n    <string name=\"pref_inverted_colors\">Alderantzikatua</string>\n    <string name=\"pref_color_filter_mode\">Kolore-iragazkia modu nahastuan</string>\n    <string name=\"filter_mode_lighten\">Sahiestu / Argitu</string>\n    <string name=\"filter_mode_darken\">Erre / Ilundu</string>\n    <string name=\"pref_viewer_type\">Irakurketa modu lehenetsia</string>\n    <string name=\"webtoon_viewer\">Webtoon</string>\n    <string name=\"scale_type_original_size\">Jatorrizko tamaina</string>\n    <string name=\"zoom_start_left\">Ezkerra</string>\n    <string name=\"pref_rotation_type\">Biraketa mota lehenetsia</string>\n    <string name=\"pref_webtoon_side_padding\">Alboko betegarria</string>\n    <string name=\"pref_always_show_chapter_transition\">Erakutsi beti kapituluaren trantsizioa</string>\n    <string name=\"last_read_chapter\">Azkenik irakurritako kapitulua</string>\n    <string name=\"pref_category_delete_chapters\">Ezabatu kapituluak</string>\n    <string name=\"fourth_to_last\">Atzetik hasita laugarren irakurritako kapitulua</string>\n    <string name=\"backup_restore_missing_trackers\">Saioa hasi gabeko jarraitzaileak:</string>\n    <string name=\"backup_choice\">Zeren babeskopia nahi duzu?</string>\n    <string name=\"restore_in_progress\">Berreskuratzea abian da</string>\n    <string name=\"restoring_backup_error\">Ezin izan da babeskopia berreskuratu</string>\n    <string name=\"backup_info\">Babeskopia automatikoak oso gomendagarriak dira. Kopiak beste leku batzuetan ere gorde beharko zenituzke.</string>\n    <string name=\"pref_clear_cookies\">Garbitu cookieak</string>\n    <string name=\"label_data\">Datuak</string>\n    <string name=\"pref_clear_chapter_cache\">Garbitu kapituluen cachea</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Garbitu kapituluen cachea aplikazioa ixtean</string>\n    <string name=\"database_clean\">Datu-basea garbi</string>\n    <string name=\"pref_disable_battery_optimization\">Desgaitu bateriaren optimizazioa</string>\n    <string name=\"version\">Bertsioa</string>\n    <string name=\"website\">Webgunea</string>\n    <string name=\"licenses\">Open Source lizentziak</string>\n    <string name=\"privacy_policy\">Pribatutasun politika</string>\n    <string name=\"pref_acra_summary\">Edozein akats konpontzen laguntzen du. Ez da datu sentikorrik bidaliko</string>\n    <string name=\"label_downloaded_only\">Deskargatuak bakarrik</string>\n    <string name=\"pref_incognito_mode\">Ezkutuko modua</string>\n    <string name=\"pref_incognito_mode_summary\">Irakurketa historia gelditu egiten du</string>\n    <string name=\"downloaded_chapters\">Deskargatutako kapituluak</string>\n    <string name=\"last_used_source\">Azken erabilera</string>\n    <string name=\"pinned_sources\">Ainguratua</string>\n    <string name=\"no_pinned_sources\">Ez duzu iturri ainguraturik</string>\n    <string name=\"local_invalid_format\">Kapituluaren formatu baliogabea</string>\n    <string name=\"date\">Data</string>\n    <string name=\"unknown_author\">Egile ezezaguna</string>\n    <string name=\"unknown_status\">Egoera ezezaguna</string>\n    <string name=\"delete_downloads_for_manga\">Deskargatutako kapituluak ezabatu nahi dituzu?</string>\n    <string name=\"copied_to_clipboard\">Arbelean kopiatu da:\n\\n%1$s</string>\n    <string name=\"chapter_paused\">Gelditurik</string>\n    <string name=\"show_chapter_number\">Kapituluaren zenbakia</string>\n    <string name=\"download_unread\">Irakurri gabea</string>\n    <string name=\"manga_cover\">Azala</string>\n    <string name=\"set_chapter_settings_as_default\">Ezarri lehenetsia bezala</string>\n    <string name=\"error_no_match\">Ez da aurkitu</string>\n    <string name=\"chapter_progress\">%1$d orrialdea</string>\n    <string name=\"no_next_chapter\">Ez da hurrengo kapitulua aurkitu</string>\n    <string name=\"decode_image_error\">Irudia ezin izan da kargatu</string>\n    <string name=\"viewer\">Irakurketa modua</string>\n    <string name=\"transition_current\">Oraingoa:</string>\n    <string name=\"transition_previous\">Aurrekoa:</string>\n    <string name=\"page_list_empty_error\">Ez dira orrialderik aurkitu</string>\n    <string name=\"loader_not_implemented_error\">Ez da iturria aurkitu</string>\n    <string name=\"update_check_confirm\">Deskargatu</string>\n    <string name=\"update_check_notification_download_complete\">Deskarga bukatua</string>\n    <string name=\"download_notifier_title_error\">Errorea</string>\n    <string name=\"ext_installer_legacy\">Ondare</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"off\">Itzali</string>\n    <string name=\"pref_reader_navigation\">Nabigazioa</string>\n    <string name=\"color_filter_b_value\">U</string>\n    <string name=\"updated_version\">v%1$s-ra eguneratua</string>\n    <string name=\"login_success\">Saioa hasia</string>\n    <string name=\"logout_title\">Itxi saioa %1$s-n?</string>\n    <string name=\"manga_added_library\">Liburutegira gehitua</string>\n    <string name=\"confirm_delete_chapters\">Ziur hautatutako kapituluak ezabatu nahi dituzula?</string>\n    <string name=\"track_finished_reading_date\">Bukaera-data</string>\n    <string name=\"track_started_reading_date\">Hasiera-data</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Honek kapitulu honen irakurketa-data kenduko du. Ziur zaude?</string>\n    <string name=\"transition_next\">Hurrengoa:</string>\n    <string name=\"pref_category_for_this_series\">Argitalpen honetarako</string>\n    <string name=\"transition_finished\">Bukatua:</string>\n    <string name=\"transition_no_next\">Ez dago hurrengo kapitulurik</string>\n    <string name=\"transition_no_previous\">Ez dago aurreko kapitulurik</string>\n    <string name=\"copy\">Kopiatu</string>\n    <string name=\"update_check_eol\">Android bertsio hau jada ez da onartzen</string>\n    <string name=\"ext_obsolete\">Zaharkitua</string>\n    <string name=\"ext_uninstall\">Desinstalatu</string>\n    <string name=\"pref_show_page_number\">Erakutsi orrialdearen zenbakia</string>\n    <string name=\"in_library\">Liburutegian</string>\n    <string name=\"manga_info_expand\">Gehiago</string>\n    <string name=\"display_mode_chapter\">%1$s Kapitulua</string>\n    <string name=\"chapter_settings\">Kapituluaren ezarpenak</string>\n    <string name=\"track_status\">Egoera</string>\n    <string name=\"track_type\">Mota</string>\n    <string name=\"custom_filter\">Iragazki pertsonalizatua</string>\n    <string name=\"snack_categories_deleted\">Kategoriak ezabatuak</string>\n    <string name=\"dialog_with_checkbox_reset\">Berrezarri manga honen kapitulu guztiak</string>\n    <string name=\"file_select_cover\">Hautatu azaleko irudia</string>\n    <string name=\"update_check_no_new_updates\">Ez dago eguneraketarik</string>\n    <string name=\"information_cloudflare_bypass_failure\">Ezin izan da Cloudflare saihestu</string>\n    <string name=\"chapter_settings_updated\">Kapituluaren ezarpen lehenetsiak eguneratu dira</string>\n    <string name=\"download_notifier_downloader_title\">Deskargatzailea</string>\n    <string name=\"download_notifier_unknown_error\">Ezin izan da kapitulua deskargatu ustekabeko errore baten ondorioz</string>\n    <string name=\"download_notifier_no_network\">Ez dago sare-konexiorik erabilgarri</string>\n    <string name=\"channel_new_chapters\">Kapituluaren eguneraketak</string>\n    <string name=\"channel_app_updates\">Aplikazioen eguneraketak</string>\n    <string name=\"spen_next_page\">Hurrengo orrialdea</string>\n    <string name=\"channel_ext_updates\">Luzapenen eguneraketak</string>\n    <string name=\"filter_mode_screen\">Pantaila</string>\n    <string name=\"pref_custom_color_filter\">Kolore-iragazki pertsonalizatua</string>\n    <string name=\"rotation_type\">Biraketa mota</string>\n    <string name=\"rotation_force_landscape\">Horizontal blokeatua</string>\n    <string name=\"rotation_free\">Librea</string>\n    <string name=\"rotation_portrait\">Bertikala</string>\n    <string name=\"rotation_landscape\">Horizontala</string>\n    <string name=\"rotation_force_portrait\">Bertikal blokeatua</string>\n    <string name=\"pref_remove_after_marked_as_read\">Irakurria bezala eskuz markatu ondoren</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Baimendu laster-markadun kapituluak ezabatzea</string>\n    <string name=\"pref_remove_after_read\">Irakurri ondoren automatikoki ezabatu</string>\n    <string name=\"enhanced_services\">Zerbitzu hobetuak</string>\n    <string name=\"help_translate\">Lagundu itzultzen</string>\n    <string name=\"file_picker_error\">Ez da aurkitu fitxategiak hautatzeko aplikaziorik</string>\n    <string name=\"all\">Denak</string>\n    <string name=\"about_dont_kill_my_app\">Fabrikatzaile batzuek aplikazioen murrizketa gehigarriak dituzte, atzeko planoko zerbitzuak akabatzen dituztenak. Webgune honek informazio gehiago du nola konpondu jakiteko.</string>\n    <string name=\"untrusted_extension_message\">Luzapen hau fidagarria ez den ziurtagiri batekin sinatu zen eta ez zen aktibatu.\n\\n\n\\nLuzapen maltzur batek Mihon-n gordetako saio-hasierako kredentzialak irakur ditzake edo kode arbitrarioa exekutatu.\n\\n\n\\nZiurtagiri honetaz fidatzean, arrisku hauek onartzen dituzu.</string>\n    <string name=\"ext_untrusted\">Fidatu gabekoa</string>\n    <string name=\"pref_reader_theme\">Atzeko planoaren kolorea</string>\n    <string name=\"ext_update\">Eguneratu</string>\n    <string name=\"pref_custom_brightness\">Distira pertsonalizatua</string>\n    <string name=\"filter_mode_multiply\">Biderkatu</string>\n    <string name=\"creating_backup_error\">Babeskopia egiteak huts egin du</string>\n    <string name=\"theme_midnightdusk\">Gauerdiko ilunabarra</string>\n    <string name=\"ext_installed\">Instalatuak</string>\n    <string name=\"ext_app_info\">Aplikazioaren informazioa</string>\n    <string name=\"pref_page_transitions\">Animatu orrialdeen trantsizioak</string>\n    <string name=\"pref_show_reading_mode\">Erakutsi irakurketa modua</string>\n    <string name=\"gray_background\">Grisa</string>\n    <string name=\"transition_pages_error\">Ezin izan dira orriak kargatu: %1$s</string>\n    <string name=\"pref_clear_history\">Garbitu historia</string>\n    <string name=\"lock_with_biometrics\">Desblokeatzea eskatu</string>\n    <string name=\"default_category_summary\">Galdetu beti</string>\n    <string name=\"ext_install_service_notif\">Luzapena instalatzen…</string>\n    <string name=\"filter_mode_overlay\">Gainjarri</string>\n    <string name=\"white_background\">Zuria</string>\n    <string name=\"black_background\">Beltza</string>\n    <string name=\"nav_zone_next\">Hurrengoa</string>\n    <string name=\"pager_viewer\">Orrikaldekatua</string>\n    <string name=\"zoom_start_automatic\">Automatikoa</string>\n    <string name=\"pref_double_tap_anim_speed\">Sakaketa bikoitzaren animazioaren abiadura</string>\n    <string name=\"automatic_background\">Automatikoa</string>\n    <string name=\"nav_zone_prev\">Aurrekoa</string>\n    <string name=\"pref_viewer_nav\">Nabigazio-diseinua</string>\n    <string name=\"scale_type_stretch\">Luzatu</string>\n    <string name=\"scale_type_smart_fit\">Smart doiketa</string>\n    <string name=\"zoom_start_center\">Erdian</string>\n    <string name=\"double_tap_anim_speed_normal\">Normala</string>\n    <string name=\"double_tap_anim_speed_fast\">Azkar</string>\n    <string name=\"pref_category_reading\">Irakurtzen</string>\n    <string name=\"third_to_last\">Atzetik hasita hirugarren irakurritako kapitulua</string>\n    <string name=\"nav_zone_left\">Ezkerra</string>\n    <string name=\"vertical_plus_viewer\">Bertikalki etengabe</string>\n    <string name=\"pref_image_scale_type\">Eskala mota</string>\n    <string name=\"scale_type_fit_screen\">Doitu pantaila</string>\n    <string name=\"scale_type_fit_width\">Doitu zabalera</string>\n    <string name=\"scale_type_fit_height\">Doitu altuera</string>\n    <string name=\"pref_zoom_start\">Zoomaren hasierako posizioa</string>\n    <string name=\"zoom_start_right\">Eskuina</string>\n    <string name=\"double_tap_anim_speed_0\">Animaziorik ez</string>\n    <string name=\"pref_category_reading_mode\">Irakurketa modua</string>\n    <string name=\"label_network\">Sarea</string>\n    <string name=\"pref_remove_exclude_categories\">Baztertutako kategoriak</string>\n    <string name=\"second_to_last\">Azkenaurreko irakurritako kapitulua</string>\n    <string name=\"fifth_to_last\">Atzetik hasita bosgarren irakurritako kapitulua</string>\n    <string name=\"pref_category_auto_download\">Deskarga automatikoa</string>\n    <string name=\"pref_clear_database\">Garbitu datu-basea</string>\n    <string name=\"pref_dump_crash_logs_summary\">Erroreen erregistroak fitxategi batean gordetzen ditu garatzaileekin partekatzeko</string>\n    <string name=\"updating_category\">Kategoria eguneratzen</string>\n    <string name=\"tabs_header\">Fitxak</string>\n    <string name=\"sort_by_number\">Kapitulu zenbakiaren arabera</string>\n    <string name=\"sort_by_upload_date\">Igoera dataren arabera</string>\n    <string name=\"confirm_set_image_as_cover\">Irudi hau azaleko arte gisa erabili?</string>\n    <string name=\"download_insufficient_space\">Ezin izan dira kapituluak deskargatu memorian leku gutxi dagoelako</string>\n    <string name=\"notification_size_warning\">Eguneratze handiek bateriaren erabilera areagotzea eta iturriak motelagoak izatea eragin dezakete</string>\n    <string name=\"download_notifier_download_paused\">Deskarga pausatu da</string>\n    <string name=\"pref_low\">Baxua</string>\n    <string name=\"pref_lowest\">Baxuena</string>\n    <string name=\"pref_download_new\">Deskargatu kapitulu berriak</string>\n    <string name=\"update_check_notification_update_available\">Bertsio berria eskuragarri!</string>\n    <string name=\"pref_create_backup_summ\">Liburutegia berreskuratzeko erabil daiteke</string>\n    <string name=\"downloaded_only_summary\">Zure liburutegiko manga guztiak iragazten ditu</string>\n    <string name=\"pref_dns_over_https\">DNS HTTPS bidez (DoH)</string>\n    <string name=\"pref_enable_acra\">Bidali hutsegite-txostenak</string>\n    <string name=\"notification_incognito_text\">Desgaitu ezkutuko modua</string>\n    <string name=\"used_cache\">Erabilia: %1$s</string>\n    <string name=\"manga_from_library\">Liburutegiko manga</string>\n    <string name=\"clipboard_copy_error\">Ezin izan da arbelean kopiatu</string>\n    <string name=\"manga_download\">Deskargatu</string>\n    <string name=\"add_to_library\">Gehitu liburutegira</string>\n    <string name=\"myanimelist_relogin\">Mesedez, hasi saioa berriro MAL-en</string>\n    <string name=\"show_title\">Iturriaren izenburua</string>\n    <string name=\"sort_by_source\">Iturriaren arabera</string>\n    <string name=\"confirm_set_chapter_settings\">Ziur ezarpen hauek lehenetsi gisa gorde nahi dituzula?</string>\n    <string name=\"information_webview_outdated\">Mesedez, eguneratu WebView aplikazioa bateragarritasun hobea izateko</string>\n    <string name=\"channel_complete\">Bukatua</string>\n    <string name=\"error_category_exists\">Izen hori daukan kategoria bat badago dagoeneko!</string>\n    <string name=\"update_check_notification_download_in_progress\">Deskargatzen…</string>\n    <string name=\"update_check_notification_download_error\">Errorea deskargan</string>\n    <string name=\"migration_selection_prompt\">Hautatu migratzeko iturri bat</string>\n    <string name=\"notification_first_add_to_library\">Mesedez, gehitu manga zure liburutegian hau egin aurretik</string>\n    <string name=\"transition_pages_loading\">Orriak kargatzen…</string>\n    <string name=\"channel_common\">Arrunta</string>\n    <string name=\"information_webview_required\">WebView beharrezkoa da Mihon-rentzat</string>\n    <string name=\"download_notifier_text_only_wifi\">Ez dago Wi-Fi konexiorik erabilgarri</string>\n    <string name=\"label_default\">Lehenetsia</string>\n    <string name=\"track\">Jarraipena</string>\n    <string name=\"action_display_mode\">Bistaratze-modua</string>\n    <string name=\"action_display\">Bistaratu</string>\n    <string name=\"action_display_grid\">Lauki-sare trinkoa</string>\n    <string name=\"action_display_comfortable_grid\">Lauki-sare erosoa</string>\n    <string name=\"action_display_list\">Zerrendatu</string>\n    <string name=\"action_display_download_badge\">Deskargatutako kapituluak</string>\n    <string name=\"action_display_show_number_of_items\">Erakutsi elementu kantitatea</string>\n    <string name=\"action_display_show_tabs\">Erakutsi kategorien fitxak</string>\n    <string name=\"pref_category_about\">Honi buruz</string>\n    <string name=\"pref_category_theme\">Gaia</string>\n    <string name=\"pref_dump_crash_logs\">Sortu erroreen erregistroak</string>\n    <string name=\"notification_chapters_single\">%1$s Kapitulua</string>\n    <string name=\"notification_chapters_multiple\">%1$s Kapituluak</string>\n    <string name=\"pref_keep_screen_on\">Mantendu pantaila piztuta</string>\n    <string name=\"pref_skip_read_chapters\">Saltatu irakurriak bezala markatutako kapituluak</string>\n    <string name=\"pref_create_folder_per_manga\">Gorde orrialdeak karpeta ezberdinetan</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Sortu karpetak manga izenburuaren arabera</string>\n    <string name=\"pref_high\">Altua</string>\n    <string name=\"pref_skip_filtered_chapters\">Saltatu iragazitako kapituluak</string>\n    <string name=\"pref_read_with_volume_keys\">Bolumen-teklak</string>\n    <string name=\"whats_new\">Zer dago berri</string>\n    <string name=\"pref_create_backup\">Sortu babeskopia</string>\n    <string name=\"backup_restore_missing_sources\">Falta diren iturriak:</string>\n    <string name=\"backup_restore_content_full\">Babeskopia fitxategiko datuak berreskuratu egingo dira.\n\\n\n\\nFalta diren luzapenak instalatu eta jarraipen-zerbitzuetan saioa hasi beharko duzu ondoren horiek erabiltzeko.</string>\n    <string name=\"chapter_downloading_progress\">Deskargatzen (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Errorea</string>\n    <string name=\"also_set_chapter_settings_for_library\">Nire liburutegiko manga guztietan ere aplikatu</string>\n    <string name=\"manga_removed_library\">Liburutegitik kendua</string>\n    <string name=\"manga_info_collapse\">Gutxiago</string>\n    <string name=\"source_not_installed\">Iturria ez dago instalatuta: %1$s</string>\n    <string name=\"snack_add_to_library\">Manga liburutegira gehitu?</string>\n    <string name=\"file_select_backup\">Hautatu babeskopia fitxategia</string>\n    <string name=\"notification_cover_update_failed\">Ezin izan da azala eguneratu</string>\n    <string name=\"action_sort_date_added\">Gehiketa data</string>\n    <string name=\"action_search\">Bilatu</string>\n    <string name=\"action_search_settings\">Bilatu ezarpenak</string>\n    <string name=\"action_global_search\">Bilaketa globala</string>\n    <string name=\"action_select_all\">Hautatu dena</string>\n    <string name=\"action_select_inverse\">Hautatu alderantzizkoa</string>\n    <string name=\"action_mark_as_read\">Markatu irakurria bezala</string>\n    <string name=\"action_mark_as_unread\">Markatu irakurri gabea bezala</string>\n    <string name=\"action_mark_previous_as_read\">Markatu aurrekoak irakurriak bezala</string>\n    <string name=\"action_download\">Deskargatu</string>\n    <string name=\"action_bookmark\">Jarri laster-marka kapituluari</string>\n    <string name=\"cancel_all_for_series\">Utzi alde batera argitalpen honetako guztiak</string>\n    <string name=\"action_remove_bookmark\">Kendu laster-marka kapituluari</string>\n    <string name=\"action_delete\">Ezabatu</string>\n    <string name=\"action_update_library\">Eguneratu liburutegia</string>\n    <string name=\"action_enable_all\">Gaitu guztiak</string>\n    <string name=\"action_disable_all\">Desgaitu guztiak</string>\n    <string name=\"action_edit\">Editatu</string>\n    <string name=\"action_add\">Gehitu</string>\n    <string name=\"action_add_category\">Gehitu kategoria</string>\n    <string name=\"action_edit_categories\">Editatu kategoria</string>\n    <string name=\"action_rename_category\">Izena aldatu kategoriari</string>\n    <string name=\"action_move_category\">Kategoriak ezarri</string>\n    <string name=\"action_edit_cover\">Editatu azala</string>\n    <string name=\"action_view_chapters\">Ikusi kapituluak</string>\n    <string name=\"action_pause\">Pausatu</string>\n    <string name=\"action_previous_chapter\">Aurreko kapitulua</string>\n    <string name=\"action_next_chapter\">Hurrengo kapitulua</string>\n    <string name=\"action_retry\">Saiatu berriro</string>\n    <string name=\"action_remove\">Kendu</string>\n    <string name=\"action_start\">Hasi</string>\n    <string name=\"action_resume\">Jarraitu</string>\n    <string name=\"action_open_in_browser\">Nabigatzailean ireki</string>\n    <string name=\"action_open_in_web_view\">Ireki WebView-n</string>\n    <string name=\"action_migrate\">Migratu</string>\n    <string name=\"action_disable\">Desgaitu</string>\n    <string name=\"action_pin\">Ainguratu</string>\n    <string name=\"action_unpin\">Aingura kendu</string>\n    <string name=\"action_cancel\">Ezeztatu</string>\n    <string name=\"action_cancel_all\">Utzi guztiak alde batera</string>\n    <string name=\"action_sort\">Ordenatu</string>\n    <string name=\"action_order_by_upload_date\">Igoera dataren arabera</string>\n    <string name=\"action_order_by_chapter_number\">Kapitulu zenbakiaren arabera</string>\n    <string name=\"theme_system\">Sistemarena erabili</string>\n    <string name=\"theme_light\">Itzali</string>\n    <string name=\"theme_dark\">Piztu</string>\n    <string name=\"pref_app_theme\">Aplikazioaren gaia</string>\n    <string name=\"theme_monet\">Dinamikoa</string>\n    <string name=\"theme_greenapple\">Sagar Berdea</string>\n    <string name=\"pref_date_format\">Dataren formatua</string>\n    <string name=\"pref_manage_notifications\">Kudeatu jakinarazpenak</string>\n    <string name=\"pref_category_security\">Segurtasuna</string>\n    <string name=\"lock_always\">Beti</string>\n    <string name=\"secure_screen_summary\">Pantaila seguruak aplikazioaren edukia ezkutatzen du aplikazioak aldatzean, eta pantaila-argazkiak blokeatzen ditu</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) iturriak</string>\n    <string name=\"pref_show_nsfw_source\">Erakutsi iturrien eta luzapenen zerrendetan</string>\n    <string name=\"parental_controls_info\">Honek ez du eragozten ofizialak ez diren edo oker markatutako luzapenek NSFW (18+) edukia aplikazioan erakustea.</string>\n    <string name=\"relative_time_today\">Gaur</string>\n    <string name=\"pref_category_display\">Bistaratu</string>\n    <string name=\"pref_library_columns\">Errenkada bakoitzeko elementu kopurua</string>\n    <string name=\"pref_category_library_update\">Eguneraketa globalak</string>\n    <string name=\"pref_library_update_interval\">Eguneratze automatikoak</string>\n    <string name=\"pref_update_only_completely_read\">Irakurri gabeko kapituluak ditu</string>\n    <string name=\"include\">Sartu: %s</string>\n    <string name=\"color_filter_r_value\">G</string>\n    <string name=\"other_source\">Besteak</string>\n    <string name=\"action_global_search_hint\">Bilaketa globala…</string>\n    <string name=\"clear_history_completed\">Historia ezabatu da</string>\n    <string name=\"clear_history_confirmation\">Ziur zaude? Historia guztia galduko da.</string>\n    <string name=\"migration_help_guide\">Iturrien migrazio gida</string>\n    <string name=\"migration_dialog_what_to_include\">Hautatu sartu nahi dituzun datuak</string>\n    <string name=\"notification_new_chapters\">Kapitulu berriak aurkituak</string>\n    <string name=\"information_no_recent_manga\">Ez da ezer irakurri azkenaldian</string>\n    <string name=\"information_no_downloads\">Deskargarik ez</string>\n    <string name=\"information_no_recent\">Ez dago azkenaldiko eguneraketarik</string>\n    <string name=\"information_empty_library\">Zure liburutegia hutsik dago</string>\n    <string name=\"information_empty_category\">Ez daukazu kategoriarik. Sakatu gehiketa botoia zure liburutegia antolatzeko bat sortzeko.</string>\n    <string name=\"spen_previous_page\">Aurreko orrialdea</string>\n    <string name=\"on\">Piztu</string>\n    <string name=\"action_newest\">Berriena</string>\n    <string name=\"action_oldest\">Zaharrena</string>\n    <string name=\"action_asc\">Gorantz</string>\n    <string name=\"action_desc\">Beherantz</string>\n    <string name=\"lock_never\">Inoiz ere ez</string>\n    <string name=\"pref_crop_borders\">Moztu ertzak</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Alderantzikatu bolumen-teklak</string>\n    <string name=\"pref_read_with_tapping_inverted\">Sakatzea alderantzikatu</string>\n    <string name=\"tapping_inverted_none\">Ezer ez</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontala</string>\n    <string name=\"tapping_inverted_vertical\">Bertikala</string>\n    <string name=\"nav_zone_right\">Eskuina</string>\n    <string name=\"color_filter_g_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_highest\">Altuena</string>\n    <string name=\"pref_restore_backup\">Babeskopia erabili</string>\n    <string name=\"pref_restore_backup_summ\">Berreskuratu liburutegia babeskopia fitxategitik</string>\n    <string name=\"pref_backup_interval\">Babeskopien maiztasuna</string>\n    <string name=\"action_sort_alpha\">Alfabetikoki</string>\n    <string name=\"label_warning\">Oharra</string>\n    <string name=\"confirm_lock_change\">Autentifikatu aldaketa berresteko</string>\n    <string name=\"action_settings\">Ezarpenak</string>\n    <string name=\"action_menu\">Menua</string>\n    <string name=\"action_filter\">Iragazi</string>\n    <string name=\"action_filter_bookmarked\">Orri-markatzailea jarria</string>\n    <string name=\"action_filter_tracked\">Jarraitua</string>\n    <string name=\"action_filter_unread\">Irakurri gabea</string>\n    <string name=\"action_filter_empty\">Kendu iragazkia</string>\n    <string name=\"action_sort_count\">Mangak guztira</string>\n    <string name=\"action_sort_total\">Kapituluak guztira</string>\n    <string name=\"action_sort_last_read\">Azken aldiz irakurria</string>\n    <string name=\"action_sort_latest_chapter\">Azken kapitulua</string>\n    <string name=\"action_sort_chapter_fetch_date\">Eskuratze data</string>\n    <string name=\"action_move_to_top\">Mugitu gora</string>\n    <string name=\"action_move_to_bottom\">Mugitu behera</string>\n    <string name=\"action_install\">Instalatu</string>\n    <string name=\"action_share\">Partekatu</string>\n    <string name=\"action_save\">Gorde</string>\n    <string name=\"action_reset\">Erreseteatu</string>\n    <string name=\"action_undo\">Desegin</string>\n    <string name=\"action_open_log\">Ireki erregistroa</string>\n    <string name=\"action_restore\">Berrezarri</string>\n    <string name=\"action_webview_back\">Atzera</string>\n    <string name=\"action_webview_forward\">Aurrera</string>\n    <string name=\"action_webview_refresh\">Freskatu</string>\n    <string name=\"action_start_downloading_now\">Hasi deskargatzen orain</string>\n    <string name=\"app_not_available\">Aplikazioa ez dago erabilgarri</string>\n    <string name=\"pref_category_general\">Orokorra</string>\n    <string name=\"pref_category_appearance\">Itxura</string>\n    <string name=\"pref_category_library\">Liburutegia</string>\n    <string name=\"pref_category_reader\">Irakurgailua</string>\n    <string name=\"pref_category_downloads\">Deskargak</string>\n    <string name=\"pref_category_tracking\">Jarraipena</string>\n    <string name=\"pref_category_advanced\">Aurreratua</string>\n    <string name=\"action_display_language_badge\">Hizkuntza</string>\n    <string name=\"theme_strawberrydaiquiri\">Marrubi Daiquiri-a</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_tealturquoise\">Urdin-berdea eta turkesa</string>\n    <string name=\"theme_yinyang\">Yin eta Yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Beltz hutseko modu iluna</string>\n    <string name=\"update_never\">Itzali</string>\n    <string name=\"update_6hour\">6 orduro</string>\n    <string name=\"update_12hour\">12 orduro</string>\n    <string name=\"update_24hour\">Egunero</string>\n    <string name=\"update_48hour\">2 egunean behin</string>\n    <string name=\"ext_trust\">Fidagarritzat jo</string>\n    <string name=\"tapping_inverted_both\">Biak</string>\n    <string name=\"pref_reader_actions\">Ekintzak</string>\n    <string name=\"pref_read_with_long_tap\">Erakutsi sakaketa luzean</string>\n    <string name=\"login_title\">Hasi saioa %1$s-n</string>\n    <string name=\"username\">Erabiltzaile-izena</string>\n    <string name=\"email\">Posta elektroniko helbidea</string>\n    <string name=\"password\">Pasahitza</string>\n    <string name=\"login\">Hasi saioa</string>\n    <string name=\"action_global_search_query\">Bilatu \\\"%1$s\\\" toki guztietan</string>\n    <string name=\"action_show_errors\">Sakatu xehetasunak ikusteko</string>\n    <string name=\"update_72hour\">3 egunean behin</string>\n    <string name=\"update_weekly\">Astero</string>\n    <string name=\"connected_to_wifi\">Wi-Fi bidez bakarrik</string>\n    <string name=\"restrictions\">Mugaketak: %s</string>\n    <string name=\"pref_update_only_non_completed\">Argitalpen bukatua al da</string>\n    <string name=\"pref_library_update_refresh_metadata\">Freskatu metadatuak automatikoki</string>\n    <string name=\"invalid_backup_file_missing_manga\">Babeskopiak ez du mangarik.</string>\n    <string name=\"manga_tracking_tab\">Jarraipena</string>\n    <string name=\"repeating\">Berrirakurtzen</string>\n    <string name=\"pref_show_reading_mode_summary\">Erakutsi erabilitako irakurketa modua laburki irakurlea irekitzen denean</string>\n    <string name=\"tracking_guide\">Jarraipen gida</string>\n    <string name=\"pref_auto_update_manga_sync\">Eguneratu aurrerapena irakurri ondoren</string>\n    <string name=\"action_track\">Jarraitu</string>\n    <string name=\"cache_deleted\">Cachea garbitu da. %1$d fitxategi ezabatu dira</string>\n    <string name=\"label_background_activity\">Atzeko planoko ekintzak</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Liburutegiaren eguneraketak eta babeskopiak atzeko planoan egiten laguntzen du</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Ezin izan dira gailuaren ezarpenak ireki</string>\n    <string name=\"local_filter_order_by\">Ordenatu honen arabera</string>\n    <string name=\"ext_updates_pending\">Eguneraketak egiteke</string>\n    <string name=\"pref_cutout_short\">Erakutsi edukia eremu ebakian</string>\n    <string name=\"download_queue_error\">Ezin izan dira kapituluak deskargatu. Berriro saia zaitezke deskargen atalean</string>\n    <string name=\"save_chapter_as_cbz\">Gorde CBZ artxibo gisa</string>\n    <string name=\"pref_refresh_library_covers\">Eguneratu liburutegiko manga azalak</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet interfazea</string>\n    <string name=\"share_page_info\">%1$s: %2$s, %3$d orrialdea</string>\n    <string name=\"information_empty_category_dialog\">Oraindik ez duzu kategoriarik sortu.</string>\n    <string name=\"extension_api_error\">Ezin izan da luzapenen zerrenda lortu</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Bilatu azal eta xehetasun berriak liburutegia eguneratzean</string>\n    <string name=\"pref_library_update_categories_details\">Baztertutako kategorietako mangak ez dira eguneratuko, sarturiko kategorietan egon arren.</string>\n    <string name=\"pref_hide_threshold\">Pantaila mugitzean menua ezkutatzeko sentikortasuna</string>\n    <string name=\"clear_database_source_item_count\">Liburutegian ez dauden %1$d manga datubasean</string>\n    <string name=\"pref_verbose_logging\">Erregistroaren bertsio luzea</string>\n    <string name=\"pref_verbose_logging_summary\">Gorde bertsio luzedun erregistroak sistemaren erregistroan (aplikazioaren errendimentua murrizten du)</string>\n    <string name=\"recent_manga_time\">Kap. %1$s-%2$s</string>\n    <string name=\"categorized_display_settings\">Kategoria bakoitzeko ordenatze eta bistaratze ezarpenak</string>\n    <string name=\"pref_download_new_categories_details\">Baztertutako kategorietako mangak ez dira deskargatuko, sarturiko kategorietan egon arren.</string>\n    <string name=\"cancelled\">Bertan behera utzia</string>\n    <string name=\"on_hiatus\">Etenaldian</string>\n    <string name=\"library_errors_help\">Liburutegi eguneraketen akatsak nola konpondu jakiteko, ikusi %1$s</string>\n    <string name=\"action_display_local_badge\">Manga lokala</string>\n    <string name=\"notification_chapters_single_and_more\">%1$s kapitulua eta %2$d gehiago</string>\n    <string name=\"tracking_info\">Norabide bakarreko sinkronizazioa jarraipen-zerbitzuetan kapituluaren aurrerapena eguneratzeko. Konfiguratu manga bakoitzaren jarraipena haien jarraipen botoia erabilita.</string>\n    <string name=\"pref_show_navigation_mode\">Nabigazio-diseinuaren geruza erakutsi</string>\n    <string name=\"pref_show_navigation_mode_summary\">Erakutsi ukipen-zonak irakurgailua irekitzen denean</string>\n    <string name=\"enhanced_tracking_info\">Iturri zehatzetarako ezaugarri hobetuak eskaintzen dituzten zerbitzuak. Mangen jarraipena automatikoki egiten da zure liburutegira gehitzen direnean.</string>\n    <string name=\"pref_clear_database_summary\">Ezabatu zure liburutegian gordeta ez dauden mangen historia</string>\n    <string name=\"publishing_finished\">Argitarapena amaitua</string>\n    <string name=\"pref_dual_page_split\">Orrialde biko zatiketa</string>\n    <string name=\"pref_dual_page_invert\">Alderantzikatu orrialde bikoitzeko zatiketa</string>\n    <string name=\"pref_dual_page_invert_summary\">Orrialde bikoitzeko zatiketaren kokapena irakurketa noranzkoarekin bat ez badator</string>\n    <string name=\"pref_library_update_restriction\">Eguneraketa automatikoentzako gailuaren murrizketak</string>\n    <string name=\"action_show_manga\">Manga erakutsi</string>\n    <string name=\"skipped_reason_not_caught_up\">Saltatu egin da irakurri gabeko kapituluak daudelako</string>\n    <string name=\"pref_update_only_started\">Kapitulurik irakurri gabe</string>\n    <string name=\"skipped_reason_completed\">Saltatu egin da seriea bukatua dagoelako</string>\n    <string name=\"skipped_reason_not_started\">Saltatua ez daudelako irakurritako kapitulurik</string>\n    <string name=\"ext_info_version\">Bertsioa</string>\n    <string name=\"multi_lang\">Multi</string>\n    <string name=\"delete_category\">Ezabatu kategoria</string>\n    <string name=\"action_close\">Itxi</string>\n    <string name=\"pref_app_language\">App hizkuntza</string>\n    <string name=\"ext_info_language\">Hizkuntza</string>\n    <string name=\"action_search_hint\">Bilatu…</string>\n    <string name=\"delete_category_confirmation\">\\\"%s\\\" kategoria ezabatu nahi duzu?</string>\n    <string name=\"action_remove_everything\">Guztia kendu</string>\n    <string name=\"label_stats\">Estatistikak</string>\n    <string name=\"label_started\">Hasia</string>\n    <string name=\"label_local\">Lokala</string>\n    <string name=\"label_downloaded\">Deskargatuak</string>\n    <string name=\"action_copy_to_clipboard\">Kopiatu arbelera</string>\n    <string name=\"action_not_now\">Orain ez</string>\n    <string name=\"delete_downloaded\">Ezabatu deskargatuak</string>\n    <string name=\"onboarding_storage_action_select\">Aukeratu karpeta bat</string>\n    <string name=\"action_apply\">Ezarri</string>\n    <string name=\"onboarding_storage_selection_required\">Karpeta bat aukeratu behar da</string>\n    <string name=\"onboarding_permission_notifications\">Notifikazioetarako baimena</string>\n    <string name=\"onboarding_permission_install_apps\">Aplikazioak instalatzeko baimena</string>\n    <string name=\"onboarding_heading\">Ongi etorri!</string>\n    <string name=\"action_update_category\">Kategoria eguneratu</string>\n    <string name=\"action_menu_overflow_description\">Aukera gehiago</string>\n    <string name=\"onboarding_guides_returning_user\">%s erabili duzu dagoeneko?</string>\n    <string name=\"selected\">Aukeratuak</string>\n    <string name=\"not_selected\">Aukeratu gabeak</string>\n    <string name=\"onboarding_action_next\">Hurrengoa</string>\n    <string name=\"action_bar_up_description\">Nabigatu gora</string>\n    <string name=\"action_display_show_continue_reading_button\">Jarraitu irakurtzen botoia</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"reading_list\">Irakurketa zerrenda</string>\n    <string name=\"unfinished_list\">Bukatu gabeko zerrenda</string>\n    <string name=\"action_set_interval\">Ezarri denbora-bitartea</string>\n    <string name=\"label_data_storage\">Datu eta memoria</string>\n    <string name=\"action_sort_last_manga_update\">Azkenengo egunearatze egiaztapena</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fa/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">آپدیت برای یک افرونه موجود است</item>\n        <item quantity=\"other\">آپدیت برای %d افرونه موجود است</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">قسمت های %1$s و 1 قسمت دیگر</item>\n        <item quantity=\"other\">‬قسمت های %1$s و %2$d قسمت دیگر‬</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">1 قسمت جدید</item>\n        <item quantity=\"other\">%1$d قسمت جدید</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">برای ۱ مانگا</item>\n        <item quantity=\"other\">برای %d مانگا</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d دسته</item>\n        <item quantity=\"other\">%d دسته</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">بعد از %1$s دقیقه</item>\n        <item quantity=\"other\">بعد از %1$s دقیقه</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">۱ عدد باقی مانده</item>\n        <item quantity=\"other\">%1$s عدد باقی مانده</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">در %1$s با %2$s خطا انجام شد</item>\n        <item quantity=\"other\">در %1$s با %2$s خطا انجام شد</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">۱ ردیاب</item>\n        <item quantity=\"other\">%d ردیاب</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">1 قسمت</item>\n        <item quantity=\"other\">%1$s قسمت</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">1 قسمت جا افتاده است</item>\n        <item quantity=\"other\">%d قسمت جا افتاده است</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">دیروز</item>\n        <item quantity=\"other\">%1$d روز پیش</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">قسمت خوانده نشده بعدی</item>\n        <item quantity=\"other\">%d قسمت خوانده نشده بعدی</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">قسمت بعدی</item>\n        <item quantity=\"other\">%d قسمت بعدی</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s قسمت گم شده</item>\n        <item quantity=\"other\">%1$s قسمت گم شده</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 روز</item>\n        <item quantity=\"other\">%d روز</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fa/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"update_check_notification_update_available\">نسخه جدید موجود است!</string>\n    <string name=\"update_check_notification_download_error\">خطا در دانلود</string>\n    <string name=\"update_check_notification_download_complete\">دانلود کامل شد</string>\n    <string name=\"update_check_notification_download_in_progress\">در حال دانلود…</string>\n    <string name=\"update_check_no_new_updates\">آپدیت جدیدی موجود نیست</string>\n    <string name=\"update_check_confirm\">دانلود</string>\n    <string name=\"file_select_backup\">فایل پشتیبان را انتخاب کنید</string>\n    <string name=\"file_select_cover\">عکس روی جلد را انتخاب کنید</string>\n    <string name=\"notification_first_add_to_library\">لطفا قبل این کار مانگای موردنظر را به کتابخانه اضافه کنید</string>\n    <string name=\"notification_cover_update_failed\">آپدیت عکس روی جلد با خطا مواجه شد</string>\n    <string name=\"notification_chapters_multiple\">قسمت های %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">قسمت %1$s و %2$d قسمت دیگر</string>\n    <string name=\"notification_chapters_single\">قسمت %1$s</string>\n    <string name=\"notification_new_chapters\">قسمت‌های جدید پیدا شدند</string>\n    <string name=\"download_queue_error\">دانلود قسمت ها با خطا مواجه شد. با مراجعه به بخش دانلودها می توانید دوباره تلاش کنید</string>\n    <string name=\"copy\">کپی</string>\n    <string name=\"migrate\">تغییر منبع</string>\n    <string name=\"migration_selection_prompt\">منبعی که میخواهید به آن منتقل شود را انتخاب کنید</string>\n    <string name=\"migration_dialog_what_to_include\">اطلاعاتی که می‌خواهید منتقل شود را انتخاب کنید</string>\n    <string name=\"recent_manga_time\">قسمت %1$s - %2$s</string>\n    <string name=\"updating_library\">درحال آپدیت کتابخانه</string>\n    <string name=\"page_list_empty_error\">صفحه ای یافت نشد</string>\n    <string name=\"transition_pages_error\">لود صفحات با خطا مواجه شد: %1$s</string>\n    <string name=\"transition_pages_loading\">درحال لود صفحات…</string>\n    <string name=\"transition_no_previous\">قسمت قبلی وجود ندارد</string>\n    <string name=\"transition_no_next\">قسمت بعدی وجود ندارد</string>\n    <string name=\"transition_previous\">قبلی:</string>\n    <string name=\"transition_next\">بعدی:</string>\n    <string name=\"transition_current\">فعلی:</string>\n    <string name=\"transition_finished\">تمام شده:</string>\n    <string name=\"viewer\">حالت خواندن</string>\n    <string name=\"confirm_set_image_as_cover\">این عکس، به عنوان عکس روی جلد تنظیم شود؟</string>\n    <string name=\"no_next_chapter\">قسمت بعدی یافت نشد</string>\n    <string name=\"chapter_progress\">صفحه: %1$d</string>\n    <string name=\"cover_updated\">عکس روی جلد بروزرسانی شد</string>\n    <string name=\"set_as_cover\">تنظیم به عنوان عکس روی جلد</string>\n    <string name=\"custom_filter\">فیلتر سفارشی</string>\n    <string name=\"picture_saved\">عکس ذخیره شد</string>\n    <string name=\"dialog_with_checkbox_reset\">ریست اطلاعات همه قسمت های این مانگا</string>\n    <string name=\"dialog_with_checkbox_remove_description\">با این کار تاریخ خواندن این قسمت حذف می شود. مطمئنید؟</string>\n    <string name=\"snack_categories_deleted\">دسته بندی ها حذف شدند</string>\n    <string name=\"error_category_exists\">دسته بندی با این نام قبلا ساخته شده است!</string>\n    <string name=\"track_type\">نوع</string>\n    <string name=\"track_status\">وضعیت</string>\n    <string name=\"status\">وضعیت</string>\n    <string name=\"title\">عنوان</string>\n    <string name=\"score\">امتیاز</string>\n    <string name=\"repeating\">در حال بازخوانی(Rereading)</string>\n    <string name=\"paused\">متوقف شده(Paused)</string>\n    <string name=\"on_hold\">نگه داشته شده(On hold)</string>\n    <string name=\"dropped\">رها شده (Dropped)</string>\n    <string name=\"completed\">تکمیل شده(Completed)</string>\n    <string name=\"reading\">درحال خواندن(Reading)</string>\n    <string name=\"add_tracking\">اضافه کردن ردیابی</string>\n    <string name=\"manga_tracking_tab\">ردیابی</string>\n    <string name=\"confirm_delete_chapters\">آیا مطمئنید که می خواهید قسمت های انتخاب شده را حذف کنید؟</string>\n    <string name=\"download_unread\">خوانده نشده</string>\n    <string name=\"manga_download\">دانلود شود</string>\n    <string name=\"sort_by_upload_date\">بر اساس تاریخ آپلود</string>\n    <string name=\"pref_cutout_short\">نمایش محتوا در منطقه برش خورده</string>\n    <string name=\"track\">ردیابی</string>\n    <string name=\"sort_by_source\">بر اساس عنوان منبع</string>\n    <string name=\"sort_by_number\">بر اساس شماره قسمت</string>\n    <string name=\"show_chapter_number\">شماره قسمت</string>\n    <string name=\"show_title\">عنوان منبع</string>\n    <string name=\"chapter_paused\">متوقف</string>\n    <string name=\"chapter_error\">خطا</string>\n    <string name=\"chapter_downloading_progress\">درحال بارگیری (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">قسمت %1$s</string>\n    <string name=\"snack_add_to_library\">مانگا به کتابخانه اضافه شود؟</string>\n    <string name=\"source_not_installed\">منبع نصب نشده است: %1$s</string>\n    <string name=\"copied_to_clipboard\">کپی شد:\n\\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">قسمتهای بارگیری شده را نیز حذف شوند؟</string>\n    <string name=\"manga_info_collapse\">نمایش اطلاعات کمتر</string>\n    <string name=\"manga_info_expand\">نمایش اطلاعات بیشتر</string>\n    <string name=\"manga_removed_library\">از کتابخانه حذف شد</string>\n    <string name=\"manga_added_library\">به کتابخانه اضافه شد</string>\n    <string name=\"remove_from_library\">حذف از کتابخانه</string>\n    <string name=\"in_library\">در کتابخانه</string>\n    <string name=\"tracking_info\">برای به روز رسانی وضعیت پیشرفت قسمت ها، در سایت های خدمات ردیابی، همگام سازی یک طرفه انجام دهید. برای ردیابی هر داده از تب ردیابی اقدام کنید.</string>\n    <string name=\"webtoon_viewer\">وب تون(Webtoon)</string>\n    <string name=\"filter_mode_darken\">Burn / Darken</string>\n    <string name=\"filter_mode_lighten\">Dodge / Lighten</string>\n    <string name=\"update_12hour\">هر ۱۲ ساعت یکبار</string>\n    <string name=\"action_move_category\">انتخاب دسته بندی</string>\n    <string name=\"information_empty_category\">هیچ دسته بندی وجود ندارد. با زدن دکمه به علاوه دسته بندی جدیدی بسازید.</string>\n    <string name=\"information_empty_library\">کتابخانه شما خالی است</string>\n    <string name=\"information_no_recent_manga\">هیچ چیز مانگاای به تازگی خوانده شده</string>\n    <string name=\"information_no_recent\">هیچ قسمت جدیدی یافت نشد</string>\n    <string name=\"information_no_downloads\">لیست دانلود خالی است</string>\n    <string name=\"label_help\">راهنما</string>\n    <string name=\"label_extension_info\">اطلاعات افزونه</string>\n    <string name=\"label_extensions\">افزونه‌ها</string>\n    <string name=\"label_migration\">تغییر منبع</string>\n    <string name=\"label_backup\">پشتیبان گیری و بازیابی</string>\n    <string name=\"label_sources\">منابع</string>\n    <string name=\"label_recent_manga\">سابقه</string>\n    <string name=\"label_recent_updates\">به روز رسانی‌ها</string>\n    <string name=\"label_library\">کتابخانه</string>\n    <string name=\"label_download_queue\">صف دانلود</string>\n    <string name=\"label_settings\">تنظیمات</string>\n    <string name=\"label_more\">بیشتر</string>\n    <string name=\"name\">نام</string>\n    <string name=\"add_to_library\">افزودن به کتابخانه</string>\n    <string name=\"licensed\">مجوزدار</string>\n    <string name=\"unknown\">نامعلوم</string>\n    <string name=\"ongoing\">در حال پخش</string>\n    <string name=\"local_source_help_guide\">راهنمای منبع محلی</string>\n    <string name=\"browse\">مرور</string>\n    <string name=\"latest\">جدیدترین</string>\n    <string name=\"action_global_search_hint\">جست و جو در تمام منابع…</string>\n    <string name=\"pinned_sources\">منابع پین شده</string>\n    <string name=\"last_used_source\">آخرین استفاده</string>\n    <string name=\"other_source\">دیگر</string>\n    <string name=\"local_source\">منبع محلی</string>\n    <string name=\"no_results_found\">هیچ نتیجه ای یافت نشد</string>\n    <string name=\"no_more_results\">نتیجه بیشتری یافت نشد</string>\n    <string name=\"tabs_header\">تب ها</string>\n    <string name=\"pref_backup_interval\">زمان پشتیبان گیری</string>\n    <string name=\"pref_restore_backup_summ\">بازگرداندن کتابخانه از فایل پشتیبان</string>\n    <string name=\"pref_restore_backup\">برگرداندن نسخه پشتیبان</string>\n    <string name=\"pref_create_backup_summ\">می تواند برای بازگرداندن کتابخانه فعلی استفاده شود</string>\n    <string name=\"pref_create_backup\">تهیه نسخه پشتیبان</string>\n    <string name=\"services\">خدمات</string>\n    <string name=\"pref_auto_update_manga_sync\">بعد از خوانده‌شدن، وضعیت قسمت بروزرسانی شود</string>\n    <string name=\"pref_download_new\">دانلود قسمت‌های جدید</string>\n    <string name=\"fifth_to_last\">پنجم به آخرین قسمت خوانده‌شده</string>\n    <string name=\"fourth_to_last\">چهارم به آخرین قسمت خوانده‌شده</string>\n    <string name=\"third_to_last\">سوم به آخرین قسمت خوانده‌شده</string>\n    <string name=\"second_to_last\">دوم به آخرین قسمت خوانده‌شده</string>\n    <string name=\"last_read_chapter\">آخرین قسمت خوانده شده</string>\n    <string name=\"disabled\">غیرفعال شده</string>\n    <string name=\"pref_remove_after_read\">بعد از خواندن به‌صورت خودکار پاک کن</string>\n    <string name=\"pref_remove_after_marked_as_read\">بعد از آن‌هایی که به صورت دستی به عنوان خوانده‌شده علامت‌گذاری شده‌اند</string>\n    <string name=\"pref_webtoon_side_padding\">فاصله از کنار صفحه</string>\n    <string name=\"pref_category_reading\">درحال خواندن</string>\n    <string name=\"pref_always_show_chapter_transition\">همیشه انتقال قسمت را نشان داده شود</string>\n    <string name=\"pref_category_for_this_series\">برای این مجموعه</string>\n    <string name=\"decode_image_error\">بازکردن عکس با خطا مواجه شد</string>\n    <string name=\"plan_to_read\">قصد خواندن دارم(Plan to read)</string>\n    <string name=\"scale_type_smart_fit\">هم اندازه حالت هوشمند</string>\n    <string name=\"filter_mode_multiply\">Multiply</string>\n    <string name=\"filter_mode_overlay\">Overlay</string>\n    <string name=\"pref_double_tap_anim_speed\">Double tap animation speed</string>\n    <string name=\"ext_install\">نصب</string>\n    <string name=\"action_bookmark\">نشانک قسمت</string>\n    <string name=\"channel_ext_updates\">آپدیت افزونه‌ها</string>\n    <string name=\"channel_new_chapters\">به روزرسانی قسمت‌ها</string>\n    <string name=\"channel_common\">عمومی</string>\n    <string name=\"download_notifier_download_paused\">دانلود متوقف شد</string>\n    <string name=\"download_notifier_no_network\">اتصال شبکه در دسترس نیست</string>\n    <string name=\"download_notifier_text_only_wifi\">اتصال وای فای در دسترس نیست</string>\n    <string name=\"download_notifier_unknown_error\">به علت خطای غیرمنتظره بارگیری این چپتر، ممکن نیست</string>\n    <string name=\"download_notifier_title_error\">خطا</string>\n    <string name=\"download_notifier_downloader_title\">سیستم دانلود کننده</string>\n    <string name=\"information_webview_outdated\">لطفا برنامه وب نما را برای سازگاری بهتر آپدیت کنید</string>\n    <string name=\"information_webview_required\">وب نما برای تاچیومی مورد نیاز است</string>\n    <string name=\"information_cloudflare_bypass_failure\">عدم موفقیت در دور زدن کولدفیر</string>\n    <string name=\"color_filter_a_value\">opacity</string>\n    <string name=\"color_filter_b_value\">آبی</string>\n    <string name=\"color_filter_g_value\">سبز</string>\n    <string name=\"color_filter_r_value\">قرمز</string>\n    <string name=\"rotation_force_landscape\">افقی قفل‌شده</string>\n    <string name=\"rotation_force_portrait\">عمودی قفل‌شده</string>\n    <string name=\"rotation_free\">آزاد</string>\n    <string name=\"pref_rotation_type\">حالت دوران پیش‌فرض</string>\n    <string name=\"double_tap_anim_speed_fast\">سریع</string>\n    <string name=\"double_tap_anim_speed_normal\">عادی</string>\n    <string name=\"double_tap_anim_speed_0\">بدون انیمیشن</string>\n    <string name=\"zoom_start_center\">مرکز</string>\n    <string name=\"zoom_start_right\">راست</string>\n    <string name=\"zoom_start_left\">چپ</string>\n    <string name=\"zoom_start_automatic\">خودکار</string>\n    <string name=\"pref_zoom_start\">موقعیت شروع بزرگنمایی</string>\n    <string name=\"scale_type_original_size\">اندازه اصلی</string>\n    <string name=\"scale_type_fit_height\">هم اندازه با طول</string>\n    <string name=\"scale_type_fit_width\">هم اندازه با عرض</string>\n    <string name=\"scale_type_stretch\">کشیده</string>\n    <string name=\"scale_type_fit_screen\">هم اندازه با صفحه نمایش</string>\n    <string name=\"pref_image_scale_type\">نوع مقیاس</string>\n    <string name=\"pager_viewer\">صفحه به صفحه</string>\n    <string name=\"vertical_plus_viewer\">عمودی پیوسته</string>\n    <string name=\"vertical_viewer\">عمودی</string>\n    <string name=\"right_to_left_viewer\">راست به چپ</string>\n    <string name=\"left_to_right_viewer\">چپ به راست</string>\n    <string name=\"pref_viewer_type\">حالت پیش فرض خواندن</string>\n    <string name=\"black_background\">سیاه</string>\n    <string name=\"gray_background\">خاکستری</string>\n    <string name=\"white_background\">سفید</string>\n    <string name=\"pref_reader_theme\">رنگ پس زمینه</string>\n    <string name=\"pref_read_with_long_tap\">با لمس طولانی نشان بده</string>\n    <string name=\"pref_read_with_volume_keys\">دکمه‌های صدا</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">معکوس کردن دکمه‌های صدا</string>\n    <string name=\"pref_reader_navigation\">نوار ناوبری Navigation</string>\n    <string name=\"pref_skip_filtered_chapters\">پرش ازز قسمت‌های فیلتر شده</string>\n    <string name=\"pref_skip_read_chapters\">پرش از قسمت‌هایی که خوانده شده اند</string>\n    <string name=\"pref_keep_screen_on\">روشن نگه داشتن صفحه نمایش</string>\n    <string name=\"filter_mode_screen\">صفحه نمایش</string>\n    <string name=\"pref_color_filter_mode\">حالت blend فیلتر رنگ</string>\n    <string name=\"pref_custom_color_filter\">استفاده از فیلتر رنگ سفارشی</string>\n    <string name=\"pref_custom_brightness\">استفاده از سیستم روشنایی سفارشی</string>\n    <string name=\"pref_crop_borders\">بریدن حاشیه‌ها</string>\n    <string name=\"pref_show_reading_mode_summary\">هنگام باز شدن کتابخوان ، حالت فعلی را به طور خلاصه نشان داده شود</string>\n    <string name=\"pref_show_reading_mode\">نمایش حالت خواندن</string>\n    <string name=\"pref_show_page_number\">نمایش شماره صفحه</string>\n    <string name=\"pref_page_transitions\">انمیشن‌های تغییر صفحه</string>\n    <string name=\"pref_fullscreen\">تمام صفحه</string>\n    <string name=\"obsolete_extension_message\">این افزونه دیگر در دسترس نیست. ممکن است به درستی کار نکند و باعث ایجاد مشکلاتی در برنامه شود. حذف نصب آن توصیه می شود.</string>\n    <string name=\"untrusted_extension_message\">یک افزونه مخرب می تواند هر گونه طلاعات ورود به سیستم زخیره شده را بخواند یا اختیاری یک کد را اجرا کند.\n\\n\n\\nبا اعتماد به این گواهی شما این خطرات را می‌پذیرید.</string>\n    <string name=\"untrusted_extension\">افزونه نامطمئن</string>\n    <string name=\"ext_uninstall\">حذف نصب</string>\n    <string name=\"ext_untrusted\">نامطمئن</string>\n    <string name=\"ext_trust\">مورد اعتماد</string>\n    <string name=\"ext_installed\">نصب شده</string>\n    <string name=\"ext_installing\">در حال نصب</string>\n    <string name=\"ext_downloading\">در حال بارگیری</string>\n    <string name=\"ext_pending\">در انتظار</string>\n    <string name=\"ext_obsolete\">منسوخ شده</string>\n    <string name=\"ext_update\">آپدیت</string>\n    <string name=\"ext_updates_pending\">آپدیت‌های در انتظار</string>\n    <string name=\"all\">همه</string>\n    <string name=\"default_category_summary\">همیشه بپرس</string>\n    <string name=\"default_category\">دسته بندی پیشفرض</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">هنگام آپدیت عکس روی جلد و اطلاعات مانگا ها (در صورت تغییر) آپدیت شوند</string>\n    <string name=\"pref_library_update_refresh_metadata\">متادیتا فقط به صورت خودکار آپدیت شود</string>\n    <string name=\"pref_update_only_non_completed\">با وضعیت \\\"کامل‌شده\\\"</string>\n    <string name=\"charging\">هنگام شارژ کردن</string>\n    <string name=\"pref_library_update_restriction\">محدودیت‌های دستگاهی به‌روزرسانی‌ خودکار</string>\n    <string name=\"update_weekly\">هفتگی</string>\n    <string name=\"update_48hour\">هر ۴۸ ساعت یکبار</string>\n    <string name=\"update_24hour\">هر ۲۴ ساعت یکبار</string>\n    <string name=\"update_6hour\">هر ۶ ساعت یکبار</string>\n    <string name=\"update_never\">خاموش</string>\n    <string name=\"pref_library_update_interval\">به‌روزرسانی‌های خودکار</string>\n    <string name=\"pref_category_library_update\">به‌روزرسانی همگانی</string>\n    <string name=\"landscape\">افقی</string>\n    <string name=\"portrait\">عمودی</string>\n    <string name=\"pref_library_columns\">موارد در هر ردیف</string>\n    <string name=\"pref_category_display\">نمایش</string>\n    <string name=\"hide_notification_content\">مخفی کردن اعلان‌ها</string>\n    <string name=\"secure_screen_summary\">\\\"صفحه نمایش امن\\\" محتویات برنامه را هنگام عوض کردن برنامه‌ها مخفی می‌کند و همچنین اسکرین‌شات را مسدود می‌کند</string>\n    <string name=\"secure_screen\">صفحه نمایش امن</string>\n    <string name=\"lock_never\">هرگز</string>\n    <string name=\"lock_always\">همیشه</string>\n    <string name=\"lock_when_idle\">قفل صفحه هنگام بیکاری</string>\n    <string name=\"lock_with_biometrics\">نیاز به باز کردن قفل</string>\n    <string name=\"pref_category_security\">امنیت</string>\n    <string name=\"pref_manage_notifications\">مدیریت اعلان‌ها</string>\n    <string name=\"pref_date_format\">فرمت تاریخ</string>\n    <string name=\"theme_dark\">روشن</string>\n    <string name=\"theme_light\">خاموش</string>\n    <string name=\"theme_system\">تم پیش‌فرض سیستم</string>\n    <string name=\"pref_category_about\">درباره</string>\n    <string name=\"pref_category_advanced\">پیشرفته</string>\n    <string name=\"pref_category_tracking\">ردیابی</string>\n    <string name=\"pref_category_downloads\">بارگیری ها</string>\n    <string name=\"pref_category_reader\">کتابخوان</string>\n    <string name=\"pref_category_library\">کتابخانه</string>\n    <string name=\"pref_category_general\">عمومی</string>\n    <string name=\"app_not_available\">برنامه موجود نیست</string>\n    <string name=\"loading\">درحال بارگیری…</string>\n    <string name=\"action_webview_refresh\">بازآوری‌</string>\n    <string name=\"action_webview_forward\">رو به جلو</string>\n    <string name=\"action_webview_back\">بازگشت</string>\n    <string name=\"action_restore\">بازیابی</string>\n    <string name=\"action_open_log\">بازکردن log</string>\n    <string name=\"action_undo\">خنثی کردن (Undo)</string>\n    <string name=\"action_reset\">از اول</string>\n    <string name=\"action_save\">ذخيره</string>\n    <string name=\"action_share\">اشتراک گذاری</string>\n    <string name=\"action_install\">نصب</string>\n    <string name=\"action_move_to_bottom\">جابه‌جایی به پایین</string>\n    <string name=\"action_move_to_top\">جابه‌جایی به بالا</string>\n    <string name=\"action_oldest\">قدیمی ترین</string>\n    <string name=\"action_newest\">جدیدترین</string>\n    <string name=\"action_sort\">مرتب سازی</string>\n    <string name=\"action_cancel_all\">لغو همه</string>\n    <string name=\"action_cancel\">لغو</string>\n    <string name=\"action_unpin\">برداشتن پین</string>\n    <string name=\"action_pin\">پین</string>\n    <string name=\"action_display_show_tabs\">نمایش برگه های دسته بندی</string>\n    <string name=\"action_display_download_badge\">قسمت‌های دانلود شده</string>\n    <string name=\"action_display_comfortable_grid\">چشم نواز</string>\n    <string name=\"action_display_list\">لیست</string>\n    <string name=\"action_display_grid\">فشرده</string>\n    <string name=\"action_display\">نمایش</string>\n    <string name=\"action_display_mode\">حالت نمایش</string>\n    <string name=\"action_migrate\">تغییر منبع</string>\n    <string name=\"action_open_in_web_view\">در WebView باز کنید</string>\n    <string name=\"action_open_in_browser\">باز کردن در مرورگر</string>\n    <string name=\"action_resume\">ازسرگیری</string>\n    <string name=\"action_start\">آغاز</string>\n    <string name=\"action_remove\">حذف</string>\n    <string name=\"action_retry\">تلاش دوباره</string>\n    <string name=\"action_next_chapter\">قسمت بعد</string>\n    <string name=\"action_previous_chapter\">قسمت قبل</string>\n    <string name=\"action_pause\">مکث</string>\n    <string name=\"action_view_chapters\">مشاهده قسمت ها</string>\n    <string name=\"updating_category\">درحال به روز رسانی دسته بندی ها</string>\n    <string name=\"unknown_error\">خطای ناشناخته</string>\n    <string name=\"logout_success\">شما خارج شدید</string>\n    <string name=\"logout\">خروج</string>\n    <string name=\"logout_title\">از%1$s خارج می شوید؟</string>\n    <string name=\"login_success\">وارد شدید</string>\n    <string name=\"login\">ورود</string>\n    <string name=\"password\">گذرواژه</string>\n    <string name=\"email\">آدرس ایمیل</string>\n    <string name=\"username\">نام کاربری</string>\n    <string name=\"login_title\">ورود به %1$s</string>\n    <string name=\"downloaded_only_summary\">همه مانگاهای موجود در کتابخانه را فیلتر می کند</string>\n    <string name=\"label_downloaded_only\">فقط دانلود شده ها</string>\n    <string name=\"pref_acra_summary\">به رفع اشکالات برنامه کمک می کند. هیچ گونه داده حساسی ارسال نخواهد شد</string>\n    <string name=\"pref_enable_acra\">ارسال گزارش های خرابی</string>\n    <string name=\"check_for_updates\">بررسی برای به آپدیت‌ها</string>\n    <string name=\"licenses\">مجوزهای منبع باز</string>\n    <string name=\"version\">نسخهٔ</string>\n    <string name=\"website\">وب سایت</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">تنظیمات دستگاه باز نشد</string>\n    <string name=\"battery_optimization_disabled\">بهینه سازی باتری از قبل غیرفعال شده است</string>\n    <string name=\"pref_disable_battery_optimization_summary\">به بروزرسانی‌ها و پشتیبان‌گیری از کتابخانه در حالت پس زمینه کمک می‌کند</string>\n    <string name=\"pref_disable_battery_optimization\">غیر فعال کردن بهینه سازی باتری</string>\n    <string name=\"pref_refresh_library_covers\">تازه کردن عکس روی جلد مانگاها</string>\n    <string name=\"clear_database_completed\">اطلاعات حذف شدند</string>\n    <string name=\"pref_clear_database_summary\">حذف سابقه برای مانگاهایی که در کتابخانه ذخیره نشده اند</string>\n    <string name=\"pref_clear_database\">پاک کردن پایگاه داده</string>\n    <string name=\"cookies_cleared\">کوکی ها پاک شدند</string>\n    <string name=\"pref_clear_cookies\">پاک کردن کوکی ها</string>\n    <string name=\"cache_delete_error\">هنگام پاک کردن حافظه نهان خطایی روی داد</string>\n    <string name=\"cache_deleted\">حافظه نهان پاک شد. %1$d فایل پاک شدند</string>\n    <string name=\"used_cache\">مصرف شده: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">پاک کردن حافظه پنهان قسمت‌ها</string>\n    <string name=\"label_data\">اطلاعات</string>\n    <string name=\"restoring_backup_canceled\">بازیابی لغو شده</string>\n    <string name=\"restoring_backup_error\">بازیابی نسخه پشتیبان ناموفق بود</string>\n    <string name=\"restoring_backup\">درحال بازگرداندن نسخه پشتیبان</string>\n    <string name=\"restore_in_progress\">بازیابی هنوز در حال انجام است</string>\n    <string name=\"creating_backup_error\">پشتیبان گیری ناموفق بود</string>\n    <string name=\"creating_backup\">درحال ایجاد نسخه پشتیبان</string>\n    <string name=\"backup_choice\">چه چیزی را می خواهید پشتیبان گیری کنید ؟</string>\n    <string name=\"backup_in_progress\">پشتیبان گیری هنوز در حال انجام است</string>\n    <string name=\"restore_duration\">%1$02d دقیقه, %2$02d ثانیه</string>\n    <string name=\"restore_completed\">بازیابی کامل شد</string>\n    <string name=\"backup_restore_missing_sources\">منابع ناموجود:</string>\n    <string name=\"invalid_backup_file_missing_manga\">فایل پشتیبان حاوی هیچ ورودی کتابخانه نیست.</string>\n    <string name=\"invalid_backup_file\">فایل پشتیبان نامعتبر است</string>\n    <string name=\"backup_created\">نسخه پشتیبان ایجاد شد</string>\n    <string name=\"action_edit_cover\">ویرایش عکس روی جلد</string>\n    <string name=\"action_rename_category\">تغییر نام دسته</string>\n    <string name=\"action_edit_categories\">ویرایش دسته ها</string>\n    <string name=\"action_add_category\">افزودن دسته</string>\n    <string name=\"action_add\">افزودن</string>\n    <string name=\"action_edit\">ویرایش</string>\n    <string name=\"action_disable_all\">غیر فعال کردن همه</string>\n    <string name=\"action_enable_all\">فعال کردن همه</string>\n    <string name=\"action_update_library\">آپدیت کتابخانه</string>\n    <string name=\"action_delete\">پاک کردن</string>\n    <string name=\"action_remove_bookmark\">حذف نشانک قسمت</string>\n    <string name=\"action_download\">دانلود شود</string>\n    <string name=\"action_mark_previous_as_read\">علامت گذاری قبلی‌ها به عنوان خوانده شده</string>\n    <string name=\"action_mark_as_unread\">علامت گذاری به عنوان خوانده نشده</string>\n    <string name=\"action_mark_as_read\">علامت گذاری به عنوان خوانده شده</string>\n    <string name=\"action_select_inverse\">معکوس کردن انتخاب شده</string>\n    <string name=\"action_select_all\">انتخاب همه</string>\n    <string name=\"action_global_search\">جست و جوی کامل</string>\n    <string name=\"action_search\">جست و جو</string>\n    <string name=\"action_sort_latest_chapter\">اخرین قسمت</string>\n    <string name=\"action_sort_last_read\">آخرین خوانده ‌شده</string>\n    <string name=\"action_sort_total\">کل قسمت‌ها</string>\n    <string name=\"action_sort_alpha\">الفبا</string>\n    <string name=\"action_filter_empty\">حذف فیلتر</string>\n    <string name=\"action_filter_unread\">خوانده ‌نشده</string>\n    <string name=\"action_filter_bookmarked\">بوک مارک شده</string>\n    <string name=\"action_filter\">فیلتر</string>\n    <string name=\"action_menu\">منو</string>\n    <string name=\"action_settings\">تنضیمات</string>\n    <string name=\"history\">تاریخچه</string>\n    <string name=\"chapters\">قسمت ها</string>\n    <string name=\"manga\">کتابخانه ورودی‌ها</string>\n    <string name=\"categories\">دسته بندی ها</string>\n    <string name=\"channel_errors\">خطاها</string>\n    <string name=\"channel_complete\">تکمیل شده</string>\n    <string name=\"channel_progress\">پیشرفت</string>\n    <string name=\"download_insufficient_space\">به دلیل فضای کم دیسک امکان دانلود قسمت ها وجود ندارد</string>\n    <string name=\"loader_not_implemented_error\">منبع یافت نشد</string>\n    <string name=\"unknown_status\">وضعیت ناشناخته</string>\n    <string name=\"unknown_author\">نویسنده ناشناخته</string>\n    <string name=\"no_pinned_sources\">شما هیچ منبع پین‌شده‌ای ندارید</string>\n    <string name=\"action_global_search_query\">«%1$s» در همه منابع جستجو شود</string>\n    <string name=\"whats_new\">موارد جدید</string>\n    <string name=\"requires_app_restart\">برای اعمال تغییرات، به راه اندازی مجدد برنامه نیاز است</string>\n    <string name=\"label_network\">شبکه</string>\n    <string name=\"backup_restore_missing_trackers\">ردیابی هایی که به سیستم وارد نشده اند:</string>\n    <string name=\"pref_category_reading_mode\">حالت خواندن</string>\n    <string name=\"pref_category_theme\">تم</string>\n    <string name=\"action_disable\">غیرفعال کردن</string>\n    <string name=\"action_sort_date_added\">تاریخ اضافه شدن</string>\n    <string name=\"updated_version\">به نسخه v%1$s آپدیت شد</string>\n    <string name=\"action_search_settings\">جست و جوی تنضیمات</string>\n    <string name=\"downloaded_chapters\">قسمت های دانلود شده</string>\n    <string name=\"manga_from_library\">مانگاهای کتابخانه</string>\n    <string name=\"pref_incognito_mode_summary\">متوقف کردن تاریخچه خواندن</string>\n    <string name=\"pref_incognito_mode\">حالت ناشناس</string>\n    <string name=\"clear_history_confirmation\">آیا مطمئن هستید؟ تمام سابقه از دست خواهد رفت.</string>\n    <string name=\"clear_history_completed\">سابقه پاک شد</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_category_nsfw_content\">منابع محتوای جنسی (+18)</string>\n    <string name=\"parental_controls_info\">این کار از نمایش محتوای 18+ (محتوای نامناسب) توسط افزونه‌های غیررسمی یا اشتباه برچسب‌خورده جلوگیری نمی‌کند.</string>\n    <string name=\"no_chapters_error\">هیچ قسمتی پیدا نشد</string>\n    <string name=\"set_chapter_settings_as_default\">تنظیم به عنوان پیشفرض</string>\n    <string name=\"also_set_chapter_settings_for_library\">همچنین برای تمام مانگاهای موجود در کتابخانه من اعمال شود</string>\n    <string name=\"confirm_set_chapter_settings\">آیا مطمئن هستید که می خواهید این تنظیمات را به صورت پیش فرض ذخیره کنید؟</string>\n    <string name=\"pref_remove_bookmarked_chapters\">اجازه‌ی پاک‌کردن قسمت‌های نشانک‌گذاری شده را بده</string>\n    <string name=\"pref_category_delete_chapters\">حذف قسمت ها</string>\n    <string name=\"ext_nsfw_warning\">منابع این افزونه ممکن است شامل محتوای نامناسب (+18) باشند</string>\n    <string name=\"spen_next_page\">صفحه بعدی</string>\n    <string name=\"spen_previous_page\">صفحه قبلی</string>\n    <string name=\"tapping_inverted_both\">هر دو</string>\n    <string name=\"tapping_inverted_vertical\">عمودی</string>\n    <string name=\"tapping_inverted_horizontal\">افقی</string>\n    <string name=\"tapping_inverted_none\">هیچ کدام</string>\n    <string name=\"pref_read_with_tapping_inverted\">منطقه‌های لمس را معکوس کن</string>\n    <string name=\"chapter_settings_updated\">تنظیمات پیش فرض چپتر به روز شد</string>\n    <string name=\"share_page_info\">%1$s: %2$s, صفحه %3$d</string>\n    <string name=\"myanimelist_relogin\">لطفا دوباره به MAL وارد شوید</string>\n    <string name=\"chapter_settings\">تنظیمات قسمت ها</string>\n    <string name=\"file_picker_error\">هیچ نرم افزار انتخاب فایلی یافت نشد</string>\n    <string name=\"migration_help_guide\">راهنمای تعویض منبع</string>\n    <string name=\"pref_clear_history\">پاک کردن سابقه</string>\n    <string name=\"pref_show_nsfw_source\">نمایش در لیست منابع و افزونه‌ها</string>\n    <string name=\"nav_zone_left\">چپ</string>\n    <string name=\"nav_zone_right\">راست</string>\n    <string name=\"ext_installer_legacy\">قدیمی</string>\n    <string name=\"ext_installer_pref\">نصب کننده</string>\n    <string name=\"pref_create_folder_per_manga_summary\">ساخت پوشه بر اساس عنوان ورودی</string>\n    <string name=\"ext_update_all\">آپدیت همگی</string>\n    <string name=\"label_background_activity\">فعالیت در پس زمینه</string>\n    <string name=\"action_sort_count\">مجموع ورودی ها</string>\n    <string name=\"label_default\">پیش فرض</string>\n    <string name=\"action_filter_tracked\">دنبال شده</string>\n    <string name=\"pref_create_folder_per_manga\">ذخیره صفحات در پوشه های جداگانه</string>\n    <string name=\"error_no_match\">هیچ مورد مشابهی پیدا نشد</string>\n    <string name=\"ext_install_service_notif\">در حال نصب کردن افزونه …</string>\n    <string name=\"extension_api_error\">دریافت لیست افزونه ها ناموفق بود</string>\n    <string name=\"label_warning\">اخطار</string>\n    <string name=\"confirm_lock_change\">احراز هویت جهت تایید تغییرات</string>\n    <string name=\"enhanced_services\">سرویس های بهینه شده</string>\n    <string name=\"unread\">خوانده نشده</string>\n    <string name=\"update_check_eol\">این نسخه آندروید دیگر پشتیبانی نمی‌شود</string>\n    <string name=\"update_check_open\">بازکردن در گیت هاب</string>\n    <string name=\"getting_started_guide\">راهنمای شروع</string>\n    <string name=\"information_empty_category_dialog\">شما هنوز هیچ دسته‌بندی ندارید.</string>\n    <string name=\"channel_app_updates\">بروزرسانی برنامه</string>\n    <string name=\"pref_navigate_pan\">هنگام ضربه زدن تصاویر را عریض کنید</string>\n    <string name=\"pref_landscape_zoom\">بزرگنمایی تصویر چشم انداز</string>\n    <string name=\"action_sort_last_manga_update\">بررسی آخرین به روزرسانی</string>\n    <string name=\"action_sort_unread_count\">تعداد نخوانده‌ها</string>\n    <string name=\"skipped_reason_completed\">به دلیل کامل‌بودن سری، رد شد</string>\n    <string name=\"action_display_local_badge\">منبع محلی</string>\n    <string name=\"action_display_show_number_of_items\">نمایش تعداد موارد</string>\n    <string name=\"action_desc\">نزولی</string>\n    <string name=\"pref_category_appearance\">ظاهر</string>\n    <string name=\"action_sort_chapter_fetch_date\">تاریخ گرفتن قسمت</string>\n    <string name=\"action_order_by_upload_date\">بر اساس تاریخ آپلود</string>\n    <string name=\"action_order_by_chapter_number\">بر اساس شماره‌ی قسمت</string>\n    <string name=\"action_asc\">صعودی</string>\n    <string name=\"action_display_language_badge\">زبان</string>\n    <string name=\"action_show_manga\">نمایش ورودی</string>\n    <string name=\"cancel_all_for_series\">لغو همه برای این سری</string>\n    <string name=\"pref_dark_theme_pure_black\">حالت تاریک مشکی خالص</string>\n    <string name=\"action_close\">بستن</string>\n    <string name=\"pref_app_theme\">تم برنامه</string>\n    <string name=\"theme_monet\">پویا</string>\n    <string name=\"theme_greenapple\">سیب سبز</string>\n    <string name=\"theme_midnightdusk\">غروب نیمه‌شب</string>\n    <string name=\"theme_strawberrydaiquiri\">داکری توت‌فرنگی</string>\n    <string name=\"theme_tealturquoise\">آبی و فیروزه‌ای</string>\n    <string name=\"theme_yinyang\">یین و یانگ</string>\n    <string name=\"theme_yotsuba\">یوتسوبا</string>\n    <string name=\"action_move_to_top_all_for_series\">انتقال سری به بالا</string>\n    <string name=\"action_start_downloading_now\">همین الان شروع به دانلود کن</string>\n    <string name=\"action_show_errors\">برای دیدن جزئیات لمس کنید</string>\n    <string name=\"network_not_metered\">فقط روی شبکه‌ی نامحدود</string>\n    <string name=\"pref_update_only_started\">که شروع نشده‌اند</string>\n    <string name=\"restrictions\">محدودیت‌ها: %s</string>\n    <string name=\"pref_update_only_completely_read\">با قسمت‌(های) خوانده‌نشده</string>\n    <string name=\"relative_time_today\">امروز</string>\n    <string name=\"update_72hour\">هر 3 روز</string>\n    <string name=\"connected_to_wifi\">فقط روی Wi-Fi</string>\n    <string name=\"categorized_display_settings\">تنظیمات بر اساس دسته‌بندی برای ترتیب و نمایش</string>\n    <string name=\"ext_app_info\">اطلاعات برنامه</string>\n    <string name=\"pref_dual_page_invert\">معکوس کردن جای دو صفحه‌ی تقسیم شده</string>\n    <string name=\"nav_zone_next\">بعدی</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku در حال اجرا نمی‌باشد</string>\n    <string name=\"pref_show_navigation_mode_summary\">یک لحظه هنگام باز شدن متن‌خوان نمایش بده</string>\n    <string name=\"ext_info_version\">نسخه</string>\n    <string name=\"ext_info_language\">زبان</string>\n    <string name=\"ext_info_age_rating\">رده‌بندی سنی</string>\n    <string name=\"kindlish_nav\">شبیه Kindle</string>\n    <string name=\"rotation_landscape\">افقی</string>\n    <string name=\"rotation_reverse_portrait\">عمودی معکوس</string>\n    <string name=\"pref_hide_threshold\">حساسیت مخفی کردن منو هنگام بالا و پایین بردن صفحه</string>\n    <string name=\"pref_highest\">بالاترین</string>\n    <string name=\"pref_remove_exclude_categories\">دسته‌بندی‌های محذوف</string>\n    <string name=\"pref_high\">بالا</string>\n    <string name=\"pref_dual_page_split\">تقسیم صفحات عریض</string>\n    <string name=\"pref_dual_page_invert_summary\">اگر محل قرارگیری صفحات عریض تقسیم شده با حالت خواندن مطابقت نداشته باشد</string>\n    <string name=\"pref_grayscale\">سیاه و سفید</string>\n    <string name=\"pref_inverted_colors\">معکوس‌شده</string>\n    <string name=\"pref_reader_actions\">اقدامات</string>\n    <string name=\"automatic_background\">خودکار</string>\n    <string name=\"l_nav\">L شکل</string>\n    <string name=\"rotation_type\">حالت دوران</string>\n    <string name=\"rotation_portrait\">عمودی</string>\n    <string name=\"pref_low\">پایین</string>\n    <string name=\"action_display_cover_only_grid\">الگوی فقط جلد</string>\n    <string name=\"pref_lowest\">پایین‌ترین</string>\n    <string name=\"pref_viewer_nav\">مناطق قابل لمس</string>\n    <string name=\"on\">روشن</string>\n    <string name=\"theme_tako\">تاکو</string>\n    <string name=\"off\">خاموش</string>\n    <string name=\"pref_show_navigation_mode\">مناطق قابل لمس را نشان بده</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">برای استفاده از Shizuku به عنوان یک نصب‌کننده‌ی افزونه، آن را نصب و اجرا کنید.</string>\n    <string name=\"disabled_nav\">غیر فعال</string>\n    <string name=\"nav_zone_prev\">قبلی</string>\n    <string name=\"right_and_left_nav\">راست و چپ</string>\n    <string name=\"edge_nav\">لبه</string>\n    <string name=\"pref_category_auto_download\">دانلود خودکار</string>\n    <string name=\"none\">هیچ‌کدام</string>\n    <string name=\"include\">شامل: %s</string>\n    <string name=\"exclude\">بدون: %s</string>\n    <string name=\"pref_library_update_categories_details\">ورودی هایی که در دسته‌بندی های حذف‌شده هستند، حتی اگر هم‌زمان در دسته‌بندی های مشمول باشند به‌روزرسانی نمی‌شوند.</string>\n    <string name=\"save_chapter_as_cbz\">ذخیره به عنوان فایل آرشیو CBZ</string>\n    <string name=\"publishing_finished\">انتشار به پایان رسید</string>\n    <string name=\"local_invalid_format\">قالب فصل نامعتبر است</string>\n    <string name=\"cancelled\">لغو شد</string>\n    <string name=\"pref_security_summary\">قفل برنامه، صفحه امن</string>\n    <string name=\"pref_advanced_summary\">گزارش‌های خرابی، بهینه‌سازی باتری</string>\n    <string name=\"theme_lavender\">ارغوانی</string>\n    <string name=\"theme_tidalwave\">تم جزر و مدی</string>\n    <string name=\"pref_app_language\">زبان برنامه</string>\n    <string name=\"invalid_location\">مکان نامعتبر: %s</string>\n    <string name=\"pref_download_new_categories_details\">ورودی ها در دسته بندی های حذف شده حتی اگر در دسته بندی های در نظر گرفته شده نیز باشند، دانلود نخواهند شد.</string>\n    <string name=\"pref_appearance_summary\">قالب تم، تاریخ و زمان</string>\n    <string name=\"pref_library_summary\">دسته‌ها، به روز رسانی سراسری</string>\n    <string name=\"pref_reader_summary\">حالت خواندن، نمایش، نوار وضعیت</string>\n    <string name=\"pref_tracking_summary\">همگام سازی پیشرفت یک طرفه، همگام سازی پیشرفته</string>\n    <string name=\"multi_lang\">چند</string>\n    <string name=\"delete_category_confirmation\">آیا می خواهید دسته \\\"%s\\\" را حذف کنید؟</string>\n    <string name=\"delete_category\">حذف دسته</string>\n    <string name=\"download_ahead\">بارگیری شود</string>\n    <string name=\"auto_download_while_reading\">دانلود خودکار در حین خواندن</string>\n    <string name=\"action_search_hint\">جستجو…</string>\n    <string name=\"action_open_random_manga\">باز کردن ورودی تصادفی</string>\n    <string name=\"action_remove_everything\">حذف همه‌چیز</string>\n    <string name=\"internal_error\">خطای داخلی: برای اطلاعات بیشتر گزارش خطا را بررسی کنید</string>\n    <string name=\"pref_downloads_summary\">دانلود خودکار، دانلود از قبل</string>\n    <string name=\"pref_browse_summary\">منابع، برنامه های افزودنی، جستجوی سراسری</string>\n    <string name=\"pref_backup_summary\">پشتیبان گیری دستی و خودکار</string>\n    <string name=\"pref_library_update_show_tab_badge\">نمایش تعداد خوانده نشده در نماد به‌روزرسانی‌ها</string>\n    <string name=\"label_stats\">آمار</string>\n    <string name=\"label_started\">من شروع کردم</string>\n    <string name=\"label_local\">شیرین شده</string>\n    <string name=\"label_downloaded\">دانلود شد</string>\n    <string name=\"action_not_now\">الان نه</string>\n    <string name=\"action_display_show_continue_reading_button\">نمایش دکمه ادامه خواندن</string>\n    <string name=\"split_tall_images_summary\">بهبود کارکرد ابزار خواندن</string>\n    <string name=\"download_ahead_info\">اگر قسمت فعلی و بعدی دانلود شده باشند، تنها برای ورودی‌های کتابخانه کار می‌کند</string>\n    <string name=\"missing_storage_permission\">اجازه دسترسی به حافظه داده نشده.</string>\n    <string name=\"backup_restore_content_full\">داده ها از فایل پشتیبان برگردانده میشوند.\n\\n\n\\nلازم است که افزونه های جا مانده را دستی نصب کنید و وارد یک سرویس دنبال کننده شوید تا بتوانید پیشرفت هر کار را ذخیره کنید.</string>\n    <string name=\"tracking_guide\">راهنمای ردیابی</string>\n    <string name=\"pref_skip_dupe_chapters\">چپتر های تکراری را رد کن</string>\n    <string name=\"enhanced_tracking_info\">فعالسازی سرویس پیشرفته برای منابعی که پشتیبانی کنند. کار های افزوده شده به کتابخانه به صورت خودکار ردگیری میشوند.</string>\n    <string name=\"action_track\">ردگیری</string>\n    <string name=\"empty_backup_error\">هیچ داده کتابخانه ای نیست که پشتیبانی شود</string>\n    <string name=\"restore_miui_warning\">پشتیبانی/بازگردانی ممکن است کار نکند اگر بهینه‌سازی MIUI غیر فعال باشد</string>\n    <string name=\"enhanced_services_not_installed\">در دسترس است اما افزونه منبع نصب نشده است: %s</string>\n    <string name=\"backup_info\">شما باید از پشتیبانی ها در جا های دیگر هم کپی داشته باشید.</string>\n    <string name=\"action_update_category\">بروزرسانی دسته بندی</string>\n    <string name=\"action_copy_to_clipboard\">کپی کردن به کلیپ‌برد</string>\n    <string name=\"on_hiatus\">متوقف شده</string>\n    <string name=\"unlock_app_title\">باز گشایی %s</string>\n    <string name=\"delete_downloaded\">پاک کردن قسمت های دانلود شده</string>\n    <string name=\"action_apply\">ذخیره</string>\n    <string name=\"action_revert_to_default\">باز نشانی به حالت اولیه</string>\n    <string name=\"action_menu_overflow_description\">گزینه های بیشتر</string>\n    <string name=\"selected\">انتخاب شده</string>\n    <string name=\"not_selected\">انتخاب نشده</string>\n    <string name=\"action_move_to_bottom_all_for_series\">مجموعه ها را به پایین منطقل کن</string>\n    <string name=\"action_bar_up_description\">برو به بالا</string>\n    <string name=\"action_sort_tracker_score\">امتیاز رهگیز</string>\n    <string name=\"label_data_storage\">داده های و ذخیره سازی</string>\n    <string name=\"action_ok\">باشه</string>\n    <string name=\"action_sort_next_updated\">به روز رسانی مورد انتظار بعدی</string>\n    <string name=\"download_queue_size_warning\">هشدار: حجم زیاد بارگیری ممکن است باعث اهسته تر شدن سرعت ویا مسدود کردن %s از منبع شود. برای اطلاعات بیشتر لمس کنید.</string>\n    <string name=\"skipped_reason_not_always_update\">به دلیل این که این مجموعه نیازی به به روز رسانی نداشت رد شد</string>\n    <string name=\"skipped_reason_not_caught_up\">به دلیل وجود چپتر های خوانده نشده رد شد</string>\n    <string name=\"skipped_reason_not_started\">به دلیل این که هیچ چپتری خوانده نشده بود رد شد</string>\n    <string name=\"notification_update_error\">%1$d بروز رسانی ناموفق</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" به جای \\\"%2$s\\\"</string>\n    <string name=\"pref_page_rotate\">صفحات عریض را بچرخان تا جا شوند</string>\n    <string name=\"popular\">محبوب</string>\n    <string name=\"pref_chapter_swipe_end\">حرکت کشیدن به راست</string>\n    <string name=\"pref_flash_page\">در هنگام عوض شدن صفحه فلاش سفید بزن</string>\n    <string name=\"pref_chapter_swipe_start\">حرکت کشیدن به چپ</string>\n    <string name=\"updates_last_update_info\">آخرین به روز رسانی کتابخانه: %s</string>\n    <string name=\"pref_update_only_in_release_period\">خارج از دوره انتشار موزد انتظار</string>\n    <string name=\"pref_double_tap_zoom\">برای بزرگ نمایی دوبار ضربه بزنید</string>\n    <string name=\"action_filter_interval_custom\">تناوب به روز رسانی شخسی سازی شده</string>\n    <string name=\"onboarding_heading\">خوش آمدید!</string>\n    <string name=\"onboarding_description\">بیاید برخی چیز ها را تنظیم کنیم. شما همیشه میتوانید این تنظیمات را در بخش تنظیمات تغییر دهید.</string>\n    <string name=\"onboarding_action_next\">بعدی</string>\n    <string name=\"onboarding_permission_install_apps_description\">برای نصب افزانه منبع.</string>\n    <string name=\"onboarding_permission_notifications\">دسترسی اعلان ها</string>\n    <string name=\"onboarding_permission_notifications_description\">برای به روز رسانی های کتابخانه و بیشتر مطلع شوید.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">استفاده از باطری</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">از وقفه در به روز رسانی های کتاب خانه، بارگیری و پشتیبان گیری های طولانی اجتناب کنید.</string>\n    <string name=\"onboarding_permission_action_grant\">اعطا کردن</string>\n    <string name=\"onboarding_guides_new_user\">به %s نا آشنا هستید؟ ما پیشنهاد میکنیم تا یک سر به راهنمای شروع بزنید.</string>\n    <string name=\"onboarding_guides_returning_user\">نصب مجدد %s؟</string>\n    <string name=\"pref_relative_format\">زمان بندی های نسبی</string>\n    <string name=\"pref_library_update_smart_update\">به روز رسانی هوشمند</string>\n    <string name=\"ext_revoke_trust\">لغو اعتماد افزونه های ناشناخته</string>\n    <string name=\"label_extension_repos\">مخازن افزونه ها</string>\n    <string name=\"action_add_repo\">اضافه کردن مخزن</string>\n    <string name=\"label_add_repo_input\">آدرس مخزن</string>\n    <string name=\"error_repo_exists\">این مخزن در حال حاضر وجود دارد!</string>\n    <string name=\"action_delete_repo\">حذف مخزن</string>\n    <string name=\"invalid_repo_name\">آدرس مخزن بی اعتبار است</string>\n    <string name=\"delete_repo_confirmation\">آشا شما میخواهید تا \\\"%s\\\" مخزن را حذف کنید؟</string>\n    <string name=\"pref_page_rotate_invert\">جهت چرخش صفحات گسترده را برعکس کن</string>\n    <string name=\"no_location_set\">مکان ذخیره سازی تنظیم نشده است</string>\n    <string name=\"split_tall_images\">عکس های بلند را تقسیم کن</string>\n    <string name=\"track_activity_name\">ورود به ناضر</string>\n    <string name=\"pref_hide_in_library_items\">اجرای داخل کتاب خانه را مخفی کن</string>\n    <string name=\"pref_storage_location\">محل زخیره سازی</string>\n    <string name=\"onboarding_action_finish\">شروع کنید</string>\n    <string name=\"onboarding_action_skip\">پرش</string>\n    <string name=\"ext_permission_install_apps_warning\">مجوز برای نصب افزونه ها لازم است. به اینجا ضربه بزنید تا اعطا کنید.</string>\n    <string name=\"action_add_repo_message\">به %s مخازن اضافی اضافه کنید. این باید یک آدرس باشد که با \\\"index.min.json\\\" تمام شود.</string>\n    <string name=\"information_empty_repos\">شما هیچ مخزنی برای تنظیم ندارید.</string>\n    <string name=\"action_open_repo\">مخزن منبع باز</string>\n    <string name=\"pref_flash_page_summ\">مقدار رد باقی مانده در نمایش گر های E-ink کاهش میابد</string>\n    <string name=\"onboarding_storage_action_select\">انتخاب یک پوشه</string>\n    <string name=\"onboarding_storage_selection_required\">یک پوشه باید انتخاب شود</string>\n    <string name=\"onboarding_storage_help_action\">راهنمای زخیره سازی</string>\n    <string name=\"onboarding_permission_install_apps\">مجوز نصب برنامه ها</string>\n    <string name=\"action_create\">ایجاد کردن</string>\n    <string name=\"invalid_backup_file_error\">خطای کامل:</string>\n    <string name=\"app_settings\">تنظیمات برنامه</string>\n    <string name=\"source_settings\">تنظیمات منبع</string>\n    <string name=\"private_settings\">حاوی تنظیمات حساس (یه عنوان مثال رمز ورود ناظر)</string>\n    <string name=\"create_backup_file_error\">فایل پشتیبانی ایجاد نشد</string>\n    <string name=\"pref_storage_usage\">استفاده از فظای زخیره سازی</string>\n    <string name=\"available_disk_space_info\">در دسترس: %1$s / کل:%2$s</string>\n    <string name=\"pref_auto_clear_chapter_cache\">هنگام راه‌اندازی برنامه، حافظه پنهان قسمت را پاک کنید</string>\n    <string name=\"syncing_library\">درحال همگام سازی کتاب خانه</string>\n    <string name=\"pref_storage_location_info\">قابل استفاده برای به روز رسانی خودکار، بارگیری قسمت ها، و منابع محلی.</string>\n    <string name=\"last_auto_backup_info\">آخرین پشتیبان گیری خودکار: %s</string>\n    <string name=\"pref_dns_over_https\">DNS بیش از HTTPS (DoH)</string>\n    <string name=\"library_sync_complete\">همگام سازی کتاب خانه کامل شد</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fi/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Minuutin jälkeen</item>\n        <item quantity=\"other\">%1$s minuutin jälkeen</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">1 uusi luku</item>\n        <item quantity=\"other\">%1$d uutta lukua</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Luku %1$s ja 1 lisää</item>\n        <item quantity=\"other\">Luvut %1$s ja %2$d lisää</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Yhdelle sarjalle</item>\n        <item quantity=\"other\">%d sarjalle</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Laajennuspäivitys saatavilla</item>\n        <item quantity=\"other\">%d laajennuspäivitystä saatavilla</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">1 jäljellä</item>\n        <item quantity=\"other\">%1$s jäljellä</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategoria</item>\n        <item quantity=\"other\">%d kategoriaa</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Valmistui %1$s virheitä löytyi %2$s</item>\n        <item quantity=\"other\">Valmistui %1$s virheitä löytyi %2$s</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">1 luku</item>\n        <item quantity=\"other\">%1$s lukua</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">1 seurantapalvelin</item>\n        <item quantity=\"other\">%d seurantapalvelinta</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">1 puuttuva luku</item>\n        <item quantity=\"other\">%d puuttuvaa lukua</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Eilen</item>\n        <item quantity=\"other\">%1$d päivää sitten</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Seuraava lukematon luku</item>\n        <item quantity=\"other\">Seuraavat %d lukematonta lukua</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fi/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nimi</string>\n    <string name=\"categories\">Kategoriat</string>\n    <string name=\"manga\">Manga</string>\n    <string name=\"track\">Seuranta</string>\n    <string name=\"history\">Historia</string>\n    <string name=\"label_settings\">Asetukset</string>\n    <string name=\"label_download_queue\">Latausjono</string>\n    <string name=\"label_library\">Kirjasto</string>\n    <string name=\"label_recent_manga\">Historia</string>\n    <string name=\"action_settings\">Asetukset</string>\n    <string name=\"action_sort_last_read\">Viimeksi luettu</string>\n    <string name=\"action_mark_as_read\">Merkitse luetuksi</string>\n    <string name=\"action_download\">Lataa</string>\n    <string name=\"pref_category_tracking\">Seuranta</string>\n    <string name=\"manga_tracking_tab\">Seuranta</string>\n    <string name=\"chapters\">Luvut</string>\n    <string name=\"label_recent_updates\">Päivitykset</string>\n    <string name=\"action_sort_total\">Lukuja yhteensä</string>\n    <string name=\"action_global_search\">Globaali haku</string>\n    <string name=\"action_mark_as_unread\">Merkitse lukemattomaksi</string>\n    <string name=\"action_mark_previous_as_read\">Merkitse aiemmat luetuiksi</string>\n    <string name=\"action_bookmark\">Kirjanmerkitse luku</string>\n    <string name=\"action_remove_bookmark\">Poista kirjanmerkitty luku</string>\n    <string name=\"action_move_category\">Aseta kategoriat</string>\n    <string name=\"action_edit_cover\">Muokkaa kantta</string>\n    <string name=\"custom_filter\">Mukautettu suodatus</string>\n    <string name=\"set_as_cover\">Aseta kansikuvaksi</string>\n    <string name=\"cover_updated\">Kansikuva päivitetty</string>\n    <string name=\"chapter_progress\">Sivu: %1$d</string>\n    <string name=\"no_next_chapter\">Seuraavaa lukua ei löydy</string>\n    <string name=\"decode_image_error\">Kuvaa ei voitu ladata</string>\n    <string name=\"confirm_set_image_as_cover\">Käytetäänkö tätä kuvaa kansikuvana?</string>\n    <string name=\"transition_finished\">Valmistunut:</string>\n    <string name=\"transition_current\">Nykyinen:</string>\n    <string name=\"transition_next\">Seuraava:</string>\n    <string name=\"transition_previous\">Aiempi:</string>\n    <string name=\"transition_no_next\">Seuraavaa lukua ei ole</string>\n    <string name=\"transition_no_previous\">Aiempaa lukua ei ole</string>\n    <string name=\"transition_pages_loading\">Ladataan sivuja…</string>\n    <string name=\"transition_pages_error\">Sivujen lataus epäonnistui: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Valitse sisällytettävä tieto</string>\n    <string name=\"migrate\">Vaihda</string>\n    <string name=\"copy\">Kopioi</string>\n    <string name=\"download_queue_error\">Lukujen lataaminen epäonnistui. Voit yrittää uudelleen lataukset-osiossa</string>\n    <string name=\"notification_new_chapters\">Uusia lukuja löydetty</string>\n    <string name=\"notification_cover_update_failed\">Kansikuvan päivitys epäonnistui</string>\n    <string name=\"notification_first_add_to_library\">Lisää sarja kirjastoosi ensin</string>\n    <string name=\"file_select_cover\">Valitse kansikuva</string>\n    <string name=\"file_select_backup\">Valitse varmuuskopio-tiedosto</string>\n    <string name=\"update_check_confirm\">Lataa</string>\n    <string name=\"update_check_no_new_updates\">Ei päivityksiä saatavilla</string>\n    <string name=\"update_check_notification_download_in_progress\">Ladataan…</string>\n    <string name=\"update_check_notification_download_complete\">Lataus valmis</string>\n    <string name=\"update_check_notification_download_error\">Latausvirhe</string>\n    <string name=\"update_check_notification_update_available\">Uusi versio saatavilla!</string>\n    <string name=\"information_no_downloads\">Ei latauksia</string>\n    <string name=\"information_no_recent\">Ei viimeisimpiä päivityksiä</string>\n    <string name=\"information_no_recent_manga\">Ei mitään luettu viime aikoina</string>\n    <string name=\"information_empty_library\">Kirjastosi on tyhjä</string>\n    <string name=\"information_empty_category\">Sinulla ei ole kategorioita. Napauta pluspainiketta, jos haluat luoda sellaisen kirjaston järjestämistä varten.</string>\n    <string name=\"download_notifier_downloader_title\">Lataaja</string>\n    <string name=\"download_notifier_title_error\">Virhe</string>\n    <string name=\"download_notifier_unknown_error\">Lukua ei voitu ladata odottamattoman virheen vuoksi</string>\n    <string name=\"download_notifier_text_only_wifi\">Ei Wi-Fi yhteyttä saatavilla</string>\n    <string name=\"download_notifier_no_network\">Ei verkkoyhteyttä</string>\n    <string name=\"download_notifier_download_paused\">Lataus pysäytetty</string>\n    <string name=\"channel_common\">Tavallinen</string>\n    <string name=\"label_backup\">Varmuuskopiointi ja palautus</string>\n    <string name=\"label_migration\">Siirrä</string>\n    <string name=\"label_extensions\">Laajennukset</string>\n    <string name=\"label_extension_info\">Laajennuksen tiedot</string>\n    <string name=\"action_filter\">Suodatus</string>\n    <string name=\"action_filter_bookmarked\">Kirjanmerkityt</string>\n    <string name=\"action_filter_unread\">Lukemattomat</string>\n    <string name=\"action_filter_empty\">Poista suodattimet</string>\n    <string name=\"action_sort_alpha\">Aakkosjärjestyksessä</string>\n    <string name=\"action_search\">Haku</string>\n    <string name=\"action_select_all\">Valitse kaikki</string>\n    <string name=\"action_delete\">Poista</string>\n    <string name=\"action_update_library\">Päivitä kirjasto</string>\n    <string name=\"action_edit\">Muokkaa</string>\n    <string name=\"action_add\">Lisää</string>\n    <string name=\"action_add_category\">Lisää kategoria</string>\n    <string name=\"action_edit_categories\">Muokkaa kategorioita</string>\n    <string name=\"action_rename_category\">Nimeä kategoria uudelleen</string>\n    <string name=\"action_retry\">Yritä uudelleen</string>\n    <string name=\"action_pause\">Pysäytä</string>\n    <string name=\"action_previous_chapter\">Aiempi luku</string>\n    <string name=\"action_next_chapter\">Seuraava luku</string>\n    <string name=\"action_remove\">Poista</string>\n    <string name=\"action_resume\">Jatka</string>\n    <string name=\"action_open_in_browser\">Avaa selaimessa</string>\n    <string name=\"action_open_in_web_view\">Avaa WebViewissä</string>\n    <string name=\"action_display_mode\">Näkymä</string>\n    <string name=\"action_display\">Näkymä</string>\n    <string name=\"action_display_grid\">Kompakti ruudukko</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_display_download_badge\">Ladatut luvut</string>\n    <string name=\"action_cancel\">Peruuta</string>\n    <string name=\"action_sort\">Järjestä</string>\n    <string name=\"action_install\">Asenna</string>\n    <string name=\"action_share\">Jaa</string>\n    <string name=\"action_save\">Tallenna</string>\n    <string name=\"action_reset\">Nollaa</string>\n    <string name=\"action_undo\">Kumoa</string>\n    <string name=\"action_open_log\">Avaa loki</string>\n    <string name=\"action_restore\">Palauta</string>\n    <string name=\"loading\">Ladataan…</string>\n    <string name=\"app_not_available\">Sovellus ei ole saatavilla</string>\n    <string name=\"pref_category_general\">Yleiset</string>\n    <string name=\"pref_category_reader\">Lukija</string>\n    <string name=\"pref_category_downloads\">Lataukset</string>\n    <string name=\"pref_category_advanced\">Kehittyneet</string>\n    <string name=\"pref_category_about\">Tietoja</string>\n    <string name=\"pref_library_columns\">Kohteita per rivi</string>\n    <string name=\"portrait\">Pystysuunta</string>\n    <string name=\"landscape\">Vaakataso</string>\n    <string name=\"pref_library_update_interval\">Automaattinen päivitys</string>\n    <string name=\"update_never\">Pois</string>\n    <string name=\"update_6hour\">Kuuden tunnin välein</string>\n    <string name=\"update_12hour\">12 tunnin välein</string>\n    <string name=\"update_24hour\">Päivittäin</string>\n    <string name=\"update_48hour\">Kahden päivän välein</string>\n    <string name=\"update_weekly\">Viikoittain</string>\n    <string name=\"all\">Kaikki</string>\n    <string name=\"pref_library_update_restriction\">Automaattisen päivityksen laitteistorajoitukset</string>\n    <string name=\"charging\">Latauksessa</string>\n    <string name=\"pref_update_only_non_completed\">Sarja on päättynyt</string>\n    <string name=\"pref_auto_update_manga_sync\">Päivitä luvun edistyminen lukemisen jälkeen</string>\n    <string name=\"default_category\">Oletus kategoria</string>\n    <string name=\"default_category_summary\">Kysy aina</string>\n    <string name=\"ext_update\">Päivitä</string>\n    <string name=\"ext_install\">Asenna</string>\n    <string name=\"ext_pending\">Odotetaan</string>\n    <string name=\"ext_downloading\">Ladataan</string>\n    <string name=\"ext_installing\">Asennetaan</string>\n    <string name=\"ext_installed\">Asennettu</string>\n    <string name=\"ext_trust\">Luota</string>\n    <string name=\"ext_untrusted\">Luottamaton</string>\n    <string name=\"ext_uninstall\">Poista asennus</string>\n    <string name=\"untrusted_extension\">Luottamattomat laajennokset</string>\n    <string name=\"untrusted_extension_message\">Haitallinen laajennus voi lukea tallennetut kirjautumistiedot Mihonista tai suorittaa luvatonta koodia.\n\\n\n\\nLuottamalla tähän laajennokseen hyväksyt nämä riskit.</string>\n    <string name=\"pref_fullscreen\">Koko näyttö</string>\n    <string name=\"pref_page_transitions\">Animoi sivusiirtymät</string>\n    <string name=\"pref_double_tap_anim_speed\">Tuplanäpäytyksen animaation nopeus</string>\n    <string name=\"pref_show_page_number\">Näytä sivunumero</string>\n    <string name=\"pref_crop_borders\">Rajaa reunat</string>\n    <string name=\"pref_custom_brightness\">Mukautettu kirkkaus</string>\n    <string name=\"pref_custom_color_filter\">Mukautettu värisuodatin</string>\n    <string name=\"pref_keep_screen_on\">Pidä näyttö päällä</string>\n    <string name=\"pref_skip_read_chapters\">Ohita luetuksi merkityt luvut</string>\n    <string name=\"pref_reader_navigation\">Navigointi</string>\n    <string name=\"pref_read_with_volume_keys\">Äänenvoimakkuus näppäimet</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Käännä äänenvoimakkuus näppäimet</string>\n    <string name=\"pref_read_with_long_tap\">Näytä pitkällä napautuksella</string>\n    <string name=\"pref_reader_theme\">Taustan väri</string>\n    <string name=\"white_background\">Valkoinen</string>\n    <string name=\"black_background\">Musta</string>\n    <string name=\"pref_viewer_type\">Oletuslukutila</string>\n    <string name=\"left_to_right_viewer\">Vasemmalta oikealle</string>\n    <string name=\"right_to_left_viewer\">Oikealta vasemmalle</string>\n    <string name=\"vertical_viewer\">Pystysuora</string>\n    <string name=\"webtoon_viewer\">Webtoon-tyylinen</string>\n    <string name=\"pager_viewer\">Sivutettu</string>\n    <string name=\"pref_image_scale_type\">Skaalauksen tyyppi</string>\n    <string name=\"scale_type_fit_screen\">Sovita näyttöön</string>\n    <string name=\"scale_type_stretch\">Venytä</string>\n    <string name=\"scale_type_fit_width\">Sovita leveys</string>\n    <string name=\"scale_type_fit_height\">Sovita korkeus</string>\n    <string name=\"scale_type_original_size\">Alkuperäinen koko</string>\n    <string name=\"scale_type_smart_fit\">Fiksu sovitus</string>\n    <string name=\"pref_zoom_start\">Zoomauksen alkusijainti</string>\n    <string name=\"zoom_start_automatic\">Automaattinen</string>\n    <string name=\"zoom_start_left\">Vasen</string>\n    <string name=\"zoom_start_right\">Oikea</string>\n    <string name=\"zoom_start_center\">Keskellä</string>\n    <string name=\"double_tap_anim_speed_0\">Ei animaatiota</string>\n    <string name=\"double_tap_anim_speed_normal\">Normaali</string>\n    <string name=\"double_tap_anim_speed_fast\">Nopea</string>\n    <string name=\"pref_rotation_type\">Oletuskiertotyyppi</string>\n    <string name=\"rotation_free\">Vapaa</string>\n    <string name=\"rotation_force_portrait\">Lukittu pystysuunta</string>\n    <string name=\"rotation_force_landscape\">Lukittu vaakataso</string>\n    <string name=\"color_filter_r_value\">Punainen</string>\n    <string name=\"color_filter_g_value\">Vihreä</string>\n    <string name=\"color_filter_b_value\">Sininen</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"pref_remove_after_marked_as_read\">Manuaalisesti luetuksi merkitsemisen jälkeen</string>\n    <string name=\"pref_remove_after_read\">Lukemisen jälkeen</string>\n    <string name=\"disabled\">Pois käytöstä</string>\n    <string name=\"last_read_chapter\">Viimeksi luettu luku</string>\n    <string name=\"second_to_last\">Toiseksi viimeinen luku</string>\n    <string name=\"third_to_last\">Kolmanneksi viimenen luku</string>\n    <string name=\"fourth_to_last\">Neljänneksi viimeinen luku</string>\n    <string name=\"fifth_to_last\">Viidenneksi viimeinen luku</string>\n    <string name=\"pref_download_new\">Lataa uudet luvut</string>\n    <string name=\"services\">Seurantapalvelut</string>\n    <string name=\"pref_create_backup_summ\">Voidaan käyttää nykyisen kirjaston palauttamiseen</string>\n    <string name=\"pref_restore_backup_summ\">Palauta kirjasto varmuuskopiointi-tiedostosta</string>\n    <string name=\"pref_backup_interval\">Varmuuskopioinnin tiheys</string>\n    <string name=\"backup_created\">Varmuuskopio luotu</string>\n    <string name=\"restore_completed\">Palautus valmis</string>\n    <string name=\"backup_choice\">Mitä haluat varmuuskopioida?</string>\n    <string name=\"restoring_backup\">Palautetaan varmuuskopiota</string>\n    <string name=\"creating_backup\">Luodaan varmuuskopiota</string>\n    <string name=\"pref_clear_chapter_cache\">Tyhjennä lukujen välimuisti</string>\n    <string name=\"used_cache\">Käytössä: %1$s</string>\n    <string name=\"cache_deleted\">Välimuisti tyhjennetty. %1$d tiedostoa poistettu</string>\n    <string name=\"cache_delete_error\">Virhe tapahtui välimuistia tyhjentäessä</string>\n    <string name=\"pref_clear_cookies\">Tyhjennä keksit</string>\n    <string name=\"cookies_cleared\">Keksit tyhjennetty</string>\n    <string name=\"pref_clear_database\">Tyhjennä tietokanta</string>\n    <string name=\"pref_clear_database_summary\">Poista mangan historia, jota ei ole tallennettu kirjastoosi</string>\n    <string name=\"clear_database_completed\">Tiedot poistettu</string>\n    <string name=\"version\">Versio</string>\n    <string name=\"pref_enable_acra\">Lähetä kaatumisilmoituksia</string>\n    <string name=\"pref_acra_summary\">Auttaa korjaamaan bugeja. Arkaluonteista tietoa ei lähetetä</string>\n    <string name=\"login_title\">%1$s kirjautuminen</string>\n    <string name=\"username\">Käyttäjätunnus</string>\n    <string name=\"password\">Salasana</string>\n    <string name=\"login\">Kirjaudu</string>\n    <string name=\"login_success\">Kirjauduttu sisään</string>\n    <string name=\"unknown_error\">Tuntematon virhe</string>\n    <string name=\"updating_category\">Päivitetään kategoriaa</string>\n    <string name=\"no_more_results\">Ei enempää tuloksia</string>\n    <string name=\"action_global_search_hint\">Globaali haku…</string>\n    <string name=\"delete_downloads_for_manga\">Poista ladatut luvut?</string>\n    <string name=\"copied_to_clipboard\">Kopioitu leikepöydälle\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Lähdettä ei ole asennettu: %1$s</string>\n    <string name=\"display_mode_chapter\">Luku %1$s</string>\n    <string name=\"chapter_downloading_progress\">Ladataan (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Virhe</string>\n    <string name=\"chapter_paused\">Pysäytetty</string>\n    <string name=\"show_title\">Nimike</string>\n    <string name=\"show_chapter_number\">Luvun numero</string>\n    <string name=\"sort_by_source\">Lähteen mukaan</string>\n    <string name=\"sort_by_number\">Luvun numeron mukaan</string>\n    <string name=\"manga_download\">Lataa</string>\n    <string name=\"confirm_delete_chapters\">Oletko varma että haluat poistaa valitut luvut?</string>\n    <string name=\"reading\">Luettavana</string>\n    <string name=\"completed\">Päättynyt</string>\n    <string name=\"score\">Arvosana</string>\n    <string name=\"title\">Nimike</string>\n    <string name=\"status\">Tila</string>\n    <string name=\"track_status\">Tila</string>\n    <string name=\"track_type\">Tyyppi</string>\n    <string name=\"error_category_exists\">Tämän niminen kategoria on jo olemassa!</string>\n    <string name=\"snack_categories_deleted\">Kategoriat poistettu</string>\n    <string name=\"pref_create_backup\">Luo varmuuskopio</string>\n    <string name=\"pref_restore_backup\">Palauta varmuuskopio</string>\n    <string name=\"local_source\">Paikalliset lähteet</string>\n    <string name=\"other_source\">Muut</string>\n    <string name=\"latest\">Viimeisimmät</string>\n    <string name=\"browse\">Selaa</string>\n    <string name=\"ongoing\">Jatkuva</string>\n    <string name=\"unknown\">Tuntematon</string>\n    <string name=\"licensed\">Lisensoitu</string>\n    <string name=\"remove_from_library\">Poista kirjastosta</string>\n    <string name=\"manga_added_library\">Lisätty kirjastoon</string>\n    <string name=\"manga_removed_library\">Poistettu kirjastosta</string>\n    <string name=\"download_unread\">Lukemattomat</string>\n    <string name=\"dropped\">Tiputettu</string>\n    <string name=\"on_hold\">Pidossa</string>\n    <string name=\"plan_to_read\">Aikomus lukea</string>\n    <string name=\"repeating\">Uudelleenluettava</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Tämä poistaa luvun lukupäivän. Haluatko jatkaa?</string>\n    <string name=\"dialog_with_checkbox_reset\">Resetoi kaikki luvut tästä sarjasta</string>\n    <string name=\"snack_add_to_library\">Lisää sarja kirjastoon?</string>\n    <string name=\"picture_saved\">Kuva tallennetu</string>\n    <string name=\"pref_color_filter_mode\">Värisuodattimen sekoitus tyyppi</string>\n    <string name=\"filter_mode_overlay\">Päällys</string>\n    <string name=\"filter_mode_multiply\">Monistettu</string>\n    <string name=\"filter_mode_screen\">Näyttö</string>\n    <string name=\"filter_mode_lighten\">Väitävä / Vaalentava</string>\n    <string name=\"filter_mode_darken\">Polttava / Tummentava</string>\n    <string name=\"label_help\">Apu</string>\n    <string name=\"no_results_found\">Ei tuloksia</string>\n    <string name=\"migration_selection_prompt\">Valitse lähde josta vaihdetaan</string>\n    <string name=\"action_webview_back\">Takaisin</string>\n    <string name=\"action_webview_forward\">Eteenpäin</string>\n    <string name=\"action_webview_refresh\">Päivitä</string>\n    <string name=\"pref_category_library\">Kirjasto</string>\n    <string name=\"ext_obsolete\">Vanhentunut</string>\n    <string name=\"obsolete_extension_message\">Tämä laajennos ei ole enää saatavilla. Se ei välttämättä toimi oikein ja voi aiheuttaa ongelmia Mihonin kanssa. Laajennoksen poistoa suositellaan.</string>\n    <string name=\"pref_date_format\">Päivämäärän muoto</string>\n    <string name=\"pref_category_library_update\">Globaali päivitys</string>\n    <string name=\"logout_title\">Kirjaa ulos kohteesta %1$s?</string>\n    <string name=\"logout\">Kirjaudu ulos</string>\n    <string name=\"logout_success\">Kirjauduttu ulos</string>\n    <string name=\"paused\">Pysäytetty</string>\n    <string name=\"label_more\">Lisää</string>\n    <string name=\"action_sort_latest_chapter\">Viimeisin luku</string>\n    <string name=\"action_view_chapters\">Näytä luvut</string>\n    <string name=\"action_cancel_all\">Peruuta kaikki</string>\n    <string name=\"theme_light\">Pois päältä</string>\n    <string name=\"theme_dark\">Päällä</string>\n    <string name=\"theme_system\">Seuraa järjestelmää</string>\n    <string name=\"pref_manage_notifications\">Hallitse ilmoituksia</string>\n    <string name=\"pref_category_security\">Turvallisuus</string>\n    <string name=\"lock_with_biometrics\">Vaadi lukituksen avaaminen</string>\n    <string name=\"lock_always\">Aina</string>\n    <string name=\"lock_never\">Ei koskaan</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflaren ohittaminen epäonnistui</string>\n    <string name=\"channel_new_chapters\">Lukujen päivitykset</string>\n    <string name=\"pref_category_display\">Näyttö</string>\n    <string name=\"ext_updates_pending\">Päivitettävät</string>\n    <string name=\"information_webview_outdated\">Päivitä WebView-sovellus yhteensopivuuden parantamiseksi</string>\n    <string name=\"notification_chapters_single\">Luku %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Luku %1$s ja %2$d lisää</string>\n    <string name=\"notification_chapters_multiple\">Luvut %1$s</string>\n    <string name=\"hide_notification_content\">Piilota ilmoitusten sisältö</string>\n    <string name=\"lock_when_idle\">Lukitse käyttämättömänä</string>\n    <string name=\"secure_screen\">Salaa näyttö</string>\n    <string name=\"secure_screen_summary\">Turvallinen ruutu piilottaa sovelluksen sisällön sovelluksia vaihdettaessa ja estää kuvakaappauksen ottamisen</string>\n    <string name=\"pref_disable_battery_optimization\">Poista akun optimointi käytöstä</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Auttaa taustalla pyörivien kirjaston päivitysten ja varmuuskopioiden kanssa</string>\n    <string name=\"battery_optimization_disabled\">Akun optimointi on jo poistettu käytöstä</string>\n    <string name=\"email\">Sähköpostiosoite</string>\n    <string name=\"pref_cutout_short\">Näytä sisältö leikkausalueella</string>\n    <string name=\"pref_always_show_chapter_transition\">Näytä aina luvun vaihdos</string>\n    <string name=\"action_menu\">Valikko</string>\n    <string name=\"action_newest\">Uusin</string>\n    <string name=\"action_oldest\">Vanhin</string>\n    <string name=\"action_move_to_top\">Siirrä alkuun</string>\n    <string name=\"action_move_to_bottom\">Siirrä loppuun</string>\n    <string name=\"channel_ext_updates\">Laajennuspäivitykset</string>\n    <string name=\"restoring_backup_canceled\">Palautus peruttu</string>\n    <string name=\"restoring_backup_error\">Varmuuskopion palautus epäonnistui</string>\n    <string name=\"creating_backup_error\">Varmuuskopiointi epäonnistui</string>\n    <string name=\"pref_skip_filtered_chapters\">Ohita suodatetut luvut</string>\n    <string name=\"label_downloaded_only\">Ladatut</string>\n    <string name=\"label_sources\">Lähteet</string>\n    <string name=\"updating_library\">Päivittää kirjastoa</string>\n    <string name=\"add_tracking\">Lisää seuranta</string>\n    <string name=\"in_library\">Kirjastossa</string>\n    <string name=\"add_to_library\">Lisää kirjastoon</string>\n    <string name=\"website\">Kotisivu</string>\n    <string name=\"action_unpin\">Poista kiinnitys</string>\n    <string name=\"action_pin\">Kiinnitä</string>\n    <string name=\"action_select_inverse\">Valitse käänteinen</string>\n    <string name=\"vertical_plus_viewer\">Jatkuva pystysuora</string>\n    <string name=\"information_webview_required\">WebView on pakollinen Mihonissa</string>\n    <string name=\"restore_in_progress\">Palautus on jo käynnissä</string>\n    <string name=\"backup_in_progress\">Varmuuskopiointi on jo käynnissä</string>\n    <string name=\"pref_webtoon_side_padding\">Sivuntäyttö</string>\n    <string name=\"licenses\">Avoimen lähdekoodin lisenssit</string>\n    <string name=\"recent_manga_time\">Luku. %1$s - %2$s</string>\n    <string name=\"manga_info_collapse\">Vähemmän</string>\n    <string name=\"manga_info_expand\">Enemmän</string>\n    <string name=\"pinned_sources\">Kiinnitetyt</string>\n    <string name=\"pref_category_reading\">Luettavana</string>\n    <string name=\"check_for_updates\">Tarkista päivitykset</string>\n    <string name=\"last_used_source\">Viimeksi käytetty</string>\n    <string name=\"local_source_help_guide\">Paikallinen lähdeopas</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"downloaded_only_summary\">Suodattaa kaikki sarjat kirjastossasi</string>\n    <string name=\"gray_background\">Harmaa</string>\n    <string name=\"pref_category_for_this_series\">Tälle sarjalle</string>\n    <string name=\"viewer\">Lukutila</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Laiteasetuksia ei voitu avata</string>\n    <string name=\"tracking_info\">Yksisuuntainen synkronointi lukujen seurantapalveluiden päivittämiseksi. Määritä yksittäisten mangamerkintöjen seuranta seurantapainikkeesta.</string>\n    <string name=\"pref_refresh_library_covers\">Päivitä kirjaston manga-kannet</string>\n    <string name=\"sort_by_upload_date\">Latauspäivämäärän mukaan</string>\n    <string name=\"label_data\">Tiedot</string>\n    <string name=\"backup_restore_missing_sources\">Puuttuvat lähteet:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Varmuuskopio ei sisällä mangaa.</string>\n    <string name=\"invalid_backup_file\">Virheellinen varmuuskopio:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Tarkista uusi kansi ja tiedot päivitettäessä kirjastoa</string>\n    <string name=\"pref_library_update_refresh_metadata\">Päivitä metatiedot automaattisesti</string>\n    <string name=\"action_migrate\">Siirrä</string>\n    <string name=\"action_display_comfortable_grid\">Mukava ruudukko</string>\n    <string name=\"tabs_header\">Välilehdet</string>\n    <string name=\"action_display_show_tabs\">Näytä kategorioiden välilehdet</string>\n    <string name=\"page_list_empty_error\">Sivuja ei löytynyt</string>\n    <string name=\"action_disable_all\">Poista kaikki käytöstä</string>\n    <string name=\"action_enable_all\">Ota kaikki käyttöön</string>\n    <string name=\"pref_show_reading_mode_summary\">Näytä nykyinen tila lyhyesti, kun lukija avataan</string>\n    <string name=\"pref_show_reading_mode\">Näytä lukutila</string>\n    <string name=\"action_start\">Aloita</string>\n    <string name=\"loader_not_implemented_error\">Lähdettä ei löytynyt</string>\n    <string name=\"action_disable\">Poista käytöstä</string>\n    <string name=\"requires_app_restart\">Edellyttää sovelluksen käynnisstämisen uudelleen</string>\n    <string name=\"label_network\">Verkko</string>\n    <string name=\"tapping_inverted_both\">Molemmat</string>\n    <string name=\"tapping_inverted_vertical\">Pystysuora</string>\n    <string name=\"tapping_inverted_horizontal\">Vaakasuora</string>\n    <string name=\"tapping_inverted_none\">Ei mitään</string>\n    <string name=\"pref_read_with_tapping_inverted\">Käännä näpäyttäminen</string>\n    <string name=\"unknown_status\">Tuntematon tila</string>\n    <string name=\"unknown_author\">Tuntematon tekijä</string>\n    <string name=\"updated_version\">Päivitetty versioon v%1$s</string>\n    <string name=\"whats_new\">Mitä uutta</string>\n    <string name=\"download_insufficient_space\">Lukuja ei voitu ladata vähäisen tallennustilan vuoksi</string>\n    <string name=\"action_global_search_query\">Etsi \\\"%1$s\\\" globaalisesti</string>\n    <string name=\"pref_category_reading_mode\">Lukutila</string>\n    <string name=\"pref_category_theme\">Teema</string>\n    <string name=\"action_sort_date_added\">Lisäyspäivämäärä</string>\n    <string name=\"no_pinned_sources\">Sinulla ei ole kiinnitettyjä lähteitä</string>\n    <string name=\"channel_complete\">Valmis</string>\n    <string name=\"channel_progress\">Edistyminen</string>\n    <string name=\"channel_errors\">Virheet</string>\n    <string name=\"backup_restore_missing_trackers\">Seurantapalvelimet joihin et ole kirjautunut sisään:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Poista kirjanmerkityt luvut</string>\n    <string name=\"pref_category_delete_chapters\">Poista luvut</string>\n    <string name=\"ext_nsfw_warning\">Tämän laajennoksen lähteet voivat sisältää NSFW (18+) -sisältöä</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Tämä ei estä epävirallisia tai mahdollisesti väärin merkittyjä laajennuksia näyttämästä NSFW 18+ sisältöä sovelluksessa.</string>\n    <string name=\"no_chapters_error\">Lukuja ei löytynyt</string>\n    <string name=\"chapter_settings_updated\">Päivitetyt luvun oletusasetukset</string>\n    <string name=\"set_chapter_settings_as_default\">Aseta oletukseksi</string>\n    <string name=\"also_set_chapter_settings_for_library\">Koskee myös kaikkia kirjastoni mangoja</string>\n    <string name=\"confirm_set_chapter_settings\">Haluatko varmasti tallentaa nämä asetukset oletuksena?</string>\n    <string name=\"chapter_settings\">Luvun asetukset</string>\n    <string name=\"share_page_info\">%1$s: %2$s, sivu %3$d</string>\n    <string name=\"action_search_settings\">Hakuasetukset</string>\n    <string name=\"downloaded_chapters\">Ladatut luvut</string>\n    <string name=\"manga_from_library\">Manga kirjastosta</string>\n    <string name=\"pref_incognito_mode_summary\">Keskeyttää lukuhistorian</string>\n    <string name=\"pref_incognito_mode\">Incognito-tila</string>\n    <string name=\"pref_clear_history\">Tyhjennä historia</string>\n    <string name=\"clear_history_confirmation\">Oletko varma? Koko historia menetetään.</string>\n    <string name=\"clear_history_completed\">Historia poistettu</string>\n    <string name=\"spen_next_page\">Seuraava sivu</string>\n    <string name=\"spen_previous_page\">Edellinen sivu</string>\n    <string name=\"migration_help_guide\">Lähteen siirto-opas</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) lähteet</string>\n    <string name=\"pref_show_nsfw_source\">Näytä lähde- ja lisäosaluettelossa</string>\n    <string name=\"file_picker_error\">Tiedostonvalitsinsovellusta ei löytynyt</string>\n    <string name=\"myanimelist_relogin\">Kirjaudu uudelleen MAL: iin</string>\n    <string name=\"pref_viewer_nav\">Navigointiasettelu</string>\n    <string name=\"edge_nav\">Reuna</string>\n    <string name=\"kindlish_nav\">Kindle tyylinen</string>\n    <string name=\"l_nav\">L-muotoinen</string>\n    <string name=\"pref_dump_crash_logs\">Poista kaatumislokit</string>\n    <string name=\"track_finished_reading_date\">Lopetuspäivämäärä</string>\n    <string name=\"track_started_reading_date\">Aloituspäivämäärä</string>\n    <string name=\"pref_dump_crash_logs_summary\">Tallentaa virhelokit tiedostoon jaettavaksi kehittäjien kanssa</string>\n    <string name=\"action_desc\">Laskeva</string>\n    <string name=\"action_asc\">Nouseva</string>\n    <string name=\"action_order_by_chapter_number\">Lukunumeron mukaan</string>\n    <string name=\"action_order_by_upload_date\">Lisäyspäivämäärän mukaan</string>\n    <string name=\"action_filter_tracked\">Seuratut</string>\n    <string name=\"action_display_show_number_of_items\">Näytä kohteiden määrä</string>\n    <string name=\"right_and_left_nav\">Oikea ja vasen</string>\n    <string name=\"pref_dual_page_split\">Jaa leveät sivut</string>\n    <string name=\"pref_dual_page_invert_summary\">Jos jaettujen leveiden sivujen sijoittelu ei vastaa lukusuuntaa</string>\n    <string name=\"pref_dual_page_invert\">Käännä jaettujen sivujen sijoittelu</string>\n    <string name=\"backup_restore_content_full\">Varmuuskopiotiedoston tiedot palautetaan.\n\\n\n\\nSinun on asennattava puuttuvat laajennukset ja kirjauduttava seurantapalveluihin jälkeenpäin käyttääksesi niitä.</string>\n    <string name=\"nav_zone_right\">Oikea</string>\n    <string name=\"nav_zone_left\">Vasen</string>\n    <string name=\"nav_zone_next\">Seuraava</string>\n    <string name=\"nav_zone_prev\">Edellinen</string>\n    <string name=\"pref_show_navigation_mode_summary\">Näytä napautusalueet, kun lukija avataan</string>\n    <string name=\"pref_show_navigation_mode\">Näytä navigointiasettelun peittokuva</string>\n    <string name=\"pref_dns_over_https\">DNS HTTPS:n kautta</string>\n    <string name=\"exclude\">Lukuun ottamatta: %s</string>\n    <string name=\"include\">Sisällytä: %s</string>\n    <string name=\"none\">Ei mitään</string>\n    <string name=\"action_sort_chapter_fetch_date\">Haettu päivämäärä</string>\n    <string name=\"pref_download_new_categories_details\">Poissuljettuihin kategorioihin kuuluvia mangoja ei ladata, vaikka ne olisivat myös sisällytetyissä kategorioissa.</string>\n    <string name=\"pref_category_auto_download\">Automaattinen lataus</string>\n    <string name=\"pref_library_update_categories_details\">Poissuljettuihin kategorioihin sisältyvää mangaa ei päivitetä, vaikka ne olisivat myös sisällytetyissä kategorioissa.</string>\n    <string name=\"action_show_errors\">Näytä lisätiedot</string>\n    <string name=\"update_check_eol\">Tätä Android-versiota ei enää tueta</string>\n    <string name=\"clipboard_copy_error\">Kopiointi leikepöydälle epäonnistui</string>\n    <string name=\"rotation_landscape\">Vaakatasossa</string>\n    <string name=\"rotation_portrait\">Pystysuunnassa</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Luo kansioita manga-otsikon mukaan</string>\n    <string name=\"pref_create_folder_per_manga\">Tallenna sivut erillisiin kansioihin</string>\n    <string name=\"pref_reader_actions\">Toiminnot</string>\n    <string name=\"rotation_type\">Kierron tyyppi</string>\n    <string name=\"pref_grayscale\">Harmaasävy</string>\n    <string name=\"notification_incognito_text\">Poista incognito-tila käytöstä</string>\n    <string name=\"automatic_background\">Automaattinen</string>\n    <string name=\"cancel_all_for_series\">Peruuta kaikki tälle sarjalle</string>\n    <string name=\"error_no_match\">Yhtään osumaa ei löytynyt</string>\n    <string name=\"source_unsupported\">Lähdettä ei tueta</string>\n    <string name=\"unread\">Lukemattomat</string>\n    <string name=\"local_invalid_format\">Väärä lukuformaatti</string>\n    <string name=\"chapter_not_found\">Lukua ei löytynyt</string>\n    <string name=\"restrictions\">Rajoitukset: %s</string>\n    <string name=\"date\">Päivämäärä</string>\n    <string name=\"off\">Pois päältä</string>\n    <string name=\"on\">Päällä</string>\n    <string name=\"getting_started_guide\">Aloitusopas</string>\n    <string name=\"download_queue_size_warning\">Varoitus: massalataukset voivat johtaa siihen, että lähteet muuttuvat hitaammiksi käyttää ja/tai ne estävät %sin käytön. Napauta saadaksesi lisätietoja.</string>\n    <string name=\"action_show_manga\">Näytä manga</string>\n    <string name=\"action_display_cover_only_grid\">Kansikuva ruudukko</string>\n    <string name=\"theme_monet\">Dynaaminen</string>\n    <string name=\"theme_greenapple\">Vihreä omena</string>\n    <string name=\"label_default\">Oletus</string>\n    <string name=\"action_display_local_badge\">Laitteelle tallennettu manga</string>\n    <string name=\"action_sort_count\">Yhteenlaskettu manga</string>\n    <string name=\"action_start_downloading_now\">Aloita lataaminen nyt</string>\n    <string name=\"theme_yinyang\">Ying ja Yang</string>\n    <string name=\"theme_midnightdusk\">Keskiyön hämärä</string>\n    <string name=\"theme_strawberrydaiquiri\">Mansikka Daiquiri</string>\n    <string name=\"pref_category_appearance\">Ulkonäkö</string>\n    <string name=\"theme_tealturquoise\">Sinivihreä ja turkoosi</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Täysin musta pimeätila</string>\n    <string name=\"pref_update_only_started\">Ei lukemattomia lukuja</string>\n    <string name=\"relative_time_today\">Tänään</string>\n    <string name=\"pref_update_only_completely_read\">Sarjalla on lukemattomia kappaleita</string>\n    <string name=\"pref_app_theme\">Sovelluksen teema</string>\n    <string name=\"label_warning\">Varoitus</string>\n    <string name=\"confirm_lock_change\">Tunnistaudu vahvistaaksesi muutokset</string>\n    <string name=\"action_display_language_badge\">Kieli</string>\n    <string name=\"action_move_to_top_all_for_series\">Siirrä sarja päällimmäiseksi</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"update_72hour\">Joka 3. Päivä</string>\n    <string name=\"connected_to_wifi\">Ainoastaan WiFillä</string>\n    <string name=\"pref_inverted_colors\">Käänteisväri</string>\n    <string name=\"ext_app_info\">Sovelluksen tiedot</string>\n    <string name=\"ext_installer_legacy\">Perinteinen</string>\n    <string name=\"rotation_reverse_portrait\">Käänteinen kuva</string>\n    <string name=\"categorized_display_settings\">Kategoria kohtaiset asetukset lajittelulle ja näytölle</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku on pysähtynyt</string>\n    <string name=\"disabled_nav\">Poistettu käytöstä</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Asenna ja aja Shizuku käyttääksesi Shizukua laajennusten asentamiseen.</string>\n    <string name=\"ext_update_all\">Päivitä kaikki</string>\n    <string name=\"extension_api_error\">Laajennusluettelon halu epäonnistui</string>\n    <string name=\"ext_install_service_notif\">Asennetaan laajennusta…</string>\n    <string name=\"ext_installer_pref\">Asentaja</string>\n    <string name=\"action_remove_everything\">Poista kaikki</string>\n    <string name=\"action_sort_last_manga_update\">Viimeisin manga päivitys</string>\n    <string name=\"action_sort_unread_count\">Lukemattomien määrä</string>\n    <string name=\"delete_category\">Poista kategoria</string>\n    <string name=\"action_track\">Seuraa</string>\n    <string name=\"pref_low\">Alhainen</string>\n    <string name=\"pref_remove_exclude_categories\">Poissuljetut kategoriat</string>\n    <string name=\"pref_lowest\">Alhaisin</string>\n    <string name=\"empty_backup_error\">Ei varmuuskopioitavia sarjoja kirjastossa</string>\n    <string name=\"multi_lang\">Useampi</string>\n    <string name=\"pref_navigate_pan\">Panoroi leveitä kuvia napauttamalla</string>\n    <string name=\"save_chapter_as_cbz\">Tallenna CBZ-arkistona</string>\n    <string name=\"pref_landscape_zoom\">Zoomaa vaakasuuntaisiin kuviin</string>\n    <string name=\"pref_highest\">Korkein</string>\n    <string name=\"ext_info_language\">Kieli</string>\n    <string name=\"action_search_hint\">Haku…</string>\n    <string name=\"theme_lavender\">Laventeli</string>\n    <string name=\"pref_app_language\">Sovelluksen kieli</string>\n    <string name=\"ext_info_version\">Versio</string>\n    <string name=\"action_close\">Sulje</string>\n    <string name=\"theme_tidalwave\">Vuorovesiaalto</string>\n    <string name=\"pref_high\">Korkea</string>\n    <string name=\"download_ahead\">Etukäteen lataus</string>\n    <string name=\"auto_download_while_reading\">Automaattinen lataus luetessa</string>\n    <string name=\"split_tall_images_summary\">Parantaa lukijan suorituskykyä</string>\n    <string name=\"delete_category_confirmation\">Haluatko poistaa kategorian \\\"%s\\\"?</string>\n    <string name=\"download_ahead_info\">Toimii vain kirjastossa oleville sarjoille joissa nykyinen ja seuraava luku on jo ladattu</string>\n    <string name=\"restore_miui_warning\">Varmuuskopiointi/palautus ei välttämättä toimi oikein, jos MIUI-optimointi on poistettu käytöstä.</string>\n    <string name=\"popular\">Suositut</string>\n    <string name=\"publishing_finished\">Julkaiseminen päättynyt</string>\n    <string name=\"description_placeholder\">Ei kuvausta</string>\n    <string name=\"reading_list\">Lukulista</string>\n    <string name=\"are_you_sure\">Oletko varma?</string>\n    <string name=\"unfinished_list\">Keskeneräiset</string>\n    <string name=\"source_empty_screen\">Lähdettä ei löydetty</string>\n    <string name=\"missing_storage_permission\">Tallennusoikeuksia ei myönnetty</string>\n    <string name=\"webview_data_deleted\">WebView-tiedot tyhjennetty</string>\n    <string name=\"pref_tablet_ui_mode\">Tabletti käyttöliittymä</string>\n    <string name=\"complete_list\">Luetut</string>\n    <string name=\"error_saving_picture\">Virhe tallentaessa kuvaa</string>\n    <string name=\"update_already_running\">Kirjastoa ollaan jo päivitämässä</string>\n    <string name=\"updates_last_update_info\">Kirjasto päivitetty viimeksi: %s</string>\n    <string name=\"notification_update_error\">%1$d päivitys(tä) epäonnistui</string>\n    <string name=\"skipped_reason_completed\">Ohitettu, koska sarja on päättynyt</string>\n    <string name=\"information_empty_category_dialog\">Sinulla ei vielä ole kategorioita.</string>\n    <string name=\"on_hiatus\">Tauolla</string>\n    <string name=\"not_installed\">Ei asennettu</string>\n    <string name=\"skipped_reason_not_started\">Ohitettu, koska yhtään lukua ei ole luettu sarjasta</string>\n    <string name=\"update_check_open\">Avaa GitHubissa</string>\n    <string name=\"label_background_activity\">Taustatoiminta</string>\n    <string name=\"help_translate\">Auta kääntämisessä</string>\n    <string name=\"pref_clear_webview_data\">Tyhjennä WebView-tiedot</string>\n    <string name=\"privacy_policy\">Tietosuojakäytäntö</string>\n    <string name=\"channel_app_updates\">Sovelluspäivitykset</string>\n    <string name=\"clear_database_source_item_count\">%1$d sarjaa joita ei olla lisätty kirjastoon tietokanassa</string>\n    <string name=\"database_clean\">Ei mitään tyhjennettävää</string>\n    <string name=\"pref_reset_viewer_flags\">Poista sarjakohtaiset lukijan asetukset</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Poista kaikkien sarjojen lukutila ja lukusuunta</string>\n    <string name=\"cancelled\">Peruttu</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Sivun %d tiedostopolkua ei löytynyt</string>\n    <string name=\"enhanced_services\">Parannetut seurantapalvelut</string>\n    <string name=\"pref_reset_viewer_flags_error\">Lukijan asetuksia ei voitu poistaa</string>\n    <string name=\"local_filter_order_by\">Järjestä</string>\n    <string name=\"manga_cover\">Kansikuva</string>\n    <string name=\"error_sharing_cover\">Virhe jakaessa kansikuvaa</string>\n    <string name=\"learn_more\">Napauta saadaksesi lisätietoja</string>\n    <string name=\"ext_info_age_rating\">Ikäluokitus</string>\n    <string name=\"tracking_guide\">Seurantaopas</string>\n    <string name=\"pref_reset_viewer_flags_success\">Kaikki lukijan asetukset poistettu</string>\n    <string name=\"pref_verbose_logging\">Yksityiskohtainen kirjaaminen</string>\n    <string name=\"cover_saved\">Kansikuva tallennettu</string>\n    <string name=\"error_saving_cover\">Virhe tallentaessa kansikuvaa</string>\n    <string name=\"skipped_reason_not_caught_up\">Ohitettu, koska sarjassa on luettomia lukuja</string>\n    <string name=\"skipped_reason_not_always_update\">Ohitettu, koska sarja ei vaadi päivityksiä</string>\n    <string name=\"remove_manga\">Olet poistamassa \\\"%s\\\" kirjastostasi</string>\n    <string name=\"pref_verbose_logging_summary\">Kirjoittaa yksityiskohtaiset lokit järjestelmälokiin (heikentää sovelluksen suorituskykyä)</string>\n    <string name=\"backup_info\">Varmuuskopioita kannattaa säilyttää myös muissa paikoissa.</string>\n    <string name=\"wish_list\">Toivelista</string>\n    <string name=\"cant_open_last_read_chapter\">Viimeksi luettua lukua ei voitu avata</string>\n    <string name=\"selected\">Valitut</string>\n    <string name=\"scanlator\">Skanlaattori</string>\n    <string name=\"label_data_storage\">Data ja tallennustila</string>\n    <string name=\"label_stats\">Tilastotiedot</string>\n    <string name=\"label_downloaded\">Ladattu</string>\n    <string name=\"action_sort_next_updated\">Seuraava odotettu päivitys</string>\n    <string name=\"action_sort_tracker_score\">Seurannan pisteytys</string>\n    <string name=\"action_update_category\">Päivitä kategoria</string>\n    <string name=\"action_display_show_continue_reading_button\">Jatka lukemista painike</string>\n    <string name=\"action_apply\">Käytä</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"action_revert_to_default\">Palauta oletus</string>\n    <string name=\"crash_screen_description\">%s kohtasi odottamattoman virheen. Ehdotamme että jaat kaatumisen lokitiedot tukikanavallemme Discordissa.</string>\n    <string name=\"delete_downloaded\">Poista ladatut</string>\n    <string name=\"create_backup_file_error\">Varmuuskopiotiedoston luonti epäonnistui</string>\n    <string name=\"crash_screen_title\">Hupsista!</string>\n    <string name=\"copied_to_clipboard_plain\">Kopioitu leikepöydälle</string>\n    <string name=\"crash_screen_restart_application\">Uudelleenkäynnistä applikaatio</string>\n    <string name=\"custom_cover\">Mukautettu kansikuva</string>\n    <string name=\"not_selected\">Ei valitut</string>\n    <string name=\"action_menu_overflow_description\">Lisää asetuksia</string>\n    <string name=\"label_local\">Paikallinen</string>\n    <string name=\"label_started\">Aloitettu</string>\n    <string name=\"action_open_random_manga\">Avaa satunnainen merkintä</string>\n    <string name=\"action_copy_to_clipboard\">Kopioi leikepöydälle</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Siirrä sarja pohjimmaiseksi</string>\n    <string name=\"action_not_now\">Ei nyt</string>\n    <string name=\"internal_error\">Sisäinen virhe: Lisätietoja saat kaatumisen lokitiedoista</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Akun käyttö taustalla</string>\n    <string name=\"pref_reader_summary\">Lukutila, näyttö, navigointi</string>\n    <string name=\"pref_browse_summary\">Lähteet, laajennokset, globaali haku</string>\n    <string name=\"pref_backup_summary\">Manuaaliset ja automaattiset varmuuskopiot, tallennustila</string>\n    <string name=\"pref_security_summary\">Applikaation lukko, turvallinen ruutu</string>\n    <string name=\"pref_advanced_summary\">Kaatumislokien vedos, akun optimoinnit</string>\n    <string name=\"theme_nord\">Pohjoismainen</string>\n    <string name=\"pref_relative_format\">Suhteelliset aikaleimat</string>\n    <string name=\"pref_relative_format_summary\">Käytä muotoa \\\"%1$s\\\", kuin muotoa \\\"%2$s\\\"</string>\n    <string name=\"ext_permission_install_apps_warning\">Laajennosten asentamiseen tarvitaan lupia. Napauta tästä myöntääksesi luvat.</string>\n    <string name=\"action_add_repo\">Lisää laajennosten lähde</string>\n    <string name=\"label_add_repo_input\">Laajennosten lähteen URL</string>\n    <string name=\"action_add_repo_message\">Lisää laajennosten lähteitä %siin. URL-osoitteen tulisi päättyä \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">Tämä laajennosten lähde on jo lisättynä!</string>\n    <string name=\"action_delete_repo\">Poista laajennosten lähde</string>\n    <string name=\"invalid_repo_name\">Epäkelpo laajennosten lähteen URL-osoite</string>\n    <string name=\"delete_repo_confirmation\">Haluatko poistaa laajennosten lähteen \\\"%s\\\"?</string>\n    <string name=\"pref_page_rotate_invert\">Peilaa käännetyt leveät sivut</string>\n    <string name=\"pref_double_tap_zoom\">Tuplanapauta lähentääksesi</string>\n    <string name=\"pref_flash_page_summ\">Vähentää haamujälkiä e-paperi näytöillä</string>\n    <string name=\"pref_skip_dupe_chapters\">Ohita kaksoisluvut</string>\n    <string name=\"split_tall_images\">Jaa korkeat kuvat</string>\n    <string name=\"action_create\">Luo</string>\n    <string name=\"pref_page_rotate\">Sovita leveät sivut kääntämällä</string>\n    <string name=\"pref_hide_threshold\">Valikon piilottamisen herkkyys vierittäessä</string>\n    <string name=\"pref_flash_page\">Väläytä näyttöä sivunvaihdon yhteydessä</string>\n    <string name=\"pref_storage_location_info\">Käytetään automaattisille varmuuskopioille, lukujen latauksille ja paikallisille lähteille.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Vältä keskeytyksiä pitkään jatkuvissa toimenpiteissä, kuten kirjaston päivitys, lataukset, ja varmuuskopion palautukset.</string>\n    <string name=\"pref_appearance_summary\">Teema, ajan ja päivämäärän formaatti</string>\n    <string name=\"pref_downloads_summary\">Automaattinen lataus, ennakkolataus</string>\n    <string name=\"pref_tracking_summary\">Yksisuuntainen synkronointi, paranneltu synkronointi</string>\n    <string name=\"pref_library_summary\">Kategoriat, globaalit päivitykset, luvun pyyhkäisy</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fil/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Pagkatapos ng %1$s minuto</item>\n        <item quantity=\"other\">Pagkatapos ng %1$s (na) minuto</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategorya</item>\n        <item quantity=\"other\">%d (na) kategorya</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Ang extension ay maaari nang i-update</item>\n        <item quantity=\"other\">Ang mga %d (na) extension ay maaari nang i-update</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Mga kabanata %1$s at isa pa</item>\n        <item quantity=\"other\">Mga kabanata %1$s at %2$d pa</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d bagong kabanata</item>\n        <item quantity=\"other\">%1$d (na) bagong kabanata</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Para sa %d na entry</item>\n        <item quantity=\"other\">Para sa %d na mga entry</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s kabanata</item>\n        <item quantity=\"other\">%1$s (na) kabanata</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s na lang</item>\n        <item quantity=\"other\">%1$s pa ang nasa queue</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Na-restore sa loob ng %1$s na may %2$s error</item>\n        <item quantity=\"other\">Na-restore sa loob ng %1$s na may %2$s (na) error</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d tracker</item>\n        <item quantity=\"other\">%d na tracker</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Nilaktawan ang %d na kabanata, maaaring ito ay wala sa source o na-filter ang mga ito</item>\n        <item quantity=\"other\">Nilaktawan ang %d na mga kabanata, maaaring wala sa source o na-filter ang mga ito</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Kahapon</item>\n        <item quantity=\"other\">%1$d araw na ang nakakalipas</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Susunod na hindi pa nababasang kabanata</item>\n        <item quantity=\"other\">Susunod na %d hindi pa nababasang kabanata</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Sunod na kabanata</item>\n        <item quantity=\"other\">Susunod na %d kabanata</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Nawawalang %1$s na kabanata</item>\n        <item quantity=\"other\">Nawawalang %1$s na mga kabanata</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 araw</item>\n        <item quantity=\"other\">%d (na) araw</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d na repo</item>\n        <item quantity=\"other\">%d na mga repo</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Bukas</item>\n        <item quantity=\"other\">Sa loob ng %1$d na araw</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 pahina</item>\n        <item quantity=\"other\">%1$s na mga pahina</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Iilipat ang %1$d na entry?</item>\n        <item quantity=\"other\">Ilipat ang %1$d na mga entry?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Kopyahin ang %1$d na entry?</item>\n        <item quantity=\"other\">Kopyahin ang %1$d na mga entry?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Isang entry ang nilaktawan</item>\n        <item quantity=\"other\">%1$d (na) entry ang nilaktawan</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fil/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"action_webview_refresh\">I-refresh</string>\n    <string name=\"action_webview_forward\">Sumulong</string>\n    <string name=\"action_webview_back\">Bumalik</string>\n    <string name=\"action_restore\">I-restore</string>\n    <string name=\"action_open_log\">Buksan ang log</string>\n    <string name=\"action_undo\">I-undo</string>\n    <string name=\"action_reset\">I-reset</string>\n    <string name=\"action_save\">I-save</string>\n    <string name=\"action_share\">Ibahagi</string>\n    <string name=\"action_install\">I-install</string>\n    <string name=\"action_move_to_bottom\">Ibaba</string>\n    <string name=\"action_move_to_top\">Itaas</string>\n    <string name=\"action_oldest\">Pinakaluma</string>\n    <string name=\"action_newest\">Pinakabago</string>\n    <string name=\"action_sort\">Ayusin</string>\n    <string name=\"action_cancel_all\">Kanselahin lahat</string>\n    <string name=\"action_cancel\">Kanselahin</string>\n    <string name=\"action_unpin\">I-unpin</string>\n    <string name=\"action_pin\">I-pin</string>\n    <string name=\"action_disable\">Di-paganahin</string>\n    <string name=\"action_display_show_tabs\">Ipakita ang mga tab ng kategorya</string>\n    <string name=\"action_display_download_badge\">Bilang ng kabanatang na-download</string>\n    <string name=\"action_display_comfortable_grid\">Kumportableng grid</string>\n    <string name=\"action_display_list\">Listahan</string>\n    <string name=\"action_display_grid\">Siksik na grid</string>\n    <string name=\"action_display\">Pagpapakita</string>\n    <string name=\"action_display_mode\">Istilo ng pagpapakita</string>\n    <string name=\"action_migrate\">Ilipat</string>\n    <string name=\"action_open_in_web_view\">Buksan sa WebView</string>\n    <string name=\"action_open_in_browser\">Buksan sa browser</string>\n    <string name=\"action_resume\">Ipagpatuloy</string>\n    <string name=\"action_start\">Simulan</string>\n    <string name=\"action_remove\">Tanggalin</string>\n    <string name=\"action_retry\">Subukan muli</string>\n    <string name=\"action_next_chapter\">Susunod na kabanata</string>\n    <string name=\"action_previous_chapter\">Nakaraang kabanata</string>\n    <string name=\"action_pause\">I-pause</string>\n    <string name=\"action_view_chapters\">Tingnan ang mga kabanata</string>\n    <string name=\"action_edit_cover\">I-edit ang pabalat</string>\n    <string name=\"action_move_category\">I-set ang kategorya</string>\n    <string name=\"action_add_category\">Magdagdag ng kategorya</string>\n    <string name=\"action_edit_categories\">Ayusin ang kategorya</string>\n    <string name=\"action_rename_category\">Palitan ang pangalan ng kategorya</string>\n    <string name=\"action_add\">Magdagdag</string>\n    <string name=\"action_edit\">Isaayos</string>\n    <string name=\"action_disable_all\">Di-paganahin lahat</string>\n    <string name=\"action_enable_all\">Paganahin lahat</string>\n    <string name=\"action_update_library\">I-update ang Aklatan</string>\n    <string name=\"action_delete\">Burahin</string>\n    <string name=\"action_remove_bookmark\">I-unbookmark ang kabanata</string>\n    <string name=\"action_bookmark\">I-bookmark ang kabanata</string>\n    <string name=\"action_download\">I-download</string>\n    <string name=\"action_mark_previous_as_read\">Markahang nabasa ang nauna</string>\n    <string name=\"action_mark_as_read\">Markahang nabasa na</string>\n    <string name=\"action_mark_as_unread\">Markahang babasahin</string>\n    <string name=\"action_select_inverse\">Baligtarin</string>\n    <string name=\"action_select_all\">Piliin lahat</string>\n    <string name=\"action_global_search\">Pangkalahatang Paghanap</string>\n    <string name=\"action_search\">Maghanap</string>\n    <string name=\"action_sort_latest_chapter\">Pinakabagong kabanata</string>\n    <string name=\"action_sort_last_read\">Huling binasa</string>\n    <string name=\"action_sort_total\">Dami ng kabanata</string>\n    <string name=\"action_sort_alpha\">Pa-alpabeto</string>\n    <string name=\"action_filter_empty\">Tanggalin ang pansala</string>\n    <string name=\"action_filter_unread\">Hindi Nabasa</string>\n    <string name=\"action_filter_bookmarked\">Na-bookmark</string>\n    <string name=\"action_filter\">Pansala</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_settings\">Mga setting</string>\n    <string name=\"history\">Kasaysayan</string>\n    <string name=\"track\">Tina-track</string>\n    <string name=\"chapters\">Mga Kabanata</string>\n    <string name=\"manga\">Mga nilalaman ng aklatan</string>\n    <string name=\"categories\">Kategorya</string>\n    <string name=\"information_empty_category\">Wala ka pang kategorya. Pindutin ang plus button para gumawa ng isa para sa pag-aayos ng iyong aklatan.</string>\n    <string name=\"information_empty_library\">Walang laman ang iyong aklatan</string>\n    <string name=\"information_no_recent_manga\">Walang binasa kamakailan</string>\n    <string name=\"information_no_recent\">Walang kamakailang update</string>\n    <string name=\"information_no_downloads\">Walang dina-download</string>\n    <string name=\"label_help\">Tulong</string>\n    <string name=\"label_extension_info\">Tungkol sa extension</string>\n    <string name=\"label_extensions\">Mga Extension</string>\n    <string name=\"label_migration\">Maglipat</string>\n    <string name=\"label_backup\">Pag-backup at Pag-restore</string>\n    <string name=\"label_sources\">Mga Source</string>\n    <string name=\"label_recent_manga\">Kasaysayan</string>\n    <string name=\"label_recent_updates\">Bago</string>\n    <string name=\"label_library\">Aklatan</string>\n    <string name=\"label_download_queue\">Pila ng mga download</string>\n    <string name=\"label_settings\">Mga Setting</string>\n    <string name=\"label_more\">Higit pa</string>\n    <string name=\"name\">Pangalan</string>\n    <string name=\"lock_never\">Hindi</string>\n    <string name=\"lock_always\">Palagi</string>\n    <string name=\"lock_when_idle\">Isara kung nakatambay</string>\n    <string name=\"lock_with_biometrics\">Nangangailangang i-unlock</string>\n    <string name=\"pref_manage_notifications\">Pamahalaan ang mga abiso</string>\n    <string name=\"pref_category_security\">Seguridad at privacy</string>\n    <string name=\"pref_date_format\">Pormat ng petsa</string>\n    <string name=\"theme_dark\">Madilim</string>\n    <string name=\"theme_light\">Maliwanag</string>\n    <string name=\"theme_system\">Sistema</string>\n    <string name=\"pref_category_about\">Patungkol</string>\n    <string name=\"pref_category_advanced\">Karagdagan</string>\n    <string name=\"pref_category_tracking\">Pagta-track</string>\n    <string name=\"pref_category_downloads\">Pag-download</string>\n    <string name=\"pref_category_reader\">Pagbasa</string>\n    <string name=\"pref_category_library\">Aklatan</string>\n    <string name=\"pref_category_general\">Pangkalahatan</string>\n    <string name=\"loading\">Naglo-load…</string>\n    <string name=\"app_not_available\">Hindi magagamit ang app</string>\n    <string name=\"second_to_last\">Pangalawa sa huling kabanata</string>\n    <string name=\"last_read_chapter\">Huling nabasang kabanata</string>\n    <string name=\"disabled\">Sarado</string>\n    <string name=\"pref_remove_after_marked_as_read\">Pagkatapos na manu-manong namarka bilang nabasa na</string>\n    <string name=\"pref_remove_after_read\">Pagkatapos basahin, awtomatikong burahin</string>\n    <string name=\"pref_webtoon_side_padding\">Kapal ng gilid</string>\n    <string name=\"pref_category_reading\">Pagbabasa</string>\n    <string name=\"pref_always_show_chapter_transition\">Ipakita palagi ang paglipat-kabanata</string>\n    <string name=\"color_filter_r_value\">Pula</string>\n    <string name=\"color_filter_g_value\">Berde</string>\n    <string name=\"color_filter_b_value\">Asul</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"rotation_force_landscape\">Piliting nakahiga</string>\n    <string name=\"rotation_force_portrait\">Piliting nakatayo</string>\n    <string name=\"rotation_free\">Malaya</string>\n    <string name=\"pref_rotation_type\">Default na pag-ikot</string>\n    <string name=\"double_tap_anim_speed_fast\">Mabilis</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_0\">Walang animasyon</string>\n    <string name=\"zoom_start_center\">Gitna</string>\n    <string name=\"zoom_start_right\">Kanan</string>\n    <string name=\"zoom_start_left\">Kaliwa</string>\n    <string name=\"zoom_start_automatic\">Awtomatiko</string>\n    <string name=\"pref_zoom_start\">Panimulang pag-zoom</string>\n    <string name=\"scale_type_smart_fit\">Matalinong pagsasalaki</string>\n    <string name=\"scale_type_original_size\">Orihinal na laki</string>\n    <string name=\"scale_type_fit_height\">Pagkasyahin sa tangkad</string>\n    <string name=\"scale_type_fit_width\">Pagkasyahin sa lapad</string>\n    <string name=\"scale_type_stretch\">Banatin</string>\n    <string name=\"scale_type_fit_screen\">Pagkasyahin sa screen</string>\n    <string name=\"pref_image_scale_type\">Uri ng pagsasalaki</string>\n    <string name=\"pager_viewer\">Nakapahina</string>\n    <string name=\"vertical_plus_viewer\">Pahabang strip na may puwang</string>\n    <string name=\"webtoon_viewer\">Pahabang strip</string>\n    <string name=\"vertical_viewer\">Pahina (patayo)</string>\n    <string name=\"right_to_left_viewer\">Pahina (kanan pakaliwa)</string>\n    <string name=\"left_to_right_viewer\">Pahina (kaliwa pakanan)</string>\n    <string name=\"pref_viewer_type\">Default na pagbasa</string>\n    <string name=\"black_background\">Itim</string>\n    <string name=\"gray_background\">Abo</string>\n    <string name=\"white_background\">Puti</string>\n    <string name=\"pref_reader_theme\">Kulay ng background</string>\n    <string name=\"pref_read_with_long_tap\">Ipakita ang mga aksyon sa mahabang tap</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Baligtarin ang pindutan ng volume</string>\n    <string name=\"pref_read_with_volume_keys\">Pindutan ng volume</string>\n    <string name=\"pref_reader_navigation\">Nabigasyon</string>\n    <string name=\"pref_skip_filtered_chapters\">Laktawan ang mga na-filter na kabanata</string>\n    <string name=\"pref_skip_read_chapters\">Laktawan ang mga kabanatang nabasa na</string>\n    <string name=\"pref_keep_screen_on\">Panatilihing nakabukas ang screen</string>\n    <string name=\"filter_mode_darken\">Padilimin (Burn/Darken)</string>\n    <string name=\"filter_mode_lighten\">Paliwanagin (Dodge/Lighten)</string>\n    <string name=\"filter_mode_screen\">Screen</string>\n    <string name=\"filter_mode_multiply\">Paramihin (Multiply)</string>\n    <string name=\"filter_mode_overlay\">Nakapatong (Overlay)</string>\n    <string name=\"pref_color_filter_mode\">Blend mode ng filter ng kulay</string>\n    <string name=\"pref_custom_color_filter\">Custom na filter ng kulay</string>\n    <string name=\"pref_custom_brightness\">Custom na liwanag (brightness)</string>\n    <string name=\"pref_crop_borders\">Gupitin ang gilid</string>\n    <string name=\"pref_show_reading_mode_summary\">Mabilis na ipakita ang kasalukuyang ginagamit kapag nakabukas ang reader</string>\n    <string name=\"pref_show_reading_mode\">Ipakita ang paraan ng pagbasa</string>\n    <string name=\"pref_show_page_number\">Ipakita ang bilang ng pahina</string>\n    <string name=\"pref_double_tap_anim_speed\">Bilis ng animasyon sa pagdoble-pindot</string>\n    <string name=\"pref_page_transitions\">I-animate ang paglipat-pahina</string>\n    <string name=\"pref_cutout_short\">Ipakita ang laman sa cutout area</string>\n    <string name=\"pref_fullscreen\">Naka-fullscreen</string>\n    <string name=\"obsolete_extension_message\">Hindi na available ang extension na ito. Maaaring hindi ito gumana nang maayos at maaaring magdulot ng mga isyu sa app. Inirerekomenda ang pag-uninstall nito.</string>\n    <string name=\"untrusted_extension_message\">Maaaring basahin ng mga mapanganib na extension ang anumang nakatagong kredensyal sa pag-log in o magsagawa ng arbitrary code.\n\\n\n\\nSa pamamagitan ng pagtitiwala sa extension na ito, tinatanggap mo ang mga panganib na ito.</string>\n    <string name=\"untrusted_extension\">Di-pinagkakatiwalaang extension</string>\n    <string name=\"ext_uninstall\">I-uninstall</string>\n    <string name=\"ext_trust\">Itiwala</string>\n    <string name=\"ext_untrusted\">Di pinagkakatiwalaan</string>\n    <string name=\"ext_installed\">Naka-install</string>\n    <string name=\"ext_installing\">Ini-install</string>\n    <string name=\"ext_downloading\">Dina-download</string>\n    <string name=\"ext_pending\">Nakabinbin</string>\n    <string name=\"ext_install\">I-install</string>\n    <string name=\"ext_obsolete\">Di-suportado</string>\n    <string name=\"ext_update\">I-update</string>\n    <string name=\"ext_updates_pending\">Nakabinbin ang mga update</string>\n    <string name=\"all\">Lahat</string>\n    <string name=\"default_category_summary\">Palaging tanungin</string>\n    <string name=\"default_category\">Default na kategorya</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Maghanap ng mga bagong pabalat at detalye kapag nag-a-update ng aklatan</string>\n    <string name=\"pref_library_update_refresh_metadata\">Awtomatikong i-refresh ang metadata</string>\n    <string name=\"pref_update_only_non_completed\">Laktawan ang mga entry na may katayuang \\\"Nakumpleto\\\"</string>\n    <string name=\"charging\">Kapag naka-charge</string>\n    <string name=\"pref_library_update_restriction\">Awtomatikong ina-update ang mga paghihigpit sa device</string>\n    <string name=\"update_weekly\">Linggo-linggo</string>\n    <string name=\"update_48hour\">Kada 2 araw</string>\n    <string name=\"update_24hour\">Araw-araw</string>\n    <string name=\"update_12hour\">Kada 12 oras</string>\n    <string name=\"update_6hour\">Kada 6 na oras</string>\n    <string name=\"update_never\">Nakapatay</string>\n    <string name=\"pref_library_update_interval\">Awtomatikong pag-update</string>\n    <string name=\"pref_category_library_update\">Panlahatang update</string>\n    <string name=\"landscape\">Pahiga</string>\n    <string name=\"portrait\">Patayo</string>\n    <string name=\"pref_library_columns\">Mga item kada row</string>\n    <string name=\"pref_category_display\">Pagpapakita</string>\n    <string name=\"hide_notification_content\">Itago ang laman ng abiso</string>\n    <string name=\"secure_screen_summary\">Tinatago ng seguridad sa screen ang laman ng app habang nagpapalit ng app at hinaharangan din nito ang mga screenshot</string>\n    <string name=\"secure_screen\">Bantayan ang screen</string>\n    <string name=\"pref_read_with_tapping_inverted\">Baligtarin ang mga tap zone</string>\n    <string name=\"backup_restore_missing_sources\">Nawawalang mga source:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Hindi naglalaman ang backup ng kahit anong mga entry sa aklatan.</string>\n    <string name=\"invalid_backup_file\">Di-wastong backup file:</string>\n    <string name=\"backup_created\">Nai-backup na</string>\n    <string name=\"pref_backup_interval\">Awtomatikong dalas ng pag-backup</string>\n    <string name=\"pref_restore_backup_summ\">I-restore ang aklatan mula sa backup file</string>\n    <string name=\"pref_restore_backup\">I-restore ang backup</string>\n    <string name=\"pref_create_backup_summ\">Magagamit para ma-restore ang kasalukuyang aklatan</string>\n    <string name=\"pref_create_backup\">Gumawa ng backup</string>\n    <string name=\"tracking_info\">Isahang pag-sync para mai-update ang progress sa mga kabanata sa mga external na tracking service. Ayusin ang pagta-track para sa mga indibidwal na entry gamit ang button na Pagta-track.</string>\n    <string name=\"services\">Mga Tracker</string>\n    <string name=\"pref_auto_update_manga_sync\">I-update ang progress pagkatapos basahin</string>\n    <string name=\"pref_download_new\">I-download ang mga bagong kabanata</string>\n    <string name=\"fifth_to_last\">Panlima sa huling kabanata</string>\n    <string name=\"fourth_to_last\">Pang-apat sa huling kabanata</string>\n    <string name=\"third_to_last\">Pangatlo sa huling kabanata</string>\n    <string name=\"pref_category_reading_mode\">Pagbasa</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Petsa ng pagdagdag</string>\n    <string name=\"tapping_inverted_both\">Pareho</string>\n    <string name=\"tapping_inverted_vertical\">Patayo</string>\n    <string name=\"tapping_inverted_horizontal\">Pahiga</string>\n    <string name=\"channel_ext_updates\">Mga update sa extension</string>\n    <string name=\"tapping_inverted_none\">Wala</string>\n    <string name=\"channel_new_chapters\">Mga update sa kabanata</string>\n    <string name=\"channel_common\">Pangkaraniwan</string>\n    <string name=\"download_notifier_download_paused\">Naka-pause ang mga download</string>\n    <string name=\"download_notifier_no_network\">Walang koneksyon sa Internet</string>\n    <string name=\"download_notifier_text_only_wifi\">Walang koneksyon sa Wifi</string>\n    <string name=\"download_notifier_unknown_error\">Di ma-download ang kabanata dahil sa isang di-inaasahang error</string>\n    <string name=\"download_notifier_title_error\">Nagka-error</string>\n    <string name=\"download_notifier_downloader_title\">Taga-download</string>\n    <string name=\"information_webview_outdated\">Paki-update ang WebView app para sa mas mahusay na pagkakatugma</string>\n    <string name=\"information_webview_required\">Kinakailangan ng app ang WebView upang gumana ito</string>\n    <string name=\"information_cloudflare_bypass_failure\">Bigong ma-bypass ang Cloudflare</string>\n    <string name=\"update_check_notification_update_available\">May bagong bersyon!</string>\n    <string name=\"update_check_notification_download_error\">Nagka-error sa pag-download</string>\n    <string name=\"update_check_notification_download_complete\">I-tap upang ma-install ang update</string>\n    <string name=\"update_check_notification_download_in_progress\">Dina-download…</string>\n    <string name=\"update_check_no_new_updates\">Walang bagong update</string>\n    <string name=\"update_check_confirm\">I-download</string>\n    <string name=\"file_select_backup\">Pumili ng backup</string>\n    <string name=\"file_select_cover\">Piliin ang larawan na pabalat</string>\n    <string name=\"notification_first_add_to_library\">Maaaring ilagay ang entry sa iyong library bago ito gawin</string>\n    <string name=\"notification_cover_update_failed\">Bigong ma-update ang pabalat</string>\n    <string name=\"notification_chapters_multiple\">Mga kabanata %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Kabanata %1$s at karagdagang %2$d iba pa</string>\n    <string name=\"notification_chapters_single\">Kabanata %1$s</string>\n    <string name=\"notification_new_chapters\">May mga bagong kabanata</string>\n    <string name=\"download_insufficient_space\">Di ma-download ang mga kabanata dahil sa mababang espasyo sa storage</string>\n    <string name=\"download_queue_error\">Di ma-download ang mga kabanata. Subukan mo uli ito sa mga download na seksyon</string>\n    <string name=\"copy\">Kopyahin</string>\n    <string name=\"migrate\">Ilipat</string>\n    <string name=\"migration_selection_prompt\">Pumili ng paglilipatang source</string>\n    <string name=\"migration_dialog_what_to_include\">Pumili ng data na isama</string>\n    <string name=\"recent_manga_time\">Kab. %1$s - %2$s</string>\n    <string name=\"updating_library\">Ina-update ang Aklatan</string>\n    <string name=\"loader_not_implemented_error\">Di makita ang source</string>\n    <string name=\"page_list_empty_error\">Walang nakitang mga pahina</string>\n    <string name=\"transition_pages_error\">Bigong mai-load ang mga pahinang: %1$s</string>\n    <string name=\"transition_pages_loading\">Nilo-load ang mga pahina…</string>\n    <string name=\"transition_no_previous\">Walang kabanata bago ito</string>\n    <string name=\"transition_no_next\">Wala nang susunod na kabanata</string>\n    <string name=\"transition_previous\">Nakaraan:</string>\n    <string name=\"transition_next\">Susunod:</string>\n    <string name=\"transition_current\">Kasalukuyan:</string>\n    <string name=\"transition_finished\">Natapos:</string>\n    <string name=\"viewer\">Mode ng pagbasa</string>\n    <string name=\"pref_category_for_this_series\">Para sa seryeng ito</string>\n    <string name=\"confirm_set_image_as_cover\">Gamiting cover art ang larawang ito?</string>\n    <string name=\"decode_image_error\">Di mai-load ang larawan</string>\n    <string name=\"no_next_chapter\">Di makita ang susunod na kabanata</string>\n    <string name=\"chapter_progress\">Pahina: %1$d</string>\n    <string name=\"cover_updated\">Na-update ang pabalat</string>\n    <string name=\"set_as_cover\">Gawin itong pabalat</string>\n    <string name=\"custom_filter\">Custom na filter</string>\n    <string name=\"picture_saved\">Na-save na ang larawan</string>\n    <string name=\"dialog_with_checkbox_reset\">I-reset ang lahat ng kabanata sa entry na ito</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Tatanggalin nito ang petsa ng pagbasa sa kabanatang ito. Sigurado ka ba?</string>\n    <string name=\"snack_categories_deleted\">Binura na ang mga kategorya</string>\n    <string name=\"error_category_exists\">Mayroong kapangalan ang kategoryang ito!</string>\n    <string name=\"track_type\">Uri</string>\n    <string name=\"track_status\">Estado</string>\n    <string name=\"status\">Estado</string>\n    <string name=\"title\">Pamagat</string>\n    <string name=\"score\">Iskor</string>\n    <string name=\"repeating\">Binabasa muli</string>\n    <string name=\"plan_to_read\">Planong basahin</string>\n    <string name=\"paused\">Naka-pause</string>\n    <string name=\"on_hold\">Tinigil</string>\n    <string name=\"completed\">Kumpleto</string>\n    <string name=\"dropped\">Binitawan</string>\n    <string name=\"reading\">Binabasa</string>\n    <string name=\"add_tracking\">Idagdag sa tracker</string>\n    <string name=\"manga_tracking_tab\">I-track</string>\n    <string name=\"confirm_delete_chapters\">Sigurado ka bang gusto mong burahin ang mga napiling kabanata?</string>\n    <string name=\"download_unread\">Babasahin</string>\n    <string name=\"manga_download\">I-download</string>\n    <string name=\"sort_by_upload_date\">Base sa petsa ng pag-upload</string>\n    <string name=\"sort_by_number\">Base sa bilang</string>\n    <string name=\"sort_by_source\">Base sa source</string>\n    <string name=\"show_title\">Pangalan ng source</string>\n    <string name=\"show_chapter_number\">Kabanata</string>\n    <string name=\"chapter_paused\">Naka-pause</string>\n    <string name=\"chapter_error\">Nagka-error</string>\n    <string name=\"chapter_downloading_progress\">Dina-download (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">Kabanata %1$s</string>\n    <string name=\"snack_add_to_library\">Idagdag sa Aklatan?</string>\n    <string name=\"source_not_installed\">Di naka-install ang source: %1$s</string>\n    <string name=\"copied_to_clipboard\">Kinopya sa clipboard:\n\\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">Burahin ang mga na-download na kabanata?</string>\n    <string name=\"manga_info_expand\">Palawakin</string>\n    <string name=\"manga_info_collapse\">Bawasan</string>\n    <string name=\"manga_removed_library\">Tinanggal sa Aklatan</string>\n    <string name=\"manga_added_library\">Dinagdag sa Aklatan</string>\n    <string name=\"remove_from_library\">Tanggalin sa Aklatan</string>\n    <string name=\"in_library\">Nasa Aklatan</string>\n    <string name=\"add_to_library\">Idagdag sa Aklatan</string>\n    <string name=\"licensed\">Lisensiyado</string>\n    <string name=\"unknown_status\">Di alam ang estado</string>\n    <string name=\"unknown_author\">Di alam ang may-akda</string>\n    <string name=\"unknown\">Di alam</string>\n    <string name=\"ongoing\">Patuloy</string>\n    <string name=\"local_source_help_guide\">Gabay sa Lokal na source</string>\n    <string name=\"browse\">Maghanap</string>\n    <string name=\"latest\">Pinakabago</string>\n    <string name=\"action_global_search_query\">Hinanap ang \\\"%1$s\\\" sa lahat</string>\n    <string name=\"action_global_search_hint\">Panlahatang paghahanap…</string>\n    <string name=\"pinned_sources\">Naka-pin</string>\n    <string name=\"last_used_source\">Huling ginamit</string>\n    <string name=\"other_source\">Iba pa</string>\n    <string name=\"local_source\">Lokal na source</string>\n    <string name=\"no_results_found\">Walang nakitang resulta</string>\n    <string name=\"no_more_results\">Wala na\\'ng resulta</string>\n    <string name=\"tabs_header\">Mga Tab</string>\n    <string name=\"updating_category\">Ina-update ang kategorya</string>\n    <string name=\"unknown_error\">Di matukoy na error</string>\n    <string name=\"logout_success\">Naka-logout ka na</string>\n    <string name=\"logout\">Mag-logout</string>\n    <string name=\"logout_title\">Mag-logout mula sa %1$s?</string>\n    <string name=\"login_success\">Naka-login ka na</string>\n    <string name=\"login\">Mag-login</string>\n    <string name=\"password\">Password</string>\n    <string name=\"email\">Email address</string>\n    <string name=\"username\">Username (pangalan)</string>\n    <string name=\"login_title\">Mag-login sa %1$s</string>\n    <string name=\"downloaded_only_summary\">Pini-filter ang lahat ng mga entry sa iyong akalatan</string>\n    <string name=\"label_downloaded_only\">Mga na-download lang</string>\n    <string name=\"pref_acra_summary\">Nakatutulong sa pag-ayos sa mga bug. Walang sensitibong data ang ipapadala</string>\n    <string name=\"pref_enable_acra\">Ipadala ang mga ulat ng pag-crash</string>\n    <string name=\"updated_version\">Na-update sa v%1$s</string>\n    <string name=\"check_for_updates\">Maghanap ng update</string>\n    <string name=\"licenses\">Mga lisensiyang open-source</string>\n    <string name=\"whats_new\">Anong bago</string>\n    <string name=\"version\">Bersyon</string>\n    <string name=\"website\">Website</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Di mabuksan ang pagsasaayos ng iyong device</string>\n    <string name=\"battery_optimization_disabled\">Nakapatay na ang pag-o-optimisa sa baterya</string>\n    <string name=\"pref_disable_battery_optimization\">Patayin ang pag-o-optimisa sa baterya</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Nakatutulong sa pag-update ng aklatan sa background at pag-backup</string>\n    <string name=\"pref_refresh_library_covers\">I-refresh ang mga pabalat ng aklatan</string>\n    <string name=\"clear_database_completed\">Binura na</string>\n    <string name=\"pref_clear_database_summary\">Burahin ang kasaysasan sa mga entry na hindi naka-save sa iyong aklatan</string>\n    <string name=\"pref_clear_database\">Linisin ang database</string>\n    <string name=\"cache_delete_error\">Nagka-error habang nililinis</string>\n    <string name=\"cache_deleted\">Nalinisan na ang cache, natanggal ang %1$d na file</string>\n    <string name=\"used_cache\">Nagamit: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">Linisin ang cache ng kabanata</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"cookies_cleared\">Nalinis na ang mga cookie</string>\n    <string name=\"requires_app_restart\">Nangangailangang buksan muli ang app para gumana</string>\n    <string name=\"pref_clear_cookies\">Linisin ang mga cookie</string>\n    <string name=\"label_network\">Networking</string>\n    <string name=\"restoring_backup_error\">Bigong ma-restore ang backup</string>\n    <string name=\"restoring_backup_canceled\">Kinansela ang pag-restore</string>\n    <string name=\"restore_in_progress\">Inire-restore na</string>\n    <string name=\"restore_completed\">Na-restore na</string>\n    <string name=\"restoring_backup\">Rine-restore ang backup</string>\n    <string name=\"creating_backup_error\">Bigong ma-backup</string>\n    <string name=\"creating_backup\">Bina-backup</string>\n    <string name=\"backup_choice\">Anong iba-backup mo?</string>\n    <string name=\"backup_in_progress\">Bina-backup na</string>\n    <string name=\"restore_duration\">%1$02d (na) min, %2$02d seg</string>\n    <string name=\"no_pinned_sources\">Wala kang naka-pin na source</string>\n    <string name=\"channel_complete\">Tapos na</string>\n    <string name=\"channel_errors\">Mga error</string>\n    <string name=\"channel_progress\">Takbo</string>\n    <string name=\"backup_restore_missing_trackers\">Di naka-login sa mga tracker:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Payagan ang pagtanggal ng mga naka-bookmark na kabanata</string>\n    <string name=\"pref_category_delete_chapters\">Magbura ng kabanata</string>\n    <string name=\"parental_controls_info\">Hindi nito naiiwasan ang pagpapakita ng mga NSFW (18+) sa mga di-opisyal o posibleng maling naka-flag na extension sa loob ng app.</string>\n    <string name=\"ext_nsfw_warning\">Posibleng may NSFW (18+) content ang mga source mula sa extension na ito</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"no_chapters_error\">Walang nakitang kabanata</string>\n    <string name=\"confirm_set_chapter_settings\">Gusto mo bang i-save at ipagpaubaya ang pagsasaayos na ito?</string>\n    <string name=\"set_chapter_settings_as_default\">I-set bilang default</string>\n    <string name=\"chapter_settings_updated\">Ini-update na ang Ipagpaubaya</string>\n    <string name=\"share_page_info\">%1$s: %2$s, pahina %3$d</string>\n    <string name=\"also_set_chapter_settings_for_library\">Ilapat din sa lahat ng mga entry sa aking aklatan</string>\n    <string name=\"chapter_settings\">Pagsasaayos ng Kabanata</string>\n    <string name=\"downloaded_chapters\">Bilang ng na-download</string>\n    <string name=\"manga_from_library\">Mula sa Aklatan</string>\n    <string name=\"action_search_settings\">Maghanap ng setting</string>\n    <string name=\"pref_incognito_mode_summary\">Pinapa-pause ang kasaysayan ng pagbabasa</string>\n    <string name=\"pref_incognito_mode\">Incognito na mode</string>\n    <string name=\"pref_clear_history\">Linisin ang kasaysayan</string>\n    <string name=\"clear_history_completed\">Nabura ang kasaysayan</string>\n    <string name=\"clear_history_confirmation\">Sigurado ka ba talaga? Mawawala ang buong kasaysayan.</string>\n    <string name=\"migration_help_guide\">Gabay sa Paglipat ng source</string>\n    <string name=\"spen_next_page\">Susunod na pahina</string>\n    <string name=\"spen_previous_page\">Balik</string>\n    <string name=\"file_picker_error\">Walang nakitang file picker app</string>\n    <string name=\"pref_show_nsfw_source\">Ipakita sa mga listahan ng source at extension</string>\n    <string name=\"pref_category_nsfw_content\">Mga source na NSFW (18+)</string>\n    <string name=\"myanimelist_relogin\">Mag-login muli sa MAL</string>\n    <string name=\"track_finished_reading_date\">Petsa ng pagtatapos</string>\n    <string name=\"track_started_reading_date\">Petsa ng pagsisimula</string>\n    <string name=\"pref_dump_crash_logs\">Magbahagi ng mga crash log</string>\n    <string name=\"pref_dump_crash_logs_summary\">Sine-save ang mga error log sa isang file para maibahagi sa mga developer</string>\n    <string name=\"pref_viewer_nav\">Mga tap zone</string>\n    <string name=\"edge_nav\">Sulok</string>\n    <string name=\"kindlish_nav\">Mala-Kindle</string>\n    <string name=\"l_nav\">Hugis-L</string>\n    <string name=\"action_desc\">Pababa</string>\n    <string name=\"action_asc\">Pataas</string>\n    <string name=\"action_order_by_chapter_number\">Kabanata</string>\n    <string name=\"action_order_by_upload_date\">Petsa in-upload</string>\n    <string name=\"action_filter_tracked\">Na-track</string>\n    <string name=\"right_and_left_nav\">Kaliwa at Kanan</string>\n    <string name=\"pref_dual_page_split\">Hatiin ang mga malalapad na pahina</string>\n    <string name=\"action_display_show_number_of_items\">Ipakita ang bilang ng mga aytem</string>\n    <string name=\"pref_dual_page_invert_summary\">Kung sakaling hindi sumasakto sa direksyon ng pagbabasa ang paghahati sa malalapad na pahina</string>\n    <string name=\"pref_dual_page_invert\">Baligtarin ang paghahati sa pahina</string>\n    <string name=\"backup_restore_content_full\">Kailangan mong i-install muli ang mga nawawalang extension at mag-login muli sa mga tracker pagkatapos para magamit ang mga ito.</string>\n    <string name=\"pref_dns_over_https\">DNS kesa HTTPS (DoH)</string>\n    <string name=\"pref_download_new_categories_details\">Ang mga entry sa mga ibinukod na kategorya ay hindi mada-download kahit na sila ay kasama rin sa mga kategoryang kasama.</string>\n    <string name=\"pref_category_auto_download\">Awtomatikong pag-download</string>\n    <string name=\"nav_zone_right\">Kanan</string>\n    <string name=\"nav_zone_left\">Kaliwa</string>\n    <string name=\"nav_zone_next\">Susunod</string>\n    <string name=\"nav_zone_prev\">Nakaraan</string>\n    <string name=\"pref_show_navigation_mode_summary\">Mabilis na ipakita ang lugar na ita-tap kapag nakabukas ang reader</string>\n    <string name=\"pref_show_navigation_mode\">Ipakita ang mga overlay ng tap zone</string>\n    <string name=\"exclude\">Na-ibukod: %s</string>\n    <string name=\"include\">Kasali ang: %s</string>\n    <string name=\"none\">Wala</string>\n    <string name=\"pref_library_update_categories_details\">Hindi ia-update ang mga entry na nasa na-ibukod na mga kategorya kahit na nasa mga kasamang kategorya rin sila.</string>\n    <string name=\"action_sort_chapter_fetch_date\">Petsa ng pagkuha ng kabanata</string>\n    <string name=\"action_show_errors\">I-tap para makita ang detalye</string>\n    <string name=\"update_check_eol\">Di na suportado ang bersyong ito ng Android</string>\n    <string name=\"clipboard_copy_error\">Bigong makopya sa clipboard</string>\n    <string name=\"rotation_landscape\">Pahiga</string>\n    <string name=\"rotation_portrait\">Patayo</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Gumagawa ng mga folder ayon sa pamagat ng entry</string>\n    <string name=\"pref_create_folder_per_manga\">I-save ang mga pahina sa magkakaibang folder</string>\n    <string name=\"pref_reader_actions\">Gawain</string>\n    <string name=\"rotation_type\">Pag-ikot</string>\n    <string name=\"pref_grayscale\">Maabo</string>\n    <string name=\"notification_incognito_text\">Di-paganahin ang Incognito na mode</string>\n    <string name=\"automatic_background\">Awto</string>\n    <string name=\"cancel_all_for_series\">Kanselahin lahat para sa seryeng ito</string>\n    <string name=\"local_filter_order_by\">Ayusin ayon sa</string>\n    <string name=\"restrictions\">Mga Restriksyon: %s</string>\n    <string name=\"error_no_match\">Walang natagpuang katugma</string>\n    <string name=\"date\">Petsa</string>\n    <string name=\"local_invalid_format\">Di-wastong format ng kabanata</string>\n    <string name=\"chapter_not_found\">Hindi makita ang kabanata</string>\n    <string name=\"source_unsupported\">Di suportado ang source</string>\n    <string name=\"unread\">Di nabasa</string>\n    <string name=\"error_sharing_cover\">Error sa pagbabahagi ng pabalat</string>\n    <string name=\"error_saving_cover\">Error sa pag-save ng pabalat</string>\n    <string name=\"cover_saved\">Na-save na ang pabalat</string>\n    <string name=\"manga_cover\">Pabalat</string>\n    <string name=\"off\">Naka-off</string>\n    <string name=\"on\">Naka-on</string>\n    <string name=\"action_display_local_badge\">Lokal na source</string>\n    <string name=\"categorized_display_settings\">Mga setting ng bawat kategorya para sa pagbubukod-bukod</string>\n    <string name=\"information_empty_category_dialog\">Wala ka pang kategorya.</string>\n    <string name=\"tracking_guide\">Gabay sa pag-track</string>\n    <string name=\"action_start_downloading_now\">Simulan ang pag-download ngayon</string>\n    <string name=\"about_dont_kill_my_app\">May dagdag na mga restriksyon sa app ang ilang mga modelo ng phone na pumapatay sa mga serbisyo sa background. May impormasyon sa site na ito para maayos ang naturang problema.</string>\n    <string name=\"restore_miui_warning\">Maaaring hindi gumana nang maayos ang pag-backup/pag-restore kung nakasara ang MIUI optimization.</string>\n    <string name=\"enhanced_tracking_info\">Nagbibigay ng mga pinahusay na mga feature para sa ilang mga source. Awtomatikong tina-track ang mga entry kapag naidagdag ito sa iyong aklatan.</string>\n    <string name=\"enhanced_services\">Pinahusay na mga tracker</string>\n    <string name=\"theme_midnightdusk\">Hatinggabi</string>\n    <string name=\"theme_greenapple\">Berdeng Mansanas</string>\n    <string name=\"theme_monet\">Nagbabago</string>\n    <string name=\"pref_app_theme\">Tema</string>\n    <string name=\"pref_dark_theme_pure_black\">Purong itim</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin at Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Presas</string>\n    <string name=\"label_background_activity\">Aktibidad sa background</string>\n    <string name=\"pref_lowest\">Pinakamababa</string>\n    <string name=\"pref_low\">Mababa</string>\n    <string name=\"pref_high\">Mataas</string>\n    <string name=\"pref_highest\">Pinakamataas</string>\n    <string name=\"pref_hide_threshold\">Sensitivity para sa pagtatago ng menu sa scroll</string>\n    <string name=\"pref_inverted_colors\">Baligtad</string>\n    <string name=\"relative_time_today\">Ngayon</string>\n    <string name=\"theme_tealturquoise\">Teal at Turquoise</string>\n    <string name=\"pref_category_appearance\">Hitsura</string>\n    <string name=\"confirm_lock_change\">Patotohanan para makumpirma ang pagbabago</string>\n    <string name=\"label_default\">Default</string>\n    <string name=\"action_track\">I-Track</string>\n    <string name=\"getting_started_guide\">Gabay sa Pagsisimula</string>\n    <string name=\"pref_tablet_ui_mode\">Pang-tablet na UI</string>\n    <string name=\"help_translate\">Tumulong sa pagsalin</string>\n    <string name=\"pref_remove_exclude_categories\">Mga na-ibukod na mga kategorya</string>\n    <string name=\"ext_app_info\">Tungkol sa app</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">I-Install at buksan ang Shizuku para magamit ito bilang taga-install ng extension.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Di tumatakbo ang Shizuku</string>\n    <string name=\"ext_installer_legacy\">Legasiya</string>\n    <string name=\"ext_installer_pref\">Taga-install</string>\n    <string name=\"ext_install_service_notif\">Ini-install ang extension…</string>\n    <string name=\"action_sort_count\">Dami ng entry</string>\n    <string name=\"pref_verbose_logging\">Verbose na pagla-log</string>\n    <string name=\"pref_verbose_logging_summary\">I-print ang detalyadong mga log sa system log (nakakabawas sa performance ng app)</string>\n    <string name=\"notification_size_warning\">Babala: Nakasasama ang mga malalaking update sa source at maaaring humantong sa mabagal na update at pagtaas ng paggamit sa baterya. I-tap para matuto pa.</string>\n    <string name=\"action_display_language_badge\">Wika</string>\n    <string name=\"label_warning\">Babala</string>\n    <string name=\"backup_info\">Dapat nagtatabi rin kayo ng mga kopya ng backup sa ibang mga lugar. Ang mga backup ay naglalaman ng sensitibong data tulad ng nakaimbak na password; mag-ingat kung ibahagi ito.</string>\n    <string name=\"connected_to_wifi\">Sa Wi-Fi lang</string>\n    <string name=\"update_72hour\">Kada 3 araw</string>\n    <string name=\"download_queue_size_warning\">Babala: maaaring humantong sa pagbagal at/o pagharang ng mga source sa %s ang maramihang pag-download. I-tap para matuto pa.</string>\n    <string name=\"channel_app_updates\">Mga update sa app</string>\n    <string name=\"ext_update_all\">I-update lahat</string>\n    <string name=\"clear_database_source_item_count\">%1$d na entry sa database na wala sa aklatan</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Linisin ang cache ng kabanata sa paglulunsad ng app</string>\n    <string name=\"database_clean\">Walang malilinis</string>\n    <string name=\"extension_api_error\">Bigong makuha ng mga available na extension</string>\n    <string name=\"privacy_policy\">Patakaran sa Pagkapribado</string>\n    <string name=\"library_errors_help\">Para sa tulong sa pag-aayos ng mga error sa pag-update ng aklatan, tingnan ang %1$s</string>\n    <string name=\"pref_update_only_completely_read\">Laktawan ang mga entry na hindi pa nababasang kabanata</string>\n    <string name=\"save_chapter_as_cbz\">I-save bilang CBZ archive</string>\n    <string name=\"publishing_finished\">Tapos na ang paglalathala</string>\n    <string name=\"on_hiatus\">Naka-hiatus</string>\n    <string name=\"cancelled\">Kinansela</string>\n    <string name=\"action_show_manga\">Ipakita ang entry</string>\n    <string name=\"action_display_cover_only_grid\">Pabalat lamang na grid</string>\n    <string name=\"skipped_reason_completed\">Nilaktawan dahil kumpleto na ang serye</string>\n    <string name=\"pref_update_only_started\">Laktawan ang hindi nasimulang mga entry</string>\n    <string name=\"skipped_reason_not_caught_up\">Nilaktawan dahil may di pa nabasang mga kabanata</string>\n    <string name=\"skipped_reason_not_started\">Nilaktawan dahil wala pang nabasang mga kabanata</string>\n    <string name=\"pref_landscape_zoom\">Awtomatikong mag-zoom sa mga malalawak na larawan</string>\n    <string name=\"pref_navigate_pan\">I-pan ang mga malalapad na larawan</string>\n    <string name=\"learn_more\">Matuto pa</string>\n    <string name=\"notification_update_error\">Nabigo ang %1$d (na) update</string>\n    <string name=\"rotation_reverse_portrait\">Baligtad na patayo</string>\n    <string name=\"action_move_to_top_all_for_series\">Ilagay sa taas ang serye</string>\n    <string name=\"disabled_nav\">Nakasara</string>\n    <string name=\"empty_backup_error\">Walang entry sa Aklatan na maiba-backup</string>\n    <string name=\"update_check_open\">Buksan sa Github</string>\n    <string name=\"error_saving_picture\">Error sa pag-save sa larawan</string>\n    <string name=\"webview_data_deleted\">Nalinis na ang WebView data</string>\n    <string name=\"pref_clear_webview_data\">Linisin ang WebView data</string>\n    <string name=\"action_close\">Isara</string>\n    <string name=\"source_filter_empty_screen\">Walang nakitang naka-install na source</string>\n    <string name=\"source_empty_screen\">Walang nakitang source</string>\n    <string name=\"action_sort_last_manga_update\">Huling pag-update</string>\n    <string name=\"action_sort_unread_count\">Dami ng di pa nabasa</string>\n    <string name=\"split_tall_images_summary\">Pinapahusay ang performance ng reader</string>\n    <string name=\"download_notifier_split_page_not_found\">Hindi nakita ang pahina %d habang naghahati</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Di makita ang file path ng pahina %d</string>\n    <string name=\"empty_screen\">Paano ba \\'to</string>\n    <string name=\"pref_reset_viewer_flags_error\">Di ma-reset ang pagsasaayos sa reader</string>\n    <string name=\"pref_reset_viewer_flags_success\">Na-reset na ang lahat ng setting sa reader</string>\n    <string name=\"pref_reset_viewer_flags\">I-reset ang pagsasaayos sa reader kada serye</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Rine-reset ang paraan ng pagbasa at orientation para sa lahat ng mga serye</string>\n    <string name=\"ext_info_version\">Bersyon</string>\n    <string name=\"ext_info_language\">Wika</string>\n    <string name=\"ext_info_age_rating\">Rating sa edad</string>\n    <string name=\"on_hold_list\">Listahan ng Tinigil</string>\n    <string name=\"complete_list\">Listahan ng Kumpleto</string>\n    <string name=\"unfinished_list\">Listahan ng Di pa Tapos</string>\n    <string name=\"wish_list\">Listahan ng Hiling</string>\n    <string name=\"reading_list\">Listahan ng Binabasa</string>\n    <string name=\"network_not_metered\">Sa di-nakametrong network lang</string>\n    <string name=\"cant_open_last_read_chapter\">Di mabuksan ang huling nabasang kabanata</string>\n    <string name=\"custom_cover\">Custom na pabalat</string>\n    <string name=\"not_installed\">Di naka-install</string>\n    <string name=\"pref_app_language\">Wika ng app</string>\n    <string name=\"theme_lavender\">Lila</string>\n    <string name=\"description_placeholder\">Walang paglalarawan</string>\n    <string name=\"delete_category\">Burahin ang kategorya</string>\n    <string name=\"internal_error\">InternalError: Tingnan ang mga crash log para sa karagdagang impormasyon</string>\n    <string name=\"delete_category_confirmation\">Gusto mo bang burahin ang kategoryang \\\"%s\\\"?</string>\n    <string name=\"pref_reset_user_agent_string\">I-reset ang default na string ng user agent</string>\n    <string name=\"pref_user_agent_string\">Default na string ng user agent</string>\n    <string name=\"action_remove_everything\">Burahin lahat</string>\n    <string name=\"appwidget_updates_description\">Tingnan ang mga kamakailang nai-update na entry sa iyong aklatan</string>\n    <string name=\"appwidget_unavailable_locked\">Di available ang widget kapag nakabukas ang lock</string>\n    <string name=\"update_already_running\">May ina-update sa ngayon</string>\n    <string name=\"error_user_agent_string_blank\">Hindi dapat blangko ang user agent string</string>\n    <string name=\"theme_tidalwave\">Daluyong</string>\n    <string name=\"download_ahead\">I-download agad</string>\n    <string name=\"auto_download_while_reading\">Awtomatikong mag-download habang nagbabasa</string>\n    <string name=\"download_ahead_info\">Gumagana lamang sa kasalukuyang kabanata + ang susunod ay na-download na.</string>\n    <string name=\"are_you_sure\">Sigurado ka ba?</string>\n    <string name=\"multi_lang\">Marami</string>\n    <string name=\"remove_manga\">Tatanggalin mo na ang \\\"%s\\\" mula sa iyong aklatan</string>\n    <string name=\"updates_last_update_info\">Huling update sa aklatan: %s</string>\n    <string name=\"popular\">Sikat</string>\n    <string name=\"missing_storage_permission\">Hindi binigay ang mga permiso sa storage</string>\n    <string name=\"skipped_reason_not_always_update\">Nilaktawan dahil hindi kailangan ang pag-update sa serye</string>\n    <string name=\"action_search_hint\">Maghanap…</string>\n    <string name=\"pref_reader_summary\">Paraan ng pagbasa, pagpapakita, nabigasyon</string>\n    <string name=\"pref_downloads_summary\">Awtomatikong pag-download, i-download nang maaga</string>\n    <string name=\"pref_tracking_summary\">Isahang pag-sync sa progress, pinahusay na pag-sync</string>\n    <string name=\"pref_appearance_summary\">Tema, ayos ng petsa &amp; oras</string>\n    <string name=\"pref_backup_summary\">Mano-mano at awtomatikong pag-backup, espasyo sa storage</string>\n    <string name=\"pref_security_summary\">Pag-lock sa app, bantayan ang screen</string>\n    <string name=\"pref_advanced_summary\">Itambak ang mga crash log, pag-o-optimisa sa baterya</string>\n    <string name=\"pref_library_summary\">Mga kategorya, panlahatang update, pag-swipe ng kabanata</string>\n    <string name=\"pref_browse_summary\">Mga source, extension, panlahatang paghanap</string>\n    <string name=\"crash_screen_description\">Nagkaroon ng hindi inaasahang error ang %s. Iminumungkahi naming ibahagi mo ang mga crash log sa aming support channel sa Discord.</string>\n    <string name=\"crash_screen_title\">Ay Naku!</string>\n    <string name=\"crash_screen_restart_application\">Buksan muli ang app</string>\n    <string name=\"invalid_location\">Di-wastong lokasyon: %s</string>\n    <string name=\"unknown_title\">Di alam na pamagat</string>\n    <string name=\"error_user_agent_string_invalid\">Di-wastong string ng user agent</string>\n    <string name=\"updates_last_update_info_just_now\">Ngayon lang</string>\n    <string name=\"download_notifier_cache_renewal\">Tinitignan ang mga download</string>\n    <string name=\"information_no_entries_found\">Walang mga entry ang nahanap sa kategoryang ito</string>\n    <string name=\"action_open_random_manga\">Buksan ang random na entry</string>\n    <string name=\"fdroid_warning\">Ang mga build mula sa F-Droid ay hindi opisyal na sinusuportahan.\n\\nI-tap para matuto pa.</string>\n    <string name=\"action_display_show_continue_reading_button\">Magpatuloy na bumasa na button</string>\n    <string name=\"track_remove_date_conf_title\">Tanggalin ang petsa?</string>\n    <string name=\"track_remove_start_date_conf_text\">Tatanggalin nito ang huling petsa na napili mo mula sa %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Aalisin nito ang dati mong napiling petsa ng pagtatapos mula sa %s</string>\n    <string name=\"pref_invalidate_download_cache\">Muling i-index ang mga download</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Pilitin ang app na tingnan kung may naka-download</string>\n    <string name=\"label_completed_titles\">Mga natapos na entry</string>\n    <string name=\"label_started\">Nasimulan</string>\n    <string name=\"label_local\">Lokal</string>\n    <string name=\"label_downloaded\">Na-download</string>\n    <string name=\"label_titles_in_global_update\">Sa panlahatang update</string>\n    <string name=\"label_titles_section\">Mga Entry</string>\n    <string name=\"label_total_chapters\">Kabuuang dami</string>\n    <string name=\"label_tracker_section\">Mga Tracker</string>\n    <string name=\"label_overview_section\">Pangkalahatang-ideya</string>\n    <string name=\"label_read_chapters\">Nabasa</string>\n    <string name=\"label_mean_score\">Mean score</string>\n    <string name=\"label_used\">Nagamit</string>\n    <string name=\"label_read_duration\">Tagal ng binasa</string>\n    <string name=\"label_tracked_titles\">Mga na-track na entry</string>\n    <string name=\"pref_library_update_show_tab_badge\">Ipakita ang bilang ng di pa nababasa sa Bago na icon</string>\n    <string name=\"information_no_manga_category\">Walang laman ang kategoryang ito</string>\n    <string name=\"action_not_now\">Hindi muna ngayon</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"label_stats\">Istatistika</string>\n    <string name=\"pref_skip_dupe_chapters\">Laktawan ang mga duplikadong kabanata</string>\n    <string name=\"copied_to_clipboard_plain\">Kinopya sa clipboard</string>\n    <string name=\"information_required_plain\">*kinakailangan</string>\n    <string name=\"enhanced_services_not_installed\">Mayroon ngunit hindi naka-install ang source: %s</string>\n    <string name=\"track_error\">%1$s Kamalian: %2$s</string>\n    <string name=\"day_short\">%da</string>\n    <string name=\"hour_short\">%do</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_copy_to_clipboard\">Kopyahin sa clipboard</string>\n    <string name=\"pref_hide_in_library_items\">Itago ang mga entry na nasa aklatan na</string>\n    <string name=\"action_update_category\">I-update ang kategorya</string>\n    <string name=\"pref_page_rotate\">I-rotate ang malalawak na pahina upang magkasya</string>\n    <string name=\"pref_page_rotate_invert\">I-flip ang oryentasyon ng mga pinaikot na malalawak na pahina</string>\n    <string name=\"overlay_header\">Nakapatong (Overlay)</string>\n    <string name=\"split_tall_images\">Hatiin ang mga matataas na larawan</string>\n    <string name=\"pref_debug_info\">Impormasyon sa pag-debug</string>\n    <string name=\"pref_chapter_swipe_start\">Kabanata sa pag-swipe pakaliwa</string>\n    <string name=\"pref_double_tap_zoom\">I-double tap para mag-zoom</string>\n    <string name=\"pref_chapter_swipe_end\">Kabanata sa pag-swipe pakanan</string>\n    <string name=\"action_set_interval\">Itakda ang pagitan</string>\n    <string name=\"action_filter_interval_custom\">Ma-customize na dalas ng pag-update</string>\n    <string name=\"action_sort_next_updated\">Susunod na inaasahang update</string>\n    <string name=\"manga_display_interval_title\">Tantyahin bawat</string>\n    <string name=\"manga_display_modified_interval_title\">Itakdang i-update bawat</string>\n    <string name=\"pref_update_only_in_release_period\">Hulaan ang susunod na oras ng release</string>\n    <string name=\"intervals_header\">Mga pagitan</string>\n    <string name=\"skipped_reason_not_in_release_period\">Nilaktawan dahil walang inaasahang release ngayong araw</string>\n    <string name=\"has_results\">May mga resulta</string>\n    <string name=\"delete_downloaded\">Burahin ang na-download</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_title\">Tanggalin ang %s na tracking?</string>\n    <string name=\"track_delete_text\">Tatanggalin nito ang lokal na pag-track.</string>\n    <string name=\"track_delete_remote_text\">Tanggalin din mula sa %s</string>\n    <string name=\"syncing_library\">Nagsi-sync ang aklatan</string>\n    <string name=\"library_sync_complete\">Natapos na ang pag-sync ng aklatan</string>\n    <string name=\"information_cloudflare_help\">I-tap dito para sa tulong sa Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Ginagawa muli ang download index</string>\n    <string name=\"create_backup_file_error\">Hindi makalikha ng backup file</string>\n    <string name=\"track_activity_name\">Mag-login sa tracker</string>\n    <string name=\"unlock_app_title\">I-unlock ang %s</string>\n    <string name=\"exception_offline\">Walang koneksyon sa Internet</string>\n    <string name=\"exception_http\">HTTP %d, tignan ang website sa WebView</string>\n    <string name=\"exception_unknown_host\">Hindi maabot ang %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Ilagay sa ibaba ang serye</string>\n    <string name=\"pref_relative_format\">Mga relatibong timestamp</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" sa halip na \\\"%2$s\\\"</string>\n    <string name=\"notification_updating_progress\">Nag-a-update ang aklatan... (%s)</string>\n    <string name=\"source_settings\">Mga setting ng source</string>\n    <string name=\"app_settings\">Mga setting ng app</string>\n    <string name=\"file_null_uri_error\">Walang napiling file</string>\n    <string name=\"label_data_storage\">Datos at storage</string>\n    <string name=\"pref_flash_page_summ\">Binabawasan ang ghosting sa mga e-ink na display</string>\n    <string name=\"pref_flash_page\">Mag-flash kada pumalit ng pahina</string>\n    <string name=\"relative_time_span_never\">Hindi kailanman</string>\n    <string name=\"last_auto_backup_info\">Huling awtomatikong na-back up: %s</string>\n    <string name=\"pref_storage_usage\">Paggamit ng storage</string>\n    <string name=\"action_sort_tracker_score\">Iskor sa tracker</string>\n    <string name=\"action_apply\">Ilapat</string>\n    <string name=\"action_revert_to_default\">Ibalik sa default</string>\n    <string name=\"no_scanlators_found\">Walang scanlator ang nahanap</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"exclude_scanlators\">Ibukod ang mga scanlator</string>\n    <string name=\"action_create\">Lumikha</string>\n    <string name=\"pref_storage_location\">Lokasyon ng storage</string>\n    <string name=\"pref_storage_location_info\">Ginagamit para sa automatikong pag-backup, pag-download ng mga kabanata, at lokal na source.</string>\n    <string name=\"action_menu_overflow_description\">Ibang opsiyon</string>\n    <string name=\"selected\">Napili</string>\n    <string name=\"not_selected\">Di napili</string>\n    <string name=\"action_bar_up_description\">Mag-navigate pataas</string>\n    <string name=\"onboarding_storage_action_select\">Pumili ng folder</string>\n    <string name=\"pref_onboarding_guide\">Gabay sa onboarding</string>\n    <string name=\"onboarding_guides_new_user\">Bago sa %s? Inirerekomenda naming tingnan ang gabay sa pagsisimula.</string>\n    <string name=\"onboarding_action_finish\">Magsimula</string>\n    <string name=\"onboarding_storage_selection_required\">Dapat pumili ng isang folder</string>\n    <string name=\"onboarding_heading\">Maligayang pagdating!</string>\n    <string name=\"onboarding_guides_returning_user\">Muling pag-install ng %s?</string>\n    <string name=\"onboarding_action_skip\">Laktawan</string>\n    <string name=\"onboarding_action_next\">Susunod</string>\n    <string name=\"onboarding_description\">Mag-set up muna tayo ng ilang bagay. Maaari mo ring baguhin ang mga ito anumang oras sa mga setting sa ibang pagkakataon.</string>\n    <string name=\"no_location_set\">Walang nakatakdang lokasyon ng storage</string>\n    <string name=\"onboarding_storage_info\">Pumili ng folder kung saan mag-imbak ang %1$s ng mga na-download ng kabanata, mga backup, at higit pa.\n\\n\n\\nInirerekomenda ang isang nakalaang folder.\n\\n\n\\nNapiling folder: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Pahintulot sa mga abiso</string>\n    <string name=\"onboarding_permission_install_apps\">Pahintulot sa pag-install ng mga app</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Ma-iwasan ang mga hadlang sa mahahabang pag-update ng aklatan, pag-download, at pag-restore ng mga backup.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Paggamit ng baterya sa background</string>\n    <string name=\"onboarding_permission_install_apps_description\">Para mag-install ng mga extension ng source.</string>\n    <string name=\"onboarding_permission_notifications_description\">Maabisuhan para sa mga update sa aklatan at higit pa.</string>\n    <string name=\"onboarding_permission_action_grant\">Payagan</string>\n    <string name=\"available_disk_space_info\">Na magagamit: %1$s / Kabuuan: %2$s</string>\n    <string name=\"manga_interval_expected_update\">Mga bagong kabanata na nahulaang ilalabas sa loob ng %1$s, na tumitingin bawat %2$s.</string>\n    <string name=\"invalid_backup_file_error\">Buong error:</string>\n    <string name=\"ext_permission_install_apps_warning\">Kinakailangan ng permiso para mag-install ng mga extension. I-tap upang mapayagan ito.</string>\n    <string name=\"private_settings\">Kasali ang mga sensitibong setting (hal., mga tracker login token)</string>\n    <string name=\"onboarding_storage_help_info\">Nag-a-update mula sa isang mas lumang bersyon at hindi sigurado kung ano ang pipiliin? Sumangguni sa gabay sa storage para sa higit pang impormasyon.</string>\n    <string name=\"pref_library_update_smart_update\">Matalas na pag-update</string>\n    <string name=\"information_empty_repos\">Wala kang na-set na repo.</string>\n    <string name=\"action_add_repo\">Magdagdag ng repo</string>\n    <string name=\"label_extension_repos\">Mga repo ng extension</string>\n    <string name=\"onboarding_storage_help_action\">Gabay sa storage</string>\n    <string name=\"error_repo_exists\">Umiiral na ang repo na ito!</string>\n    <string name=\"action_delete_repo\">Tanggalin ang repo</string>\n    <string name=\"label_add_repo_input\">URL ng repo</string>\n    <string name=\"action_add_repo_message\">Magdagdag ng mga karagdagang repo sa %s. Dapat ito ay isang URL na nagtatapos sa \\\"index.min.json\\\".</string>\n    <string name=\"invalid_repo_name\">Di-wastong URL ng repo</string>\n    <string name=\"delete_repo_confirmation\">Gusto mo bang tanggalin ang repo na \\\"%s\\\"?</string>\n    <string name=\"manga_interval_custom_amount\">Custom na frequency sa pag-update:</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"manga_interval_expected_update_soon\">Malapit na</string>\n    <string name=\"ext_revoke_trust\">Bawiin ang mga pinagkakatiwalaang hindi kilalang extension</string>\n    <string name=\"action_open_repo\">Open source na repo</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Patayin ang pag-zoom out</string>\n    <string name=\"action_replace_repo\">Palitan</string>\n    <string name=\"action_add_anyway\">Idagdag pa rin</string>\n    <string name=\"action_replace_repo_title\">Umiiral na ang Signing Key Fingerprint</string>\n    <string name=\"action_replace_repo_message\">Ang repository na %1$s ay may magkaparehong Signing Key Fingerprint sa %2$s.\n\\nKung ito ay inaasahan, %2$s ang papalitan, kung hindi naman ay makipag-ugnayan sa tagapamahala ng iyong repo.</string>\n    <string name=\"pref_display_profile\">Custom na profile sa display</string>\n    <string name=\"label_upcoming\">Paparating</string>\n    <string name=\"upcoming_guide\">Gabay sa Paparating</string>\n    <string name=\"upcoming_calendar_next\">Susunod na Buwan</string>\n    <string name=\"upcoming_calendar_prev\">Nakaraang Buwan</string>\n    <string name=\"action_view_upcoming\">Tingnan ang mga Paparating na Update</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Nabigong makakuha ng patuloy na pag-access ng folder. Ang app ay magkaroon ng di-inaasahang pagkilos.</string>\n    <string name=\"pref_flash_page_interval\">Mag-flash kada</string>\n    <string name=\"pref_flash_style_white_black\">Puti at Itim</string>\n    <string name=\"pref_flash_duration\">Tagal ng pag-flash</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_with\">Mag-flash na may</string>\n    <string name=\"pref_flash_style_black\">Itim</string>\n    <string name=\"pref_flash_style_white\">Puti</string>\n    <string name=\"manga_interval_expected_update_null\">Ang manga na ito ay nakumpleto na, o walang nahulaang petsa ng paglabas.</string>\n    <string name=\"invalid_backup_file_json\">Hindi suportado ang JSON backup</string>\n    <string name=\"invalid_backup_file_unknown\">Na-corrupt ang backup file</string>\n    <string name=\"extensionRepo_settings\">Mga repo ng extension</string>\n    <string name=\"action_copy_link\">Kopyahin ang link</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Laktawan ang pag-download ng mga duplikadong mga nabasang kabanata</string>\n    <string name=\"add_repo_confirmation\">Gusto mo bang idagdag ang repo na \\\"%s\\\"?</string>\n    <string name=\"confirm_tracker_update\">I-update ang mga tracker hanggang kabanata %d?</string>\n    <string name=\"onboarding_permission_crashlytics\">Magpadala ang mga crash log</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Magpadala ng hindi nagpapakilalang mga crash log sa mga developer.</string>\n    <string name=\"onboarding_permission_analytics\">Payagan ang analitiko</string>\n    <string name=\"pref_security\">Seguridad</string>\n    <string name=\"pref_firebase\">Mga Analitiko at Mga Crash log</string>\n    <string name=\"firebase_summary\">Ang pagpapadala ng mga crash log at analitiko ay magbibigay-daan sa amin na tukuyin at ayusin ang mga isyu, pahusayin ang performance, at gawing mas nauugnay ang mga update sa hinaharap sa iyong mga pangangailangan</string>\n    <string name=\"onboarding_permission_analytics_description\">Magpadala ng hindi nakikilalang data ng paggamit para mapahusay ang mga feature ng app.</string>\n    <string name=\"non_library_settings\">Lahat ng nabasang entry</string>\n    <string name=\"action_sort_random\">Random</string>\n    <string name=\"ext_remove\">Tanggalin</string>\n    <string name=\"ext_confirm_remove\">Alisin ang Extension?</string>\n    <string name=\"remove_private_extension_message\">Gusto mo ba talagang tanggalin ang \\\"%s\\\" na extension?</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">I-update ang progress kapag namarka bilang nabasa na</string>\n    <string name=\"trackers_updated_summary\">Na-update ang mga tracker sa kabanata %d</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Kung naglo-load ang reader ng isang blangkong imahe ay unti-unting bawasan ang threshold.\\nNapili: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Custom na threshold sa hardware bitmap</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Default (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Nakakaapekto sa performance. Paganahin lamang kung ang pagbabawas ng bitmap threshold ay hindi nakakapag-ayos ng mga isyu sa blangkong imahe</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pinapa-pause ang kasaysayan ng pagbabasa para sa extension</string>\n    <string name=\"label_auto\">Awto</string>\n    <string name=\"action_toggle_private_off\">Publikong I-track</string>\n    <string name=\"library_exported\">Na-export ang Aklatan</string>\n    <string name=\"author\">May-akda</string>\n    <string name=\"tracked_privately\">Pribadong na-track</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"action_toggle_private_on\">Pribadong I-track</string>\n    <string name=\"export\">I-export</string>\n    <string name=\"library_list\">Listahan ng Aklatan</string>\n    <string name=\"theme_monochrome\">Monokromatiko</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Gamitin ang legacy decoder para sa long strip reader</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Markahan ang duplikadong nabasang kabanata bilang nabasa na</string>\n    <string name=\"action_display_unread_badge\">Di nabasang kabanata</string>\n    <string name=\"pref_behavior\">Pagkilos</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Matapos basahin ang kabanata</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Pagkatapos kumuha ng bagong kabanata</string>\n    <string name=\"notes_placeholder\">Masaya ang bahagi kung saan…</string>\n    <string name=\"action_notes\">Mga note</string>\n    <string name=\"action_edit_notes\">I-edit ang mga note</string>\n    <string name=\"possible_duplicates_title\">Mga posibleng duplikado</string>\n    <string name=\"possible_duplicates_summary\">Mayroon kang mga entry sa iyong aklatan na may katulad na pangalan.\\n\\nPumili ng entry na ililipat o idaragdag pa rin.</string>\n    <string name=\"clear_database_text\">Aalisin mo na ang mga entry mula sa database</string>\n    <string name=\"clear_db_exclude_read\">Panatilihin ang mga entry na may mga nabasang kabanata</string>\n    <string name=\"clear_database_history_warning\">Mga nabasang kabanata at ang progress ng mga entry na wala sa aklatan ay mawawala</string>\n    <string name=\"logging_in\">Nagla-log in…</string>\n    <string name=\"storage_failed_to_create_download_directory\">Nabigong lumikha ng direktory para sa pag-download</string>\n    <string name=\"storage_failed_to_create_directory\">Nabigong lumikha ng direktory: %s</string>\n    <string name=\"pref_update_library_manga_titles\">I-update ang mga pamagat ng manga ng aklatan upang tumugma sa source</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Babala: kung ang isang manga ay pinalitan ng pangalan, ito ay aalisin sa pila ng mga download (kung mayroon).</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Napili</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Piliin lahat</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Pumili ng wala</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Pumili sa mga pinaganang source</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Magpatuloy</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Pumili mula sa naka-pin na mga source</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Karagdagang mga keyword (opsyonal)</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Ang mga opsyong ito ay mabagal at mapanganib at maaaring humantong sa mga paghihigpit mula sa mga source</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Datos na ilipat</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Tanggalin ang mga download ng kasalukuyang entry pagkatapos ng paglipat</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Tumutulong na paliitin ang mga resulta ng paghahanap sa pamamagitan ng pagdaragdag ng mga karagdagang keyword</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Itago ang mga entry kung walang katugma</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Itago ang mga entry na walang mas bagong kabanata</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Ipakita lamang ang entry kung ang katugma ay may karagdagang kabanata</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Karagdagan na mode ng paghahanap</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Hinahati-hati ang pamagat sa mga keyword para sa mas malawak na paghahanap</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Itugma batay sa numero ng kabanata</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Kung napagana, pipiliin ang tugma na pinakamalayo sa unahan. Kung hindi, pipiliin ang unang tugma ayon sa priyoridad ng source.</string>\n    <string name=\"migrationListScreenTitle\">Lumipat</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Ilipat</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Walang nahanap na alternatibo</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Pinakabago: %1$s</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Manu-manong maghanap</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Huwag ilipat</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Lumipat na</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Kopyahin na</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Ihinto ang paglilipat?</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Ilipat</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Kaselahin</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Kanselahin</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Walang nakitang mga kabanata, hindi magagamit ang entry na ito para sa paglipat</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Kanselahin</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Di-alam</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopyahin</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Lumipat (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopyahin</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Ihinto</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Itago ang mga indikasyon ng nawawalang kabanata</string>\n    <string name=\"pref_display_images_description\">I-render ang mga imahe sa mga paglalarawan ng manga</string>\n    <string name=\"label_donate\">Mag-donate</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Di-payagan ang mga non-ASCII na filename</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Tinitiyak ang pagiging tugma sa ilang partikular na storage media na hindi sumusuporta sa Unicode. Kapag napagana ito, kakailanganin mong manu-manong palitan ang pangalan ng source at manga folder sa pamamagitan ng pagpapalit ng mga hindi ASCII na character ng kanilang lowercase na UTF-8 hexadecimal na representasyon. Hindi kailangang palitan ng pangalan ang mga file ng kabanata.</string>\n    <string name=\"pref_download_concurrent_sources\">Kasabay na pag-download ng source</string>\n    <string name=\"pref_download_concurrent_pages\">Kasabay na pag-download ng pahina</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Mga pahina na nai-download nang sabay-sabay kada source</string>\n    <string name=\"action_webview_close_tab\">Isara ang tab</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Maaaring Magamit</string>\n    <string name=\"action_filter_excluded_scanlators\">I-filter ang na-ibukod na mga scanlator</string>\n    <string name=\"calculating\">Kinakalkula…</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fr/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Après %1$s minute</item>\n        <item quantity=\"many\">Après %1$s minutes</item>\n        <item quantity=\"other\">Après %1$s minutes</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nouveau chapitre</item>\n        <item quantity=\"many\">%1$d nouveaux chapitres</item>\n        <item quantity=\"other\">%1$d nouveaux chapitres</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Chapitre %1$s et 1 autre</item>\n        <item quantity=\"many\">Chapitres %1$s et %2$d autres</item>\n        <item quantity=\"other\">Chapitres %1$s et %2$d autres</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Pour %d série</item>\n        <item quantity=\"many\">Pour %d séries</item>\n        <item quantity=\"other\">Pour %d séries</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Mise à jour d\\'extension disponible</item>\n        <item quantity=\"many\">%d mises à jour d\\'extensions disponibles</item>\n        <item quantity=\"other\">%d mises à jour d\\'extensions disponibles</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s restant</item>\n        <item quantity=\"many\">%1$s restants</item>\n        <item quantity=\"other\">%1$s restants</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d catégorie</item>\n        <item quantity=\"many\">%d catégories</item>\n        <item quantity=\"other\">%d catégories</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Effectuée en %1$s avec %2$s erreur</item>\n        <item quantity=\"many\">Effectuée en %1$s avec %2$s erreurs</item>\n        <item quantity=\"other\">Effectuée en %1$s avec %2$s erreurs</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s chapitre</item>\n        <item quantity=\"many\">%1$s chapitres</item>\n        <item quantity=\"other\">%1$s chapitres</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">Suivi par %d service</item>\n        <item quantity=\"many\">Suivi par %d services</item>\n        <item quantity=\"other\">Suivi par %d services</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d chapitre a été sauté, soit la source ne l\\'a pas, soit il a été filtré</item>\n        <item quantity=\"many\">%d chapitres ont été sautés, soit la source ne les a pas, soit ils ont été filtrés</item>\n        <item quantity=\"other\">%d chapitres ont été sautés, soit la source ne les a pas, soit il ont été filtrés</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Hier</item>\n        <item quantity=\"many\">Il y a %1$d jours</item>\n        <item quantity=\"other\">Il y a %1$d jours</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Chapitre suivant non lu</item>\n        <item quantity=\"many\">Les %d chapitres suivants non lus</item>\n        <item quantity=\"other\">Les %d chapitres suivants non lus</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Chapitre suivant</item>\n        <item quantity=\"many\">%d chapitres suivants</item>\n        <item quantity=\"other\">%d chapitres suivants</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s chapitre manquant</item>\n        <item quantity=\"many\">%1$s chapitres manquants</item>\n        <item quantity=\"other\">%1$s chapitres manquants</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 jour</item>\n        <item quantity=\"many\">%d jours</item>\n        <item quantity=\"other\">%d jours</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d dépôt</item>\n        <item quantity=\"many\">%d dépôts</item>\n        <item quantity=\"other\">%d dépôts</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Demain</item>\n        <item quantity=\"many\">Dans %1$d jours</item>\n        <item quantity=\"other\">Dans %1$d jours</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 page</item>\n        <item quantity=\"many\">%1$s pages</item>\n        <item quantity=\"other\">%1$s pages</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrer %1$d série ?</item>\n        <item quantity=\"many\">Migrer %1$d séries ?</item>\n        <item quantity=\"other\">Migrer %1$d séries ?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Copier %1$d série ?</item>\n        <item quantity=\"many\">Copier %1$d séries ?</item>\n        <item quantity=\"other\">Copier %1$d séries ?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Une série a été ignorée</item>\n        <item quantity=\"many\">%1$d séries ont été ignorées</item>\n        <item quantity=\"other\">%1$d séries ont été ignorées</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/fr/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nom</string>\n    <string name=\"label_settings\">Paramètres</string>\n    <string name=\"label_download_queue\">File de téléchargement</string>\n    <string name=\"label_library\">Bibliothèque</string>\n    <string name=\"label_recent_manga\">Historique</string>\n    <string name=\"label_recent_updates\">Mises à jour</string>\n    <string name=\"label_backup\">Sauvegarder et restaurer</string>\n    <string name=\"action_settings\">Paramètres</string>\n    <string name=\"action_filter\">Filtre</string>\n    <string name=\"action_filter_bookmarked\">Favori</string>\n    <string name=\"action_filter_unread\">Non lus</string>\n    <string name=\"action_filter_empty\">Retirer le filtre</string>\n    <string name=\"action_sort_alpha\">Alphabétiquement</string>\n    <string name=\"action_sort_last_read\">Dernier lu</string>\n    <string name=\"action_search\">Rechercher</string>\n    <string name=\"action_select_all\">Tout sélectionner</string>\n    <string name=\"action_mark_as_read\">Marquer comme lu</string>\n    <string name=\"action_mark_as_unread\">Marquer comme non lu</string>\n    <string name=\"action_mark_previous_as_read\">Marquer les précédents comme lus</string>\n    <string name=\"action_download\">Télécharger</string>\n    <string name=\"action_bookmark\">Marquer le chapitre</string>\n    <string name=\"action_remove_bookmark\">Retirer des favoris</string>\n    <string name=\"action_delete\">Supprimer</string>\n    <string name=\"action_update_library\">Mettre à jour la bibliothèque</string>\n    <string name=\"action_edit\">Modifier</string>\n    <string name=\"action_add\">Ajouter</string>\n    <string name=\"action_add_category\">Ajouter une catégorie</string>\n    <string name=\"action_edit_categories\">Modifier les catégories</string>\n    <string name=\"action_rename_category\">Renommer la catégorie</string>\n    <string name=\"action_move_category\">Définir la catégorie</string>\n    <string name=\"action_edit_cover\">Modifier la couverture</string>\n    <string name=\"action_pause\">Pause</string>\n    <string name=\"action_previous_chapter\">Chapitre précédent</string>\n    <string name=\"action_next_chapter\">Chapitre suivant</string>\n    <string name=\"action_retry\">Réessayer</string>\n    <string name=\"action_remove\">Supprimer</string>\n    <string name=\"action_resume\">Reprendre</string>\n    <string name=\"action_open_in_browser\">Ouvrir dans le navigateur</string>\n    <string name=\"action_display_mode\">Mode d\\'affichage</string>\n    <string name=\"action_display\">Affichage</string>\n    <string name=\"action_display_grid\">Grille compacte</string>\n    <string name=\"action_display_list\">Liste</string>\n    <string name=\"action_cancel\">Annuler</string>\n    <string name=\"action_sort\">Trier</string>\n    <string name=\"action_install\">Installer</string>\n    <string name=\"action_share\">Partager</string>\n    <string name=\"action_save\">Télécharger la page</string>\n    <string name=\"action_reset\">Réinitialiser</string>\n    <string name=\"loading\">Chargement…</string>\n    <string name=\"pref_category_general\">Général</string>\n    <string name=\"pref_category_reader\">Lecteur</string>\n    <string name=\"pref_category_downloads\">Téléchargements</string>\n    <string name=\"pref_category_tracking\">Suivi</string>\n    <string name=\"pref_category_advanced\">Avancé</string>\n    <string name=\"pref_category_about\">À propos</string>\n    <string name=\"pref_library_columns\">Éléments par ligne</string>\n    <string name=\"portrait\">Portrait</string>\n    <string name=\"landscape\">Paysage</string>\n    <string name=\"pref_library_update_interval\">Mises à jour automatiques</string>\n    <string name=\"update_never\">Désactivé</string>\n    <string name=\"update_6hour\">Toutes les 6 heures</string>\n    <string name=\"update_12hour\">Toutes les 12 heures</string>\n    <string name=\"update_24hour\">Tous les jours</string>\n    <string name=\"update_48hour\">Tous les 2 jours</string>\n    <string name=\"all\">Tout</string>\n    <string name=\"pref_library_update_restriction\">Restrictions matérielles pour les mises à jour automatiques</string>\n    <string name=\"charging\">Lors de la charge</string>\n    <string name=\"pref_update_only_non_completed\">Exclure si le statut est « Terminé »</string>\n    <string name=\"pref_auto_update_manga_sync\">Synchroniser la progression après lecture</string>\n    <string name=\"pref_fullscreen\">Plein écran</string>\n    <string name=\"pref_page_transitions\">Activer les transitions</string>\n    <string name=\"pref_show_page_number\">Afficher le numéro des pages</string>\n    <string name=\"pref_custom_brightness\">Luminosité personnalisée</string>\n    <string name=\"pref_custom_color_filter\">Filtre de couleur personnalisé</string>\n    <string name=\"pref_keep_screen_on\">Garder l\\'écran allumé</string>\n    <string name=\"pref_reader_navigation\">Navigation</string>\n    <string name=\"pref_read_with_volume_keys\">Avec les boutons de volume</string>\n    <string name=\"pref_reader_theme\">Couleur de fond</string>\n    <string name=\"white_background\">Blanc</string>\n    <string name=\"black_background\">Noir</string>\n    <string name=\"pref_viewer_type\">Mode de lecture par défaut</string>\n    <string name=\"left_to_right_viewer\">Pagé (gauche à droite)</string>\n    <string name=\"right_to_left_viewer\">De droite à gauche</string>\n    <string name=\"vertical_viewer\">Pages (vertical)</string>\n    <string name=\"webtoon_viewer\">Bande continue</string>\n    <string name=\"pref_image_scale_type\">Type de mise à l\\'échelle</string>\n    <string name=\"scale_type_fit_screen\">Adapter à l\\'écran</string>\n    <string name=\"scale_type_stretch\">Étirer</string>\n    <string name=\"scale_type_fit_width\">Adapter à la largeur</string>\n    <string name=\"scale_type_fit_height\">Adapter à la hauteur</string>\n    <string name=\"scale_type_original_size\">Taille originale</string>\n    <string name=\"scale_type_smart_fit\">Adaptation intelligente</string>\n    <string name=\"pref_zoom_start\">Position du zoom initial</string>\n    <string name=\"zoom_start_automatic\">Automatique</string>\n    <string name=\"zoom_start_left\">Gauche</string>\n    <string name=\"zoom_start_right\">Droite</string>\n    <string name=\"zoom_start_center\">Centre</string>\n    <string name=\"pref_rotation_type\">Rotation par défaut</string>\n    <string name=\"rotation_free\">Libre</string>\n    <string name=\"rotation_force_portrait\">Bloqué sur portrait</string>\n    <string name=\"rotation_force_landscape\">Bloqué sur paysage</string>\n    <string name=\"color_filter_r_value\">Rouge</string>\n    <string name=\"color_filter_g_value\">Vert</string>\n    <string name=\"color_filter_b_value\">Bleu</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"pref_remove_after_read\">Suppression automatique après lecture</string>\n    <string name=\"disabled\">Désactivé</string>\n    <string name=\"last_read_chapter\">Dernier chapitre lu</string>\n    <string name=\"second_to_last\">Avant-dernier chapitre lu</string>\n    <string name=\"third_to_last\">Troisième chapitre avant le dernier lu</string>\n    <string name=\"fourth_to_last\">Quatrième chapitre avant le dernier lu</string>\n    <string name=\"pref_download_new\">Télécharger les nouveaux chapitres</string>\n    <string name=\"services\">Services</string>\n    <string name=\"used_cache\">Utilisé : %1$s</string>\n    <string name=\"cache_deleted\">Cache effacé, %1$d fichiers supprimés</string>\n    <string name=\"cache_delete_error\">Une erreur est survenue lors de l\\'effacement du cache</string>\n    <string name=\"pref_clear_cookies\">Effacer les cookies</string>\n    <string name=\"cookies_cleared\">Cookies effacés</string>\n    <string name=\"pref_clear_database\">Effacer la base de données</string>\n    <string name=\"pref_clear_database_summary\">Supprimer l\\'historique des séries qui ne sont pas enregistrées dans votre bibliothèque</string>\n    <string name=\"clear_database_completed\">Séries supprimées</string>\n    <string name=\"version\">Version</string>\n    <string name=\"pref_enable_acra\">Envoyer des rapports de plantage</string>\n    <string name=\"pref_acra_summary\">Aident à corriger les bugs. Aucune donnée sensible ne sera envoyée</string>\n    <string name=\"login_title\">Connexion à %1$s</string>\n    <string name=\"username\">Nom d\\'utilisateur</string>\n    <string name=\"password\">Mot de passe</string>\n    <string name=\"login\">Se connecter</string>\n    <string name=\"unknown_error\">Erreur inconnue</string>\n    <string name=\"ongoing\">En cours</string>\n    <string name=\"unknown\">Inconnu</string>\n    <string name=\"licensed\">Licencié</string>\n    <string name=\"remove_from_library\">Retirer de la bibliothèque</string>\n    <string name=\"display_mode_chapter\">Chapitre %1$s</string>\n    <string name=\"chapter_downloading_progress\">En téléchargement (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Erreur</string>\n    <string name=\"show_title\">Titre de la source</string>\n    <string name=\"show_chapter_number\">Numéro de chapitre</string>\n    <string name=\"sort_by_number\">Par numéro de chapitre</string>\n    <string name=\"manga_download\">Télécharger</string>\n    <string name=\"download_unread\">Non lus</string>\n    <string name=\"manga_tracking_tab\">Suivi</string>\n    <string name=\"reading\">En cours</string>\n    <string name=\"completed\">Terminé</string>\n    <string name=\"dropped\">Abandonné</string>\n    <string name=\"on_hold\">En pause</string>\n    <string name=\"plan_to_read\">À lire</string>\n    <string name=\"score\">Note</string>\n    <string name=\"title\">Titre</string>\n    <string name=\"status\">Statut</string>\n    <string name=\"chapters\">Chapitres</string>\n    <string name=\"error_category_exists\">Une catégorie avec ce nom existe déjà !</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ceci enlèvera la date de lecture de ce chapitre. Êtes-vous sûr(e) ?</string>\n    <string name=\"dialog_with_checkbox_reset\">Réinitialiser tous les chapitres de cette série</string>\n    <string name=\"snack_add_to_library\">Ajouter à la bibliothèque ?</string>\n    <string name=\"picture_saved\">Image sauvegardée</string>\n    <string name=\"custom_filter\">Filtre personnalisé</string>\n    <string name=\"set_as_cover\">Ajouter comme couverture</string>\n    <string name=\"cover_updated\">Couverture mise à jour</string>\n    <string name=\"chapter_progress\">Page : %1$d</string>\n    <string name=\"no_next_chapter\">Chapitre suivant non trouvé</string>\n    <string name=\"decode_image_error\">L\\'image n\\'a pas pu être chargée</string>\n    <string name=\"confirm_set_image_as_cover\">Voulez-vous mettre cette image comme couverture ?</string>\n    <string name=\"download_queue_error\">Une erreur est survenue lors du téléchargement des chapitres. Vous pouvez réessayer dans la section téléchargements</string>\n    <string name=\"notification_new_chapters\">Des nouveaux chapitres ont été trouvés</string>\n    <string name=\"notification_cover_update_failed\">La mise à jour de la couverture a échoué</string>\n    <string name=\"notification_first_add_to_library\">Veuillez ajouter cette série à votre bibliothèque avant de faire cela</string>\n    <string name=\"file_select_cover\">Sélectionner l\\'image de couverture</string>\n    <string name=\"file_select_backup\">Sélectionner fichier de sauvegarde</string>\n    <string name=\"update_check_confirm\">Télécharger</string>\n    <string name=\"update_check_no_new_updates\">Aucune mise à jour disponible</string>\n    <string name=\"update_check_notification_download_in_progress\">Téléchargement en cours…</string>\n    <string name=\"update_check_notification_download_complete\">Appuyer pour installer</string>\n    <string name=\"update_check_notification_download_error\">Erreur lors du téléchargement</string>\n    <string name=\"update_check_notification_update_available\">Mise à jour disponible !</string>\n    <string name=\"information_no_downloads\">Aucun téléchargement en cours</string>\n    <string name=\"information_no_recent\">Pas de mises à jour récentes</string>\n    <string name=\"information_no_recent_manga\">Rien de lu récemment</string>\n    <string name=\"information_empty_library\">Votre bibliothèque est vide</string>\n    <string name=\"download_notifier_downloader_title\">Téléchargement</string>\n    <string name=\"download_notifier_title_error\">Erreur</string>\n    <string name=\"download_notifier_text_only_wifi\">Aucune connexion disponible</string>\n    <string name=\"download_notifier_no_network\">Aucune connexion disponible</string>\n    <string name=\"confirm_delete_chapters\">Supprimer les chapitres sélectionnés ?</string>\n    <string name=\"download_notifier_unknown_error\">Impossible de télécharger le chapitre en raison d\\'une erreur inattendue</string>\n    <string name=\"fifth_to_last\">Cinquième chapitre avant le dernier lu</string>\n    <string name=\"login_success\">Connecté</string>\n    <string name=\"pref_clear_chapter_cache\">Effacer le cache des chapitres</string>\n    <string name=\"pref_remove_after_marked_as_read\">Après avoir été marqué comme lu</string>\n    <string name=\"sort_by_source\">Par source</string>\n    <string name=\"updating_category\">Mise à jour de la catégorie</string>\n    <string name=\"no_more_results\">Pas d\\'autres résultats</string>\n    <string name=\"snack_categories_deleted\">Catégories supprimées</string>\n    <string name=\"action_undo\">Annuler</string>\n    <string name=\"categories\">Catégories</string>\n    <string name=\"manga\">Séries de la bibliothèque</string>\n    <string name=\"history\">Historique</string>\n    <string name=\"app_not_available\">Application indisponible</string>\n    <string name=\"update_weekly\">Chaque semaine</string>\n    <string name=\"default_category\">Catégorie par défaut</string>\n    <string name=\"download_notifier_download_paused\">Téléchargement en pause</string>\n    <string name=\"local_source\">Source locale</string>\n    <string name=\"chapter_paused\">En pause</string>\n    <string name=\"action_open_log\">Ouvrir le fichier</string>\n    <string name=\"action_restore\">Restaurer</string>\n    <string name=\"restore_completed\">Restauration terminée</string>\n    <string name=\"backup_choice\">Que voulez-vous sauvegarder ?</string>\n    <string name=\"delete_downloads_for_manga\">Supprimer les chapitres téléchargés ?</string>\n    <string name=\"track\">Suivi</string>\n    <string name=\"action_sort_total\">Total de chapitres</string>\n    <string name=\"pref_create_backup\">Créer une sauvegarde</string>\n    <string name=\"pref_create_backup_summ\">Peut être utilisé pour restaurer la bibliothèque actuelle</string>\n    <string name=\"pref_restore_backup\">Restaurer une sauvegarde</string>\n    <string name=\"pref_restore_backup_summ\">Restaurer la bibliothèque à partir d\\'un fichier de sauvegarde</string>\n    <string name=\"pref_backup_interval\">Fréquence de sauvegarde</string>\n    <string name=\"backup_created\">Sauvegarde créée</string>\n    <string name=\"restoring_backup\">Restauration de sauvegarde en cours</string>\n    <string name=\"creating_backup\">Création de sauvegarde en cours</string>\n    <string name=\"default_category_summary\">Toujours demander</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverser les boutons de volume</string>\n    <string name=\"pref_crop_borders\">Rogner les bordures</string>\n    <string name=\"action_global_search\">Recherche globale</string>\n    <string name=\"other_source\">Autre</string>\n    <string name=\"action_global_search_hint\">Recherche globale…</string>\n    <string name=\"latest\">Récents</string>\n    <string name=\"browse\">Explorer</string>\n    <string name=\"action_display_download_badge\">Chapitres téléchargés</string>\n    <string name=\"channel_common\">Général</string>\n    <string name=\"information_empty_category\">Vous n\\'avez aucune catégorie. Appuyez sur le bouton « + » pour en créer une afin d\\'organiser votre bibliothèque.</string>\n    <string name=\"label_extensions\">Extensions</string>\n    <string name=\"ext_update\">Mettre à jour</string>\n    <string name=\"ext_install\">Installer</string>\n    <string name=\"ext_pending\">En attente</string>\n    <string name=\"ext_downloading\">En cours de téléchargement</string>\n    <string name=\"ext_installing\">En cours d\\'installation</string>\n    <string name=\"ext_installed\">Installée</string>\n    <string name=\"ext_uninstall\">Désinstaller</string>\n    <string name=\"untrusted_extension\">Extension non reconnue</string>\n    <string name=\"untrusted_extension_message\">Une extension malveillante pourrait lire n\\'importe quel identifiant de connexion stocké ou exécuter un code arbitraire.\n\\n\n\\nEn faisant confiance à cette extension, vous acceptez ces risques.</string>\n    <string name=\"pref_double_tap_anim_speed\">Vitesse d\\'animation du double-clic</string>\n    <string name=\"double_tap_anim_speed_0\">Sans animation</string>\n    <string name=\"double_tap_anim_speed_normal\">Normale</string>\n    <string name=\"double_tap_anim_speed_fast\">Rapide</string>\n    <string name=\"manga_added_library\">Ajouté à la bibliothèque</string>\n    <string name=\"manga_removed_library\">Supprimé de la bibliothèque</string>\n    <string name=\"copied_to_clipboard\">%1$s\n\\na été copié dans le presse papier</string>\n    <string name=\"source_not_installed\">Sources non installées : %1$s</string>\n    <string name=\"track_status\">Statut</string>\n    <string name=\"track_type\">Type</string>\n    <string name=\"migration_dialog_what_to_include\">Sélectionner les données à inclure</string>\n    <string name=\"label_migration\">Migrer</string>\n    <string name=\"label_extension_info\">Informations sur l\\'extension</string>\n    <string name=\"ext_trust\">Fiable</string>\n    <string name=\"ext_untrusted\">Non fiable</string>\n    <string name=\"pager_viewer\">Pages</string>\n    <string name=\"repeating\">Relecture</string>\n    <string name=\"transition_finished\">Terminé :</string>\n    <string name=\"transition_current\">En cours :</string>\n    <string name=\"transition_next\">Suivant :</string>\n    <string name=\"transition_previous\">Précédent :</string>\n    <string name=\"transition_no_next\">C\\'était le dernier chapitre</string>\n    <string name=\"transition_no_previous\">Il n\\'y a pas de chapitre précédent</string>\n    <string name=\"transition_pages_loading\">Chargement des pages…</string>\n    <string name=\"transition_pages_error\">Échec du chargement des pages : %1$s</string>\n    <string name=\"migrate\">Déplacer</string>\n    <string name=\"copy\">Copier</string>\n    <string name=\"pref_read_with_long_tap\">Afficher les actions en appuyant longuement</string>\n    <string name=\"action_open_in_web_view\">Ouvrir dans WebView</string>\n    <string name=\"pref_skip_read_chapters\">Passer les chapitres marqués comme lus</string>\n    <string name=\"filter_mode_multiply\">Produit</string>\n    <string name=\"filter_mode_screen\">Écran</string>\n    <string name=\"pref_color_filter_mode\">Mode de filtrage via couleurs mélangées</string>\n    <string name=\"filter_mode_overlay\">Incrustation</string>\n    <string name=\"label_help\">Aide</string>\n    <string name=\"filter_mode_lighten\">Éclaircir</string>\n    <string name=\"filter_mode_darken\">Obscurcir</string>\n    <string name=\"no_results_found\">Aucun résultat trouvé</string>\n    <string name=\"migration_selection_prompt\">Sélectionnez une source depuis laquelle migrer</string>\n    <string name=\"pref_category_library\">Bibliothèque</string>\n    <string name=\"obsolete_extension_message\">Cette extension n\\'est plus disponible. Elle peut ne pas fonctionner correctement et causer des problèmes avec l\\'application. Il est recommandé de la désinstaller.</string>\n    <string name=\"pref_date_format\">Format de date</string>\n    <string name=\"pref_category_library_update\">Mises à jour</string>\n    <string name=\"action_webview_back\">Précédent</string>\n    <string name=\"action_webview_forward\">Suivant</string>\n    <string name=\"action_webview_refresh\">Actualiser</string>\n    <string name=\"ext_obsolete\">Obsolète</string>\n    <string name=\"logout_title\">Se déconnecter de %1$s ?</string>\n    <string name=\"logout\">Se déconnecter</string>\n    <string name=\"logout_success\">Vous êtes maintenant déconnecté(e)</string>\n    <string name=\"paused\">En pause</string>\n    <string name=\"label_more\">Plus</string>\n    <string name=\"action_sort_latest_chapter\">Dernier chapitre</string>\n    <string name=\"action_view_chapters\">Voir les chapitres</string>\n    <string name=\"action_cancel_all\">Tout annuler</string>\n    <string name=\"theme_light\">Clair</string>\n    <string name=\"theme_dark\">Sombre</string>\n    <string name=\"theme_system\">Système</string>\n    <string name=\"pref_manage_notifications\">Notifications</string>\n    <string name=\"pref_category_security\">Sécurité et confidentialité</string>\n    <string name=\"lock_with_biometrics\">Nécessite un déverrouillage</string>\n    <string name=\"lock_when_idle\">Verrouiller en cas d\\'inactivité</string>\n    <string name=\"lock_always\">Toujours</string>\n    <string name=\"lock_never\">Jamais</string>\n    <string name=\"secure_screen\">Mode discret</string>\n    <string name=\"ext_updates_pending\">Mises à jour en attente</string>\n    <string name=\"pref_cutout_short\">Utiliser la zone de l\\'encoche</string>\n    <string name=\"information_cloudflare_bypass_failure\">Impossible de contourner Cloudflare</string>\n    <string name=\"information_webview_outdated\">Veuillez mettre à jour l\\'application WebView pour une meilleure compatibilité</string>\n    <string name=\"channel_new_chapters\">Mises à jour des chapitres</string>\n    <string name=\"secure_screen_summary\">L\\'écran sécurisé cache le contenu lors du changement d\\'application et bloque les captures d\\'écran</string>\n    <string name=\"pref_category_display\">Affichage</string>\n    <string name=\"notification_chapters_single\">Chapitre %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Chapitre %1$s et %2$d autres</string>\n    <string name=\"notification_chapters_multiple\">Chapitres %1$s</string>\n    <string name=\"hide_notification_content\">Cacher le contenu des notifications</string>\n    <string name=\"pref_disable_battery_optimization\">Désactiver la fonction d\\'optimisation de la batterie</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Facilite les mises à jour et sauvegardes de la bibliothèque en arrière-plan</string>\n    <string name=\"battery_optimization_disabled\">La fonction d\\'optimisation de la batterie est déjà désactivée</string>\n    <string name=\"email\">Adresse courriel</string>\n    <string name=\"pref_always_show_chapter_transition\">Toujours afficher la transition entre les chapitres</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_newest\">Plus récent</string>\n    <string name=\"action_oldest\">Plus ancien</string>\n    <string name=\"action_move_to_top\">Déplacer au début</string>\n    <string name=\"action_move_to_bottom\">Déplacer à la fin</string>\n    <string name=\"channel_ext_updates\">Mises à jour d\\'extensions</string>\n    <string name=\"updating_library\">Mise à jour de la bibliothèque</string>\n    <string name=\"label_sources\">Sources</string>\n    <string name=\"pref_category_reading\">En cours</string>\n    <string name=\"vertical_plus_viewer\">Bande continue avec espaces</string>\n    <string name=\"pref_skip_filtered_chapters\">Passer les chapitres filtrés</string>\n    <string name=\"action_pin\">Épingler</string>\n    <string name=\"action_select_inverse\">Inverser la sélection</string>\n    <string name=\"add_tracking\">Ajouter le suivi</string>\n    <string name=\"pref_webtoon_side_padding\">Décalage latéral</string>\n    <string name=\"pinned_sources\">Épinglé</string>\n    <string name=\"action_unpin\">Désépingler</string>\n    <string name=\"in_library\">Dans la bibliothèque</string>\n    <string name=\"add_to_library\">Ajouter à la bibliothèque</string>\n    <string name=\"restoring_backup_canceled\">Restauration de sauvegarde annulée</string>\n    <string name=\"restoring_backup_error\">Échec de la restauration de sauvegarde</string>\n    <string name=\"restore_in_progress\">Restauration déjà en cours</string>\n    <string name=\"label_downloaded_only\">Téléchargés uniquement</string>\n    <string name=\"creating_backup_error\">Échec de la sauvegarde</string>\n    <string name=\"backup_in_progress\">Sauvegarde déjà en cours</string>\n    <string name=\"manga_info_collapse\">Moins</string>\n    <string name=\"manga_info_expand\">Plus</string>\n    <string name=\"website\">Site web</string>\n    <string name=\"recent_manga_time\">Ch. %1$s – %2$s</string>\n    <string name=\"licenses\">Licences à code source ouvert</string>\n    <string name=\"last_used_source\">Dernière utilisée</string>\n    <string name=\"check_for_updates\">Rechercher des mises à jour</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d s</string>\n    <string name=\"information_webview_required\">WebView est requis pour le fonctionnement l\\'application</string>\n    <string name=\"local_source_help_guide\">Guide des sources locales</string>\n    <string name=\"downloaded_only_summary\">Filtrer toutes les séries dans la bibliothèque</string>\n    <string name=\"gray_background\">Gris</string>\n    <string name=\"pref_category_for_this_series\">Pour cette série</string>\n    <string name=\"viewer\">Mode de lecture</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Impossible d\\'ouvrir les paramètres de l\\'appareil</string>\n    <string name=\"pref_refresh_library_covers\">Actualiser les couvertures de la bibliothèque</string>\n    <string name=\"tracking_info\">Synchronisation à sens unique pour mettre à jour la progression du chapitre dans les services de suivi. Configurez le suivi des séries à partir de leur bouton de suivi.</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Vérifier s\\'il y a une nouvelle couverture ou synopsis lors des mises à jour de la bibliothèque</string>\n    <string name=\"sort_by_upload_date\">Par date de téléversement</string>\n    <string name=\"label_data\">Donnée</string>\n    <string name=\"backup_restore_missing_sources\">Sources manquantes :</string>\n    <string name=\"invalid_backup_file_missing_manga\">Cette sauvegarde ne contient aucune série dans sa bibliothèque.</string>\n    <string name=\"invalid_backup_file\">Fichier de sauvegarde invalide :</string>\n    <string name=\"pref_library_update_refresh_metadata\">Actualiser automatiquement les métadonnées</string>\n    <string name=\"action_migrate\">Migrer</string>\n    <string name=\"action_display_comfortable_grid\">Grille espacée</string>\n    <string name=\"tabs_header\">Onglets</string>\n    <string name=\"action_display_show_tabs\">Afficher les onglets des catégories</string>\n    <string name=\"page_list_empty_error\">Aucune page trouvée</string>\n    <string name=\"action_disable_all\">Tout désactiver</string>\n    <string name=\"action_enable_all\">Tout activer</string>\n    <string name=\"pref_show_reading_mode_summary\">Affiche la liste des modes de lecture à l\\'ouverture du lecteur</string>\n    <string name=\"pref_show_reading_mode\">Afficher le mode de lecture</string>\n    <string name=\"action_start\">Commencer</string>\n    <string name=\"loader_not_implemented_error\">Source non trouvée</string>\n    <string name=\"action_disable\">Désactiver</string>\n    <string name=\"requires_app_restart\">Nécessite un redémarrage de l\\'application pour prendre effet</string>\n    <string name=\"label_network\">Réseau</string>\n    <string name=\"tapping_inverted_both\">Les deux</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"tapping_inverted_none\">Non</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverser les zones tactiles</string>\n    <string name=\"unknown_status\">Statut inconnu</string>\n    <string name=\"unknown_author\">Auteur inconnu</string>\n    <string name=\"whats_new\">Quoi de neuf</string>\n    <string name=\"updated_version\">Mise à jour de v%1$s</string>\n    <string name=\"download_insufficient_space\">Impossible de télécharger les chapitres, l\\'espace de stockage est insuffisant</string>\n    <string name=\"action_global_search_query\">Rechercher « %1$s » partout</string>\n    <string name=\"action_sort_date_added\">Date ajoutée</string>\n    <string name=\"pref_category_reading_mode\">Mode de lecture</string>\n    <string name=\"pref_category_theme\">Thème</string>\n    <string name=\"no_pinned_sources\">Vous n\\'avez aucune source épinglée</string>\n    <string name=\"channel_complete\">Compléter</string>\n    <string name=\"channel_progress\">Progression</string>\n    <string name=\"channel_errors\">Erreurs</string>\n    <string name=\"backup_restore_missing_trackers\">Traceurs non connectés :</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permettre la suppression des chapitres marqués d\\'un marque-page</string>\n    <string name=\"pref_category_delete_chapters\">Suppression des chapitres</string>\n    <string name=\"ext_nsfw_warning\">Les sources de cette extension peuvent contenir du contenu NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Ceci n\\'empêche pas les extensions de diffuser du contenu +18 dans l\\'application.</string>\n    <string name=\"no_chapters_error\">Aucun chapitre trouvé</string>\n    <string name=\"confirm_set_chapter_settings\">Appliquer ce paramétrage par défaut ?</string>\n    <string name=\"chapter_settings\">Paramètres du chapitre</string>\n    <string name=\"also_set_chapter_settings_for_library\">S\\'applique également à toutes les séries de ma bibliothèque</string>\n    <string name=\"set_chapter_settings_as_default\">Appliquer par défaut</string>\n    <string name=\"share_page_info\">%1$s : %2$s, page %3$d</string>\n    <string name=\"downloaded_chapters\">Chapitres téléchargés</string>\n    <string name=\"manga_from_library\">De la bibliothèque</string>\n    <string name=\"action_search_settings\">Rechercher les paramètres</string>\n    <string name=\"pref_incognito_mode_summary\">Suspend l\\'historique de lecture</string>\n    <string name=\"clear_history_confirmation\">Êtes-vous sûr(e) ? Tout l\\'historique sera effacé.</string>\n    <string name=\"pref_incognito_mode\">Mode navigation privée</string>\n    <string name=\"pref_clear_history\">Effacer l\\'historique</string>\n    <string name=\"clear_history_completed\">Historique supprimé</string>\n    <string name=\"chapter_settings_updated\">Paramétrage des chapitres par défaut enregistré</string>\n    <string name=\"spen_next_page\">Page suivante</string>\n    <string name=\"spen_previous_page\">Page précédente</string>\n    <string name=\"migration_help_guide\">Guide de migration des sources</string>\n    <string name=\"pref_category_nsfw_content\">Contenu +18</string>\n    <string name=\"myanimelist_relogin\">Veuillez vous reconnecter à MAL</string>\n    <string name=\"file_picker_error\">L’application de sélection de fichier est introuvable</string>\n    <string name=\"pref_show_nsfw_source\">Afficher dans les listes de sources et d\\'extensions</string>\n    <string name=\"track_finished_reading_date\">Date de fin</string>\n    <string name=\"track_started_reading_date\">Date de début</string>\n    <string name=\"kindlish_nav\">Style Kindle</string>\n    <string name=\"pref_dump_crash_logs\">Partager les rapports de plantage</string>\n    <string name=\"pref_dump_crash_logs_summary\">Enregistre les rapports de plantage dans un fichier pour les partager avec les développeurs</string>\n    <string name=\"pref_viewer_nav\">Zones tactiles</string>\n    <string name=\"edge_nav\">Bord</string>\n    <string name=\"l_nav\">En forme de L</string>\n    <string name=\"action_desc\">Décroissant</string>\n    <string name=\"action_asc\">Croissante</string>\n    <string name=\"action_order_by_chapter_number\">Par numéro de chapitre</string>\n    <string name=\"action_order_by_upload_date\">Par date de téléversement</string>\n    <string name=\"action_filter_tracked\">Suivis</string>\n    <string name=\"action_display_show_number_of_items\">Afficher le nombre d’entrées</string>\n    <string name=\"right_and_left_nav\">Droite et gauche</string>\n    <string name=\"pref_dual_page_split\">Diviser les pages larges</string>\n    <string name=\"pref_dual_page_invert_summary\">Si l\\'emplacement des pages larges divisées ne correspond pas au sens de lecture</string>\n    <string name=\"pref_dual_page_invert\">Inverser le placement des pages divisées</string>\n    <string name=\"backup_restore_content_full\">Vous devrez installer les extensions manquantes et vous connecter ensuite aux services de suivi pour les utiliser.</string>\n    <string name=\"nav_zone_prev\">Précédent</string>\n    <string name=\"pref_dns_over_https\">DNS sur HTTPS (DoH)</string>\n    <string name=\"nav_zone_right\">Droite</string>\n    <string name=\"nav_zone_left\">Gauche</string>\n    <string name=\"nav_zone_next\">Suivant</string>\n    <string name=\"pref_show_navigation_mode_summary\">Affichage bref à l\\'ouverture du lecteur</string>\n    <string name=\"pref_show_navigation_mode\">Afficher les zones tactiles (superposition)</string>\n    <string name=\"exclude\">Exclure : %s</string>\n    <string name=\"include\">Inclure : %s</string>\n    <string name=\"none\">Aucun(e)</string>\n    <string name=\"action_sort_chapter_fetch_date\">Date de récupération du chapitre</string>\n    <string name=\"pref_library_update_categories_details\">Les séries dans les catégories exclues ne seront pas mises à jour même si elles sont aussi dans les catégories inclues.</string>\n    <string name=\"pref_download_new_categories_details\">Les séries des catégories exclues ne seront pas mis à jour même si elles appartiennent également à des catégories incluses.</string>\n    <string name=\"pref_category_auto_download\">Téléchargement automatique</string>\n    <string name=\"action_show_errors\">Appuyez pour voir les détails</string>\n    <string name=\"update_check_eol\">Cette version d\\'Android n\\'est plus supportée</string>\n    <string name=\"clipboard_copy_error\">Échec de la copie dans le presse-papiers</string>\n    <string name=\"rotation_landscape\">Paysage</string>\n    <string name=\"rotation_portrait\">Portrait</string>\n    <string name=\"notification_incognito_text\">Désactiver le mode incognito</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Crée des dossiers en fonction du titre des séries</string>\n    <string name=\"pref_create_folder_per_manga\">Enregistrer les pages dans des dossiers séparés</string>\n    <string name=\"pref_reader_actions\">Actions</string>\n    <string name=\"pref_grayscale\">Niveaux de gris</string>\n    <string name=\"error_no_match\">Aucune correspondance trouvée</string>\n    <string name=\"source_unsupported\">La source n\\'est pas prise en charge</string>\n    <string name=\"unread\">Non lu</string>\n    <string name=\"date\">Date</string>\n    <string name=\"local_filter_order_by\">Trier par</string>\n    <string name=\"local_invalid_format\">Format de chapitre invalide</string>\n    <string name=\"chapter_not_found\">Chapitre non trouvé</string>\n    <string name=\"rotation_type\">Rotation</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"restrictions\">Restrictions : %s</string>\n    <string name=\"cancel_all_for_series\">Tout annuler pour cette série</string>\n    <string name=\"action_display_local_badge\">Source locale</string>\n    <string name=\"error_sharing_cover\">Erreur de partage de couverture</string>\n    <string name=\"error_saving_cover\">Erreur lors de l\\'enregistrement de la couverture</string>\n    <string name=\"cover_saved\">Couverture enregistrée</string>\n    <string name=\"manga_cover\">Couverture</string>\n    <string name=\"tracking_guide\">Manuel de suivi</string>\n    <string name=\"off\">Désactivé</string>\n    <string name=\"on\">Activé</string>\n    <string name=\"categorized_display_settings\">Rendre les réglages de tri propres à chaque catégorie</string>\n    <string name=\"information_empty_category_dialog\">Vous n\\'avez pas encore de catégories.</string>\n    <string name=\"action_start_downloading_now\">Commencer à télécharger</string>\n    <string name=\"restore_miui_warning\">La sauvegarde/restauration peut ne pas fonctionner correctement si l\\'optimisation MIUI est désactivée.</string>\n    <string name=\"enhanced_tracking_info\">Services qui fournissent des fonctionnalités améliorées pour des sources spécifiques. Les séries sont automatiquement suivies lorsqu\\'elles sont ajoutées à votre bibliothèque.</string>\n    <string name=\"enhanced_services\">Services avancés</string>\n    <string name=\"pref_dark_theme_pure_black\">Mode noir pur</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri aux fraises</string>\n    <string name=\"theme_midnightdusk\">Crépuscule de minuit</string>\n    <string name=\"theme_greenapple\">Pomme verte</string>\n    <string name=\"theme_monet\">Dynamique</string>\n    <string name=\"pref_app_theme\">Thème de l\\'appli</string>\n    <string name=\"about_dont_kill_my_app\">Certains fabricants ont mis en place des restrictions supplémentaires sur les applications qui tuent les services d\\'arrière-plan. Ce site Web contient plus d\\'informations sur la manière de résoudre ce problème.</string>\n    <string name=\"label_background_activity\">Activité en arrière-plan</string>\n    <string name=\"pref_lowest\">Minimale</string>\n    <string name=\"pref_low\">Basse</string>\n    <string name=\"pref_high\">Élevée</string>\n    <string name=\"pref_highest\">Maximale</string>\n    <string name=\"pref_hide_threshold\">Sensibilité pour masquer le menu lors du défilement</string>\n    <string name=\"pref_inverted_colors\">Inversé</string>\n    <string name=\"relative_time_today\">Aujourd\\'hui</string>\n    <string name=\"theme_tealturquoise\">Bleu canard et turquoise</string>\n    <string name=\"confirm_lock_change\">Authentifiez-vous pour confirmer les changements</string>\n    <string name=\"pref_category_appearance\">Apparence</string>\n    <string name=\"label_default\">Par défaut</string>\n    <string name=\"action_track\">Suivre</string>\n    <string name=\"getting_started_guide\">Guide de démarrage</string>\n    <string name=\"pref_tablet_ui_mode\">Mode tablette</string>\n    <string name=\"help_translate\">Aider à traduire</string>\n    <string name=\"pref_remove_exclude_categories\">Catégories exclues</string>\n    <string name=\"ext_app_info\">Infos sur l\\'application</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installez et démarrez Shizuku pour utiliser Shizuku comme installateur d\\'extensions.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku n\\'est pas en cours d\\'exécution</string>\n    <string name=\"ext_installer_legacy\">Legacy</string>\n    <string name=\"ext_installer_pref\">Installeur</string>\n    <string name=\"ext_install_service_notif\">Installation de l\\'extension…</string>\n    <string name=\"action_sort_count\">Séries totales</string>\n    <string name=\"pref_verbose_logging\">Rapports détaillés</string>\n    <string name=\"pref_verbose_logging_summary\">Inclut des rapports détaillés dans les traces systèmes (réduit les performances de l\\'application)</string>\n    <string name=\"action_display_language_badge\">Langue</string>\n    <string name=\"label_warning\">Avertissement</string>\n    <string name=\"notification_size_warning\">Les mises à jour importantes nuisent aux sources et peuvent entraîner un ralentissement des mises à jour ainsi qu\\'une augmentation de l\\'utilisation de la batterie. Appuyez pour en savoir plus.</string>\n    <string name=\"backup_info\">Vous devez également conserver des copies des sauvegardes à d\\'autres endroits.</string>\n    <string name=\"connected_to_wifi\">Uniquement en Wi-Fi</string>\n    <string name=\"update_72hour\">Tous les 3 jours</string>\n    <string name=\"download_queue_size_warning\">Attention : les téléchargements massifs peuvent entraîner un ralentissement des sources ou le blocage de %s. Appuyez pour en savoir plus.</string>\n    <string name=\"ext_update_all\">Tout mettre à jour</string>\n    <string name=\"channel_app_updates\">Mises à jour de l\\'application</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Vider le cache de chapitre au lancement de l\\'application</string>\n    <string name=\"clear_database_source_item_count\">%1$d séries hors de la bibliothèque dans la base de données</string>\n    <string name=\"database_clean\">Rien à effacer</string>\n    <string name=\"extension_api_error\">Aucune extension trouvée</string>\n    <string name=\"privacy_policy\">Politique de confidentialité</string>\n    <string name=\"pref_update_only_completely_read\">Exclure s\\'il reste un/des chapitre(s) à lire</string>\n    <string name=\"save_chapter_as_cbz\">Enregistrer comme archive CBZ</string>\n    <string name=\"library_errors_help\">Pour savoir comment corriger les erreurs de mise à jour de la bibliothèque, voir %1$s</string>\n    <string name=\"on_hiatus\">En pause</string>\n    <string name=\"publishing_finished\">Publication terminée</string>\n    <string name=\"cancelled\">Annulé</string>\n    <string name=\"action_show_manga\">Afficher la série</string>\n    <string name=\"action_display_cover_only_grid\">Grille avec seulement la couverture</string>\n    <string name=\"pref_navigate_pan\">Panoramique des images larges</string>\n    <string name=\"pref_landscape_zoom\">Zoom automatique dans les images larges</string>\n    <string name=\"pref_update_only_started\">Exclure si lecture pas encore débutée</string>\n    <string name=\"skipped_reason_completed\">Sauté car la série est terminée</string>\n    <string name=\"skipped_reason_not_started\">Sauté car aucun chapitre n\\'est lu</string>\n    <string name=\"skipped_reason_not_caught_up\">Sauté car il y a des chapitres non lus</string>\n    <string name=\"learn_more\">Appuyez pour en savoir plus</string>\n    <string name=\"notification_update_error\">Échec de %1$d mise(s) à jour</string>\n    <string name=\"rotation_reverse_portrait\">Portrait inversé</string>\n    <string name=\"action_move_to_top_all_for_series\">Déplacer la série vers le haut</string>\n    <string name=\"disabled_nav\">Désactivé</string>\n    <string name=\"error_saving_picture\">Erreur d\\'enregistrement de l\\'image</string>\n    <string name=\"empty_backup_error\">Aucune série à sauvegarder dans votre bibliothèque</string>\n    <string name=\"update_check_open\">Ouvrir sur GitHub</string>\n    <string name=\"pref_clear_webview_data\">Effacer les données WebView</string>\n    <string name=\"webview_data_deleted\">Données WebView effacées</string>\n    <string name=\"action_close\">Fermer</string>\n    <string name=\"source_filter_empty_screen\">Aucune source installée trouvée</string>\n    <string name=\"action_sort_last_manga_update\">Dernière vérification des mises à jour</string>\n    <string name=\"action_sort_unread_count\">Nombre de non-lus</string>\n    <string name=\"source_empty_screen\">Aucune source trouvée</string>\n    <string name=\"split_tall_images_summary\">Améliore les performances du lecteur</string>\n    <string name=\"download_notifier_split_page_not_found\">Page %d introuvable lors du fractionnement</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Impossible de trouver le chemin du fichier de la page %d</string>\n    <string name=\"pref_reset_viewer_flags\">Réinitialiser les paramètres du lecteur par série</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Réinitialise le mode de lecture et l\\'orientation de toutes les séries</string>\n    <string name=\"pref_reset_viewer_flags_success\">Paramètres du lecteur réinitialisés</string>\n    <string name=\"pref_reset_viewer_flags_error\">Impossible de réinitialiser les paramètres du lecteur</string>\n    <string name=\"empty_screen\">Eh bien, c\\'est gênant</string>\n    <string name=\"ext_info_version\">Version</string>\n    <string name=\"ext_info_language\">Langue</string>\n    <string name=\"ext_info_age_rating\">Classification par âge</string>\n    <string name=\"reading_list\">Liste de lecture</string>\n    <string name=\"wish_list\">Liste de souhaits</string>\n    <string name=\"on_hold_list\">Liste d\\'attente</string>\n    <string name=\"unfinished_list\">Liste des non terminés</string>\n    <string name=\"complete_list\">Liste des lectures terminées</string>\n    <string name=\"network_not_metered\">Uniquement sur réseau illimité</string>\n    <string name=\"cant_open_last_read_chapter\">Impossible d\\'ouvrir le dernier chapitre lu</string>\n    <string name=\"custom_cover\">Couverture personnalisée</string>\n    <string name=\"not_installed\">Non installé</string>\n    <string name=\"pref_app_language\">Langue de l\\'application</string>\n    <string name=\"description_placeholder\">Aucune description</string>\n    <string name=\"theme_lavender\">Lavande</string>\n    <string name=\"delete_category\">Effacer catégorie</string>\n    <string name=\"delete_category_confirmation\">Souhaitez-vous supprimer la catégorie « %s » ?</string>\n    <string name=\"internal_error\">ErreurInterne : Consultez vos rapports de plantage pour plus d\\'informations</string>\n    <string name=\"pref_reset_user_agent_string\">Réinitialiser la liste d\\'agents utilisateurs</string>\n    <string name=\"pref_user_agent_string\">Liste d\\'agents utilisateurs par défaut</string>\n    <string name=\"action_remove_everything\">Tout retirer</string>\n    <string name=\"appwidget_updates_description\">Voir les séries de votre bibliothèque récemment mises à jour</string>\n    <string name=\"appwidget_unavailable_locked\">Le Widget n\\'est pas disponible lorsque l\\'application est verrouillée</string>\n    <string name=\"error_user_agent_string_blank\">La liste d\\'agents utilisateurs ne peut être vide</string>\n    <string name=\"update_already_running\">Une mise à jour est déjà en cours</string>\n    <string name=\"theme_tidalwave\">Raz-de-marée</string>\n    <string name=\"download_ahead\">Téléchargement anticipé</string>\n    <string name=\"auto_download_while_reading\">Téléchargement anticipé pendant la lecture</string>\n    <string name=\"download_ahead_info\">Fonctionne seulement si le chapitre actuel et le suivant sont déjà téléchargés.</string>\n    <string name=\"are_you_sure\">Êtes-vous sûr(e) ?</string>\n    <string name=\"popular\">Populaire</string>\n    <string name=\"multi_lang\">Multiple</string>\n    <string name=\"updates_last_update_info\">Dernière mise à jour de la bibliothèque le : %s</string>\n    <string name=\"remove_manga\">Vous êtes sur le point de retirer « %s » de votre bibliothèque</string>\n    <string name=\"missing_storage_permission\">Autorisations de stockage non accordées</string>\n    <string name=\"action_search_hint\">Recherche…</string>\n    <string name=\"skipped_reason_not_always_update\">Ignorée car la série ne nécessite pas de mises à jour</string>\n    <string name=\"crash_screen_title\">Oups !</string>\n    <string name=\"pref_appearance_summary\">Thème, format de la date et de l\\'heure</string>\n    <string name=\"pref_downloads_summary\">Téléchargement automatique, téléchargement anticipé</string>\n    <string name=\"pref_tracking_summary\">Synchronisation unidirectionnelle de la progression, synchronisation améliorée</string>\n    <string name=\"pref_backup_summary\">Sauvegardes manuelles et automatiques</string>\n    <string name=\"pref_advanced_summary\">Rapports de plantage, optimisations de la batterie</string>\n    <string name=\"crash_screen_restart_application\">Redémarrer l\\'application</string>\n    <string name=\"pref_browse_summary\">Sources, extensions, recherche globale</string>\n    <string name=\"pref_library_summary\">Catégories, mise à jour globale, faire glisser le chapitre</string>\n    <string name=\"pref_reader_summary\">Mode de lecture, affichage, navigation</string>\n    <string name=\"pref_security_summary\">Verrouillage des applications, écran sécurisé</string>\n    <string name=\"crash_screen_description\">%s a rencontré une erreur inattendue. Nous vous suggérons de nous partager les rapports de plantage dans notre salon d\\'assistance sur Discord.</string>\n    <string name=\"invalid_location\">Emplacement invalide : %s</string>\n    <string name=\"error_user_agent_string_invalid\">Chaîne d\\'agent utilisateur invalide</string>\n    <string name=\"unknown_title\">Titre inconnu</string>\n    <string name=\"updates_last_update_info_just_now\">À l\\'instant</string>\n    <string name=\"action_open_random_manga\">Ouvrir une série au hasard</string>\n    <string name=\"fdroid_warning\">Les versions de F-Droid ne sont pas officiellement prises en charge.\n\\nAppuyez pour en savoir plus.</string>\n    <string name=\"information_no_entries_found\">Aucune série trouvée dans cette catégorie</string>\n    <string name=\"download_notifier_cache_renewal\">Vérification des téléchargements</string>\n    <string name=\"action_display_show_continue_reading_button\">Bouton \\\"Reprendre\\\"</string>\n    <string name=\"track_remove_start_date_conf_text\">Ceci supprimera la date de début que vous avez précédemment sélectionnée dans la base de données de %s</string>\n    <string name=\"track_remove_date_conf_title\">Retirer la date ?</string>\n    <string name=\"track_remove_finish_date_conf_text\">Ceci supprimera la date de fin que vous aviez précédemment sélectionnée dans la base de données de %s</string>\n    <string name=\"pref_invalidate_download_cache\">Réindexe les téléchargements</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Forcer l\\'application à revérifier les chapitres téléchargés</string>\n    <string name=\"label_stats\">Statistiques</string>\n    <string name=\"label_overview_section\">Aperçu</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_started\">Commencé</string>\n    <string name=\"label_downloaded\">Téléchargé</string>\n    <string name=\"information_no_manga_category\">La catégorie est vide</string>\n    <string name=\"label_titles_section\">Séries</string>\n    <string name=\"label_titles_in_global_update\">Dans la mise à jour globale</string>\n    <string name=\"label_read_chapters\">Lus</string>\n    <string name=\"label_tracker_section\">Traqueurs</string>\n    <string name=\"label_used\">Utilisé</string>\n    <string name=\"not_applicable\">s. o.</string>\n    <string name=\"day_short\">%d j</string>\n    <string name=\"hour_short\">%d h</string>\n    <string name=\"minute_short\">%d min</string>\n    <string name=\"seconds_short\">%d s</string>\n    <string name=\"action_not_now\">Pas maintenant</string>\n    <string name=\"label_completed_titles\">Séries terminées</string>\n    <string name=\"label_read_duration\">Durée de lecture</string>\n    <string name=\"label_tracked_titles\">Séries suivies</string>\n    <string name=\"label_mean_score\">Note moyenne</string>\n    <string name=\"pref_library_update_show_tab_badge\">Afficher le nombre de chapitres non lus sur l\\'icône des mises à jour</string>\n    <string name=\"copied_to_clipboard_plain\">Copié dans le presse-papier</string>\n    <string name=\"pref_skip_dupe_chapters\">Ignorer les chapitres en double</string>\n    <string name=\"track_error\">%1$s erreur : %2$s</string>\n    <string name=\"enhanced_services_not_installed\">Disponible mais la source n\\'est pas installée : %s</string>\n    <string name=\"information_required_plain\">*obligatoire</string>\n    <string name=\"pref_hide_in_library_items\">Masquer les séries déjà présentes dans la bibliothèque</string>\n    <string name=\"action_copy_to_clipboard\">Copier dans le presse-papier</string>\n    <string name=\"action_update_category\">Mettre à jour la catégorie</string>\n    <string name=\"split_tall_images\">Diviser les grandes images</string>\n    <string name=\"overlay_header\">Superposition</string>\n    <string name=\"pref_page_rotate_invert\">Inverser l\\'orientation des pages larges retournées</string>\n    <string name=\"pref_page_rotate\">Tourner les pages larges pour qu\\'elles rentrent</string>\n    <string name=\"pref_debug_info\">Informations de débogage</string>\n    <string name=\"pref_chapter_swipe_start\">Action de glisser à gauche</string>\n    <string name=\"pref_chapter_swipe_end\">Action de glisser à droite</string>\n    <string name=\"pref_double_tap_zoom\">Appuyez deux fois pour zoomer</string>\n    <string name=\"action_sort_next_updated\">Prochaine mise à jour prévue</string>\n    <string name=\"pref_update_only_in_release_period\">Prédiction de la prochaine date sortie</string>\n    <string name=\"action_set_interval\">Définir l\\'intervalle</string>\n    <string name=\"action_ok\">Valider</string>\n    <string name=\"action_filter_interval_custom\">Fréquence de mise à jour personnalisée</string>\n    <string name=\"information_cloudflare_help\">Appuyez ici pour de l\\'aide sur Cloudflare</string>\n    <string name=\"unlock_app_title\">Débloquer %s</string>\n    <string name=\"syncing_library\">Synchronisation de la bibliothèque</string>\n    <string name=\"intervals_header\">Intervalles</string>\n    <string name=\"library_sync_complete\">Synchronisation de la bibliothèque complété</string>\n    <string name=\"exception_offline\">Aucune connexion internet</string>\n    <string name=\"download_cache_invalidated\">Recréation de l\\'index de téléchargement</string>\n    <string name=\"skipped_reason_not_in_release_period\">Ignoré car aucune sortie n\\'était attendue aujourd\\'hui</string>\n    <string name=\"has_results\">A des résultats</string>\n    <string name=\"manga_display_interval_title\">Estimer chaque</string>\n    <string name=\"exception_http\">HTTP %d, consulter le site Web dans WebView</string>\n    <string name=\"manga_display_modified_interval_title\">Configurer pour mettre à jour tous les</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Déplacer la série vers le bas</string>\n    <string name=\"track_delete_remote_text\">Supprimez également de %s</string>\n    <string name=\"exception_unknown_host\">Impossible de joindre %s</string>\n    <string name=\"app_settings\">Paramètres de l\\'application</string>\n    <string name=\"delete_downloaded\">Supprimer le(s) téléchargement(s)</string>\n    <string name=\"action_apply\">Appliquer</string>\n    <string name=\"action_revert_to_default\">Réintialiser les valeurs par défaut</string>\n    <string name=\"action_menu_overflow_description\">Plus d\\'options</string>\n    <string name=\"selected\">Sélectionné</string>\n    <string name=\"not_selected\">Pas sélectionné(e)</string>\n    <string name=\"scanlator\">Scanlateur</string>\n    <string name=\"pref_flash_page\">Flash lors du changement de page</string>\n    <string name=\"action_bar_up_description\">Naviguer vers le haut</string>\n    <string name=\"action_sort_tracker_score\">Score du service de suivi</string>\n    <string name=\"label_data_storage\">Données et stockage</string>\n    <string name=\"track_activity_name\">Se connecter au service de suivi</string>\n    <string name=\"pref_relative_format_summary\">« %1$s » au lieu de « %2$s »</string>\n    <string name=\"pref_storage_location\">Emplacement de stockage</string>\n    <string name=\"pref_flash_page_summ\">Réduire le ghosting sur les écrans e-ink</string>\n    <string name=\"pref_storage_location_info\">Utilisé pour les backups automatiques, téléchargements des chapitres et la source locale.</string>\n    <string name=\"onboarding_storage_selection_required\">Un dossier doit être sélectionné</string>\n    <string name=\"available_disk_space_info\">Disponible : %1$s / Total : %2$s</string>\n    <string name=\"onboarding_heading\">Bienvenue !</string>\n    <string name=\"onboarding_action_skip\">Passer</string>\n    <string name=\"pref_storage_usage\">Utilisation du stockage</string>\n    <string name=\"onboarding_action_next\">Suivant</string>\n    <string name=\"no_location_set\">Aucun emplacement de stockage défini</string>\n    <string name=\"ext_permission_install_apps_warning\">Des permissions sont nécessaires pour installer des extensions. Appuyer ici pour les accorder.</string>\n    <string name=\"onboarding_permission_action_grant\">Accorder</string>\n    <string name=\"pref_relative_format\">Durées relatives</string>\n    <string name=\"onboarding_permission_notifications\">Permission de notifications</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Utilisation de la batterie en arrière-plan</string>\n    <string name=\"onboarding_permission_install_apps_description\">Pour installer des extensions de source.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Évite l\\'interruption des mises à jour de bibliothèque, des téléchargements de chapitres, et des restaurations de sauvegardes.</string>\n    <string name=\"onboarding_permission_install_apps\">Permission d\\'installer des applications</string>\n    <string name=\"onboarding_storage_help_info\">Mise à jour depuis une ancienne version et pas sûr de quoi choisir ? Consultez le guide de stockage pour plus d\\'informations.</string>\n    <string name=\"onboarding_storage_help_action\">Guide de stockage</string>\n    <string name=\"onboarding_permission_notifications_description\">Soyez notifié des mises à jour de la bibliothèque et autre.</string>\n    <string name=\"pref_library_update_smart_update\">Mise à jour intelligente</string>\n    <string name=\"pref_onboarding_guide\">Guide de premier lancement</string>\n    <string name=\"onboarding_description\">Commençons par paramétrer certaines choses. Vous pouvez toujours changer ces paramètres plus tard.</string>\n    <string name=\"onboarding_storage_info\">Sélectionnez un dossier où %1$s stockera les chapitres téléchargés, les sauvegardes et plus encore.\n\\n\n\\nUn dossier dédié est recommandé.\n\\n\n\\nDossier sélectionné : %2$s</string>\n    <string name=\"onboarding_storage_action_select\">Sélectionnez un dossier</string>\n    <string name=\"onboarding_guides_returning_user\">De retour sur %s ?</string>\n    <string name=\"track_delete_title\">Annuler le suivi avec %s ?</string>\n    <string name=\"private_settings\">Inclure des informations sensible (ex : jetons de connexion)</string>\n    <string name=\"manga_interval_expected_update\">De nouveaux chapitres sont prédits dans environ %1$s, mise à jour prévu tous les %2$s.</string>\n    <string name=\"exclude_scanlators\">Exclure la team de scantrad</string>\n    <string name=\"no_scanlators_found\">Aucune team de scantrad trouvé</string>\n    <string name=\"relative_time_span_never\">Jamais</string>\n    <string name=\"onboarding_guides_new_user\">Nouveau sur %s ? Nous vous recommandons de jeter un œil au guide de démarrage.</string>\n    <string name=\"delete_repo_confirmation\">Voulez-vous vraiment supprimer le répertoire « %s » ?</string>\n    <string name=\"manga_interval_custom_amount\">Fréquence de mise à jour personnalisé :</string>\n    <string name=\"invalid_backup_file_error\">Erreur complète :</string>\n    <string name=\"action_delete_repo\">Supprimer le répertoire</string>\n    <string name=\"label_extension_repos\">Répertoire d\\'extension</string>\n    <string name=\"ext_revoke_trust\">Révoquer les extensions provenant d\\'un répertoire additionnel</string>\n    <string name=\"label_add_repo_input\">URL du répertoire</string>\n    <string name=\"action_add_repo_message\">Ajouter un répertoire additionnel à %s. L\\'URL devrait se terminer par « index.min.json ».</string>\n    <string name=\"error_repo_exists\">Ce répertoire existe déjà !</string>\n    <string name=\"invalid_repo_name\">L\\'URL du répertoire est invalide</string>\n    <string name=\"manga_interval_expected_update_soon\">Bientôt</string>\n    <string name=\"information_empty_repos\">Vous n\\'avez aucun répertoire.</string>\n    <string name=\"action_add_repo\">Ajouter un répertoire</string>\n    <string name=\"action_open_repo\">Répertoire open source</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"action_create\">Créer</string>\n    <string name=\"track_delete_text\">Cela arrêtera le suivi pour cette série.</string>\n    <string name=\"file_null_uri_error\">Aucun fichier sélectionné</string>\n    <string name=\"notification_updating_progress\">Mise a jour de la bibliothèque... (%s)</string>\n    <string name=\"onboarding_action_finish\">Commencer</string>\n    <string name=\"create_backup_file_error\">Impossible de créer un fichier de sauvegarde</string>\n    <string name=\"last_auto_backup_info\">Dernière sauvegarde automatique : %s</string>\n    <string name=\"source_settings\">Paramètres sources</string>\n    <string name=\"action_add_anyway\">Ajouter tout de même</string>\n    <string name=\"label_upcoming\">À venir</string>\n    <string name=\"action_replace_repo\">Remplacer</string>\n    <string name=\"pref_display_profile\">Profil d\\'affichage personnalisé</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Désactiver le zoom arrière</string>\n    <string name=\"action_view_upcoming\">Afficher les mises à jour à venir</string>\n    <string name=\"upcoming_guide\">Guide à venir</string>\n    <string name=\"upcoming_calendar_next\">Le mois prochain</string>\n    <string name=\"upcoming_calendar_prev\">Le mois précédent</string>\n    <string name=\"action_copy_link\">Copier le lien</string>\n    <string name=\"action_replace_repo_title\">L\\'empreinte digitale de la clé de signature existe déjà</string>\n    <string name=\"add_repo_confirmation\">Souhaitez-vous ajouter le répertoire \\\"%s\\\" ?</string>\n    <string name=\"pref_flash_with\">Flash avec</string>\n    <string name=\"action_replace_repo_message\">Le répertoire %1$s a la même empreinte digitale de la clé de signature que %2$s.\n\\nSi cela est attendu, %2$s sera remplacé, sinon contactez votre mainteneur du répertoire.</string>\n    <string name=\"pref_flash_duration\">Durée du flash</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flash toutes les</string>\n    <string name=\"pref_flash_style_black\">Noir</string>\n    <string name=\"pref_flash_style_white\">Blanc</string>\n    <string name=\"pref_flash_style_white_black\">Blanc et Noir</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Ignorer le téléchargement des chapitres dupliqués et déjà lus</string>\n    <string name=\"invalid_backup_file_json\">Sauvegarde JSON non supportée</string>\n    <string name=\"action_sort_random\">Aléatoire</string>\n    <string name=\"onboarding_permission_crashlytics\">Envoyer les logs de crash</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Envoyer les logs de crash anonymes aux développeurs.</string>\n    <string name=\"onboarding_permission_analytics\">Autoriser l\\'analyse</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Mise à jour de la progression quand marqué comme lu</string>\n    <string name=\"pref_firebase\">Analyses et logs de crash</string>\n    <string name=\"firebase_summary\">L\\'envoi de logs de crash et d\\'analyses nous permettra d\\'identifier et de corriger les problèmes, d\\'améliorer les performances et de rendre les futures mises à jour plus adaptées à vos besoins</string>\n    <string name=\"pref_security\">Sécurité</string>\n    <string name=\"extensionRepo_settings\">Dépôts d\\'extension</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Par défaut (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Affecte les performances. Ne l\\'activer que si la réduction du seuil de bitmap ne résout pas les problèmes d\\'images vierges</string>\n    <string name=\"non_library_settings\">Toutes les séries lues</string>\n    <string name=\"confirm_tracker_update\">Mettre à jour les trackers au chapitre %d ?</string>\n    <string name=\"ext_remove\">Retirer</string>\n    <string name=\"ext_confirm_remove\">Retirer l\\'Extension ?</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Si le lecteur charge une image vierge, réduire progressivement le seuil.\\nSélectionné : %s</string>\n    <string name=\"onboarding_permission_analytics_description\">Envoyer des données d\\'utilisation anonymes pour améliorer les fonctionnalités de l\\'application.</string>\n    <string name=\"trackers_updated_summary\">Trackers mis à jour au chapitre %d</string>\n    <string name=\"manga_interval_expected_update_null\">Cette série est soit terminée, soit il n\\'y a pas de date de sortie prévue.</string>\n    <string name=\"file_picker_uri_permission_unsupported\">L\\'application n\\'a pas obtenu l\\'accès au dossier. Il se peut qu\\'elle ne fonctionne pas comme prévu.</string>\n    <string name=\"invalid_backup_file_unknown\">Le fichier de sauvegarde est corrompu</string>\n    <string name=\"remove_private_extension_message\">Voulez-vous vraiment retirer l\\'extension \\\"%s\\\" ?</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Seuil de bitmap matériel personnalisé</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Après avoir lu un chapitre</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Après avoir acquis le chapitre suivant</string>\n    <string name=\"library_exported\">Librairie exportée</string>\n    <string name=\"artist\">Artiste</string>\n    <string name=\"pref_behavior\">Comportement</string>\n    <string name=\"export\">Export</string>\n    <string name=\"library_list\">Liste des librairies</string>\n    <string name=\"tracked_privately\">Suivi privé</string>\n    <string name=\"author\">Auteur</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marquer un chapitre dupliqué comme lu</string>\n    <string name=\"possible_duplicates_summary\">Vous avez une série similaire dans votre bibliothèque.\\n\\nSélectionnez une série à migrer ou l\\'ajouter quand même.</string>\n    <string name=\"action_display_unread_badge\">Chapitres non lus</string>\n    <string name=\"label_auto\">Auto</string>\n    <string name=\"action_notes\">Notes</string>\n    <string name=\"action_edit_notes\">Modifier les notes</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Utiliser l\\'ancien décodeur pour le lecteur de bandes longues</string>\n    <string name=\"clear_database_text\">Vous êtes sur le point de supprimer des séries de la base de données</string>\n    <string name=\"clear_database_history_warning\">Les chapitres lus et la progression des séries hors bibliothèque seront perdus</string>\n    <string name=\"theme_monochrome\">Monochrome</string>\n    <string name=\"clear_db_exclude_read\">Conserver les séries avec des chapitres lus</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Masquer les indicateurs de chapitre manquants</string>\n    <string name=\"storage_failed_to_create_download_directory\">Impossible de créer le répertoire de téléchargement</string>\n    <string name=\"storage_failed_to_create_directory\">Impossible de créer le répertoire : %s</string>\n    <string name=\"pref_update_library_manga_titles\">Mettre à jour les titres des séries de la bibliothèque pour qu\\'ils correspondent à la source</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Supprimer les téléchargements de la série actuelle après la migration</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Afficher la série uniquement si elle comporte des chapitres supplémentaires</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Aucun chapitre trouvé, cette série ne peut pas être utilisée pour la migration</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Attention : si une série est renommé, elle sera supprimée de la file d\\'attente de téléchargement (si elle y est présente).</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Masquer les séries qui ne sont pas similaire</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Masquer les séries sans chapitres récents</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Mettre en pause l\\'historique de lecture pour cette extension</string>\n    <string name=\"logging_in\">Connexion…</string>\n    <string name=\"possible_duplicates_title\">Doublon possible</string>\n    <string name=\"action_toggle_private_on\">Suivre en privé</string>\n    <string name=\"action_toggle_private_off\">Suivre publiquement</string>\n    <string name=\"notes_placeholder\">J\\'ai apprécié la partie où…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Sélectionné</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponible</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Sélectionner tout</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Ne rien sélectionner</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Sélectionnez les sources activées</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Sélectionnez les sources épinglées</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Continue</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Donnée à migrer</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Mots-clés supplémentaires (facultatif)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Aide à affiner les résultats de recherche en ajoutant des mots-clés supplémentaires</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Ces options sont lentes et dangereuses, elles peuvent conduire à des restrictions de la part des sources</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Mode de recherche avancé</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Décompose le titre en mots-clés pour une recherche plus large</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Similarité basée sur le numéro de chapitre</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Si cette option est activée, la correspondance la plus avancée est choisit. Sinon, c\\'est la première correspondance par priorité de source qui sera choisit.</string>\n    <string name=\"migrationListScreenTitle\">Migration</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migration (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copie</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrer</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Aucune alternative trouvée</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Dernier : %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Inconnu</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Rechercher manuellement</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Ne pas migrer</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrer maintenant</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copier maintenant</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Arrêter de migrer ?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Arrêter</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Annuler</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copier</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrer</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Annuler</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Annuler</string>\n    <string name=\"label_donate\">Donation</string>\n    <string name=\"pref_display_images_description\">Rendre les images dans les descriptions de mangas</string>\n    <string name=\"action_webview_close_tab\">Fermer l\\'onglet</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Interdire les noms de fichiers non ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Assure la compatibilité avec certains supports de stockage qui ne prennent pas en charge Unicode. Lorsque cette option est activée, vous devrez renommer manuellement les dossiers source et manga en remplaçant les caractères non ASCII par leur représentation hexadécimale UTF-8 en minuscules. Les fichiers de chapitre n\\'ont pas besoin d\\'être renommés.</string>\n    <string name=\"pref_download_concurrent_sources\">Téléchargements simultanés de sources</string>\n    <string name=\"pref_download_concurrent_pages\">Téléchargements simultanés de pages</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Pages téléchargées simultanément par source</string>\n    <string name=\"action_filter_excluded_scanlators\">Filtrer les scantrads exclus</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/gl/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoría</item>\n        <item quantity=\"other\">%d categorías</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Despois de 1 minuto</item>\n        <item quantity=\"other\">Despois de %1$s minutos</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Seguinte capítulo sen ler</item>\n        <item quantity=\"other\">Seguintes %d capítulos sen ler</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">Queda %1$s</item>\n        <item quantity=\"other\">Quedan %1$s</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Onte</item>\n        <item quantity=\"other\">Fai %1$d días</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Feito en %1$s con %2$s erro</item>\n        <item quantity=\"other\">Feito en %1$s con %2$s erros</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d servizo de seguemento</item>\n        <item quantity=\"other\">%d servizos de seguemento</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Hai unha actualización dunha extensión</item>\n        <item quantity=\"other\">Hai actualizacións de %d extensións</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capítulo</item>\n        <item quantity=\"other\">%1$s capítulos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capítulos %1$s e 1 máis</item>\n        <item quantity=\"other\">Capítulos %1$s e %2$d máis</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Saltouse %d capítulo: falta na fonte ou ignorouse</item>\n        <item quantity=\"other\">Saltáronse %d capítulos: faltan na fonte ou ignoráronse</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Por %d elemento</item>\n        <item quantity=\"other\">Por %d elementos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d capítulo novo</item>\n        <item quantity=\"other\">%1$d capítulos novos</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">O seguinte capítulo</item>\n        <item quantity=\"other\">Os seguintes %d capítulos</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Falta %1$s capítulo</item>\n        <item quantity=\"other\">Faltan %1$s capítulos</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repositorio</item>\n        <item quantity=\"other\">%d repositorios</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Mañá</item>\n        <item quantity=\"other\">Dentro de %1$d días</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">Un día</item>\n        <item quantity=\"other\">%d días</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 páxina</item>\n        <item quantity=\"other\">%1$s páxinas</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/gl/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_settings\">Axustes</string>\n    <string name=\"label_more\">Máis</string>\n    <string name=\"name\">Nome</string>\n    <string name=\"label_sources\">Fontes</string>\n    <string name=\"label_recent_manga\">Historial</string>\n    <string name=\"label_recent_updates\">Actualizacións</string>\n    <string name=\"label_library\">Biblioteca</string>\n    <string name=\"label_download_queue\">Cola de descargas</string>\n    <string name=\"last_read_chapter\">Último capítulo lido</string>\n    <string name=\"disabled\">Deshabilitado</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permitir eliminar os capítulos marcados como favoritos</string>\n    <string name=\"pref_remove_after_read\">Eliminar automaticamente despois de ler</string>\n    <string name=\"pref_remove_after_marked_as_read\">Despois de marcar manualmente como lido</string>\n    <string name=\"pref_category_delete_chapters\">Eliminar capítulos</string>\n    <string name=\"pref_webtoon_side_padding\">Recheo lateral</string>\n    <string name=\"pref_category_reading\">Lendo</string>\n    <string name=\"pref_category_reading_mode\">Modo de lectura</string>\n    <string name=\"pref_always_show_chapter_transition\">Mostrar sempre transición de capítulo</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"rotation_force_landscape\">Bloquear en horizontal</string>\n    <string name=\"rotation_force_portrait\">Bloquear en vertical</string>\n    <string name=\"rotation_free\">Libre</string>\n    <string name=\"pref_rotation_type\">Rotación por defecto</string>\n    <string name=\"double_tap_anim_speed_fast\">Rápido</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_0\">Sen animación</string>\n    <string name=\"zoom_start_center\">Centro</string>\n    <string name=\"zoom_start_right\">Dereita</string>\n    <string name=\"zoom_start_left\">Esquerda</string>\n    <string name=\"zoom_start_automatic\">Automático</string>\n    <string name=\"pref_zoom_start\">Posición inicial do zoom</string>\n    <string name=\"scale_type_smart_fit\">Axuste intelixente</string>\n    <string name=\"scale_type_original_size\">Tamaño orixinal</string>\n    <string name=\"scale_type_fit_height\">Axustar ao alto</string>\n    <string name=\"scale_type_fit_width\">Axustar ao largo</string>\n    <string name=\"scale_type_stretch\">Estirar</string>\n    <string name=\"scale_type_fit_screen\">Axustar á pantalla</string>\n    <string name=\"pref_image_scale_type\">Tipo de escala</string>\n    <string name=\"pager_viewer\">Paxinado</string>\n    <string name=\"vertical_plus_viewer\">Tira vertical con espacios</string>\n    <string name=\"webtoon_viewer\">Tira vertical</string>\n    <string name=\"vertical_viewer\">Por páxinas (vertical)</string>\n    <string name=\"right_to_left_viewer\">Páxinas (De dereita a esquerda)</string>\n    <string name=\"left_to_right_viewer\">Por páxinas (de esquerda a dereita)</string>\n    <string name=\"pref_viewer_type\">Modo de lectura por defecto</string>\n    <string name=\"black_background\">Negro</string>\n    <string name=\"gray_background\">Gris</string>\n    <string name=\"white_background\">Branco</string>\n    <string name=\"pref_reader_theme\">Cor de fondo</string>\n    <string name=\"pref_read_with_long_tap\">Amosar cun toque longo</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Invertir teclas de volume</string>\n    <string name=\"pref_read_with_volume_keys\">Teclas de volume</string>\n    <string name=\"pref_reader_navigation\">Navegación</string>\n    <string name=\"pref_skip_filtered_chapters\">Saltar capítulos filtrados</string>\n    <string name=\"pref_skip_read_chapters\">Saltar capítulos marcados como lidos</string>\n    <string name=\"pref_keep_screen_on\">Manter a pantalla acesa</string>\n    <string name=\"filter_mode_darken\">Queimar / Escurecer</string>\n    <string name=\"filter_mode_lighten\">Subexpoñer / Aclarar</string>\n    <string name=\"filter_mode_screen\">Pantalla</string>\n    <string name=\"filter_mode_multiply\">Multiplicar</string>\n    <string name=\"filter_mode_overlay\">Superposición</string>\n    <string name=\"pref_color_filter_mode\">Modo de mestura do filtro de cor</string>\n    <string name=\"pref_custom_color_filter\">Filtro de cor personalizado</string>\n    <string name=\"pref_custom_brightness\">Brillo presonalizado</string>\n    <string name=\"pref_crop_borders\">Recortar bordes</string>\n    <string name=\"pref_show_reading_mode_summary\">Amosar brevemente o modo actual cando se abre o lector</string>\n    <string name=\"pref_show_reading_mode\">Amosar modo de lectura</string>\n    <string name=\"pref_show_page_number\">Amosar número de páxina</string>\n    <string name=\"pref_double_tap_anim_speed\">Velocidade da animación de doble toque</string>\n    <string name=\"pref_page_transitions\">Animar transición de páxinas</string>\n    <string name=\"pref_cutout_short\">Mostrar contido na área recortada</string>\n    <string name=\"pref_fullscreen\">Pantalla completa</string>\n    <string name=\"ext_nsfw_warning\">As fontes desta extensión poden ter contido NSFW (+18)</string>\n    <string name=\"ext_nsfw_short\">+18</string>\n    <string name=\"obsolete_extension_message\">Esta extensión xa non está dispoñible. Pode que non funcione ben e cause problemas na aplicación. Recoméndase desinstalala.</string>\n    <string name=\"untrusted_extension_message\">Unha extensión maliciosa podería ler calquera credencial de inicio de sesión gardada en Mihon ou executar calquera tipo de código.\n\\n\n\\nSe confías nesta extensión, aceptas estes riscos.</string>\n    <string name=\"untrusted_extension\">Extensión non confiable</string>\n    <string name=\"ext_untrusted\">Non confiable</string>\n    <string name=\"ext_uninstall\">Desinstalar</string>\n    <string name=\"ext_trust\">De confianza</string>\n    <string name=\"ext_installed\">Instaladas</string>\n    <string name=\"ext_installing\">Instalando</string>\n    <string name=\"ext_downloading\">Descargando</string>\n    <string name=\"ext_pending\">Pendentes</string>\n    <string name=\"ext_install\">Instalar</string>\n    <string name=\"ext_obsolete\">Obsoletas</string>\n    <string name=\"ext_update\">Actualizar</string>\n    <string name=\"ext_updates_pending\">Actualizacións pendentes</string>\n    <string name=\"all\">Todas</string>\n    <string name=\"default_category_summary\">Preguntar sempre</string>\n    <string name=\"default_category\">Categoría por defecto</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Procurar novas portadas e detalles cando se actualice a biblioteca</string>\n    <string name=\"pref_library_update_refresh_metadata\">Refrescar os metadatos automaticamente</string>\n    <string name=\"pref_update_only_non_completed\">Co estado de \\\"Rematados\\\"</string>\n    <string name=\"charging\">Durante a carga</string>\n    <string name=\"pref_library_update_restriction\">Restricións do dispositivo para as actualizacións automáticas</string>\n    <string name=\"update_weekly\">Semanalmente</string>\n    <string name=\"update_48hour\">Cada 2 días</string>\n    <string name=\"update_24hour\">Diariamente</string>\n    <string name=\"update_12hour\">Cada 12 horas</string>\n    <string name=\"update_6hour\">Cada 6 horas</string>\n    <string name=\"update_never\">Desactivadas</string>\n    <string name=\"pref_library_update_interval\">Actualizacións automáticas</string>\n    <string name=\"pref_category_library_update\">Actualización global</string>\n    <string name=\"landscape\">Horizontal</string>\n    <string name=\"portrait\">Vertical</string>\n    <string name=\"pref_library_columns\">Tamaño da reixa</string>\n    <string name=\"pref_category_display\">Amosar</string>\n    <string name=\"parental_controls_info\">Isto non evita que as extensións non oficiais ou mal clasificadas mostren contido NSFW (+18) dentro da aplicación.</string>\n    <string name=\"hide_notification_content\">Esconder o contido das notificacións</string>\n    <string name=\"secure_screen_summary\">O modo discreto esconde o contido da aplicación ao cambiar entre aplicacións e bloquea as capturas de pantalla</string>\n    <string name=\"secure_screen\">Modo discreto</string>\n    <string name=\"lock_never\">Nunca</string>\n    <string name=\"lock_always\">Sempre</string>\n    <string name=\"lock_when_idle\">Bloquear por inactividade</string>\n    <string name=\"lock_with_biometrics\">Requerir desbloqueo</string>\n    <string name=\"file_picker_error\">Non se atopou unha aplicación para seleccionar ficheiros</string>\n    <string name=\"myanimelist_relogin\">Inicia sesión en MAL de novo</string>\n    <string name=\"requires_app_restart\">Require reiniciar a aplicación para que surxa efecto</string>\n    <string name=\"pref_show_nsfw_source\">Amosar na lista de fontes e extensións</string>\n    <string name=\"pref_category_nsfw_content\">Fontes NSFW (+18)</string>\n    <string name=\"pref_category_security\">Seguridade e privacidade</string>\n    <string name=\"pref_manage_notifications\">Xestionar notificacións</string>\n    <string name=\"pref_date_format\">Formato da data</string>\n    <string name=\"theme_dark\">Activado</string>\n    <string name=\"theme_light\">Desactivado</string>\n    <string name=\"theme_system\">Utilizar o do sistema</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"pref_category_about\">Acerca de</string>\n    <string name=\"pref_category_advanced\">Avanzado</string>\n    <string name=\"pref_category_tracking\">Seguimento</string>\n    <string name=\"pref_category_downloads\">Descargas</string>\n    <string name=\"pref_category_reader\">Lector</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"pref_category_general\">Xeral</string>\n    <string name=\"app_not_available\">Aplicación non dispoñible</string>\n    <string name=\"loading\">Cargando…</string>\n    <string name=\"action_webview_refresh\">Recargar</string>\n    <string name=\"action_webview_forward\">Adiante</string>\n    <string name=\"action_webview_back\">Atrás</string>\n    <string name=\"action_restore\">Restaurar</string>\n    <string name=\"action_open_log\">Abrir rexistro</string>\n    <string name=\"action_undo\">Desfacer</string>\n    <string name=\"action_reset\">Resetear</string>\n    <string name=\"action_save\">Gardar</string>\n    <string name=\"action_share\">Compartir</string>\n    <string name=\"action_install\">Instalar</string>\n    <string name=\"action_move_to_bottom\">Mover ao final</string>\n    <string name=\"action_move_to_top\">Mover ao principio</string>\n    <string name=\"action_oldest\">Máis antigos</string>\n    <string name=\"action_newest\">Os máis novos</string>\n    <string name=\"action_sort\">Ordenar</string>\n    <string name=\"action_cancel_all\">Cancelar todos</string>\n    <string name=\"action_cancel\">Cancelar</string>\n    <string name=\"action_unpin\">Quitar de fixados</string>\n    <string name=\"action_pin\">Fixar</string>\n    <string name=\"action_disable\">Deshabilitar</string>\n    <string name=\"action_display_show_tabs\">Amosar laretas de categorías</string>\n    <string name=\"action_display_download_badge\">Capítulos descargados</string>\n    <string name=\"action_display_comfortable_grid\">Cuadrícula ampla</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_display_grid\">Cuadrícula compacta</string>\n    <string name=\"action_display\">Amosar</string>\n    <string name=\"action_display_mode\">Modo de visualización</string>\n    <string name=\"action_migrate\">Migrar</string>\n    <string name=\"action_open_in_web_view\">Abrir en WebView</string>\n    <string name=\"action_open_in_browser\">Abrir no navegador</string>\n    <string name=\"action_resume\">Continuar</string>\n    <string name=\"action_start\">Comezar</string>\n    <string name=\"action_remove\">Eliminar</string>\n    <string name=\"action_retry\">Reintentar</string>\n    <string name=\"action_next_chapter\">Capítulo seguinte</string>\n    <string name=\"action_previous_chapter\">Capítulo anterior</string>\n    <string name=\"action_pause\">Pausar</string>\n    <string name=\"action_view_chapters\">Ver capítulos</string>\n    <string name=\"action_edit_cover\">Editar portada</string>\n    <string name=\"action_move_category\">Establecer categorías</string>\n    <string name=\"action_rename_category\">Renomear categoría</string>\n    <string name=\"action_edit_categories\">Editar categorías</string>\n    <string name=\"action_add_category\">Engadir categoría</string>\n    <string name=\"action_add\">Engadir</string>\n    <string name=\"action_edit\">Editar</string>\n    <string name=\"action_disable_all\">Deshabilitar todos</string>\n    <string name=\"action_enable_all\">Habilitar todos</string>\n    <string name=\"action_update_library\">Actualizar biblioteca</string>\n    <string name=\"action_delete\">Eliminar</string>\n    <string name=\"action_remove_bookmark\">Quitar favorito</string>\n    <string name=\"action_bookmark\">Engadir favorito</string>\n    <string name=\"action_download\">Descargar</string>\n    <string name=\"action_mark_previous_as_read\">Marcar anteriores como lidos</string>\n    <string name=\"action_mark_as_unread\">Marcar como non lido</string>\n    <string name=\"action_mark_as_read\">Marcar como lido</string>\n    <string name=\"action_select_inverse\">Selección inversa</string>\n    <string name=\"action_select_all\">Seleccionar todos</string>\n    <string name=\"action_global_search\">Procura global</string>\n    <string name=\"action_search_settings\">Axustes de busca</string>\n    <string name=\"action_search\">Procurar</string>\n    <string name=\"action_sort_date_added\">Data de adición</string>\n    <string name=\"action_sort_latest_chapter\">Capítulo máis recente</string>\n    <string name=\"action_sort_last_read\">Último lido</string>\n    <string name=\"action_sort_total\">Capítulos totais</string>\n    <string name=\"action_sort_alpha\">Alfabeticamente</string>\n    <string name=\"action_filter_empty\">Quitar filtro</string>\n    <string name=\"action_filter_unread\">Non lidos</string>\n    <string name=\"action_filter_bookmarked\">Favoritos</string>\n    <string name=\"action_filter\">Filtro</string>\n    <string name=\"action_menu\">Menú</string>\n    <string name=\"action_settings\">Axustes</string>\n    <string name=\"history\">Historial</string>\n    <string name=\"track\">Seguimento</string>\n    <string name=\"chapters\">Capítulos</string>\n    <string name=\"categories\">Categorías</string>\n    <string name=\"information_empty_category\">Non tes categorías. Toca o botón cun máis para crear unha e organizar a túa biblioteca.</string>\n    <string name=\"information_empty_library\">A túa biblioteca está vacía</string>\n    <string name=\"browse\">Explorar</string>\n    <string name=\"information_no_recent_manga\">Non se leu nada recentemente</string>\n    <string name=\"information_no_recent\">Sen actualizacións recentes</string>\n    <string name=\"information_no_downloads\">Sen descargas</string>\n    <string name=\"label_help\">Axuda</string>\n    <string name=\"label_extension_info\">Información da extensión</string>\n    <string name=\"label_extensions\">Extensións</string>\n    <string name=\"label_migration\">Migrar</string>\n    <string name=\"label_backup\">Copia de seguridade e restauración</string>\n    <string name=\"manga\">Elementos da biblioteca</string>\n    <string name=\"chapter_not_found\">Capítulo non atopado</string>\n    <string name=\"completed\">Completado</string>\n    <string name=\"title\">Título</string>\n    <string name=\"licensed\">Licenciado</string>\n    <string name=\"unread\">Non lidos</string>\n    <string name=\"ongoing\">En curso</string>\n    <string name=\"unknown\">Descoñecido</string>\n    <string name=\"no_chapters_error\">Non se atoparon capítulos</string>\n    <string name=\"action_move_to_top_all_for_series\">Mover a serie ao primeiro posto</string>\n    <string name=\"action_start_downloading_now\">Comezar a descarga agora</string>\n    <string name=\"pref_app_theme\">Tema da aplicación</string>\n    <string name=\"pref_tracking_summary\">Sincronización unidireccional do progreso de lectura; sincronización mellorada</string>\n    <string name=\"pref_browse_summary\">Fontes, extensións, procura global</string>\n    <string name=\"pref_advanced_summary\">Envorcar os rexistros de erros, optimizacións de batería</string>\n    <string name=\"theme_tidalwave\">Maremoto</string>\n    <string name=\"relative_time_today\">Hoxe</string>\n    <string name=\"pref_update_only_completely_read\">Con capítulos sin ler</string>\n    <string name=\"pref_library_update_categories_details\">Os elementos das categorías excluídas non se actualizarán aínda se están tamén nas categorías incluídas.</string>\n    <string name=\"ext_info_version\">Versión</string>\n    <string name=\"ext_install_service_notif\">Instalando a extensión…</string>\n    <string name=\"ext_installer_legacy\">Clásico</string>\n    <string name=\"pref_show_navigation_mode\">Mostrar a superposición das zonas de toque</string>\n    <string name=\"pref_grayscale\">Escala de grises</string>\n    <string name=\"pref_inverted_colors\">Invertido</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_both\">Ambos</string>\n    <string name=\"pref_create_folder_per_manga\">Gardar as páxinas en cartafoles separados</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Crea cartafoles segundo o título dos elementos</string>\n    <string name=\"rotation_portrait\">Vertical</string>\n    <string name=\"rotation_landscape\">Horizontal</string>\n    <string name=\"split_tall_images_summary\">Mellora o rendemento do lector</string>\n    <string name=\"website\">Páxina web</string>\n    <string name=\"confirm_set_chapter_settings\">Estás seguro de querer gardar estes axustes como por defecto?</string>\n    <string name=\"picture_saved\">Imaxe gardada</string>\n    <string name=\"pref_restore_backup\">Restaurar a copia de seguridade</string>\n    <string name=\"pref_backup_interval\">Frecuencia das copias de seguridade</string>\n    <string name=\"backup_restore_missing_sources\">Fontes faltantes:</string>\n    <string name=\"pref_invalidate_download_cache\">Reconstruír o índice de descargas</string>\n    <string name=\"pref_dump_crash_logs_summary\">Garda os rexistros de erros nun ficheiro para compartilo cos desenvolvedores</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Fai que funcionen mellor as actualizacións e as copias de seguridade que se fagan en segundo plano</string>\n    <string name=\"check_for_updates\">Procurar actualizacións</string>\n    <string name=\"licenses\">Licenzas de código aberto</string>\n    <string name=\"privacy_policy\">Política de privacidade</string>\n    <string name=\"updated_version\">Actualizado a v%1$s</string>\n    <string name=\"pref_acra_summary\">Axuda a corrixir os erros. Non se enviará ningunha información sensíbel</string>\n    <string name=\"notification_incognito_text\">Desactivar o modo incógnito</string>\n    <string name=\"login\">Iniciar sesión</string>\n    <string name=\"downloaded_chapters\">Capítulos descargados</string>\n    <string name=\"manga_from_library\">Da biblioteca</string>\n    <string name=\"delete_category\">Eliminar categoría</string>\n    <string name=\"enhanced_services_not_installed\">Dispoñible, mais a fonte non se instalou: %s</string>\n    <string name=\"pinned_sources\">Fixados</string>\n    <string name=\"pref_library_update_show_tab_badge\">Amosar o número de capítulos por ler na icona de actualizacións</string>\n    <string name=\"exclude\">Excluír: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Saltar os capítulos duplicados</string>\n    <string name=\"auto_download_while_reading\">Descargar automaticamente durante a lectura</string>\n    <string name=\"download_ahead_info\">Só funciona con elementos da biblioteca e se o capítulo actual e o seguinte xa están descargados.</string>\n    <string name=\"restore_completed\">Restauración completada</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d seg</string>\n    <string name=\"backup_choice\">De que queres facer unha copia de seguridade?</string>\n    <string name=\"missing_storage_permission\">Non se concederon os permisos de almacenamento</string>\n    <string name=\"empty_backup_error\">Ningún elemento na biblioteca co que facer a copia de seguridade</string>\n    <string name=\"backup_info\">Deberías gardar duplicados das copias de seguridade fora do teu dispositivo.</string>\n    <string name=\"pref_clear_cookies\">Limpar cookies</string>\n    <string name=\"pref_user_agent_string\">Nome do axente de usuario (\\\"user agent\\\") por defecto</string>\n    <string name=\"error_user_agent_string_blank\">O axente de usuario non pode estar vacío</string>\n    <string name=\"used_cache\">Usado: %1$s</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Borrar a caché dos capítulos ao pechar a aplicación</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Non se puideron abrir os axustes do dispositivo</string>\n    <string name=\"pref_enable_acra\">Enviar informes de erros</string>\n    <string name=\"tabs_header\">Lapelas</string>\n    <string name=\"no_more_results\">Non hai máis resultados</string>\n    <string name=\"last_used_source\">Usado recentemente</string>\n    <string name=\"latest\">Máis recente</string>\n    <string name=\"add_to_library\">Engadir á biblioteca</string>\n    <string name=\"custom_cover\">Portada personalizada</string>\n    <string name=\"confirm_delete_chapters\">Estás seguro de querer eliminar os capítulos seleccionados?</string>\n    <string name=\"chapter_settings\">Axustes de capítulo</string>\n    <string name=\"paused\">Pausado</string>\n    <string name=\"manga_cover\">Portada</string>\n    <string name=\"cover_saved\">Portada gardada</string>\n    <string name=\"delete_category_confirmation\">Queres eliminar a categoría \\\"%s\\\"?</string>\n    <string name=\"action_desc\">Descendente</string>\n    <string name=\"action_asc\">Ascendente</string>\n    <string name=\"pref_dual_page_invert_summary\">Se a separación das páxinas anchas non coincide coa dirección de lectura</string>\n    <string name=\"pref_hide_threshold\">Sensibilidade para ocultar o menú ao desprazarse</string>\n    <string name=\"fifth_to_last\">Quinto capítulo lido antes do último</string>\n    <string name=\"pref_download_new\">Descargar capítulos novos</string>\n    <string name=\"username\">Nome de usuario</string>\n    <string name=\"error_saving_cover\">Erro ao gardar a portada</string>\n    <string name=\"invalid_location\">Localización non válida: %s</string>\n    <string name=\"third_to_last\">Antepenúltimo capítulo lido</string>\n    <string name=\"pref_download_new_categories_details\">Os elementos das categorías excluídas non se descargarán, aínda se están en categorías incluídas.</string>\n    <string name=\"pref_low\">Baixa</string>\n    <string name=\"creating_backup\">Creando a copia de seguridade</string>\n    <string name=\"pref_library_summary\">Categorías, actualización global, accións ao arrastrar</string>\n    <string name=\"pref_reader_summary\">Modo de lectura, aparencia e navegación</string>\n    <string name=\"pref_downloads_summary\">Baixadas automáticas e por adiantado</string>\n    <string name=\"pref_backup_summary\">Copias de seguridade manuais e automáticas</string>\n    <string name=\"pref_security_summary\">Bloqueo da aplicación e modo discreto</string>\n    <string name=\"pref_update_only_started\">Que non foran comezadas</string>\n    <string name=\"ext_update_all\">Actualizar todo</string>\n    <string name=\"tracking_info\">Sincronización unidireccional para actualizar o progreso dos capítulos en servizos de seguimento externos. Configúraa na biblioteca, dende o botón de seguimento de cada elemento.</string>\n    <string name=\"action_track\">Seguir</string>\n    <string name=\"clear_database_source_item_count\">Hai %1$d elementos na base de datos que non están na biblioteca</string>\n    <string name=\"version\">Versión</string>\n    <string name=\"pref_show_navigation_mode_summary\">Mostrar brevemente ao abrir o lector</string>\n    <string name=\"label_default\">Por defecto</string>\n    <string name=\"label_stats\">Estatísticas</string>\n    <string name=\"label_started\">Comezados</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_downloaded\">Descargados</string>\n    <string name=\"pref_app_language\">Idioma da aplicación</string>\n    <string name=\"internal_error\">ErroInterno: Revisa o rexistro de erros para máis información</string>\n    <string name=\"ext_app_info\">Información da aplicación</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku non se está executando</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instala e inicia Shizuku para utilizalo como instalador de extensións.</string>\n    <string name=\"automatic_background\">Automático</string>\n    <string name=\"l_nav\">En forma de L</string>\n    <string name=\"pref_navigate_pan\">Desprazarse polas imaxes anchas</string>\n    <string name=\"pref_auto_update_manga_sync\">Actualizar o progreso ao rematar a lectura</string>\n    <string name=\"services\">Servizos de seguimento</string>\n    <string name=\"restoring_backup_canceled\">Cancelouse a restauración</string>\n    <string name=\"label_network\">Rede</string>\n    <string name=\"password\">Contrasinal</string>\n    <string name=\"fdroid_warning\">As versións de F-Droid non teñen soporte oficial.\n\\nPreme para saber máis.</string>\n    <string name=\"login_success\">Conectado</string>\n    <string name=\"ext_info_age_rating\">Clasificación por idades</string>\n    <string name=\"enhanced_services\">Servizos de seguimento mellorados</string>\n    <string name=\"enhanced_tracking_info\">Estes servizos proporcionan funcións melloradas para fontes concretas. Faise un seguimento automático dos elementos ao engadilos á biblioteca.</string>\n    <string name=\"backup_in_progress\">Xa se está facendo unha copia de seguridade</string>\n    <string name=\"pref_dump_crash_logs\">Compartir os rexistros de erros</string>\n    <string name=\"error_sharing_cover\">Error ao compartir a portada</string>\n    <string name=\"cache_delete_error\">Produciuse un erro ao borrar</string>\n    <string name=\"multi_lang\">Varios idiomas</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"nav_zone_left\">Esquerda</string>\n    <string name=\"pref_landscape_zoom\">Ampliar a imaxe en horizontal</string>\n    <string name=\"backup_restore_content_full\">Pode ser que debas instalar as extensións que falten e iniciar sesión nos servizos de seguimento para usalos.</string>\n    <string name=\"label_data\">Datos</string>\n    <string name=\"pref_reset_viewer_flags_success\">Restableceuse a configuración do lector</string>\n    <string name=\"logout_title\">Pechar a sesión en %1$s?</string>\n    <string name=\"logout_success\">Pechouse a sesión</string>\n    <string name=\"publishing_finished\">Publicación rematada</string>\n    <string name=\"cancelled\">Cancelada</string>\n    <string name=\"set_chapter_settings_as_default\">Establecer por defecto</string>\n    <string name=\"none\">Ningún</string>\n    <string name=\"second_to_last\">Penúltimo capítulo lido</string>\n    <string name=\"pref_category_auto_download\">Descarga automática</string>\n    <string name=\"pref_create_backup\">Crear unha copia de seguridade</string>\n    <string name=\"creating_backup_error\">Non se puido facer a copia de seguridade</string>\n    <string name=\"pref_refresh_library_covers\">Actualizar as portadas da biblioteca</string>\n    <string name=\"invalid_backup_file\">O arquivo da copia de seguridade non é válido:</string>\n    <string name=\"invalid_backup_file_missing_manga\">A copia de seguriade non contén ningún elemento da biblioteca.</string>\n    <string name=\"pref_dns_over_https\">DNS por HTTPS (DoH)</string>\n    <string name=\"update_72hour\">Cada 3 días</string>\n    <string name=\"downloaded_only_summary\">Filtra tódolos elementos da túa biblioteca</string>\n    <string name=\"snack_add_to_library\">Engadir á biblioteca?</string>\n    <string name=\"description_placeholder\">Sen descripción</string>\n    <string name=\"status\">Estado</string>\n    <string name=\"restore_miui_warning\">É posible que as opcións de copia de seguridade e de restauración non funcionen correctamente se a \\\"Optimización de MIUI\\\" está desactivada.</string>\n    <string name=\"error_user_agent_string_invalid\">Axente de usuario non válido</string>\n    <string name=\"pref_reset_user_agent_string\">Restablecer o axente de usuario</string>\n    <string name=\"edge_nav\">Marxe</string>\n    <string name=\"database_clean\">Non hai nada que borrar</string>\n    <string name=\"pref_clear_webview_data\">Borrar os datos do WebView</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Restablecer o modo de lectura e a orientación de tódalas series</string>\n    <string name=\"action_sort_unread_count\">Número de non lidos</string>\n    <string name=\"action_show_manga\">Mostrar o elemento</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data de obtención dos capítulos</string>\n    <string name=\"label_warning\">Advertencia</string>\n    <string name=\"confirm_lock_change\">Identifícate para confirmar o cambio</string>\n    <string name=\"action_display_local_badge\">Fonte local</string>\n    <string name=\"action_remove_everything\">Quitar todo</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverter as zonas de toque</string>\n    <string name=\"nav_zone_right\">Dereita</string>\n    <string name=\"tracking_guide\">Guía de seguimento</string>\n    <string name=\"on_hiatus\">En pausa</string>\n    <string name=\"action_order_by_chapter_number\">Por número de capítulo</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_monet\">Dinámico</string>\n    <string name=\"theme_greenapple\">Mazá verde</string>\n    <string name=\"theme_midnightdusk\">Crepúsculo de medianoite</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri de amorodo</string>\n    <string name=\"theme_tealturquoise\">Azul mariño e turquesa</string>\n    <string name=\"theme_yinyang\">Yin e Yang</string>\n    <string name=\"pref_dark_theme_pure_black\">Modo negro puro</string>\n    <string name=\"include\">Incluír: %s</string>\n    <string name=\"extension_api_error\">Non se puido obter as extensións dispoñibles</string>\n    <string name=\"pref_clear_database\">Borrar a base de datos</string>\n    <string name=\"nav_zone_prev\">Anterior</string>\n    <string name=\"connected_to_wifi\">Só con Wi-Fi</string>\n    <string name=\"network_not_metered\">Só en conexións ilimitadas</string>\n    <string name=\"webview_data_deleted\">Borráronse os datos do WebView</string>\n    <string name=\"action_global_search_hint\">Procura global…</string>\n    <string name=\"action_sort_last_manga_update\">Última comprobación de actualizacións</string>\n    <string name=\"action_sort_count\">Número total de entradas</string>\n    <string name=\"action_not_now\">Agora non</string>\n    <string name=\"kindlish_nav\">Estilo Kindle</string>\n    <string name=\"right_and_left_nav\">Dereita e esquerda</string>\n    <string name=\"disabled_nav\">Desactivado</string>\n    <string name=\"unknown_author\">Autor descoñecido</string>\n    <string name=\"local_filter_order_by\">Ordenar por</string>\n    <string name=\"logout\">Pechar sesión</string>\n    <string name=\"no_results_found\">Non se atoparon resultados</string>\n    <string name=\"plan_to_read\">Pendente de ler</string>\n    <string name=\"action_search_hint\">Procurar…</string>\n    <string name=\"action_display_language_badge\">Idioma</string>\n    <string name=\"action_display_cover_only_grid\">Cuadrícula con só portadas</string>\n    <string name=\"date\">Data</string>\n    <string name=\"popular\">Popular</string>\n    <string name=\"action_open_random_manga\">Abrir un elemento ao azar</string>\n    <string name=\"nav_zone_next\">Seguinte</string>\n    <string name=\"rotation_type\">Tipo de rotación</string>\n    <string name=\"pref_lowest\">A máis baixa</string>\n    <string name=\"ext_info_language\">Idioma</string>\n    <string name=\"ext_installer_pref\">Instalador</string>\n    <string name=\"on\">Activado</string>\n    <string name=\"off\">Desactivado</string>\n    <string name=\"action_filter_tracked\">En seguimento</string>\n    <string name=\"pref_viewer_nav\">Zonas de toque</string>\n    <string name=\"rotation_reverse_portrait\">Vertical inverso</string>\n    <string name=\"clear_database_completed\">Borráronse as entradas</string>\n    <string name=\"pref_reset_viewer_flags_error\">Non se puido restablecer a configuración do lector</string>\n    <string name=\"label_background_activity\">Actividade en segundo plano</string>\n    <string name=\"pref_tablet_ui_mode\">Interface de tableta</string>\n    <string name=\"pref_verbose_logging\">Rexistro detallado</string>\n    <string name=\"label_downloaded_only\">Só os descargados</string>\n    <string name=\"pref_incognito_mode\">Modo incógnito</string>\n    <string name=\"pref_incognito_mode_summary\">Pausar o historial de lectura</string>\n    <string name=\"email\">Correo electrónico</string>\n    <string name=\"in_library\">Na biblioteca</string>\n    <string name=\"unknown_title\">Título descoñecido</string>\n    <string name=\"action_close\">Pechar</string>\n    <string name=\"pref_appearance_summary\">Tema, formatos de data e hora</string>\n    <string name=\"pref_category_appearance\">Aparencia</string>\n    <string name=\"action_display_show_continue_reading_button\">Botón de seguir lendo</string>\n    <string name=\"action_display_show_number_of_items\">Mostrar o número de elementos</string>\n    <string name=\"cancel_all_for_series\">Cancelar todo para esta serie</string>\n    <string name=\"action_order_by_upload_date\">Por data de subida</string>\n    <string name=\"action_show_errors\">Preme para ver os detalles do erro</string>\n    <string name=\"restrictions\">Restricións: %s</string>\n    <string name=\"categorized_display_settings\">Opcións de ordenación e visualización por categoría</string>\n    <string name=\"pref_dual_page_split\">Separar as páxinas anchas</string>\n    <string name=\"pref_dual_page_invert\">Inverter a posición das páxinas separadas</string>\n    <string name=\"tapping_inverted_none\">Non</string>\n    <string name=\"pref_reader_actions\">Accións</string>\n    <string name=\"pref_highest\">A máis alta</string>\n    <string name=\"pref_remove_exclude_categories\">Categorías excluídas</string>\n    <string name=\"pref_high\">Alta</string>\n    <string name=\"fourth_to_last\">Anterior ao antepenúltimo capítulo lido</string>\n    <string name=\"download_ahead\">Descargar por adiantado</string>\n    <string name=\"save_chapter_as_cbz\">Gardar como arquivo CBZ</string>\n    <string name=\"pref_create_backup_summ\">Pode usarse para restaurar a biblioteca actual</string>\n    <string name=\"pref_restore_backup_summ\">Restaurar a biblioteca dende unha copia de seguridade</string>\n    <string name=\"backup_created\">Creouse a copia de seguridade</string>\n    <string name=\"restoring_backup_error\">Fallou a restauración da copia de seguridade</string>\n    <string name=\"backup_restore_missing_trackers\">Servizos de seguimento sen conectar:</string>\n    <string name=\"restoring_backup\">Restaurando a copia de seguridade</string>\n    <string name=\"restore_in_progress\">Xa se está facendo a restauración</string>\n    <string name=\"pref_clear_database_summary\">Borrar o historial dos elementos que non estean gardados na túa biblioteca</string>\n    <string name=\"cookies_cleared\">Cookies borradas</string>\n    <string name=\"pref_clear_chapter_cache\">Borrar a caché dos capítulos</string>\n    <string name=\"cache_deleted\">Borrouse a caché. Elimináronse %1$d ficheiros</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Forzar á aplicación a comprobar de novo os capítulos descargados</string>\n    <string name=\"pref_reset_viewer_flags\">Restablecer os axustes do lector en cada serie</string>\n    <string name=\"pref_disable_battery_optimization\">Desactivar a optimización de batería</string>\n    <string name=\"battery_optimization_disabled\">A optimización de batería xa está desactivada</string>\n    <string name=\"about_dont_kill_my_app\">Algúns fabricantes teñen restricións adicionais para as aplicacións que causan a detención dos servizos en segundo plano. Esta páxina web ten máis información sobre como arranxalo.</string>\n    <string name=\"pref_verbose_logging_summary\">Amosar rexistros detallados no rexistro do sistema (diminúe o rendemento da aplicación)</string>\n    <string name=\"whats_new\">Novidades</string>\n    <string name=\"help_translate\">Axudar coa tradución</string>\n    <string name=\"login_title\">Iniciar sesión en %1$s</string>\n    <string name=\"updating_category\">Actualizando a categoría</string>\n    <string name=\"unknown_error\">Erro descoñecido</string>\n    <string name=\"also_set_chapter_settings_for_library\">Aplicar tamén a tódolos elementos da miña biblioteca</string>\n    <string name=\"chapter_paused\">En pausa</string>\n    <string name=\"show_title\">Título da fonte</string>\n    <string name=\"sort_by_number\">Por número de capítulo</string>\n    <string name=\"manga_download\">Descargar</string>\n    <string name=\"track_finished_reading_date\">Data de finalización</string>\n    <string name=\"track_remove_date_conf_title\">Queres eliminar a data?</string>\n    <string name=\"track_started_reading_date\">Data de comezo</string>\n    <string name=\"decode_image_error\">Non se puido cargar a imaxe</string>\n    <string name=\"transition_no_previous\">Non hai ningún capítulo anterior</string>\n    <string name=\"page_list_empty_error\">Non se atopou ningunha páxina</string>\n    <string name=\"download_queue_error\">Non foi posible descargar os capítulos. Podes tentar de novo na sección de descargas</string>\n    <string name=\"download_insufficient_space\">Non se puideron descargar os capítulos por falta de espazo de almacenamento</string>\n    <string name=\"notification_chapters_single\">Capítulo %1$s</string>\n    <string name=\"skipped_reason_completed\">Omitiuse porque a serie está rematada</string>\n    <string name=\"information_webview_outdated\">Actualiza a aplicación de WebView para mellorar a compatibilidade</string>\n    <string name=\"information_no_manga_category\">A categoría está baleira</string>\n    <string name=\"getting_started_guide\">Guía de introdución</string>\n    <string name=\"information_cloudflare_bypass_failure\">Non se puido evitar Cloudflare</string>\n    <string name=\"appwidget_unavailable_locked\">O widget non está dispoñible cando está activo o bloqueo da aplicación</string>\n    <string name=\"update_already_running\">Xa se está a actualizar</string>\n    <string name=\"chapter_downloading_progress\">Descargando (%1$d/%2$d)</string>\n    <string name=\"download_unread\">Non lidos</string>\n    <string name=\"track_remove_start_date_conf_text\">Isto eliminará a data de comezo seleccionada de %s</string>\n    <string name=\"spen_next_page\">Páxina seguinte</string>\n    <string name=\"migrate\">Migrar</string>\n    <string name=\"manga_removed_library\">Eliminado da biblioteca</string>\n    <string name=\"manga_info_expand\">Máis</string>\n    <string name=\"copied_to_clipboard_plain\">Copiado ao portapapeis</string>\n    <string name=\"display_mode_chapter\">Capítulo %1$s</string>\n    <string name=\"chapter_error\">Erro</string>\n    <string name=\"wish_list\">Para ler máis adiante</string>\n    <string name=\"track_remove_finish_date_conf_text\">Isto eliminará a data de finalización de %s</string>\n    <string name=\"custom_filter\">Filtro personalizado</string>\n    <string name=\"pref_category_for_this_series\">Para esta serie</string>\n    <string name=\"label_completed_titles\">Elementos rematados</string>\n    <string name=\"not_applicable\">Non dispoñible</string>\n    <string name=\"notification_size_warning\">As actualizacións grandes perxudican ás fontes e poden supoñer actualizacións máis lentas e un maior uso da batería. Preme para saber máis.</string>\n    <string name=\"notification_new_chapters\">Encontráronse capítulos novos</string>\n    <string name=\"notification_first_add_to_library\">Engade o elemento a túa biblioteca antes de facer isto</string>\n    <string name=\"download_notifier_unknown_error\">Non se puido descargar o capítulo por un erro inesperado</string>\n    <string name=\"sort_by_source\">Por fonte</string>\n    <string name=\"transition_current\">Actual:</string>\n    <string name=\"transition_next\">Seguinte:</string>\n    <string name=\"copied_to_clipboard\">Copiado ao portapapeis:\n\\n%1$s</string>\n    <string name=\"clipboard_copy_error\">Non se puido copiar ao portapapeis</string>\n    <string name=\"complete_list\">Lista de rematados</string>\n    <string name=\"score\">Puntuación</string>\n    <string name=\"track_status\">Estado</string>\n    <string name=\"track_type\">Tipo</string>\n    <string name=\"source_unsupported\">Fonte non soportada</string>\n    <string name=\"updates_last_update_info_just_now\">Agora mesmo</string>\n    <string name=\"information_no_entries_found\">Non se atoparon elementos nesta categoría</string>\n    <string name=\"manga_added_library\">Engadido á biblioteca</string>\n    <string name=\"dropped\">Abandonado</string>\n    <string name=\"on_hold_list\">Lista de en espera</string>\n    <string name=\"label_overview_section\">Resumo</string>\n    <string name=\"label_titles_section\">Elementos</string>\n    <string name=\"label_tracker_section\">Servizos de seguimento</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"channel_ext_updates\">Actualizacións das extensións</string>\n    <string name=\"local_source\">Fonte local</string>\n    <string name=\"manga_tracking_tab\">En seguimento</string>\n    <string name=\"reading\">Lendo</string>\n    <string name=\"download_notifier_text_only_wifi\">Non hai ningunha conexión Wi-Fi dispoñible</string>\n    <string name=\"crash_screen_description\">%s pechouse por un problema inesperado. Aconsellámoste que compartas os rexistros de erros na canle de soporte no Discord (en inglés).</string>\n    <string name=\"crash_screen_restart_application\">Reinicia a aplicación</string>\n    <string name=\"source_filter_empty_screen\">Non se atopou ninguna fonte instalada</string>\n    <string name=\"download_queue_size_warning\">Advertencia: As descargas pesadas poden facer que as fontes se volvan máis lentas e/ou bloqueen %s. Preme para saber máis.</string>\n    <string name=\"update_check_open\">Abrir no GitHub</string>\n    <string name=\"download_notifier_downloader_title\">Xestor de descargas</string>\n    <string name=\"download_notifier_title_error\">Erro</string>\n    <string name=\"download_notifier_download_paused\">Descargas en pausa</string>\n    <string name=\"update_check_notification_download_complete\">Preme para instalar a actualización</string>\n    <string name=\"channel_progress\">Progreso</string>\n    <string name=\"update_check_notification_download_error\">Erro na descarga</string>\n    <string name=\"manga_info_collapse\">Menos</string>\n    <string name=\"delete_downloads_for_manga\">Eliminar os capítulos descargados?</string>\n    <string name=\"on_hold\">En espera</string>\n    <string name=\"transition_previous\">Anterior:</string>\n    <string name=\"transition_no_next\">Non hai ningún capítulo máis</string>\n    <string name=\"transition_pages_error\">Non se puideron cargar as páxinas: %1$s</string>\n    <string name=\"loader_not_implemented_error\">Non se atopou a fonte</string>\n    <string name=\"label_used\">En uso</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"library_errors_help\">Se necesitas axuda para arranxar os erros de actualización da biblioteca, consulta %1$s</string>\n    <string name=\"skipped_reason_not_caught_up\">Oimitiuse porque hai capítulos sin ler</string>\n    <string name=\"update_check_eol\">Esta versión de Android xa non ten soporte</string>\n    <string name=\"download_notifier_no_network\">Non hai ningunha conexión de rede dispoñible</string>\n    <string name=\"remove_from_library\">Eliminar da biblioteca</string>\n    <string name=\"chapter_settings_updated\">Actualizáronse os axustes por defecto dos capítulos</string>\n    <string name=\"appwidget_updates_description\">Ver os elementos da biblioteca actualizados recentemente</string>\n    <string name=\"remove_manga\">Vas eliminar \\\"%s\\\" da túa biblioteca</string>\n    <string name=\"no_next_chapter\">Non se atopou a o capítulo seguinte</string>\n    <string name=\"transition_pages_loading\">Cargando páxinas…</string>\n    <string name=\"transition_finished\">Rematado:</string>\n    <string name=\"chapter_progress\">Páxina: %1$d</string>\n    <string name=\"error_saving_picture\">Produciuse un erro ao gardar a imaxe</string>\n    <string name=\"notification_update_error\">Actualizacións erradas: %1$d</string>\n    <string name=\"update_check_confirm\">Descargar</string>\n    <string name=\"channel_app_updates\">Actualizacións da aplicación</string>\n    <string name=\"learn_more\">Preme para saber máis</string>\n    <string name=\"notification_cover_update_failed\">Erro ao actualizar a portada</string>\n    <string name=\"show_chapter_number\">Número do capítulo</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Non se atopou a ruta do ficheiro da páxina %d</string>\n    <string name=\"channel_complete\">Rematada</string>\n    <string name=\"channel_new_chapters\">Actualizacións de capítulos</string>\n    <string name=\"information_webview_required\">Mihon necesita WebView</string>\n    <string name=\"download_notifier_split_page_not_found\">Non se atopou a páxina %d ao separar</string>\n    <string name=\"channel_common\">Xeral</string>\n    <string name=\"crash_screen_title\">Vaia!</string>\n    <string name=\"download_notifier_cache_renewal\">Comprobando as descargas</string>\n    <string name=\"repeating\">Relendo</string>\n    <string name=\"local_source_help_guide\">Guía de fonte local</string>\n    <string name=\"no_pinned_sources\">Non tes ningunha fonte fixada</string>\n    <string name=\"local_invalid_format\">Formato de capítulo non válido</string>\n    <string name=\"set_as_cover\">Usar como portada</string>\n    <string name=\"cover_updated\">Portada actualizada</string>\n    <string name=\"share_page_info\">%1$s: %2$s, páxina %3$d</string>\n    <string name=\"sort_by_upload_date\">Por data de subida</string>\n    <string name=\"minute_short\">%dmin</string>\n    <string name=\"add_tracking\">Engadir seguimento</string>\n    <string name=\"pref_clear_history\">Eliminar o historial</string>\n    <string name=\"clear_history_completed\">Eliminouse o historial</string>\n    <string name=\"source_empty_screen\">Non se atopou ningunha fonte</string>\n    <string name=\"migration_help_guide\">Guía de migración de fontes</string>\n    <string name=\"migration_dialog_what_to_include\">Escoller os datos a incluír</string>\n    <string name=\"migration_selection_prompt\">Escoller unha fonte da que migrar</string>\n    <string name=\"copy\">Copiar</string>\n    <string name=\"empty_screen\">Houston, temos un problema</string>\n    <string name=\"not_installed\">Non instalado</string>\n    <string name=\"label_read_duration\">Tempo de lectura</string>\n    <string name=\"label_titles_in_global_update\">Na actualización global</string>\n    <string name=\"label_total_chapters\">Totais</string>\n    <string name=\"update_check_notification_download_in_progress\">Descargando…</string>\n    <string name=\"information_empty_category_dialog\">Aínda non tes categorías.</string>\n    <string name=\"information_required_plain\">*necesario</string>\n    <string name=\"spen_previous_page\">Páxina anterior</string>\n    <string name=\"reading_list\">Lista de lectura</string>\n    <string name=\"are_you_sure\">Estás seguro?</string>\n    <string name=\"other_source\">Outros</string>\n    <string name=\"unknown_status\">Estado descoñecido</string>\n    <string name=\"source_not_installed\">Fonte non instalada: %1$s</string>\n    <string name=\"track_error\">Erro %1$s: %2$s</string>\n    <string name=\"snack_categories_deleted\">Categorías eliminadas</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Isto eliminará a data de lectura deste capítulo. Estás seguro?</string>\n    <string name=\"unfinished_list\">Lista de inacabados</string>\n    <string name=\"error_no_match\">Non se atoparon coincidencias</string>\n    <string name=\"confirm_set_image_as_cover\">Queres usar esta imaxe como portada?</string>\n    <string name=\"error_category_exists\">Xa hai unha categoría con este nome!</string>\n    <string name=\"dialog_with_checkbox_reset\">Reiniciar tódolos capítulos deste elemento</string>\n    <string name=\"viewer\">Modo de lectura</string>\n    <string name=\"updating_library\">Actualizando a biblioteca</string>\n    <string name=\"updates_last_update_info\">Última actualización da biblioteca: %s</string>\n    <string name=\"recent_manga_time\">Cap. %1$s - %2$s</string>\n    <string name=\"clear_history_confirmation\">Estás seguro? Perderás o historial.</string>\n    <string name=\"cant_open_last_read_chapter\">Non se puido abrir o último capítulo lido</string>\n    <string name=\"label_read_chapters\">Lidos</string>\n    <string name=\"seconds_short\">%dseg</string>\n    <string name=\"label_tracked_titles\">Elementos en seguimento</string>\n    <string name=\"label_mean_score\">Puntuación media</string>\n    <string name=\"skipped_reason_not_started\">Omitiuse porque non hai capítulos lidos</string>\n    <string name=\"notification_chapters_single_and_more\">Capítulo %1$s e %2$d máis</string>\n    <string name=\"notification_chapters_multiple\">Capítulos %1$s</string>\n    <string name=\"skipped_reason_not_always_update\">Omitiuse porque esta serie non require actualizarse</string>\n    <string name=\"file_select_cover\">Elexir a imaxe de portada</string>\n    <string name=\"file_select_backup\">Elexir o ficheiro da copia de seguridade</string>\n    <string name=\"update_check_no_new_updates\">Non hai novas actualizacións dispoñibles</string>\n    <string name=\"update_check_notification_update_available\">Nova versión dispoñible!</string>\n    <string name=\"channel_errors\">Erros</string>\n    <string name=\"action_global_search_query\">Procurar \\\"%1$s\\\" globalmente</string>\n    <string name=\"split_tall_images\">Dividir as imaxes altas</string>\n    <string name=\"action_update_category\">Actualizar categoría</string>\n    <string name=\"pref_hide_in_library_items\">Ocultar elementos que xa estén na biblioteca</string>\n    <string name=\"action_copy_to_clipboard\">Copiar ao portapapeis</string>\n    <string name=\"pref_page_rotate\">Xirar as páxinas anchas para adaptalas á pantalla</string>\n    <string name=\"pref_page_rotate_invert\">Voltear a orientación das páxinas anchas xiradas</string>\n    <string name=\"overlay_header\">Superposición</string>\n    <string name=\"pref_chapter_swipe_start\">Acción de arrastrar á esquerda</string>\n    <string name=\"pref_double_tap_zoom\">Amplía dando dous toques na pantalla</string>\n    <string name=\"pref_chapter_swipe_end\">Acción de arrastrar á dereita</string>\n    <string name=\"pref_debug_info\">Información de depuración</string>\n    <string name=\"selected\">Seleccionado</string>\n    <string name=\"not_selected\">Non seleccionado</string>\n    <string name=\"action_set_interval\">Establecer intervalo</string>\n    <string name=\"exception_unknown_host\">Non se puido acceder a %s</string>\n    <string name=\"exception_offline\">Sen conexión a Internet</string>\n    <string name=\"onboarding_description\">Primeiro hai que configurar algunhas cousas. Sempre podes modificalas nos axustes.</string>\n    <string name=\"onboarding_action_next\">Seguinte</string>\n    <string name=\"onboarding_storage_selection_required\">Debes elexir un cartafol</string>\n    <string name=\"onboarding_storage_help_action\">Guía de almacenamento</string>\n    <string name=\"onboarding_storage_help_info\">Actualizaches dende unha versión máis antiga e non sabes que elixir? Bótalle unha ollada á guía de almacenamento.</string>\n    <string name=\"theme_nord\">Nórdico</string>\n    <string name=\"pref_relative_format\">Marcas de tempo relativas</string>\n    <string name=\"pref_library_update_smart_update\">Actualizacións intelixentes</string>\n    <string name=\"action_add_repo\">Engadir un repositorio</string>\n    <string name=\"action_add_repo_message\">Engade máis repositorios a %s. Debe ser unha dirección URL que remate en \\\"index.min.json\\\".</string>\n    <string name=\"action_delete_repo\">Borrar repositorio</string>\n    <string name=\"invalid_repo_name\">A dirección URL do repositorio non é válida</string>\n    <string name=\"delete_repo_confirmation\">Queres eliminar o repositorio \\\"%s\\\"?</string>\n    <string name=\"track_activity_name\">Iniciar sesión no servizo de seguimento</string>\n    <string name=\"pref_storage_location\">Ubicación do almacenamento</string>\n    <string name=\"action_filter_interval_custom\">Frecuencia de actualización personalizada</string>\n    <string name=\"action_sort_tracker_score\">Puntuación do servizo de seguimento</string>\n    <string name=\"action_menu_overflow_description\">Máis opcións</string>\n    <string name=\"delete_downloaded\">Borrar os descargados</string>\n    <string name=\"scanlator\">Equipo de tradución</string>\n    <string name=\"label_data_storage\">Datos e almacenamento</string>\n    <string name=\"unlock_app_title\">Desbloquear %s</string>\n    <string name=\"action_sort_next_updated\">Próxima actualización prevista</string>\n    <string name=\"action_apply\">Aplicar</string>\n    <string name=\"action_ok\">Aceptar</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Mover ao último posto</string>\n    <string name=\"action_revert_to_default\">Restablecer os axustes por defecto</string>\n    <string name=\"pref_onboarding_guide\">Guía de benvida</string>\n    <string name=\"onboarding_heading\">Dámosche a benvida!</string>\n    <string name=\"onboarding_action_finish\">Comecemos</string>\n    <string name=\"onboarding_action_skip\">Omitir</string>\n    <string name=\"onboarding_storage_info\">Elixe o cartafol onde %1$s almacenará os capítulos descargados, as copias de seguridade e máis.\n\\n\n\\nRecoméndase usar un cartafol dedicado.\n\\n\n\\nElixir cartafol: %2$s</string>\n    <string name=\"onboarding_storage_action_select\">Elixe un cartafol</string>\n    <string name=\"onboarding_permission_install_apps\">Permiso para instalar aplicacións</string>\n    <string name=\"onboarding_permission_install_apps_description\">Para instalar as extensións das fontes.</string>\n    <string name=\"onboarding_permission_notifications\">Pemiso para amosar notificacións</string>\n    <string name=\"onboarding_permission_notifications_description\">Recibe notificacións cando se actualice a biblioteca e máis cousas.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Uso de batería en segundo plano</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Evita as interrupcións nas actualizacións da biblioteca, nas descargas e na restauración de copias de seguridade que tarden un anaco.</string>\n    <string name=\"onboarding_permission_action_grant\">Permitir</string>\n    <string name=\"onboarding_guides_new_user\">Primeira vez usando %s? Recomendámosche ler a guía de introdución.</string>\n    <string name=\"onboarding_guides_returning_user\">Volvendo instalar %s?</string>\n    <string name=\"pref_relative_format_summary\">«%1$s» en lugar de «%2$s»</string>\n    <string name=\"pref_update_only_in_release_period\">Predicir cando sae o seguinte capítulo</string>\n    <string name=\"ext_permission_install_apps_warning\">Preme aquí para conceder os permisos para instalar extensións.</string>\n    <string name=\"ext_revoke_trust\">Revogar as extensións de confianza de orixe descoñecida</string>\n    <string name=\"label_extension_repos\">Repositorios de extensións</string>\n    <string name=\"information_empty_repos\">Aínda non engadiches ningún repositorio.</string>\n    <string name=\"label_add_repo_input\">Dirección URL do repositorio</string>\n    <string name=\"error_repo_exists\">Este repositorio xa existe!</string>\n    <string name=\"action_open_repo\">Abrir o repositorio</string>\n    <string name=\"pref_flash_page\">Tremelucir ao cambiar de páxina</string>\n    <string name=\"pref_flash_page_summ\">Reducir o efecto de retención de imaxe nas pantallas de tinta electrónica</string>\n    <string name=\"no_location_set\">Aínda non seleccionaches ningunha localización de almacenamento</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Desactivar redución de zoom</string>\n    <string name=\"exception_http\">HTTP %d, comproba a páxina web no WebView</string>\n    <string name=\"pref_storage_location_info\">Utilízase para as copias de seguridade automáticas, as descargas de capítulos e a fonte local.</string>\n    <string name=\"app_settings\">Axustes da aplicación</string>\n    <string name=\"source_settings\">Axustes da fonte</string>\n    <string name=\"action_create\">Crear</string>\n    <string name=\"invalid_backup_file_error\">Erro completo:</string>\n    <string name=\"create_backup_file_error\">Non se puido crear unha copia de seguridade</string>\n    <string name=\"pref_storage_usage\">Almacenamento usado</string>\n    <string name=\"track_delete_remote_text\">Eliminar tamén de %s</string>\n    <string name=\"download_cache_invalidated\">Invalidouse o índice de descargas</string>\n    <string name=\"has_results\">Ten resultados</string>\n    <string name=\"action_add_anyway\">Engadir de todos modos</string>\n    <string name=\"available_disk_space_info\">Dispoñible: %1$s / Total: %2$s</string>\n    <string name=\"syncing_library\">Sincronizando a biblioteca</string>\n    <string name=\"relative_time_span_never\">Nunca</string>\n    <string name=\"label_upcoming\">Proximamente</string>\n    <string name=\"action_replace_repo\">Substituír</string>\n    <string name=\"action_replace_repo_title\">A impresión dixital da chave da firma xa existe</string>\n    <string name=\"action_replace_repo_message\">O repositorio %1$s ten a misma impresión dixital da chave da firma que %2$s.\n\\nSe isto é o comportamento agardado, %2$s substituirase. Se no é así, contacta con quen mantén o repositorio.</string>\n    <string name=\"pref_display_profile\">Perfil de visualización personalizado</string>\n    <string name=\"private_settings\">Incluír configuracións sensibles (por exemplo, as chaves de inicio de sesión en plataformas de seguimento)</string>\n    <string name=\"action_bar_up_description\">Navegar arriba</string>\n    <string name=\"library_sync_complete\">A biblioteca sincronizouse correctamente</string>\n    <string name=\"intervals_header\">Intervalos</string>\n    <string name=\"manga_display_interval_title\">Estimar cada</string>\n    <string name=\"manga_interval_expected_update\">Prevese que o seguinte capítulo saia en %1$s, compróbase cada %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Frecuencia de actualización personalizada:</string>\n    <string name=\"track_delete_title\">Queres deixar de seguir %s?</string>\n    <string name=\"notification_updating_progress\">Actualizando a biblioteca… (%s)</string>\n    <string name=\"skipped_reason_not_in_release_period\">Omitiuse porque hoxe non se esperaba ningunha publicación</string>\n    <string name=\"file_null_uri_error\">Non se elixiu ningún arquivo</string>\n    <string name=\"last_auto_backup_info\">Última copia de seguridade automática: %s</string>\n    <string name=\"manga_display_modified_interval_title\">Actualizar cada</string>\n    <string name=\"manga_interval_expected_update_soon\">Pronto</string>\n    <string name=\"exclude_scanlators\">Excluír equipos de tradución</string>\n    <string name=\"no_scanlators_found\">Non se atopou ningún equipo de tradución</string>\n    <string name=\"track_delete_text\">Esto eliminará o seguimento local.</string>\n    <string name=\"action_view_upcoming\">Ver as próximas actualizacións</string>\n    <string name=\"upcoming_guide\">Guía dos próximos lanzamenos</string>\n    <string name=\"upcoming_calendar_next\">Mes seguinte</string>\n    <string name=\"upcoming_calendar_prev\">Mes anterior</string>\n    <string name=\"information_cloudflare_help\">Preme aquí para obter axuda con Cloudflare</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Actualizar o progreso ao marcalo como lido</string>\n    <string name=\"action_copy_link\">Copiar ligazón</string>\n    <string name=\"pref_flash_style_white\">Branco</string>\n    <string name=\"pref_flash_style_white_black\">Branco e negro</string>\n    <string name=\"action_sort_random\">Aleatorio</string>\n    <string name=\"onboarding_permission_analytics\">Permitir analíticas</string>\n    <string name=\"pref_flash_style_black\">Negro</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pausar o historial de lectura para esta extensión</string>\n    <string name=\"manga_interval_expected_update_null\">Este manga está rematado ou non ten unha data de publicación prevista.</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Envía rexistros de erros anónimos aos desenvolvedores.</string>\n    <string name=\"onboarding_permission_crashlytics\">Enviar rexistro de erros</string>\n    <string name=\"non_library_settings\">Todas as obras lidas</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Elixir un tamaño máximo co que decodificar imáxenes por hardware</string>\n    <string name=\"add_repo_confirmation\">Queres engadir o repositorio \\\"%s\\\"?</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Por defecto (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Se o lector carga unha páxina en branco, recomendámoste reducilo pouco a pouco.\\nLímite actual: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Afecta ao rendemento. Recomendámosche activalo só se a imaxe segue sen verse ao reducir o tamaño máximo</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Omitir a descarga de capítulos duplicados xa lidos</string>\n    <string name=\"ext_confirm_remove\">Queres eliminar a extensión?</string>\n    <string name=\"remove_private_extension_message\">Seguro que queres eliminar a extensión \\\"%s\\\"?</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"invalid_backup_file_json\">Copia de seguridade JSON non compatible</string>\n    <string name=\"invalid_backup_file_unknown\">O arquivo da copia de seguridade está corrupto</string>\n    <string name=\"extensionRepo_settings\">Repositorios de extensións</string>\n    <string name=\"confirm_tracker_update\">Marcar o capítulo %d como lido nos servizos de seguimento?</string>\n    <string name=\"trackers_updated_summary\">Servizos de seguimento actualizados ao capítulo %d</string>\n    <string name=\"onboarding_permission_analytics_description\">Enviar estatísticas de uso anónimas para mellorar as funcións da aplicación.</string>\n    <string name=\"pref_security\">Seguridade</string>\n    <string name=\"pref_firebase\">Analíticas e rexistros de erros</string>\n    <string name=\"firebase_summary\">O envío de rexistros de erros e estatísticas de uso permitirannos identificar e arranxar problemas, mellorar o rendemento e que futuras actualizacións poidan adaptarse mellor as túas necesidades</string>\n    <string name=\"pref_flash_page_interval\">Escintilar cada</string>\n    <string name=\"pref_flash_with\">Escintilar con</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Non se puido obter un acceso continuo ao cartafol. É posible que a aplicación se comporte de xeito imprevisto.</string>\n    <string name=\"ext_remove\">Eliminar</string>\n    <string name=\"pref_flash_duration\">Duración do flash</string>\n    <string name=\"label_auto\">Automático</string>\n    <string name=\"theme_monochrome\">Monocromo</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Ao rematar de ler un capítulo</string>\n    <string name=\"possible_duplicates_title\">Posibles duplicados</string>\n    <string name=\"pref_update_library_manga_titles\">Actualizar os títulos para que coincidan cos da fonte</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Aviso: se unha obra cambia de nome, borrarase da cola de descargas (se está aí).</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"possible_duplicates_summary\">Xa tes obras na túa biblioteca cun nome similar.\\n\\nElixe unha delas para comezar a migración ou engádea sen máis.</string>\n    <string name=\"tracked_privately\">Seguindo de maneira privada</string>\n    <string name=\"notes_placeholder\">Gustoume a parte na que…</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marcar os capítulos duplicados como xa lidos</string>\n    <string name=\"action_notes\">Notas</string>\n    <string name=\"action_edit_notes\">Editar notas</string>\n    <string name=\"pref_behavior\">Comportamento</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Ao obter capítulos novos</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Cargar imaxes de tira vertical co decodificador antigo</string>\n    <string name=\"logging_in\">Iniciando sesión…</string>\n    <string name=\"export\">Exportar</string>\n    <string name=\"library_list\">Lista da biblioteca</string>\n    <string name=\"library_exported\">Exportouse a biblioteca</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"action_toggle_private_off\">Seguir de maneira pública</string>\n    <string name=\"action_toggle_private_on\">Seguir de maneira privada</string>\n    <string name=\"action_display_unread_badge\">Capítulos sen ler</string>\n    <string name=\"storage_failed_to_create_download_directory\">Non se puido crear o cartafol de descarga</string>\n    <string name=\"storage_failed_to_create_directory\">Non se puido crear o cartafol:%s</string>\n    <string name=\"clear_database_text\">Estás a piques de borrar elementos da túa base de datos</string>\n    <string name=\"clear_database_history_warning\">Perderás os capítulos lidos e o progreso de lectura das obras que non estén na biblioteca</string>\n    <string name=\"clear_db_exclude_read\">Conservar as obras con capítulos lidos</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/he/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">עדכון לתוסף זמין</item>\n        <item quantity=\"two\">עדכונים ל-%d תוספים זמינים</item>\n        <item quantity=\"many\">עדכונים ל-%d תוספים זמינים</item>\n        <item quantity=\"other\">עדכונים ל-%d תוספים זמינים</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">פרקים %1$s ואחד נוסף</item>\n        <item quantity=\"two\">פרקים %1$s ו-%2$d נוספים</item>\n        <item quantity=\"many\">פרקים %1$s ו-%2$d נוספים</item>\n        <item quantity=\"other\">פרקים %1$s ו-%2$d נוספים</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">פרק אחד חדש</item>\n        <item quantity=\"two\">%1$d פרקים חדשים</item>\n        <item quantity=\"many\">%1$d פרקים חדשים</item>\n        <item quantity=\"other\">%1$d פרקים חדשים</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">עבור כותר אחד</item>\n        <item quantity=\"two\">עבור %d כותרים</item>\n        <item quantity=\"many\">עבור %d כותרים</item>\n        <item quantity=\"other\">עבור %d כותרים</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">לאחר דקה אחת</item>\n        <item quantity=\"two\">לאחר שתי דקות</item>\n        <item quantity=\"many\">לאחר %1$s דקות</item>\n        <item quantity=\"other\">לאחר %1$s דקות</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">קטגורייה אחת</item>\n        <item quantity=\"two\">שתי קטגוריות</item>\n        <item quantity=\"many\">%d קטגוריות</item>\n        <item quantity=\"other\">%d קטגוריות</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">אתמול</item>\n        <item quantity=\"two\">לפני יומיים</item>\n        <item quantity=\"many\">לפני %1$d ימים</item>\n        <item quantity=\"other\">לפני %1$d ימים</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">פרק אחד</item>\n        <item quantity=\"two\">שני פרקים</item>\n        <item quantity=\"many\">%1$s פרקים</item>\n        <item quantity=\"other\">%1$s פרקים</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">1 נשאר</item>\n        <item quantity=\"two\">2 נשארו</item>\n        <item quantity=\"many\">%1$s נשארו</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">הושלם ב %1$s עם שגיאה אחת</item>\n        <item quantity=\"two\">הושלם ב %1$s עם שתי שגיאות</item>\n        <item quantity=\"many\">הושלם ב %1$s עם %2$s שגיאות</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">דולג פרק אחד, המקור חסר או שהוא סונן החוצה</item>\n        <item quantity=\"two\">דולגו שני פרקים, המקור חסר או שהם סוננו החוצה</item>\n        <item quantity=\"many\">דולגו %d פרקים, המקור חסר או שהם סוננו החוצה</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">הפרק הבא</item>\n        <item quantity=\"two\">שני הפרקים הבאים</item>\n        <item quantity=\"many\">%d הפרקים הבאים</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">מעקב אחד</item>\n        <item quantity=\"two\">שני מעקבים</item>\n        <item quantity=\"many\">%d מעקבים</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">הפרק הבא שלא נקרא</item>\n        <item quantity=\"two\">שני הפרקים הבאים שלא נקראו</item>\n        <item quantity=\"many\">%d הפרקים הבאים שלא נקראו</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">יום אחד</item>\n        <item quantity=\"two\">יומיים</item>\n        <item quantity=\"many\">%d ימים</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">חסר פרק אחד</item>\n        <item quantity=\"two\">חסרים שני פרקים</item>\n        <item quantity=\"many\">חסרים %1$s פרקים</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">מחר</item>\n        <item quantity=\"two\">מחרותיים</item>\n        <item quantity=\"other\">בעוד %1$d ימים</item>\n    </plurals>\n</resources>"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/he/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"channel_ext_updates\">עדכונים לתוסף</string>\n    <string name=\"channel_new_chapters\">עדכונים לפרק</string>\n    <string name=\"channel_common\">נפוץ</string>\n    <string name=\"download_notifier_download_paused\">ההורדות מושהות</string>\n    <string name=\"download_notifier_no_network\">אין חיבור רשת זמין</string>\n    <string name=\"download_notifier_text_only_wifi\">אין חיבור Wi-Fi זמין</string>\n    <string name=\"download_notifier_unknown_error\">לא ניתן להוריד את הפרק בגלל שגיאה בלתי צפויה</string>\n    <string name=\"download_notifier_title_error\">שגיאה</string>\n    <string name=\"information_webview_outdated\">אנא עדכן את אפליקציית WebView לקבלת תאימות טובה יותר</string>\n    <string name=\"information_cloudflare_bypass_failure\">עקיפה של Cloudflare נכשלה</string>\n    <string name=\"information_empty_category\">אין לך קטגוריות. לחץ על כפתור הפלוס כדי ליצור אחד לארגון הספרייה שלך.</string>\n    <string name=\"information_empty_library\">הספרייה שלך ריקה</string>\n    <string name=\"information_no_downloads\">אין הורדות</string>\n    <string name=\"update_check_notification_update_available\">גרסה חדשה זמינה!</string>\n    <string name=\"update_check_notification_download_error\">שגיאה בהורדה</string>\n    <string name=\"update_check_notification_download_complete\">לחץ כדי להתקין עדכון</string>\n    <string name=\"update_check_notification_download_in_progress\">מוריד…</string>\n    <string name=\"update_check_no_new_updates\">אין עדכונים חדשים זמינים</string>\n    <string name=\"update_check_confirm\">הורדה</string>\n    <string name=\"file_select_backup\">בחר קובץ גיבוי</string>\n    <string name=\"file_select_cover\">בחר תמונת כריכה</string>\n    <string name=\"notification_first_add_to_library\">אנא הוסף את הפריט לספרייה שלך לפני שתעשה זאת</string>\n    <string name=\"notification_cover_update_failed\">עדכון הכריכה נכשל</string>\n    <string name=\"notification_chapters_multiple\">פרקים %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">פרק %1$s ו-%2$d נוספים</string>\n    <string name=\"notification_chapters_single\">פרק %1$s</string>\n    <string name=\"notification_new_chapters\">נמצאו פרקים חדשים</string>\n    <string name=\"download_queue_error\">לא ניתן להוריד פרקים. אפשר לנסות שוב בדף ההורדות</string>\n    <string name=\"copy\">העתק</string>\n    <string name=\"migrate\">העברה</string>\n    <string name=\"migration_selection_prompt\">בחר מקור שברצונך להעביר ממנו</string>\n    <string name=\"migration_dialog_what_to_include\">בחר נתונים כדי לכלול</string>\n    <string name=\"updating_library\">מעדכן ספרייה</string>\n    <string name=\"transition_pages_error\">טעינת העמודים נכשלה: %1$s</string>\n    <string name=\"transition_pages_loading\">טוען דפים…</string>\n    <string name=\"transition_no_previous\">אין פרק קודם</string>\n    <string name=\"transition_no_next\">אין פרק הבא</string>\n    <string name=\"transition_previous\">קודם:</string>\n    <string name=\"transition_next\">הבא:</string>\n    <string name=\"transition_current\">נוכחי:</string>\n    <string name=\"transition_finished\">סיים:</string>\n    <string name=\"confirm_set_image_as_cover\">האם להשתמש בתמונה זו כציור כריכה?</string>\n    <string name=\"decode_image_error\">לא ניתן היה לפענח את התמונה</string>\n    <string name=\"no_next_chapter\">הפרק הבא לא נמצא</string>\n    <string name=\"chapter_progress\">עמוד: %1$d</string>\n    <string name=\"set_as_cover\">הגדר ככריכה</string>\n    <string name=\"cover_updated\">הכריכה עודכנה</string>\n    <string name=\"custom_filter\">סנן מותאם אישית</string>\n    <string name=\"picture_saved\">התמונה נשמרה</string>\n    <string name=\"dialog_with_checkbox_reset\">אפס את כל הפרקים לפריט זה</string>\n    <string name=\"dialog_with_checkbox_remove_description\">פעולה זו תסיר את התאריך הקריאה של פרק זה. האם אתה בטוח?</string>\n    <string name=\"snack_categories_deleted\">הקטגוריות נמחקו</string>\n    <string name=\"error_category_exists\">קטגוריה עם שם זה כבר קיימת!</string>\n    <string name=\"track_type\">סוג</string>\n    <string name=\"track_status\">סטטוס</string>\n    <string name=\"status\">סטטוס</string>\n    <string name=\"title\">כותרת</string>\n    <string name=\"score\">ציון</string>\n    <string name=\"repeating\">קריאה מחדש</string>\n    <string name=\"plan_to_read\">מתכנן לקרוא</string>\n    <string name=\"paused\">מושהה</string>\n    <string name=\"on_hold\">בהמתנה</string>\n    <string name=\"dropped\">הושמט</string>\n    <string name=\"completed\">הושלם</string>\n    <string name=\"confirm_delete_chapters\">האם אתה בטוח שברצונך למחוק את הפרקים שנבחרו?</string>\n    <string name=\"download_unread\">לא נקרא</string>\n    <string name=\"sort_by_number\">לפי מספר פרק</string>\n    <string name=\"sort_by_source\">לפי מקור</string>\n    <string name=\"show_chapter_number\">מספר פרק</string>\n    <string name=\"show_title\">כותרת</string>\n    <string name=\"chapter_paused\">מושהה</string>\n    <string name=\"chapter_error\">שגיאה</string>\n    <string name=\"chapter_downloading_progress\">מוריד (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">פרקים %1$s</string>\n    <string name=\"snack_add_to_library\">להוסיף לספרייה?</string>\n    <string name=\"source_not_installed\">המקור לא הותקן: %1$s</string>\n    <string name=\"delete_downloads_for_manga\">למחוק פרקים שירדו?</string>\n    <string name=\"manga_added_library\">נוסף לספרייה</string>\n    <string name=\"remove_from_library\">הסר מהספרייה</string>\n    <string name=\"manga_removed_library\">הוסר מהספרייה</string>\n    <string name=\"unknown\">לא ידוע</string>\n    <string name=\"ongoing\">נמשך</string>\n    <string name=\"latest\">המאוחר ביותר</string>\n    <string name=\"action_global_search_hint\">חיפוש גלובלי…</string>\n    <string name=\"other_source\">אחר</string>\n    <string name=\"local_source\">מאנגה מקומית</string>\n    <string name=\"no_results_found\">לא נמצאו תוצאות</string>\n    <string name=\"no_more_results\">אין תוצאות נוספות</string>\n    <string name=\"updating_category\">מעדכן קטגוריה</string>\n    <string name=\"unknown_error\">שגיאה לא ידועה</string>\n    <string name=\"logout_success\">אתה עכשיו מנותק</string>\n    <string name=\"logout\">התנתק</string>\n    <string name=\"logout_title\">התנתק מ-%1$s?</string>\n    <string name=\"login_success\">מחובר</string>\n    <string name=\"password\">סיסמה</string>\n    <string name=\"email\">כתובת דוא\\\"ל</string>\n    <string name=\"username\">שם משתמש</string>\n    <string name=\"login_title\">התחבר אל %1$s</string>\n    <string name=\"pref_acra_summary\">עוזר בתיקון באגים. לא יישלחו נתונים רגישים</string>\n    <string name=\"pref_enable_acra\">שלח דוחות קריסה</string>\n    <string name=\"untrusted_extension_message\">תוסף זה נחתם עם אישור לא מהימן ולא הופעל.\n\\n\n\\nתוסף זדוני יכול לקרוא את אישורי ההתחברות המאוחסנים ב-Mihon או להריץ קוד שרירותי.\n\\n\n\\nעל ידי אמון באישור זה אתה מקבל סיכונים אלה.</string>\n    <string name=\"ext_uninstall\">הסר התקנה</string>\n    <string name=\"ext_untrusted\">לא מאומת</string>\n    <string name=\"ext_installed\">הותקן</string>\n    <string name=\"ext_installing\">מתקין</string>\n    <string name=\"ext_downloading\">מוריד</string>\n    <string name=\"ext_pending\">ממתין</string>\n    <string name=\"ext_install\">התקן</string>\n    <string name=\"ext_update\">עדכון</string>\n    <string name=\"ext_updates_pending\">עדכונים ממתינים</string>\n    <string name=\"all\">הכל</string>\n    <string name=\"default_category_summary\">שאל תמיד</string>\n    <string name=\"default_category\">קטגוריית ברירת המחדל</string>\n    <string name=\"pref_update_only_non_completed\">במצב \\\"נגמרה\\\"</string>\n    <string name=\"charging\">טוען</string>\n    <string name=\"pref_library_update_restriction\">הגבלות עדכונים אוטומטיים</string>\n    <string name=\"update_weekly\">פעם בשבוע</string>\n    <string name=\"update_48hour\">פעם ביומיים</string>\n    <string name=\"update_24hour\">פעם ביום</string>\n    <string name=\"update_12hour\">כל 12 שעות</string>\n    <string name=\"update_6hour\">כל 6 שעות</string>\n    <string name=\"update_never\">כבוי</string>\n    <string name=\"pref_library_update_interval\">עדכונים אוטומטיים</string>\n    <string name=\"pref_category_library_update\">עדכון גלובלי</string>\n    <string name=\"landscape\">מאוזן</string>\n    <string name=\"portrait\">מאונך</string>\n    <string name=\"hide_notification_content\">הסתר תוכן התראות</string>\n    <string name=\"secure_screen_summary\">מסך מאובטח מסתיר את תוכן האפליקציה בעת החלפת אפליקציות וחוסם צילומי מסך</string>\n    <string name=\"lock_never\">לעולם לא</string>\n    <string name=\"lock_always\">תמיד</string>\n    <string name=\"lock_when_idle\">נעילה כאשר אינו פעיל</string>\n    <string name=\"lock_with_biometrics\">ביטול נעילה דרוש</string>\n    <string name=\"pref_category_security\">אבטחה ופרטיות</string>\n    <string name=\"pref_manage_notifications\">ניהול התראות</string>\n    <string name=\"pref_date_format\">תבנית תאריך</string>\n    <string name=\"theme_dark\">פעיל</string>\n    <string name=\"theme_light\">כבוי</string>\n    <string name=\"pref_category_about\">אודות</string>\n    <string name=\"pref_category_advanced\">מתקדם</string>\n    <string name=\"pref_category_downloads\">הורדות</string>\n    <string name=\"pref_category_library\">ספרייה</string>\n    <string name=\"pref_category_general\">כללי</string>\n    <string name=\"app_not_available\">האפליקציה אינה זמינה</string>\n    <string name=\"loading\">טוען…</string>\n    <string name=\"action_webview_refresh\">רענון</string>\n    <string name=\"action_webview_forward\">קדימה</string>\n    <string name=\"action_webview_back\">חזרה</string>\n    <string name=\"action_restore\">שיחזור</string>\n    <string name=\"action_undo\">בטל פעולה אחרונה</string>\n    <string name=\"action_reset\">איפוס</string>\n    <string name=\"action_save\">שמור</string>\n    <string name=\"action_share\">שתף</string>\n    <string name=\"action_install\">התקן</string>\n    <string name=\"action_move_to_bottom\">עבור לתחתית הדף</string>\n    <string name=\"action_move_to_top\">עבור לראש הדף</string>\n    <string name=\"action_oldest\">הישן ביותר</string>\n    <string name=\"action_newest\">החדש ביותר</string>\n    <string name=\"action_sort\">מיון</string>\n    <string name=\"action_cancel_all\">בטל הכל</string>\n    <string name=\"action_display\">תצוגה</string>\n    <string name=\"track\">מעקב</string>\n    <string name=\"label_more\">עוד</string>\n    <string name=\"action_cancel\">ביטול</string>\n    <string name=\"action_display_download_badge\">פרקים שירדו</string>\n    <string name=\"action_display_list\">רשימה</string>\n    <string name=\"action_display_grid\">רשת קומפקטית</string>\n    <string name=\"action_display_mode\">מצב תצוגה</string>\n    <string name=\"action_open_in_web_view\">פתח ב-WebView</string>\n    <string name=\"action_open_in_browser\">פתח בדפדפן</string>\n    <string name=\"action_resume\">המשך</string>\n    <string name=\"action_remove\">הסר</string>\n    <string name=\"action_retry\">נסה שוב</string>\n    <string name=\"action_next_chapter\">פרק הבא</string>\n    <string name=\"action_previous_chapter\">פרק קודם</string>\n    <string name=\"action_pause\">הפסק</string>\n    <string name=\"action_view_chapters\">הצג פרקים</string>\n    <string name=\"action_edit_cover\">ערוך את הכריכה</string>\n    <string name=\"action_move_category\">סדר קטגוריות</string>\n    <string name=\"action_rename_category\">שנה שם קטגוריה</string>\n    <string name=\"action_edit_categories\">ערוך קטגוריות</string>\n    <string name=\"action_add_category\">הוסף קטגוריה</string>\n    <string name=\"version\">גרסה</string>\n    <string name=\"battery_optimization_disabled\">אופטימיזציית סוללה כבר מושבתת</string>\n    <string name=\"pref_disable_battery_optimization_summary\">עוזר בעדכוני ספריות רקע וגיבויים</string>\n    <string name=\"pref_disable_battery_optimization\">השבתת האופטימיזציה של הסוללה</string>\n    <string name=\"clear_database_completed\">הרשומות נמחקו</string>\n    <string name=\"pref_clear_database_summary\">מחק את היסטוריית הפריטים שאינם שמורים בספריה שלך</string>\n    <string name=\"pref_clear_database\">נקה את מסד הנתונים</string>\n    <string name=\"cookies_cleared\">עוגיות נוקו</string>\n    <string name=\"pref_clear_cookies\">נקה עוגיות</string>\n    <string name=\"cache_delete_error\">אירעה שגיאה במהלך הניקוי</string>\n    <string name=\"cache_deleted\">זיכרון המטמון נוקה. %1$d קבצים נמחקו</string>\n    <string name=\"used_cache\">בשימוש: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">נקה את זיכרון המטמון של הפרקים</string>\n    <string name=\"creating_backup\">מייצר גיבוי</string>\n    <string name=\"restoring_backup\">משחזר גיבוי</string>\n    <string name=\"backup_choice\">מה אתה רוצה לגבות?</string>\n    <string name=\"restore_completed\">השחזור הושלם</string>\n    <string name=\"backup_created\">גיבוי נוצר</string>\n    <string name=\"pref_backup_interval\">תדירות גיבוי</string>\n    <string name=\"pref_restore_backup_summ\">שחזר ספרייה מקובץ גיבוי</string>\n    <string name=\"pref_restore_backup\">שחזור גיבוי</string>\n    <string name=\"pref_create_backup_summ\">ניתן לשימוש על מנת לשחזר את הספרייה הנוכחית</string>\n    <string name=\"pref_create_backup\">צור גיבוי</string>\n    <string name=\"services\">שירותים</string>\n    <string name=\"pref_auto_update_manga_sync\">עדכן התקדמות לאחר הקריאה</string>\n    <string name=\"pref_download_new\">הורד פרקים חדשים</string>\n    <string name=\"fifth_to_last\">הפרק החמישי מהסוף שנקרא</string>\n    <string name=\"fourth_to_last\">הפרק הרביעי מהסוף שנקרא</string>\n    <string name=\"third_to_last\">הפרק השלישי מהסוף שנקרא</string>\n    <string name=\"second_to_last\">הפרק השני מהסוף שנקרא</string>\n    <string name=\"last_read_chapter\">פרק שנקרא בפעם האחרונה</string>\n    <string name=\"pref_remove_after_read\">אוטומטי לאחר סיום הקריאה</string>\n    <string name=\"pref_remove_after_marked_as_read\">אחרי שמסומן ידנית כנקרא</string>\n    <string name=\"pref_always_show_chapter_transition\">הצג תמיד מעברי פרקים</string>\n    <string name=\"color_filter_a_value\">אלפא</string>\n    <string name=\"color_filter_b_value\">כחול</string>\n    <string name=\"color_filter_g_value\">ירוק</string>\n    <string name=\"color_filter_r_value\">אדום</string>\n    <string name=\"rotation_force_landscape\">מאוזן נעול</string>\n    <string name=\"rotation_force_portrait\">מאונך נעול</string>\n    <string name=\"rotation_free\">חופשי</string>\n    <string name=\"pref_rotation_type\">ברירת המחדל של סוג הסיבוב</string>\n    <string name=\"double_tap_anim_speed_fast\">מהירה</string>\n    <string name=\"double_tap_anim_speed_normal\">רגילה</string>\n    <string name=\"double_tap_anim_speed_0\">בלי אנימציה</string>\n    <string name=\"zoom_start_center\">מרכז</string>\n    <string name=\"zoom_start_right\">ימין</string>\n    <string name=\"zoom_start_left\">שמאל</string>\n    <string name=\"zoom_start_automatic\">אוטומטי</string>\n    <string name=\"pref_zoom_start\">מיקום התחלה של ההגדלה</string>\n    <string name=\"scale_type_smart_fit\">התאמה חכמה</string>\n    <string name=\"scale_type_original_size\">גודל מקורי</string>\n    <string name=\"scale_type_fit_height\">התאם לגובה</string>\n    <string name=\"scale_type_fit_width\">התאם לרוחב</string>\n    <string name=\"scale_type_stretch\">למתוח</string>\n    <string name=\"scale_type_fit_screen\">התאם לגודל מסך</string>\n    <string name=\"pref_image_scale_type\">סוג קנה מידה</string>\n    <string name=\"webtoon_viewer\">רצועה מוארכת</string>\n    <string name=\"vertical_viewer\">סידור עמודים (אנכי)</string>\n    <string name=\"right_to_left_viewer\">סידור עמודים (ימין לשמאל)</string>\n    <string name=\"left_to_right_viewer\">סידור עמודים (שמאל לימין)</string>\n    <string name=\"pref_viewer_type\">ברירת המחדל של מצב הקריאה</string>\n    <string name=\"black_background\">שחור</string>\n    <string name=\"white_background\">לבן</string>\n    <string name=\"pref_reader_theme\">צבע רקע</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">מקשי עוצמת שמע הפוכים</string>\n    <string name=\"pref_read_with_volume_keys\">מקשי עוצמת שמע</string>\n    <string name=\"pref_reader_navigation\">ניווט</string>\n    <string name=\"pref_skip_filtered_chapters\">דלג על פרקים מסוננים</string>\n    <string name=\"pref_skip_read_chapters\">דלג על פרקים המסומנים כנקראו</string>\n    <string name=\"pref_keep_screen_on\">השאר מסך דלוק</string>\n    <string name=\"filter_mode_darken\">שרוף / מוחשך</string>\n    <string name=\"filter_mode_screen\">מסך</string>\n    <string name=\"pref_custom_color_filter\">מסנן צבע מותאם אישית</string>\n    <string name=\"pref_custom_brightness\">בהירות מותאמת אישית</string>\n    <string name=\"pref_crop_borders\">חתוך גבולות</string>\n    <string name=\"pref_show_page_number\">הצג מספר עמוד</string>\n    <string name=\"pref_double_tap_anim_speed\">מהירות הנפשה בהקשה כפולה</string>\n    <string name=\"pref_page_transitions\">הנפשת מעברי דפים</string>\n    <string name=\"pref_cutout_short\">הצג תוכן באזור החתוך</string>\n    <string name=\"untrusted_extension\">תוסף לא מאומת</string>\n    <string name=\"obsolete_extension_message\">תוסף זה אינו זמין עוד. ייתכן שאינו פועל כצפוי ויכול לגרום לבעיות באפליקציה. מומלץ להסיר את התקנת התוסף.</string>\n    <string name=\"pref_fullscreen\">מסך מלא</string>\n    <string name=\"action_add\">הוסף</string>\n    <string name=\"action_edit\">ערוך</string>\n    <string name=\"action_update_library\">עדכן ספרייה</string>\n    <string name=\"action_delete\">מחק</string>\n    <string name=\"action_remove_bookmark\">בטל סימון פרק</string>\n    <string name=\"action_bookmark\">סמן פרק</string>\n    <string name=\"action_download\">הורד</string>\n    <string name=\"action_mark_previous_as_read\">סמן את הקודמים כנקראו</string>\n    <string name=\"action_mark_as_unread\">סמן כלא נקרא</string>\n    <string name=\"action_mark_as_read\">סמן כנקרא</string>\n    <string name=\"action_select_all\">סמן הכל</string>\n    <string name=\"action_global_search\">חיפוש כללי</string>\n    <string name=\"action_search\">חיפוש</string>\n    <string name=\"action_sort_latest_chapter\">הפרק האחרון</string>\n    <string name=\"action_sort_last_read\">נקרא לאחרונה</string>\n    <string name=\"action_sort_total\">כל הפרקים</string>\n    <string name=\"action_sort_alpha\">אלפביתית</string>\n    <string name=\"action_filter_empty\">הסר את הסנן</string>\n    <string name=\"action_filter_unread\">לא נקרא</string>\n    <string name=\"action_filter\">סנן</string>\n    <string name=\"action_menu\">תפריט</string>\n    <string name=\"action_settings\">הגדרות</string>\n    <string name=\"label_help\">עזרה</string>\n    <string name=\"label_extension_info\">פרטי הרחבה</string>\n    <string name=\"label_extensions\">הרחבות</string>\n    <string name=\"label_migration\">העברה</string>\n    <string name=\"label_backup\">גיבוי ושחזור</string>\n    <string name=\"label_sources\">מקורות</string>\n    <string name=\"label_recent_manga\">היסטוריה</string>\n    <string name=\"label_recent_updates\">עדכונים</string>\n    <string name=\"label_library\">ספרייה</string>\n    <string name=\"label_download_queue\">תור ההורדות</string>\n    <string name=\"label_settings\">הגדרות</string>\n    <string name=\"history\">היסטוריה</string>\n    <string name=\"chapters\">פרקים</string>\n    <string name=\"manga\">פריטים בספריה</string>\n    <string name=\"categories\">קטגוריות</string>\n    <string name=\"name\">שם</string>\n    <string name=\"information_no_recent_manga\">שום דבר לא נקרא לאחרונה</string>\n    <string name=\"information_no_recent\">אין עידכונים אחרונים</string>\n    <string name=\"action_filter_bookmarked\">סומן</string>\n    <string name=\"label_default\">ברירת המחדל</string>\n    <string name=\"pref_app_theme\">ערכת נושא של האפליקציה</string>\n    <string name=\"action_start_downloading_now\">התחל להוריד עכשיו</string>\n    <string name=\"action_pin\">נעץ</string>\n    <string name=\"secure_screen\">מסך מאובטח</string>\n    <string name=\"pref_library_columns\">פריטים בכל שורה</string>\n    <string name=\"theme_system\">עקוב אחר המערכת</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">בדוק אם יש כריכה ופרטים חדשים בעת עדכון הספרייה</string>\n    <string name=\"action_sort_count\">סה\\\"כ פריטים</string>\n    <string name=\"action_search_settings\">הגדרות חיפוש</string>\n    <string name=\"action_select_inverse\">בחר את ההפך</string>\n    <string name=\"action_display_language_badge\">שפה</string>\n    <string name=\"action_display_show_tabs\">הצג קטגורית כרטיסיות</string>\n    <string name=\"action_display_show_number_of_items\">הצג מספר של פריטים</string>\n    <string name=\"action_disable\">השבת</string>\n    <string name=\"action_unpin\">הסר נעיצה</string>\n    <string name=\"cancel_all_for_series\">בטל הכל לסדרה זו</string>\n    <string name=\"action_order_by_upload_date\">לפי תאריך ההעלאה</string>\n    <string name=\"action_order_by_chapter_number\">לפי מספר הפרק</string>\n    <string name=\"action_asc\">עולה</string>\n    <string name=\"action_desc\">יורד</string>\n    <string name=\"label_warning\">אזהרה</string>\n    <string name=\"confirm_lock_change\">אימות לאישור השינוי</string>\n    <string name=\"pref_category_reader\">מצב קריאה</string>\n    <string name=\"pref_category_tracking\">מעקב</string>\n    <string name=\"pref_category_theme\">ערכת נושא</string>\n    <string name=\"pref_category_nsfw_content\">מקורות NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">הצג ברשימות מקורות ותוספים</string>\n    <string name=\"parental_controls_info\">זה לא מונע תוספים לא רשמיים או תוספים שעלולים לסמן באופן שגוי מלהציג תוכן NSFW (18+) בתוך האפליקציה.</string>\n    <string name=\"relative_time_today\">היום</string>\n    <string name=\"pref_category_display\">תצוגה</string>\n    <string name=\"action_enable_all\">אפשר הכל</string>\n    <string name=\"action_disable_all\">השבת הכל</string>\n    <string name=\"action_start\">התחל</string>\n    <string name=\"action_migrate\">העברה</string>\n    <string name=\"action_display_comfortable_grid\">רשת נוחה</string>\n    <string name=\"action_display_local_badge\">מקור מקומי</string>\n    <string name=\"theme_tealturquoise\">טורקיז צהבהב</string>\n    <string name=\"pref_dark_theme_pure_black\">מצב שחור כהה טהור</string>\n    <string name=\"theme_greenapple\">ירוק תפוח</string>\n    <string name=\"theme_strawberrydaiquiri\">תות דאיקירי</string>\n    <string name=\"theme_yinyang\">יין ויאנג</string>\n    <string name=\"theme_yotsuba\">ארבעה עלים</string>\n    <string name=\"action_show_errors\">לחץ כדי לראות פרטים</string>\n    <string name=\"pref_category_appearance\">מראה</string>\n    <string name=\"theme_midnightdusk\">דמדומי חצות</string>\n    <string name=\"theme_tako\">טאקו</string>\n    <string name=\"pref_library_update_refresh_metadata\">רענן נתונים באופן אוטומטי</string>\n    <string name=\"action_filter_tracked\">במעקב</string>\n    <string name=\"action_sort_date_added\">תאריך הוספה</string>\n    <string name=\"action_sort_chapter_fetch_date\">תאריך האחזור של הפרקים</string>\n    <string name=\"theme_monet\">דינמי</string>\n    <string name=\"pref_library_update_categories_details\">פריט הנמצא בקטגוריית מנועי העדכונים לא יעודכן גם אם הוא נכלל בקטגורייה אחרת שכן מתעדכנת.</string>\n    <string name=\"action_show_manga\">הראה פריט</string>\n    <string name=\"pref_update_only_completely_read\">עם פרק(ים) שלא נקרא(ו)</string>\n    <string name=\"action_move_to_top_all_for_series\">העבר סדרה לראש</string>\n    <string name=\"ext_obsolete\">מיושן</string>\n    <string name=\"pref_update_only_started\">זה עוד לא התחיל</string>\n    <string name=\"ext_update_all\">עדכן הכל</string>\n    <string name=\"ext_trust\">האמן</string>\n    <string name=\"ext_nsfw_warning\">עלול להכיל תוכן שלא מתאים למקום העבודה (18+)</string>\n    <string name=\"ext_install_service_notif\">מתקין הרחבה…</string>\n    <string name=\"include\">כלול: %s</string>\n    <string name=\"pref_show_navigation_mode_summary\">הראה לזמן קצר כשפותחים את מצב הקריאה</string>\n    <string name=\"pref_show_reading_mode\">הראה מצב קריאה</string>\n    <string name=\"ext_app_info\">פרטי האפליקצייה</string>\n    <string name=\"extension_api_error\">נכשל בקבלת רשימת ההרחבות</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"none\">אין</string>\n    <string name=\"update_72hour\">כל 3 ימים</string>\n    <string name=\"connected_to_wifi\">רק ב Wi-Fi</string>\n    <string name=\"restrictions\">הגבלות: %s</string>\n    <string name=\"pref_show_reading_mode_summary\">הראה לזמן קצר את סגנון הקריאה כשפותחים את מצב הקריאה</string>\n    <string name=\"pref_read_with_tapping_inverted\">לחיצה הופכית</string>\n    <string name=\"off\">כבוי</string>\n    <string name=\"on\">פעיל</string>\n    <string name=\"pref_grayscale\">טווח גווני האפור</string>\n    <string name=\"pref_inverted_colors\">הופכי</string>\n    <string name=\"tapping_inverted_horizontal\">אופקי</string>\n    <string name=\"right_and_left_nav\">ימין ושמאל</string>\n    <string name=\"nav_zone_next\">הבא</string>\n    <string name=\"nav_zone_right\">ימין</string>\n    <string name=\"rotation_type\">סוג הסיבוב</string>\n    <string name=\"rotation_portrait\">מאונך</string>\n    <string name=\"rotation_landscape\">מאוזן</string>\n    <string name=\"pref_hide_threshold\">רגישות החבאת התפריט בגלילה</string>\n    <string name=\"pref_highest\">הכי גבוה</string>\n    <string name=\"pref_high\">גבוה</string>\n    <string name=\"pref_low\">נמוך</string>\n    <string name=\"pref_lowest\">הכי נמוך</string>\n    <string name=\"pref_category_delete_chapters\">מחק פרקים</string>\n    <string name=\"pref_remove_exclude_categories\">קטגוריות מוחרגות</string>\n    <string name=\"pref_download_new_categories_details\">פריט הנמצא בקטגוריית מנועי ההורדות לא יעודכן גם אם הוא נכלל בקטגוריה אחרת שכן נכללת (בהורדות).</string>\n    <string name=\"save_chapter_as_cbz\">שמור כארכיון CBZ</string>\n    <string name=\"enhanced_services\">שירותים משופרים</string>\n    <string name=\"edge_nav\">גבול</string>\n    <string name=\"l_nav\">עשוי בצורת L</string>\n    <string name=\"nav_zone_left\">שמאל</string>\n    <string name=\"nav_zone_prev\">הקודם</string>\n    <string name=\"pref_category_reading\">קריאה</string>\n    <string name=\"pref_category_reading_mode\">מצב קריאה</string>\n    <string name=\"pref_category_auto_download\">הורדה אוטומטית</string>\n    <string name=\"gray_background\">אפור</string>\n    <string name=\"vertical_plus_viewer\">רצועה מוארכת עם רווחים</string>\n    <string name=\"pager_viewer\">סידור עמודים</string>\n    <string name=\"rotation_reverse_portrait\">מאונך הפוך</string>\n    <string name=\"pref_create_folder_per_manga\">שמור דפים בתיקיות נפרדות</string>\n    <string name=\"tapping_inverted_vertical\">אנכי</string>\n    <string name=\"tapping_inverted_both\">שניהם</string>\n    <string name=\"pref_reader_actions\">פעולות</string>\n    <string name=\"pref_read_with_long_tap\">הצג פעולות בלחיצה ארוכה</string>\n    <string name=\"automatic_background\">אוטומטי</string>\n    <string name=\"pref_remove_bookmarked_chapters\">אפשר מחיקת פרקים שסומנו</string>\n    <string name=\"disabled\">מנוע</string>\n    <string name=\"pref_create_folder_per_manga_summary\">צור תיקיות בהתאם לכותרת הפריטים</string>\n    <string name=\"enhanced_tracking_info\">שירותים המספקים שירותים משופרים למקורות ספציפיים. פריטים יהיו במעקב אוטומטי אחרי הוספה לספרייה שלך.</string>\n    <string name=\"backup_restore_missing_sources\">מקורות חסרים:</string>\n    <string name=\"invalid_backup_file\">קובץ גיבוי לא תקין:</string>\n    <string name=\"invalid_backup_file_missing_manga\">הגיבוי לא מכיל שום פריטים.</string>\n    <string name=\"action_track\">מעקב</string>\n    <string name=\"pref_auto_clear_chapter_cache\">נקה את זיכרון המטמון של הפרקים כשהאפליקציה עולה</string>\n    <string name=\"clear_database_source_item_count\">יש %1$d פריטים שנמצאים במסד הנתונים אבל לא בספרייה</string>\n    <string name=\"tabs_header\">לשוניות</string>\n    <string name=\"action_global_search_query\">חפש את \\\"%1$s\\\" גלובלית</string>\n    <string name=\"unknown_status\">מצב לא ידוע</string>\n    <string name=\"licensed\">מורשה, בעל רישיון</string>\n    <string name=\"publishing_finished\">הפרסום הסתיים</string>\n    <string name=\"clipboard_copy_error\">נכשלה ההעתקה ללוח</string>\n    <string name=\"sort_by_upload_date\">לפי תאריך העלאה</string>\n    <string name=\"cover_saved\">הכריכה נשמרה</string>\n    <string name=\"error_saving_cover\">שגיאה בשמירת הכריכה</string>\n    <string name=\"error_sharing_cover\">שגיאה בשיתוף הכריכה</string>\n    <string name=\"set_chapter_settings_as_default\">קבע כברירת המחדל</string>\n    <string name=\"viewer\">מצב קריאה</string>\n    <string name=\"manga_from_library\">מהספרייה</string>\n    <string name=\"downloaded_chapters\">פרקים שירדו</string>\n    <string name=\"manga_cover\">כריכה</string>\n    <string name=\"manga_info_expand\">יותר</string>\n    <string name=\"manga_info_collapse\">פחות</string>\n    <string name=\"backup_in_progress\">כבר מתרחש גיבוי</string>\n    <string name=\"local_source_help_guide\">מדריך למנגה מקומית</string>\n    <string name=\"no_pinned_sources\">אין מקורות נעוצים</string>\n    <string name=\"chapter_not_found\">פרק לא נמצא</string>\n    <string name=\"pref_category_for_this_series\">לסדרה הזאת</string>\n    <string name=\"backup_restore_content_full\">מידע מקובץ הגיבוי ישוחזר.\n\\n\n\\nלאחר מכן צריך להתקין הרחבות חסרות ולהתחבר לשירותי המעקב כדי להשתמש בהם.</string>\n    <string name=\"restore_miui_warning\">יכול להיות שהגיבוי/השחזור לא יעבדו כמו שצריך אם אופטמיזציית MIUI מנועה.</string>\n    <string name=\"creating_backup_error\">הגיבוי נכשל</string>\n    <string name=\"restoring_backup_error\">שחזור הגיבוי נכשל</string>\n    <string name=\"requires_app_restart\">צריך לאתחל את האפליקציה כדי שהשינויים ייכנסו לתוקף</string>\n    <string name=\"privacy_policy\">מדיניות פרטיות</string>\n    <string name=\"add_to_library\">הוסף לספרייה</string>\n    <string name=\"copied_to_clipboard\">הועתק ללוח:\n\\n%1$s</string>\n    <string name=\"no_chapters_error\">לא נמצאו פרקים</string>\n    <string name=\"track_started_reading_date\">תאריך התחלה</string>\n    <string name=\"track_finished_reading_date\">תאריך סיום</string>\n    <string name=\"whats_new\">מה חדש</string>\n    <string name=\"help_translate\">עזור לתרגם</string>\n    <string name=\"label_downloaded_only\">רק מה שירד</string>\n    <string name=\"browse\">דפדפן</string>\n    <string name=\"unread\">לא נקרא</string>\n    <string name=\"reading\">קריאה</string>\n    <string name=\"login\">התחברות</string>\n    <string name=\"pinned_sources\">נעוץ</string>\n    <string name=\"restore_duration\">%1$02d דקות, %2$02d שניות</string>\n    <string name=\"restoring_backup_canceled\">השחזור בוטל</string>\n    <string name=\"backup_info\">רצוי לשמור עותקים נוספים של גיבויים במקומות אחרים בנוסף.</string>\n    <string name=\"database_clean\">אין מה לנקות</string>\n    <string name=\"check_for_updates\">בדוק עדכונים</string>\n    <string name=\"local_filter_order_by\">סדר ע\\\"י</string>\n    <string name=\"date\">תאריך</string>\n    <string name=\"unknown_author\">מחבר לא ידוע</string>\n    <string name=\"pref_incognito_mode\">מצב פרטי</string>\n    <string name=\"downloaded_only_summary\">סינון כל הפריטים בספרייה שלך</string>\n    <string name=\"website\">אתר</string>\n    <string name=\"label_data\">מידע</string>\n    <string name=\"error_saving_picture\">שגיאה בשמירת התמונה</string>\n    <string name=\"share_page_info\">%1$s: %2$s עמוד %3$d</string>\n    <string name=\"pref_incognito_mode_summary\">עוצר את קריאת ההיסטוריה</string>\n    <string name=\"notification_incognito_text\">ביטול מצב פרטי</string>\n    <string name=\"manga_download\">הורדה</string>\n    <string name=\"label_network\">רשת</string>\n    <string name=\"cancelled\">בוטל/ה</string>\n    <string name=\"in_library\">בתוך הספרייה</string>\n    <string name=\"chapter_settings\">הגדרות פרק</string>\n    <string name=\"confirm_set_chapter_settings\">האם אתה בטוח שאתה רוצה לשמור את ההגדרות האלה כברירת המחדל?</string>\n    <string name=\"restore_in_progress\">כבר מתרחש שחזור</string>\n    <string name=\"page_list_empty_error\">לא נמצאו עמודים</string>\n    <string name=\"loader_not_implemented_error\">מקור לא נמצא</string>\n    <string name=\"clear_history_completed\">ההיסטוריה נמחקה</string>\n    <string name=\"ext_installer_pref\">מתקין</string>\n    <string name=\"channel_progress\">התקדמות</string>\n    <string name=\"channel_complete\">הושלם</string>\n    <string name=\"spen_previous_page\">הדף הקודם</string>\n    <string name=\"spen_next_page\">הדף הבא</string>\n    <string name=\"empty_screen\">אוקיי, זה מביך</string>\n    <string name=\"pref_reset_viewer_flags_success\">כל הגדרות מצב הקריאה אופסו</string>\n    <string name=\"exclude\">החרגה: %s</string>\n    <string name=\"channel_app_updates\">עדכוני אפליקציה</string>\n    <string name=\"source_filter_empty_screen\">לא נמצאו מקורות מותקנים</string>\n    <string name=\"notification_size_warning\">הורדות גדולות פוגעות במקורות ויכולות לגרום לעדכונים איטיים יותר וגם לשימוש מוגבר בסוללה. לחץ כדי ללמוד עוד.</string>\n    <string name=\"information_empty_category_dialog\">עדיין אין קטגוריות.</string>\n    <string name=\"learn_more\">לחץ כדי ללמוד עוד</string>\n    <string name=\"pref_clear_history\">נקה היסטוריה</string>\n    <string name=\"pref_reset_viewer_flags_error\">נכשל איפוס הגדרות מצב הקריאה</string>\n    <string name=\"action_sort_last_manga_update\">עדכון אחרון</string>\n    <string name=\"action_sort_unread_count\">לא נקראו</string>\n    <string name=\"categorized_display_settings\">הגדרות מיון לכל קטגוריה בנפרד</string>\n    <string name=\"source_empty_screen\">מקור לא נמצא</string>\n    <string name=\"update_check_eol\">גרסת האנדרואיד הזאת כבר לא נתמכת</string>\n    <string name=\"information_webview_required\">WebView נצרך ל-Mihon</string>\n    <string name=\"action_display_cover_only_grid\">רשת רק של הכריכות</string>\n    <string name=\"action_open_log\">פתח את יומן האירועים</string>\n    <string name=\"notification_update_error\">%1$d עדכונים נכשלו</string>\n    <string name=\"pref_landscape_zoom\">בצע קירוב לתמונות אופקיות באופן אוטומטי</string>\n    <string name=\"split_tall_images_summary\">משפר את ביצועי מצב הקריאה</string>\n    <string name=\"skipped_reason_completed\">דולג בגלל שהסדרה נגמרה</string>\n    <string name=\"skipped_reason_not_caught_up\">דולג בגלל שיש פרקים שלא נקראו</string>\n    <string name=\"skipped_reason_not_started\">דולג בגלל שאין פרקים שנקראו</string>\n    <string name=\"action_close\">סגור</string>\n    <string name=\"channel_errors\">שגיאות</string>\n    <string name=\"pref_reset_viewer_flags\">אפס את הגדרות מצב הקריאה של כל סדרה בנפרד</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku לא פועל</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">התקן והפעל את Shizuku כדי להשתמש בShizuku כמתקין ההרחבות.</string>\n    <string name=\"pref_show_navigation_mode\">הראה את פרישת מיקומי הלחיצה</string>\n    <string name=\"clear_history_confirmation\">אתה בטוח? כל ההיסטוריה תמחק.</string>\n    <string name=\"migration_help_guide\">מדריך נדידת מקורות</string>\n    <string name=\"download_insufficient_space\">לא ניתן להוריד פרקים כי אין מספיק מקום אחסון</string>\n    <string name=\"download_queue_size_warning\">אזהרה: הורדות גדולות עלולות לגרום להאטה במקורות ו/או לחסימת %s. לחץ כדי ללמוד עוד.</string>\n    <string name=\"local_invalid_format\">פורמט פרק לא תקין</string>\n    <string name=\"on_hiatus\">בהפסקה</string>\n    <string name=\"delete_category_confirmation\">האם תרצה למחוק את הקטגוריה %s?</string>\n    <string name=\"pref_dual_page_split\">פצל עמודים רחבים</string>\n    <string name=\"kindlish_nav\">כמו ספר אלקטרוני</string>\n    <string name=\"ext_info_version\">גרסה</string>\n    <string name=\"filter_mode_overlay\">כיסוי</string>\n    <string name=\"ext_info_age_rating\">הגבלת גיל</string>\n    <string name=\"ext_info_language\">שפה</string>\n    <string name=\"pref_color_filter_mode\">פילטר צבע משתלב</string>\n    <string name=\"filter_mode_multiply\">להכפיל</string>\n    <string name=\"delete_category\">מחק קטגוריה</string>\n    <string name=\"disabled_nav\">הגבלה</string>\n    <string name=\"ext_installer_legacy\">מורשת</string>\n    <string name=\"pref_app_language\">שפת אפליקציה</string>\n    <string name=\"pref_dual_page_invert\">הפוך מיקום של עמודים מפוצלים</string>\n    <string name=\"tracking_guide\">מדריך מעקב</string>\n    <string name=\"action_remove_everything\">מחק הכל</string>\n    <string name=\"pref_dual_page_invert_summary\">אם המקום של העמוד המפוצל לא תואם לכיוון הקריאה</string>\n    <string name=\"tapping_inverted_none\">כלום</string>\n    <string name=\"pref_viewer_nav\">איזורי נגיעה</string>\n    <string name=\"action_search_hint\">חיפוש…</string>\n    <string name=\"action_open_random_manga\">פתיחת פריט אקראי</string>\n    <string name=\"getting_started_guide\">מדריך למתחיל</string>\n    <string name=\"label_stats\">סטטיסטיקות</string>\n    <string name=\"label_local\">מקומי</string>\n    <string name=\"information_required_plain\">*דרוש</string>\n    <string name=\"internal_error\">שגיאה פנימית: בדוק ביומני קריסה למידע נוסף</string>\n    <string name=\"pref_security_summary\">נעילת אפליקציה, מסך מוגן</string>\n    <string name=\"remove_manga\">אתה עומד למחוק את \\\"%s\\\" מהספריה שלך</string>\n    <string name=\"label_started\">הותחלו</string>\n    <string name=\"label_downloaded\">הורדו</string>\n    <string name=\"theme_tidalwave\">גלים</string>\n    <string name=\"action_set_interval\">קבע מרווח זמן</string>\n    <string name=\"action_filter_interval_custom\">קבע מרווח זמן מותאם מראש לטעינה</string>\n    <string name=\"unknown_title\">כותרת לא מוכרת</string>\n    <string name=\"download_notifier_downloader_title\">מנהל ההורדות</string>\n    <string name=\"exception_http\">HTTP %d, בדוק באתר ב-WebView</string>\n    <string name=\"exception_offline\">אין חיבור אינטרנט</string>\n    <string name=\"information_no_manga_category\">קטגוריה ריקה</string>\n    <string name=\"action_update_category\">קטגוריית עדכון</string>\n    <string name=\"action_display_show_continue_reading_button\">כפתור המשך קריאה</string>\n    <string name=\"pref_browse_summary\">מקורות, הרחבות, חיפוש כללי</string>\n    <string name=\"pref_reader_summary\">מצב קריאה, תצוגה, ניווט</string>\n    <string name=\"action_copy_to_clipboard\">העתק ללוח הכתיבה</string>\n    <string name=\"chapter_settings_updated\">הגדרות פרק דיפולטי עודכנו</string>\n    <string name=\"action_not_now\">לא עכשיו</string>\n    <string name=\"download_notifier_cache_renewal\">בודק הורדות</string>\n    <string name=\"delete_downloaded\">מחק הורדות</string>\n    <string name=\"action_sort_next_updated\">העדכון הצפוי הבא</string>\n    <string name=\"pref_advanced_summary\">הורד קבצי קריסה, אופטימיזציה לסוללה</string>\n    <string name=\"theme_lavender\">לבנדר</string>\n    <string name=\"information_cloudflare_help\">לחץ כאן לעזרה עם Cloudflare</string>\n    <string name=\"download_notifier_split_page_not_found\">עמוד %d לא נמצא בעת פיצול</string>\n    <string name=\"appwidget_updates_description\">צפה בפריטי הספריה העדכניים ביותר</string>\n    <string name=\"download_notifier_split_page_path_not_found\">נכשל במציאת כתובת עמוד %d</string>\n    <string name=\"pref_downloads_summary\">הורדה אוטומטית, הורד את הבאים</string>\n    <string name=\"pref_appearance_summary\">ערכת נושא, תצורת תאריך ושעה</string>\n    <string name=\"pref_library_summary\">קטגוריות, עדכון כללי, החלקת פרק</string>\n    <string name=\"pref_tracking_summary\">סנכרון חד צדדי, סנכרון משופר</string>\n    <string name=\"pref_backup_summary\">מדריך וגיבויים אוטומטיים</string>\n    <string name=\"information_no_entries_found\">לא נמצאו פריטים בקטגוריה זו</string>\n    <string name=\"action_ok\">בסדר</string>\n    <string name=\"updates_last_update_info\">ספריה עודכנה לאחרונה ב: %s</string>\n    <string name=\"pref_navigate_pan\">שטח תמונה רחבה</string>\n    <string name=\"pref_hide_in_library_items\">הסתר פריטים שכבר בספרייה</string>\n    <string name=\"missing_storage_permission\">הרשאות אחסון לא ניתנו</string>\n    <string name=\"empty_backup_error\">אין פרטי ספרייה לגיבוי</string>\n    <string name=\"create_backup_file_error\">נכשל ביצירת קובץ גיבוי</string>\n    <string name=\"error_user_agent_string_invalid\">מחרוזת משתמש לא תקינה</string>\n    <string name=\"pref_reset_user_agent_string\">איפוס מחרוזת משתמש דיפולטית</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">לא הצליח לפתוח הגדרות מכשיר</string>\n    <string name=\"pref_verbose_logging\">לוג מפורט</string>\n    <string name=\"pref_verbose_logging_summary\">הדפס דוחות שגיאה מפורטים ליומן המערכת (מוריד ביצועים לאפליקציה)</string>\n    <string name=\"overlay_header\">שכבת על</string>\n    <string name=\"day_short\">%d ימים</string>\n    <string name=\"update_check_open\">פתח ב-GitHub</string>\n    <string name=\"pref_chapter_swipe_end\">פרק בהחלקה ימינה</string>\n    <string name=\"pref_invalidate_download_cache\">בטל תוקף של אינדקס ההורדות</string>\n    <string name=\"enhanced_services_not_installed\">זמין אבל המקור לא מותקן: %s</string>\n    <string name=\"tracking_info\">סנכרון חד צדדי לעדכון ההתקדמות בפרקים בשיקות המעקב. קבע מעקב עבור פריטים ספציפיים מכפתור המעקב שלהם.</string>\n    <string name=\"pref_library_update_show_tab_badge\">הצג כמות פרקים שלא נקראו בסמל העדכונים</string>\n    <string name=\"split_tall_images\">פצל תמונה מוארכת</string>\n    <string name=\"pref_dump_crash_logs_summary\">שומר דוח שגיאות לקובץ עבור שיתוף עם המפתחים</string>\n    <string name=\"custom_cover\">כריכה מותאמת אישית</string>\n    <string name=\"track_remove_date_conf_title\">להסיר תאריך?</string>\n    <string name=\"download_ahead\">הורד הלאה</string>\n    <string name=\"label_background_activity\">פעילות רקע</string>\n    <string name=\"label_tracked_titles\">פריטים במעקב</string>\n    <string name=\"pref_user_agent_string\">מחרוזת משתמש דיפולטית</string>\n    <string name=\"copied_to_clipboard_plain\">הועתק ללוח כתיבה</string>\n    <string name=\"are_you_sure\">האם אתה בטוח?</string>\n    <string name=\"source_unsupported\">המקור לא נתמך</string>\n    <string name=\"error_no_match\">לא נמצאה התאמה</string>\n    <string name=\"not_installed\">לא מותקן</string>\n    <string name=\"label_read_duration\">משך קריאה</string>\n    <string name=\"label_titles_in_global_update\">בעדכון כללי</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"library_errors_help\">לזערה לגבי איך לתקן בעיות בעדכוני ספריה, ראה %1$s</string>\n    <string name=\"exception_unknown_host\">לא יכל להשיג את %s</string>\n    <string name=\"pref_update_only_in_release_period\">מחוץ לתקופת הפרסום הצפויה</string>\n    <string name=\"pref_page_rotate\">סובב עמודים רחבים להתאמה</string>\n    <string name=\"updates_last_update_info_just_now\">ממש עכשיו</string>\n    <string name=\"auto_download_while_reading\">הורד אוטומטית בזמן קריאה</string>\n    <string name=\"track_activity_name\">פרטי התחברות למעקב</string>\n    <string name=\"invalid_location\">מיקום לא תקין: %s</string>\n    <string name=\"syncing_library\">מסנכרן ספריה</string>\n    <string name=\"error_user_agent_string_blank\">מחרזות משתמש לא יכולה להיות ריקה</string>\n    <string name=\"last_used_source\">שומש לאחרונה</string>\n    <string name=\"myanimelist_relogin\">בבקשה התחבר ל-MAL שוב</string>\n    <string name=\"label_completed_titles\">פריטים שהושלמו</string>\n    <string name=\"crash_screen_description\">%s נתקל בשגיאה בלתי צפויה. אנו ממליצים שתשתף את דוחות השגיאה שלך בערוץ התמיכה שלנו בדיסקורד.</string>\n    <string name=\"label_read_chapters\">נקראו</string>\n    <string name=\"label_titles_section\">פריטים</string>\n    <string name=\"seconds_short\">%d שניות</string>\n    <string name=\"on_hold_list\">רשימת פריטים בעצירה זמנית</string>\n    <string name=\"unfinished_list\">רשימת פריטים שלא הושלמו</string>\n    <string name=\"update_already_running\">פעולת עדכון כבר פועלת</string>\n    <string name=\"label_tracker_section\">מעקבים</string>\n    <string name=\"pref_page_rotate_invert\">החלף אוריינטציה של עמודים רחבים מסובבים</string>\n    <string name=\"backup_restore_missing_trackers\">מעקבים שדורשים התחברות:</string>\n    <string name=\"complete_list\">רשימת פריטים שהושלמו</string>\n    <string name=\"pref_tablet_ui_mode\">ממשק משתמש טאבלט</string>\n    <string name=\"fdroid_warning\">F-Droid builds לא נתמכים באופן רשמי.\n\\nלחץ כדי ללמוד עוד.</string>\n    <string name=\"track_delete_title\">להסיר את %s ממעקב?</string>\n    <string name=\"track_delete_text\">פעולה זו תסיר את המעקב שלך מקומית.</string>\n    <string name=\"track_delete_remote_text\">הסר גם מ-%s</string>\n    <string name=\"also_set_chapter_settings_for_library\">קבע גם עבור כל הפריטים בספריה</string>\n    <string name=\"network_not_metered\">רק ברשת בלתי מוגבלת</string>\n    <string name=\"pref_dump_crash_logs\">שתף יומני קריסה</string>\n    <string name=\"track_remove_start_date_conf_text\">פעולה זו תסיר את תאריך ההתחלה הקודם שלך מ-%s</string>\n    <string name=\"reading_list\">רשימת קריאה</string>\n    <string name=\"wish_list\">רשימת תכנונים</string>\n    <string name=\"multi_lang\">רבים</string>\n    <string name=\"filter_mode_lighten\">להתחמק / להאיר</string>\n    <string name=\"pref_webtoon_side_padding\">רפד בצדדים</string>\n    <string name=\"library_sync_complete\">סנכרון ספריה הושלם</string>\n    <string name=\"intervals_header\">מרווחי זמן</string>\n    <string name=\"cant_open_last_read_chapter\">לא מסוגל לפתוח את הפרק שנקרא לאחרונה</string>\n    <string name=\"pref_chapter_swipe_start\">פרק בהחלקה שמאלה</string>\n    <string name=\"pref_double_tap_zoom\">לחיצה כפולה לקירוב (זום)</string>\n    <string name=\"updated_version\">עודכן לגרסה %1$s</string>\n    <string name=\"label_total_chapters\">בסך הכל</string>\n    <string name=\"track_error\">שגיאה %1$s: %2$s</string>\n    <string name=\"download_ahead_info\">עובד רק אם הפרק הנוכחי והפרק הבא כבר הורדו.</string>\n    <string name=\"pref_skip_dupe_chapters\">דלג על פרקים כפולים</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"download_cache_invalidated\">תוקף אינדקס ההורדות בוטל</string>\n    <string name=\"webview_data_deleted\">מידע של WebView נוקה בהצלחה</string>\n    <string name=\"pref_reset_viewer_flags_summary\">אפס מצב קריאה ואוריינטציה לכל הסדרות</string>\n    <string name=\"pref_debug_info\">מידע דיבוג</string>\n    <string name=\"licenses\">רישיונות מקורות פתוחים</string>\n    <string name=\"popular\">פופולרי</string>\n    <string name=\"add_tracking\">הוסף מעקב</string>\n    <string name=\"about_dont_kill_my_app\">לחלק מהיצרנים יש הגבלות אפליקציה שהורגות תהליכים ברקע. באתר הזה יש עוד מידע לגבי איך לתקן את זה.</string>\n    <string name=\"track_remove_finish_date_conf_text\">פעולה זו תסיר את תאריך הסיום הקודם שלך מ-%s</string>\n    <string name=\"crash_screen_title\">אופס!</string>\n    <string name=\"crash_screen_restart_application\">אתחל את האפליקציה</string>\n    <string name=\"hour_short\">%d שעות</string>\n    <string name=\"skipped_reason_not_always_update\">דולג בגלל שהספריה לא דורשת עדכונים</string>\n    <string name=\"skipped_reason_not_in_release_period\">דולג בגלל שלא צפוי פרסום היום</string>\n    <string name=\"file_picker_error\">לא נמצאה אפליקציה לאסוף קבצים</string>\n    <string name=\"manga_tracking_tab\">במעקב</string>\n    <string name=\"description_placeholder\">אין תיאור</string>\n    <string name=\"manga_display_interval_title\">בצע אומדן בכל</string>\n    <string name=\"manga_display_modified_interval_title\">קבע לעדכון בכל</string>\n    <string name=\"recent_manga_time\">פרקים %1$s-%2$s</string>\n    <string name=\"label_overview_section\">סקירה</string>\n    <string name=\"appwidget_unavailable_locked\">יישומון לא זמין כשנעילת האפליקציה מופעלת</string>\n    <string name=\"pref_invalidate_download_cache_summary\">הכרח את האפליקציה לבדוק מחדש פרקים שהורדו</string>\n    <string name=\"pref_clear_webview_data\">נקה מידע של WebView</string>\n    <string name=\"pref_refresh_library_covers\">רענן כריכות ספרייה</string>\n    <string name=\"has_results\">בעל תוצאות</string>\n    <string name=\"label_mean_score\">ציון ממוצע</string>\n    <string name=\"label_used\">בשימוש</string>\n    <string name=\"minute_short\">%d דקות</string>\n    <string name=\"action_copy_link\">העתק קישור</string>\n    <string name=\"action_revert_to_default\">אפס לברירת מחדל</string>\n    <string name=\"action_move_to_bottom_all_for_series\">העבר סדרה לתחתית</string>\n    <string name=\"label_auto\">אוטומטי</string>\n    <string name=\"action_sort_tracker_score\">ציון במעקב</string>\n    <string name=\"action_add_anyway\">הוסף בכל זאת</string>\n    <string name=\"onboarding_description\">נגדיר כמה דברים תחילה. ניתן לשנות אותם בכל עת בהגדרות מאוחר יותר.</string>\n    <string name=\"onboarding_storage_help_action\">מדריך אחסון</string>\n    <string name=\"onboarding_permission_install_apps\">הרשאה להתקנת אפליקציות</string>\n    <string name=\"theme_monochrome\">מונוכרום</string>\n    <string name=\"pref_security\">אבטחה</string>\n    <string name=\"pref_firebase\">ניתוח נתונים ודוחות קריסה</string>\n    <string name=\"pref_behavior\">התנהגות</string>\n    <string name=\"action_sort_random\">אקראי</string>\n    <string name=\"onboarding_heading\">ברוכים הבאים!</string>\n    <string name=\"action_bar_up_description\">נווט למעלה</string>\n    <string name=\"pref_onboarding_guide\">מדריך התחלה</string>\n    <string name=\"action_edit_notes\">ערוך הערות</string>\n    <string name=\"action_notes\">הערות</string>\n    <string name=\"theme_nord\">נורד</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">לאחר קריאת פרק</string>\n    <string name=\"ext_remove\">הסר</string>\n    <string name=\"selected\">נבחר</string>\n    <string name=\"not_selected\">לא נבחר</string>\n    <string name=\"action_menu_overflow_description\">אפשרויות נוספות</string>\n    <string name=\"label_data_storage\">נתונים ואחסון</string>\n    <string name=\"onboarding_permission_notifications\">הרשאת התראות</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">שימוש בסוללה ברקע</string>\n    <string name=\"onboarding_permission_action_grant\">הענק</string>\n    <string name=\"pref_library_update_smart_update\">עדכון חכם</string>\n    <string name=\"action_display_unread_badge\">פרקים שלא נקראו</string>\n    <string name=\"action_apply\">החל</string>\n    <string name=\"onboarding_permission_crashlytics_description\">שלח דוחות קריסה אנונימיים למפתחים.</string>\n    <string name=\"onboarding_permission_analytics_description\">שלח נתוני שימוש אנונימיים לשיפור תכונות האפליקציה.</string>\n    <string name=\"onboarding_storage_action_select\">בחר תיקייה</string>\n    <string name=\"onboarding_permission_analytics\">אפשר ניתוח נתונים</string>\n    <string name=\"onboarding_action_skip\">דלג</string>\n    <string name=\"onboarding_action_next\">הבא</string>\n    <string name=\"onboarding_permission_crashlytics\">שלח דוחות קריסה</string>\n    <string name=\"scanlator\">קבוצת תרגום</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/hi/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s मिनट के बाद</item>\n        <item quantity=\"other\">%1$s मिनटों के बाद</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d नया अध्याय</item>\n        <item quantity=\"other\">%1$d नए अध्याय</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">अध्याय %1$s और 1 और</item>\n        <item quantity=\"other\">अध्याय %1$s और %2$d और</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d प्रविष्टि के लिए</item>\n        <item quantity=\"other\">%d प्रविष्टियों के लिए</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">एक्सटेंशन अपडेट उपलब्ध है</item>\n        <item quantity=\"other\">%d एक्सटेंशन अपडेट उपलब्ध हैं</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s बचा हुआ</item>\n        <item quantity=\"other\">%1$s बचे हुए</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d श्रेणी</item>\n        <item quantity=\"other\">%d श्रेणियाँ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s में पूर्ण, %2$s त्रुटि सहित</item>\n        <item quantity=\"other\">%1$s में पूर्ण, %2$s त्रुटियों सहित</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s अध्याय</item>\n        <item quantity=\"other\">%1$s अध्याय</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d ट्रैकर</item>\n        <item quantity=\"other\">%d ट्रैकरस</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d अध्याय छोड़ रहे हैं, या तो स्रोत में यह गायब है या इसे फ़िल्टर कर दिया गया है</item>\n        <item quantity=\"other\">%d अध्याय छोड़ रहे हैं, या तो स्रोत में वे गायब हैं या उन्हें फ़िल्टर कर दिया गया है</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">कल</item>\n        <item quantity=\"other\">%1$d दिन पहले</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">अगला अपठित अध्याय</item>\n        <item quantity=\"other\">अगले %d अपठित अध्याय</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 दिन</item>\n        <item quantity=\"other\">%d दिन</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">अगला अध्याय</item>\n        <item quantity=\"other\">अगले %d अध्याय</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d रेपो</item>\n        <item quantity=\"other\">%d रेपोज़</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 पृष्ठ</item>\n        <item quantity=\"other\">%1$s पृष्ठ</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">कल</item>\n        <item quantity=\"other\">%1$d दिनों में</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s अध्याय गायब है</item>\n        <item quantity=\"other\">%1$s अध्याय गायब हैं</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$d एंट्री ट्रांसफ़र करें?</item>\n        <item quantity=\"other\">%1$d एंट्रियाँ ट्रांसफ़र करें?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">%1$d एंट्री कॉपी करें?</item>\n        <item quantity=\"other\">%1$d एंट्रियाँ कॉपी करें?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">एक प्रविष्टि त्यागी गई</item>\n        <item quantity=\"other\">%1$d प्रविष्टियाँ त्यागी गईं</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/hi/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">नाम</string>\n    <string name=\"categories\">श्रेणियाँ</string>\n    <string name=\"manga\">लाइब्रेरी के आइटम</string>\n    <string name=\"chapters\">अध्याय</string>\n    <string name=\"track\">पदचिह्न</string>\n    <string name=\"history\">इतिहास</string>\n    <string name=\"label_settings\">सेटिंग्स</string>\n    <string name=\"label_download_queue\">डाउनलोड सूची</string>\n    <string name=\"label_library\">पुस्तकालय</string>\n    <string name=\"label_recent_manga\">इतिहास</string>\n    <string name=\"label_recent_updates\">नए अपडेट</string>\n    <string name=\"label_backup\">बैकअप और पुनर्स्थापना</string>\n    <string name=\"action_settings\">सेटिंग</string>\n    <string name=\"action_filter\">फिल्टर</string>\n    <string name=\"action_filter_bookmarked\">पृष्ठ स्मृति करा हुआ</string>\n    <string name=\"action_filter_unread\">अपठित</string>\n    <string name=\"action_filter_empty\">फिल्टर हटाए</string>\n    <string name=\"action_sort_alpha\">वर्णक्रमानुसार</string>\n    <string name=\"action_sort_total\">कुल अध्याय</string>\n    <string name=\"action_sort_last_read\">आखिर में पढ़ा हुआ</string>\n    <string name=\"action_search\">खोज</string>\n    <string name=\"action_global_search\">वैश्विक खोज</string>\n    <string name=\"action_select_all\">सभी का चयन करे</string>\n    <string name=\"action_mark_as_read\">पढ़ा हुआ चिह्न करे</string>\n    <string name=\"action_mark_as_unread\">अपठित चिह्न करे</string>\n    <string name=\"action_mark_previous_as_read\">पिछले को पढ़ा हुआ चिह्न करे</string>\n    <string name=\"action_download\">डाउनलोड</string>\n    <string name=\"action_bookmark\">बुकमार्क अध्याय</string>\n    <string name=\"action_remove_bookmark\">अध्याय बुकमार्क हटाये</string>\n    <string name=\"action_delete\">हटाये</string>\n    <string name=\"action_update_library\">पुस्तकालय अपडेट करें</string>\n    <string name=\"action_edit\">संपादित करें</string>\n    <string name=\"action_add\">जोड़े</string>\n    <string name=\"action_add_category\">श्रेणियाँ जोड़े</string>\n    <string name=\"action_edit_categories\">श्रेणियाँ संपादित करें</string>\n    <string name=\"action_rename_category\">श्रेणियाँ का पुन:नामकरण</string>\n    <string name=\"action_move_category\">श्रेणियां निर्धारित करें</string>\n    <string name=\"action_edit_cover\">कवर संपादित करें</string>\n    <string name=\"action_pause\">ठहराव</string>\n    <string name=\"action_previous_chapter\">पिछला अध्याय</string>\n    <string name=\"action_next_chapter\">अगला अध्याय</string>\n    <string name=\"action_retry\">फिर से कोशिश करे</string>\n    <string name=\"action_remove\">हटाए</string>\n    <string name=\"action_resume\">दुबारा आरम्भ करना</string>\n    <string name=\"action_open_in_browser\">ब्राउज़र में खोलें</string>\n    <string name=\"action_display_mode\">प्रदर्शन प्रणाली</string>\n    <string name=\"action_display\">प्रदर्शन</string>\n    <string name=\"action_display_grid\">कॉम्पैक्ट ग्रिड</string>\n    <string name=\"action_display_list\">सूची</string>\n    <string name=\"action_display_download_badge\">डाउनलोड किए गए अध्याय</string>\n    <string name=\"action_cancel\">रद्द करें</string>\n    <string name=\"action_sort\">श्रेणी के अनुसार रखना</string>\n    <string name=\"action_install\">स्थापित करें</string>\n    <string name=\"action_share\">बाटे</string>\n    <string name=\"action_save\">संरक्षित करे</string>\n    <string name=\"action_reset\">फिर से स्थापित करे</string>\n    <string name=\"action_undo\">पूर्ववत् करें</string>\n    <string name=\"action_open_log\">लॉग खोले</string>\n    <string name=\"action_restore\">पुनःस्थापन करे</string>\n    <string name=\"loading\">लोड हो रहा है…</string>\n    <string name=\"app_not_available\">ऐप उपलब्ध नहीं</string>\n    <string name=\"pref_category_general\">सामान्य</string>\n    <string name=\"pref_category_reader\">पाठमाला</string>\n    <string name=\"pref_category_downloads\">डाउनलोड</string>\n    <string name=\"pref_category_tracking\">पदचिह्न</string>\n    <string name=\"pref_category_advanced\">विकसित</string>\n    <string name=\"pref_category_about\">संबंध में</string>\n    <string name=\"pref_library_columns\">प्रति पंक्ति आइटम्स</string>\n    <string name=\"portrait\">चित्र</string>\n    <string name=\"landscape\">लैंडस्केप</string>\n    <string name=\"pref_library_update_interval\">स्वचालित अद्यतन</string>\n    <string name=\"update_never\">ऑफ़</string>\n    <string name=\"update_6hour\">हर ६ घंटे</string>\n    <string name=\"update_12hour\">हर १२ घंटे</string>\n    <string name=\"update_24hour\">हर रोज़</string>\n    <string name=\"update_48hour\">हर २ दिन</string>\n    <string name=\"update_weekly\">साप्ताहिक</string>\n    <string name=\"all\">समस्त</string>\n    <string name=\"pref_library_update_restriction\">स्वचालित अपडेट डिवाइस प्रतिबंध</string>\n    <string name=\"charging\">चार्ज होते समय</string>\n    <string name=\"pref_update_only_non_completed\">पूरी की गई श्रृंखला</string>\n    <string name=\"pref_auto_update_manga_sync\">पढ़ने के बाद प्रगति अपडेट करें</string>\n    <string name=\"default_category\">डिफ़ॉल्ट श्रेणी</string>\n    <string name=\"default_category_summary\">हमेशा पूछे</string>\n    <string name=\"pref_fullscreen\">पूर्ण स्क्रीन</string>\n    <string name=\"pref_page_transitions\">चेतन पृष्ठ संक्रमण</string>\n    <string name=\"pref_show_page_number\">पृष्ठ संख्या दिखाएं</string>\n    <string name=\"pref_crop_borders\">किनारा कांटे</string>\n    <string name=\"pref_custom_brightness\">अपनी पसंदीदा ब्राइटनेस</string>\n    <string name=\"pref_custom_color_filter\">पसंदीदा कलर फिल्टर</string>\n    <string name=\"pref_keep_screen_on\">स्क्रीन को चालू रखें</string>\n    <string name=\"pref_reader_navigation\">पथ प्रदर्शन</string>\n    <string name=\"pref_read_with_volume_keys\">ध्वनि कुंजी</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">ध्वनि कुंजी पलटे</string>\n    <string name=\"pref_reader_theme\">पीछे का रंग</string>\n    <string name=\"white_background\">सफेद</string>\n    <string name=\"black_background\">काला</string>\n    <string name=\"pref_viewer_type\">डिफ़ॉल्ट रीडिंग मोड</string>\n    <string name=\"left_to_right_viewer\">बाएं से दाएं</string>\n    <string name=\"right_to_left_viewer\">दाएं से बाएं</string>\n    <string name=\"vertical_viewer\">सीधा</string>\n    <string name=\"webtoon_viewer\">लंबी पट्टी</string>\n    <string name=\"pref_image_scale_type\">मापन प्ररूप</string>\n    <string name=\"scale_type_fit_screen\">उपयुक्त स्क्रीन</string>\n    <string name=\"scale_type_stretch\">खींचें</string>\n    <string name=\"scale_type_fit_width\">चौड़ाई पर फ़िट</string>\n    <string name=\"scale_type_fit_height\">ऊंचाई पर फ़िट</string>\n    <string name=\"scale_type_original_size\">मूल आकार</string>\n    <string name=\"scale_type_smart_fit\">चतुर फ़िट</string>\n    <string name=\"pref_zoom_start\">ज़ूम शुरू की स्थिति</string>\n    <string name=\"zoom_start_automatic\">स्वचालित</string>\n    <string name=\"zoom_start_left\">बाएं</string>\n    <string name=\"zoom_start_right\">दाएँ</string>\n    <string name=\"zoom_start_center\">मध्यविंदु</string>\n    <string name=\"pref_rotation_type\">नियमित आवर्तन</string>\n    <string name=\"rotation_free\">मुक्त</string>\n    <string name=\"rotation_force_portrait\">सीधे बंद</string>\n    <string name=\"rotation_force_landscape\">मजबूर लैंडस्केप</string>\n    <string name=\"color_filter_r_value\">लाल</string>\n    <string name=\"color_filter_g_value\">हरा</string>\n    <string name=\"color_filter_b_value\">नीला</string>\n    <string name=\"color_filter_a_value\">पारदर्शिता</string>\n    <string name=\"pref_remove_after_marked_as_read\">\\'पढ़ें\\' के रूप में खुद से चिह्नित करने के बाद</string>\n    <string name=\"pref_remove_after_read\">पढ़ने के बाद स्वचालित रूप से हटाएं</string>\n    <string name=\"disabled\">बंद करें</string>\n    <string name=\"last_read_chapter\">अंतिम पढ़ा अध्याय</string>\n    <string name=\"second_to_last\">दूसरा से अंतिम पढ़ा गया अध्याय</string>\n    <string name=\"third_to_last\">तीसरा से अंतिम पढ़ा गया अध्याय</string>\n    <string name=\"fourth_to_last\">चौथे से अंतिम पढ़ा गया अध्याय</string>\n    <string name=\"fifth_to_last\">पाचवे से अंतिम पढ़ा गया अध्याय</string>\n    <string name=\"pref_download_new\">नए अध्याय डाउनलोड करें</string>\n    <string name=\"services\">सेवाएं</string>\n    <string name=\"pref_create_backup\">बैकअप बनाये</string>\n    <string name=\"pref_create_backup_summ\">वर्तमान पुस्तकालय को पुनर्स्थापित करने के लिए उपयोग किया जा सकता है</string>\n    <string name=\"pref_restore_backup\">बैकअप पुनर्स्थापित करे</string>\n    <string name=\"pref_restore_backup_summ\">बैकअप फ़ाइल से लाइब्रेरी पुनर्स्थापित करें</string>\n    <string name=\"pref_backup_interval\">बैकअप फ़्रीक्वेंसी</string>\n    <string name=\"backup_created\">बैकअप बनाया गया है</string>\n    <string name=\"restore_completed\">पुनर्स्थापना पूर्ण हुआ</string>\n    <string name=\"backup_choice\">आप बैकअप के लिए क्या चाहते हैं?</string>\n    <string name=\"restoring_backup\">बैकअप को पुनर्स्थापित करना</string>\n    <string name=\"creating_backup\">बैकअप बनाना</string>\n    <string name=\"pref_clear_chapter_cache\">अध्याय कैश साफ़ करें</string>\n    <string name=\"used_cache\">उपयोग किया गया: %1$s</string>\n    <string name=\"cache_deleted\">कैश साफ़ किया गया %1$d फ़ाइलों को हटा दिया गया है</string>\n    <string name=\"cache_delete_error\">साफ़ करने के दौरान त्रुटि हुई</string>\n    <string name=\"pref_clear_cookies\">कुकीज़ को साफ़ करें</string>\n    <string name=\"cookies_cleared\">कुकीज़ को साफ़ किया हुआ</string>\n    <string name=\"pref_clear_database\">डेटाबेस साफ़ करें</string>\n    <string name=\"pref_clear_database_summary\">उन आइटम का इतिहास हटाएं जो आपकी पुस्तकालय में सहेजी नहीं गई हैं</string>\n    <string name=\"clear_database_completed\">प्रविष्टियां हटाई गईं</string>\n    <string name=\"version\">संस्करण</string>\n    <string name=\"pref_enable_acra\">क्रैश रिपोर्ट भेजें</string>\n    <string name=\"pref_acra_summary\">किसी भी बग को ठीक करने में मदद करता है कोई संवेदनशील डेटा नहीं भेजा जाएगा</string>\n    <string name=\"login_title\">%1$s के लिए लॉगिन</string>\n    <string name=\"username\">उपयोगकर्ता नाम</string>\n    <string name=\"password\">पासवर्ड</string>\n    <string name=\"login\">लॉग इन करें</string>\n    <string name=\"login_success\">लॉग इन किया गया</string>\n    <string name=\"unknown_error\">अज्ञात त्रुटि</string>\n    <string name=\"updating_category\">श्रेणी अपडेट कर रहा है</string>\n    <string name=\"no_more_results\">कोई और परिणाम नहीं है</string>\n    <string name=\"local_source\">स्थानीय स्रोत</string>\n    <string name=\"other_source\">अन्य</string>\n    <string name=\"action_global_search_hint\">वैश्विक खोज …</string>\n    <string name=\"latest\">नवीनतम</string>\n    <string name=\"browse\">ब्राउज</string>\n    <string name=\"ongoing\">चल रही है</string>\n    <string name=\"unknown\">अज्ञात</string>\n    <string name=\"licensed\">लाइसेंस प्राप्त</string>\n    <string name=\"remove_from_library\">लाइब्रेरी से निकालें</string>\n    <string name=\"delete_downloads_for_manga\">डाउनलोड किए गए अध्याय हटाएं?</string>\n    <string name=\"display_mode_chapter\">अध्याय %1$s</string>\n    <string name=\"chapter_downloading_progress\">डाउनलोड किया जा रहा है (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">त्रुटि</string>\n    <string name=\"chapter_paused\">रोके गए</string>\n    <string name=\"show_title\">स्रोत शीर्षक</string>\n    <string name=\"show_chapter_number\">अध्याय संख्या</string>\n    <string name=\"sort_by_source\">स्रोत से</string>\n    <string name=\"sort_by_number\">अध्याय संख्या से</string>\n    <string name=\"manga_download\">डाउनलोड</string>\n    <string name=\"download_unread\">अपठित</string>\n    <string name=\"confirm_delete_chapters\">क्या आप वाकई चयनित अध्यायों को हटाना चाहते हैं?</string>\n    <string name=\"manga_tracking_tab\">पदचिह्न</string>\n    <string name=\"reading\">पठन</string>\n    <string name=\"completed\">समाप्त</string>\n    <string name=\"dropped\">छोड़ दिया</string>\n    <string name=\"on_hold\">होल्ड पर</string>\n    <string name=\"plan_to_read\">पढ़ने की योजना</string>\n    <string name=\"score\">स्कोर</string>\n    <string name=\"title\">शीर्षक</string>\n    <string name=\"status\">स्थिति</string>\n    <string name=\"error_category_exists\">इस नाम के साथ एक श्रेणी पहले से मौजूद है!</string>\n    <string name=\"snack_categories_deleted\">श्रेणियाँ हटाई गयी</string>\n    <string name=\"dialog_with_checkbox_remove_description\">यह इस अध्याय की पठन तिथि को निकाल देगा क्या आप निश्चित है?</string>\n    <string name=\"dialog_with_checkbox_reset\">इस प्रविष्टि के लिए सभी अध्यायों को रीसेट करें</string>\n    <string name=\"snack_add_to_library\">पुस्तकालय में जोड़ें?</string>\n    <string name=\"picture_saved\">चित्र सहेजा गया</string>\n    <string name=\"custom_filter\">इच्छा अनुसार फिल्टर</string>\n    <string name=\"set_as_cover\">कवर के रूप में सेट करें</string>\n    <string name=\"cover_updated\">कवर अपडेट किया गया</string>\n    <string name=\"chapter_progress\">पृष्ठ: %1$d</string>\n    <string name=\"no_next_chapter\">अगले अध्याय नहीं मिला</string>\n    <string name=\"decode_image_error\">छवि को लोड नहीं किया जा सका</string>\n    <string name=\"confirm_set_image_as_cover\">कवर कला के रूप में इस छवि का उपयोग करें?</string>\n    <string name=\"download_queue_error\">अध्याय डाउनलोड नहीं कर सका। आप डाउनलोड अनुभाग में फिर से कोशिश कर सकते हैं</string>\n    <string name=\"notification_new_chapters\">नए अध्याय पाए गए</string>\n    <string name=\"notification_cover_update_failed\">कवर को अपडेट करने में विफल</string>\n    <string name=\"notification_first_add_to_library\">कृपया यह करने से पहले प्रविष्टि को पुस्तकालय में जोड़ें</string>\n    <string name=\"file_select_cover\">कवर छवि का चयन करें</string>\n    <string name=\"file_select_backup\">बैकअप फ़ाइल का चयन करें</string>\n    <string name=\"update_check_confirm\">डाउनलोड</string>\n    <string name=\"update_check_no_new_updates\">कोई नया अद्यतन उपलब्ध नहीं है</string>\n    <string name=\"update_check_notification_download_in_progress\">डाउनलोडिंग…</string>\n    <string name=\"update_check_notification_download_complete\">अपडेट इंस्टॉल करने के लिए यहा टेप करें</string>\n    <string name=\"update_check_notification_download_error\">डाउनलोड त्रुटि</string>\n    <string name=\"update_check_notification_update_available\">नया संस्करण उपलब्ध है!</string>\n    <string name=\"information_no_downloads\">कोई डाउनलोड नहीं है</string>\n    <string name=\"information_no_recent\">कोई हालिया अपडेट नहीं</string>\n    <string name=\"information_no_recent_manga\">हाल ही में कुछ भी नहीं पढ़ा</string>\n    <string name=\"information_empty_library\">आपका पुस्तकालय खाली है़ें। स्रोतों से अपने पुस्तकालय में श्रृंखला जोड़ें</string>\n    <string name=\"information_empty_category\">आपके पास कोई श्रेणियां नहीं हैं। अपने पुस्तकालय के आयोजन के लिए एक बनाने के लिए प्लस बटन को दबाएं।</string>\n    <string name=\"download_notifier_downloader_title\">डाउनलोडर</string>\n    <string name=\"download_notifier_title_error\">त्रुटि</string>\n    <string name=\"download_notifier_unknown_error\">अनपेक्षित त्रुटि के कारण अध्याय डाउनलोड नहीं किया जा सका</string>\n    <string name=\"download_notifier_text_only_wifi\">कोई वाई-फ़ाई कनेक्शन उपलब्ध नहीं है</string>\n    <string name=\"download_notifier_no_network\">कोई नेटवर्क कनेक्शन उपलब्ध नहीं है</string>\n    <string name=\"download_notifier_download_paused\">डाउनलोड रोक दिया है</string>\n    <string name=\"channel_common\">सामान्य</string>\n    <string name=\"label_migration\">प्रवास</string>\n    <string name=\"label_extensions\">विस्तार</string>\n    <string name=\"label_extension_info\">विस्तार की जानकारी</string>\n    <string name=\"ext_update\">अद्यतन</string>\n    <string name=\"ext_install\">स्थापित करें</string>\n    <string name=\"ext_pending\">अपूर्ण</string>\n    <string name=\"ext_downloading\">डाउनलोड कर रहा है</string>\n    <string name=\"ext_installing\">स्थापना</string>\n    <string name=\"ext_installed\">स्थापित</string>\n    <string name=\"ext_trust\">भरोसा</string>\n    <string name=\"ext_untrusted\">अविश्वस्त</string>\n    <string name=\"ext_uninstall\">स्थापना रद्द करें</string>\n    <string name=\"untrusted_extension\">अविश्वस्त एक्सटेंशन</string>\n    <string name=\"untrusted_extension_message\">यह एक्सटेंशन एक अविश्वस्त प्रमाणपत्र के साथ हस्ताक्षरित हुआ था और सक्रिय नहीं हुआ था।\n\\n\n\\nदुर्भावनापूर्ण विस्तार, किसी भी लॉगिन क्रेडेंशियल्स को ताचियोमी में संग्रहीत या मनमाना कोड निष्पादित कर सकता है\n\\n\n\\nइस प्रमाणपत्र पर विश्वास करके आप इन जोखिमों को स्वीकार करते हैं।</string>\n    <string name=\"pref_double_tap_anim_speed\">डबल टैप एनीमेशन गति</string>\n    <string name=\"double_tap_anim_speed_0\">कोई एनीमेशन नहीं</string>\n    <string name=\"double_tap_anim_speed_normal\">साधारण</string>\n    <string name=\"double_tap_anim_speed_fast\">तेज</string>\n    <string name=\"manga_added_library\">पुस्तकालय में जोड़ा गया</string>\n    <string name=\"manga_removed_library\">लाइब्रेरी से निकाला गया</string>\n    <string name=\"copied_to_clipboard\">क्लिपबोर्ड पर नकल:\n\\n%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">शामिल करने के लिए डेटा का चयन करें</string>\n    <string name=\"migrate\">प्रवास</string>\n    <string name=\"copy\">नकल</string>\n    <string name=\"pager_viewer\">पृष्ठांकित</string>\n    <string name=\"source_not_installed\">स्रोत स्थापित नहीं है : %1$s</string>\n    <string name=\"repeating\">फिर से पढाना</string>\n    <string name=\"track_status\">स्थिति</string>\n    <string name=\"track_type\">प्रकार</string>\n    <string name=\"transition_finished\">समाप्त:</string>\n    <string name=\"transition_current\">प्रचलित:</string>\n    <string name=\"transition_next\">अगला:</string>\n    <string name=\"transition_previous\">पिछला:</string>\n    <string name=\"transition_no_next\">कोई अगला अध्याय नहीं है</string>\n    <string name=\"transition_no_previous\">कोई पिछला अध्याय नहीं है</string>\n    <string name=\"transition_pages_loading\">पेज लोड हो रहे है …</string>\n    <string name=\"transition_pages_error\">पृष्ठों को लोड करने में विफल है: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">लंबे टैप पर क्रियाएँ दिखाएँ</string>\n    <string name=\"action_open_in_web_view\">WebView में खोलें</string>\n    <string name=\"pref_skip_read_chapters\">पढ़े हुए अध्यायों को छोड़ें</string>\n    <string name=\"pref_color_filter_mode\">रंग फिल्टर मिश्रण मोड</string>\n    <string name=\"filter_mode_overlay\">ओवरले</string>\n    <string name=\"filter_mode_multiply\">गुणा</string>\n    <string name=\"filter_mode_screen\">स्क्रीन</string>\n    <string name=\"filter_mode_lighten\">चकमा/हल्का</string>\n    <string name=\"filter_mode_darken\">जल/गहरा</string>\n    <string name=\"label_help\">मदद</string>\n    <string name=\"no_results_found\">कोई परिणाम नहीं मिला</string>\n    <string name=\"migration_selection_prompt\">से माइग्रेट करने के लिए एक स्रोत का चयन करें</string>\n    <string name=\"action_webview_back\">पिछली तरफ</string>\n    <string name=\"action_webview_forward\">आगे की ओर</string>\n    <string name=\"action_webview_refresh\">रीफ़्रेश करें</string>\n    <string name=\"pref_category_library\">पुस्तकालय</string>\n    <string name=\"ext_obsolete\">अप्रचलित</string>\n    <string name=\"obsolete_extension_message\">यह एक्सटेंशन अब उपलब्ध नहीं है। यह अब शायद ठीक से काम न करे और मसला खड़ा करे। इसे अनइंस्टॉल करने की सलाह दी गई है।</string>\n    <string name=\"pref_date_format\">दिनांक स्वरूप</string>\n    <string name=\"pref_category_library_update\">वैश्विक अपडेट</string>\n    <string name=\"logout_title\">%1$s से लॉगआउट करें?</string>\n    <string name=\"logout\">लॉग आउट</string>\n    <string name=\"logout_success\">अब आप लॉग आउट है</string>\n    <string name=\"paused\">रोका हुआ</string>\n    <string name=\"label_more\">अन्य</string>\n    <string name=\"action_sort_latest_chapter\">नवीनतम अध्याय</string>\n    <string name=\"action_view_chapters\">अध्याय देखें</string>\n    <string name=\"action_cancel_all\">सब रद्द करो</string>\n    <string name=\"theme_light\">बंद</string>\n    <string name=\"theme_dark\">चालू करे</string>\n    <string name=\"theme_system\">सिस्टम का पालन करें</string>\n    <string name=\"pref_manage_notifications\">सूचनाओं का प्रबंधन</string>\n    <string name=\"pref_category_security\">सुरक्षा और गोपनीयता</string>\n    <string name=\"lock_with_biometrics\">खोलने की आवश्यकता है</string>\n    <string name=\"lock_when_idle\">निष्क्रिय होने पर लॉक करें</string>\n    <string name=\"lock_always\">हमेशा</string>\n    <string name=\"lock_never\">कभी नहीँ</string>\n    <string name=\"secure_screen\">स्क्रीन सुरक्षित करें</string>\n    <string name=\"ext_updates_pending\">अपडेट लंबित हैं</string>\n    <string name=\"pref_cutout_short\">कटआउट क्षेत्र में सामग्री दिखाएं</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare को बायपास करने में विफल</string>\n    <string name=\"information_webview_outdated\">बेहतर संगतता के लिए कृपया WebView ऐप को अपडेट करें</string>\n    <string name=\"channel_new_chapters\">अध्याय अद्यतन</string>\n    <string name=\"secure_screen_summary\">सुरक्षित स्क्रीन एप्लिकेशन स्विच करते समय एप्लिकेशन सामग्री छिपाता हैं और स्क्रीनशॉट ब्लॉक करता हैं</string>\n    <string name=\"pref_category_display\">प्रदर्शन</string>\n    <string name=\"notification_chapters_single\">अध्याय %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">अध्याय %1$s और %2$d अधिक</string>\n    <string name=\"notification_chapters_multiple\">अध्याय %1$s</string>\n    <string name=\"hide_notification_content\">अधिसूचना सामग्री छुपाएं</string>\n    <string name=\"pref_disable_battery_optimization\">बैटरी अनुकूलन को अक्षम करना</string>\n    <string name=\"pref_disable_battery_optimization_summary\">पृष्ठभूमि पुस्तकालय अपडेट और बैकअप के साथ मदद करता है</string>\n    <string name=\"battery_optimization_disabled\">बैटरी अनुकूलन पहले से ही अक्षम है</string>\n    <string name=\"email\">ईमेल पता</string>\n    <string name=\"pref_always_show_chapter_transition\">हमेशा अध्याय संक्रमण दिखाएं</string>\n    <string name=\"action_menu\">मेन्यू</string>\n    <string name=\"action_newest\">नवीनतम</string>\n    <string name=\"action_oldest\">सबसे पुराना</string>\n    <string name=\"action_move_to_top\">शीर्ष पर ले जाएँ</string>\n    <string name=\"action_move_to_bottom\">नीचे की ओर ले जाएं</string>\n    <string name=\"channel_ext_updates\">एक्सटेंशन अपडेट</string>\n    <string name=\"updating_library\">अद्यतन पुस्तकालय</string>\n    <string name=\"pref_category_reading\">पठन</string>\n    <string name=\"pref_skip_filtered_chapters\">फ़िल्टर किए गए अध्यायों को छोड़ें</string>\n    <string name=\"label_sources\">स्रोत</string>\n    <string name=\"pinned_sources\">पिन की गई</string>\n    <string name=\"pref_webtoon_side_padding\">साइड पैडिंग</string>\n    <string name=\"vertical_plus_viewer\">गैप के साथ लंबी पट्टी</string>\n    <string name=\"action_unpin\">अनपिन</string>\n    <string name=\"action_pin\">पिन</string>\n    <string name=\"action_select_inverse\">विलोम का चयन करें</string>\n    <string name=\"add_tracking\">ट्रैकिंग जोड़ें</string>\n    <string name=\"in_library\">पुस्तकालय में</string>\n    <string name=\"add_to_library\">पुस्तकालय में जोड़ें</string>\n    <string name=\"manga_info_collapse\">कम</string>\n    <string name=\"manga_info_expand\">अधिक</string>\n    <string name=\"information_webview_required\">ताचियोमी के लिए WebView आवश्यक है</string>\n    <string name=\"licenses\">ओपन सोर्स लाइसेंस</string>\n    <string name=\"website\">वेबसाइट</string>\n    <string name=\"label_downloaded_only\">केवल डाउनलोड किए गए</string>\n    <string name=\"recent_manga_time\">अध्याय %1$s – %2$s</string>\n    <string name=\"restoring_backup_error\">बैकअप बहाल करने में विफल रहा</string>\n    <string name=\"creating_backup_error\">बैकअप फेल</string>\n    <string name=\"restoring_backup_canceled\">पुनर्स्थापना रद्द की गई</string>\n    <string name=\"restore_in_progress\">पुनर्स्थापना पहले से ही प्रगति पर है</string>\n    <string name=\"backup_in_progress\">बैकअप पहले से ही प्रगति में है</string>\n    <string name=\"last_used_source\">आखरी इस्त्तमाल किया गया</string>\n    <string name=\"check_for_updates\">अद्यतन के लिए जाँच</string>\n    <string name=\"local_source_help_guide\">स्थानीय स्रोत गाइड</string>\n    <string name=\"restore_duration\">%1$02d मिनट, %2$02d सेकंड</string>\n    <string name=\"downloaded_only_summary\">आपकी पुस्तकालय में सभी आइटम को फ़िल्टर करता है</string>\n    <string name=\"viewer\">पढ़न मोड</string>\n    <string name=\"pref_category_for_this_series\">इस श्रृंखला के लिए</string>\n    <string name=\"gray_background\">ग्रे</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">डिवाइस सेटिंग नहीं खोल सका</string>\n    <string name=\"tracking_info\">ट्रैकिंग सेवाओं में अध्याय की प्रगति को अद्यतन करने के लिए एकतरफा सिंक। अपने ट्रैकिंग बटन से व्यक्तिगत प्रविष्टियों के लिए ट्रैकिंग सेट अप करें।</string>\n    <string name=\"pref_refresh_library_covers\">रिफ्रेश पुस्तकालय मंगा कवर</string>\n    <string name=\"sort_by_upload_date\">अपलोड तिथि द्वारा</string>\n    <string name=\"label_data\">डेटा</string>\n    <string name=\"backup_restore_missing_sources\">अनुपलब्ध स्रोत:</string>\n    <string name=\"invalid_backup_file_missing_manga\">बैकअप में कोई पुस्तकालय आइटम नहीं हैं।</string>\n    <string name=\"invalid_backup_file\">अमान्य बैकअप फ़ाइल:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">लाइब्रेरी को अपडेट करते समय नए कवर और विवरण की जांच करें</string>\n    <string name=\"pref_library_update_refresh_metadata\">मेटाडेटा को स्वचालित रूप से ताज़ा करें</string>\n    <string name=\"action_migrate\">प्रवास</string>\n    <string name=\"tabs_header\">टैब</string>\n    <string name=\"action_display_show_tabs\">श्रेणी टैब दिखाएं</string>\n    <string name=\"action_display_comfortable_grid\">आरामदायक ग्रिड</string>\n    <string name=\"page_list_empty_error\">कोई पृष्ठ नहीं मिला</string>\n    <string name=\"action_disable_all\">सभी को अक्षम करें</string>\n    <string name=\"action_enable_all\">सभी को सक्षम करें</string>\n    <string name=\"pref_show_reading_mode_summary\">पाठक के खुलने पर संक्षेप में वर्तमान मोड दिखाएं</string>\n    <string name=\"pref_show_reading_mode\">रीडिंग मोड दिखाएं</string>\n    <string name=\"loader_not_implemented_error\">स्रोत नहीं मिला</string>\n    <string name=\"action_disable\">बंद करें</string>\n    <string name=\"action_start\">प्रारंभ</string>\n    <string name=\"label_network\">नेटवर्क</string>\n    <string name=\"tapping_inverted_both\">दोनों</string>\n    <string name=\"tapping_inverted_vertical\">शीर्ष से असंतत</string>\n    <string name=\"tapping_inverted_horizontal\">क्षैतिज</string>\n    <string name=\"tapping_inverted_none\">कोई नहीं</string>\n    <string name=\"pref_read_with_tapping_inverted\">टैप ज़ोन उलटें</string>\n    <string name=\"unknown_status\">अज्ञात स्थिति</string>\n    <string name=\"unknown_author\">अज्ञात लेखक</string>\n    <string name=\"requires_app_restart\">प्रभावी होने के लिए एप्लिकेशन पुनरारंभ की आवश्यकता होती है</string>\n    <string name=\"whats_new\">नया क्या है</string>\n    <string name=\"download_insufficient_space\">कम संग्रहण स्थान के कारण अध्याय डाउनलोड नहीं कर सके</string>\n    <string name=\"action_global_search_query\">विश्व स्तर पर \\\"%1$s\\\" के लिए खोजें</string>\n    <string name=\"updated_version\">v%1$s तक अद्यतन</string>\n    <string name=\"pref_category_reading_mode\">पढ़न मोड</string>\n    <string name=\"pref_category_theme\">थीम</string>\n    <string name=\"action_sort_date_added\">तारीख को जोड़ा गया</string>\n    <string name=\"no_pinned_sources\">कोई पिन किया हुआ सोर्स नही है</string>\n    <string name=\"channel_complete\">पूर्ण</string>\n    <string name=\"channel_progress\">प्रगती</string>\n    <string name=\"channel_errors\">त्रुटियाँ</string>\n    <string name=\"backup_restore_missing_trackers\">ट्रैकर्स में लॉग इन नहीं किया गया:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">बुकमार्क किए गए अध्यायों को हटाने की अनुमति दें</string>\n    <string name=\"pref_category_delete_chapters\">अध्यायों को हटाएं</string>\n    <string name=\"ext_nsfw_warning\">इसमें NSFW (18+) सामग्री हो सकती है</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">यह अनौपचारिक या संभावित रूप से फ़्लैग किए गए एक्सटेंशन को ऐप के भीतर NSFW (18+) सामग्री के सामने आने से नहीं रोकता है।</string>\n    <string name=\"chapter_settings_updated\">अपडेट किए गए डिफ़ॉल्ट अध्याय सेटिंग्स</string>\n    <string name=\"no_chapters_error\">कोई अध्याय नहीं मिला</string>\n    <string name=\"set_chapter_settings_as_default\">डिफ़ॉल्ट के रूप में सेट करें</string>\n    <string name=\"also_set_chapter_settings_for_library\">मेरी पुस्तकालय में सभी एन्ट्री पर भी लागू करें</string>\n    <string name=\"confirm_set_chapter_settings\">क्या आप वाकई इन सेटिंग्स को डिफ़ॉल्ट के रूप में सहेजना चाहते हैं?</string>\n    <string name=\"chapter_settings\">अध्याय सेटिंग्स</string>\n    <string name=\"share_page_info\">%1$s: %2$s, पृष्ठ %3$d</string>\n    <string name=\"downloaded_chapters\">डाउनलोड किए गए अध्याय</string>\n    <string name=\"manga_from_library\">पुस्तकालय से</string>\n    <string name=\"action_search_settings\">खोज सेंटिंग</string>\n    <string name=\"pref_incognito_mode_summary\">इतिहास पढ़ने से रोक देता है</string>\n    <string name=\"pref_incognito_mode\">इंकॉग्निटो मोड</string>\n    <string name=\"pref_clear_history\">इतिहास मिटा दें</string>\n    <string name=\"clear_history_confirmation\">क्या आपको यकीन है? सारा इतिहास खो जाएगा।</string>\n    <string name=\"clear_history_completed\">इतिहास हटाया गया</string>\n    <string name=\"spen_next_page\">अगला पृष्ठ</string>\n    <string name=\"spen_previous_page\">पिछला पृष्ठ</string>\n    <string name=\"migration_help_guide\">स्रोत माइग्रेशन गाइड</string>\n    <string name=\"pref_show_nsfw_source\">स्रोतों और एक्सटेंशन सूचियों में दिखाएं</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) स्रोत</string>\n    <string name=\"file_picker_error\">कोई फ़ाइल पिकर ऐप नहीं मिला</string>\n    <string name=\"myanimelist_relogin\">कृपया फिर से MAL पर लॉगिन करें</string>\n    <string name=\"track_finished_reading_date\">समाप्ति की तिथि</string>\n    <string name=\"track_started_reading_date\">आरंभ करने की तिथि</string>\n    <string name=\"pref_dump_crash_logs_summary\">डेवलपर्स के साथ साझा करने के लिए फ़ाइल में त्रुटि लॉग सहेजता है</string>\n    <string name=\"pref_dump_crash_logs\">क्रैश लॉग शेयर करें</string>\n    <string name=\"pref_viewer_nav\">टैप ज़ोन</string>\n    <string name=\"right_and_left_nav\">दाएं और बाएं</string>\n    <string name=\"edge_nav\">धार</string>\n    <string name=\"kindlish_nav\">किंडल-जैसे</string>\n    <string name=\"l_nav\">एल आकार</string>\n    <string name=\"action_desc\">अवरोही</string>\n    <string name=\"action_asc\">आरोही</string>\n    <string name=\"action_order_by_chapter_number\">अध्याय संख्या से</string>\n    <string name=\"action_order_by_upload_date\">अपलोड तिथि से</string>\n    <string name=\"action_display_show_number_of_items\">वस्तुओं की संख्या दिखाएं</string>\n    <string name=\"action_filter_tracked\">ट्रैक किए गए</string>\n    <string name=\"backup_restore_content_full\">आपको किसी भी गायब एक्सटेंशनों को स्थापित करने की आवश्यकता हो सकती है और उन्हें उपयोग करने के लिए बाद में ट्रैकिंग सेवाओं में लॉग इन करना पड़ सकता है।</string>\n    <string name=\"pref_dual_page_invert_summary\">यदि स्प्लिट वाइड पेजों का प्लेसमेंट पढ़ने की दिशा से मेल नहीं खाता है</string>\n    <string name=\"pref_dual_page_invert\">स्प्लिट पेज प्लेसमेंट को उल्टा करें</string>\n    <string name=\"pref_dual_page_split\">चौड़े पृष्ठ को दो भागों में बांट दे</string>\n    <string name=\"action_start_downloading_now\">अभी डाउनलोड करना शुरू करें</string>\n    <string name=\"action_show_errors\">विवरण देखने के लिए टैप करें</string>\n    <string name=\"cancel_all_for_series\">इस श्रृंखला के लिए सभी रद्द करें</string>\n    <string name=\"action_display_local_badge\">स्थानीय स्रोत</string>\n    <string name=\"pref_dark_theme_pure_black\">पूरा काला मोड़</string>\n    <string name=\"theme_tako\">टाको</string>\n    <string name=\"theme_strawberrydaiquiri\">स्ट्रॉबेरी</string>\n    <string name=\"theme_greenapple\">हरा सेब</string>\n    <string name=\"theme_monet\">डायनेमिक</string>\n    <string name=\"pref_app_theme\">एप थीम</string>\n    <string name=\"pref_category_auto_download\">ऑटोमैटिक डाउनलोड</string>\n    <string name=\"theme_yotsuba\">योटसूबा</string>\n    <string name=\"theme_yinyang\">यीन और यैंन्ग</string>\n    <string name=\"theme_tealturquoise\">टील</string>\n    <string name=\"pref_category_appearance\">रूप</string>\n    <string name=\"none\">कोई नहीं</string>\n    <string name=\"exclude\">बहिष्कृत करें: %s</string>\n    <string name=\"off\">बंद</string>\n    <string name=\"on\">चालू</string>\n    <string name=\"pref_high\">उच्च</string>\n    <string name=\"pref_tablet_ui_mode\">टैबलेट यूआई</string>\n    <string name=\"pref_show_navigation_mode\">टैप ज़ोन ओवरले दिखाएं</string>\n    <string name=\"pref_reader_actions\">कार्रवाई</string>\n    <string name=\"label_default\">डिफॉल्ट</string>\n    <string name=\"source_unsupported\">स्रोत समर्थित नहीं है</string>\n    <string name=\"pref_remove_exclude_categories\">बहिष्कृत श्रेणियां</string>\n    <string name=\"action_track\">ट्रैक</string>\n    <string name=\"ext_install_service_notif\">एक्सटेंशन इंस्टॉल किया जा रहा है…</string>\n    <string name=\"ext_installer_pref\">इंस्टालर</string>\n    <string name=\"ext_installer_legacy\">विरासत</string>\n    <string name=\"pref_hide_threshold\">स्क्रॉल पर मेनू छिपाने की संवेदनशीलता</string>\n    <string name=\"pref_highest\">उच्चतम</string>\n    <string name=\"pref_low\">कम</string>\n    <string name=\"pref_lowest\">निम्नतम</string>\n    <string name=\"restrictions\">प्रतिबंध: %s</string>\n    <string name=\"automatic_background\">ऑटो</string>\n    <string name=\"nav_zone_prev\">पिछला</string>\n    <string name=\"nav_zone_next\">अगला</string>\n    <string name=\"nav_zone_left\">बाएं</string>\n    <string name=\"nav_zone_right\">दाईं</string>\n    <string name=\"rotation_type\">रोटेशन प्रकार</string>\n    <string name=\"rotation_portrait\">सीधा</string>\n    <string name=\"rotation_landscape\">परिदृश्य</string>\n    <string name=\"action_sort_count\">कुल आइटम</string>\n    <string name=\"theme_midnightdusk\">मिडनाइट डस्क</string>\n    <string name=\"relative_time_today\">आज</string>\n    <string name=\"include\">शामिल करें: %s</string>\n    <string name=\"ext_app_info\">ऐप की जानकारी</string>\n    <string name=\"ext_installer_shizuku_stopped\">शिज़ुकु नहीं चल रहा है</string>\n    <string name=\"pref_inverted_colors\">उल्टी</string>\n    <string name=\"pref_grayscale\">काला और सफेद</string>\n    <string name=\"pref_create_folder_per_manga_summary\">आइटम के शीर्षक अनुसार फोल्डर बनाता है</string>\n    <string name=\"tracking_guide\">ट्रैकिंग गाइड</string>\n    <string name=\"enhanced_services\">उन्नत सेवाएं</string>\n    <string name=\"restore_miui_warning\">MIUI ऑप्टिमाइज़ेशन अक्षम होने पर बैकअप/पुनर्स्थापना ठीक से काम नहीं कर सकता है।</string>\n    <string name=\"label_background_activity\">पृष्ठभूमि गतिविधि</string>\n    <string name=\"about_dont_kill_my_app\">कुछ निर्माताओं के पास अतिरिक्त ऐप प्रतिबंध हैं जो पृष्ठभूमि सेवाओं को मारते हैं। इस वेबसाइट में इसे ठीक करने के बारे में अधिक जानकारी है।</string>\n    <string name=\"local_invalid_format\">अमान्य अध्याय प्रारूप</string>\n    <string name=\"local_filter_order_by\">के अनुसार ऑर्डर करें</string>\n    <string name=\"clipboard_copy_error\">क्लिपबोर्ड पर कॉपी करने में विफल</string>\n    <string name=\"error_saving_cover\">कवर पेज सहेजने में त्रुटि</string>\n    <string name=\"unread\">अपठित</string>\n    <string name=\"error_no_match\">कोई मेल नहीं मिला</string>\n    <string name=\"information_empty_category_dialog\">आपके पास अभी तक कोई श्रेणी नहीं है।</string>\n    <string name=\"confirm_lock_change\">परिवर्तन की पुष्टि करने के लिए प्रमाणित करें</string>\n    <string name=\"action_sort_chapter_fetch_date\">अध्याय लाई की तिथि</string>\n    <string name=\"pref_library_update_categories_details\">बहिष्कृत श्रेणियों की पुस्तकें अपडेट नहीं की जाएंगी, भले ही वे भी शामिल श्रेणियों में हों।</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">शिज़ुकु को एक्सटेंशन इंस्टॉलर के रूप में उपयोग करने के लिए शिज़ुकु को इंस्टॉल और प्रारंभ करें।</string>\n    <string name=\"help_translate\">अनुवाद में मदद करें</string>\n    <string name=\"date\">दिनांक</string>\n    <string name=\"manga_cover\">कवर पृष्ठ</string>\n    <string name=\"pref_create_folder_per_manga\">पृष्ठों को अलग-अलग फ़ोल्डरों में सहेजें</string>\n    <string name=\"pref_download_new_categories_details\">बहिष्कृत श्रेणियों की आइटम डाउनलोड नहीं की जाएंगी, भले ही वे शामिल श्रेणियों में भी हों।</string>\n    <string name=\"pref_verbose_logging_summary\">सिस्टम लॉग में वर्बोज़ लॉग प्रिंट करें (ऐप प्रदर्शन को कम करता है)</string>\n    <string name=\"enhanced_tracking_info\">ऐसी सेवाएँ जो विशिष्ट स्रोतों के लिए उन्नत सुविधाएँ प्रदान करती हैं। आपकी पुस्तकालय में जोड़े जाने पर आइटम को स्वचालित रूप से ट्रैक किया जाता है।</string>\n    <string name=\"pref_dns_over_https\">HTTPS उपर DNS (DoH)</string>\n    <string name=\"pref_verbose_logging\">वर्बोज़ लॉगिंग</string>\n    <string name=\"notification_incognito_text\">गुप्त मोड अक्षम करें</string>\n    <string name=\"chapter_not_found\">अध्याय नहीं मिला</string>\n    <string name=\"cover_saved\">कवर पेज सहेजा गया</string>\n    <string name=\"error_sharing_cover\">कवर पेज साझा करने में त्रुटि</string>\n    <string name=\"update_check_eol\">यह एंड्राइड संस्करण अब समर्थित नहीं है</string>\n    <string name=\"getting_started_guide\">प्रारंभिक मार्गदर्शन</string>\n    <string name=\"pref_show_navigation_mode_summary\">रीडर खोले जाने पर थोड़ी देर दिखाएं</string>\n    <string name=\"categorized_display_settings\">सॉर्ट और डिस्प्ले के लिए प्रति-श्रेणी सेटिंग्स</string>\n    <string name=\"ext_update_all\">सभी अद्यतन करें</string>\n    <string name=\"label_warning\">चेतावनी</string>\n    <string name=\"action_display_language_badge\">भाषा</string>\n    <string name=\"backup_info\">आपको अन्य स्थानों पर भी बैकअप की प्रतियाँ रखनी चाहिए।</string>\n    <string name=\"download_queue_size_warning\">चेतावनी: बड़े पैमाने पर डाउनलोड से स्रोत धीमे हो सकते हैं और/या %s को ब्लॉक कर सकते हैं। अधिक जानने के लिए टैप करें।</string>\n    <string name=\"notification_size_warning\">बड़े अपडेट स्रोतों को नुकसान पहुंचाते हैं और इससे धीमे अपडेट हो सकते हैं, और बैटरी का उपयोग भी बढ़ सकता है। अधिक जानने के लिए टैप करें ।</string>\n    <string name=\"channel_app_updates\">ऐप अपडेट</string>\n    <string name=\"update_72hour\">हर 3 दिन</string>\n    <string name=\"connected_to_wifi\">केवल वाई-फ़ाई पर</string>\n    <string name=\"clear_database_source_item_count\">डेटाबेस में %1$d गैर-पुस्तकालय आइटम</string>\n    <string name=\"pref_auto_clear_chapter_cache\">ऐप लॉन्च पर चैप्टर कैशे साफ़ करें</string>\n    <string name=\"database_clean\">साफ़ करने के लिए कुछ नहीं है</string>\n    <string name=\"pref_update_only_completely_read\">अपठित अध्याय हैं</string>\n    <string name=\"save_chapter_as_cbz\">CBZ आर्कैव के रूप में सहेजें</string>\n    <string name=\"privacy_policy\">गोपनीयता नीति</string>\n    <string name=\"library_errors_help\">लाइब्रेरी अपडेट त्रुटियों को ठीक करने के तरीके पर सहायता के लिए, %1$s देखें</string>\n    <string name=\"extension_api_error\">एक्सटेंशन सूची प्राप्त करने में विफल</string>\n    <string name=\"cancelled\">रद्द किया गया</string>\n    <string name=\"on_hiatus\">अंतराल पर है</string>\n    <string name=\"publishing_finished\">प्रकाशन समाप्त</string>\n    <string name=\"learn_more\">अधिक जानकारी के लिए दबाए</string>\n    <string name=\"skipped_reason_completed\">छोड़े गए क्योंकि श्रृंखला पूरी हो गई है</string>\n    <string name=\"skipped_reason_not_caught_up\">छोड़ दिया गया क्योंकि वहाँ अपठित अध्याय हैं</string>\n    <string name=\"skipped_reason_not_started\">छोड़ दिया गया क्योंकि कोई अध्याय पढ़ा नहीं गया</string>\n    <string name=\"pref_update_only_started\">जो शुरू नहीं हुए हैं</string>\n    <string name=\"action_show_manga\">प्रविष्टि दिखाएँ</string>\n    <string name=\"action_display_cover_only_grid\">केवल कवर ग्रिड</string>\n    <string name=\"disabled_nav\">अक्षम</string>\n    <string name=\"rotation_reverse_portrait\">रिवर्स पोर्ट्रेट</string>\n    <string name=\"notification_update_error\">%1$d अपडेट विफल</string>\n    <string name=\"pref_navigate_pan\">चौड़ी छवियां पैन करें</string>\n    <string name=\"pref_landscape_zoom\">ज़ूम लैंडस्केप इमेज</string>\n    <string name=\"action_move_to_top_all_for_series\">श्रृंखला को शीर्ष पर ले जाएं</string>\n    <string name=\"source_empty_screen\">कोई स्रोत नहीं मिला</string>\n    <string name=\"source_filter_empty_screen\">कोई स्थापित स्रोत नहीं मिला</string>\n    <string name=\"action_sort_last_manga_update\">आखिरी आइटम अद्यतन</string>\n    <string name=\"action_sort_unread_count\">अपठित गिनती</string>\n    <string name=\"webview_data_deleted\">WebView डेटा साफ हो गया</string>\n    <string name=\"update_check_open\">गिटहब में खोलें</string>\n    <string name=\"error_saving_picture\">चित्र सहेजने में त्रुटि</string>\n    <string name=\"split_tall_images_summary\">लंबी डाउनलोड किए गए चित्रों के हिस्से करके पाठमाला के प्रदर्शन में सुधार लाता है</string>\n    <string name=\"download_notifier_split_page_not_found\">पेज %d हिस्से करते वक्त नहीं मिला</string>\n    <string name=\"action_close\">बंद करे</string>\n    <string name=\"pref_clear_webview_data\">WebView डाटा साफ करें</string>\n    <string name=\"download_notifier_split_page_path_not_found\">चित्र %d का फ़ाइल पथ नहीं खोजा जा सका</string>\n    <string name=\"empty_backup_error\">बैकअप करने के लिए कोई पुस्तकालय प्रविष्टि नहीं</string>\n    <string name=\"ext_info_version\">संस्करण</string>\n    <string name=\"ext_info_language\">भाषा</string>\n    <string name=\"ext_info_age_rating\">आयु रेटिंग</string>\n    <string name=\"reading_list\">पठन सूची</string>\n    <string name=\"wish_list\">विश-लिस्ट</string>\n    <string name=\"theme_lavender\">लैवेंडर</string>\n    <string name=\"pref_app_language\">ऐप की भाषा</string>\n    <string name=\"delete_category\">श्रेणी हटाएँ</string>\n    <string name=\"description_placeholder\">कोई विवरण नहीं</string>\n    <string name=\"delete_category_confirmation\">क्या आप %s कैटेगरी को हटाना चाहते हैं ?</string>\n    <string name=\"pref_reset_viewer_flags\">प्रति श्रृंखला रीडर सेटिंग्स को रीसेट करें</string>\n    <string name=\"pref_reset_viewer_flags_summary\">सभी श्रृंखलाओं के रीडिंग मोड और ओरिएंटेशन को रीसेट करता है</string>\n    <string name=\"pref_reset_viewer_flags_success\">सभी रीडर सेटिंग्स रीसेट करें</string>\n    <string name=\"pref_reset_viewer_flags_error\">पाठक सेटिंग रीसेट नहीं की जा सकी</string>\n    <string name=\"complete_list\">पूरी सूची</string>\n    <string name=\"not_installed\">इनस्टॉल नहीं हुआ है</string>\n    <string name=\"unfinished_list\">अधूरी सूची</string>\n    <string name=\"empty_screen\">खैर, यह अजीब है</string>\n    <string name=\"internal_error\">आंतरिक त्रुटि : अधिक जानकारी के लिए क्रैश लॉग की जाँच करें</string>\n    <string name=\"network_not_metered\">केवल अनमीटर्ड कनेक्शन पर</string>\n    <string name=\"updates_last_update_info\">पुस्तकालय पिछली बार अपडेट किया गया: %s</string>\n    <string name=\"appwidget_updates_description\">अपनी हाल ही में अपडेट की गई पुस्तकालय एन्ट्री देखें</string>\n    <string name=\"download_ahead_info\">केवल तभी काम करता है जब वर्तमान अध्याय + अगला पहले से ही डाउनलोड किया गया हो।</string>\n    <string name=\"custom_cover\">कस्टम कवर</string>\n    <string name=\"pref_user_agent_string\">चूक यूजर एजेंट स्ट्रिंग (User agent string)</string>\n    <string name=\"download_ahead\">आगे डाउनलोड करें</string>\n    <string name=\"auto_download_while_reading\">पढ़ते समय ऑटो डाउनलोड करे</string>\n    <string name=\"action_remove_everything\">सब कुछ हटा दें</string>\n    <string name=\"popular\">लोकप्रिय</string>\n    <string name=\"theme_tidalwave\">टाइडल वेव्ह</string>\n    <string name=\"error_user_agent_string_blank\">यूजर एजेंट स्ट्रिंग (User Agent String) खाली नहीं रखा जा सकता</string>\n    <string name=\"multi_lang\">मल्टी</string>\n    <string name=\"are_you_sure\">क्या आपको यकीन है ?</string>\n    <string name=\"appwidget_unavailable_locked\">ऐप लॉक लागू होने पर विजेट उपलब्ध नहीं होता</string>\n    <string name=\"remove_manga\">आप अपनी पुस्तकालय से \\\"%s\\\" को निकालने जा रहे हैं</string>\n    <string name=\"update_already_running\">एक अपडेट पहले से चल रहा है</string>\n    <string name=\"cant_open_last_read_chapter\">अंतिम पढ़ा गया अध्याय खोलने में असमर्थ</string>\n    <string name=\"pref_reset_user_agent_string\">यूजर एजेंट स्ट्रिंग(User agent string) डिफॉल्ट रिसेट करें</string>\n    <string name=\"on_hold_list\">होल्ड लिस्ट में</string>\n    <string name=\"label_stats\">आंकड़े</string>\n    <string name=\"label_started\">शुरू किए गए आइटम</string>\n    <string name=\"label_downloaded\">डाउनलोड किए गए</string>\n    <string name=\"action_copy_to_clipboard\">क्लिपबोर्ड पर कॉपी करें</string>\n    <string name=\"action_search_hint\">खोजें…</string>\n    <string name=\"action_display_show_continue_reading_button\">पढ़ना जारी रखने वाला बटन</string>\n    <string name=\"label_local\">स्थानीय</string>\n    <string name=\"action_open_random_manga\">कोई भी प्रविष्टि खोलें</string>\n    <string name=\"pref_skip_dupe_chapters\">डुप्लिकेट अध्याय छोड़ें</string>\n    <string name=\"action_not_now\">अभी नहीं</string>\n    <string name=\"pref_browse_summary\">स्रोत, विस्तार, वैश्विक खोज</string>\n    <string name=\"invalid_location\">अवैध स्थान: %s</string>\n    <string name=\"action_update_category\">श्रेणी अपडेट करें</string>\n    <string name=\"pref_appearance_summary\">थीम, दिनांक और समय प्रारूप</string>\n    <string name=\"pref_downloads_summary\">स्वचालित डाउनलोड, आगे डाउनलोड करें</string>\n    <string name=\"pref_library_update_show_tab_badge\">नए अपडेट आइकन पर अपठित संख्या दिखाएं</string>\n    <string name=\"enhanced_services_not_installed\">उपलब्ध है लेकिन स्रोत स्थापित नहीं है: %s</string>\n    <string name=\"pref_hide_in_library_items\">पुस्तकालय में पहले से ही रही आइटम को छिपाएँ</string>\n    <string name=\"pref_library_summary\">श्रेणियाँ, वैश्विक अपडेट, अध्याय स्वाइप</string>\n    <string name=\"pref_page_rotate\">फिट होने के लिए चौड़े पृष्ठों को घुमाएं</string>\n    <string name=\"pref_backup_summary\">मैनुअल और स्वचालित बैकअप</string>\n    <string name=\"pref_security_summary\">ऐप लॉक, सुरक्षित स्क्रीन</string>\n    <string name=\"action_set_interval\">अंतराल निर्धारित करें</string>\n    <string name=\"action_filter_interval_custom\">अनुकूलित लाने का अंतराल</string>\n    <string name=\"intervals_header\">अंतराल</string>\n    <string name=\"pref_chapter_swipe_end\">अध्यााय: दाएँ स्वाइप करें</string>\n    <string name=\"action_sort_next_updated\">अगला अपेक्षित अपडेट</string>\n    <string name=\"pref_debug_info\">डीबग जानकारी</string>\n    <string name=\"pref_advanced_summary\">डंप क्रैश लॉग, बैटरी अनुकूलन</string>\n    <string name=\"pref_update_only_in_release_period\">अपेक्षित रिलीज़ अवधि से बाहर</string>\n    <string name=\"pref_chapter_swipe_start\">अध्यााय: बाएँ स्वाइप करें</string>\n    <string name=\"library_sync_complete\">लाइब्रेरी सिंक पूरा</string>\n    <string name=\"download_cache_invalidated\">डाउनलोड अनुक्रमणिका अमान्य</string>\n    <string name=\"action_ok\">ठीक है</string>\n    <string name=\"pref_invalidate_download_cache\">डाउनलोड फिर से अनुक्रमित करें</string>\n    <string name=\"copied_to_clipboard_plain\">क्लिपबोर्ड पर कॉपी हो गया है</string>\n    <string name=\"track_delete_remote_text\">%s से भी हटा दें</string>\n    <string name=\"label_auto\">स्वत:</string>\n    <string name=\"action_sort_random\">अनियमित</string>\n    <string name=\"action_sort_tracker_score\">ट्रैकर के स्कोर</string>\n    <string name=\"selected\">चयनित</string>\n    <string name=\"delete_downloaded\">डाउनलोड मिटाएँ</string>\n    <string name=\"scanlator\">स्कैनलेटर</string>\n    <string name=\"action_add_anyway\">फिर भी जोड़ें</string>\n    <string name=\"action_copy_link\">लिंक की प्रतिलिपि करें</string>\n    <string name=\"action_bar_up_description\">ऊपर जाएं</string>\n    <string name=\"not_selected\">गैर चयनित</string>\n    <string name=\"action_menu_overflow_description\">अधिक विकल्प</string>\n    <string name=\"label_data_storage\">डेटा और स्टोरेज</string>\n    <string name=\"unlock_app_title\">खोलना%s</string>\n    <string name=\"action_apply\">लागू करें</string>\n    <string name=\"action_move_to_bottom_all_for_series\">सीरीज को नीचे ले जाएं</string>\n    <string name=\"pref_onboarding_guide\">ऑनबोर्डिंग मार्गदर्शक</string>\n    <string name=\"onboarding_heading\">नमस्ते!आपका स्वागत है!</string>\n    <string name=\"label_upcoming\">आगामी</string>\n    <string name=\"action_revert_to_default\">डिफ़ॉल्ट पर वापस लौटें</string>\n    <string name=\"onboarding_description\">पहले कुछ चीजें सेट करते हैं। आप इन्हें बाद में सेटिंग्स में बदल भी सकते हैं।</string>\n    <string name=\"onboarding_storage_selection_required\">एक फ़ोल्डर चुनना अनिवार्य है</string>\n    <string name=\"onboarding_storage_help_info\">पुराने संस्करण से अपडेट कर रहे हैं और नहीं समझ पा रहे कि क्या चुनें? अधिक जानकारी के लिए स्टोरेज गाइड देखें।</string>\n    <string name=\"onboarding_storage_help_action\">संग्रहण मार्गदर्शिका</string>\n    <string name=\"pref_behavior\">व्यवहार</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">एक अध्याय पढ़ने के बाद</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">नया अध्याय प्राप्त करने के बाद</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">डुप्लिकेट पढ़े गए अध्याय को पढ़ा हुआ मार्क करें</string>\n    <string name=\"action_notes\">टिप्पणियाँ</string>\n    <string name=\"action_edit_notes\">टिप्पणियाँ संपादित करें</string>\n    <string name=\"ext_remove\">हटाएँ</string>\n    <string name=\"remove_private_extension_message\">क्या आप वाकई \\\"%s\\\" एक्सटेंशन को हटाना चाहते हैं?</string>\n    <string name=\"ext_confirm_remove\">एक्सटेंशन हटाएँ?</string>\n    <string name=\"action_display_unread_badge\">अवांचित अध्याय</string>\n    <string name=\"onboarding_action_next\">अगला</string>\n    <string name=\"onboarding_action_finish\">शुरू करें</string>\n    <string name=\"onboarding_action_skip\">छोड़ें</string>\n    <string name=\"onboarding_storage_action_select\">एक फ़ोल्डर चुनें</string>\n    <string name=\"possible_duplicates_summary\">आपकी पुस्तकालय में एक समान नाम वाली प्रविष्टियाँ हैं।\\n\\nस्थानांतरित करने के लिए एक प्रविष्टि चुनें या फिर भी जोड़ें।</string>\n    <string name=\"onboarding_storage_info\">%1$s अध्याय डाउनलोड, बैकअप और अन्य चीज़ों को संग्रहित करने के लिए एक फ़ोल्डर चुनें।\\n\\nएक समर्पित फ़ोल्डर उपयुक्त रहेगा।\\n\\nचयनित फ़ोल्डर: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">एक्सटेंशन स्थापित करने के लिए अनुमतियाँ आवश्यक हैं। अनुमति देने के लिए यहाँ टैप करें।</string>\n    <string name=\"label_donate\">दान करें</string>\n    <string name=\"onboarding_permission_install_apps\">अनुप्रयोग संस्थापित करने की अनुमति</string>\n    <string name=\"onboarding_permission_install_apps_description\">स्रोत विस्तार संस्थापित करने हेतु।</string>\n    <string name=\"onboarding_permission_notifications\">अधिसूचना अनुमति</string>\n    <string name=\"onboarding_permission_notifications_description\">पुस्तकालय अपडेट और बाकी की सूचनाएँ पाएँ।</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">पृष्ठभूमि में बैटरी का उपयोग</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">लंबे समय तक चलने वाले पुस्तकालय अपडेट, डाउनलोड और बैकअप बहाली में रुकावट से बचें।</string>\n    <string name=\"onboarding_permission_crashlytics\">क्रैश लॉग भेजें</string>\n    <string name=\"onboarding_permission_crashlytics_description\">डेवलपर्स को गुमनाम क्रैश लॉग भेजें।</string>\n    <string name=\"onboarding_permission_analytics\">डाटा विश्लेषण की अनुमति दें</string>\n    <string name=\"onboarding_permission_analytics_description\">ऐप की सुविधाएँ बेहतर करने के लिए गुमनाम उपयोग डेटा भेजें।</string>\n    <string name=\"onboarding_permission_action_grant\">अनुमति दें</string>\n    <string name=\"onboarding_guides_new_user\">%s पर नए हैं? हम सुझाव देते हैं कि शुरुआत करने की गाइड देखें।</string>\n    <string name=\"onboarding_guides_returning_user\">%s को फिर से इंस्टॉल कर रहे हैं?</string>\n    <string name=\"pref_reader_summary\">पढ़ने का मोड, प्रदर्शन, मार्गदर्शन</string>\n    <string name=\"pref_tracking_summary\">एक-तरफ़ा प्रगति सिंक, बेहतर सिंक</string>\n    <string name=\"theme_catppuccin\">कैटपुचिन</string>\n    <string name=\"theme_monochrome\">एकवर्णी</string>\n    <string name=\"theme_nord\">नॉर्ड</string>\n    <string name=\"pref_relative_format\">सापेक्ष समय-चिह्न</string>\n    <string name=\"pref_relative_format_summary\">\\\"%2$s\\\" के बजाय \\\"%1$s\\\"</string>\n    <string name=\"pref_display_images_description\">मंगा विवरण में चित्र दिखाएँ</string>\n    <string name=\"pref_security\">सुरक्षा</string>\n    <string name=\"pref_firebase\">एनालिटिक्स और क्रैश लॉग्स</string>\n    <string name=\"firebase_summary\">क्रैश लॉग्स और एनालिटिक्स भेजने से हम समस्याएँ पहचानकर ठीक कर पाएँगे, प्रदर्शन सुधार पाएँगे, और भविष्य के अपडेट आपकी ज़रूरतों के अनुसार बना पाएँगे</string>\n    <string name=\"pref_library_update_smart_update\">स्मार्ट अपडेट</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">गुम हुए अध्याय के संकेत छुपाएँ</string>\n    <string name=\"ext_revoke_trust\">विश्वसनीय अज्ञात एक्सटेंशन्स रद्द करें</string>\n    <string name=\"label_extension_repos\">एक्सटेंशन रिपॉजिटरीज</string>\n    <string name=\"information_empty_repos\">आपने कोई रिपॉ सेट नहीं किया है।</string>\n    <string name=\"action_add_repo\">रिपॉ जोड़ें</string>\n    <string name=\"label_add_repo_input\">रिपॉ URL</string>\n    <string name=\"action_add_repo_message\">%s में अतिरिक्त रिपॉज़ जोड़ें। यह एक URL होना चाहिए जो \\\"index.min.json\\\" पर समाप्त होता हो।</string>\n    <string name=\"error_repo_exists\">यह रिपॉ पहले से मौजूद है!</string>\n    <string name=\"action_delete_repo\">रिपॉ हटाएँ</string>\n    <string name=\"invalid_repo_name\">अमान्य रिपॉ URL</string>\n    <string name=\"delete_repo_confirmation\">क्या आप रिपॉ \\\"%s\\\" हटाना चाहते हैं?</string>\n    <string name=\"add_repo_confirmation\">क्या आप रिपॉ \\\"%s\\\" जोड़ना चाहते हैं?</string>\n    <string name=\"action_open_repo\">ओपन सोर्स रिपॉ</string>\n    <string name=\"action_replace_repo\">बदलें</string>\n    <string name=\"action_replace_repo_title\">साइनिंग की फिंगरप्रिंट पहले से मौजूद है</string>\n    <string name=\"action_replace_repo_message\">रिपॉजिटरी %1$s का साइनिंग की फिंगरप्रिंट %2$s के समान है।\\nयदि यह अपेक्षित है, तो %2$s को बदला जाएगा, अन्यथा अपने रिपॉ मेंटेनर से संपर्क करें।</string>\n    <string name=\"pref_page_rotate_invert\">घुमाए गए चौड़े पृष्ठों की ओरिएंटेशन उलटें</string>\n    <string name=\"pref_double_tap_zoom\">दुबारा टैप करके ज़ूम करें</string>\n    <string name=\"pref_flash_page\">पृष्ठ बदलने पर फ्लैश करें</string>\n    <string name=\"pref_flash_page_summ\">ई-इंक डिस्प्ले पर घोस्टिंग कम करता है</string>\n    <string name=\"pref_flash_duration\">फ्लैश की अवधि</string>\n    <string name=\"pref_flash_duration_summary\">%1$s मिलीसेक</string>\n    <string name=\"pref_flash_page_interval\">हर बार फ्लैश करें</string>\n    <string name=\"pref_flash_with\">के साथ फ्लैश करें</string>\n    <string name=\"pref_flash_style_black\">काला</string>\n    <string name=\"pref_flash_style_white\">सफ़ेद</string>\n    <string name=\"pref_flash_style_white_black\">सफ़ेद और काला</string>\n    <string name=\"pref_hardware_bitmap_threshold\">कस्टम हार्डवेयर बिटमैप सीमा</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">डिफ़ॉल्ट (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">यदि रीडर खाली छवि लोड करता है तो सीमा धीरे-धीरे कम करें।\\nचयनित: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">लॉन्ग स्ट्रिप रीडर के लिए पुराना डिकोडर उपयोग करें</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">प्रदर्शन को प्रभावित करता है। केवल तभी सक्षम करें जब बिटमैप सीमा कम करने से खाली छवि की समस्याएं ठीक न हों</string>\n    <string name=\"pref_display_profile\">कस्टम डिस्प्ले प्रोफ़ाइल</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">ज़ूम आउट अक्षम करें</string>\n    <string name=\"no_location_set\">कोई स्टोरेज स्थान सेट नहीं किया गया है</string>\n    <string name=\"storage_failed_to_create_download_directory\">डाउनलोड डायरेक्टरी बनाने में विफल</string>\n    <string name=\"storage_failed_to_create_directory\">डायरेक्टरी बनाने में विफल: %s</string>\n    <string name=\"pref_download_new_unread_chapters_only\">दोहरे पढ़े गए अध्याय डाउनलोड करना छोड़ें</string>\n    <string name=\"split_tall_images\">लंबी छवियों को विभाजित करें</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">पढ़े गए के रूप में चिह्नित करते समय प्रगति अपडेट करें</string>\n    <string name=\"track_activity_name\">ट्रैकर लॉगिन</string>\n    <string name=\"pref_storage_location\">स्टोरेज स्थान</string>\n    <string name=\"pref_storage_location_info\">स्वचालित बैकअप, अध्याय डाउनलोड और स्थानीय स्रोत के लिए उपयोग किया जाता है।</string>\n    <string name=\"action_create\">बनाएँ</string>\n    <string name=\"invalid_backup_file_error\">पूर्ण त्रुटि:</string>\n    <string name=\"invalid_backup_file_json\">JSON बैकअप समर्थित नहीं है</string>\n    <string name=\"invalid_backup_file_unknown\">बैकअप फ़ाइल भ्रष्ट हो गई है</string>\n    <string name=\"app_settings\">ऐप सेटिंग्स</string>\n    <string name=\"source_settings\">स्रोत सेटिंग्स</string>\n    <string name=\"extensionRepo_settings\">एक्सटेंशन रिपॉजिटरीज</string>\n    <string name=\"private_settings\">संवेदनशील सेटिंग्स शामिल करें (जैसे, ट्रैकर लॉगिन टोकन)</string>\n    <string name=\"non_library_settings\">सभी पढ़ी गई प्रविष्टियाँ</string>\n    <string name=\"missing_storage_permission\">स्टोरेज अनुमति नहीं मिली है</string>\n    <string name=\"create_backup_file_error\">बैकअप फ़ाइल बनाने में असमर्थ</string>\n    <string name=\"last_auto_backup_info\">अंतिम स्वचालित बैकअप: %s</string>\n    <string name=\"pref_storage_usage\">स्टोरेज उपयोग</string>\n    <string name=\"available_disk_space_info\">उपलब्ध: %1$s / कुल: %2$s</string>\n    <string name=\"export\">निर्यात करें</string>\n    <string name=\"library_list\">पुस्तकालय सूची</string>\n    <string name=\"library_exported\">पुस्तकालय निर्यातित हो गया</string>\n    <string name=\"syncing_library\">पुस्तकालय सिंक हो रहा है</string>\n    <string name=\"error_user_agent_string_invalid\">अमान्य यूज़र एजेंट स्ट्रिंग</string>\n    <string name=\"pref_invalidate_download_cache_summary\">ऐप को डाउनलोड किए गए अध्याय फिर से जांचने के लिए मजबूर करें</string>\n    <string name=\"clear_database_text\">आप डेटाबेस से प्रविष्टियाँ हटाने वाले हैं</string>\n    <string name=\"clear_database_history_warning\">पढ़े गए अध्याय और गैर-पुस्तकालय प्रविष्टियों की प्रगति खो जाएगी</string>\n    <string name=\"clear_db_exclude_read\">पढ़े गए अध्याय वाली प्रविष्टियाँ रखें</string>\n    <string name=\"pref_update_library_manga_titles\">पुस्तकालय मंगा शीर्षक स्रोत से मेल खाने के लिए अपडेट करें</string>\n    <string name=\"pref_update_library_manga_titles_summary\">चेतावनी: यदि किसी मंगा का नाम बदला जाता है, तो वह डाउनलोड कतार से हटा दिया जाएगा (यदि मौजूद हो)।</string>\n    <string name=\"fdroid_warning\">F-Droid बिल्ड आधिकारिक तौर पर समर्थित नहीं हैं।\\nअधिक जानने के लिए टैप करें।</string>\n    <string name=\"pref_incognito_mode_extension_summary\">एक्सटेंशन के लिए पढ़ने के इतिहास को रोकें</string>\n    <string name=\"logging_in\">लॉगिन हो रहा है…</string>\n    <string name=\"overlay_header\">ओवरले</string>\n    <string name=\"has_results\">परिणाम हैं</string>\n    <string name=\"author\">लेखक</string>\n    <string name=\"artist\">कलाकार</string>\n    <string name=\"unknown_title\">अज्ञात शीर्षक</string>\n    <string name=\"possible_duplicates_title\">संभावित डुप्लिकेट्स</string>\n    <string name=\"manga_display_interval_title\">हर बार अनुमान लगाएं</string>\n    <string name=\"manga_display_modified_interval_title\">हर बार अपडेट करने के लिए सेट करें</string>\n    <string name=\"manga_interval_expected_update\">नए अध्याय लगभग %1$s में रिलीज़ होने की संभावना है, लगभग हर %2$s में जांच की जा रही है।</string>\n    <string name=\"manga_interval_expected_update_null\">यह मंगा या तो पूरा हो चुका है, या कोई अनुमानित रिलीज़ तारीख उपलब्ध नहीं है।</string>\n    <string name=\"manga_interval_expected_update_soon\">जल्द ही</string>\n    <string name=\"manga_interval_custom_amount\">कस्टम अपडेट आवृत्ति:</string>\n    <string name=\"exclude_scanlators\">स्कैनलेटर को बाहर करें</string>\n    <string name=\"no_scanlators_found\">कोई स्कैनलेटर नहीं मिला</string>\n    <string name=\"confirm_tracker_update\">ट्रैकर्स को अध्याय %d तक अपडेट करें?</string>\n    <string name=\"trackers_updated_summary\">ट्रैकर्स को अध्याय %d तक अपडेट किया गया</string>\n    <string name=\"tracked_privately\">निजी तौर पर ट्रैक किया गया</string>\n    <string name=\"action_toggle_private_on\">निजी रूप से ट्रैक करें</string>\n    <string name=\"action_toggle_private_off\">सार्वजनिक रूप से ट्रैक करें</string>\n    <string name=\"track_error\">%1$s त्रुटि: %2$s</string>\n    <string name=\"track_remove_date_conf_title\">तारीख हटाएं?</string>\n    <string name=\"track_remove_start_date_conf_text\">यह आपके पहले चुने गए प्रारंभ तिथि %s को हटा देगा</string>\n    <string name=\"track_remove_finish_date_conf_text\">यह आपके पहले चुने गए समाप्ति तिथि %s को हटा देगा</string>\n    <string name=\"track_delete_title\">%s ट्रैकिंग हटाएं?</string>\n    <string name=\"track_delete_text\">यह ट्रैकिंग को स्थानीय रूप से हटा देगा।</string>\n    <string name=\"updates_last_update_info_just_now\">अभी अभी</string>\n    <string name=\"relative_time_span_never\">कभी नहीं</string>\n    <string name=\"action_view_upcoming\">आगामी अपडेट देखें</string>\n    <string name=\"upcoming_guide\">आगामी मार्गदर्शिका</string>\n    <string name=\"upcoming_calendar_next\">अगला महीना</string>\n    <string name=\"upcoming_calendar_prev\">पिछला महीना</string>\n    <string name=\"crash_screen_title\">अरे!</string>\n    <string name=\"crash_screen_description\">%s को एक अप्रत्याशित त्रुटि का सामना करना पड़ा। हम सुझाव देते हैं कि आप क्रैश लॉग्स हमारे Discord सपोर्ट चैनल में साझा करें।</string>\n    <string name=\"crash_screen_restart_application\">एप्लिकेशन पुनः प्रारंभ करें</string>\n    <string name=\"label_overview_section\">समीक्षा</string>\n    <string name=\"label_completed_titles\">पूर्ण किए गए प्रविष्टियाँ</string>\n    <string name=\"label_read_duration\">पढ़ने का समय</string>\n    <string name=\"label_titles_section\">प्रविष्टियाँ</string>\n    <string name=\"label_titles_in_global_update\">वैश्विक अपडेट में</string>\n    <string name=\"label_total_chapters\">कुल</string>\n    <string name=\"label_read_chapters\">पढ़ा</string>\n    <string name=\"label_tracker_section\">ट्रैकर्स</string>\n    <string name=\"label_tracked_titles\">ट्रैक की गई प्रविष्टियाँ</string>\n    <string name=\"label_mean_score\">औसत स्कोर</string>\n    <string name=\"label_used\">प्रयुक्त</string>\n    <string name=\"not_applicable\">लागू नहीं</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"notification_updating_progress\">लाइब्रेरी अपडेट हो रही है… (%s)</string>\n    <string name=\"skipped_reason_not_always_update\">छोड़ दिया गया क्योंकि सीरीज़ को अपडेट की आवश्यकता नहीं है</string>\n    <string name=\"skipped_reason_not_in_release_period\">छोड़ दिया गया क्योंकि आज कोई रिलीज़ अपेक्षित नहीं थी</string>\n    <string name=\"file_picker_uri_permission_unsupported\">स्थायी फ़ोल्डर एक्सेस प्राप्त करने में विफल। ऐप असामान्य रूप से काम कर सकता है।</string>\n    <string name=\"file_null_uri_error\">कोई फ़ाइल चयनित नहीं</string>\n    <string name=\"information_no_manga_category\">श्रेणी खाली है</string>\n    <string name=\"information_no_entries_found\">इस श्रेणी में कोई प्रविष्टियाँ नहीं मिलीं</string>\n    <string name=\"information_cloudflare_help\">Cloudflare सहायता के लिए यहां टैप करें</string>\n    <string name=\"information_required_plain\">*आवश्यक</string>\n    <string name=\"download_notifier_cache_renewal\">डाउनलोड जांच रहे हैं</string>\n    <string name=\"exception_http\">HTTP %d, वेबसाइट WebView में जांचें</string>\n    <string name=\"exception_offline\">इंटरनेट कनेक्शन नहीं है</string>\n    <string name=\"exception_unknown_host\">%s तक पहुँच नहीं पाया</string>\n    <string name=\"notes_placeholder\">उस भाग का आनंद लिया जहाँ…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">चयनित</string>\n    <string name=\"migrationConfigScreen.availableHeader\">उपलब्ध</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">सभी चुनें</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">कोई नहीं चुनें</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">सक्षम स्रोत चुनें</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">पिन किए गए स्रोत चुनें</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">जारी रखें</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">स्थानांतरित करने के लिए डेटा</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">स्थानांतरण के बाद वर्तमान प्रविष्टि के डाउनलोड हटाएं</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">अतिरिक्त कीवर्ड (वैकल्पिक)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">अतिरिक्त कीवर्ड जोड़कर खोज परिणामों को सीमित करने में मदद करता है</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">मेल न खाने वाली प्रविष्टियाँ छुपाएं</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">नए अध्याय नहीं वाले प्रविष्टियाँ छुपाएं</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">केवल तब प्रविष्टि दिखाएं जब मैच में अतिरिक्त अध्याय हों</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">ये विकल्प धीमे और जोखिम भरे हैं और स्रोतों से प्रतिबंधों का कारण बन सकते हैं</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">उन्नत खोज मोड</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">विस्तृत खोज के लिए शीर्षक को कीवर्ड में विभाजित करता है</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">अध्याय संख्या के आधार पर मिलान करें</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">यदि सक्षम है, तो सबसे आगे वाले मिलान को चुनता है। अन्यथा, स्रोत प्राथमिकता के अनुसार पहला मिलान चुनता है।</string>\n    <string name=\"migrationListScreenTitle\">स्थानांतरण</string>\n    <string name=\"migrationListScreenTitleWithProgress\">स्थानांतरण (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">कॉपी</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">स्थानांतरित</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">कोई विकल्प नहीं मिला</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">नवीनतम: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">अज्ञात</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">मैन्युअल रूप से खोजें</string>\n    <string name=\"migrationListScreen.skipActionLabel\">स्थानांतरित न करें</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">अभी स्थानांतरित करें</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">अभी कॉपी करें</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">स्थानांतरण रोकें?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">रोकें</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">रद्द करें</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">कॉपी</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">स्थानांतरण</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">रद्द</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">रद्द</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">कोई अध्याय नहीं मिला, इस प्रविष्टि का उपयोग स्थानांतरण के लिए नहीं किया जा सकता</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">ग़ैर-ASCII फ़ाइल नामों की अनुमति न दें</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">यह उन स्टोरेज मीडिया के साथ संगतता सुनिश्चित करता है जो यूनिकोड का समर्थन नहीं करते, और सक्षम होने पर स्रोत व मंगा फ़ोल्डरों के गैर-ASCII अक्षरों को उनके छोटे अक्षरों वाले UTF-8 हेक्साडेसिमल रूप में मैन्युअली बदलना आवश्यक होता है, जबकि चैप्टर फ़ाइलों के नाम बदलने की आवश्यकता नहीं होती।</string>\n    <string name=\"action_webview_close_tab\">टैब बंद करें</string>\n    <string name=\"pref_download_concurrent_sources\">एक साथ स्रोत डाउनलोड</string>\n    <string name=\"pref_download_concurrent_pages\">एक साथ पेज डाउनलोड</string>\n    <string name=\"pref_download_concurrent_pages_summary\">प्रति स्रोत एक साथ डाउनलोड किए जाने वाले पृष्ठ</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/hr/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Nakon %1$s minute</item>\n        <item quantity=\"few\">Nakon %1$s minute</item>\n        <item quantity=\"other\">Nakon %1$s minuta</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategorija</item>\n        <item quantity=\"few\">%d kategorije</item>\n        <item quantity=\"other\">%d kategorija</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Poglavlja %1$s i još jedno</item>\n        <item quantity=\"few\">Poglavlja %1$s i još %2$d</item>\n        <item quantity=\"other\">Poglavlja %1$s i još %2$d</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Za %d unos</item>\n        <item quantity=\"few\">Za %d unosa</item>\n        <item quantity=\"other\">Za %d unosa</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s preostalo</item>\n        <item quantity=\"few\">%1$s preostala</item>\n        <item quantity=\"other\">%1$s preostalih</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Dostupna je %d nova verzija proširenja</item>\n        <item quantity=\"few\">Dostupne su %d nove verzije proširenja</item>\n        <item quantity=\"other\">Dostupno je %d novih verzija proširenja</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d novo poglavlje</item>\n        <item quantity=\"few\">%1$d nova poglavlja</item>\n        <item quantity=\"other\">%1$d novih poglavlja</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Obavljeno u %1$s s %2$s greškom</item>\n        <item quantity=\"few\">Obavljeno u %1$s s %2$s greške</item>\n        <item quantity=\"other\">Obavljeno u %1$s s %2$s grešaka</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s poglavlje</item>\n        <item quantity=\"few\">%1$s poglavlja</item>\n        <item quantity=\"other\">%1$s poglavlja</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d usluga praćenja</item>\n        <item quantity=\"few\">%d usluge praćenja</item>\n        <item quantity=\"other\">%d usluga praćenja</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Preskače se %d poglavlje. Ne postoji u izvoru ili je filtrirano</item>\n        <item quantity=\"few\">Preskaču se %d poglavlja. Ne postoje u izvoru ili su filtrirana</item>\n        <item quantity=\"other\">Preskače se %d poglavlja. Ne postoje u izvoru ili su filtrirana</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Jučer</item>\n        <item quantity=\"few\">Prije %1$d dana</item>\n        <item quantity=\"other\">Prije %1$d dana</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Sljedeće nepročitano poglavlje</item>\n        <item quantity=\"few\">Sljedeća %d nepročitana poglavlja</item>\n        <item quantity=\"other\">Sljedećih %d nepročitanih poglavlja</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Sljedeće poglavlje</item>\n        <item quantity=\"few\">Sljedeća %d poglavlja</item>\n        <item quantity=\"other\">Sljedećih %d poglavlja</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Nedostaje %1$s poglavlje</item>\n        <item quantity=\"few\">Nedostaju %1$s poglavlja</item>\n        <item quantity=\"other\">Nedostaje %1$s poglavlja</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">%d dan</item>\n        <item quantity=\"few\">%d dana</item>\n        <item quantity=\"other\">%d dana</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repozitorij</item>\n        <item quantity=\"few\">%d repozitorija</item>\n        <item quantity=\"other\">%d repozitorija</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Sutra</item>\n        <item quantity=\"few\">Za %1$d dana</item>\n        <item quantity=\"other\">Za %1$d dana</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">%1$s stranica</item>\n        <item quantity=\"few\">%1$s stranice</item>\n        <item quantity=\"other\">%1$s stranica</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Premjestiti %1$d unos?</item>\n        <item quantity=\"few\">Premjestiti %1$d unosa?</item>\n        <item quantity=\"other\">Premjestiti %1$d unosa?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Kopirati %1$d unos?</item>\n        <item quantity=\"few\">Kopirati %1$d unosa?</item>\n        <item quantity=\"other\">Kopirati %1$d unosa?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">%1$d unos je preskočen</item>\n        <item quantity=\"few\">%1$d unosa su preskočena</item>\n        <item quantity=\"other\">%1$d unosa je preskočeno</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/hr/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"lock_never\">Nikada</string>\n    <string name=\"lock_always\">Uvijek</string>\n    <string name=\"pref_fullscreen\">Cjeloekranski prikaz</string>\n    <string name=\"obsolete_extension_message\">Ovo proširenje više nije dostupno. Možda neće ispravno funkcionirati i može izazvati probleme s aplikacijom. Preporučuje se deinstalirati proširenje.</string>\n    <string name=\"untrusted_extension_message\">Zlonamjerno proširenje može pročitati sve spremljene podatke za prijavu ili izvršiti proizvoljni kod.\n\\n\n\\nVjerujući ovom certifikatu, prihvaćaš te rizike.</string>\n    <string name=\"untrusted_extension\">Nepovjerljivo proširenje</string>\n    <string name=\"ext_uninstall\">Deinstaliraj</string>\n    <string name=\"ext_untrusted\">Nepovjerljivo</string>\n    <string name=\"ext_trust\">Vjeruj</string>\n    <string name=\"ext_installed\">Instalirano</string>\n    <string name=\"ext_installing\">Instaliranje</string>\n    <string name=\"ext_downloading\">Preuzimanje</string>\n    <string name=\"ext_pending\">Na čekanju</string>\n    <string name=\"ext_install\">Instaliraj</string>\n    <string name=\"ext_obsolete\">Zastarjelo</string>\n    <string name=\"ext_update\">Aktualiziraj</string>\n    <string name=\"ext_updates_pending\">Aktualiziranja na čekanju</string>\n    <string name=\"all\">Sve</string>\n    <string name=\"default_category_summary\">Uvijek pitaj</string>\n    <string name=\"default_category\">Standardna kategorija</string>\n    <string name=\"pref_update_only_non_completed\">Preskoči unose sa stanjem „Završeno“</string>\n    <string name=\"charging\">Kad se puni</string>\n    <string name=\"pref_library_update_restriction\">Ograničenja uređaja za automatska aktualiziranja</string>\n    <string name=\"update_weekly\">Tjedno</string>\n    <string name=\"update_48hour\">Svaka 2 dana</string>\n    <string name=\"update_24hour\">Dnevno</string>\n    <string name=\"update_12hour\">Svakih 12 sati</string>\n    <string name=\"update_6hour\">Svakih 6 sati</string>\n    <string name=\"update_never\">Isključeno</string>\n    <string name=\"pref_library_update_interval\">Automatska aktualiziranja</string>\n    <string name=\"pref_category_library_update\">Globalno aktualiziranje</string>\n    <string name=\"landscape\">Polegnuti format</string>\n    <string name=\"portrait\">Uspravni format</string>\n    <string name=\"pref_library_columns\">Broj stavki po retku</string>\n    <string name=\"pref_category_display\">Prikaz</string>\n    <string name=\"hide_notification_content\">Sakrij sadržaj obavijesti</string>\n    <string name=\"secure_screen_summary\">Siguran ekran skriva sadržaj aplikacije prilikom prebacivanja između aplikacija i blokira snimke ekrana</string>\n    <string name=\"secure_screen\">Siguran ekran</string>\n    <string name=\"lock_when_idle\">Zaključaj prilikom mirovanja</string>\n    <string name=\"lock_with_biometrics\">Zahtijevaj otključavanje</string>\n    <string name=\"pref_category_security\">Sigurnost i privatnost</string>\n    <string name=\"pref_manage_notifications\">Upravljaj obavijestima</string>\n    <string name=\"pref_date_format\">Format datuma</string>\n    <string name=\"theme_system\">Sustav</string>\n    <string name=\"theme_dark\">Tamna</string>\n    <string name=\"theme_light\">Svijetla</string>\n    <string name=\"pref_category_about\">Informacije</string>\n    <string name=\"pref_category_advanced\">Napredno</string>\n    <string name=\"pref_category_tracking\">Praćenje</string>\n    <string name=\"pref_category_downloads\">Preuzimanja</string>\n    <string name=\"pref_category_reader\">Čitač</string>\n    <string name=\"pref_category_library\">Biblioteka</string>\n    <string name=\"pref_category_general\">Opće</string>\n    <string name=\"app_not_available\">Aplikacija nije dostupna</string>\n    <string name=\"loading\">Učitavanje …</string>\n    <string name=\"action_webview_refresh\">Osvježi</string>\n    <string name=\"action_webview_forward\">Naprijed</string>\n    <string name=\"action_webview_back\">Natrag</string>\n    <string name=\"chapters\">Poglavlja</string>\n    <string name=\"categories\">Kategorije</string>\n    <string name=\"information_empty_category\">Nemaš kategorija. Za stvaranje kategorije i organiziranje biblioteke dodirni gumb plus.</string>\n    <string name=\"information_empty_library\">Tvoja je biblioteka prazna</string>\n    <string name=\"information_no_recent_manga\">Ništa nije nedavno čitano</string>\n    <string name=\"information_no_recent\">Nema nedavnih aktualiziranja</string>\n    <string name=\"information_no_downloads\">Nema preuzimanja</string>\n    <string name=\"label_help\">Pomoć</string>\n    <string name=\"label_extension_info\">Podaci proširenja</string>\n    <string name=\"label_extensions\">Proširenja</string>\n    <string name=\"label_migration\">Premjesti</string>\n    <string name=\"label_backup\">Sigurnosna kopija i obnavljanje</string>\n    <string name=\"label_sources\">Izvori</string>\n    <string name=\"label_recent_manga\">Povijest</string>\n    <string name=\"label_recent_updates\">Aktualiziranja</string>\n    <string name=\"label_library\">Biblioteka</string>\n    <string name=\"label_download_queue\">Popis preuzimanja</string>\n    <string name=\"label_settings\">Postavke</string>\n    <string name=\"label_more\">Više</string>\n    <string name=\"name\">Ime</string>\n    <string name=\"action_restore\">Obnovi</string>\n    <string name=\"action_open_log\">Otvori zapisnik</string>\n    <string name=\"action_undo\">Poništi</string>\n    <string name=\"action_reset\">Obnovi</string>\n    <string name=\"action_save\">Spremi</string>\n    <string name=\"action_share\">Dijeli</string>\n    <string name=\"action_install\">Instaliraj</string>\n    <string name=\"action_move_to_bottom\">Premjesti na kraj</string>\n    <string name=\"action_move_to_top\">Premjesti na vrh</string>\n    <string name=\"action_oldest\">Najstarije</string>\n    <string name=\"action_newest\">Najnovije</string>\n    <string name=\"action_sort\">Razvrstaj</string>\n    <string name=\"action_cancel_all\">Prekini sve</string>\n    <string name=\"action_cancel\">Prekini</string>\n    <string name=\"action_unpin\">Otkvači</string>\n    <string name=\"action_pin\">Prikvači</string>\n    <string name=\"action_display_download_badge\">Preuzeta poglavlja</string>\n    <string name=\"action_display_list\">Popis</string>\n    <string name=\"action_display_grid\">Kompaktno</string>\n    <string name=\"action_display\">Prikaz</string>\n    <string name=\"action_display_mode\">Modus prikaza</string>\n    <string name=\"action_open_in_web_view\">Otvori u WebView</string>\n    <string name=\"action_open_in_browser\">Otvori u pregledniku</string>\n    <string name=\"action_resume\">Nastavi</string>\n    <string name=\"action_remove\">Ukloni</string>\n    <string name=\"action_retry\">Pokušaj ponovo</string>\n    <string name=\"action_next_chapter\">Sljedeće poglavlje</string>\n    <string name=\"action_previous_chapter\">Prethodno poglavlje</string>\n    <string name=\"action_pause\">Pauziraj</string>\n    <string name=\"action_view_chapters\">Pogledaj poglavlja</string>\n    <string name=\"action_edit_cover\">Uredi naslovnicu</string>\n    <string name=\"action_move_category\">Postavi kategorije</string>\n    <string name=\"action_rename_category\">Preimenuj kategoriju</string>\n    <string name=\"action_edit_categories\">Uredi kategorije</string>\n    <string name=\"action_add_category\">Dodaj kategoriju</string>\n    <string name=\"action_add\">Dodaj</string>\n    <string name=\"action_edit\">Uredi</string>\n    <string name=\"action_update_library\">Aktualiziraj biblioteku</string>\n    <string name=\"action_delete\">Izbriši</string>\n    <string name=\"action_remove_bookmark\">Ukloni zabilješku poglavlja</string>\n    <string name=\"action_bookmark\">Zabilježi poglavlje</string>\n    <string name=\"action_download\">Preuzmi</string>\n    <string name=\"action_mark_previous_as_read\">Označi prethodno kao pročitano</string>\n    <string name=\"action_mark_as_unread\">Označi kao nepročitano</string>\n    <string name=\"action_mark_as_read\">Označi kao pročitano</string>\n    <string name=\"action_select_inverse\">Odaberi inverzno</string>\n    <string name=\"action_select_all\">Odaberi sve</string>\n    <string name=\"action_global_search\">Globalna pretraga</string>\n    <string name=\"action_search\">Traži</string>\n    <string name=\"action_sort_latest_chapter\">Najnovije poglavlje</string>\n    <string name=\"action_sort_last_read\">Zadnje čitano</string>\n    <string name=\"action_sort_total\">Ukupan broj poglavlja</string>\n    <string name=\"action_sort_alpha\">Abecednim redom</string>\n    <string name=\"action_filter_empty\">Ukloni filtar</string>\n    <string name=\"action_filter_unread\">Nepročitano</string>\n    <string name=\"action_filter_bookmarked\">Zabilježeno</string>\n    <string name=\"action_filter\">Filtar</string>\n    <string name=\"action_menu\">Izbornik</string>\n    <string name=\"action_settings\">Postavke</string>\n    <string name=\"history\">Povijest</string>\n    <string name=\"track\">Praćenje</string>\n    <string name=\"manga\">Unosi u biblioteci</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d s</string>\n    <string name=\"restore_completed\">Obnavljanje je završeno</string>\n    <string name=\"backup_created\">Sigurnosna kopija je stvorena</string>\n    <string name=\"pref_backup_interval\">Učestalost automatskog spremanja sigurnosnih kopija</string>\n    <string name=\"pref_restore_backup_summ\">Obnovi biblioteku iz sigurnosne kopije</string>\n    <string name=\"pref_restore_backup\">Obnovi sigurnosnu kopiju</string>\n    <string name=\"pref_create_backup_summ\">Može se koristiti za obnavljanje trenutačne biblioteke</string>\n    <string name=\"pref_create_backup\">Stvori sigurnosnu kopiju</string>\n    <string name=\"services\">Usluge praćenja</string>\n    <string name=\"pref_auto_update_manga_sync\">Aktualiziraj napredak nakon čitanja</string>\n    <string name=\"pref_download_new\">Preuzmi nova poglavlja</string>\n    <string name=\"fifth_to_last\">Peto prije zadnjeg pročitanog poglavlja</string>\n    <string name=\"fourth_to_last\">Četvrto prije zadnjeg pročitanog poglavlja</string>\n    <string name=\"third_to_last\">Pretpredzadnje pročitano poglavlje</string>\n    <string name=\"second_to_last\">Predzadnje pročitano poglavlje</string>\n    <string name=\"last_read_chapter\">Zadnje pročitano poglavlje</string>\n    <string name=\"disabled\">Deaktivirano</string>\n    <string name=\"pref_remove_after_read\">Automatski izbriši nakon čitanja</string>\n    <string name=\"pref_remove_after_marked_as_read\">Nakon ručnog označivanja kao pročitano</string>\n    <string name=\"pref_webtoon_side_padding\">Odmak od ruba</string>\n    <string name=\"pref_category_reading\">Čitanje</string>\n    <string name=\"pref_always_show_chapter_transition\">Uvijek prikaži prijelaze između poglavlja</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"color_filter_b_value\">Plava</string>\n    <string name=\"color_filter_g_value\">Zelena</string>\n    <string name=\"color_filter_r_value\">Crvena</string>\n    <string name=\"rotation_force_landscape\">Zaključan polegnuti format</string>\n    <string name=\"rotation_force_portrait\">Zaključan uspravni format</string>\n    <string name=\"rotation_free\">Slobodno</string>\n    <string name=\"pref_rotation_type\">Standardno okretanje</string>\n    <string name=\"double_tap_anim_speed_fast\">Brzo</string>\n    <string name=\"double_tap_anim_speed_normal\">Normalno</string>\n    <string name=\"double_tap_anim_speed_0\">Bez animacije</string>\n    <string name=\"zoom_start_center\">Sredina</string>\n    <string name=\"zoom_start_right\">Desno</string>\n    <string name=\"zoom_start_left\">Lijevo</string>\n    <string name=\"zoom_start_automatic\">Automatski</string>\n    <string name=\"pref_zoom_start\">Početni položaj zumiranja</string>\n    <string name=\"scale_type_smart_fit\">Pametna prilagodba</string>\n    <string name=\"scale_type_original_size\">Izvorna veličina</string>\n    <string name=\"scale_type_fit_height\">Prilagodi visinu</string>\n    <string name=\"scale_type_fit_width\">Prilagodi širinu</string>\n    <string name=\"scale_type_stretch\">Rastegni</string>\n    <string name=\"scale_type_fit_screen\">Prilagodi ekranu</string>\n    <string name=\"pref_image_scale_type\">Vrsta skaliranja</string>\n    <string name=\"pager_viewer\">Stranice</string>\n    <string name=\"vertical_plus_viewer\">Kontinuirano listanje s razmacima</string>\n    <string name=\"webtoon_viewer\">Kontinuirano listanje</string>\n    <string name=\"vertical_viewer\">Stranica (okomito)</string>\n    <string name=\"right_to_left_viewer\">Stranica (s desna na lijevo)</string>\n    <string name=\"left_to_right_viewer\">Stranica (s lijeva na desno)</string>\n    <string name=\"pref_viewer_type\">Standardni modus čitanja</string>\n    <string name=\"black_background\">Crna</string>\n    <string name=\"gray_background\">Siva</string>\n    <string name=\"white_background\">Bijela</string>\n    <string name=\"pref_keep_screen_on\">Ostavi ekran uključen</string>\n    <string name=\"filter_mode_darken\">Potamni</string>\n    <string name=\"filter_mode_lighten\">Posvijetli</string>\n    <string name=\"filter_mode_screen\">Ekran</string>\n    <string name=\"filter_mode_multiply\">Pomnoži</string>\n    <string name=\"filter_mode_overlay\">Prekrij</string>\n    <string name=\"pref_color_filter_mode\">Modus stapanja filtra boja</string>\n    <string name=\"pref_custom_color_filter\">Prilagođeni filtar boja</string>\n    <string name=\"pref_custom_brightness\">Prilagođena svjetlina</string>\n    <string name=\"pref_crop_borders\">Odreži rubove</string>\n    <string name=\"pref_show_page_number\">Prikaži broj stranice</string>\n    <string name=\"pref_double_tap_anim_speed\">Brzina animacije dvostrukim dodirom</string>\n    <string name=\"pref_page_transitions\">Animiraj prijelaze stranica</string>\n    <string name=\"pref_cutout_short\">Prikaži sadržaj u izrezanom području</string>\n    <string name=\"pref_reader_theme\">Boja pozadine</string>\n    <string name=\"pref_read_with_long_tap\">Prikaži radnje pri dugom dodiru</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Preokreni tipke za glasnoću</string>\n    <string name=\"pref_read_with_volume_keys\">Tipke za glasnoću</string>\n    <string name=\"pref_reader_navigation\">Navigacija</string>\n    <string name=\"pref_skip_filtered_chapters\">Preskoči filtrirana poglavlja</string>\n    <string name=\"pref_skip_read_chapters\">Preskoči pročitana poglavlja</string>\n    <string name=\"update_check_notification_update_available\">Dostupna je nova verzija!</string>\n    <string name=\"update_check_notification_download_error\">Greška pri preuzimanju</string>\n    <string name=\"update_check_notification_download_complete\">Dodirni za instaliranje nove verzije</string>\n    <string name=\"update_check_notification_download_in_progress\">Preuzimanje …</string>\n    <string name=\"update_check_no_new_updates\">Nema novih verzija</string>\n    <string name=\"update_check_confirm\">Preuzmi</string>\n    <string name=\"file_select_backup\">Odaberi datoteku sigurnosne kopije</string>\n    <string name=\"file_select_cover\">Odaberi sliku naslovnice</string>\n    <string name=\"notification_first_add_to_library\">Prije toga, dodajte stavku u biblioteku</string>\n    <string name=\"notification_cover_update_failed\">Neuspjelo aktualiziranje naslovnice</string>\n    <string name=\"notification_chapters_multiple\">Poglavlja %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Poglavlje %1$s i još %2$d</string>\n    <string name=\"notification_chapters_single\">Poglavlje %1$s</string>\n    <string name=\"notification_new_chapters\">Pronađena su nova poglavlja</string>\n    <string name=\"download_queue_error\">Neuspjelo preuzimanje poglavlja. Pokušaj ponovo u odjeljku preuzimanja</string>\n    <string name=\"copy\">Kopiraj</string>\n    <string name=\"migrate\">Premjesti</string>\n    <string name=\"migration_selection_prompt\">Odaberi izvor iz kojeg se migrira</string>\n    <string name=\"migration_dialog_what_to_include\">Odaberi podatke koje želiš uključiti</string>\n    <string name=\"recent_manga_time\">Pogl. %1$s – %2$s</string>\n    <string name=\"updating_library\">Aktualiziranje biblioteke</string>\n    <string name=\"transition_pages_error\">Neuspjelo učitavanje stranica: %1$s</string>\n    <string name=\"transition_pages_loading\">Učitavanje stranica …</string>\n    <string name=\"transition_no_previous\">Nema prethodnog poglavlja</string>\n    <string name=\"transition_no_next\">Nema sljedećeg poglavlja</string>\n    <string name=\"transition_previous\">Prethodno:</string>\n    <string name=\"transition_next\">Sljedeće:</string>\n    <string name=\"transition_current\">Trenutačno:</string>\n    <string name=\"transition_finished\">Završeno:</string>\n    <string name=\"viewer\">Modus čitanja</string>\n    <string name=\"pref_category_for_this_series\">Za ovu seriju</string>\n    <string name=\"confirm_set_image_as_cover\">Ovu sliku koristiti kao naslovnicu?</string>\n    <string name=\"decode_image_error\">Nije bilo moguće učitati sliku</string>\n    <string name=\"no_next_chapter\">Sljedeće poglavlje nije pronađeno</string>\n    <string name=\"chapter_progress\">Stranica: %1$d</string>\n    <string name=\"cover_updated\">Naslovnica aktualizirana</string>\n    <string name=\"set_as_cover\">Postavi kao naslovnicu</string>\n    <string name=\"custom_filter\">Prilagođeni filtar</string>\n    <string name=\"picture_saved\">Slika spremljena</string>\n    <string name=\"dialog_with_checkbox_reset\">Obnovi sva poglavlja za ovaj unos</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ovo će ukloniti datum čitanja ovog poglavlja. Je li to stvarno želiš?</string>\n    <string name=\"snack_categories_deleted\">Izbrisane kategorije</string>\n    <string name=\"error_category_exists\">Kategorija s ovim imenom već postoji!</string>\n    <string name=\"track_type\">Vrsta</string>\n    <string name=\"track_status\">Stanje</string>\n    <string name=\"status\">Stanje</string>\n    <string name=\"title\">Naslov</string>\n    <string name=\"score\">Ocjena</string>\n    <string name=\"repeating\">Ponovno čitanje</string>\n    <string name=\"plan_to_read\">Planiram čitati</string>\n    <string name=\"paused\">Zaustavljeno</string>\n    <string name=\"on_hold\">Na čekanju</string>\n    <string name=\"dropped\">Ispušteno</string>\n    <string name=\"completed\">Završeno</string>\n    <string name=\"reading\">Čitanje</string>\n    <string name=\"add_tracking\">Dodaj praćenje</string>\n    <string name=\"manga_tracking_tab\">Praćenje</string>\n    <string name=\"confirm_delete_chapters\">Stvarno želiš izbrisati odabrana poglavlja?</string>\n    <string name=\"download_unread\">Nepročitano</string>\n    <string name=\"manga_download\">Preuzmi</string>\n    <string name=\"sort_by_number\">Po broju poglavlja</string>\n    <string name=\"sort_by_source\">Po izvoru</string>\n    <string name=\"show_chapter_number\">Broj poglavlja</string>\n    <string name=\"show_title\">Naslov izvora</string>\n    <string name=\"chapter_paused\">Zaustavljeno</string>\n    <string name=\"chapter_error\">Greška</string>\n    <string name=\"chapter_downloading_progress\">Preuzimanje (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">Poglavlje %1$s</string>\n    <string name=\"snack_add_to_library\">Dodati u biblioteku?</string>\n    <string name=\"source_not_installed\">Izvor nije instaliran: %1$s</string>\n    <string name=\"copied_to_clipboard\">Kopirano u međuspremnik:\n\\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">Izbrisati preuzeta poglavlja?</string>\n    <string name=\"manga_info_collapse\">Manje</string>\n    <string name=\"manga_info_expand\">Više</string>\n    <string name=\"manga_removed_library\">Uklonjeno iz biblioteke</string>\n    <string name=\"manga_added_library\">Dodano u biblioteku</string>\n    <string name=\"remove_from_library\">Ukloni iz biblioteke</string>\n    <string name=\"in_library\">U biblioteci</string>\n    <string name=\"add_to_library\">Dodaj u biblioteku</string>\n    <string name=\"licensed\">Licencirano</string>\n    <string name=\"unknown\">Nepoznato</string>\n    <string name=\"ongoing\">Nastavljajući</string>\n    <string name=\"local_source_help_guide\">Vodič za lokalni izvor</string>\n    <string name=\"browse\">Pregledaj</string>\n    <string name=\"latest\">Najnoviji</string>\n    <string name=\"action_global_search_hint\">Globalna pretraga …</string>\n    <string name=\"pinned_sources\">Označeni</string>\n    <string name=\"last_used_source\">Zadnji korišteni</string>\n    <string name=\"other_source\">Drugi</string>\n    <string name=\"local_source\">Lokalni izvor</string>\n    <string name=\"no_results_found\">Nema rezultata</string>\n    <string name=\"no_more_results\">Nema daljnjih rezultata</string>\n    <string name=\"updating_category\">Ažuriranje kategorije</string>\n    <string name=\"unknown_error\">Nepoznata greška</string>\n    <string name=\"logout_success\">Odjava uspjela</string>\n    <string name=\"logout\">Odjava</string>\n    <string name=\"logout_title\">Odjaviti se iz %1$s?</string>\n    <string name=\"login_success\">Prijava uspjela</string>\n    <string name=\"login\">Prijava</string>\n    <string name=\"password\">Lozinka</string>\n    <string name=\"email\">Adresa e-pošte</string>\n    <string name=\"username\">Korisničko ime</string>\n    <string name=\"login_title\">Prijavi se na %1$s</string>\n    <string name=\"downloaded_only_summary\">Filtrira sve unose u biblioteci</string>\n    <string name=\"label_downloaded_only\">Samo preuzeto</string>\n    <string name=\"pref_acra_summary\">Pomaže pri ispravljanju grešaka. Ne šalju se nikoji privatni podaci</string>\n    <string name=\"pref_enable_acra\">Pošalji izvještaj o prekidu rad aplikacije</string>\n    <string name=\"check_for_updates\">Traži nove verzije</string>\n    <string name=\"licenses\">Licence otvorenog koda</string>\n    <string name=\"version\">Verzija</string>\n    <string name=\"website\">Web-stranica</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Nije moguće otvoriti postavke uređaja</string>\n    <string name=\"battery_optimization_disabled\">Optimiranje baterije je već deaktivirano</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Pomaže pri aktualiziranju biblioteke i spremanju sigurnosnih kopija u pozadini</string>\n    <string name=\"pref_disable_battery_optimization\">Deaktiviraj optimiranje baterije</string>\n    <string name=\"clear_database_completed\">Unosi su izbrisani</string>\n    <string name=\"pref_clear_database_summary\">Izbriši povijest za unose koji nisu spremljeni u biblioteci</string>\n    <string name=\"pref_clear_database\">Isprazni bazu podataka</string>\n    <string name=\"cookies_cleared\">Kolačići su izbrisani</string>\n    <string name=\"pref_clear_cookies\">Ukloni kolačiće</string>\n    <string name=\"cache_delete_error\">Došlo je do greške prilikom brisanja</string>\n    <string name=\"cache_deleted\">Predmemorija je izbrisana. Broj izbrisanih datoteka: %1$d</string>\n    <string name=\"used_cache\">Korišteno: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">Isprazni predmemoriju poglavlja</string>\n    <string name=\"restoring_backup_canceled\">Obnavljanje prekinuto</string>\n    <string name=\"restoring_backup_error\">Obnavljanje neuspjelo</string>\n    <string name=\"restoring_backup\">Obnavljanje sigurnosnom kopijom</string>\n    <string name=\"restore_in_progress\">Obnavljanje je već u tijeku</string>\n    <string name=\"creating_backup_error\">Sigurnosna kopija neuspjela</string>\n    <string name=\"creating_backup\">Stvaranje sigurnosne kopije</string>\n    <string name=\"backup_choice\">Što želiš spremiti kao sigurnosnu kopiju?</string>\n    <string name=\"backup_in_progress\">Spremanje sigurnosne kopije je već u tijeku</string>\n    <string name=\"information_cloudflare_bypass_failure\">Neuspjelo zaobilaženje Cloudflare-a</string>\n    <string name=\"information_webview_required\">Za funkcioniranje aplikacije je potreban WebView</string>\n    <string name=\"channel_ext_updates\">Aktualiziranja proširenja</string>\n    <string name=\"channel_new_chapters\">Aktualiziranja poglavlja</string>\n    <string name=\"channel_common\">Opće</string>\n    <string name=\"download_notifier_download_paused\">Preuzimanje zaustavljeno</string>\n    <string name=\"download_notifier_no_network\">Nema mrežne veze</string>\n    <string name=\"download_notifier_text_only_wifi\">Nema Wi-Fi veze</string>\n    <string name=\"download_notifier_unknown_error\">Poglavlje nije moguće preuzeti zbog neočekivane pogreške</string>\n    <string name=\"download_notifier_title_error\">Greška</string>\n    <string name=\"download_notifier_downloader_title\">Preuzimanja</string>\n    <string name=\"information_webview_outdated\">Za bolju kompatibilnost, aktualiziraj WebView</string>\n    <string name=\"pref_refresh_library_covers\">Aktualiziraj naslovnice biblioteke</string>\n    <string name=\"sort_by_upload_date\">Po datumu prijenosa</string>\n    <string name=\"label_data\">Podaci</string>\n    <string name=\"backup_restore_missing_sources\">Nedostaju izvori:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Sigurnosna kopija ne sadrži unose u biblioteci.</string>\n    <string name=\"invalid_backup_file\">Neispravna datoteka sigurnosne kopije:</string>\n    <string name=\"tracking_info\">Jednosmjerna sinkronizacija za aktualiziranje napretka poglavlja u eksternoj usluzi praćenja. Postavi praćenje pojedinačnih unosa manga putem gumba za praćenje.</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Provjeri nove naslovnice i pojedinosti prilikom aktualiziranja biblioteke</string>\n    <string name=\"pref_library_update_refresh_metadata\">Automatski osvježi metapodatke</string>\n    <string name=\"action_migrate\">Premjesti</string>\n    <string name=\"action_disable_all\">Deaktiviraj sve</string>\n    <string name=\"action_enable_all\">Aktiviraj sve</string>\n    <string name=\"page_list_empty_error\">Nema stranica</string>\n    <string name=\"tabs_header\">Kartice</string>\n    <string name=\"pref_show_reading_mode_summary\">Nakratko prikaži trenutačni modus kad se čitač otvori</string>\n    <string name=\"pref_show_reading_mode\">Prikaži modus čitanja</string>\n    <string name=\"action_display_show_tabs\">Prikaži kartice kategorija</string>\n    <string name=\"action_display_comfortable_grid\">Mreža</string>\n    <string name=\"action_start\">Pokreni</string>\n    <string name=\"action_disable\">Deaktiviraj</string>\n    <string name=\"loader_not_implemented_error\">Izvor nije pronađen</string>\n    <string name=\"requires_app_restart\">Zahtijeva ponovno pokretanje aplikacije</string>\n    <string name=\"label_network\">Umreženi rad</string>\n    <string name=\"tapping_inverted_both\">Oboje</string>\n    <string name=\"tapping_inverted_vertical\">Okomito</string>\n    <string name=\"tapping_inverted_horizontal\">Vodoravno</string>\n    <string name=\"tapping_inverted_none\">Ništa</string>\n    <string name=\"pref_read_with_tapping_inverted\">Preokreni područja za dodirivanje</string>\n    <string name=\"unknown_status\">Nepoznato stanje</string>\n    <string name=\"unknown_author\">Nepoznat autor</string>\n    <string name=\"updated_version\">Aktualizirano na v%1$s</string>\n    <string name=\"whats_new\">Što je novo</string>\n    <string name=\"download_insufficient_space\">Neuspjelo preuzimanje poglavlja zbog nedovoljne memorije</string>\n    <string name=\"action_global_search_query\">Traži „%1$s” globalno</string>\n    <string name=\"pref_category_reading_mode\">Modus čitanja</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Datum dodavanja</string>\n    <string name=\"no_pinned_sources\">Nemaš označenih izvora</string>\n    <string name=\"channel_complete\">Gotovo</string>\n    <string name=\"channel_progress\">Napredak</string>\n    <string name=\"channel_errors\">Greške</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Dozvoli brisanje zabilježenih poglavlja</string>\n    <string name=\"pref_category_delete_chapters\">Izbriši poglavlja</string>\n    <string name=\"ext_nsfw_warning\">Izvori ovog proširenja mogu sadržavati neprikladan sadržaj (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"backup_restore_missing_trackers\">Usluge praćenja bez prijave:</string>\n    <string name=\"parental_controls_info\">To ne sprečava neslužbene ili potencijalno krivo označena proširenja prikazati neprikladan sadržaj (18+) unutar aplikacije.</string>\n    <string name=\"no_chapters_error\">Nema poglavlja</string>\n    <string name=\"chapter_settings_updated\">Standardne postavke poglavlja su aktualizirane</string>\n    <string name=\"share_page_info\">%1$s: %2$s, %3$d. stranica</string>\n    <string name=\"set_chapter_settings_as_default\">Postavi kao standardno</string>\n    <string name=\"also_set_chapter_settings_for_library\">Također primijeni na sve unose u mojoj biblioteci</string>\n    <string name=\"confirm_set_chapter_settings\">Stvarno želiš spremiti ove postavke kao standardne?</string>\n    <string name=\"chapter_settings\">Postavke poglavlja</string>\n    <string name=\"action_search_settings\">Postavke pretrage</string>\n    <string name=\"manga_from_library\">Iz biblioteke</string>\n    <string name=\"downloaded_chapters\">Preuzeta poglavlja</string>\n    <string name=\"pref_incognito_mode\">Anonimni modus</string>\n    <string name=\"pref_incognito_mode_summary\">Zaustavlja čitanje povijesti</string>\n    <string name=\"pref_clear_history\">Izbriši povijest</string>\n    <string name=\"clear_history_confirmation\">Sigurno? Izgubit ćeš svu povijest.</string>\n    <string name=\"clear_history_completed\">Povijest je izbrisana</string>\n    <string name=\"spen_next_page\">Sljedeća stranica</string>\n    <string name=\"spen_previous_page\">Prethodna stranica</string>\n    <string name=\"migration_help_guide\">Vodič za migraciju izvora</string>\n    <string name=\"pref_category_nsfw_content\">Izvori neprikladnog sadržaja (18+)</string>\n    <string name=\"file_picker_error\">Nije pronađena nijedna aplikacija za biranje datoteka</string>\n    <string name=\"myanimelist_relogin\">Ponovo se prijavi na MAL</string>\n    <string name=\"pref_show_nsfw_source\">Prikaži u popisu izvora i proširenja</string>\n    <string name=\"track_finished_reading_date\">Datum kraja</string>\n    <string name=\"track_started_reading_date\">Datum početka</string>\n    <string name=\"pref_dump_crash_logs_summary\">Sprema zapise grešaka u datoteku za dijeljenje podataka s programerima</string>\n    <string name=\"pref_dump_crash_logs\">Dijeli zapise prekida rada aplikacije</string>\n    <string name=\"pref_viewer_nav\">Područja dodira</string>\n    <string name=\"edge_nav\">Rub</string>\n    <string name=\"kindlish_nav\">Kao Kindle</string>\n    <string name=\"l_nav\">U obliku slova L</string>\n    <string name=\"action_desc\">Silazno</string>\n    <string name=\"action_asc\">Uzlazno</string>\n    <string name=\"action_order_by_chapter_number\">Po broju poglavlja</string>\n    <string name=\"action_order_by_upload_date\">Po datumu preuzimanja</string>\n    <string name=\"action_filter_tracked\">Praćeno</string>\n    <string name=\"right_and_left_nav\">Desno i lijevo</string>\n    <string name=\"action_display_show_number_of_items\">Prikaži broj elemenata</string>\n    <string name=\"backup_restore_content_full\">Možda ćeš morati instalirati sva nedostajuća proširenja i naknadno se prijaviti na usluge praćenja za njihovo korištenje.</string>\n    <string name=\"pref_dual_page_invert_summary\">Ako se položaj rastavljenih širokih stranica ne podudara sa smjerom čitanja</string>\n    <string name=\"pref_dual_page_invert\">Obrni položaj rastavljene stranice</string>\n    <string name=\"pref_dual_page_split\">Rastavi široke stranice</string>\n    <string name=\"pref_show_navigation_mode_summary\">Kratko prikaži kada je čitač otvoren</string>\n    <string name=\"nav_zone_right\">Desno</string>\n    <string name=\"nav_zone_left\">Lijevo</string>\n    <string name=\"nav_zone_next\">Sljedeće</string>\n    <string name=\"nav_zone_prev\">Prethodno</string>\n    <string name=\"pref_show_navigation_mode\">Prikaži raspored navigacije</string>\n    <string name=\"pref_dns_over_https\">DNS preko HTTPS-a (DoH)</string>\n    <string name=\"none\">Ništa</string>\n    <string name=\"pref_download_new_categories_details\">Unosi u isključenim kategorijama neće se ažurirati čak i ako su također u uključenim kategorijama.</string>\n    <string name=\"pref_category_auto_download\">Automatsko preuzimanje</string>\n    <string name=\"exclude\">Isključi: %s</string>\n    <string name=\"include\">Uključi: %s</string>\n    <string name=\"pref_library_update_categories_details\">Unosi u isključenim kategorijama neće se aktualizirati čak i ako su u uključenim kategorijama.</string>\n    <string name=\"action_sort_chapter_fetch_date\">Datum preuzimanja poglavlja</string>\n    <string name=\"action_show_errors\">Dodirni za prikaz detalja</string>\n    <string name=\"update_check_eol\">Ove se Android verzija više ne podržava</string>\n    <string name=\"clipboard_copy_error\">Kopiranje nije uspješno</string>\n    <string name=\"rotation_landscape\">Polegnuti format</string>\n    <string name=\"rotation_portrait\">Uspravni format</string>\n    <string name=\"pref_grayscale\">Sive nijanse</string>\n    <string name=\"notification_incognito_text\">Deaktiviraj anonimni modus</string>\n    <string name=\"rotation_type\">Okretanje</string>\n    <string name=\"automatic_background\">Automatski</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Stvara mape na osnovi naslova unosa</string>\n    <string name=\"pref_create_folder_per_manga\">Spremi stranice u zasebne mape</string>\n    <string name=\"pref_reader_actions\">Radnje</string>\n    <string name=\"cancel_all_for_series\">Prekini sve za ovu seriju</string>\n    <string name=\"chapter_not_found\">Poglavlje nije pronađeno</string>\n    <string name=\"unread\">Nepročitano</string>\n    <string name=\"action_display_local_badge\">Lokalni izvor</string>\n    <string name=\"error_sharing_cover\">Greška tijekom dijeljenja naslovnice</string>\n    <string name=\"error_saving_cover\">Greška tijekom spremanja naslovnice</string>\n    <string name=\"cover_saved\">Naslovnica spremljena</string>\n    <string name=\"information_empty_category_dialog\">Još nemaš kategorija.</string>\n    <string name=\"error_no_match\">Ništa nije pronađeno</string>\n    <string name=\"source_unsupported\">Izvor nije podržan</string>\n    <string name=\"manga_cover\">Naslovnica</string>\n    <string name=\"date\">Datum</string>\n    <string name=\"local_filter_order_by\">Redoslijed</string>\n    <string name=\"local_invalid_format\">Nevažeći format poglavlja</string>\n    <string name=\"tracking_guide\">Vodič za praćenje</string>\n    <string name=\"off\">Isključeno</string>\n    <string name=\"on\">Uključeno</string>\n    <string name=\"categorized_display_settings\">Postavke kategorija za sortiranje</string>\n    <string name=\"restrictions\">Ograničenja: %s</string>\n    <string name=\"action_start_downloading_now\">Pokreni preuzimanje sada</string>\n    <string name=\"about_dont_kill_my_app\">Neki proizvođači imaju dodatna ograničenja za aplikaciju koja onemogućuju usluge u pozadini. Ova web-stranica sadrži daljnje informacije o tome kako to popraviti.</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_midnightdusk\">Ponoćni sumrak</string>\n    <string name=\"theme_greenapple\">Zelena jabuka</string>\n    <string name=\"theme_monet\">Dinamički</string>\n    <string name=\"pref_app_theme\">Tema aplikacije</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Jin i Jang</string>\n    <string name=\"pref_inverted_colors\">Invertirano</string>\n    <string name=\"relative_time_today\">Danas</string>\n    <string name=\"pref_dark_theme_pure_black\">Potpuno crna tamna tema</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri jagoda</string>\n    <string name=\"pref_category_appearance\">Izgled</string>\n    <string name=\"getting_started_guide\">Vodič za pokretanje</string>\n    <string name=\"confirm_lock_change\">Ovjeri za potvrditi promjenu</string>\n    <string name=\"label_default\">Standardno</string>\n    <string name=\"restore_miui_warning\">Spremanje sigurnosne kopije i obnavljanje možda neće ispravno raditi, ako MIUI optimizacija nije aktivirana.</string>\n    <string name=\"help_translate\">Pomogni prevoditi</string>\n    <string name=\"action_sort_count\">Ukupan broj unosa</string>\n    <string name=\"action_display_language_badge\">Jezik</string>\n    <string name=\"label_warning\">Upozorenje</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ne radi</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instaliraj i pokreni Shizuku za korištenje Shizukua kao instalacijskog programa za proširenja.</string>\n    <string name=\"update_72hour\">Svaka 3 dana</string>\n    <string name=\"ext_update_all\">Aktualiziraj sve</string>\n    <string name=\"ext_install_service_notif\">Instaliranje proširenja …</string>\n    <string name=\"ext_app_info\">Podaci aplikacije</string>\n    <string name=\"connected_to_wifi\">Samo putem Wi-Fi veze</string>\n    <string name=\"download_queue_size_warning\">Upozorenje: velika skupna preuzimanja mogu dovesti do usporavanja izvora i/ili blokiranja %s. Za daljnje informacije dodirni.</string>\n    <string name=\"theme_tealturquoise\">Plavozelena i tirkiz</string>\n    <string name=\"clear_database_source_item_count\">Broj unosa u bazi odataka koje nisu u zbirci: %1$d</string>\n    <string name=\"pref_verbose_logging\">Opširno zapisivanje</string>\n    <string name=\"pref_verbose_logging_summary\">Ispiši opširan zapis u zapisnik sustava (smanjuje performanse aplikacije)</string>\n    <string name=\"backup_info\">Čuvaj sigurnosne kopije i na drugim mjestima. Sigurnosne kopije mogu sadržati osjetljive podatke uključujući sve spremljene lozinke; oprez pri dijeljenju podataka.</string>\n    <string name=\"pref_tablet_ui_mode\">Korisničko sučelje tableta</string>\n    <string name=\"notification_size_warning\">Velika aktualiziranja štete izvorima i mogu usporiti aktualiziranja i povećati potrošnju baterije. Dodirni i saznaj više.</string>\n    <string name=\"pref_low\">Niska</string>\n    <string name=\"label_background_activity\">Aktivnost u pozadini</string>\n    <string name=\"pref_hide_threshold\">Osjetljivost za skrivanje izbornika pri listanju</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Izbriši predmemoriju poglavlja tijekom pokretanja aplikacije</string>\n    <string name=\"channel_app_updates\">Aktualiziranja aplikacije</string>\n    <string name=\"database_clean\">Nema se što raščistiti</string>\n    <string name=\"pref_update_only_completely_read\">Preskoči unose s nepročitanim poglavljima</string>\n    <string name=\"enhanced_services\">Poboljšane usluge praćenja</string>\n    <string name=\"enhanced_tracking_info\">Pruža poboljšane značajke za određene izvore. Unosi se automatski prate kada se dodaju u biblioteku.</string>\n    <string name=\"action_track\">Prati</string>\n    <string name=\"privacy_policy\">Politika privatnosti</string>\n    <string name=\"extension_api_error\">Neuspjelo preuzimanje dostupnih proširenja</string>\n    <string name=\"ext_installer_pref\">Instalacijski program</string>\n    <string name=\"ext_installer_legacy\">Stari način</string>\n    <string name=\"pref_highest\">Najviša</string>\n    <string name=\"pref_remove_exclude_categories\">Isključene kategorije</string>\n    <string name=\"pref_high\">Visoka</string>\n    <string name=\"pref_lowest\">Najniža</string>\n    <string name=\"publishing_finished\">Objavljivanje završeno</string>\n    <string name=\"cancelled\">Prekinuto</string>\n    <string name=\"on_hiatus\">Zaustavljeno</string>\n    <string name=\"library_errors_help\">Za pomoć o tome kako popraviti greške aktualiziranja biblioteke, pogledaj %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Spremi kao CBZ arhivu</string>\n    <string name=\"action_show_manga\">Prikaži unos</string>\n    <string name=\"action_display_cover_only_grid\">Samo naslovnice</string>\n    <string name=\"pref_navigate_pan\">Panoramski prikaz širokih slika</string>\n    <string name=\"pref_landscape_zoom\">Automatski zumiraj u široke slike</string>\n    <string name=\"pref_update_only_started\">Preskoči nepokrenute unose</string>\n    <string name=\"skipped_reason_completed\">Preskočeno, jer je serija kompletna</string>\n    <string name=\"skipped_reason_not_started\">Preskočeno, jer nijedno poglavlje nije pročitano</string>\n    <string name=\"skipped_reason_not_caught_up\">Preskočeno, jer postoje nepročitana poglavlja</string>\n    <string name=\"notification_update_error\">Nauspjela aktualiziranja: %1$d</string>\n    <string name=\"learn_more\">Dodirni za daljnje informacije</string>\n    <string name=\"rotation_reverse_portrait\">Preokreni uspravni format</string>\n    <string name=\"action_move_to_top_all_for_series\">Premjesti seriju na vrh</string>\n    <string name=\"disabled_nav\">Deaktivirano</string>\n    <string name=\"empty_backup_error\">Nema unosa u biblioteci za spremanje u sigurnosnu kopiju</string>\n    <string name=\"split_tall_images_summary\">Poboljšava performanse čitača</string>\n    <string name=\"complete_list\">Potpun popis</string>\n    <string name=\"webview_data_deleted\">WebView podaci su izbrisani</string>\n    <string name=\"pref_clear_webview_data\">Izbriši WebView podatke</string>\n    <string name=\"reading_list\">Popis čitanja</string>\n    <string name=\"wish_list\">Popis želja</string>\n    <string name=\"on_hold_list\">Na popisu čekanja</string>\n    <string name=\"unfinished_list\">Popis nedovršenih</string>\n    <string name=\"download_notifier_split_page_not_found\">Stranica %d nije pronađena tijekom rastavljanja</string>\n    <string name=\"download_ahead_info\">Radi samo ako je trenutačno i sljedeće poglavlje već preuzeto.</string>\n    <string name=\"action_sort_last_manga_update\">Zadnja provjera aktualiziranja</string>\n    <string name=\"network_not_metered\">Samo na mrežom bez ograničenja</string>\n    <string name=\"action_sort_unread_count\">Broj nepročitanih</string>\n    <string name=\"delete_category\">Izbriši kategoriju</string>\n    <string name=\"delete_category_confirmation\">Želiš li izbrisati kategoriju „%s”?</string>\n    <string name=\"auto_download_while_reading\">Automatski preuzmi tijekom čitanja</string>\n    <string name=\"internal_error\">Interna greška: Provjeri zapisnike o prekidu aplikacije za daljnje informacije</string>\n    <string name=\"pref_app_language\">Jezik aplikacije</string>\n    <string name=\"action_close\">Zatvori</string>\n    <string name=\"action_remove_everything\">Ukloni sve</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"ext_info_language\">Jezik</string>\n    <string name=\"ext_info_version\">Verzija</string>\n    <string name=\"popular\">Popularni</string>\n    <string name=\"ext_info_age_rating\">Dobna granica</string>\n    <string name=\"download_ahead\">Preuzmi unaprijed</string>\n    <string name=\"multi_lang\">Višejezičnost</string>\n    <string name=\"missing_storage_permission\">Dozvole za spremište nisu odobrena</string>\n    <string name=\"theme_tidalwave\">Tsunami</string>\n    <string name=\"invalid_location\">Nevažeće mjesto: %s</string>\n    <string name=\"pref_advanced_summary\">Zapisnici iznenadnog gašenja aplikacije, optimizacije baterije</string>\n    <string name=\"label_started\">Započeto</string>\n    <string name=\"label_local\">Lokalno</string>\n    <string name=\"action_search_hint\">Traži …</string>\n    <string name=\"pref_library_summary\">Kategorije, globalno aktualiziranje, prelistavanje poglavlja</string>\n    <string name=\"pref_backup_summary\">Ručne i automatske sigurnosne kopije, količina spremišta</string>\n    <string name=\"label_stats\">Statistike</string>\n    <string name=\"label_downloaded\">Preuzeto</string>\n    <string name=\"action_display_show_continue_reading_button\">Gumb za nastavljanje čitanja</string>\n    <string name=\"pref_appearance_summary\">Tema, format datuma i vremena</string>\n    <string name=\"pref_browse_summary\">Izvori, ekstenzije, globalno pretraživanje</string>\n    <string name=\"pref_reader_summary\">Modus čitanja, prikaz, navigacija</string>\n    <string name=\"pref_downloads_summary\">Automatsko preuzimanje, preuzimanje unaprijed</string>\n    <string name=\"pref_security_summary\">Zaključavanje aplikacije, siguran zaslon</string>\n    <string name=\"pref_tracking_summary\">Jednosmjerna sinkronizacija napretka, poboljšana sinkronizacija</string>\n    <string name=\"action_open_random_manga\">Otvori nasumični unos</string>\n    <string name=\"pref_reset_user_agent_string\">Obnovi standardni izraz korisničkog agenta</string>\n    <string name=\"error_user_agent_string_invalid\">Nevažeći niz korisničkog agenta</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Prisili aplikaciju da ponovno provjeri preuzeta poglavlja</string>\n    <string name=\"pref_user_agent_string\">Standardni niz korisničkog agenta</string>\n    <string name=\"error_user_agent_string_blank\">Niz korisničkog agenta ne može biti prazan</string>\n    <string name=\"pref_invalidate_download_cache\">Ponovo indeksiraj preuzimanja</string>\n    <string name=\"pref_reset_viewer_flags\">Obnovi postavke čitača serija</string>\n    <string name=\"cant_open_last_read_chapter\">Nije moguće otvoriti zadnje čitano poglavlje</string>\n    <string name=\"custom_cover\">Prilagođena naslovnica</string>\n    <string name=\"description_placeholder\">Nema opisa</string>\n    <string name=\"label_titles_section\">Unosi</string>\n    <string name=\"label_titles_in_global_update\">Globalno aktualiziranje</string>\n    <string name=\"label_tracker_section\">Usluge praćenja</string>\n    <string name=\"label_mean_score\">Srednja ocjena</string>\n    <string name=\"label_used\">Korišteno</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"empty_screen\">Pa, ovo je nezgodno</string>\n    <string name=\"unknown_title\">Nepoznat naslov</string>\n    <string name=\"updates_last_update_info\">Zadnje aktualiziranje biblioteke: %s</string>\n    <string name=\"are_you_sure\">Sigurno?</string>\n    <string name=\"crash_screen_description\">Neočekivana greška u aplikaciji %s. Predlažemo da podijeliš zapis o prekidu rada aplikacije u našem kanalu za podršku na Discordu.</string>\n    <string name=\"label_overview_section\">Pregled</string>\n    <string name=\"label_completed_titles\">Dovršene stavke</string>\n    <string name=\"label_read_duration\">Trajanje čitanja</string>\n    <string name=\"label_total_chapters\">Ukupno</string>\n    <string name=\"label_read_chapters\">Pročitano</string>\n    <string name=\"label_tracked_titles\">Praćeni unosi</string>\n    <string name=\"not_applicable\">--</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"source_empty_screen\">Izvor nije pronađen</string>\n    <string name=\"update_already_running\">Jedno aktualiziranje je već u tijeku</string>\n    <string name=\"pref_reset_viewer_flags_error\">Neuspjelo obnavljanje postavki čitača</string>\n    <string name=\"pref_reset_viewer_flags_success\">Sve postavke čitača su obnovljene</string>\n    <string name=\"track_remove_date_conf_title\">Ukloniti datum?</string>\n    <string name=\"track_remove_start_date_conf_text\">Time ćete ukloniti prethodno odabrani datum početka iz %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Time ćete ukloniti prethodno odabrani datum završetka iz %s</string>\n    <string name=\"source_filter_empty_screen\">Nije pronađen instalirani izvor</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Obnavlja modus čitanja i položaj svih serija</string>\n    <string name=\"error_saving_picture\">Pogreška pri spremanju slike</string>\n    <string name=\"crash_screen_restart_application\">Ponovno pokretanje aplikacije</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"not_installed\">Nije instalirano</string>\n    <string name=\"updates_last_update_info_just_now\">Upravo sada</string>\n    <string name=\"fdroid_warning\">F-Droid verzije nisu službeno podržane.\n\\nDodirnite da biste saznali više.</string>\n    <string name=\"download_notifier_cache_renewal\">Provjeravanje preuzimanja</string>\n    <string name=\"update_check_open\">Otvori na GitHubu</string>\n    <string name=\"skipped_reason_not_always_update\">Preskočeno jer serija ne zahtijeva aktualiziranja</string>\n    <string name=\"appwidget_updates_description\">Pogledaj nedavno aktualizirane unose u biblioteci</string>\n    <string name=\"remove_manga\">Uklonit ćeš „%s” iz svoje biblioteke</string>\n    <string name=\"appwidget_unavailable_locked\">Widget nije dostupan kada je zaključavanje aplikacije aktivirano</string>\n    <string name=\"information_no_entries_found\">Nije pronađen nijedan unos u ovoj kategoriji</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nije moguće pronaći putanju datoteke stranice %d</string>\n    <string name=\"action_not_now\">Ne sada</string>\n    <string name=\"pref_library_update_show_tab_badge\">Prikaži broj nepročitanih na ikoni aktualiziranja</string>\n    <string name=\"information_no_manga_category\">Kategorija je prazna</string>\n    <string name=\"copied_to_clipboard_plain\">Kopirano u međuspremnik</string>\n    <string name=\"enhanced_services_not_installed\">Dostupne, ali izvor nije instaliran: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Preskoči dupla poglavlja</string>\n    <string name=\"track_error\">%1$s greška: %2$s</string>\n    <string name=\"information_required_plain\">*obavezno</string>\n    <string name=\"pref_hide_in_library_items\">Sakrij unose koji se već nalaze u biblioteci</string>\n    <string name=\"action_copy_to_clipboard\">Kopiraj u međuspremnik</string>\n    <string name=\"action_update_category\">Aktualiziraj katogoriju</string>\n    <string name=\"split_tall_images\">Rastavi visoke slike</string>\n    <string name=\"overlay_header\">Oznake</string>\n    <string name=\"pref_page_rotate\">Prilagodi prikaz širokih stranica okretanjem</string>\n    <string name=\"pref_page_rotate_invert\">Preokreni položaj širokih stranica</string>\n    <string name=\"pref_debug_info\">Informacije o otklanjanju grešaka</string>\n    <string name=\"pref_chapter_swipe_start\">Poglavlje pri povlačenju ulijevo</string>\n    <string name=\"pref_double_tap_zoom\">Dodirni dvaput za zumiranje</string>\n    <string name=\"pref_chapter_swipe_end\">Poglavlje pri povlačenju udesno</string>\n    <string name=\"action_set_interval\">Postavi interval</string>\n    <string name=\"action_filter_interval_custom\">Prilagođeni interval aktualiziranja</string>\n    <string name=\"manga_display_interval_title\">Procijeni svakih</string>\n    <string name=\"action_sort_next_updated\">Sljedeće očekivano aktualiziranje</string>\n    <string name=\"manga_display_modified_interval_title\">Postavi aktualiziranje svakih</string>\n    <string name=\"action_ok\">U redu</string>\n    <string name=\"pref_update_only_in_release_period\">Predvidi vrijeme sljedećeg izdanja</string>\n    <string name=\"intervals_header\">Intervali</string>\n    <string name=\"track_delete_title\">Ukloniti praćenje %s?</string>\n    <string name=\"skipped_reason_not_in_release_period\">Preskočeno, jer se danas nije očekivalo izdanje</string>\n    <string name=\"track_delete_text\">Ovo će ukloniti lokalno praćenje.</string>\n    <string name=\"track_delete_remote_text\">Također ukloni iz %s</string>\n    <string name=\"delete_downloaded\">Izbriši preuzete</string>\n    <string name=\"has_results\">Ima rezultate</string>\n    <string name=\"syncing_library\">Sinkroniziranje biblioteke</string>\n    <string name=\"library_sync_complete\">Sinkroniziranje biblioteke završeno</string>\n    <string name=\"information_cloudflare_help\">Dodirni ovdje za pomoć s Cloudflareom</string>\n    <string name=\"track_activity_name\">Prijava za uslugu praćenja</string>\n    <string name=\"download_cache_invalidated\">Ponovno stvaranje indeksa preuzimanja</string>\n    <string name=\"create_backup_file_error\">Nije bilo moguće stvoriti datoteku sigurnosne kopije</string>\n    <string name=\"unlock_app_title\">Otključaj %s</string>\n    <string name=\"exception_offline\">Ne postoji veza s internetom</string>\n    <string name=\"exception_http\">HTTP %d, provjeri web stranicu u WebView</string>\n    <string name=\"exception_unknown_host\">Nije bilo moguće povezati se s računalom %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Premjesti seriju na kraj</string>\n    <string name=\"pref_relative_format\">Relativne vremenske oznake</string>\n    <string name=\"pref_relative_format_summary\">„%1$s” umjesto „%2$s”</string>\n    <string name=\"notification_updating_progress\">Aktualiziranje biblioteke … (%s)</string>\n    <string name=\"file_null_uri_error\">Nije odabrana nijedna datoteka</string>\n    <string name=\"source_settings\">Postavke izvora</string>\n    <string name=\"app_settings\">Postavke aplikacije</string>\n    <string name=\"label_data_storage\">Podaci i spremište</string>\n    <string name=\"relative_time_span_never\">Nikada</string>\n    <string name=\"pref_flash_page_summ\">Smanjuje artefakte na ekranima s e-tintom</string>\n    <string name=\"last_auto_backup_info\">Zadnja automatska sigurnosna kopija: %s</string>\n    <string name=\"pref_flash_page\">Zabljesni prilikom listanja</string>\n    <string name=\"action_create\">Stvori</string>\n    <string name=\"action_apply\">Primijeni</string>\n    <string name=\"action_revert_to_default\">Obnovi standardne vrijednosti</string>\n    <string name=\"no_scanlators_found\">Nije pronađen nijedan amaterski prevoditelj</string>\n    <string name=\"scanlator\">Amaterski prevoditelj</string>\n    <string name=\"pref_storage_usage\">Korištenje spremišta</string>\n    <string name=\"action_sort_tracker_score\">Rezultat tragača</string>\n    <string name=\"exclude_scanlators\">Isključi amaterske prevoditelje</string>\n    <string name=\"pref_storage_location\">Mjesto spremišta</string>\n    <string name=\"pref_storage_location_info\">Koristi se za automatske sigurnosne kopije, preuzimanje poglavlja i lokalni izvor.</string>\n    <string name=\"action_menu_overflow_description\">Više opcija</string>\n    <string name=\"selected\">Odabrano</string>\n    <string name=\"not_selected\">Neodabrano</string>\n    <string name=\"action_bar_up_description\">Navigiraj prema gore</string>\n    <string name=\"onboarding_storage_action_select\">Odaberi mapu</string>\n    <string name=\"onboarding_action_finish\">Započni</string>\n    <string name=\"onboarding_storage_selection_required\">Moraš odabrati jednu mapu</string>\n    <string name=\"onboarding_permission_notifications\">Dozvola za obavijesti</string>\n    <string name=\"onboarding_permission_install_apps\">Dozvola za instaliranje aplikacija</string>\n    <string name=\"onboarding_action_skip\">Preskoči</string>\n    <string name=\"onboarding_action_next\">Dalje</string>\n    <string name=\"onboarding_permission_install_apps_description\">Za instaliranje izvornih proširenja.</string>\n    <string name=\"onboarding_permission_notifications_description\">Primaj obavijesti o aktualiziranju biblioteke i više.</string>\n    <string name=\"onboarding_permission_action_grant\">Odobri</string>\n    <string name=\"onboarding_heading\">Dobro došao, dobro došla!</string>\n    <string name=\"pref_onboarding_guide\">Vodič za početno pokretanje</string>\n    <string name=\"onboarding_guides_new_user\">Koristiš %s po prvi puta? Preporučujemo da pogledaš vodič za pokretanje.</string>\n    <string name=\"onboarding_guides_returning_user\">Ponovo istalirati %s?</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Izbjegni prekide pri dugotrajnim aktualiziranjima biblioteke, preuzimanjima i obnavljanja sigurnosnih kopija.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Upotreba baterije u pozadini</string>\n    <string name=\"onboarding_description\">Hajdemo najprije postaviti neke stvari. Ako želiš možeš ih kasnije promijeniti u postavkama.</string>\n    <string name=\"no_location_set\">Nije postavljeno mjesto spremišta</string>\n    <string name=\"onboarding_storage_info\">Odaberi mapu u koju će %1$s spremati preuzimanja poglavlja, sigurnosne kopije i drugo.\n\\n\n\\nPreporučujemo koristiti zasebnu mapu.\n\\n\n\\nOdabrana mapa: %2$s</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"ext_permission_install_apps_warning\">Za instaliranje proširenja su potrebne dozvole. Dodirni ovdje za odobrenje.</string>\n    <string name=\"invalid_backup_file_error\">Potpuna greška:</string>\n    <string name=\"label_extension_repos\">Repozitoriji proširenja</string>\n    <string name=\"information_empty_repos\">Nemaš postavljenih reopzitorija.</string>\n    <string name=\"onboarding_storage_help_info\">Aktualiziraš sa starije verzije i ne znaš što odabrati? Potraži informacije u vodiču spremišta.</string>\n    <string name=\"onboarding_storage_help_action\">Vodič spremišta</string>\n    <string name=\"error_repo_exists\">Ovaj repozitorij već postoji!</string>\n    <string name=\"manga_interval_custom_amount\">Prilagođena učestalost aktualiziranja:</string>\n    <string name=\"pref_library_update_smart_update\">Pametno aktualiziranje</string>\n    <string name=\"action_add_repo\">Dodaj repozitorij</string>\n    <string name=\"action_delete_repo\">Izbriši repozitorij</string>\n    <string name=\"label_add_repo_input\">URL repozitorija</string>\n    <string name=\"action_add_repo_message\">Dodaj dodatne repozitorije u %s. To bi trebao biti URL koji završava s „index.min.json”.</string>\n    <string name=\"invalid_repo_name\">Neispravan URL repozitorija</string>\n    <string name=\"ext_revoke_trust\">Opozovi pouzdana nepoznata proširenja</string>\n    <string name=\"delete_repo_confirmation\">Želiš li izbrisati repozitorij „%s”?</string>\n    <string name=\"action_open_repo\">Otvori repozitorij izvora</string>\n    <string name=\"private_settings\">Uključi osjetljive postavke (kao što su tokeni za prijavu za usluge praćenja)</string>\n    <string name=\"manga_interval_expected_update\">Predviđa se da će nova poglavlja biti izdana za oko %1$s, provjera se svakih %2$s.</string>\n    <string name=\"manga_interval_expected_update_soon\">Uskoro</string>\n    <string name=\"available_disk_space_info\">Dostupno: %1$s / Ukupno: %2$s</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Deaktiviraj smanjivanje zumiranja</string>\n    <string name=\"pref_display_profile\">Prilagođeni profil prikaza</string>\n    <string name=\"label_upcoming\">Predstojeći</string>\n    <string name=\"action_add_anyway\">Svejedno dodaj</string>\n    <string name=\"upcoming_calendar_prev\">Prethodni mjesec</string>\n    <string name=\"action_replace_repo\">Zamijeni</string>\n    <string name=\"upcoming_calendar_next\">Sljedeći mjesec</string>\n    <string name=\"action_view_upcoming\">Pogledaj nadolazeća aktualizirane verzije</string>\n    <string name=\"upcoming_guide\">Vodič za nadolazeće verzije</string>\n    <string name=\"action_replace_repo_title\">Digitalni otisak prsta za potpisivanje već postoji</string>\n    <string name=\"action_replace_repo_message\">Repozitorij %1$s ima isti digitalni otisak ključa za potpisivanje kao %2$s.\n\\nAko se to očekuje, %2$s će se zamijeniti, u suprotnom se obrati svom održavatelju repozitorija.</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Neuspjelo dobivanje trajnog pristupa mapi. Aplikacija se može ponašati neočekivano.</string>\n    <string name=\"action_copy_link\">Kopiraj poveznicu</string>\n    <string name=\"pref_flash_duration\">Trajanje bljeskalice</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_with\">Zabljesni sa</string>\n    <string name=\"pref_flash_style_black\">Crna</string>\n    <string name=\"pref_flash_style_white_black\">Bijela i crna</string>\n    <string name=\"pref_flash_page_interval\">Zabljesni svakih</string>\n    <string name=\"pref_flash_style_white\">Bijela</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Preskoči preuzimanje duplih pročitanih poglavlja</string>\n    <string name=\"invalid_backup_file_json\">JSON sigurnosna kopija nije podržana</string>\n    <string name=\"extensionRepo_settings\">Repozitoriji proširenja</string>\n    <string name=\"manga_interval_expected_update_null\">Ovaj je manga dovršen ili ne postoji procijenjeni datum izdanja.</string>\n    <string name=\"invalid_backup_file_unknown\">Sigurnosna kopija je pokvarena</string>\n    <string name=\"non_library_settings\">Svi pročitani unosi</string>\n    <string name=\"action_sort_random\">Nasumce</string>\n    <string name=\"onboarding_permission_crashlytics\">Pošalji zapis o prekidu aplikacije</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Šalji anonimne zapise o prekidu aplikacije programerima.</string>\n    <string name=\"onboarding_permission_analytics\">Dozvoli analizu</string>\n    <string name=\"onboarding_permission_analytics_description\">Šalji anonimne podatke o korištenju aplikacije u svrhu poboljšanja njenih funkcija.</string>\n    <string name=\"pref_firebase\">Analiza i zapisi o prekidima aplikacije</string>\n    <string name=\"firebase_summary\">Slanje zapisa o prekidima rada aplikacije i analitike omogućit će nam identificirati i riješiti probleme, poboljšati performancu i prilagoditi buduća aktualiziranja kako bi što bolje odgovarala tvojim potrebama</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Aktualiziraj napredak kada je označen kao pročitan</string>\n    <string name=\"confirm_tracker_update\">Aktualizirati praćenja na poglavlje %d?</string>\n    <string name=\"trackers_updated_summary\">Praćenja aktualizirana na poglavlje %d</string>\n    <string name=\"pref_security\">Sigurnost</string>\n    <string name=\"ext_remove\">Ukloni</string>\n    <string name=\"ext_confirm_remove\">Ukloniti proširenje?</string>\n    <string name=\"remove_private_extension_message\">Stvarno želiš ukloniti proširenje „%s”?</string>\n    <string name=\"add_repo_confirmation\">Želiš li dodati repozitorij „%s”?</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Ako čitač učita praznu sliku, postupno smanji prag.\\nOdabrano: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Prilagođeni hardverski prag bitmapa</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Standardno (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Utječe na performansu. Aktiviraj samo ako smanjenje praga bitmapa ne riješi probleme s praznim slikama</string>\n    <string name=\"label_auto\">Automatski</string>\n    <string name=\"action_display_unread_badge\">Nepročitana poglavlja</string>\n    <string name=\"action_notes\">Bilješke</string>\n    <string name=\"action_edit_notes\">Uredi bilješke</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"theme_monochrome\">Jednobojno</string>\n    <string name=\"storage_failed_to_create_download_directory\">Stvaranje direktorija za preuzimanje nije uspjelo</string>\n    <string name=\"storage_failed_to_create_directory\">Stvaranje direktorija nije uspjelo: %s</string>\n    <string name=\"export\">Izvezi</string>\n    <string name=\"library_list\">Popis biblioteka</string>\n    <string name=\"library_exported\">Biblioteka je izvezena</string>\n    <string name=\"pref_behavior\">Ponašanje</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Označi duplo pročitano poglavlje kao pročitano</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Nakon čitanja poglavlja</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Nakon dohvaćanja novog poglavlja</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Sakrij indikatore nedostajućih poglavlja</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Koristi zastarjeli dekoder za čitač kontinuiranog listanja</string>\n    <string name=\"clear_database_text\">Uklonit ćeš unose iz baze podataka</string>\n    <string name=\"clear_database_history_warning\">Izgubit će se pročitana poglavlja i napredak unosa koji se ne nalaze u biblioteci</string>\n    <string name=\"clear_db_exclude_read\">Zadrži unose s pročitanim poglavljima</string>\n    <string name=\"pref_update_library_manga_titles\">Aktualiziraj naslove manga iz biblioteke kako bi odgovarali izvoru</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Upozorenje: ako se manga preimenuje, uklonit će se iz popisa za preuzimanje (ako postoji).</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pauziraj povijest čitanja za proširenje</string>\n    <string name=\"logging_in\">Prijava u tijeku …</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"artist\">Ilustrator</string>\n    <string name=\"possible_duplicates_title\">Mogući duplikati</string>\n    <string name=\"possible_duplicates_summary\">U tvojoj biblioteci imaš unose sa sličnim imenom.\\n\\nOdaberi unos za premještanje ili dodavanje.</string>\n    <string name=\"tracked_privately\">Privatno praćeno</string>\n    <string name=\"action_toggle_private_on\">Prati privatno</string>\n    <string name=\"action_toggle_private_off\">Prati javno</string>\n    <string name=\"notes_placeholder\">Sviđa mi se dio, gdje …</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Odabrano</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Dostupno</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Odaberi sve</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Odaberi ništa</string>\n    <string name=\"migrationListScreenTitle\">Premještanje</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Premještanje (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopiraj</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopiraj</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Premjesti</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Premjesti</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Traži ručno</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Nemoj premjestiti</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Premjesti sada</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Kopiraj sada</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Zaustaviti premještanje?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Zaustavi</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Prekini</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Prekini</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Prekini</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Nije pronađena nijedna alternativa</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Odaberi aktivirane izvore</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Odaberi prikvačene izvore</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Nastavi</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Podaci za premještanje</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Izbriši preuzimanja trenutačnog unosa nakon premještanja</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Dodatne ključne riječi (opcionalno)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Pomaže smanjiti broj rezultata pretrage dodavanjem dodatnih ključnih riječi</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Sakrij unose bez podudaranja</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Sakrij unose bez novijih poglavlja</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Prikaži unos samo ako podudaranje ima dodatna poglavlja</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Ove su opcije spore i opasne te mogu dovesti do ograničenja od strane izvora</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Napredni način pretraživanja</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Rastavlja naslov na ključne riječi za širu pretragu</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Podudaranje na temelju broja poglavlja</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Ako je aktivirano, bira se najudaljeniji rezultat. U suprotnom se bira prvi rezultat prema prioritetu izvora.</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Najnovije: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Nepoznato</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Nije pronađeno nijedno poglavlje. Ovaj se unos ne može koristiti za premještanje</string>\n    <string name=\"label_donate\">Doniraj</string>\n    <string name=\"pref_display_images_description\">Iscrtaj slike u opisima manga</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Zabrani imena datoteka koji nisu u ASCII formatu</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Osigurava kompatibilnost s određenim medijima za spremanje podataka koji ne podržavaju Unicode. Kada je ova opcija aktivirana, morat ćeš ručno preimenovati izvor i mape s mangama zamjenjivanjem znakova koji nisu ASCII s njihovim UTF-8 heksadecimalnim vrijednostima (u malim slovima). Datoteke poglavlja se ne moraju preimenovati.</string>\n    <string name=\"pref_download_concurrent_sources\">Istovremena preuzimanja izvora</string>\n    <string name=\"pref_download_concurrent_pages\">Istovremena preuzimanja stranica</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Istovremeno preuzete stranice po izvoru</string>\n    <string name=\"action_webview_close_tab\">Zatvori karticu</string>\n    <string name=\"calculating\">Izračunavanje …</string>\n    <string name=\"action_filter_excluded_scanlators\">Filtriraj isključene amaterske prevoditelje</string>\n    <string name=\"download_bookmarked\">Zabilježeno</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/hu/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Egy új bővítményfrissítés érhető el</item>\n        <item quantity=\"other\">%d bővítményfrissítés érhető el</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s perc múlva</item>\n        <item quantity=\"other\">%1$s perc múlva</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategória</item>\n        <item quantity=\"other\">%d kategória</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s fejezet</item>\n        <item quantity=\"other\">%1$s fejezet</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">1 új fejezet</item>\n        <item quantity=\"other\">%1$d új fejezet</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Tegnap</item>\n        <item quantity=\"other\">%1$d napja</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d nyilvántartó</item>\n        <item quantity=\"other\">%d nyilvántartó</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d elemnek</item>\n        <item quantity=\"other\">%d elemnek</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d fejezet kihagyása, hiányzik a forrás, vagy ki lett szűrve</item>\n        <item quantity=\"other\">%d fejezet kihagyása, hiányoznak a források, vagy ki lettek szűrve</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s van hátra</item>\n        <item quantity=\"other\">%1$s van hátra</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Befejezve %1$s alatt, %2$s hibával</item>\n        <item quantity=\"other\">Befejezve %1$s alatt, %2$s hibával</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">%1$s fejezet és még 1</item>\n        <item quantity=\"other\">%1$s fejezet és még %2$d</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Következő olvasatlan fejezet</item>\n        <item quantity=\"other\">Következő %d olvasatlan fejezet</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Következő fejezet</item>\n        <item quantity=\"other\">Következő %d fejezet</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s fejezet hiányzik</item>\n        <item quantity=\"other\">%1$s fejezet hiányzik</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 nap</item>\n        <item quantity=\"other\">%d nap</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Holnap</item>\n        <item quantity=\"other\">%1$d nap múlva</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repo</item>\n        <item quantity=\"other\">%d repok</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 oldal</item>\n        <item quantity=\"other\">%1$s oldal</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/hu/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Név</string>\n    <string name=\"categories\">Kategóriák</string>\n    <string name=\"manga\">Könyvtári elemek</string>\n    <string name=\"chapters\">Fejezetek</string>\n    <string name=\"track\">Nyilvántartás</string>\n    <string name=\"history\">Előzmények</string>\n    <string name=\"label_settings\">Beállítások</string>\n    <string name=\"label_recent_manga\">Előzmények</string>\n    <string name=\"label_backup\">Biztonsági mentés és visszaállítás</string>\n    <string name=\"action_settings\">Beállítások</string>\n    <string name=\"action_search\">Keresés</string>\n    <string name=\"action_remove\">Eltávolítás</string>\n    <string name=\"action_open_in_browser\">Megnyitás böngészőben</string>\n    <string name=\"action_display_grid\">Szűk rács</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_install\">Telepítés</string>\n    <string name=\"action_share\">Megosztás</string>\n    <string name=\"action_save\">Mentés</string>\n    <string name=\"action_reset\">Visszaállítás</string>\n    <string name=\"action_undo\">Visszavonás</string>\n    <string name=\"loading\">Betöltés…</string>\n    <string name=\"pref_category_general\">Általános</string>\n    <string name=\"pref_category_reader\">Olvasó</string>\n    <string name=\"pref_category_downloads\">Letöltések</string>\n    <string name=\"pref_category_tracking\">Nyilvántartás</string>\n    <string name=\"pref_category_advanced\">Speciális</string>\n    <string name=\"pref_category_about\">Névjegy</string>\n    <string name=\"pref_library_columns\">Elemek soronként</string>\n    <string name=\"portrait\">Álló</string>\n    <string name=\"landscape\">Fekvő</string>\n    <string name=\"pref_library_update_interval\">Frissítések gyakorisága</string>\n    <string name=\"update_never\">Ki</string>\n    <string name=\"update_6hour\">6 óránként</string>\n    <string name=\"update_12hour\">12 óránként</string>\n    <string name=\"update_24hour\">Naponta</string>\n    <string name=\"update_48hour\">2 naponta</string>\n    <string name=\"update_weekly\">Hetente</string>\n    <string name=\"all\">Összes</string>\n    <string name=\"pref_library_update_restriction\">Frissítések korlátozása</string>\n    <string name=\"charging\">Töltés közben</string>\n    <string name=\"pref_update_only_non_completed\">\\\"Befejezett\\\" állapotú elemek kihagyása</string>\n    <string name=\"default_category\">Alapértelmezett kategória</string>\n    <string name=\"default_category_summary\">Mindig kérdezzen rá</string>\n    <string name=\"pref_fullscreen\">Teljes képernyő</string>\n    <string name=\"pref_show_page_number\">Oldalszám megjelenítése</string>\n    <string name=\"pref_keep_screen_on\">Képernyő bekapcsolva tartása</string>\n    <string name=\"pref_reader_navigation\">Lapozás</string>\n    <string name=\"pref_read_with_volume_keys\">Hangerőszabályzó gombokkal</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Gombok felcserélése</string>\n    <string name=\"pref_reader_theme\">Háttérszín</string>\n    <string name=\"version\">Verzió</string>\n    <string name=\"pref_enable_acra\">Összeomlás-jelentések küldése</string>\n    <string name=\"completed\">Befejezett</string>\n    <string name=\"dropped\">Eldobva</string>\n    <string name=\"plan_to_read\">Tervezett</string>\n    <string name=\"score\">Értékelés</string>\n    <string name=\"title\">Cím</string>\n    <string name=\"status\">Állapot</string>\n    <string name=\"chapter_progress\">%1$d. oldal</string>\n    <string name=\"no_next_chapter\">Nem található a következő fejezet</string>\n    <string name=\"download_notifier_no_network\">A hálózat nem érhető el</string>\n    <string name=\"label_download_queue\">Letöltési sor</string>\n    <string name=\"label_library\">Könyvtár</string>\n    <string name=\"label_recent_updates\">Frissítések</string>\n    <string name=\"action_filter\">Szűrők</string>\n    <string name=\"action_filter_bookmarked\">Könyvjelzőzve</string>\n    <string name=\"action_filter_unread\">Olvasatlan</string>\n    <string name=\"action_filter_empty\">Szűrők eltávolítása</string>\n    <string name=\"action_sort_alpha\">Betűrendben</string>\n    <string name=\"action_sort_total\">Fejezetek száma</string>\n    <string name=\"action_sort_last_read\">Legutóbb olvasott</string>\n    <string name=\"action_global_search\">Globális keresés</string>\n    <string name=\"action_mark_as_read\">Olvasottnak jelölés</string>\n    <string name=\"action_mark_as_unread\">Olvasatlannak jelölés</string>\n    <string name=\"action_mark_previous_as_read\">Előző olvasottnak jelölése</string>\n    <string name=\"action_download\">Letöltés</string>\n    <string name=\"action_bookmark\">Fejezet könyvjelzőzése</string>\n    <string name=\"action_remove_bookmark\">Fejezet eltávolítása a könyvjelzők közül</string>\n    <string name=\"action_delete\">Törlés</string>\n    <string name=\"action_update_library\">Könyvtár frissítése</string>\n    <string name=\"action_edit\">Szerkesztés</string>\n    <string name=\"action_add\">Hozzáadás</string>\n    <string name=\"action_add_category\">Kategória hozzáadása</string>\n    <string name=\"action_edit_categories\">Kategóriák szerkesztése</string>\n    <string name=\"action_rename_category\">Kategória átnevezése</string>\n    <string name=\"action_move_category\">Kategóriák beállítása</string>\n    <string name=\"action_edit_cover\">Borító szerkesztése</string>\n    <string name=\"action_pause\">Szüneteltetés</string>\n    <string name=\"action_previous_chapter\">Előző fejezet</string>\n    <string name=\"action_next_chapter\">Következő fejezet</string>\n    <string name=\"action_retry\">Újra</string>\n    <string name=\"action_resume\">Folytatás</string>\n    <string name=\"action_display_mode\">Megjelenítési mód</string>\n    <string name=\"action_display\">Megjelenés</string>\n    <string name=\"action_sort\">Rendezés</string>\n    <string name=\"action_select_all\">Összes kijelölése</string>\n    <string name=\"action_cancel\">Mégse</string>\n    <string name=\"action_open_log\">Napló megnyitása</string>\n    <string name=\"action_restore\">Visszaállítás</string>\n    <string name=\"app_not_available\">Az app nem elérhető</string>\n    <string name=\"pref_auto_update_manga_sync\">Olvasás után a fejezetek haladásának frissítése</string>\n    <string name=\"pref_page_transitions\">Áttűnés lapozáskor</string>\n    <string name=\"pref_crop_borders\">Szegélyek vágása</string>\n    <string name=\"pref_custom_brightness\">Egyéni fényerő</string>\n    <string name=\"pref_custom_color_filter\">Egyéni színprofil</string>\n    <string name=\"white_background\">Fehér</string>\n    <string name=\"black_background\">Fekete</string>\n    <string name=\"pref_viewer_type\">Alapértelmezett olvasás mód</string>\n    <string name=\"left_to_right_viewer\">Lapozott (balról jobbra)</string>\n    <string name=\"right_to_left_viewer\">Lapozott (jobbról balra)</string>\n    <string name=\"vertical_viewer\">Lapozott (függőlegesen)</string>\n    <string name=\"webtoon_viewer\">Hosszú szalag</string>\n    <string name=\"scale_type_fit_screen\">Képernyőhöz igazítás</string>\n    <string name=\"label_migration\">Áttelepítés</string>\n    <string name=\"label_extensions\">Bővítmények</string>\n    <string name=\"ext_untrusted\">Nem megbízható</string>\n    <string name=\"ext_uninstall\">Eltávolítás</string>\n    <string name=\"label_extension_info\">Bővítmény információ</string>\n    <string name=\"ext_update\">Frissítés</string>\n    <string name=\"ext_install\">Telepítés</string>\n    <string name=\"ext_pending\">Függőben</string>\n    <string name=\"ext_downloading\">Letöltés</string>\n    <string name=\"ext_installing\">Telepítés</string>\n    <string name=\"ext_installed\">Telepítve</string>\n    <string name=\"action_open_in_web_view\">Megnyitás WebView-ben</string>\n    <string name=\"label_help\">Segítség</string>\n    <string name=\"label_downloaded_only\">Csak letöltött</string>\n    <string name=\"label_more\">Több</string>\n    <string name=\"label_sources\">Források</string>\n    <string name=\"pref_date_format\">Dátum formátum</string>\n    <string name=\"theme_dark\">Sötét</string>\n    <string name=\"theme_light\">Világos</string>\n    <string name=\"pref_category_library\">Könyvtár</string>\n    <string name=\"action_webview_refresh\">Frissítés</string>\n    <string name=\"action_webview_forward\">Előre</string>\n    <string name=\"action_webview_back\">Vissza</string>\n    <string name=\"action_oldest\">Legrégebbi</string>\n    <string name=\"action_newest\">Legújabb</string>\n    <string name=\"action_sort_latest_chapter\">Legújabb fejezet</string>\n    <string name=\"action_display_download_badge\">Letöltött fejezetek</string>\n    <string name=\"action_migrate\">Áttelepítés</string>\n    <string name=\"action_start\">Kezdés</string>\n    <string name=\"action_view_chapters\">Fejezetek megtekintése</string>\n    <string name=\"action_disable_all\">Összes kikapcsolása</string>\n    <string name=\"action_enable_all\">Összes engedélyezése</string>\n    <string name=\"action_select_inverse\">Kiválasztás megfordítása</string>\n    <string name=\"action_menu\">Menü</string>\n    <string name=\"information_empty_library\">A könyvtárad üres</string>\n    <string name=\"information_no_recent\">Nincs új frissítés</string>\n    <string name=\"information_no_downloads\">Nincs letöltés folyamatban</string>\n    <string name=\"channel_ext_updates\">Bővítményfrissítések</string>\n    <string name=\"channel_new_chapters\">Fejezetfrissítések</string>\n    <string name=\"channel_common\">Gyakori</string>\n    <string name=\"download_notifier_download_paused\">Letöltés szüneteltetve</string>\n    <string name=\"download_notifier_text_only_wifi\">Nincs Wi-Fi kapcsolat</string>\n    <string name=\"download_notifier_unknown_error\">Egy váratlan hiba miatt nem sikerült letölteni a fejezetet</string>\n    <string name=\"download_notifier_title_error\">Hiba</string>\n    <string name=\"information_webview_outdated\">A jobb kompatibilitás érdekében kérlek, frissítsd a WebView alkalmazást</string>\n    <string name=\"update_check_notification_update_available\">Új verzió érhető el!</string>\n    <string name=\"update_check_notification_download_error\">Letöltési hiba</string>\n    <string name=\"update_check_notification_download_complete\">Érints meg a telepítéshez</string>\n    <string name=\"email\">E-mail-cím</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) források</string>\n    <string name=\"show_chapter_number\">Fejezetszám</string>\n    <string name=\"scale_type_original_size\">Eredeti méret</string>\n    <string name=\"last_read_chapter\">Utoljára olvasott fejezet</string>\n    <string name=\"lock_never\">Soha</string>\n    <string name=\"login\">Bejelentkezés</string>\n    <string name=\"manga_info_expand\">Több</string>\n    <string name=\"manga_info_collapse\">Kevesebb</string>\n    <string name=\"hide_notification_content\">Értesítés tartalmának elrejtése</string>\n    <string name=\"secure_screen_summary\">Az alkalmazás tartalmának elrejtése az alkalmazások közötti váltáskor és a képernyőképek készítésének blokkolása</string>\n    <string name=\"lock_always\">Mindig</string>\n    <string name=\"pref_category_security\">Biztonság</string>\n    <string name=\"pref_manage_notifications\">Értesítések kezelése</string>\n    <string name=\"theme_system\">Rendszer</string>\n    <string name=\"pref_category_theme\">Téma</string>\n    <string name=\"action_move_to_bottom\">Ugrás legalulra</string>\n    <string name=\"action_move_to_top\">Ugrás legfelülre</string>\n    <string name=\"action_search_settings\">Keresési beállítások</string>\n    <string name=\"action_sort_date_added\">Hozzáadás dátuma</string>\n    <string name=\"untrusted_extension\">Nem megbízható bővítmény</string>\n    <string name=\"ext_obsolete\">Elavult</string>\n    <string name=\"ext_updates_pending\">Függőben lévő frissítések</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Új borító és részletek keresése a könyvtár frissítésekor</string>\n    <string name=\"pref_library_update_refresh_metadata\">Metaadatokat frissítse automatikusan</string>\n    <string name=\"pref_category_library_update\">Minden frissítése</string>\n    <string name=\"pref_category_display\">Megjelenés</string>\n    <string name=\"parental_controls_info\">Ez nem akadályozza meg a nem hivatalos vagy az esetlegesen helytelenül megjelölt bővítményeket a 18+-os tartalmak megjelenítésétől az alkalmazáson belül.</string>\n    <string name=\"pref_show_nsfw_source\">Megjelenítés a forrás- és kiterjesztéseklistában</string>\n    <string name=\"pref_show_reading_mode_summary\">Rövid ideig mutassa a jelenlegi módot az olvasó megnyitásakor</string>\n    <string name=\"pref_show_reading_mode\">Olvasó mód mutatása</string>\n    <string name=\"ext_nsfw_warning\">Tartalmazhat felnőtt (18+) tartalmat</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"obsolete_extension_message\">Ez a bővítmény nem elérhető többé. Előfordulhat, hogy nem működik megfelelően, és problémákat okozhat az alkalmazásban. Az eltávolítása javasolt.</string>\n    <string name=\"add_to_library\">Könyvtárhoz adás</string>\n    <string name=\"unknown_status\">Ismeretlen állapot</string>\n    <string name=\"unknown_author\">Ismeretlen szerző</string>\n    <string name=\"unknown\">Ismeretlen</string>\n    <string name=\"login_success\">Bejelentkezve</string>\n    <string name=\"remove_from_library\">Eltávolítás a könyvtárból</string>\n    <string name=\"in_library\">Könyvtárban</string>\n    <string name=\"pref_category_reading\">Olvasás</string>\n    <string name=\"label_data\">Adat</string>\n    <string name=\"backup_created\">Biztonsági mentés létrehozva</string>\n    <string name=\"information_empty_category\">Nincsenek kategóriái. Érintse meg a plusz gombot, hogy létrehozzon egyet a könyvtára rendezéséhez.</string>\n    <string name=\"pinned_sources\">Kitűzött</string>\n    <string name=\"other_source\">Egyéb</string>\n    <string name=\"manga_tracking_tab\">Nyilvántartás</string>\n    <string name=\"copied_to_clipboard\">Vágólapra másolva:\n\\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">Törli a kijelölt fejezeteket?</string>\n    <string name=\"spen_previous_page\">Előző oldal</string>\n    <string name=\"chapter_error\">Hiba</string>\n    <string name=\"website\">Weboldal</string>\n    <string name=\"check_for_updates\">Frissítések keresése</string>\n    <string name=\"licenses\">Nyílt forráskódú licenc</string>\n    <string name=\"tabs_header\">Lapok</string>\n    <string name=\"manga_from_library\">Manga a könyvtárból</string>\n    <string name=\"nav_zone_prev\">Előző</string>\n    <string name=\"notification_chapters_single\">%1$s. fejezet</string>\n    <string name=\"cover_updated\">Borító frissítve</string>\n    <string name=\"set_as_cover\">Beállítás borítóként</string>\n    <string name=\"custom_filter\">Egyedi szűrő</string>\n    <string name=\"manga_removed_library\">Eltávolítva a könyvtárból</string>\n    <string name=\"manga_added_library\">Könyvtárhoz adva</string>\n    <string name=\"spen_next_page\">Következő oldal</string>\n    <string name=\"channel_errors\">Hibák</string>\n    <string name=\"channel_complete\">Befejezve</string>\n    <string name=\"channel_progress\">Előrehaladás</string>\n    <string name=\"zoom_start_center\">Központ</string>\n    <string name=\"zoom_start_right\">Jobb</string>\n    <string name=\"zoom_start_left\">Bal</string>\n    <string name=\"tapping_inverted_both\">Mindkettő</string>\n    <string name=\"tapping_inverted_vertical\">Függőleges</string>\n    <string name=\"tapping_inverted_horizontal\">Vízszintes</string>\n    <string name=\"information_no_recent_manga\">Semmit nem olvasott a közelmúltban</string>\n    <string name=\"nav_zone_right\">Jobb</string>\n    <string name=\"nav_zone_left\">Bal</string>\n    <string name=\"nav_zone_next\">Következő</string>\n    <string name=\"right_and_left_nav\">Jobb és bal</string>\n    <string name=\"copy\">Másolás</string>\n    <string name=\"migrate\">Áttelepítés</string>\n    <string name=\"display_mode_chapter\">%1$s. fejezet</string>\n    <string name=\"information_webview_required\">A Mihon működéséhez WebView szükséges</string>\n    <string name=\"notification_chapters_multiple\">%1$s fejezet</string>\n    <string name=\"notification_chapters_single_and_more\">%1$s. fejezet és további %2$d</string>\n    <string name=\"share_page_info\">%1$s:%2$s, %3$d. oldal</string>\n    <string name=\"repeating\">Újraolvasás</string>\n    <string name=\"confirm_delete_chapters\">Biztosan törölni akarja a kijelölt fejezeteket?</string>\n    <string name=\"download_unread\">Olvasatlan</string>\n    <string name=\"chapter_paused\">Szünetel</string>\n    <string name=\"snack_add_to_library\">Manga könyvtárhoz adása?</string>\n    <string name=\"source_not_installed\">Forrás nincs telepítve: %1$s</string>\n    <string name=\"ongoing\">Folyamatban van</string>\n    <string name=\"last_used_source\">Utoljára használt</string>\n    <string name=\"downloaded_chapters\">Letöltött fejezetek</string>\n    <string name=\"updating_category\">Kategóriák frissítése</string>\n    <string name=\"unknown_error\">Ismeretlen hiba</string>\n    <string name=\"logout_success\">Mostmár ki van jelentkezve</string>\n    <string name=\"logout\">Kijelentkezés</string>\n    <string name=\"password\">Jelszó</string>\n    <string name=\"username\">Felhasználónév</string>\n    <string name=\"cookies_cleared\">Sütik törölve</string>\n    <string name=\"requires_app_restart\">A változtatások érvénybe lépéséhez újra kell indítania az applikációt</string>\n    <string name=\"invalid_backup_file\">Érvénytelen biztonsági mentési fájl:</string>\n    <string name=\"edge_nav\">Él</string>\n    <string name=\"updating_library\">Könyvtár frissítése</string>\n    <string name=\"no_chapters_error\">Nem található fejezet</string>\n    <string name=\"licensed\">Licenszelt</string>\n    <string name=\"untrusted_extension_message\">Egy rosszindulatú bővítmény hozzáférhet a tárolt bejelentkezési adatokhoz, vagy tetszőleges kódot futtathat.\n\\n\n\\nHa megbízik ebben a bővítményben, elfogadja ezeket a kockázatokat.</string>\n    <string name=\"ext_trust\">Bizalom</string>\n    <string name=\"exclude\">Tiltott: %s</string>\n    <string name=\"include\">Kedvelt: %s</string>\n    <string name=\"none\">Semmi</string>\n    <string name=\"pref_download_new_categories_details\">Elemek a tiltott kategóriákban nem lesznek letöltve, még akkor se, ha a kedvelt kategóriában is vannak.</string>\n    <string name=\"pref_library_update_categories_details\">Elemek a tiltott kategóriákban nem lesznek frissítve, még akkor se, ha a kedvelt kategóriákban is vannak.</string>\n    <string name=\"secure_screen\">Biztonságos képernyő</string>\n    <string name=\"lock_when_idle\">Zárás tétlen állapotban</string>\n    <string name=\"lock_with_biometrics\">Biometrikus zár</string>\n    <string name=\"action_show_errors\">Hibák mutatása</string>\n    <string name=\"logout_title\">Kijelentkezel a következőből: %1$s?</string>\n    <string name=\"browse\">Böngészés</string>\n    <string name=\"action_desc\">Csökkenő</string>\n    <string name=\"action_asc\">Növekvő</string>\n    <string name=\"action_order_by_chapter_number\">Fejezet száma szerint</string>\n    <string name=\"action_order_by_upload_date\">Feltöltési idő szerint</string>\n    <string name=\"cancel_all_for_series\">Mégse az összesre a sorozatból</string>\n    <string name=\"action_cancel_all\">Mégse az összesre</string>\n    <string name=\"action_unpin\">Tűzés visszavonása</string>\n    <string name=\"action_pin\">Kitűzés</string>\n    <string name=\"action_disable\">Kikapcsolás</string>\n    <string name=\"action_display_show_number_of_items\">Tárgyak számának mutatása</string>\n    <string name=\"action_display_show_tabs\">Kategória fülek mutatása</string>\n    <string name=\"action_display_comfortable_grid\">Kényelmes rács</string>\n    <string name=\"action_sort_chapter_fetch_date\">Lekérési dátum</string>\n    <string name=\"restrictions\">Korlátozások: %s</string>\n    <string name=\"pref_cutout_short\">Tartalom mutatása a levágott területen</string>\n    <string name=\"pref_dual_page_invert_summary\">Ha a szétvágott oldalak elhelyezése nem egyezik az olvasás irányával</string>\n    <string name=\"pref_dual_page_invert\">Szétvágott oldalak elhelyezésének fordítása</string>\n    <string name=\"pref_dual_page_split\">Szétvágása a széles oldalaknak</string>\n    <string name=\"pref_show_navigation_mode_summary\">Pillanatnyilag megjelníti, amikor az olvasó meg van nyitva</string>\n    <string name=\"pref_show_navigation_mode\">Érintési zónák átfedésének mutatása</string>\n    <string name=\"ext_app_info\">Alkalmazás információ</string>\n    <string name=\"categorized_display_settings\">Kategóriakénti beállítások rendezéshez</string>\n    <string name=\"theme_tako\">Polip</string>\n    <string name=\"theme_strawberrydaiquiri\">Eper koktél</string>\n    <string name=\"relative_time_today\">Ma</string>\n    <string name=\"pref_dark_theme_pure_black\">Teljesen fekete sötét mód</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Jin és Jang</string>\n    <string name=\"theme_tealturquoise\">Cián-zöld és türkiz</string>\n    <string name=\"theme_midnightdusk\">Éjfél szürkület</string>\n    <string name=\"theme_greenapple\">Zöldalma</string>\n    <string name=\"theme_monet\">Dinamikus</string>\n    <string name=\"pref_app_theme\">Alkalmazás témája</string>\n    <string name=\"pref_category_appearance\">Kinézet</string>\n    <string name=\"action_start_downloading_now\">Letöltés elkezdése most</string>\n    <string name=\"action_display_local_badge\">Helyi forrás</string>\n    <string name=\"action_filter_tracked\">Nyilvántartva</string>\n    <string name=\"confirm_lock_change\">Hitelesítsd magad a változtatás elfogadásához</string>\n    <string name=\"label_default\">Alapértelmezett</string>\n    <string name=\"services\">Szolgáltatások</string>\n    <string name=\"tracking_guide\">Nyilvántartási útmutató</string>\n    <string name=\"pref_download_new\">Új fejezetek letöltése</string>\n    <string name=\"pref_category_auto_download\">Automatikus letöltés</string>\n    <string name=\"fifth_to_last\">Ötödik utoljára olvasott fejezet</string>\n    <string name=\"fourth_to_last\">Negyedik utoljára olvasott fejezet</string>\n    <string name=\"third_to_last\">Harmadik utoljára olvasott fejezet</string>\n    <string name=\"second_to_last\">Második utoljára olvasott fejezet</string>\n    <string name=\"disabled\">Kikapcsolva</string>\n    <string name=\"pref_remove_exclude_categories\">Tiltott kategóriák</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Könyvjelzőzött fejezetek törlésének engedélyezése</string>\n    <string name=\"pref_remove_after_read\">Automatikus törlés olvasás után</string>\n    <string name=\"pref_remove_after_marked_as_read\">Olvasottnak jelölés után</string>\n    <string name=\"pref_category_delete_chapters\">Fejezetek törlése</string>\n    <string name=\"pref_lowest\">Legalacsonyabb</string>\n    <string name=\"pref_low\">Alacsony</string>\n    <string name=\"pref_high\">Magas</string>\n    <string name=\"pref_highest\">Legmagasabb</string>\n    <string name=\"pref_hide_threshold\">Görgetés közbeni menü-elrejtés érzékenysége</string>\n    <string name=\"pref_webtoon_side_padding\">Bélés oldalon</string>\n    <string name=\"pref_category_reading_mode\">Olvasási mód</string>\n    <string name=\"pref_always_show_chapter_transition\">Mindig mutasson fejezet áttűnést</string>\n    <string name=\"color_filter_a_value\">Áttetszőség</string>\n    <string name=\"color_filter_b_value\">Kék</string>\n    <string name=\"color_filter_g_value\">Zöld</string>\n    <string name=\"color_filter_r_value\">Piros</string>\n    <string name=\"rotation_force_landscape\">Lezárt fekvő</string>\n    <string name=\"rotation_force_portrait\">Lezárt álló</string>\n    <string name=\"rotation_landscape\">Fekvő</string>\n    <string name=\"rotation_portrait\">Álló</string>\n    <string name=\"rotation_free\">Szabad</string>\n    <string name=\"rotation_type\">Forgatás típus</string>\n    <string name=\"pref_rotation_type\">Alapértelmezett forgatás típus</string>\n    <string name=\"double_tap_anim_speed_fast\">Gyors</string>\n    <string name=\"double_tap_anim_speed_normal\">Normál</string>\n    <string name=\"double_tap_anim_speed_0\">Nincs animáció</string>\n    <string name=\"zoom_start_automatic\">Automatikus</string>\n    <string name=\"pref_zoom_start\">Nagyítás kezdő pozíciója</string>\n    <string name=\"scale_type_smart_fit\">Okos igazítás</string>\n    <string name=\"scale_type_fit_height\">Magassághoz igazítás</string>\n    <string name=\"scale_type_fit_width\">Szélességhez igazítás</string>\n    <string name=\"scale_type_stretch\">Kiterjesztés</string>\n    <string name=\"kindlish_nav\">Kindle-féle</string>\n    <string name=\"l_nav\">L alakú</string>\n    <string name=\"pref_image_scale_type\">Skálázási típus</string>\n    <string name=\"pref_viewer_nav\">Érintési zónák</string>\n    <string name=\"pager_viewer\">Lapozott</string>\n    <string name=\"vertical_plus_viewer\">Hosszú szalag lyukakkal</string>\n    <string name=\"automatic_background\">Automatikus</string>\n    <string name=\"gray_background\">Szürke</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Mappák létrehozása elemek címe szerint</string>\n    <string name=\"pref_create_folder_per_manga\">Mentse a lapokat külön mappákba</string>\n    <string name=\"pref_read_with_long_tap\">Cselekmények mutatása hosszú koppintáskor</string>\n    <string name=\"pref_reader_actions\">Műveletek</string>\n    <string name=\"tapping_inverted_none\">Egyik sem</string>\n    <string name=\"pref_read_with_tapping_inverted\">Érintési zónák fordítása</string>\n    <string name=\"pref_skip_filtered_chapters\">Szűrt fejezetek kihagyása</string>\n    <string name=\"pref_skip_read_chapters\">Olvasottnak jelölt fejezetek átugrása</string>\n    <string name=\"filter_mode_darken\">Égetés / Sötétítés</string>\n    <string name=\"filter_mode_lighten\">Fakítás / Világosítás</string>\n    <string name=\"filter_mode_screen\">Szendvicsnegatív</string>\n    <string name=\"filter_mode_multiply\">Szendvicspozitív</string>\n    <string name=\"filter_mode_overlay\">Átfedés</string>\n    <string name=\"pref_color_filter_mode\">Színprofil keverés módja</string>\n    <string name=\"pref_inverted_colors\">Fordított</string>\n    <string name=\"pref_grayscale\">Szürkeárnyalatos</string>\n    <string name=\"off\">Ki</string>\n    <string name=\"on\">Be</string>\n    <string name=\"pref_double_tap_anim_speed\">Dupla koppintás animációjának sebessége</string>\n    <string name=\"ext_installer_pref\">Telepítő</string>\n    <string name=\"ext_install_service_notif\">Bővítmény telepítése…</string>\n    <string name=\"action_sort_count\">Összes elem</string>\n    <string name=\"ext_update_all\">Az összes frissítése</string>\n    <string name=\"action_display_language_badge\">Nyelv</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Telepítsd és indítsd el a Shizukut, hogy kiegészítő telepítőként használd.</string>\n    <string name=\"enhanced_services\">Továbbfejlesztett szolgáltatások</string>\n    <string name=\"label_warning\">Figyelmeztetés</string>\n    <string name=\"ext_installer_shizuku_stopped\">A Shizuku nem fut</string>\n    <string name=\"ext_installer_legacy\">Régi</string>\n    <string name=\"tracking_info\">Egyirányú szinkronizálás, hogy a fejezetben való előrehaladás frissítve legyen a követési szolgáltatásokban. Állíts be követést egyéni elemekre, a követés gomb lenyomásával.</string>\n    <string name=\"update_72hour\">3 naponta</string>\n    <string name=\"connected_to_wifi\">Csak Wi-Fi-n keresztül</string>\n    <string name=\"backup_info\">A biztonsági mentésekről más helyeken is érdemes másolatokat tartani. A biztonsági mentések érzékeny adatokat tartalmazhatnak, beleértve a tárolt jelszavakat is; legyen óvatos a megosztáskor.</string>\n    <string name=\"empty_backup_error\">Nincs könyvtári elem, amit menteni lehetne</string>\n    <string name=\"local_source\">Helyi forrás</string>\n    <string name=\"latest\">Legújabb</string>\n    <string name=\"date\">Dátum</string>\n    <string name=\"clear_history_confirmation\">Biztos benne? Minden előzmény elvész.</string>\n    <string name=\"delete_category\">Kategória törlése</string>\n    <string name=\"pref_app_language\">Alkalmazás nyelve</string>\n    <string name=\"unread\">Olvasatlan</string>\n    <string name=\"set_chapter_settings_as_default\">Beállítás alapértelmezettként</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet mód</string>\n    <string name=\"action_move_to_top_all_for_series\">Lista elejére</string>\n    <string name=\"action_global_search_query\">Globális keresés erre: \\\"%1$s\\\"</string>\n    <string name=\"no_more_results\">Nincs több találat</string>\n    <string name=\"no_results_found\">Nincs találat</string>\n    <string name=\"action_global_search_hint\">Globális keresés…</string>\n    <string name=\"sort_by_upload_date\">Feltöltési dátum szerint</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ez eltávolítja a fejezet olvasási dátumát. Biztos benne?</string>\n    <string name=\"pref_update_only_completely_read\">Olvasatlan fejezet(ek)et tartalmazó elemek kihagyása</string>\n    <string name=\"delete_category_confirmation\">Törölni akarja a %s kategóriát ?</string>\n    <string name=\"internal_error\">InternalError: Nézze meg a hibaüzenetet további információért</string>\n    <string name=\"network_not_metered\">Csak korlátlan hálózatokon</string>\n    <string name=\"backup_choice\">Mit tartalmazzon a biztonsági mentés?</string>\n    <string name=\"restore_miui_warning\">Biztonsági mentés/helyreállítás nem biztos,hogy működik ha a MIUI Optimalizáció ki van kapcsolva.</string>\n    <string name=\"restore_in_progress\">Helyreállítás folyamatban van</string>\n    <string name=\"used_cache\">Felhasznált: %1$s</string>\n    <string name=\"pref_clear_database\">Adatbázis törlése</string>\n    <string name=\"pref_clear_database_summary\">Nem könyvtári elemek előzményeinek törlése</string>\n    <string name=\"clear_database_source_item_count\">%1$d nem könyvtári manga az adatbázisban</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Fejezet gyorsítótárának törlése kilépéskor</string>\n    <string name=\"local_invalid_format\">Helytelen fejezet formátum</string>\n    <string name=\"label_network\">Hálózat</string>\n    <string name=\"download_queue_error\">Nem lehetett a fejezeteket letölteni. Próbálja újra a letöltések menüpontban</string>\n    <string name=\"migration_selection_prompt\">Válaszon ki egy forrást, ahonnan importálni szeretne</string>\n    <string name=\"download_insufficient_space\">Nem lehetett letölteni kevés tárhely miatt</string>\n    <string name=\"creating_backup\">Biztonsági mentés létrehozása</string>\n    <string name=\"creating_backup_error\">Biztonsági mentés sikertelen</string>\n    <string name=\"pref_clear_cookies\">Sütik törlése</string>\n    <string name=\"cache_deleted\">Gyorsítótár törölve: %1$d fájl lett törölve</string>\n    <string name=\"cache_delete_error\">Hiba történt törlés közben</string>\n    <string name=\"file_picker_error\">Nem található fájl választó alkalmazás</string>\n    <string name=\"information_empty_category_dialog\">Nincsenek még kategóriáid.</string>\n    <string name=\"information_cloudflare_bypass_failure\">Nem sikerült megkerülni a Cloudflare-t</string>\n    <string name=\"pref_landscape_zoom\">Automatikusan nagyítsa a széles képeket</string>\n    <string name=\"restore_completed\">Helyreállítás befejeződött</string>\n    <string name=\"restore_duration\">%1$02d perc, %2$02d mp.</string>\n    <string name=\"backup_restore_content_full\">Előfordulhat, hogy telepítenie kell a hiányzó bővítményeket, majd később be kell jelentkeznie a nyilvántartási szolgáltatásokba a használatukhoz.</string>\n    <string name=\"pref_refresh_library_covers\">Könyvtár fedők frissítése</string>\n    <string name=\"pref_dump_crash_logs\">Hibaüzenetetek törlése</string>\n    <string name=\"pref_reset_viewer_flags\">Sorozat beállításainak visszaállítása</string>\n    <string name=\"about_dont_kill_my_app\">Néhány gyártónak extra korlátozása van arra, hogy kikapcsolja a háttér folyamatokat. Ezen a web oldalon több információt találsz, hogy hogyan oldható meg.</string>\n    <string name=\"pref_incognito_mode_summary\">Olvasási előzmények rögzítésének szüneteltetése</string>\n    <string name=\"manga_cover\">Fedlap</string>\n    <string name=\"on_hold\">Szüneteltetve</string>\n    <string name=\"snack_categories_deleted\">Kategóriák törölve</string>\n    <string name=\"file_select_cover\">Válasszon képet a fedlapnak</string>\n    <string name=\"update_check_no_new_updates\">Nem található új frissítés</string>\n    <string name=\"ext_info_version\">Verzió</string>\n    <string name=\"ext_info_language\">Nyelv</string>\n    <string name=\"ext_info_age_rating\">Korhatár</string>\n    <string name=\"pref_reset_viewer_flags_success\">Minden olvasói beállítás visszaállítva</string>\n    <string name=\"login_title\">Jelentkezz be %1$s-ba/be</string>\n    <string name=\"track_type\">Típus</string>\n    <string name=\"loader_not_implemented_error\">A forrás nem található</string>\n    <string name=\"action_sort_last_manga_update\">Utolsó frissítés megtekintése</string>\n    <string name=\"action_sort_unread_count\">Olvasatlanok száma</string>\n    <string name=\"action_show_manga\">Elem mutatása</string>\n    <string name=\"action_display_cover_only_grid\">Kizárólag fedlapok mutatása</string>\n    <string name=\"backup_restore_missing_sources\">Hiányzó források:</string>\n    <string name=\"pref_dns_over_https\">DNS a HTTPS mellett (DoH)</string>\n    <string name=\"label_background_activity\">Háttér aktivitás</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Nem lehetett megnyitni a beállításokat</string>\n    <string name=\"local_source_help_guide\">Útmutató helyi forráshoz</string>\n    <string name=\"no_pinned_sources\">Nincs kitűzött forrás</string>\n    <string name=\"chapter_not_found\">A fejezet nem található</string>\n    <string name=\"local_filter_order_by\">Szűrés</string>\n    <string name=\"clipboard_copy_error\">Nem sikerült másolni</string>\n    <string name=\"cover_saved\">Fedlap elmentve</string>\n    <string name=\"chapter_settings\">Fejezet beállítások</string>\n    <string name=\"confirm_set_chapter_settings\">Biztos, hogy ezeket a beállításokat alapértelmezettként akarod elmenteni?</string>\n    <string name=\"error_saving_cover\">Hiba fedlap mentése közben</string>\n    <string name=\"also_set_chapter_settings_for_library\">Könyvtárban lévő tartalmakra is</string>\n    <string name=\"pref_clear_history\">Előzmények törlése</string>\n    <string name=\"clear_history_completed\">Előzmények törölve</string>\n    <string name=\"source_empty_screen\">Nincs forrás</string>\n    <string name=\"page_list_empty_error\">Nem található oldal</string>\n    <string name=\"recent_manga_time\">Fej. %1$s - %2$s</string>\n    <string name=\"getting_started_guide\">Kezdési útmutató</string>\n    <string name=\"database_clean\">Adatbázis törlése</string>\n    <string name=\"pref_update_only_started\">El nem kezdett elemek kihagyása</string>\n    <string name=\"notification_new_chapters\">Új fejezet</string>\n    <string name=\"backup_in_progress\">Biztonsági mentés már folyamatban van</string>\n    <string name=\"not_installed\">Nincs telepítve</string>\n    <string name=\"download_queue_size_warning\">Figyelmeztetés: a tömeges letöltések a források lelassulásához és/vagy a %s leállásához vezethetnek. Koppintson további információért.</string>\n    <string name=\"learn_more\">Koppintson további információért</string>\n    <string name=\"notification_cover_update_failed\">Nem sikerült a fedlap frissítése</string>\n    <string name=\"notification_first_add_to_library\">Először adja az elemet a könyvtárhoz</string>\n    <string name=\"skipped_reason_not_caught_up\">Átugorva, mivel tartalmaz olvasatlan fejezeteket</string>\n    <string name=\"skipped_reason_not_started\">Átugorva, mivel nincs olvasott fejezet</string>\n    <string name=\"update_check_confirm\">Letöltés</string>\n    <string name=\"update_check_open\">Megnyitás GitHub-on</string>\n    <string name=\"update_check_eol\">Ez az Android verzió már nem támogatott</string>\n    <string name=\"channel_app_updates\">Alkalmazás frissítések</string>\n    <string name=\"cant_open_last_read_chapter\">Nem sikerült megnyitni az utoljára olvasott fejezetet</string>\n    <string name=\"updated_version\">Frissítve erre: v%1$s</string>\n    <string name=\"pref_navigate_pan\">Széles képek pásztázása</string>\n    <string name=\"save_chapter_as_cbz\">Mentés CBZ archívumkén</string>\n    <string name=\"theme_lavender\">Levendula</string>\n    <string name=\"pref_clear_webview_data\">WebView adatok törlése</string>\n    <string name=\"pref_dump_crash_logs_summary\">Feljegyzi a hibát egy fájlba, hogy meg lehessen osztani a fejlesztővel</string>\n    <string name=\"invalid_backup_file_missing_manga\">A biztonsági mentés nem tartalmazza az elemeket.</string>\n    <string name=\"restoring_backup_canceled\">Megszakított helyreállítás</string>\n    <string name=\"manga_download\">Letöltés</string>\n    <string name=\"publishing_finished\">Publikálás befejezve</string>\n    <string name=\"description_placeholder\">Nincs leírás</string>\n    <string name=\"chapter_downloading_progress\">Letöltés (%1$d/%2$d)</string>\n    <string name=\"add_tracking\">Felvétel nyilvántartáshoz</string>\n    <string name=\"reading\">Elkezdett</string>\n    <string name=\"migration_dialog_what_to_include\">Válaszon beletartozó adatokat</string>\n    <string name=\"chapter_settings_updated\">Fejezet beállításai frissültek</string>\n    <string name=\"download_notifier_downloader_title\">Letöltő</string>\n    <string name=\"update_check_notification_download_in_progress\">Letöltés…</string>\n    <string name=\"source_filter_empty_screen\">Nincs telepített forrás</string>\n    <string name=\"migration_help_guide\">Forrás imortálási útmutató</string>\n    <string name=\"picture_saved\">Kép elmentve</string>\n    <string name=\"decode_image_error\">A képet nem lehetett betölteni</string>\n    <string name=\"pref_category_for_this_series\">Ennek a sorozatnak</string>\n    <string name=\"viewer\">Olvasó mód</string>\n    <string name=\"transition_finished\">Befejezve:</string>\n    <string name=\"transition_current\">Jelenlegi:</string>\n    <string name=\"empty_screen\">Hát, ez kínos</string>\n    <string name=\"notification_size_warning\">A nagy frissítések kárt okoznak a forrásoknak, és lassabb frissítésekhez, valamint megnövekedett akkumulátorhasználathoz vezethetnek. Koppintson további információért.</string>\n    <string name=\"notification_update_error\">%1$d frissítés sikertelen</string>\n    <string name=\"split_tall_images_summary\">Javítja az olvasó teljesítményét</string>\n    <string name=\"backup_restore_missing_trackers\">Nem bejelentkezett nyilvántartó:</string>\n    <string name=\"pref_incognito_mode\">Inkognitó mód</string>\n    <string name=\"notification_incognito_text\">Inkognitó mód kikapcsolása</string>\n    <string name=\"downloaded_only_summary\">Szűri a könyvtár összes tartalmát</string>\n    <string name=\"error_sharing_cover\">Hiba a fedlap megosztása közben</string>\n    <string name=\"action_close\">Bezár</string>\n    <string name=\"rotation_reverse_portrait\">Fordított álló</string>\n    <string name=\"paused\">Megállítva</string>\n    <string name=\"reading_list\">Olvasási lista</string>\n    <string name=\"wish_list\">Kívánságlista</string>\n    <string name=\"complete_list\">Teljes lista</string>\n    <string name=\"unfinished_list\">Befejezetlen lista</string>\n    <string name=\"track_status\">Állapot</string>\n    <string name=\"track_started_reading_date\">Kezdés dátuma</string>\n    <string name=\"track_finished_reading_date\">Befejezés dátuma</string>\n    <string name=\"myanimelist_relogin\">Kérjük, jelentkezzen be MAL-ba újra</string>\n    <string name=\"source_unsupported\">A forrás nem támogatott</string>\n    <string name=\"error_no_match\">Nincs egyezés</string>\n    <string name=\"error_category_exists\">Ilyen nevű kategória már létezik!</string>\n    <string name=\"dialog_with_checkbox_reset\">Összes fejezet visszaállítása ebben az elemben</string>\n    <string name=\"error_saving_picture\">Hiba a kép mentése közben</string>\n    <string name=\"on_hold_list\">Szüneteltettek listája</string>\n    <string name=\"custom_cover\">Egyéni fedlap</string>\n    <string name=\"transition_next\">Következő:</string>\n    <string name=\"transition_previous\">Előző:</string>\n    <string name=\"transition_no_next\">Nincs több fejezet</string>\n    <string name=\"transition_no_previous\">Nincs előző fejezet</string>\n    <string name=\"transition_pages_error\">%1$s oldalt nem lehetett betölteni</string>\n    <string name=\"transition_pages_loading\">Oldalak betöltése…</string>\n    <string name=\"action_track\">Nyilvántart</string>\n    <string name=\"extension_api_error\">Nem sikerült a kiterjesztési lista megnyitása</string>\n    <string name=\"disabled_nav\">Kikapcsolva</string>\n    <string name=\"enhanced_tracking_info\">Szolgáltatások, amelyek fejlett funkciókat kínálnak. Az elemek automatikusan könyvtárhoz lesznek adva és frissítve lesznek.</string>\n    <string name=\"pref_create_backup\">Biztonsági mentés készítése</string>\n    <string name=\"pref_create_backup_summ\">Felhasználható az aktuális könyvtár visszaállítására</string>\n    <string name=\"pref_restore_backup\">Biztonsági mentésből visszaállítás</string>\n    <string name=\"pref_restore_backup_summ\">Könyvtár visszaállítása biztonsági mentésről</string>\n    <string name=\"pref_backup_interval\">Biztonsági mentések gyakorisága</string>\n    <string name=\"restoring_backup\">Biztonsági mentés helyreállítása</string>\n    <string name=\"restoring_backup_error\">Nem sikerült a biztonsági mentés helyreállítása</string>\n    <string name=\"clear_database_completed\">Elemek törölve</string>\n    <string name=\"pref_clear_chapter_cache\">Fejezet gyorsítótárának törlése</string>\n    <string name=\"webview_data_deleted\">WebView adatok törölve</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Helyreállítja az olvasó módot és orientációt minden elemnél</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nem lehetett visszaállítani az olvasói beállításokat</string>\n    <string name=\"pref_disable_battery_optimization\">Akkumulátor optimalizálás kikapcsolása</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Segít háttérbeli könyvtár frissítésben és a biztonsági mentésekben</string>\n    <string name=\"battery_optimization_disabled\">Akkumulátor optimalizálás már ki van kapcsolva</string>\n    <string name=\"pref_verbose_logging\">Bő feljegyzés</string>\n    <string name=\"pref_verbose_logging_summary\">Részletes naplók irása a rendszernaplóba (csökkenti az alkalmazás teljesítményét)</string>\n    <string name=\"whats_new\">Újdonságok</string>\n    <string name=\"help_translate\">Segíts fordítani</string>\n    <string name=\"privacy_policy\">Adatvédelmi irányelvek</string>\n    <string name=\"pref_acra_summary\">Segít a hibák javításában. Semmilyen bizalmas információ nem lesz elküldve</string>\n    <string name=\"cancelled\">Félbeszakított</string>\n    <string name=\"on_hiatus\">Szünetelő</string>\n    <string name=\"show_title\">Forrás címe</string>\n    <string name=\"sort_by_source\">Forrás szerint</string>\n    <string name=\"sort_by_number\">Fejezetek száma szerint</string>\n    <string name=\"library_errors_help\">Könyvtárfrissítési hibák kijavításához sgítségért, tekintese meg %1$s</string>\n    <string name=\"skipped_reason_completed\">Átugorva, mivel a sorozat befejeződött</string>\n    <string name=\"download_notifier_split_page_not_found\">%d oldal nem található felosztás közben</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nem található az útvonal a %d-ik oldalhoz</string>\n    <string name=\"confirm_set_image_as_cover\">Ez a kép legyen a fedlap?</string>\n    <string name=\"file_select_backup\">Biztonsági mentési fájl kiválasztása</string>\n    <string name=\"pref_user_agent_string\">Alap hálózati kliens szöveg</string>\n    <string name=\"pref_reset_user_agent_string\">Alap hálózati kliens szöveg visszaállítása</string>\n    <string name=\"action_remove_everything\">Minden Eltávolitása</string>\n    <string name=\"appwidget_updates_description\">Lásd nemrég frissített mangádat</string>\n    <string name=\"appwidget_unavailable_locked\">Widget nem elérhető amikor az alkalmazás zárolva van</string>\n    <string name=\"pref_appearance_summary\">Téma, dátum és idő formátuma</string>\n    <string name=\"action_search_hint\">Keresés…</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Kényszerítse az alkalmazást a letöltött fejezetek újbóli ellenőrzésére</string>\n    <string name=\"auto_download_while_reading\">Automatikus letöltés olvasás közben</string>\n    <string name=\"label_started\">Elkezdett</string>\n    <string name=\"label_downloaded\">Letöltött</string>\n    <string name=\"label_local\">Helyi</string>\n    <string name=\"label_stats\">Statisztika</string>\n    <string name=\"unknown_title\">Ismeretlen cím</string>\n    <string name=\"label_overview_section\">Áttekintés</string>\n    <string name=\"label_total_chapters\">Összes</string>\n    <string name=\"label_read_chapters\">Olvasott</string>\n    <string name=\"label_mean_score\">Átlagos értékelés</string>\n    <string name=\"action_open_random_manga\">Véletlenszerű elem megnyitása</string>\n    <string name=\"updates_last_update_info\">Könyvtár utoljára frissítve: %s</string>\n    <string name=\"label_tracker_section\">Nyilvántartók</string>\n    <string name=\"pref_library_update_show_tab_badge\">Az olvasatlanok számának megjelenítése a Frissítések ikonon</string>\n    <string name=\"action_display_show_continue_reading_button\">Olvasás folytatása gomb</string>\n    <string name=\"pref_library_summary\">Kategóriák, globális frissítés, fejezet csúsztatás</string>\n    <string name=\"pref_security_summary\">Alkalmazás zárolás, képernyő zár</string>\n    <string name=\"pref_advanced_summary\">Összeomlás naplók kiírása, akkumulátor optimalizálások</string>\n    <string name=\"invalid_location\">Hibás hely: %s</string>\n    <string name=\"download_ahead_info\">Csak akkor működik, ha az aktuális és a következő fejezet már letöltött.</string>\n    <string name=\"download_ahead\">Letöltés előre</string>\n    <string name=\"pref_reader_summary\">Olvasó mód, kijelző, navigáció</string>\n    <string name=\"theme_tidalwave\">Szökőár</string>\n    <string name=\"action_not_now\">Ne most</string>\n    <string name=\"pref_downloads_summary\">Automatikus letöltés, letöltés előre</string>\n    <string name=\"pref_tracking_summary\">Egyirányú haladás szinkronizálás, fejlesztett szinkronizálás</string>\n    <string name=\"pref_backup_summary\">Manuális és automatikus biztonsági mentés</string>\n    <string name=\"multi_lang\">Több</string>\n    <string name=\"pref_browse_summary\">Források, bővítmények, globális keresés</string>\n    <string name=\"action_copy_to_clipboard\">Másolás a vágólapra</string>\n    <string name=\"action_update_category\">Kategória frissítése</string>\n    <string name=\"copied_to_clipboard_plain\">Vágólapra másolva</string>\n    <string name=\"track_remove_start_date_conf_text\">Ez eltávolítja az eddig kiválasztott kezdeti dátumot a(z) %s szolgáltatásból</string>\n    <string name=\"fdroid_warning\">F-Droid csomagok nem hivatalosan támogatottak.\n\\nKattincs további információért.</string>\n    <string name=\"label_completed_titles\">Befejezett olvasmányok</string>\n    <string name=\"crash_screen_title\">Hoppá!</string>\n    <string name=\"enhanced_services_not_installed\">Elérhető de a forrás nincs telepítve: %s</string>\n    <string name=\"missing_storage_permission\">Tárhely engedély nincs megadva</string>\n    <string name=\"label_used\">Használt</string>\n    <string name=\"track_error\">%1$s hiba: %2$s</string>\n    <string name=\"are_you_sure\">Biztos vagy benne?</string>\n    <string name=\"information_no_manga_category\">Kategória üres</string>\n    <string name=\"track_remove_finish_date_conf_text\">Ez eltávolítja az eddig kiválasztott befejezési dátumot a(z) %s szolgáltatásból</string>\n    <string name=\"label_read_duration\">Olvasási időtartam</string>\n    <string name=\"information_no_entries_found\">Nem található elem ebben a kategóriában</string>\n    <string name=\"remove_manga\">A/az \\\"%s\\\"-t elfogod távolítani a könyvtáradból</string>\n    <string name=\"updates_last_update_info_just_now\">Éppen most</string>\n    <string name=\"download_notifier_cache_renewal\">Letöltések ellenőrzése</string>\n    <string name=\"pref_debug_info\">Debug információ</string>\n    <string name=\"popular\">Felkapott</string>\n    <string name=\"update_already_running\">A frissités már folyamatban van</string>\n    <string name=\"crash_screen_description\">%s hibába ütközött. A hiba üzenetet kérünk oszd meg velünk a Discord szerverünkön.</string>\n    <string name=\"track_remove_date_conf_title\">Dátum eltávolítása?</string>\n    <string name=\"crash_screen_restart_application\">Applikáció újrainditása</string>\n    <string name=\"label_titles_in_global_update\">Globális frissítésben</string>\n    <string name=\"information_required_plain\">*kötelező</string>\n    <string name=\"pref_chapter_swipe_start\">Fejezet balra húzásakor</string>\n    <string name=\"pref_skip_dupe_chapters\">Duplikált fejezetek átugrása</string>\n    <string name=\"action_set_interval\">Időköz állítása</string>\n    <string name=\"action_filter_interval_custom\">Egyedi frissítési időköz</string>\n    <string name=\"action_sort_next_updated\">Következő várt frissítés</string>\n    <string name=\"pref_double_tap_zoom\">Dupla koppintás a nagyításhoz</string>\n    <string name=\"pref_hide_in_library_items\">Már könyvtári elemek elrejtése</string>\n    <string name=\"track_activity_name\">Bejelentkezés nyilvántartóhoz</string>\n    <string name=\"delete_downloaded\">Letöltött törlése</string>\n    <string name=\"split_tall_images\">Magas képek szétvágása</string>\n    <string name=\"pref_update_only_in_release_period\">Következő kiadás idejének megjóslása</string>\n    <string name=\"pref_page_rotate\">Széles oldalak forgatása az illeszkedéshez</string>\n    <string name=\"pref_chapter_swipe_end\">Fejezet jobbra húzásakor</string>\n    <string name=\"pref_page_rotate_invert\">Forgatott széles oldalak megfordítása</string>\n    <string name=\"action_ok\">Ok</string>\n    <string name=\"pref_storage_location\">Tárolási hely</string>\n    <string name=\"information_cloudflare_help\">Érints ide, ha Cloudflare segítségre van szükséged</string>\n    <string name=\"relative_time_span_never\">Soha</string>\n    <string name=\"skipped_reason_not_always_update\">Átlépve, mert a sorozatot nem kell frissíteni</string>\n    <string name=\"pref_flash_page_summ\">E-ink képernyőkön csökkenti a visszamaradó képet</string>\n    <string name=\"unlock_app_title\">%s feloldása</string>\n    <string name=\"pref_storage_location_info\">Automatikus biztonsági mentésekhez, fejezetek letöltéséhez, és helyi forráshoz használt.</string>\n    <string name=\"manga_display_modified_interval_title\">Frissítés beállítása minden</string>\n    <string name=\"syncing_library\">Könyvtár szinkronizálása</string>\n    <string name=\"create_backup_file_error\">Biztonsági mentés készítése nem sikerült</string>\n    <string name=\"intervals_header\">Intervallumok</string>\n    <string name=\"action_revert_to_default\">Visszaállítás alapértelmezettre</string>\n    <string name=\"error_user_agent_string_blank\">Felhasználói ágens (user agent) szöveg nem lehet üres</string>\n    <string name=\"action_menu_overflow_description\">További lehetőségek</string>\n    <string name=\"library_sync_complete\">Könyvtár szinkronizálása elkészült</string>\n    <string name=\"last_auto_backup_info\">Utolsó automatikus biztonsági mentés: %s</string>\n    <string name=\"selected\">Kiválasztott</string>\n    <string name=\"no_scanlators_found\">Nincsenek szkennelő-fordítók</string>\n    <string name=\"not_selected\">Nem kiválasztott</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Sorozat alulra küldése</string>\n    <string name=\"scanlator\">Szkennelő-fordító</string>\n    <string name=\"pref_flash_page\">Villantson fehéren lap változtatáskor</string>\n    <string name=\"exception_offline\">Nincs internet kapcsolat</string>\n    <string name=\"pref_storage_usage\">Tárolóhely felhasználás</string>\n    <string name=\"notification_updating_progress\">Könyvtár frissítése... (%s)</string>\n    <string name=\"label_titles_section\">Elemek</string>\n    <string name=\"action_bar_up_description\">Felnavigálás</string>\n    <string name=\"label_data_storage\">Adatok és tárolás</string>\n    <string name=\"skipped_reason_not_in_release_period\">Átlépve, mert ma nem várható kiadás</string>\n    <string name=\"file_null_uri_error\">Nincs fájl kiválasztva</string>\n    <string name=\"error_user_agent_string_invalid\">Érvénytelen felhasználói ágens (user agent) szöveg</string>\n    <string name=\"source_settings\">Forrás beállítások</string>\n    <string name=\"app_settings\">Applikáció beállítások</string>\n    <string name=\"has_results\">Vannak eredmények</string>\n    <string name=\"pref_relative_format\">Relatív időbélyegek</string>\n    <string name=\"exception_http\">HTTP %d, nézd meg a honlapot WebViewban</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\", ahelyett hogy \\\"%2$s\\\"</string>\n    <string name=\"exception_unknown_host\">%s nem elérhető</string>\n    <string name=\"exclude_scanlators\">Szkennelő-fordítók tiltása</string>\n    <string name=\"action_apply\">Alkalmazás</string>\n    <string name=\"pref_onboarding_guide\">Bevezetési útmutató</string>\n    <string name=\"onboarding_heading\">Üdvözöljük!</string>\n    <string name=\"onboarding_action_next\">Következő</string>\n    <string name=\"onboarding_action_finish\">Kezdjünk hozzá</string>\n    <string name=\"onboarding_action_skip\">Kihagyás</string>\n    <string name=\"onboarding_storage_info\">Válasszon ki egy mappát, ahol a(z) %1$s a fejezetek letöltéseit, biztonsági mentéseket és egyebeket tárolja.\n\\n\n\\nAjánlott egy külön mappa használata.\n\\n\n\\nKiválasztott mappa: %2$s</string>\n    <string name=\"onboarding_storage_action_select\">Válasszon ki egy mappát</string>\n    <string name=\"onboarding_storage_selection_required\">Ki kell választani egy mappát</string>\n    <string name=\"onboarding_storage_help_info\">Régebbi verzióról frissít, és nem tudja, mit válasszon? További információkért olvassa el a tárolási útmutatót.</string>\n    <string name=\"onboarding_storage_help_action\">Tárolási útmutató</string>\n    <string name=\"onboarding_permission_install_apps\">Alkalmazások telepítésének engedélyezése</string>\n    <string name=\"onboarding_permission_install_apps_description\">A forrásbővítmények telepítéséhez.</string>\n    <string name=\"onboarding_permission_notifications\">Értesítési engedély</string>\n    <string name=\"onboarding_permission_notifications_description\">Értesüljön a könyvtári frissítésekről és egyéb információkról.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Háttérben lévő akkumulátor-használat</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Kerülje el a hosszan tartó könyvtárfrissítések, letöltések és biztonsági mentések helyreállításának megszakítását.</string>\n    <string name=\"onboarding_permission_action_grant\">Engedélyezés</string>\n    <string name=\"onboarding_guides_new_user\">Új a(z) %s az ön számára? Javasoljuk, hogy olvassa el a Kezdő útmutatót.</string>\n    <string name=\"onboarding_guides_returning_user\">Újratelepíti a(z) %s?</string>\n    <string name=\"pref_library_update_smart_update\">Intelligens frissítés</string>\n    <string name=\"ext_permission_install_apps_warning\">A bővítmények telepítéséhez engedélyek szükségesek. Az engedélyezéshez koppintson ide.</string>\n    <string name=\"ext_revoke_trust\">Megbízható ismeretlen kiterjesztések visszavonása</string>\n    <string name=\"label_extension_repos\">Bővítmény tárolók</string>\n    <string name=\"information_empty_repos\">Nincsenek beállítva tárolók.</string>\n    <string name=\"action_add_repo\">Tároló felvétele</string>\n    <string name=\"label_add_repo_input\">Tároló URL</string>\n    <string name=\"action_add_repo_message\">További tárolók hozzáadása a %shoz. Ennek az URL-nek \\\"index.min.json\\\"-ra végződő URL-nek kell lennie.</string>\n    <string name=\"error_repo_exists\">Ez a tároló már létezik!</string>\n    <string name=\"action_delete_repo\">Tároló törlése</string>\n    <string name=\"invalid_repo_name\">Érvénytelen tároló URL</string>\n    <string name=\"delete_repo_confirmation\">Szeretné törölni a(z) \\\"%s\\\" tárolót?</string>\n    <string name=\"action_open_repo\">Nyílt forráskódú tároló</string>\n    <string name=\"no_location_set\">Nincs tárolási hely beállítva</string>\n    <string name=\"action_create\">Létrehoz</string>\n    <string name=\"invalid_backup_file_error\">Teljes hiba:</string>\n    <string name=\"onboarding_description\">Kezdetnek állítsunk be néhány dolgot. Ezeket később bármikor módosíthatja a beállításokban.</string>\n    <string name=\"overlay_header\">Felület</string>\n    <string name=\"track_delete_remote_text\">Törlés a(z) %s szolgáltatásból</string>\n    <string name=\"track_delete_text\">Ezzel leállítja a helyi nyilvántartást.</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"minute_short\">%d perc</string>\n    <string name=\"seconds_short\">%d mp.</string>\n    <string name=\"day_short\">%d nap</string>\n    <string name=\"hour_short\">%d óra</string>\n    <string name=\"action_sort_tracker_score\">Nyilvántartási pont</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"private_settings\">Érzékeny beállítások megadása (Pl. szolgáltatások bejelentkezési tokenei)</string>\n    <string name=\"pref_invalidate_download_cache\">Letöltések újraindexelése</string>\n    <string name=\"manga_interval_expected_update\">Új fejezetek megjelenése %1$s múlva várható, frissítési időköz: %2$s.</string>\n    <string name=\"track_delete_title\">Leállítja a(z) %s nyilvántartását?</string>\n    <string name=\"label_tracked_titles\">Nyilvántartott elemek</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Kicsinyítés letiltása</string>\n    <string name=\"available_disk_space_info\">Elérhető: %1$s / Összesen: %2$s</string>\n    <string name=\"download_cache_invalidated\">Letöltési index érvénytelenítve</string>\n    <string name=\"manga_display_interval_title\">Mind becslése</string>\n    <string name=\"manga_interval_expected_update_soon\">Hamarosan</string>\n    <string name=\"manga_interval_custom_amount\">Egyedi frissítési időköz:</string>\n    <string name=\"action_add_anyway\">Hozzáadás mindenképp</string>\n    <string name=\"pref_display_profile\">Egyedi megjelenítési profil</string>\n    <string name=\"action_replace_repo\">Lecserélés</string>\n    <string name=\"action_replace_repo_title\">Aláíró kulcs ujjlenyomat már létezik</string>\n    <string name=\"action_replace_repo_message\">A(z) %1$s tárolónak ugyanaz az aláíró kulcs ujjlenyomat, mint a(z) %2$s tárolónak.\n\\nHa ez várható volt, akkor a(z) %2$s lecserélődik, ellenkező esetben lépjen kapcsolatba a tároló karbantartójával.</string>\n    <string name=\"label_upcoming\">Közelgő</string>\n    <string name=\"upcoming_calendar_next\">Következő hónap</string>\n    <string name=\"action_view_upcoming\">Közelgő frissítések megtekintése</string>\n    <string name=\"upcoming_guide\">Közelgő útmutató</string>\n    <string name=\"upcoming_calendar_prev\">Előző hónap</string>\n    <string name=\"action_copy_link\">Hivatkozás másolása</string>\n    <string name=\"onboarding_permission_crashlytics\">Összeomlási jelentés küldése</string>\n    <string name=\"onboarding_permission_analytics\">Analitika engedélyezése</string>\n    <string name=\"onboarding_permission_analytics_description\">Anonimizált használati adatok küldése a funkciók fejlesztésének érdekében.</string>\n    <string name=\"action_sort_random\">Véletlenszerű</string>\n    <string name=\"pref_security\">Biztonság</string>\n    <string name=\"pref_firebase\">Analitika és összeomlási jelentések</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Anonimizált összeomlási jelentés küldése a fejlesztőknek.</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Ha az olvasó üres képet tölt be, fokozatosan csökkentse a küszöbértéket.\\nKijelölt: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Hosszú szalagolvasóhoz régi dekóder használata</string>\n    <string name=\"invalid_backup_file_json\">JSON biztonsági mentés nem támogatott</string>\n    <string name=\"extensionRepo_settings\">Bővítmény repók</string>\n    <string name=\"non_library_settings\">Minden olvasott elem</string>\n    <string name=\"library_exported\">Könyvtár exportálva</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Olvasási előzmények szüneteltetése ehhez bővítményhez</string>\n    <string name=\"possible_duplicates_summary\">Vannak hasonló nevű elemek a könyvtárában.\\n\\nVálasszon ki egy elemet az áttelepítéshez vagy a hozzáadáshoz.</string>\n    <string name=\"possible_duplicates_title\">Lehetséges duplikációk</string>\n    <string name=\"pref_flash_style_white_black\">Fehér és fekete</string>\n    <string name=\"firebase_summary\">Az összeomlási naplók és elemzések elküldése lehetővé teszi számunkra, hogy azonosítsuk és javítsuk a problémákat, javítsuk a teljesítményt, és a jövőbeli frissítéseket még inkább az Ön igényeihez igazítsuk</string>\n    <string name=\"invalid_backup_file_unknown\">A biztonsági másolat fájl sérült</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"label_auto\">Automatikus</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Új fejezet lekérése után</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Befolyásolja a teljesítményt. Csak akkor engedélyezze, ha a bitkép küszöbértékének csökkentése nem oldja meg az üres kép problémákat</string>\n    <string name=\"pref_flash_style_white\">Fehér</string>\n    <string name=\"library_list\">Könyvtár lista</string>\n    <string name=\"trackers_updated_summary\">Nyilvántartók frissítve a(z) %d. fejezetre</string>\n    <string name=\"add_repo_confirmation\">Szeretné hozzáadni a \\\"%s\\\" repót?</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Jelölje meg a duplikált olvasott fejezetet olvasottként</string>\n    <string name=\"action_edit_notes\">Jegyzetek szerkesztése</string>\n    <string name=\"action_notes\">Jegyzetek</string>\n    <string name=\"pref_behavior\">Viselkedés</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Fejezet olvasása után</string>\n    <string name=\"pref_flash_style_black\">Fekete</string>\n    <string name=\"export\">Exportálás</string>\n    <string name=\"manga_interval_expected_update_null\">Ez a manga vagy befejeződött, vagy nincs megjósolt megjelenési dátum.</string>\n    <string name=\"ext_remove\">Eltávolítás</string>\n    <string name=\"ext_confirm_remove\">Bővítmény eltávolítása?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Duplikált fejezetek letöltésének kihagyása</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Nem sikerült megszerezni a mappához való állandó hozzáférést. Az alkalmazás váratlanul viselkedhet.</string>\n    <string name=\"theme_monochrome\">Monokróm</string>\n    <string name=\"confirm_tracker_update\">Nyilvántartók frissítése a(z) %d. fejezetre?</string>\n    <string name=\"tracked_privately\">Privátan nyilvántartva</string>\n    <string name=\"remove_private_extension_message\">Tényleg el akarja távolítani a(z) \\\"%s\\\" bővítményt?</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Alapértelmezett (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Egyedi hardveres bitmap küszöbérték</string>\n    <string name=\"action_display_unread_badge\">Olvasatlan fejezetek</string>\n    <string name=\"clear_database_text\">Elemeket készül eltávolítani az adatbázisból</string>\n    <string name=\"clear_database_history_warning\">Az elolvasott fejezetek és a nem könyvtári bejegyzések előrehaladása elveszik</string>\n    <string name=\"clear_db_exclude_read\">Tartsa meg az elolvasott fejezetekkel rendelkező elemeket</string>\n    <string name=\"artist\">Művész</string>\n    <string name=\"author\">Szerző</string>\n    <string name=\"action_toggle_private_on\">Privát nyilvántartás</string>\n    <string name=\"action_toggle_private_off\">Nyilvános nyilvántartás</string>\n    <string name=\"notes_placeholder\">Élveztem azt a részt, ahol…</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/in/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">Setelah %1$s menit</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d bab baru</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">Bab %1$s dan %2$d lainnya</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">Untuk entri %d</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">Terdapat %d perbaruan ekstensi</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">%1$s lagi</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d kategori</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">Selesai dalam %1$s dengan %2$s kesalahan</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">%1$s bab</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d pelacak</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">Melewati %d bab, entah sumbernya hilang atau telah difilter</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d hari yang lalu</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">Selanjutnya chapter %d yang belum dibaca</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">berikutnya %d chapter</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">%1$s bab hilang</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d hari</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d repo</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">Dalam %1$d hari</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s halaman</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">Migrasikan %1$d entri?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">Salin %1$d entri?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d entri dilewati</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/in/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"categories\">Kategori</string>\n    <string name=\"manga\">Entri pustaka</string>\n    <string name=\"chapters\">Bab</string>\n    <string name=\"track\">Pelacakan</string>\n    <string name=\"history\">Riwayat</string>\n    <string name=\"label_settings\">Pengaturan</string>\n    <string name=\"label_download_queue\">Antrean unduhan</string>\n    <string name=\"label_library\">Pustaka</string>\n    <string name=\"label_recent_manga\">Riwayat</string>\n    <string name=\"label_recent_updates\">Pembaruan</string>\n    <string name=\"label_backup\">Pencadangan dan pemulihan</string>\n    <string name=\"action_settings\">Pengaturan</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_bookmarked\">Ditandai</string>\n    <string name=\"action_filter_unread\">Belum dibaca</string>\n    <string name=\"action_filter_empty\">Hapus filter</string>\n    <string name=\"action_sort_alpha\">Menurut abjad</string>\n    <string name=\"action_sort_total\">Total bab</string>\n    <string name=\"action_sort_last_read\">Terakhir dibaca</string>\n    <string name=\"action_search\">Pencarian</string>\n    <string name=\"action_select_all\">Pilih semua</string>\n    <string name=\"action_mark_as_read\">Tandai sebagai dibaca</string>\n    <string name=\"action_mark_as_unread\">Tandai sebagai belum dibaca</string>\n    <string name=\"action_mark_previous_as_read\">Tandai sebelumnya sebagai sudah dibaca</string>\n    <string name=\"action_download\">Unduh</string>\n    <string name=\"action_bookmark\">Tandai bab</string>\n    <string name=\"action_remove_bookmark\">Hapus penanda bab</string>\n    <string name=\"action_delete\">Hapus</string>\n    <string name=\"action_update_library\">Perbarui pustaka</string>\n    <string name=\"action_edit\">Ubah</string>\n    <string name=\"action_add\">Tambah</string>\n    <string name=\"action_add_category\">Tambah kategori</string>\n    <string name=\"action_edit_categories\">Ubah kategori</string>\n    <string name=\"action_rename_category\">Ubah nama kategori</string>\n    <string name=\"action_move_category\">Tentukan kategori</string>\n    <string name=\"action_edit_cover\">Ubah gambar sampul</string>\n    <string name=\"action_pause\">Hentikan sementara</string>\n    <string name=\"action_previous_chapter\">Bab sebelumnya</string>\n    <string name=\"action_next_chapter\">Bab selanjutnya</string>\n    <string name=\"action_retry\">Coba lagi</string>\n    <string name=\"action_remove\">Hapus</string>\n    <string name=\"action_resume\">Lanjut</string>\n    <string name=\"action_open_in_browser\">Buka di peramban</string>\n    <string name=\"action_display_mode\">Mode tampilan</string>\n    <string name=\"action_display\">Tampilan</string>\n    <string name=\"action_display_list\">Daftar</string>\n    <string name=\"action_cancel\">Batal</string>\n    <string name=\"action_sort\">Urutkan</string>\n    <string name=\"action_install\">Pasang</string>\n    <string name=\"action_share\">Bagikan</string>\n    <string name=\"action_save\">Simpan</string>\n    <string name=\"action_reset\">Atur ulang</string>\n    <string name=\"action_undo\">Kembalikan</string>\n    <string name=\"action_open_log\">Buka log</string>\n    <string name=\"name\">Nama</string>\n    <string name=\"action_display_grid\">Grid kompak</string>\n    <string name=\"action_restore\">Pulihkan</string>\n    <string name=\"loading\">Memuat…</string>\n    <string name=\"app_not_available\">Aplikasi tidak tersedia</string>\n    <string name=\"pref_category_general\">Umum</string>\n    <string name=\"pref_category_reader\">Pembaca</string>\n    <string name=\"pref_category_downloads\">Unduhan</string>\n    <string name=\"pref_category_tracking\">Sinkronisasi</string>\n    <string name=\"pref_category_advanced\">Lanjutan</string>\n    <string name=\"pref_category_about\">Tentang</string>\n    <string name=\"pref_library_columns\">Item per baris</string>\n    <string name=\"portrait\">Layar tegak</string>\n    <string name=\"landscape\">Layar mendatar</string>\n    <string name=\"pref_library_update_interval\">Pembaruan otomatis</string>\n    <string name=\"update_never\">Matikan</string>\n    <string name=\"update_6hour\">Tiap 6 jam</string>\n    <string name=\"update_12hour\">Tiap 12 jam</string>\n    <string name=\"update_24hour\">Tiap hari</string>\n    <string name=\"update_48hour\">Tiap 2 hari</string>\n    <string name=\"update_weekly\">Tiap minggu</string>\n    <string name=\"all\">Semua</string>\n    <string name=\"pref_library_update_restriction\">Pembatasan pembaruan otomatis</string>\n    <string name=\"charging\">Saat mengisi daya</string>\n    <string name=\"pref_update_only_non_completed\">Lewati daftar dengan status \\\"Selesai\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Perbarui kemajuan setelah membaca</string>\n    <string name=\"default_category\">Kategori bawaan</string>\n    <string name=\"default_category_summary\">Selalu tanya</string>\n    <string name=\"pref_fullscreen\">Layar penuh</string>\n    <string name=\"pref_page_transitions\">Animasikan transisi halaman</string>\n    <string name=\"pref_show_page_number\">Tampilkan nomor halaman</string>\n    <string name=\"pref_crop_borders\">Potong pinggiran</string>\n    <string name=\"pref_keep_screen_on\">Biarkan layar tetap menyala</string>\n    <string name=\"pref_reader_navigation\">Navigasi</string>\n    <string name=\"pref_read_with_volume_keys\">Tombol volume</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Balikkan tombol volume</string>\n    <string name=\"pref_reader_theme\">Warna latar</string>\n    <string name=\"white_background\">Putih</string>\n    <string name=\"black_background\">Hitam</string>\n    <string name=\"pref_viewer_type\">Mode baca bawaan</string>\n    <string name=\"left_to_right_viewer\">Halaman (kiri ke kanan)</string>\n    <string name=\"right_to_left_viewer\">Halaman (kanan ke kiri)</string>\n    <string name=\"vertical_viewer\">Halaman (vertikal)</string>\n    <string name=\"webtoon_viewer\">Strip panjang</string>\n    <string name=\"pref_image_scale_type\">Tipe skala</string>\n    <string name=\"scale_type_fit_screen\">Pas layar</string>\n    <string name=\"scale_type_stretch\">Rentangkan</string>\n    <string name=\"scale_type_fit_width\">Pas lebar</string>\n    <string name=\"scale_type_fit_height\">Pas tinggi</string>\n    <string name=\"scale_type_original_size\">Ukuran asli</string>\n    <string name=\"scale_type_smart_fit\">Pas pintar</string>\n    <string name=\"pref_zoom_start\">Posisi awal zoom</string>\n    <string name=\"zoom_start_automatic\">Otomatis</string>\n    <string name=\"zoom_start_left\">Kiri</string>\n    <string name=\"zoom_start_right\">Kanan</string>\n    <string name=\"zoom_start_center\">Tengah</string>\n    <string name=\"pref_rotation_type\">Rotasi bawaan</string>\n    <string name=\"rotation_free\">Bebas</string>\n    <string name=\"rotation_force_portrait\">Terkunci tegak</string>\n    <string name=\"rotation_force_landscape\">Terkunci mendatar</string>\n    <string name=\"color_filter_r_value\">Merah</string>\n    <string name=\"color_filter_g_value\">Hijau</string>\n    <string name=\"color_filter_b_value\">Biru</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_remove_after_marked_as_read\">Setelah secara manual ditandai telah dibaca</string>\n    <string name=\"pref_remove_after_read\">Otomatis hapus setelah dibaca</string>\n    <string name=\"disabled\">Tidak Aktif</string>\n    <string name=\"last_read_chapter\">Bab terakhir yang dibaca</string>\n    <string name=\"second_to_last\">Bab kedua dari terakhir dibaca</string>\n    <string name=\"third_to_last\">Chapter ketiga dari terakhir dibaca</string>\n    <string name=\"fourth_to_last\">Chapter keempat dari terakhir dibaca</string>\n    <string name=\"fifth_to_last\">Chapter kelima dari terakhir dibaca</string>\n    <string name=\"pref_download_new\">Unduh bab baru</string>\n    <string name=\"services\">Pelacakan</string>\n    <string name=\"pref_create_backup\">Buat cadangan</string>\n    <string name=\"pref_create_backup_summ\">Dapat digunakan untuk memulihkan isi pustaka saat ini</string>\n    <string name=\"pref_restore_backup\">Pulihkan cadangan</string>\n    <string name=\"pref_restore_backup_summ\">Pulihkan isi pustaka dari berkas cadangan</string>\n    <string name=\"pref_backup_interval\">Frekuensi pencadangan otomatis</string>\n    <string name=\"backup_created\">Cadangan dibuat</string>\n    <string name=\"restore_completed\">Pemulihan selesai</string>\n    <string name=\"backup_choice\">Apa saja yang ingin Anda cadangkan?</string>\n    <string name=\"restoring_backup\">Memulihkan cadangan</string>\n    <string name=\"creating_backup\">Membuat cadangan</string>\n    <string name=\"pref_clear_chapter_cache\">Hapus cache bab</string>\n    <string name=\"used_cache\">Terpakai: %1$s</string>\n    <string name=\"cache_deleted\">Cache dibersihkan, %1$d file dihapus</string>\n    <string name=\"cache_delete_error\">Terjadi kesalahan saat membersihkan</string>\n    <string name=\"pref_clear_cookies\">Hapus cookies</string>\n    <string name=\"cookies_cleared\">Cookies dihapus</string>\n    <string name=\"pref_clear_database\">Hapus database</string>\n    <string name=\"pref_clear_database_summary\">Hapus riwayat untuk entri yang tidak disimpan di perpustakaan Anda</string>\n    <string name=\"clear_database_completed\">Entri dihapus</string>\n    <string name=\"version\">Versi</string>\n    <string name=\"pref_enable_acra\">Kirim laporan kerusakan</string>\n    <string name=\"pref_acra_summary\">Bantu memperbaiki bug. Tidak ada data sensitif yang akan dikirim</string>\n    <string name=\"login_title\">Masuk ke %1$s</string>\n    <string name=\"username\">Nama pengguna</string>\n    <string name=\"password\">Kata sandi</string>\n    <string name=\"login\">Masuk</string>\n    <string name=\"login_success\">Sudah Masuk</string>\n    <string name=\"unknown_error\">Kesalahan tidak diketahui</string>\n    <string name=\"updating_category\">Memperbarui kategori</string>\n    <string name=\"no_more_results\">Tidak ada hasil lainnya</string>\n    <string name=\"local_source\">Sumber lokal</string>\n    <string name=\"ongoing\">Berlanjut</string>\n    <string name=\"unknown\">Tak diketahui</string>\n    <string name=\"licensed\">Berlisensi</string>\n    <string name=\"remove_from_library\">Hapus dari pustaka</string>\n    <string name=\"delete_downloads_for_manga\">Hapus bab terunduh?</string>\n    <string name=\"display_mode_chapter\">Bab %1$s</string>\n    <string name=\"chapter_downloading_progress\">Mengunduh (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Kesalahan</string>\n    <string name=\"chapter_paused\">Jeda</string>\n    <string name=\"show_title\">Judul</string>\n    <string name=\"show_chapter_number\">Nomor bab</string>\n    <string name=\"sort_by_source\">Sumber</string>\n    <string name=\"sort_by_number\">Nomor bab</string>\n    <string name=\"manga_download\">Unduh</string>\n    <string name=\"download_unread\">Belum dibaca</string>\n    <string name=\"confirm_delete_chapters\">Yakin ingin menghapus bab yang dipilih?</string>\n    <string name=\"manga_tracking_tab\">Pelacakan</string>\n    <string name=\"reading\">Membaca</string>\n    <string name=\"completed\">Selesai</string>\n    <string name=\"dropped\">Tidak diselesaikan</string>\n    <string name=\"on_hold\">Ditahan</string>\n    <string name=\"plan_to_read\">Akan dibaca</string>\n    <string name=\"score\">Nilai</string>\n    <string name=\"title\">Judul</string>\n    <string name=\"status\">Status</string>\n    <string name=\"error_category_exists\">Kategori dengan nama ini sudah ada!</string>\n    <string name=\"snack_categories_deleted\">Kategori dihapus</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ini akan menghapus tanggal baca bab ini. Apakah Anda yakin?</string>\n    <string name=\"dialog_with_checkbox_reset\">Setel ulang semua bab untuk entri ini</string>\n    <string name=\"snack_add_to_library\">Tambahkan ke pustaka?</string>\n    <string name=\"picture_saved\">Gambar disimpan</string>\n    <string name=\"custom_filter\">Filter khusus</string>\n    <string name=\"set_as_cover\">Terapkan sebagai sampul</string>\n    <string name=\"cover_updated\">Sampul telah diperbarui</string>\n    <string name=\"chapter_progress\">Halaman: %1$d</string>\n    <string name=\"no_next_chapter\">Bab berikutnya tak ditemukan</string>\n    <string name=\"decode_image_error\">Gambar tidak dapat dimuat</string>\n    <string name=\"confirm_set_image_as_cover\">Gunakan gambar ini sebagai sampul?</string>\n    <string name=\"download_queue_error\">Tidak dapat mengunduh bab. Anda bisa mencoba lagi di bagian unduhan</string>\n    <string name=\"notification_new_chapters\">Bab baru ditemukan</string>\n    <string name=\"notification_cover_update_failed\">Gagal memperbarui sampul</string>\n    <string name=\"notification_first_add_to_library\">Tolong tambahkan entri ke pustaka Anda sebelum melakukan ini</string>\n    <string name=\"file_select_cover\">Pilih gambar sampul</string>\n    <string name=\"file_select_backup\">Pilih berkas cadangan</string>\n    <string name=\"update_check_confirm\">Unduh</string>\n    <string name=\"update_check_no_new_updates\">Pembaruan tidak tersedia</string>\n    <string name=\"update_check_notification_download_in_progress\">Mengunduh…</string>\n    <string name=\"update_check_notification_download_complete\">Ketuk untuk menginstal pembaruan</string>\n    <string name=\"update_check_notification_download_error\">Terjadi kesalahan saat mengunduh</string>\n    <string name=\"update_check_notification_update_available\">Versi baru tersedia!</string>\n    <string name=\"information_no_downloads\">Tidak ada unduhan</string>\n    <string name=\"information_no_recent\">Tidak ada pembaruan terkini</string>\n    <string name=\"information_no_recent_manga\">Tidak ada yang dibaca baru-baru ini</string>\n    <string name=\"information_empty_library\">Pustaka Anda kosong</string>\n    <string name=\"download_notifier_downloader_title\">Pengunduh</string>\n    <string name=\"download_notifier_title_error\">Gagal</string>\n    <string name=\"download_notifier_unknown_error\">Terjadi kesalahan saat mengunduh bab</string>\n    <string name=\"download_notifier_text_only_wifi\">Tidak terhubung dengan Wi-Fi</string>\n    <string name=\"download_notifier_no_network\">Tidak ada koneksi jaringan yang tersedia</string>\n    <string name=\"download_notifier_download_paused\">Unduhan dijeda</string>\n    <string name=\"action_global_search\">Pencarian Global</string>\n    <string name=\"action_display_download_badge\">Diunduh</string>\n    <string name=\"other_source\">Lainnya</string>\n    <string name=\"action_global_search_hint\">Pencarian global…</string>\n    <string name=\"latest\">Terbaru</string>\n    <string name=\"browse\">Jelajahi</string>\n    <string name=\"channel_common\">Umum</string>\n    <string name=\"information_empty_category\">Anda belum memiliki kategori. Tekan tombol tambah untuk menambahkan kategori baru untuk mengatur pustaka Anda.</string>\n    <string name=\"label_migration\">Migrasi</string>\n    <string name=\"label_extensions\">Ekstensi</string>\n    <string name=\"label_extension_info\">Info Ekstensi</string>\n    <string name=\"ext_update\">Perbarui</string>\n    <string name=\"ext_install\">Pasang</string>\n    <string name=\"ext_pending\">Tertunda</string>\n    <string name=\"ext_downloading\">Mengunduh</string>\n    <string name=\"ext_installing\">Memasang</string>\n    <string name=\"ext_installed\">Terpasang</string>\n    <string name=\"ext_trust\">Percaya</string>\n    <string name=\"ext_untrusted\">Tidak terpercaya</string>\n    <string name=\"ext_uninstall\">Lepas</string>\n    <string name=\"untrusted_extension\">Ekstensi tidak terpercaya</string>\n    <string name=\"untrusted_extension_message\">Ekstensi berbahaya dapat membaca semua kredensial login yang disimpan atau menjalankan kode berbahaya.\n\\n\n\\nDengan mempercayai sertifikat ekstensi ini, Anda menerima risiko ini.</string>\n    <string name=\"pref_double_tap_anim_speed\">Kecepatan animasi ketukan dua kali</string>\n    <string name=\"double_tap_anim_speed_0\">Tanpa animasi</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Cepat</string>\n    <string name=\"manga_added_library\">Ditambahkan ke pustaka</string>\n    <string name=\"manga_removed_library\">Dihapus dari pustaka</string>\n    <string name=\"copied_to_clipboard\">Tersalin ke papan klip:\n\\n%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Pilih data yang ikut dipindah</string>\n    <string name=\"migrate\">Pindah</string>\n    <string name=\"copy\">Salin</string>\n    <string name=\"pager_viewer\">Halaman</string>\n    <string name=\"source_not_installed\">Sumber tidak terpasang: %1$s</string>\n    <string name=\"repeating\">Baca ulang</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Tipe</string>\n    <string name=\"transition_finished\">Selesai:</string>\n    <string name=\"transition_current\">Saat ini:</string>\n    <string name=\"transition_next\">Selanjutnya:</string>\n    <string name=\"transition_previous\">Sebelumnya:</string>\n    <string name=\"transition_no_next\">Tak ada bab selanjutnya</string>\n    <string name=\"transition_no_previous\">Tak ada bab sebelumnya</string>\n    <string name=\"transition_pages_loading\">Memuat halaman…</string>\n    <string name=\"transition_pages_error\">Gagal memuat halaman: %1$s</string>\n    <string name=\"action_open_in_web_view\">Buka dalam WebView</string>\n    <string name=\"pref_skip_read_chapters\">Lewati bab yang sudah dibaca</string>\n    <string name=\"pref_read_with_long_tap\">Tampilkan tindakan saat tekan lama</string>\n    <string name=\"pref_color_filter_mode\">Mode saringan warna campur</string>\n    <string name=\"filter_mode_overlay\">Lapisan</string>\n    <string name=\"filter_mode_multiply\">Gandakan</string>\n    <string name=\"filter_mode_screen\">Layar</string>\n    <string name=\"filter_mode_lighten\">Dodge / Cerahkan</string>\n    <string name=\"filter_mode_darken\">Burn / Gelapkan</string>\n    <string name=\"label_help\">Bantuan</string>\n    <string name=\"no_results_found\">Hasil tidak ditemukan</string>\n    <string name=\"migration_selection_prompt\">Pilih sumber yang akan dipindah</string>\n    <string name=\"action_webview_back\">Kembali</string>\n    <string name=\"action_webview_forward\">Teruskan</string>\n    <string name=\"action_webview_refresh\">Muat ulang</string>\n    <string name=\"pref_category_library\">Pustaka</string>\n    <string name=\"ext_obsolete\">Usang</string>\n    <string name=\"obsolete_extension_message\">Ekstensi ini tidak lagi tersedia. Ini mungkin tidak berfungsi dengan baik dan dapat menyebabkan masalah dengan aplikasi. Disarankan untuk menghapus instalasi.</string>\n    <string name=\"pref_date_format\">Format tanggal</string>\n    <string name=\"action_sort_latest_chapter\">Bab terbaru</string>\n    <string name=\"action_view_chapters\">Lihat bab</string>\n    <string name=\"action_cancel_all\">Batalkan semua</string>\n    <string name=\"theme_light\">Terang</string>\n    <string name=\"theme_dark\">Gelap</string>\n    <string name=\"theme_system\">Sistem</string>\n    <string name=\"pref_manage_notifications\">Kelola notifikasi</string>\n    <string name=\"pref_category_security\">Keamanan dan privasi</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_newest\">Terbaru</string>\n    <string name=\"action_oldest\">Terlama</string>\n    <string name=\"action_move_to_top\">Pindahkan ke atas</string>\n    <string name=\"action_move_to_bottom\">Pindahkan ke bawah</string>\n    <string name=\"label_more\">Lainnya</string>\n    <string name=\"pref_category_library_update\">Pembaruan</string>\n    <string name=\"lock_with_biometrics\">Memerlukan buka kunci</string>\n    <string name=\"lock_when_idle\">Kunci saat diam</string>\n    <string name=\"lock_always\">Selalu</string>\n    <string name=\"lock_never\">Tidak pernah</string>\n    <string name=\"ext_updates_pending\">Pembaruan tertunda</string>\n    <string name=\"pref_cutout_short\">Tampilkan konten di area yang terpotong</string>\n    <string name=\"secure_screen_summary\">Sembunyikan konten aplikasi saat berpindah aplikasi dan blokir tangkapan layar</string>\n    <string name=\"hide_notification_content\">Sembunyikan konten notifikasi</string>\n    <string name=\"pref_always_show_chapter_transition\">Selalu tampilkan transisi bab</string>\n    <string name=\"logout\">Keluar</string>\n    <string name=\"logout_success\">Anda sudah keluar</string>\n    <string name=\"paused\">Dijeda</string>\n    <string name=\"information_cloudflare_bypass_failure\">Gagal untuk menembus Cloudflare</string>\n    <string name=\"information_webview_outdated\">Harap perbarui aplikasi WebView untuk kompatibilitas yang lebih baik</string>\n    <string name=\"channel_new_chapters\">Pembaruan bab</string>\n    <string name=\"pref_disable_battery_optimization\">Nonaktifkan optimisasi baterai</string>\n    <string name=\"battery_optimization_disabled\">Optimalisasi baterai sudah dimatikan</string>\n    <string name=\"email\">Alamat surel</string>\n    <string name=\"secure_screen\">Amankan layar</string>\n    <string name=\"logout_title\">Keluar dari %1$s?</string>\n    <string name=\"pref_category_display\">Tampilan</string>\n    <string name=\"notification_chapters_single\">Bab %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Bab %1$s dan %2$d lainnya</string>\n    <string name=\"notification_chapters_multiple\">Bab %1$s</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Membantu pembaruan pustaka dan pencadangan di latar belakang</string>\n    <string name=\"label_sources\">Sumber</string>\n    <string name=\"channel_ext_updates\">Pembaruan ekstensi</string>\n    <string name=\"pref_category_reading\">Membaca</string>\n    <string name=\"information_webview_required\">WebView diperlukan agar aplikasi dapat berfungsi</string>\n    <string name=\"recent_manga_time\">Bab %1$s - %2$s</string>\n    <string name=\"updating_library\">Memperbarui pustaka</string>\n    <string name=\"add_tracking\">Tambahkan pelacak</string>\n    <string name=\"manga_info_collapse\">Lebih sedikit</string>\n    <string name=\"manga_info_expand\">Selengkapnya</string>\n    <string name=\"in_library\">Di pustaka</string>\n    <string name=\"add_to_library\">Tambahkan ke pustaka</string>\n    <string name=\"licenses\">Lisensi terbuka</string>\n    <string name=\"restoring_backup_error\">Gagal memulihkan data dari cadangan</string>\n    <string name=\"creating_backup_error\">Pencadangan data gagal</string>\n    <string name=\"pref_webtoon_side_padding\">Pinggiran samping</string>\n    <string name=\"pref_skip_filtered_chapters\">Lewati bab yang difilter</string>\n    <string name=\"action_unpin\">Hilangkan tanda</string>\n    <string name=\"action_pin\">Tandai</string>\n    <string name=\"action_select_inverse\">Pilih kebalikan</string>\n    <string name=\"label_downloaded_only\">Hanya yang sudah diunduh</string>\n    <string name=\"pinned_sources\">Tersemat</string>\n    <string name=\"website\">Situs web</string>\n    <string name=\"vertical_plus_viewer\">Strip panjang dengan celah</string>\n    <string name=\"local_source_help_guide\">Petunjuk sumber lokal</string>\n    <string name=\"last_used_source\">Terakhir digunakan</string>\n    <string name=\"downloaded_only_summary\">Saring semua entri di perpustakaan Anda</string>\n    <string name=\"check_for_updates\">Periksa pembaruan</string>\n    <string name=\"restoring_backup_canceled\">Pemulihan dibatalkan</string>\n    <string name=\"restore_in_progress\">Pemulihan masih dalam proses</string>\n    <string name=\"backup_in_progress\">Pencadangan masih dalam proses</string>\n    <string name=\"restore_duration\">%1$02d menit, %2$02d detik</string>\n    <string name=\"viewer\">Mode membaca</string>\n    <string name=\"gray_background\">Abu-abu</string>\n    <string name=\"pref_category_for_this_series\">Untuk seri ini</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Tidak dapat membuka pengaturan perangkat</string>\n    <string name=\"pref_refresh_library_covers\">Muat ulang sampul pustaka</string>\n    <string name=\"tracking_info\">Sinkronisasi satu arah untuk memperbarui kemajuan bab di layanan pelacak eksternal. Siapkan pelacakan untuk setiap entri dari tombol pelacaknya.</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Periksa sampul dan detail baru saat memperbarui pustaka</string>\n    <string name=\"pref_library_update_refresh_metadata\">Segarkan metadata secara otomatis</string>\n    <string name=\"action_migrate\">Pindah</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"backup_restore_missing_sources\">Sumber yang hilang:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Cadangan tidak berisi entri perpustakaan apa pun.</string>\n    <string name=\"invalid_backup_file\">File cadangan tidak valid:</string>\n    <string name=\"sort_by_upload_date\">Menurut tanggal pengunggahan</string>\n    <string name=\"action_display_comfortable_grid\">Grid nyaman</string>\n    <string name=\"tabs_header\">Tab</string>\n    <string name=\"action_display_show_tabs\">Tampilkan tab kategori</string>\n    <string name=\"page_list_empty_error\">Halaman tidak ditemukan</string>\n    <string name=\"action_disable_all\">Nonaktifkan semua</string>\n    <string name=\"action_enable_all\">Aktifkan semua</string>\n    <string name=\"pref_show_reading_mode_summary\">Perlihatkan mode saat ini secara singkat saat pembaca dibuka</string>\n    <string name=\"pref_show_reading_mode\">Tampilkan mode membaca</string>\n    <string name=\"action_start\">Mulai</string>\n    <string name=\"loader_not_implemented_error\">Sumber tidak ditemukan</string>\n    <string name=\"requires_app_restart\">Mulai ulang aplikasi untuk menerapkan pengaturan</string>\n    <string name=\"label_network\">Jaringan</string>\n    <string name=\"action_disable\">Nonaktif</string>\n    <string name=\"tapping_inverted_both\">Keduanya</string>\n    <string name=\"tapping_inverted_vertical\">Tegak</string>\n    <string name=\"tapping_inverted_horizontal\">Mendatar</string>\n    <string name=\"tapping_inverted_none\">Tidak</string>\n    <string name=\"pref_read_with_tapping_inverted\">Balikkan zona ketuk</string>\n    <string name=\"unknown_status\">Status tidak diketahui</string>\n    <string name=\"unknown_author\">Penulis tidak diketahui</string>\n    <string name=\"updated_version\">Diperbarui ke v%1$s</string>\n    <string name=\"whats_new\">Apa yang baru</string>\n    <string name=\"download_insufficient_space\">Tidak dapat mengunduh bab karena ruang penyimpanan rendah</string>\n    <string name=\"action_global_search_query\">Pencarian untuk \\\"%1$s\\\" secara global</string>\n    <string name=\"pref_category_reading_mode\">Mode membaca</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Tanggal ditambahkan</string>\n    <string name=\"no_pinned_sources\">Anda tidak memiliki sumber yang disematkan</string>\n    <string name=\"channel_complete\">Lengkap</string>\n    <string name=\"channel_progress\">Kemajuan</string>\n    <string name=\"channel_errors\">Masalah</string>\n    <string name=\"backup_restore_missing_trackers\">Pelacakan tidak tersinkronisasi di:</string>\n    <string name=\"ext_nsfw_warning\">Sumber dari ekstensi ini mungkin berisi konten DEWASA (NSFW 18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Hapus bab yang ditandai</string>\n    <string name=\"pref_category_delete_chapters\">Hapus chapter</string>\n    <string name=\"parental_controls_info\">Hal ini tidak mencegah ekstensi non-resmi atau konten DEWASA (NSFW 18+) yang tidak ditandai dengan benar muncul di dalam aplikasi.</string>\n    <string name=\"no_chapters_error\">Tidak ada bab yang ditemukan</string>\n    <string name=\"chapter_settings_updated\">Pengaturan bab bawaan diperbarui</string>\n    <string name=\"set_chapter_settings_as_default\">Terapkan sebagai bawaan</string>\n    <string name=\"also_set_chapter_settings_for_library\">Terapkan pula untuk semua entri di pustaka saya</string>\n    <string name=\"confirm_set_chapter_settings\">Apakah anda yakin ingin menyimpan pengaturan ini sebagai bawaan?</string>\n    <string name=\"chapter_settings\">Pengaturan bab</string>\n    <string name=\"share_page_info\">%1$s: %2$s, halaman %3$d</string>\n    <string name=\"action_search_settings\">Cari pengaturan</string>\n    <string name=\"downloaded_chapters\">Bab terunduh</string>\n    <string name=\"manga_from_library\">Dari pustaka</string>\n    <string name=\"pref_incognito_mode_summary\">Jeda riwayat membaca</string>\n    <string name=\"pref_incognito_mode\">Mode penyamaran</string>\n    <string name=\"pref_clear_history\">Hapus riwayat</string>\n    <string name=\"clear_history_confirmation\">Apakah anda yakin? Semua riwayat akan terhapus.</string>\n    <string name=\"clear_history_completed\">Riwayat telah dihapus</string>\n    <string name=\"pref_category_nsfw_content\">Sumber NSFW (18+)</string>\n    <string name=\"spen_next_page\">Halaman selanjutnya</string>\n    <string name=\"spen_previous_page\">Halaman sebelumnya</string>\n    <string name=\"migration_help_guide\">Petunjuk migrasi</string>\n    <string name=\"file_picker_error\">Tidak ada aplikasi pemilih berkas yang ditemukan</string>\n    <string name=\"myanimelist_relogin\">Harap login kembali ke MAL</string>\n    <string name=\"pref_show_nsfw_source\">Tampilkan di daftar sumber dan ekstensi</string>\n    <string name=\"edge_nav\">Tepi</string>\n    <string name=\"l_nav\">Bentuk L</string>\n    <string name=\"action_desc\">Urutan turun</string>\n    <string name=\"action_asc\">Urutan naik</string>\n    <string name=\"action_order_by_chapter_number\">Menurut nomor bab</string>\n    <string name=\"action_order_by_upload_date\">Menurut tanggal unggahan</string>\n    <string name=\"action_filter_tracked\">Dilacak</string>\n    <string name=\"pref_dump_crash_logs\">Bagikan log kerusakan</string>\n    <string name=\"track_finished_reading_date\">Tanggal selesai</string>\n    <string name=\"track_started_reading_date\">Tanggal mulai</string>\n    <string name=\"pref_dump_crash_logs_summary\">Simpan log kerusakan ke sebuah berkas untuk dibagikan dengan pengembang aplikasi</string>\n    <string name=\"pref_viewer_nav\">Zona ketuk</string>\n    <string name=\"right_and_left_nav\">Kanan dan Kiri</string>\n    <string name=\"action_display_show_number_of_items\">Tampilkan jumlah item</string>\n    <string name=\"none\">Kosong</string>\n    <string name=\"action_show_errors\">Ketuk untuk melihat detail</string>\n    <string name=\"action_sort_chapter_fetch_date\">Tanggal bab dimasukkan</string>\n    <string name=\"pref_reader_actions\">Aksi</string>\n    <string name=\"nav_zone_right\">Kanan</string>\n    <string name=\"nav_zone_left\">Kiri</string>\n    <string name=\"nav_zone_next\">Lanjut</string>\n    <string name=\"nav_zone_prev\">Sebelum</string>\n    <string name=\"automatic_background\">Otomatis</string>\n    <string name=\"pref_create_folder_per_manga\">Menyimpan halaman ke dalam folder terpisah</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Membuat folder menurut judul entri</string>\n    <string name=\"exclude\">Kecuali: %s</string>\n    <string name=\"include\">Termasuk: %s</string>\n    <string name=\"pref_dual_page_split\">Membagi halaman lebar</string>\n    <string name=\"cancel_all_for_series\">Batal semua untuk seri ini</string>\n    <string name=\"update_check_eol\">Versi Android ini tidak lagi didukung</string>\n    <string name=\"clipboard_copy_error\">Gagal menyalin ke papan klip</string>\n    <string name=\"pref_dns_over_https\">DNS melalui HTTPS (DoH)</string>\n    <string name=\"kindlish_nav\">semacam Kindle</string>\n    <string name=\"pref_category_auto_download\">Unduh otomatis</string>\n    <string name=\"backup_restore_content_full\">Anda mungkin perlu memasang ulang ekstensi yang hilang dan log in ke layanan pelacakan setelahnya untuk menggunakannya.</string>\n    <string name=\"notification_incognito_text\">Matikan mode penyamaran</string>\n    <string name=\"source_unsupported\">Sumber tidak didukung</string>\n    <string name=\"error_no_match\">Tidak ditemukan kecocokan</string>\n    <string name=\"unread\">Belum dibaca</string>\n    <string name=\"rotation_landscape\">Layar mendatar</string>\n    <string name=\"rotation_portrait\">Layar Tegak</string>\n    <string name=\"pref_download_new_categories_details\">Entri dalam kategori yang dikecualikan tidak akan diunduh meskipun mereka juga termasuk dalam kategori yang disertakan.</string>\n    <string name=\"rotation_type\">Rotasi</string>\n    <string name=\"pref_grayscale\">Skala abu-abu</string>\n    <string name=\"pref_show_navigation_mode\">Tampilkan zona ketukan</string>\n    <string name=\"pref_library_update_categories_details\">Entri dalam kategori yang dikecualikan tidak akan diperbarui meskipun mereka juga termasuk dalam kategori yang disertakan.</string>\n    <string name=\"date\">Tanggal</string>\n    <string name=\"local_filter_order_by\">Urutkan menurut</string>\n    <string name=\"local_invalid_format\">Format bab tidak valid</string>\n    <string name=\"chapter_not_found\">Bab tak ditemukan</string>\n    <string name=\"pref_dual_page_invert_summary\">Jika penempatan halaman lebar terpisah tidak sesuai dengan arah membaca</string>\n    <string name=\"pref_dual_page_invert\">Balikkan penempatan halaman pemisah</string>\n    <string name=\"pref_show_navigation_mode_summary\">Tunjukkan secara singkat saat pembaca dibuka</string>\n    <string name=\"restrictions\">Batasan: %s</string>\n    <string name=\"action_display_local_badge\">Sumber lokal</string>\n    <string name=\"error_sharing_cover\">Gagal berbagi sampul</string>\n    <string name=\"error_saving_cover\">Gagal menyimpan sampul</string>\n    <string name=\"cover_saved\">Sampul disimpan</string>\n    <string name=\"manga_cover\">Sampul</string>\n    <string name=\"off\">Matikan</string>\n    <string name=\"on\">Aktif</string>\n    <string name=\"tracking_guide\">Panduan pelacakan</string>\n    <string name=\"categorized_display_settings\">Pengaturan per-kategori untuk urutan</string>\n    <string name=\"information_empty_category_dialog\">Anda belum memiliki kategori apapun.</string>\n    <string name=\"action_start_downloading_now\">Mulai mengunduh sekarang</string>\n    <string name=\"about_dont_kill_my_app\">Beberapa pabrikan mempunyai batasan aplikasi tambahan yang mematikan layanan latar belakang. Website ini memiliki info lebih lanjut untuk memperbaikinya.</string>\n    <string name=\"restore_miui_warning\">Pencadangan/pemulihan mungkin tidak berfungsi jika Optimisasi MIUI dimatikan.</string>\n    <string name=\"enhanced_tracking_info\">Menyediakan fitur yang disempurnakan untuk sumber tertentu. Entri secara otomatis dilacak ketika ditambahkan ke perpustakaan Anda.</string>\n    <string name=\"enhanced_services\">Pelacak yang ditingkatkan</string>\n    <string name=\"pref_dark_theme_pure_black\">Mode gelap hitam pekat</string>\n    <string name=\"theme_yotsuba\">Empat Daun</string>\n    <string name=\"theme_yinyang\">Yin dan Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Stroberi Daiquiri</string>\n    <string name=\"theme_midnightdusk\">Senja Tengah Malam</string>\n    <string name=\"theme_greenapple\">Hijau Apel</string>\n    <string name=\"theme_monet\">Dinamis</string>\n    <string name=\"pref_app_theme\">Tema aplikasi</string>\n    <string name=\"label_background_activity\">Aktivitas latar belakang</string>\n    <string name=\"pref_lowest\">Terendah</string>\n    <string name=\"pref_low\">Rendah</string>\n    <string name=\"pref_hide_threshold\">Sensitivitas untuk menyembunyikan menu dalam gulir</string>\n    <string name=\"pref_high\">Tinggi</string>\n    <string name=\"pref_highest\">Tertinggi</string>\n    <string name=\"pref_inverted_colors\">Terbalik</string>\n    <string name=\"relative_time_today\">Hari Ini</string>\n    <string name=\"getting_started_guide\">Panduan awal mulai</string>\n    <string name=\"action_track\">Lacak</string>\n    <string name=\"theme_tealturquoise\">Teal &amp; Pirus</string>\n    <string name=\"pref_category_appearance\">Tampilan</string>\n    <string name=\"confirm_lock_change\">Autentikasi untuk mengonfirmasi perubahan</string>\n    <string name=\"label_default\">Bawaan</string>\n    <string name=\"pref_remove_exclude_categories\">Kategori yang dikecualikan</string>\n    <string name=\"help_translate\">Bantu terjemahkan</string>\n    <string name=\"pref_tablet_ui_mode\">UI tablet</string>\n    <string name=\"ext_app_info\">Informasi aplikasi</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku tidak berjalan</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Pasang dan mulai Shizuku untuk menggunakan Shizuku sebagai pemasang ekstensi.</string>\n    <string name=\"ext_install_service_notif\">Memasang ekstensi…</string>\n    <string name=\"ext_installer_legacy\">Warisan</string>\n    <string name=\"ext_installer_pref\">Pemasang</string>\n    <string name=\"action_sort_count\">Total entri</string>\n    <string name=\"notification_size_warning\">Pembaruan berskala besar membahayakan sumber, dapat membuat pembaruan lambat dan meningkatkan penggunaan baterai. Ketuk untuk mempelajari lebih lanjut.</string>\n    <string name=\"download_queue_size_warning\">Peringatan: mengunduh dalam jumlah besar bisa menyebabkan sumber menjadi lambat dan/atau memblokir %s. Ketuk untuk mempelajari lebih lanjut.</string>\n    <string name=\"label_warning\">Peringatan</string>\n    <string name=\"pref_verbose_logging_summary\">Cetak catatan berlebih ke catatan sistem (mengurangi kinerja aplikasi)</string>\n    <string name=\"backup_info\">Anda juga harus menyimpan salinan cadangan di tempat lain. Cadangan mungkin berisi data sensitif termasuk kata sandi yang tersimpan; berhati-hatilah jika berbagi.</string>\n    <string name=\"pref_verbose_logging\">Pencatatan berlebihan</string>\n    <string name=\"pref_custom_color_filter\">Filter warna kustom</string>\n    <string name=\"pref_custom_brightness\">Atur kecerahan</string>\n    <string name=\"action_display_language_badge\">Bahasa</string>\n    <string name=\"update_72hour\">Tiap 3 hari</string>\n    <string name=\"connected_to_wifi\">Hanya pada Wi-FI</string>\n    <string name=\"channel_app_updates\">Pembaruan aplikasi</string>\n    <string name=\"ext_update_all\">Perbarui semuanya</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Bersihkan cache bab saat aplikasi dibuka</string>\n    <string name=\"database_clean\">Tidak ada yang perlu dibersihkan</string>\n    <string name=\"clear_database_source_item_count\">%1$d entri non-perpustakaan dalam database</string>\n    <string name=\"extension_api_error\">Gagal mendapatkan ekstensi yang tersedia</string>\n    <string name=\"pref_update_only_completely_read\">Lewati daftar dengan chapter yang belum dibaca</string>\n    <string name=\"privacy_policy\">Kebijakan privasi</string>\n    <string name=\"publishing_finished\">Penerbitan selesai</string>\n    <string name=\"cancelled\">Dibatalkan</string>\n    <string name=\"on_hiatus\">Sedang Hiatus</string>\n    <string name=\"library_errors_help\">Untuk bantuan cara memperbaiki kesalahan pembaruan pustaka, lihat %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Simpan sebagai arsip CBZ</string>\n    <string name=\"action_show_manga\">Lihat entri</string>\n    <string name=\"action_display_cover_only_grid\">Grid sampul saja</string>\n    <string name=\"pref_update_only_started\">Lewati dafter yang belum mulai dibaca</string>\n    <string name=\"skipped_reason_completed\">Dilewati karena seri telah selesai</string>\n    <string name=\"skipped_reason_not_caught_up\">Dilewati karena ada bab yang belum dibaca</string>\n    <string name=\"skipped_reason_not_started\">Dilewati karena tidak ada bab yang dibaca</string>\n    <string name=\"pref_landscape_zoom\">Secara otomatis melebarkan gambar</string>\n    <string name=\"pref_navigate_pan\">Geser gambar lebar</string>\n    <string name=\"learn_more\">Pelajari lebih lanjut</string>\n    <string name=\"rotation_reverse_portrait\">Layar tegak terbalik</string>\n    <string name=\"notification_update_error\">%1$d pembaruan gagal</string>\n    <string name=\"action_move_to_top_all_for_series\">Pindahkan seri ke atas</string>\n    <string name=\"disabled_nav\">Dinonaktifkan</string>\n    <string name=\"error_saving_picture\">Gagal menyimpan gambar</string>\n    <string name=\"empty_backup_error\">Tidak ada entri perpustakaan untuk dicadangkan</string>\n    <string name=\"update_check_open\">Buka di Github</string>\n    <string name=\"pref_clear_webview_data\">Membersihkan data WebView</string>\n    <string name=\"webview_data_deleted\">Data WebView telah dibersihkan</string>\n    <string name=\"action_close\">Tutup</string>\n    <string name=\"source_filter_empty_screen\">Sumber yang diinstal tidak ditemukan</string>\n    <string name=\"source_empty_screen\">Tidak ada sumber yang ditemukan</string>\n    <string name=\"action_sort_last_manga_update\">Pembaruan terakhir</string>\n    <string name=\"action_sort_unread_count\">Jumlah belum dibaca</string>\n    <string name=\"split_tall_images_summary\">Meningkatkan kinerja pembaca</string>\n    <string name=\"download_notifier_split_page_not_found\">Halaman %d tidak ditemukan saat dipisah</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Tidak dapat menemukan jalur file halaman %d</string>\n    <string name=\"pref_reset_viewer_flags_success\">Atur ulang semua pengaturan pengguna</string>\n    <string name=\"pref_reset_viewer_flags\">Muat ulang pengaturan per-pengguna</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Atur ulang mode dan orientasi dari semua seri</string>\n    <string name=\"empty_screen\">Yah, ini aneh</string>\n    <string name=\"pref_reset_viewer_flags_error\">Tidak bisa mengatur ulang setelan pembaca</string>\n    <string name=\"ext_info_version\">Versi</string>\n    <string name=\"ext_info_language\">Bahasa</string>\n    <string name=\"ext_info_age_rating\">Rating Umur</string>\n    <string name=\"reading_list\">Daftar Bacaan</string>\n    <string name=\"unfinished_list\">Daftar Yang Belum Selesai</string>\n    <string name=\"wish_list\">Daftar Keinginan</string>\n    <string name=\"complete_list\">Daftar Selesai</string>\n    <string name=\"on_hold_list\">Daftar Tertahan</string>\n    <string name=\"network_not_metered\">Hanya di jaringan tanpa batasan</string>\n    <string name=\"cant_open_last_read_chapter\">Gagal membuka bab terakhir dibaca</string>\n    <string name=\"custom_cover\">Sampul kustom</string>\n    <string name=\"not_installed\">Tidak terinstall</string>\n    <string name=\"pref_app_language\">Bahasa aplikasi</string>\n    <string name=\"theme_lavender\">Bunga Lavender</string>\n    <string name=\"description_placeholder\">Tidak ada deskripsi</string>\n    <string name=\"delete_category_confirmation\">Apakah anda ingin menghapus kategori \\\"%s\\\"?</string>\n    <string name=\"internal_error\">InternalError: Periksa log kerusakan untuk informasi lebih lanjut</string>\n    <string name=\"delete_category\">Hapus kategori</string>\n    <string name=\"pref_user_agent_string\">String agen pengguna default</string>\n    <string name=\"pref_reset_user_agent_string\">Setel ulang string agen pengguna default</string>\n    <string name=\"action_remove_everything\">Hapus semua</string>\n    <string name=\"appwidget_updates_description\">Lihat entri pustaka Anda yang baru saja diperbarui</string>\n    <string name=\"appwidget_unavailable_locked\">Widget tidak tersedia saat kunci aplikasi diaktifkan</string>\n    <string name=\"update_already_running\">Pembaruan sudah berjalan</string>\n    <string name=\"error_user_agent_string_blank\">String agen pengguna wajib diisi</string>\n    <string name=\"theme_tidalwave\">Gelombang Pasang</string>\n    <string name=\"download_ahead\">Unduh di depan</string>\n    <string name=\"auto_download_while_reading\">Unduh otomatis ketika sedang membaca</string>\n    <string name=\"download_ahead_info\">Hanya berfungsi jika bab saat ini + bab berikutnya sudah diunduh.</string>\n    <string name=\"remove_manga\">Kamu akan menghapus \\\"%s\\\" dari pustaka</string>\n    <string name=\"updates_last_update_info\">Pustaka terakhir diperbarui: %s</string>\n    <string name=\"multi_lang\">Semua</string>\n    <string name=\"are_you_sure\">Apa kamu yakin?</string>\n    <string name=\"popular\">Populer</string>\n    <string name=\"missing_storage_permission\">Izin penyimpanan tidak diberikan</string>\n    <string name=\"skipped_reason_not_always_update\">Dilewati karena seri ini tidak memerlukan pembaruan</string>\n    <string name=\"action_search_hint\">Cari…</string>\n    <string name=\"pref_browse_summary\">Sumber, ekstensi, pencarian global</string>\n    <string name=\"pref_reader_summary\">Mode membaca, tampilan, navigasi</string>\n    <string name=\"pref_tracking_summary\">Sinkronisasi progres searah, sinkronisasi yang ditingkatkan</string>\n    <string name=\"crash_screen_description\">%s mengalami kesalahan tak terduga. Kami menyarankan Anda membagi log kerusakan di saluran dukungan kami di Discord.</string>\n    <string name=\"pref_downloads_summary\">Unduh otomatis, unduh terlebih dahulu</string>\n    <string name=\"pref_security_summary\">Kunci aplikasi, amankan layar</string>\n    <string name=\"pref_appearance_summary\">Tema, format tanggal &amp; waktu</string>\n    <string name=\"pref_library_summary\">Kategori, pembaruan global, geser chapter</string>\n    <string name=\"pref_backup_summary\">Pencadangan manual &amp; otomatis, ruang penyimpanan</string>\n    <string name=\"pref_advanced_summary\">Buat log kerusakan, pengoptimalan baterai</string>\n    <string name=\"crash_screen_title\">Aduh!</string>\n    <string name=\"crash_screen_restart_application\">Mulai ulang aplikasi</string>\n    <string name=\"invalid_location\">Lokasi tidak valid: %s</string>\n    <string name=\"unknown_title\">Judul tidak diketahui</string>\n    <string name=\"error_user_agent_string_invalid\">String agen pengguna tidak valid</string>\n    <string name=\"updates_last_update_info_just_now\">Baru saja</string>\n    <string name=\"action_open_random_manga\">Buka entri acak</string>\n    <string name=\"download_notifier_cache_renewal\">Memeriksa unduhan</string>\n    <string name=\"information_no_entries_found\">Tidak ada entri yang ditemukan dalam kategori ini</string>\n    <string name=\"fdroid_warning\">Build F-Droid tidak didukung secara resmi.\n\\n Ketuk untuk mempelajari lebih lanjut.</string>\n    <string name=\"action_display_show_continue_reading_button\">Tombol lanjutkan membaca</string>\n    <string name=\"track_remove_date_conf_title\">Hapus tanggal?</string>\n    <string name=\"pref_invalidate_download_cache\">Mengindeks ulang unduhan</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Paksa aplikasi untuk mengecek ulang bab ter-unduh</string>\n    <string name=\"track_remove_start_date_conf_text\">Ini akan menghapus tanggal mulai yang Anda pilih sebelumnya dari %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Ini akan menghapus tanggal selesai yang Anda pilih sebelumnya dari %s</string>\n    <string name=\"label_stats\">Statistik</string>\n    <string name=\"label_titles_section\">Entri</string>\n    <string name=\"label_titles_in_global_update\">Dalam pembaruan global</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_read_chapters\">Baca</string>\n    <string name=\"label_mean_score\">Rata-rata nilai</string>\n    <string name=\"label_used\">Telah digunakan</string>\n    <string name=\"hour_short\">%djam</string>\n    <string name=\"label_started\">Dimulai</string>\n    <string name=\"label_local\">Lokal</string>\n    <string name=\"label_downloaded\">Terunduh</string>\n    <string name=\"label_read_duration\">Durasi baca</string>\n    <string name=\"label_tracker_section\">Pelacak</string>\n    <string name=\"label_tracked_titles\">Entri yang dilacak</string>\n    <string name=\"seconds_short\">%ddetik</string>\n    <string name=\"minute_short\">%dmenit</string>\n    <string name=\"label_overview_section\">Ringkasan</string>\n    <string name=\"label_completed_titles\">Entri selesai</string>\n    <string name=\"not_applicable\">Tidak tersedia</string>\n    <string name=\"day_short\">%dhari</string>\n    <string name=\"action_not_now\">Nanti</string>\n    <string name=\"pref_library_update_show_tab_badge\">Tampilkan jumlah yang belum dibaca pada ikon Pembaruan</string>\n    <string name=\"information_no_manga_category\">Kategori ini kosong</string>\n    <string name=\"copied_to_clipboard_plain\">Tersalin di papan klip</string>\n    <string name=\"enhanced_services_not_installed\">Tersedia tetapi sumber tidak terpasang: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Melewati bab terduplikasi</string>\n    <string name=\"track_error\">%1$s eror: %2$s</string>\n    <string name=\"information_required_plain\">*dibutuhkan</string>\n    <string name=\"pref_hide_in_library_items\">Semua catatan tersembunyi sudah ada di perpustakaan</string>\n    <string name=\"action_copy_to_clipboard\">Salin ke papan klip</string>\n    <string name=\"action_update_category\">Perbarui kategori</string>\n    <string name=\"split_tall_images\">Potong gambar tinggi</string>\n    <string name=\"overlay_header\">Lapisan awal</string>\n    <string name=\"pref_page_rotate\">Memutar halaman lebar agar pas</string>\n    <string name=\"pref_page_rotate_invert\">Orientasi balik halaman lebar yang diputar</string>\n    <string name=\"pref_debug_info\">Info debug</string>\n    <string name=\"pref_chapter_swipe_end\">Bab tentang geser ke kanan</string>\n    <string name=\"pref_chapter_swipe_start\">Bab tentang geser ke kiri</string>\n    <string name=\"pref_double_tap_zoom\">Ketuk dua kali untuk memperbesar</string>\n    <string name=\"action_set_interval\">Terapkan jeda waktu</string>\n    <string name=\"action_filter_interval_custom\">Penyesuaian frekuensi update</string>\n    <string name=\"skipped_reason_not_in_release_period\">Dilewati karena tidak ada rilis yang diharapkan hari ini</string>\n    <string name=\"action_sort_next_updated\">Pembaruan yang diharapkan berikutnya</string>\n    <string name=\"intervals_header\">Interval</string>\n    <string name=\"pref_update_only_in_release_period\">Prediksikan waktu rilis selanjutnya</string>\n    <string name=\"manga_display_interval_title\">Perkirakan setiap</string>\n    <string name=\"manga_display_modified_interval_title\">Atur untuk memperbarui setiap</string>\n    <string name=\"track_delete_title\">Hapus %s pelacakan?</string>\n    <string name=\"action_ok\">Oke</string>\n    <string name=\"track_delete_text\">Ini akan menghapus pelacakan lokal.</string>\n    <string name=\"track_delete_remote_text\">Hapus juga dari %s</string>\n    <string name=\"delete_downloaded\">Hapus unduhan</string>\n    <string name=\"has_results\">Memiliki hasil</string>\n    <string name=\"syncing_library\">Sinkronisasi pustaka</string>\n    <string name=\"library_sync_complete\">Sinkronisasi pustaka selesai</string>\n    <string name=\"information_cloudflare_help\">Ketuk di sini untuk bantuan dengan Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Membuat ulang indeks unduhan</string>\n    <string name=\"track_activity_name\">Pelacak login</string>\n    <string name=\"create_backup_file_error\">Tidak dapat membuat file cadangan</string>\n    <string name=\"unlock_app_title\">Buka kunci %s</string>\n    <string name=\"exception_offline\">Tidak ada koneksi Internet</string>\n    <string name=\"exception_http\">HTTP %d, periksa situs web di WebView</string>\n    <string name=\"exception_unknown_host\">Tidak dapat mencapai %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Pindahkan seri ke bawah</string>\n    <string name=\"pref_relative_format\">Penanda waktu</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" seharusnya \\\"%2$s\\\"</string>\n    <string name=\"notification_updating_progress\">Memperbarui pustaka... (%s)</string>\n    <string name=\"file_null_uri_error\">Tidak ada file yang dipilih</string>\n    <string name=\"source_settings\">Pengaturan sumber</string>\n    <string name=\"app_settings\">Pengaturan aplikasi</string>\n    <string name=\"action_create\">Buat</string>\n    <string name=\"relative_time_span_never\">Tidak pernah</string>\n    <string name=\"pref_flash_page_summ\">Mengurangi ghosting pada tampilan e-ink</string>\n    <string name=\"action_apply\">Terapkan</string>\n    <string name=\"action_revert_to_default\">Kembalikan ke default</string>\n    <string name=\"last_auto_backup_info\">Terakhir dicadangkan secara otomatis: %s</string>\n    <string name=\"no_scanlators_found\">Tidak ditemukan pemindai</string>\n    <string name=\"scanlator\">Pemindai</string>\n    <string name=\"pref_flash_page\">Perlihatkan kilatan saat halaman berubah</string>\n    <string name=\"pref_storage_usage\">Penggunaan penyimpanan</string>\n    <string name=\"action_sort_tracker_score\">Skor pelacak</string>\n    <string name=\"label_data_storage\">Data dan penyimpanan</string>\n    <string name=\"exclude_scanlators\">Kecualikan pemindai</string>\n    <string name=\"action_menu_overflow_description\">Opsi lainnya</string>\n    <string name=\"selected\">Dipilih</string>\n    <string name=\"not_selected\">Tidak dipilih</string>\n    <string name=\"action_bar_up_description\">Navigasi ke atas</string>\n    <string name=\"pref_storage_location\">Lokasi penyimpanan</string>\n    <string name=\"pref_storage_location_info\">Digunakan untuk pencadangan otomatis, pengunduhan bab, dan sumber lokal.</string>\n    <string name=\"onboarding_storage_action_select\">Pilih direktori</string>\n    <string name=\"pref_onboarding_guide\">Panduan awal</string>\n    <string name=\"onboarding_guides_new_user\">Baru mengenal %s? Kami menyarankan Anda membaca panduan awal.</string>\n    <string name=\"onboarding_action_finish\">Selesai</string>\n    <string name=\"onboarding_storage_selection_required\">Harap pilih direktori terlebih dahulu</string>\n    <string name=\"onboarding_permission_notifications\">Izin notifikasi</string>\n    <string name=\"onboarding_permission_install_apps\">Izin pasang aplikasi</string>\n    <string name=\"onboarding_heading\">Selamat Datang!</string>\n    <string name=\"onboarding_guides_returning_user\">Install ulang %s?</string>\n    <string name=\"onboarding_action_skip\">Lewati</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Hindari gangguan pada pembaruan pustaka, pengunduhan, dan pemulihan cadangan yang berlangsung lama.</string>\n    <string name=\"onboarding_action_next\">Selanjutnya</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Penggunaan baterai di latar belakang</string>\n    <string name=\"onboarding_permission_install_apps_description\">Untuk memasang ekstensi.</string>\n    <string name=\"onboarding_description\">Mari kita atur beberapa hal terlebih dahulu. Anda juga selalu dapat mengubahnya di menu pengaturan nanti.</string>\n    <string name=\"no_location_set\">Lokasi penyimpanan belum ditentukan</string>\n    <string name=\"onboarding_permission_notifications_description\">Dapatkan notifikasi untuk pembaruan pustaka dan sebagainya.</string>\n    <string name=\"onboarding_permission_action_grant\">Izinkan</string>\n    <string name=\"onboarding_storage_info\">Pilih direktori untuk menyimpan konten dari %1$s, termasuk unduhan chapter, data backup, dan lainnya.\n\\n\n\\nSebaiknya menggunakan direktori terpisah.\n\\n\n\\nDirektori yang dipilih: %2$s</string>\n    <string name=\"onboarding_storage_help_action\">Panduan penyimpanan</string>\n    <string name=\"pref_library_update_smart_update\">Pembauan pintar</string>\n    <string name=\"onboarding_storage_help_info\">Memperbarui dari versi lama dan tak yakin harus pilih mana? lihat panduan penyimpanan untuk informasi lebih lanjut.</string>\n    <string name=\"action_add_repo\">Tambahkan repo</string>\n    <string name=\"action_add_repo_message\">Tambahkan repo lain ke %s. Seharusnya URL yang memiliki akhiran \\\"index.min.json\\\".</string>\n    <string name=\"label_extension_repos\">Repositori ekstensi</string>\n    <string name=\"information_empty_repos\">Anda tidak memiliki repositori yang ditetapkan.</string>\n    <string name=\"invalid_backup_file_error\">Kesalahan penuh:</string>\n    <string name=\"error_repo_exists\">Repositori ini sudah ada!</string>\n    <string name=\"label_add_repo_input\">URL Repo</string>\n    <string name=\"invalid_repo_name\">URL repo tidak valid</string>\n    <string name=\"private_settings\">Sertakan pengaturan sensitif (contohnya, token login pelacak)</string>\n    <string name=\"ext_permission_install_apps_warning\">Izin diperlukan untuk memasang ekstensi. Klik disini untuk memberi izin.</string>\n    <string name=\"action_delete_repo\">Hapus repo</string>\n    <string name=\"delete_repo_confirmation\">Apa Anda yakin ingin menghapus repo \\\"%s\\\"?</string>\n    <string name=\"manga_interval_expected_update\">Bab baru diperkirakan akan dirils sekitar %1$s, diperiksa setiap sekitar %2$s.</string>\n    <string name=\"available_disk_space_info\">Tersedia:%1$s/Total:%2$s</string>\n    <string name=\"manga_interval_custom_amount\">Frekuensi pembaruan khusus:</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"manga_interval_expected_update_soon\">Segera</string>\n    <string name=\"ext_revoke_trust\">Cabut izin ekstensi tidak dikenal yang tepercaya</string>\n    <string name=\"action_open_repo\">Repo sumber terbuka</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Menonaktifkan zoom out</string>\n    <string name=\"label_upcoming\">Yang akan datang</string>\n    <string name=\"action_replace_repo_message\">Repositori %1$s memiliki Signing Key Fingerprint yang sama dengan %2$s.\n\\nJika hal ini diharapkan, %2$s akan diganti, jika tidak, hubungi pengelola repo Anda.</string>\n    <string name=\"action_add_anyway\">Tambahkan saja</string>\n    <string name=\"pref_display_profile\">Profil tampilan khusus</string>\n    <string name=\"action_replace_repo\">Ganti</string>\n    <string name=\"action_replace_repo_title\">Signing Key Fingerprint sudah ada</string>\n    <string name=\"action_view_upcoming\">Lihat Pembaruan Mendatang</string>\n    <string name=\"upcoming_guide\">Panduan Mendatang</string>\n    <string name=\"upcoming_calendar_next\">Bulan Depan</string>\n    <string name=\"upcoming_calendar_prev\">Bulan Kemarin</string>\n    <string name=\"manga_interval_expected_update_null\">Manga ini sudah selesai, atau belum ada tanggal rilis yang diperkirakan.</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Gagal mendapatkan akses folder yang terus-menerus. Aplikasi mungkin berperilaku tak terduga.</string>\n    <string name=\"pref_flash_duration\">Durasi lampu kilat</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flash setiap</string>\n    <string name=\"pref_flash_with\">Flash dengan</string>\n    <string name=\"pref_flash_style_black\">Hitam</string>\n    <string name=\"pref_flash_style_white\">Putih</string>\n    <string name=\"pref_flash_style_white_black\">Hitam Putih</string>\n    <string name=\"action_copy_link\">Salin link</string>\n    <string name=\"extensionRepo_settings\">Ekstensi Penyimpanan</string>\n    <string name=\"invalid_backup_file_json\">Pencadangan JSON tidak didukung</string>\n    <string name=\"invalid_backup_file_unknown\">File cadangan rusak</string>\n    <string name=\"add_repo_confirmation\">Apakah Anda ingin menambahkan repo \\\"%s\\\"?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Lewati pengunduhan bagian yang sudah dibaca berulang kali</string>\n    <string name=\"confirm_tracker_update\">Perbarui pelacak ke bab %d?</string>\n    <string name=\"action_sort_random\">Acak</string>\n    <string name=\"onboarding_permission_crashlytics\">Kirim log kerusakan</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Kirim catatan kerusakan yang anonim ke pengembang.</string>\n    <string name=\"onboarding_permission_analytics\">Izinkan analitik</string>\n    <string name=\"onboarding_permission_analytics_description\">Kirim data penggunaan anonim untuk meningkatkan fitur aplikasi.</string>\n    <string name=\"pref_firebase\">Analisis dan Log Kerusakan</string>\n    <string name=\"firebase_summary\">Mengirim log kerusakan dan analitik akan memungkinkan kami mengidentifikasi dan memperbaiki masalah, meningkatkan kinerja, dan membuat pembaruan mendatang lebih relevan dengan kebutuhan anda</string>\n    <string name=\"pref_security\">Keamanan</string>\n    <string name=\"non_library_settings\">Semua entri yang sudah dibaca</string>\n    <string name=\"remove_private_extension_message\">Apa anda yakin ingin menghapus ekstensi \\\"%s\\\"?</string>\n    <string name=\"ext_remove\">Hapus</string>\n    <string name=\"ext_confirm_remove\">Hapus Ekstensi?</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Kemajuan pembaruan saat ditandai sebagai telah dibaca</string>\n    <string name=\"trackers_updated_summary\">Pelacak diperbarui ke bab %d</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Batas bitmap perangkat keras kustom</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Jika pembaca memuat gambar kosong, kurangi threshold secara bertahap.\\nPilih: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Bawaan (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Mempengaruhi performa. Aktifkan hanya jika menurunkan batas bitmap tidak memperbaiki gambar kosong</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Jeda riwayat pembacaan untuk ekstensi</string>\n    <string name=\"label_auto\">Otomatis</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Gunakan dekoder lama untuk bacaan strip panjang</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Tandai bab duplikat sebagai sudah dibaca</string>\n    <string name=\"theme_monochrome\">Monokrom</string>\n    <string name=\"export\">Ekspor</string>\n    <string name=\"library_list\">Daftar pustaka</string>\n    <string name=\"library_exported\">Pustaka diekspor</string>\n    <string name=\"author\">Penulis</string>\n    <string name=\"artist\">Seniman</string>\n    <string name=\"tracked_privately\">Dilacak secara pribady</string>\n    <string name=\"action_toggle_private_on\">Lacak secara pribadi</string>\n    <string name=\"action_toggle_private_off\">Lacak secara publik</string>\n    <string name=\"action_edit_notes\">Ubah catatan</string>\n    <string name=\"action_notes\">Catatan</string>\n    <string name=\"action_display_unread_badge\">Chapter belum dibaca</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"pref_behavior\">Perilaku</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Setelah membaca satu bab</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Setelah mengambil bab baru</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Sembunyikan indikator bab yang hilang</string>\n    <string name=\"storage_failed_to_create_download_directory\">Gagal membuat direktori unduhan</string>\n    <string name=\"label_donate\">Donasi</string>\n    <string name=\"pref_display_images_description\">Render gambar dalam deskripsi manga</string>\n    <string name=\"storage_failed_to_create_directory\">Gagal membuat direktori: %s</string>\n    <string name=\"clear_database_text\">Anda akan menghapus entri dari database</string>\n    <string name=\"clear_database_history_warning\">Membaca bab dan kemajuan entri non-perpustakaan akan hilang</string>\n    <string name=\"clear_db_exclude_read\">Simpan entri dengan bab yang sudah dibaca</string>\n    <string name=\"pref_update_library_manga_titles\">Perbarui judul manga perpustakaan agar sesuai dengan sumbernya</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Peringatan: Jika sebuah manga diganti namanya, maka manga tersebut akan dihapus dari antrean unduhan (jika ada).</string>\n    <string name=\"logging_in\">Sedang masuk…</string>\n    <string name=\"possible_duplicates_title\">Duplikat yang mungkin</string>\n    <string name=\"possible_duplicates_summary\">Anda memiliki entri di perpustakaan Anda dengan nama yang serupa.\\n\\nPilih entri yang ingin Anda pindahkan atau tambahkan tetap.</string>\n    <string name=\"notes_placeholder\">Suka bagian di mana…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Dipilih</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Tersedia</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Pilih semua</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Tidak memilh</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Pilih sumber yang diaktifkan</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Pilih sumber yang disematkan</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Lanjutkan</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Data yang akan dipindahkan</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Hapus unduhan entri saat ini setelah migrasi</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Kata kunci tambahan (opsional)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Membantu mempersempit hasil pencarian dengan menambahkan kata kunci tambahan</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Sembunyikan entri yang tidak cocok</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Sembunyikan entri yang tidak memiliki bab baru</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Hanya tampilkan entri jika pertandingan memiliki bab tambahan</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Opsi-opsi ini lambat dan berbahaya, dan dapat menyebabkan pembatasan dari sumber-sumber</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Mode pencarian lanjutan</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Memecah judul menjadi kata kunci untuk pencarian yang lebih luas</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Cocokkan berdasarkan nomor bab</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Jika diaktifkan, memilih pertandingan yang paling jauh di depan. Jika tidak, memilih pertandingan pertama berdasarkan prioritas sumber.</string>\n    <string name=\"migrationListScreenTitle\">Migrasi</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migrasi (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Salin</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrasi</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Alternatif tidak ditemukan</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Terbaru: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Tidak Diketahui</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Cari secara manual</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Jangan migrasi</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrasi sekarang</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Salin sekarang</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Berhenti bermigrasi?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Berhenti</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Batal</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Salin</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrasi</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Batal</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Batal</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Tidak ditemukan bab, entri ini tidak dapat digunakan untuk migrasi</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Jangan izinkan nama file non-ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Memastikan kompatibilitas dengan beberapa media penyimpanan yang tidak mendukung Unicode. Jika opsi ini diaktifkan, Anda harus mengganti nama folder sumber dan manga secara manual dengan mengganti karakter non-ASCII menjadi representasi heksadesimal UTF-8 huruf kecil. File chapter tidak perlu diganti namanya.</string>\n    <string name=\"pref_download_concurrent_sources\">Ambil berkas sumber secara bersamaan</string>\n    <string name=\"pref_download_concurrent_pages\">Ambil berkas halaman secara bersamaan</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Halaman yang diunduh secara bersamaan per sumber</string>\n    <string name=\"action_webview_close_tab\">Tutup tab</string>\n    <string name=\"action_filter_excluded_scanlators\">Filter yang mengecualikan pemindai</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/it/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Dopo %1$s minuto</item>\n        <item quantity=\"many\">Dopo %1$s minuti</item>\n        <item quantity=\"other\">Dopo %1$s minuti</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Aggiornamento estensione disponibile</item>\n        <item quantity=\"many\">%d estensioni hanno aggiornamenti disponibili</item>\n        <item quantity=\"other\">%d estensioni hanno aggiornamenti disponibili</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capitoli %1$s e un altro</item>\n        <item quantity=\"many\">Capitoli %1$s e altri %2$d</item>\n        <item quantity=\"other\">Capitoli %1$s e altri %2$d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nuovo capitolo</item>\n        <item quantity=\"many\">%1$d nuovi capitoli</item>\n        <item quantity=\"other\">%1$d nuovi capitoli</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Per %d voce</item>\n        <item quantity=\"many\">Per %d voci</item>\n        <item quantity=\"other\">Per %d voci</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s rimanente</item>\n        <item quantity=\"many\">%1$s rimanenti</item>\n        <item quantity=\"other\">%1$s rimanenti</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Completato in %1$s con %2$s errore</item>\n        <item quantity=\"many\">Completato in %1$s con %2$s errori</item>\n        <item quantity=\"other\">Completato in %1$s con %2$s errori</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoria</item>\n        <item quantity=\"many\">%d categorie</item>\n        <item quantity=\"other\">%d categorie</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capitolo</item>\n        <item quantity=\"many\">%1$s capitoli</item>\n        <item quantity=\"other\">%1$s capitoli</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d tracker</item>\n        <item quantity=\"many\">%d trackers</item>\n        <item quantity=\"other\">%d trackers</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d capitolo saltato, la fonte non ce l\\'ha o è stato filtrato</item>\n        <item quantity=\"many\">%d capitoli saltati, la fonte non li ha o sono stati filtrati</item>\n        <item quantity=\"other\">%d capitoli saltati, la fonte non li ha o sono stati filtrati</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ieri</item>\n        <item quantity=\"many\">%1$d giorni fa</item>\n        <item quantity=\"other\">%1$d giorni fa</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Il prossimo capitolo non letto</item>\n        <item quantity=\"many\">I prossimi %d capitoli non letti</item>\n        <item quantity=\"other\">I prossimi %d capitoli non letti</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Prossimo capitolo</item>\n        <item quantity=\"many\">Prossimo %d capitoli</item>\n        <item quantity=\"other\">Prossimo %d capitoli</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Manca %1$s capitolo</item>\n        <item quantity=\"many\">Mancano %1$s capitoli</item>\n        <item quantity=\"other\">Mancano %1$s capitoli</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">Un giorno</item>\n        <item quantity=\"many\">%d giorni</item>\n        <item quantity=\"other\">%d giorni</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Domani</item>\n        <item quantity=\"many\">Tra %1$d giorni</item>\n        <item quantity=\"other\">Tra %1$d giorni</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repository</item>\n        <item quantity=\"many\">%d repository</item>\n        <item quantity=\"other\">%d repository</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 pagina</item>\n        <item quantity=\"many\">%1$s pagine</item>\n        <item quantity=\"other\">%1$s pagine</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrare %1$d voce?</item>\n        <item quantity=\"many\">Migrare %1$d voci?</item>\n        <item quantity=\"other\">Migrare %1$d voci?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Copia %1$d voce?</item>\n        <item quantity=\"many\">Copia %1$d voci?</item>\n        <item quantity=\"other\">Copia %1$d voci?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Una voce è stata saltata</item>\n        <item quantity=\"many\">%1$d voci sono state saltate</item>\n        <item quantity=\"other\">%1$d voci sono state saltate</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/it/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nome</string>\n    <string name=\"label_settings\">Impostazioni</string>\n    <string name=\"label_download_queue\">Coda download</string>\n    <string name=\"label_library\">Libreria</string>\n    <string name=\"label_recent_manga\">Cronologia</string>\n    <string name=\"label_recent_updates\">Novità</string>\n    <string name=\"label_backup\">Backup e ripristino</string>\n    <string name=\"action_settings\">Impostazioni</string>\n    <string name=\"action_filter\">Filtro</string>\n    <string name=\"action_filter_bookmarked\">Segnalibri</string>\n    <string name=\"action_filter_unread\">Non letti</string>\n    <string name=\"action_filter_empty\">Rimuovi filtro</string>\n    <string name=\"action_sort_alpha\">Alfabeticamente</string>\n    <string name=\"action_sort_last_read\">Ultimi letti</string>\n    <string name=\"action_search\">Ricerca</string>\n    <string name=\"action_select_all\">Seleziona tutto</string>\n    <string name=\"action_mark_as_read\">Segna come letto</string>\n    <string name=\"action_mark_as_unread\">Segna come non letto</string>\n    <string name=\"action_mark_previous_as_read\">Segna precedenti come letti</string>\n    <string name=\"action_download\">Scarica</string>\n    <string name=\"action_bookmark\">Aggiungi segnalibro</string>\n    <string name=\"action_remove_bookmark\">Rimuovi segnalibro</string>\n    <string name=\"action_delete\">Cancella</string>\n    <string name=\"action_update_library\">Aggiorna libreria</string>\n    <string name=\"action_edit\">Modifica</string>\n    <string name=\"action_add_category\">Aggiungi categoria</string>\n    <string name=\"action_edit_categories\">Modifica categorie</string>\n    <string name=\"action_rename_category\">Rinomina categoria</string>\n    <string name=\"action_move_category\">Assegna categorie</string>\n    <string name=\"action_edit_cover\">Modifica copertina</string>\n    <string name=\"action_pause\">Pausa</string>\n    <string name=\"action_previous_chapter\">Capitolo precedente</string>\n    <string name=\"action_next_chapter\">Capitolo successivo</string>\n    <string name=\"action_retry\">Riprova</string>\n    <string name=\"action_remove\">Rimuovi</string>\n    <string name=\"action_resume\">Riprendi</string>\n    <string name=\"action_open_in_browser\">Apri nel browser</string>\n    <string name=\"action_display_mode\">Modalità di visualizzazione</string>\n    <string name=\"action_display\">Visualizzazione</string>\n    <string name=\"action_display_grid\">Griglia compatta</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_cancel\">Annulla</string>\n    <string name=\"action_sort\">Ordina</string>\n    <string name=\"action_install\">Installa</string>\n    <string name=\"action_share\">Condividi</string>\n    <string name=\"action_save\">Salva</string>\n    <string name=\"loading\">Caricamento…</string>\n    <string name=\"pref_category_general\">Generale</string>\n    <string name=\"pref_category_reader\">Lettore</string>\n    <string name=\"pref_category_downloads\">Download</string>\n    <string name=\"pref_category_advanced\">Avanzate</string>\n    <string name=\"pref_category_about\">Info</string>\n    <string name=\"pref_library_columns\">Oggetti per riga</string>\n    <string name=\"portrait\">Verticale</string>\n    <string name=\"landscape\">Orizzontale</string>\n    <string name=\"pref_library_update_interval\">Aggiornamenti automatici</string>\n    <string name=\"update_never\">Disabilitati</string>\n    <string name=\"update_6hour\">Ogni 6 ore</string>\n    <string name=\"update_12hour\">Ogni 12 ore</string>\n    <string name=\"update_24hour\">Ogni giorno</string>\n    <string name=\"update_48hour\">Ogni 2 giorni</string>\n    <string name=\"all\">Tutte</string>\n    <string name=\"pref_library_update_restriction\">Restrizioni del dispositivo agli aggiornamenti automatici</string>\n    <string name=\"charging\">Quando si carica</string>\n    <string name=\"pref_update_only_non_completed\">Con stato «Completata»</string>\n    <string name=\"pref_auto_update_manga_sync\">Aggiorna il tracking dopo la lettura</string>\n    <string name=\"pref_fullscreen\">Schermo Intero</string>\n    <string name=\"pref_page_transitions\">Animare le transizioni di pagina</string>\n    <string name=\"pref_show_page_number\">Mostra numero pagina</string>\n    <string name=\"pref_custom_brightness\">Luminosità personalizzata</string>\n    <string name=\"pref_custom_color_filter\">Filtro colore personalizzato</string>\n    <string name=\"pref_keep_screen_on\">Mantieni lo schermo acceso</string>\n    <string name=\"pref_reader_navigation\">Navigazione</string>\n    <string name=\"pref_read_with_volume_keys\">Tasti volume</string>\n    <string name=\"pref_reader_theme\">Colore sfondo</string>\n    <string name=\"white_background\">Bianco</string>\n    <string name=\"black_background\">Nero</string>\n    <string name=\"pref_viewer_type\">Modalità di lettura predefinita</string>\n    <string name=\"left_to_right_viewer\">Per pagina (da sinistra a destra)</string>\n    <string name=\"right_to_left_viewer\">Per pagina (da destra a sinistra)</string>\n    <string name=\"vertical_viewer\">Per pagina (verticale)</string>\n    <string name=\"webtoon_viewer\">Verticale lungo</string>\n    <string name=\"pref_image_scale_type\">Tipo di scala</string>\n    <string name=\"scale_type_fit_screen\">Adatta a schermo</string>\n    <string name=\"scale_type_stretch\">Riempi schermo</string>\n    <string name=\"scale_type_fit_width\">Adatta a larghezza</string>\n    <string name=\"scale_type_fit_height\">Adatta ad altezza</string>\n    <string name=\"scale_type_original_size\">Dimensione originale</string>\n    <string name=\"scale_type_smart_fit\">Scala intelligente</string>\n    <string name=\"pref_zoom_start\">Posizione iniziale zoom</string>\n    <string name=\"zoom_start_automatic\">Automatico</string>\n    <string name=\"zoom_start_left\">Sinistra</string>\n    <string name=\"zoom_start_right\">Destra</string>\n    <string name=\"zoom_start_center\">Centro</string>\n    <string name=\"pref_rotation_type\">Rotazione predefinita</string>\n    <string name=\"rotation_free\">Libero</string>\n    <string name=\"rotation_force_portrait\">Bloccato verticale</string>\n    <string name=\"rotation_force_landscape\">Bloccato orizzontale</string>\n    <string name=\"color_filter_r_value\">Rosso</string>\n    <string name=\"color_filter_g_value\">Verde</string>\n    <string name=\"color_filter_b_value\">Blu</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_remove_after_marked_as_read\">Dopo averli contrassegnati manualmente come letti</string>\n    <string name=\"pref_remove_after_read\">Cancella automaticamente dopo la lettura</string>\n    <string name=\"disabled\">Disabilitato</string>\n    <string name=\"last_read_chapter\">Ultimo capitolo letto</string>\n    <string name=\"second_to_last\">Penultimo capitolo letto</string>\n    <string name=\"third_to_last\">Terzultimo capitolo letto</string>\n    <string name=\"fourth_to_last\">Quartultimo capitolo letto</string>\n    <string name=\"fifth_to_last\">Quintultimo capitolo letto</string>\n    <string name=\"pref_download_new\">Scarica nuovi capitoli</string>\n    <string name=\"services\">Servizi di tracking</string>\n    <string name=\"pref_clear_chapter_cache\">Cancella cache capitoli</string>\n    <string name=\"used_cache\">Usati: %1$s</string>\n    <string name=\"cache_deleted\">Cache cancellat, %1$d file cancellati</string>\n    <string name=\"cache_delete_error\">Errore durante la cancellazione</string>\n    <string name=\"pref_clear_cookies\">Cancella cookie</string>\n    <string name=\"cookies_cleared\">Cookie cancellati</string>\n    <string name=\"pref_clear_database\">Pulisci database</string>\n    <string name=\"pref_clear_database_summary\">Elimina la cronologia delle voci che non sono presenti nella libreria</string>\n    <string name=\"clear_database_completed\">Elementi eliminati</string>\n    <string name=\"version\">Versione</string>\n    <string name=\"pref_enable_acra\">Invia segnalazioni crash</string>\n    <string name=\"pref_acra_summary\">Aiuta a correggere eventuali bug. Non verranno inviati dati sensibili</string>\n    <string name=\"login_title\">Accedi a %1$s</string>\n    <string name=\"username\">Nome utente</string>\n    <string name=\"password\">Password</string>\n    <string name=\"login\">Accedi</string>\n    <string name=\"login_success\">Accesso riuscito</string>\n    <string name=\"unknown_error\">Errore sconosciuto</string>\n    <string name=\"updating_category\">Aggiornamento categoria</string>\n    <string name=\"ongoing\">In corso</string>\n    <string name=\"unknown\">Sconosciuto</string>\n    <string name=\"licensed\">Concesso in licenza</string>\n    <string name=\"remove_from_library\">Rimuovi dalla libreria</string>\n    <string name=\"display_mode_chapter\">Capitolo %1$s</string>\n    <string name=\"chapter_downloading_progress\">Scaricando (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Errore</string>\n    <string name=\"show_title\">Titolo della fonte</string>\n    <string name=\"show_chapter_number\">Numero del capitolo</string>\n    <string name=\"sort_by_source\">Per fonte</string>\n    <string name=\"sort_by_number\">Per numero di capitolo</string>\n    <string name=\"manga_download\">Scarica</string>\n    <string name=\"download_unread\">Non letti</string>\n    <string name=\"confirm_delete_chapters\">Sei sicuro di voler eliminare i capitoli selezionati?</string>\n    <string name=\"reading\">In lettura</string>\n    <string name=\"completed\">Completato</string>\n    <string name=\"dropped\">Abbandonato</string>\n    <string name=\"on_hold\">In sospeso</string>\n    <string name=\"plan_to_read\">Da leggere</string>\n    <string name=\"score\">Punteggio</string>\n    <string name=\"title\">Titolo</string>\n    <string name=\"status\">Stato</string>\n    <string name=\"chapters\">Capitoli</string>\n    <string name=\"error_category_exists\">Esiste già una categoria con questo nome!</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Questo rimuoverà la data lettura di questo capitolo. Sei sicuro?</string>\n    <string name=\"dialog_with_checkbox_reset\">Reimposta tutti i capitoli di questa voce</string>\n    <string name=\"picture_saved\">Immagine salvata</string>\n    <string name=\"custom_filter\">Filtro personalizzato</string>\n    <string name=\"set_as_cover\">Imposta come copertina</string>\n    <string name=\"cover_updated\">Copertina aggiornata</string>\n    <string name=\"chapter_progress\">Pagina: %1$d</string>\n    <string name=\"no_next_chapter\">Capitolo successivo non trovato</string>\n    <string name=\"decode_image_error\">Non è stato possibile caricare l\\'immagine</string>\n    <string name=\"confirm_set_image_as_cover\">Usare questa immagine come copertina?</string>\n    <string name=\"download_queue_error\">Impossibile scaricare i capitoli. Puoi riprovare nella sezione download</string>\n    <string name=\"notification_new_chapters\">Nuovi capitoli trovati</string>\n    <string name=\"notification_cover_update_failed\">Impossibile aggiornare la copertina</string>\n    <string name=\"notification_first_add_to_library\">Prima di compiere questa azione per favore aggiungi la voce alla libreria</string>\n    <string name=\"file_select_cover\">Seleziona immagine di copertina</string>\n    <string name=\"file_select_backup\">Seleziona file di backup</string>\n    <string name=\"update_check_confirm\">Scarica</string>\n    <string name=\"update_check_no_new_updates\">Non ci sono nuovi aggiornamenti disponibili</string>\n    <string name=\"update_check_notification_download_in_progress\">Download in corso…</string>\n    <string name=\"update_check_notification_download_complete\">Tocca per installare l\\'aggiornamento</string>\n    <string name=\"update_check_notification_download_error\">Errore di scaricamento</string>\n    <string name=\"update_check_notification_update_available\">Nuova versione disponibile!</string>\n    <string name=\"information_no_downloads\">Nessun download</string>\n    <string name=\"information_no_recent\">Nessuna novità recente</string>\n    <string name=\"information_no_recent_manga\">Nessuna lettura recente</string>\n    <string name=\"information_empty_library\">La tua libreria è vuota</string>\n    <string name=\"download_notifier_downloader_title\">Gestione Download</string>\n    <string name=\"download_notifier_title_error\">Errore</string>\n    <string name=\"download_notifier_unknown_error\">Impossibile scaricare il capitolo a causa di un errore imprevisto</string>\n    <string name=\"download_notifier_text_only_wifi\">Nessuna connessione Wi-Fi disponibile</string>\n    <string name=\"download_notifier_no_network\">Nessuna connessione di rete disponibile</string>\n    <string name=\"categories\">Categorie</string>\n    <string name=\"manga\">Voci della libreria</string>\n    <string name=\"history\">Cronologia</string>\n    <string name=\"action_sort_total\">Capitoli totali</string>\n    <string name=\"action_add\">Aggiungi</string>\n    <string name=\"action_undo\">Annulla</string>\n    <string name=\"action_open_log\">Apri registro</string>\n    <string name=\"action_restore\">Ripristina</string>\n    <string name=\"app_not_available\">App non disponibile</string>\n    <string name=\"update_weekly\">Ogni settimana</string>\n    <string name=\"default_category\">Categoria predefinita</string>\n    <string name=\"track\">Tracciamento</string>\n    <string name=\"pref_category_tracking\">Tracciamento</string>\n    <string name=\"default_category_summary\">Chiedi sempre</string>\n    <string name=\"pref_crop_borders\">Ritaglia bordi</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverti i tasti del volume</string>\n    <string name=\"pref_create_backup\">Crea backup</string>\n    <string name=\"pref_create_backup_summ\">Può essere utilizzato per ripristinare la libreria attuale</string>\n    <string name=\"pref_restore_backup\">Ripristina backup</string>\n    <string name=\"pref_restore_backup_summ\">Ripristina la libreria da un file di backup</string>\n    <string name=\"pref_backup_interval\">Frequenza dei backup automatici</string>\n    <string name=\"backup_created\">Backup creato</string>\n    <string name=\"restore_completed\">Ripristino completato</string>\n    <string name=\"backup_choice\">Di cosa vuoi fare il backup?</string>\n    <string name=\"restoring_backup\">Ripristino backup</string>\n    <string name=\"creating_backup\">Creazione backup</string>\n    <string name=\"no_more_results\">Nessun altro risultato</string>\n    <string name=\"local_source\">Fonte locale</string>\n    <string name=\"delete_downloads_for_manga\">Eliminare i capitoli scaricati?</string>\n    <string name=\"chapter_paused\">In pausa</string>\n    <string name=\"manga_tracking_tab\">Tracciamento</string>\n    <string name=\"snack_add_to_library\">Aggiungere alla libreria?</string>\n    <string name=\"download_notifier_download_paused\">Download in pausa</string>\n    <string name=\"label_migration\">Migra</string>\n    <string name=\"label_extensions\">Estensioni</string>\n    <string name=\"label_extension_info\">Informazioni estensione</string>\n    <string name=\"action_global_search\">Ricerca globale</string>\n    <string name=\"action_display_download_badge\">Capitoli scaricati</string>\n    <string name=\"action_reset\">Reimposta</string>\n    <string name=\"ext_update\">Aggiorna</string>\n    <string name=\"ext_install\">Installa</string>\n    <string name=\"ext_pending\">In coda</string>\n    <string name=\"ext_downloading\">Scaricamento in corso</string>\n    <string name=\"ext_installing\">Installazione in corso</string>\n    <string name=\"ext_installed\">Installato</string>\n    <string name=\"ext_trust\">Attendibile</string>\n    <string name=\"ext_untrusted\">Non attendibile</string>\n    <string name=\"ext_uninstall\">Disinstalla</string>\n    <string name=\"untrusted_extension\">Estensione non attendibile</string>\n    <string name=\"untrusted_extension_message\">Le estensioni dannose possono leggere le credenziali di accesso memorizzate o eseguire codice arbitrario.\n\\n\n\\nFidandoti di questa estensione, accetti questi rischi.</string>\n    <string name=\"pref_double_tap_anim_speed\">Velocità animazioni doppio tocco</string>\n    <string name=\"pager_viewer\">Per pagina</string>\n    <string name=\"double_tap_anim_speed_0\">Senza animazione</string>\n    <string name=\"double_tap_anim_speed_normal\">Normale</string>\n    <string name=\"double_tap_anim_speed_fast\">Veloce</string>\n    <string name=\"other_source\">Altro</string>\n    <string name=\"action_global_search_hint\">Ricerca globale…</string>\n    <string name=\"latest\">Ultimi</string>\n    <string name=\"browse\">Sfoglia</string>\n    <string name=\"manga_added_library\">Aggiunto alla libreria</string>\n    <string name=\"manga_removed_library\">Rimosso dalla libreria</string>\n    <string name=\"copied_to_clipboard\">Copiato negli appunti:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Fonte non installata: %1$s</string>\n    <string name=\"repeating\">Rileggendo</string>\n    <string name=\"track_status\">Stato</string>\n    <string name=\"track_type\">Tipo</string>\n    <string name=\"snack_categories_deleted\">Categorie rimosse</string>\n    <string name=\"migration_dialog_what_to_include\">Seleziona i dati da includere</string>\n    <string name=\"migrate\">Migra</string>\n    <string name=\"copy\">Copia</string>\n    <string name=\"information_empty_category\">Non hai categorie. Tocca il pulsante più per crearne una e organizzare la tua libreria.</string>\n    <string name=\"channel_common\">Comune</string>\n    <string name=\"transition_finished\">Finito:</string>\n    <string name=\"transition_current\">Corrente:</string>\n    <string name=\"transition_next\">Prossimo:</string>\n    <string name=\"transition_previous\">Precedente:</string>\n    <string name=\"transition_no_next\">Nessun capitolo successivo</string>\n    <string name=\"transition_no_previous\">Nessun capitolo precedente</string>\n    <string name=\"transition_pages_loading\">Caricamento pagine…</string>\n    <string name=\"transition_pages_error\">Caricamento pagine fallito: %1$s</string>\n    <string name=\"action_open_in_web_view\">Apri in WebView</string>\n    <string name=\"pref_skip_read_chapters\">Salta i capitoli segnati come letti</string>\n    <string name=\"filter_mode_screen\">Schermo</string>\n    <string name=\"pref_read_with_long_tap\">Mostra azioni con un tocco prolungato</string>\n    <string name=\"pref_color_filter_mode\">Modalità di fusione del filtro colore</string>\n    <string name=\"filter_mode_overlay\">Sovrimpressione</string>\n    <string name=\"filter_mode_multiply\">Moltiplica</string>\n    <string name=\"filter_mode_lighten\">Schiarisci</string>\n    <string name=\"filter_mode_darken\">Brucia / Scurisci</string>\n    <string name=\"label_help\">Aiuto</string>\n    <string name=\"no_results_found\">Nessun risultato trovato</string>\n    <string name=\"migration_selection_prompt\">Seleziona una fonte da cui migrare</string>\n    <string name=\"action_webview_back\">Indietro</string>\n    <string name=\"action_webview_forward\">Avanti</string>\n    <string name=\"action_webview_refresh\">Aggiorna</string>\n    <string name=\"pref_category_library\">Libreria</string>\n    <string name=\"ext_obsolete\">Obsoleta</string>\n    <string name=\"obsolete_extension_message\">Questa estensione non è più disponibile. Potrebbe non funzionare correttamente e causare problemi con l\\'app. Si consiglia di disinstallarla.</string>\n    <string name=\"pref_date_format\">Formato data</string>\n    <string name=\"pref_category_library_update\">Aggiornamenti globali</string>\n    <string name=\"logout_title\">Disconnettersi da %1$s?</string>\n    <string name=\"logout\">Disconnetti</string>\n    <string name=\"logout_success\">Ora sei disconnesso</string>\n    <string name=\"paused\">In pausa</string>\n    <string name=\"label_more\">Altro</string>\n    <string name=\"action_sort_latest_chapter\">Ultimo capitolo</string>\n    <string name=\"action_view_chapters\">Visualizza capitoli</string>\n    <string name=\"action_cancel_all\">Annulla tutto</string>\n    <string name=\"theme_light\">Chiaro</string>\n    <string name=\"theme_dark\">Scuro</string>\n    <string name=\"theme_system\">Sistema</string>\n    <string name=\"pref_manage_notifications\">Gestisci le notifiche</string>\n    <string name=\"pref_category_security\">Sicurezza e privacy</string>\n    <string name=\"lock_with_biometrics\">Richiedi sblocco</string>\n    <string name=\"lock_when_idle\">Blocca quando inattivo</string>\n    <string name=\"lock_always\">Sempre</string>\n    <string name=\"lock_never\">Mai</string>\n    <string name=\"secure_screen\">Schermo sicuro</string>\n    <string name=\"ext_updates_pending\">Aggiornamenti in sospeso</string>\n    <string name=\"pref_cutout_short\">Mostra il contenuto dell\\'area ritagliata</string>\n    <string name=\"information_cloudflare_bypass_failure\">Impossibile bypassare Cloudflare</string>\n    <string name=\"information_webview_outdated\">Per favore aggiorna l\\'app WebView per una migliore compatibilità</string>\n    <string name=\"channel_new_chapters\">Aggiornamenti capitoli</string>\n    <string name=\"secure_screen_summary\">Schermo sicuro nasconde i contenuti dell\\'app quando cambi applicazione e blocca gli screenshot</string>\n    <string name=\"pref_category_display\">Visualizzazione</string>\n    <string name=\"channel_ext_updates\">Aggiornamenti estensione</string>\n    <string name=\"notification_chapters_multiple\">Capitoli %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Capitolo %1$s e altri %2$d</string>\n    <string name=\"notification_chapters_single\">Capitolo %1$s</string>\n    <string name=\"email\">Indirizzo e-mail</string>\n    <string name=\"battery_optimization_disabled\">Ottimizzazione batteria già disattivata</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Facilita gli aggiornamenti e i backup in secondo piano</string>\n    <string name=\"pref_disable_battery_optimization\">Disattiva ottimizzazione batteria</string>\n    <string name=\"pref_always_show_chapter_transition\">Mostra sempre la transizione tra capitoli</string>\n    <string name=\"hide_notification_content\">Nascondi contenuto notifiche</string>\n    <string name=\"action_move_to_bottom\">Sposta in fondo</string>\n    <string name=\"action_move_to_top\">Sposta in cima</string>\n    <string name=\"action_oldest\">Più vecchi</string>\n    <string name=\"action_newest\">Più recenti</string>\n    <string name=\"action_menu\">Menù</string>\n    <string name=\"label_sources\">Fonti</string>\n    <string name=\"updating_library\">Libreria in aggiornamento</string>\n    <string name=\"pref_category_reading\">In Lettura</string>\n    <string name=\"pref_skip_filtered_chapters\">Salta capitoli filtrati</string>\n    <string name=\"action_pin\">Fissa</string>\n    <string name=\"add_tracking\">Aggiungi tracking</string>\n    <string name=\"in_library\">Nella libreria</string>\n    <string name=\"add_to_library\">Aggiungi alla libreria</string>\n    <string name=\"pinned_sources\">Fissato</string>\n    <string name=\"pref_webtoon_side_padding\">Riempimento laterale</string>\n    <string name=\"vertical_plus_viewer\">Verticale lungo con interruzioni</string>\n    <string name=\"action_unpin\">Sblocca</string>\n    <string name=\"action_select_inverse\">Inverti selezione</string>\n    <string name=\"recent_manga_time\">Cap. %1$s - %2$s</string>\n    <string name=\"manga_info_collapse\">Meno</string>\n    <string name=\"manga_info_expand\">Altro</string>\n    <string name=\"licenses\">Licenze open source</string>\n    <string name=\"website\">Sito web</string>\n    <string name=\"restoring_backup_canceled\">Ripristino cancellato</string>\n    <string name=\"restoring_backup_error\">Ripristino backup fallito</string>\n    <string name=\"restore_in_progress\">Ripristino già in corso</string>\n    <string name=\"creating_backup_error\">Backup fallito</string>\n    <string name=\"backup_in_progress\">Il backup è già in corso</string>\n    <string name=\"label_downloaded_only\">Solo scaricati</string>\n    <string name=\"information_webview_required\">WebView è necessaria per il funzionamento dell\\'app</string>\n    <string name=\"viewer\">Modalità di lettura</string>\n    <string name=\"pref_category_for_this_series\">Per questa serie</string>\n    <string name=\"local_source_help_guide\">Guida alle fonti locali</string>\n    <string name=\"last_used_source\">Ultimo usato</string>\n    <string name=\"downloaded_only_summary\">Filtra tutte le voci nella tua libreria</string>\n    <string name=\"check_for_updates\">Controlla aggiornamenti</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Impossibile aprire le impostazioni del dispositivo</string>\n    <string name=\"pref_refresh_library_covers\">Aggiorna le copertine della libreria</string>\n    <string name=\"restore_duration\">%1$02d minuti, %2$02d secondi</string>\n    <string name=\"tracking_info\">Sincronizzazione a senso unico per aggiornare l\\'avanzamento dei capitoli sui servizi di tracking. Imposta il tracking per le singole voci dai loro pulsanti di tracking.</string>\n    <string name=\"gray_background\">Grigio</string>\n    <string name=\"page_list_empty_error\">Nessuna pagina trovata</string>\n    <string name=\"sort_by_upload_date\">Per data di aggiunta</string>\n    <string name=\"tabs_header\">Schede</string>\n    <string name=\"label_data\">Dati</string>\n    <string name=\"backup_restore_missing_sources\">Fonti mancanti:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Il backup non contiene alcuna voce di libreria.</string>\n    <string name=\"invalid_backup_file\">File di backup invalido:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Controlla nuove copertine e descrizioni durante l\\'aggiornamento della libreria</string>\n    <string name=\"pref_library_update_refresh_metadata\">Ricarica metadati automaticamente</string>\n    <string name=\"action_display_show_tabs\">Mostra schede delle categorie</string>\n    <string name=\"action_display_comfortable_grid\">Griglia confortevole</string>\n    <string name=\"action_migrate\">Migra</string>\n    <string name=\"action_disable_all\">Disabilita tutto</string>\n    <string name=\"action_enable_all\">Abilita tutto</string>\n    <string name=\"tapping_inverted_both\">Entrambi</string>\n    <string name=\"tapping_inverted_vertical\">Verticale</string>\n    <string name=\"tapping_inverted_horizontal\">Orizzontale</string>\n    <string name=\"tapping_inverted_none\">Nessuno</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverti le zone di tocco</string>\n    <string name=\"loader_not_implemented_error\">Fonte non trovata</string>\n    <string name=\"unknown_status\">Stato sconosciuto</string>\n    <string name=\"unknown_author\">Autore sconosciuto</string>\n    <string name=\"updated_version\">Aggiornato alla v%1$s</string>\n    <string name=\"whats_new\">Le novità</string>\n    <string name=\"requires_app_restart\">Richiesto riavvio dell\\'app per applicare le modifiche</string>\n    <string name=\"label_network\">Rete</string>\n    <string name=\"pref_show_reading_mode_summary\">Mostra brevemente la modalità corrente all\\'apertura del lettore</string>\n    <string name=\"pref_show_reading_mode\">Mostra modalità di lettura</string>\n    <string name=\"action_disable\">Disabilita</string>\n    <string name=\"action_start\">Inizia</string>\n    <string name=\"action_global_search_query\">Ricerca «%1$s» globalmente</string>\n    <string name=\"download_insufficient_space\">Impossibile scaricare i capitoli a causa dello spazio di archiviazione insufficiente</string>\n    <string name=\"pref_category_reading_mode\">Modalità di lettura</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Data di aggiunta</string>\n    <string name=\"channel_progress\">Progresso</string>\n    <string name=\"channel_errors\">Errori</string>\n    <string name=\"channel_complete\">Completo</string>\n    <string name=\"no_pinned_sources\">Non hai fonti fissate</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Consenti eliminazione capitoli con segnalibro</string>\n    <string name=\"pref_category_delete_chapters\">Elimina capitoli</string>\n    <string name=\"ext_nsfw_warning\">Fonti di questa estensione potrebbero contenere materiale NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"backup_restore_missing_trackers\">Tracker non collegati:</string>\n    <string name=\"no_chapters_error\">Nessun capitolo trovato</string>\n    <string name=\"parental_controls_info\">Questo non impedisce a estensioni non ufficiali oppure incorrettamente segnalate di mostrare contenuti 18+ all\\'interno dell\\'applicazione.</string>\n    <string name=\"chapter_settings_updated\">Impostazioni predefinite dei capitoli aggiornate</string>\n    <string name=\"share_page_info\">%1$s: %2$s, pagina %3$d</string>\n    <string name=\"set_chapter_settings_as_default\">Imposta come predefinito</string>\n    <string name=\"also_set_chapter_settings_for_library\">Applica anche a tutte le voci nella mia libreria</string>\n    <string name=\"confirm_set_chapter_settings\">Sei sicuro di voler salvare queste impostazioni come predefinite?</string>\n    <string name=\"chapter_settings\">Impostazioni del capitolo</string>\n    <string name=\"action_search_settings\">Ricerca impostazioni</string>\n    <string name=\"downloaded_chapters\">Capitoli scaricati</string>\n    <string name=\"manga_from_library\">Dalla libreria</string>\n    <string name=\"pref_incognito_mode_summary\">Sospendi cronologia di lettura</string>\n    <string name=\"pref_incognito_mode\">Modalità incognito</string>\n    <string name=\"pref_clear_history\">Svuota cronologia</string>\n    <string name=\"clear_history_confirmation\">Sei sicuro? Tutta la cronologia verrà persa.</string>\n    <string name=\"clear_history_completed\">Cronologia cancellata</string>\n    <string name=\"spen_next_page\">Pagina successiva</string>\n    <string name=\"spen_previous_page\">Pagina precedente</string>\n    <string name=\"migration_help_guide\">Guida alla migrazione delle fonti</string>\n    <string name=\"pref_category_nsfw_content\">Fonti NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Mostra nelle liste delle fonti e delle estensioni</string>\n    <string name=\"myanimelist_relogin\">Per favore accedi di nuovo a MAL</string>\n    <string name=\"file_picker_error\">Nessuna app per la selezione dei file trovata</string>\n    <string name=\"pref_viewer_nav\">Zone di tocco</string>\n    <string name=\"edge_nav\">Bordo</string>\n    <string name=\"kindlish_nav\">Stile Kindle</string>\n    <string name=\"l_nav\">A forma di L</string>\n    <string name=\"track_finished_reading_date\">Data fine</string>\n    <string name=\"track_started_reading_date\">Data inizio</string>\n    <string name=\"pref_dump_crash_logs_summary\">Salva un registro degli errori su un file per condividerlo con gli sviluppatori</string>\n    <string name=\"pref_dump_crash_logs\">Condividi il registro dei crash</string>\n    <string name=\"action_desc\">Decrescente</string>\n    <string name=\"action_asc\">Crescente</string>\n    <string name=\"action_order_by_chapter_number\">Per numero di capitolo</string>\n    <string name=\"action_order_by_upload_date\">Per data di caricamento</string>\n    <string name=\"action_filter_tracked\">Tracciati</string>\n    <string name=\"action_display_show_number_of_items\">Mostra numero elementi</string>\n    <string name=\"right_and_left_nav\">Destra e Sinistra</string>\n    <string name=\"pref_dual_page_split\">Dividi le pagine larghe</string>\n    <string name=\"pref_dual_page_invert_summary\">Se il posizionamento delle pagine larghe divise non corrisponde alla direzione di lettura</string>\n    <string name=\"pref_dual_page_invert\">Inverti il posizionamento delle pagine divise</string>\n    <string name=\"backup_restore_content_full\">Potresti aver bisogno di installare estensioni mancanti ed accedere ai servizi di tracking per utilizzarle.</string>\n    <string name=\"exclude\">Escludi: %s</string>\n    <string name=\"include\">Includi: %s</string>\n    <string name=\"none\">Nessuna</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data di recupero capitolo</string>\n    <string name=\"pref_category_auto_download\">Download automatico</string>\n    <string name=\"nav_zone_next\">Successivo</string>\n    <string name=\"nav_zone_prev\">Precedente</string>\n    <string name=\"pref_download_new_categories_details\">Le voci che si trovano in categorie escluse non saranno scaricate nonostante si trovino anche in categorie incluse.</string>\n    <string name=\"nav_zone_right\">Destra</string>\n    <string name=\"nav_zone_left\">Sinistra</string>\n    <string name=\"pref_library_update_categories_details\">Le voci in categorie escluse non saranno aggiornati nonostante si trovino anche in categorie incluse.</string>\n    <string name=\"pref_dns_over_https\">DNS su HTTPS (DoH)</string>\n    <string name=\"pref_show_navigation_mode\">Mostra sovrapposizione con zone di tocco</string>\n    <string name=\"pref_show_navigation_mode_summary\">Mostra brevemente quando il lettore viene aperto</string>\n    <string name=\"action_show_errors\">Tocca per vedere i dettagli</string>\n    <string name=\"update_check_eol\">Questa versione di Android non è più supportata</string>\n    <string name=\"clipboard_copy_error\">Impossibile copiare negli appunti</string>\n    <string name=\"rotation_type\">Rotazione</string>\n    <string name=\"notification_incognito_text\">Disabilita modalità incognito</string>\n    <string name=\"rotation_landscape\">Orizzontale</string>\n    <string name=\"rotation_portrait\">Verticale</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Crea cartelle in base al titolo delle voci</string>\n    <string name=\"cancel_all_for_series\">Annulla tutti per questa serie</string>\n    <string name=\"pref_create_folder_per_manga\">Salva pagine in cartelle separate</string>\n    <string name=\"pref_reader_actions\">Azioni</string>\n    <string name=\"pref_grayscale\">Scala di grigi</string>\n    <string name=\"error_no_match\">Nessun risultato trovato</string>\n    <string name=\"local_filter_order_by\">Ordina per</string>\n    <string name=\"chapter_not_found\">Capitolo non trovato</string>\n    <string name=\"source_unsupported\">Fonte non supportata</string>\n    <string name=\"date\">Data</string>\n    <string name=\"off\">Disattivo</string>\n    <string name=\"error_sharing_cover\">Errore nella condivisione della copertina</string>\n    <string name=\"error_saving_cover\">Errore nel salvataggio della copertina</string>\n    <string name=\"cover_saved\">Copertina salvata</string>\n    <string name=\"unread\">Non letti</string>\n    <string name=\"categorized_display_settings\">Impostazioni di ordinamento per categoria</string>\n    <string name=\"information_empty_category_dialog\">Non hai ancora nessuna categoria.</string>\n    <string name=\"on\">Attivo</string>\n    <string name=\"restrictions\">Restrizioni: %s</string>\n    <string name=\"action_display_local_badge\">Fonte locale</string>\n    <string name=\"manga_cover\">Copertina</string>\n    <string name=\"local_invalid_format\">Formato capitolo non valido</string>\n    <string name=\"tracking_guide\">Guida al tracking</string>\n    <string name=\"action_start_downloading_now\">Inizia a scaricare ora</string>\n    <string name=\"about_dont_kill_my_app\">Alcuni produttori hanno restrizioni aggiuntive per le app che chiudono i servizi in secondo piano. Questo sito ha più informazioni su come risolvere il problema.</string>\n    <string name=\"pref_lowest\">Più basso</string>\n    <string name=\"pref_low\">Basso</string>\n    <string name=\"pref_high\">Alto</string>\n    <string name=\"pref_highest\">Più alto</string>\n    <string name=\"pref_hide_threshold\">Sensibilità per nascondere il menù allo scorrimento</string>\n    <string name=\"pref_inverted_colors\">Inversa</string>\n    <string name=\"relative_time_today\">Oggi</string>\n    <string name=\"pref_dark_theme_pure_black\">Modalità scura con nero puro</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin e Yang</string>\n    <string name=\"theme_tealturquoise\">Verde Acqua e Turchese</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri alla Fragola</string>\n    <string name=\"theme_midnightdusk\">Crepuscolo di Mezzanotte</string>\n    <string name=\"theme_greenapple\">Mela Verde</string>\n    <string name=\"theme_monet\">Dinamico</string>\n    <string name=\"pref_app_theme\">Tema applicazione</string>\n    <string name=\"confirm_lock_change\">Autenticarsi per confermare le modifiche</string>\n    <string name=\"label_default\">Predefinita</string>\n    <string name=\"label_background_activity\">Attività in secondo piano</string>\n    <string name=\"restore_miui_warning\">Le funzioni di backup e ripristino potrebbero non funzionare correttamente se le ottimizzazioni MIUI sono disabilitate.</string>\n    <string name=\"enhanced_tracking_info\">Offrono funzioni migliorate per fonti specifiche. Le voci sono tracciate automaticamente quando aggiunte alla libreria.</string>\n    <string name=\"enhanced_services\">Servizi di tracking migliorati</string>\n    <string name=\"pref_category_appearance\">Aspetto</string>\n    <string name=\"action_track\">Traccia</string>\n    <string name=\"getting_started_guide\">Guida introduttiva</string>\n    <string name=\"pref_tablet_ui_mode\">Interfaccia tablet</string>\n    <string name=\"pref_remove_exclude_categories\">Categorie escluse</string>\n    <string name=\"help_translate\">Aiuta a tradurre</string>\n    <string name=\"ext_app_info\">Informazioni app</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installa e avvia Shizuku per usarlo come installatore delle estensioni.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku non è in esecuzione</string>\n    <string name=\"ext_installer_legacy\">Legacy</string>\n    <string name=\"ext_installer_pref\">Installatore</string>\n    <string name=\"ext_install_service_notif\">Installazione dell\\'estensione…</string>\n    <string name=\"action_sort_count\">Voci totali</string>\n    <string name=\"pref_verbose_logging_summary\">Salva i registri dettagliati nel registro di sistema (riduce le prestazioni dell\\'app)</string>\n    <string name=\"pref_verbose_logging\">Registrazione dettagliata</string>\n    <string name=\"action_display_language_badge\">Lingua</string>\n    <string name=\"label_warning\">Attenzione</string>\n    <string name=\"backup_info\">Dovresti tenere delle copie dei backup anche in altri posti. I backup possono contenere dati sensibili comprese le password memorizzate; fate attenzione al condividerli.</string>\n    <string name=\"notification_size_warning\">Grossi aggiornamenti danneggiano le fonti, possono rallentare gli aggiornamenti e aumentare il consumo di batteria. Tocca per saperne di più.</string>\n    <string name=\"connected_to_wifi\">Solo su Wi-Fi</string>\n    <string name=\"update_72hour\">Ogni 3 giorni</string>\n    <string name=\"download_queue_size_warning\">Attenzione: grossi download di massa possono rallentare le fonti e/o bloccare %s. Tocca per saperne di più.</string>\n    <string name=\"ext_update_all\">Aggiorna tutto</string>\n    <string name=\"channel_app_updates\">Aggiornamenti dell\\'applicazione</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Cancella la cache capitoli all\\'avvio dell\\'app</string>\n    <string name=\"clear_database_source_item_count\">%1$d voci non presenti in libreria nel database</string>\n    <string name=\"database_clean\">Niente da Pulire</string>\n    <string name=\"extension_api_error\">Impossibile ottenere l\\'elenco estensioni</string>\n    <string name=\"privacy_policy\">Politica sulla privacy</string>\n    <string name=\"pref_update_only_completely_read\">Con capitoli non letti</string>\n    <string name=\"library_errors_help\">Per un aiuto su come risolvere gli errori di aggiornamento della libreria vedi %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Salva come archivio CBZ</string>\n    <string name=\"cancelled\">Cancellata</string>\n    <string name=\"on_hiatus\">In pausa</string>\n    <string name=\"publishing_finished\">Pubblicazione terminata</string>\n    <string name=\"action_show_manga\">Mostra voce</string>\n    <string name=\"pref_navigate_pan\">Scorri le immagini larghe</string>\n    <string name=\"pref_landscape_zoom\">Ingrandisci automaticamente le immagini larghe</string>\n    <string name=\"action_display_cover_only_grid\">Griglia con solo copertine</string>\n    <string name=\"pref_update_only_started\">Che non sono state iniziate</string>\n    <string name=\"skipped_reason_completed\">Saltato perché la serie è completa</string>\n    <string name=\"skipped_reason_not_caught_up\">Saltato perché ci sono capitoli non letti</string>\n    <string name=\"skipped_reason_not_started\">Saltato perché non ci sono capitoli letti</string>\n    <string name=\"notification_update_error\">%1$d aggiornamento(i) fallito(i)</string>\n    <string name=\"learn_more\">Tocca per approfondire</string>\n    <string name=\"rotation_reverse_portrait\">Verticale inverso</string>\n    <string name=\"action_move_to_top_all_for_series\">Sposta la serie in cima</string>\n    <string name=\"disabled_nav\">Disattivato</string>\n    <string name=\"error_saving_picture\">Errore durante il salvataggio dell\\'immagine</string>\n    <string name=\"empty_backup_error\">Nessuna voce in libreria di cui eseguire il backup</string>\n    <string name=\"update_check_open\">Apri su GitHub</string>\n    <string name=\"pref_clear_webview_data\">Cancella dati WebView</string>\n    <string name=\"webview_data_deleted\">Dati WebView cancellati</string>\n    <string name=\"action_close\">Chiudi</string>\n    <string name=\"source_filter_empty_screen\">Nessuna fonte installata trovata</string>\n    <string name=\"source_empty_screen\">Nessuna fonte trovata</string>\n    <string name=\"action_sort_unread_count\">Conteggio non letti</string>\n    <string name=\"action_sort_last_manga_update\">Ultimo aggiornamento</string>\n    <string name=\"split_tall_images_summary\">Migliora le prestazioni del lettore</string>\n    <string name=\"download_notifier_split_page_not_found\">Pagina %d non trovata durante la divisione</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Impossibile trovare il percorso della pagina %d</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Reimposta la modalità di lettura e l\\'orientamento per tutte le serie</string>\n    <string name=\"pref_reset_viewer_flags\">Reimposta le opzioni del lettore per ogni serie</string>\n    <string name=\"pref_reset_viewer_flags_success\">Ripristinate tutte le opzioni del lettore</string>\n    <string name=\"pref_reset_viewer_flags_error\">Impossibile ripristinare le opzioni del lettore</string>\n    <string name=\"empty_screen\">Beh, questo è imbarazzante</string>\n    <string name=\"ext_info_age_rating\">Classificazione per età</string>\n    <string name=\"ext_info_version\">Versione</string>\n    <string name=\"ext_info_language\">Lingua</string>\n    <string name=\"on_hold_list\">In Pausa</string>\n    <string name=\"reading_list\">Lista di lettura</string>\n    <string name=\"wish_list\">Da Leggere</string>\n    <string name=\"complete_list\">Completati</string>\n    <string name=\"unfinished_list\">Non Completati</string>\n    <string name=\"network_not_metered\">Solo su rete non a consumo</string>\n    <string name=\"custom_cover\">Copertina personalizzata</string>\n    <string name=\"cant_open_last_read_chapter\">Impossibile aprire l\\'ultimo capitolo letto</string>\n    <string name=\"not_installed\">Non installato</string>\n    <string name=\"pref_app_language\">Lingua dell\\'applicazione</string>\n    <string name=\"description_placeholder\">Nessuna descrizione</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"internal_error\">Errore Interno: Controllare i registri dei crash per ulteriori informazioni</string>\n    <string name=\"delete_category_confirmation\">Vuoi eliminare la categoria «%s»?</string>\n    <string name=\"delete_category\">Elimina categoria</string>\n    <string name=\"pref_reset_user_agent_string\">Ripristina la stringa «user agent» del browser</string>\n    <string name=\"pref_user_agent_string\">Stringa «user agent» del browser</string>\n    <string name=\"action_remove_everything\">Rimuovi tutto</string>\n    <string name=\"appwidget_unavailable_locked\">Widget non disponibile quando il blocco app è attivo</string>\n    <string name=\"appwidget_updates_description\">Vedi le voci aggiornate di recente</string>\n    <string name=\"update_already_running\">È già in corso un aggiornamento</string>\n    <string name=\"error_user_agent_string_blank\">La sringa «user agent» non può essere vuota</string>\n    <string name=\"theme_tidalwave\">Maremoto</string>\n    <string name=\"download_ahead\">Scarica i prossimi</string>\n    <string name=\"auto_download_while_reading\">Download automatico durante la lettura</string>\n    <string name=\"download_ahead_info\">Funziona se il capitolo corrente e quello successivo sono già stati scaricati.</string>\n    <string name=\"are_you_sure\">Sei sicuro?</string>\n    <string name=\"multi_lang\">Multiple</string>\n    <string name=\"updates_last_update_info\">Ultimo aggiornamento libreria: %s</string>\n    <string name=\"remove_manga\">Stai per rimuovere «%s» dalla tua libreria</string>\n    <string name=\"popular\">Popolare</string>\n    <string name=\"missing_storage_permission\">Autorizzazioni per l\\'archiviazione non concesse</string>\n    <string name=\"skipped_reason_not_always_update\">Saltato perché la serie non richiede aggiornamenti</string>\n    <string name=\"action_search_hint\">Ricerca…</string>\n    <string name=\"pref_appearance_summary\">Tema, formato data e ora</string>\n    <string name=\"crash_screen_description\">%s ha riscontrato un errore imprevisto. Ti suggeriamo di condividere il registro degli arresti anomali nel nostro canale di supporto su Discord.</string>\n    <string name=\"pref_library_summary\">Categorie, aggiornamenti globali, azioni di scorrimento capitoli</string>\n    <string name=\"pref_downloads_summary\">Download automatico, download anticipato</string>\n    <string name=\"pref_browse_summary\">Fonti, estensioni, ricerca globale</string>\n    <string name=\"pref_reader_summary\">Modalità di lettura, aspetto, navigazione</string>\n    <string name=\"pref_tracking_summary\">Sincronizzazione unidirezionale avanzamenti, sincronizzazione migliorata</string>\n    <string name=\"pref_backup_summary\">Backup manuali e automatici, spazio di archiviazione</string>\n    <string name=\"pref_security_summary\">Blocco app, schermo protetto</string>\n    <string name=\"pref_advanced_summary\">Registro arresti anomali, ottimizzazioni batteria</string>\n    <string name=\"crash_screen_title\">Ops!</string>\n    <string name=\"crash_screen_restart_application\">Riavvia l\\'applicazione</string>\n    <string name=\"invalid_location\">Posizione invalida: %s</string>\n    <string name=\"unknown_title\">Titolo sconosciuto</string>\n    <string name=\"error_user_agent_string_invalid\">Stringa «user agent» non valida</string>\n    <string name=\"updates_last_update_info_just_now\">Proprio adesso</string>\n    <string name=\"download_notifier_cache_renewal\">Controllando i download</string>\n    <string name=\"action_open_random_manga\">Apri una voce casuale</string>\n    <string name=\"information_no_entries_found\">Nessuna voce trovata in questa categoria</string>\n    <string name=\"fdroid_warning\">Le versioni F-Droid non sono ufficialmente supportate.\n\\nToccare per saperne di più.</string>\n    <string name=\"action_display_show_continue_reading_button\">Pulsante \\\"continua a leggere\\\"</string>\n    <string name=\"track_remove_date_conf_title\">Rimuovere la data?</string>\n    <string name=\"track_remove_finish_date_conf_text\">Verrà rimossa la data di fine precedentemente selezionata da %s</string>\n    <string name=\"track_remove_start_date_conf_text\">Verrà rimossa la data di inizio precedentemente selezionata da %s</string>\n    <string name=\"pref_invalidate_download_cache\">Reindicizza i download</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Forza l\\'app a ricontrollare i capitoli scaricati</string>\n    <string name=\"label_started\">Iniziati</string>\n    <string name=\"label_overview_section\">Panoramica</string>\n    <string name=\"label_titles_section\">Voci</string>\n    <string name=\"label_stats\">Statistiche</string>\n    <string name=\"label_completed_titles\">Voci completate</string>\n    <string name=\"label_local\">In locale</string>\n    <string name=\"label_read_duration\">Durata lettura</string>\n    <string name=\"label_tracked_titles\">Voci tracciate</string>\n    <string name=\"label_used\">In uso</string>\n    <string name=\"not_applicable\">N/D</string>\n    <string name=\"minute_short\">%d min</string>\n    <string name=\"label_downloaded\">Scaricati</string>\n    <string name=\"label_titles_in_global_update\">Nell\\'aggiornamento globale</string>\n    <string name=\"label_read_chapters\">Letti</string>\n    <string name=\"label_mean_score\">Punteggio medio</string>\n    <string name=\"hour_short\">%d o</string>\n    <string name=\"label_total_chapters\">Totale</string>\n    <string name=\"label_tracker_section\">Tracciatori</string>\n    <string name=\"seconds_short\">%d s</string>\n    <string name=\"day_short\">%d g</string>\n    <string name=\"action_not_now\">Non ora</string>\n    <string name=\"information_no_manga_category\">La categoria è vuota</string>\n    <string name=\"pref_library_update_show_tab_badge\">Mostra il numero dei capitoli non letti nell\\'icona Novità</string>\n    <string name=\"copied_to_clipboard_plain\">Copiato negli appunti</string>\n    <string name=\"enhanced_services_not_installed\">Disponibile ma la fonte non è installata: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Salta i capitoli duplicati</string>\n    <string name=\"track_error\">%1$s errore: %2$s</string>\n    <string name=\"information_required_plain\">*obbligatorio</string>\n    <string name=\"pref_hide_in_library_items\">Nascondi le voci già in libreria</string>\n    <string name=\"action_copy_to_clipboard\">Copia negli appunti</string>\n    <string name=\"action_update_category\">Aggiorna categoria</string>\n    <string name=\"split_tall_images\">Dividi immagini alte</string>\n    <string name=\"overlay_header\">Sovrimpressione</string>\n    <string name=\"pref_page_rotate\">Ruota le pagine larghe per adattarle allo schermo</string>\n    <string name=\"pref_page_rotate_invert\">Capovolgi l\\'orientamento delle pagine larghe ruotate</string>\n    <string name=\"pref_debug_info\">Informazioni di debug</string>\n    <string name=\"pref_double_tap_zoom\">Doppio tocco per ingrandire</string>\n    <string name=\"pref_chapter_swipe_end\">Capitoli allo scorrimento a destra</string>\n    <string name=\"pref_chapter_swipe_start\">Capitoli allo scorrimento a sinistra</string>\n    <string name=\"action_set_interval\">Imposta intervallo</string>\n    <string name=\"pref_update_only_in_release_period\">Fuori dal periodo di rilascio previsto</string>\n    <string name=\"intervals_header\">Intervalli</string>\n    <string name=\"manga_display_interval_title\">Stima ogni</string>\n    <string name=\"action_filter_interval_custom\">Intervallo di aggiornamento personalizzato</string>\n    <string name=\"action_sort_next_updated\">Prossimo aggiornamento previsto</string>\n    <string name=\"manga_display_modified_interval_title\">Imposta l\\'aggiornamento ogni</string>\n    <string name=\"skipped_reason_not_in_release_period\">Saltato perché oggi non era previsto alcun rilascio</string>\n    <string name=\"track_delete_title\">Rimuovere il tracking di %s?</string>\n    <string name=\"track_delete_remote_text\">Rimuovi anche da %s</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_text\">Questo rimuoverà il tracciamento locale.</string>\n    <string name=\"delete_downloaded\">Cancella scaricati</string>\n    <string name=\"has_results\">Con risultati</string>\n    <string name=\"library_sync_complete\">Sincronizzazione libreria completata</string>\n    <string name=\"syncing_library\">Sincronizzazione libreria</string>\n    <string name=\"information_cloudflare_help\">Tocca qua per assistenza con Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Indice dei download invalidato</string>\n    <string name=\"track_activity_name\">Login del trakcer</string>\n    <string name=\"create_backup_file_error\">Non è stato possibile creare un file di backup</string>\n    <string name=\"exception_http\">HTTP %d, controlla il sito nella WebView</string>\n    <string name=\"exception_offline\">Nessuna connessione ad internet</string>\n    <string name=\"exception_unknown_host\">%s non raggiungibile</string>\n    <string name=\"unlock_app_title\">Sblocca %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Spostare la serie in fondo</string>\n    <string name=\"pref_relative_format\">Timestamp relativi</string>\n    <string name=\"pref_relative_format_summary\">«%1$s» invece di «%2$s»</string>\n    <string name=\"app_settings\">Impostazioni app</string>\n    <string name=\"source_settings\">Impostazioni delle fonti</string>\n    <string name=\"notification_updating_progress\">Aggiornando libreria... (%s)</string>\n    <string name=\"file_null_uri_error\">Il selettore di file ha restituito file all\\'app</string>\n    <string name=\"label_data_storage\">Dati e archiviazione</string>\n    <string name=\"onboarding_storage_action_select\">Scegli una cartella</string>\n    <string name=\"onboarding_action_finish\">Iniziamo</string>\n    <string name=\"action_apply\">Applica</string>\n    <string name=\"onboarding_storage_selection_required\">Devi selezionare una cartella</string>\n    <string name=\"onboarding_permission_notifications\">Permessi di notifica</string>\n    <string name=\"action_revert_to_default\">Reimposta predefiniti</string>\n    <string name=\"onboarding_permission_install_apps\">Permessi per installare app</string>\n    <string name=\"onboarding_heading\">Ti diamo il benvenuto!</string>\n    <string name=\"action_menu_overflow_description\">Altre opzioni</string>\n    <string name=\"selected\">Selezionato</string>\n    <string name=\"not_selected\">Non selezionato</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"onboarding_action_skip\">Salta</string>\n    <string name=\"onboarding_action_next\">Prossimo</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Uso della batteria in secondo piano</string>\n    <string name=\"onboarding_permission_install_apps_description\">Per installare le estensioni delle fonti.</string>\n    <string name=\"action_bar_up_description\">Navigare su</string>\n    <string name=\"onboarding_description\">Per prima cosa impostiamo alcune cose. Puoi sempre cambiarle successivamente nelle impostazioni.</string>\n    <string name=\"onboarding_permission_notifications_description\">Ricevi notifiche per aggiornamenti della libreria e altro.</string>\n    <string name=\"ext_permission_install_apps_warning\">È necessaria l\\'autorizzazione per installare le estensioni. Tocca qui per concederla.</string>\n    <string name=\"onboarding_storage_info\">Selezione una cartella dove %1$s salverà i capitoli scaricati, i backup e altro.\n\\n\n\\nÈ raccomandato usare una cartella dedicata.\n\\n\n\\nCartella selezionata: %2$s</string>\n    <string name=\"pref_storage_location\">Posizione di archiviazione</string>\n    <string name=\"action_create\">Crea</string>\n    <string name=\"relative_time_span_never\">Mai</string>\n    <string name=\"pref_flash_page_summ\">Riduce il ghosting sugli schermi e-ink</string>\n    <string name=\"pref_onboarding_guide\">Guida di benvenuto</string>\n    <string name=\"pref_storage_location_info\">Usato per i backup automatici, download capitoli e fonti locali.</string>\n    <string name=\"onboarding_guides_new_user\">Nuovo su %s? Ti consigliamo di dare un\\'occhiata alla guida introduttiva.</string>\n    <string name=\"available_disk_space_info\">Disponibile: %1$s / Totale: %2$s</string>\n    <string name=\"last_auto_backup_info\">Ultimo backup automatico: %s</string>\n    <string name=\"onboarding_guides_returning_user\">Hai già usato %s in precedenza?</string>\n    <string name=\"no_scanlators_found\">Nessuno scanlator trovato</string>\n    <string name=\"pref_flash_page\">Lampeggia al cambio pagina</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Evita interruzioni a lunghi aggiornamenti libreria, download e ripristino di backup.</string>\n    <string name=\"pref_storage_usage\">Archiviazione utilizzata</string>\n    <string name=\"action_sort_tracker_score\">Punteggio del tracker</string>\n    <string name=\"no_location_set\">Cartella di archiviazione non impostata</string>\n    <string name=\"private_settings\">Includi impostazioni sensibili (es. token di login dei tracker)</string>\n    <string name=\"onboarding_permission_action_grant\">Consenti</string>\n    <string name=\"exclude_scanlators\">Escludi scanlator</string>\n    <string name=\"onboarding_storage_help_action\">Guida all\\'archiviazione</string>\n    <string name=\"label_extension_repos\">Repository delle estensioni</string>\n    <string name=\"action_add_repo\">Aggiungi repository</string>\n    <string name=\"label_add_repo_input\">URL repository</string>\n    <string name=\"error_repo_exists\">Questa repository esiste già!</string>\n    <string name=\"action_delete_repo\">Elimina repository</string>\n    <string name=\"invalid_repo_name\">URL repository non valida</string>\n    <string name=\"action_open_repo\">Repository open source</string>\n    <string name=\"manga_interval_expected_update_soon\">Presto</string>\n    <string name=\"manga_interval_custom_amount\">Frequenza di aggiornamento personalizzata:</string>\n    <string name=\"onboarding_storage_help_info\">Sti aggiornando da una vecchia versione e non sai cosa selezionare? Consulta la guida all\\'archiviazione per info.</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"pref_library_update_smart_update\">Aggiornamento intelligente</string>\n    <string name=\"ext_revoke_trust\">Revoca le estensioni sconosciute affidabili</string>\n    <string name=\"information_empty_repos\">Non hai repository impostate.</string>\n    <string name=\"action_add_repo_message\">Aggiungi altri repository a %s. Questo dovrebbe essere un URL che termina con \\\"index.min.json\\\".</string>\n    <string name=\"delete_repo_confirmation\">Vuoi eleminare la repository \\\"%s\\\"?</string>\n    <string name=\"invalid_backup_file_error\">Errore completo:</string>\n    <string name=\"manga_interval_expected_update\">Si prevede che i nuovi capitoli saranno rilasciati tra circa %1$s, con controlli ogni %2$s.</string>\n    <string name=\"action_add_anyway\">Aggiungere comunque</string>\n    <string name=\"action_replace_repo_title\">La Firma dell\\'Impronta Digitale della Chiave Esiste Già</string>\n    <string name=\"pref_display_profile\">Profilo di visualizzazione personalizzato</string>\n    <string name=\"action_replace_repo_message\">La repository %1$s ha la stessa Firma d\\'Impronta Digitale della Chiave %2$s.\n\\nSe è quello che si desidera, %2$s verrà sostituita, altrimenti contatta il manutentore della repository.</string>\n    <string name=\"action_replace_repo\">Sostituisci</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Disattiva zoom indietro</string>\n    <string name=\"label_upcoming\">Prossimamente</string>\n    <string name=\"action_view_upcoming\">Controlla i Prossimi Aggiornamenti</string>\n    <string name=\"upcoming_guide\">Guida in arrivo</string>\n    <string name=\"upcoming_calendar_next\">Mese prossimo</string>\n    <string name=\"upcoming_calendar_prev\">Mese scorso</string>\n    <string name=\"pref_flash_duration\">Durata del flash</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_with\">Flash con</string>\n    <string name=\"pref_flash_style_black\">Nero</string>\n    <string name=\"pref_flash_style_white\">Bianco</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Non si è potuto ottenere l\\'accesso permanente alle cartella. L\\'applicazione potrebbe comportarsi inaspettatamente.</string>\n    <string name=\"pref_flash_page_interval\">Flash ogni</string>\n    <string name=\"pref_flash_style_white_black\">Bianco e Nero</string>\n    <string name=\"non_library_settings\">Tutte le voci lette</string>\n    <string name=\"action_copy_link\">Copia collegamento</string>\n    <string name=\"action_sort_random\">Casuale</string>\n    <string name=\"onboarding_permission_crashlytics\">Invia registri dei crash</string>\n    <string name=\"onboarding_permission_analytics\">Consenti l\\'analitica</string>\n    <string name=\"onboarding_permission_analytics_description\">Invia dati di uso anonimizzati per migliorare le funzionalità dell\\'app.</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Invia registri anonimizzati dei crash agli sviluppatori.</string>\n    <string name=\"pref_security\">Sicurezza</string>\n    <string name=\"pref_firebase\">Analitica e registri di crash</string>\n    <string name=\"extensionRepo_settings\">Repository delle estensioni</string>\n    <string name=\"confirm_tracker_update\">Aggiornare i tracker al capitolo %d?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Salta il download dei capitoli letti duplicati</string>\n    <string name=\"firebase_summary\">L\\'invio dei registri dei crash e delle analitiche ci consentirà di identificare e risolvere i problemi, migliorare le prestazioni e rendere gli aggiornamenti futuri più pertinenti alle tue esigenze</string>\n    <string name=\"add_repo_confirmation\">Vuoi aggiungere il repository \\\"%s\\\"?</string>\n    <string name=\"ext_remove\">Rimuovi</string>\n    <string name=\"ext_confirm_remove\">Rimuovere l\\'estensione?</string>\n    <string name=\"remove_private_extension_message\">Vuoi davvero rimuovere l\\'estensione \\\"%s\\\"?</string>\n    <string name=\"invalid_backup_file_json\">Backup JSON non supportato</string>\n    <string name=\"invalid_backup_file_unknown\">Il file di backup è corrotto</string>\n    <string name=\"manga_interval_expected_update_null\">Questo manga è completato o non c\\'è data di rilascio prevista.</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Aggiorna il progresso quando segnato come letto</string>\n    <string name=\"trackers_updated_summary\">Tracker aggiornati al capitolo %d</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Predefinito (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Se il lettore carica un\\'immagine vuota, riduci progressivamente il limite.\\nSelezionato: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Limite di elaborazione immagini hardware personalizzato</string>\n    <string name=\"label_auto\">Automatico</string>\n    <string name=\"theme_monochrome\">Monocromatico</string>\n    <string name=\"export\">Esporta</string>\n    <string name=\"author\">Autore</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"action_notes\">Note</string>\n    <string name=\"action_edit_notes\">Modifica note</string>\n    <string name=\"action_display_unread_badge\">Capitoli non letti</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Usa decoder legacy per lettore di strisce lunghe</string>\n    <string name=\"action_toggle_private_off\">Traccia pubblicamente</string>\n    <string name=\"action_toggle_private_on\">Tracciato privatamente</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Segna capitoli duplicati come letti</string>\n    <string name=\"pref_behavior\">Comportamento</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Dopo aver letto in capitolo</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Dopo aver cercato nuovi capitoli</string>\n    <string name=\"tracked_privately\">Tracciato privatamente</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Influisce sulle prestazioni. Abilitare solo se riducendo la soglia bitmap non risolve i problemi di immagine vuota</string>\n    <string name=\"library_list\">Lista libreria</string>\n    <string name=\"library_exported\">Libreria esportata</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Metti in pausa la cronologia di lettura per l\\'estensione</string>\n    <string name=\"pref_update_library_manga_titles\">Aggiorna i titoli della libreria perchè coincidano con la fonte</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Attenzione: se un manga viene rinominato, sarà rimosso dalla coda download (se presente).</string>\n    <string name=\"logging_in\">Autenticazione in corso…</string>\n    <string name=\"possible_duplicates_title\">Possibili duplicati</string>\n    <string name=\"theme_catppuccin\">Gattuccino</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Annulla selezione</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Seleziona fonti attive</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Seleziona fonti fissate</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Continua</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponibile</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Seleziona tutto</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Selezionato</string>\n    <string name=\"clear_database_history_warning\">I capitoli letti e i progressi di lettura di entità non in libreria andranno persi</string>\n    <string name=\"clear_db_exclude_read\">Mantieni entità con capitoli letti</string>\n    <string name=\"clear_database_text\">Stai per rimuovere elementi dal database</string>\n    <string name=\"possible_duplicates_summary\">Hai altre voci nella libreria con un nome simile.\\n\\nSelezione una voce da migrare o aggiungi comunque.</string>\n    <string name=\"storage_failed_to_create_download_directory\">Creazione della cartella download fallita</string>\n    <string name=\"storage_failed_to_create_directory\">Creazione della cartella %s fallita</string>\n    <string name=\"notes_placeholder\">Mi è piaciuta la parte dove…</string>\n    <string name=\"label_donate\">Dona</string>\n    <string name=\"action_webview_close_tab\">Chiudi scheda</string>\n    <string name=\"pref_display_images_description\">Renderizza immagini nella descrizioni dei manga</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Nascondi gli indicatori dei capitoli mancanti</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Non consentire nomi di file non ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Garantisce la compatibilità con alcuni supporti di memorizzazione che non supportano Unicode. Quando questa opzione è abilitata, sarà necessario rinominare manualmente le cartelle sorgente e manga sostituendo i caratteri non ASCII con le relative rappresentazioni esadecimali UTF-8 minuscole. Non è necessario rinominare i file dei capitoli.</string>\n    <string name=\"pref_download_concurrent_sources\">Download da fonti simultanee</string>\n    <string name=\"pref_download_concurrent_pages\">Download da pagine simultanee</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Pagine scaricate simultaneamente per fonte</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Dati da migrare</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Elimina i download della voce corrente dopo la migrazione</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Parole chiave aggiuntive (facoltative)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Aiuta a restringere i risultati della ricerca aggiungendo parole chiave aggiuntive</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Nascondi le voci senza corrispondenza</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Nascondi le voci senza nuovi capitoli</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Mostra la voce solo se ha capitoli aggiuntivi</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Queste opzioni sono lente e pericolose e possono comportare restrizioni da parte delle fonti</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Modalità di ricerca avanzata</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Suddivide il titolo in parole chiave per una ricerca più ampia</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Corrispondenza in base al numero del capitolo</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Se abilitato, sceglie l\\'ultima corrispondenza. Altrimenti, sceglie la prima corrispondenza in base alla priorità della fonte.</string>\n    <string name=\"migrationListScreenTitle\">Migrazione</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migrazione (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copia</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migra</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Nessuna alternativa trovata</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Ultimo: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Sconosciuto</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Cerca manualmente</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Non migrare</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migra ora</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copia ora</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Interrompere la migrazione?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Interrompi</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Annulla</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copia</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migra</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Annulla</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Annulla</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Nessun capitolo trovato, questa voce non può essere utilizzata per la migrazione</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ja/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">%1$s分後</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d件の新しい章</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">残り%1$s件</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">%1$sで完了しました (%2$s件のエラー)</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d件のカテゴリー</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">%d件の拡張機能の更新が利用可能です</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">%1$s章と他%2$d章</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">%d件の項目</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">%1$s章</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d個のトラッカー</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">%d章をスキップします。ソースに章が存在しないか、フィルタリングされています。</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d日前</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">次の未読の%d章</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">次の%d章</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">%1$s章が存在しません</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d日</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%dリポジトリ</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">%1$d 日後</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s ページ</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">%1$d 個のエントリを移行しますか?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">%1$d 個のエントリをコピーしますか?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d 件のエントリがスキップされました</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ja/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">名前</string>\n    <string name=\"categories\">カテゴリー</string>\n    <string name=\"manga\">ライブラリの項目</string>\n    <string name=\"chapters\">章</string>\n    <string name=\"history\">履歴</string>\n    <string name=\"label_settings\">設定</string>\n    <string name=\"label_download_queue\">ダウンロードキュー</string>\n    <string name=\"label_library\">ライブラリ</string>\n    <string name=\"label_recent_manga\">履歴</string>\n    <string name=\"label_recent_updates\">新着</string>\n    <string name=\"label_backup\">バックアップと復元</string>\n    <string name=\"action_settings\">設定</string>\n    <string name=\"action_filter\">絞り込む</string>\n    <string name=\"action_filter_bookmarked\">お気に入り</string>\n    <string name=\"action_filter_unread\">未読</string>\n    <string name=\"action_filter_empty\">フィルタを削除</string>\n    <string name=\"action_sort_alpha\">アルファベット順</string>\n    <string name=\"action_sort_total\">章の数順</string>\n    <string name=\"action_sort_last_read\">最後に読んだ順</string>\n    <string name=\"action_search\">検索</string>\n    <string name=\"action_global_search\">グローバル検索</string>\n    <string name=\"action_select_all\">すべて選択</string>\n    <string name=\"action_download\">ダウンロード</string>\n    <string name=\"action_bookmark\">章にブックマークを追加</string>\n    <string name=\"action_remove_bookmark\">章のブックマークを削除</string>\n    <string name=\"action_display_grid\">コンパクトグリッド</string>\n    <string name=\"action_display_list\">リスト</string>\n    <string name=\"action_sort\">ソート</string>\n    <string name=\"track\">トラッキング</string>\n    <string name=\"label_extensions\">拡張機能</string>\n    <string name=\"label_extension_info\">拡張機能の情報</string>\n    <string name=\"label_migration\">移行</string>\n    <string name=\"action_mark_as_read\">既読にする</string>\n    <string name=\"action_mark_as_unread\">未読にする</string>\n    <string name=\"action_delete\">削除する</string>\n    <string name=\"action_update_library\">ライブラリを更新</string>\n    <string name=\"action_edit\">編集</string>\n    <string name=\"action_add_category\">カテゴリを追加</string>\n    <string name=\"action_edit_categories\">カテゴリを編集</string>\n    <string name=\"action_edit_cover\">表紙を編集</string>\n    <string name=\"action_pause\">一時停止</string>\n    <string name=\"action_previous_chapter\">前の章</string>\n    <string name=\"action_next_chapter\">次の章</string>\n    <string name=\"action_retry\">リトライ</string>\n    <string name=\"action_resume\">再開</string>\n    <string name=\"action_open_in_browser\">ブラウザで開く</string>\n    <string name=\"action_display_mode\">表示モード</string>\n    <string name=\"action_display\">表示</string>\n    <string name=\"action_display_download_badge\">ダウンロードした章の数</string>\n    <string name=\"action_cancel\">キャンセル</string>\n    <string name=\"action_share\">シェア</string>\n    <string name=\"action_save\">保存</string>\n    <string name=\"action_reset\">リセット</string>\n    <string name=\"action_open_log\">ログを開く</string>\n    <string name=\"action_restore\">リストア</string>\n    <string name=\"loading\">読み込み中…</string>\n    <string name=\"app_not_available\">アプリは利用不可</string>\n    <string name=\"pref_category_general\">全般</string>\n    <string name=\"pref_category_downloads\">ダウンロード</string>\n    <string name=\"pref_category_advanced\">その他</string>\n    <string name=\"pref_category_about\">アプリについて</string>\n    <string name=\"portrait\">縦向き</string>\n    <string name=\"landscape\">横向き</string>\n    <string name=\"pref_library_update_interval\">自動更新</string>\n    <string name=\"update_never\">OFF</string>\n    <string name=\"update_6hour\">6時間ごと</string>\n    <string name=\"update_12hour\">12時間ごと</string>\n    <string name=\"update_24hour\">毎日</string>\n    <string name=\"update_48hour\">2日ごと</string>\n    <string name=\"update_weekly\">毎週</string>\n    <string name=\"all\">全て</string>\n    <string name=\"pref_library_update_restriction\">自動更新の条件</string>\n    <string name=\"charging\">充電中</string>\n    <string name=\"pref_update_only_non_completed\">ステータスが「完結済み」の作品をスキップ</string>\n    <string name=\"pref_auto_update_manga_sync\">読んだ後に読書進捗を更新</string>\n    <string name=\"default_category\">デフォルトカテゴリー</string>\n    <string name=\"default_category_summary\">毎回尋ねる</string>\n    <string name=\"ext_update\">更新</string>\n    <string name=\"ext_install\">インストール</string>\n    <string name=\"ext_pending\">保留</string>\n    <string name=\"ext_downloading\">ダウンロード中</string>\n    <string name=\"ext_installing\">インストール</string>\n    <string name=\"ext_installed\">インストール済み</string>\n    <string name=\"ext_trust\">信用する</string>\n    <string name=\"ext_untrusted\">信用できない</string>\n    <string name=\"ext_uninstall\">アンインストール</string>\n    <string name=\"untrusted_extension\">信頼できない拡張</string>\n    <string name=\"pref_fullscreen\">フルスクリーン</string>\n    <string name=\"pref_page_transitions\">ページ遷移エフェクトを表示</string>\n    <string name=\"pref_double_tap_anim_speed\">ダブルタップアニメーション速度</string>\n    <string name=\"pref_crop_borders\">クロップボーダー</string>\n    <string name=\"pref_custom_brightness\">カスタムの明るさ</string>\n    <string name=\"pref_custom_color_filter\">カスタムカラーフィルター</string>\n    <string name=\"pref_reader_navigation\">ナビゲーション</string>\n    <string name=\"pref_read_with_volume_keys\">音量キー</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">音量キーを反転</string>\n    <string name=\"pref_reader_theme\">背景色</string>\n    <string name=\"white_background\">白</string>\n    <string name=\"black_background\">ブラック</string>\n    <string name=\"pref_viewer_type\">既定のビューアモード</string>\n    <string name=\"left_to_right_viewer\">ページ分割 (左から右)</string>\n    <string name=\"right_to_left_viewer\">ページ分割 (右から左)</string>\n    <string name=\"vertical_viewer\">ページ分割 (上から下)</string>\n    <string name=\"webtoon_viewer\">縦長のストリップ</string>\n    <string name=\"pager_viewer\">ページに分ける</string>\n    <string name=\"pref_image_scale_type\">スケールの種類</string>\n    <string name=\"scale_type_fit_screen\">画面サイズに合わせる</string>\n    <string name=\"scale_type_stretch\">ストレッチ</string>\n    <string name=\"scale_type_fit_width\">幅に合わせる</string>\n    <string name=\"scale_type_original_size\">オリジナルサイズ</string>\n    <string name=\"scale_type_smart_fit\">スマートフィット</string>\n    <string name=\"pref_zoom_start\">ズーム開始位置</string>\n    <string name=\"zoom_start_automatic\">自動</string>\n    <string name=\"zoom_start_left\">左</string>\n    <string name=\"zoom_start_right\">右</string>\n    <string name=\"zoom_start_center\">中央</string>\n    <string name=\"double_tap_anim_speed_normal\">通常</string>\n    <string name=\"double_tap_anim_speed_fast\">速い</string>\n    <string name=\"pref_rotation_type\">既定の画面向き</string>\n    <string name=\"rotation_free\">自動回転</string>\n    <string name=\"rotation_force_portrait\">縦向き画面を強制</string>\n    <string name=\"color_filter_r_value\">赤</string>\n    <string name=\"color_filter_g_value\">緑</string>\n    <string name=\"color_filter_b_value\">青</string>\n    <string name=\"color_filter_a_value\">アルファ</string>\n    <string name=\"pref_remove_after_marked_as_read\">手動で既読にした後</string>\n    <string name=\"pref_remove_after_read\">読んだ後自動で削除</string>\n    <string name=\"disabled\">無効</string>\n    <string name=\"second_to_last\">最後に読んだ章の2番目</string>\n    <string name=\"pref_download_new\">新しい章をダウンロード</string>\n    <string name=\"pref_create_backup\">バックアップを作成</string>\n    <string name=\"pref_create_backup_summ\">現在のライブラリを復元するために使用できます</string>\n    <string name=\"pref_restore_backup\">バックアップを復元</string>\n    <string name=\"pref_restore_backup_summ\">バックアップファイルからライブラリを復元する</string>\n    <string name=\"pref_backup_interval\">自動バックアップの頻度</string>\n    <string name=\"backup_created\">バックアップが作成されました</string>\n    <string name=\"pref_clear_chapter_cache\">チャプタキャッシュをクリア</string>\n    <string name=\"cache_delete_error\">消去中にエラーが発生しました</string>\n    <string name=\"pref_clear_database\">データベースをクリア</string>\n    <string name=\"pref_clear_database_summary\">ライブラリにない項目の履歴を削除</string>\n    <string name=\"version\">バージョン</string>\n    <string name=\"pref_enable_acra\">クラッシュレポートを送信する</string>\n    <string name=\"login_title\">%1$sにログイン</string>\n    <string name=\"username\">ユーザー名</string>\n    <string name=\"password\">パスワード</string>\n    <string name=\"login\">ログイン</string>\n    <string name=\"login_success\">ログインしました</string>\n    <string name=\"action_add\">追加</string>\n    <string name=\"action_rename_category\">カテゴリー名を編集</string>\n    <string name=\"action_move_category\">カテゴリーを設定</string>\n    <string name=\"action_remove\">削除</string>\n    <string name=\"action_install\">インストール</string>\n    <string name=\"action_undo\">取り消し</string>\n    <string name=\"label_help\">ヘルプ</string>\n    <string name=\"action_mark_previous_as_read\">前の章を既読にする</string>\n    <string name=\"action_open_in_web_view\">WebView で開く</string>\n    <string name=\"pref_category_reader\">ビューア</string>\n    <string name=\"pref_category_tracking\">同期</string>\n    <string name=\"untrusted_extension_message\">悪意のある拡張機能は保存されているすべてのログイン情報を読み取ることや、任意コード実行をすることができます。\n\\n\n\\nこれらのリスクを受け入れ、この拡張機能を信頼しますか？</string>\n    <string name=\"pref_show_page_number\">ページ数を表示</string>\n    <string name=\"pref_keep_screen_on\">画面を常にON</string>\n    <string name=\"scale_type_fit_height\">高さに合わせる</string>\n    <string name=\"double_tap_anim_speed_0\">アニメ効果をOFF</string>\n    <string name=\"rotation_force_landscape\">横向き画面を強制</string>\n    <string name=\"last_read_chapter\">最後に読んだ章</string>\n    <string name=\"third_to_last\">最後に読んだ章の3番目</string>\n    <string name=\"fourth_to_last\">最後に読んだ章の4番目</string>\n    <string name=\"fifth_to_last\">最後に読んだ章の5番目</string>\n    <string name=\"services\">トラッカー</string>\n    <string name=\"restore_completed\">復元が完了しました</string>\n    <string name=\"backup_choice\">バックアップしたいのは？</string>\n    <string name=\"restoring_backup\">バックアップを復元中</string>\n    <string name=\"creating_backup\">バックアップを作成中</string>\n    <string name=\"used_cache\">サイズ: %1$s</string>\n    <string name=\"cache_deleted\">キャッシュがクリアされ、%1$d 個のファイルが削除されました</string>\n    <string name=\"pref_clear_cookies\">Cookiesを削除</string>\n    <string name=\"cookies_cleared\">Cookiesを削除しました</string>\n    <string name=\"clear_database_completed\">エントリーを削除しました</string>\n    <string name=\"pref_acra_summary\">バグの修正などに役立ちます。個人情報を送信しません</string>\n    <string name=\"unknown_error\">不明なエラー</string>\n    <string name=\"updating_category\">カテゴリーを更新中</string>\n    <string name=\"no_more_results\">これ以上の結果はありません</string>\n    <string name=\"action_global_search_hint\">グローバル検索…</string>\n    <string name=\"latest\">最近の更新</string>\n    <string name=\"browse\">ブラウズ</string>\n    <string name=\"ongoing\">連載中</string>\n    <string name=\"unknown\">不明</string>\n    <string name=\"licensed\">ライセンス済み</string>\n    <string name=\"remove_from_library\">ライブラリから削除</string>\n    <string name=\"manga_added_library\">ライブラリに追加しました</string>\n    <string name=\"manga_removed_library\">ライブラリから削除しました</string>\n    <string name=\"delete_downloads_for_manga\">ダウンロードした章を削除してもよろしいですか？</string>\n    <string name=\"copied_to_clipboard\">次をクリップボードにコピーしました:\n\\n%1$s</string>\n    <string name=\"display_mode_chapter\">第%1$s章</string>\n    <string name=\"chapter_downloading_progress\">ダウンロード中 (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">エラー</string>\n    <string name=\"chapter_paused\">一時停止済み</string>\n    <string name=\"show_title\">ソースタイトル</string>\n    <string name=\"show_chapter_number\">章の数</string>\n    <string name=\"sort_by_source\">ソースに基づいた順</string>\n    <string name=\"sort_by_number\">章番号順</string>\n    <string name=\"manga_download\">ダウンロード</string>\n    <string name=\"download_unread\">未読</string>\n    <string name=\"confirm_delete_chapters\">選択した章を削除してもよろしいですか？</string>\n    <string name=\"manga_tracking_tab\">同期</string>\n    <string name=\"reading\">読書中</string>\n    <string name=\"completed\">完結済み</string>\n    <string name=\"dropped\">放棄済み</string>\n    <string name=\"on_hold\">保留中</string>\n    <string name=\"plan_to_read\">読む予定</string>\n    <string name=\"score\">評価</string>\n    <string name=\"title\">タイトル</string>\n    <string name=\"status\">ステータス</string>\n    <string name=\"track_status\">ステータス</string>\n    <string name=\"track_type\">タイプ</string>\n    <string name=\"error_category_exists\">この名前が既に存在しています！</string>\n    <string name=\"snack_categories_deleted\">カテゴリーが削除されました</string>\n    <string name=\"dialog_with_checkbox_remove_description\">この章の読書日時を削除してもよろしいですか？</string>\n    <string name=\"dialog_with_checkbox_reset\">この項目の章をすべてリセット</string>\n    <string name=\"snack_add_to_library\">ライブラリに追加しますか？</string>\n    <string name=\"picture_saved\">画像を保存しました</string>\n    <string name=\"custom_filter\">カスタム フィルタ</string>\n    <string name=\"set_as_cover\">カバーとして設定</string>\n    <string name=\"cover_updated\">カバーとして設定しました</string>\n    <string name=\"chapter_progress\">ページ: %1$d</string>\n    <string name=\"no_next_chapter\">次の章が見つかりません</string>\n    <string name=\"decode_image_error\">画像をロードできませんでした</string>\n    <string name=\"confirm_set_image_as_cover\">カバーとして設定しますか？</string>\n    <string name=\"migration_dialog_what_to_include\">移行するデータを選択</string>\n    <string name=\"migrate\">移行</string>\n    <string name=\"copy\">コピー</string>\n    <string name=\"download_queue_error\">章のダウンロードに失敗しました。「ダウンロード」にて再試行してください</string>\n    <string name=\"notification_new_chapters\">新しい章が見つかりました</string>\n    <string name=\"notification_cover_update_failed\">カバーを更新できませんでした</string>\n    <string name=\"notification_first_add_to_library\">まずは項目をライブラリに追加してください</string>\n    <string name=\"file_select_cover\">カバー画像を選択</string>\n    <string name=\"file_select_backup\">バックアップファイルを選択</string>\n    <string name=\"update_check_confirm\">ダウンロード</string>\n    <string name=\"update_check_no_new_updates\">新しいバージョンがありません</string>\n    <string name=\"update_check_notification_download_in_progress\">ダウンロード中…</string>\n    <string name=\"update_check_notification_download_complete\">タップでアップデートをインストール</string>\n    <string name=\"update_check_notification_download_error\">ダウンロード中にエラー発生</string>\n    <string name=\"update_check_notification_update_available\">アップデート利用可能！</string>\n    <string name=\"information_no_downloads\">ダウンロードがありません</string>\n    <string name=\"information_no_recent\">最近の更新はありません</string>\n    <string name=\"information_no_recent_manga\">最近は何も読んでいません</string>\n    <string name=\"information_empty_library\">ライブラリは空です</string>\n    <string name=\"information_empty_category\">カテゴリーがありません。「+」をタップしてカテゴリーを追加し、ライブラリを整理できます。</string>\n    <string name=\"download_notifier_downloader_title\">ダウンロード</string>\n    <string name=\"download_notifier_title_error\">エラー</string>\n    <string name=\"download_notifier_unknown_error\">予期せぬエラーが発生したため、ダウンロードは失敗しました</string>\n    <string name=\"download_notifier_text_only_wifi\">Wi-Fi接続は利用できません</string>\n    <string name=\"download_notifier_no_network\">ネットワーク接続が利用できません</string>\n    <string name=\"download_notifier_download_paused\">ダウンロード一時停止済み</string>\n    <string name=\"channel_common\">一般設定</string>\n    <string name=\"repeating\">読み返し中</string>\n    <string name=\"source_not_installed\">未インストールのソース: %1$s</string>\n    <string name=\"transition_finished\">読み終わりました:</string>\n    <string name=\"transition_current\">読んでいます:</string>\n    <string name=\"transition_next\">次:</string>\n    <string name=\"transition_previous\">前:</string>\n    <string name=\"transition_no_next\">次の章がありません</string>\n    <string name=\"transition_no_previous\">前の章がありません</string>\n    <string name=\"transition_pages_loading\">ページをロード中…</string>\n    <string name=\"transition_pages_error\">ページのロードに失敗: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">長押しでアクションを表示</string>\n    <string name=\"pref_skip_read_chapters\">読み終わった章をスキップ</string>\n    <string name=\"pref_color_filter_mode\">ｶﾗｰﾌｨﾙﾀｰﾌﾞﾚﾝﾄﾞﾓｰﾄﾞ</string>\n    <string name=\"filter_mode_overlay\">オーバーレイ</string>\n    <string name=\"filter_mode_screen\">スクリーン</string>\n    <string name=\"no_results_found\">結果が見つかりませんでした</string>\n    <string name=\"migration_selection_prompt\">移行元を選択</string>\n    <string name=\"action_webview_back\">前へ</string>\n    <string name=\"action_webview_forward\">次へ</string>\n    <string name=\"action_webview_refresh\">更新</string>\n    <string name=\"pref_category_library\">ライブラリ</string>\n    <string name=\"ext_obsolete\">廃止済み</string>\n    <string name=\"obsolete_extension_message\">この拡張機能は利用不可になったため、正常に機能しなかったり、アプリでエラーを起こしたりする恐れがあります。アンインストールすることをお勧めします。</string>\n    <string name=\"pref_date_format\">日付形式</string>\n    <string name=\"pref_category_library_update\">グローバルアップデート</string>\n    <string name=\"logout_title\">%1$sからログアウトしますか？</string>\n    <string name=\"logout\">ログアウト</string>\n    <string name=\"logout_success\">ログアウトしました</string>\n    <string name=\"paused\">一時停止</string>\n    <string name=\"other_source\">その他</string>\n    <string name=\"label_more\">その他</string>\n    <string name=\"action_sort_latest_chapter\">最新章の更新順</string>\n    <string name=\"action_view_chapters\">章を見る</string>\n    <string name=\"action_cancel_all\">すべてキャンセル</string>\n    <string name=\"theme_light\">ライト</string>\n    <string name=\"theme_dark\">ダーク</string>\n    <string name=\"theme_system\">システム</string>\n    <string name=\"pref_manage_notifications\">通知設定</string>\n    <string name=\"pref_category_security\">セキュリティとプライバシー</string>\n    <string name=\"lock_with_biometrics\">アンロックを必要とする</string>\n    <string name=\"lock_when_idle\">タイムアウトロック</string>\n    <string name=\"lock_always\">常時</string>\n    <string name=\"lock_never\">しない</string>\n    <string name=\"secure_screen\">セキュア画面</string>\n    <string name=\"notification_chapters_single\">第%1$s章</string>\n    <string name=\"action_newest\">最新</string>\n    <string name=\"label_sources\">ソース</string>\n    <string name=\"local_source\">ローカルソース</string>\n    <string name=\"tabs_header\">タブ</string>\n    <string name=\"email\">メールアドレス</string>\n    <string name=\"downloaded_only_summary\">ライブラリにある項目はフィルターされます</string>\n    <string name=\"label_downloaded_only\">ダウンロード済みのみ</string>\n    <string name=\"check_for_updates\">更新を確認</string>\n    <string name=\"licenses\">オープンソースライセンス</string>\n    <string name=\"website\">Webサイト</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">デバイス設定を開きませんでした</string>\n    <string name=\"battery_optimization_disabled\">バッテリー最適化は既に無効です</string>\n    <string name=\"pref_disable_battery_optimization_summary\">バックグラウンドでのライブラリ更新とバックアップの役に立ちます</string>\n    <string name=\"pref_disable_battery_optimization\">バッテリー最適化を無効にする</string>\n    <string name=\"pref_refresh_library_covers\">ライブラリの表紙を更新</string>\n    <string name=\"label_data\">データ</string>\n    <string name=\"restoring_backup_canceled\">復元をキャンセルしました</string>\n    <string name=\"restoring_backup_error\">バックアップを復元できませんでした</string>\n    <string name=\"restore_in_progress\">既に復元中です</string>\n    <string name=\"creating_backup_error\">バックアップできませんでした</string>\n    <string name=\"backup_in_progress\">既にバックアップ中です</string>\n    <string name=\"restore_duration\">%1$02d分%2$02d 秒</string>\n    <string name=\"backup_restore_missing_sources\">ソースがありません:</string>\n    <string name=\"invalid_backup_file_missing_manga\">バックアップにはライブラリの項目が含まれません。</string>\n    <string name=\"invalid_backup_file\">無効なバックアップファイル：</string>\n    <string name=\"tracking_info\">一方同期の外部追跡サービスにある章の読書進捗を更新します。個別の項目の「同期」ボタンで追跡サービスを設定してください。</string>\n    <string name=\"pref_webtoon_side_padding\">余白</string>\n    <string name=\"pref_category_reading\">読書中</string>\n    <string name=\"pref_always_show_chapter_transition\">章の間の遷移ページを常に表示</string>\n    <string name=\"vertical_plus_viewer\">ギャップ付き縦長のストリップ</string>\n    <string name=\"gray_background\">グレー</string>\n    <string name=\"pref_skip_filtered_chapters\">フィルターされた章をスキップ</string>\n    <string name=\"filter_mode_darken\">焼き込み/比較（暗）</string>\n    <string name=\"filter_mode_lighten\">覆い焼き/比較（明）</string>\n    <string name=\"filter_mode_multiply\">乗算</string>\n    <string name=\"pref_cutout_short\">画面の切り抜きエリアにも内容を表示</string>\n    <string name=\"ext_updates_pending\">更新あり</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">ライブラリを更新時、新しい表紙と情報を確認します</string>\n    <string name=\"pref_library_update_refresh_metadata\">メタデータを自動で更新</string>\n    <string name=\"pref_library_columns\">行あたりのアイテム数</string>\n    <string name=\"pref_category_display\">画面</string>\n    <string name=\"hide_notification_content\">通知内容を非表示</string>\n    <string name=\"secure_screen_summary\">セキュア画面はアプリを切り替える時アプリの内容を非表示し、画面キャプチャを無効化します</string>\n    <string name=\"action_move_to_bottom\">底に移動</string>\n    <string name=\"action_move_to_top\">トップに移動</string>\n    <string name=\"action_oldest\">最古</string>\n    <string name=\"action_unpin\">ピン留めを外す</string>\n    <string name=\"action_pin\">ピン留め</string>\n    <string name=\"action_display_show_tabs\">カテゴリータブを表示</string>\n    <string name=\"action_display_comfortable_grid\">快適グリッド</string>\n    <string name=\"action_migrate\">移行</string>\n    <string name=\"action_disable_all\">全て無効にする</string>\n    <string name=\"action_enable_all\">全て有効にする</string>\n    <string name=\"action_select_inverse\">選択を反転</string>\n    <string name=\"action_menu\">メニュー</string>\n    <string name=\"channel_new_chapters\">章の更新</string>\n    <string name=\"information_webview_outdated\">WebViewアプリを更新して互換性を向上させてください</string>\n    <string name=\"information_webview_required\">WebViewが必要です</string>\n    <string name=\"updating_library\">ライブラリを更新中</string>\n    <string name=\"viewer\">ビューアモード</string>\n    <string name=\"manga_info_collapse\">詳細を非表示</string>\n    <string name=\"channel_ext_updates\">拡張機能の更新</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflareをバイパスできませんでした</string>\n    <string name=\"notification_chapters_single_and_more\">第%1$s章とその他%2$d章</string>\n    <string name=\"notification_chapters_multiple\">第%1$s章</string>\n    <string name=\"recent_manga_time\">第%1$s章 - %2$s</string>\n    <string name=\"page_list_empty_error\">ページが見つかりません</string>\n    <string name=\"pref_category_for_this_series\">このシリーズでは</string>\n    <string name=\"add_tracking\">追跡を追加</string>\n    <string name=\"add_to_library\">ライブラリに追加</string>\n    <string name=\"sort_by_upload_date\">アップロード日付順</string>\n    <string name=\"manga_info_expand\">詳細を表示</string>\n    <string name=\"in_library\">ライブラリ内</string>\n    <string name=\"local_source_help_guide\">ローカルソースガイド</string>\n    <string name=\"pinned_sources\">ピン留め済み</string>\n    <string name=\"last_used_source\">最近に使用</string>\n    <string name=\"pref_show_reading_mode_summary\">現在のビューアモードを、ビューアが立ち上がるとしばらく表示します</string>\n    <string name=\"pref_show_reading_mode\">ビューアモードを表示</string>\n    <string name=\"loader_not_implemented_error\">ソースが見つかりませんでした</string>\n    <string name=\"action_disable\">無効化</string>\n    <string name=\"action_start\">開始</string>\n    <string name=\"tapping_inverted_both\">両方</string>\n    <string name=\"tapping_inverted_vertical\">縦</string>\n    <string name=\"tapping_inverted_horizontal\">水平</string>\n    <string name=\"tapping_inverted_none\">なし</string>\n    <string name=\"unknown_status\">不明なステータス</string>\n    <string name=\"unknown_author\">作者不明</string>\n    <string name=\"requires_app_restart\">変更を適用するには再起動してください</string>\n    <string name=\"label_network\">ネットワーク</string>\n    <string name=\"pref_read_with_tapping_inverted\">タップでのページめくりを反転</string>\n    <string name=\"updated_version\">v%1$sに更新しました</string>\n    <string name=\"whats_new\">更新情報</string>\n    <string name=\"pref_category_reading_mode\">読み方</string>\n    <string name=\"channel_complete\">完了</string>\n    <string name=\"channel_progress\">プログレス</string>\n    <string name=\"download_insufficient_space\">空き領域不足のため、章をダウンロードできませんでした</string>\n    <string name=\"no_pinned_sources\">ピンソースがありません</string>\n    <string name=\"action_global_search_query\">グローバルで「%1$s」を探す</string>\n    <string name=\"pref_category_theme\">テーマ</string>\n    <string name=\"action_sort_date_added\">ライブラリへの追加日付順</string>\n    <string name=\"channel_errors\">エラー</string>\n    <string name=\"backup_restore_missing_trackers\">ログインしていないトラッカー:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">ブックマークした章の削除を許可</string>\n    <string name=\"pref_category_delete_chapters\">章を削除</string>\n    <string name=\"ext_nsfw_warning\">この拡張機能のソースには成人向けのコンテンツが含まれる可能性があります</string>\n    <string name=\"ext_nsfw_short\">成人向け</string>\n    <string name=\"parental_controls_info\">非公式や誤ってフラグ付けされた可能性のある拡張機能の成人向けのコンテンツはこれからも表示される恐れがあります。</string>\n    <string name=\"no_chapters_error\">章が見つかりません</string>\n    <string name=\"chapter_settings_updated\">デフォルトの章設定を更新しました</string>\n    <string name=\"share_page_info\">%1$s: %2$s、第%3$dページ</string>\n    <string name=\"set_chapter_settings_as_default\">デフォルトとして設定</string>\n    <string name=\"also_set_chapter_settings_for_library\">ライブラリにあるすべての項目にも適用</string>\n    <string name=\"confirm_set_chapter_settings\">デフォルト設定として保存しますか？</string>\n    <string name=\"chapter_settings\">章の設定</string>\n    <string name=\"action_search_settings\">検索設定</string>\n    <string name=\"downloaded_chapters\">ダウンロードした章の数</string>\n    <string name=\"manga_from_library\">ライブラリ内から</string>\n    <string name=\"pref_incognito_mode_summary\">閲覧履歴の記録を一時停止します</string>\n    <string name=\"pref_incognito_mode\">シークレット モード</string>\n    <string name=\"pref_clear_history\">履歴を全消去</string>\n    <string name=\"clear_history_confirmation\">履歴がすべて失われます。続行しますか？</string>\n    <string name=\"clear_history_completed\">履歴が削除されました</string>\n    <string name=\"spen_next_page\">次のページ</string>\n    <string name=\"spen_previous_page\">前のページ</string>\n    <string name=\"migration_help_guide\">ソース移行ガイド</string>\n    <string name=\"pref_category_nsfw_content\">成人向けのソース</string>\n    <string name=\"pref_show_nsfw_source\">ソース・拡張機能リストに表示</string>\n    <string name=\"file_picker_error\">ファイルを選択できるアプリが見つかりません</string>\n    <string name=\"myanimelist_relogin\">もう一度MALにログインしてください</string>\n    <string name=\"action_display_show_number_of_items\">アイテム数を表示する</string>\n    <string name=\"track_finished_reading_date\">読み終わった日付</string>\n    <string name=\"track_started_reading_date\">読み始めた日付</string>\n    <string name=\"edge_nav\">角</string>\n    <string name=\"action_order_by_chapter_number\">章の番号順</string>\n    <string name=\"action_order_by_upload_date\">アップロードされた日付順</string>\n    <string name=\"action_filter_tracked\">登録済み</string>\n    <string name=\"pref_dump_crash_logs_summary\">開発者に渡すよう、エラー ログを保存します</string>\n    <string name=\"pref_dump_crash_logs\">クラッシュ ログを共有</string>\n    <string name=\"pref_viewer_nav\">タップ可能なゾーン</string>\n    <string name=\"right_and_left_nav\">右と左</string>\n    <string name=\"kindlish_nav\">Kindleスタイル</string>\n    <string name=\"l_nav\">L形</string>\n    <string name=\"action_desc\">降順</string>\n    <string name=\"action_asc\">昇順</string>\n    <string name=\"pref_dual_page_invert_summary\">分割された幅広いページの配置が読む方向と一致しない場合は有効にしてください</string>\n    <string name=\"pref_dual_page_invert\">分割ページの配置を反転</string>\n    <string name=\"pref_dual_page_split\">幅広いページの分割</string>\n    <string name=\"backup_restore_content_full\">後で手動で必要な拡張機能をインストールし、使用したい追跡サービスにログインしてください。</string>\n    <string name=\"nav_zone_right\">右</string>\n    <string name=\"nav_zone_left\">左</string>\n    <string name=\"nav_zone_next\">次へ</string>\n    <string name=\"nav_zone_prev\">前へ</string>\n    <string name=\"pref_show_navigation_mode_summary\">ビューアが立ち上がるとしばらく表示します</string>\n    <string name=\"pref_show_navigation_mode\">タップ可能なゾーンを表示</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"pref_download_new_categories_details\">含まれているカテゴリーに入っていても、除外対象カテゴリーにある項目は更新されません。</string>\n    <string name=\"pref_category_auto_download\">自動ダウンロード</string>\n    <string name=\"exclude\">下記を除外: %s</string>\n    <string name=\"include\">下記を含む: %s</string>\n    <string name=\"none\">なし</string>\n    <string name=\"pref_library_update_categories_details\">含まれているカテゴリーに入っていても、除外対象カテゴリーにある項目は更新されません。</string>\n    <string name=\"action_show_errors\">タップで詳細を表示</string>\n    <string name=\"action_sort_chapter_fetch_date\">章の取得された日付順</string>\n    <string name=\"information_empty_category_dialog\">まだカテゴリを登録していません。</string>\n    <string name=\"update_check_eol\">このAndroidはもうサポートされていません</string>\n    <string name=\"error_no_match\">結果が見つかりませんでした</string>\n    <string name=\"source_unsupported\">非対応ソースです</string>\n    <string name=\"unread\">未読</string>\n    <string name=\"error_sharing_cover\">表紙を共有できませんでした</string>\n    <string name=\"error_saving_cover\">表紙を保存できませんでした</string>\n    <string name=\"cover_saved\">表紙を保存しました</string>\n    <string name=\"manga_cover\">表紙</string>\n    <string name=\"clipboard_copy_error\">クリップボードにコピーできませんでした</string>\n    <string name=\"date\">日付</string>\n    <string name=\"local_filter_order_by\">並び替え</string>\n    <string name=\"local_invalid_format\">章フォーマットが無効です</string>\n    <string name=\"chapter_not_found\">章が見つかりませんでした</string>\n    <string name=\"notification_incognito_text\">シークレットモードを無効にする</string>\n    <string name=\"tracking_guide\">追跡ガイド</string>\n    <string name=\"rotation_type\">画面向き</string>\n    <string name=\"automatic_background\">自動</string>\n    <string name=\"pref_create_folder_per_manga_summary\">項目のタイトルに基づいてフォルダを作成</string>\n    <string name=\"pref_create_folder_per_manga\">別々のフォルダにページを保存</string>\n    <string name=\"pref_reader_actions\">操作</string>\n    <string name=\"pref_grayscale\">グレースケール</string>\n    <string name=\"off\">オフ</string>\n    <string name=\"on\">オン</string>\n    <string name=\"categorized_display_settings\">カテゴリ別のソート設定</string>\n    <string name=\"restrictions\">制限: %s</string>\n    <string name=\"cancel_all_for_series\">このシリーズの全項目をキャンセル</string>\n    <string name=\"action_display_local_badge\">ローカル ソース</string>\n    <string name=\"rotation_landscape\">横向き</string>\n    <string name=\"rotation_portrait\">縦向き</string>\n    <string name=\"pref_dark_theme_pure_black\">真っ黒モード</string>\n    <string name=\"theme_yotsuba\">四つ葉</string>\n    <string name=\"theme_yinyang\">陰陽</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">ストロベリーダイキリ</string>\n    <string name=\"theme_midnightdusk\">黄昏</string>\n    <string name=\"theme_greenapple\">青りんご</string>\n    <string name=\"pref_app_theme\">アプリテーマ</string>\n    <string name=\"action_start_downloading_now\">ダウンロードを開始します</string>\n    <string name=\"theme_monet\">ダイナミック</string>\n    <string name=\"about_dont_kill_my_app\">一部のスマホメーカーはバックグラウンドサービスを終了する追加のアプリ制限を施しています。修正する方法についてはこのWebサイトをご覧ください。</string>\n    <string name=\"label_background_activity\">バックグラウンドアクティビティ</string>\n    <string name=\"restore_miui_warning\">MIUI最適化が有効な場合はバックアップ・復元が正常に機能しない恐れがあります。</string>\n    <string name=\"pref_lowest\">最低</string>\n    <string name=\"pref_low\">低い</string>\n    <string name=\"pref_high\">高い</string>\n    <string name=\"pref_highest\">最高</string>\n    <string name=\"pref_inverted_colors\">反転配色</string>\n    <string name=\"relative_time_today\">今日</string>\n    <string name=\"help_translate\">翻訳に協力</string>\n    <string name=\"getting_started_guide\">入門ガイド</string>\n    <string name=\"pref_tablet_ui_mode\">タブレットUI</string>\n    <string name=\"action_track\">追跡</string>\n    <string name=\"pref_remove_exclude_categories\">除外されるカテゴリー</string>\n    <string name=\"pref_hide_threshold\">メニューを自動非表示するスクロール量</string>\n    <string name=\"theme_tealturquoise\">ティール &amp; ターコイズ</string>\n    <string name=\"pref_category_appearance\">外観</string>\n    <string name=\"confirm_lock_change\">認証を行って変更を確認してください</string>\n    <string name=\"label_default\">デフォルト</string>\n    <string name=\"ext_installer_legacy\">レガシー</string>\n    <string name=\"ext_installer_pref\">インストーラ</string>\n    <string name=\"ext_app_info\">アプリの情報</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizukuを拡張機能インストーラーとして使用するには、Shizukuをインストールして起動してください。</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizukuは実行中ではありません</string>\n    <string name=\"action_sort_count\">項目数</string>\n    <string name=\"ext_install_service_notif\">拡張機能をインストール中…</string>\n    <string name=\"enhanced_services\">高度な追跡サービス</string>\n    <string name=\"enhanced_tracking_info\">特定ソース専用の高度な機能を提供します。項目はライブラリに追加される時、自動で追跡され始めます。</string>\n    <string name=\"backup_info\">ほかの場所にもバックアップのコピーを保管してください。バックアップには保存されたパスワードなどの機密性の高い情報が含まれることがあります。共有時に十分ご注意ください。</string>\n    <string name=\"pref_verbose_logging_summary\">システムログにverboseログを出力（アプリのパフォーマンスが低下します）</string>\n    <string name=\"notification_size_warning\">大規模のアップデートはソースに有害で、ソースを遅くし、電池の消耗を増加する可能性があります。詳しくはタップでご覧ください。</string>\n    <string name=\"action_display_language_badge\">言語</string>\n    <string name=\"label_warning\">警告</string>\n    <string name=\"pref_verbose_logging\">Verboseログ出力</string>\n    <string name=\"download_queue_size_warning\">警告：大量のダウンロードは、ソースの速度低下や %s のブロックにつながる可能性があります。詳細を確認するにはタップしてください。</string>\n    <string name=\"update_72hour\">3日ごと</string>\n    <string name=\"connected_to_wifi\">Wi-Fi接続時のみ</string>\n    <string name=\"ext_update_all\">全て更新</string>\n    <string name=\"channel_app_updates\">アプリ更新</string>\n    <string name=\"clear_database_source_item_count\">データベースにはライブラリにない項目は%1$d件あります</string>\n    <string name=\"pref_auto_clear_chapter_cache\">アプリ起動時に章のキャッシュを消去</string>\n    <string name=\"database_clean\">消去できるものはありませんでした</string>\n    <string name=\"extension_api_error\">利用可能な拡張機能を取得できませんでした</string>\n    <string name=\"privacy_policy\">プライバシーポリシー</string>\n    <string name=\"pref_update_only_completely_read\">未読の章がある作品をスキップ</string>\n    <string name=\"library_errors_help\">ライブラリ更新エラーの修正については、%1$sをご覧ください</string>\n    <string name=\"save_chapter_as_cbz\">CBZアーカイブとして保存</string>\n    <string name=\"publishing_finished\">完結済み</string>\n    <string name=\"cancelled\">キャンセル済み</string>\n    <string name=\"on_hiatus\">休載中</string>\n    <string name=\"action_show_manga\">項目を表示</string>\n    <string name=\"action_display_cover_only_grid\">表紙グリッド</string>\n    <string name=\"pref_update_only_started\">読み始めていない作品をスキップ</string>\n    <string name=\"skipped_reason_not_caught_up\">未読の章がある為スキップしました</string>\n    <string name=\"pref_landscape_zoom\">横長の画像に自動でズームイン</string>\n    <string name=\"skipped_reason_completed\">完結済みの為スキップしました</string>\n    <string name=\"skipped_reason_not_started\">読了した章がない為スキップしました</string>\n    <string name=\"pref_navigate_pan\">幅広い画像を左右に移動</string>\n    <string name=\"learn_more\">タップでもっと詳しく</string>\n    <string name=\"notification_update_error\">%1$d件の更新に失敗しました</string>\n    <string name=\"rotation_reverse_portrait\">縦向き (反転)</string>\n    <string name=\"action_move_to_top_all_for_series\">シリーズをトップに移動</string>\n    <string name=\"disabled_nav\">無効</string>\n    <string name=\"empty_backup_error\">バックアップできるライブラリ項目はありません</string>\n    <string name=\"update_check_open\">GitHubに移動</string>\n    <string name=\"error_saving_picture\">画像の保存時にエラー発生</string>\n    <string name=\"action_close\">閉じる</string>\n    <string name=\"pref_clear_webview_data\">WebViewデータを消去</string>\n    <string name=\"webview_data_deleted\">WebViewデータを消去しました</string>\n    <string name=\"source_empty_screen\">ソースが見つかりません</string>\n    <string name=\"source_filter_empty_screen\">インストール済みのソースが見つかりません</string>\n    <string name=\"action_sort_last_manga_update\">前回の更新確認</string>\n    <string name=\"action_sort_unread_count\">未読の章数</string>\n    <string name=\"split_tall_images_summary\">ビューアのパフォーマンスを向上させます</string>\n    <string name=\"download_notifier_split_page_not_found\">分割時にページ%dが見つかりませんでした</string>\n    <string name=\"pref_reset_viewer_flags\">シリーズ別のビューア設定をリセット</string>\n    <string name=\"pref_reset_viewer_flags_summary\">各シリーズのビューアモードと画面向きをリセットします</string>\n    <string name=\"download_notifier_split_page_path_not_found\">ページ%dのファイルパスが見つかりませんでした</string>\n    <string name=\"pref_reset_viewer_flags_success\">ビューア設定を全てリセットしました</string>\n    <string name=\"pref_reset_viewer_flags_error\">ビューア設定をリセットできませんでした</string>\n    <string name=\"empty_screen\">えっと、こりゃまずいですね</string>\n    <string name=\"ext_info_version\">バージョン</string>\n    <string name=\"ext_info_language\">言語</string>\n    <string name=\"ext_info_age_rating\">レイティング区分</string>\n    <string name=\"network_not_metered\">非従量制課金接続でのみ</string>\n    <string name=\"reading_list\">読書中リスト</string>\n    <string name=\"wish_list\">読みたいリスト</string>\n    <string name=\"unfinished_list\">未読了リスト</string>\n    <string name=\"complete_list\">読了リスト</string>\n    <string name=\"on_hold_list\">後で読むリスト</string>\n    <string name=\"cant_open_last_read_chapter\">最後に読んだ章を開けませんでした</string>\n    <string name=\"custom_cover\">カスタム表紙</string>\n    <string name=\"not_installed\">未インストール</string>\n    <string name=\"pref_app_language\">アプリ言語</string>\n    <string name=\"theme_lavender\">ラベンダー</string>\n    <string name=\"description_placeholder\">説明がありません</string>\n    <string name=\"delete_category_confirmation\">カテゴリー「%s」を削除しますか？</string>\n    <string name=\"delete_category\">カテゴリーを削除</string>\n    <string name=\"internal_error\">InternalError: 詳しくはクラッシュ ログをご参照ください</string>\n    <string name=\"pref_user_agent_string\">デフォルトのユーザーエージェント文字列</string>\n    <string name=\"pref_reset_user_agent_string\">デフォルトのユーザーエージェント文字列をリセットする</string>\n    <string name=\"action_remove_everything\">全て削除</string>\n    <string name=\"appwidget_updates_description\">最近更新されたライブラリの項目を見る</string>\n    <string name=\"appwidget_unavailable_locked\">アプリロックがONの時、ウィジェットは利用できません</string>\n    <string name=\"update_already_running\">アップデートはすでに進行中です</string>\n    <string name=\"error_user_agent_string_blank\">ユーザーエージェント文字列を入力してください</string>\n    <string name=\"theme_tidalwave\">津波</string>\n    <string name=\"download_ahead\">事前ダウンロード</string>\n    <string name=\"auto_download_while_reading\">読書中に自動でダウンロード</string>\n    <string name=\"download_ahead_info\">現在のと次の章は既にダウンロード済みの場合のみ有効です。</string>\n    <string name=\"are_you_sure\">本当に実行しますか？</string>\n    <string name=\"multi_lang\">多言語</string>\n    <string name=\"updates_last_update_info\">前回のライブラリ更新: %s</string>\n    <string name=\"remove_manga\">ライブラリから「%s」を削除しようとしています</string>\n    <string name=\"popular\">人気</string>\n    <string name=\"missing_storage_permission\">ストレージ権限を持っていません</string>\n    <string name=\"skipped_reason_not_always_update\">シリーズは更新を必要としないため、スキップされました</string>\n    <string name=\"action_search_hint\">検索…</string>\n    <string name=\"crash_screen_description\">%sでは予期せぬエラーが発生しました。お手数ですが、クラッシュ ログを Discord のサポート チャネルで共有するようお願い致します。</string>\n    <string name=\"invalid_location\">無効な場所: %s</string>\n    <string name=\"unknown_title\">不明なタイトル</string>\n    <string name=\"error_user_agent_string_invalid\">ユーザー エージェント文字列が無効です</string>\n    <string name=\"crash_screen_title\">おっと！</string>\n    <string name=\"updates_last_update_info_just_now\">ちょうど今</string>\n    <string name=\"crash_screen_restart_application\">アプリケーションを再起動</string>\n    <string name=\"pref_reader_summary\">ビューアモード、表示、ナビゲーション</string>\n    <string name=\"pref_downloads_summary\">自動ダウンロード、事前ダウンロード</string>\n    <string name=\"pref_tracking_summary\">一方同期、高度な同期</string>\n    <string name=\"pref_browse_summary\">ソース、拡張機能、グローバル検索</string>\n    <string name=\"pref_backup_summary\">手動・自動バックアップ、ストレージ領域</string>\n    <string name=\"pref_security_summary\">アプリロック、セキュア画面</string>\n    <string name=\"pref_advanced_summary\">クラッシュ ログのダンプ、バッテリーの最適化</string>\n    <string name=\"pref_appearance_summary\">テーマ、日付と時刻の形式</string>\n    <string name=\"pref_library_summary\">カテゴリ、グローバル アップデート、章の間のスワイプ</string>\n    <string name=\"action_open_random_manga\">おまかせ閲覧</string>\n    <string name=\"information_no_entries_found\">このカテゴリに項目がありません</string>\n    <string name=\"download_notifier_cache_renewal\">ダウンロード内容を検査しています</string>\n    <string name=\"fdroid_warning\">F-Droidビルドは正式にサポートされていません。\n\\n詳細はタップしてご覧ください。</string>\n    <string name=\"action_display_show_continue_reading_button\">続きを読むボタン</string>\n    <string name=\"track_remove_date_conf_title\">日付を削除しますか？</string>\n    <string name=\"pref_invalidate_download_cache\">ダウンロードのインデックスを再作成する</string>\n    <string name=\"track_remove_finish_date_conf_text\">%sで指定された終了日付を消去します</string>\n    <string name=\"track_remove_start_date_conf_text\">%sで指定された開始日付を消去します</string>\n    <string name=\"pref_invalidate_download_cache_summary\">ダウンロードした章の再スキャンを強制</string>\n    <string name=\"label_local\">ローカル</string>\n    <string name=\"label_started\">開始済み</string>\n    <string name=\"label_read_duration\">閲覧時間</string>\n    <string name=\"label_titles_section\">作品</string>\n    <string name=\"label_titles_in_global_update\">グローバルアップデート</string>\n    <string name=\"label_total_chapters\">合計</string>\n    <string name=\"label_read_chapters\">閲覧済み</string>\n    <string name=\"label_tracker_section\">トラッカー</string>\n    <string name=\"label_tracked_titles\">トラッキング中の作品</string>\n    <string name=\"label_used\">使用中</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"hour_short\">%d時間</string>\n    <string name=\"minute_short\">%d分</string>\n    <string name=\"seconds_short\">%d秒</string>\n    <string name=\"label_stats\">統計情報</string>\n    <string name=\"label_overview_section\">概要</string>\n    <string name=\"label_completed_titles\">読み終わった作品</string>\n    <string name=\"label_downloaded\">ダウンロード済み</string>\n    <string name=\"label_mean_score\">平均</string>\n    <string name=\"day_short\">%d日</string>\n    <string name=\"action_not_now\">後で</string>\n    <string name=\"information_no_manga_category\">カテゴリが空です</string>\n    <string name=\"pref_library_update_show_tab_badge\">アップデートアイコンに未読メッセージの件数を表示</string>\n    <string name=\"copied_to_clipboard_plain\">クリップボードにコピーしました</string>\n    <string name=\"enhanced_services_not_installed\">利用可能ですが未インストールのソース: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">重複の章をスキップ</string>\n    <string name=\"track_error\">%1$s エラー: %2$s</string>\n    <string name=\"information_required_plain\">*必須</string>\n    <string name=\"action_copy_to_clipboard\">クリップボードにコピー</string>\n    <string name=\"pref_hide_in_library_items\">ライブラリにある項目を非表示</string>\n    <string name=\"action_update_category\">カテゴリを更新</string>\n    <string name=\"split_tall_images\">長い画像を分割</string>\n    <string name=\"overlay_header\">オーバーレイ</string>\n    <string name=\"pref_page_rotate\">画面に合わせるように幅広いページを回転</string>\n    <string name=\"pref_page_rotate_invert\">回転した幅広いページの向きを反転</string>\n    <string name=\"pref_debug_info\">デバッグ情報</string>\n    <string name=\"pref_chapter_swipe_start\">左にスワイプする章</string>\n    <string name=\"pref_chapter_swipe_end\">右にスワイプする章</string>\n    <string name=\"pref_double_tap_zoom\">ダブルタップでズーム</string>\n    <string name=\"action_set_interval\">間隔を設定</string>\n    <string name=\"action_filter_interval_custom\">カスタマイズした更新頻度</string>\n    <string name=\"action_sort_next_updated\">次の更新予定</string>\n    <string name=\"pref_update_only_in_release_period\">次の更新時点を予測</string>\n    <string name=\"intervals_header\">間隔</string>\n    <string name=\"skipped_reason_not_in_release_period\">今日、連載更新が予想されていないためスキップしました</string>\n    <string name=\"has_results\">結果あり</string>\n    <string name=\"track_delete_title\">%s の追跡を削除しますか?</string>\n    <string name=\"manga_display_interval_title\">毎に評価</string>\n    <string name=\"manga_display_modified_interval_title\">ごとに更新するように設定する</string>\n    <string name=\"track_delete_text\">ローカルの追跡が削除されます。</string>\n    <string name=\"track_delete_remote_text\">%s からも削除</string>\n    <string name=\"delete_downloaded\">ダウンロードを削除</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"syncing_library\">ライブラリを同期しています</string>\n    <string name=\"library_sync_complete\">ライブラリを同期しました</string>\n    <string name=\"information_cloudflare_help\">Cloudflareに関するヘルプ情報はこちら</string>\n    <string name=\"download_cache_invalidated\">ダウンロード インデックスを消去しました</string>\n    <string name=\"create_backup_file_error\">バックアップ ファイルを作成できませんでした</string>\n    <string name=\"track_activity_name\">追跡サービスにログイン</string>\n    <string name=\"exception_http\">HTTP %d、WebViewでこのWebサイトを確認してください</string>\n    <string name=\"exception_offline\">インターネット接続がありません</string>\n    <string name=\"exception_unknown_host\">%sにアクセスできませんでした</string>\n    <string name=\"unlock_app_title\">%sをアンロック</string>\n    <string name=\"action_move_to_bottom_all_for_series\">シリーズを底に移動</string>\n    <string name=\"pref_relative_format\">相対的なタイムスタンプ</string>\n    <string name=\"pref_relative_format_summary\">「%2$s」の代わりに「%1$s」を使用</string>\n    <string name=\"notification_updating_progress\">ライブラリの更新中… (%s)</string>\n    <string name=\"source_settings\">ソース設定</string>\n    <string name=\"app_settings\">アプリ設定</string>\n    <string name=\"file_null_uri_error\">選択したファイルがありません</string>\n    <string name=\"relative_time_span_never\">なし</string>\n    <string name=\"pref_flash_page_summ\">Eインク画面の焼き付きを軽減</string>\n    <string name=\"last_auto_backup_info\">前回の自動バックアップ: %s</string>\n    <string name=\"pref_flash_page\">ページめくりの時、画面を点滅させる</string>\n    <string name=\"pref_storage_usage\">使用中のストレージ領域</string>\n    <string name=\"label_data_storage\">データとストレージ</string>\n    <string name=\"action_sort_tracker_score\">トラッカーの評価点数</string>\n    <string name=\"action_create\">作成</string>\n    <string name=\"action_apply\">適用</string>\n    <string name=\"action_revert_to_default\">デフォルトに戻す</string>\n    <string name=\"no_scanlators_found\">スキャンレーターが見つかりませんでした</string>\n    <string name=\"scanlator\">スキャンレーター</string>\n    <string name=\"exclude_scanlators\">スキャンレーターを除外</string>\n    <string name=\"action_menu_overflow_description\">その他のオプション</string>\n    <string name=\"selected\">選択済み</string>\n    <string name=\"not_selected\">未選択</string>\n    <string name=\"action_bar_up_description\">上に移動</string>\n    <string name=\"pref_storage_location\">保存場所</string>\n    <string name=\"pref_storage_location_info\">自動バックアップ、章のダウンロード、ローカル ソースの保存位置となります。</string>\n    <string name=\"onboarding_storage_action_select\">フォルダを選択してください</string>\n    <string name=\"pref_onboarding_guide\">初回設定ガイド</string>\n    <string name=\"onboarding_guides_new_user\">%sは初めて？入門ガイドをチェックしてみしましょう。</string>\n    <string name=\"onboarding_action_finish\">はじめる</string>\n    <string name=\"onboarding_storage_selection_required\">フォルダを選択してください</string>\n    <string name=\"onboarding_heading\">ようこそ！</string>\n    <string name=\"onboarding_guides_returning_user\">%sを再インストールしていますか？</string>\n    <string name=\"onboarding_action_skip\">スキップ</string>\n    <string name=\"onboarding_action_next\">次へ</string>\n    <string name=\"onboarding_description\">はじめに初回設定をしていきましょう。このあとも「設定」にていつも変更できます。</string>\n    <string name=\"no_location_set\">保存場所が設定されていません</string>\n    <string name=\"onboarding_storage_info\">%1$sのダウンロード、バックアップなどの保存先のフォルダを設定してください。\n\\n\n\\nアプリ専用のフォルダの作成・使用がおすすめです。\n\\n\n\\n選択したフォルダ：%2$s</string>\n    <string name=\"onboarding_permission_notifications\">通知の許可</string>\n    <string name=\"onboarding_permission_install_apps\">アプリのインストールの許可</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">時間のかかるライブラリ更新、ダウンロードやバックアップの復元などへの中断を防ぎます。</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">バックグラウンドでのバッテリー使用量</string>\n    <string name=\"onboarding_permission_install_apps_description\">ソース拡張機能をインストールするために必要です。</string>\n    <string name=\"onboarding_permission_notifications_description\">ライブラリ更新などの通知を送信します。</string>\n    <string name=\"onboarding_permission_action_grant\">許可</string>\n    <string name=\"available_disk_space_info\">空き領域：%1$s/総計：%2$s</string>\n    <string name=\"manga_interval_expected_update\">新章は%1$sぐらいでリリースされると予測しており、%2$sごとに確認する予定です。</string>\n    <string name=\"invalid_backup_file_error\">詳細なエラー情報：</string>\n    <string name=\"ext_permission_install_apps_warning\">拡張機能をインストールするためには権限が必要です。タップで許可してください。</string>\n    <string name=\"error_repo_exists\">このリポジトリは既に存在しています！</string>\n    <string name=\"manga_interval_custom_amount\">カスタム更新頻度：</string>\n    <string name=\"action_delete_repo\">リポジトリを削除</string>\n    <string name=\"delete_repo_confirmation\">リポジトリ「%s」を削除してもよろしいですか？</string>\n    <string name=\"onboarding_storage_help_action\">ストレージ ガイド</string>\n    <string name=\"private_settings\">トラッカーログイン情報などの機密性の高い情報を含む</string>\n    <string name=\"manga_interval_expected_update_soon\">間もなく</string>\n    <string name=\"ext_revoke_trust\">不明な拡張機能の信頼を取り消す</string>\n    <string name=\"label_extension_repos\">拡張機能リポジトリ</string>\n    <string name=\"invalid_repo_name\">リポジトリURLが無効です</string>\n    <string name=\"action_add_repo_message\">%sにリポジトリを追加します。「index.min.json」で終わるURLを入力してください。</string>\n    <string name=\"action_add_repo\">リポジトリを追加</string>\n    <string name=\"action_open_repo\">ソース リポジトリを開く</string>\n    <string name=\"onboarding_storage_help_info\">古いバージョンからバージョンアップしたばかりで、選択に悩んでいますか？ストレージ ガイドにご参照ください。</string>\n    <string name=\"information_empty_repos\">リポジトリを設定していません。</string>\n    <string name=\"label_add_repo_input\">リポジトリURL</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"pref_library_update_smart_update\">スマート・アップデート</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">ズームアウトを無効にする</string>\n    <string name=\"action_add_anyway\">追加</string>\n    <string name=\"action_replace_repo\">交換</string>\n    <string name=\"pref_display_profile\">カスタムディスプレイプロファイル</string>\n    <string name=\"upcoming_calendar_prev\">前月</string>\n    <string name=\"upcoming_calendar_next\">翌月</string>\n    <string name=\"label_upcoming\">近々公開</string>\n    <string name=\"action_view_upcoming\">今後のアップデート</string>\n    <string name=\"action_replace_repo_title\">署名キーのフィンガープリントはすでに存在します</string>\n    <string name=\"upcoming_guide\">今後のご案内</string>\n    <string name=\"action_replace_repo_message\">リポジトリ %1$s は %2$s と同じ署名キー指紋を持っています。\n\\nこれが予想される場合は %2$s が置換されますが、そうでない場合はリポジトリのメンテナーに連絡してください。</string>\n    <string name=\"pref_flash_duration\">閃光時間</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">フラッシュ・エブリ</string>\n    <string name=\"pref_flash_with\">フラッシュ</string>\n    <string name=\"pref_flash_style_black\">ブラック</string>\n    <string name=\"pref_flash_style_white\">ホワイト</string>\n    <string name=\"pref_flash_style_white_black\">白と黒</string>\n    <string name=\"manga_interval_expected_update_null\">このマンガは完結しているか、あるいは発売予定日が決まっていない。</string>\n    <string name=\"file_picker_uri_permission_unsupported\">永続フォルダアクセスの取得に失敗しました。 アプリが予期しない動作をする可能性があります。</string>\n    <string name=\"action_copy_link\">リンクをコピーする</string>\n    <string name=\"extensionRepo_settings\">拡張機能リポジトリ</string>\n    <string name=\"invalid_backup_file_json\">JSONバックアップはサポートされていません</string>\n    <string name=\"invalid_backup_file_unknown\">バックアップファイルが壊れている</string>\n    <string name=\"trackers_updated_summary\">トラッカーが章 %d に更新されました</string>\n    <string name=\"action_sort_random\">ランダム</string>\n    <string name=\"onboarding_permission_crashlytics_description\">匿名化されたクラッシュ ログを開発者に送信します。</string>\n    <string name=\"onboarding_permission_analytics\">分析を許可する</string>\n    <string name=\"pref_security\">安全</string>\n    <string name=\"pref_firebase\">分析とクラッシュログ</string>\n    <string name=\"pref_download_new_unread_chapters_only\">重複して読んだ章のダウンロードをスキップする</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">既読としてマークされた場合の更新の進行状況</string>\n    <string name=\"non_library_settings\">すべての既読エントリ</string>\n    <string name=\"onboarding_permission_crashlytics\">クラッシュログを送信する</string>\n    <string name=\"onboarding_permission_analytics_description\">アプリの機能を向上させるために、匿名化された使用状況データを送信します。</string>\n    <string name=\"firebase_summary\">クラッシュ ログと分析を送信することで、問題を特定して修正し、パフォーマンスを向上させ、今後のアップデートを貴方のニーズに合わせたものにすることができます</string>\n    <string name=\"ext_remove\">取り除く</string>\n    <string name=\"ext_confirm_remove\">拡張機能を削除しますか?</string>\n    <string name=\"remove_private_extension_message\">本当に\\\"%s\\\"拡張機能を削除しますか？</string>\n    <string name=\"add_repo_confirmation\">リポジトリ\\\"%s\\\"を追加しますか？</string>\n    <string name=\"confirm_tracker_update\">トラッカーを章 %d に更新しますか？</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">パフォーマンスに影響する。 ビットマップのしきい値を下げてもブランク画像の問題が解決しない場合のみ有効にしてください。</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">デフォルト (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold\">カスタム・ハードウェア・ビットマップ閾値</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">リーダが空の画像を読み込んだ場合は、しきい値を徐々に下げてください。\\n選択されました: %s</string>\n    <string name=\"library_exported\">ライブラリをエクスポートしました</string>\n    <string name=\"action_notes\">ノート</string>\n    <string name=\"action_edit_notes\">ノートを編集</string>\n    <string name=\"export\">バックアップ</string>\n    <string name=\"pref_behavior\">行動</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">章の読了後</string>\n    <string name=\"pref_update_library_manga_titles\">ライブラリーのマンガのタイトルをソースに合わせて更新</string>\n    <string name=\"pref_incognito_mode_extension_summary\">拡張機能の閲覧履歴を一時停止</string>\n    <string name=\"logging_in\">ログイン中…</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">重複する既読章を既読としてマークする</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">新章取得後</string>\n    <string name=\"possible_duplicates_summary\">ライブラリに類似した名前のエントリが存在します。\\n\\n移行するエントリを選択するか、そのまま追加してください。</string>\n    <string name=\"author\">著者</string>\n    <string name=\"artist\">アーティスト</string>\n    <string name=\"action_display_unread_badge\">未読の章</string>\n    <string name=\"storage_failed_to_create_download_directory\">ダウンロードディレクトリの作成に失敗しました</string>\n    <string name=\"storage_failed_to_create_directory\">ディレクトリの作成に失敗しました: %s</string>\n    <string name=\"clear_database_text\">データベースから作品が削除されます</string>\n    <string name=\"clear_database_history_warning\">非図書館エントリの章の読み取りと進捗は失われます</string>\n    <string name=\"clear_db_exclude_read\">読み終えた章を含むエントリーを保持する</string>\n    <string name=\"possible_duplicates_title\">重複の可能性</string>\n    <string name=\"label_donate\">寄付する</string>\n    <string name=\"label_auto\">自動車</string>\n    <string name=\"theme_catppuccin\">キャットプッチン</string>\n    <string name=\"theme_monochrome\">モノクロ</string>\n    <string name=\"pref_display_images_description\">マンガの描写で画像をレンダリングする</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">欠落している章のインジケーターを非表示にする</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">レガシーデコーダーを長尺ストリップリーダーに使用する</string>\n    <string name=\"library_list\">ライブラリーリスト</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">非ASCIIファイル名を許可しない</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">特定のUnicode非対応ストレージメディアとの互換性を確保します。有効にした場合、ソースフォルダとマンガフォルダは手動で名前を変更する必要があります。非ASCII文字を小文字のUTF-8 16進数表記に置き換えてください。チャプターファイルの名前変更は不要です。</string>\n    <string name=\"pref_download_concurrent_sources\">同時ソースダウンロード</string>\n    <string name=\"pref_download_concurrent_pages\">同時ページダウンロード</string>\n    <string name=\"pref_download_concurrent_pages_summary\">ソースごとの同時ダウンロードページ数</string>\n    <string name=\"pref_update_library_manga_titles_summary\">警告：マンガのタイトルが変更された場合、ダウンロードキューから削除されます（存在する場合）。</string>\n    <string name=\"tracked_privately\">非公開で追跡</string>\n    <string name=\"action_toggle_private_on\">非公開で追跡する</string>\n    <string name=\"action_toggle_private_off\">公開で追跡する</string>\n    <string name=\"action_webview_close_tab\">タブを閉じる</string>\n    <string name=\"migrationConfigScreen.availableHeader\">利用可能</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">すべて選択</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">有効なソースを選択</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">固定されたソースを選択</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">移行するデータ</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/jv/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d dinten kala-wingi</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">Sawise %1$s menit</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d kategori</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">%1$d Dino engkas</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">Nggawe %d chapter sing gorong diwoco</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">Mari kurang %1$s karo %2$s kaluputan</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">Kurang %1$s</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d dina</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s latar</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">%1$s bab Ilang</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">%1$s bab</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">Puniki %d chapter</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d pelacak</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">Nglangkungi %d bab, embuh sumbere ilang utawa wis difilter</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">kanggo entri %d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d bab anyar</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">Bab %1$s lan %2$d liyane</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">Wonten %d Nganyari ekstensi</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d repo</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">Pindhah %1$d entri?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">Salin %1$d entri?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d entri lewatin</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/jv/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"update_check_notification_download_in_progress\">Ndonlot…</string>\n    <string name=\"update_check_confirm\">Donlot</string>\n    <string name=\"track_type\">Jinis</string>\n    <string name=\"title\">Judhul</string>\n    <string name=\"no_chapters_error\">Ora ditemokake bab</string>\n    <string name=\"manga_download\">Donlot</string>\n    <string name=\"display_mode_chapter\">bab %1$s</string>\n    <string name=\"other_source\">Liyane</string>\n    <string name=\"password\">Sandhi</string>\n    <string name=\"username\">Jeneng pangguna</string>\n    <string name=\"version\">Versi</string>\n    <string name=\"pref_dns_over_https\">DNS liwat HTTPS</string>\n    <string name=\"disabled\">Dipateni</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"color_filter_b_value\">Biru</string>\n    <string name=\"color_filter_g_value\">Ijo</string>\n    <string name=\"color_filter_r_value\">Abang</string>\n    <string name=\"double_tap_anim_speed_fast\">Cepet</string>\n    <string name=\"zoom_start_right\">Nengen</string>\n    <string name=\"zoom_start_left\">Ngiwa</string>\n    <string name=\"right_to_left_viewer\">Nengen moro ngiwa</string>\n    <string name=\"left_to_right_viewer\">Ngiwa moro nengen</string>\n    <string name=\"nav_zone_right\">Nengen</string>\n    <string name=\"nav_zone_left\">Ngiwa</string>\n    <string name=\"black_background\">Ireng</string>\n    <string name=\"gray_background\">Klawu</string>\n    <string name=\"white_background\">Putih</string>\n    <string name=\"pref_fullscreen\">Layar wutuh</string>\n    <string name=\"all\">Kabeh</string>\n    <string name=\"charging\">Pas ngisi daya</string>\n    <string name=\"update_weekly\">Saben minggu</string>\n    <string name=\"update_48hour\">Saben 2 dina</string>\n    <string name=\"update_24hour\">Saben dina</string>\n    <string name=\"update_12hour\">Saben 12 jam</string>\n    <string name=\"update_6hour\">Saben 6 jam</string>\n    <string name=\"landscape\">Lansekap</string>\n    <string name=\"portrait\">Potret</string>\n    <string name=\"pref_category_display\">Tampilan</string>\n    <string name=\"pref_date_format\">Format tanggal</string>\n    <string name=\"theme_dark\">Murup</string>\n    <string name=\"theme_light\">Mati</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"pref_category_downloads\">Donlot</string>\n    <string name=\"action_webview_back\">Bali</string>\n    <string name=\"action_open_log\">Mbukak log</string>\n    <string name=\"action_save\">Simpen</string>\n    <string name=\"action_move_to_bottom\">Pindhah paling ngisor</string>\n    <string name=\"action_move_to_top\">Pindhah paling ndhuwur</string>\n    <string name=\"action_oldest\">Paling lawas</string>\n    <string name=\"action_newest\">Paling anyar</string>\n    <string name=\"action_disable\">Pateni</string>\n    <string name=\"action_display_list\">Dhaptar</string>\n    <string name=\"action_open_in_web_view\">Bukak ing WebView</string>\n    <string name=\"action_open_in_browser\">Bukak ing browser</string>\n    <string name=\"action_retry\">Jajal maneh</string>\n    <string name=\"action_next_chapter\">Bab sabanjure</string>\n    <string name=\"action_previous_chapter\">Bab sadurunge</string>\n    <string name=\"action_view_chapters\">Ndeleng bab</string>\n    <string name=\"action_rename_category\">Ganti jeneng kategori</string>\n    <string name=\"action_edit_categories\">Sunting kategori</string>\n    <string name=\"action_add_category\">Tambah kategori</string>\n    <string name=\"action_add\">Tambah</string>\n    <string name=\"action_edit\">Sunting</string>\n    <string name=\"action_disable_all\">Pateni kabeh</string>\n    <string name=\"action_enable_all\">Aktifke kabeh</string>\n    <string name=\"action_delete\">Mbusak</string>\n    <string name=\"action_download\">Donlot</string>\n    <string name=\"action_select_inverse\">Pilih kuwalik</string>\n    <string name=\"action_select_all\">Pilih kabeh</string>\n    <string name=\"action_search_settings\">Golek setting</string>\n    <string name=\"action_search\">Golek</string>\n    <string name=\"action_sort_date_added\">Tanggal ditambahke</string>\n    <string name=\"action_sort_latest_chapter\">Bab paling anyar</string>\n    <string name=\"action_sort_total\">Total bab</string>\n    <string name=\"action_sort_alpha\">Miturut abjad</string>\n    <string name=\"action_filter_unread\">Durung kewoco</string>\n    <string name=\"action_filter\">Saringan</string>\n    <string name=\"action_settings\">Pengaturan</string>\n    <string name=\"history\">Sejarah</string>\n    <string name=\"categories\">Kategori</string>\n    <string name=\"information_no_recent\">Ora ono updetan anyar</string>\n    <string name=\"information_no_downloads\">Ora ono donlotan</string>\n    <string name=\"label_help\">Nulungi</string>\n    <string name=\"label_extension_info\">Info Ekstensi</string>\n    <string name=\"label_extensions\">Ekstensi</string>\n    <string name=\"label_migration\">Pindah</string>\n    <string name=\"label_backup\">Serep lan mulihake</string>\n    <string name=\"label_sources\">Sumber</string>\n    <string name=\"label_recent_manga\">Sejarah</string>\n    <string name=\"label_recent_updates\">Nganyari</string>\n    <string name=\"label_library\">Perpustakaan</string>\n    <string name=\"label_download_queue\">Antrian Donlot</string>\n    <string name=\"label_settings\">Setelan</string>\n    <string name=\"label_more\">Liyane</string>\n    <string name=\"name\">Jeneng</string>\n    <string name=\"manga\">Entri perpustakaan</string>\n    <string name=\"download_notifier_download_paused\">Donlotan mandheg</string>\n    <string name=\"download_notifier_downloader_title\">Donloder</string>\n    <string name=\"channel_complete\">Komplit</string>\n    <string name=\"information_no_recent_manga\">Durung maca Opo-opo</string>\n    <string name=\"action_pause\">Jeda</string>\n    <string name=\"action_edit_cover\">Nyunting sampul</string>\n    <string name=\"action_move_category\">Ngatur kategori</string>\n    <string name=\"action_update_library\">Nganyari perpustakaan</string>\n    <string name=\"action_remove_bookmark\">Ngilangi penunjuk bab</string>\n    <string name=\"action_bookmark\">Penujuk bab</string>\n    <string name=\"action_mark_previous_as_read\">Tandai sadurunge dadi diwaca</string>\n    <string name=\"action_mark_as_unread\">Tandai dadi durung diwaca</string>\n    <string name=\"action_mark_as_read\">Tandai dadi diwaca</string>\n    <string name=\"action_global_search\">Penggolekan global</string>\n    <string name=\"action_sort_chapter_fetch_date\">Tanggal njupuk chapter</string>\n    <string name=\"action_sort_last_read\">Terakhir di waca</string>\n    <string name=\"action_filter_empty\">Ngilangno saringan</string>\n    <string name=\"action_filter_tracked\">Kelacak</string>\n    <string name=\"action_filter_bookmarked\">Diwenehi tandha</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"track\">Ngelacak</string>\n    <string name=\"chapters\">Bab</string>\n    <string name=\"information_empty_category\">Sampeyan ora duwe kategori. Dhemok tombol tambah kanggo nggawe siji kategori kanggo ngatur perpustakaane sampeyan.</string>\n    <string name=\"information_empty_library\">Koleksine sampeyan kosong</string>\n    <string name=\"pref_category_about\">Babagan</string>\n    <string name=\"pref_category_advanced\">Majeng</string>\n    <string name=\"pref_category_tracking\">Ngelacak</string>\n    <string name=\"pref_category_reader\">Pamaca</string>\n    <string name=\"pref_category_library\">Koleksi</string>\n    <string name=\"pref_category_appearance\">Tampilan</string>\n    <string name=\"pref_category_general\">Umum</string>\n    <string name=\"app_not_available\">Aplikasi ora ono</string>\n    <string name=\"loading\">Ngemot…</string>\n    <string name=\"action_start_downloading_now\">Wiwiti ngunduh saiki</string>\n    <string name=\"action_webview_refresh\">Segerke</string>\n    <string name=\"action_webview_forward\">Maju</string>\n    <string name=\"action_restore\">Pulihke</string>\n    <string name=\"action_show_errors\">Klik gae Inpo luwih lanjut</string>\n    <string name=\"action_undo\">Baleni</string>\n    <string name=\"action_reset\">Balekke</string>\n    <string name=\"action_share\">Bagi</string>\n    <string name=\"action_install\">Pasang</string>\n    <string name=\"action_desc\">Mudun</string>\n    <string name=\"action_asc\">Munggah</string>\n    <string name=\"action_order_by_upload_date\">Miturut tanggal unggah</string>\n    <string name=\"action_order_by_chapter_number\">Miturut nomer bab</string>\n    <string name=\"action_sort\">Urutke</string>\n    <string name=\"cancel_all_for_series\">Batalke kabeh seri iki</string>\n    <string name=\"action_cancel_all\">Batalke kabeh</string>\n    <string name=\"action_cancel\">Batalke</string>\n    <string name=\"action_unpin\">Copot pin</string>\n    <string name=\"action_pin\">Pin</string>\n    <string name=\"action_display_show_number_of_items\">Tampilaken jumlah item</string>\n    <string name=\"action_display_show_tabs\">Tampilaken tab kategori</string>\n    <string name=\"action_display_local_badge\">Lokal manga</string>\n    <string name=\"action_display_download_badge\">Chapter downloadan</string>\n    <string name=\"action_display_comfortable_grid\">Kothak penak</string>\n    <string name=\"action_display_grid\">Kothak kompak</string>\n    <string name=\"action_display\">Tampilan</string>\n    <string name=\"action_display_mode\">Mode tampilan</string>\n    <string name=\"action_migrate\">Migrasi</string>\n    <string name=\"action_resume\">Teruske</string>\n    <string name=\"action_start\">Mulai</string>\n    <string name=\"action_remove\">Hapus</string>\n    <string name=\"action_sort_count\">Total entri</string>\n    <string name=\"confirm_lock_change\">Otentikasi kanggo konfirmasi perubahan</string>\n    <string name=\"label_default\">Default</string>\n    <string name=\"action_show_manga\">Nampilno manga</string>\n    <string name=\"label_warning\">Awas</string>\n    <string name=\"action_display_language_badge\">basa</string>\n    <string name=\"action_close\">Tutup</string>\n    <string name=\"restrictions\">Batesan: %s</string>\n    <string name=\"pref_update_only_non_completed\">Karo status \\\"Rampung\\\"</string>\n    <string name=\"action_display_cover_only_grid\">Kothak sampul</string>\n    <string name=\"theme_system\">Tumuti sistem</string>\n    <string name=\"pref_app_theme\">Tema aplikasi</string>\n    <string name=\"theme_monet\">Dinamis</string>\n    <string name=\"theme_greenapple\">Ijo apel</string>\n    <string name=\"parental_controls_info\">Iki ora nyegah ekstensi kang ora resmi utawa salah dilabeli kanggo nampilake konten NSFW (18+) ing aplikasi.</string>\n    <string name=\"relative_time_today\">Dinten puniki</string>\n    <string name=\"update_never\">Mati</string>\n    <string name=\"pref_category_security\">Kaamanan</string>\n    <string name=\"lock_always\">Tansah</string>\n    <string name=\"pref_category_nsfw_content\">Sumber NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Tampilaken ing sumber lan dhaptar ekstensi</string>\n    <string name=\"pref_update_only_completely_read\">Karo bab durung diwaca</string>\n    <string name=\"pref_manage_notifications\">Kelola notifikasi</string>\n    <string name=\"secure_screen_summary\">Amanaken layar sembunikan konten aplikasi wektu ngaleh aplikasi lan blokir tangkapan layar</string>\n    <string name=\"theme_midnightdusk\">Surup wengi</string>\n    <string name=\"lock_when_idle\">Kunci wektu meneng</string>\n    <string name=\"action_move_to_top_all_for_series\">Pindah seri mendhuwur</string>\n    <string name=\"theme_strawberrydaiquiri\">Stroberi Daiquiri</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_yinyang\">Yin lan Yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Mode ireng banget</string>\n    <string name=\"hide_notification_content\">Umpetake konten notifikasi</string>\n    <string name=\"secure_screen\">Amanaken layar</string>\n    <string name=\"update_72hour\">Saben 3 dinten</string>\n    <string name=\"connected_to_wifi\">Namung ing Wi-Fi</string>\n    <string name=\"ext_untrusted\">Ora kapracaya</string>\n    <string name=\"pref_update_only_started\">Iku durung diwiwiti</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">periksa sampul lan rinci anyar wektu memerbarui pustaka</string>\n    <string name=\"default_category\">kategori gawan</string>\n    <string name=\"include\">Kalebu: %s</string>\n    <string name=\"exclude\">Kajaba: %s</string>\n    <string name=\"ext_updates_pending\">Nganyari tertunda</string>\n    <string name=\"ext_update\">Nganyari</string>\n    <string name=\"ext_update_all\">Nganyari kabeh</string>\n    <string name=\"ext_install\">pasang</string>\n    <string name=\"ext_installed\">Ngetrap</string>\n    <string name=\"ext_trust\">Pracaya</string>\n    <string name=\"untrusted_extension\">Ekstensi ora kapracaya</string>\n    <string name=\"default_category_summary\">Tansah takon</string>\n    <string name=\"pref_show_page_number\">Tampilake nomer halaman</string>\n    <string name=\"pref_inverted_colors\">Kuwalik</string>\n    <string name=\"pref_show_reading_mode\">Tampilake mode maca</string>\n    <string name=\"right_and_left_nav\">Tengen lan Kiwa</string>\n    <string name=\"ext_installing\">Masang</string>\n    <string name=\"pref_library_columns\">Item saben baris</string>\n    <string name=\"lock_never\">ora tau</string>\n    <string name=\"ext_uninstall\">Ucul</string>\n    <string name=\"obsolete_extension_message\">Ekstensi iki ora kasedhiya maneh.</string>\n    <string name=\"extension_api_error\">Gagal kanggo entuk dhaptar ekstensi</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">Sumber saka ekstensi iki bisa ngemot konten NSFW (18+)</string>\n    <string name=\"ext_install_service_notif\">Masang ekstensi…</string>\n    <string name=\"ext_installer_pref\">Pemasang</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ora lumaku</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Pasang lan wiwit Shizuku kanggo migunakake Shizuku dadi pemasang ekstensi.</string>\n    <string name=\"tapping_inverted_none\">Ora</string>\n    <string name=\"tapping_inverted_both\">Kaping duane</string>\n    <string name=\"pref_reader_theme\">Werna latar</string>\n    <string name=\"kindlish_nav\">Kaya Kindle</string>\n    <string name=\"edge_nav\">Tepi</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Walik tombol volume</string>\n    <string name=\"pref_cutout_short\">Tampilake konten di wilayah kang terpotong</string>\n    <string name=\"pref_skip_read_chapters\">Lewati bab dithandani kawaca</string>\n    <string name=\"pref_read_with_volume_keys\">Tombol volume</string>\n    <string name=\"l_nav\">Wangun L</string>\n    <string name=\"action_sort_last_manga_update\">Priksa nganyari pungkasan</string>\n    <string name=\"action_sort_unread_count\">Total gak diwoco</string>\n    <string name=\"pref_category_library_update\">Updatean umum</string>\n    <string name=\"pref_library_update_interval\">Updatean otomatis</string>\n    <string name=\"lock_with_biometrics\">Mbutuhake mbukak kunci</string>\n    <string name=\"pref_library_update_refresh_metadata\">Nganyari metadata otomatis</string>\n    <string name=\"network_not_metered\">Jaringan gak kebates tok</string>\n    <string name=\"pref_app_language\">Bohoso aplikasi</string>\n    <string name=\"untrusted_extension_message\">Ekstensi iki ditandatangani nganggo sertifikat sing ora dipercaya lan ora diaktifake.\\n\\nEkstensi angkoro bisa maca kredensial login sing disimpen ing Mihon utawa nglakokake kode sewenang-wenang. Kanthi percaya karo sertifikat iki, sampeyan nampa risiko kasebut.</string>\n    <string name=\"ext_downloading\">Ndownload</string>\n    <string name=\"pref_show_navigation_mode\">Tampilake overlay zona tutul</string>\n    <string name=\"pref_library_update_categories_details\">Manga ing kategori sing ora kalebu ora bakal dianyari sanajan uga ana ing kategori sing kalebu.</string>\n    <string name=\"none\">Ora ono</string>\n    <string name=\"ext_pending\">Ketunda</string>\n    <string name=\"ext_info_version\">Versine</string>\n    <string name=\"ext_info_language\">Bohoso</string>\n    <string name=\"ext_info_age_rating\">Rating umur</string>\n    <string name=\"ext_app_info\">Infone aplikasi</string>\n    <string name=\"pref_show_navigation_mode_summary\">Tampilake kanthi ringkes nalika maca dibukak</string>\n    <string name=\"pref_dual_page_split\">Pamisahan kaca kaping pindho</string>\n    <string name=\"pref_library_update_restriction\">Nganyari otomatis watesan piranti</string>\n    <string name=\"categorized_display_settings\">Setelan saben kategori kanggo ngurutake lan tampilan</string>\n    <string name=\"delete_category_confirmation\">Apa sampeyan pengin mbusak kategori \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Busak kategori</string>\n    <string name=\"pref_show_reading_mode_summary\">Tampilake mode saiki kanthi ringkes nalika maca dibukak</string>\n    <string name=\"internal_error\">InternalError: Priksa log kacilakan kanggo informasi luwih lengkap</string>\n    <string name=\"on\">Morop</string>\n    <string name=\"theme_lavender\">Lavender</string>\n    <string name=\"pref_crop_borders\">Ketok pinggiran</string>\n    <string name=\"pref_dual_page_invert\">Ganti panggonan pamisah kaca kaping pindho</string>\n    <string name=\"pref_dual_page_invert_summary\">Yen panggonan pamisah kaca dobel ora cocog karo arah maca</string>\n    <string name=\"off\">Seda</string>\n    <string name=\"pref_custom_brightness\">Padhang khusus</string>\n    <string name=\"pref_page_transitions\">Animasi transisi kaca</string>\n    <string name=\"pref_double_tap_anim_speed\">Kacepetan animasi tutul kaping pindho</string>\n    <string name=\"pref_read_with_tapping_inverted\">Walik zona tutul</string>\n    <string name=\"tapping_inverted_horizontal\">Horisontal</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Nggawe folder miturut judhul manga</string>\n    <string name=\"filter_mode_overlay\">Numpuki</string>\n    <string name=\"filter_mode_screen\">Layar</string>\n    <string name=\"pref_reader_navigation\">Pandhu arah</string>\n    <string name=\"vertical_viewer\">Vertikal</string>\n    <string name=\"filter_mode_darken\">Ngobong / peteng</string>\n    <string name=\"filter_mode_lighten\">Nangkis / Padang</string>\n    <string name=\"pref_skip_filtered_chapters\">Skip bab sing disaring</string>\n    <string name=\"pref_grayscale\">Skala abu-abu</string>\n    <string name=\"tapping_inverted_vertical\">Vertikal</string>\n    <string name=\"automatic_background\">Otomatis</string>\n    <string name=\"pref_viewer_type\">Mode maca standar</string>\n    <string name=\"nav_zone_prev\">Sakdurunge</string>\n    <string name=\"nav_zone_next\">Lanjut</string>\n    <string name=\"vertical_plus_viewer\">Vertikal sakteruse</string>\n    <string name=\"disabled_nav\">Dipateni</string>\n    <string name=\"pref_custom_color_filter\">Filter warna khusus</string>\n    <string name=\"pref_color_filter_mode\">Mode campuran filter warna</string>\n    <string name=\"pref_keep_screen_on\">Layar urip terus</string>\n    <string name=\"pref_reader_actions\">Aksi</string>\n    <string name=\"pref_read_with_long_tap\">Tampilake ing tunyuk dawa</string>\n    <string name=\"pref_create_folder_per_manga\">Simpen kaca menyang folder sing kapisah</string>\n    <string name=\"label_stats\">Statistik</string>\n    <string name=\"label_local\">Lokal</string>\n    <string name=\"label_started\">Diwiwiti</string>\n    <string name=\"label_downloaded\">Diundhuh</string>\n    <string name=\"action_search_hint\">Telusuri…</string>\n    <string name=\"delete_downloaded\">Ngehapus downloadan</string>\n    <string name=\"selected\">Dipunpilih</string>\n    <string name=\"not_selected\">Mboten dipunpilih</string>\n    <string name=\"action_menu_overflow_description\">Pilihan liane</string>\n    <string name=\"label_data_storage\">Data lan penyimpanan</string>\n    <string name=\"label_upcoming\">Bakal muncul</string>\n    <string name=\"action_bar_up_description\">navigasi mendhuwur</string>\n    <string name=\"scanlator\">Diluru</string>\n    <string name=\"label_donate\">Sumbangan</string>\n    <string name=\"label_auto\">Otomatis</string>\n    <string name=\"unlock_app_title\">Bikak kunci %s</string>\n    <string name=\"action_set_interval\">Trapake jeda wayah</string>\n    <string name=\"action_filter_interval_custom\">Nganyari panyaris frekuensi</string>\n    <string name=\"action_sort_next_updated\">nganyari kang diarep-arep sabanjure</string>\n    <string name=\"action_sort_tracker_score\">Skor pelacak</string>\n    <string name=\"action_sort_random\">mawut</string>\n    <string name=\"action_update_category\">Mbaharui kategori</string>\n    <string name=\"action_open_random_manga\">Bikak entri acak</string>\n    <string name=\"action_remove_everything\">Busek sedaya</string>\n    <string name=\"action_copy_to_clipboard\">Santun dhateng blabak klip</string>\n    <string name=\"action_copy_link\">Santun link</string>\n    <string name=\"action_display_unread_badge\">Bab durung diwaca</string>\n    <string name=\"action_display_show_continue_reading_button\">Tombol lajengaken maos</string>\n    <string name=\"action_apply\">Terapaken</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Pindhah seri ka ngisor</string>\n    <string name=\"action_notes\">Cathetan</string>\n    <string name=\"action_edit_notes\">Ganti cathetan</string>\n    <string name=\"action_revert_to_default\">Mbalikake marang default</string>\n    <string name=\"action_not_now\">Ora saiki</string>\n    <string name=\"action_add_anyway\">Tambahaken mawon</string>\n    <string name=\"pref_onboarding_guide\">Panuntun wiwitan</string>\n    <string name=\"onboarding_heading\">Sugeng rawuh!</string>\n    <string name=\"onboarding_description\">Ayo awakdewe atur sawetara perkara ndhisik. Sampeyan uga mesthi isa ngowahi ing menu setelan mengko.</string>\n    <string name=\"onboarding_action_next\">Terusane</string>\n    <string name=\"onboarding_action_finish\">Rampung</string>\n    <string name=\"onboarding_action_skip\">Nglangkungi</string>\n    <string name=\"onboarding_storage_info\">Milih direktori kanggo nyimpen isi saka %1$s, kalebu unduhan bab, data backup, lan liya-liyane. \\n \\nApike kudu nganggo direktori kapisah. \\n \\ndirektori ingkang dipunpilih: %2$s</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ka-rGE/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">ნაპოვნია გაფართოების განახლება</item>\n        <item quantity=\"other\">ნაპოვნია %d გაფართოების განახლება</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">თავები %1$s და კიდევ 1</item>\n        <item quantity=\"other\">თავები %1$s და კიდევ %2$d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">ნაპოვნია ახალი თავი</item>\n        <item quantity=\"other\">ნაპოვნია %1$d ახალი თავი</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d ჩანაწერისთვის</item>\n        <item quantity=\"other\">%d ჩანაწერისთვის</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">1 თავი</item>\n        <item quantity=\"other\">%1$s თავი</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">დარჩა 1</item>\n        <item quantity=\"other\">დარჩა %1$s</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">დასრულების დრო %1$s. %2$s შეცდომა</item>\n        <item quantity=\"other\">დასრულების დრო %1$s. %2$s შეცდომა</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d კატეგორია</item>\n        <item quantity=\"other\">%d კატეგორიები</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">1 წუთის შემდეგ</item>\n        <item quantity=\"other\">%1$s წუთის შემდეგ</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">გუშინ</item>\n        <item quantity=\"other\">%1$d დღის წინ</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">ხვალ</item>\n        <item quantity=\"other\">%1$d დღეში</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">შემდეგი წაუკითხავი თავი</item>\n        <item quantity=\"other\">შემდეგი %d წაუკითხავი თავი</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 დღე</item>\n        <item quantity=\"other\">%d დღე</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 გვერდი</item>\n        <item quantity=\"other\">%1$s გვერდი</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">აკლია %1$s თავი</item>\n        <item quantity=\"other\">აკლია %1$s თავი</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">შემდეგი თავი</item>\n        <item quantity=\"other\">შემდეგი %d თავი</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d ტრეკერი</item>\n        <item quantity=\"other\">%d ტრეკერი</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">გამოტოვებულია %d ტავი. ან წყარო აღმოჩენილი არაა, ან ფილტრში მოჰყვა</item>\n        <item quantity=\"other\">გამოტოვებულია %d ტავი. ან წყარო აღმოჩენილი არაა, ან ფილტრში მოჰყვა</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d რეპო</item>\n        <item quantity=\"other\">%d რეპო</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ka-rGE/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">სახელი</string>\n    <string name=\"categories\">კატეგორიები</string>\n    <string name=\"manga\">ბიბლიოთეკის ჩანაწერები</string>\n    <string name=\"history\">ისტორია</string>\n    <string name=\"label_more\">მეტი</string>\n    <string name=\"label_settings\">პარამეტრები</string>\n    <string name=\"label_download_queue\">გადმოწერის რიგი</string>\n    <string name=\"label_library\">ბიბლიოთეკა</string>\n    <string name=\"label_recent_updates\">განახლებები</string>\n    <string name=\"label_recent_manga\">ისტორია</string>\n    <string name=\"label_help\">დახმარება</string>\n    <string name=\"action_settings\">პარამეტრები</string>\n    <string name=\"action_menu\">მენიუ</string>\n    <string name=\"action_filter\">ფილტრი</string>\n    <string name=\"action_filter_bookmarked\">ჩანიშნული</string>\n    <string name=\"action_filter_unread\">წაუკითხავი</string>\n    <string name=\"action_filter_empty\">ფილტრის წაშლა</string>\n    <string name=\"action_sort_alpha\">ანბანის მიხედვით</string>\n    <string name=\"action_sort_total\">თავების რაოდენობა</string>\n    <string name=\"action_sort_last_read\">ბოლოს წაკითხული</string>\n    <string name=\"action_sort_latest_chapter\">ბოლო თავი</string>\n    <string name=\"action_search\">ძებნა</string>\n    <string name=\"action_select_all\">ყველას მონიშვნა</string>\n    <string name=\"action_select_inverse\">მონიშვნის ინვერსია</string>\n    <string name=\"action_mark_as_read\">ყველას წაკითხულად მონიშვნა</string>\n    <string name=\"action_mark_as_unread\">ყველას წაუკითხავად მონიშვნა</string>\n    <string name=\"action_mark_previous_as_read\">წინას წაკითხულად მონიშვნა</string>\n    <string name=\"action_download\">გადმოწერა</string>\n    <string name=\"action_bookmark\">მონიშნული</string>\n    <string name=\"action_remove_bookmark\">მონიშვნის მოხსნა</string>\n    <string name=\"action_delete\">წაშლა</string>\n    <string name=\"action_update_library\">ბიბლიოთეკის განახლება</string>\n    <string name=\"action_edit\">რედაქტირება</string>\n    <string name=\"action_add\">დამატება</string>\n    <string name=\"action_add_category\">კატეგორიის დამატება</string>\n    <string name=\"action_edit_categories\">კატეგორიის რედაქტირება</string>\n    <string name=\"action_rename_category\">კატეგორიის სახელის ვცლილება</string>\n    <string name=\"action_view_chapters\">თავების ხილვა</string>\n    <string name=\"action_pause\">პაუზა</string>\n    <string name=\"action_previous_chapter\">წინა თავი</string>\n    <string name=\"action_next_chapter\">შემდეგი თავი</string>\n    <string name=\"action_retry\">თავიდან ცდა</string>\n    <string name=\"action_remove\">წაშლა</string>\n    <string name=\"action_resume\">გაგრძელება</string>\n    <string name=\"action_open_in_browser\">ბრაუზერში გახსნა</string>\n    <string name=\"action_open_in_web_view\">WebView-ში გახსნა</string>\n    <string name=\"action_display_mode\">ჩვენების რეჟიმი</string>\n    <string name=\"action_display\">ჩვენება</string>\n    <string name=\"action_display_grid\">კომპაქტური ბადე</string>\n    <string name=\"action_display_list\">სია</string>\n    <string name=\"action_display_comfortable_grid\">კომფორტული ბადე</string>\n    <string name=\"action_display_download_badge\">გადმოწერის ნიშნაკი</string>\n    <string name=\"action_display_show_tabs\">კატეგორიის ჩანართების ჩვენება</string>\n    <string name=\"action_cancel\">გააუქმე</string>\n    <string name=\"action_cancel_all\">გააუქმე ყველა</string>\n    <string name=\"action_sort\">დალაგება</string>\n    <string name=\"action_newest\">უახლესი</string>\n    <string name=\"action_oldest\">უძველესი</string>\n    <string name=\"action_move_to_top\">თავში ატანა</string>\n    <string name=\"action_move_to_bottom\">ბოლოში ჩამოტანა</string>\n    <string name=\"action_install\">დაინსტალირება</string>\n    <string name=\"action_share\">გაზიარება</string>\n    <string name=\"action_save\">შენახვა</string>\n    <string name=\"action_reset\">გადატვირთვა</string>\n    <string name=\"action_undo\">გაუქმება</string>\n    <string name=\"action_open_log\">ლოგის გახსნა</string>\n    <string name=\"action_restore\">აღდგენა</string>\n    <string name=\"action_webview_back\">უკან</string>\n    <string name=\"action_webview_forward\">წინ</string>\n    <string name=\"action_webview_refresh\">განახლება</string>\n    <string name=\"loading\">იტვირთება…</string>\n    <string name=\"app_not_available\">აპლიკაცია არ არის ხელმისაწვდომი</string>\n    <string name=\"pref_category_general\">ზოგადი</string>\n    <string name=\"pref_category_library\">ბიბლიოთეკა</string>\n    <string name=\"pref_category_reader\">წამკითხველი</string>\n    <string name=\"pref_category_downloads\">გადმოწერები</string>\n    <string name=\"pref_category_tracking\">თვალყურის დევნება</string>\n    <string name=\"pref_category_advanced\">დამატებით</string>\n    <string name=\"pref_category_about\">ინფორმაცია</string>\n    <string name=\"theme_system\">სისტემური</string>\n    <string name=\"theme_light\">მსუბუქი</string>\n    <string name=\"theme_dark\">ჩართული</string>\n    <string name=\"pref_date_format\">თარიღის ფორმატი</string>\n    <string name=\"pref_manage_notifications\">შეტყობინებების მართვა</string>\n    <string name=\"pref_category_security\">უსაფრთხოება და კონფიდენციალობა</string>\n    <string name=\"lock_with_biometrics\">განბლოკვის მოთხოვნა</string>\n    <string name=\"lock_when_idle\">ბლოკირება უმოქმედობის დროს</string>\n    <string name=\"lock_always\">ყოველთვის</string>\n    <string name=\"lock_never\">არასდროს</string>\n    <string name=\"secure_screen\">უსაფრთხოების ფანჯარა</string>\n    <string name=\"hide_notification_content\">შეტყობინების შიგთავსის დამალვა</string>\n    <string name=\"pref_category_display\">დისპლეი</string>\n    <string name=\"pref_library_columns\">ელემენტი თითოეულ მწკრივში</string>\n    <string name=\"portrait\">პორტრეტი</string>\n    <string name=\"landscape\">პეიზაჟი</string>\n    <string name=\"pref_category_library_update\">განახლებები</string>\n    <string name=\"pref_library_update_interval\">ბიბლიოთეკის განახლების სიხშირე</string>\n    <string name=\"update_never\">ხელით</string>\n    <string name=\"update_6hour\">ყოველ 6 საათში</string>\n    <string name=\"update_12hour\">ყოველ 12 საათში</string>\n    <string name=\"update_24hour\">ყოველდღე</string>\n    <string name=\"update_48hour\">ყოველ 2 დღეში ერთხელ</string>\n    <string name=\"update_weekly\">ყოველ კვირა</string>\n    <string name=\"pref_library_update_restriction\">ბიბლიოთეკის განახლების შეზღუდვები</string>\n    <string name=\"charging\">იტენება</string>\n    <string name=\"pref_update_only_non_completed\">მხოლოდ განაახლე მიმდინარე მანგა</string>\n    <string name=\"pref_library_update_refresh_metadata\">ავტომატურად განაახლე მეტადატა</string>\n    <string name=\"label_migration\">მიგრაცია</string>\n    <string name=\"default_category\">ნაგულისხმევი კატეგორია</string>\n    <string name=\"default_category_summary\">ყოველთვის მკითხე</string>\n    <string name=\"all\">ყველა</string>\n    <string name=\"ext_update\">განაცლება</string>\n    <string name=\"ext_install\">დაინსტალირება</string>\n    <string name=\"ext_installing\">ინსტალირდება</string>\n    <string name=\"ext_installed\">დაისნტალირებული</string>\n    <string name=\"ext_downloading\">იტვირთება</string>\n    <string name=\"ext_pending\">მოლოდინში</string>\n    <string name=\"ext_uninstall\">წაშლა</string>\n    <string name=\"pref_fullscreen\">მთლიან ეკრანზე</string>\n    <string name=\"pref_cutout_short\">კონტენტის ჩვენება ჩამოჭრილ ადგილზე</string>\n    <string name=\"pref_page_transitions\">გვერდის გადასვლების ანიმირება</string>\n    <string name=\"pref_show_page_number\">გვერდის ნომრის ჩვენება</string>\n    <string name=\"pref_show_reading_mode\">კითხვის რეჟიმის ჩვენება</string>\n    <string name=\"pref_show_reading_mode_summary\">მოკლედ აჩვენე ახლანდელი რეჟიმი როცა მკითხველი გახსნილია</string>\n    <string name=\"pref_crop_borders\">კუთხეების ჩამოჭრა</string>\n    <string name=\"filter_mode_multiply\">გაამრავლე</string>\n    <string name=\"filter_mode_screen\">ეკრანი</string>\n    <string name=\"filter_mode_lighten\">განათება</string>\n    <string name=\"filter_mode_darken\">დაბნელება</string>\n    <string name=\"pref_keep_screen_on\">დატოვე ეკრანი ანთებული</string>\n    <string name=\"pref_skip_read_chapters\">გამოტოვე წაკითხული თავები</string>\n    <string name=\"pref_skip_filtered_chapters\">გამოტოვე გაფილტრული თავები</string>\n    <string name=\"pref_reader_navigation\">ნავიგაცია</string>\n    <string name=\"pref_read_with_volume_keys\">ხმის კლავიშები</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">ხმის კლავიშების ფუნქციების გაცვლა</string>\n    <string name=\"pref_reader_theme\">ფონის ფერი</string>\n    <string name=\"white_background\">თეთრი</string>\n    <string name=\"gray_background\">ნაცრისფერი</string>\n    <string name=\"black_background\">შავი</string>\n    <string name=\"pref_viewer_type\">ნაგულისხმევი კითხვის რეჟიმი</string>\n    <string name=\"left_to_right_viewer\">მარცხნიდან მარჯვნივ</string>\n    <string name=\"right_to_left_viewer\">მარჯვნიდან მარცხნივ</string>\n    <string name=\"vertical_viewer\">ვერტიკალური</string>\n    <string name=\"vertical_plus_viewer\">ვერტიკალური განგრძობითი</string>\n    <string name=\"pref_image_scale_type\">სკალირების ტიპი</string>\n    <string name=\"scale_type_fit_screen\">ეკრანზე მორგება</string>\n    <string name=\"scale_type_stretch\">გაწელვა</string>\n    <string name=\"scale_type_fit_width\">სიგანეზე მორგება</string>\n    <string name=\"scale_type_fit_height\">სიმაღლეზე მორგება</string>\n    <string name=\"scale_type_original_size\">ორიგინალური ზომა</string>\n    <string name=\"scale_type_smart_fit\">ჭკვიანურად მორგება</string>\n    <string name=\"pref_zoom_start\">საწყისი პოზიციის დაზუმვა</string>\n    <string name=\"zoom_start_automatic\">ავტომატური</string>\n    <string name=\"zoom_start_left\">მარცხნივ</string>\n    <string name=\"zoom_start_right\">მარჯვნივ</string>\n    <string name=\"zoom_start_center\">შუაში</string>\n    <string name=\"double_tap_anim_speed_0\">ანიმაციის გარეშე</string>\n    <string name=\"double_tap_anim_speed_normal\">ნორმალური</string>\n    <string name=\"double_tap_anim_speed_fast\">სწარფი</string>\n    <string name=\"pref_rotation_type\">გადმოტრიალება</string>\n    <string name=\"rotation_free\">თავისუფალი</string>\n    <string name=\"rotation_force_portrait\">პორტრეტის რეჟიმი</string>\n    <string name=\"rotation_force_landscape\">პეიზაჟის რეჟიმი</string>\n    <string name=\"color_filter_r_value\">წითელი</string>\n    <string name=\"color_filter_g_value\">მწვანე</string>\n    <string name=\"color_filter_b_value\">ლურჯი</string>\n    <string name=\"color_filter_a_value\">ალფა</string>\n    <string name=\"pref_always_show_chapter_transition\">ყოველთვის აჩვენე თავებს შორის გადასვლა</string>\n    <string name=\"pref_category_reading\">კითხვა</string>\n    <string name=\"pref_webtoon_side_padding\">ცარიელი არეა გვერდებზე</string>\n    <string name=\"pref_remove_after_marked_as_read\">წაშალე წაკითხულად მონიშვნის შემდეგ</string>\n    <string name=\"pref_remove_after_read\">წაკკითხვის შემდეგ წაშალე</string>\n    <string name=\"disabled\">გამორთული</string>\n    <string name=\"last_read_chapter\">ბოლო წაკითხული თავი</string>\n    <string name=\"second_to_last\">ბოლოს წინა წაკითხული თავი</string>\n    <string name=\"third_to_last\">ბოლოდან მესამე წაკითხული თავი</string>\n    <string name=\"fourth_to_last\">ბოლოდან მეოთხე წაკითხული თავი</string>\n    <string name=\"fifth_to_last\">ბოლოდან მეხუთე წაკითხული თავი</string>\n    <string name=\"pref_download_new\">გადმოწერე ახალი თავები</string>\n    <string name=\"services\">სერვისები</string>\n    <string name=\"pref_auto_update_manga_sync\">განაახლე თავის პროგრესი წაკითხვის შემდეგ</string>\n    <string name=\"pref_create_backup\">რეზერვის შექმნა</string>\n    <string name=\"pref_create_backup_summ\">შესაძლებელია გამოყენებულ იქნას ახლანდელი ბიბლიოთეკის ასადგენად</string>\n    <string name=\"pref_restore_backup\">რეზერვის აღდგენა</string>\n    <string name=\"pref_restore_backup_summ\">ბიბლიოთეკის აღდგენა რეზერვიდან</string>\n    <string name=\"pref_backup_interval\">რეზერვის შექმნის სიხშირე</string>\n    <string name=\"backup_created\">რეზერვი შექმნილია</string>\n    <string name=\"invalid_backup_file\">არასწორი სარეზერვო ფაილი</string>\n    <string name=\"invalid_backup_file_missing_manga\">მარქაფი ბიბლიოთეკის ჩანაწერებს არ შეიცავს.</string>\n    <string name=\"backup_restore_missing_sources\">დაკარგული წყაროები:</string>\n    <string name=\"restore_completed\">აღდგენა შესრულებულია</string>\n    <string name=\"restore_duration\">%1$02d წთ, %2$02d წმ</string>\n    <string name=\"backup_in_progress\">მარქაფი უკვე მიმდინარეობს</string>\n    <string name=\"backup_choice\">რას გსურს რომ შეუქმნა რეზერვი?</string>\n    <string name=\"creating_backup\">რეზერვის შექმნა</string>\n    <string name=\"creating_backup_error\">რეზერვის შექმნა ვერ მოხერხდა</string>\n    <string name=\"restore_in_progress\">აღდგენა უკვე მიმდინარეობს</string>\n    <string name=\"restoring_backup\">რეზერვის აღდგენა</string>\n    <string name=\"restoring_backup_error\">რეზერვის აღდგენა ვერ მოხერხდა</string>\n    <string name=\"restoring_backup_canceled\">აღდგენა გაუქმებულია</string>\n    <string name=\"label_data\">მონაცემები</string>\n    <string name=\"pref_clear_chapter_cache\">თავის ქეშის გასუფთავება</string>\n    <string name=\"used_cache\">გამოყენებულია: %1$s</string>\n    <string name=\"cache_deleted\">ქეში გასუფთავებულია. წაიშალა %1$d ფაილი</string>\n    <string name=\"cache_delete_error\">შსევდომა დაფიქსირდა ქეშის გასუფთავებისას</string>\n    <string name=\"pref_clear_cookies\">Cookie -ების გასუფთავება</string>\n    <string name=\"cookies_cleared\">Cookie -ები გასუფთავებულია</string>\n    <string name=\"pref_clear_database\">მონაცემთა ბაზის გასუფთავება</string>\n    <string name=\"pref_clear_database_summary\">ისტორიიდან წაიშლება ჩანაწერები, რომლებიც თქვენს ბიბლიოთეკაში არაა შენახული</string>\n    <string name=\"clear_database_completed\">ჩანაწერები წაშლილია</string>\n    <string name=\"pref_refresh_library_covers\">ბიბლიოთეკის მანგების ყდის ცვლილება</string>\n    <string name=\"battery_optimization_disabled\">ელემენტის ოპტიმიზაცუა უკვე გამორთულია</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">ვერ მოხერხდა მოწყობილობის პარამეტრების გახსნა</string>\n    <string name=\"website\">ვებსაიტი</string>\n    <string name=\"version\">ვერსია</string>\n    <string name=\"check_for_updates\">განახლებების მოძებნა</string>\n    <string name=\"pref_enable_acra\">ქრეშის რეპორტის გაგზავნა</string>\n    <string name=\"pref_acra_summary\">ეხმარება შეცდომების გამოსწორებაში. სენსიტიური მონაცემები არ იქნება გაგზავნილი</string>\n    <string name=\"label_downloaded_only\">მხოლოდ გადმოწერილები</string>\n    <string name=\"downloaded_only_summary\">თქვენს ბიბლიოთეკაში ყველა ჩანაწერის გაფილტვრა</string>\n    <string name=\"login_title\">შესვლა %1$s-ში</string>\n    <string name=\"username\">მომხმარებლის სახელი</string>\n    <string name=\"email\">ელ. ფოსტა</string>\n    <string name=\"password\">პაროლი</string>\n    <string name=\"login\">შესვლა</string>\n    <string name=\"login_success\">შესულია</string>\n    <string name=\"logout_title\">გამოვიდე %1$s-დან?</string>\n    <string name=\"logout\">გამოსვლა</string>\n    <string name=\"logout_success\">გამოსვლა წარმატებით მოხერხდა</string>\n    <string name=\"unknown_error\">დაფიქსირდა უცნობი შეცდომა</string>\n    <string name=\"updating_category\">კატეგორია ახლდება</string>\n    <string name=\"tabs_header\">ჩანართები</string>\n    <string name=\"no_more_results\">შედეგების სიის დასასრული</string>\n    <string name=\"no_results_found\">შედეგი ვერ მოიძებნა</string>\n    <string name=\"local_source\">ლოცალური წყარო</string>\n    <string name=\"other_source\">სხვა</string>\n    <string name=\"last_used_source\">ბოლოს გამოყენებული</string>\n    <string name=\"action_global_search_hint\">გლობალური ძებნა…</string>\n    <string name=\"latest\">უკანასკნელი</string>\n    <string name=\"browse\">დათვალიერება</string>\n    <string name=\"ongoing\">მიმდინარე</string>\n    <string name=\"unknown\">უცნობი</string>\n    <string name=\"licensed\">ლიცენზირებული</string>\n    <string name=\"add_to_library\">ბიბლიოთეკაში დამატება</string>\n    <string name=\"in_library\">ბიბლიოთეკაშია</string>\n    <string name=\"remove_from_library\">ბიბლიოთეკიდან წაშლა</string>\n    <string name=\"manga_added_library\">დამატებულია ბიბლიოთეკაში</string>\n    <string name=\"manga_removed_library\">წაშლილია ბიბლიოთეკიდან</string>\n    <string name=\"manga_info_expand\">მეტი ინფორმაციის ჩვენება</string>\n    <string name=\"manga_info_collapse\">ნაკლები ინფორმაციის ჩვენება</string>\n    <string name=\"delete_downloads_for_manga\">წაიშალოს გადმოწერილი თავები?</string>\n    <string name=\"copied_to_clipboard\">დაკოპირებულია ბუფერში:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">წყარო არ არის დაინსტალირებული: %1$s</string>\n    <string name=\"snack_add_to_library\">დავამატო ბიბლიოთეკაში?</string>\n    <string name=\"display_mode_chapter\">თავი %1$s</string>\n    <string name=\"chapter_downloading_progress\">მიმდინარეობს გადმოწერა (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">შეცდომა</string>\n    <string name=\"chapter_paused\">დაპაუზებულია</string>\n    <string name=\"show_title\">წყაროს სათაური</string>\n    <string name=\"show_chapter_number\">თავის ნომერი</string>\n    <string name=\"sort_by_source\">წყაროს მიხედვით</string>\n    <string name=\"sort_by_number\">თავის ნომრის მიხედვით</string>\n    <string name=\"sort_by_upload_date\">თარიღის მიხედვით</string>\n    <string name=\"manga_download\">გადმოწერა</string>\n    <string name=\"download_unread\">წაუკითხავი</string>\n    <string name=\"confirm_delete_chapters\">დარწმუნებული ხართ რომ გსურთ არჩეული თავების წაშლა?</string>\n    <string name=\"manga_tracking_tab\">თვალტყურის დევნება</string>\n    <string name=\"add_tracking\">თვალი ადევნე</string>\n    <string name=\"reading\">ვკითხულობ</string>\n    <string name=\"completed\">შესრულებულია</string>\n    <string name=\"dropped\">გადაგდებული</string>\n    <string name=\"on_hold\">ლოდინის რეჟიმში</string>\n    <string name=\"paused\">დაპაუზებული</string>\n    <string name=\"plan_to_read\">ვგეგმავ წაკითხვას</string>\n    <string name=\"repeating\">თავიდან ვკითხულობ</string>\n    <string name=\"score\">შეფასება</string>\n    <string name=\"title\">სათაური</string>\n    <string name=\"status\">სტატუსი</string>\n    <string name=\"track_status\">სტატუსი</string>\n    <string name=\"track_type\">ტიპი</string>\n    <string name=\"error_category_exists\">კატეგორია მოცემული სახელით უკვე არსებობს!</string>\n    <string name=\"snack_categories_deleted\">კატეგორიები წაიშალა</string>\n    <string name=\"dialog_with_checkbox_remove_description\">ეს წაშლის ამ თავის წაკითხვის თარიღს. დარწმუნებული ხართ?</string>\n    <string name=\"picture_saved\">სურათი შენახულია</string>\n    <string name=\"chapter_progress\">გვერდი: %1$d</string>\n    <string name=\"no_next_chapter\">შემდეგი თავი ვერ მოიძებნა</string>\n    <string name=\"decode_image_error\">გამოსახულებსი ჩატვირთვის შეცდომა</string>\n    <string name=\"pref_category_for_this_series\">ამ სერიებისთვის</string>\n    <string name=\"viewer\">კითხვის რეჟიმი</string>\n    <string name=\"transition_finished\">დამთავრებულია:</string>\n    <string name=\"transition_current\">მიმდინარე:</string>\n    <string name=\"transition_next\">შემდეგი:</string>\n    <string name=\"transition_previous\">წინა:</string>\n    <string name=\"transition_no_next\">შემდეგი თავი არ არის</string>\n    <string name=\"transition_no_previous\">წინა თავი არ არის</string>\n    <string name=\"transition_pages_loading\">გვერდები იტვირთება…</string>\n    <string name=\"transition_pages_error\">გვერდების ჩატვირთვა ვერ მოხერხდა: %1$s</string>\n    <string name=\"page_list_empty_error\">ვერცერთი გვერდი ვერ მოიძევნა</string>\n    <string name=\"updating_library\">ბიბლიოთეკის განახლება</string>\n    <string name=\"recent_manga_time\">თავ. %1$s - %2$s</string>\n    <string name=\"migration_dialog_what_to_include\">ამოირჩიე მონაცემები შესაყვანად</string>\n    <string name=\"migration_selection_prompt\">ამოირჩიე წყარო საიდანაც გინდა მიგრაცია</string>\n    <string name=\"migrate\">მიგრაცია</string>\n    <string name=\"copy\">კოპირება</string>\n    <string name=\"download_queue_error\">ვერ მოხერხდა თავების გადმოწერა. შეგიძლია სცადო თავიდან გადმოწერების სექციაში</string>\n    <string name=\"notification_new_chapters\">ახალი თავები მოიძებნა</string>\n    <string name=\"notification_chapters_single\">თავი %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">თავი %1$s და %2$d მეტი</string>\n    <string name=\"notification_chapters_multiple\">თავები %1$s</string>\n    <string name=\"notification_cover_update_failed\">ვერ მოხერხდა ყდის განახლება</string>\n    <string name=\"notification_first_add_to_library\">გთხოვთ ჯერ დაამატოთ ჩანაწერი თქვენს ბიბლიოთეკაში</string>\n    <string name=\"file_select_cover\">ამოირჩიე ყდის სურათი</string>\n    <string name=\"file_select_backup\">ამოირჩიე რეზერვის ფაილი</string>\n    <string name=\"update_check_confirm\">გადმოწერა</string>\n    <string name=\"update_check_no_new_updates\">განახლება ვერ მოიძებნა</string>\n    <string name=\"update_check_notification_download_in_progress\">გადმოწერა…</string>\n    <string name=\"update_check_notification_download_complete\">განახლების დასაყენებლად დაატყაპუნეთ</string>\n    <string name=\"update_check_notification_download_error\">გადმოწერის შეცდომა</string>\n    <string name=\"update_check_notification_update_available\">ხელმისაწვდომია ახალი ვერსია!</string>\n    <string name=\"information_no_downloads\">გადმოწერები არ არის</string>\n    <string name=\"information_no_recent\">განახლებები არ არის</string>\n    <string name=\"information_empty_library\">თქვენი ბიბლიოთეკა ცარიელია</string>\n    <string name=\"download_notifier_text_only_wifi\">Wi-Fi კავშირი არ არის ხელმისაწვდომი</string>\n    <string name=\"download_notifier_no_network\">ინტერნეტთან კავშირი არ არის ხელმისაწვდომი</string>\n    <string name=\"download_notifier_download_paused\">გადმოწერა შეჩერებულია</string>\n    <string name=\"channel_common\">საერთო</string>\n    <string name=\"channel_new_chapters\">თავების განახლებები</string>\n    <string name=\"channel_ext_updates\">გავრცობის განახლებები</string>\n    <string name=\"chapters\">თავები</string>\n    <string name=\"track\">თვალყურის დევნება</string>\n    <string name=\"label_sources\">წყაროები</string>\n    <string name=\"label_backup\">რეზერვი</string>\n    <string name=\"label_extensions\">გავრცობები</string>\n    <string name=\"label_extension_info\">გავრცობის შესახებ</string>\n    <string name=\"action_global_search\">გლობალური ძებნა</string>\n    <string name=\"action_move_category\">კატეგორიების მინიჭება</string>\n    <string name=\"action_edit_cover\">ყდის რედაქტირება</string>\n    <string name=\"action_migrate\">მიგრაცია</string>\n    <string name=\"action_pin\">მიმაგრება</string>\n    <string name=\"action_unpin\">მიმაგრების მოხსნა</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">ბიბლიოთეკის განახლებისას მოძებნე ახალი ყდები და დეტალები</string>\n    <string name=\"ext_updates_pending\">განახლებები მოლოდინის რეჟიმშია</string>\n    <string name=\"ext_obsolete\">მოძველებული</string>\n    <string name=\"ext_trust\">ნდობა</string>\n    <string name=\"ext_untrusted\">არასანდო</string>\n    <string name=\"untrusted_extension\">არასანდო დამატება</string>\n    <string name=\"obsolete_extension_message\">დამატება ხელმისაწვდომი აღარაა. მან შეიძლება არასწორად იმუშაოს და აპლიკაციას პრობლემები შეუქმნას. გირჩევთ, წაშალოთ ის.</string>\n    <string name=\"pref_double_tap_anim_speed\">ორჯერ დაჭერისას ანიმაციის სისწრაფე</string>\n    <string name=\"pref_custom_brightness\">გამოიყენე პერსონალიზებული სიკაშკაშე</string>\n    <string name=\"pref_custom_color_filter\">გამოიყენე პერსონალიზებული ფერთა ფილტრი</string>\n    <string name=\"pref_color_filter_mode\">ფერთა ფილტრის შეხამების რეჟიმი</string>\n    <string name=\"pref_read_with_long_tap\">დიალოგი ხანგრძლივი დაჭერისას</string>\n    <string name=\"webtoon_viewer\">ვებ კომიქსი</string>\n    <string name=\"pager_viewer\">დანომრილი</string>\n    <string name=\"pref_disable_battery_optimization\">გამორთე ბატარეის ოპტიმიზაცია</string>\n    <string name=\"pref_disable_battery_optimization_summary\">ეხმარება უკანა ფონში მიმდინარე ბიბლიოთეკის განახლებებსდა რეზერვს</string>\n    <string name=\"licenses\">ღია კოდის ლიცენზია</string>\n    <string name=\"pinned_sources\">მიმაგრებული</string>\n    <string name=\"local_source_help_guide\">ლოკალური წყაროს გიდი</string>\n    <string name=\"dialog_with_checkbox_reset\">ამ ჩანაწერის ყველა თავის თავიდან წაკითხვა</string>\n    <string name=\"custom_filter\">პრესონიფიცირებული ფილტრი</string>\n    <string name=\"set_as_cover\">ყდად დაყენება</string>\n    <string name=\"cover_updated\">ყდა განახლდა</string>\n    <string name=\"confirm_set_image_as_cover\">გამოვიყენოთ ეს სურათი ყდის ნახატად?</string>\n    <string name=\"information_no_recent_manga\">ბოლო ხანებში არაფერი არ არის წაკითხული</string>\n    <string name=\"information_empty_category\">შენ არ გაქვს კატეგორიები, აირჩიე \\\"+\\\" ღილაკი რათა შექმნა ერთი, შენი ბიბლიოთეკის დასაორგანიზებლად.</string>\n    <string name=\"information_webview_required\">WebView არის აუცილებელი Mihon-ს სამუშაოდ</string>\n    <string name=\"information_webview_outdated\">გთხოვთ განაახლოთ WebView აპლიკაცია უკეთესი თავსებდობისთვის</string>\n    <string name=\"download_notifier_downloader_title\">გადმომწერი</string>\n    <string name=\"download_notifier_title_error\">შეცდომა</string>\n    <string name=\"download_notifier_unknown_error\">გაუთვალისწინებელი შეცდომის გამო თავის გადმოწერა ვერ მოხერხდა</string>\n    <string name=\"action_enable_all\">ჩართე ყველა</string>\n    <string name=\"action_disable_all\">გამორთე ყველა</string>\n    <string name=\"secure_screen_summary\">აპლიკაციებს შორის გადართვისას შემადგენლობის დამალვა და სკრინშოტების დაბლოკვა</string>\n    <string name=\"untrusted_extension_message\">ეს დამატება ხელმოწერილია უცნობი სერთიფიკატის მიერ და არ არის აქტივირებული.\n\\n\n\\nმავნე დამატებას შეუძლია წაიკითხოს შესვლის მონაცემები შენახული ამ აპლიკაციაში ან გაუშვას თავისი კოდი.\n\\n\n\\nამ სერტიფიკატის ნდობით თქვენ თქვენს თავზე იღებთ რისკებს და პასუხისმგებლობას.</string>\n    <string name=\"tracking_info\">ცალმხრივი სინქრონიზაცია თვალყურის სადევნებელ სერვისებში თავების პროგრესის განსაახლებლად. მიადევნე თვალყური ინდივიდუალურ ჩანაწერებს მათი ჩანართებიდან.</string>\n    <string name=\"filter_mode_overlay\">გადაფარება</string>\n    <string name=\"information_cloudflare_bypass_failure\">ვერ მოხერხდა CloudFlare-ს შემოვლა</string>\n    <string name=\"tapping_inverted_both\">ორივე</string>\n    <string name=\"tapping_inverted_vertical\">ვერტიკალური</string>\n    <string name=\"tapping_inverted_horizontal\">ჰორიზონტალური</string>\n    <string name=\"tapping_inverted_none\">არცერთი</string>\n    <string name=\"pref_read_with_tapping_inverted\">დაჭერის ინვერსია</string>\n    <string name=\"download_insufficient_space\">შეუძლებელია თავების გადმოწერა დისკზე ადგილის უკმარისობის გამო</string>\n    <string name=\"loader_not_implemented_error\">წყარო ვერ მოიძებნა</string>\n    <string name=\"unknown_status\">უცნობი სტატუსი</string>\n    <string name=\"unknown_author\">უცნობი ავტორი</string>\n    <string name=\"action_global_search_query\">მოიძებნოს \\\"%1$s\\\"-თვის გლობალურად</string>\n    <string name=\"updated_version\">განახლებულია v%1$s-მდე</string>\n    <string name=\"whats_new\">რა არის ახალი</string>\n    <string name=\"requires_app_restart\">ასამოქმედებლად საჭიროა აპლიკაციის გადატვირთვა</string>\n    <string name=\"label_network\">ქსელი</string>\n    <string name=\"pref_category_reading_mode\">კითხვის რეჟიმი</string>\n    <string name=\"pref_category_theme\">თემა</string>\n    <string name=\"action_disable\">გამორთვა</string>\n    <string name=\"action_start\">დაწყება</string>\n    <string name=\"action_sort_date_added\">დამატების თარიღი</string>\n    <string name=\"ext_nsfw_warning\">შეიძლება შეიჩაცდეს უცენზურო(18+) კონტენტს</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_remove_bookmarked_chapters\">მონიშნული თავების წაშლა</string>\n    <string name=\"pref_category_delete_chapters\">თავების წაშლა</string>\n    <string name=\"right_and_left_nav\">მარჯვენა და მარცხენა</string>\n    <string name=\"pref_dual_page_split\">განიერი გვერდების გაყოფა</string>\n    <string name=\"parental_controls_info\">ეს არ აღმოფხვრავს პროგრამაში NSFW (18+) შიგთავსის არაოფიციალურ, ან შესაძლო არასწორად მონიშნული გაფართოებებოიდან გამოჩენას.</string>\n    <string name=\"action_display_show_number_of_items\">საგნების რაოდენობის ჩვენება</string>\n    <string name=\"action_search_settings\">პარამეტრების ძიება</string>\n    <string name=\"action_start_downloading_now\">დაიწყე ჩამოტვირთვა</string>\n    <string name=\"theme_greenapple\">მწვანე ვაშლი</string>\n    <string name=\"theme_monet\">დინამიური</string>\n    <string name=\"pref_app_theme\">აპლიკაციის თემა</string>\n    <string name=\"label_warning\">გაფრთხილება</string>\n    <string name=\"confirm_lock_change\">აუთენტიკაცია ცვლილების დასადასტურებლად</string>\n    <string name=\"pref_category_appearance\">გარეგნობა</string>\n    <string name=\"label_default\">ნაგულისხმევი</string>\n    <string name=\"action_show_errors\">დააჭირე დეტალების სანახავად</string>\n    <string name=\"unread\">წაუკითხავი</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/kk/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Кеше</item>\n        <item quantity=\"other\">%1$d күн бұрын</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s минуттан кейін</item>\n        <item quantity=\"other\">%1$s минуттан кейін</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d санат</item>\n        <item quantity=\"other\">%d санаттар</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s дегеннен кейін %2$s қателікпен орындалды</item>\n        <item quantity=\"other\">%1$s дегеннен кейін %2$s қателікпен орындалды</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Келесі оқылмаған тарау</item>\n        <item quantity=\"other\">Келесі %d оқылмаған тарау</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s тарау қалды</item>\n        <item quantity=\"other\">%1$s тарау қалды</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d бақылау</item>\n        <item quantity=\"other\">%d бақылаулар</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s тарау</item>\n        <item quantity=\"other\">%1$s тарау</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">%1$s тарау және біреу</item>\n        <item quantity=\"other\">%1$s тарау мен %2$d</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Дереккөзі жоқ немесе сүзілген %d тарау өткізіліп жіберілді</item>\n        <item quantity=\"other\">Дереккөзі жоқ немесе сүзілген %d тарау өткізіліп жіберілді</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d жаңа тарау</item>\n        <item quantity=\"other\">%1$d жаңа тарау</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Кеңейту үшін жаңарту бар</item>\n        <item quantity=\"other\">%d кеңейту үшін жаңарту бар</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d жазбасы үшін</item>\n        <item quantity=\"other\">%d жазбасы үшін</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Келесі тарау</item>\n        <item quantity=\"other\">Келесі %d тарау</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\"/>\n        <item quantity=\"other\">Жоқ %1$s тараулары</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Ертең</item>\n        <item quantity=\"other\">%1$d күнде</item>\n    </plurals>\n</resources>"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/kk/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_settings\">Баптау</string>\n    <string name=\"label_download_queue\">Жүктеу кезегі</string>\n    <string name=\"label_library\">Кітапхана</string>\n    <string name=\"label_recent_updates\">Жаңартпа</string>\n    <string name=\"label_sources\">Дереккөз</string>\n    <string name=\"label_backup\">Сақтық көшірме</string>\n    <string name=\"label_extensions\">Кеңейтпе</string>\n    <string name=\"label_extension_info\">Кеңейтпе туралы</string>\n    <string name=\"label_help\">Көмек</string>\n    <string name=\"categories\">Санат</string>\n    <string name=\"manga\">Кітапханадағы топтама</string>\n    <string name=\"chapters\">Тарауы</string>\n    <string name=\"track\">Аңду</string>\n    <string name=\"label_migration\">Көшу</string>\n    <string name=\"label_default\">Әдепкі</string>\n    <string name=\"label_warning\">Ескертпе</string>\n    <string name=\"confirm_lock_change\">Өзгертуді растау үшін аутентификацияла</string>\n    <string name=\"action_menu\">Мәзір</string>\n    <string name=\"action_filter\">Сүзгі</string>\n    <string name=\"action_filter_bookmarked\">Бетбелгіленген</string>\n    <string name=\"right_to_left_viewer\">Бет (оңнан солға)</string>\n    <string name=\"vertical_viewer\">Беттік (тік)</string>\n    <string name=\"webtoon_viewer\">Ұзын жолақ</string>\n    <string name=\"scale_type_fit_screen\">Экранға сыйғыздыру</string>\n    <string name=\"scale_type_stretch\">Тарту</string>\n    <string name=\"information_no_downloads\">Жүктеулер жоқ</string>\n    <string name=\"information_no_recent\">Жаңа жаңартулар жоқ</string>\n    <string name=\"information_no_recent_manga\">Жақында ештеңе оқылмады</string>\n    <string name=\"information_empty_library\">Кітапханаңыз бос</string>\n    <string name=\"name\">Атауы</string>\n    <string name=\"label_more\">Тағы</string>\n    <string name=\"label_recent_manga\">Тарих</string>\n    <string name=\"history\">Тарих</string>\n    <string name=\"action_settings\">Баптау</string>\n    <string name=\"nav_zone_left\">Сол</string>\n    <string name=\"nav_zone_right\">Оң</string>\n    <string name=\"left_to_right_viewer\">Бет (солдан оңға қарай)</string>\n    <string name=\"information_empty_category\">Санаттарыңыз жоқ. Жаңа санат жасау үшін және кітапханаңызды ұйымдастыру үшін қосу батырмасын басыңыз.</string>\n    <string name=\"nav_zone_next\">Келесі</string>\n    <string name=\"action_sort_last_manga_update\">Соңғы жаңартпа тексеруі</string>\n    <string name=\"action_sort_unread_count\">Оқылмаған тарауы</string>\n    <string name=\"action_display_list\">Тізім</string>\n    <string name=\"action_display_download_badge\">Жүктелген тараулар</string>\n    <string name=\"secure_screen\">Қолданба экранын қорғау</string>\n    <string name=\"pref_app_theme\">Қолданба кейпі</string>\n    <string name=\"theme_monet\">Динамикалық</string>\n    <string name=\"theme_greenapple\">Жасыл Алма</string>\n    <string name=\"theme_midnightdusk\">Ымырт</string>\n    <string name=\"pref_category_tracking\">Аңду</string>\n    <string name=\"pref_category_about\">Ақпарат</string>\n    <string name=\"action_close\">Жабу</string>\n    <string name=\"pref_category_appearance\">Кейіп</string>\n    <string name=\"pref_category_library\">Кітапхана</string>\n    <string name=\"pref_category_reader\">Оқыма</string>\n    <string name=\"pref_category_downloads\">Жүктеулер</string>\n    <string name=\"pref_category_advanced\">Толығырақ</string>\n    <string name=\"pref_category_theme\">Кейіп</string>\n    <string name=\"theme_system\">Жүйе бойынша</string>\n    <string name=\"theme_light\">Өшірулі</string>\n    <string name=\"theme_dark\">Қосулы</string>\n    <string name=\"theme_strawberrydaiquiri\">Құлпынай Дайкири</string>\n    <string name=\"theme_tako\">Тако</string>\n    <string name=\"theme_yotsuba\">Йотсуба</string>\n    <string name=\"theme_tealturquoise\">Қызғылт пен жасыл</string>\n    <string name=\"pref_dark_theme_pure_black\">Қап-қараңғы режим</string>\n    <string name=\"theme_yinyang\">Инь мен Йянь</string>\n    <string name=\"relative_time_today\">Бүгін</string>\n    <string name=\"update_never\">Өшірулі</string>\n    <string name=\"update_6hour\">Әр 6 сағат сайын</string>\n    <string name=\"update_12hour\">Әр 12 сағат сайын</string>\n    <string name=\"update_24hour\">Күн сайын</string>\n    <string name=\"update_48hour\">Әр 2 күн сайын</string>\n    <string name=\"update_72hour\">Әр 3 күн сайын</string>\n    <string name=\"update_weekly\">Апта сайын</string>\n    <string name=\"pref_library_update_restriction\">Автоматты жаңартуларға құрылғы шектеулері</string>\n    <string name=\"connected_to_wifi\">Тек Wi-Fi болғанда</string>\n    <string name=\"charging\">Қуаттандыру кездінде</string>\n    <string name=\"restrictions\">Шектеулер: %s</string>\n    <string name=\"secure_screen_summary\">Қауіпсіз экран қолданбаларды ауыстырған кезде қолданба мазмұнын жасырады және скриншот жасауды бұғаттайды</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) дереккөздері</string>\n    <string name=\"pref_show_nsfw_source\">Дереккөздер мен кеңейтулер тізімінде көрсету</string>\n    <string name=\"parental_controls_info\">Бұл қолданбадағы NSFW (18+) мазмұнын көрсетуге бейресми немесе ықтимал қате белгіленген кеңейтулерге кедергі жасамайды.</string>\n    <string name=\"action_mark_as_read\">Оқылған деп белгілеу</string>\n    <string name=\"action_mark_as_unread\">Оқылмаған деп белгілеу</string>\n    <string name=\"action_mark_previous_as_read\">Алдыңғысын оқылған деп белгілеу</string>\n    <string name=\"action_filter_tracked\">Аңдулы</string>\n    <string name=\"action_filter_unread\">Оқылмаған</string>\n    <string name=\"action_filter_empty\">Сүзгіні алу</string>\n    <string name=\"action_sort_alpha\">Атауынша</string>\n    <string name=\"action_sort_count\">Түгел топтама</string>\n    <string name=\"action_sort_total\">Тарау санынша</string>\n    <string name=\"action_sort_last_read\">Соңғы оқылған</string>\n    <string name=\"action_sort_latest_chapter\">Соңғы тарау</string>\n    <string name=\"action_sort_chapter_fetch_date\">Тарау шыққаны бойынша</string>\n    <string name=\"action_sort_date_added\">Қосылған күні</string>\n    <string name=\"action_search\">Іздеу</string>\n    <string name=\"action_search_settings\">Баптау іздеу</string>\n    <string name=\"action_global_search\">Ауқымды іздеу</string>\n    <string name=\"action_select_all\">Түгелін таңдау</string>\n    <string name=\"action_download\">Жүктеп алу</string>\n    <string name=\"action_bookmark\">Тарауды бетбелгілеу</string>\n    <string name=\"action_remove_bookmark\">Тарау бетбелгісін өшіру</string>\n    <string name=\"action_delete\">Жою</string>\n    <string name=\"action_update_library\">Кітапхананы жаңарту</string>\n    <string name=\"action_select_inverse\">Керісінше таңдау</string>\n    <string name=\"action_display\">Бейнебет</string>\n    <string name=\"action_enable_all\">Түгелін қосу</string>\n    <string name=\"action_disable_all\">Түгелін өшіру</string>\n    <string name=\"action_edit\">Өңдеу</string>\n    <string name=\"action_add\">Қосу</string>\n    <string name=\"action_add_category\">Санат қосу</string>\n    <string name=\"action_edit_categories\">Санаттарды өңдеу</string>\n    <string name=\"action_rename_category\">Санаттың атын өзгерту</string>\n    <string name=\"action_move_category\">Санаттарды орнату</string>\n    <string name=\"action_edit_cover\">Мұқабасын өзгерту</string>\n    <string name=\"action_view_chapters\">Тарауларды қарау</string>\n    <string name=\"action_pause\">Тоқтату</string>\n    <string name=\"action_previous_chapter\">Алдыңғы тарау</string>\n    <string name=\"action_next_chapter\">Келесі тарау</string>\n    <string name=\"action_retry\">Қайталау</string>\n    <string name=\"action_remove\">Жою</string>\n    <string name=\"action_start\">Бастау</string>\n    <string name=\"action_open_in_browser\">Браузерде ашу</string>\n    <string name=\"action_show_manga\">Жазбаны көрсету</string>\n    <string name=\"action_open_in_web_view\">WebView-де ашу</string>\n    <string name=\"action_migrate\">Көшу</string>\n    <string name=\"action_display_mode\">Бейнебет режимі</string>\n    <string name=\"action_display_local_badge\">Локалды дереккөз</string>\n    <string name=\"action_display_language_badge\">Тіл</string>\n    <string name=\"action_display_show_tabs\">Санат қойындыларын көрсету</string>\n    <string name=\"action_display_show_number_of_items\">Элементтер санын көрсету</string>\n    <string name=\"action_disable\">Өшіру</string>\n    <string name=\"action_pin\">Бекіту</string>\n    <string name=\"action_unpin\">Ажырату</string>\n    <string name=\"action_cancel\">Болдырмау</string>\n    <string name=\"action_cancel_all\">Барлығын болдырмау</string>\n    <string name=\"cancel_all_for_series\">Осы туынды үшін барлығын болдырмау</string>\n    <string name=\"action_sort\">Сұрыптау</string>\n    <string name=\"action_order_by_upload_date\">Жүктелген күні бойынша</string>\n    <string name=\"action_order_by_chapter_number\">Тарау нөмірі бойынша</string>\n    <string name=\"action_newest\">Жаңарақ</string>\n    <string name=\"action_oldest\">Ескірек</string>\n    <string name=\"action_asc\">Артуы бойынша</string>\n    <string name=\"action_desc\">Кемуі бойынша</string>\n    <string name=\"action_move_to_top\">Басына оралу</string>\n    <string name=\"action_move_to_top_all_for_series\">Туындыны басына апару</string>\n    <string name=\"action_move_to_bottom\">Соңына бару</string>\n    <string name=\"action_install\">Орнату</string>\n    <string name=\"action_share\">Бөлісу</string>\n    <string name=\"action_save\">Сақтау</string>\n    <string name=\"action_reset\">Қалпына келтіру</string>\n    <string name=\"action_undo\">Болдырмау</string>\n    <string name=\"action_open_log\">Тіркеуді ашу</string>\n    <string name=\"action_show_errors\">Толық ақпарат алу үшін басыңыз</string>\n    <string name=\"action_restore\">Қалпына келтіру</string>\n    <string name=\"action_webview_back\">Артқа</string>\n    <string name=\"action_webview_forward\">Алға</string>\n    <string name=\"action_webview_refresh\">Жаңарту</string>\n    <string name=\"action_start_downloading_now\">Жүктеуді қазір бастау</string>\n    <string name=\"loading\">Жүктелуде…</string>\n    <string name=\"app_not_available\">Қолданба қолжетімсіз</string>\n    <string name=\"pref_category_general\">Жалпы</string>\n    <string name=\"pref_date_format\">Күн пішімі</string>\n    <string name=\"pref_manage_notifications\">Хабарландыруларды басқару</string>\n    <string name=\"pref_category_security\">Қауіпсіздік пен құпиялық</string>\n    <string name=\"lock_with_biometrics\">Құлыпты ашуды талап етеді</string>\n    <string name=\"lock_when_idle\">Әрекетсіз болғанда бұғаттау</string>\n    <string name=\"lock_always\">Әрдайым</string>\n    <string name=\"lock_never\">Ешқашан</string>\n    <string name=\"hide_notification_content\">Хабарландыру мазмұнын жасыру</string>\n    <string name=\"pref_library_columns\">Әр жолдағы элемент саны</string>\n    <string name=\"pref_category_display\">Көрсету</string>\n    <string name=\"portrait\">Портрет</string>\n    <string name=\"landscape\">Пейзаж</string>\n    <string name=\"pref_category_library_update\">Ауқымды жаңарту</string>\n    <string name=\"pref_library_update_interval\">Автоматты жаңартулар</string>\n    <string name=\"action_resume\">Жалғастыру</string>\n    <string name=\"pref_app_language\">Қолданба тілі</string>\n    <string name=\"default_category_summary\">Әрқашан сұраңыз</string>\n    <string name=\"default_category\">Әдепкі санат</string>\n    <string name=\"categorized_display_settings\">Сұрыптау және көрсету үшін әр санат баптауы</string>\n    <string name=\"ext_uninstall\">Жою</string>\n    <string name=\"ext_update\">Жаңарту</string>\n    <string name=\"ext_pending\">Күтілуде</string>\n    <string name=\"obsolete_extension_message\">Бұл кеңейту енді қолжетімсіз. Ол дұрыс жұмыс істемеуі немесе қолданбада ақаулық тудыруы мүмкін. Оны жойып тастауға кеңес береміз.</string>\n    <string name=\"ext_installer_pref\">Орнатушы</string>\n    <string name=\"ext_installer_legacy\">Әдепкі қалпы</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku қосылмаған</string>\n    <string name=\"pref_dual_page_invert_summary\">Қос бетті бөлу оқу бағытына сәйкес келмесе</string>\n    <string name=\"pref_show_reading_mode\">Оқу режимін көрсету</string>\n    <string name=\"on\">Қосулы</string>\n    <string name=\"ext_downloading\">Жүктелуде</string>\n    <string name=\"off\">Өшірулі</string>\n    <string name=\"pref_custom_brightness\">Өзгермелі жарықтық</string>\n    <string name=\"pref_grayscale\">Сұр реңктері</string>\n    <string name=\"pref_inverted_colors\">Төңкерілген</string>\n    <string name=\"pref_custom_color_filter\">Өзгермелі түс фильтрі</string>\n    <string name=\"network_not_metered\">Тек шексіз желіде</string>\n    <string name=\"ext_info_version\">Нұсқа</string>\n    <string name=\"ext_info_language\">Тіл</string>\n    <string name=\"ext_info_age_rating\">Жас рейтингі</string>\n    <string name=\"action_display_comfortable_grid\">Ыңғайлы кесте</string>\n    <string name=\"action_display_cover_only_grid\">Атаусыз кесте</string>\n    <string name=\"pref_library_update_refresh_metadata\">Метадеректерді автоматты түрде жаңарту</string>\n    <string name=\"pref_library_update_categories_details\">Шығарылған санаттардағы жазбалар енгізілген санаттарда болса да жаңартылмайды.</string>\n    <string name=\"all\">Барлығы</string>\n    <string name=\"none\">Ешқайсы</string>\n    <string name=\"exclude\">Шығару: %s</string>\n    <string name=\"include\">Қосу: %s</string>\n    <string name=\"ext_installing\">Орнатылуда</string>\n    <string name=\"ext_installed\">Орнатылды</string>\n    <string name=\"ext_trust\">Сенім</string>\n    <string name=\"ext_untrusted\">Сенімсіз</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizuku-ны кеңейту орнатушысы ретінде пайдалану үшін Shizuku-ны орнатып іске қосыңыз.</string>\n    <string name=\"pref_show_navigation_mode\">Түрту аймақтарының қабаттасуын көрсету</string>\n    <string name=\"pref_show_navigation_mode_summary\">Оқыма ашылғаннан кейін қысқаша көрсету</string>\n    <string name=\"pref_dual_page_split\">Қең беттерді бөлу</string>\n    <string name=\"pref_show_page_number\">Бет нөмірін көрсету</string>\n    <string name=\"pref_color_filter_mode\">Жарықты сүзу режимі</string>\n    <string name=\"pref_update_only_completely_read\">Тарауы оқылмаған топтаманы өткізе беру</string>\n    <string name=\"pref_update_only_non_completed\">«Аяқталған» күйімен</string>\n    <string name=\"pref_dual_page_invert\">Қос бетті бөлуді инверттеу</string>\n    <string name=\"action_display_grid\">Ықшам кесте</string>\n    <string name=\"pref_show_reading_mode_summary\">Оқыма ашылғаннан кейін оқу түрін қысқаша көрсету</string>\n    <string name=\"pref_crop_borders\">Кесу жиектері</string>\n    <string name=\"extension_api_error\">Кеңейтулер тізімін алу сәтсіз өтті</string>\n    <string name=\"pref_cutout_short\">Мазмұнды кесу аймағында көрсету</string>\n    <string name=\"pref_update_only_started\">Бұл басталған жоқ</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Кітапхананы жаңарту кезінде жаңа мұқаба мен мәліметтерді тексеру</string>\n    <string name=\"ext_updates_pending\">Жаңартулар күтілуде</string>\n    <string name=\"ext_update_all\">Барлығын жаңарту</string>\n    <string name=\"ext_obsolete\">Ескірген</string>\n    <string name=\"ext_install\">Орнату</string>\n    <string name=\"ext_app_info\">Қолданба туралы</string>\n    <string name=\"untrusted_extension\">Сенімсіз кеңейту</string>\n    <string name=\"untrusted_extension_message\">Бұл кеңейту сенімсіз сертификатпен қол қойылған және іске қосылмаған.\n\\n\n\\nЗиянды кеңейту Mihon-де сақталған кез келген кіру тіркелгі деректерін оқуы немесе еркін кодты орындауы мүмкін.\n\\n\n\\nОсы сертификатқа сену арқылы сіз осы қауіп-қатерді қабылдайсыз.</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">Бұл кеңейту дереккөзінде NSFW (18+) мазмұны болуы мүмкін</string>\n    <string name=\"ext_install_service_notif\">Кеңейту орнатылуда…</string>\n    <string name=\"pref_fullscreen\">Толық экранды</string>\n    <string name=\"pref_page_transitions\">Беттің ауысуын анимациялау</string>\n    <string name=\"pref_double_tap_anim_speed\">Қосарлы түрту анимация жылдамдығы</string>\n    <string name=\"in_library\">Кітапханада</string>\n    <string name=\"completed\">Аяқталған</string>\n    <string name=\"remove_from_library\">Кітапханадан жою</string>\n    <string name=\"pref_clear_history\">Тарихты тазалау</string>\n    <string name=\"download_notifier_title_error\">Қателік</string>\n    <string name=\"pref_category_reading\">Оқылуда</string>\n    <string name=\"recent_manga_time\">Тарау %1$s - %2$s</string>\n    <string name=\"pref_skip_read_chapters\">Оқылды деп белгіленген тарауларды өткізіп жіберу</string>\n    <string name=\"delete_category_confirmation\">«%s» деген санатты жойғыңыз келеді ме?</string>\n    <string name=\"delete_category\">Санатты жою</string>\n    <string name=\"internal_error\">Ішкі қателік: Қосымша ақпарат алу үшін қателіктер тіркеуін тексеріңіз</string>\n    <string name=\"theme_lavender\">Лаванда</string>\n    <string name=\"pref_skip_filtered_chapters\">Сүзілген тарауларлы өткізіп жіберу</string>\n    <string name=\"action_remove_everything\">Барлығын жою</string>\n    <string name=\"filter_mode_overlay\">Қабаттасу</string>\n    <string name=\"filter_mode_multiply\">Көбейту</string>\n    <string name=\"filter_mode_screen\">Экран</string>\n    <string name=\"pref_keep_screen_on\">Экранды қосулы ұстау</string>\n    <string name=\"pref_reader_navigation\">Шарлау</string>\n    <string name=\"zoom_start_left\">Сол</string>\n    <string name=\"right_and_left_nav\">Оң мен сол</string>\n    <string name=\"zoom_start_right\">Оң</string>\n    <string name=\"scale_type_fit_width\">Ені бойынша</string>\n    <string name=\"scale_type_original_size\">Бастапқы мөлшері</string>\n    <string name=\"rotation_reverse_portrait\">Кері портрет</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Бумаларды жазбалар атауына сәйкес жасау</string>\n    <string name=\"rotation_landscape\">Көлденең</string>\n    <string name=\"pref_webtoon_side_padding\">Бүйірлік шегініс</string>\n    <string name=\"color_filter_r_value\">Қ</string>\n    <string name=\"pref_landscape_zoom\">Кескінді көлденеңінен үлкейту</string>\n    <string name=\"pref_zoom_start\">Үлкейтудің бастапқы қалпы</string>\n    <string name=\"black_background\">Қара</string>\n    <string name=\"automatic_background\">Автоматты</string>\n    <string name=\"pref_reader_actions\">Әрекеттер</string>\n    <string name=\"pref_read_with_long_tap\">Ұзақ түртуде көрсету</string>\n    <string name=\"gray_background\">Сұр</string>\n    <string name=\"pref_viewer_type\">Әдепкі оқу режимі</string>\n    <string name=\"pref_highest\">Ең жоғары</string>\n    <string name=\"pref_remove_exclude_categories\">Саналмайтын санаттар</string>\n    <string name=\"pref_remove_after_marked_as_read\">Қолмен оқылған деп белгіленгеннен кейін</string>\n    <string name=\"pref_remove_after_read\">Оқығаннан кейін автоматты түрде жою</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Бетбелгіленген тарауларды жоюға рұқсат беру</string>\n    <string name=\"backup_restore_missing_sources\">Жоқ дереккөздер:</string>\n    <string name=\"save_chapter_as_cbz\">CBZ архивы ретінде сақтау</string>\n    <string name=\"label_data\">Дерек</string>\n    <string name=\"pref_clear_chapter_cache\">Тарау кешің тазалау</string>\n    <string name=\"disabled_nav\">Өшірулі</string>\n    <string name=\"label_network\">Желі</string>\n    <string name=\"cookies_cleared\">Куки тазартылды</string>\n    <string name=\"double_tap_anim_speed_normal\">Қалыпты</string>\n    <string name=\"pref_rotation_type\">Әдепкі айналу түрі</string>\n    <string name=\"rotation_type\">Айналу түрі</string>\n    <string name=\"rotation_free\">Жүйелі</string>\n    <string name=\"rotation_portrait\">Портрет</string>\n    <string name=\"color_filter_a_value\">А</string>\n    <string name=\"pref_clear_cookies\">Куки тазарту</string>\n    <string name=\"rotation_force_landscape\">Құлыпталған көлденең</string>\n    <string name=\"color_filter_g_value\">Ж</string>\n    <string name=\"color_filter_b_value\">К</string>\n    <string name=\"white_background\">Ақ</string>\n    <string name=\"restore_duration\">%1$02d мин, %2$02d сек</string>\n    <string name=\"pref_always_show_chapter_transition\">Тараулардың ауысуын әрдайым көрсету</string>\n    <string name=\"rotation_force_portrait\">Құлыпталған портрет</string>\n    <string name=\"pref_high\">Жоғары</string>\n    <string name=\"pref_low\">Төмен</string>\n    <string name=\"pref_lowest\">Ең төмен</string>\n    <string name=\"pref_category_delete_chapters\">Тарауларды жою</string>\n    <string name=\"disabled\">Өшірулі</string>\n    <string name=\"last_read_chapter\">Соңғы оқылған тарау</string>\n    <string name=\"second_to_last\">Соңғыдан бұрын оқылған тарау</string>\n    <string name=\"third_to_last\">Соңғы оқылғаннан үшінші тарау</string>\n    <string name=\"fourth_to_last\">Соңғы оқылғаннан төртінші тарау</string>\n    <string name=\"services\">Қызметтер</string>\n    <string name=\"pref_create_backup\">Сақтық көшірме жасау</string>\n    <string name=\"pref_create_folder_per_manga\">Беттерді бөлек бумаларға сақтау</string>\n    <string name=\"pref_reader_theme\">Түсқағаз</string>\n    <string name=\"nav_zone_prev\">Алдыңғ</string>\n    <string name=\"scale_type_fit_height\">Биіктігі бойынша</string>\n    <string name=\"scale_type_smart_fit\">Ақылды</string>\n    <string name=\"zoom_start_center\">Орталық</string>\n    <string name=\"double_tap_anim_speed_0\">Анимациясыз</string>\n    <string name=\"double_tap_anim_speed_fast\">Жылдам</string>\n    <string name=\"zoom_start_automatic\">Автоматты</string>\n    <string name=\"pref_category_reading_mode\">Оқу режимі</string>\n    <string name=\"fifth_to_last\">Соңғы оқылғаннан бесінші тарау</string>\n    <string name=\"pref_category_auto_download\">Авто-жүктеу</string>\n    <string name=\"pref_download_new\">Жаңа тарауларды жүктеу</string>\n    <string name=\"pref_download_new_categories_details\">Саналмайтын санаттардағы жазбалар саналатын санаттарда болса да жүктелмейді.</string>\n    <string name=\"enhanced_services\">Күшейтілген қызметтер</string>\n    <string name=\"multi_lang\">Көптілді</string>\n    <string name=\"tapping_inverted_horizontal\">Көлденең</string>\n    <string name=\"auto_download_while_reading\">Оқығанда дағдылы жүктеу</string>\n    <string name=\"download_ahead\">Алдын ала жүктеу</string>\n    <string name=\"theme_tidalwave\">Көтерілу Толқыны</string>\n    <string name=\"filter_mode_lighten\">Жарық қылу</string>\n    <string name=\"filter_mode_darken\">Қараңғы қылу</string>\n    <string name=\"pref_read_with_tapping_inverted\">Басу аймағын терістету</string>\n    <string name=\"tapping_inverted_vertical\">Тік</string>\n    <string name=\"kindlish_nav\">Kindle тәріздес</string>\n    <string name=\"download_ahead_info\">Кітапханадағы жазбаларда ғана жұмыс істейді, сондай-ақ ағымдағы және келесі тарау әлдеқашан жүктелген болса</string>\n    <string name=\"edge_nav\">Шеті</string>\n    <string name=\"pref_read_with_volume_keys\">Дыбыс пернелері</string>\n    <string name=\"tapping_inverted_both\">Екеуі де</string>\n    <string name=\"split_tall_images_summary\">Оқыманың өнімділігін жақсартады</string>\n    <string name=\"pref_navigate_pan\">Кең суретті басқанда панорамалау</string>\n    <string name=\"l_nav\">L тәріздес</string>\n    <string name=\"action_search_hint\">Іздеу…</string>\n    <string name=\"pref_hide_threshold\">Айналдырғандағы мәзірді жасыру сезгіштігі</string>\n    <string name=\"pref_image_scale_type\">Масштабтау</string>\n    <string name=\"vertical_plus_viewer\">Тоқтаусыз тік</string>\n    <string name=\"pref_viewer_nav\">Басу аймағы</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Теріс дыбыс пернелері</string>\n    <string name=\"tapping_inverted_none\">Жоқ</string>\n    <string name=\"pager_viewer\">Беттеп</string>\n    <string name=\"tracking_guide\">Аңду нұсқамасы</string>\n    <string name=\"tracking_info\">Аңду қызметіндегі прогрессті жаңарту үшін біржақты үйлестіру. Аңду батырмасы арқылы аңди бастаңыз.</string>\n    <string name=\"pref_auto_update_manga_sync\">Оқығаннан кейін прогрессті жаңарту</string>\n    <string name=\"pref_incognito_mode_summary\">Оқу тарихын тоқтатады</string>\n    <string name=\"backup_created\">Сақтық көшірме құрылды</string>\n    <string name=\"invalid_backup_file\">Сақтық көшірмесінің қате файлы</string>\n    <string name=\"restore_completed\">Қалпына келтіру дайын</string>\n    <string name=\"pref_user_agent_string\">Әдепкі қалпы бойынша user agent</string>\n    <string name=\"login_success\">Кірілді</string>\n    <string name=\"logout_title\">%1$s-ден шығасыз ба?</string>\n    <string name=\"missing_storage_permission\">Жадыға рұқсаттар берілмеді</string>\n    <string name=\"downloaded_chapters\">Жүктелген тараулар</string>\n    <string name=\"pinned_sources\">Бекітілген</string>\n    <string name=\"invalid_backup_file_missing_manga\">Сақтық көшірмеде кітапхана жазбалары жоқ.</string>\n    <string name=\"clear_database_source_item_count\">Кітапханадағы емес %1$d жазбалар дерекқорда</string>\n    <string name=\"restore_miui_warning\">MIUI өңтайландыруы қосылып тұрмаса сақтық көшірмесі / Қалыпқа келтіру дұрыс істемеуі мүмкін.</string>\n    <string name=\"pref_dump_crash_logs_summary\">Қателіктер тіркеуін әзірлеушілерге жіберу үшін файлға сақтайды</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Аялық кітапхананың жаңартуымен және сақтық көшірмесіне көмектеседі</string>\n    <string name=\"battery_optimization_disabled\">Баттареяның оңтайландыруы әлдеқашан өшірілу</string>\n    <string name=\"notification_incognito_text\">Инкогнито режимін өшіру</string>\n    <string name=\"pref_verbose_logging_summary\">Жан-жақты тіркеуді жүйелі тіркеуге жазу (қолданба өнімділігін азайтады)</string>\n    <string name=\"email\">Электрондық пошта мекенжайы</string>\n    <string name=\"logout\">Шығу</string>\n    <string name=\"unknown_error\">Белгісіз қателік</string>\n    <string name=\"pref_clear_database\">Дерекқорды тазалау</string>\n    <string name=\"pref_enable_acra\">Қателіктер туралы есептерді жіберу</string>\n    <string name=\"no_pinned_sources\">Сізде бекітілген дереккөздер жоқ</string>\n    <string name=\"empty_backup_error\">Кітапханада сақтайтын түк жоқ</string>\n    <string name=\"downloaded_only_summary\">Кітапханаңыздағы барлық жазбаларды сүзеді</string>\n    <string name=\"cancelled\">Күші жойылған</string>\n    <string name=\"publishing_finished\">Басылымы яқталды</string>\n    <string name=\"add_to_library\">Кітапханаға қосу</string>\n    <string name=\"pref_dump_crash_logs\">Қателер тіркеулерімен бөлісу</string>\n    <string name=\"clear_database_completed\">Жазбалар жойылды</string>\n    <string name=\"database_clean\">Тазалайтын түк жоқ</string>\n    <string name=\"pref_refresh_library_covers\">Туындылар мұқабасын жаңарту</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare айналып өтілмеді</string>\n    <string name=\"information_webview_outdated\">Жақсырақ үйлесімділік үшін WebView-ді жаңартыңыз</string>\n    <string name=\"backup_restore_missing_trackers\">Бақылау қызметіне кірілмеген:</string>\n    <string name=\"latest\">Соңғы</string>\n    <string name=\"local_filter_order_by\">Сұрыптау</string>\n    <string name=\"version\">Нұсқа</string>\n    <string name=\"licenses\">Open source лицензасы</string>\n    <string name=\"updated_version\">%1$s дейін жаңартылды</string>\n    <string name=\"local_invalid_format\">Жарамсыз тарау пішіні</string>\n    <string name=\"date\">Күн</string>\n    <string name=\"ongoing\">Шығып жатыр</string>\n    <string name=\"restore_in_progress\">Қалпына келтіру әлдеқашан орындалуда</string>\n    <string name=\"backup_choice\">Сақтық көшірмесіне нені қалайсыз?</string>\n    <string name=\"restoring_backup\">Сақтық көшірмесін қалпына келтіру</string>\n    <string name=\"backup_in_progress\">Сақтық көшірмесі әлдеқашан орындалуда</string>\n    <string name=\"pref_reset_viewer_flags_error\">Оқыма баптауы қалпына келтірілмеді</string>\n    <string name=\"pref_reset_viewer_flags_success\">Оқыманың барлық баптауы қалпына келді</string>\n    <string name=\"whats_new\">Не жаңалық</string>\n    <string name=\"help_translate\">Аудармамен көмектесу</string>\n    <string name=\"restoring_backup_error\">Сақтық көшірмесін қалпына келтіру сәтсіз өтті</string>\n    <string name=\"pref_dns_over_https\">DNS арқылы HTTPS (DoH)</string>\n    <string name=\"restoring_backup_canceled\">Қалпына келтіру күші жойылды</string>\n    <string name=\"popular\">Танымал</string>\n    <string name=\"backup_restore_content_full\">Сақтық көшірме файлынан дерек қалпына келеді.\n\\n\n\\nОны қолдану үшін сізге түгел жетпей тұрған кеңейтулерді жүктеп, бақылау қызметтеріне кіру керек.</string>\n    <string name=\"chapter_not_found\">Тарау табылмады</string>\n    <string name=\"action_track\">Бақылау</string>\n    <string name=\"pref_tablet_ui_mode\">Планшетті интерфейс</string>\n    <string name=\"pref_incognito_mode\">Инкогнито режимі</string>\n    <string name=\"tabs_header\">Қойындылар</string>\n    <string name=\"no_more_results\">Басқа нәтиже жоқ</string>\n    <string name=\"username\">Пайдаланушының есімі</string>\n    <string name=\"requires_app_restart\">Күшіне ену үшін қолданбаны қайта іске қосу қажет</string>\n    <string name=\"creating_backup_error\">Сақтық көшірмесі сәтсіз өтті</string>\n    <string name=\"local_source_help_guide\">Локал дереккөзді қолдану нұсқаулығы</string>\n    <string name=\"other_source\">Басқа</string>\n    <string name=\"backup_info\">Сақтық көшірмелерін басқа жерлерде де сақтауыңызға кеңес береміз.</string>\n    <string name=\"error_user_agent_string_blank\">User agent бос бола алмайды</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Қолданба жабылғанда тараулар кешің тазалау</string>\n    <string name=\"pref_reset_viewer_flags\">Оқыма баптауын әрбір туынды үшін қалпына келтіру</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Барлық туындылар үшін оқу режимі мен бағдарын қалпына келтіреді</string>\n    <string name=\"label_background_activity\">Аялық белсенділік</string>\n    <string name=\"pref_disable_battery_optimization\">Батареяның оңтайландыруын өшіру</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Құрылғы баптауы ашылмады</string>\n    <string name=\"privacy_policy\">Құпиялық саясаты</string>\n    <string name=\"pref_acra_summary\">Барлық мүмкін қателерді түзетуге көмектеседі. Пайдаланушы деректері жіберілмейді</string>\n    <string name=\"label_downloaded_only\">Жүктелгенді ғана</string>\n    <string name=\"login_title\">%1$s-ге кіру</string>\n    <string name=\"password\">Құпиясөз</string>\n    <string name=\"login\">Кіру</string>\n    <string name=\"logout_success\">Сіз шығып кеттіңіз</string>\n    <string name=\"updating_category\">Санатты жаңартып жатырмыз</string>\n    <string name=\"manga_from_library\">Кітапханадан</string>\n    <string name=\"no_results_found\">Нәтиже жоқ</string>\n    <string name=\"local_source\">Локал дереккөз</string>\n    <string name=\"last_used_source\">Ақырғы қолданылған</string>\n    <string name=\"unknown\">Белгісіз</string>\n    <string name=\"unknown_author\">Белгісіз автор</string>\n    <string name=\"unknown_status\">Белгісіз күй</string>\n    <string name=\"licensed\">Лицензаланған</string>\n    <string name=\"on_hiatus\">Үзілісте</string>\n    <string name=\"enhanced_tracking_info\">Белгілі бір дереккөз үшін жақсартылған мүмкіндікті қамтамасыз ететін қызмет. Кітапханаға қосылған кезде топтама автоматты түрде аңдылады.</string>\n    <string name=\"pref_restore_backup\">Сақтық көшірмеден қайтару</string>\n    <string name=\"pref_create_backup_summ\">Қазіргі кітапхананы қалпына келтіру үшін қолдануға болады</string>\n    <string name=\"pref_backup_interval\">Сақтық көшірме жиілігі</string>\n    <string name=\"pref_restore_backup_summ\">Сақтық көшірмеден кітапхананы қайтару</string>\n    <string name=\"creating_backup\">Сақтық көшірмесін жасау</string>\n    <string name=\"used_cache\">Қолданылған: %1$s</string>\n    <string name=\"cache_delete_error\">Тазалауда қателік пайда болды</string>\n    <string name=\"pref_clear_database_summary\">Кітапханада жоқ жазбалардың тарихын жою</string>\n    <string name=\"pref_clear_webview_data\">WebView дерегін тазалау</string>\n    <string name=\"webview_data_deleted\">WebView дерегі тазаланды</string>\n    <string name=\"about_dont_kill_my_app\">Кейбір өндірушілерде аялық қызметтерді өшіретін қолданбаларға қосымша шектеулер бар. Бұл сайтта оны қалай түзетуге болатыны туралы толығырақ ақпарат бар.</string>\n    <string name=\"pref_verbose_logging\">Тіркеуді жан-жақты жүргізу</string>\n    <string name=\"website\">Сайт</string>\n    <string name=\"action_global_search_hint\">Ауқымды іздеу…</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" ауқымды іздеу</string>\n    <string name=\"browse\">Іздеу</string>\n    <string name=\"pref_reset_user_agent_string\">User agent-ті әдепкіге қайтару</string>\n    <string name=\"cache_deleted\">Кеш тазаланды. %1$d файл жойылды</string>\n    <string name=\"check_for_updates\">Жаңартуларға тексеру</string>\n    <string name=\"source_filter_empty_screen\">Орнатылған дереккөз табылмады</string>\n    <string name=\"update_already_running\">Жаңарту әлдеқашан қосылған</string>\n    <string name=\"skipped_reason_not_caught_up\">Оқылмаған тараулар бар болғандықтан өткізіп жіберілді</string>\n    <string name=\"display_mode_chapter\">%1$s-Тарау</string>\n    <string name=\"manga_tracking_tab\">Бақылау</string>\n    <string name=\"add_tracking\">Бақылау қосу</string>\n    <string name=\"dropped\">Тасталған</string>\n    <string name=\"on_hold\">Кейінге қалған</string>\n    <string name=\"paused\">Тоқтатылған</string>\n    <string name=\"repeating\">Қайта оқылуда</string>\n    <string name=\"reading_list\">Оқылудағылар Тізімі</string>\n    <string name=\"update_check_no_new_updates\">Жаңалтулар жоқ</string>\n    <string name=\"information_webview_required\">Mihon-ны қолдану үшін WebView керек</string>\n    <string name=\"chapter_settings_updated\">Әдепкі тарау параметрлері жаңартылды</string>\n    <string name=\"download_notifier_no_network\">Желі байланысы жоқ</string>\n    <string name=\"information_empty_category_dialog\">Сіздің кітапханаңызда санаттар жоқ.</string>\n    <string name=\"reading\">Оқылуда</string>\n    <string name=\"no_chapters_error\">Тараулар жоқ</string>\n    <string name=\"are_you_sure\">Сенімдісіз бе?</string>\n    <string name=\"unread\">Оқылмаған</string>\n    <string name=\"updating_library\">Кітапхана жаңаруда</string>\n    <string name=\"cant_open_last_read_chapter\">Ақырғы оқылған тарау ашылмай тұр</string>\n    <string name=\"updates_last_update_info\">Кітапхананың ақырғы жаңаруы: %s</string>\n    <string name=\"loader_not_implemented_error\">Дереккөз табылмады</string>\n    <string name=\"myanimelist_relogin\">MyAnimeList-ке қайтадан кіріңіз</string>\n    <string name=\"error_no_match\">Ұқсастық табылмады</string>\n    <string name=\"source_unsupported\">Дереккөз қолжетімсіз</string>\n    <string name=\"error_saving_picture\">Сурет сақталмады</string>\n    <string name=\"transition_next\">Келесі:</string>\n    <string name=\"clear_history_confirmation\">Сенімдісіз бе? Бар тарих жоғалады.</string>\n    <string name=\"source_empty_screen\">Дереккөз табылмады</string>\n    <string name=\"notification_update_error\">%1$d жаңарту сәтсіз өтті</string>\n    <string name=\"notification_cover_update_failed\">Мұқаба жаңартылмады</string>\n    <string name=\"update_check_notification_update_available\">Жаңа нұсқа қолжетімді!</string>\n    <string name=\"download_notifier_split_page_not_found\">%d бет табылмады, бөлінгенде</string>\n    <string name=\"channel_complete\">Аяқталды</string>\n    <string name=\"pref_reader_summary\">Оқу түрі, көрсету, навигация</string>\n    <string name=\"pref_browse_summary\">Дереккөздер, кеңейтулер, ауқымды іздеу</string>\n    <string name=\"pref_security_summary\">Қолданбаны бұғаттау, экранды қорғау</string>\n    <string name=\"manga_info_collapse\">Азырақ</string>\n    <string name=\"manga_added_library\">Кітапханаға қосылды</string>\n    <string name=\"description_placeholder\">Сипаттамасыз</string>\n    <string name=\"sort_by_upload_date\">Жүктелген күні бойынша</string>\n    <string name=\"manga_download\">Жүктеп алу</string>\n    <string name=\"manga_cover\">Мұқаба</string>\n    <string name=\"error_saving_cover\">Мұқаба сақталмады</string>\n    <string name=\"download_unread\">Оқылмаған</string>\n    <string name=\"error_sharing_cover\">Мұқаба жіберілмеді</string>\n    <string name=\"cover_saved\">Мұқаба сақталды</string>\n    <string name=\"confirm_set_chapter_settings\">Бұл баптауды әдепкі қылып сақтағыңыз келеді ме?</string>\n    <string name=\"learn_more\">Көбірек білу үшін басу</string>\n    <string name=\"update_check_confirm\">Жүктеп алу</string>\n    <string name=\"channel_common\">Ортақ</string>\n    <string name=\"channel_progress\">Прогресс</string>\n    <string name=\"also_set_chapter_settings_for_library\">Сонымен қоса кітапханадағы жазбаларға қолдану</string>\n    <string name=\"chapter_settings\">Тарау баптауы</string>\n    <string name=\"chapter_error\">Қателік</string>\n    <string name=\"chapter_paused\">Тоқтатылды</string>\n    <string name=\"track_status\">Күйі</string>\n    <string name=\"wish_list\">Жоспардағылар Тізімі</string>\n    <string name=\"migration_dialog_what_to_include\">Қай деректі тасымалдау керек</string>\n    <string name=\"not_installed\">Орнатылмады</string>\n    <string name=\"notification_chapters_multiple\">%1$s Тарау</string>\n    <string name=\"library_errors_help\">Кітапхананы жаңарту қателіктерін жөндеу үшін %1$s</string>\n    <string name=\"pref_appearance_summary\">Кейіп, күні мен уақыт пішімі</string>\n    <string name=\"pref_library_summary\">Санаттар, ауқымды жаңарту</string>\n    <string name=\"pref_tracking_summary\">Прогрессті біржақты синхрондау, кеңейтілген синхрондау</string>\n    <string name=\"pref_backup_summary\">Қолмен және автоматты сақтық көшірмелері</string>\n    <string name=\"pref_advanced_summary\">Қателер тіркеуін түсіру, батареяны оңтайландыру</string>\n    <string name=\"manga_removed_library\">Кітапханадан жойылды</string>\n    <string name=\"chapter_downloading_progress\">(%1$d/%2$d) жүктелуде</string>\n    <string name=\"show_chapter_number\">Тарау нөмірі</string>\n    <string name=\"sort_by_number\">Тарау нөмірі бойынша</string>\n    <string name=\"track_type\">Түрі</string>\n    <string name=\"error_category_exists\">Бұндай санат атауы әлдеқашан бар!</string>\n    <string name=\"picture_saved\">Сурет сақталды</string>\n    <string name=\"set_as_cover\">Мұқабаға қою</string>\n    <string name=\"pref_category_for_this_series\">Осы туынды үшін</string>\n    <string name=\"viewer\">Оқу түрі</string>\n    <string name=\"transition_current\">Қазіргі:</string>\n    <string name=\"share_page_info\">%1$s: %2$s, бет %3$d</string>\n    <string name=\"chapter_progress\">Бет: %1$d</string>\n    <string name=\"confirm_set_image_as_cover\">Осы суретті мұқаба ретінде қолданайық па?</string>\n    <string name=\"show_title\">Дереккөз атауы</string>\n    <string name=\"dialog_with_checkbox_reset\">Бұл жазба үшін түгел тарауларды қалпына келтіру</string>\n    <string name=\"snack_categories_deleted\">Санаттар жойылды</string>\n    <string name=\"cover_updated\">Мұқаба жаңартылды</string>\n    <string name=\"skipped_reason_not_started\">Оқитын тарау болмағандықтан өткізіп жіберілді</string>\n    <string name=\"file_select_cover\">Мұқаба таңдау</string>\n    <string name=\"file_select_backup\">Сақтық көшірме файлын таңдау</string>\n    <string name=\"crash_screen_title\">Ойбай!</string>\n    <string name=\"crash_screen_description\">%s күтпеген қатеге ұшырады. Жаңылыс журналдарын Discord сайтындағы қолдау арнамызда ортақ пайдалануды ұсынамыз.</string>\n    <string name=\"crash_screen_restart_application\">Қолданбаны өшіріп қосу</string>\n    <string name=\"download_queue_error\">Тараулар жүктелмеді. Жүктеулер кезегіне барып, сол жерден байқап көре аласыз</string>\n    <string name=\"download_insufficient_space\">Жадта орын аз болғандықтан тараулар жүктелмейді</string>\n    <string name=\"notification_chapters_single_and_more\">%1$s тарау мен %2$d</string>\n    <string name=\"notification_first_add_to_library\">Бұны істер алдыңда жазбаны кітапханаңызға қосыңыз</string>\n    <string name=\"skipped_reason_completed\">Туынды аяқталған үшін өткізіп жіберілді</string>\n    <string name=\"update_check_open\">GitHub-та ашу</string>\n    <string name=\"update_check_eol\">Бұл Android нұсқасы қолжетімсіз</string>\n    <string name=\"download_notifier_unknown_error\">Белгісіз қателіктің кесірінен тарау жүктеп алынбады</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Бет файлының жолы %d табылмады</string>\n    <string name=\"channel_new_chapters\">Тарау жаңартулары</string>\n    <string name=\"channel_app_updates\">Қолданба жаңартулары</string>\n    <string name=\"channel_ext_updates\">Кеңейту жаңартулары</string>\n    <string name=\"spen_previous_page\">Алдыңғы бет</string>\n    <string name=\"spen_next_page\">Келесі бет</string>\n    <string name=\"appwidget_updates_description\">Жақында кітапханада жаңартылған жазбаларды қарау</string>\n    <string name=\"remove_manga\">\\\"%s\\\"ті кітапханадан жойғай тұрсыз</string>\n    <string name=\"skipped_reason_not_always_update\">Туындыға жаңарту керек жоқ болғандықтан өткізіп жіберіледі</string>\n    <string name=\"update_check_notification_download_in_progress\">Жүктелуде…</string>\n    <string name=\"update_check_notification_download_error\">Жүктеу қателігі</string>\n    <string name=\"update_check_notification_download_complete\">Жаңартуды орнату үшін басыңыз</string>\n    <string name=\"channel_errors\">Қателіктер</string>\n    <string name=\"unfinished_list\">Аяқталмағандар Тізімі</string>\n    <string name=\"score\">Бағалау</string>\n    <string name=\"title\">Атауы</string>\n    <string name=\"status\">Күйі</string>\n    <string name=\"track_started_reading_date\">Басталған күні</string>\n    <string name=\"track_finished_reading_date\">Аяқталған күні</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Бұл осы тараудың оқылған уақытын жояды. Сенімдісіз бе?</string>\n    <string name=\"transition_pages_loading\">Беттер жүктелуде…</string>\n    <string name=\"transition_finished\">Аяқталған:</string>\n    <string name=\"transition_previous\">Алдыңғы:</string>\n    <string name=\"clear_history_completed\">Тарих жойылды</string>\n    <string name=\"migrate\">Көшу</string>\n    <string name=\"migration_selection_prompt\">Қай жерден көшетін деректі таңдаңыз</string>\n    <string name=\"copy\">Көшіру</string>\n    <string name=\"empty_screen\">Қателік пайда болды</string>\n    <string name=\"download_notifier_downloader_title\">Жүктеуіш</string>\n    <string name=\"file_picker_error\">Файл таңдайтын қолданба табылмады</string>\n    <string name=\"complete_list\">Оқылғандар Тізімі</string>\n    <string name=\"on_hold_list\">Тоқтап тұрғандар Тізімі</string>\n    <string name=\"no_next_chapter\">Келісі тарау табылмады</string>\n    <string name=\"decode_image_error\">Сурет жүктелінбеді</string>\n    <string name=\"custom_cover\">Жеке мұқаба</string>\n    <string name=\"getting_started_guide\">Қолдана бастау нұсқаулығы</string>\n    <string name=\"sort_by_source\">Дереккөз бойынша</string>\n    <string name=\"confirm_delete_chapters\">Таңдалған тараулардың жойылуын қалайсыз ба?</string>\n    <string name=\"plan_to_read\">Жоспарланған</string>\n    <string name=\"migration_help_guide\">Дереккөздерді тасымалдау нұсқаулары</string>\n    <string name=\"download_notifier_text_only_wifi\">Wi-Fi байланысы жоқ</string>\n    <string name=\"download_notifier_download_paused\">Жүктеулер тоқтатылды</string>\n    <string name=\"appwidget_unavailable_locked\">Биометриялық бұғаттау қосылып тұрғанда виджет қолжетімді емес</string>\n    <string name=\"custom_filter\">Жеке сүзгі</string>\n    <string name=\"notification_size_warning\">Көп жаңалтулар саны дереккөздер жұмысын баяулата және батарея жұмысын өтімін көбейте алады. Көбірек білу үшін басыңыз.</string>\n    <string name=\"notification_chapters_single\">%1$s-Тарау</string>\n    <string name=\"download_queue_size_warning\">Ескерту: Көп жүктеулер саны дереккөздер жұмысын баяулата алады және/немесе %s бұғатталына алады. Толығырақ оқу үшін басыңыз.</string>\n    <string name=\"notification_new_chapters\">Жаңа тараулар табылды</string>\n    <string name=\"pref_downloads_summary\">Автоматты жүктеу, алдын ала жүктеу</string>\n    <string name=\"manga_info_expand\">Көбірек</string>\n    <string name=\"delete_downloads_for_manga\">Жүктелген тарауларды жоямыз ба?</string>\n    <string name=\"copied_to_clipboard\">Буферге көшірілді:\n\\n%1$s</string>\n    <string name=\"clipboard_copy_error\">Буферге көшірілмеді</string>\n    <string name=\"source_not_installed\">Дереккөз орнатылмаған: %1$s</string>\n    <string name=\"snack_add_to_library\">Кітапханаға қосайық па?</string>\n    <string name=\"set_chapter_settings_as_default\">Әдепкі қылып орнату</string>\n    <string name=\"page_list_empty_error\">Беттер табылмады</string>\n    <string name=\"transition_no_next\">Келесі тарау жоқ</string>\n    <string name=\"transition_no_previous\">Алдыңғы тарау жоқ</string>\n    <string name=\"transition_pages_error\">Беттер жүктелінбеді: %1$s</string>\n    <string name=\"unknown_title\">Атауы белгісіз</string>\n    <string name=\"invalid_location\">Жарамсыз орын: %s</string>\n    <string name=\"updates_last_update_info_just_now\">Жаңа ғана</string>\n    <string name=\"error_user_agent_string_invalid\">User agent жолы жарамсыз</string>\n    <string name=\"information_no_entries_found\">Бұл санатта жазба жоқ</string>\n    <string name=\"action_open_random_manga\">Кездейсоқ жазбаны ашу</string>\n    <string name=\"fdroid_warning\">F-Droid құрастыруларына ресми түрде қолдау көрсетілмейді.\n\\nТолығырақ білу үшін басыңыз.</string>\n    <string name=\"download_notifier_cache_renewal\">Жүктеулерді тексеру</string>\n    <string name=\"action_display_show_continue_reading_button\">«Оқуды жалғастыру» батырмасы</string>\n    <string name=\"track_remove_finish_date_conf_text\">Бұл %s ішінен бұрын таңдалған аяқталу күнін жояды</string>\n    <string name=\"track_remove_start_date_conf_text\">Бұл бұрын таңдалған басталу күнін %s ішінен жояды</string>\n    <string name=\"track_remove_date_conf_title\">Күнің жоямыз ба?</string>\n    <string name=\"pref_invalidate_download_cache\">Жүктеулер индексін тазалау</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Қолданбаны жүктеп алынған тарауларды қайта тексеруге мәжбүрлейді</string>\n    <string name=\"label_stats\">Статистика</string>\n    <string name=\"label_started\">Басталды</string>\n    <string name=\"label_local\">Құрылғыдағы</string>\n    <string name=\"label_downloaded\">Жүктелген</string>\n    <string name=\"label_completed_titles\">Аяқталған сессиялар</string>\n    <string name=\"label_read_duration\">Оқу ұзақтығы</string>\n    <string name=\"label_total_chapters\">Барлығы</string>\n    <string name=\"label_mean_score\">Орта баға</string>\n    <string name=\"label_used\">Қолданылған</string>\n    <string name=\"not_applicable\">Д/Ж</string>\n    <string name=\"day_short\">%dкүн</string>\n    <string name=\"minute_short\">%dмин</string>\n    <string name=\"seconds_short\">%dсек</string>\n    <string name=\"action_not_now\">Қазір емес</string>\n    <string name=\"label_overview_section\">Шолу</string>\n    <string name=\"label_read_chapters\">Оқылған</string>\n    <string name=\"hour_short\">%dсағ</string>\n    <string name=\"label_titles_section\">Жазбалар</string>\n    <string name=\"label_titles_in_global_update\">Ауқымды жаңартуда</string>\n    <string name=\"label_tracked_titles\">Бақыланудағы жазбалар</string>\n    <string name=\"label_tracker_section\">Бақылау қызметтері</string>\n    <string name=\"pref_library_update_show_tab_badge\">Жаңартулар белгішесінде оқылмаған тараулар санын көрсету</string>\n    <string name=\"information_no_manga_category\">Бұл санат бос</string>\n    <string name=\"enhanced_services_not_installed\">Қолжетімді, бірақ дереккөзі орнатылған жоқ: %s</string>\n    <string name=\"copied_to_clipboard_plain\">Аралық сақтағышқа көшірілді</string>\n    <string name=\"pref_skip_dupe_chapters\">Қайталанған бөлімдерді өткізіп жіберу</string>\n    <string name=\"track_error\">%1$s қателік: %2$s</string>\n    <string name=\"information_required_plain\">*қажетті</string>\n    <string name=\"action_update_category\">Санатты жаңарту</string>\n    <string name=\"action_copy_to_clipboard\">Айырбастау буферіне көшіріп алу</string>\n    <string name=\"pref_hide_in_library_items\">Кітапханада бар туындыларды жасыру</string>\n    <string name=\"split_tall_images\">Ұзын суреттерді бөлу</string>\n    <string name=\"overlay_header\">Қабаттасу</string>\n    <string name=\"pref_page_rotate\">Кең беттерді сыйғызу үшін бұрыңыз</string>\n    <string name=\"pref_page_rotate_invert\">Бұрылған кең беттерді аудару бағдары</string>\n    <string name=\"pref_debug_info\">Дебаг туралы ақпарат</string>\n    <string name=\"label_data_storage\">Дерек пен жад</string>\n    <string name=\"selected\">Таңдалған</string>\n    <string name=\"not_selected\">Таңдалмаған</string>\n    <string name=\"action_bar_up_description\">Жоғары өту</string>\n    <string name=\"delete_downloaded\">Жүктелгенді жою</string>\n    <string name=\"scanlator\">Аударған</string>\n    <string name=\"action_menu_overflow_description\">Тағы баптау</string>\n    <string name=\"action_set_interval\">Аралығын қою</string>\n    <string name=\"unlock_app_title\">%s шешу</string>\n    <string name=\"action_filter_interval_custom\">Өзгермелі жаңарту жиілігі</string>\n    <string name=\"label_upcoming\">Келешек</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/km/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d ថ្ងៃមុន</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">%d ភាគបន្ទាប់ដែលមិនទាន់អាន</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/km/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_download_queue\">កំពុងទាញយក</string>\n    <string name=\"action_search_settings\">ស្វែងរកក្នុងការកំណត់</string>\n    <string name=\"chapters\">ភាគ</string>\n    <string name=\"label_warning\">បំរាម</string>\n    <string name=\"action_filter_unread\">មិនទាន់អាន</string>\n    <string name=\"action_sort_last_read\">អានចុងក្រោយគេ</string>\n    <string name=\"action_previous_chapter\">ភាគមុន</string>\n    <string name=\"track\">ការតាមដានការអាន</string>\n    <string name=\"label_sources\">ប្រភព</string>\n    <string name=\"label_recent_manga\">ប្រវត្តិ</string>\n    <string name=\"action_sort_alpha\">តម្រៀបតាមអក្ខរក្រម</string>\n    <string name=\"name\">ឈ្មោះ</string>\n    <string name=\"categories\">ការតម្រៀបថ្នាក់</string>\n    <string name=\"history\">ប្រវត្តិ</string>\n    <string name=\"label_more\">ច្រើនទៀត</string>\n    <string name=\"label_settings\">ការកំណត់</string>\n    <string name=\"label_library\">បណ្ណាល័យ</string>\n    <string name=\"label_recent_updates\">បច្ចុប្បន្នភាព</string>\n    <string name=\"label_migration\">ផ្លាស់ប្ដូរ</string>\n    <string name=\"label_extensions\">ប្រភពម៊េងហ្គា</string>\n    <string name=\"label_help\">ជំនួយ</string>\n    <string name=\"label_default\">លំនាំដើម</string>\n    <string name=\"action_filter\">តម្រង</string>\n    <string name=\"action_filter_bookmarked\">បានចំណាំ</string>\n    <string name=\"action_filter_tracked\">បានតាមដានការអាន</string>\n    <string name=\"action_filter_empty\">ជម្រុះតម្រងចេញ</string>\n    <string name=\"action_sort_count\">ចំនួនត្លុកសរុប</string>\n    <string name=\"action_sort_total\">ចំនួនភាគសរុប</string>\n    <string name=\"action_sort_chapter_fetch_date\">ថ្ងៃខែដែលបានឆែកមើល</string>\n    <string name=\"action_sort_date_added\">តាមកាលបរិច្ឆេទដែលបានបញ្ចូល</string>\n    <string name=\"action_global_search\">ស្វែងរកជាសកល</string>\n    <string name=\"action_select_inverse\">ជ្រើសរើសផ្ទុយ</string>\n    <string name=\"action_mark_as_read\">បញ្ជាក់ថាបានអាន</string>\n    <string name=\"action_download\">ទាញយក</string>\n    <string name=\"action_bookmark\">ចំណាំភាគនេះទុក</string>\n    <string name=\"action_rename_category\">ប្ដូរឈ្មោះថ្នាក់ក្រម</string>\n    <string name=\"action_move_category\">កំណត់</string>\n    <string name=\"action_edit_cover\">ផ្លាស់ប្ដូរកម្របត្លុក</string>\n    <string name=\"action_view_chapters\">មើលភាគ</string>\n    <string name=\"action_pause\">ផ្អាក</string>\n    <string name=\"action_retry\">ព្យាយាមម្ដងទៀត</string>\n    <string name=\"action_remove\">ដកចេញ</string>\n    <string name=\"action_start\">ចាប់ផ្ដើម</string>\n    <string name=\"action_resume\">បន្តវិញ</string>\n    <string name=\"action_display_mode\">ម៊ូដនៃការបង្ហាញ</string>\n    <string name=\"action_display\">ការបង្ហាញ</string>\n    <string name=\"action_display_grid\">ជ្រុងCompact</string>\n    <string name=\"action_display_comfortable_grid\">ជ្រុងសម</string>\n    <string name=\"action_display_list\">បញ្ជី</string>\n    <string name=\"action_display_cover_only_grid\">ជ្រុងដែលមានតែគម្រប</string>\n    <string name=\"action_display_download_badge\">ភាគដែលបានទាញយក</string>\n    <string name=\"action_display_local_badge\">ម៊េងហ្គាដែលមានស្រាប់ក្នុងឧបករណ៍</string>\n    <string name=\"action_display_language_badge\">ភាសា</string>\n    <string name=\"action_display_show_tabs\">បង្ហាញtabនៃថ្នាក់</string>\n    <string name=\"action_disable\">បិទ</string>\n    <string name=\"action_pin\">ខ្ទាស់</string>\n    <string name=\"action_unpin\">ឈប់ខ្ទាស់</string>\n    <string name=\"action_cancel\">ឈប់ធ្វើ</string>\n    <string name=\"action_cancel_all\">ឈប់ធ្វើទាំងអស់</string>\n    <string name=\"cancel_all_for_series\">Cancelទាំងអស់ចំពោះម៊េងហ្គាមួយនេះ</string>\n    <string name=\"action_sort\">តម្រៀប</string>\n    <string name=\"action_order_by_upload_date\">តម្រៀបតាមកាលបរិច្ឆេទ</string>\n    <string name=\"action_order_by_chapter_number\">តម្រៀបតាមភាគ</string>\n    <string name=\"action_newest\">ថ្មីបំផុត</string>\n    <string name=\"action_oldest\">ចាស់បំផុត</string>\n    <string name=\"action_asc\">ឡើង</string>\n    <string name=\"action_desc\">ចុះ</string>\n    <string name=\"information_no_downloads\">មិនមានការទាញយក</string>\n    <string name=\"information_no_recent\">មិនមានបច្ចុប្បន្នភាពថ្មីៗ</string>\n    <string name=\"information_no_recent_manga\">អ្នកពុំបានអានអ្វីថ្មីឡើយ</string>\n    <string name=\"label_extension_info\">អំពីប្រភពម៊េងហ្គា</string>\n    <string name=\"information_empty_library\">បណ្ណាល័យរបស់អ្នកទទេស្អាត</string>\n    <string name=\"information_empty_category\">អ្នកពុំមានការទម្រៀបម៊េងហ្គាឡើយ។ ចុចប៊ូតុងសញ្ញាបូកដើម្បីទម្រៀបម៊េងហ្គាសម្រាប់បណ្ណាល័យរបស់អ្នក។</string>\n    <string name=\"manga\">បណ្តុំក្នុងបណ្ណាល័យ</string>\n    <string name=\"confirm_lock_change\">ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដើម្បីបញ្ជាក់ការផ្លាស់ប្តូរ</string>\n    <string name=\"action_settings\">ការកំណត់</string>\n    <string name=\"action_menu\">មនុយ</string>\n    <string name=\"action_mark_previous_as_read\">បញ្ចាក់ភាគមុនថាបានអាន</string>\n    <string name=\"action_delete\">លុប</string>\n    <string name=\"action_sort_latest_chapter\">ភាគថ្មីបំផុត</string>\n    <string name=\"action_search\">ស្វែងរក</string>\n    <string name=\"action_select_all\">ជ្រើសទាំងអស់</string>\n    <string name=\"action_remove_bookmark\">លែងចំណាំភាគនេះ</string>\n    <string name=\"action_mark_as_unread\">បញ្ជាក់ថាមិនទាន់បានអាន</string>\n    <string name=\"action_update_library\">ធ្វើបច្ចុប្បន្នភាពបណ្ណាល័យ</string>\n    <string name=\"action_enable_all\">បើកទាំងអស់</string>\n    <string name=\"action_add_category\">បន្ថែមថ្នាក់ក្រម</string>\n    <string name=\"action_disable_all\">បិទទាំងអស់</string>\n    <string name=\"action_edit\">ផ្លាស់ប្ដូរ</string>\n    <string name=\"action_add\">បញ្ចូល</string>\n    <string name=\"action_edit_categories\">កែប្រែ</string>\n    <string name=\"action_next_chapter\">ភាគបន្ទាប់</string>\n    <string name=\"action_open_in_browser\">បើកនៅក្នុងកម្មវិធីរុករក</string>\n    <string name=\"action_show_manga\">បង្ហាញត្លុក</string>\n    <string name=\"action_open_in_web_view\">បើកនៅក្នុងWebView</string>\n    <string name=\"action_migrate\">ប្ដូរ</string>\n    <string name=\"action_display_show_number_of_items\">បង្ហាញចំនួនលេខនៃធាតុ</string>\n    <string name=\"action_move_to_top\">យកទៅខាងលើ</string>\n    <string name=\"action_move_to_bottom\">យកទៅខាងក្រោម</string>\n    <string name=\"action_install\">តម្លើង</string>\n    <string name=\"action_share\">ចែករំលែក</string>\n    <string name=\"action_save\">រក្សាទុក</string>\n    <string name=\"action_reset\">Reset</string>\n    <string name=\"action_undo\">ត្រឡប់វាវិញ</string>\n    <string name=\"action_open_log\">បើកlog</string>\n    <string name=\"action_show_errors\">ប៉ះដើម្បីមើលលម្អិត</string>\n    <string name=\"action_restore\">restore</string>\n    <string name=\"action_webview_back\">ត្រឡប់</string>\n    <string name=\"action_start_downloading_now\">ចាប់ផ្ដើមទាញយកឥឡូវនេះ</string>\n    <string name=\"loading\">កំពុងដំណើរការ…</string>\n    <string name=\"app_not_available\">កម្មវិធីមិនដំណើរការ</string>\n    <string name=\"pref_category_appearance\">រូបរាង</string>\n    <string name=\"pref_category_library\">បណ្ណាល័យ</string>\n    <string name=\"pref_category_reader\">កន្លែងអាន</string>\n    <string name=\"pref_category_downloads\">ការទាញយក</string>\n    <string name=\"pref_category_tracking\">ការតាមដានការអាន</string>\n    <string name=\"pref_category_advanced\">ការកំណត់ពិសេស</string>\n    <string name=\"pref_category_about\">អំពីរ</string>\n    <string name=\"pref_category_theme\">ពណ៌</string>\n    <string name=\"theme_system\">តាមទូរសព្ទ</string>\n    <string name=\"theme_light\">បិទ</string>\n    <string name=\"theme_dark\">បើក</string>\n    <string name=\"theme_monet\">ឌីណាមិច</string>\n    <string name=\"theme_greenapple\">ប៉ោមបៃតង</string>\n    <string name=\"theme_midnightdusk\">មីដណាយdusk</string>\n    <string name=\"theme_strawberrydaiquiri\">ស្ត្របឺរីដៃគីរី</string>\n    <string name=\"theme_tako\">តាកូ</string>\n    <string name=\"theme_tealturquoise\">បៃតងខ្ចី</string>\n    <string name=\"theme_yinyang\">យីងនិងយ៉ាង</string>\n    <string name=\"pref_dark_theme_pure_black\">ខ្មៅដិត</string>\n    <string name=\"pref_date_format\">ទម្រង់ថ្ងៃខែ</string>\n    <string name=\"pref_manage_notifications\">កំណត់ការជូនដំណឹង</string>\n    <string name=\"pref_category_security\">សន្តិសុខនិងឯកជនភាព</string>\n    <string name=\"lock_with_biometrics\">ត្រូវការការបើកសោ</string>\n    <string name=\"lock_when_idle\">ចាក់សោនៅពេលមិនធ្វើអ្វី</string>\n    <string name=\"lock_always\">គ្រប់ពេល</string>\n    <string name=\"secure_screen\">ការពារអេក្រង់</string>\n    <string name=\"pref_category_nsfw_content\">ប្រភពមិនល្អ(១៨+)</string>\n    <string name=\"pref_show_nsfw_source\">បង្ហាញនៅក្នុងបញ្ចីប្រភព</string>\n    <string name=\"relative_time_today\">ថ្ងៃនេះ</string>\n    <string name=\"pref_category_display\">ការបង្ហាញ</string>\n    <string name=\"pref_library_columns\">ធាតុក្នុងមួយជួ</string>\n    <string name=\"portrait\">បញ្ឈរ</string>\n    <string name=\"landscape\">ផ្ដេក</string>\n    <string name=\"pref_library_update_interval\">ការធ្វើប្ចុប្បន្នភាពដោយស្វ័យប្រវត្ត</string>\n    <string name=\"update_never\">បិទ</string>\n    <string name=\"update_6hour\">រាល់៦ម៉ោងម្ដង</string>\n    <string name=\"update_48hour\">រាល់២ថ្ងៃម្ដង</string>\n    <string name=\"update_72hour\">រាល់៣ថ្ងៃម្ដង</string>\n    <string name=\"update_weekly\">រាល់សប្ដាហ៍</string>\n    <string name=\"pref_library_update_restriction\">ធ្វើប្ចុប្បន្នភាពdevice restrictionsដោយស្វ័យប្រវត្ត</string>\n    <string name=\"connected_to_wifi\">នៅពេលបើកWi-Fiប៉ុណ្ណោះ</string>\n    <string name=\"action_webview_forward\">ទៅមុខ</string>\n    <string name=\"action_webview_refresh\">រីហ្វ្រេស</string>\n    <string name=\"pref_category_general\">ទូទៅ</string>\n    <string name=\"pref_app_theme\">ពណ៌កម្មវិធី</string>\n    <string name=\"theme_yotsuba\">យ៉ុតស្ស៊ូបា</string>\n    <string name=\"hide_notification_content\">លាក់ការជូនដំណឹង</string>\n    <string name=\"update_12hour\">រាល់១២ម៉ោងម្ដង</string>\n    <string name=\"secure_screen_summary\">ការពារអេក្រង់លាក់contentរបស់កម្មវិធីនៅពេលswitchingកម្មីធីនិងប្លុកscreenshots</string>\n    <string name=\"lock_never\">មិនដែល</string>\n    <string name=\"parental_controls_info\">ការសម្រេចចិត្តនេះមិនបិទការflagនៃប្រភពទៅលើរឿង(១៨+)នៅក្នុងកម្មវិធីឡើយ។</string>\n    <string name=\"update_24hour\">រាល់ថ្ងៃ</string>\n    <string name=\"pref_category_library_update\">ការធ្វើបច្ចុប្បន្នភាពសកល</string>\n    <string name=\"title\">ចំណងជើង</string>\n    <string name=\"completed\">បានបញ្ចប់ការចេញផ្សាយ</string>\n    <string name=\"ongoing\">កំពុងតែចេញផ្សាយ</string>\n    <string name=\"default_category\">ថ្នាក់ធម្មតា</string>\n    <string name=\"on_hiatus\">ត្រូវបានផ្អាកការចេញផ្សាយ</string>\n    <string name=\"unknown\">មិនច្បាស់</string>\n    <string name=\"local_invalid_format\">ទម្រង់ភាគមិនត្រឹមត្រួវ</string>\n    <string name=\"chapter_not_found\">គ្មានភាគ</string>\n    <string name=\"no_chapters_error\">គ្មានភាគ</string>\n    <string name=\"cancelled\">ត្រូវបានបញ្ឈប់ការចេញផ្សាយ</string>\n    <string name=\"publishing_finished\">ចេញផ្សាយចប់ហើយ</string>\n    <string name=\"updating_library\">កំពុងតែធ្វើបច្ចុប្បន្នភាពបណ្ណាល័យ</string>\n    <string name=\"licensed\">មានឡាយសិន</string>\n    <string name=\"getting_started_guide\">ម​គ្គុ​ទេស​ក៍​</string>\n    <string name=\"browse\">ស្វែងរក</string>\n    <string name=\"all\">ទាំងអស់</string>\n    <string name=\"update_check_notification_download_in_progress\">កំពុងទាញយក…</string>\n    <string name=\"label_stats\">ស្ថិតិ</string>\n    <string name=\"label_downloaded\">បានទាញយក</string>\n    <string name=\"information_cloudflare_bypass_failure\">បរាជ័យក្នុងការឆ្លងកាត់Cloudflare</string>\n    <string name=\"action_search_hint\">ស្វែងរក…</string>\n    <string name=\"notification_new_chapters\">មានភាគថ្មី</string>\n    <string name=\"action_copy_to_clipboard\">ចម្លងទៅក្ដារតម្បៀតខ្ទាស់</string>\n    <string name=\"label_backup\">បម្រុងទុក និងស្ដារឡើងវិញ</string>\n    <string name=\"delete_downloaded\">លុបអ្វីដែលបានទាញហើយ</string>\n    <string name=\"label_local\">ក្នុងទូរស័ព្ទ</string>\n    <string name=\"on\">បើក</string>\n    <string name=\"action_update_category\">ធ្វើបច្ចុប្បន្នភាពថ្នាក់ក្រម</string>\n    <string name=\"action_menu_overflow_description\">ជម្រើសបន្ថែមទៀត</string>\n    <string name=\"off\">បិទ</string>\n    <string name=\"delete_category_confirmation\">តើអ្នកចង់លុបថ្នាក់ក្រម %s ឬ?</string>\n    <string name=\"selected\">បានជ្រើសយក</string>\n    <string name=\"not_selected\">មិនបានជ្រើសយក</string>\n    <string name=\"scanlator\">អ្នកបកប្រែ</string>\n    <string name=\"action_bar_up_description\">រុករកទៅលើ</string>\n    <string name=\"label_data_storage\">ទិន្នន័យ និងអង្គផ្ទុក</string>\n    <string name=\"action_remove_everything\">ដកអ្វីៗទាំងអស់ចេញ</string>\n    <string name=\"action_open_random_manga\">បើកត្លុកដោយចៃដន្យ</string>\n    <string name=\"label_started\">បានចាប់ផ្តើមហើយ</string>\n    <string name=\"action_sort_unread_count\">ចំនួនមិនទាន់អាន</string>\n    <string name=\"action_sort_last_manga_update\">ពិនិត្យបច្ចុប្បន្នភាពចុងក្រោយ</string>\n    <string name=\"delete_category\">លុបថ្នាក់ក្រម</string>\n    <string name=\"action_sort_next_updated\">ភាគថ្មីរំពឹងទុកនៅ</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/kn/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">1 ನಿಮಿಷದ ನಂತರ</item>\n        <item quantity=\"other\">%1$s ನಿಮಿಷಗಳ ನಂತರ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%2$s ದೋಷದೊಂದಿಗೆ %1$s ನಲ್ಲಿ ಮುಗಿದಿದೆ</item>\n        <item quantity=\"other\">%2$s ದೋಷಗಳೊಂದಿಗೆ %1$s ನಲ್ಲಿ ಮುಗಿದಿದೆ</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d ವರ್ಗ</item>\n        <item quantity=\"other\">%d ವರ್ಗಗಳು</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">ವಿಸ್ತರಣೆ ನವೀಕರಣ ಲಭ್ಯವಿದೆ</item>\n        <item quantity=\"other\">%d ವಿಸ್ತರಣೆ ನವೀಕರಣಗಳು ಲಭ್ಯವಿದೆ</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">ಅಧ್ಯಾಯಗಳು %1$s ಮತ್ತು 1 ಹೆಚ್ಚು</item>\n        <item quantity=\"other\">ಅಧ್ಯಾಯಗಳು %1$s ಮತ್ತು %2$d ಹೆಚ್ಚು</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">1 ಹೊಸ ಅಧ್ಯಾಯ</item>\n        <item quantity=\"other\">%1$d ಹೊಸ ಅಧ್ಯಾಯಗಳು</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">1 ಶೀರ್ಷಿಕೆಗಾಗಿ</item>\n        <item quantity=\"other\">%d ಶೀರ್ಷಿಕೆಗಳಿಗಾಗಿ</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">1 ಉಳಿದಿದೆ</item>\n        <item quantity=\"other\">%1$s ಉಳಿದಿದೆ</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">1 ಚಾಪ್ಟರ್</item>\n        <item quantity=\"other\">%1$s ಚಾಪ್ಟರಗಳು</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">1 ಟ್ರಾಕರ್</item>\n        <item quantity=\"other\">%d ಟ್ರಾಕರ್ ಗಳು</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">1 ಅಧ್ಯಾಯ ಕಾಣೆಯಾಗಿದೆ</item>\n        <item quantity=\"other\">%d ಅಧ್ಯಾಯ ಕಾಣೆಯಾಗಿವೆ</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/kn/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"landscape\">ಅಡ್ಡವಾದ ಪುಟ</string>\n    <string name=\"portrait\">ಉದ್ದವಾದ ಪುಟ</string>\n    <string name=\"pref_library_columns\">ಪ್ರತಿ ಸಾಲಿಗೆ ವಸ್ತುಗಳು</string>\n    <string name=\"pref_category_display\">ಪ್ರದರ್ಶಿಸು</string>\n    <string name=\"hide_notification_content\">ಸೂಚನೆ ವಿಷಯವನ್ನು ಮರೆಮಾಡಿ</string>\n    <string name=\"secure_screen_summary\">ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬದಲಾಯಿಸುವಾಗ ಮತ್ತು ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವಾಗ ಅಪ್ಲಿಕೇಶನ್ ವಿಷಯಗಳನ್ನು ಮರೆಮಾಡಿ</string>\n    <string name=\"secure_screen\">ಸುರಕ್ಷಿತ ಪುಟ</string>\n    <string name=\"lock_never\">ಎಂದಿಗೂ ಇಲ್ಲ</string>\n    <string name=\"lock_always\">ಯಾವಾಗಲೂ</string>\n    <string name=\"lock_when_idle\">ನಿಷ್ಕ್ರಿಯವಾಗಿದ್ದಾಗ ಲಾಕ್ ಮಾಡಿ</string>\n    <string name=\"lock_with_biometrics\">ಅನ್ ಲಾಕ್ ಅಗತ್ಯವಿದೆ</string>\n    <string name=\"pref_category_security\">ಭದ್ರತೆ</string>\n    <string name=\"pref_manage_notifications\">ಸೂಚನೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ</string>\n    <string name=\"pref_date_format\">ದಿನಾಂಕ ಸ್ವರೂಪ</string>\n    <string name=\"theme_system\">ಸಿಸ್ಟಮ್ ಅನುಕರಿಸಿ</string>\n    <string name=\"theme_dark\">ಆನ್</string>\n    <string name=\"theme_light\">ಆಫ</string>\n    <string name=\"pref_category_about\">ಅಪ್ಲಿಕೇಶನ್ ಬಗ್ಗೆ</string>\n    <string name=\"pref_category_advanced\">ಸುಧಾರಿತ</string>\n    <string name=\"pref_category_tracking\">ಟ್ರ್ಯಾಕಿಂಗ್</string>\n    <string name=\"pref_category_downloads\">ಡೌನ್ಲೋಡ್ ಸಂಯೋಜನೆಗಳು</string>\n    <string name=\"pref_category_reader\">ಓದುವ ಸಂಯೋಜನೆಗಳು</string>\n    <string name=\"pref_category_library\">ಗ್ರಂಥಾಲಯ</string>\n    <string name=\"pref_category_general\">ಸಾಮಾನ್ಯ</string>\n    <string name=\"app_not_available\">ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯವಿಲ್ಲ</string>\n    <string name=\"loading\">ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…</string>\n    <string name=\"action_webview_refresh\">ರಿಫ್ರೆಶ್ ಮಾಡಿ</string>\n    <string name=\"action_webview_forward\">ಮುಂದೆ</string>\n    <string name=\"action_webview_back\">ಹಿಂದೆ</string>\n    <string name=\"action_restore\">ಮರುಸ್ಥಾಪಿಸಿ</string>\n    <string name=\"action_open_log\">ಲಾಗ್ ತೆರೆಯಿರಿ</string>\n    <string name=\"action_undo\">ರದ್ದುಗೊಳಿಸಿ</string>\n    <string name=\"action_reset\">ಮರುಹೊಂದಿಸಿ</string>\n    <string name=\"action_save\">ಉಳಿಸಿ</string>\n    <string name=\"action_share\">ಹಂಚಿಕೊಳ್ಳಿ</string>\n    <string name=\"action_install\">ಇನ್ಸ್ಟಾಲ್</string>\n    <string name=\"action_move_to_bottom\">ಕೆಳಕ್ಕೆ ಸರಿಸಿ</string>\n    <string name=\"action_move_to_top\">ಮೇಲಕ್ಕೆ ಸರಿಸಿ</string>\n    <string name=\"action_oldest\">ಹಳೆಯದು</string>\n    <string name=\"action_newest\">ಹೊಸತು</string>\n    <string name=\"action_sort\">ವಿಂಗಡಿಸಿ</string>\n    <string name=\"action_cancel_all\">ಎಲ್ಲವನ್ನೂ ರದ್ದುಮಾಡಿ</string>\n    <string name=\"action_cancel\">ರದ್ದುಮಾಡಿ</string>\n    <string name=\"action_unpin\">ತೆಗೆದುಹಾಕಿ</string>\n    <string name=\"action_pin\">ಚುಚ್ಚು</string>\n    <string name=\"action_display_download_badge\">ಡೌನಲೋಡ್ ಗುರುತುಗಳು</string>\n    <string name=\"action_display_list\">ಪಟ್ಟಿ</string>\n    <string name=\"action_display_grid\">ಕಾಂಪ್ಯಾಕ್ಟ್ ಗ್ರಿಡ್</string>\n    <string name=\"action_display\">ಪ್ರದರ್ಶೀಸು</string>\n    <string name=\"action_display_mode\">ಪ್ರದರ್ಶನ ರೀತಿ</string>\n    <string name=\"action_open_in_web_view\">ವೆಬ್‌ವೀಕ್ಷಣೆಯಲ್ಲಿ ತೆರೆಯಿರಿ</string>\n    <string name=\"action_open_in_browser\">ಬ್ರೌಸರ್ನಲ್ಲಿ ತೆರೆಯಿರಿ</string>\n    <string name=\"action_resume\">ಪುನರಾರಂಭಿಸು</string>\n    <string name=\"action_remove\">ತೆಗೆದುಹಾಕಿ</string>\n    <string name=\"action_retry\">ಮರುಪ್ರಯತ್ನಿಸಿ</string>\n    <string name=\"action_next_chapter\">ಮುಂದಿನ ಅಧ್ಯಾಯ</string>\n    <string name=\"action_previous_chapter\">ಹಿಂದಿನ ಅಧ್ಯಾಯ</string>\n    <string name=\"action_pause\">ವಿರಾಮ</string>\n    <string name=\"action_view_chapters\">ಅಧ್ಯಾಯಗಳನ್ನು ವೀಕ್ಷಿಸಿ</string>\n    <string name=\"action_edit_cover\">ಕವರ್ ತಿದ್ದಿ</string>\n    <string name=\"action_move_category\">ವರ್ಗಗಳನ್ನು ಹೊಂದಿಸಿ</string>\n    <string name=\"action_rename_category\">ವರ್ಗವನ್ನು ಮರುಹೆಸರಿಸಿ</string>\n    <string name=\"action_edit_categories\">ವರ್ಗವನ್ನು ತಿದ್ದಿ</string>\n    <string name=\"action_add_category\">ವರ್ಗವನ್ನು ಸೇರಿಸಿ</string>\n    <string name=\"action_add\">ಸೇರಿಸಿ</string>\n    <string name=\"action_edit\">ತಿದ್ದು</string>\n    <string name=\"action_update_library\">ಗ್ರಂಥಾಲಯ ನವೀಕರಿಸಿ</string>\n    <string name=\"action_delete\">ತೆಗೆದು ಹಾಕು</string>\n    <string name=\"action_remove_bookmark\">ಅಧ್ಯಾಯದ ಬುಕ್‌ಮಾರ್ಕ್ ತೆಗೆದುಹಾಕಿ</string>\n    <string name=\"action_bookmark\">ಬುಕ್ ಮಾರ್ಕ್ ಅಧ್ಯಾಯ</string>\n    <string name=\"action_download\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</string>\n    <string name=\"action_mark_previous_as_read\">ಹಿಂದಿನದನ್ನು ಓದಿದಂತೆ ಗುರುತಿಸಿ</string>\n    <string name=\"action_mark_as_unread\">ಓದಿಲ್ಲ ಎಂದು ಗುರುತಿಸಿ</string>\n    <string name=\"action_mark_as_read\">ಓದಿರುವುದಾಗಿ ಗುರುತಿಸು</string>\n    <string name=\"action_select_inverse\">ಎಲ್ಲವನ್ನೂ ತ್ಯಜಿಸಿ</string>\n    <string name=\"action_select_all\">ಎಲ್ಲವನ್ನು ಆರಿಸು</string>\n    <string name=\"action_global_search\">ಎಲ್ಲೆಡೆ ಹುಡುಕಿ</string>\n    <string name=\"action_search\">ಹುಡುಕಿ</string>\n    <string name=\"action_sort_latest_chapter\">ಇತ್ತೀಚಿನ ಅಧ್ಯಾಯ</string>\n    <string name=\"action_sort_last_read\">ಕೊನೆಯದಾಗಿ ಓದಿದ</string>\n    <string name=\"action_sort_total\">ಒಟ್ಟು ಅಧ್ಯಾಯಗಳು</string>\n    <string name=\"action_sort_alpha\">ವರ್ಣಮಾಲೆಯ ಪ್ರಕಾರ</string>\n    <string name=\"action_filter_empty\">ಸೋಸು ತೆಗೆದುಹಾಕಿ</string>\n    <string name=\"action_filter_unread\">ಓದದ</string>\n    <string name=\"action_filter_bookmarked\">ಬುಕ್ಮಾರ್ಕ್ ಮಾಡಿದ</string>\n    <string name=\"action_filter\">ಸೋಸು</string>\n    <string name=\"action_menu\">ಸಲಹಾಕಾರ</string>\n    <string name=\"action_settings\">ಸಂಯೋಜನೆಗಳು</string>\n    <string name=\"history\">ಇತಿಹಾಸ</string>\n    <string name=\"track\">ಟ್ರ್ಯಾಕಿಂಗ್</string>\n    <string name=\"chapters\">ಅಧ್ಯಾಯಗಳು</string>\n    <string name=\"manga\">ಮಾಂಗಾ</string>\n    <string name=\"categories\">ವರ್ಗಗಳು</string>\n    <string name=\"information_empty_category\">ನೀವು ವರ್ಗಗಳನ್ನು ಹೊಂದಿಲ್ಲ. ನಿಮ್ಮ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ವರ್ಗ ಒಂದನ್ನು ರಚಿಸಲು ಪ್ಲಸ್ ಬಟನ್ ಒತ್ತಿರಿ.</string>\n    <string name=\"information_empty_library\">ನಿಮ್ಮ ಲೈಬ್ರರಿ ಖಾಲಿಯಾಗಿದೆ, ಯಾವುದೇ ಮೂಲದಿಂದ ನಿಮ್ಮ ಲೈಬ್ರರಿಗೆ ಸರಣಿಯನ್ನು ಸೇರಿಸಿ.</string>\n    <string name=\"information_no_recent_manga\">ಇತ್ತೀಚೆಗೆ ಏನೂ ಓದಿಲ್ಲ</string>\n    <string name=\"information_no_recent\">ಹೊಸ ನವೀಕರಣಗಳಿಲ್ಲ</string>\n    <string name=\"information_no_downloads\">ಡೌನ್‌ಲೋಡ್‌ಗಳಿಲ್ಲ</string>\n    <string name=\"label_help\">ಸಹಾಯ</string>\n    <string name=\"label_extension_info\">ವಿಸ್ತರಣೆ ಮಾಹಿತಿ</string>\n    <string name=\"label_extensions\">ವಿಸ್ತರಣೆಗಳು</string>\n    <string name=\"label_migration\">ಮೂಲ ಸ್ಥಳಾಂತರ</string>\n    <string name=\"label_backup\">ಬ್ಯಾಕಪ್ ಮತ್ತು ಮರುಸ್ಥಾಪನೆ</string>\n    <string name=\"label_sources\">ಮೂಲಗಳು</string>\n    <string name=\"label_recent_manga\">ಇತಿಹಾಸ</string>\n    <string name=\"label_recent_updates\">ನವೀಕರಣಗಳು</string>\n    <string name=\"label_library\">ಗ್ರಂಥಾಲಯ</string>\n    <string name=\"label_download_queue\">ಡೌನ್‌ಲೋಡ್ ಸಾಲು</string>\n    <string name=\"label_settings\">ಸಂಯೋಜನೆಗಳು</string>\n    <string name=\"label_more\">ಇನ್ನಷ್ಟು</string>\n    <string name=\"name\">ಹೆಸರು</string>\n    <string name=\"restore_duration\">%1$02d ನಿಮಿಷ, %2$02d ಸೆಕೆಂಡು</string>\n    <string name=\"restore_completed\">ಮರುಸ್ಥಾಪನೆ ಪೂರ್ಣಗೊಂಡಿದೆ</string>\n    <string name=\"backup_created\">ಬ್ಯಾಕಪ್ ರಚಿಸಲಾಗಿದೆ</string>\n    <string name=\"pref_backup_interval\">ಬ್ಯಾಕಪ್ ಆವರ್ತನ</string>\n    <string name=\"pref_restore_backup_summ\">ಬ್ಯಾಕಪ್ ಫೈಲ್‌ನಿಂದ ಗ್ರಂಥಾಲಯವನ್ನು ಮರುಸ್ಥಾಪಿಸಿ</string>\n    <string name=\"pref_restore_backup\">ಬ್ಯಾಕಪ್ ಮರುಸ್ಥಾಪಿಸಿ</string>\n    <string name=\"pref_create_backup_summ\">ಪ್ರಸ್ತುತ ಗ್ರಂಥಾಲಯವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಲು ಬಳಸಬಹುದು</string>\n    <string name=\"pref_create_backup\">ಬ್ಯಾಕಪ್ ರಚಿಸಿ</string>\n    <string name=\"tracking_info\">ಟ್ರ್ಯಾಕಿಂಗ್ ಸೇವೆಗಳಲ್ಲಿ ಅಧ್ಯಾಯದ ಪ್ರಗತಿಯನ್ನು ನವೀಕರಿಸಲು ಏಕಮುಖ ಸಿಂಕ್. ಅವರ ಟ್ರ್ಯಾಕಿಂಗ್ ಬಟನ್ ನಿಂದ ಪ್ರತ್ಯೇಕ ಮಾಂಗಾ ನಮೂದುಗಳಿಗಾಗಿ ಟ್ರ್ಯಾಕಿಂಗ್ ಅನ್ನು ಹೊಂದಿಸಿ.</string>\n    <string name=\"services\">ಸೇವೆಗಳು</string>\n    <string name=\"pref_auto_update_manga_sync\">ಓದಿದ ನಂತರ ಅಧ್ಯಾಯದ ಪ್ರಗತಿಯನ್ನು ನವೀಕರಿಸಿ</string>\n    <string name=\"pref_download_new\">ಹೊಸ ಅಧ್ಯಾಯಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</string>\n    <string name=\"fifth_to_last\">ಕೊನೆಯ ಅಧ್ಯಾಯದಿಂದ ಐದನೆಯದು</string>\n    <string name=\"fourth_to_last\">ಕೊನೆಯ ಅಧ್ಯಾಯದಿಂದ ನಾಲ್ಕನೆಯದು</string>\n    <string name=\"third_to_last\">ಕೊನೆಯ ಅಧ್ಯಾಯದಿಂದ ಮೂರನೆಯದು</string>\n    <string name=\"second_to_last\">ಕೊನೆಯ ಅಧ್ಯಾಯದಿಂದ ಎರಡನೆಯದು</string>\n    <string name=\"last_read_chapter\">ಕೊನೆಯದಾಗಿ ಓದಿದ ಅಧ್ಯಾಯ</string>\n    <string name=\"disabled\">ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ</string>\n    <string name=\"pref_remove_after_read\">ಓದಿದ ನಂತರ</string>\n    <string name=\"pref_remove_after_marked_as_read\">ಓದಿದಂತೆ ಗುರುತಿಸಿದಾಗ ತೆಗೆದುಹಾಕಿ</string>\n    <string name=\"pref_webtoon_side_padding\">ಸೈಡ್ ಪ್ಯಾಡಿಂಗ್</string>\n    <string name=\"pref_category_reading\">ಓದುತ್ತಿರುವ</string>\n    <string name=\"pref_always_show_chapter_transition\">ಅಧ್ಯಾಯ ಪರಿವರ್ತನೆಯನ್ನು ಯಾವಾಗಲೂ ತೋರಿಸಿ</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"rotation_force_landscape\">ಲಾಕ್ ಮಾಡಿದ ಅಗಲಚಿತ್ರ</string>\n    <string name=\"rotation_force_portrait\">ಲಾಕ್ ಮಾಡಿದ ಉದ್ದಚಿತ್ರ</string>\n    <string name=\"rotation_free\">ಉಚಿತ</string>\n    <string name=\"pref_rotation_type\">ಡೀಫಾಲ್ಟ್ ತಿರುಗುವಿಕೆ ಪ್ರಕಾರ</string>\n    <string name=\"double_tap_anim_speed_fast\">ವೇಗವಾಗಿ</string>\n    <string name=\"double_tap_anim_speed_normal\">ಸಾಮಾನ್ಯ</string>\n    <string name=\"double_tap_anim_speed_0\">ಅನಿಮೇಷನ್ ಇಲ್ಲ</string>\n    <string name=\"zoom_start_center\">ಮಧ್ಯ</string>\n    <string name=\"zoom_start_right\">ಬಲ</string>\n    <string name=\"zoom_start_left\">ಎಡ</string>\n    <string name=\"zoom_start_automatic\">ಸ್ವಯಂಚಾಲಿತ</string>\n    <string name=\"pref_zoom_start\">ಪ್ರಾರಂಭದ ಸ್ಥಾನವನ್ನು ಜೂಮ್ ಮಾಡಿ</string>\n    <string name=\"scale_type_smart_fit\">ಚತುರತೆಯಿಂದ್ ಹೊಂದಿಸಿ</string>\n    <string name=\"scale_type_original_size\">ಮೂಲ ಗಾತ್ರ</string>\n    <string name=\"scale_type_fit_height\">ಎತ್ತರ ಹೊಂದಿಸಿ</string>\n    <string name=\"scale_type_fit_width\">ಅಗಲ ಹೊಂದಿಸಿ</string>\n    <string name=\"scale_type_stretch\">ಹಿಗ್ಗಿಸು</string>\n    <string name=\"scale_type_fit_screen\">ಪರದೆಯನ್ನು ಹೊಂದಿಸಿ</string>\n    <string name=\"pref_image_scale_type\">ಪ್ರಮಾಣದ ಪ್ರಕಾರ</string>\n    <string name=\"pager_viewer\">ಪುಟ ಸಂಯೋಜನೆಗಳು</string>\n    <string name=\"vertical_plus_viewer\">ನಿರಂತರ ಲಂಬ</string>\n    <string name=\"webtoon_viewer\">ವೆಬ್‌ಟೂನ್</string>\n    <string name=\"vertical_viewer\">ಲಂಬ</string>\n    <string name=\"right_to_left_viewer\">ಬಲದಿಂದ ಎಡಕ್ಕೆ</string>\n    <string name=\"left_to_right_viewer\">ಎಡದಿಂದ ಬಲಕ್ಕೆ</string>\n    <string name=\"pref_viewer_type\">ಡೀಫಾಲ್ಟ್ ಓದುವ ರೀತಿ</string>\n    <string name=\"black_background\">ಕಪ್ಪು</string>\n    <string name=\"gray_background\">ಬೂದು</string>\n    <string name=\"white_background\">ಬಿಳಿ</string>\n    <string name=\"pref_reader_theme\">ಹಿನ್ನೆಲೆ ಬಣ್ಣ</string>\n    <string name=\"pref_read_with_long_tap\">ಲಾಂಗ್ ಟ್ಯಾಪ್‌ನಲ್ಲಿ ತೋರಿಸಿ</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">ಧ್ವನಿ ಕೀಲಿಗಳನ್ನು ಬದಲಿಮಾಡಿ</string>\n    <string name=\"pref_read_with_volume_keys\">ಧ್ವನಿ ಕೀಲಿಗಳು</string>\n    <string name=\"pref_reader_navigation\">ನ್ಯಾವಿಗೇಷನ್</string>\n    <string name=\"pref_skip_filtered_chapters\">ಫಿಲ್ಟರ್ ಮಾಡಿದ ಅಧ್ಯಾಯಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಿ</string>\n    <string name=\"pref_skip_read_chapters\">ಓದಿದ ಗುರುತು ಮಾಡಿದ ಅಧ್ಯಾಯಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಿ</string>\n    <string name=\"pref_keep_screen_on\">ಪರದೆಯನ್ನು ಆನ್ ಮಾಡಿ ಇರಿಸಿ</string>\n    <string name=\"filter_mode_darken\">ಬರ್ನ್ / ಡಾರ್ಕನ್</string>\n    <string name=\"filter_mode_lighten\">ಡಾಡ್ಜ್ / ಹಗುರಗೊಳಿಸಿ</string>\n    <string name=\"filter_mode_screen\">ಪರದೆ</string>\n    <string name=\"filter_mode_multiply\">ಗುಣಿಸಿ</string>\n    <string name=\"filter_mode_overlay\">ಒವರ್ಲೆ</string>\n    <string name=\"pref_color_filter_mode\">ಬಣ್ಣಗಳು ಫಿಲ್ಟರ್ ಮಿಶ್ರಣ ರೀತಿ</string>\n    <string name=\"pref_custom_color_filter\">ಕಸ್ಟಮ್ ಬಣ್ಣಗಳ ಫಿಲ್ಟರ್</string>\n    <string name=\"pref_custom_brightness\">ಕಸ್ಟಮ್ ಬೆಳಕು</string>\n    <string name=\"pref_crop_borders\">ಗಡಿಗಳನ್ನು ಕತ್ತರಿಸಿ</string>\n    <string name=\"pref_show_page_number\">ಪುಟ ಸಂಖ್ಯೆಯನ್ನು ತೋರಿಸಿ</string>\n    <string name=\"pref_double_tap_anim_speed\">ಡಬಲ್ ಟ್ಯಾಪ್ ಅನಿಮೇಷನ್ ವೇಗ</string>\n    <string name=\"pref_page_transitions\">ಪುಟ ಪರಿವರ್ತನೆಗಳನ್ನು ಅನಿಮೇಟ್ ಮಾಡಿ</string>\n    <string name=\"pref_cutout_short\">ಕಟೌಟ್ ಆದಂತಹ ಪ್ರದೇಶದಲ್ಲಿ ವಿಷಯವನ್ನು ತೋರಿಸಿ</string>\n    <string name=\"pref_fullscreen\">ಪೂರ್ಣ ಪರದೆ</string>\n    <string name=\"obsolete_extension_message\">ಈ ವಿಸ್ತರಣೆ ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿಲ್ಲ.</string>\n    <string name=\"untrusted_extension_message\">ಈ ವಿಸ್ತರಣೆಯನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಪ್ರಮಾಣಪತ್ರದೊಂದಿಗೆ ಸಹಿ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ.\n\\n\n\\nದುರುದ್ದೇಶಪೂರಿತ ವಿಸ್ತರಣೆಯು ತಚಿಯೋಮಿಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಲಾಗಿನ್ ರುಜುವಾತುಗಳನ್ನು ಓದಬಹುದು ಅಥವಾ ಅನಿಯಂತ್ರಿತ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು.\n\\n\n\\nಈ ಪ್ರಮಾಣಪತ್ರವನ್ನು ನಂಬುವ ಮೂಲಕ ನೀವು ಈ ಅಪಾಯಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತೀರಿ.</string>\n    <string name=\"untrusted_extension\">ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ವಿಸ್ತರಣೆ</string>\n    <string name=\"ext_uninstall\">ಅನ್ಇನ್ಸ್ಟಾಲ್</string>\n    <string name=\"ext_untrusted\">ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲ</string>\n    <string name=\"ext_trust\">ನ೦ಬು</string>\n    <string name=\"ext_installed\">ಇನ್ಸ್ಟಾಲ್ಲ್ಡ್</string>\n    <string name=\"ext_installing\">ಇನ್ಸ್ಟಾಲಿಂಗ್</string>\n    <string name=\"ext_downloading\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</string>\n    <string name=\"ext_pending\">ಬಾಕಿ ಉಳಿದಂತಹ</string>\n    <string name=\"ext_install\">ಇನ್ಸ್ಟಾಲ್</string>\n    <string name=\"ext_obsolete\">ಬಳಕೆಯಲ್ಲಿಲ್ಲದ</string>\n    <string name=\"ext_update\">ನವೀಕರಿಸಿ</string>\n    <string name=\"ext_updates_pending\">ಬಾಕಿ ಉಳಿದಿರುವ ನವೀಕರಣಗಳು</string>\n    <string name=\"all\">ಎಲ್ಲಾ</string>\n    <string name=\"default_category_summary\">ಯಾವಾಗಲೂ ಕೇಳಿ</string>\n    <string name=\"default_category\">ಡೀಫಾಲ್ಟ್ ವರ್ಗ</string>\n    <string name=\"pref_update_only_non_completed\">ಚಾಲ್ತಿಯಿರುವ ಮಾಂಗಾವನ್ನು ಮಾತ್ರ ನವೀಕರಿಸಿ</string>\n    <string name=\"charging\">ಚಾರ್ಜಿಂಗ್</string>\n    <string name=\"pref_library_update_restriction\">ನವೀಕರಣ ನಿರ್ಬಂಧಗಳು</string>\n    <string name=\"update_weekly\">ವಾರಕ್ಕೊಮ್ಮೆ</string>\n    <string name=\"update_48hour\">ಪ್ರತಿ 2 ದಿನಗಳಿಗೊಮ್ಮೆ</string>\n    <string name=\"update_24hour\">ಪ್ರತಿದಿನ</string>\n    <string name=\"update_12hour\">ಪ್ರತಿ 12 ಗಂಟೆಗಳಿಗೊಮ್ಮೆ</string>\n    <string name=\"update_6hour\">ಪ್ರತಿ 6 ಗಂಟೆಗಳಿಗೊಮ್ಮೆ</string>\n    <string name=\"update_never\">ಸ್ವಂತ ಮಾಡು</string>\n    <string name=\"pref_library_update_interval\">ನವೀಕರಣ ಆವರ್ತನ</string>\n    <string name=\"pref_category_library_update\">ನವೀಕರಣಗಳು</string>\n    <string name=\"channel_ext_updates\">ವಿಸ್ತರಣೆ ನವೀಕರಣಗಳು</string>\n    <string name=\"channel_new_chapters\">ಅಧ್ಯಾಯ ನವೀಕರಣಗಳು</string>\n    <string name=\"channel_common\">ಸಾಮಾನ್ಯ</string>\n    <string name=\"download_notifier_download_paused\">ಡೌನ್‌ಲೋಡ್ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"download_notifier_no_network\">ಯಾವುದೇ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕ ಲಭ್ಯವಿಲ್ಲ</string>\n    <string name=\"download_notifier_text_only_wifi\">ಯಾವುದೇ ವೈ-ಫೈ ಸಂಪರ್ಕ ಲಭ್ಯವಿಲ್ಲ</string>\n    <string name=\"download_notifier_unknown_error\">ಅನಿರೀಕ್ಷಿತ ದೋಷದಿಂದಾಗಿ ಅಧ್ಯಾಯವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</string>\n    <string name=\"download_notifier_title_error\">ದೋಷ</string>\n    <string name=\"download_notifier_downloader_title\">ಡೌನ್‌ಲೋಡರ್</string>\n    <string name=\"information_webview_outdated\">ಉತ್ತಮ ಹೊಂದಾಣಿಕೆಗಾಗಿ ದಯವಿಟ್ಟು ವೆಬ್‌ವೀಕ್ಷಣೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನವೀಕರಿಸಿ</string>\n    <string name=\"information_webview_required\">ತಚಿಯೋಮಿಗೆ ವೆಬ್‌ವೀಕ್ಷಣೆ ಅಗತ್ಯವಿದೆ</string>\n    <string name=\"information_cloudflare_bypass_failure\">ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ</string>\n    <string name=\"update_check_notification_update_available\">ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ!</string>\n    <string name=\"update_check_notification_download_error\">ಡೌನ್‌ಲೋಡ್ ದೋಷ</string>\n    <string name=\"update_check_notification_download_complete\">ಡೌನ್‌ಲೋಡ್ ಪೂರ್ಣಗೊಂಡಿದೆ</string>\n    <string name=\"update_check_notification_download_in_progress\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…</string>\n    <string name=\"update_check_no_new_updates\">ಹೊಸ ನವೀಕರಣಗಳು ಲಭ್ಯವಿಲ್ಲ</string>\n    <string name=\"update_check_confirm\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</string>\n    <string name=\"file_select_backup\">ಬ್ಯಾಕಪ್ ಫೈಲ್ ಆಯ್ಕೆಮಾಡಿ</string>\n    <string name=\"file_select_cover\">ಕವರ್ ಇಮೇಜ್ ಆಯ್ಕೆಮಾಡಿ</string>\n    <string name=\"notification_first_add_to_library\">ಇದನ್ನು ಮಾಡುವ ಮೊದಲು ದಯವಿಟ್ಟು ನಿಮ್ಮ ಗ್ರಂಥಾಲಯಕ್ಕೆ ಮಾಂಗಾವನ್ನು ಸೇರಿಸಿ</string>\n    <string name=\"notification_cover_update_failed\">ಕವರ್ ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ</string>\n    <string name=\"notification_chapters_multiple\">ಅಧ್ಯಾಯಗಳು %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">ಅಧ್ಯಾಯ %1$s ಮತ್ತು %2$d ಹೆಚ್ಚು</string>\n    <string name=\"notification_chapters_single\">ಅಧ್ಯಾಯ %1$s</string>\n    <string name=\"notification_new_chapters\">ಹೊಸ ಅಧ್ಯಾಯಗಳು ಕಂಡುಬಂದಿವೆ</string>\n    <string name=\"download_queue_error\">ಅಧ್ಯಾಯಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಡೌನ್‌ಲೋಡ್‌ಗಳ ವಿಭಾಗದಲ್ಲಿ ನೀವು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಬಹುದು</string>\n    <string name=\"copy\">ನಕಲಿಸಿ</string>\n    <string name=\"migrate\">ಸ್ಥಳಾಂತರಿಸಿ</string>\n    <string name=\"migration_selection_prompt\">ಮಾಂಗಾ ಸ್ಥಳಾಂತರಗೊಳಿಸಲು ಮೂಲವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</string>\n    <string name=\"migration_dialog_what_to_include\">ಸೇರಿಸಲು ಡೇಟಾವನ್ನು ಆಯ್ಕೆಮಾಡಿ</string>\n    <string name=\"recent_manga_time\">ಅಧ್ಯಾಯ. %1$s - %2$s</string>\n    <string name=\"updating_library\">ಗ್ರಂಥಾಲಯವನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ</string>\n    <string name=\"transition_pages_error\">ಪುಟಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ: %1$s</string>\n    <string name=\"transition_pages_loading\">ಪುಟಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…</string>\n    <string name=\"transition_no_previous\">ಹಿಂದಿನ ಅಧ್ಯಾಯವಿಲ್ಲ</string>\n    <string name=\"transition_no_next\">ಮುಂದಿನ ಅಧ್ಯಾಯವಿಲ್ಲ</string>\n    <string name=\"transition_next\">ಮುಂದಿನದು:</string>\n    <string name=\"transition_previous\">ಹಿಂದಿನದು:</string>\n    <string name=\"transition_current\">ಪ್ರಸ್ತುತ:</string>\n    <string name=\"transition_finished\">ಮುಗಿದಿದೆ:</string>\n    <string name=\"viewer\">ಓದುವಿಕೆ ರೀತಿ</string>\n    <string name=\"pref_category_for_this_series\">ಈ ಸರಣಿಗಾಗಿ</string>\n    <string name=\"confirm_set_image_as_cover\">ಈ ಚಿತ್ರವನ್ನು ಕವರ್ ಆರ್ಟ್ ಆಗಿ ಬಳಸುವುದೇ?</string>\n    <string name=\"decode_image_error\">ಈ ಚಿತ್ರವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಲಿಲ್ಲ</string>\n    <string name=\"no_next_chapter\">ಮುಂದಿನ ಅಧ್ಯಾಯ ಕಂಡುಬಂದಿಲ್ಲ</string>\n    <string name=\"chapter_progress\">ಪುಟ: %1$d</string>\n    <string name=\"cover_updated\">ಕವರ್ ನವೀಕರಿಸಲಾಗಿದೆ</string>\n    <string name=\"set_as_cover\">ಕವರ್ ಆಗಿ ಹೊಂದಿಸಿ</string>\n    <string name=\"custom_filter\">ಕಸ್ಟಮ್ ಫಿಲ್ಟರ್</string>\n    <string name=\"picture_saved\">ಚಿತ್ರ ಉಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"dialog_with_checkbox_reset\">ಈ ಮಾಂಗಾದ ಎಲ್ಲಾ ಅಧ್ಯಾಯಗಳನ್ನು ಮರುಹೊಂದಿಸಿ</string>\n    <string name=\"dialog_with_checkbox_remove_description\">ಇದು ಈ ಅಧ್ಯಾಯದ ಓದುವ ದಿನಾಂಕವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ನೀವು ಖಚಿತವಾಗಿರುವಿರಾ?</string>\n    <string name=\"snack_categories_deleted\">ವರ್ಗಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"error_category_exists\">ಈ ಹೆಸರಿನ ವರ್ಗವು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ!</string>\n    <string name=\"track_type\">ಮಾದರಿ</string>\n    <string name=\"track_status\">ಸ್ಥಿತಿ</string>\n    <string name=\"status\">ಸ್ಥಿತಿ</string>\n    <string name=\"repeating\">ಪುನಃ ಓದುತ್ತಿರುವ</string>\n    <string name=\"title\">ಶೀರ್ಷಿಕೆ</string>\n    <string name=\"score\">ಅಂಕ</string>\n    <string name=\"plan_to_read\">ಓದಲು ಯೋಜನೆ</string>\n    <string name=\"paused\">ವಿರಾಮಗೊಳಿಸಲಾದ</string>\n    <string name=\"on_hold\">ತಡೆಹಿಡಿಯಲಾದ</string>\n    <string name=\"dropped\">ಕೈಬಿಡಲಾದ</string>\n    <string name=\"completed\">ಪೂರ್ಣಗೊಂಡಿದೆ</string>\n    <string name=\"reading\">ಓದುತ್ತಿರುವ</string>\n    <string name=\"add_tracking\">ಟ್ರ್ಯಾಕಿಂಗ್ ಸೇರಿಸಿ</string>\n    <string name=\"manga_tracking_tab\">ಟ್ರ್ಯಾಕಿಂಗ್</string>\n    <string name=\"confirm_delete_chapters\">ಆಯ್ದ ಅಧ್ಯಾಯಗಳನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</string>\n    <string name=\"download_unread\">ಓದದ</string>\n    <string name=\"manga_download\">ಡೌನ್‌ಲೋಡ್</string>\n    <string name=\"sort_by_number\">ಅಧ್ಯಾಯದ ಸಂಖ್ಯೆಯ ಪ್ರಕಾರ</string>\n    <string name=\"sort_by_source\">ಮೂಲದ ಪ್ರಕಾರ</string>\n    <string name=\"show_chapter_number\">ಅಧ್ಯಾಯ ಸಂಖ್ಯೆ</string>\n    <string name=\"show_title\">ಮೂಲ ಶೀರ್ಷಿಕೆ</string>\n    <string name=\"chapter_paused\">ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"chapter_error\">ದೋಷ</string>\n    <string name=\"chapter_downloading_progress\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">ಅಧ್ಯಾಯ %1$s</string>\n    <string name=\"snack_add_to_library\">ಮಾಂಗಾವನ್ನು ಗ್ರಂಥಾಲಯಕ್ಕೆ ಸೇರಿಸುವುದೇ?</string>\n    <string name=\"source_not_installed\">ಮೂಲವನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ: %1$s</string>\n    <string name=\"copied_to_clipboard\">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ:\n\\n%1$s</string>\n    <string name=\"delete_downloads_for_manga\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಅಧ್ಯಾಯಗಳನ್ನು ಅಳಿಸುವುದೇ?</string>\n    <string name=\"manga_info_collapse\">ಕಡಿಮೆ</string>\n    <string name=\"manga_info_expand\">ಹೆಚ್ಚು</string>\n    <string name=\"manga_removed_library\">ಗ್ರಂಥಾಲಯದಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ</string>\n    <string name=\"manga_added_library\">ಗ್ರಂಥಾಲಯಕ್ಕೆ ಸೇರಿಸಲಾಗಿದೆ</string>\n    <string name=\"remove_from_library\">ಗ್ರಂಥಾಲಯದಿಂದ ತೆಗೆದುಹಾಕಿ</string>\n    <string name=\"in_library\">ಗ್ರಂಥಾಲಯದಲ್ಲಿರುವ</string>\n    <string name=\"add_to_library\">ಗ್ರಂಥಾಲಯಕ್ಕೆ ಸೇರಿಸಿ</string>\n    <string name=\"licensed\">ಪರವಾನಗಿ ಪಡೆದ</string>\n    <string name=\"unknown\">ಗೊತ್ತಿರದ</string>\n    <string name=\"ongoing\">ಪ್ರಗತಿಯಲ್ಲಿರುವ</string>\n    <string name=\"local_source_help_guide\">ಲೋಕಲ್ ಮೂಲದ ಮಾರ್ಗದರ್ಶಿ</string>\n    <string name=\"browse\">ಬ್ರೌಸ್</string>\n    <string name=\"latest\">ಹೊಸದಾದ</string>\n    <string name=\"action_global_search_hint\">ಎಲ್ಲೆಡೆ ಹುಡುಕಿ…</string>\n    <string name=\"pinned_sources\">ಪಿನ್ ಮಾಡಿದ</string>\n    <string name=\"last_used_source\">ಕೊನೆಯದಾಗಿ ಉಪಯೋಗಿಸಿದ</string>\n    <string name=\"other_source\">ಇತರೆ</string>\n    <string name=\"local_source\">ಲೋಕಲ್ ಮೂಲ</string>\n    <string name=\"no_results_found\">ಯಾವುದೇ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬರಲಿಲ್ಲ</string>\n    <string name=\"no_more_results\">ಹೆಚ್ಚಿನ ಫಲಿತಾಂಶಗಳಿಲ್ಲ</string>\n    <string name=\"updating_category\">ವರ್ಗವನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ</string>\n    <string name=\"unknown_error\">ಅಜ್ಞಾತ ದೋಷ</string>\n    <string name=\"logout_success\">ನೀವು ಈಗ ಲಾಗ್ ಔಟ್ ಆಗಿದ್ದೀರಿ</string>\n    <string name=\"logout\">ಲಾಗ್ ಔಟ್</string>\n    <string name=\"logout_title\">%1$s ನಿಂದ ಲಾಗ್ ಔಟ್ ಆಗುವುದೇ?</string>\n    <string name=\"login_success\">ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗಿದೆ</string>\n    <string name=\"login\">ಲಾಗಿನ್</string>\n    <string name=\"password\">ಪಾಸ್ ವರ್ಡ್</string>\n    <string name=\"email\">ಇಮೇಲ್ ವಿಳಾಸ</string>\n    <string name=\"username\">ಬಳಕೆದಾರ ಹೆಸರು</string>\n    <string name=\"login_title\">%1$s ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ</string>\n    <string name=\"downloaded_only_summary\">ನಿಮ್ಮ ಗ್ರಂಥಾಲಯದ ಎಲ್ಲಾ ಮಾಂಗಾವನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುತ್ತದೆ</string>\n    <string name=\"label_downloaded_only\">ಡೌನ್ಲೋಡ್ ಮಾಡಿದ</string>\n    <string name=\"pref_acra_summary\">ಯಾವುದೇ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಯಾವುದೇ ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ</string>\n    <string name=\"pref_enable_acra\">ಕ್ರ್ಯಾಶ್ ವರದಿಗಳನ್ನು ಕಳುಹಿಸಿ</string>\n    <string name=\"check_for_updates\">ನವೀಕರಣಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ</string>\n    <string name=\"licenses\">ಓಪನ್ ಸೋರ್ಸ್ ಪರವಾನಗಿಗಳು</string>\n    <string name=\"version\">ಆವೃತ್ತಿ</string>\n    <string name=\"website\">ವೆಬ್ಸೈಟ್</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">ಡಿವೈಸ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಲಾಗಲಿಲ್ಲ</string>\n    <string name=\"battery_optimization_disabled\">ಬ್ಯಾಟರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಈಗಾಗಲೇ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"pref_disable_battery_optimization_summary\">ಹಿನ್ನೆಲೆ ಗ್ರಂಥಾಲಯದ ನವೀಕರಣಗಳು ಮತ್ತು ಬ್ಯಾಕಪ್‌ಗಳೊಂದಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ</string>\n    <string name=\"pref_disable_battery_optimization\">ಬ್ಯಾಟರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</string>\n    <string name=\"pref_refresh_library_covers\">ಗ್ರಂಥಾಲಯದ ಮಾಂಗಾ ಕವರ್‌ಗಳನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ</string>\n    <string name=\"clear_database_completed\">ನಮೂದುಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"pref_clear_database_summary\">ನಿಮ್ಮ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ಇಲ್ಲದ ಮಾಂಗಾದ ಇತಿಹಾಸವನ್ನು ಅಳಿಸಿ</string>\n    <string name=\"pref_clear_database\">ಡೇಟಾಬೇಸ್ ತೆರವುಗೊಳಿಸಿ</string>\n    <string name=\"cookies_cleared\">ಕುಕೀಗಳನ್ನು ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"pref_clear_cookies\">ಕುಕೀಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ</string>\n    <string name=\"cache_delete_error\">ಸಂಗ್ರಹವನ್ನು ತೆರವುಗೊಳಿಸುವಾಗ ದೋಷ ಸಂಭವಿಸಿದೆ</string>\n    <string name=\"cache_deleted\">ಸಂಗ್ರಹವನ್ನು ತೆರವುಗೊಳಿಸಲಾಗಿದೆ. %1$d ಫೈಲ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"used_cache\">ಬಳಸಲಾಗಿದೆ: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">ಅಧ್ಯಾಯ ಸಂಗ್ರಹವನ್ನು ತೆರವುಗೊಳಿಸಿ</string>\n    <string name=\"restoring_backup_canceled\">ಮರುಸ್ಥಾಪನೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"restoring_backup_error\">ಬ್ಯಾಕಪ್ ಮರುಸ್ಥಾಪಿಸುವುದು ವಿಫಲವಾಗಿದೆ</string>\n    <string name=\"restoring_backup\">ಬ್ಯಾಕಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ</string>\n    <string name=\"restore_in_progress\">ಮರುಸ್ಥಾಪನೆ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ</string>\n    <string name=\"creating_backup_error\">ಬ್ಯಾಕಪ್ ವಿಫಲವಾಗಿದೆ</string>\n    <string name=\"creating_backup\">ಬ್ಯಾಕಪ್ ರಚಿಸಲಾಗುತ್ತಿದೆ</string>\n    <string name=\"backup_choice\">ನೀವು ಏನು ಬ್ಯಾಕಪ್ ಮಾಡಲು ಬಯಸುತ್ತೀರಿ?</string>\n    <string name=\"backup_in_progress\">ಬ್ಯಾಕಪ್ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ</string>\n    <string name=\"sort_by_upload_date\">ಅಪ್‌ಲೋಡ್ ದಿನಾಂಕದ ಮೂಲಕ</string>\n    <string name=\"label_data\">ಡೇಟಾ</string>\n    <string name=\"backup_restore_missing_sources\">ಕಾಣೆಯಾದ ಮೂಲಗಳು:</string>\n    <string name=\"invalid_backup_file_missing_manga\">ಬ್ಯಾಕಪ್ ಯಾವುದೇ ಮಾಂಗಾವನ್ನು ಹೊಂದಿಲ್ಲ.</string>\n    <string name=\"invalid_backup_file\">ಬ್ಯಾಕಪ್ ಫೈಲ್ ಅಮಾನ್ಯವಾಗಿದೆ</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">ಗ್ರಂಥಾಲಯವನ್ನು ನವೀಕರಿಸುವಾಗ ಹೊಸ ಕವರ್ ಮತ್ತು ವಿವರಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ</string>\n    <string name=\"pref_library_update_refresh_metadata\">ಮೆಟಾಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಿಫ್ರೆಶ್ ಮಾಡಿ</string>\n    <string name=\"action_migrate\">ಮೂಲ ಸ್ಥಳಾಂತರ</string>\n    <string name=\"page_list_empty_error\">ಯಾವುದೇ ಪುಟಗಳು ಸಿಕ್ಕಿಲ್ಲ</string>\n    <string name=\"tabs_header\">ಟ್ಯಾಬ್‌ಗಳು</string>\n    <string name=\"pref_show_reading_mode_summary\">ರೀಡರ್ ತೆರೆದಾಗ ಪ್ರಸ್ತುತ ಮೋಡ್ ಅನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ತೋರಿಸಿ</string>\n    <string name=\"pref_show_reading_mode\">ಓದುವ ರೀತಿ ತೋರಿಸಿ</string>\n    <string name=\"action_display_show_tabs\">ವರ್ಗ ಟ್ಯಾಬ್‌ಗಳನ್ನು ತೋರಿಸಿ</string>\n    <string name=\"action_display_comfortable_grid\">ಆರಾಮದಾಯಕ ಗ್ರಿಡ್</string>\n    <string name=\"action_disable_all\">ಎಲ್ಲವನ್ನೂ ನಿಷ್ಕ್ರಿಯೆಗೊಳಿಸಿ</string>\n    <string name=\"action_enable_all\">ಎಲ್ಲವನ್ನೂ ಸಕ್ರಿಯಗೊಳಿಸಿ</string>\n    <string name=\"action_start\">ಪ್ರಾರಂಭ</string>\n    <string name=\"loader_not_implemented_error\">ಮೂಲ ಕಂಡುಬಂದಿಲ್ಲ</string>\n    <string name=\"action_disable\">ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</string>\n    <string name=\"tapping_inverted_both\">ಎರಡೂ</string>\n    <string name=\"tapping_inverted_vertical\">ಉದ್ದದ</string>\n    <string name=\"tapping_inverted_horizontal\">ಅಡ್ಡ</string>\n    <string name=\"tapping_inverted_none\">ಯಾವುದು ಅಲ್ಲ</string>\n    <string name=\"pref_read_with_tapping_inverted\">ಟ್ಯಾಪಿಂಗ ಅನ್ನು ತಿರುಗಿಸಿ</string>\n    <string name=\"download_insufficient_space\">ಕಡಿಮೆ ಶೇಖರಣಾ ಸ್ಥಳದ ಕಾರಣ ಅಧ್ಯಾಯಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</string>\n    <string name=\"unknown_status\">ಅಜ್ಞಾತ ಸ್ಥಿತಿ</string>\n    <string name=\"unknown_author\">ಅಜ್ಞಾತ ಲೇಖಕ</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" ಅನ್ನು ಗ್ಲೋಬಲ್ ಸರ್ಚ್ ಮಾಡಿ</string>\n    <string name=\"updated_version\">v%1$s ಗೆ ಅಪ್ಡೇಟ್ ಆಗಿದೆ</string>\n    <string name=\"whats_new\">ಹೊಸತೇನಿದೆ</string>\n    <string name=\"requires_app_restart\">ಅನ್ವಯಿಸಲು ಅಪ್ಲಿಕೇಶನ್ ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ</string>\n    <string name=\"label_network\">ಅಡ್ವಾನ್ಸ್ಡ್ ಸೆಕ್ಷನ್</string>\n    <string name=\"pref_category_reading_mode\">ಓದುವ ಮೊಡ್</string>\n    <string name=\"pref_category_theme\">ಜನರಲ್ ಸೆಲೆಕ್ಷನ್</string>\n    <string name=\"action_sort_date_added\">ಹಾಕಿದ್ದ ದಿನಾಂಕ</string>\n    <string name=\"no_pinned_sources\">ಯಾವುದೆ ಪಿನ್ ಮಾಡಿರುವ ಸೋರ್ಸ್ ಗಳು ಇಲ್ಲ</string>\n    <string name=\"channel_complete\">ಪೂರ್ಣ</string>\n    <string name=\"channel_progress\">ಪ್ರಗತಿ</string>\n    <string name=\"parental_controls_info\">ಇದು ಅನಧಿಕೃತ ಮತ್ತು ತಪ್ಪಾಗಿ ಚಿಹ್ನಿಸಿದ ವಿಸ್ತರಣೆಗಳಿಂದ 18+ ಮೂಲಗಳನ್ನು ಮರೆಮಾಚಲಾಗುವುದಿಲ್ಲ.</string>\n    <string name=\"channel_errors\">ದೋಷಗಳು</string>\n    <string name=\"chapter_settings_updated\">ಅಧ್ಯಾಯದ ಡೀಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ</string>\n    <string name=\"share_page_info\">%1$s: %2$s, ಪುಟ %3$d</string>\n    <string name=\"no_chapters_error\">ಯಾವುದೇ ಅಧ್ಯಾಯಗಳು ಕಂಡುಬಂದಿಲ್ಲ</string>\n    <string name=\"set_chapter_settings_as_default\">ಡೀಫಾಲ್ಟ್ ಆಗಿ ಹೊಂದಿಸಿ</string>\n    <string name=\"also_set_chapter_settings_for_library\">ನನ್ನ ಗ್ರಂಥಾಲಯದಲ್ಲಿರುವ ಎಲ್ಲಾ ಮಾಂಗಾಗಳಿಗೂ ಅನ್ವಯಿಸಿ</string>\n    <string name=\"confirm_set_chapter_settings\">ಈ ಸೆಟ್ಟಿಂಗ್ ಗಳನ್ನು ಡೀಫಾಲ್ಟ್ ರೂಪದಲ್ಲಿ ಉಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</string>\n    <string name=\"chapter_settings\">ಅಧ್ಯಾಯದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</string>\n    <string name=\"downloaded_chapters\">ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಅಧ್ಯಾಯಗಳು</string>\n    <string name=\"manga_from_library\">ಗ್ರಂಥಾಲಯದಿಂದ ಮಾಂಗಾ</string>\n    <string name=\"backup_restore_missing_trackers\">ಟ್ರ್ಯಾಕರ್ ಗಳು ಲಾಗಿನ್ ಆಗಿಲ್ಲ:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">ಬುಕ್ ಮಾರ್ಕ್ ಮಾಡಿದ ಅಧ್ಯಾಯಗಳನ್ನು ಅಳಿಸಿ</string>\n    <string name=\"pref_category_delete_chapters\">ಅಧ್ಯಾಯಗಳನ್ನು ಅಳಿಸಿ</string>\n    <string name=\"ext_nsfw_warning\">NSFW (18+) ವಿಷಯವನ್ನು ಹೊಂದಿರಬಹುದು</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"action_search_settings\">ಸಂಯೋಜನೆಗಳಲ್ಲಿ ಹುಡುಕಿ</string>\n    <string name=\"spen_next_page\">ಮುಂದಿನ ಪುಟ</string>\n    <string name=\"spen_previous_page\">ಹಿಂದಿನ ಪುಟ</string>\n    <string name=\"file_picker_error\">ಯಾವುದೇ ಫೈಲ್ ಪಿಕ್ಕರ್ ಅಪ್ಲಿಕೇಶನ್ ಕಂಡುಬಂದಿಲ್ಲ</string>\n    <string name=\"migration_help_guide\">ಮೂಲ ವಲಸೆ ಮಾರ್ಗದರ್ಶಿ</string>\n    <string name=\"myanimelist_relogin\">ದಯವಿಟ್ಟು ಮತ್ತೆ MAL ಗೆ ಲಾಗಿನ್ ಮಾಡಿ</string>\n    <string name=\"pref_incognito_mode_summary\">ಓದುವ ಇತಿಹಾಸವನ್ನು ವಿರಾಮಗೊಳಿಸುತ್ತದೆ</string>\n    <string name=\"pref_incognito_mode\">ಅಜ್ಞಾತ ಮೋಡ್</string>\n    <string name=\"pref_clear_history\">ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಿ</string>\n    <string name=\"clear_history_confirmation\">ನೀವು ಖಚಿತವಾಗಿರುವಿರಾ? ಎಲ್ಲಾ ಇತಿಹಾಸವೂ ಕಳೆದುಹೋಗುತ್ತದೆ.</string>\n    <string name=\"clear_history_completed\">ಇತಿಹಾಸವನ್ನು ಅಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"pref_show_nsfw_source\">ಮೂಲಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ತೋರಿಸಿ</string>\n    <string name=\"pref_category_nsfw_content\">ವಯಸ್ಕ (18+) ಮೂಲಗಳು</string>\n    <string name=\"action_filter_tracked\">ಟ್ರ್ಯಾಕ್ ಮಾಡಲಾದ</string>\n    <string name=\"action_desc\">ಮೊದಲು ಚಿಕ್ಕದು</string>\n    <string name=\"action_asc\">ಮೊದಲ ಸಾಣ್ಣದ್ದು</string>\n    <string name=\"action_order_by_chapter_number\">ಅಧ್ಯಾಯ ಸಂಖ್ಯೆಯಿಂದ</string>\n    <string name=\"action_order_by_upload_date\">ಅಪ್ಲೋಡ್ ದಿನಾಂಕ ದಂತೆ</string>\n    <string name=\"action_display_show_number_of_items\">ವಸ್ತುಗಳ ಸಂಖ್ಯೆಯನ್ನು ತೋರಿಸಿ</string>\n    <string name=\"action_sort_chapter_fetch_date\">ಸಿಕ್ಕ ಮಾಹಿತಿ</string>\n    <string name=\"track_finished_reading_date\">ಮುಕ್ತಾಯ ದಿನಾಂಕ</string>\n    <string name=\"track_started_reading_date\">ಆರಂಭದ ದಿನ</string>\n    <string name=\"pref_dump_crash_logs_summary\">ಡೆವಲಪರ್‌ಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ದೋಷದೆ ಲಾಗ್‌ಗಳನ್ನು ಫೈಲ್‌ಗೆ ಸೇರಿಸಿ</string>\n    <string name=\"pref_dump_crash_logs\">ಕ್ರ್ಯಾಶ್ ಲಾಗ್‌ಗಳನ್ನು ಡಂಪ್ ಮಾಡಿ</string>\n    <string name=\"pref_dns_over_https\">HTTPS ಮೇಲೆ DNS ಬಳಸಿ</string>\n    <string name=\"backup_restore_content_full\">ಬ್ಯಾಕಪ್ ಫೈಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ.\n\\n\n\\nಕಾಣೆಯಾದ ಯಾವುದೇ ವಿಸ್ತರಣೆಗಳನ್ನು ನೀವು ಪುನಃ ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಬಳಸಲು ಟ್ರ್ಯಾಕಿಂಗ್ ಸೇವೆಗಳಿಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.</string>\n    <string name=\"pref_download_new_categories_details\">ಹೊರಗಿಡಲಾದ ವಿಭಾಗಗಳಲ್ಲಿ ಮಾಂಗಾವನ್ನು ಸೇರಿಸಿದ ವಿಭಾಗಗಳಲ್ಲಿದ್ದರೂ ಅವುಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</string>\n    <string name=\"pref_category_auto_download\">ಸ್ವಯಂ ಡೌನ್‌ಲೋಡ್</string>\n    <string name=\"pref_viewer_nav\">ನ್ಯಾವಿಗೇಶನ್ ಲೇಔಟ್</string>\n    <string name=\"nav_zone_right\">ಬಲಕ್ಕೆ</string>\n    <string name=\"nav_zone_left\">ಎಡಕ್ಕೆ</string>\n    <string name=\"nav_zone_next\">ಮುಂದಿನ</string>\n    <string name=\"nav_zone_prev\">ಹಿಂದಿನ</string>\n    <string name=\"right_and_left_nav\">ಬಲ ಮತ್ತು ಎಡ</string>\n    <string name=\"edge_nav\">ಅಂಚು</string>\n    <string name=\"kindlish_nav\">ಕಿಂಡಲ್-ಇಶ್</string>\n    <string name=\"l_nav\">L ಆಕಾರದ</string>\n    <string name=\"pref_dual_page_invert_summary\">ಡ್ಯುಯಲ್ ಪೇಜ್ ಸ್ಪ್ಲಿಟ್ ನ ಪ್ಲೇಸ್ ಮೆಂಟ್ ಓದುವ ದಿಕ್ಕಿಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದರೆ</string>\n    <string name=\"pref_dual_page_invert\">ಡ್ಯುಯಲ್ ಪೇಜ್ ಸ್ಪ್ಲಿಟ್ ಪ್ಲೇಸ್‌ಮೆಂಟ್ ಅನ್ನು ತಿರುಗಿಸಿ</string>\n    <string name=\"pref_dual_page_split\">ಡ್ಯುಯಲ್ ಪುಟ ವಿಭಜನೆ</string>\n    <string name=\"pref_show_navigation_mode_summary\">ರೀಡರ್ ತೆರೆದಾಗ ಟ್ಯಾಪ್ ವಲಯಗಳನ್ನು ತೋರಿಸಿ</string>\n    <string name=\"pref_show_navigation_mode\">ನ್ಯಾವಿಗೇಶನ್ ಲೇಔಟ್ ಓವರ್ ಲೇ ತೋರಿಸಿ</string>\n    <string name=\"exclude\">ಹೊರಗಿಡಿ: %s</string>\n    <string name=\"include\">ಸೇರಿಸಿ: %s</string>\n    <string name=\"none\">ಯಾವುದು ಅಲ್ಲ</string>\n    <string name=\"pref_library_update_categories_details\">ಹೊರಗಿಡಲಾದ ವರ್ಗಗಳಲ್ಲಿನ ಮಾಂಗಾ ಸೇರಿಸಿದ ವಿಭಾಗಗಳಲ್ಲಿದ್ದರೂ ನವೀಕರಿಸಲಾಗುವುದಿಲ್ಲ.</string>\n    <string name=\"action_show_errors\">ದೋಷಗಳನ್ನು ತೋರಿಸು</string>\n    <string name=\"cancel_all_for_series\">ಈ ಸರಣಿಯ ಎಲ್ಲವನ್ನೂ ರದ್ದುಮಾಡಿ</string>\n    <string name=\"action_display_local_badge\">ಸ್ಥಳೀಯ ಬ್ಯಾಡ್ಜ್ ಗಳು</string>\n    <string name=\"information_empty_category_dialog\">ನೀವು ಇನ್ನೂ ಯಾವುದೇ ವರ್ಗಗಳನ್ನು ಹೊಂದಿಲ್ಲ.</string>\n    <string name=\"update_check_eol\">ಈ ಆಂಡ್ರಾಯ್ಡ್ ಆವೃತ್ತಿಯನ್ನು ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ</string>\n    <string name=\"error_no_match\">ಯಾವುದೇ ಹೋಲಿಕೆ ಕಂಡುಬಂದಿಲ್ಲ</string>\n    <string name=\"source_unsupported\">ಮೂಲವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ</string>\n    <string name=\"unread\">ಓದದ</string>\n    <string name=\"error_sharing_cover\">ಕವರ್ ಹಂಚುವಿಕೆಯಲ್ಲಿ ದೋಷ</string>\n    <string name=\"error_saving_cover\">ಕವರ್ ಉಳಿಸುವಲ್ಲಿ ದೋಷ</string>\n    <string name=\"cover_saved\">ಕವರ್ ಉಳಿಸಲಾಗಿದೆ</string>\n    <string name=\"manga_cover\">ಕವರ್</string>\n    <string name=\"clipboard_copy_error\">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ</string>\n    <string name=\"date\">ದಿನಾಂಕ</string>\n    <string name=\"local_filter_order_by\">ಇದರ ಅನುಗುಣವಾಗಿ</string>\n    <string name=\"local_invalid_format\">ಅಮಾನ್ಯ ಅಧ್ಯಾಯ ಸ್ವರೂಪ</string>\n    <string name=\"chapter_not_found\">ಅಧ್ಯಾಯ ಸಿಗಲಿಲ್ಲ</string>\n    <string name=\"notification_incognito_text\">ಅಜ್ಞಾತ ಮೋಡ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</string>\n    <string name=\"tracking_guide\">ಟ್ರ್ಯಾಕಿಂಗ್ ಮಾರ್ಗದರ್ಶಿ</string>\n    <string name=\"rotation_landscape\">ಅಡ್ಡವಾದ ಪುಟ</string>\n    <string name=\"rotation_portrait\">ಉದ್ದವಾದ ಪುಟ</string>\n    <string name=\"rotation_type\">ತಿರುಗುವಿಕೆಯ ಪ್ರಕಾರ</string>\n    <string name=\"automatic_background\">ಸ್ವಯಂಚಾಲಿತ</string>\n    <string name=\"pref_create_folder_per_manga_summary\">ಮಾಂಗಾ ಶೀರ್ಷಿಕೆಗೆ ಅನುಗುಣವಾಗಿ ಫೋಲ್ಡರ್ ಗಳನ್ನು ರಚಿಸುತ್ತದೆ</string>\n    <string name=\"pref_create_folder_per_manga\">ಪ್ರತ್ಯೇಕ ಫೋಲ್ಡರ್ ಗಳಲ್ಲಿ ಪುಟಗಳನ್ನು ಉಳಿಸಿ</string>\n    <string name=\"pref_reader_actions\">ಕ್ರಿಯೆಗಳು</string>\n    <string name=\"pref_grayscale\">ಗ್ರೇಸ್ಕೇಲ್</string>\n    <string name=\"off\">ಆಫ</string>\n    <string name=\"on\">ಆನ್</string>\n    <string name=\"categorized_display_settings\">ಪ್ರತಿ ವರ್ಗದ ವಿಂಗಡಣೆ ಮತ್ತು ಪ್ರದರ್ಶನಕ್ಕಾಗಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</string>\n    <string name=\"restrictions\">ನಿರ್ಬಂಧಗಳು: %s</string>\n    <string name=\"action_start_downloading_now\">ಈಗಲೇ ಡೌನ್‌ಲೋಡ್ ಪ್ರಾರಂಭಿಸಿ</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ko/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">%1$s 개 남음</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">총 %1$s화</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d일 전</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">소요 시간: %1$s, 발생한 오류: %2$s</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">%1$s분 후</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">항목 %d개</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d개의 트래커</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">소스에 존재하지 않거나 필터링되어 있는 %d개의 회차를 건너뛰었습니다</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">%d개의 확장 앱 업데이트가 있습니다</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">%d개의 항목</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d개의 새로운 회차</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">%1$s화와 그 외 %2$d화</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">읽지 않은 다음 %d 회차</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">다음 %d화</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">누락된 회차 %1$s개</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d일</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d 저장소</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">%1$d일 후</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s 페이지</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">%1$d개 항목을 이동하시겠습니까?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">%1$d개 항목을 복사하시겠습니까?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d개 항목이 생략되었습니다</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ko/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">이름</string>\n    <string name=\"categories\">카테고리</string>\n    <string name=\"manga\">서재 항목</string>\n    <string name=\"chapters\">회차</string>\n    <string name=\"track\">동기화</string>\n    <string name=\"label_backup\">백업 및 복원</string>\n    <string name=\"action_settings\">설정</string>\n    <string name=\"action_filter\">필터</string>\n    <string name=\"action_filter_bookmarked\">북마크함</string>\n    <string name=\"action_filter_unread\">읽지 않음</string>\n    <string name=\"action_filter_empty\">필터 제거</string>\n    <string name=\"action_sort_alpha\">가나다순</string>\n    <string name=\"action_sort_last_read\">마지막으로 읽은 날짜순</string>\n    <string name=\"action_search\">검색</string>\n    <string name=\"action_select_all\">모두 선택</string>\n    <string name=\"action_mark_as_read\">읽음으로 표시</string>\n    <string name=\"action_mark_as_unread\">읽지 않음으로 표시</string>\n    <string name=\"action_mark_previous_as_read\">항목 바로 전까지 읽음으로 표시</string>\n    <string name=\"action_download\">다운로드</string>\n    <string name=\"action_bookmark\">챕터 북마크</string>\n    <string name=\"action_remove_bookmark\">챕터 북마크 제거</string>\n    <string name=\"action_delete\">삭제</string>\n    <string name=\"action_update_library\">서재 업데이트</string>\n    <string name=\"action_edit\">편집</string>\n    <string name=\"action_add\">추가</string>\n    <string name=\"action_add_category\">카테고리 추가</string>\n    <string name=\"action_edit_categories\">카테고리 편집</string>\n    <string name=\"action_rename_category\">카테고리 이름 바꾸기</string>\n    <string name=\"action_move_category\">카테고리 지정</string>\n    <string name=\"action_edit_cover\">표지 편집</string>\n    <string name=\"action_remove\">제거</string>\n    <string name=\"action_resume\">계속</string>\n    <string name=\"action_open_in_browser\">브라우저에서 열기</string>\n    <string name=\"action_display_mode\">화면 표시 모드</string>\n    <string name=\"action_display_grid\">작은 격자</string>\n    <string name=\"action_display_list\">목록</string>\n    <string name=\"action_cancel\">취소</string>\n    <string name=\"action_sort\">정렬</string>\n    <string name=\"action_install\">설치</string>\n    <string name=\"label_settings\">설정</string>\n    <string name=\"action_display\">화면 표시</string>\n    <string name=\"history\">기록</string>\n    <string name=\"label_download_queue\">다운로드 대기열</string>\n    <string name=\"label_library\">서재</string>\n    <string name=\"label_recent_manga\">기록</string>\n    <string name=\"label_recent_updates\">업데이트</string>\n    <string name=\"action_sort_total\">전체 챕터 개수순</string>\n    <string name=\"action_previous_chapter\">이전 화</string>\n    <string name=\"action_next_chapter\">다음 화</string>\n    <string name=\"action_retry\">다시 시도</string>\n    <string name=\"action_share\">공유</string>\n    <string name=\"action_save\">저장</string>\n    <string name=\"action_reset\">초기화</string>\n    <string name=\"action_undo\">실행 취소</string>\n    <string name=\"action_open_log\">로그 열기</string>\n    <string name=\"action_restore\">복원</string>\n    <string name=\"loading\">불러오는 중…</string>\n    <string name=\"app_not_available\">앱 이용 불가</string>\n    <string name=\"pref_category_general\">일반</string>\n    <string name=\"pref_category_reader\">뷰어</string>\n    <string name=\"pref_category_downloads\">다운로드</string>\n    <string name=\"pref_category_tracking\">동기화</string>\n    <string name=\"pref_category_advanced\">고급</string>\n    <string name=\"pref_category_about\">정보</string>\n    <string name=\"pref_library_columns\">행당 항목 수</string>\n    <string name=\"label_migration\">데이터 이전</string>\n    <string name=\"label_extensions\">확장 앱</string>\n    <string name=\"label_extension_info\">확장 앱 정보</string>\n    <string name=\"action_global_search\">전체 검색</string>\n    <string name=\"action_pause\">일시중지</string>\n    <string name=\"portrait\">세로</string>\n    <string name=\"landscape\">가로</string>\n    <string name=\"pref_library_update_interval\">자동 업데이트</string>\n    <string name=\"update_never\">끄기</string>\n    <string name=\"update_6hour\">6시간</string>\n    <string name=\"update_12hour\">12시간</string>\n    <string name=\"update_24hour\">1일</string>\n    <string name=\"update_48hour\">2일</string>\n    <string name=\"update_weekly\">1주</string>\n    <string name=\"all\">전부</string>\n    <string name=\"pref_library_update_restriction\">자동 업데이트 조건</string>\n    <string name=\"charging\">충전 중일 때만</string>\n    <string name=\"default_category\">기본 카테고리</string>\n    <string name=\"ext_update\">업데이트</string>\n    <string name=\"ext_install\">설치</string>\n    <string name=\"ext_pending\">대기 중</string>\n    <string name=\"ext_downloading\">다운로드 중</string>\n    <string name=\"ext_installing\">설치 중</string>\n    <string name=\"ext_installed\">설치됨</string>\n    <string name=\"ext_trust\">신뢰</string>\n    <string name=\"ext_untrusted\">신뢰되지않음</string>\n    <string name=\"ext_uninstall\">삭제</string>\n    <string name=\"untrusted_extension\">신뢰할 수 없는 확장 앱</string>\n    <string name=\"untrusted_extension_message\">일부 악의적인 확장 앱은 Mihon에 저장된 로그인 정보를 읽거나 임의의 코드를 실행할 수도 있습니다.\n\\n\n\\n이 확장 앱을 신뢰하면 이러한 위험에 노출될 수 있습니다.</string>\n    <string name=\"pref_fullscreen\">전체화면</string>\n    <string name=\"pref_double_tap_anim_speed\">더블 탭 애니메이션 속도</string>\n    <string name=\"pref_show_page_number\">페이지 번호 표시</string>\n    <string name=\"pref_crop_borders\">모서리 자르기</string>\n    <string name=\"pref_custom_brightness\">밝기 변경</string>\n    <string name=\"pref_custom_color_filter\">컬러 필터 사용</string>\n    <string name=\"pref_keep_screen_on\">화면 켜짐 유지</string>\n    <string name=\"pref_read_with_volume_keys\">볼륨 키</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">볼륨 키 뒤바꾸기</string>\n    <string name=\"pref_viewer_type\">기본 읽기 모드</string>\n    <string name=\"left_to_right_viewer\">페이지 (왼쪽에서 오른쪽)</string>\n    <string name=\"right_to_left_viewer\">페이지 (오른쪽에서 왼쪽)</string>\n    <string name=\"vertical_viewer\">페이지 (수직)</string>\n    <string name=\"webtoon_viewer\">긴 스트립</string>\n    <string name=\"scale_type_stretch\">늘리기</string>\n    <string name=\"scale_type_fit_width\">가로 맞추기</string>\n    <string name=\"scale_type_fit_height\">세로 맞추기</string>\n    <string name=\"scale_type_original_size\">원본 크기</string>\n    <string name=\"pref_zoom_start\">줌 시작 위치</string>\n    <string name=\"zoom_start_automatic\">자동</string>\n    <string name=\"zoom_start_left\">왼쪽</string>\n    <string name=\"zoom_start_right\">오른쪽</string>\n    <string name=\"zoom_start_center\">중앙</string>\n    <string name=\"double_tap_anim_speed_0\">애니메이션 없음</string>\n    <string name=\"double_tap_anim_speed_normal\">보통</string>\n    <string name=\"double_tap_anim_speed_fast\">빠름</string>\n    <string name=\"pref_rotation_type\">기본 회전 설정</string>\n    <string name=\"rotation_free\">자유</string>\n    <string name=\"rotation_force_portrait\">세로로 고정</string>\n    <string name=\"rotation_force_landscape\">가로로 고정</string>\n    <string name=\"pref_remove_after_marked_as_read\">수동으로 읽음 표시 될 경우 삭제</string>\n    <string name=\"pref_remove_after_read\">읽은 후 자동으로 삭제</string>\n    <string name=\"disabled\">끄기</string>\n    <string name=\"last_read_chapter\">마지막 회차</string>\n    <string name=\"pref_download_new\">새로운 화 다운로드</string>\n    <string name=\"services\">트래킹 서비스</string>\n    <string name=\"pref_create_backup\">백업 생성</string>\n    <string name=\"pref_restore_backup\">백업 복원</string>\n    <string name=\"pref_restore_backup_summ\">백업 파일에서 서재 복원</string>\n    <string name=\"pref_backup_interval\">백업 주기</string>\n    <string name=\"backup_created\">백업 생성됨</string>\n    <string name=\"restore_completed\">복원 완료</string>\n    <string name=\"restoring_backup\">백업 복원중</string>\n    <string name=\"creating_backup\">백업 생성중</string>\n    <string name=\"pref_clear_chapter_cache\">회차별 캐시 삭제</string>\n    <string name=\"used_cache\">%1$s 사용중</string>\n    <string name=\"cache_deleted\">캐시 삭제됨, %1$d개의 파일이 삭제됨</string>\n    <string name=\"cache_delete_error\">지우는 동안 오류가 발생했습니다</string>\n    <string name=\"pref_clear_cookies\">쿠키 삭제</string>\n    <string name=\"cookies_cleared\">쿠키 삭제됨</string>\n    <string name=\"pref_clear_database\">데이터베이스 삭제</string>\n    <string name=\"pref_clear_database_summary\">서재에 추가되지 않은 항목의 기록을 삭제합니다</string>\n    <string name=\"version\">버전</string>\n    <string name=\"pref_enable_acra\">오류 보고서 전송</string>\n    <string name=\"pref_acra_summary\">버그를 수정하는데 도움이 됩니다. 개인 정보는 전송되지 않습니다</string>\n    <string name=\"login_title\">%1$s 으로 로그인</string>\n    <string name=\"username\">사용자명</string>\n    <string name=\"password\">비밀번호</string>\n    <string name=\"login\">로그인</string>\n    <string name=\"login_success\">로그인 성공</string>\n    <string name=\"unknown_error\">알 수 없는 오류</string>\n    <string name=\"updating_category\">카테고리 업데이트중</string>\n    <string name=\"no_more_results\">더이상 결과 없음</string>\n    <string name=\"action_global_search_hint\">전체 검색…</string>\n    <string name=\"latest\">최신</string>\n    <string name=\"ongoing\">연재</string>\n    <string name=\"unknown\">알 수 없음</string>\n    <string name=\"remove_from_library\">서재에서 제거</string>\n    <string name=\"manga_added_library\">서재에 추가되었습니다</string>\n    <string name=\"manga_removed_library\">서재에서 제거되었습니다</string>\n    <string name=\"delete_downloads_for_manga\">다운로드된 회차를 삭제하시겠습니까?</string>\n    <string name=\"source_not_installed\">소스 미설치: %1$s</string>\n    <string name=\"display_mode_chapter\">%1$s화</string>\n    <string name=\"chapter_downloading_progress\">다운로드 중 (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">오류</string>\n    <string name=\"chapter_paused\">일시정지</string>\n    <string name=\"show_chapter_number\">회차 번호</string>\n    <string name=\"sort_by_source\">소스 기준</string>\n    <string name=\"sort_by_number\">회차 번호 기준</string>\n    <string name=\"manga_download\">다운로드</string>\n    <string name=\"download_unread\">읽지 않은 회차</string>\n    <string name=\"confirm_delete_chapters\">선택된 회차를 삭제하시겠습니까?</string>\n    <string name=\"manga_tracking_tab\">동기화</string>\n    <string name=\"score\">평점</string>\n    <string name=\"title\">제목</string>\n    <string name=\"status\">상태</string>\n    <string name=\"track_status\">상태</string>\n    <string name=\"snack_categories_deleted\">카테고리 삭제됨</string>\n    <string name=\"dialog_with_checkbox_remove_description\">이 회차의 읽은 기록을 삭제합니다. 계속하시겠습니까?</string>\n    <string name=\"dialog_with_checkbox_reset\">모든 회차 기록 초기화</string>\n    <string name=\"snack_add_to_library\">서재에 추가합니까?</string>\n    <string name=\"picture_saved\">사진 저장됨</string>\n    <string name=\"custom_filter\">이미지 필터</string>\n    <string name=\"set_as_cover\">표지로 설정</string>\n    <string name=\"cover_updated\">표지 업데이트됨</string>\n    <string name=\"chapter_progress\">페이지: %1$d</string>\n    <string name=\"no_next_chapter\">다음 화가 없습니다</string>\n    <string name=\"decode_image_error\">이미지를 로드할 수 없습니다</string>\n    <string name=\"confirm_set_image_as_cover\">이 이미지를 표지로 사용합니까?</string>\n    <string name=\"transition_finished\">완료:</string>\n    <string name=\"transition_current\">현재:</string>\n    <string name=\"transition_next\">다음:</string>\n    <string name=\"transition_previous\">이전:</string>\n    <string name=\"transition_no_next\">다음 화가 없습니다</string>\n    <string name=\"transition_no_previous\">이전 화가 없습니다</string>\n    <string name=\"transition_pages_loading\">페이지 로딩중…</string>\n    <string name=\"transition_pages_error\">페이지 로딩 실패: %1$s</string>\n    <string name=\"notification_new_chapters\">새로운 회차 발견</string>\n    <string name=\"notification_cover_update_failed\">표지 업데이트 실패</string>\n    <string name=\"file_select_cover\">표지 이미지 선택</string>\n    <string name=\"file_select_backup\">백업 파일 선택</string>\n    <string name=\"update_check_confirm\">다운로드</string>\n    <string name=\"update_check_no_new_updates\">새로운 업데이트 없음</string>\n    <string name=\"update_check_notification_download_in_progress\">다운로드 중…</string>\n    <string name=\"update_check_notification_download_complete\">탭하여 업데이트 설치</string>\n    <string name=\"update_check_notification_download_error\">다운로드 오류</string>\n    <string name=\"update_check_notification_update_available\">업데이트 이용 가능!</string>\n    <string name=\"information_no_downloads\">다운로드 없음</string>\n    <string name=\"information_no_recent\">최근 업데이트 없음</string>\n    <string name=\"information_no_recent_manga\">최근 읽은 기록 없음</string>\n    <string name=\"download_notifier_downloader_title\">다운로더</string>\n    <string name=\"download_notifier_title_error\">오류</string>\n    <string name=\"download_notifier_unknown_error\">다운로드 중에 예기치 않은 오류가 발생하였습니다</string>\n    <string name=\"download_notifier_download_paused\">다운로드 일시중지됨</string>\n    <string name=\"action_display_download_badge\">다운로드한 챕터</string>\n    <string name=\"pref_update_only_non_completed\">연재가 끝났을 때 항목 건너뛰기</string>\n    <string name=\"pref_auto_update_manga_sync\">읽은 기록 동기화</string>\n    <string name=\"default_category_summary\">항상 물어보기</string>\n    <string name=\"pref_create_backup_summ\">현재 서재를 나중에 복구하는 데 사용 가능</string>\n    <string name=\"pref_reader_navigation\">네비게이션</string>\n    <string name=\"pref_page_transitions\">페이지 전환 효과 표시</string>\n    <string name=\"pref_reader_theme\">배경 색상</string>\n    <string name=\"white_background\">흰색</string>\n    <string name=\"black_background\">검은색</string>\n    <string name=\"pager_viewer\">페이지 설정</string>\n    <string name=\"pref_image_scale_type\">배율 설정</string>\n    <string name=\"scale_type_fit_screen\">화면 맞춤</string>\n    <string name=\"scale_type_smart_fit\">자동 맞춤</string>\n    <string name=\"color_filter_r_value\">적색</string>\n    <string name=\"color_filter_g_value\">녹색</string>\n    <string name=\"color_filter_b_value\">청색</string>\n    <string name=\"color_filter_a_value\">알파</string>\n    <string name=\"second_to_last\">끝에서 두번째 회차</string>\n    <string name=\"third_to_last\">끝에서 세번째 회차</string>\n    <string name=\"fourth_to_last\">끝에서 네번째 회차</string>\n    <string name=\"fifth_to_last\">끝에서 다섯번째 회차</string>\n    <string name=\"backup_choice\">어떤 항목들을 백업하겠습니까?</string>\n    <string name=\"clear_database_completed\">항목 삭제됨</string>\n    <string name=\"local_source\">로컬 저장소</string>\n    <string name=\"other_source\">기타</string>\n    <string name=\"browse\">찾아보기</string>\n    <string name=\"licensed\">판권작</string>\n    <string name=\"copied_to_clipboard\">클립보드에 복사됨:\n\\n%1$s</string>\n    <string name=\"show_title\">소스 제목</string>\n    <string name=\"reading\">읽는 중</string>\n    <string name=\"completed\">완결</string>\n    <string name=\"dropped\">포기함</string>\n    <string name=\"on_hold\">일시중지중</string>\n    <string name=\"plan_to_read\">계획중</string>\n    <string name=\"repeating\">다시 읽는 중</string>\n    <string name=\"track_type\">종류</string>\n    <string name=\"error_category_exists\">같은 이름을 가진 카테고리가 이미 존재합니다!</string>\n    <string name=\"migration_dialog_what_to_include\">포함할 데이터를 선택하세요</string>\n    <string name=\"migrate\">데이터 이전</string>\n    <string name=\"copy\">복사</string>\n    <string name=\"download_queue_error\">다운로드 실패. 다운로드 메뉴에서 다시 시도할 수 있습니다</string>\n    <string name=\"notification_first_add_to_library\">이 행동을 하기 전 서재에 항목을 추가해주세요</string>\n    <string name=\"information_empty_library\">서재가 비어있습니다</string>\n    <string name=\"information_empty_category\">카테고리가 없습니다. 서재 구성을 위해 + 버튼을 눌러 생성하세요.</string>\n    <string name=\"download_notifier_text_only_wifi\">Wi-Fi 연결 사용 불가능</string>\n    <string name=\"download_notifier_no_network\">네트워크 연결 사용 불가능</string>\n    <string name=\"channel_common\">일반</string>\n    <string name=\"pref_read_with_long_tap\">길게 탭하여 액션 표시</string>\n    <string name=\"action_open_in_web_view\">WebView로 열기</string>\n    <string name=\"pref_skip_read_chapters\">읽음 표시된 회차 건너뛰기</string>\n    <string name=\"pref_color_filter_mode\">컬러 필터 블렌딩 모드</string>\n    <string name=\"filter_mode_overlay\">오버레이</string>\n    <string name=\"filter_mode_multiply\">곱하기</string>\n    <string name=\"filter_mode_screen\">스크린</string>\n    <string name=\"filter_mode_lighten\">닷지 / 밝게하기</string>\n    <string name=\"filter_mode_darken\">번 / 어둡게하기</string>\n    <string name=\"label_help\">도움말</string>\n    <string name=\"email\">이메일 주소</string>\n    <string name=\"website\">웹사이트</string>\n    <string name=\"action_menu\">메뉴</string>\n    <string name=\"label_more\">더 보기</string>\n    <string name=\"label_sources\">소스</string>\n    <string name=\"channel_complete\">완료</string>\n    <string name=\"confirm_set_chapter_settings\">현재 설정을 기본값으로 설정하시겠습니까?</string>\n    <string name=\"chapter_settings\">회차 설정</string>\n    <string name=\"error_sharing_cover\">표지 공유 오류</string>\n    <string name=\"error_saving_cover\">표지 저장 오류</string>\n    <string name=\"cover_saved\">표지 저장</string>\n    <string name=\"manga_cover\">표지</string>\n    <string name=\"sort_by_upload_date\">업로드 날짜 기준</string>\n    <string name=\"logout_success\">로그아웃 되었습니다</string>\n    <string name=\"logout\">로그아웃</string>\n    <string name=\"logout_title\">%1$s 에서 로그아웃 하시겠습니까?</string>\n    <string name=\"notification_incognito_text\">시크릿 모드 끄기</string>\n    <string name=\"label_downloaded_only\">다운로드가 완료된 항목만 표시</string>\n    <string name=\"pref_incognito_mode\">시크릿 모드</string>\n    <string name=\"updated_version\">v%1$s 으로 업데이트 됨</string>\n    <string name=\"check_for_updates\">업데이트 확인</string>\n    <string name=\"licenses\">오픈 소스 라이선스</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">디바이스 설정을 열 수 없습니다</string>\n    <string name=\"pref_disable_battery_optimization\">배터리 최적화 끄기</string>\n    <string name=\"restore_miui_warning\">MIUI 최적화가 꺼져 있을 경우 백업/복원 기능이 정상 작동하지 않을 수 있습니다.</string>\n    <string name=\"restore_in_progress\">복원이 이미 진행중 입니다</string>\n    <string name=\"requires_app_restart\">앱을 재시작한 후에 적용됩니다</string>\n    <string name=\"pref_dns_over_https\">HTTPS를 통한 DNS (DoH)</string>\n    <string name=\"label_data\">데이터</string>\n    <string name=\"backup_in_progress\">백업이 이미 진행중입니다</string>\n    <string name=\"restoring_backup_error\">백업 복원 실패</string>\n    <string name=\"label_network\">네트워크</string>\n    <string name=\"restoring_backup_canceled\">복원 취소</string>\n    <string name=\"creating_backup_error\">백업 실패</string>\n    <string name=\"restore_duration\">%1$02d분 %2$02d초</string>\n    <string name=\"invalid_backup_file\">잘못된 백업 파일:</string>\n    <string name=\"pref_category_auto_download\">자동 다운로드</string>\n    <string name=\"pref_remove_bookmarked_chapters\">북마크 표시된 회차 삭제 허용</string>\n    <string name=\"pref_category_delete_chapters\">회차 지우기</string>\n    <string name=\"rotation_landscape\">가로</string>\n    <string name=\"rotation_portrait\">세로</string>\n    <string name=\"nav_zone_right\">오른쪽</string>\n    <string name=\"nav_zone_left\">왼쪽</string>\n    <string name=\"nav_zone_next\">다음</string>\n    <string name=\"nav_zone_prev\">이전</string>\n    <string name=\"right_and_left_nav\">좌우 이동</string>\n    <string name=\"gray_background\">회색</string>\n    <string name=\"tapping_inverted_both\">수평+수직 반전</string>\n    <string name=\"tapping_inverted_vertical\">수직 반전</string>\n    <string name=\"tapping_inverted_horizontal\">수평 반전</string>\n    <string name=\"pref_grayscale\">그레이스케일</string>\n    <string name=\"pref_dual_page_split\">넓은 페이지 분할</string>\n    <string name=\"action_display_comfortable_grid\">보기 편한 격자</string>\n    <string name=\"pref_dark_theme_pure_black\">다크 모드에 검정색 사용</string>\n    <string name=\"pref_app_theme\">앱 테마</string>\n    <string name=\"theme_dark\">다크</string>\n    <string name=\"theme_light\">라이트</string>\n    <string name=\"theme_system\">시스템</string>\n    <string name=\"action_disable_all\">모두 비활성화</string>\n    <string name=\"spen_next_page\">다음 페이지</string>\n    <string name=\"confirm_lock_change\">변경 확인을 위해 인증이 필요합니다</string>\n    <string name=\"label_default\">기본값</string>\n    <string name=\"action_select_inverse\">선택 반전</string>\n    <string name=\"action_search_settings\">검색 설정</string>\n    <string name=\"action_sort_date_added\">서재에 추가한 날짜순</string>\n    <string name=\"action_sort_latest_chapter\">최신 화가 올라온 날짜순</string>\n    <string name=\"l_nav\">L자 모양</string>\n    <string name=\"pref_read_with_tapping_inverted\">탭 영역 반전</string>\n    <string name=\"tapping_inverted_none\">없음</string>\n    <string name=\"automatic_background\">자동</string>\n    <string name=\"kindlish_nav\">Kindle식</string>\n    <string name=\"pref_cutout_short\">빈 공간 채우기</string>\n    <string name=\"pref_always_show_chapter_transition\">회차 변경 항상 표시</string>\n    <string name=\"unknown_author\">작가 미상</string>\n    <string name=\"pref_category_reading_mode\">읽기 모드</string>\n    <string name=\"whats_new\">업데이트 내역</string>\n    <string name=\"last_used_source\">마지막으로 사용</string>\n    <string name=\"pref_dual_page_invert\">분할 페이지 순서 뒤집기</string>\n    <string name=\"edge_nav\">양쪽 가장자리</string>\n    <string name=\"action_view_chapters\">챕터 목록 보기</string>\n    <string name=\"pref_viewer_nav\">탭 존</string>\n    <string name=\"label_warning\">경고</string>\n    <string name=\"help_translate\">번역에 참여하기</string>\n    <string name=\"rotation_type\">회전 설정</string>\n    <string name=\"pref_library_update_refresh_metadata\">메타데이터 자동 갱신</string>\n    <string name=\"pref_category_for_this_series\">현재 만화에만 적용</string>\n    <string name=\"viewer\">읽기 모드</string>\n    <string name=\"downloaded_only_summary\">서재의 모든 항목에 적용됩니다</string>\n    <string name=\"pref_webtoon_side_padding\">모서리 여백</string>\n    <string name=\"ext_app_info\">앱 정보</string>\n    <string name=\"getting_started_guide\">초기 설정 도움말</string>\n    <string name=\"pref_incognito_mode_summary\">읽은 내역의 기록을 일시 정지합니다</string>\n    <string name=\"action_enable_all\">모두 활성화</string>\n    <string name=\"vertical_plus_viewer\">간격이 있는 긴 스트립</string>\n    <string name=\"none\">없음</string>\n    <string name=\"pref_date_format\">날짜 형식</string>\n    <string name=\"off\">비활성화</string>\n    <string name=\"pref_inverted_colors\">색 반전</string>\n    <string name=\"pref_category_library\">서재</string>\n    <string name=\"add_to_library\">서재에 추가</string>\n    <string name=\"save_chapter_as_cbz\">CBZ 파일로 저장</string>\n    <string name=\"secure_screen_summary\">화면 보안을 켜면 앱을 전환할 때 내용이 숨겨지며 스크린샷을 찍을 수 없습니다</string>\n    <string name=\"in_library\">서재에 추가됨</string>\n    <string name=\"action_migrate\">데이터 이전</string>\n    <string name=\"recent_manga_time\">%1$s화 - %2$s</string>\n    <string name=\"secure_screen\">화면 보안</string>\n    <string name=\"lock_with_biometrics\">잠금 해제 필요</string>\n    <string name=\"pref_category_appearance\">모양</string>\n    <string name=\"relative_time_today\">오늘</string>\n    <string name=\"pref_category_library_update\">전역 업데이트</string>\n    <string name=\"pref_category_security\">보안 및 개인정보 보호</string>\n    <string name=\"lock_always\">항상</string>\n    <string name=\"lock_never\">끄기</string>\n    <string name=\"lock_when_idle\">자동 잠금</string>\n    <string name=\"hide_notification_content\">알림 내용 숨기기</string>\n    <string name=\"pref_remove_exclude_categories\">제외된 카테고리</string>\n    <string name=\"rotation_reverse_portrait\">세로 (거꾸로 보기)</string>\n    <string name=\"connected_to_wifi\">Wi-Fi 에서만</string>\n    <string name=\"on\">활성화</string>\n    <string name=\"updating_library\">서재 업데이트 중</string>\n    <string name=\"pref_landscape_zoom\">넓은 이미지로 자동 확대</string>\n    <string name=\"pref_category_reading\">읽기</string>\n    <string name=\"pref_lowest\">매우 낮음</string>\n    <string name=\"pref_show_reading_mode\">읽기 모드 표시</string>\n    <string name=\"pref_high\">높음</string>\n    <string name=\"pref_hide_threshold\">스크롤 시 메뉴 숨기기 민감도</string>\n    <string name=\"pref_low\">낮음</string>\n    <string name=\"pref_reader_actions\">조작</string>\n    <string name=\"action_display_language_badge\">언어</string>\n    <string name=\"pref_show_reading_mode_summary\">뷰어가 켜질 때 현재 읽기 모드를 표시합니다</string>\n    <string name=\"pref_show_navigation_mode\">탭 영역 오버레이 표시</string>\n    <string name=\"pref_show_navigation_mode_summary\">뷰어가 열렸을 때 간략히 표시</string>\n    <string name=\"pref_category_display\">디스플레이</string>\n    <string name=\"pref_skip_filtered_chapters\">필터링된 회차 건너뛰기</string>\n    <string name=\"pref_highest\">매우 높음</string>\n    <string name=\"channel_ext_updates\">확장 앱 업데이트</string>\n    <string name=\"set_chapter_settings_as_default\">기본값으로 설정</string>\n    <string name=\"pref_manage_notifications\">알림 설정</string>\n    <string name=\"also_set_chapter_settings_for_library\">서재의 모든 항목에 적용</string>\n    <string name=\"channel_app_updates\">앱 업데이트</string>\n    <string name=\"channel_progress\">진행 상황</string>\n    <string name=\"channel_errors\">오류</string>\n    <string name=\"database_clean\">지울 것이 없습니다</string>\n    <string name=\"learn_more\">터치하여 자세히 알아보기</string>\n    <string name=\"chapter_settings_updated\">기본 회차 설정을 업데이트 했습니다</string>\n    <string name=\"channel_new_chapters\">회차 업데이트</string>\n    <string name=\"include\">포함: %s</string>\n    <string name=\"label_background_activity\">백그라운드 활동</string>\n    <string name=\"pref_update_only_completely_read\">안 읽은 회차가 있을 때 항목 건너뛰기</string>\n    <string name=\"categorized_display_settings\">카테고리 별 정렬 설정</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizuku를 확장 앱 인스톨러로 사용하려면 Shizuku를 먼저 설치해 주세요.</string>\n    <string name=\"ext_update_all\">전부 업데이트</string>\n    <string name=\"invalid_backup_file_missing_manga\">백업에 항목이 포함되어 있지 않습니다.</string>\n    <string name=\"pref_dump_crash_logs_summary\">개발자와 공유할 수 있는 오류 로그 파일을 생성합니다</string>\n    <string name=\"privacy_policy\">개인정보 보호 정책</string>\n    <string name=\"share_page_info\">%1$s: %2$s, %3$d페이지</string>\n    <string name=\"clear_history_confirmation\">계속하시겠습니까? 모든 기록이 삭제됩니다.</string>\n    <string name=\"disabled_nav\">비활성화</string>\n    <string name=\"backup_restore_missing_sources\">없어진 소스:</string>\n    <string name=\"backup_restore_missing_trackers\">로그인 되지않은 트래커:</string>\n    <string name=\"pref_auto_clear_chapter_cache\">앱 실행 시 회차 캐시 삭제</string>\n    <string name=\"clear_database_source_item_count\">서재에 없는 항목이 데이터베이스에 %1$d개 있습니다</string>\n    <string name=\"about_dont_kill_my_app\">일부 제조사는 백그라운드 서비스를 종료하는 추가적인 제한 사항이 있습니다. 자세한 사항은 웹사이트를 참조하세요.</string>\n    <string name=\"pref_tablet_ui_mode\">태블릿 UI</string>\n    <string name=\"tabs_header\">탭</string>\n    <string name=\"pinned_sources\">핀 설정됨</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\"를 전체 검색합니다</string>\n    <string name=\"local_source_help_guide\">로컬 저장소 사용법</string>\n    <string name=\"no_pinned_sources\">핀 설정된 소스가 없습니다</string>\n    <string name=\"local_invalid_format\">잘못된 챕터형식</string>\n    <string name=\"unknown_status\">알 수 없는 상태</string>\n    <string name=\"on_hiatus\">휴재</string>\n    <string name=\"manga_info_expand\">상세정보 표시</string>\n    <string name=\"manga_info_collapse\">상세정보 숨김</string>\n    <string name=\"clipboard_copy_error\">클립보드로 복사에 실패하였습니다</string>\n    <string name=\"add_tracking\">트래커 추가</string>\n    <string name=\"paused\">일시정지</string>\n    <string name=\"myanimelist_relogin\">MAL에 다시 로그인해 주세요</string>\n    <string name=\"loader_not_implemented_error\">소스를 찾을 수 없습니다</string>\n    <string name=\"page_list_empty_error\">페이지를 찾을 수 없습니다</string>\n    <string name=\"pref_clear_history\">내역 삭제</string>\n    <string name=\"clear_history_completed\">기록이 삭제되었습니다</string>\n    <string name=\"download_insufficient_space\">저장 공간이 부족하여 회차를 다운로드 할 수 없습니다</string>\n    <string name=\"download_queue_size_warning\">경고: 대량 다운로드는 원본 속도에 영향을 미치거나 %s을 차단할 수 있습니다. 탭하여 자세히 알아보기.</string>\n    <string name=\"notification_size_warning\">대규모 업데이트는 소스에 피해를 입히고 업데이트가 느려지고 배터리 사용량이 증가할 수 있습니다. 탭하여 자세히 알아보기.</string>\n    <string name=\"notification_chapters_single\">%1$s화</string>\n    <string name=\"notification_update_error\">%1$d개의 업데이트가 실패했습니다</string>\n    <string name=\"library_errors_help\">서재 업데이트 오류를 해결하려면 %1$s를 참조하세요</string>\n    <string name=\"skipped_reason_completed\">완결된 만화를 건너 뛰었습니다</string>\n    <string name=\"skipped_reason_not_started\">읽지 않은 만화를 건너 뛰었습니다</string>\n    <string name=\"update_check_eol\">이 안드로이드 버전은 더이상 지원되지 않습니다</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare를 통과하지 못했습니다</string>\n    <string name=\"information_webview_required\">Mihon 앱의 기능을 사용하려면 WebView가 필요합니다</string>\n    <string name=\"information_webview_outdated\">호환성을 위해 WebView 어플리케이션을 업데이트 해 주세요</string>\n    <string name=\"pref_navigate_pan\">넓은 이미지 이동</string>\n    <string name=\"obsolete_extension_message\">이 확장 프로그램은 더 이상 사용할 수 없습니다. 제대로 작동하지 않을 수 있으며 앱에 문제가 발생할 수 있습니다. 제거하는 것이 좋습니다.</string>\n    <string name=\"ext_install_service_notif\">확장 앱 설치 중…</string>\n    <string name=\"ext_installer_legacy\">레거시</string>\n    <string name=\"action_track\">트래킹</string>\n    <string name=\"pref_refresh_library_covers\">서재 표지 새로고침</string>\n    <string name=\"pref_dump_crash_logs\">오류 로그 공유</string>\n    <string name=\"chapter_not_found\">회차를 찾을 수 없습니다</string>\n    <string name=\"error_no_match\">결과가 없습니다</string>\n    <string name=\"ext_nsfw_warning\">이 확장 앱의 소스는 성인 컨텐츠가 포함될 수 있습니다</string>\n    <string name=\"action_filter_tracked\">트래커 사용</string>\n    <string name=\"action_start\">시작</string>\n    <string name=\"action_start_downloading_now\">지금 다운로드 시작</string>\n    <string name=\"ext_installer_pref\">인스톨러</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku가 실행 중이 아닙니다</string>\n    <string name=\"manga_from_library\">서재에서</string>\n    <string name=\"downloaded_chapters\">다운로드된 회차</string>\n    <string name=\"publishing_finished\">완결됨</string>\n    <string name=\"unread\">읽지 않음</string>\n    <string name=\"cancelled\">취소됨</string>\n    <string name=\"no_chapters_error\">검색된 회차가 없습니다</string>\n    <string name=\"source_unsupported\">지원되지 않는 소스입니다</string>\n    <string name=\"spen_previous_page\">이전 페이지</string>\n    <string name=\"action_show_manga\">항목 표시</string>\n    <string name=\"action_desc\">내림차순</string>\n    <string name=\"theme_monet\">다이내믹</string>\n    <string name=\"action_display_cover_only_grid\">표지만 있는 격자</string>\n    <string name=\"action_newest\">최신 순</string>\n    <string name=\"pref_category_theme\">테마</string>\n    <string name=\"theme_midnightdusk\">황혼</string>\n    <string name=\"ext_obsolete\">지원 종료</string>\n    <string name=\"no_results_found\">검색 결과가 없습니다</string>\n    <string name=\"pref_dual_page_invert_summary\">넓은 페이지 분할 시 배치가 읽는 방향과 다를 경우</string>\n    <string name=\"ext_nsfw_short\">성인 컨텐츠</string>\n    <string name=\"action_display_show_tabs\">카테고리 탭 보이기</string>\n    <string name=\"action_sort_chapter_fetch_date\">챕터를 가져온 날짜순</string>\n    <string name=\"action_sort_count\">전체 항목 개수순</string>\n    <string name=\"action_webview_back\">뒤로</string>\n    <string name=\"battery_optimization_disabled\">배터리 최적화가 이미 꺼져 있습니다</string>\n    <string name=\"action_order_by_chapter_number\">회차 번호 순</string>\n    <string name=\"action_move_to_top\">맨 위로 이동</string>\n    <string name=\"action_order_by_upload_date\">업로드 날짜 순</string>\n    <string name=\"action_move_to_bottom\">맨 아래로 이동</string>\n    <string name=\"action_asc\">오름차순</string>\n    <string name=\"action_oldest\">오래된 순</string>\n    <string name=\"theme_tealturquoise\">옥색</string>\n    <string name=\"theme_strawberrydaiquiri\">딸기 칵테일</string>\n    <string name=\"extension_api_error\">사용 가능한 확장 앱 가져오기 실패</string>\n    <string name=\"exclude\">제외: %s</string>\n    <string name=\"tracking_info\">트래킹 서비스에 항목 진행 상황을 업데이트합니다. 트래킹 버튼을 이용하여 각각의 항목 별로 트래킹을 설정하세요.</string>\n    <string name=\"tracking_guide\">트래커 가이드</string>\n    <string name=\"enhanced_services\">향상된 트래킹 서비스</string>\n    <string name=\"pref_download_new_categories_details\">카테고리가 다운로드에서 제외된 경우 다른 카테고리에 포함되어 있어도 다운로드 되지 않습니다.</string>\n    <string name=\"enhanced_tracking_info\">특정 소스에 대해 향상된 기능을 제공합니다. 서재에 항목이 추가될 시 자동으로 트래킹 됩니다.</string>\n    <string name=\"backup_restore_content_full\">복구 완료 후 없어진 소스를 다시 설치하고 트래킹 서비스에 로그인 해야 합니다.</string>\n    <string name=\"backup_info\">백업 파일은 복사하여 다른 장소에 나눠 보관하세요. 백업 파일에는 비밀번호 등의 민감한 정보가 포함될 수 있습니다. 백업 파일 공유시 주의하세요.</string>\n    <string name=\"pref_disable_battery_optimization_summary\">백그라운드 서재 업데이트와 라이브러리 업데이트를 도울 수 있습니다</string>\n    <string name=\"pref_verbose_logging\">자세한 로그</string>\n    <string name=\"pref_verbose_logging_summary\">자세한 로그를 시스템 로그에 기록 (성능이 하락할 수 있습니다)</string>\n    <string name=\"date\">날짜</string>\n    <string name=\"local_filter_order_by\">정렬</string>\n    <string name=\"track_started_reading_date\">읽기 시작한 날짜</string>\n    <string name=\"track_finished_reading_date\">다 읽은 날짜</string>\n    <string name=\"skipped_reason_not_caught_up\">읽지 않은 회차가 있는 만화를 건너 뛰었습니다</string>\n    <string name=\"information_empty_category_dialog\">등록된 카테고리가 없습니다.</string>\n    <string name=\"pref_create_folder_per_manga_summary\">항목 제목에 따라 폴더 생성</string>\n    <string name=\"migration_help_guide\">소스 이전 설명서</string>\n    <string name=\"migration_selection_prompt\">원본 소스를 선택하세요</string>\n    <string name=\"action_display_local_badge\">로컬 소스</string>\n    <string name=\"action_display_show_number_of_items\">항목 수 보이기</string>\n    <string name=\"action_disable\">끄기</string>\n    <string name=\"action_pin\">고정</string>\n    <string name=\"action_unpin\">고정 해제</string>\n    <string name=\"action_cancel_all\">모두 취소</string>\n    <string name=\"cancel_all_for_series\">이 만화의 항목을 모두 취소</string>\n    <string name=\"action_webview_forward\">앞으로</string>\n    <string name=\"pref_create_folder_per_manga\">각각의 폴더에 페이지 저장</string>\n    <string name=\"pref_update_only_started\">읽지 않은 항목 건너뛰기</string>\n    <string name=\"action_move_to_top_all_for_series\">이 시리즈를 맨 위로 이동</string>\n    <string name=\"action_webview_refresh\">새로고침</string>\n    <string name=\"theme_greenapple\">청사과</string>\n    <string name=\"theme_tako\">문어</string>\n    <string name=\"theme_yinyang\">음양</string>\n    <string name=\"theme_yotsuba\">요츠바</string>\n    <string name=\"pref_category_nsfw_content\">성인 콘텐츠 소스</string>\n    <string name=\"pref_show_nsfw_source\">소스 및 확장 기능 목록에 보이기</string>\n    <string name=\"parental_controls_info\">이 옵션을 끄더라도 비공식 또는 분류가 잘못된 확장 기능으로 인하여 성인 컨텐츠가 표시될 수 있습니다.</string>\n    <string name=\"action_show_errors\">터치하여 자세히 보기</string>\n    <string name=\"update_72hour\">3일</string>\n    <string name=\"restrictions\">제한: %s</string>\n    <string name=\"pref_library_update_categories_details\">카테고리가 업데이트에서 제외된 경우 다른 카테고리에 포함되어 있어도 업데이트 되지 않습니다.</string>\n    <string name=\"ext_updates_pending\">업데이트 대기 중</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">서재 업데이트 시 새로운 표지와 설명 확인</string>\n    <string name=\"notification_chapters_single_and_more\">%1$s화와 그 외 %2$d화</string>\n    <string name=\"notification_chapters_multiple\">%1$s화</string>\n    <string name=\"file_picker_error\">파일 선택 어플리케이션이 없습니다</string>\n    <string name=\"empty_backup_error\">백업할 서재 항목이 없습니다</string>\n    <string name=\"update_check_open\">GitHub에서 열기</string>\n    <string name=\"error_saving_picture\">이미지 저장 오류</string>\n    <string name=\"source_empty_screen\">출처를 찾을 수 없습니다</string>\n    <string name=\"source_filter_empty_screen\">설치된 소스를 찾을 수 없습니다</string>\n    <string name=\"action_sort_last_manga_update\">마지막으로 업데이트한 날짜순</string>\n    <string name=\"action_sort_unread_count\">읽지 않은 항목 개수순</string>\n    <string name=\"action_close\">닫기</string>\n    <string name=\"pref_clear_webview_data\">WebView 데이터 지우기</string>\n    <string name=\"webview_data_deleted\">WebView 데이터 삭제됨</string>\n    <string name=\"split_tall_images_summary\">리더 성능 향상</string>\n    <string name=\"ext_info_version\">버전</string>\n    <string name=\"ext_info_language\">언어</string>\n    <string name=\"reading_list\">읽을 목록</string>\n    <string name=\"wish_list\">위시리스트</string>\n    <string name=\"pref_reset_viewer_flags_summary\">모든 시리즈의 읽기 모드와 화면 방향 초기화</string>\n    <string name=\"pref_app_language\">앱 언어</string>\n    <string name=\"not_installed\">설치되지 않음</string>\n    <string name=\"theme_lavender\">라벤더</string>\n    <string name=\"network_not_metered\">무제한 네트워크에서만</string>\n    <string name=\"delete_category_confirmation\">\\\"%s\\\" 카테고리를 삭제하시겠습니까?</string>\n    <string name=\"delete_category\">카테고리 삭제</string>\n    <string name=\"internal_error\">내부 오류: 더 자세한 정보를 보고 싶으면 충돌 로그를 확인하세요</string>\n    <string name=\"description_placeholder\">요약 없음</string>\n    <string name=\"download_notifier_split_page_path_not_found\">페이지 %d의 파일 경로를 찾을 수 없습니다</string>\n    <string name=\"unfinished_list\">미완성된 목록</string>\n    <string name=\"empty_screen\">와...이거 좀 어색하네</string>\n    <string name=\"custom_cover\">맞춤 표지</string>\n    <string name=\"ext_info_age_rating\">연령 등급</string>\n    <string name=\"action_remove_everything\">모두 제거</string>\n    <string name=\"pref_reset_viewer_flags_success\">모든 뷰어 설정을 초기화했습니다</string>\n    <string name=\"pref_user_agent_string\">기본 사용자 에이전트 문자열</string>\n    <string name=\"pref_reset_user_agent_string\">기본 사용자 에이전트 문자열 초기화</string>\n    <string name=\"complete_list\">완결 목록</string>\n    <string name=\"pref_reset_viewer_flags_error\">뷰어 설정을 초기화 할 수 없습니다</string>\n    <string name=\"pref_reset_viewer_flags\">시리즈마다 뷰어 설정 초기화</string>\n    <string name=\"cant_open_last_read_chapter\">마지막 회차를 열 수 없습니다</string>\n    <string name=\"appwidget_updates_description\">최근에 업데이트된 항목 보기</string>\n    <string name=\"on_hold_list\">보류 목록</string>\n    <string name=\"download_notifier_split_page_not_found\">분리 중 페이지 %d을 찾을 수 없습니다</string>\n    <string name=\"appwidget_unavailable_locked\">앱 잠금 사용 중에는 위젯을 이용할 수 없습니다</string>\n    <string name=\"theme_tidalwave\">파도</string>\n    <string name=\"update_already_running\">업데이트가 이미 실행 중입니다</string>\n    <string name=\"error_user_agent_string_blank\">사용자 에이전트 문자열은 비워 둘 수 없습니다</string>\n    <string name=\"download_ahead\">미리 다운로드</string>\n    <string name=\"multi_lang\">다언어</string>\n    <string name=\"remove_manga\">서재에서 \\\"%s\\\"을(를) 제거하려고 합니다</string>\n    <string name=\"missing_storage_permission\">저장공간 사용 권한이 없음</string>\n    <string name=\"auto_download_while_reading\">읽을 때 자동 다운로드</string>\n    <string name=\"updates_last_update_info\">마지막 서재 업데이트: %s</string>\n    <string name=\"download_ahead_info\">현재 회차 + 다음 회차가 이미 다운로드된 경우에만 작동됩니다.</string>\n    <string name=\"popular\">인기</string>\n    <string name=\"are_you_sure\">정말로 실행합니까?</string>\n    <string name=\"skipped_reason_not_always_update\">만화에 업데이트가 필요하지 않음으로 건너뜀</string>\n    <string name=\"action_search_hint\">검색…</string>\n    <string name=\"pref_library_summary\">카테고리, 전역 업데이트, 회차 스와이프</string>\n    <string name=\"pref_reader_summary\">읽기 모드, 디스플레이, 탐색</string>\n    <string name=\"pref_tracking_summary\">단방향 진행 동기화, 향상된 동기화</string>\n    <string name=\"pref_browse_summary\">소스, 확장 기능, 전체 검색</string>\n    <string name=\"pref_backup_summary\">수동 및 자동 백업</string>\n    <string name=\"pref_security_summary\">앱 잠금, 화면 보안</string>\n    <string name=\"pref_advanced_summary\">오류 로그 덤프, 배터리 최적화</string>\n    <string name=\"pref_appearance_summary\">테마, 날짜 및 시간 형식</string>\n    <string name=\"pref_downloads_summary\">자동 다운로드, 미리 다운로드</string>\n    <string name=\"crash_screen_title\">앗!</string>\n    <string name=\"crash_screen_restart_application\">애플리케이션 재시작</string>\n    <string name=\"crash_screen_description\">%s에 예기치 않은 오류가 발생했습니다. 충돌 로그를 공식 디스코드 채널에 공유하는 것을 추천합니다.</string>\n    <string name=\"unknown_title\">알 수 없는 제목</string>\n    <string name=\"invalid_location\">잘못된 위치: %s</string>\n    <string name=\"error_user_agent_string_invalid\">잘못된 사용자 에이전트 문자열</string>\n    <string name=\"updates_last_update_info_just_now\">방금</string>\n    <string name=\"download_notifier_cache_renewal\">다운로드 확인</string>\n    <string name=\"action_open_random_manga\">무작위 항목 열기</string>\n    <string name=\"information_no_entries_found\">이 카테고리에 항목이 없습니다</string>\n    <string name=\"fdroid_warning\">F-Droid 빌드는 공식적으로 지원되지 않습니다.\n\\n자세히 알아보려면 탭하세요.</string>\n    <string name=\"action_display_show_continue_reading_button\">계속 읽기 버튼</string>\n    <string name=\"track_remove_finish_date_conf_text\">%s에서 이전에 선택한 완료 날짜가 제거됩니다</string>\n    <string name=\"pref_invalidate_download_cache\">다운로드 인덱스 다시 설정</string>\n    <string name=\"track_remove_date_conf_title\">날짜를 제거 하시겠습니까?</string>\n    <string name=\"track_remove_start_date_conf_text\">%s에서 이전에 선택한 시작 날짜가 제거됩니다</string>\n    <string name=\"pref_invalidate_download_cache_summary\">앱이 다운로드한 회차를 다시 확인하도록 강제</string>\n    <string name=\"label_completed_titles\">완료된 항목</string>\n    <string name=\"label_total_chapters\">전체</string>\n    <string name=\"label_titles_in_global_update\">전역 업데이트 대상</string>\n    <string name=\"label_used\">사용됨</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"minute_short\">%d분</string>\n    <string name=\"seconds_short\">%d초</string>\n    <string name=\"label_stats\">통계 정보</string>\n    <string name=\"label_started\">시작됨</string>\n    <string name=\"label_local\">로컬</string>\n    <string name=\"label_downloaded\">다운로드함</string>\n    <string name=\"label_overview_section\">개요</string>\n    <string name=\"label_read_duration\">읽은 시간</string>\n    <string name=\"label_titles_section\">항목</string>\n    <string name=\"label_tracker_section\">동기화</string>\n    <string name=\"label_tracked_titles\">동기화된 항목</string>\n    <string name=\"label_read_chapters\">읽음</string>\n    <string name=\"label_mean_score\">평균 점수</string>\n    <string name=\"day_short\">%d일</string>\n    <string name=\"hour_short\">%d시간</string>\n    <string name=\"action_not_now\">나중에</string>\n    <string name=\"pref_library_update_show_tab_badge\">업데이트 아이콘에 읽지 않은 수 표시</string>\n    <string name=\"information_no_manga_category\">카테고리가 비어 있습니다</string>\n    <string name=\"copied_to_clipboard_plain\">클립보드에 복사됨</string>\n    <string name=\"enhanced_services_not_installed\">사용 가능하지만 소스가 설치되지 않음: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">중복 회차 건너뛰기</string>\n    <string name=\"track_error\">%1$s 오류: %2$s</string>\n    <string name=\"information_required_plain\">*필수</string>\n    <string name=\"action_copy_to_clipboard\">클립보드에 복사</string>\n    <string name=\"pref_hide_in_library_items\">이미 서재에 있는 항목 숨기기</string>\n    <string name=\"action_update_category\">카테고리 업데이트</string>\n    <string name=\"split_tall_images\">긴 이미지 분할</string>\n    <string name=\"overlay_header\">오버레이</string>\n    <string name=\"pref_page_rotate\">화면에 맞게 넓은 페이지 회전</string>\n    <string name=\"pref_page_rotate_invert\">회전된 넓은 페이지의 회전 방향</string>\n    <string name=\"pref_debug_info\">디버그 정보</string>\n    <string name=\"pref_chapter_swipe_start\">왼쪽으로 스와이프하는 챕터</string>\n    <string name=\"pref_chapter_swipe_end\">오른쪽으로 스와이프하는 챕터</string>\n    <string name=\"pref_double_tap_zoom\">두 번 탭하여 줌</string>\n    <string name=\"action_set_interval\">간격 설정</string>\n    <string name=\"action_filter_interval_custom\">사용자 설정 업데이트 빈도</string>\n    <string name=\"intervals_header\">간격</string>\n    <string name=\"delete_downloaded\">다운로드 삭제</string>\n    <string name=\"has_results\">결과가 있는 것만 보기</string>\n    <string name=\"track_delete_text\">이렇게 하면 로컬에서 동기화가 제거됩니다.</string>\n    <string name=\"track_delete_remote_text\">%s에서도 제거</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"skipped_reason_not_in_release_period\">오늘 연재가 예상되지 않았기 때문에 건너뛰었습니다</string>\n    <string name=\"track_delete_title\">%s 동기화를 삭제 하시겠습니까?</string>\n    <string name=\"pref_update_only_in_release_period\">다음 연재 기간 예측</string>\n    <string name=\"download_cache_invalidated\">다운로드 인덱스 재생성</string>\n    <string name=\"action_sort_next_updated\">다음 업데이트 예정</string>\n    <string name=\"information_cloudflare_help\">탭하여 Cloudflare에 관한 도움말 보기</string>\n    <string name=\"unlock_app_title\">%s를 잠금해제</string>\n    <string name=\"manga_display_modified_interval_title\">항상 업데이트 하도록 설정</string>\n    <string name=\"syncing_library\">서재를 동기화합니다</string>\n    <string name=\"create_backup_file_error\">백업 파일을 생성할 수 없습니다</string>\n    <string name=\"library_sync_complete\">서재가 동기화되었습니다</string>\n    <string name=\"action_move_to_bottom_all_for_series\">이 시리즈를 맨 아래로 이동</string>\n    <string name=\"exception_offline\">인터넷에 연결되지 않음</string>\n    <string name=\"manga_display_interval_title\">항상 평가하기</string>\n    <string name=\"track_activity_name\">트래킹 서비스 로그인</string>\n    <string name=\"exception_http\">HTTP %d, WebView의 웹 사이트를 확인해 주세요</string>\n    <string name=\"exception_unknown_host\">%s에 연결할 수 없습니다</string>\n    <string name=\"notification_updating_progress\">서재 업데이트 중...(%s)</string>\n    <string name=\"source_settings\">소스 설정</string>\n    <string name=\"app_settings\">앱 설정</string>\n    <string name=\"onboarding_permission_install_apps_description\">확장 앱 설치를 위해 필요합니다.</string>\n    <string name=\"onboarding_permission_notifications_description\">서재 업데이트 등의 알림을 보냅니다.</string>\n    <string name=\"invalid_backup_file_error\">오류 전체 보기:</string>\n    <string name=\"private_settings\">민감한 설정 포함(예시: 트래커 로그인 토큰)</string>\n    <string name=\"manga_interval_expected_update\">새 회차는 약 %1$s 후에 출시될 것으로 예상되며, 매 %2$s마다 확인됩니다.</string>\n    <string name=\"no_scanlators_found\">스캔레이터가 발견되지 않았습니다</string>\n    <string name=\"onboarding_permission_notifications\">알림 권한</string>\n    <string name=\"exclude_scanlators\">스캔레이터 제외</string>\n    <string name=\"onboarding_action_next\">다음</string>\n    <string name=\"onboarding_storage_action_select\">폴더를 선택하기</string>\n    <string name=\"onboarding_action_skip\">건너뛰기</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">시간이 많이 걸리는 서재 업데이트, 다운로드 및 백업 복원이 중단되지 않도록 합니다.</string>\n    <string name=\"pref_library_update_smart_update\">스마트 업데이트</string>\n    <string name=\"action_add_repo\">저장소 추가</string>\n    <string name=\"invalid_repo_name\">잘못된 저장소 URL</string>\n    <string name=\"delete_repo_confirmation\">\\\"%s\\\" 저장소를 삭제하고 싶습니까?</string>\n    <string name=\"onboarding_storage_help_info\">이전 버전에서 업데이트하는데 무엇을 선택해야 할지 모르시나요? 자세한 내용은 저장공간 가이드를 참조하세요.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">백그라운드 배터리 사용</string>\n    <string name=\"onboarding_permission_action_grant\">허용</string>\n    <string name=\"onboarding_guides_new_user\">%s가 처음입니까? 시작 가이드를 확인하는 것을 추천합니다.</string>\n    <string name=\"onboarding_storage_help_action\">저장공간 가이드</string>\n    <string name=\"label_add_repo_input\">저장소 URL</string>\n    <string name=\"ext_permission_install_apps_warning\">확장 앱을 설치하려면 권한이 필요합니다. 부가하려면 여기를 탭하세요.</string>\n    <string name=\"information_empty_repos\">저장소를 추가하지 않았습니다.</string>\n    <string name=\"error_repo_exists\">이 저장소는 이미 존재합니다!</string>\n    <string name=\"pref_storage_location\">저장공간 위치</string>\n    <string name=\"onboarding_permission_install_apps\">앱 다운로드 권한</string>\n    <string name=\"label_extension_repos\">확장 앱 저장소</string>\n    <string name=\"action_delete_repo\">저장소 제거</string>\n    <string name=\"ext_revoke_trust\">신뢰한 알수없는 확장 앱 신뢰 취소</string>\n    <string name=\"pref_storage_location_info\">자동 백업, 챕터 다운로드 및 로컬 소스에 사용됩니다.</string>\n    <string name=\"manga_interval_custom_amount\">사용자 지정 업데이트 빈도:</string>\n    <string name=\"action_add_repo_message\">%s에 추가적으로 저장소를 추가합니다. \\\"index.min.json\\\"으로 끝나는 URL이어야 합니다.</string>\n    <string name=\"action_open_repo\">소스 저장소 열기</string>\n    <string name=\"manga_interval_expected_update_soon\">곧 출시</string>\n    <string name=\"onboarding_description\">먼저 몇 가지 사항을 설정해 보겠습니다. 나중에 언제든지 설정에서 변경할 수도 있습니다.</string>\n    <string name=\"onboarding_action_finish\">시작하기</string>\n    <string name=\"onboarding_storage_info\">%1$s가 다운로드, 백업 등을 할 폴더를 선택합니다.\n\\n\n\\n앱 전용폴더를 추천합니다.\n\\n\n\\n선택된 폴더: %2$s</string>\n    <string name=\"onboarding_guides_returning_user\">%s를 재설치 하시겠습니까?</string>\n    <string name=\"scanlator\">스캔레이터</string>\n    <string name=\"file_null_uri_error\">선택된 파일 없음</string>\n    <string name=\"action_apply\">적용</string>\n    <string name=\"action_revert_to_default\">기본값으로 되돌리기</string>\n    <string name=\"action_create\">생성</string>\n    <string name=\"pref_storage_usage\">저장공간 사용량</string>\n    <string name=\"selected\">선택됨</string>\n    <string name=\"not_selected\">선택되지 않음</string>\n    <string name=\"action_menu_overflow_description\">기타 옵션</string>\n    <string name=\"action_bar_up_description\">위로 이동</string>\n    <string name=\"action_sort_tracker_score\">트래커 점수</string>\n    <string name=\"pref_onboarding_guide\">초보자 가이드</string>\n    <string name=\"onboarding_heading\">환영합니다!</string>\n    <string name=\"onboarding_storage_selection_required\">폴더를 선택해야 합니다</string>\n    <string name=\"no_location_set\">저장공간 위치를 설정하지 않았습니다</string>\n    <string name=\"pref_relative_format\">상대적인 타임스탬프</string>\n    <string name=\"pref_relative_format_summary\">\\\"%2$s\\\" 대신 \\\"%1$s\\\"를 사용</string>\n    <string name=\"label_data_storage\">데이터와 저장공간</string>\n    <string name=\"pref_flash_page\">페이지 전환시 플래시 켜기</string>\n    <string name=\"pref_flash_page_summ\">E잉크 디스플레이의 잔상 감소</string>\n    <string name=\"last_auto_backup_info\">마지막 자동 백업: %s</string>\n    <string name=\"relative_time_span_never\">없음</string>\n    <string name=\"available_disk_space_info\">사용가능: %1$s / 전체: %2$s</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"label_upcoming\">곧 공개</string>\n    <string name=\"label_donate\">기부</string>\n    <string name=\"label_auto\">자동</string>\n    <string name=\"action_sort_random\">무작위</string>\n    <string name=\"action_copy_link\">링크 복사</string>\n    <string name=\"action_display_unread_badge\">읽지 않은 챕터</string>\n    <string name=\"action_notes\">노트</string>\n    <string name=\"action_edit_notes\">노트 편집</string>\n    <string name=\"action_add_anyway\">추가</string>\n    <string name=\"onboarding_permission_crashlytics\">크래시 로그 전송</string>\n    <string name=\"onboarding_permission_crashlytics_description\">개발자에게 익명화된 로그를 전송합니다.</string>\n    <string name=\"onboarding_permission_analytics\">분석 허가</string>\n    <string name=\"onboarding_permission_analytics_description\">익명화된 사용 데이터를 전송하여 앱 기능 개선에 기여합니다.</string>\n    <string name=\"theme_catppuccin\">캣푸친(Catppuccin)</string>\n    <string name=\"theme_monochrome\">모노크롬</string>\n    <string name=\"pref_display_images_description\">만화 설명에 이미지를 렌더링합니다</string>\n    <string name=\"pref_security\">보안</string>\n    <string name=\"pref_firebase\">분석 및 크래시 로그</string>\n    <string name=\"firebase_summary\">크래시 로그와 분석 데이터를 전송하면, 문제를 식별 및 해결하며, 성능을 개선하고, 향후 업데이트를 사용자 요구사항에 더 적합하게 만들 수 있습니다</string>\n    <string name=\"pref_behavior\">행동</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">중복된 읽은 챕터를 읽은 것으로 표시</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">챕터를 읽은 후</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">새 챕터를 가져온 후</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">누락된 챕터 표시 숨기기</string>\n    <string name=\"ext_remove\">제거</string>\n    <string name=\"ext_confirm_remove\">확장 앱을 제거하시겠습니까?</string>\n    <string name=\"remove_private_extension_message\">정말로 \\\"%s\\\" 확장 앱을 제거하시겠습니까?</string>\n    <string name=\"add_repo_confirmation\">\\\"%s\\\" 리포지토리를 추가하시겠습니까?</string>\n    <string name=\"action_replace_repo\">교체</string>\n    <string name=\"action_replace_repo_title\">서명 키 지문이 이미 존재합니다</string>\n    <string name=\"action_replace_repo_message\">%1$s 리포지토리는 %2$s와 같은 서명 키 지문을 가지고 있습니다.\\n예상된 경우라면 %2$s가 대체되며, 그렇지 않을 경우 리포지토리 관리자에게 연락하십시오.</string>\n    <string name=\"pref_flash_duration\">플래시 지속시간</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">플래시 간격</string>\n    <string name=\"pref_hardware_bitmap_threshold\">커스텀 하드웨어 비트맵 임계값</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">기본값 (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">리더가 빈 이미지를 불러올 경우 임계값을 점진적으로 줄입니다.\\n선택: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">긴 스트립 리더에 레거시 디코더 사용</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">성능에 영향을 미칩니다. 비트맵 임계값을 줄여도 빈 이미지 문제가 해결되지 않을 경우에만 활성화하십시오</string>\n    <string name=\"pref_display_profile\">커스텀 디스플레이 프로필</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">줌아웃 비활성화</string>\n    <string name=\"storage_failed_to_create_download_directory\">다운로드 경로 생성 실패</string>\n    <string name=\"storage_failed_to_create_directory\">경로 생성 실패: %s</string>\n    <string name=\"pref_download_new_unread_chapters_only\">중복된 읽은 장 다운로드 스킵</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">읽음으로 표시될 때 진행상황 업데이트</string>\n    <string name=\"invalid_backup_file_json\">JSON 백업은 지원되지 않습니다</string>\n    <string name=\"invalid_backup_file_unknown\">백업 파일 파손</string>\n    <string name=\"extensionRepo_settings\">확장 앱 리포지토리</string>\n    <string name=\"non_library_settings\">모든 읽은 항목</string>\n    <string name=\"export\">내보내기</string>\n    <string name=\"library_list\">라이브러리 목록</string>\n    <string name=\"library_exported\">라이브러리 내보냄</string>\n    <string name=\"clear_database_text\">데이터베이스에서 항목을 삭제하려 합니다</string>\n    <string name=\"clear_database_history_warning\">읽은 챕터와 라이브러리 항목에 없는 진행상황이 삭제됩니다</string>\n    <string name=\"clear_db_exclude_read\">읽은 챕터가 있는 항목을 유지</string>\n    <string name=\"pref_update_library_manga_titles\">라이브러리 만화 타이틀을 원본과 일치하도록 업데이트</string>\n    <string name=\"pref_update_library_manga_titles_summary\">경고: 만화의 이름이 변경될 경우 다운로드 대기열에서 (존재할 경우) 제거됩니다.</string>\n    <string name=\"pref_incognito_mode_extension_summary\">확장 앱 읽기 기록 중지</string>\n    <string name=\"logging_in\">로그 기록 중…</string>\n    <string name=\"author\">저자</string>\n    <string name=\"artist\">아티스트</string>\n    <string name=\"possible_duplicates_title\">중복 가능</string>\n    <string name=\"possible_duplicates_summary\">라이브러리에 유사한 이름의 항목이 있습니다.\\n\\n이동하거나 추가할 항목을 선택하십시오.</string>\n    <string name=\"manga_interval_expected_update_null\">이 만화는 완결되었거나 예상 출시일이 없습니다.</string>\n    <string name=\"confirm_tracker_update\">트래커를 %d 챕터에 업데이트하시겠습니까?</string>\n    <string name=\"trackers_updated_summary\">트래커가 %d 챕터에 업데이트</string>\n    <string name=\"action_view_upcoming\">업데이트 예정 표시</string>\n    <string name=\"upcoming_guide\">예정일 안내</string>\n    <string name=\"upcoming_calendar_next\">다음 달</string>\n    <string name=\"upcoming_calendar_prev\">이전 달</string>\n    <string name=\"file_picker_uri_permission_unsupported\">지속적인 폴더 액세스에 실패했습니다. 앱이 예상치 못하게 동작할 수 있습니다.</string>\n    <string name=\"pref_flash_with\">플래시 대상</string>\n    <string name=\"pref_flash_style_black\">흑색</string>\n    <string name=\"pref_flash_style_white\">백색</string>\n    <string name=\"pref_flash_style_white_black\">백색 및 흑색</string>\n    <string name=\"tracked_privately\">비공개 트래킹됨</string>\n    <string name=\"action_toggle_private_on\">비공개 트래킹</string>\n    <string name=\"action_toggle_private_off\">공개 트래킹</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">선택됨</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">모두 선택</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">선택 해제</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">ASCII가 아닌 파일명 비허용</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">유니코드를 지원하지 않는 특정 저장 매체와의 호환성을 보장합니다. 이 기능을 활성화하면 원본 폴더와 만화 폴더의 이름을 수동으로 변경해야 합니다. ASCII가 아닌 문자를 해당하는 소문자 UTF-8 16진수 표현으로 대체하여 이름을 변경하십시오. 챕터 파일은 이름을 변경할 필요가 없습니다.</string>\n    <string name=\"action_webview_close_tab\">탭 닫기</string>\n    <string name=\"pref_download_concurrent_sources\">동시 소스 다운로드</string>\n    <string name=\"pref_download_concurrent_pages\">동시 페이지 다운로드</string>\n    <string name=\"pref_download_concurrent_pages_summary\">소스별 동시에 다운로드된 페이지 수</string>\n    <string name=\"notes_placeholder\">인상 깊었던 부분은…</string>\n    <string name=\"migrationConfigScreen.availableHeader\">사용 가능</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">활성화된 소스 선택</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">고정된 소스 선택</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">계속</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">마이그레이션할 데이터</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">마이그레이션 후 현재 항목 다운로드 삭제</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">추가 키워드 (선택사항)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">추가 키워드를 입력하면 검색 결과를 좁히는 데 도움이 됩니다</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">일치하지 않는 항목 숨기기</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">새로운 챕터가 없는 항목 숨기기</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">매칭된 항목에 새로운 챕터가 있을 때만 표시</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">이 옵션들은 속도가 느리고 위험할 수 있으며, 소스로부터 제한을 받을 수 있습니다</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">고급 검색 모드</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">제목을 키워드로 분석해 검색 범위를 넓힙니다</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">챕터 번호 기준 매칭</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">활성화된 경우 가장 진도가 나간 매칭을 선택합니다. 그렇지 않으면 소스 우선순위에 따라 첫 번째 매칭을 선택합니다.</string>\n    <string name=\"migrationListScreenTitle\">마이그레이션</string>\n    <string name=\"migrationListScreenTitleWithProgress\">마이그레이션 (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">복사</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">마이그레이션</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">대안을 찾을 수 없습니다</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">최신: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">알 수 없음</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">수동 검색</string>\n    <string name=\"migrationListScreen.skipActionLabel\">마이그레이션하지 않기</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">지금 마이그레이션</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">지금 복사</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">마이그레이션을 중지하시겠습니까?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">중지</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">취소</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">복사</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">마이그레이션</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">취소</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">취소</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">챕터를 찾을 수 없어 이 항목은 마이그레이션에 사용할 수 없습니다</string>\n    <string name=\"action_filter_excluded_scanlators\">스캔레이터를 제외한 필터</string>\n    <string name=\"calculating\">계산 중…</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/lt/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Vakar</item>\n        <item quantity=\"few\">Prieš %1$d dienas</item>\n        <item quantity=\"other\">Prieš %1$d dienų</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Po %1$s minutės</item>\n        <item quantity=\"few\">Po %1$s minučių</item>\n        <item quantity=\"other\">Po %1$s minučių</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategorija</item>\n        <item quantity=\"few\">%d kategorijos</item>\n        <item quantity=\"other\">%d kategorijos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Skyrius %1$s ir 1 daugiau</item>\n        <item quantity=\"few\">Skyriai %1$s ir %2$d daugiau</item>\n        <item quantity=\"other\">Skyriai %1$s ir %2$d daugiau</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d naujas skyrius</item>\n        <item quantity=\"few\">%1$d nauji skyriai</item>\n        <item quantity=\"other\">%1$d nauji skyriai</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Atlikta %1$s su %2$s klaida</item>\n        <item quantity=\"few\">Atlikta %1$s su %2$s klaidomis</item>\n        <item quantity=\"other\">Atlikta %1$s su %2$s klaidomis</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d įrašui</item>\n        <item quantity=\"few\">%d įrašams</item>\n        <item quantity=\"other\">%d įrašų</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">%d plėtinio atnaujinimas pasiekiamas</item>\n        <item quantity=\"few\">%d plėtinių atnaujinimai pasiekiami</item>\n        <item quantity=\"other\">%d plėtinių atnaujinimai pasiekiami</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s skyrius</item>\n        <item quantity=\"few\">%1$s skyriai</item>\n        <item quantity=\"other\">%1$s skyriai</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">Liko vienas</item>\n        <item quantity=\"few\">Liko %1$s</item>\n        <item quantity=\"other\">Liko %1$s</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d stebėjimo įrenginys</item>\n        <item quantity=\"few\">%d stebėjimo įrenginiai</item>\n        <item quantity=\"other\">%d stebėjimo įrenginių</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Praleidžiamas %d skyrius, arba jo nėra šaltinyje, arba jis buvo nepasirinktas</item>\n        <item quantity=\"few\">Praleidžiami %d skyriai, arba jų nėra šaltinyje, arba jie buvo nepasirinkti</item>\n        <item quantity=\"other\">Praleidžiamia %d skyrių, arba jų nėra šaltinyje, arba jie buvo nepasirinkti</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Kitas neskaitytas skyrius</item>\n        <item quantity=\"few\">Kiti %d neskaityti skyriai</item>\n        <item quantity=\"other\">Kiti %d neskaitytų skyrių</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/lt/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"action_filter\">Filtras</string>\n    <string name=\"action_menu\">Meniu</string>\n    <string name=\"action_settings\">Nustatymai</string>\n    <string name=\"history\">Istorija</string>\n    <string name=\"track\">Sekimas</string>\n    <string name=\"chapters\">Skyriai</string>\n    <string name=\"manga\">Bibliotekos įrašai</string>\n    <string name=\"categories\">Kategorijos</string>\n    <string name=\"information_empty_category\">Neturite jokių kategorijų. Paspauskite pliuso simbolį, kad sukurtumėte kategoriją jūsų bibliotekos organizavimui.</string>\n    <string name=\"information_empty_library\">Jūsų biblioteka tuščia</string>\n    <string name=\"information_no_recent_manga\">Nėra neseniai skaitytų</string>\n    <string name=\"information_no_recent\">Naujinių nėra</string>\n    <string name=\"information_no_downloads\">Atsiuntimų nėra</string>\n    <string name=\"label_help\">Pagalba</string>\n    <string name=\"label_extension_info\">Papildinių info</string>\n    <string name=\"label_extensions\">Papildiniai</string>\n    <string name=\"label_migration\">Migruoti</string>\n    <string name=\"label_backup\">Atsarginė kopija ir atkūrimas</string>\n    <string name=\"label_sources\">Šaltiniai</string>\n    <string name=\"label_recent_manga\">Istorija</string>\n    <string name=\"label_recent_updates\">Naujienos</string>\n    <string name=\"label_library\">Biblioteka</string>\n    <string name=\"label_download_queue\">Atsisiuntimų eilė</string>\n    <string name=\"label_settings\">Nustatymai</string>\n    <string name=\"label_more\">Daugiau</string>\n    <string name=\"name\">Vardas</string>\n    <string name=\"default_category_summary\">Visada klausti</string>\n    <string name=\"default_category\">Numatyta kategorija</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Tikrinti naujus viršelius ir informaciją kai biblioteka naujinama</string>\n    <string name=\"pref_library_update_refresh_metadata\">Automatiškai naujinti metaduomenis</string>\n    <string name=\"pref_update_only_non_completed\">Kai yra \\\"Perskaityta\\\" statusas</string>\n    <string name=\"restrictions\">Ribojimai: %s</string>\n    <string name=\"charging\">Kai krovimas pajungtas</string>\n    <string name=\"pref_library_update_restriction\">Automatinio naujinimo ribojimai</string>\n    <string name=\"update_weekly\">Kas savaitę</string>\n    <string name=\"update_48hour\">Kas 2 dienas</string>\n    <string name=\"update_24hour\">Kasdien</string>\n    <string name=\"update_12hour\">Kas 12 valandų</string>\n    <string name=\"update_6hour\">Kas 6 valandas</string>\n    <string name=\"update_never\">Išjungti</string>\n    <string name=\"pref_library_update_interval\">Automatiniai atnaujinimai</string>\n    <string name=\"pref_category_library_update\">Globalus naujinimas</string>\n    <string name=\"landscape\">Kraštovaizdis</string>\n    <string name=\"portrait\">Portretas</string>\n    <string name=\"pref_library_columns\">Elementai eilutėje</string>\n    <string name=\"pref_category_display\">Rodinys</string>\n    <string name=\"relative_time_today\">Šiandien</string>\n    <string name=\"parental_controls_info\">Tai nesustabdo neoficialių ar potencialiai neteisingai pažymėtų plėtinių nuo N18+ turinio rodymo programoje.</string>\n    <string name=\"pref_show_nsfw_source\">Rodyti šaltiniuose ir plėtinių sąrašuose</string>\n    <string name=\"pref_category_nsfw_content\">N18+ šaltiniai</string>\n    <string name=\"hide_notification_content\">Slėpti pranešimo turinį</string>\n    <string name=\"secure_screen_summary\">Slėpti programos turinį, kai įjungiama kita programa ir neleisti daryti ekrano nuotraukų</string>\n    <string name=\"secure_screen\">Saugus užraktas</string>\n    <string name=\"lock_never\">Niekada</string>\n    <string name=\"lock_always\">Visada</string>\n    <string name=\"lock_when_idle\">Užrakinti kai neveiksnus</string>\n    <string name=\"lock_with_biometrics\">Reikalauti atrakinimo</string>\n    <string name=\"pref_category_security\">Sauga</string>\n    <string name=\"pref_manage_notifications\">Tvarkyti pranešimus</string>\n    <string name=\"pref_date_format\">Datos formatas</string>\n    <string name=\"pref_dark_theme_pure_black\">Visiškai juodas tamsus režimas</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Jin ir Jang</string>\n    <string name=\"theme_tealturquoise\">Teal ir Turquoise</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Braškinis Daikiri</string>\n    <string name=\"theme_midnightdusk\">Vidurnakčio saulėlydis</string>\n    <string name=\"theme_greenapple\">Obuolių žalia</string>\n    <string name=\"theme_monet\">Dinamiška</string>\n    <string name=\"pref_app_theme\">Programos tema</string>\n    <string name=\"theme_dark\">Įjungta</string>\n    <string name=\"theme_light\">Išjungta</string>\n    <string name=\"theme_system\">Pagal sistemą</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"pref_category_about\">Apie</string>\n    <string name=\"pref_category_advanced\">Papildomi</string>\n    <string name=\"pref_category_tracking\">Sekimas</string>\n    <string name=\"pref_category_downloads\">Atsiuntimai</string>\n    <string name=\"pref_category_reader\">Skaityklė</string>\n    <string name=\"pref_category_library\">Biblioteka</string>\n    <string name=\"pref_category_appearance\">Išvaizda</string>\n    <string name=\"pref_category_general\">Bendriniai</string>\n    <string name=\"app_not_available\">Programa negalima</string>\n    <string name=\"loading\">Įkeliama…</string>\n    <string name=\"action_start_downloading_now\">Atsisiųsti dabar</string>\n    <string name=\"action_webview_refresh\">Naujinti</string>\n    <string name=\"action_webview_forward\">Į priekį</string>\n    <string name=\"action_webview_back\">Atgal</string>\n    <string name=\"action_restore\">Atkurti</string>\n    <string name=\"action_show_errors\">Paspausti klaidų rodymui</string>\n    <string name=\"action_open_log\">Atidaryti ataskaitą</string>\n    <string name=\"action_reset\">Įkelti iš naujo</string>\n    <string name=\"action_undo\">Anuliuoti veiksmą</string>\n    <string name=\"action_save\">Išsaugoti</string>\n    <string name=\"action_share\">Dalintis</string>\n    <string name=\"action_install\">Įdiegti</string>\n    <string name=\"action_move_to_bottom\">Kelti į apačią</string>\n    <string name=\"action_move_to_top\">Kelti į viršų</string>\n    <string name=\"action_desc\">Mažėjimo tvarka</string>\n    <string name=\"action_asc\">Didėjimo tvarka</string>\n    <string name=\"action_oldest\">Seniausi</string>\n    <string name=\"action_newest\">Naujausi</string>\n    <string name=\"action_order_by_chapter_number\">Pagal skyrių skaičių</string>\n    <string name=\"action_order_by_upload_date\">Pagal įkėlimo datą</string>\n    <string name=\"action_sort\">Rikiavimas</string>\n    <string name=\"cancel_all_for_series\">Atšaukti visus šiam kūriniui</string>\n    <string name=\"action_cancel_all\">Atšaukti visus</string>\n    <string name=\"action_cancel\">Atšaukti</string>\n    <string name=\"action_unpin\">Atsegti</string>\n    <string name=\"action_pin\">Prisegti</string>\n    <string name=\"action_disable\">Išjungti</string>\n    <string name=\"action_display_show_number_of_items\">Rodyti įrašų skaičių</string>\n    <string name=\"action_display_show_tabs\">Rodyti kategorijų korteles</string>\n    <string name=\"action_display_local_badge\">Vietinis šaltinis</string>\n    <string name=\"action_display_download_badge\">Atsisiųsti skyriai</string>\n    <string name=\"action_display_list\">Sąrašas</string>\n    <string name=\"action_display_comfortable_grid\">Patogus tinklelis</string>\n    <string name=\"action_display_grid\">Kompaktiškas tinklelis</string>\n    <string name=\"action_display\">Rodinys</string>\n    <string name=\"action_display_mode\">Rodymo režimas</string>\n    <string name=\"action_migrate\">Migruoti</string>\n    <string name=\"action_open_in_web_view\">Atverti per WebView</string>\n    <string name=\"action_open_in_browser\">Atverti naršyklėje</string>\n    <string name=\"action_resume\">Tęsti</string>\n    <string name=\"action_start\">Pradėti</string>\n    <string name=\"action_remove\">Šalinti</string>\n    <string name=\"action_retry\">Bandyti iš naujo</string>\n    <string name=\"action_next_chapter\">Sekantis skyrius</string>\n    <string name=\"action_previous_chapter\">Ankstesnis skyrius</string>\n    <string name=\"action_pause\">Pristabdyti</string>\n    <string name=\"action_view_chapters\">Rodyti skyrius</string>\n    <string name=\"action_edit_cover\">Keisti viršelį</string>\n    <string name=\"action_move_category\">Perkelti kategorijas</string>\n    <string name=\"action_rename_category\">Pervardinti kategoriją</string>\n    <string name=\"action_edit_categories\">Redaguoti kategorijas</string>\n    <string name=\"action_add_category\">Pridėti kategorija</string>\n    <string name=\"action_add\">Pridėti</string>\n    <string name=\"action_edit\">Redaguoti</string>\n    <string name=\"action_disable_all\">Išjungti visus</string>\n    <string name=\"action_enable_all\">Įjungti visus</string>\n    <string name=\"action_update_library\">Naujinti biblioteką</string>\n    <string name=\"action_delete\">Ištrinti</string>\n    <string name=\"action_remove_bookmark\">Pašalinti skyrių iš žymių</string>\n    <string name=\"action_bookmark\">Išsaugoti skyrių į žymes</string>\n    <string name=\"action_download\">Atsisiųsti</string>\n    <string name=\"action_mark_previous_as_read\">Žymėti pastarąjį, kaip skaitytą</string>\n    <string name=\"action_mark_as_unread\">Žymėti, kaip neskaitytą</string>\n    <string name=\"action_mark_as_read\">Žymėti kaip skaitytą</string>\n    <string name=\"action_select_inverse\">Atvirkščias žymėjimas</string>\n    <string name=\"action_select_all\">Žymėti visus</string>\n    <string name=\"action_global_search\">Globali paieška</string>\n    <string name=\"action_search_settings\">Paieškos nustatymai</string>\n    <string name=\"action_search\">Paieška</string>\n    <string name=\"action_sort_date_added\">Pridėjimo data</string>\n    <string name=\"action_sort_chapter_fetch_date\">Atnaujinimo data</string>\n    <string name=\"action_sort_latest_chapter\">Naujausiais skyriais</string>\n    <string name=\"action_sort_last_read\">Paskiausiai žiurėtas</string>\n    <string name=\"action_sort_total\">Skyrių skaičius</string>\n    <string name=\"action_sort_alpha\">Abėcėlės tvarka</string>\n    <string name=\"action_filter_empty\">Panaikinti filtrą</string>\n    <string name=\"action_filter_unread\">Neskaitytus</string>\n    <string name=\"action_filter_tracked\">Sekami</string>\n    <string name=\"action_filter_bookmarked\">Žymės</string>\n    <string name=\"confirm_lock_change\">Autentifikuokitės, kad patvirtintumėte pakeitimus</string>\n    <string name=\"label_default\">Numatytas</string>\n    <string name=\"categorized_display_settings\">Rūšiavimo ir vaizdavimo nustatymai kiekvienai kategorijai</string>\n    <string name=\"pref_custom_brightness\">Pasirinktinis ryškumas</string>\n    <string name=\"off\">Išjungta</string>\n    <string name=\"on\">Įjungta</string>\n    <string name=\"pref_crop_borders\">Apkarpyti kraštus</string>\n    <string name=\"pref_show_reading_mode_summary\">Trumpai parodyti dabartinį rėžimą, kai skaitiniai yra atidaryti</string>\n    <string name=\"pref_show_reading_mode\">Parodyti skaitymo rėžimą</string>\n    <string name=\"pref_show_page_number\">Parodyti puslapio numerį</string>\n    <string name=\"pref_double_tap_anim_speed\">Dvigubo paspaudimo animacijos greitis</string>\n    <string name=\"pref_page_transitions\">Puslapių perėjimų animacijos</string>\n    <string name=\"pref_cutout_short\">Parodyti turinį iškirptoje zonoje</string>\n    <string name=\"pref_dual_page_invert_summary\">Jeigu perskirtų puslapių pozicijos nesutampa su skaitymo kryptimi</string>\n    <string name=\"pref_dual_page_invert\">Apkeisti perskirtų puslapių padėtį</string>\n    <string name=\"pref_dual_page_split\">Perskirti plačius puslapius</string>\n    <string name=\"pref_show_navigation_mode_summary\">Trumpai parodyti skaitytuvą, kai atidarytas</string>\n    <string name=\"pref_fullscreen\">Pilno ekrano rėžimas</string>\n    <string name=\"ext_nsfw_warning\">Šaltiniuose gali būti N18 turinio</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"obsolete_extension_message\">Šis plėtinys nebėra prieinamas. Plėtinys gali veikti netinkamai arba sukelti problemas programėlėje. Rekomenduojama išdiegti plėtinį.</string>\n    <string name=\"untrusted_extension_message\">Šis plėtinys buvo pasirašytas nepatikimu sertifikatu ir nebuvo aktyvuotas.\n\\n\n\\nPlėtinys, su negeranoriškais ketinimais, gali perskaityti prisijungimo duomenys patalpintus Mihon arba gali paleisti kenkėjišką kodą.\n\\n\n\\nJūs priimate šias rizikas pasitikėdami sertifikatu.</string>\n    <string name=\"untrusted_extension\">Nepatikimas plėtinys</string>\n    <string name=\"ext_app_info\">Aplikacijos informacija</string>\n    <string name=\"ext_uninstall\">Šalinti</string>\n    <string name=\"ext_trust\">Patikimas</string>\n    <string name=\"ext_untrusted\">Nepatikimas</string>\n    <string name=\"ext_installed\">Įdiegtas</string>\n    <string name=\"ext_installing\">Diegiasi</string>\n    <string name=\"ext_downloading\">Siunčiasi</string>\n    <string name=\"ext_pending\">Laukiama</string>\n    <string name=\"ext_install\">Įdiegti</string>\n    <string name=\"ext_obsolete\">Pasenusi</string>\n    <string name=\"ext_update\">Atnaujinimas</string>\n    <string name=\"exclude\">Neįtraukti: %s</string>\n    <string name=\"include\">Įtraukti: %s</string>\n    <string name=\"none\">Nėra</string>\n    <string name=\"all\">Visi</string>\n    <string name=\"pref_library_update_categories_details\">Įrašai, kurie yra įtraukti į neįtraukiamas kategorijas, nebus atnaujinami, net jei yra įtraukti į įtrauktąsias kategorijas.</string>\n    <string name=\"update_check_notification_download_error\">Atsiuntimo klaida</string>\n    <string name=\"update_check_notification_update_available\">Nauja versija pasiekiama!</string>\n    <string name=\"scale_type_fit_height\">Pagal aukštį talpinimas</string>\n    <string name=\"white_background\">Balta</string>\n    <string name=\"nav_zone_right\">Dešinė</string>\n    <string name=\"left_to_right_viewer\">Iš kairės į dešinę</string>\n    <string name=\"vertical_viewer\">Vertikalus</string>\n    <string name=\"webtoon_viewer\">Webtoon</string>\n    <string name=\"ext_installer_pref\">Diegimo programa</string>\n    <string name=\"pref_update_only_completely_read\">Kai yra neskaitytų skyrių</string>\n    <string name=\"pref_update_only_started\">Kai dar neprasidėjo</string>\n    <string name=\"ext_install_service_notif\">Instaliuojamas papildinys…</string>\n    <string name=\"pref_keep_screen_on\">Palikti ekraną įjungta</string>\n    <string name=\"pref_skip_read_chapters\">Praleisti perskaitytus skyrius</string>\n    <string name=\"pref_skip_filtered_chapters\">Praleisti perfiltruotus skyrius</string>\n    <string name=\"tapping_inverted_vertical\">Vertikalus</string>\n    <string name=\"pref_reader_actions\">Veiksmai</string>\n    <string name=\"pref_read_with_long_tap\">Parodyti ilgiau paspaudus</string>\n    <string name=\"pref_create_folder_per_manga\">Išsaugoti puslapius atskiruose aplankuose</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Sukuria aplankus pagal įrašo pavadinimą</string>\n    <string name=\"pref_reader_theme\">Fono spalva</string>\n    <string name=\"nav_zone_prev\">Ankstesnis</string>\n    <string name=\"gray_background\">Pilka</string>\n    <string name=\"pref_image_scale_type\">Mastelio tipas</string>\n    <string name=\"pref_always_show_chapter_transition\">Visada rodyti skyrių perėjimus</string>\n    <string name=\"scale_type_original_size\">Originalus dydis</string>\n    <string name=\"pref_category_reading_mode\">Skaitymo rėžimas</string>\n    <string name=\"zoom_start_center\">Centruoti</string>\n    <string name=\"double_tap_anim_speed_0\">Be animacijų</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"pref_inverted_colors\">Invertuoti spalvas</string>\n    <string name=\"pref_color_filter_mode\">Spalvų filtrų maišymo rėžimas</string>\n    <string name=\"nav_zone_next\">Kitas</string>\n    <string name=\"nav_zone_left\">Kairė</string>\n    <string name=\"vertical_plus_viewer\">Ištęstinis vertikalus</string>\n    <string name=\"double_tap_anim_speed_fast\">Greitai</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"ext_update_all\">Atnaujinti viską</string>\n    <string name=\"pref_read_with_volume_keys\">Garso mygtukai</string>\n    <string name=\"scale_type_fit_screen\">Pritaikyti pagal ekraną</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku neveikia</string>\n    <string name=\"filter_mode_overlay\">Perdanga</string>\n    <string name=\"pref_reader_navigation\">Navigacija</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Apkeisti garso mygtukus</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invertuoti paspaudimo zonas</string>\n    <string name=\"black_background\">Juoda</string>\n    <string name=\"automatic_background\">Automatinis</string>\n    <string name=\"pref_viewer_type\">Numatytas skaitymo rėžimas</string>\n    <string name=\"right_and_left_nav\">Dešinė ir Kairė</string>\n    <string name=\"double_tap_anim_speed_normal\">Įprastai</string>\n    <string name=\"scale_type_stretch\">Ištempti</string>\n    <string name=\"scale_type_fit_width\">Talpinti pagal plotį</string>\n    <string name=\"filter_mode_lighten\">Pašviesinti</string>\n    <string name=\"l_nav\">L formos</string>\n    <string name=\"kindlish_nav\">Taip pat kaip Kindle</string>\n    <string name=\"action_show_manga\">Rodyti įrašą</string>\n    <string name=\"pref_custom_color_filter\">Pasirinktinas spalvų filtras</string>\n    <string name=\"filter_mode_multiply\">Multiplikuoti</string>\n    <string name=\"filter_mode_screen\">Ekranas</string>\n    <string name=\"tapping_inverted_none\">Nėra</string>\n    <string name=\"right_to_left_viewer\">Iš dešinės į kairę</string>\n    <string name=\"zoom_start_right\">Dešiniau</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"filter_mode_darken\">Patamsinti</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontalus</string>\n    <string name=\"tapping_inverted_both\">Abu</string>\n    <string name=\"pager_viewer\">Puslapiai</string>\n    <string name=\"pref_viewer_nav\">Paspaudimų išdėstymas</string>\n    <string name=\"scale_type_smart_fit\">Protingas pritaikymas</string>\n    <string name=\"zoom_start_automatic\">Automatinis</string>\n    <string name=\"zoom_start_left\">Kairiau</string>\n    <string name=\"action_sort_count\">Viso įrašų</string>\n    <string name=\"pref_rotation_type\">Numatytas sukimosi tipas</string>\n    <string name=\"rotation_type\">Sukimosi tipas</string>\n    <string name=\"rotation_free\">Neribojamas</string>\n    <string name=\"rotation_portrait\">Portretas</string>\n    <string name=\"rotation_landscape\">Peizažas</string>\n    <string name=\"rotation_force_portrait\">Fiksuoti vertikaliai</string>\n    <string name=\"rotation_force_landscape\">Fiksuoti horizontaliai</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"action_display_language_badge\">Kalba</string>\n    <string name=\"extension_api_error\">Nepavyko gauti papildinių sąrašo</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instaliuoti ir paleisti Shizuku, kad galėtumėte naudoti Shizuku kaip papildinių instaliuotoją.</string>\n    <string name=\"pref_show_navigation_mode\">Rodyti lietimui jautrias zonas</string>\n    <string name=\"label_warning\">Įspėjimas</string>\n    <string name=\"update_72hour\">Kas 3 dienas</string>\n    <string name=\"connected_to_wifi\">Kai naudojamas Wi-Fi</string>\n    <string name=\"ext_updates_pending\">Yra naujinių</string>\n    <string name=\"pref_category_reading\">Skaitoma</string>\n    <string name=\"ext_installer_legacy\">Pasenusi</string>\n    <string name=\"pref_grayscale\">Nespalvotai</string>\n    <string name=\"pref_zoom_start\">Priartinimo pradinė padėtis</string>\n    <string name=\"pref_backup_interval\">Atsarginių kopijų kūrimo dažnis</string>\n    <string name=\"third_to_last\">Trečias nuo paskutinio skaityto</string>\n    <string name=\"disabled\">Išjungtas</string>\n    <string name=\"pref_hide_threshold\">Jautrumas, skirtas paslėpti meniu slinkant</string>\n    <string name=\"pref_low\">Žemas</string>\n    <string name=\"pref_download_new\">Atsisiųsti naujus skyrius</string>\n    <string name=\"save_chapter_as_cbz\">Išsaugoti kaip CBZ archyvą</string>\n    <string name=\"pref_auto_update_manga_sync\">Po perskaitymo atnaujinti statusą</string>\n    <string name=\"backup_restore_missing_sources\">Trūksta šaltinių:</string>\n    <string name=\"services\">Paslaugos</string>\n    <string name=\"second_to_last\">Priešpaskutinis perskaitytas skyrius</string>\n    <string name=\"fourth_to_last\">Ketvirtas skyrius nuo paskutinio skaityto</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Leisti naikinti žymėtus skyrius</string>\n    <string name=\"fifth_to_last\">Penktas nuo paskutinio skaityto</string>\n    <string name=\"pref_category_auto_download\">Automatinis atsisiuntimas</string>\n    <string name=\"backup_created\">Sukurta atsarginė kopija</string>\n    <string name=\"pref_high\">aukštas</string>\n    <string name=\"pref_category_delete_chapters\">Naikinti skyrius</string>\n    <string name=\"pref_lowest\">Mažiausias</string>\n    <string name=\"pref_remove_after_marked_as_read\">Rankinių būdu pažymėtas, kaip skaitytas</string>\n    <string name=\"pref_remove_after_read\">Perskaičius automatiškai naikinti</string>\n    <string name=\"enhanced_services\">Patobulintos paslaugos</string>\n    <string name=\"pref_restore_backup_summ\">Atkurti biblioteką iš atsarginės failo kopijos</string>\n    <string name=\"invalid_backup_file_missing_manga\">Atsarginėje kopijoje nėra jokių bibliotekos įrašų.</string>\n    <string name=\"invalid_backup_file\">Netinkamas atsarginės kopijos failas</string>\n    <string name=\"pref_highest\">Aukščiausias</string>\n    <string name=\"pref_create_backup\">Kurti atsarginę kopiją</string>\n    <string name=\"pref_restore_backup\">Atkurti atsarginę kopiją</string>\n    <string name=\"pref_remove_exclude_categories\">Neįtrauktos kategorijos</string>\n    <string name=\"last_read_chapter\">Paskiausiai skaitytas skyrius</string>\n    <string name=\"pref_download_new_categories_details\">Įrašai neįtrauktose kategorijose nebus atsisiųsti, net jei jie taip pat yra įtraukti į kategorijas.</string>\n    <string name=\"learn_more\">Palieskite, kad sužinotumėte daugiau</string>\n    <string name=\"file_select_backup\">Pasirinkti atsarginės kopijos failą</string>\n    <string name=\"transition_pages_loading\">Įkeliami puslapiai…</string>\n    <string name=\"transition_no_next\">Kito skyriaus nėra</string>\n    <string name=\"notification_size_warning\">Dideli atnaujinimai kenkia šaltiniams ir gali lemti lėtesnius atnaujinimus bei didesnį akumuliatoriaus naudojimą. Bakstelėkite , jei norite sužinoti daugiau.</string>\n    <string name=\"viewer\">Skaitymo rėžimas</string>\n    <string name=\"recent_manga_time\">Sk. %1$s - %2$s</string>\n    <string name=\"updating_library\">Atnaujinama biblioteka</string>\n    <string name=\"information_webview_outdated\">Atnaujinkite „WebView“ programą dėl geresnio suderinamumo</string>\n    <string name=\"notification_chapters_single\">Skyrius %1$s</string>\n    <string name=\"clear_history_completed\">Istorija ištrinta</string>\n    <string name=\"decode_image_error\">Nepavyko pakrauti paveikslėlio</string>\n    <string name=\"page_list_empty_error\">Puslapių nerasta</string>\n    <string name=\"clear_history_confirmation\">Ar tu tuo tikras? Visa istorija bus prarasta.</string>\n    <string name=\"confirm_set_image_as_cover\">Naudoti šį paveiksliuką kaip viršelį?</string>\n    <string name=\"pref_category_for_this_series\">Priskirti šiai serijai</string>\n    <string name=\"transition_finished\">Baigta:</string>\n    <string name=\"transition_current\">Dabartinis:</string>\n    <string name=\"notification_update_error\">Nepavyko atnaujinti %1$d</string>\n    <string name=\"notification_first_add_to_library\">Prieš atlikdami šį veiksmą, pridėkite įrašą į savo biblioteką</string>\n    <string name=\"skipped_reason_not_started\">Praleista, nes nėra perskaitytų skyrių</string>\n    <string name=\"information_cloudflare_bypass_failure\">Nepavyko apeiti \\\"Cloudflare\\\"</string>\n    <string name=\"information_webview_required\">\\\"WebView\\\" reikalingas \\\"Mihon\\\"</string>\n    <string name=\"loader_not_implemented_error\">Šaltinis nerastas</string>\n    <string name=\"migration_selection_prompt\">Pasirinkite šaltinį, iš kurio norite perkelti</string>\n    <string name=\"migrate\">Perkelti</string>\n    <string name=\"download_insufficient_space\">Nepavyko atsisiųsti skyrių dėl mažos vietos saugykloje</string>\n    <string name=\"library_errors_help\">Jei reikia pagalbos, kaip ištaisyti bibliotekos naujinimo klaidas, žr. %1$s</string>\n    <string name=\"transition_pages_error\">Nepavyko įkelti puslapių: %1$s</string>\n    <string name=\"transition_previous\">Ankstesnis:</string>\n    <string name=\"update_check_confirm\">Parsisiųsti</string>\n    <string name=\"update_check_notification_download_complete\">Bakstelėkite, kad įdiegtumėte atnaujinimą</string>\n    <string name=\"update_check_eol\">Ši \\\"Android\\\" versija nebepalaikoma</string>\n    <string name=\"update_check_no_new_updates\">Naujų atnaujinimų nėra</string>\n    <string name=\"migration_dialog_what_to_include\">Pasirinkite duomenis, kuriuos norite įtraukti</string>\n    <string name=\"copy\">Kopijuoti</string>\n    <string name=\"notification_new_chapters\">Atrasti nauji skyriai</string>\n    <string name=\"skipped_reason_not_caught_up\">Praleista, nes yra neperskaitytų skyrių</string>\n    <string name=\"update_check_notification_download_in_progress\">Atsiunčiama…</string>\n    <string name=\"file_select_cover\">Pasirinkti viršelio vaizdą</string>\n    <string name=\"information_empty_category_dialog\">Jūs dar neturite jokių kategorijų.</string>\n    <string name=\"transition_no_previous\">Ankstesnio skyriaus nėra</string>\n    <string name=\"skipped_reason_completed\">Praleista, nes leidinys nebeleidžiamas</string>\n    <string name=\"pref_clear_history\">Išvalyti istoriją</string>\n    <string name=\"notification_chapters_single_and_more\">Skyrius %1$s ir %2$d daugiau</string>\n    <string name=\"notification_chapters_multiple\">Skyriai %1$s</string>\n    <string name=\"notification_cover_update_failed\">Nepavyko atnaujinti viršelio</string>\n    <string name=\"error_no_match\">Nerasta atitikmenų</string>\n    <string name=\"dialog_with_checkbox_reset\">Iš naujo nustatyti visus šio įrašo skyrius</string>\n    <string name=\"cover_updated\">Atnaujintas viršelis</string>\n    <string name=\"logout_success\">Dabar esate atsijungęs</string>\n    <string name=\"set_as_cover\">Nustatyti kaip viršelį</string>\n    <string name=\"chapter_paused\">Pristabdyta</string>\n    <string name=\"source_not_installed\">Šaltinis neįdiegtas: %1$s</string>\n    <string name=\"snack_add_to_library\">Pridėti į biblioteką?</string>\n    <string name=\"track_type\">Тipas</string>\n    <string name=\"track_started_reading_date\">Pradžios data</string>\n    <string name=\"display_mode_chapter\">Skyrius %1$s</string>\n    <string name=\"chapter_error\">Klaida</string>\n    <string name=\"login_success\">Prisijungęs</string>\n    <string name=\"unknown_error\">Nežinoma klaida</string>\n    <string name=\"downloaded_chapters\">Atsisiųsti skyriai</string>\n    <string name=\"copied_to_clipboard\">Nukopijuota į iškarpinę:\n\\n%1$s</string>\n    <string name=\"clipboard_copy_error\">Nepavyko nukopijuoti į iškarpinę</string>\n    <string name=\"chapter_downloading_progress\">Atsisiunčiama (%1$d / %2$d)</string>\n    <string name=\"show_chapter_number\">Skyriaus numeris</string>\n    <string name=\"track_finished_reading_date\">Baigimo data</string>\n    <string name=\"show_title\">Šaltinio pavadinimas</string>\n    <string name=\"manga_from_library\">Iš bibliotekos</string>\n    <string name=\"myanimelist_relogin\">Prašome dar kartą prisijungti prie MAL</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Tai pašalins šio skyriaus skaitymo datą. Ar tu tuo tikras?</string>\n    <string name=\"logout_title\">Atsijungti nuo %1$s?</string>\n    <string name=\"source_unsupported\">Šaltinis nepalaikomas</string>\n    <string name=\"logout\">Atsijungti</string>\n    <string name=\"delete_category\">Ištrinti kategoriją</string>\n    <string name=\"action_sort_unread_count\">Neskaitytų skaičius</string>\n    <string name=\"action_sort_last_manga_update\">Paskutinis atnaujinimo patikrinimas</string>\n    <string name=\"delete_category_confirmation\">Ar tikrai norite ištrinti kategoriją \\\"%s\\\"?</string>\n    <string name=\"theme_lavender\">Levandos</string>\n    <string name=\"action_close\">Uždaryti</string>\n    <string name=\"pref_app_language\">Programos kalba</string>\n    <string name=\"action_remove_everything\">Ištrinti viską</string>\n    <string name=\"internal_error\">InternalError: Patikrinkite klaidų žurnalus, kad gautumėte daugiau informacijos</string>\n    <string name=\"network_not_metered\">Kai duomenys neapmokestinami</string>\n    <string name=\"action_move_to_top_all_for_series\">Perkelti seriją į viršų</string>\n    <string name=\"backup_restore_missing_trackers\">Sekimo priemonės, neprijungtos prie:</string>\n    <string name=\"split_tall_images_summary\">Pagerina skaitytuvo našumą</string>\n    <string name=\"ext_info_language\">Kalba</string>\n    <string name=\"ext_info_age_rating\">Amžiaus reitingas</string>\n    <string name=\"rotation_reverse_portrait\">Apverstas portretas</string>\n    <string name=\"action_track\">Trasa</string>\n    <string name=\"edge_nav\">Kraštas</string>\n    <string name=\"disabled_nav\">Išjungtas</string>\n    <string name=\"enhanced_tracking_info\">Paslaugos turinčios patobulintas funkcijas, kurios teikia konkretus šaltiniai. Įrašai automatiškai stebimi, kai įtraukiami į jūsų biblioteką.</string>\n    <string name=\"pref_navigate_pan\">Bakstelėdami slinkti plačius vaizdus</string>\n    <string name=\"pref_landscape_zoom\">Priartinti horizontalų vaizdą</string>\n    <string name=\"ext_info_version\">Versija</string>\n    <string name=\"tracking_info\">Vienpusė sinchronizacija, skirta skaitymo progresui stebėjimo paslaugose atnaujinti. Nustatykite atskirą įrašų sekimą iš jų sekimo mygtuko.</string>\n    <string name=\"pref_create_backup_summ\">Galima naudoti dabartinei bibliotekai atkurti</string>\n    <string name=\"pref_webtoon_side_padding\">Šoninis spaudinėjimas</string>\n    <string name=\"empty_backup_error\">Nėra bibliotekos įrašų, kurių atsargines kopijas būtų galima sukurti</string>\n    <string name=\"pref_dump_crash_logs_summary\">Įrašyti strigčių žurnalus į failą, kad būtų galima juos bendrinti su kūrėjais</string>\n    <string name=\"creating_backup\">Atsarginės kopijos kūrimas</string>\n    <string name=\"pref_dns_over_https\">DNS per HTTPS (DoH)</string>\n    <string name=\"download_notifier_no_network\">Tinklo ryšis nepasiekiamas</string>\n    <string name=\"download_notifier_unknown_error\">Nepavyko atsisiųsti skyriaus dėl netikėtos klaidos</string>\n    <string name=\"appwidget_unavailable_locked\">Valdiklis nepasiekiamas, kai įjungtas programėlės užraktas</string>\n    <string name=\"appwidget_updates_description\">Peržiūrėkite neseniai atnaujintus bibliotekos įrašus</string>\n    <string name=\"cache_deleted\">Talpykla išvalyta. %1$d failai buvo ištrinti</string>\n    <string name=\"pref_clear_database\">Išvalyti duomenų bazę</string>\n    <string name=\"file_picker_error\">Nerandama failų rinkiklio programos</string>\n    <string name=\"update_check_open\">Atidaryti „GitHub“ svetainėje</string>\n    <string name=\"channel_app_updates\">Programėlių atnaujinimai</string>\n    <string name=\"channel_ext_updates\">Plėtinių atnaujinimai</string>\n    <string name=\"spen_previous_page\">Ankstesnis puslapis</string>\n    <string name=\"restore_miui_warning\">Atsarginės kopijos kūrimas / atkūrimas gali veikti netinkamai, jei \\\"MIUI Optimization\\\" yra išjungtas.</string>\n    <string name=\"restoring_backup_canceled\">Atšauktas atkūrimas</string>\n    <string name=\"backup_info\">Atsargines kopijas turėtumėte laikyti ir kitose vietose.</string>\n    <string name=\"cookies_cleared\">Slapukai išvalyti</string>\n    <string name=\"label_data\">Duomenys</string>\n    <string name=\"clear_database_source_item_count\">%1$d nebibliotekiniai įrašai duomenų bazėje</string>\n    <string name=\"restoring_backup_error\">Nepavyko atkurti atsarginės kopijos</string>\n    <string name=\"label_network\">Tinklas</string>\n    <string name=\"backup_choice\">Ką norite įtraukti į atsarginę kopiją?</string>\n    <string name=\"clear_database_completed\">Ištrinti įrašai</string>\n    <string name=\"pref_clear_chapter_cache\">Išvalyti skyriaus talpyklą</string>\n    <string name=\"used_cache\">Naudota: %1$s</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Nepavyko atidaryti įrenginio nustatymų</string>\n    <string name=\"empty_screen\">Na, tai nepatogu</string>\n    <string name=\"cache_delete_error\">Valymo metu įvyko klaida</string>\n    <string name=\"action_display_cover_only_grid\">Tik viršelių tinklelis</string>\n    <string name=\"tracking_guide\">Stebėjimo vadovas</string>\n    <string name=\"creating_backup_error\">Nepavyko sukurti atsarginės kopijos</string>\n    <string name=\"restore_in_progress\">Atkūrimas jau vyksta</string>\n    <string name=\"restoring_backup\">Atkuriama atsarginė kopija</string>\n    <string name=\"requires_app_restart\">Kad įsigaliotų, reikia iš naujo paleisti programą</string>\n    <string name=\"pref_reset_viewer_flags\">Iš naujo nustatyti kiekvienos serijos skaitytuvo nustatymus</string>\n    <string name=\"pref_dump_crash_logs\">Išmeskite strigčių žurnalus</string>\n    <string name=\"download_queue_error\">Nepavyko atsisiųsti skyrių. Galite pabandyti dar kartą atsisiųsti</string>\n    <string name=\"pref_user_agent_string\">Numatytoji vartotojo agento eilutė</string>\n    <string name=\"not_installed\">Neįdiegtas</string>\n    <string name=\"chapter_settings_updated\">Atnaujinti numatytus skyrių nustatymus</string>\n    <string name=\"download_notifier_downloader_title\">Parsisiuntėjas</string>\n    <string name=\"download_notifier_title_error\">Klaida</string>\n    <string name=\"download_notifier_text_only_wifi\">Nėra „Wi-Fi“ ryšio</string>\n    <string name=\"channel_progress\">Progresas</string>\n    <string name=\"backup_in_progress\">Atsarginė kopija jau kuriama</string>\n    <string name=\"download_queue_size_warning\">Įspėjimas: dėl didelių masinių atsisiuntimų šaltiniai gali tapti lėtesni ir (arba) jie blokuoti \\\"%s\\\". Bakstelėkite , jei norite sužinoti daugiau.</string>\n    <string name=\"pref_disable_battery_optimization\">Išjungti akumuliatoriaus optimizavimą</string>\n    <string name=\"restore_completed\">Atkūrimas baigtas</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"database_clean\">Nėra ką išvalyti</string>\n    <string name=\"webview_data_deleted\">„WebView“ duomenys išvalyti</string>\n    <string name=\"getting_started_guide\">Darbo pradžios vadovas</string>\n    <string name=\"download_notifier_split_page_not_found\">Puslapis %d nerastas skaidant</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nepavyko rasti puslapio failo kelio %d</string>\n    <string name=\"channel_common\">Bendras</string>\n    <string name=\"channel_complete\">Baigtas</string>\n    <string name=\"download_notifier_download_paused\">Atsisiuntimas pristabdytas</string>\n    <string name=\"channel_new_chapters\">Skyriaus atnaujinimai</string>\n    <string name=\"spen_next_page\">Kitas puslapis</string>\n    <string name=\"pref_clear_cookies\">Išvalyti slapukus</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Išvalyti skyriaus talpyklą uždarius programą</string>\n    <string name=\"pref_clear_database_summary\">Ištrinkite įrašų istoriją, kurie nėra išsaugoti jūsų bibliotekoje</string>\n    <string name=\"backup_restore_content_full\">Atsarginės failo kopijos duomenys bus atkurti.\n\\n\n\\nNorėdami jais naudotis, turėsite įdiegti trūkstamus plėtinius ir po to prisijungti prie stebėjimo paslaugų.</string>\n    <string name=\"pref_reset_user_agent_string\">Iš naujo nustatyti numatytąją vartotojo agento eilutę</string>\n    <string name=\"pref_clear_webview_data\">Išvalyti \\\"WebView\\\" duomenis</string>\n    <string name=\"pref_refresh_library_covers\">Atnaujinti bibliotekos viršelius</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Iš naujo nustatyti visų serijų skaitymo režimą ir orientaciją</string>\n    <string name=\"pref_reset_viewer_flags_success\">Visų skaitytuvo nustatymų nustatymas iš naujo</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nepavyko atstatyti skaitytuvo nustatymų</string>\n    <string name=\"label_background_activity\">Fono veikla</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Padeda su fono bibliotekos naujinimais ir atsarginėmis kopijomis</string>\n    <string name=\"battery_optimization_disabled\">Akumuliatoriaus optimizavimas jau išjungtas</string>\n    <string name=\"channel_errors\">Klaidos</string>\n    <string name=\"pref_verbose_logging_summary\">Spausdinti verbalinius žurnalus į sistemos žurnalą (sumažina programos našumą)</string>\n    <string name=\"pref_verbose_logging\">Daugiažodis registravimas</string>\n    <string name=\"pref_tablet_ui_mode\">Planšetinio kompiuterio UI</string>\n    <string name=\"about_dont_kill_my_app\">Kai kurie gamintojai taiko papildomus programėlių apribojimus, kurie išjungia fono paslaugas. Šioje svetainėje rasite daugiau informacijos, kaip tai ištaisyti.</string>\n    <string name=\"website\">Internetinis puslapis</string>\n    <string name=\"version\">Versija</string>\n    <string name=\"whats_new\">Kas naujo</string>\n    <string name=\"last_used_source\">Paskutinį kartą naudotas</string>\n    <string name=\"chapter_not_found\">Skyrius nerastas</string>\n    <string name=\"publishing_finished\">Skaitinis nepublikuojamas</string>\n    <string name=\"tabs_header\">Skirtukai</string>\n    <string name=\"pref_enable_acra\">Siųsti strigčių ataskaitas</string>\n    <string name=\"plan_to_read\">Planuojama skaityti</string>\n    <string name=\"no_more_results\">Daugiau rezultatų nėra</string>\n    <string name=\"confirm_delete_chapters\">Ar tikrai norite ištrinti pasirinktus skyrius?</string>\n    <string name=\"completed\">Užbaigta</string>\n    <string name=\"check_for_updates\">Ieškoti programos atnaujinimų</string>\n    <string name=\"privacy_policy\">Privatumo politika</string>\n    <string name=\"in_library\">Bibliotekoje</string>\n    <string name=\"reading\">Skaitoma</string>\n    <string name=\"error_saving_cover\">Išsaugant viršelį įvyko klaida</string>\n    <string name=\"pref_acra_summary\">Padeda ištaisyti bet kokias klaidas. Skelbtini duomenys nebus siunčiami</string>\n    <string name=\"password\">Slaptažodis</string>\n    <string name=\"login\">Prisijungti</string>\n    <string name=\"sort_by_source\">Pagal šaltinį</string>\n    <string name=\"sort_by_upload_date\">Pagal įkėlimo datą</string>\n    <string name=\"manga_download\">Atsisiųsti</string>\n    <string name=\"date\">Data</string>\n    <string name=\"updating_category\">Kategorijos atnaujinimas</string>\n    <string name=\"updated_version\">Atnaujinta į v%1$s</string>\n    <string name=\"login_title\">Prisijunkite prie %1$s</string>\n    <string name=\"no_results_found\">Rezultatų nerasta</string>\n    <string name=\"ongoing\">Vykdoma</string>\n    <string name=\"manga_added_library\">Įtraukta į biblioteką</string>\n    <string name=\"manga_cover\">Viršelis</string>\n    <string name=\"pinned_sources\">Prisegtas</string>\n    <string name=\"email\">El. pašto adresas</string>\n    <string name=\"action_global_search_hint\">Pasaulinė paieška…</string>\n    <string name=\"latest\">Naujausia</string>\n    <string name=\"local_source_help_guide\">Vietos šaltinių vadovas</string>\n    <string name=\"cover_saved\">Viršelis išsaugotas</string>\n    <string name=\"no_chapters_error\">Skyrių nerasta</string>\n    <string name=\"dropped\">Atmestas</string>\n    <string name=\"repeating\">Pakartotinis skaitymas</string>\n    <string name=\"reading_list\">Skaitinių sąrašas</string>\n    <string name=\"help_translate\">Padėkite išversti programa</string>\n    <string name=\"paused\">Pristabdytas</string>\n    <string name=\"remove_from_library\">Pašalinti iš bibliotekos</string>\n    <string name=\"local_source\">Vietinis šaltinis</string>\n    <string name=\"action_global_search_query\">Ieškokite \\\"%1$s\\\" visame pasaulyje</string>\n    <string name=\"no_pinned_sources\">Neturite prisegtų šaltinių</string>\n    <string name=\"local_invalid_format\">Netinkamas skyriaus formatas</string>\n    <string name=\"other_source\">Kita</string>\n    <string name=\"licensed\">Licencijuotas</string>\n    <string name=\"delete_downloads_for_manga\">Ištrinti atsisiųstus skyrius?</string>\n    <string name=\"unknown\">Nežinoma</string>\n    <string name=\"unknown_author\">Nežinomas autorius</string>\n    <string name=\"unknown_status\">Nežinoma būsena</string>\n    <string name=\"cancelled\">Nebepublikuojamas</string>\n    <string name=\"description_placeholder\">Nėra aprašymo</string>\n    <string name=\"pref_incognito_mode\">Inkognito režimas</string>\n    <string name=\"browse\">Naršyti</string>\n    <string name=\"on_hiatus\">Publikavimas pristabdytas</string>\n    <string name=\"sort_by_number\">Pagal skyriaus numerį</string>\n    <string name=\"manga_info_expand\">Daugiau</string>\n    <string name=\"also_set_chapter_settings_for_library\">Taip pat taikyti visiems mano bibliotekoje esantiems įrašams</string>\n    <string name=\"set_chapter_settings_as_default\">Nustatyti kaip numatytąjį</string>\n    <string name=\"manga_tracking_tab\">Sekimas</string>\n    <string name=\"licenses\">Atvirojo kodo licencijos</string>\n    <string name=\"label_downloaded_only\">Rodyti tik atsisiųstus</string>\n    <string name=\"pref_incognito_mode_summary\">Pristabdo skaitymo istoriją</string>\n    <string name=\"notification_incognito_text\">Išjungti inkognito režimą</string>\n    <string name=\"downloaded_only_summary\">Filtruoja visus įrašus jūsų bibliotekoje</string>\n    <string name=\"username\">Vartotojo vardas</string>\n    <string name=\"local_filter_order_by\">Rūšiuoti pagal</string>\n    <string name=\"add_to_library\">Pridėti į biblioteką</string>\n    <string name=\"manga_removed_library\">Pašalinti iš bibliotekos</string>\n    <string name=\"manga_info_collapse\">Mažiau</string>\n    <string name=\"download_unread\">Dar neskaitytus</string>\n    <string name=\"custom_cover\">Individualus viršelis</string>\n    <string name=\"error_sharing_cover\">Įvyko klaida bendrinant viršelį</string>\n    <string name=\"chapter_settings\">Skyriaus nustatymai</string>\n    <string name=\"confirm_set_chapter_settings\">Ar tikrai norite išsaugoti šiuos nustatymus kaip numatytuosius?</string>\n    <string name=\"add_tracking\">Pridėti stebėjimą</string>\n    <string name=\"unread\">Neskaityta</string>\n    <string name=\"on_hold\">Sulaikytas</string>\n    <string name=\"wish_list\">Norimų sąrašas</string>\n    <string name=\"complete_list\">Pilnas sąrašas</string>\n    <string name=\"title\">Pavadinimas</string>\n    <string name=\"error_saving_picture\">Klaidą išsaugojant paveikslą</string>\n    <string name=\"status\">Būsena</string>\n    <string name=\"score\">Rezultatas</string>\n    <string name=\"error_category_exists\">Kategorija su šiuo pavadinimu jau egzistuoja!</string>\n    <string name=\"snack_categories_deleted\">Kategorijos ištrintos</string>\n    <string name=\"custom_filter\">Pasirinktinas filtras</string>\n    <string name=\"picture_saved\">Viršelis išsaugotas</string>\n    <string name=\"track_status\">Būsena</string>\n    <string name=\"on_hold_list\">Užlaikytų sąrašas</string>\n    <string name=\"unfinished_list\">Nebaigtų sąrašas</string>\n    <string name=\"share_page_info\">%1$s: %2$s, puslapis %3$d</string>\n    <string name=\"no_next_chapter\">Kitas skyrius nerastas</string>\n    <string name=\"source_empty_screen\">Šaltinis nerastas</string>\n    <string name=\"migration_help_guide\">Šaltinio perkėlimo vadovas</string>\n    <string name=\"cant_open_last_read_chapter\">Nepavyko atidaryti paskutinio skaityto skyriaus</string>\n    <string name=\"chapter_progress\">Puslapis: %1$d</string>\n    <string name=\"transition_next\">Kitas:</string>\n    <string name=\"source_filter_empty_screen\">Įdiegtų šaltinių nerasta</string>\n    <string name=\"theme_tidalwave\">Potvynio banga</string>\n    <string name=\"action_search_hint\">Ieškoti…</string>\n    <string name=\"error_user_agent_string_blank\">Vartotojo agento eilutė negali būti tuščia</string>\n    <string name=\"update_already_running\">Atnaujinimas jau vykdomas</string>\n    <string name=\"updates_last_update_info\">Biblioteka paskutinį kartą atnaujinta: %s</string>\n    <string name=\"remove_manga\">Ketinate pašalinti „%s“ iš bibliotekos</string>\n    <string name=\"download_ahead_info\">Veikia tik bibliotekoje esantiems įrašams ir tik tada, jei jau atsisiųstas dabartinis ir kitas skyrius</string>\n    <string name=\"download_ahead\">Atsisiųsti į priekį</string>\n    <string name=\"auto_download_while_reading\">Automatinis atsisiuntimas beskaitant</string>\n    <string name=\"skipped_reason_not_always_update\">Praleista, nes serijai nereikia atnaujinimų</string>\n    <string name=\"missing_storage_permission\">Nesuteikti saugojimo leidimai</string>\n    <string name=\"pref_downloads_summary\">Automatinis atsisiuntimas, atsisiuntimas į priekį</string>\n    <string name=\"pref_backup_summary\">Rankinės ir automatinės atsarginės kopijos</string>\n    <string name=\"pref_security_summary\">Programos užraktas, saugus ekranas</string>\n    <string name=\"pref_appearance_summary\">Tema, datos ir laiko formatas</string>\n    <string name=\"pref_reader_summary\">Skaitymo režimas, rodymas, navigacija</string>\n    <string name=\"pref_tracking_summary\">Vienpusis progreso sinchronizavimas, patobulintas sinchronizavimas</string>\n    <string name=\"pref_browse_summary\">Šaltiniai, plėtiniai, visuotinė paieška</string>\n    <string name=\"pref_library_summary\">Kategorijos, visuotinis atnaujinimas</string>\n    <string name=\"multi_lang\">Kelių kalbų</string>\n    <string name=\"pref_advanced_summary\">Eksportuoti gedimų žurnalus, akumuliatoriaus optimizavimą</string>\n    <string name=\"invalid_location\">Netinkama vieta: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Netinkama naudotojo agento eilutė</string>\n    <string name=\"unknown_title\">Nežinomas pavadinimas</string>\n    <string name=\"updates_last_update_info_just_now\">Ką tik</string>\n    <string name=\"crash_screen_description\">%s susidūrė su netikėta klaida. Siūlome padaryti šio pranešimo ekrano nuotrauką, išsisaugoti gedimų žurnalus ir pasidalyti tuo mūsų „Discord“ palaikymo kanale.</string>\n    <string name=\"are_you_sure\">Ar esate tikri?</string>\n    <string name=\"popular\">Populiaru</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"crash_screen_restart_application\">Iš naujo paleiskite programą</string>\n    <string name=\"download_notifier_cache_renewal\">Indeksuojami atsisiuntimai</string>\n    <string name=\"fdroid_warning\">F-Droid versijos oficialiai nepalaikomos.\n\\nBakstelėkite, kad sužinotumėte daugiau.</string>\n    <string name=\"information_no_entries_found\">Šioje kategorijoje įrašų nerasta</string>\n    <string name=\"action_open_random_manga\">Atverti atsitiktinį įrašą</string>\n    <string name=\"action_display_show_continue_reading_button\">Rodyti mygtuką „Tęsti” skaitymą</string>\n    <string name=\"track_remove_finish_date_conf_text\">Tai pašalins jūsų anksčiau pasirinktą pabaigos datą iš %s</string>\n    <string name=\"track_remove_date_conf_title\">Pašalinti datą?</string>\n    <string name=\"track_remove_start_date_conf_text\">Tai pašalins jūsų anksčiau pasirinktą pradžios datą iš %s</string>\n    <string name=\"pref_invalidate_download_cache\">Atsisiuntimų indekso panaikinimas</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Priversti programėlę iš naujo patikrinti atsisiųstus skyrius</string>\n    <string name=\"label_downloaded\">Atsiųsta</string>\n    <string name=\"label_overview_section\">Apžvalga</string>\n    <string name=\"label_total_chapters\">Iš viso</string>\n    <string name=\"label_read_chapters\">Perskaityta</string>\n    <string name=\"label_tracker_section\">Sekliai</string>\n    <string name=\"label_titles_in_global_update\">Globaliame atnaujinime</string>\n    <string name=\"label_mean_score\">Vidutinis įvertinimas</string>\n    <string name=\"day_short\">%d d.</string>\n    <string name=\"hour_short\">%d val.</string>\n    <string name=\"label_used\">Naudojama</string>\n    <string name=\"not_applicable\">nėra</string>\n    <string name=\"seconds_short\">%d sek.</string>\n    <string name=\"label_titles_section\">Įrašai</string>\n    <string name=\"label_read_duration\">Skaitymo trukmė</string>\n    <string name=\"label_tracked_titles\">Sekami įrašai</string>\n    <string name=\"label_completed_titles\">Užbaigti įrašai</string>\n    <string name=\"label_stats\">Statistika</string>\n    <string name=\"label_started\">Pradėta</string>\n    <string name=\"label_local\">Vietiniai</string>\n    <string name=\"minute_short\">%d min.</string>\n    <string name=\"action_not_now\">Ne dabar</string>\n    <string name=\"information_no_manga_category\">Kategorija yra tuščia</string>\n    <string name=\"copied_to_clipboard_plain\">Nukopijuota į iškarpinę</string>\n    <string name=\"enhanced_services_not_installed\">Turima, bet šaltinis nėra įdiegtas: %s</string>\n    <string name=\"pref_library_update_show_tab_badge\">Rodyti neperskaitytų skaičių ant Naujienų piktogramos</string>\n    <string name=\"pref_skip_dupe_chapters\">Praleisti pasikartojančius skyrius</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/lv/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"zero\">Pabeigts %1$s ar %2$s kļūdām</item>\n        <item quantity=\"one\">Pabeigts %1$s ar %2$s kļūdu</item>\n        <item quantity=\"other\">Pabeigts %1$s ar %2$s kļūdām</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"zero\">Pēc %1$s minūtēm</item>\n        <item quantity=\"one\">Pēc %1$s minūtes</item>\n        <item quantity=\"other\">Pēc %1$s minūtēm</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"zero\">%d kategoriju</item>\n        <item quantity=\"one\">%d kategorija</item>\n        <item quantity=\"other\">%d kategorijas</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"zero\">Šodien</item>\n        <item quantity=\"one\">Vakar</item>\n        <item quantity=\"other\">Pirms %1$d dienām</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"zero\">%1$s atlikušas</item>\n        <item quantity=\"one\">%1$s atlikusi</item>\n        <item quantity=\"other\">%1$s atlikušas</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"zero\">%d izsekotāju</item>\n        <item quantity=\"one\">%d izsekotājs</item>\n        <item quantity=\"other\">%d izsekotāji</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"zero\">Priekš %d ierakstiem</item>\n        <item quantity=\"one\">Priekš %d ieraksta</item>\n        <item quantity=\"other\">Priekš %d ierakstiem</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"zero\">Izlaisti %d nodaļu, vai nu to nav avotā, vai arī tie ir izfiltrēti</item>\n        <item quantity=\"one\">Izlaists %d nodaļa, vai nu tā nav avotā, vai arī tā ir izfiltrēta</item>\n        <item quantity=\"other\">Izlaistas %d nodaļas, vai nu tās nav avotā, vai arī tās ir izfiltrētas</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"zero\">%1$d jaunu nodaļu</item>\n        <item quantity=\"one\">%1$d jauna nodaļa</item>\n        <item quantity=\"other\">%1$d jaunas nodaļas</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"zero\">%1$s nodaļu</item>\n        <item quantity=\"one\">%1$s nodaļa</item>\n        <item quantity=\"other\">%1$s nodaļas</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"zero\">Pieejami %d paplašinājumi atjaunināšanai</item>\n        <item quantity=\"one\">Pieejams %d paplašinājums atjaunināšanai</item>\n        <item quantity=\"other\">Pieejami %d paplašinājumi atjaunināšanai</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"zero\">Nodaļu %1$s</item>\n        <item quantity=\"one\">Nodaļa %1$s un vēl 1</item>\n        <item quantity=\"other\">Nodaļa %1$s un vēl %2$d</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"zero\">Trūkst %1$s nodaļu</item>\n        <item quantity=\"one\">Trūkst %1$s nodaļa</item>\n        <item quantity=\"other\">Trūkst %1$s nodaļas</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"zero\">Nākošā %d nodaļa</item>\n        <item quantity=\"one\">Nākošā %d nodaļa</item>\n        <item quantity=\"other\">Nākošās %d nodaļās</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"zero\">Nākamā nelasītā nodaļa</item>\n        <item quantity=\"one\">Nākamā nelasītā nodaļa</item>\n        <item quantity=\"other\">Nākamās %d nelasītas nodaļas</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"zero\">%d dienas</item>\n        <item quantity=\"one\">%d diena</item>\n        <item quantity=\"other\">%d dienas</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/lv/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nosaukums</string>\n    <string name=\"categories\">Kategorijas</string>\n    <string name=\"chapters\">Nodaļas</string>\n    <string name=\"track\">Izsekošana</string>\n    <string name=\"history\">Vēsture</string>\n    <string name=\"label_settings\">Iestatījumi</string>\n    <string name=\"label_download_queue\">Lejupieladēšanas rinda</string>\n    <string name=\"label_library\">Bibliotēka</string>\n    <string name=\"label_recent_manga\">Vēsture</string>\n    <string name=\"label_recent_updates\">Atjauninājumi</string>\n    <string name=\"label_backup\">Dublēšana un atjaunošana</string>\n    <string name=\"action_settings\">Iestatījumi</string>\n    <string name=\"action_filter\">Filtrs</string>\n    <string name=\"action_filter_bookmarked\">Ar grāmatzīmēm</string>\n    <string name=\"action_filter_unread\">Neizlasītie</string>\n    <string name=\"action_filter_empty\">Dzēst filtru</string>\n    <string name=\"action_sort_alpha\">Alfabētiski</string>\n    <string name=\"action_sort_total\">Nodaļu daudzums</string>\n    <string name=\"action_sort_last_read\">Pēdēji izlasīti</string>\n    <string name=\"action_search\">Meklēt</string>\n    <string name=\"action_select_all\">Atlasīt visus</string>\n    <string name=\"action_mark_as_read\">Atzīmēt kā izlasītu</string>\n    <string name=\"action_mark_as_unread\">Atzīmēt kā neizlasītu</string>\n    <string name=\"action_mark_previous_as_read\">Atzīmēt iepriekšējus kā izlasītus</string>\n    <string name=\"action_download\">Lejupieladēt</string>\n    <string name=\"action_bookmark\">Grāmatzīme</string>\n    <string name=\"action_remove_bookmark\">Noņemt grāmatzīmi</string>\n    <string name=\"action_delete\">Dzēst</string>\n    <string name=\"action_update_library\">Atjaunināt bibliotēku</string>\n    <string name=\"action_edit\">Rediģēt</string>\n    <string name=\"action_add\">Pievienot</string>\n    <string name=\"action_add_category\">Pievienot kategoriju</string>\n    <string name=\"action_edit_categories\">Rediģēt kategorijas</string>\n    <string name=\"action_rename_category\">Pārdēvēt kategoriju</string>\n    <string name=\"action_move_category\">Noteikt kategorijas</string>\n    <string name=\"action_edit_cover\">Rediģēt vāku</string>\n    <string name=\"action_pause\">Pārtraukt</string>\n    <string name=\"action_previous_chapter\">Iepriekšēja nodaļa</string>\n    <string name=\"action_next_chapter\">Nākama nodaļa</string>\n    <string name=\"action_retry\">Mēģināt vēlreiz</string>\n    <string name=\"action_remove\">Dzēst</string>\n    <string name=\"action_resume\">Turpināt</string>\n    <string name=\"action_open_in_browser\">Atvērt pārlūkā</string>\n    <string name=\"action_display_mode\">Displeja režīms</string>\n    <string name=\"action_display\">Radīt</string>\n    <string name=\"action_display_grid\">Kompakts režģis</string>\n    <string name=\"action_display_list\">Saraksts</string>\n    <string name=\"action_cancel\">Atcelt</string>\n    <string name=\"action_sort\">Kārtot</string>\n    <string name=\"action_install\">Instalēt</string>\n    <string name=\"action_share\">Dalīties</string>\n    <string name=\"action_save\">Saglabāt</string>\n    <string name=\"action_reset\">Sākt no jauna</string>\n    <string name=\"action_undo\">atraisīt</string>\n    <string name=\"action_open_log\">Atvērt žurnālfailu</string>\n    <string name=\"action_restore\">Atjaunot</string>\n    <string name=\"loading\">Ieladēšana…</string>\n    <string name=\"app_not_available\">Programma nav pieejama</string>\n    <string name=\"pref_category_general\">Vispārīgas</string>\n    <string name=\"pref_category_reader\">Lasītājs</string>\n    <string name=\"pref_category_downloads\">Lejupieladējumi</string>\n    <string name=\"pref_category_tracking\">Izsekošana</string>\n    <string name=\"pref_category_advanced\">Papildu iestatījumi</string>\n    <string name=\"pref_category_about\">Par programmu</string>\n    <string name=\"channel_common\">Biežs</string>\n    <string name=\"download_notifier_no_network\">Tīkla savienojums nav pieejams</string>\n    <string name=\"download_notifier_text_only_wifi\">Nav pieejams Wi-Fi savienojums</string>\n    <string name=\"download_notifier_unknown_error\">Nevarēja lejupielādēt nodaļu neparedzētas kļūdas dēļ</string>\n    <string name=\"download_notifier_title_error\">Kļūda</string>\n    <string name=\"download_notifier_downloader_title\">Lejupielādētājs</string>\n    <string name=\"information_webview_outdated\">Lai uzlabotu saderību, lūdzu, atjauniniet WebView lietotni</string>\n    <string name=\"information_webview_required\">Lai aplikācija strādātu ir nepieciešams WebView</string>\n    <string name=\"restoring_backup_error\">Dublējuma atjaunošana neizdevās</string>\n    <string name=\"restoring_backup\">Dublējuma atjaunošana</string>\n    <string name=\"restore_in_progress\">Atjaunošana jau notiek</string>\n    <string name=\"creating_backup_error\">Dublēšana neizdevās</string>\n    <string name=\"creating_backup\">Izveido dublējumu</string>\n    <string name=\"backup_choice\">Ko vēlaties dublēt?</string>\n    <string name=\"backup_in_progress\">Dublēšana jau notiek</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sec</string>\n    <string name=\"restore_completed\">Atjaunošana pabeigta</string>\n    <string name=\"backup_restore_missing_sources\">Trūkstošie avoti:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Dublējumā nav neviena bibliotēkas ieraksta.</string>\n    <string name=\"label_extension_info\">Paplašinājumu informācija</string>\n    <string name=\"label_extensions\">Paplašinājumi</string>\n    <string name=\"tapping_inverted_both\">Abi</string>\n    <string name=\"tapping_inverted_vertical\">Vertikāls</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontāls</string>\n    <string name=\"tapping_inverted_none\">Nav</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invertētas skāriena zonas</string>\n    <string name=\"channel_ext_updates\">Paplašinājumu atjauninājumi</string>\n    <string name=\"channel_new_chapters\">Nodaļu atjauninājumi</string>\n    <string name=\"download_notifier_download_paused\">Lejupielādes pauzētas</string>\n    <string name=\"information_no_downloads\">Nav lejuplāžu</string>\n    <string name=\"label_help\">Palīdzība</string>\n    <string name=\"label_migration\">Migrēt</string>\n    <string name=\"label_sources\">Avoti</string>\n    <string name=\"label_more\">Vairāk</string>\n    <string name=\"action_display_comfortable_grid\">Ērts režģis</string>\n    <string name=\"action_migrate\">Migrēt</string>\n    <string name=\"action_open_in_web_view\">Atvērt WebView</string>\n    <string name=\"action_start\">Sākt</string>\n    <string name=\"action_view_chapters\">Skatīt nodaļas</string>\n    <string name=\"action_disable_all\">Atspējot visu</string>\n    <string name=\"action_enable_all\">Iespējot visu</string>\n    <string name=\"action_select_inverse\">Atlasiet apgrieztu</string>\n    <string name=\"action_global_search\">Globālā meklēšana</string>\n    <string name=\"action_sort_date_added\">Pievienošanas datums</string>\n    <string name=\"action_sort_latest_chapter\">Jaunākā nodaļa</string>\n    <string name=\"action_menu\">Izvēlne</string>\n    <string name=\"information_empty_category\">Jums nav nevienas kategorijas. Pieskarieties plus pogai, lai izveidotu kategoriju savas bibliotēkas organizēšanai.</string>\n    <string name=\"information_empty_library\">Jūsu bibliotēka ir tukša</string>\n    <string name=\"information_no_recent_manga\">Nekas nesen lasīts</string>\n    <string name=\"information_no_recent\">Nekas nesen lasīts</string>\n    <string name=\"action_newest\">Jaunākais</string>\n    <string name=\"action_cancel_all\">Atcelt visu</string>\n    <string name=\"action_unpin\">Atspraust</string>\n    <string name=\"action_pin\">Piespraust</string>\n    <string name=\"action_disable\">Atspējot</string>\n    <string name=\"action_display_show_tabs\">Rādīt kategoriju cilnes</string>\n    <string name=\"update_check_no_new_updates\">Nav pieejamas jaunas nodaļas</string>\n    <string name=\"update_check_confirm\">Lejuplādēt</string>\n    <string name=\"landscape\">Ainava</string>\n    <string name=\"portrait\">Portrets</string>\n    <string name=\"pref_library_columns\">Režģa izmērs</string>\n    <string name=\"pref_category_display\">Displejs</string>\n    <string name=\"hide_notification_content\">Slēpt paziņojumu saturu</string>\n    <string name=\"secure_screen_summary\">Drošs ekrāns paslēpj saturu mainot lietotnes, un bloķē ekrānuzņēmumus</string>\n    <string name=\"secure_screen\">Drošs ekrāns</string>\n    <string name=\"lock_never\">Nekad</string>\n    <string name=\"lock_always\">Vienmēr</string>\n    <string name=\"lock_when_idle\">Bloķēt, ja dīkstāvē</string>\n    <string name=\"lock_with_biometrics\">Vajadzīgs atbloķēt</string>\n    <string name=\"pref_category_security\">Drošība un privātums</string>\n    <string name=\"pref_manage_notifications\">Pārvaldiet paziņojumus</string>\n    <string name=\"pref_date_format\">Datuma formāts</string>\n    <string name=\"theme_dark\">Ieslēgts</string>\n    <string name=\"theme_light\">Izslēgts</string>\n    <string name=\"theme_system\">Sekot sistēmu</string>\n    <string name=\"pref_category_theme\">Motīvs</string>\n    <string name=\"pref_category_library\">Bibliotēka</string>\n    <string name=\"action_webview_refresh\">Atjaunot</string>\n    <string name=\"action_webview_forward\">Uz priekšu</string>\n    <string name=\"action_webview_back\">Atpakaļ</string>\n    <string name=\"action_move_to_bottom\">Pārvietot uz leju</string>\n    <string name=\"action_move_to_top\">Pārvietot uz augšu</string>\n    <string name=\"action_oldest\">Vecākais</string>\n    <string name=\"action_display_download_badge\">Lejuplādēt nodaļas</string>\n    <string name=\"action_desc\">Dilstoši</string>\n    <string name=\"action_asc\">Augoši</string>\n    <string name=\"action_order_by_chapter_number\">Pēc nodaļas numura</string>\n    <string name=\"action_display_show_number_of_items\">Parādīt lietu skaitu</string>\n    <string name=\"updating_library\">Atjauninās bibliotēka</string>\n    <string name=\"action_filter_tracked\">Izsekots</string>\n    <string name=\"default_category\">Noklusētā kategorija</string>\n    <string name=\"action_search_settings\">Meklēt Uzstādījumos</string>\n    <string name=\"completed\">Pabeigts</string>\n    <string name=\"licensed\">Licencēts</string>\n    <string name=\"unknown\">Nezināms</string>\n    <string name=\"ongoing\">Vēl turpinās</string>\n    <string name=\"title\">Nosaukums</string>\n    <string name=\"pref_category_delete_chapters\">Izdzēst nodaļas</string>\n    <string name=\"pref_category_auto_download\">Automātiska lejupielāde</string>\n    <string name=\"pref_restore_backup\">Atjaunot dublējumu</string>\n    <string name=\"backup_restore_missing_trackers\">Sekotāji, kas nav pieteikušies:</string>\n    <string name=\"backup_restore_content_full\">Dublējuma faila dati tiks atjaunoti.\n\\n\n\\nJums būs jāinstalē visi trūkstošie paplašinājumi un jāpiesakās izsekošanas pakalpojumos, lai tos izmantotu.</string>\n    <string name=\"unread\">Neizlasītie</string>\n    <string name=\"all\">Visi</string>\n    <string name=\"ext_update\">Atjauninājums</string>\n    <string name=\"ext_downloading\">Lejupielādē</string>\n    <string name=\"ext_installing\">Instalē</string>\n    <string name=\"ext_app_info\">Aplikācijas informācija</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"confirm_lock_change\">Autentificējaties, lai apstriprinātu izmaiņas</string>\n    <string name=\"pref_update_only_non_completed\">Ar \\'\\'Pabeigts\\'\\' statusu</string>\n    <string name=\"action_start_downloading_now\">Sākt lejupielādi tūlīt</string>\n    <string name=\"extension_api_error\">Neizdevās iegūt paplašinājumu sarakstu</string>\n    <string name=\"pref_show_navigation_mode_summary\">Īsi parādīt, kad ir atvērts lasītājs</string>\n    <string name=\"restrictions\">Ierobežojums: %s</string>\n    <string name=\"pref_library_update_refresh_metadata\">Automātiski atsvaidzina metadatus</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Atjauninot bibliotēku, meklēt jaunu vāku un kopsavilkumu</string>\n    <string name=\"network_not_metered\">Tikai nemērītā tīklā</string>\n    <string name=\"charging\">Uzlādējot</string>\n    <string name=\"ext_info_version\">Versija</string>\n    <string name=\"ext_info_language\">Valoda</string>\n    <string name=\"ext_info_age_rating\">Vecuma grupa</string>\n    <string name=\"action_sort_last_manga_update\">Pēdējā atjauninājuma pārbaude</string>\n    <string name=\"action_sort_unread_count\">Neizlasītais skaits</string>\n    <string name=\"action_show_manga\">Rādīt ierakstu</string>\n    <string name=\"ext_nsfw_warning\">Šī paplašinājuma avoti var saturēt NSFW (18+) saturu</string>\n    <string name=\"ext_install_service_notif\">Instalē paplašinājumu…</string>\n    <string name=\"ext_installer_pref\">Instalētājs</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku nedarbojas</string>\n    <string name=\"theme_monet\">Dinamisks</string>\n    <string name=\"action_sort_count\">Visi ieraksti</string>\n    <string name=\"cancel_all_for_series\">Atcelt visu šai sērijai</string>\n    <string name=\"action_order_by_upload_date\">Pēc augšupielādes datuma</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) avoti</string>\n    <string name=\"pref_show_nsfw_source\">Rādīt avotos un paplašinājumu sarakstos</string>\n    <string name=\"update_never\">Izslēgts</string>\n    <string name=\"action_display_language_badge\">Valoda</string>\n    <string name=\"action_sort_chapter_fetch_date\">Nodaļas ieneses datums</string>\n    <string name=\"action_close\">Aizvērt</string>\n    <string name=\"pref_category_library_update\">Globāls atjauninājums</string>\n    <string name=\"parental_controls_info\">Šis neliedz neoficiāliem vai, iespējams, nepareizi atzīmētiem paplašinājumiem parādīties NSFW (18+) saturu lietotnē.</string>\n    <string name=\"relative_time_today\">Šodien</string>\n    <string name=\"pref_library_update_interval\">Automātiskie atjauninājumi</string>\n    <string name=\"update_weekly\">Katru nedēļu</string>\n    <string name=\"pref_library_update_restriction\">Automātiskās atjaunināšanas ierīču ierobežojumi</string>\n    <string name=\"exclude\">Izslēgt: %s</string>\n    <string name=\"ext_obsolete\">Novecojis</string>\n    <string name=\"ext_install\">Instalēt</string>\n    <string name=\"ext_pending\">Gaida</string>\n    <string name=\"ext_uninstall\">Atinstalēt</string>\n    <string name=\"untrusted_extension\">Neuzticams paplašinājums</string>\n    <string name=\"untrusted_extension_message\">Šis paplašinājums tika parakstīts ar neuzticamu sertifikātu, un tas netika aktivizēts.\n\\n\n\\nĻaunprātīgs paplašinājums var nolasīt visus saglabātos pieteikšanās akreditācijas datus vai izpildīt patvaļīgu kodu.\n\\n\n\\nUzticoties šim sertifikātam, jūs piekrītat šiem riskiem.</string>\n    <string name=\"ext_installer_legacy\">Mantots</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instalējiet un startējiet Shizuku, lai izmantotu Shizuku kā paplašinājuma instalētāju.</string>\n    <string name=\"pref_fullscreen\">Pilnekrāns</string>\n    <string name=\"pref_show_navigation_mode\">Rādīt skāriena zonu pārklājumu</string>\n    <string name=\"pref_dual_page_invert_summary\">Ja sadalīto plato lapu izvietojums neatbilst lasīšanas virzienam</string>\n    <string name=\"pref_page_transitions\">Animēt lappušu pārejas</string>\n    <string name=\"pref_show_page_number\">Rādīt lappušu numuru</string>\n    <string name=\"pref_show_reading_mode\">Rādīt lasīšanas režīmu</string>\n    <string name=\"pref_show_reading_mode_summary\">Pēc lasītāja atvēršanas īsi parādīt pašreizējo režīmu</string>\n    <string name=\"on\">Ieslēgts</string>\n    <string name=\"off\">Izslēgts</string>\n    <string name=\"pref_custom_brightness\">Pielāgots spilgtums</string>\n    <string name=\"pref_grayscale\">Pelēktoņu</string>\n    <string name=\"pref_custom_color_filter\">Pielāgots krāsu filtrs</string>\n    <string name=\"pref_color_filter_mode\">Krāsu filtra sajaukšanas režīms</string>\n    <string name=\"filter_mode_overlay\">Parklājums</string>\n    <string name=\"action_move_to_top_all_for_series\">Pārvietot sēriju uz augšu</string>\n    <string name=\"pref_category_appearance\">Izskats</string>\n    <string name=\"pref_app_theme\">Aplikācijas tēma</string>\n    <string name=\"theme_greenapple\">Zaļš Ābols</string>\n    <string name=\"theme_midnightdusk\">Pusnakts Krēsla</string>\n    <string name=\"theme_strawberrydaiquiri\">Zemeņu Daikirs</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_tealturquoise\">Teāls un Tirkīzs</string>\n    <string name=\"theme_yinyang\">Jiņ &amp; Jan</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Pilnīgi melns tumšais režīms</string>\n    <string name=\"pref_app_language\">Aplikācijas valoda</string>\n    <string name=\"pref_update_only_completely_read\">Ar nelasītu(ām) nodaļu(ām)</string>\n    <string name=\"pref_update_only_started\">Kas nav sāktas</string>\n    <string name=\"default_category_summary\">Vienmēr jautāt</string>\n    <string name=\"categorized_display_settings\">Kategorijas iestatījumi kārtošanai</string>\n    <string name=\"pref_library_update_categories_details\">Izslēgto kategoriju ieraksti netiks atjaunināti, pat ja tie ir iekļautajās kategorijās.</string>\n    <string name=\"none\">Neviens</string>\n    <string name=\"include\">Iekļaut: %s</string>\n    <string name=\"ext_update_all\">Atjaunināt visu</string>\n    <string name=\"ext_updates_pending\">Gaida atjauninājumu</string>\n    <string name=\"ext_installed\">Instalēts</string>\n    <string name=\"ext_trust\">Uzticams</string>\n    <string name=\"ext_untrusted\">Neuzticams</string>\n    <string name=\"obsolete_extension_message\">Šis paplašinājums vairs nav pieejams. Tas var nedarboties pareizi un var radīt problēmas ar lietotni. Ieteicams to atinstalēt.</string>\n    <string name=\"pref_dual_page_split\">Sadalīt platas lapas</string>\n    <string name=\"pref_dual_page_invert\">Apvērst dalītās lapas izvietojumu</string>\n    <string name=\"pref_cutout_short\">Rādīt saturu izgriezuma apgabalā</string>\n    <string name=\"pref_double_tap_anim_speed\">Dubultpieskāriena animācijas ātrums</string>\n    <string name=\"pref_crop_borders\">Apgriezt apmales</string>\n    <string name=\"action_show_errors\">Pieskarieties, lai skatītu detalizētu informāciju</string>\n    <string name=\"update_6hour\">Ik pēc 6 stundām</string>\n    <string name=\"update_12hour\">Ik pēc 12 stundām</string>\n    <string name=\"update_24hour\">Katru dienu</string>\n    <string name=\"update_48hour\">Ik pēc 2 dienam</string>\n    <string name=\"update_72hour\">Ik pēc 3 dienām</string>\n    <string name=\"connected_to_wifi\">Tikai uz Wi-Fi</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"pref_keep_screen_on\">Turēt ekrānu ieslēgtu</string>\n    <string name=\"zoom_start_center\">Centrs</string>\n    <string name=\"rotation_type\">Rotācijas tips</string>\n    <string name=\"rotation_free\">Brīvs</string>\n    <string name=\"scale_type_original_size\">Oriģinālais lielums</string>\n    <string name=\"zoom_start_automatic\">Automātisks</string>\n    <string name=\"zoom_start_left\">Pa kreisi</string>\n    <string name=\"zoom_start_right\">Pa labi</string>\n    <string name=\"double_tap_anim_speed_normal\">Normāls</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Atļaut dzēst ar grāmatzīmēm atzīmētās nodaļas</string>\n    <string name=\"last_read_chapter\">Pēdējā lasītā nodaļa</string>\n    <string name=\"second_to_last\">Pirmspēdējā nodaļa</string>\n    <string name=\"pref_download_new\">Lejupielādē jaunās nodaļas</string>\n    <string name=\"rotation_reverse_portrait\">Pretējs portrets</string>\n    <string name=\"black_background\">Melns</string>\n    <string name=\"label_default\">Noklusējums</string>\n    <string name=\"pref_reader_actions\">Darbība</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_always_show_chapter_transition\">Vienmēr rādīt nodaļu pāreju</string>\n    <string name=\"pref_hide_threshold\">Jutīgums, lai ritinājumā paslēptu izvēlni</string>\n    <string name=\"rotation_force_landscape\">Aizslēgts ainavas režīmā</string>\n    <string name=\"pref_lowest\">Zemākais</string>\n    <string name=\"pref_remove_after_marked_as_read\">Pēc manuālas atzīmēšanas kā lasītu</string>\n    <string name=\"save_chapter_as_cbz\">Saglabāt kā CBZ arhīvu</string>\n    <string name=\"nav_zone_next\">Nākamais</string>\n    <string name=\"l_nav\">L formas</string>\n    <string name=\"gray_background\">Pelēks</string>\n    <string name=\"disabled_nav\">Atspējots</string>\n    <string name=\"white_background\">Balts</string>\n    <string name=\"vertical_plus_viewer\">Garā strīpā ar pārtraukumu</string>\n    <string name=\"pref_webtoon_side_padding\">Sānu platums</string>\n    <string name=\"pref_remove_exclude_categories\">Izslēgtās kategorijas</string>\n    <string name=\"action_display_local_badge\">Lokālais avots</string>\n    <string name=\"pref_create_folder_per_manga\">Saglabāt lappuses atsevišķās mapēs</string>\n    <string name=\"nav_zone_prev\">Iepriekšējais</string>\n    <string name=\"pref_viewer_type\">Noklusējuma lasīšanas režīms</string>\n    <string name=\"kindlish_nav\">Kindle-ish</string>\n    <string name=\"nav_zone_left\">Pa kreisi</string>\n    <string name=\"edge_nav\">Mala</string>\n    <string name=\"right_and_left_nav\">Pa labi un pa kreisi</string>\n    <string name=\"nav_zone_right\">Pa labi</string>\n    <string name=\"left_to_right_viewer\">Lapaspuses (no kreisās puses uz labo)</string>\n    <string name=\"webtoon_viewer\">Garā strīpā</string>\n    <string name=\"pref_viewer_nav\">Skāriena zonas</string>\n    <string name=\"scale_type_stretch\">Izstiept</string>\n    <string name=\"scale_type_fit_width\">Ietilpt platumā</string>\n    <string name=\"scale_type_fit_height\">Ietilpt augstumā</string>\n    <string name=\"double_tap_anim_speed_0\">Nav animācijas</string>\n    <string name=\"rotation_landscape\">Ainava</string>\n    <string name=\"rotation_portrait\">Portrets</string>\n    <string name=\"rotation_force_portrait\">Aizslēgts portreta režīmā</string>\n    <string name=\"pref_category_reading_mode\">Lasīšanas režīms</string>\n    <string name=\"right_to_left_viewer\">Lapaspuses (no labās puses uz kreiso)</string>\n    <string name=\"vertical_viewer\">Lapaspuses (vertikāli)</string>\n    <string name=\"manga\">Bibliotēkas ieraksti</string>\n    <string name=\"double_tap_anim_speed_fast\">Ātrs</string>\n    <string name=\"pref_rotation_type\">Noklusējuma rotācijas tips</string>\n    <string name=\"pref_high\">Augsts</string>\n    <string name=\"pref_highest\">Augstākais</string>\n    <string name=\"label_warning\">Brīdinājums</string>\n    <string name=\"pref_skip_read_chapters\">Izlaist izlasītās nodaļas</string>\n    <string name=\"pref_inverted_colors\">Invertēts</string>\n    <string name=\"filter_mode_multiply\">Reizināt</string>\n    <string name=\"filter_mode_screen\">Ekrāns</string>\n    <string name=\"pref_skip_filtered_chapters\">Izlaist filtrētās nodaļas</string>\n    <string name=\"pref_reader_navigation\">Navigācija</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Invertēt skaļuma regulēšanas taustiņus</string>\n    <string name=\"pref_read_with_long_tap\">Rādīt darbīūbas ar ilgu pieskārienu</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Izveido mapes atbilstoši ieraksta nosaukumam</string>\n    <string name=\"pref_reader_theme\">Fona krāsa</string>\n    <string name=\"pref_image_scale_type\">Mēroga tips</string>\n    <string name=\"scale_type_fit_screen\">Ietilpt ekrānā</string>\n    <string name=\"scale_type_smart_fit\">Viedā ietilpšana</string>\n    <string name=\"pref_zoom_start\">Tālummaiņas sākuma pozīcija</string>\n    <string name=\"pref_low\">Zems</string>\n    <string name=\"pref_remove_after_read\">Pēc lasīšanas automātiski izdzēst nodaļas</string>\n    <string name=\"disabled\">Atspējots</string>\n    <string name=\"pref_download_new_categories_details\">Izslēgto kategorijas ieraksti netiks lejupielādēti pat tad, ja tie ir iekļautajās kategorijās.</string>\n    <string name=\"pref_read_with_volume_keys\">Skaļuma regulēšanas taustiņi</string>\n    <string name=\"privacy_policy\">Konfidencialitātes politika</string>\n    <string name=\"pref_create_backup_summ\">Var izmantot, lai atjaunotu pašreizējo bibliotēku</string>\n    <string name=\"split_tall_images_summary\">Uzlabo lasītāja veiktspēju, sadalot garus lejupielādētus attēlus</string>\n    <string name=\"enhanced_tracking_info\">Pakalpojumi, kas nodrošina uzlabotus līdzekļus konkrētiem avotiem. Pievienojot bibliotēkai, ieraksts tiks automātiski izsekots.</string>\n    <string name=\"pref_create_backup\">Izveidot dublējumu</string>\n    <string name=\"invalid_backup_file\">Nederīgs dublējuma fails</string>\n    <string name=\"pref_backup_interval\">Dublējumu biežums</string>\n    <string name=\"backup_info\">Kopijas vajadzētu glabāt arī citās vietās.</string>\n    <string name=\"about_dont_kill_my_app\">Dažiem ražotājiem ir papildu lietojumprogrammu ierobežojumi, kas iznīcina fona pakalpojumus. Šajā vietnē ir vairāk informācijas par to, kā to izlabot.</string>\n    <string name=\"tracking_info\">Vienvirziena sinhronizācija, lai atjauninātu izsekošanas pakalpojumu nodaļas progresu. Iestatiet izsekošanu atsevišķiem ierakstiem, izmantojot izsekošanas pogu.</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Palīdz ar fona bibliotēku atjauninājumiem un dublējumiem</string>\n    <string name=\"battery_optimization_disabled\">Akumulatora optimizācija jau ir atspējota</string>\n    <string name=\"pref_verbose_logging_summary\">Drukāt verbose žurnālus sistēmas žurnālā (samazina programmas veiktspēju)</string>\n    <string name=\"pref_auto_update_manga_sync\">Atjaunot progresu pēc lasīšanas</string>\n    <string name=\"tracking_guide\">Izsekošanas rokasgrāmata</string>\n    <string name=\"pref_dump_crash_logs\">Dalīties ar avārijas žurnālu</string>\n    <string name=\"pref_dump_crash_logs_summary\">Saglabā kļūdu žurnālus failā priekš koplietošanas ar izstrādātājiem</string>\n    <string name=\"pref_clear_chapter_cache\">Notīrīt nodaļas kešatmiņu</string>\n    <string name=\"pref_refresh_library_covers\">Atsvaidzināt bibliotēkas vākus</string>\n    <string name=\"clear_database_completed\">Ieraksti izdzēsti</string>\n    <string name=\"empty_backup_error\">Nav bibliotēkas ierakstu, ko dublēt</string>\n    <string name=\"restoring_backup_canceled\">Atjaunošana atcelta</string>\n    <string name=\"restore_miui_warning\">Dublēšana/atjaunošana var nedarboties pareizi, ja ir atspējota MIUI Optimization.</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Notīriet nodaļu kešatmiņu, atverot lietotni</string>\n    <string name=\"clear_database_source_item_count\">%1$d ierakstu, kas nav bibliotēkas, ir datu bāzē</string>\n    <string name=\"label_network\">Tīkls</string>\n    <string name=\"label_data\">Dati</string>\n    <string name=\"used_cache\">Izmantots: %1$s</string>\n    <string name=\"database_clean\">Nav ko tīrīt</string>\n    <string name=\"pref_disable_battery_optimization\">Atspējot akumulatora optimizāciju</string>\n    <string name=\"pref_restore_backup_summ\">Atjaunot bibliotēku no dublējuma faila</string>\n    <string name=\"pref_clear_cookies\">Notīrīt sīkfailus</string>\n    <string name=\"pref_dns_over_https\">Izvēlēties DNS pār HTTPS (DoH)</string>\n    <string name=\"cookies_cleared\">Sīkfaili notīrīti</string>\n    <string name=\"cache_delete_error\">Tīrīšanas laikā radās kļūda</string>\n    <string name=\"pref_clear_database\">Notīrīt datu bāzi</string>\n    <string name=\"pref_clear_database_summary\">Dzēst vēsturi ierakstiem, kas nav saglabāti jūsu bibliotēkā</string>\n    <string name=\"pref_reset_viewer_flags\">Atiestatīt atsevišķu sēriju lasītāja iestatījumus</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Atiestatīt katras sērijas lasīšanas režīmu un orientāciju</string>\n    <string name=\"pref_tablet_ui_mode\">Planšetdatora lietotāja interfeiss</string>\n    <string name=\"pref_verbose_logging\">Verbose reģistrēšana</string>\n    <string name=\"website\">Tīmekļa vietne</string>\n    <string name=\"version\">Versija</string>\n    <string name=\"whats_new\">Jaunumi</string>\n    <string name=\"updated_version\">Atjaunināts uz v%1$s</string>\n    <string name=\"licenses\">Atvērtā avota licences</string>\n    <string name=\"check_for_updates\">Pārbaudīt, vai nav atjauninājumu</string>\n    <string name=\"pref_clear_webview_data\">Notīrīt WebView datus</string>\n    <string name=\"webview_data_deleted\">WebView dati notīrīti</string>\n    <string name=\"label_background_activity\">Fona darbība</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Nevarēja atvērt ierīces iestatījumus</string>\n    <string name=\"services\">Serviss</string>\n    <string name=\"backup_created\">Dublējums izveidots</string>\n    <string name=\"pref_reset_viewer_flags_success\">Visi lasītāja iestatījumi atiestatīti</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nevarēja atiestatīt lasītāja iestatījumus</string>\n    <string name=\"requires_app_restart\">Lai stātos spēkā, ir nepieciešama lietotnes restartēšana</string>\n    <string name=\"action_track\">Sekot</string>\n    <string name=\"enhanced_services\">Uzlabotie pakalpojumi</string>\n    <string name=\"help_translate\">Palīdzi tulkot</string>\n    <string name=\"pref_enable_acra\">Sūtīt avārijas ziņojumus</string>\n    <string name=\"cache_deleted\">Kešatmiņa nodzēsta. %1$d faili ir izdzēsti</string>\n    <string name=\"action_display_cover_only_grid\">Tikai vāka režģis</string>\n    <string name=\"username\">Lietotājvārds</string>\n    <string name=\"password\">Parole</string>\n    <string name=\"pref_acra_summary\">Palīdz novērst jebkādas problēmas. Sensitīvi dati netiks nosūtīti</string>\n    <string name=\"email\">E-pasta adrese</string>\n    <string name=\"login\">Pieteikumvārds</string>\n    <string name=\"pref_incognito_mode_summary\">Pauzē lasīšanas vēsturi</string>\n    <string name=\"pref_incognito_mode\">Inkognito režīms</string>\n    <string name=\"no_results_found\">Rezultāti nav atrasti</string>\n    <string name=\"downloaded_only_summary\">Filtrēt visus ierakstus bibliotēkā</string>\n    <string name=\"no_more_results\">Vairāk rezultātu nav</string>\n    <string name=\"login_success\">Pieteicies</string>\n    <string name=\"logout_title\">Izrakstīties no %1$s?</string>\n    <string name=\"login_title\">Pieteikties %1$s</string>\n    <string name=\"manga_from_library\">No bibliotēkas</string>\n    <string name=\"last_used_source\">Pēdējo reizi izmantots</string>\n    <string name=\"action_global_search_query\">Meklēt \\\"%1$s\\\" globāli</string>\n    <string name=\"latest\">Jaunākais</string>\n    <string name=\"pref_category_reading\">Šobrīd lasa</string>\n    <string name=\"third_to_last\">Trešā pirmspēdējā izlasītā nodaļa</string>\n    <string name=\"pager_viewer\">Lapaspušu skats</string>\n    <string name=\"logout\">Izrakstīties</string>\n    <string name=\"pinned_sources\">Piesprausts</string>\n    <string name=\"other_source\">Citi</string>\n    <string name=\"logout_success\">Tagad jūs esat izrakstījies</string>\n    <string name=\"tabs_header\">Cilnes</string>\n    <string name=\"local_source\">Lokālais avots</string>\n    <string name=\"browse\">Pārlūkot</string>\n    <string name=\"local_source_help_guide\">Lokālo avotu rokasgrāmata</string>\n    <string name=\"no_pinned_sources\">Jums nav piespraustu avotu</string>\n    <string name=\"chapter_not_found\">Nodaļa nav atrasta</string>\n    <string name=\"unknown_error\">Nezināma kļūda</string>\n    <string name=\"fourth_to_last\">Ceturtā pirmspēdējā izlasītā nodaļa</string>\n    <string name=\"label_downloaded_only\">Tikai lejupielādētie</string>\n    <string name=\"downloaded_chapters\">Lejupielādētās nodaļas</string>\n    <string name=\"notification_incognito_text\">Izslēgt inkognito režīmu</string>\n    <string name=\"updating_category\">Atjaunina kategoriju</string>\n    <string name=\"fifth_to_last\">Piektā pirmspēdējā izlasītā nodaļa</string>\n    <string name=\"action_global_search_hint\">Globālā meklēšana…</string>\n    <string name=\"information_cloudflare_bypass_failure\">Neizdevās apiet Cloudflare</string>\n    <string name=\"chapter_error\">Kļūda</string>\n    <string name=\"chapter_paused\">Pārtraukts</string>\n    <string name=\"library_errors_help\">Lai uzzinātu, kā novērst bibliotēkas atjaunināšanas kļūdas, skatiet %1$s</string>\n    <string name=\"transition_current\">Pašreizējais:</string>\n    <string name=\"page_list_empty_error\">Lapas nav atrastas</string>\n    <string name=\"status\">Statuss</string>\n    <string name=\"unknown_author\">Nezināms autors</string>\n    <string name=\"cancelled\">Atcelta</string>\n    <string name=\"in_library\">Bibliotēkā</string>\n    <string name=\"remove_from_library\">Noņemt no bibliotēkas</string>\n    <string name=\"download_unread\">Neizlasīto</string>\n    <string name=\"also_set_chapter_settings_for_library\">Attiecas arī uz visiem ierakstiem manā bibliotēkā</string>\n    <string name=\"set_chapter_settings_as_default\">Uzstādīt kā noklusējuma</string>\n    <string name=\"reading\">Šobrīd lasa</string>\n    <string name=\"error_category_exists\">Kategorija ar šādu nosaukumu jau pastāv!</string>\n    <string name=\"snack_categories_deleted\">Kategorija izdzēsta</string>\n    <string name=\"transition_pages_error\">Neizdevās ielādēt lapas: %1$s</string>\n    <string name=\"recent_manga_time\">Nodaļa %1$s-%2$s</string>\n    <string name=\"migration_dialog_what_to_include\">Atlasīt iekļaujamos datus</string>\n    <string name=\"chapter_downloading_progress\">Lejupielādē (%1$d/%2$d)</string>\n    <string name=\"track_status\">Statuss</string>\n    <string name=\"pref_clear_history\">Notīrīt vēsturi</string>\n    <string name=\"share_page_info\">%1$s: %2$s, lapa %3$d</string>\n    <string name=\"manga_added_library\">Pievienots bibliotēkai</string>\n    <string name=\"snack_add_to_library\">Pievienot bibliotēkai?</string>\n    <string name=\"show_title\">Avota nosaukums</string>\n    <string name=\"manga_cover\">Vāks</string>\n    <string name=\"on_hold\">Aizturēts</string>\n    <string name=\"dialog_with_checkbox_reset\">Atiestatīt visas šī ieraksta nodaļas</string>\n    <string name=\"unknown_status\">Nezināms statuss</string>\n    <string name=\"publishing_finished\">Publicēšana pabeigta</string>\n    <string name=\"manga_tracking_tab\">Izsekošana</string>\n    <string name=\"notification_cover_update_failed\">Neizdevās atjaunināt vāku</string>\n    <string name=\"skipped_reason_completed\">Izlaists, jo sērija ir pabeigta</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nevar atrast lapas %d faila ceļu</string>\n    <string name=\"channel_complete\">Pabeigts</string>\n    <string name=\"channel_errors\">Kļūdas</string>\n    <string name=\"myanimelist_relogin\">Lūdzu, piesakieties MAL vēlreiz</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Tiks noņemts šīs nodaļas lasīšanas datums. Vai esi pārliecināts?</string>\n    <string name=\"viewer\">Lasīšanas režīms</string>\n    <string name=\"no_next_chapter\">Nākošā nodaļa nav atrasta</string>\n    <string name=\"empty_screen\">Nu, šis ir neveikli</string>\n    <string name=\"update_check_open\">Atvērt vietnē GitHub</string>\n    <string name=\"update_check_eol\">Šī Android versija vairs netiek atbalstīta</string>\n    <string name=\"update_check_notification_download_in_progress\">Lejupielādē…</string>\n    <string name=\"channel_progress\">Progress</string>\n    <string name=\"decode_image_error\">Attēlu nevarēja ielādēt</string>\n    <string name=\"confirm_set_image_as_cover\">Vai izmantot šo attēlu kā vāku?</string>\n    <string name=\"pref_category_for_this_series\">Priekš šīs sērijas</string>\n    <string name=\"dropped\">Pamests</string>\n    <string name=\"download_queue_size_warning\">Brīdinājums: liela apjoma lejupielāde var izraisīt to, ka avoti kļūst lēnāki un/vai bloķē %s. Pieskarieties, lai uzzinātu vairāk.</string>\n    <string name=\"skipped_reason_not_started\">Izlaists, jo neviena nodaļa nav izlasīta</string>\n    <string name=\"file_select_cover\">Atlasiet vāka attēlu</string>\n    <string name=\"file_select_backup\">Atlasiet dublējuma failu</string>\n    <string name=\"spen_previous_page\">Iepriekšējā lapa</string>\n    <string name=\"copy\">Kopēt</string>\n    <string name=\"score\">Vērtējums</string>\n    <string name=\"clear_history_completed\">Vēsture izdzēsta</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"local_invalid_format\">Nederīgs nodaļas formāts</string>\n    <string name=\"local_filter_order_by\">Kārtot pēc</string>\n    <string name=\"add_to_library\">Pievienot bibliotēkai</string>\n    <string name=\"manga_removed_library\">Noņemts no bibliotēkas</string>\n    <string name=\"manga_info_expand\">Vairāk</string>\n    <string name=\"manga_info_collapse\">Mazāk</string>\n    <string name=\"clipboard_copy_error\">Neizdevās kopēt uz starpliktuvi</string>\n    <string name=\"description_placeholder\">Nav apraksta</string>\n    <string name=\"show_chapter_number\">Nodaļas numurs</string>\n    <string name=\"sort_by_source\">Pēc avota</string>\n    <string name=\"sort_by_number\">Pēc nodaļas numura</string>\n    <string name=\"manga_download\">Lejuplādēt</string>\n    <string name=\"error_sharing_cover\">Kļūda koplietojot vāku</string>\n    <string name=\"no_chapters_error\">Nav atrastu nodaļu</string>\n    <string name=\"add_tracking\">Pievienot izsekošanu</string>\n    <string name=\"paused\">Pauzēts</string>\n    <string name=\"plan_to_read\">Plānoju lasīt</string>\n    <string name=\"wish_list\">Vēlmju saraksts</string>\n    <string name=\"picture_saved\">Attēls saglabāts</string>\n    <string name=\"error_saving_picture\">Kļūda, saglabājot attēlu</string>\n    <string name=\"cover_updated\">Vāks atjaunināts</string>\n    <string name=\"not_installed\">Nav instalēts</string>\n    <string name=\"notification_size_warning\">Daudz atjauninājumi kaitē avotiem un var izraisīt lēnākus atjauninājumus un arī lielāku akumulatora lietojumu. Pieskarieties, lai uzzinātu vairāk.</string>\n    <string name=\"source_not_installed\">Avots nav instalēts: %1$s</string>\n    <string name=\"complete_list\">Pabeigto saraksts</string>\n    <string name=\"on_hold_list\">Aizturēto saraksts</string>\n    <string name=\"copied_to_clipboard\">Kopēts uz starpliktuvi:\n\\n%1$s</string>\n    <string name=\"error_saving_cover\">Kļūda saglabājot vāku</string>\n    <string name=\"reading_list\">Lasīšanas saraksts</string>\n    <string name=\"notification_chapters_multiple\">Nodaļas %1$s</string>\n    <string name=\"notification_new_chapters\">Atrastas jaunas nodaļas</string>\n    <string name=\"notification_chapters_single_and_more\">Nodaļa %1$s un vēl %2$d</string>\n    <string name=\"file_picker_error\">Nav atrasta failu atlases programma</string>\n    <string name=\"notification_first_add_to_library\">Lūdzu, pievienojiet ierakstu savai bibliotēkai, pirms to darāt</string>\n    <string name=\"notification_chapters_single\">Nodaļa %1$s</string>\n    <string name=\"download_notifier_split_page_not_found\">Sadalīšanas laikā netika atrasta lapa %d</string>\n    <string name=\"skipped_reason_not_caught_up\">Izlaists, jo ir nelasītas nodaļas</string>\n    <string name=\"notification_update_error\">%1$d atjauninājums(-i) neizdevās</string>\n    <string name=\"learn_more\">Pieskarieties, lai uzzinātu vairāk</string>\n    <string name=\"channel_app_updates\">Lietotnes atjauninājumi</string>\n    <string name=\"update_check_notification_update_available\">Ir pieejama jauna versija!</string>\n    <string name=\"chapter_settings_updated\">Atjaunināti noklusējuma nodaļu iestatījumi</string>\n    <string name=\"pref_landscape_zoom\">Automātiski tuvināt ainavas attēlus</string>\n    <string name=\"spen_next_page\">Nākošā lapa</string>\n    <string name=\"pref_navigate_pan\">Izplest platus attēlus</string>\n    <string name=\"cant_open_last_read_chapter\">Nevar atvērt pēdējo lasīto nodaļu</string>\n    <string name=\"repeating\">Pārlasīšana</string>\n    <string name=\"delete_downloads_for_manga\">Vai dzēst lejupielādētās nodaļas?</string>\n    <string name=\"date\">Datums</string>\n    <string name=\"on_hiatus\">Pārtraukumā</string>\n    <string name=\"display_mode_chapter\">Nodaļa %1$s</string>\n    <string name=\"cover_saved\">Vāks saglabāts</string>\n    <string name=\"clear_history_confirmation\">Vai esat pārliecināts? Visa vēsture tiks pazaudēta.</string>\n    <string name=\"source_empty_screen\">Nav atrasts avots</string>\n    <string name=\"source_filter_empty_screen\">Neviens instalēts avots nav atrasts</string>\n    <string name=\"update_check_notification_download_complete\">Pieskarieties, lai instalētu atjauninājumu</string>\n    <string name=\"custom_cover\">Pielāgots vāks</string>\n    <string name=\"unfinished_list\">Nepabeigto saraksts</string>\n    <string name=\"track_started_reading_date\">Sākuma datums</string>\n    <string name=\"track_finished_reading_date\">Pabeigšanas datums</string>\n    <string name=\"track_type\">Tips</string>\n    <string name=\"source_unsupported\">Avots netiek atbalstīts</string>\n    <string name=\"error_no_match\">Neizdevās atrast</string>\n    <string name=\"custom_filter\">Pielāgots filtrs</string>\n    <string name=\"set_as_cover\">Iestatīt kā vāku</string>\n    <string name=\"chapter_progress\">Lapa: %1$d</string>\n    <string name=\"transition_finished\">Pabeigts:</string>\n    <string name=\"transition_next\">Nākošais:</string>\n    <string name=\"transition_previous\">Iepriekšējais:</string>\n    <string name=\"transition_no_next\">Nav nākošās nodaļas</string>\n    <string name=\"transition_no_previous\">Nav iepriekšējās nodaļas</string>\n    <string name=\"transition_pages_loading\">Ielādē lapas…</string>\n    <string name=\"loader_not_implemented_error\">Avots nav atrasts</string>\n    <string name=\"migration_help_guide\">Avota migrācijas rokasgrāmata</string>\n    <string name=\"migrate\">Migrēt</string>\n    <string name=\"confirm_set_chapter_settings\">Vai esat pārliecināts, ka šos iestatījumus vēlaties saglabāt kā noklusējuma?</string>\n    <string name=\"filter_mode_lighten\">Dodge / Gaišāks</string>\n    <string name=\"filter_mode_darken\">Burn / Tumšāks</string>\n    <string name=\"sort_by_upload_date\">Pēc augšupielādes datuma</string>\n    <string name=\"update_check_notification_download_error\">Lejupielādēt kļūdu</string>\n    <string name=\"confirm_delete_chapters\">Vai esat pārliecināts, ka vēlaties dzēst atlasītās nodaļas?</string>\n    <string name=\"chapter_settings\">Nodaļu iestatījumi</string>\n    <string name=\"migration_selection_prompt\">Izvēlieties avotu, no kura migrēt</string>\n    <string name=\"download_queue_error\">Nevarēja lejupielādēt nodaļas. Varat mēģināt vēlreiz lejupielādes sadaļā</string>\n    <string name=\"download_insufficient_space\">Nevarēja lejupielādēt nodaļas, jo trūkst krātuves vietas</string>\n    <string name=\"getting_started_guide\">Darba sākšanas rokasgrāmata</string>\n    <string name=\"information_empty_category_dialog\">Jums vēl nav nevienas kategorijas.</string>\n    <string name=\"error_user_agent_string_invalid\">Nederīga lietotāja agent virkne</string>\n    <string name=\"pref_skip_dupe_chapters\">Izlaist vienādas nodaļas</string>\n    <string name=\"track_remove_finish_date_conf_text\">Tādējādi no %s tiks noņemts iepriekš atlasītais beigu datums</string>\n    <string name=\"delete_category\">Dzēst kategoriju</string>\n    <string name=\"pref_reader_summary\">Lasīšanas režīmi, displejs, navigācija</string>\n    <string name=\"pref_advanced_summary\">Avārijas žurnāli, akumulatora optimizācija</string>\n    <string name=\"pref_backup_summary\">Manuālā un automātiskā dublēšana</string>\n    <string name=\"theme_tidalwave\">Paisuma vilnis</string>\n    <string name=\"multi_lang\">Vairāku</string>\n    <string name=\"download_ahead\">Lejupielādēt uz priekšu</string>\n    <string name=\"download_ahead_info\">Darbojas tikai ja pašreizējā nodaļa + nākošā nodaļa ir jau lejupielādēta.</string>\n    <string name=\"pref_invalidate_download_cache\">Nederīgs lejupielāžu indekss</string>\n    <string name=\"label_overview_section\">Pārskats</string>\n    <string name=\"label_stats\">Statistika</string>\n    <string name=\"label_started\">Sākts</string>\n    <string name=\"label_downloaded\">Lejupielādēts</string>\n    <string name=\"label_local\">Lokālais</string>\n    <string name=\"invalid_location\">Nederīga atrašanās vieta: %s</string>\n    <string name=\"unknown_title\">Nezināms nosaukums</string>\n    <string name=\"label_tracker_section\">Izsekotāji</string>\n    <string name=\"label_read_chapters\">Lasīts</string>\n    <string name=\"label_tracked_titles\">Izsekotie ieraksti</string>\n    <string name=\"label_mean_score\">Vidējais vērtējums</string>\n    <string name=\"label_used\">Izmantots</string>\n    <string name=\"not_applicable\">Nav piemērojams</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"popular\">Populārs</string>\n    <string name=\"are_you_sure\">Vai tu esi pārliecināts?</string>\n    <string name=\"updates_last_update_info_just_now\">Tikko</string>\n    <string name=\"action_update_category\">Atjaunināt kategoriju</string>\n    <string name=\"action_open_random_manga\">Atvērt nejaušu ierakstu</string>\n    <string name=\"action_remove_everything\">Noņemt visu</string>\n    <string name=\"action_display_show_continue_reading_button\">Turpināt lasīt poga</string>\n    <string name=\"auto_download_while_reading\">Automātiska lejupielāde lasīšanas laikā</string>\n    <string name=\"enhanced_services_not_installed\">Pieejams, bet avots nav instalēts: %s</string>\n    <string name=\"missing_storage_permission\">Krātuves atļaujas nav piešķirtas</string>\n    <string name=\"copied_to_clipboard_plain\">Kopēts starpliktuvē</string>\n    <string name=\"updates_last_update_info\">Bibliotēka pēdējo reizi atjaunināta: %s</string>\n    <string name=\"skipped_reason_not_always_update\">Izlaists, jo sērijai nav nepieciešami atjauninājumi</string>\n    <string name=\"track_remove_start_date_conf_text\">Tādējādi no %s tiks noņemts iepriekš atlasītais sākuma datums</string>\n    <string name=\"overlay_header\">Pārklājums</string>\n    <string name=\"pref_security_summary\">Aplikācijas slēdzis, ekrāna aizsargāšana</string>\n    <string name=\"action_copy_to_clipboard\">Kopēt starpliktuvē</string>\n    <string name=\"pref_downloads_summary\">Automātiskā lejupielāde, lejupielādes rinda</string>\n    <string name=\"pref_tracking_summary\">Vienvirziena progresa sinhronizācija, uzlabota sinhronizācija</string>\n    <string name=\"pref_browse_summary\">Avoti, paplašinājumi, globālā meklēšana</string>\n    <string name=\"pref_appearance_summary\">Tēma, datuma un laika formāti</string>\n    <string name=\"pref_library_summary\">Kategorijas, globāli atjauninājumi, nodaļu vilkšana</string>\n    <string name=\"pref_library_update_show_tab_badge\">Rādīt nelasīto skaitu uz atjauninājumu ikonas</string>\n    <string name=\"appwidget_unavailable_locked\">Logrīks nav pieejams, ja ir iespējota lietotņu bloķēšana</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"internal_error\">InternalError: Par plašāku informāciju skatiet avārijas žurnālu</string>\n    <string name=\"delete_category_confirmation\">Vai vēlaties dzēst kategoriju \\\"%s\\\"?</string>\n    <string name=\"track_error\">%1$s kļūda: %2$s</string>\n    <string name=\"update_already_running\">Atjauninājums jau darbojas</string>\n    <string name=\"crash_screen_description\">%s radās neparedzēta kļūda. Mēs iesakām dalīties ar avārijas žurnālu mūsu atbalsta kanālā Discord lietotnē.</string>\n    <string name=\"pref_page_rotate\">Pagrieziet platas lapas, lai tās ietilptu</string>\n    <string name=\"pref_page_rotate_invert\">Apvērst orientācija pagrieztām platām lapām</string>\n    <string name=\"split_tall_images\">Sadalīt augstus attēlus</string>\n    <string name=\"pref_hide_in_library_items\">Slēpt ierakstus, kas jau ir bibliotēkā</string>\n    <string name=\"track_remove_date_conf_title\">Vai noņemt datumu?</string>\n    <string name=\"information_no_manga_category\">Kategorija ir tukša</string>\n    <string name=\"appwidget_updates_description\">Skatiet savus nesen atjauninātos bibliotēkas ierakstus</string>\n    <string name=\"remove_manga\">Jūs gatavojaties noņemt \\\"%s\\\" no savas bibliotēkas</string>\n    <string name=\"action_not_now\">Ne tagad</string>\n    <string name=\"action_search_hint\">Meklē…</string>\n    <string name=\"fdroid_warning\">F-Droid versijas netiek oficiāli atbalstītas.\n\\nPieskarieties, lai uzzinātu vairāk.</string>\n    <string name=\"download_notifier_cache_renewal\">Pārbauda lejupielādes</string>\n    <string name=\"error_user_agent_string_blank\">Lietotāja agent virknes lauks nedrīkst būt tukšs</string>\n    <string name=\"information_no_entries_found\">Šajā kategorijā nav atrasts neviens ieraksts</string>\n    <string name=\"pref_user_agent_string\">Noklusējuma lietotāja agent virkne</string>\n    <string name=\"pref_reset_user_agent_string\">Atiestatīt noklusējuma lietotāja agent virkni</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Piespiediet lietotni atkārtoti pārbaudīt lejupielādētās nodaļas</string>\n    <string name=\"crash_screen_title\">Ak nē!</string>\n    <string name=\"crash_screen_restart_application\">Restartējiet lietotni</string>\n    <string name=\"label_completed_titles\">Pabeigtie ieraksti</string>\n    <string name=\"label_read_duration\">Lasīšanas ilgums</string>\n    <string name=\"label_titles_section\">Ieraksti</string>\n    <string name=\"label_titles_in_global_update\">Globālajā atjauninājumā</string>\n    <string name=\"label_total_chapters\">Kopā</string>\n    <string name=\"information_required_plain\">*obligāti</string>\n    <string name=\"create_backup_file_error\">Nevarēja izveidot dublējuma failu</string>\n    <string name=\"download_cache_invalidated\">Lejupielādes indeks ir nederīgs</string>\n    <string name=\"skipped_reason_not_in_release_period\">Izlaists, jo šodien nebija gaidīta jauna nodaļa</string>\n    <string name=\"pref_chapter_swipe_end\">Vilkt uz labās puses darbību</string>\n    <string name=\"pref_debug_info\">Atkļūdošanas informācija</string>\n    <string name=\"information_cloudflare_help\">Pieskarieties šeit, lai iegūtu palīdzību ar Cloudflare</string>\n    <string name=\"has_results\">Ir rezultāti</string>\n    <string name=\"track_delete_remote_text\">Noņemt arī no %s</string>\n    <string name=\"pref_chapter_swipe_start\">Vilkt uz kreisās puses darbību</string>\n    <string name=\"manga_display_interval_title\">Novērtēt katru</string>\n    <string name=\"action_set_interval\">Iestatīt intervālu</string>\n    <string name=\"action_filter_interval_custom\">Pielāgots datu iegūšanas intervāls</string>\n    <string name=\"action_sort_next_updated\">Nākamais gaidāmais atjauninājums</string>\n    <string name=\"track_activity_name\">Pieteikšanās izsekošana</string>\n    <string name=\"syncing_library\">Sinhronizē bibliotēku</string>\n    <string name=\"library_sync_complete\">Bibliotēkas sinhronizācija ir pabeigta</string>\n    <string name=\"intervals_header\">Intervāli</string>\n    <string name=\"track_delete_text\">Šis noņems locālo izsekošanu.</string>\n    <string name=\"delete_downloaded\">Izdzēst lejupielādētos</string>\n    <string name=\"track_delete_title\">Vai noņemt %s izsekošanu?</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"pref_update_only_in_release_period\">Ārpus paredzamā izlaišanas perioda</string>\n    <string name=\"pref_double_tap_zoom\">Dubult-pieskarieties, lai tuvinātu</string>\n    <string name=\"unlock_app_title\">Atbloķēt %s</string>\n    <string name=\"manga_display_modified_interval_title\">Atjaunināt katru</string>\n    <string name=\"exception_http\">HTTP %d, pārbaudiet vietni iekš WebView</string>\n    <string name=\"exception_offline\">Nav interneta savienojuma</string>\n    <string name=\"exception_unknown_host\">Nevarēja sasniegt %s</string>\n    <string name=\"action_sort_tracker_score\">Izsekošanas rezultāts</string>\n    <string name=\"label_data_storage\">Dati un uzglabāšana</string>\n    <string name=\"pref_storage_location\">Krātuves atrašanās vieta</string>\n    <string name=\"action_create\">Izveidot</string>\n    <string name=\"relative_time_span_never\">Nekad</string>\n    <string name=\"pref_flash_page_summ\">Samazina spoku rašanos uz e-ink displejiem</string>\n    <string name=\"pref_storage_location_info\">Izmanto automātiskajām dublējumkopijām, nodaļu lejupielādei un vietējam avotam.</string>\n    <string name=\"action_apply\">Pieteikties</string>\n    <string name=\"action_revert_to_default\">Atgriezt noklusējuma iestatījumus</string>\n    <string name=\"action_menu_overflow_description\">Vairāk iespēju</string>\n    <string name=\"last_auto_backup_info\">Pēdējā automātiskā dublēšana: %s</string>\n    <string name=\"selected\">Atlasīts</string>\n    <string name=\"no_scanlators_found\">Nav atrasts neviens scanlators</string>\n    <string name=\"not_selected\">Nav atlasīts</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Pārvietot sēriju uz apakšu</string>\n    <string name=\"scanlator\">Skanlators</string>\n    <string name=\"pref_flash_page\">Zibsnīt baltu, kad maina lapu</string>\n    <string name=\"pref_storage_usage\">Krātuves izmantošana</string>\n    <string name=\"notification_updating_progress\">Bibliotēkas atjaunināšana... (%s)</string>\n    <string name=\"action_bar_up_description\">Virzīties uz augšu</string>\n    <string name=\"file_null_uri_error\">Nav atlasīts neviens fails</string>\n    <string name=\"source_settings\">Avota iestatījumi</string>\n    <string name=\"app_settings\">Lietotnes iestatījumi</string>\n    <string name=\"pref_relative_format\">Relatīviās laika stampas</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\", nevis \\\"%2$s\\\"</string>\n    <string name=\"exclude_scanlators\">Izslēgt skanlatorus</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ml/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">ഇന്നലെ</item>\n        <item quantity=\"other\">%1$d ദിവസം മുമ്പ്</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">നാളെ</item>\n        <item quantity=\"other\">%1$d ദിവസത്തിനുള്ളിൽ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%2$s പിശകോടെ %1$s-നുള്ളിൽ ചെയ്തു</item>\n        <item quantity=\"other\">%2$s പിശകുകളോടെ %1$s-നുള്ളിൽ ചെയ്തു</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d അധ്യായം ഒഴിവാക്കുന്നു, ഒന്നുകിൽ ഉറവിടം അത് കാണുന്നില്ല അല്ലെങ്കിൽ അത് ഫിൽട്ടർ ചെയ്തിരിക്കുന്നു</item>\n        <item quantity=\"other\">%d അധ്യായങ്ങൾ ഒഴിവാക്കുന്നു, ഒന്നുകിൽ ഉറവിടം കാണുന്നില്ല അല്ലെങ്കിൽ അവ ഫിൽട്ടർ ചെയ്തിരിക്കുന്നു</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">വിപുലീകരണ അപ്ഡേറ്റ് ലഭ്യമാണ്</item>\n        <item quantity=\"other\">%d വിപുലീകരണ അപ്‌ഡേറ്റുകൾ ലഭ്യമാണ്</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">അടുത്ത അധ്യായം</item>\n        <item quantity=\"other\">അടുത്ത %d അധ്യായങ്ങൾ</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s മിനിറ്റിന് ശേഷം</item>\n        <item quantity=\"other\">%1$s മിനിറ്റിന് ശേഷം</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d വിഭാഗം</item>\n        <item quantity=\"other\">%d വിഭാഗങ്ങൾ</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">അടുത്ത വായിക്കാത്ത അധ്യായം</item>\n        <item quantity=\"other\">അടുത്ത %d വായിക്കാത്ത അധ്യായങ്ങൾ</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s ശേഷിക്കുന്നു</item>\n        <item quantity=\"other\">%1$s ശേഷിക്കുന്നു</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 ദിവസം</item>\n        <item quantity=\"other\">%d ദിവസം</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s അധ്യായം കാണുന്നില്ല</item>\n        <item quantity=\"other\">%1$s അധ്യായങ്ങൾ കാണുന്നില്ല</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s അധ്യായം</item>\n        <item quantity=\"other\">%1$s അധ്യായങ്ങൾ</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d ട്രാക്കർ</item>\n        <item quantity=\"other\">%d ട്രാക്കറുകൾ</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d പുതിയ അധ്യായം</item>\n        <item quantity=\"other\">%1$d പുതിയ അധ്യായങ്ങൾ</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">അധ്യായങ്ങൾ %1$s-ഉം പിന്നെ 1-ഉം</item>\n        <item quantity=\"other\">%1$s അധ്യായങ്ങളും പിന്നെ %2$d-ഉം</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d റിപ്പോ</item>\n        <item quantity=\"other\">%d റിപ്പോകൾ</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 പേജ്</item>\n        <item quantity=\"other\">%1$s പേജ്</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d എൻട്രിക്ക്</item>\n        <item quantity=\"other\">%d എൻട്രികൾക്കായി</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ml/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_data_storage\">ഡാറ്റാ ആന്റ് സ്റ്റോറേജ്</string>\n    <string name=\"history\">ചരിത്രം</string>\n    <string name=\"action_search\">തിരയുക</string>\n    <string name=\"action_global_search\">ആഗോള തിരയൽ</string>\n    <string name=\"action_bookmark\">ബുക്ക്മാർക്ക് അധ്യായം</string>\n    <string name=\"action_enable_all\">എല്ലാം പ്രവർത്തനക്ഷമമാക്കുക</string>\n    <string name=\"action_mark_as_unread\">വായിച്ചിട്ടില്ലെന്ന് അടയാളപ്പെടുത്തുക</string>\n    <string name=\"action_disable_all\">എല്ലാം പ്രവർത്തനരഹിതമാക്കുക</string>\n    <string name=\"action_edit\">തിരുത്തുക</string>\n    <string name=\"action_add\">ചേർക്കുക</string>\n    <string name=\"action_update_category\">വിഭാഗം അപ്ഡേറ്റ് ചെയ്യുക</string>\n    <string name=\"action_open_random_manga\">ക്രമരഹിതമായ എൻട്രി തുറക്കുക</string>\n    <string name=\"action_add_category\">വിഭാഗം ചേർക്കുക</string>\n    <string name=\"action_edit_cover\">കവർ എഡിറ്റ് ചെയ്യുക</string>\n    <string name=\"action_view_chapters\">അധ്യായങ്ങൾ കാണുക</string>\n    <string name=\"action_pause\">വിരാമം</string>\n    <string name=\"action_retry\">വീണ്ടും ശ്രമിക്കുക</string>\n    <string name=\"action_previous_chapter\">മുൻ അധ്യായം</string>\n    <string name=\"action_next_chapter\">അടുത്ത അധ്യായം</string>\n    <string name=\"action_sort_latest_chapter\">ഏറ്റവും പുതിയ അധ്യായം</string>\n    <string name=\"off\">ഓഫ്</string>\n    <string name=\"selected\">തിരഞ്ഞെടുക്കപ്പെട്ട</string>\n    <string name=\"action_bar_up_description\">മുകളിലേക്ക് നയിക്കുക</string>\n    <string name=\"name\">പേര്</string>\n    <string name=\"categories\">വിഭാഗങ്ങൾ</string>\n    <string name=\"chapters\">അദ്ധ്യായങ്ങൾ</string>\n    <string name=\"track\">ട്രാക്കിംഗ്</string>\n    <string name=\"delete_downloaded\">ഡൗൺലോഡ് ചെയ്‌തത് ഇല്ലാതാക്കുക</string>\n    <string name=\"label_more\">ഇനിയും</string>\n    <string name=\"label_download_queue\">ഡൗൺലോഡ് ക്യൂ</string>\n    <string name=\"label_library\">ലൈബ്രറി</string>\n    <string name=\"label_recent_updates\">അപ്ഡേറ്റുകൾ</string>\n    <string name=\"label_upcoming\">അടുത്തതായി</string>\n    <string name=\"label_recent_manga\">ചരിത്രം</string>\n    <string name=\"label_sources\">ഉൽഭവം</string>\n    <string name=\"label_backup\">ബാക്കപ്പും റിസ്റ്റോറും</string>\n    <string name=\"manga\">ലൈബ്രറി എൻട്രികൾ</string>\n    <string name=\"label_stats\">സ്ഥിതിവിവരക്കണക്കുകൾ</string>\n    <string name=\"label_migration\">മൈഗ്രേറ്റ് ചെയ്യുക</string>\n    <string name=\"label_extensions\">വിപുലീകരണങ്ങൾ</string>\n    <string name=\"label_extension_info\">വിപുലീകരണ വിവരം</string>\n    <string name=\"label_help\">സഹായം</string>\n    <string name=\"label_default\">സ്ഥിരസ്ഥിതി</string>\n    <string name=\"label_warning\">മുന്നറിയിപ്പ്</string>\n    <string name=\"label_started\">ആരംഭിച്ചു</string>\n    <string name=\"label_local\">പ്രാദേശികമായ</string>\n    <string name=\"label_downloaded\">ഡൗൺലോഡ് ചെയ്തു</string>\n    <string name=\"unlock_app_title\">%s അൺലോക്ക് ചെയ്യുക</string>\n    <string name=\"confirm_lock_change\">മാറ്റം സ്ഥിരീകരിക്കാൻ പ്രാമാണീകരിക്കുക</string>\n    <string name=\"action_settings\">ക്രമീകരണങ്ങൾ</string>\n    <string name=\"action_menu\">പട്ടിക</string>\n    <string name=\"action_filter\">ഫിൽട്ടർ ചെയ്യുക</string>\n    <string name=\"action_set_interval\">ഇടവേള സജ്ജമാക്കുക</string>\n    <string name=\"action_filter_bookmarked\">ബുക്ക്‌മാർക്ക് ചെയ്തു</string>\n    <string name=\"action_filter_tracked\">ട്രാക്ക് ചെയ്തു</string>\n    <string name=\"action_filter_unread\">വായിക്കാത്തത്</string>\n    <string name=\"action_filter_interval_custom\">ഇഷ്‌ടാനുസൃതമാക്കിയ അപ്‌ഡേറ്റ് ആവൃത്തി</string>\n    <string name=\"action_filter_empty\">ഫിൽട്ടർ നീക്കം ചെയ്യുക</string>\n    <string name=\"action_sort_alpha\">അക്ഷരമാലാക്രമത്തിൽ</string>\n    <string name=\"action_sort_count\">ആകെ എൻട്രികൾ</string>\n    <string name=\"action_sort_total\">ആകെ അധ്യായങ്ങൾ</string>\n    <string name=\"action_sort_last_read\">അവസാനം വായിച്ചത്</string>\n    <string name=\"action_sort_last_manga_update\">അവസാന അപ്ഡേറ്റ് പരിശോധന</string>\n    <string name=\"action_sort_unread_count\">വായിക്കാത്ത എണ്ണം</string>\n    <string name=\"action_sort_next_updated\">അടുത്തതായി പ്രതീക്ഷിക്കുന്ന അപ്ഡേറ്റ്</string>\n    <string name=\"action_sort_chapter_fetch_date\">അധ്യായം ലഭിച്ച തീയതി</string>\n    <string name=\"action_sort_date_added\">തീയതി ചേർത്തു</string>\n    <string name=\"action_sort_tracker_score\">ട്രാക്കർ സ്കോർ</string>\n    <string name=\"action_search_hint\">തിരയുക…</string>\n    <string name=\"action_search_settings\">തിരയൽ ക്രമീകരണങ്ങൾ</string>\n    <string name=\"action_select_all\">എല്ലാം തിരഞ്ഞെടുക്കുക</string>\n    <string name=\"action_select_inverse\">വിപരീതം തിരഞ്ഞെടുക്കുക</string>\n    <string name=\"action_mark_as_read\">വായിച്ചതായി അടയാളപ്പെടുത്തുക</string>\n    <string name=\"action_mark_previous_as_read\">മുമ്പത്തേത് വായിച്ചതായി അടയാളപ്പെടുത്തുക</string>\n    <string name=\"action_download\">ഡൗൺലോഡ്</string>\n    <string name=\"action_remove_bookmark\">അൺബുക്ക്മാർക്ക് അധ്യായം</string>\n    <string name=\"action_delete\">ഇല്ലാതാക്കുക</string>\n    <string name=\"action_update_library\">ലൈബ്രറി അപ്ഡേറ്റ് ചെയ്യുക</string>\n    <string name=\"action_edit_categories\">വിഭാഗങ്ങൾ എഡിറ്റ് ചെയ്യുക</string>\n    <string name=\"action_rename_category\">വിഭാഗത്തിൻ്റെ പേരുമാറ്റുക</string>\n    <string name=\"action_move_category\">വിഭാഗങ്ങൾ സജ്ജമാക്കുക</string>\n    <string name=\"delete_category_confirmation\">\\\"%s\\\" എന്ന വിഭാഗം ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?</string>\n    <string name=\"delete_category\">വിഭാഗം ഇല്ലാതാക്കുക</string>\n    <string name=\"on\">ഓൺ</string>\n    <string name=\"action_menu_overflow_description\">കൂടുതൽ ഓപ്ഷനുകൾ</string>\n    <string name=\"not_selected\">തിരഞ്ഞെടുത്തില്ല</string>\n    <string name=\"scanlator\">സ്കാൻലേറ്റർ</string>\n    <string name=\"label_settings\">ക്രമീകരണങ്ങൾ</string>\n    <string name=\"action_remove\">നീക്കം ചെയ്യുക</string>\n    <string name=\"action_remove_everything\">എല്ലാം നീക്കം ചെയ്യുക</string>\n    <string name=\"action_start\">ആരംഭിക്കുക</string>\n    <string name=\"action_resume\">പുനരാരംഭിക്കുക</string>\n    <string name=\"action_open_in_browser\">ബ്രൗസറിൽ തുറക്കുക</string>\n    <string name=\"action_copy_to_clipboard\">ക്ലിപ്പ്ബോർഡിലേയ്ക്ക് പകർത്തുക</string>\n    <string name=\"action_open_in_web_view\">വെബ്‌വ്യൂവിൽ തുറക്കുക</string>\n    <string name=\"action_migrate\">മൈഗ്രേറ്റ് ചെയ്യുക</string>\n    <string name=\"action_display_mode\">ഡിസ്പ്ലേ മോഡ്</string>\n    <string name=\"action_oldest\">ഏറ്റവും പഴയത്</string>\n    <string name=\"action_cancel\">റദ്ദാക്കുക</string>\n    <string name=\"action_display_show_continue_reading_button\">വായന തുടരുക ബട്ടൺ</string>\n    <string name=\"action_display_language_badge\">ഭാഷ</string>\n    <string name=\"action_cancel_all\">എല്ലാം റദ്ദാക്കുക</string>\n    <string name=\"action_ok\">ശരി</string>\n    <string name=\"cancel_all_for_series\">ഈ സീരീസിനായി എല്ലാം റദ്ദാക്കുക</string>\n    <string name=\"action_move_to_top\">മുകളിലേക്ക് നീങ്ങുക</string>\n    <string name=\"action_order_by_chapter_number\">അധ്യായ നമ്പർ പ്രകാരം</string>\n    <string name=\"action_newest\">ഏറ്റവും പുതിയത്</string>\n    <string name=\"action_show_manga\">എൻട്രി കാണിക്കുക</string>\n    <string name=\"action_display_grid\">കോംപാക്റ്റ് ഗ്രിഡ്</string>\n    <string name=\"action_display_comfortable_grid\">സുഖപ്രദമായ ഗ്രിഡ്</string>\n    <string name=\"action_display_download_badge\">ഡൌൺലോഡ് ചെയ്ത അധ്യായങ്ങൾ</string>\n    <string name=\"action_display_local_badge\">ലോക്കൽ സോഴ്സ്</string>\n    <string name=\"action_disable\">ഡിസേബിൾ</string>\n    <string name=\"action_pin\">പിൻ ചെയ്യുക</string>\n    <string name=\"action_apply\">അപ്ലൈ</string>\n    <string name=\"action_sort\">സോർട്</string>\n    <string name=\"action_display_list\">ലിസ്റ്റ്</string>\n    <string name=\"action_display_cover_only_grid\">ചിത്രം മാത്രമുള്ള ഗ്രിഡ്</string>\n    <string name=\"action_reset\">പുനഃസജ്ജമാക്കുക</string>\n    <string name=\"action_move_to_top_all_for_series\">പരമ്പര മുകളിലേക്ക് നീക്കുക</string>\n    <string name=\"action_display_show_tabs\">വിഭാഗം ടാബുകൾ കാണിക്കുക</string>\n    <string name=\"action_unpin\">അൺപിൻ ചെയ്യുക</string>\n    <string name=\"action_order_by_upload_date\">അപ്‌ലോഡ് തീയതി പ്രകാരം</string>\n    <string name=\"action_asc\">ആരോഹണം</string>\n    <string name=\"action_desc\">അവരോഹണം</string>\n    <string name=\"action_install\">ഇൻസ്റ്റാൾ</string>\n    <string name=\"action_move_to_bottom\">താഴേക്ക് നീക്കുക</string>\n    <string name=\"action_share\">പങ്കിടുക</string>\n    <string name=\"action_display\">പ്രദർശിപ്പിക്കുക</string>\n    <string name=\"action_save\">സേവ്</string>\n    <string name=\"onboarding_heading\">സ്വാഗതം!</string>\n    <string name=\"onboarding_permission_install_apps\">ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യാനുള്ള അനുവാദം</string>\n    <string name=\"action_start_downloading_now\">ഡൌൺലോഡ് ചെയ്യാൻ തുടങ്ങുക</string>\n    <string name=\"onboarding_storage_action_select\">ഒരു ഫോൾഡർ സെലക്ട് ചെയുക</string>\n    <string name=\"onboarding_storage_help_action\">സ്റ്റോറേജ് ഗൈഡ്</string>\n    <string name=\"onboarding_permission_notifications\">നോട്ടിഫിക്കേഷൻ കാണിക്കാനുള്ള അനുവാദം</string>\n    <string name=\"loading\">ലോഡിങ്ങ്…</string>\n    <string name=\"onboarding_storage_selection_required\">ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കണം</string>\n    <string name=\"action_show_errors\">വിശദാംശങ്ങൾ കാണാൻ ടാപ്പുചെയ്യുക</string>\n    <string name=\"action_close\">അടയ്ക്കുക</string>\n    <string name=\"action_display_show_number_of_items\">ഇനങ്ങളുടെ എണ്ണം കാണിക്കുക</string>\n    <string name=\"action_revert_to_default\">സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുക</string>\n    <string name=\"action_undo\">അൻഡൂ</string>\n    <string name=\"action_open_log\">ലോഗ് തുറക്കുക</string>\n    <string name=\"ext_install\">ഇൻസ്റ്റാൾ</string>\n    <string name=\"ext_trust\">വിശ്വസിക്കൂ</string>\n    <string name=\"update_48hour\">എല്ലാ 2 ദിവസവും</string>\n    <string name=\"update_weekly\">ആഴ്ചയിൽ ഒരിക്കൽ</string>\n    <string name=\"update_24hour\">എല്ലാ ദിവസവും</string>\n    <string name=\"obsolete_extension_message\">ഈ എക്സ്റ്റൻഷൻ ഇനി ലഭ്യമല്ല. ഇത് ശരിയായി പ്രവർത്തിച്ചേക്കില്ല, ആപ്പിൽ പ്രശ്നങ്ങൾ ഉണ്ടാക്കാം. ഇത് അൺഇൻസ്റ്റാൾ ചെയ്യാൻ റെകമെൻഡ് ചെയ്യുന്നു.</string>\n    <string name=\"charging\">ചാർജ് ചെയ്യുമ്പോൾ</string>\n    <string name=\"update_never\">അപ്ഡേറ്റ് ചെയ്യരുത്</string>\n    <string name=\"action_webview_forward\">മുന്നോട്ട്</string>\n    <string name=\"action_webview_back\">പുറകിലുള്ള</string>\n    <string name=\"action_restore\">റിസ്റ്റോർ</string>\n    <string name=\"update_12hour\">ഓരോ 12 മണിക്കൂറിലും</string>\n    <string name=\"update_6hour\">ഓരോ 6 മണിക്കൂറിലും</string>\n    <string name=\"landscape\">ലാൻഡ്സ്കേപ്പ്</string>\n    <string name=\"pref_library_columns\">ഗ്രിഡ് വലിപ്പം</string>\n    <string name=\"ext_update\">അപ്ഡേറ്റ്</string>\n    <string name=\"all\">എല്ലാം</string>\n    <string name=\"default_category_summary\">എപ്പോഴും ചോദിക്കുക</string>\n    <string name=\"ext_downloading\">ഡൗൺലോഡ് ചെയ്യുന്നു</string>\n    <string name=\"ext_uninstall\">അൺഇൻസ്റ്റാൾ</string>\n    <string name=\"ext_untrusted\">അവിശ്വസനീയം</string>\n    <string name=\"ext_installing\">ഇൻസ്റ്റാൾ ചെയ്യുന്നു</string>\n    <string name=\"pref_category_general\">സാധാരണ</string>\n    <string name=\"onboarding_permission_crashlytics_description\">ഡവലപ്പർമാർക്ക് അനാമീകരിച്ച ക്രാഷ് ലോഗുകൾ അയയ്‌ക്കുക</string>\n    <string name=\"pref_category_appearance\">വീക്ഷണം</string>\n    <string name=\"onboarding_permission_analytics_description\">അപ്ലിക്കേഷന്റെ ഫീച്ചറുകൾ മെച്ചപ്പെടുത്താൻ അനാമീകരിച്ച ഉപയോക്തൃ ഡാറ്റ അയയ്‌ക്കുക.</string>\n    <string name=\"onboarding_permission_analytics\">വിശകലനത്തിനുവഴി അനുവദിക്കുക</string>\n    <string name=\"onboarding_permission_crashlytics\">ക്രാഷ് ലോഗുകൾ അയയ്ക്കുക</string>\n    <string name=\"pref_category_library\">ലൈബ്രറി</string>\n    <string name=\"onboarding_guides_new_user\">%s-ൽ പുതിയവനാവോ? ആരംഭിക്കാൻ മാർഗരേഖ കാണാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.</string>\n    <string name=\"onboarding_permission_action_grant\">അനുവദിക്കുക</string>\n    <string name=\"onboarding_guides_returning_user\">%s-നെ പുനഃസ്ഥാപിക്കുകയാണോ?</string>\n    <string name=\"action_copy_link\">ലിങ്ക് പകര്‍ത്തുക</string>\n    <string name=\"ext_install_service_notif\">വിപുലീകരണം ഇൻസ്റ്റാൾ ചെയ്യുന്നു…</string>\n    <string name=\"ext_permission_install_apps_warning\">വിപുലീകരണങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ അനുമതികൾ ആവശ്യമാണ്. അനുവദിക്കാൻ ഇവിടെ അടിക്കുക.</string>\n    <string name=\"action_sort_random\">യാദൃച്ഛികം</string>\n    <string name=\"ext_info_language\">ഭാഷ</string>\n    <string name=\"automatic_background\">സ്വയമേവ</string>\n    <string name=\"ext_installer_shizuku_stopped\">ഷിസുകു പ്രവർത്തനമല്ല</string>\n    <string name=\"nav_zone_left\">ഇടത്</string>\n    <string name=\"ext_info_age_rating\">വയസ്സ് റേറ്റിംഗ്</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_firebase\">വിശകലനവും തകരാറ് ലോഗുകളും</string>\n    <string name=\"lock_with_biometrics\">അൺലോക്ക് ആവശ്യമാണ്</string>\n    <string name=\"pref_date_format\">തീയതി രൂപം</string>\n    <string name=\"pref_manage_notifications\">അറിയിപ്പുകൾ കൈകാര്യം ചെയ്യുക</string>\n    <string name=\"pref_app_language\">ആപ്പ് ഭാഷ</string>\n    <string name=\"pref_category_security\">സുരക്ഷയും സ്വകാര്യതയും</string>\n    <string name=\"pref_show_nsfw_source\">ഉറവിടങ്ങളിലും വിപുലീകരണ പട്ടികയിലും കാണിക്കുക</string>\n    <string name=\"parental_controls_info\">ഇത് അനൗദ്യോഗികമായോ തെറ്റായി അടയാളപ്പെടുത്തിയോ ഉള്ള വിപുലീകരണങ്ങൾ ആപ്പിനുള്ളിൽ NSFW (18+) ഉള്ളടക്കം പ്രദർശിപ്പിക്കുന്നത് തടയില്ല.</string>\n    <string name=\"relative_time_today\">ഇന്ന്</string>\n    <string name=\"onboarding_description\">ആദ്യമായി ചില ക്രമീകരണങ്ങൾ സജ്ജമാക്കാം. പിന്നീട് ഇവയെല്ലാം സെറ്റിംഗ്സിൽ നിന്ന് എപ്പോൾ വേണമെങ്കിലും മാറ്റാനാകും.</string>\n    <string name=\"lock_always\">എപ്പോഴും</string>\n    <string name=\"pref_category_about\">കുറിച്ച്</string>\n    <string name=\"onboarding_action_next\">അടുത്തത്</string>\n    <string name=\"onboarding_action_finish\">ആരംഭിക്കുക</string>\n    <string name=\"onboarding_action_skip\">ഒഴിവാക്കുക</string>\n    <string name=\"onboarding_storage_info\">%1$s ചാപ്റ്റർ ഡൗൺലോഡുകൾ, ബാക്കപ്പുകൾ എന്നിവയും മറ്റും സംഭരിക്കുന്ന ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കുക.\\n\\nഒരു പ്രത്യേക ഫോൾഡർ ശുപാർശ ചെയ്യുന്നു.\\n\\nതിരഞ്ഞെടുത്ത ഫോൾഡർ: %2$s</string>\n    <string name=\"onboarding_storage_help_info\">പഴയ പതിപ്പിൽ നിന്ന് അപ്ഡേറ്റ് ചെയ്യുകയാണ്, എന്ത് തിരഞ്ഞെടുക്കണമെന്ന് ഉറപ്പില്ലേ? കൂടുതൽ വിവരങ്ങൾക്ക് സ്റ്റോറേജ് ഗൈഡ് കാണുക.</string>\n    <string name=\"onboarding_permission_install_apps_description\">To install source extensions.</string>\n    <string name=\"onboarding_permission_notifications_description\">ലൈബ്രറി അപ്‌ഡേറ്റുകൾക്കും മറ്റും അറിയിപ്പ് നേടുക.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">പശ്ചാത്തല ബാറ്ററി ഉപയോഗം</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">ദീർഘകാല ലൈബ്രറി അപ്‌ഡേറ്റുകൾ, ഡൗൺലോഡ്, ബാക്കപ്പ് പുനഃസ്ഥാപിക്കൽ എന്നിവയ്ക്കുള്ള തടസ്സങ്ങൾ ഒഴിവാക്കുക.</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/mr/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d श्रेणी</item>\n        <item quantity=\"other\">%d श्रेण्या</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">1 मिनीटानंतर</item>\n        <item quantity=\"other\">%1$s मिनीटांनंतर</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/mr/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">नाव</string>\n    <string name=\"chapters\">अध्याय</string>\n    <string name=\"label_more\">अधिक</string>\n    <string name=\"label_settings\">सेटिंग्ज</string>\n    <string name=\"label_recent_manga\">इतिहास</string>\n    <string name=\"label_backup\">बॅकअप आणि रीस्टोर</string>\n    <string name=\"label_help\">मदत</string>\n    <string name=\"action_settings\">सेटिंग्ज</string>\n    <string name=\"action_filter\">फिल्टर</string>\n    <string name=\"action_filter_unread\">न वाचलेले</string>\n    <string name=\"action_filter_empty\">फिल्टर काढा</string>\n    <string name=\"action_sort_total\">एकूण अध्याय</string>\n    <string name=\"history\">इतिहास</string>\n    <string name=\"action_sort_alpha\">वर्णक्रमानुसार</string>\n    <string name=\"action_sort_last_read\">शेवटचे वाचले</string>\n    <string name=\"action_sort_latest_chapter\">नवीन अध्याय</string>\n    <string name=\"action_search\">शोध</string>\n    <string name=\"action_select_all\">सर्व निवडा</string>\n    <string name=\"action_mark_as_read\">वाचलेले म्हणून चिन्हांकित करा</string>\n    <string name=\"action_mark_as_unread\">वाचले नाही अशी खुण करा</string>\n    <string name=\"action_download\">डाउनलोड</string>\n    <string name=\"action_delete\">हटवा</string>\n    <string name=\"black_background\">काळा</string>\n    <string name=\"channel_common\">सामान्य</string>\n    <string name=\"action_menu\">मेनू</string>\n    <string name=\"action_filter_bookmarked\">बुकमार्क आहे</string>\n    <string name=\"track\">ट्रॅकिंग</string>\n    <string name=\"manga\">लायब्ररी इंत्रिज</string>\n    <string name=\"categories\">श्रेण्या</string>\n    <string name=\"information_empty_category\">तुम्ही श्रेण्या बनविल्या नाही आहेत, प्लस वर दाबून तुम्ही श्रेणी बनवू शकता.</string>\n    <string name=\"information_empty_library\">तुमची संग्रहालय खाली आहे</string>\n    <string name=\"information_no_recent_manga\">अलीकडे काहीही वाचले नाही</string>\n    <string name=\"information_no_recent\">कोणतेही अलीकडील अद्यतने नाही</string>\n    <string name=\"information_no_downloads\">डाऊनलोड नाहीत</string>\n    <string name=\"label_extension_info\">एक्स्टेन्शन माहिती</string>\n    <string name=\"label_extensions\">एक्स्टेन्शन</string>\n    <string name=\"label_migration\">स्त्रोत स्तालांतर</string>\n    <string name=\"label_sources\">स्त्रोत</string>\n    <string name=\"label_recent_updates\">अपडेट्स</string>\n    <string name=\"label_library\">संग्रहालय</string>\n    <string name=\"label_download_queue\">डाऊनलोड रांग</string>\n    <string name=\"action_restore\">पुनर्संचयित करा</string>\n    <string name=\"action_open_log\">लॉग उघडा</string>\n    <string name=\"action_undo\">पूर्ववत करा</string>\n    <string name=\"action_reset\">रीसेट करा</string>\n    <string name=\"action_save\">जतन करा</string>\n    <string name=\"action_share\">शेअर</string>\n    <string name=\"action_install\">स्थापित करा</string>\n    <string name=\"action_move_to_bottom\">सगळ्यात खाली हलवा</string>\n    <string name=\"action_move_to_top\">वर हलवा</string>\n    <string name=\"action_oldest\">सगळ्यात जुने</string>\n    <string name=\"action_newest\">सगळ्यात नवे</string>\n    <string name=\"action_sort\">क्रमवारी लावा</string>\n    <string name=\"action_cancel_all\">सगळे रद्द करा</string>\n    <string name=\"action_cancel\">रद्द करा</string>\n    <string name=\"action_unpin\">पिन काढा</string>\n    <string name=\"action_pin\">पिन</string>\n    <string name=\"action_display_download_badge\">Download बॅज</string>\n    <string name=\"action_display_list\">यादी</string>\n    <string name=\"action_display_grid\">ग्रीड</string>\n    <string name=\"action_display\">प्रदर्शन</string>\n    <string name=\"action_display_mode\">प्रदर्शन मोड</string>\n    <string name=\"action_open_in_web_view\">वेबव्ह्यू मध्ये उघडा</string>\n    <string name=\"action_open_in_browser\">ब्राऊझर मध्ये उघडा</string>\n    <string name=\"action_resume\">सुरू करा</string>\n    <string name=\"action_remove\">काढून टाका</string>\n    <string name=\"action_retry\">पुन्हा प्रयत्न करा</string>\n    <string name=\"action_next_chapter\">पुढील अध्याय</string>\n    <string name=\"action_previous_chapter\">मागील अध्याय</string>\n    <string name=\"action_pause\">विराम द्या</string>\n    <string name=\"action_view_chapters\">अध्याय बघा</string>\n    <string name=\"action_edit_cover\">कव्हर बदलवा</string>\n    <string name=\"action_move_category\">श्रेणी सेट करा</string>\n    <string name=\"action_rename_category\">श्रेणी पुन्हा नामांकित करा</string>\n    <string name=\"action_edit_categories\">श्रेणी संपादन</string>\n    <string name=\"action_add_category\">श्रेणी जोडा</string>\n    <string name=\"action_add\">जोडा</string>\n    <string name=\"action_edit\">सुधहरण</string>\n    <string name=\"action_update_library\">संग्रहालय अध्यातानित करा</string>\n    <string name=\"action_remove_bookmark\">बुकमार्क काढा</string>\n    <string name=\"action_bookmark\">बुकमार्क</string>\n    <string name=\"action_mark_previous_as_read\">मागील वाचलेले म्हणून चिन्हांकित करा</string>\n    <string name=\"action_select_inverse\">व्यस्त निवडा</string>\n    <string name=\"action_global_search\">जागतिक शोध</string>\n    <string name=\"secure_screen_summary\">अ‍ॅप्स स्विच करताना अॅप मधील सामग्री लपवा व स्क्रीनशॉट अवरोधित करा</string>\n    <string name=\"secure_screen\">स्क्रीन सुरक्षित करा</string>\n    <string name=\"lock_never\">कधीही नाही</string>\n    <string name=\"lock_always\">नेहमी</string>\n    <string name=\"lock_when_idle\">निष्क्रिय झाल्यावर लॉक करा</string>\n    <string name=\"lock_with_biometrics\">बिॉमेट्रिकस सह लॉक करा</string>\n    <string name=\"pref_category_security\">सुरक्षा</string>\n    <string name=\"pref_manage_notifications\">सुचनेचे व्यवस्थापन</string>\n    <string name=\"pref_date_format\">तारिकेचा स्वरूप</string>\n    <string name=\"theme_system\">तंत्राचे अनुसरण करा</string>\n    <string name=\"theme_dark\">डार्क</string>\n    <string name=\"theme_light\">लाइट</string>\n    <string name=\"pref_category_about\">ॲप बद्दल</string>\n    <string name=\"pref_category_advanced\">प्रगत</string>\n    <string name=\"pref_category_tracking\">ट्रॅकिंग</string>\n    <string name=\"pref_category_downloads\">डाउनलोडस</string>\n    <string name=\"pref_category_reader\">वाचक</string>\n    <string name=\"pref_category_library\">संग्रहालय</string>\n    <string name=\"pref_category_general\">जनरल</string>\n    <string name=\"app_not_available\">ऐप उपलब्ध नाही</string>\n    <string name=\"loading\">लोड होत आहे …</string>\n    <string name=\"action_webview_refresh\">रीफ्रेश</string>\n    <string name=\"action_webview_forward\">पुढे</string>\n    <string name=\"action_webview_back\">मागे जा</string>\n    <string name=\"pref_crop_borders\">सीमानां कापा</string>\n    <string name=\"pref_show_page_number\">पृष्ठ क्रमांक दर्शवा</string>\n    <string name=\"pref_double_tap_anim_speed\">दोनदा टॅप साठी अ‍ॅनिमेशन गती</string>\n    <string name=\"pref_page_transitions\">पृष्ठ संक्रमण संजीवित करा</string>\n    <string name=\"pref_cutout_short\">कटआउट क्षेत्रात सामग्री दर्शवा</string>\n    <string name=\"obsolete_extension_message\">हे एक्सटेन्शन उपलब्ध नाही.</string>\n    <string name=\"untrusted_extension_message\">हे एक्सटेन्शन एका अविश्वासू प्रमानपत्रासहित आले आहे म्हणून हे स्थापित होऊ शकले नाही.\n\\n\n\\nअसे अविश्वासू एक्सटेन्शन आपले लॉगिन बाबत माहिती चोरू शकते.\n\\n\n\\nव अश्या एक्सटेन्शन वर विश्वास करून तुम्ही ह्या सगद्या जोखीम घेत आहेत.</string>\n    <string name=\"untrusted_extension\">अविश्वासू एक्सटेन्शन</string>\n    <string name=\"ext_uninstall\">विस्थापित करा</string>\n    <string name=\"ext_untrusted\">अविश्वासू</string>\n    <string name=\"ext_trust\">विश्वास</string>\n    <string name=\"ext_installed\">स्थापित झाले</string>\n    <string name=\"ext_installing\">स्थापित होत आहे</string>\n    <string name=\"ext_downloading\">डाउनलोड होत आहेत</string>\n    <string name=\"ext_pending\">प्रलंबित</string>\n    <string name=\"ext_install\">स्थापित करा</string>\n    <string name=\"ext_obsolete\">कालबाह्य</string>\n    <string name=\"ext_update\">अध्यातणीत करा</string>\n    <string name=\"ext_updates_pending\">प्रलंबित अध्यातणे</string>\n    <string name=\"all\">सगडे</string>\n    <string name=\"default_category_summary\">नेहमी विचारायचे</string>\n    <string name=\"default_category\">मूलभूत श्रेणी</string>\n    <string name=\"pref_update_only_non_completed\">फक्त चालू असलेल्याच मांगा आधीतणीत करायचे</string>\n    <string name=\"charging\">चार्ज होत आहे</string>\n    <string name=\"pref_library_update_restriction\">लायब्ररी अद्ययावत प्रतिबंधी</string>\n    <string name=\"double_tap_anim_speed_0\">अनिमेशन नाही</string>\n    <string name=\"zoom_start_center\">सेंटर</string>\n    <string name=\"zoom_start_right\">उजवी बाजू</string>\n    <string name=\"zoom_start_left\">डावी बाजू</string>\n    <string name=\"zoom_start_automatic\">ऑटोमॅटिक</string>\n    <string name=\"pref_zoom_start\">प्रारंभ स्तीतीला झूम करून</string>\n    <string name=\"scale_type_smart_fit\">स्मार्ट फिट</string>\n    <string name=\"scale_type_original_size\">मूळ आकार</string>\n    <string name=\"scale_type_fit_height\">फिट उंची</string>\n    <string name=\"scale_type_fit_width\">फिट रुंदी</string>\n    <string name=\"scale_type_stretch\">ताणून लांब करणे</string>\n    <string name=\"scale_type_fit_screen\">फिट स्क्रीन</string>\n    <string name=\"pref_image_scale_type\">स्केल प्रकार</string>\n    <string name=\"pager_viewer\">पृष्ठबद्ध</string>\n    <string name=\"vertical_plus_viewer\">सतत उभे</string>\n    <string name=\"webtoon_viewer\">वेबटून</string>\n    <string name=\"vertical_viewer\">सरळ</string>\n    <string name=\"right_to_left_viewer\">उजवीकडून डावीकडे</string>\n    <string name=\"left_to_right_viewer\">डावीकडून उजवीकडे</string>\n    <string name=\"pref_viewer_type\">डीफॉल्ट वाचन मोड</string>\n    <string name=\"gray_background\">फिक्का काडा</string>\n    <string name=\"white_background\">पांढरा</string>\n    <string name=\"pref_reader_theme\">बॅकग्राऊंड रंग</string>\n    <string name=\"pref_read_with_long_tap\">दीर्घ टॅप संवाद</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">व्हॉल्यूम की उलटा करा</string>\n    <string name=\"pref_read_with_volume_keys\">व्हॉल्यूम की</string>\n    <string name=\"pref_reader_navigation\">नॅव्हिगेशन</string>\n    <string name=\"pref_skip_filtered_chapters\">फिल्टर केलेले अध्याय वगळा</string>\n    <string name=\"pref_skip_read_chapters\">अध्याय वाचले म्हणून चिन्हांकित करा</string>\n    <string name=\"pref_keep_screen_on\">स्क्रीन सुरू ठेवा</string>\n    <string name=\"filter_mode_darken\">जाडे / गडद करा</string>\n    <string name=\"filter_mode_lighten\">डॉज / लाईट करा</string>\n    <string name=\"filter_mode_screen\">स्क्रीन</string>\n    <string name=\"filter_mode_multiply\">गुणाकार</string>\n    <string name=\"filter_mode_overlay\">थर</string>\n    <string name=\"pref_color_filter_mode\">रंग फिल्टर मिश्रण मोड</string>\n    <string name=\"pref_custom_color_filter\">कस्टम रंग फिल्टर वापरा</string>\n    <string name=\"pref_custom_brightness\">कस्टम ब्राइटनेस वापरा</string>\n    <string name=\"pref_fullscreen\">फुलस्क्रीन</string>\n    <string name=\"update_weekly\">साप्ताहिक</string>\n    <string name=\"update_48hour\">दर २ दिवसांत</string>\n    <string name=\"update_24hour\">दररोज</string>\n    <string name=\"update_12hour\">दर १२ तासाला</string>\n    <string name=\"update_6hour\">दर ६ तासाला</string>\n    <string name=\"update_never\">स्वतः करा</string>\n    <string name=\"pref_library_update_interval\">लायब्ररी अद्यतन वारंवारता</string>\n    <string name=\"pref_category_library_update\">अद्यतने</string>\n    <string name=\"landscape\">लँडस्केप</string>\n    <string name=\"portrait\">पोर्ट्रेट</string>\n    <string name=\"pref_library_columns\">आयटम प्रती पंक्ती</string>\n    <string name=\"pref_category_display\">दाखवा</string>\n    <string name=\"hide_notification_content\">सूचना सामग्री लपवा</string>\n    <string name=\"double_tap_anim_speed_normal\">सामान्य</string>\n    <string name=\"pref_viewer_nav\">नैविगेशन माध्य</string>\n    <string name=\"nav_zone_right\">उजवी</string>\n    <string name=\"nav_zone_left\">डावी</string>\n    <string name=\"nav_zone_next\">पुढचं</string>\n    <string name=\"nav_zone_prev\">मागचं</string>\n    <string name=\"right_and_left_nav\">उजवी आंही डावी</string>\n    <string name=\"edge_nav\">कडा</string>\n    <string name=\"kindlish_nav\">किंडल सारख</string>\n    <string name=\"pref_category_appearance\">प्रदर्शन</string>\n    <string name=\"last_read_chapter\">शेवटी वाचलेला पाठ</string>\n    <string name=\"label_network\">नेटवर्क</string>\n    <string name=\"label_downloaded_only\">केवळ डाउनलोड केलेले</string>\n    <string name=\"pref_category_theme\">थीम</string>\n    <string name=\"label_started\">चालु केले</string>\n    <string name=\"label_local\">लोकल</string>\n    <string name=\"label_downloaded\">डाऊनलोड झाले</string>\n    <string name=\"on\">चालु</string>\n    <string name=\"confirm_lock_change\">बदलांची पुष्टी करण्यासाठी प्रमाणीकरण करा</string>\n    <string name=\"label_warning\">चेतावणी</string>\n    <string name=\"off\">बंद</string>\n    <string name=\"action_set_interval\">मध्यांतर</string>\n    <string name=\"action_filter_tracked\">ट्रॅक केले</string>\n    <string name=\"action_filter_interval_custom\">कस्टमाईज्ड फेच इंटरवल</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ms/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">Selepas %1$s minit</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d bab baharu</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">Bab %1$s dan %2$d lagi</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">Untuk entri %d</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">%d kemas kini sambungan tersedia</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">%1$s baki</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d kategori</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">Selesai dalam %1$s dengan %2$s ralat</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">Jumlah bab: %1$s</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d penjejak</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">Melangkau %d bab, sama ada sumber tidak mempunyai bab tersebut, atau ia ditapis keluar</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d hari lalu</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">%d bab tidak dibaca seterusnya</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">%d bab seterusnya</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">Hilang %1$s bab</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d hari</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d repositori</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">Dalam %1$d hari</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s halaman</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">Berhijrah %1$d Kemasukan?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">Salin %1$d penyertaan?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d Penyertaan telah dilangkau</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ms/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nama</string>\n    <string name=\"categories\">Kategori</string>\n    <string name=\"manga\">Entri pustaka</string>\n    <string name=\"chapters\">Bab-bab</string>\n    <string name=\"track\">Penjejakan</string>\n    <string name=\"history\">Sejarah</string>\n    <string name=\"label_settings\">Tetapan</string>\n    <string name=\"label_download_queue\">Giliran muat turun</string>\n    <string name=\"label_library\">Pustaka</string>\n    <string name=\"label_recent_manga\">Sejarah</string>\n    <string name=\"label_recent_updates\">Kemas kini</string>\n    <string name=\"label_backup\">Sandaran dan memulih</string>\n    <string name=\"action_settings\">Tetapan</string>\n    <string name=\"action_filter\">Tapis</string>\n    <string name=\"action_filter_bookmarked\">Ditanda</string>\n    <string name=\"action_filter_unread\">Belum dibaca</string>\n    <string name=\"action_filter_empty\">Kosongkan tapisan</string>\n    <string name=\"action_sort_alpha\">Abjad</string>\n    <string name=\"action_sort_total\">Jumlah bab</string>\n    <string name=\"action_sort_last_read\">Bacaan terakhir</string>\n    <string name=\"action_search\">Carian</string>\n    <string name=\"action_global_search\">Carian keseluruhan</string>\n    <string name=\"action_select_all\">Pilih semua</string>\n    <string name=\"action_mark_as_read\">Tandakan sebagai sudah dibaca</string>\n    <string name=\"action_mark_as_unread\">Tandakan sebagai belum dibaca</string>\n    <string name=\"action_mark_previous_as_read\">Tandakan yang sebelum sebagai sudah dibaca</string>\n    <string name=\"action_download\">Muat turun</string>\n    <string name=\"action_bookmark\">Penanda bab</string>\n    <string name=\"action_remove_bookmark\">Buang penanda bab</string>\n    <string name=\"action_delete\">Padam</string>\n    <string name=\"action_update_library\">Kemas kini pustaka</string>\n    <string name=\"action_edit\">Ubah</string>\n    <string name=\"action_add\">Tambah</string>\n    <string name=\"action_add_category\">Tambah kategori</string>\n    <string name=\"action_edit_categories\">Edit kategori</string>\n    <string name=\"action_rename_category\">Ubah nama kategori</string>\n    <string name=\"action_move_category\">Tetapkan kategori</string>\n    <string name=\"action_edit_cover\">Ubah muka hadapan</string>\n    <string name=\"action_pause\">Henti sebentar</string>\n    <string name=\"action_previous_chapter\">Bab sebelumnya</string>\n    <string name=\"action_next_chapter\">Bab seterusnya</string>\n    <string name=\"action_retry\">Cuba semula</string>\n    <string name=\"action_remove\">Keluarkan</string>\n    <string name=\"action_resume\">Sambung</string>\n    <string name=\"action_open_in_browser\">Buka di pelayar</string>\n    <string name=\"action_display_mode\">Mod paparan</string>\n    <string name=\"action_display\">Paparan</string>\n    <string name=\"action_display_grid\">Grid padat</string>\n    <string name=\"action_display_list\">Senarai</string>\n    <string name=\"action_cancel\">Batal</string>\n    <string name=\"action_sort\">Susun mengikut</string>\n    <string name=\"action_install\">Pasang</string>\n    <string name=\"action_share\">Kongsi</string>\n    <string name=\"action_save\">Simpan</string>\n    <string name=\"action_reset\">Set semula</string>\n    <string name=\"action_undo\">Batal</string>\n    <string name=\"action_open_log\">Buka log</string>\n    <string name=\"action_restore\">Kembalikan ke asal</string>\n    <string name=\"loading\">Muat…</string>\n    <string name=\"app_not_available\">Aplikasi tidak tersedia</string>\n    <string name=\"pref_category_general\">Umum</string>\n    <string name=\"pref_category_reader\">Pembaca</string>\n    <string name=\"pref_category_downloads\">Muat turun</string>\n    <string name=\"pref_category_tracking\">Penjejakan</string>\n    <string name=\"pref_category_advanced\">Lanjutan</string>\n    <string name=\"pref_category_about\">Tentang</string>\n    <string name=\"pref_library_columns\">Item setiap baris</string>\n    <string name=\"portrait\">Potret</string>\n    <string name=\"landscape\">Landskap</string>\n    <string name=\"pref_library_update_interval\">Kemas kini automatik</string>\n    <string name=\"update_never\">Mati</string>\n    <string name=\"update_6hour\">Setiap 6 jam</string>\n    <string name=\"update_12hour\">Setiap 12 jam</string>\n    <string name=\"update_24hour\">Setiap hari</string>\n    <string name=\"update_48hour\">Setiap 2 hari</string>\n    <string name=\"update_weekly\">Setiap minggu</string>\n    <string name=\"all\">Semua</string>\n    <string name=\"pref_library_update_restriction\">Sekatan kemas kini automatik peranti</string>\n    <string name=\"charging\">Ketika mengecas</string>\n    <string name=\"pref_update_only_non_completed\">Langkau entri dengan status \\\"Sudah selesai\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Kemas kini selepas dibaca</string>\n    <string name=\"default_category\">Kategori lalai</string>\n    <string name=\"default_category_summary\">Sentiasa tanya</string>\n    <string name=\"pref_fullscreen\">Skrin penuh</string>\n    <string name=\"pref_page_transitions\">Menggerakkan peralihan muka surat</string>\n    <string name=\"pref_show_page_number\">Tunjuk nombor muka surat</string>\n    <string name=\"pref_crop_borders\">Potong pinggiran</string>\n    <string name=\"pref_custom_brightness\">Kecerahan tersuai</string>\n    <string name=\"pref_custom_color_filter\">Turas warna tersuai</string>\n    <string name=\"pref_keep_screen_on\">Tetap nyalakan skrin</string>\n    <string name=\"pref_reader_navigation\">Navigasi</string>\n    <string name=\"pref_read_with_volume_keys\">Butang volum</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Songsangkan butang kelantangan</string>\n    <string name=\"pref_reader_theme\">Warna latar</string>\n    <string name=\"white_background\">Putih</string>\n    <string name=\"black_background\">Hitam</string>\n    <string name=\"pref_viewer_type\">Mod membaca lalai</string>\n    <string name=\"left_to_right_viewer\">Muka surat (kiri ke kanan)</string>\n    <string name=\"right_to_left_viewer\">Muka surat (kanan ke kiri)</string>\n    <string name=\"vertical_viewer\">Muka surat (menegak)</string>\n    <string name=\"webtoon_viewer\">Sebaris panjang</string>\n    <string name=\"pref_image_scale_type\">Skala</string>\n    <string name=\"scale_type_fit_screen\">Muat skrin</string>\n    <string name=\"scale_type_stretch\">Regang</string>\n    <string name=\"scale_type_fit_width\">Muat lebar skrin</string>\n    <string name=\"scale_type_fit_height\">Muat ketinggian skrin</string>\n    <string name=\"scale_type_original_size\">Saiz asal</string>\n    <string name=\"scale_type_smart_fit\">Muat pintar</string>\n    <string name=\"pref_zoom_start\">Kedudukan permulaan zum</string>\n    <string name=\"zoom_start_automatic\">Automatik</string>\n    <string name=\"zoom_start_left\">Kiri</string>\n    <string name=\"zoom_start_right\">Kanan</string>\n    <string name=\"zoom_start_center\">Tengah</string>\n    <string name=\"pref_rotation_type\">Jenis putaran skrin lalai</string>\n    <string name=\"rotation_free\">Bebas</string>\n    <string name=\"rotation_force_portrait\">Kekal potret</string>\n    <string name=\"rotation_force_landscape\">Kekal landskap</string>\n    <string name=\"color_filter_r_value\">Merah</string>\n    <string name=\"color_filter_g_value\">Hijau</string>\n    <string name=\"color_filter_b_value\">Biru</string>\n    <string name=\"color_filter_a_value\">Alpha</string>\n    <string name=\"pref_remove_after_marked_as_read\">Selepas secara manual ditandakan sebagai dibaca</string>\n    <string name=\"pref_remove_after_read\">Selepas membaca padam secara automatik</string>\n    <string name=\"disabled\">Dinyahkan</string>\n    <string name=\"last_read_chapter\">Bab terakhir dibaca</string>\n    <string name=\"second_to_last\">Bab kedua terakhir dibaca</string>\n    <string name=\"third_to_last\">Bab ketiga terakhir dibaca</string>\n    <string name=\"fourth_to_last\">Bab keempat terakhir dibaca</string>\n    <string name=\"fifth_to_last\">Bab kelima terakhir dibaca</string>\n    <string name=\"pref_download_new\">Muat turun bab baharu</string>\n    <string name=\"services\">Penjejak</string>\n    <string name=\"pref_create_backup\">Buat sandaran</string>\n    <string name=\"pref_create_backup_summ\">Boleh digunakan untuk memulihkan pustaka semasa</string>\n    <string name=\"pref_restore_backup\">Pulihkan sandaran</string>\n    <string name=\"pref_restore_backup_summ\">Pulihkan pustaka daripada fail sandaran</string>\n    <string name=\"pref_backup_interval\">Kekerapan sandaran automatik</string>\n    <string name=\"backup_created\">Sandaran dicipta</string>\n    <string name=\"restore_completed\">Pemulihan selesai</string>\n    <string name=\"backup_choice\">Apakah yang ingin anda sandarkan?</string>\n    <string name=\"restoring_backup\">Dalam proses memulihkan sandaran</string>\n    <string name=\"creating_backup\">Dalam proses membuat sandaran</string>\n    <string name=\"pref_clear_chapter_cache\">Hapus cache bab</string>\n    <string name=\"used_cache\">%1$s digunakan</string>\n    <string name=\"cache_deleted\">Cache dihapuskan, %1$d fail dipadamkan</string>\n    <string name=\"cache_delete_error\">Ralat berlaku ketika menghapus</string>\n    <string name=\"pref_clear_cookies\">Hapus cookies</string>\n    <string name=\"cookies_cleared\">Cookies dihapuskan</string>\n    <string name=\"pref_clear_database\">Hapus pangkalan data</string>\n    <string name=\"pref_clear_database_summary\">Hapus sejarah entri yang tidak disimpan di dalam pustaka</string>\n    <string name=\"clear_database_completed\">Entri dihapuskan</string>\n    <string name=\"version\">Versi</string>\n    <string name=\"pref_enable_acra\">Hantar laporan ranap</string>\n    <string name=\"pref_acra_summary\">Bantu membaiki aplikasi. Tiada data sensitif dihantar</string>\n    <string name=\"login_title\">Log masuk ke %1$s</string>\n    <string name=\"username\">Nama pengguna</string>\n    <string name=\"password\">Kata laluan</string>\n    <string name=\"login\">Log masuk</string>\n    <string name=\"login_success\">Log masuk berjaya</string>\n    <string name=\"unknown_error\">Ralat tidak diketahui</string>\n    <string name=\"updating_category\">mengemaskinikan kategori</string>\n    <string name=\"no_more_results\">Tiada lagi hasil</string>\n    <string name=\"local_source\">Sumber lokal</string>\n    <string name=\"other_source\">Lain</string>\n    <string name=\"action_global_search_hint\">Carian keseluruhan…</string>\n    <string name=\"latest\">Terkini</string>\n    <string name=\"browse\">Semak imbas</string>\n    <string name=\"ongoing\">Berterusan</string>\n    <string name=\"unknown\">Tidak diketahui</string>\n    <string name=\"licensed\">Berlesen</string>\n    <string name=\"remove_from_library\">Keluarkan daripada pustaka</string>\n    <string name=\"delete_downloads_for_manga\">Padam bab-bab yang dimuat turun?</string>\n    <string name=\"display_mode_chapter\">Bab %1$s</string>\n    <string name=\"chapter_downloading_progress\">Memuat turun (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Ralat</string>\n    <string name=\"chapter_paused\">Ditangguh</string>\n    <string name=\"show_title\">Tajuk sumber</string>\n    <string name=\"show_chapter_number\">Nombor bab</string>\n    <string name=\"sort_by_source\">Mengikut sumber</string>\n    <string name=\"sort_by_number\">Mengikut nombor bab</string>\n    <string name=\"manga_download\">Muat turun</string>\n    <string name=\"download_unread\">Belum dibaca</string>\n    <string name=\"confirm_delete_chapters\">Adakah anda pasti ingin memadamkan bab yang dipilih?</string>\n    <string name=\"manga_tracking_tab\">Penjejakan</string>\n    <string name=\"reading\">Sedang baca</string>\n    <string name=\"completed\">Selesai</string>\n    <string name=\"dropped\">Diabaikan</string>\n    <string name=\"on_hold\">Ditangguh</string>\n    <string name=\"plan_to_read\">Ingin baca</string>\n    <string name=\"score\">Skor</string>\n    <string name=\"title\">Tajuk</string>\n    <string name=\"status\">Status</string>\n    <string name=\"error_category_exists\">Kategori dengan nama ini sudah wujud!</string>\n    <string name=\"snack_categories_deleted\">Kategori dipadam</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Tarikh bacaan bab ini akan dipadam. Adakah anda pasti?</string>\n    <string name=\"dialog_with_checkbox_reset\">Set semula semua bab bagi entri ini</string>\n    <string name=\"snack_add_to_library\">Tambah ke pustaka?</string>\n    <string name=\"action_display_download_badge\">Bab dimuat turun</string>\n    <string name=\"picture_saved\">Gambar disimpan</string>\n    <string name=\"custom_filter\">Tapisan tersuai</string>\n    <string name=\"set_as_cover\">Set sebagai muka hadapan</string>\n    <string name=\"cover_updated\">Muka hadapan dikemas kini</string>\n    <string name=\"chapter_progress\">Muka surat: %1$d</string>\n    <string name=\"no_next_chapter\">Bab seterusnya tidak dijumpai</string>\n    <string name=\"decode_image_error\">Imej tidak dapat dimuatkan</string>\n    <string name=\"confirm_set_image_as_cover\">Guna imej ini sebagai muka hadapan?</string>\n    <string name=\"download_queue_error\">Memuat turun bab tidak berjaya. Anda boleh mencuba lagi di bahagian muat turun</string>\n    <string name=\"notification_new_chapters\">Bab baharu dijumpai</string>\n    <string name=\"notification_cover_update_failed\">Gagal untuk kemas kini muka hadapan</string>\n    <string name=\"notification_first_add_to_library\">Sila tambahkan entri ke pustaka sebelum melakukan ini</string>\n    <string name=\"file_select_cover\">Pilih imej muka hadapan</string>\n    <string name=\"file_select_backup\">Pilih fail sandaran</string>\n    <string name=\"update_check_confirm\">Muat turun</string>\n    <string name=\"update_check_no_new_updates\">Tiada versi baharu tersedia</string>\n    <string name=\"update_check_notification_download_in_progress\">Memuat turun…</string>\n    <string name=\"update_check_notification_download_complete\">Ketik untuk memasang kemas kini</string>\n    <string name=\"update_check_notification_download_error\">Ralat muat turun</string>\n    <string name=\"update_check_notification_update_available\">Versi baharu boleh didapati!</string>\n    <string name=\"information_no_downloads\">Tiada muat turun</string>\n    <string name=\"information_no_recent\">Tiada kemas kini terkini</string>\n    <string name=\"information_no_recent_manga\">Tiada bacaan setakat ini</string>\n    <string name=\"information_empty_library\">Pustaka kosong</string>\n    <string name=\"download_notifier_downloader_title\">Pemuat turun</string>\n    <string name=\"download_notifier_title_error\">Ralat</string>\n    <string name=\"download_notifier_unknown_error\">Ralat tidak diketahui ketika memuat turun bab</string>\n    <string name=\"download_notifier_text_only_wifi\">Tiada sambungan Wi-Fi yang tersedia</string>\n    <string name=\"download_notifier_no_network\">Tiada sambungan rangkaian tersedia</string>\n    <string name=\"download_notifier_download_paused\">Muat turun dihentikan sebentar</string>\n    <string name=\"channel_common\">Biasa</string>\n    <string name=\"label_migration\">Pindah sumber</string>\n    <string name=\"label_extensions\">Sambungan</string>\n    <string name=\"label_extension_info\">Info sambungan</string>\n    <string name=\"action_open_in_web_view\">Buka dalam WebView</string>\n    <string name=\"ext_update\">Kemas kini</string>\n    <string name=\"ext_install\">Pasang</string>\n    <string name=\"ext_pending\">Masih menunggu</string>\n    <string name=\"ext_downloading\">Memuat turun</string>\n    <string name=\"ext_installing\">Memasang</string>\n    <string name=\"ext_installed\">Dipasang</string>\n    <string name=\"ext_trust\">Dipercayai</string>\n    <string name=\"ext_untrusted\">Tidak dipercayai</string>\n    <string name=\"ext_uninstall\">Nyahpasang</string>\n    <string name=\"untrusted_extension\">Sambungan tak dipercayai</string>\n    <string name=\"untrusted_extension_message\">Sambungan yang berniat jahat kemungkinan membaca sebarang kelayakan log masuk yang di simpan atau melaksanakan kod sesuka hati.\n\\n\n\\nDengan mempercayai sambungan ini, anda menerima risiko tersebut.</string>\n    <string name=\"pref_double_tap_anim_speed\">Kelajuan animasi ketik dua kali</string>\n    <string name=\"pref_skip_read_chapters\">Langkau bab yang sudah dibaca</string>\n    <string name=\"pref_read_with_long_tap\">Tunjuk tindakan bila menahan ketik</string>\n    <string name=\"pager_viewer\">Muka surat</string>\n    <string name=\"double_tap_anim_speed_0\">Tiada animasi</string>\n    <string name=\"double_tap_anim_speed_normal\">Biasa</string>\n    <string name=\"double_tap_anim_speed_fast\">Laju</string>\n    <string name=\"manga_added_library\">Ditambah ke pustaka</string>\n    <string name=\"manga_removed_library\">Dibuang dari pustaka</string>\n    <string name=\"copied_to_clipboard\">Disalin ke papan keratan:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Sumber tidak dipasang: %1$s</string>\n    <string name=\"repeating\">Membaca semula</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Jenis</string>\n    <string name=\"transition_finished\">Selesai:</string>\n    <string name=\"transition_current\">Sekarang:</string>\n    <string name=\"transition_next\">Seterusnya:</string>\n    <string name=\"transition_previous\">Sebelumnya:</string>\n    <string name=\"transition_no_next\">Tiada bab seterusnya dijumpai</string>\n    <string name=\"transition_no_previous\">Tiada bab sebelumnya dijumpai</string>\n    <string name=\"transition_pages_loading\">Memuatkan muka surat…</string>\n    <string name=\"transition_pages_error\">Gagal untuk memuatkan muka surat: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Pilih data untuk disertakan</string>\n    <string name=\"migrate\">Beralih</string>\n    <string name=\"copy\">Salin</string>\n    <string name=\"information_empty_category\">Anda tidak mempunyai kategori. Ketik butang tambah untuk membuat satu untuk mengatur pustaka anda.</string>\n    <string name=\"pref_color_filter_mode\">Mod turas warna campuran</string>\n    <string name=\"label_help\">Bantuan</string>\n    <string name=\"filter_mode_overlay\">Lapisan atas</string>\n    <string name=\"filter_mode_multiply\">Berganda</string>\n    <string name=\"filter_mode_screen\">Skrin</string>\n    <string name=\"filter_mode_lighten\">Dodge / Mencerahkan</string>\n    <string name=\"filter_mode_darken\">Burn / Menggelapkan</string>\n    <string name=\"no_results_found\">Tiada hasil dijumpai</string>\n    <string name=\"migration_selection_prompt\">Pilih sumber untuk ditukar</string>\n    <string name=\"action_webview_back\">Ke belakang</string>\n    <string name=\"action_webview_forward\">Ke depan</string>\n    <string name=\"action_webview_refresh\">Segar semula</string>\n    <string name=\"pref_category_library\">Pustaka</string>\n    <string name=\"ext_obsolete\">Usang</string>\n    <string name=\"obsolete_extension_message\">Sambungan ini tidak lagi ada. Ia mungkin tidak berfungsi dengan betul dan boleh menyebabkan masalah dengan aplikasi. Mengenyahpasang adalah disarankan.</string>\n    <string name=\"pref_date_format\">Format tarikh</string>\n    <string name=\"pref_category_library_update\">Kemas kini keseluruhan</string>\n    <string name=\"logout_title\">Log keluar daripada %1$s?</string>\n    <string name=\"logout\">Log keluar</string>\n    <string name=\"logout_success\">Anda telah log keluar</string>\n    <string name=\"paused\">Ditangguh</string>\n    <string name=\"label_more\">Lain-lain</string>\n    <string name=\"action_sort_latest_chapter\">Bab terkini</string>\n    <string name=\"action_view_chapters\">Buka bab</string>\n    <string name=\"action_cancel_all\">Batalkan semua</string>\n    <string name=\"theme_light\">Terang</string>\n    <string name=\"theme_dark\">Gelap</string>\n    <string name=\"theme_system\">Sistem</string>\n    <string name=\"pref_manage_notifications\">Uruskan pemberitahuan</string>\n    <string name=\"pref_category_security\">Keselamatan dan privasi</string>\n    <string name=\"lock_with_biometrics\">Memerlukan buka kunci</string>\n    <string name=\"lock_when_idle\">Kunci apabila terbiar</string>\n    <string name=\"lock_always\">Selalu</string>\n    <string name=\"lock_never\">Tidak akan</string>\n    <string name=\"secure_screen\">Skrin keselamatan</string>\n    <string name=\"ext_updates_pending\">Kemas kini baharu</string>\n    <string name=\"pref_cutout_short\">Tunjuk kandungan dalam kawasan bertakuk</string>\n    <string name=\"information_cloudflare_bypass_failure\">Gagal untuk memintas Cloudflare</string>\n    <string name=\"information_webview_outdated\">Sila kemas kini aplikasi WebView untuk keserasian yang lebih baik</string>\n    <string name=\"channel_new_chapters\">Pengemaskinian bab</string>\n    <string name=\"secure_screen_summary\">Skrin keselamatan menyembunyikan kandungan aplikasi apabila menukar aplikasi dan sekat tangkapan skrin</string>\n    <string name=\"pref_category_display\">Paparan</string>\n    <string name=\"notification_chapters_single\">Bab %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Bab %1$s dan %2$d lagi</string>\n    <string name=\"notification_chapters_multiple\">Bab %1$s</string>\n    <string name=\"hide_notification_content\">Sembunyikan kandungan pemberitahuan</string>\n    <string name=\"pref_disable_battery_optimization\">Nyahdaya pengoptimuman bateri</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Membantu dengan pengemaskinian latar belakang pustaka dan sandaran</string>\n    <string name=\"battery_optimization_disabled\">Pengoptimuman bateri sudah dinyahdayakan</string>\n    <string name=\"email\">Alamat e-mel</string>\n    <string name=\"pref_always_show_chapter_transition\">Sentiasa tunjuk peralihan bab</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_newest\">Terbaru</string>\n    <string name=\"action_oldest\">Terlama</string>\n    <string name=\"action_move_to_top\">Naik ke atas</string>\n    <string name=\"action_move_to_bottom\">Turun ke bawah</string>\n    <string name=\"channel_ext_updates\">Kemas kini sambungan</string>\n    <string name=\"updating_library\">Mengemas kini pustaka</string>\n    <string name=\"pref_category_reading\">Membaca</string>\n    <string name=\"vertical_plus_viewer\">Sebaris panjang dengan sela</string>\n    <string name=\"pref_skip_filtered_chapters\">Lingkau bab yang ditapis</string>\n    <string name=\"action_select_inverse\">Pilih songsang</string>\n    <string name=\"label_sources\">Sumber</string>\n    <string name=\"pref_webtoon_side_padding\">Tambahan sisi</string>\n    <string name=\"information_webview_required\">WebView diperlukan untuk aplikasi berfungsi</string>\n    <string name=\"recent_manga_time\">Bab %1$s - %2$s</string>\n    <string name=\"add_tracking\">Tambah penjejakan</string>\n    <string name=\"manga_info_collapse\">Tutup</string>\n    <string name=\"manga_info_expand\">Buka</string>\n    <string name=\"in_library\">Dalam Pustaka</string>\n    <string name=\"add_to_library\">Tambah ke Pustaka</string>\n    <string name=\"pinned_sources\">Disematkan</string>\n    <string name=\"licenses\">Lesen perisian sumber terbuka</string>\n    <string name=\"website\">Laman web</string>\n    <string name=\"restoring_backup_canceled\">Pemulih dibatalkan</string>\n    <string name=\"restoring_backup_error\">Memulihkan sandaran gagal</string>\n    <string name=\"restore_in_progress\">Pemulihan sedang dijalankan</string>\n    <string name=\"creating_backup_error\">Sandaran gagal</string>\n    <string name=\"backup_in_progress\">Sandaran sedang dijalankan</string>\n    <string name=\"action_unpin\">Buang sematkan</string>\n    <string name=\"action_pin\">Sematkan</string>\n    <string name=\"label_downloaded_only\">Dimuat turun sahaja</string>\n    <string name=\"last_used_source\">Terakhir digunakan</string>\n    <string name=\"check_for_updates\">Semak untuk kemas kini</string>\n    <string name=\"local_source_help_guide\">Panduan penggunaan sumber lokal</string>\n    <string name=\"restore_duration\">%1$02d minit, %2$02d saat</string>\n    <string name=\"downloaded_only_summary\">Tapis semua entri di dalam pustaka anda</string>\n    <string name=\"gray_background\">Kelabu</string>\n    <string name=\"viewer\">Mod membaca</string>\n    <string name=\"pref_category_for_this_series\">Untuk siri ini</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Tetapan peranti tidak dapat dibuka</string>\n    <string name=\"tracking_info\">Menyelaras satu hala untuk kemas kini bab kemajuan dalam sistem penjejak luaran. Sediakan penjejakan untuk entri individu daripada butang penjejakan mereka.</string>\n    <string name=\"pref_refresh_library_covers\">Segar semula muka hadapan pustaka</string>\n    <string name=\"sort_by_upload_date\">Mengikut tarikh muat naik</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"backup_restore_missing_sources\">Tiada sumber:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Sandaran tidak mengandungi apa-apa entri pustaka.</string>\n    <string name=\"invalid_backup_file\">Fail sandaran tidak sah:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Semak muka hadapan dan tentang baharu bila mengemaskini pustaka</string>\n    <string name=\"pref_library_update_refresh_metadata\">Segar semula metadata secara automatik</string>\n    <string name=\"action_migrate\">Pindah sumber</string>\n    <string name=\"action_display_comfortable_grid\">Grid selesa</string>\n    <string name=\"tabs_header\">Tab</string>\n    <string name=\"action_display_show_tabs\">Tunjuk tab kategori</string>\n    <string name=\"page_list_empty_error\">Tiada muka surat ditemui</string>\n    <string name=\"action_disable_all\">Matikan semua</string>\n    <string name=\"action_enable_all\">Hidupkan semua</string>\n    <string name=\"pref_show_reading_mode_summary\">Tunjukkan seketika mod membaca yang digunakan apabila pembaca dibuka</string>\n    <string name=\"pref_show_reading_mode\">Tunjuk mod membaca</string>\n    <string name=\"loader_not_implemented_error\">Sumber tidak dijumpai</string>\n    <string name=\"action_start\">Mula</string>\n    <string name=\"action_disable\">Matikan</string>\n    <string name=\"requires_app_restart\">Mulakan semula aplikasi diperlukan untuk berkesan</string>\n    <string name=\"label_network\">Rangkaian</string>\n    <string name=\"tapping_inverted_both\">Kedua-dua</string>\n    <string name=\"tapping_inverted_vertical\">Mod atas bawah</string>\n    <string name=\"tapping_inverted_horizontal\">Mod kanan kiri</string>\n    <string name=\"tapping_inverted_none\">Tidak aktif</string>\n    <string name=\"pref_read_with_tapping_inverted\">Songsangkan zon ketik</string>\n    <string name=\"unknown_status\">Status tidak diketahui</string>\n    <string name=\"unknown_author\">Pengarang tidak diketahui</string>\n    <string name=\"updated_version\">Dikemas kini ke v%1$s</string>\n    <string name=\"whats_new\">Apa yang terbaharu</string>\n    <string name=\"action_sort_date_added\">Tarikh ditambah</string>\n    <string name=\"download_insufficient_space\">Memuat turun tidak berjaya kerana kekurangan ruang storan</string>\n    <string name=\"action_global_search_query\">Cari untuk \\\"%1$s\\\" menggunakan carian keseluruhan</string>\n    <string name=\"pref_category_reading_mode\">Mod membaca</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"no_pinned_sources\">Tiada sumber yang disematkan</string>\n    <string name=\"channel_progress\">Kemajuan</string>\n    <string name=\"channel_complete\">Selesai</string>\n    <string name=\"channel_errors\">Ralat</string>\n    <string name=\"backup_restore_missing_trackers\">Penjejak yang tidak dilog masuk:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Benarkan memadam bab yang ditanda</string>\n    <string name=\"pref_category_delete_chapters\">Padam bab</string>\n    <string name=\"ext_nsfw_warning\">Sumber daripada sambungan ini mungkin mengandungi kandungan 18+ tahun keatas</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Ini tidak menghalang sambungan yang tidak rasmi atau berpotensi tidak menggunakan tetapan yang betul daripada menayangkan kandungan 18+ tahun keatas dalam aplikasi.</string>\n    <string name=\"no_chapters_error\">Tiada bab dijumpai</string>\n    <string name=\"chapter_settings_updated\">Tetapan bab lalai dikemas kini</string>\n    <string name=\"set_chapter_settings_as_default\">Tetapkan sebagai lalai</string>\n    <string name=\"also_set_chapter_settings_for_library\">Gunakan juga untuk semua entri dalam pustaka</string>\n    <string name=\"confirm_set_chapter_settings\">Adakah anda pasti ingin simpan tetapan ini sebagai lalai?</string>\n    <string name=\"chapter_settings\">Tetapan bab</string>\n    <string name=\"share_page_info\">%1$s: %2$s, muka surat %3$d</string>\n    <string name=\"action_search_settings\">Carian tetapan</string>\n    <string name=\"downloaded_chapters\">Bab dimuat turun</string>\n    <string name=\"manga_from_library\">Dari pustaka</string>\n    <string name=\"pref_incognito_mode_summary\">Menjeda sejarah membaca</string>\n    <string name=\"pref_incognito_mode\">Mod inkognito</string>\n    <string name=\"pref_clear_history\">Padamkan sejarah</string>\n    <string name=\"clear_history_confirmation\">Anda pasti? Semua sejarah akan hilang.</string>\n    <string name=\"clear_history_completed\">Sejarah dipadamkan</string>\n    <string name=\"spen_next_page\">Muka surat seterusnya</string>\n    <string name=\"spen_previous_page\">Muka surat terdahulu</string>\n    <string name=\"migration_help_guide\">Panduan memindahkan sumber</string>\n    <string name=\"pref_category_nsfw_content\">Sumber NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Tunjuk dalam senarai sumber dan sambungan</string>\n    <string name=\"file_picker_error\">Tiada aplikasi memilih fail</string>\n    <string name=\"myanimelist_relogin\">Sila log masuk ke MAL sekali lagi</string>\n    <string name=\"pref_viewer_nav\">Zon ketik</string>\n    <string name=\"edge_nav\">Sisi</string>\n    <string name=\"kindlish_nav\">Serupa Kindle</string>\n    <string name=\"l_nav\">Bentuk L</string>\n    <string name=\"action_desc\">Menurun</string>\n    <string name=\"action_asc\">Menaik</string>\n    <string name=\"action_order_by_chapter_number\">Mengikut nombor bab</string>\n    <string name=\"action_order_by_upload_date\">Mengikut tarikh muat naik</string>\n    <string name=\"pref_dump_crash_logs_summary\">Simpan log ralat untuk dikongsi dengan pembangunan aplikasi</string>\n    <string name=\"pref_dump_crash_logs\">Kongsi log kerosakan</string>\n    <string name=\"track_started_reading_date\">Tarikh mula</string>\n    <string name=\"track_finished_reading_date\">Tarikh selesai</string>\n    <string name=\"action_filter_tracked\">Dijejaki</string>\n    <string name=\"action_display_show_number_of_items\">Tunjuk jumlah bilangan</string>\n    <string name=\"right_and_left_nav\">Kanan dan kiri</string>\n    <string name=\"pref_dual_page_split\">Memisah muka surat lebar</string>\n    <string name=\"pref_dual_page_invert_summary\">Jika kedudukan memisah muka surat lebar tidak sama dengan arah membaca</string>\n    <string name=\"pref_dual_page_invert\">Songsangkan kedudukan memisah muka surat</string>\n    <string name=\"backup_restore_content_full\">Anda perlu memasang sambungan yang hilang dan log masuk ke penjejakan untuk menggunakannya.</string>\n    <string name=\"nav_zone_prev\">Sebelumnya</string>\n    <string name=\"pref_show_navigation_mode_summary\">Tunjukkan seketika apabila pembaca dibuka</string>\n    <string name=\"nav_zone_right\">Kanan</string>\n    <string name=\"nav_zone_left\">Kiri</string>\n    <string name=\"pref_show_navigation_mode\">Tunjuk tindanan zon ketik</string>\n    <string name=\"nav_zone_next\">Seterusnya</string>\n    <string name=\"pref_dns_over_https\">DNS melalui HTTPS (DoH)</string>\n    <string name=\"action_sort_chapter_fetch_date\">Tarikh bab diambil</string>\n    <string name=\"exclude\">Kecuali: %s</string>\n    <string name=\"include\">Hanya: %s</string>\n    <string name=\"none\">Tiada</string>\n    <string name=\"pref_library_update_categories_details\">Entri di dalam kategori berkecuali tidak akan dikemas kini walaupun ianya ada di dalam kategori hanya.</string>\n    <string name=\"pref_download_new_categories_details\">Entri di dalam kategori berkecuali tidak akan dimuat turun walaupun ianya ada di dalam kategori hanya.</string>\n    <string name=\"pref_category_auto_download\">Muat turun automatik</string>\n    <string name=\"action_show_errors\">Ketik untuk lihat butiran</string>\n    <string name=\"update_check_eol\">Versi Android ini tidak lagi disokong</string>\n    <string name=\"clipboard_copy_error\">Gagal menyalin ke papan keratan</string>\n    <string name=\"rotation_landscape\">Landskap</string>\n    <string name=\"rotation_portrait\">Potret</string>\n    <string name=\"pref_reader_actions\">Tindakan</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Mencipta folder mengikut tajuk entri</string>\n    <string name=\"pref_create_folder_per_manga\">Simpan muka surat ke folder berasingan</string>\n    <string name=\"rotation_type\">Jenis putaran skrin</string>\n    <string name=\"pref_grayscale\">Skala kelabu</string>\n    <string name=\"notification_incognito_text\">Nyahdaya mod inkognito</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"cancel_all_for_series\">Batalkan semua untuk siri ini</string>\n    <string name=\"error_no_match\">Tiada padanan dijumpai</string>\n    <string name=\"source_unsupported\">Sumber tidak disokong</string>\n    <string name=\"unread\">Belum dibaca</string>\n    <string name=\"date\">Tarikh</string>\n    <string name=\"local_filter_order_by\">Susun mengikut</string>\n    <string name=\"local_invalid_format\">Format bab tidak sah</string>\n    <string name=\"chapter_not_found\">Bab tidak dijumpai</string>\n    <string name=\"restrictions\">Sekatan: %s</string>\n    <string name=\"action_display_local_badge\">Sumber lokal</string>\n    <string name=\"off\">Mati</string>\n    <string name=\"on\">Hidup</string>\n    <string name=\"error_sharing_cover\">Ralat berkongsi muka hadapan</string>\n    <string name=\"error_saving_cover\">Ralat menyimpan muka hadapan</string>\n    <string name=\"cover_saved\">Muka hadapan disimpan</string>\n    <string name=\"manga_cover\">Muka hadapan</string>\n    <string name=\"categorized_display_settings\">Tetapan setiap kategori untuk susunan</string>\n    <string name=\"tracking_guide\">Panduan penjejakan</string>\n    <string name=\"information_empty_category_dialog\">Anda belum mempunyai kategori.</string>\n    <string name=\"action_start_downloading_now\">Mula memuat turun sekarang</string>\n    <string name=\"pref_dark_theme_pure_black\">Mod gelap hitam asli</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_midnightdusk\">Tengah malam senja</string>\n    <string name=\"theme_greenapple\">Epal Hijau</string>\n    <string name=\"theme_monet\">Dinamik</string>\n    <string name=\"pref_app_theme\">Tema aplikasi</string>\n    <string name=\"enhanced_tracking_info\">Perkidmatan yang menyediakan fungsi yang dipertingkatkan untuk sumber tertentu. Entri akan dijejaki secara automatik apabila ditambahkan ke pustaka.</string>\n    <string name=\"restore_miui_warning\">Sandaran/memulih mungkin tidak berfungsi dengan betul jika pengoptimuman MIUI dinyahaktifkan.</string>\n    <string name=\"about_dont_kill_my_app\">Sesetengah pengeluar ada sekatan tambahan pada aplikasi yang akan menghentikan perkidmatan latar belakang. Laman web ini ada maklumat cara membaikinya.</string>\n    <string name=\"enhanced_services\">Pertingkat penjejak</string>\n    <string name=\"theme_strawberrydaiquiri\">Strawberry Daiquiri</string>\n    <string name=\"pref_lowest\">Terendah</string>\n    <string name=\"pref_low\">Rendah</string>\n    <string name=\"pref_high\">Tinggi</string>\n    <string name=\"pref_highest\">Tertinggi</string>\n    <string name=\"pref_hide_threshold\">Sensitiviti menyembunyikan menu apabila skrol</string>\n    <string name=\"label_background_activity\">Aktiviti latar belakang</string>\n    <string name=\"pref_inverted_colors\">Songsang</string>\n    <string name=\"relative_time_today\">Hari ini</string>\n    <string name=\"theme_tealturquoise\">Teal &amp; Turquoise</string>\n    <string name=\"confirm_lock_change\">Sahkan untuk mengesahkan perubahan</string>\n    <string name=\"label_default\">Lalai</string>\n    <string name=\"pref_category_appearance\">Tampilan</string>\n    <string name=\"action_track\">Jejak</string>\n    <string name=\"getting_started_guide\">Panduan penggunaan</string>\n    <string name=\"pref_tablet_ui_mode\">UI tablet</string>\n    <string name=\"pref_remove_exclude_categories\">Kategori dikecualikan</string>\n    <string name=\"help_translate\">Bantu menterjemah</string>\n    <string name=\"ext_app_info\">Maklumat aplikasi</string>\n    <string name=\"ext_installer_legacy\">Legasi</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Pasang dan mulakan Shizuku untuk guna Shizuku sebagai pemasang sambungan.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku tidak dijalankan</string>\n    <string name=\"ext_installer_pref\">Pemasang</string>\n    <string name=\"ext_install_service_notif\">Memasang sambungan…</string>\n    <string name=\"action_sort_count\">Jumlah entri</string>\n    <string name=\"pref_verbose_logging\">Pengelogan berjela-jela</string>\n    <string name=\"pref_verbose_logging_summary\">Cetak log berjela ke log sistem (mengurangkan prestasi aplikasi)</string>\n    <string name=\"label_warning\">Amaran</string>\n    <string name=\"action_display_language_badge\">Bahasa</string>\n    <string name=\"backup_info\">Anda patut simpan salinan sandaran di tempat lain juga.</string>\n    <string name=\"notification_size_warning\">Kemas kini yang besar membahayakan sumber dan mengakibatkan sumber menjadi perlahan dan juga peningkatan penggunaan bateri. Ketik untuk ketahui selebihnya.</string>\n    <string name=\"connected_to_wifi\">Hanya menggunakan Wi-Fi</string>\n    <string name=\"update_72hour\">Setiap 3 hari</string>\n    <string name=\"download_queue_size_warning\">Amaran: muat turun secara pukal besar boleh menyebabkan sumber menjadi lebih perlahan dan/atau menyekat %s. Ketik untuk ketahui selebihnya.</string>\n    <string name=\"ext_update_all\">Kemas kini semua</string>\n    <string name=\"channel_app_updates\">Kemas kini aplikasi</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Hapus cache bab apabila membuka aplikasi</string>\n    <string name=\"database_clean\">Tiada apa untuk dibersihkan</string>\n    <string name=\"clear_database_source_item_count\">%1$d entri bukan pustaka dalam pangkalan data</string>\n    <string name=\"extension_api_error\">Gagal mendapatkan sambungan yang ada</string>\n    <string name=\"privacy_policy\">Dasar privasi</string>\n    <string name=\"pref_update_only_completely_read\">Langkau entri dengan bab yang belum dibaca</string>\n    <string name=\"library_errors_help\">Untuk bantuan cara menyelesaikan ralat kemas kini pustaka, lihat %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Simpan sebagai arkib CBZ</string>\n    <string name=\"cancelled\">Dibatalkan</string>\n    <string name=\"publishing_finished\">Penerbitan selesai</string>\n    <string name=\"on_hiatus\">Dalam hiatus</string>\n    <string name=\"action_show_manga\">Tunjuk entri</string>\n    <string name=\"action_display_cover_only_grid\">Cuma grid muka hadapan</string>\n    <string name=\"skipped_reason_completed\">Dilangkau kerana siri sudah lengkap</string>\n    <string name=\"pref_update_only_started\">Langkau entri yang mana bacaan belum dimulakan</string>\n    <string name=\"skipped_reason_not_caught_up\">Dilangkau kerana ada bab yang belum dibaca</string>\n    <string name=\"skipped_reason_not_started\">Dilangkau kerana tiada bab yang dibaca</string>\n    <string name=\"pref_landscape_zoom\">Zum secara automatik pada imej lebar</string>\n    <string name=\"pref_navigate_pan\">Panorama imej lebar</string>\n    <string name=\"notification_update_error\">%1$d kemas kini gagal</string>\n    <string name=\"learn_more\">Ketik untuk ketahui selebihnya</string>\n    <string name=\"rotation_reverse_portrait\">Potret terbalik</string>\n    <string name=\"action_move_to_top_all_for_series\">Alih siri ke atas</string>\n    <string name=\"disabled_nav\">Dinyahkan</string>\n    <string name=\"error_saving_picture\">Ralat menyimpan gambar</string>\n    <string name=\"empty_backup_error\">Tiada entri pustaka untuk disandarkan</string>\n    <string name=\"update_check_open\">Buka di GitHub</string>\n    <string name=\"pref_clear_webview_data\">Hapus data WebView</string>\n    <string name=\"webview_data_deleted\">Data WebView dihapuskan</string>\n    <string name=\"action_close\">Tutup</string>\n    <string name=\"source_filter_empty_screen\">Tiada sumber dipasang ditemui</string>\n    <string name=\"source_empty_screen\">Tiada sumber ditemui</string>\n    <string name=\"action_sort_unread_count\">Bilangan belum dibaca</string>\n    <string name=\"action_sort_last_manga_update\">Semakan kemas kini terakhir</string>\n    <string name=\"split_tall_images_summary\">Meningkatkan prestasi pembaca</string>\n    <string name=\"download_notifier_split_page_not_found\">Muka surat %d tidak dijumpai ketika memisah</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Lokasi fail muka surat %d tidak ditemui</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Menetapkan semula mod bacaan dan orientasi semua siri</string>\n    <string name=\"pref_reset_viewer_flags_success\">Tetapan pembaca diset semula</string>\n    <string name=\"pref_reset_viewer_flags\">Set semula tetapan pembaca setiap siri</string>\n    <string name=\"empty_screen\">Hmm, ini agak menjanggalkan</string>\n    <string name=\"pref_reset_viewer_flags_error\">Tidak dapat set semula tetapan pembaca</string>\n    <string name=\"ext_info_version\">Versi</string>\n    <string name=\"ext_info_age_rating\">Peringkat umur</string>\n    <string name=\"ext_info_language\">Bahasa</string>\n    <string name=\"wish_list\">Senarai Hajat</string>\n    <string name=\"complete_list\">Senarai Selesai</string>\n    <string name=\"on_hold_list\">Senarai Tangguh</string>\n    <string name=\"unfinished_list\">Senarai Belum Selesai</string>\n    <string name=\"reading_list\">Senarai Bacaan</string>\n    <string name=\"network_not_metered\">Hanya pada rangkaian tidak bermeter</string>\n    <string name=\"cant_open_last_read_chapter\">Tidak dapat membuka bab yang terakhir dibaca</string>\n    <string name=\"custom_cover\">Muka hadapan tersuai</string>\n    <string name=\"not_installed\">Tidak dipasang</string>\n    <string name=\"pref_app_language\">Bahasa aplikasi</string>\n    <string name=\"theme_lavender\">Lavender</string>\n    <string name=\"description_placeholder\">Tiada deskripsi</string>\n    <string name=\"delete_category_confirmation\">Adakah anda ingin padam kategori \\\"%s\\\"?</string>\n    <string name=\"internal_error\">RalatDalam: semak log kerosakan untuk maklumat lanjut</string>\n    <string name=\"delete_category\">Padam kategori</string>\n    <string name=\"pref_user_agent_string\">Untaian ejen pengguna lalai</string>\n    <string name=\"pref_reset_user_agent_string\">Set semula untaian ejen pengguna lalai</string>\n    <string name=\"action_remove_everything\">Buang semuanya</string>\n    <string name=\"appwidget_unavailable_locked\">Widget tidak tersedia apabila kekunci aplikasi digunakan</string>\n    <string name=\"appwidget_updates_description\">Lihat kemas kini entri pustaka terkini anda</string>\n    <string name=\"update_already_running\">Kemas kini sedang berjalan</string>\n    <string name=\"error_user_agent_string_blank\">Untaian ejen pengguna tidak boleh kosong</string>\n    <string name=\"auto_download_while_reading\">Muat turun automatik semasa membaca</string>\n    <string name=\"theme_tidalwave\">Tidal Wave</string>\n    <string name=\"download_ahead\">Muat turun maju</string>\n    <string name=\"download_ahead_info\">Hanya berguna sekiranya bab sekarang + seterusnya telah dimuat turun.</string>\n    <string name=\"are_you_sure\">Adakah anda pasti?</string>\n    <string name=\"multi_lang\">Pelbagai</string>\n    <string name=\"updates_last_update_info\">Terakhir pustaka dikemas kini: %s</string>\n    <string name=\"remove_manga\">Anda akan membuang \\\"%s\\\" ini daripada pustaka anda</string>\n    <string name=\"popular\">Popular</string>\n    <string name=\"missing_storage_permission\">Kebenaran storan tidak diberikan</string>\n    <string name=\"skipped_reason_not_always_update\">Dilangkau kerana siri tidak memerlukan kemas kini</string>\n    <string name=\"action_search_hint\">Cari…</string>\n    <string name=\"pref_appearance_summary\">Tema, tarikh &amp; format masa</string>\n    <string name=\"pref_library_summary\">Kategori, Kemas kini keseluruhan, leret bab</string>\n    <string name=\"pref_reader_summary\">Mod membaca, paparan, navigasi</string>\n    <string name=\"pref_downloads_summary\">Muat turun automatik, muat turun maju</string>\n    <string name=\"pref_tracking_summary\">Menyelaras kemajuan satu hala, pertingkat menyelaras</string>\n    <string name=\"pref_backup_summary\">Manual &amp; sandaran automatik</string>\n    <string name=\"pref_advanced_summary\">Kumpulan log kerosakan, pengoptimuman bateri</string>\n    <string name=\"pref_security_summary\">Kekunci aplikasi, skrin keselamatan</string>\n    <string name=\"crash_screen_title\">Aduhai!</string>\n    <string name=\"crash_screen_restart_application\">Mulakan semula aplikasi</string>\n    <string name=\"pref_browse_summary\">Sumber, sambungan, carian keseluruhan</string>\n    <string name=\"crash_screen_description\">%s mengalami ralat tidak dijangka. Kami mencadangkan anda untuk kongsi log kerosakan pada Discord kami di saluran bantuan.</string>\n    <string name=\"unknown_title\">Tajuk tidak diketahui</string>\n    <string name=\"invalid_location\">Lokasi tidak sah: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Rentetan ejen pengguna tidak sah</string>\n    <string name=\"updates_last_update_info_just_now\">Sebentar tadi</string>\n    <string name=\"action_open_random_manga\">Buka entri rawak</string>\n    <string name=\"information_no_entries_found\">Tiada entri dijumpai di kategori ini</string>\n    <string name=\"download_notifier_cache_renewal\">Menyemak muat turun</string>\n    <string name=\"fdroid_warning\">Binaan F-Droid tidak disokong secara rasmi.\n\\nKetik untuk mengetahui lebih lanjut.</string>\n    <string name=\"action_display_show_continue_reading_button\">Butang sambung membaca</string>\n    <string name=\"pref_invalidate_download_cache\">Membatalkan indeks muat turun</string>\n    <string name=\"track_remove_date_conf_title\">Buang tarikh?</string>\n    <string name=\"track_remove_start_date_conf_text\">Ini akan membuang tarikh mula yang dipilih oleh anda sebelum ini dari %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Ini akan membuang tarikh selesai yang dipilih oleh anda sebelum ini dari %s</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Memaksa aplikasi untuk semak semula bab dimuat turun</string>\n    <string name=\"label_local\">lokal</string>\n    <string name=\"label_downloaded\">Dimuat turun</string>\n    <string name=\"label_titles_in_global_update\">Dalam kemas kini keseluruhan</string>\n    <string name=\"label_total_chapters\">Jumlah</string>\n    <string name=\"label_read_chapters\">Dibaca</string>\n    <string name=\"label_tracked_titles\">Entri dijejaki</string>\n    <string name=\"label_mean_score\">Skor purata</string>\n    <string name=\"label_used\">Digunakan</string>\n    <string name=\"label_stats\">Statistik</string>\n    <string name=\"label_started\">Dimulakan</string>\n    <string name=\"label_overview_section\">Keseluruhan</string>\n    <string name=\"label_read_duration\">Jangka bacaan</string>\n    <string name=\"label_titles_section\">Entri</string>\n    <string name=\"label_tracker_section\">Penjejak</string>\n    <string name=\"label_completed_titles\">Entri yang sudah selesai</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dh</string>\n    <string name=\"hour_short\">%dj</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_not_now\">Bukan sekarang</string>\n    <string name=\"information_no_manga_category\">Kategori kosong</string>\n    <string name=\"pref_library_update_show_tab_badge\">Tunjuk bilangan belum dibaca pada ikon Kemas kini</string>\n    <string name=\"pref_skip_dupe_chapters\">Langkau bab pendua</string>\n    <string name=\"enhanced_services_not_installed\">Tersedia tetapi sumber tidak dipasang: %s</string>\n    <string name=\"copied_to_clipboard_plain\">Disalin ke papan keratan</string>\n    <string name=\"track_error\">%1$s ralat: %2$s</string>\n    <string name=\"information_required_plain\">*diperlukan</string>\n    <string name=\"pref_hide_in_library_items\">Sembunyikan entri yang sudah ada di dalam pustaka</string>\n    <string name=\"action_copy_to_clipboard\">Salin ke papan keratan</string>\n    <string name=\"action_update_category\">Kemas kini kategori</string>\n    <string name=\"split_tall_images\">Memisah imej yang tinggi</string>\n    <string name=\"overlay_header\">Tindanan</string>\n    <string name=\"pref_page_rotate_invert\">Terbalikkan orientasi muka surat lebar yang diputarkan</string>\n    <string name=\"pref_page_rotate\">Putar muka surat lebar agar muat</string>\n    <string name=\"pref_debug_info\">Maklumat nyahpepijat</string>\n    <string name=\"pref_chapter_swipe_end\">Bab mengenai leret ke kanan</string>\n    <string name=\"pref_double_tap_zoom\">Ketik dua kali untuk zum</string>\n    <string name=\"pref_chapter_swipe_start\">Bab mengenai leret ke kiri</string>\n    <string name=\"action_set_interval\">Tetapkan jarak masa</string>\n    <string name=\"action_filter_interval_custom\">Kekerapan kemaskini tersuai</string>\n    <string name=\"action_sort_next_updated\">Kemas kini seterusnya dijangka</string>\n    <string name=\"manga_display_modified_interval_title\">Tetapkan untuk kemas kini setiap</string>\n    <string name=\"skipped_reason_not_in_release_period\">Dilangkau kerana tiada keluaran yang dijangkakan hari ini</string>\n    <string name=\"intervals_header\">Jarak masa</string>\n    <string name=\"pref_update_only_in_release_period\">Jangka masa keluaran seterusnya</string>\n    <string name=\"manga_display_interval_title\">Anggaran setiap</string>\n    <string name=\"track_delete_title\">Buang penjejakan %s?</string>\n    <string name=\"track_delete_text\">Ini akan membuang penjejakan secara lokal.</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_remote_text\">Juga buang daripada %s</string>\n    <string name=\"delete_downloaded\">Padam dimuat turun</string>\n    <string name=\"has_results\">Mempunyai hasil</string>\n    <string name=\"create_backup_file_error\">Tidak boleh menghasilkan fail sandaran</string>\n    <string name=\"exception_unknown_host\">Tidak dapat mencapai %s</string>\n    <string name=\"syncing_library\">Menyelaraskan pustaka</string>\n    <string name=\"library_sync_complete\">Pustaka selesai diselaraskan</string>\n    <string name=\"exception_offline\">Tiada sambungan Internet</string>\n    <string name=\"track_activity_name\">Log masuk penjejak</string>\n    <string name=\"download_cache_invalidated\">Indeks muat turun tidak sah</string>\n    <string name=\"information_cloudflare_help\">Ketik di sini untuk bantuan berkenaan Cloudflare</string>\n    <string name=\"exception_http\">HTTP %d, semak laman web dalam WebView</string>\n    <string name=\"unlock_app_title\">Buka kunci %s</string>\n    <string name=\"pref_library_update_smart_update\">Kemaskini pintar</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Gerak siri ke bawah</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"action_apply\">Gunakan</string>\n    <string name=\"action_revert_to_default\">Kembali ke lalai</string>\n    <string name=\"not_selected\">Tidak dipilih</string>\n    <string name=\"action_menu_overflow_description\">Lain-lain pilihan</string>\n    <string name=\"selected\">Dipilih</string>\n    <string name=\"onboarding_storage_action_select\">Pilih folder</string>\n    <string name=\"pref_onboarding_guide\">Panduan pertama penggunaan</string>\n    <string name=\"onboarding_heading\">Selamat datang!</string>\n    <string name=\"onboarding_description\">Mari menetapkan sesuai terdahulu. Anda juga boleh menukar perkara ini di tetapan kemudian.</string>\n    <string name=\"onboarding_action_next\">Seterusnya</string>\n    <string name=\"onboarding_action_finish\">Mari memulakan</string>\n    <string name=\"onboarding_action_skip\">Langkau</string>\n    <string name=\"onboarding_storage_info\">Pilih folder dimana %1$s akan simpan bab yang dibuat turun, sandaran, dan banyak lagi.\n\\n\n\\nFolder khas sangat digalakkan.\n\\n\n\\nFolder yang dipilih: %2$s</string>\n    <string name=\"onboarding_storage_selection_required\">Folder mestilah dipilih</string>\n    <string name=\"pref_relative_format\">Cap masa relatif</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s bukannya %2$s\\\"</string>\n    <string name=\"onboarding_guides_new_user\">Baru ke %s? kami cadang lihat panduan permulaan.</string>\n    <string name=\"invalid_backup_file_error\">Ralat penuh:</string>\n    <string name=\"private_settings\">Termasuk tetapan sulit (cth., token log masuk penjejak)</string>\n    <string name=\"available_disk_space_info\">Tersedia:%1$s/Jumlah:%2$s</string>\n    <string name=\"manga_interval_expected_update\">Bab baharu dijangkakan akan keluar sekitar %1$s, semakan setiap %2$s.</string>\n    <string name=\"file_null_uri_error\">Tiada fail dipilih</string>\n    <string name=\"onboarding_permission_install_apps\">Pasang kebenaran aplikasi</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Penggunaan bateri latar belakang</string>\n    <string name=\"action_add_repo\">Tambah repositori</string>\n    <string name=\"action_delete_repo\">Padam repositori</string>\n    <string name=\"invalid_repo_name\">Repositori URL tidak sah</string>\n    <string name=\"action_create\">Buat</string>\n    <string name=\"pref_storage_usage\">Penggunaan storan</string>\n    <string name=\"manga_interval_custom_amount\">Kekerapan kemas kini tersuai:</string>\n    <string name=\"no_scanlators_found\">Tiada scanlators dijumpai</string>\n    <string name=\"onboarding_storage_help_info\">Mengemaskini daripada versi lama dan tidak pasti yang mana nak dipilih? Rujuk pada panduan storan untuk maklumat lanjut.</string>\n    <string name=\"onboarding_permission_notifications\">Kebenaran pemberitahuan</string>\n    <string name=\"onboarding_guides_returning_user\">Memasang semula %s?</string>\n    <string name=\"error_repo_exists\">Repositori ini sudah wujud!</string>\n    <string name=\"no_location_set\">Tiada lokasi storan ditetapkan</string>\n    <string name=\"relative_time_span_never\">Tidak pernah</string>\n    <string name=\"onboarding_storage_help_action\">Panduan storan</string>\n    <string name=\"onboarding_permission_install_apps_description\">Untuk pasang sumber sambungan.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Elak gangguan pada kemas kini yang panjang, muat turun, dan pemulihan sandaran.</string>\n    <string name=\"onboarding_permission_action_grant\">Benarkan</string>\n    <string name=\"onboarding_permission_notifications_description\">Dapatkan pemberitahuan untuk kemas kini pustaka dan banyak lagi.</string>\n    <string name=\"ext_permission_install_apps_warning\">Kebenaran diperlukan untuk pasang sambungan. Ketik di sini untuk benarkan.</string>\n    <string name=\"label_extension_repos\">repositori sambungan</string>\n    <string name=\"label_add_repo_input\">URL repositori</string>\n    <string name=\"delete_repo_confirmation\">Adakah anda bersetuju untuk padam repositori \\\"%s\\\"?</string>\n    <string name=\"action_sort_tracker_score\">Skor penjejak</string>\n    <string name=\"ext_revoke_trust\">Batalkan sambungan dipercayakan yang tidak diketahui</string>\n    <string name=\"information_empty_repos\">Anda tidak menetapkan repositori.</string>\n    <string name=\"action_add_repo_message\">Tambah repositori tambahan pada Mihon %s. Ini mestilah URL yang berakhir dengan \\\"index.min.json\\\".</string>\n    <string name=\"action_open_repo\">Buka sumber repositori</string>\n    <string name=\"manga_interval_expected_update_soon\">Tidak lama lagi</string>\n    <string name=\"scanlator\">Pemindai</string>\n    <string name=\"exclude_scanlators\">Kecualikan scanlators</string>\n    <string name=\"action_bar_up_description\">Navigasi ke atas</string>\n    <string name=\"pref_storage_location_info\">Digunakan untuk sandaran automatik, muat turun bab, dan sumber lokal.</string>\n    <string name=\"pref_storage_location\">Lokasi storan</string>\n    <string name=\"app_settings\">Tetapan aplikasi</string>\n    <string name=\"source_settings\">Tetapan sumber</string>\n    <string name=\"label_data_storage\">Data dan storan</string>\n    <string name=\"pref_flash_page\">Kilat pada perubahan muka surat</string>\n    <string name=\"pref_flash_page_summ\">Mengurangkan kesan \\'ghosting\\' pada skrin e-ink</string>\n    <string name=\"last_auto_backup_info\">Sandaran automatik terakhir:%s</string>\n    <string name=\"notification_updating_progress\">Mengemaskini pustaka… (%s)</string>\n    <string name=\"action_replace_repo\">Ganti</string>\n    <string name=\"label_upcoming\">Akan datang</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Lumpuhkan zum keluar</string>\n    <string name=\"action_view_upcoming\">Lihat kemas kini yang akan datang</string>\n    <string name=\"upcoming_guide\">Panduan yang akan datang</string>\n    <string name=\"upcoming_calendar_next\">Bulan depan</string>\n    <string name=\"upcoming_calendar_prev\">Bulan sebelumnya</string>\n    <string name=\"label_donate\">Menderma</string>\n    <string name=\"label_auto\">Otomatis</string>\n    <string name=\"action_sort_random\">Rawak</string>\n    <string name=\"action_copy_link\">Pautan salin</string>\n    <string name=\"action_display_unread_badge\">Bab yang belum dibaca</string>\n    <string name=\"action_notes\">Nota</string>\n    <string name=\"action_edit_notes\">Ubah Catatan</string>\n    <string name=\"onboarding_permission_crashlytics\">Hantar log kemalangan</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Hantar log kemalangan tanpa nama kepada pemaju.</string>\n    <string name=\"onboarding_permission_analytics\">Benarkan analisis</string>\n    <string name=\"onboarding_permission_analytics_description\">Hantar data penggunaan tanpa nama untuk meningkatkan ciri aplikasi.</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"action_add_anyway\">Tambah sahaja</string>\n    <string name=\"pref_display_profile\">Paparan profil tersuai</string>\n    <string name=\"theme_monochrome\">Monokrom</string>\n    <string name=\"pref_display_images_description\">Memaparkan imej dalam huraian manga</string>\n    <string name=\"pref_security\">cagaran</string>\n    <string name=\"pref_firebase\">Analitis dan Log Ranap</string>\n    <string name=\"firebase_summary\">Menghantar log ranap dan analitis akan membolehkan kami mengenal pasti dan membetulkan isu, meningkatkan prestasi dan menjadikan kemas kini masa hadapan lebih berkaitan dengan keperluan anda</string>\n    <string name=\"pref_behavior\">kelakuan</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Tandakan pendua bab dibaca sebagai dibaca</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Selepas membaca satu bab</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Selepas mengambil bab baru</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Sembunyikan penunjuk bab yang hilang</string>\n    <string name=\"ext_remove\">Alih keluar</string>\n    <string name=\"ext_confirm_remove\">Alih keluar Sambungan?</string>\n    <string name=\"remove_private_extension_message\">Adakah anda benar -benar mahu mengeluarkan \\\"%s\\\" Lanjutan?</string>\n    <string name=\"add_repo_confirmation\">Adakah anda ingin menambah repo \\\"%s\\\"?</string>\n    <string name=\"action_replace_repo_title\">Menandatangani cap jari utama sudah ada</string>\n    <string name=\"action_replace_repo_message\">Repositori %1$s mempunyai cap jari utama yang menandatangani sama seperti %2$s.\\nSekiranya ini dijangka, %2$s akan diganti, jika tidak hubungi penyelenggara repo anda.</string>\n    <string name=\"pref_flash_duration\">Tempoh kilat</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flash setiap</string>\n    <string name=\"pref_flash_with\">Kilat dengan</string>\n    <string name=\"pref_flash_style_black\">Hitam</string>\n    <string name=\"pref_flash_style_white\">Putih</string>\n    <string name=\"pref_flash_style_white_black\">Putih dan Hitam</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Ambang bitmap perkakasan tersuai</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Lalai (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Sekiranya pembaca memuatkan imej kosong secara bertahap mengurangkan ambang.\\nDipilih: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Gunakan penyahkod warisan untuk pembaca jalur panjang</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Mempengaruhi prestasi. Hanya membolehkan jika mengurangkan ambang bitmap tidak membetulkan masalah imej kosong</string>\n    <string name=\"storage_failed_to_create_download_directory\">Gagal membuat direktori muat turun</string>\n    <string name=\"storage_failed_to_create_directory\">Gagal membuat direktori: %s</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Langkau memuat turun Bab Baca Duplikat</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Kemas kini kemajuan apabila ditandakan seperti yang dibaca</string>\n    <string name=\"invalid_backup_file_json\">Sandaran json tidak disokong</string>\n    <string name=\"invalid_backup_file_unknown\">Fail sandaran rosak</string>\n    <string name=\"extensionRepo_settings\">Repos lanjutan</string>\n    <string name=\"non_library_settings\">Semua penyertaan membaca</string>\n    <string name=\"export\">Eksport</string>\n    <string name=\"library_list\">Senarai Perpustakaan</string>\n    <string name=\"library_exported\">Perpustakaan dieksport</string>\n    <string name=\"clear_database_text\">Anda akan mengeluarkan penyertaan dari pangkalan data</string>\n    <string name=\"clear_database_history_warning\">Baca bab dan kemajuan penyertaan bukan perpustakaan akan hilang</string>\n    <string name=\"clear_db_exclude_read\">Simpan penyertaan dengan Bab Baca</string>\n    <string name=\"pref_update_library_manga_titles\">Kemas kini tajuk manga perpustakaan untuk memadankan sumber</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Amaran: Jika manga dinamakan semula, ia akan dikeluarkan dari barisan muat turun (jika ada).</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Jeda membaca sejarah untuk lanjutan</string>\n    <string name=\"logging_in\">Log masuk…</string>\n    <string name=\"author\">Pengarang</string>\n    <string name=\"artist\">Artis</string>\n    <string name=\"possible_duplicates_title\">Kemungkinan pendua</string>\n    <string name=\"possible_duplicates_summary\">Anda mempunyai entri di perpustakaan anda dengan nama yang serupa.\\n\\nPilih entri untuk berhijrah atau tambahkan pula.</string>\n    <string name=\"manga_interval_expected_update_null\">Manga ini sama ada selesai, atau tidak ada tarikh pelepasan yang diramalkan.</string>\n    <string name=\"confirm_tracker_update\">Kemas kini pelacak ke bab %d?</string>\n    <string name=\"trackers_updated_summary\">Penjejak dikemas kini ke bab %d</string>\n    <string name=\"tracked_privately\">Dijejaki secara peribadi</string>\n    <string name=\"action_toggle_private_on\">Menjejaki secara peribadi</string>\n    <string name=\"action_toggle_private_off\">Menjejaki secara terbuka</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Gagal memperoleh akses folder yang berterusan. Aplikasi ini mungkin berkelakuan tidak disangka -sangka.</string>\n    <string name=\"notes_placeholder\">Menikmati bahagian di mana…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Dipilih</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Terdapat</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Pilih Semua</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Pilih Tiada</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Pilih sumber yang diaktifkan</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Pilih sumber yang disematkan</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Teruskan</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Data untuk berhijrah</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Padamkan muat turun entri semasa selepas penghijrahan</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Kata kunci tambahan (pilihan)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Membantu menyempitkan hasil carian dengan menambahkan kata kunci tambahan</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Sembunyikan penyertaan tanpa perlawanan</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Sembunyikan penyertaan tanpa bab yang lebih baru</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Hanya tunjukkan entri jika perlawanan mempunyai bab tambahan</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Pilihan ini lambat dan berbahaya dan boleh menyebabkan sekatan dari sumber</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Mod carian lanjutan</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Memecah tajuk ke dalam kata kunci untuk carian yang lebih luas</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Perlawanan berdasarkan nombor bab</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Jika diaktifkan, pilih perlawanan yang paling jauh ke depan. Jika tidak, pilih perlawanan pertama dengan keutamaan sumber.</string>\n    <string name=\"migrationListScreenTitle\">Penghijrahan</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Penghijrahan (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Salin</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Berhijrah</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Tiada alternatif yang dijumpai</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Terkini: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Tidak diketahui</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Cari secara manual</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Jangan berhijrah</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Berhijrah sekarang</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Salin sekarang</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Berhenti berhijrah?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Berhenti</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Batalkan</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Salin</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Berhijrah</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Batalkan</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Batal</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Tidak ada bab yang dijumpai, entri ini tidak dapat digunakan untuk penghijrahan</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Tidak benarkan nama fail bukan ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Memastikan keserasian dengan media penyimpanan tertentu yang tidak menyokong Unicode. Apabila ini diaktifkan, anda perlu menamakan semula folder sumber dan manga secara manual dengan menggantikan aksara bukan-ASCII dengan representasi heksadesimal UTF-8 huruf kecil mereka. Fail bab tidak perlu dinamakan semula.</string>\n    <string name=\"pref_download_concurrent_sources\">Muat turun sumber serentak</string>\n    <string name=\"pref_download_concurrent_pages\">Muat turun halaman serentak</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Halaman yang dimuat turun secara serentak setiap sumber</string>\n    <string name=\"action_webview_close_tab\">Tab Tutup</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/my/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"on\">ဖွင့်သည်။</string>\n    <string name=\"off\">ပိတ်သည်။</string>\n    <string name=\"selected\">ရွေးချယ်ထားပြီး</string>\n    <string name=\"not_selected\">မရွေးချယ်ထားပါ။</string>\n    <string name=\"action_menu_overflow_description\">ရွေးချယ်စရာများ</string>\n    <string name=\"action_bar_up_description\">အပေါ်သို့</string>\n    <string name=\"name\">အမည်</string>\n    <string name=\"categories\">အမျိုးအစားများ</string>\n    <string name=\"manga\">စာအုပ်စင် မှတ်တမ်းများ</string>\n    <string name=\"chapters\">အပိုင်းများ</string>\n    <string name=\"track\">ခြေရာခံ</string>\n    <string name=\"scanlator\">ဘာသာပြန်သူ</string>\n    <string name=\"label_more\">ပိုမို၍</string>\n    <string name=\"label_download_queue\">ဒေါင်းလုဒ် စာရင်း</string>\n    <string name=\"label_library\">စာအုပ်စင်</string>\n    <string name=\"label_recent_updates\">အပ်ဒိတ်များ</string>\n    <string name=\"label_recent_manga\">မှတ်တမ်းများ</string>\n    <string name=\"label_sources\">ရင်းမြစ်များ</string>\n    <string name=\"label_data_storage\">ဒေတာနှင့် သိမ်းဆည်းမှု</string>\n    <string name=\"label_stats\">စာရင်းအင်းများ</string>\n    <string name=\"label_migration\">ပေါင်းစပ်မှု</string>\n    <string name=\"label_extension_info\">ချိတ်ဆက်မှု အချက်အလက်</string>\n    <string name=\"label_help\">အကူအညီ</string>\n    <string name=\"label_default\">ပုံသေ</string>\n    <string name=\"label_warning\">သတိပေးချက်</string>\n    <string name=\"label_started\">စတင်သည်။</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_downloaded\">ဒေါင်းလုဒ်လုပ်ထားသည်။</string>\n    <string name=\"delete_downloaded\">ဒေါင်းလုဒ်များ ဖျက်မည်။</string>\n    <string name=\"history\">မှတ်တမ်း</string>\n    <string name=\"label_settings\">ဆက်တင်များ</string>\n    <string name=\"label_upcoming\">နောက်ဆက်တွဲ</string>\n    <string name=\"label_extensions\">ချိတ်ဆက်မှုများ</string>\n    <string name=\"label_backup\">အရံသိမ်းဆည်းခြင်းနှင့် ပြန်လည်ရယူခြင်း</string>\n    <string name=\"unlock_app_title\">%s ကို လော့ခ်ဖွင့်ပါ။</string>\n    <string name=\"confirm_lock_change\">ဖြည့်ထားသည်ကို အတည်ပြုပါ။</string>\n    <string name=\"action_settings\">ဆက်တင်များ</string>\n    <string name=\"action_menu\">မီနူး</string>\n    <string name=\"action_filter\">စစ်ထုတ်မှု</string>\n    <string name=\"action_set_interval\">အချိန်ကြားကို သတ်မှတ်ပါ။</string>\n    <string name=\"action_filter_bookmarked\">မှတ်သားထားသည်။</string>\n    <string name=\"action_sort_last_read\">နောက်ဆုံး ဖတ်ခဲ့သည်အားဖြင့် စီပါ</string>\n    <string name=\"action_sort_last_manga_update\">နောက်ဆုံး အပ်ဒိတ်အားဖြင့် စီပါ</string>\n    <string name=\"action_edit\">တည်းဖြတ်ပါ</string>\n    <string name=\"action_start\">စတင်ပါ</string>\n    <string name=\"action_display_show_continue_reading_button\">ဆက်လက်ဖတ်ရှုရန် ခလုတ်ပြသရန်</string>\n    <string name=\"action_disable\">မလုပ်ဆောင်ပါ</string>\n    <string name=\"action_pin\">ပင်ထောက်မည်။</string>\n    <string name=\"action_unpin\">ပင်မထောက်တော့ပါ။</string>\n    <string name=\"onboarding_action_finish\">စတင်မည်။</string>\n    <string name=\"onboarding_storage_help_action\">သိုလှောင်မှုလမ်းညွှန်</string>\n    <string name=\"onboarding_permission_action_grant\">ခွင့်ပြုခြင်း</string>\n    <string name=\"onboarding_guides_new_user\">%s ကို ခုမှ စသုံးသူးလား? စတင်အသုံးပြုနည်းလမ်းညွှန်ကို ကြည့်ရှုရန် အကြံပြုပါတယ်။</string>\n    <string name=\"onboarding_guides_returning_user\">ပြန်လည်အသုံးပြုသူများအတွက်လမ်းညွှန်</string>\n    <string name=\"pref_category_general\">ယေဘူယျ</string>\n    <string name=\"pref_category_appearance\">ပုံစံ</string>\n    <string name=\"pref_category_library\">စာကြည့်တိုက်</string>\n    <string name=\"pref_category_reader\">စာဖတ်သူ</string>\n    <string name=\"pref_category_downloads\">ဒေါင်းလုဒ်များ</string>\n    <string name=\"pref_category_tracking\">လမ်းညွှန်စက်များ</string>\n    <string name=\"pref_category_advanced\">မြင့်မားသော</string>\n    <string name=\"pref_category_about\">အကြောင်း</string>\n    <string name=\"pref_appearance_summary\">ပုံစံအနှစ်ချုပ်</string>\n    <string name=\"pref_library_summary\">စာကြည့်တိုက်အနှစ်ချုပ်</string>\n    <string name=\"pref_tracking_summary\">လမ်းညွှန်စက်များအနှစ်ချုပ်</string>\n    <string name=\"theme_dark\">အမှောင်</string>\n    <string name=\"action_filter_empty\">စစ်ထုတ်မှု ဖယ်သည်။</string>\n    <string name=\"action_filter_tracked\">ခြေရာခံထားသည်။</string>\n    <string name=\"action_filter_unread\">မဖတ်ရသေးသော</string>\n    <string name=\"action_filter_interval_custom\">စိတ်ကြိုက် အပ်ဒိတ် အကြိမ်ရေ</string>\n    <string name=\"action_sort_alpha\">အက္ခရာစဉ်အားဖြင့် စီပါ</string>\n    <string name=\"action_sort_count\">စာအုပ်စင်တွင်ရှိသော အရေအတွက်စုစုပေါင်း</string>\n    <string name=\"action_sort_next_updated\">နောက်တစ်ခု အပ်ဒိတ်မည်အားဖြင့် စီပါ</string>\n    <string name=\"action_sort_latest_chapter\">နောက်ဆုံး အပိုင်းအားဖြင့် စီပါ</string>\n    <string name=\"action_sort_total\">အပိုင်းစုစုပေါင်း</string>\n    <string name=\"action_sort_unread_count\">မဖတ်ရသေးသော အရေအတွက်အားဖြင့် စီပါ</string>\n    <string name=\"action_sort_chapter_fetch_date\">အပိုင်းရရှိသည့် ရက်စွဲအားဖြင့် စီပါ</string>\n    <string name=\"action_sort_date_added\">ထည့်သွင်းသည့် ရက်စွဲအားဖြင့် စီပါ</string>\n    <string name=\"action_sort_tracker_score\">ခြေရာခံ အမှတ်အားဖြင့် စီပါ</string>\n    <string name=\"action_sort_random\">ကျပန်းစီမှု</string>\n    <string name=\"action_search\">ရှာဖွေပါ</string>\n    <string name=\"action_search_hint\">ရှာဖွေလိုသည်ကို ထည့်ပါ…</string>\n    <string name=\"action_search_settings\">ရှာဖွေမှု ဆက်တင်များ</string>\n    <string name=\"action_select_all\">အားလုံးကို ရွေးချယ်ပါ</string>\n    <string name=\"action_select_inverse\">ရွေးချယ်မှု ပြောင်းပြန်ပါ</string>\n    <string name=\"action_mark_as_read\">ဖတ်ပြီးပြီး</string>\n    <string name=\"action_global_search\">ကမ္ဘာလုံးဆိုင်ရာ ရှာဖွေမှု</string>\n    <string name=\"action_mark_as_unread\">မဖတ်ရသေးဘူး</string>\n    <string name=\"action_mark_previous_as_read\">ယခင် အပိုင်းများကို ဖတ်ပြီးပြီး</string>\n    <string name=\"action_download\">သိမ်းယူထားမယ်</string>\n    <string name=\"action_update_library\">စာအုပ်စင် အပ်ဒိတ်လုပ်ပါ</string>\n    <string name=\"action_enable_all\">အားလုံးကို ဖွင့်ပါ</string>\n    <string name=\"action_disable_all\">အားလုံးကို ပိတ်ပါ</string>\n    <string name=\"action_add\">ထည့်ပါ</string>\n    <string name=\"action_update_category\">အမျိုးအစားကို အပ်ဒိတ်လုပ်ပါ</string>\n    <string name=\"action_open_random_manga\">ကျပန်း စာအုပ်တစ်အုပ် ဖွင့်ပါ</string>\n    <string name=\"action_add_category\">အမျိုးအစား ထည့်ပါ</string>\n    <string name=\"action_edit_categories\">အမျိုးအစားများ တည်းဖြတ်ပါ</string>\n    <string name=\"action_bookmark\">စာအမှတ်အထား ထည့်ပါ</string>\n    <string name=\"action_remove_bookmark\">စာအမှတ်အထား ဖယ်ရှားပါ</string>\n    <string name=\"action_delete\">ဖျက်ပါ</string>\n    <string name=\"action_rename_category\">အမျိုးအစား အမည်ပြောင်းပါ</string>\n    <string name=\"action_move_category\">အမျိုးအစား ရွှေ့ပါ</string>\n    <string name=\"delete_category_confirmation\">အမျိုးအစား ဖျက်မည်ဟု အတည်ပြုပါ</string>\n    <string name=\"delete_category\">အမျိုးအစား ဖျက်ပါ</string>\n    <string name=\"action_pause\">ရပ်လိုက်ပါ</string>\n    <string name=\"action_edit_cover\">အဖုံးကို တည်းဖြတ်ပါ</string>\n    <string name=\"action_view_chapters\">အပိုင်းများကို ကြည့်ရှုပါ</string>\n    <string name=\"action_previous_chapter\">ယခင် အပိုင်း</string>\n    <string name=\"action_next_chapter\">နောက်ထပ် အပိုင်း</string>\n    <string name=\"action_retry\">ထပ်ကြိုးစားပါ</string>\n    <string name=\"action_display_language_badge\">ဘာသာစကားဘေ့ခ််ပြသမည်</string>\n    <string name=\"action_display_show_tabs\">ထပ်အလုံးပြသရန်</string>\n    <string name=\"action_display_show_number_of_items\">ပစ္စည်းအရေအတွက်ပြသရန်</string>\n    <string name=\"action_apply\">လုပ်ဆောင်မည်။</string>\n    <string name=\"action_cancel\">မလုပ်ဆောင်ပါ</string>\n    <string name=\"action_ok\">အိုကေ</string>\n    <string name=\"action_remove\">ဖယ်ရှားပါ</string>\n    <string name=\"action_remove_everything\">အားလုံးကို ဖယ်ရှားပါ</string>\n    <string name=\"action_resume\">ပြန်စပါ</string>\n    <string name=\"action_open_in_browser\">ဘရောက်ဇာတွင် ဖွင့်ပါ</string>\n    <string name=\"action_show_manga\">စာအုပ်စင်ပြပါ</string>\n    <string name=\"action_copy_to_clipboard\">ကလစ်ပို့ဒ်သို့ မိတ္တူပြုပါ</string>\n    <string name=\"action_copy_link\">လင့် မိတ္တူပြုပါ</string>\n    <string name=\"action_open_in_web_view\">ဝဘ်အမြင်တွင်ဖွင့်ရန်</string>\n    <string name=\"action_migrate\">အချက်အလက်ပြောင်းရွှေ့မည်</string>\n    <string name=\"action_display_mode\">ပြသမှု ပုံစံ</string>\n    <string name=\"action_display\">ပြသမည်</string>\n    <string name=\"action_display_grid\">ဂရစ်အဖြစ်ပြသမည်</string>\n    <string name=\"action_display_comfortable_grid\">သက်တောင့်သက်သာရှိသောဂရစ်အဖြစ်ပြသမည်</string>\n    <string name=\"action_display_list\">စာရင်းအဖြစ်ပြသမည်</string>\n    <string name=\"action_display_cover_only_grid\">အကဲဖြတ်စာမျက်နှာသာပြသသောဂရစ်</string>\n    <string name=\"action_display_download_badge\">ဒေါင်းလုဒ်ဘေ့ခ််ပြသမည်</string>\n    <string name=\"action_cancel_all\">အားလုံးဖျက်မည်</string>\n    <string name=\"cancel_all_for_series\">ဤအကြောင်းအရာအားလုံးကိုဖျက်မည်</string>\n    <string name=\"action_sort\">စီမည်။</string>\n    <string name=\"action_display_local_badge\">ဒေသခံဘေ့ခ််ပြသမည်</string>\n    <string name=\"action_order_by_upload_date\">ရက် အလိုက်</string>\n    <string name=\"action_order_by_chapter_number\">အခန်းနံပါတ် အလိုက်</string>\n    <string name=\"action_newest\">အသစ်ဆုံး</string>\n    <string name=\"action_oldest\">အဟောင်းဆုံး</string>\n    <string name=\"action_asc\">Ascending</string>\n    <string name=\"action_desc\">Descending</string>\n    <string name=\"action_move_to_bottom\">အောက်ဆုံးသို့ရွှေ့မည်</string>\n    <string name=\"action_move_to_bottom_all_for_series\">ဤအကြောင်းအရာအားလုံးကိုအောက်ဆုံးသို့ရွှေ့မည်</string>\n    <string name=\"action_install\">ထည့်သွင်းရန်</string>\n    <string name=\"action_share\">မျှဝေမည်</string>\n    <string name=\"action_move_to_top\">အပေါ်ဆုံးသို့ရွှေ့မည်</string>\n    <string name=\"action_move_to_top_all_for_series\">စီးရီးများကို အပေါ်သို့သို့ရွှေ့မည်</string>\n    <string name=\"action_save\">သိမ်းမည်</string>\n    <string name=\"action_reset\">ပြန်လည်သတ်မှတ်မည်</string>\n    <string name=\"action_revert_to_default\">ပုံမှန်ပြန်အလွဲမပြင်</string>\n    <string name=\"action_undo\">မလုပ်တော့</string>\n    <string name=\"action_close\">ပိတ်မည်</string>\n    <string name=\"action_webview_forward\">ရှေ့သို့</string>\n    <string name=\"action_webview_refresh\">Refresh</string>\n    <string name=\"action_open_log\">မှတ်တမ်းဖွင့်မည်</string>\n    <string name=\"action_show_errors\">အသေးစိတ် ကြည့်ရန် နှိပ်ပါ</string>\n    <string name=\"action_restore\">ပြန်ထားမည်</string>\n    <string name=\"action_webview_back\">နောက်သို့</string>\n    <string name=\"action_start_downloading_now\">ခုပဲ ဒေါင်းလုဒ်လုပ်မည်</string>\n    <string name=\"action_not_now\">ခုမဟုတ်ပါ</string>\n    <string name=\"action_add_anyway\">ဘာဖြစ်ဖြစ် ထည့်မည်</string>\n    <string name=\"loading\">ခဏစောင့်ပါ။ …</string>\n    <string name=\"internal_error\">InternalError: ပြဿနာဖြေရှင်းရန် အတွက် ခရပ်စ်လော့ဂ်များကို စစ်ဆေးပါ။</string>\n    <string name=\"app_not_available\">အက်ပလီကေးရှင်းရရှိနိုင်ခြင်းမရှိပါ</string>\n    <string name=\"onboarding_heading\">ကြိုဆိုပါတယ်။</string>\n    <string name=\"onboarding_description\">လိုအပ်တာတွေကို အရင်ဆုံး လုပ်ဆောင်ပါ။ နောက်မှ ဆက်တင်များကို ပြန်လည်သတ်မှတ်လို့ရပါတယ်။</string>\n    <string name=\"onboarding_action_next\">နောက်တစ်ဆင့်</string>\n    <string name=\"onboarding_action_skip\">ကျော်မည်။</string>\n    <string name=\"pref_onboarding_guide\">လမ်းညွှန်အကြောင်း</string>\n    <string name=\"onboarding_storage_info\">အခန်းဒေါင်းလုဒ်များ၊ ဘက်အပ်များနှင့် အခြားသော ဖိုင်များကို %1$s သိမ်းဆည်းမည့် ဖိုလ်ဒါကို ရွေးချယ်ပါ။\\n\\nသီးခြားဖိုင်တစ်ခု သတ်မှတ်ရန် အကြံပြုပါသည်။\\n\\nရွေးချယ်ထားသော ဖိုင် - %2$s</string>\n    <string name=\"onboarding_storage_action_select\">ဖိုင် ရွေးချယ်ပါ</string>\n    <string name=\"onboarding_permission_install_apps\">အက်ပလီကေးရှင်းများတပ်ဆင်ခွင့်</string>\n    <string name=\"onboarding_permission_install_apps_description\">အက်ပလီကေးရှင်းတပ်ဆင်ရန်ခွင့်ပြုပါ</string>\n    <string name=\"onboarding_storage_selection_required\">ဖိုင်တစ်ခုကို ရွေးချယ်ရပါမည်</string>\n    <string name=\"onboarding_permission_notifications\">သတိပေးချက်များခွင့်ပြုမည်</string>\n    <string name=\"onboarding_storage_help_info\">ဗားရှင်းဟောင်းမှ တင်မြှင့်မှု ပြုလုပ်နေပြီး ရွေးချယ်ရန် သေချာမသိပါက သိုလှောင်မှုလမ်းညွှန်ကို ဖတ်ပါ။</string>\n    <string name=\"onboarding_permission_notifications_description\">စာအုပ်စင် အပ်ဒေ့များနှင့် အခြားသော အကြောင်းအရာများအတွက် အကြောင်းကြားမှုများ ရယူပါ။</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">ဘက်ထရီအနေအထားများကိုသွင်းခြင်း</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">ဘက်ထရီစွမ်းအင်ကြီးလွန်ခြင်းများအားလုံးဖော်ပြပါ</string>\n    <string name=\"onboarding_permission_crashlytics\">အမှားဖြစ်သောအချက်အလက်များမှတ်တမ်းတင်ခြင်း</string>\n    <string name=\"onboarding_permission_crashlytics_description\">အမှားအချက်များအတွက်ပါဝင်ရန်</string>\n    <string name=\"onboarding_permission_analytics\">စွမ်းဆောင်မှုများစာရင်း</string>\n    <string name=\"onboarding_permission_analytics_description\">မှတ်တမ်းများနှင့်ယခုနှင့်အတူ စွမ်းဆောင်မှုစစ်ဆေးမှု</string>\n    <string name=\"pref_reader_summary\">စာဖတ်သူအနှစ်ချုပ်</string>\n    <string name=\"pref_downloads_summary\">ဒေါင်းလုဒ်များအနှစ်ချုပ်</string>\n    <string name=\"pref_browse_summary\">လမ်းညွှန်ရှာဖွေရေးအနှစ်ချုပ်</string>\n    <string name=\"pref_backup_summary\">အပေါ်မှာလမ်းညွှန်မှတ်သား</string>\n    <string name=\"pref_security_summary\">လုံခြုံရေးအနှစ်ချုပ်</string>\n    <string name=\"pref_advanced_summary\">မြင့်မားသောအနှစ်ချုပ်</string>\n    <string name=\"pref_category_theme\">ပုံစံအဆင့်</string>\n    <string name=\"pref_app_theme\">အက်ပလီကေးရှင်းပုံစံ</string>\n    <string name=\"theme_system\">စနစ်ပုံစံ</string>\n    <string name=\"theme_light\">အလင်း</string>\n    <string name=\"pref_date_format\">နေ့ရက် ပုံစံ</string>\n    <string name=\"pref_manage_notifications\">အကြောင်းကြားချက်များကို စီမံခန့်ခွဲရန်</string>\n    <string name=\"pref_app_language\">အက်ပ် ဘာသာစကား</string>\n    <string name=\"pref_category_security\">လုံခြုံရေးနှင့် ကိုယ်ရေးကိုယ်တာ</string>\n    <string name=\"pref_security\">လုံခြုံရေး</string>\n    <string name=\"pref_firebase\">ခွဲခြမ်းစိတ်ဖြာမှုနှင့် ခရပ်စ်လော့ဂ်များ</string>\n    <string name=\"secure_screen\">ကာကွယ်ထားသော စခရင်</string>\n    <string name=\"secure_screen_summary\">လုံခြုံသော စခရင်သည် အက်ပ်များကို ပြောင်းလဲသည့်အခါ အက်ပ်အကြောင်းအရာများကို ဖုံးကွယ်ပေးပြီး စခရင်ရှော့များကို ပိတ်ဆို့ပါမည်။</string>\n    <string name=\"parental_controls_info\">ဒါက တရားမဝင်တဲ့ ဒါမှမဟုတ် မှားယွင်းစွာ သတ်မှတ်ထားတဲ့ တိုးချဲ့ပလပ်အင်တွေက အက်ပ်ထဲမှာ လိင်ပိုင်းဆိုင်ရာ အကြောင်းအရာတွေ ပေါ်လာတာကို တားမရနိုင်ပါဘူး။</string>\n    <string name=\"firebase_summary\">ခရပ်စ်လော့ဂ်များနှင့် ခွဲခြမ်းစိတ်ဖြာမှုဒေတာများကို ပေးပို့ခြင်းဖြင့် ပြဿနာများကို ဖော်ထုတ်ပြီး ပြင်ဆင်နိုင်မည်ဖြစ်ပြီး စွမ်းဆောင်ရည်ကို တိုးတက်စေကာ သုံးစွဲသူများ၏ လိုအပ်ချက်များနှင့် ပိုမိုသက်ဆိုင်သော အနာဂတ် အပ်ဒိတ်များကို ပြုလုပ်နိုင်မည်ဖြစ်သည်။\\\"</string>\n    <string name=\"ext_confirm_remove\">ဖယ်ရှားမည်လား</string>\n    <string name=\"pref_chapter_swipe_start\">ဘယ်ဘက်သို့ ပွတ်ဆွဲရန်</string>\n    <string name=\"ext_update_all\">အကုန် အပ်ဒိတ်လုပ်မည်။</string>\n    <string name=\"ext_pending\">စောင့်ဆိုင်းဆဲ</string>\n    <string name=\"ext_installed\">ထည့်သွင်းပြီး</string>\n    <string name=\"obsolete_extension_message\">ယခုအခါ ရရှိနိုင်ပါတော့မည်မဟုတ်ပါ။ ၎င်းသည် စနစ်တကျ မလုပ်ဆောင်နိုင်တော့ဘဲ အက်ပ်လီကေးရှင်းတွင် ပြဿနာများ ဖြစ်ပေါ်စေနိုင်ပါသည်။ ဖယ်ရှားပစ်ရန် အကြံပြုအပ်ပါသည်။</string>\n    <string name=\"pref_update_only_in_release_period\">နောက်မည့် အချိန်ကို ခန့်မှန်းခြင်း</string>\n    <string name=\"lock_with_biometrics\">လော့ခ်ဖြည်ရန် လိုအပ်သည်</string>\n    <string name=\"lock_when_idle\">အသုံးမပြုသည့်အခါ သော့ခတ်ရန်</string>\n    <string name=\"lock_always\">ဘာဖြစ်ဖြစ်</string>\n    <string name=\"lock_never\">ဘယ်တော့မှ</string>\n    <string name=\"hide_notification_content\">အကြောင်းကြားချက်များကို ပိတ်ပါ</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) ရင်းမြစ်များ</string>\n    <string name=\"pref_show_nsfw_source\">ရင်းမြစ်များနှင့် တိုးချဲ့မှုများ စာရင်းတွင် ပြသရန်</string>\n    <string name=\"relative_time_today\">ယနေ့</string>\n    <string name=\"update_never\">ပိတ်သည်</string>\n    <string name=\"update_12hour\">၁၂နာရီတိုင်း</string>\n    <string name=\"update_6hour\">၆နာရီတိုင်း</string>\n    <string name=\"update_24hour\">နေ့စဥ်</string>\n    <string name=\"update_48hour\">နှစ်ရက်ခြား</string>\n    <string name=\"update_72hour\">သုံးရက်ခြား</string>\n    <string name=\"update_weekly\">အပတ်စဥ်</string>\n    <string name=\"charging\">အားသွင်းနေစဥ်</string>\n    <string name=\"pref_update_only_completely_read\">မဖတ်ရသေးသော အခန်းများကို ကျော်သွားပါ</string>\n    <string name=\"pref_update_only_non_completed\">ဖတ်ပြီးသား အခန်းများကို ကျော်သွားပါ</string>\n    <string name=\"pref_update_only_started\">မစရသေးသော အခန်းများကို ကျော်သွားပါ</string>\n    <string name=\"connected_to_wifi\">Wi-Fi ဖြင့်သာ</string>\n    <string name=\"pref_library_update_show_tab_badge\">အိုင်ကွန်ပေါ်တွင် မဖတ်ရသေးတဲ့ အရေအတွက်ကို ပြသပါ</string>\n    <string name=\"default_category_summary\">အချိန်တိုင်း မေးပါ။</string>\n    <string name=\"pref_library_update_categories_details\">ဝင်ရောက်ခွင့် ပိတ်ထားသော ကဏ္ဍများရှိ အခန်းများကို ပါဝင်ခွင့်ပြုထားသော ကဏ္ဍများတွင် ပါဝင်နေသည့်တိုင် အပ်ဒိတ်မပြုလုပ်ပါ</string>\n    <string name=\"all\">အားလုံး</string>\n    <string name=\"none\">တစ်ခုမဟုတ်</string>\n    <string name=\"include\">အပါအဝင်: %s</string>\n    <string name=\"exclude\">Exclude: %s</string>\n    <string name=\"pref_chapter_swipe_end\">ညာဘက်သို့ ပွတ်ဆွဲ</string>\n    <string name=\"multi_lang\">အစုံ</string>\n    <string name=\"ext_updates_pending\">လုပ်ဆောင်နေဆဲ</string>\n    <string name=\"ext_update\">အပ်ဒိတ်လုပ်မည်</string>\n    <string name=\"ext_install\">ထည့်သွင်းမည်</string>\n    <string name=\"ext_downloading\">ဒေါင်းလုပ် လုပ်နေသည်</string>\n    <string name=\"ext_installing\">ထည့်သွင်းနေသည်</string>\n    <string name=\"ext_remove\">ဖယ်ရှားသည်</string>\n    <string name=\"ext_app_info\">အက်ပ် အချက်အလက်</string>\n    <string name=\"remove_private_extension_message\">\\\"%s\\\" ကို တကယ်ဖယ်ရှားလိုပါသလား။</string>\n    <string name=\"extension_api_error\">ရယူခြင်း ကျရှုံးသွားသည်</string>\n    <string name=\"ext_info_version\">ဗာရှင်း</string>\n    <string name=\"ext_info_language\">ဘာသာစကား</string>\n    <string name=\"ext_info_age_rating\">အသက်အကန့်အသတ်</string>\n    <string name=\"ext_permission_install_apps_warning\">ထည့်သွင်းရန် ခွင့်ပြုချက်လိုအပ်သည်။</string>\n    <string name=\"ext_nsfw_short\">၁၈+</string>\n    <string name=\"ext_install_service_notif\">ထည့်သွင်းနေဆဲ…</string>\n    <string name=\"ext_nsfw_warning\">ဤတွင် လိင်ပိုင်းဆိုင်ရာ အကြောင်းအရာများ (၁၈+နှစ်အထက်သာ သင့်လျော်သော) ပါဝင်နိုင်ပါသည်။</string>\n    <string name=\"action_add_repo\">repo ထည့်သွင်းရန်</string>\n    <string name=\"error_repo_exists\">repo ရှိပြီးသားဖြစ်သည်၊</string>\n    <string name=\"action_delete_repo\">ဖျက်မည်။</string>\n    <string name=\"action_replace_repo\">အစားထိုးမည်</string>\n    <string name=\"pref_fullscreen\">မျက်နှာပြင်အပြည့်</string>\n    <string name=\"pref_flash_style_black\">အမည်း</string>\n    <string name=\"pref_flash_style_white\">အဖြူ</string>\n    <string name=\"pref_flash_style_white_black\">အဖြူအမည်း</string>\n    <string name=\"pref_show_page_number\">စာမျက်နှာနံပါတ် ပြပါ။</string>\n    <string name=\"delete_repo_confirmation\">\\\"%s\\\"ကို ဖျက်လိုပါသလား?</string>\n    <string name=\"add_repo_confirmation\">\\\"%s\\\" ထည့်သွင်းလိုပါသလား?</string>\n    <string name=\"pref_library_update_interval\">အလိုအလျောက် အပ်ဒိတ်များ</string>\n    <string name=\"landscape\">ရှုခင်း</string>\n    <string name=\"portrait\">ပုံတူ</string>\n    <string name=\"pref_library_columns\">အတန်းအလိုက် ပစ္စည်းများ</string>\n    <string name=\"pref_category_display\">ဖုန်းမျက်နှာပြင်</string>\n    <string name=\"pref_category_library_update\">ကမ္ဘာလုံးဆိုင်ရာ အပ်ဒိတ်</string>\n    <string name=\"theme_greenapple\">နီစိမ်းရောင်</string>\n    <string name=\"theme_lavender\">ခရမ်းနုရောင်</string>\n    <string name=\"pref_relative_format\">အနီးစပ်ဆုံး အချိန်အမှတ်အသား</string>\n    <string name=\"pref_relative_format_summary\">\\\"%2$s\\\" မဟုတ်ဘဲ \\\"%1$s\\\" ဟုပြရန်</string>\n    <string name=\"pref_library_update_refresh_metadata\">metadataကို အလိုလျောက် ပြန်လည်ဆန်းသစ်ပေးပါ။</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">စာအုပ်စင်ကို အပ်ဒိတ်လုပ်လျှင် ကာဗာနှင့် အချက်အလက်သစ်များ ရယူရန်။</string>\n    <string name=\"default_category\">မူရင်းကဏ္ဍ</string>\n    <string name=\"ext_obsolete\">အသုံးပြု၍မရ</string>\n    <string name=\"ext_trust\">ယုံကြည်ရန်</string>\n    <string name=\"untrusted_extension\">မယုံကြည်ရသေးသော အစိတ်အပိုင်းများ</string>\n    <string name=\"label_add_repo_input\">စုစည်းမှုများ၏ URL</string>\n    <string name=\"label_extension_repos\">Extension စုစည်းရာ</string>\n    <string name=\"information_empty_repos\">သင့်မှာ extension ထည့်ရန် စုစည်းမှုများ မထည့်ရသေးပါ။</string>\n    <string name=\"invalid_repo_name\">အသုံးပြုမရသော စုစည်းမှုများ၏ URL</string>\n    <string name=\"restrictions\">ကန့်သက်ထားခြင်း %s</string>\n    <string name=\"network_not_metered\">ကန့်သက်မထားသော ကွန်ရက်ပေါ်တွင်သာ</string>\n    <string name=\"ext_uninstall\">သင့်ဖုန်းမှ ဖယ်ရှားရန်</string>\n    <string name=\"theme_monet\">Dynamic</string>\n    <string name=\"label_donate\">လှူဒါန်း</string>\n    <string name=\"label_auto\">အလိုအလျောက်</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/nb-rNO/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Etter %1$s minutt</item>\n        <item quantity=\"other\">Etter %1$s minutter</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategori</item>\n        <item quantity=\"other\">%d kateogrier</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nytt kapittel</item>\n        <item quantity=\"other\">%1$d nye kapitler</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">For %d oppføring</item>\n        <item quantity=\"other\">For %d oppføringer</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s kapittel</item>\n        <item quantity=\"other\">%1$s kapitler</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s gjenstående</item>\n        <item quantity=\"other\">%1$s gjenstående</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Gjort på %1$s med %2$s feil</item>\n        <item quantity=\"other\">Gjort på %1$s med %2$s feil</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d tracker</item>\n        <item quantity=\"other\">%d trackere</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Hopper over %d kapittel, enten så mangler kilden den eller så har den blitt filtrert ut</item>\n        <item quantity=\"other\">Hopper over %d kapitler, enten så mangler kilden de eller så har de blitt filtrert ut</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Utvidelsesoppdatering tilgjengelig</item>\n        <item quantity=\"other\">%d utvidelsesoppdateringer tilgjengelige</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Kapittel %1$s og 1 til</item>\n        <item quantity=\"other\">Kapitler %1$s og %2$d til</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">I går</item>\n        <item quantity=\"other\">%1$d dager siden</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Neste uleste kapittel</item>\n        <item quantity=\"other\">Neste %d uleste kapitler</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Neste kapittel</item>\n        <item quantity=\"other\">Neste %d kapitler</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Mangler %1$s kapittel</item>\n        <item quantity=\"other\">Mangler %1$s kapitler</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">%d dag</item>\n        <item quantity=\"other\">%d dager</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d pakkebrønn</item>\n        <item quantity=\"other\">%d pakkebrønner</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/nb-rNO/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Navn</string>\n    <string name=\"categories\">Kategorier</string>\n    <string name=\"manga\">Bibliotekoppføringer</string>\n    <string name=\"chapters\">Kapitler</string>\n    <string name=\"history\">Historikk</string>\n    <string name=\"label_settings\">Innstillinger</string>\n    <string name=\"label_download_queue\">Nedlastingskø</string>\n    <string name=\"label_library\">Bibliotek</string>\n    <string name=\"label_recent_manga\">Historikk</string>\n    <string name=\"label_recent_updates\">Oppdateringer</string>\n    <string name=\"label_backup\">Sikkerhetskopier og gjenopprett</string>\n    <string name=\"label_migration\">Flytte</string>\n    <string name=\"label_extensions\">Utvidelser</string>\n    <string name=\"label_extension_info\">Utvidelsesinfo</string>\n    <string name=\"action_settings\">Innstillinger</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_bookmarked\">Bokmerket</string>\n    <string name=\"action_filter_unread\">Ulest</string>\n    <string name=\"action_filter_empty\">Fjern filter</string>\n    <string name=\"action_sort_alpha\">Alfabetisk</string>\n    <string name=\"action_sort_total\">Totale kapitler</string>\n    <string name=\"action_sort_last_read\">Sist lest</string>\n    <string name=\"action_search\">Søk</string>\n    <string name=\"action_select_all\">Velg alt</string>\n    <string name=\"action_mark_as_read\">Marker som lest</string>\n    <string name=\"action_mark_as_unread\">Marker som ulest</string>\n    <string name=\"action_mark_previous_as_read\">Merk forrige som lest</string>\n    <string name=\"action_download\">Last ned</string>\n    <string name=\"action_bookmark\">Bokmerk kapittel</string>\n    <string name=\"action_remove_bookmark\">Fjern bokmerke</string>\n    <string name=\"action_delete\">Slett</string>\n    <string name=\"action_update_library\">Oppdater bibliotek</string>\n    <string name=\"action_edit\">Rediger</string>\n    <string name=\"action_add\">Legg til</string>\n    <string name=\"action_add_category\">Legg til kategori</string>\n    <string name=\"action_edit_categories\">Rediger kategorier</string>\n    <string name=\"action_rename_category\">Gi kategori nytt navn</string>\n    <string name=\"action_move_category\">Sett kategorier</string>\n    <string name=\"action_edit_cover\">Rediger omslag</string>\n    <string name=\"action_pause\">Pause</string>\n    <string name=\"action_previous_chapter\">Forrige kapittel</string>\n    <string name=\"action_next_chapter\">Neste kapittel</string>\n    <string name=\"action_retry\">Prøv igjen</string>\n    <string name=\"action_remove\">Fjern</string>\n    <string name=\"action_resume\">Fortsett</string>\n    <string name=\"action_open_in_browser\">Åpne i nettleser</string>\n    <string name=\"action_display_mode\">Visningsmodus</string>\n    <string name=\"action_display\">Vis</string>\n    <string name=\"action_display_grid\">Kompakt rutenett</string>\n    <string name=\"action_display_list\">Liste</string>\n    <string name=\"action_cancel\">Avbryt</string>\n    <string name=\"action_sort\">Sorter</string>\n    <string name=\"action_install\">Installer</string>\n    <string name=\"action_share\">Del</string>\n    <string name=\"action_save\">Lagre</string>\n    <string name=\"action_reset\">Tilbakestill</string>\n    <string name=\"action_undo\">Angre</string>\n    <string name=\"action_open_log\">Åpne logg</string>\n    <string name=\"action_restore\">Gjenopprett</string>\n    <string name=\"loading\">Laster…</string>\n    <string name=\"app_not_available\">Program ikke tilgjengelig</string>\n    <string name=\"pref_category_general\">Generelt</string>\n    <string name=\"pref_category_reader\">Leser</string>\n    <string name=\"pref_category_downloads\">Nedlastinger</string>\n    <string name=\"pref_category_advanced\">Avansert</string>\n    <string name=\"pref_category_about\">Om</string>\n    <string name=\"update_never\">Av</string>\n    <string name=\"update_6hour\">Hver sjette time</string>\n    <string name=\"update_12hour\">Hver tolvte time</string>\n    <string name=\"update_24hour\">Daglig</string>\n    <string name=\"update_48hour\">Annenhver dag</string>\n    <string name=\"update_weekly\">Ukentlig</string>\n    <string name=\"all\">Alle</string>\n    <string name=\"charging\">Lading</string>\n    <string name=\"default_category\">Standard kategori</string>\n    <string name=\"default_category_summary\">Alltid spør</string>\n    <string name=\"ext_update\">Oppdater</string>\n    <string name=\"ext_install\">Installer</string>\n    <string name=\"ext_pending\">Ventende</string>\n    <string name=\"ext_downloading\">Laster ned</string>\n    <string name=\"ext_installing\">Installerer</string>\n    <string name=\"ext_installed\">Installert</string>\n    <string name=\"ext_trust\">Tillit</string>\n    <string name=\"ext_untrusted\">Ubetrodd</string>\n    <string name=\"ext_uninstall\">Avinstaller</string>\n    <string name=\"untrusted_extension\">Ubetrodd utvidelse</string>\n    <string name=\"pref_fullscreen\">Fullskjermsvisning</string>\n    <string name=\"pref_page_transitions\">Sideovergangsanimasjoner</string>\n    <string name=\"pref_show_page_number\">Vis sidenummer</string>\n    <string name=\"pref_keep_screen_on\">Behold skjerm på</string>\n    <string name=\"pref_reader_navigation\">Navigasjon</string>\n    <string name=\"track\">Sporing</string>\n    <string name=\"action_global_search\">Globalt søk</string>\n    <string name=\"action_open_in_web_view\">Åpne i WebView</string>\n    <string name=\"pref_category_tracking\">Sporing</string>\n    <string name=\"portrait\">Stående</string>\n    <string name=\"landscape\">Liggende</string>\n    <string name=\"pref_library_update_interval\">Automatiske oppdateringer</string>\n    <string name=\"pref_library_update_restriction\">Enhetsbegrensninger for automatiske oppdateringer</string>\n    <string name=\"pref_update_only_non_completed\">Hopp over oppføringer med \\\"Fullført\\\" status</string>\n    <string name=\"pref_auto_update_manga_sync\">Oppdater fremdrift etter lesing</string>\n    <string name=\"pref_crop_borders\">Beskjær kanter</string>\n    <string name=\"pref_custom_brightness\">Egendefinert lysstyrke</string>\n    <string name=\"pref_custom_color_filter\">Egendefinert fargefilter</string>\n    <string name=\"pref_skip_read_chapters\">Hopp over kapitler markert som lest</string>\n    <string name=\"pref_read_with_volume_keys\">Lydstyrkejusteringstaster</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverter lydstyrketaster</string>\n    <string name=\"pref_read_with_long_tap\">Vis handlinger ved langt trykk</string>\n    <string name=\"pref_reader_theme\">Bakgrunnsfarge</string>\n    <string name=\"white_background\">Hvit</string>\n    <string name=\"black_background\">Svart</string>\n    <string name=\"pref_viewer_type\">Standard lesemodus</string>\n    <string name=\"left_to_right_viewer\">Sider (venstre til høyre)</string>\n    <string name=\"right_to_left_viewer\">Sider (høyre til venstre)</string>\n    <string name=\"vertical_viewer\">Sider (loddrett)</string>\n    <string name=\"webtoon_viewer\">Lang stripe</string>\n    <string name=\"pref_image_scale_type\">Skalatype</string>\n    <string name=\"scale_type_fit_screen\">Tilpass skjerm</string>\n    <string name=\"scale_type_stretch\">Strekk</string>\n    <string name=\"scale_type_fit_width\">Tilpass bredde</string>\n    <string name=\"scale_type_fit_height\">Tilpass høyde</string>\n    <string name=\"scale_type_original_size\">Opprinnelig størrelse</string>\n    <string name=\"scale_type_smart_fit\">Smart tilpasning</string>\n    <string name=\"pref_zoom_start\">Startposisjon for forstørring</string>\n    <string name=\"zoom_start_automatic\">Automatisk</string>\n    <string name=\"zoom_start_left\">Venstre</string>\n    <string name=\"zoom_start_right\">Høyre</string>\n    <string name=\"zoom_start_center\">Sentrer</string>\n    <string name=\"double_tap_anim_speed_0\">Ingen animasjon</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Rask</string>\n    <string name=\"pref_rotation_type\">Standard rotasjon</string>\n    <string name=\"rotation_free\">Fri</string>\n    <string name=\"rotation_force_portrait\">Låst stående</string>\n    <string name=\"rotation_force_landscape\">Låst liggende</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">Etter manuelt markert som lest</string>\n    <string name=\"pref_remove_after_read\">Slett automatisk etter lesing</string>\n    <string name=\"disabled\">Avskrudd</string>\n    <string name=\"last_read_chapter\">Sist leste kapittel</string>\n    <string name=\"second_to_last\">Nest sist leste kapittel</string>\n    <string name=\"third_to_last\">Tredje sist leste kapittel</string>\n    <string name=\"fourth_to_last\">Fjerde sist leste kapittel</string>\n    <string name=\"fifth_to_last\">Femte sist leste kapittel</string>\n    <string name=\"pref_download_new\">Last ned nye kapitler</string>\n    <string name=\"services\">Sporere</string>\n    <string name=\"pref_create_backup\">Opprett sikkerhetskopi</string>\n    <string name=\"pref_create_backup_summ\">Kan brukes til å gjenopprette nåværende bibliotek</string>\n    <string name=\"pref_restore_backup\">Gjenopprett sikkerhetskopi</string>\n    <string name=\"pref_restore_backup_summ\">Gjenopprett bibliotek fra sikkerhetskopifil</string>\n    <string name=\"pref_backup_interval\">Sikkerhetskopieringsfrekvens</string>\n    <string name=\"backup_created\">Sikkerhetskopi opprettet</string>\n    <string name=\"restore_completed\">Gjenoppretting fullført</string>\n    <string name=\"backup_choice\">Hva ønsker du å sikkerhetskopiere?</string>\n    <string name=\"restoring_backup\">Gjenoppretter sikkerhetskopi</string>\n    <string name=\"creating_backup\">Oppretter sikkerhetskopi</string>\n    <string name=\"pref_clear_chapter_cache\">Tøm kapittelhurtigbuffer</string>\n    <string name=\"used_cache\">Brukt: %1$s</string>\n    <string name=\"cache_deleted\">Hurtigbuffer tømt. %1$d filer slettet</string>\n    <string name=\"cache_delete_error\">Feil oppstod under opprensing</string>\n    <string name=\"pref_clear_cookies\">Tøm informasjonskapsler</string>\n    <string name=\"cookies_cleared\">Informasjonskapsler slettet</string>\n    <string name=\"pref_clear_database\">Tøm database</string>\n    <string name=\"pref_clear_database_summary\">Slett historikk for oppføringer som ikke er lagret i biblioteket ditt</string>\n    <string name=\"clear_database_completed\">Oppføringer slettet</string>\n    <string name=\"version\">Versjon</string>\n    <string name=\"pref_enable_acra\">Send krasjrapporter</string>\n    <string name=\"pref_acra_summary\">Hjelper til med fiksing av feil. Ingen sensitiv data vil bli sendt</string>\n    <string name=\"login_title\">Logg på %1$s</string>\n    <string name=\"username\">Brukernavn</string>\n    <string name=\"password\">Passord</string>\n    <string name=\"login\">Logg inn</string>\n    <string name=\"login_success\">Innlogget</string>\n    <string name=\"unknown_error\">Ukjent feil</string>\n    <string name=\"updating_category\">Oppdaterer kategori</string>\n    <string name=\"no_more_results\">Ingen flere resultater</string>\n    <string name=\"local_source\">Lokal kilde</string>\n    <string name=\"other_source\">Andre</string>\n    <string name=\"action_global_search_hint\">Globalt søk…</string>\n    <string name=\"latest\">Seneste</string>\n    <string name=\"browse\">Utforsk</string>\n    <string name=\"ongoing\">Pågående</string>\n    <string name=\"unknown\">Ukjent</string>\n    <string name=\"licensed\">Lisensiert</string>\n    <string name=\"remove_from_library\">Fjern fra bibliotek</string>\n    <string name=\"manga_added_library\">Lagt til i biblioteket</string>\n    <string name=\"manga_removed_library\">Fjernet fra bibliotek</string>\n    <string name=\"delete_downloads_for_manga\">Slett nedlastede kapitler?</string>\n    <string name=\"copied_to_clipboard\">Kopiert til utklippstavle:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Kilde ikke installert: %1$s</string>\n    <string name=\"display_mode_chapter\">Kapittel %1$s</string>\n    <string name=\"chapter_downloading_progress\">Laster ned (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Feil</string>\n    <string name=\"chapter_paused\">Pauset</string>\n    <string name=\"show_title\">Kildetittel</string>\n    <string name=\"show_chapter_number\">Kapittelnummer</string>\n    <string name=\"sort_by_source\">Etter kilde</string>\n    <string name=\"sort_by_number\">Etter kapittelnummer</string>\n    <string name=\"manga_download\">Last ned</string>\n    <string name=\"download_unread\">Ulest</string>\n    <string name=\"confirm_delete_chapters\">Er du sikker på at du vil slette de valgte kapitlene?</string>\n    <string name=\"manga_tracking_tab\">Sporing</string>\n    <string name=\"reading\">Leser</string>\n    <string name=\"completed\">Fullført</string>\n    <string name=\"dropped\">Droppet</string>\n    <string name=\"on_hold\">På vent</string>\n    <string name=\"plan_to_read\">Planlagt lest</string>\n    <string name=\"repeating\">Leser om igjen</string>\n    <string name=\"score\">Poengsum</string>\n    <string name=\"title\">Tittel</string>\n    <string name=\"status\">Status</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Type</string>\n    <string name=\"error_category_exists\">En kategori ved dette navnet finnes allerede!</string>\n    <string name=\"snack_categories_deleted\">Kategorier slettet</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Lesningsdato for dette kapittelet vil bli fjernet. Er du sikker?</string>\n    <string name=\"dialog_with_checkbox_reset\">Tilbakestill alle kapitler for denne oppføringen</string>\n    <string name=\"snack_add_to_library\">Legg til i bibliotek?</string>\n    <string name=\"picture_saved\">Bilde lagret</string>\n    <string name=\"custom_filter\">Egendefinert filter</string>\n    <string name=\"set_as_cover\">Sett som omslag</string>\n    <string name=\"cover_updated\">Omslag oppdatert</string>\n    <string name=\"chapter_progress\">Side: %1$d</string>\n    <string name=\"no_next_chapter\">Fant ikke neste kapittel</string>\n    <string name=\"decode_image_error\">Bildet kunne ikke lastes inn</string>\n    <string name=\"transition_finished\">Fullført:</string>\n    <string name=\"transition_current\">Nåværende:</string>\n    <string name=\"transition_next\">Neste:</string>\n    <string name=\"transition_previous\">Forrige:</string>\n    <string name=\"transition_no_next\">Det finnes ikke flere kapittel</string>\n    <string name=\"transition_no_previous\">Det er ikke noe tidligere kapittel</string>\n    <string name=\"transition_pages_loading\">Laster inn sider…</string>\n    <string name=\"transition_pages_error\">Klarte ikke å laste inn sider: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Velg data å inkludere</string>\n    <string name=\"migrate\">Flytt</string>\n    <string name=\"copy\">Kopier</string>\n    <string name=\"notification_new_chapters\">Nye kapitler funnet</string>\n    <string name=\"notification_cover_update_failed\">Klarte ikke å oppdatere omslag</string>\n    <string name=\"update_check_confirm\">Last ned</string>\n    <string name=\"channel_common\">Vanlig</string>\n    <string name=\"filter_mode_screen\">Skjerm</string>\n    <string name=\"label_help\">Hjelp</string>\n    <string name=\"action_display_download_badge\">Last ned kapitler</string>\n    <string name=\"pref_library_columns\">Rutenettstørrelse</string>\n    <string name=\"untrusted_extension_message\">Skadelige utvidelser kan lese alle lagrede innloggingsdetaljer eller kjøre vilkårlig kode.\n\\n\n\\nVed å godta denne utvidelsen, aksepterer du disse risikoene.</string>\n    <string name=\"pref_double_tap_anim_speed\">Animasjonshastighet ved dobbelklikk</string>\n    <string name=\"pager_viewer\">Sider</string>\n    <string name=\"confirm_set_image_as_cover\">Bruk dette bildet som omslag?</string>\n    <string name=\"download_queue_error\">Kunne ikke laste ned kapitler. Du kan prøve igjen i nedlastingsdelen</string>\n    <string name=\"notification_first_add_to_library\">Legg til oppføringen i biblioteket ditt før du gjør dette</string>\n    <string name=\"file_select_cover\">Velg omslagsbilde</string>\n    <string name=\"file_select_backup\">Velg sikkerhetskopifil</string>\n    <string name=\"update_check_no_new_updates\">Ingen nye oppdateringer tilgjengelige</string>\n    <string name=\"update_check_notification_download_in_progress\">Laster ned…</string>\n    <string name=\"update_check_notification_download_complete\">Trykk for å installere oppdatering</string>\n    <string name=\"update_check_notification_download_error\">Feil ved nedlasting</string>\n    <string name=\"update_check_notification_update_available\">Ny versjon tilgjengelig!</string>\n    <string name=\"information_no_downloads\">Ingen nedlastinger</string>\n    <string name=\"information_no_recent\">Ingen nylige oppdateringer</string>\n    <string name=\"information_no_recent_manga\">Ingenting lest nylig</string>\n    <string name=\"information_empty_library\">Biblioteket ditt er tomt</string>\n    <string name=\"information_empty_category\">Du har ingen kategorier. Trykk på pluss-knappen for å lage en for å organisere biblioteket ditt.</string>\n    <string name=\"download_notifier_downloader_title\">Nedlaster</string>\n    <string name=\"download_notifier_title_error\">Feil</string>\n    <string name=\"download_notifier_unknown_error\">Kunne ikke laste ned kapittel grunnet uventet feil</string>\n    <string name=\"download_notifier_text_only_wifi\">Ingen trådløstilkobling tilgjengelig</string>\n    <string name=\"download_notifier_no_network\">Ingen nettverkstilkobling tilgjengelig</string>\n    <string name=\"download_notifier_download_paused\">Nedlastinger pauset</string>\n    <string name=\"pref_color_filter_mode\">Blandingsmodus for fargefilter</string>\n    <string name=\"filter_mode_overlay\">Overlegg</string>\n    <string name=\"filter_mode_multiply\">Multiplisere</string>\n    <string name=\"filter_mode_lighten\">Unngå / lysne</string>\n    <string name=\"filter_mode_darken\">Brenn / mørkere</string>\n    <string name=\"no_results_found\">Resultatløst</string>\n    <string name=\"migration_selection_prompt\">Velg en kilde å flytte fra</string>\n    <string name=\"action_webview_back\">Tilbake</string>\n    <string name=\"action_webview_forward\">Fram</string>\n    <string name=\"action_webview_refresh\">Gjenoppfrisk</string>\n    <string name=\"pref_category_library\">Bibliotek</string>\n    <string name=\"ext_obsolete\">Foreldet</string>\n    <string name=\"obsolete_extension_message\">Denne utvidelsen er ikke lengre tilgjengelig. Den fungerer kankje ikke som den skal og kan forårsake problemer med appen. Avinstallering anbefales.</string>\n    <string name=\"pref_date_format\">Datoformat</string>\n    <string name=\"pref_category_library_update\">Global oppdatering</string>\n    <string name=\"logout_title\">Logg ut fra %1$s?</string>\n    <string name=\"logout\">Logg ut</string>\n    <string name=\"logout_success\">Du er utlogget</string>\n    <string name=\"paused\">Pauset</string>\n    <string name=\"label_more\">Mer</string>\n    <string name=\"action_view_chapters\">Vis kapitler</string>\n    <string name=\"action_cancel_all\">Avbryt alle</string>\n    <string name=\"theme_light\">Lyst</string>\n    <string name=\"theme_dark\">Mørkt</string>\n    <string name=\"theme_system\">System</string>\n    <string name=\"pref_manage_notifications\">Håndter merknader</string>\n    <string name=\"pref_category_security\">Sikkerhet og personvern</string>\n    <string name=\"lock_with_biometrics\">Krev opplåsning</string>\n    <string name=\"lock_when_idle\">Lås ved lediggang</string>\n    <string name=\"lock_always\">Alltid</string>\n    <string name=\"lock_never\">Aldri</string>\n    <string name=\"secure_screen\">Sikker skjerm</string>\n    <string name=\"channel_new_chapters\">Kapitteloppdateringer</string>\n    <string name=\"notification_chapters_single\">Kapittel %1$s</string>\n    <string name=\"email\">E-postadresse</string>\n    <string name=\"in_library\">I biblioteket</string>\n    <string name=\"add_to_library\">Legg til i bibliotek</string>\n    <string name=\"action_move_to_bottom\">Flytt til bunnen</string>\n    <string name=\"action_move_to_top\">Flytt til toppen</string>\n    <string name=\"action_oldest\">Eldste</string>\n    <string name=\"action_newest\">Nyeste</string>\n    <string name=\"action_unpin\">Opphev festin</string>\n    <string name=\"action_pin\">Fest</string>\n    <string name=\"action_select_inverse\">Velg motsatt</string>\n    <string name=\"action_menu\">Meny</string>\n    <string name=\"label_sources\">Kilder</string>\n    <string name=\"channel_ext_updates\">Utvidelsesoppdateringer</string>\n    <string name=\"information_webview_required\">Appen fungerer ikke uten WebView</string>\n    <string name=\"add_tracking\">Legg til sporing</string>\n    <string name=\"manga_info_collapse\">Mindre</string>\n    <string name=\"manga_info_expand\">Mer</string>\n    <string name=\"pinned_sources\">Festet</string>\n    <string name=\"website\">Nettside</string>\n    <string name=\"creating_backup_error\">Sikkerhetskopiering mislyktes</string>\n    <string name=\"pref_category_reading\">Leser</string>\n    <string name=\"pref_always_show_chapter_transition\">Alltid vis kapittelovergang</string>\n    <string name=\"vertical_plus_viewer\">Lang stripe med mellomrom</string>\n    <string name=\"pref_skip_filtered_chapters\">Hopp over filtrerte kapitler</string>\n    <string name=\"hide_notification_content\">Skjul merknadsinnhold</string>\n    <string name=\"secure_screen_summary\">Sikker skjerm skjuler programinnhold ved bytting av programmer og blokker skjermavbildninger</string>\n    <string name=\"label_downloaded_only\">Kun nedlastet</string>\n    <string name=\"viewer\">Lesemodus</string>\n    <string name=\"information_cloudflare_bypass_failure\">Klarte ikke bypassere Cloudflare</string>\n    <string name=\"updating_library\">Oppdaterer bibliotek</string>\n    <string name=\"page_list_empty_error\">Fant ingen sider</string>\n    <string name=\"sort_by_upload_date\">Etter opplastingsdato</string>\n    <string name=\"last_used_source\">Sist brukt</string>\n    <string name=\"tabs_header\">Faner</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"backup_restore_missing_sources\">Manglende kilder:</string>\n    <string name=\"gray_background\">Grå</string>\n    <string name=\"action_display_show_tabs\">Vis kategorifaner</string>\n    <string name=\"action_display_comfortable_grid\">Komfortabelt rutenett</string>\n    <string name=\"action_migrate\">Flytt</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"tapping_inverted_both\">Begge</string>\n    <string name=\"tapping_inverted_vertical\">Loddrett</string>\n    <string name=\"tapping_inverted_horizontal\">vannrett</string>\n    <string name=\"tapping_inverted_none\">Ingen</string>\n    <string name=\"loader_not_implemented_error\">Kilden ikke funnet</string>\n    <string name=\"pref_category_for_this_series\">For denne serien</string>\n    <string name=\"unknown_status\">Ukjent status</string>\n    <string name=\"unknown_author\">Ukjent forfatter</string>\n    <string name=\"local_source_help_guide\">Lokal kildeguide</string>\n    <string name=\"downloaded_only_summary\">Filtrerer alle oppføringer i biblioteket ditt</string>\n    <string name=\"check_for_updates\">Se etter oppdateringer</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Kunne ikke åpne enhetens innstillinger</string>\n    <string name=\"battery_optimization_disabled\">Batterioptimalisering er allerede deaktivert</string>\n    <string name=\"pref_disable_battery_optimization\">Deaktiver batterioptimalisering</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"requires_app_restart\">Krever omstart for å tre i kraft</string>\n    <string name=\"label_network\">Nettverk</string>\n    <string name=\"restoring_backup_canceled\">Avbrutt gjenoppretting</string>\n    <string name=\"restore_in_progress\">Gjenoppretting allerede underveis</string>\n    <string name=\"pref_show_reading_mode\">Vis lesemodus</string>\n    <string name=\"action_disable\">deaktivere</string>\n    <string name=\"action_disable_all\">deaktiver alle</string>\n    <string name=\"action_enable_all\">aktiver alle</string>\n    <string name=\"action_sort_latest_chapter\">Siste kapittel</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverter trykk</string>\n    <string name=\"restoring_backup_error\">Gjenoppretting av sikkerhetskopi mislyktes</string>\n    <string name=\"backup_in_progress\">Sikkerhetskopiering allerede underveis</string>\n    <string name=\"invalid_backup_file\">Ugyldig sikkerhetskopieringsfil:</string>\n    <string name=\"pref_cutout_short\">Vis innhold i utklippsområde</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Se etter nye omslag og detaljer ved oppdatering av bibliotek</string>\n    <string name=\"pref_library_update_refresh_metadata\">Gjenoppfrisk metadata automatisk</string>\n    <string name=\"pref_category_display\">Skjerm</string>\n    <string name=\"pref_category_theme\">Drakt</string>\n    <string name=\"action_sort_date_added\">Dato lagt til</string>\n    <string name=\"ext_updates_pending\">Oppdateringer som venter</string>\n    <string name=\"pref_category_reading_mode\">Lesemodus</string>\n    <string name=\"pref_show_reading_mode_summary\">Sniktitt av nåværende modus når leseren åpnes</string>\n    <string name=\"channel_errors\">Feil</string>\n    <string name=\"channel_complete\">Fullført</string>\n    <string name=\"notification_chapters_single_and_more\">Kapittel %1$s og %2$d til</string>\n    <string name=\"no_pinned_sources\">Du har ingen festede kilder</string>\n    <string name=\"channel_progress\">Framdrift</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Tillat sletting av bokmerkede kapitler</string>\n    <string name=\"pref_category_delete_chapters\">Slett kapitler</string>\n    <string name=\"ext_nsfw_warning\">Kan inneholde innhold for 18+</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Dette forhindrer ikke uoffisielle eller potensielt feilaktig kategoriserte tillegg fra å vise innhold for 18+ i appen.</string>\n    <string name=\"recent_manga_time\">Kap. %1$s - %2$s</string>\n    <string name=\"share_page_info\">%1$s: %2$s, side %3$d</string>\n    <string name=\"chapter_settings\">Kapittelinnstillinger</string>\n    <string name=\"set_chapter_settings_as_default\">Sett som standard</string>\n    <string name=\"no_chapters_error\">Fant ingen kapitler</string>\n    <string name=\"information_webview_outdated\">Oppdater WebView-programmet for bedre kompatibilitet</string>\n    <string name=\"chapter_settings_updated\">Oppdaterte standard kapittelinnstillinger</string>\n    <string name=\"confirm_set_chapter_settings\">Er du sikker på at du vil lagre disse innstillingene som standard?</string>\n    <string name=\"action_search_settings\">Søkeinnstillinger</string>\n    <string name=\"notification_chapters_multiple\">Kapitler %1$s</string>\n    <string name=\"download_insufficient_space\">Ikke nok lagringsplass til å laste ned kapitler</string>\n    <string name=\"also_set_chapter_settings_for_library\">Anvend også for allle oppføringer i biblioteket</string>\n    <string name=\"action_global_search_query\">Søk etter \\\"%1$s\\\" globalt</string>\n    <string name=\"updated_version\">Oppdatert til v%1$s</string>\n    <string name=\"licenses\">Friprog-lisenser</string>\n    <string name=\"whats_new\">Hva er nytt</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Hjelper med oppdatering og sikkerhetskopiering av biblioteket</string>\n    <string name=\"pref_refresh_library_covers\">Gjenoppfrisk mangaomslag i biblioteket</string>\n    <string name=\"backup_restore_missing_trackers\">Sporingstjenester ikke logget inn i:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Sikkerhetskopi inneholder ingen bibliotekoppføringer.</string>\n    <string name=\"tracking_info\">Enveissynkronisering for å oppdatere kapittelfremdrift i eksterne sporetjenester. Sett opp sporing for individuelle oppføringer med sporingsknappen.</string>\n    <string name=\"pref_webtoon_side_padding\">Sidepolstring</string>\n    <string name=\"spen_next_page\">Neste side</string>\n    <string name=\"spen_previous_page\">Forrige side</string>\n    <string name=\"file_picker_error\">Ingen app for filvelging funnet</string>\n    <string name=\"migration_help_guide\">Veiledning for kilde-flytting</string>\n    <string name=\"clear_history_confirmation\">Er du sikker? All historikk vil gå tapt.</string>\n    <string name=\"clear_history_completed\">Historikken er slettet</string>\n    <string name=\"pref_clear_history\">Slett historikk</string>\n    <string name=\"myanimelist_relogin\">Vennligst logg på MAL igjen</string>\n    <string name=\"track_finished_reading_date\">Sluttdato</string>\n    <string name=\"track_started_reading_date\">Startdato</string>\n    <string name=\"downloaded_chapters\">Nedlastede kapitler</string>\n    <string name=\"manga_from_library\">Fra biblioteket</string>\n    <string name=\"pref_incognito_mode_summary\">Setter lesehistorikken på pause</string>\n    <string name=\"pref_incognito_mode\">Inkognitomodus</string>\n    <string name=\"pref_dump_crash_logs\">Del krasjlogger</string>\n    <string name=\"pref_dump_crash_logs_summary\">Lagrer feillogger i en fil som kan sendes til utviklerne</string>\n    <string name=\"pref_viewer_nav\">Navigasjonsoppsett</string>\n    <string name=\"edge_nav\">Kant</string>\n    <string name=\"kindlish_nav\">Kindle-basert</string>\n    <string name=\"l_nav\">L-formet</string>\n    <string name=\"pref_show_nsfw_source\">Vis i kilde- og utvidelseslister</string>\n    <string name=\"pref_category_nsfw_content\">Aldersgrense 18+ kilder</string>\n    <string name=\"action_desc\">Synkende</string>\n    <string name=\"action_asc\">Stigende</string>\n    <string name=\"action_order_by_chapter_number\">Etter kapittelnummer</string>\n    <string name=\"action_order_by_upload_date\">Etter opplastingsdato</string>\n    <string name=\"action_filter_tracked\">Sporet</string>\n    <string name=\"pref_dual_page_invert_summary\">Hvis plasseringen av sideoppsettet for delte brede sider ikke samsvarer med leseretningen</string>\n    <string name=\"pref_dual_page_invert\">Invertert sideoppsett for delte sider</string>\n    <string name=\"pref_dual_page_split\">Del brede sider</string>\n    <string name=\"pref_show_navigation_mode\">Vis overlay for navigasjonsoppsett</string>\n    <string name=\"backup_restore_content_full\">Du vil måtte installere manglende utvidelser og logge inn på sporings-tjenester etterpå for å bruke dem.</string>\n    <string name=\"pref_show_navigation_mode_summary\">Vis tap-bare områder når leseren åpnes</string>\n    <string name=\"none\">Ingen</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"nav_zone_right\">Høyre</string>\n    <string name=\"nav_zone_left\">Venstre</string>\n    <string name=\"nav_zone_next\">Neste</string>\n    <string name=\"nav_zone_prev\">Forrige</string>\n    <string name=\"right_and_left_nav\">Høyre og Venstre</string>\n    <string name=\"action_display_show_number_of_items\">Vis antall gjenstander</string>\n    <string name=\"exclude\">Eksluder: %s</string>\n    <string name=\"include\">Inkluder: %s</string>\n    <string name=\"action_sort_chapter_fetch_date\">Dato hentet</string>\n    <string name=\"pref_download_new_categories_details\">Oppføringer i utelukkede kategorier vil ikke bli nedlastet selv om de også er i inkluderte kategorier.</string>\n    <string name=\"pref_category_auto_download\">Last ned automatisk</string>\n    <string name=\"pref_library_update_categories_details\">Oppførninger i utelukkede kategorier vil ikke bli oppdatert selv om de også er i inkluderte kategorier.</string>\n    <string name=\"action_show_errors\">Trykk for å se detaljer</string>\n    <string name=\"clipboard_copy_error\">Kunne ikke kopiere til utklippstavlen</string>\n    <string name=\"update_check_eol\">Denne Android-versjonen støttes ikke lenger</string>\n    <string name=\"rotation_landscape\">Liggende</string>\n    <string name=\"rotation_portrait\">Stående</string>\n    <string name=\"rotation_type\">Rotasjon</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Oppretter mapper i henhold til oppføringenes tittel</string>\n    <string name=\"pref_create_folder_per_manga\">Lagre sider i egne mapper</string>\n    <string name=\"pref_reader_actions\">Handlinger</string>\n    <string name=\"pref_dark_theme_pure_black\">Helt svart</string>\n    <string name=\"getting_started_guide\">Oppstartsveiledning</string>\n    <string name=\"information_empty_category_dialog\">Du har ingen kategorier enda.</string>\n    <string name=\"source_unsupported\">Kilde støttes ikke</string>\n    <string name=\"unread\">Ulest</string>\n    <string name=\"error_sharing_cover\">Klarte ikke å dele omslag</string>\n    <string name=\"error_saving_cover\">Klarte ikke å lagre omslag</string>\n    <string name=\"cover_saved\">Omslag lagret</string>\n    <string name=\"manga_cover\">Omslag</string>\n    <string name=\"date\">Dato</string>\n    <string name=\"local_filter_order_by\">Sorter etter</string>\n    <string name=\"local_invalid_format\">Ugyldig kapittelformat</string>\n    <string name=\"chapter_not_found\">Fant ikke kapittelet</string>\n    <string name=\"label_background_activity\">Bakgrunnsaktivitet</string>\n    <string name=\"action_track\">Spor</string>\n    <string name=\"enhanced_services\">Forbedret sporere</string>\n    <string name=\"tracking_guide\">Sporingsveiledning</string>\n    <string name=\"pref_remove_exclude_categories\">Utelukkede kategorier</string>\n    <string name=\"pref_lowest\">Laveste</string>\n    <string name=\"pref_low\">Lav</string>\n    <string name=\"pref_high\">Høy</string>\n    <string name=\"pref_highest\">Høyeste</string>\n    <string name=\"automatic_background\">Automatisk</string>\n    <string name=\"pref_inverted_colors\">Invertert</string>\n    <string name=\"pref_grayscale\">Gråskala</string>\n    <string name=\"off\">Av</string>\n    <string name=\"on\">På</string>\n    <string name=\"restrictions\">Begrensninger: %s</string>\n    <string name=\"relative_time_today\">I dag</string>\n    <string name=\"theme_monet\">Dynamisk</string>\n    <string name=\"pref_app_theme\">Programdrakt</string>\n    <string name=\"pref_category_appearance\">Utseende</string>\n    <string name=\"action_start_downloading_now\">Start nedlasting nå</string>\n    <string name=\"cancel_all_for_series\">Avbryt alle for denne serien</string>\n    <string name=\"confirm_lock_change\">Identitetsbekreft for å endre</string>\n    <string name=\"label_default\">Standard</string>\n    <string name=\"about_dont_kill_my_app\">Noen produsenter har ytterligere appbegrensninger som dreper bakgrunnstjenester. Denne nettsiden har mer info om hvordan det kan fikses.</string>\n    <string name=\"restore_miui_warning\">Sikkerhetskopier/gjenoppretting kan krangle hvis MIUI-optimalisering er avskrudd.</string>\n    <string name=\"enhanced_tracking_info\">Gir forbedredet funksjoner for spesifikke kilder. Det holdes automatisk øye med oppføringer når de legges til i biblioteket ditt.</string>\n    <string name=\"pref_tablet_ui_mode\">Nettbrettsgrensesnitt</string>\n    <string name=\"pref_hide_threshold\">Følsomhet for å skjule menyen når du ruller</string>\n    <string name=\"categorized_display_settings\">Innstillinger per kategori for sortering</string>\n    <string name=\"theme_yinyang\">Yin og yang</string>\n    <string name=\"theme_tealturquoise\">Blågrønn og turkis</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Jordbær-Daiquiri</string>\n    <string name=\"theme_midnightdusk\">Midnattsskumring</string>\n    <string name=\"theme_greenapple\">Grønt eple</string>\n    <string name=\"action_display_local_badge\">Lokal kilde</string>\n    <string name=\"error_no_match\">Ingen treff funnet</string>\n    <string name=\"notification_incognito_text\">Skru av inkognito-modus</string>\n    <string name=\"help_translate\">Bistå oversettelsen</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installer og start Shizuku for å bruke det som utvidelsesinstallatør.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku kjører ikke</string>\n    <string name=\"ext_installer_legacy\">Foreldet</string>\n    <string name=\"ext_installer_pref\">Installatør</string>\n    <string name=\"ext_install_service_notif\">Installerer utvidelse …</string>\n    <string name=\"ext_app_info\">Programinfo</string>\n    <string name=\"action_sort_count\">Totalt antall oppføringer</string>\n    <string name=\"action_display_language_badge\">Språk</string>\n    <string name=\"pref_verbose_logging\">Sirlig loggføring</string>\n    <string name=\"pref_verbose_logging_summary\">Skriv utfyllende logg til systemloggen (reduserer programytelse)</string>\n    <string name=\"label_warning\">Advarsel</string>\n    <string name=\"notification_size_warning\">Store oppdateringer skader kilder og kan føre til tregere oppdateringer samt økt batteribruk. Trykk for å lære mer.</string>\n    <string name=\"backup_info\">Du bør oppbevare ekstra kopier av sikkershetskopier andre steder også. Sikkerhetskopier kan inneholde sensitiv data, inkludert eventuelle lagrede passord. Vær forsiktig ved deling.</string>\n    <string name=\"channel_app_updates\">Appoppdateringer</string>\n    <string name=\"update_72hour\">Hver 3. dag</string>\n    <string name=\"connected_to_wifi\">Bare på Wi-Fi</string>\n    <string name=\"action_show_manga\">Vis oppføring</string>\n    <string name=\"privacy_policy\">Personvernerklæring</string>\n    <string name=\"publishing_finished\">Ferdig publisert</string>\n    <string name=\"pref_update_only_completely_read\">Hopp over oppføringer med uleste kapitler</string>\n    <string name=\"cancelled\">Kansellert</string>\n    <string name=\"on_hiatus\">På pause</string>\n    <string name=\"save_chapter_as_cbz\">Lagre som CBZ-arkiv</string>\n    <string name=\"ext_update_all\">Oppdater alle</string>\n    <string name=\"database_clean\">Ingenting å fjerne</string>\n    <string name=\"skipped_reason_not_caught_up\">Hoppet over fordi det er uleste kapitler</string>\n    <string name=\"skipped_reason_completed\">Hoppet over fordi serien er fullført</string>\n    <string name=\"download_queue_size_warning\">Advarsel: store bulknedlastinger kan føre til at kilder blir tregere og/eller blokkerer %s. Trykk for å lære mer.</string>\n    <string name=\"library_errors_help\">For hjelp til å fikse bibliotekoppdateringsfeil, se %1$s</string>\n    <string name=\"action_display_cover_only_grid\">Kun omslags-rutenett</string>\n    <string name=\"pref_update_only_started\">Hopp over oppføringer som ikke er påbegynt</string>\n    <string name=\"pref_landscape_zoom\">Zoom automatisk inn for brede bilder</string>\n    <string name=\"pref_navigate_pan\">Panorer brede bilder</string>\n    <string name=\"clear_database_source_item_count\">%1$d ikke-bibliotek oppføringer i databasen</string>\n    <string name=\"action_move_to_top_all_for_series\">Flytt serien til toppen</string>\n    <string name=\"extension_api_error\">Klarte ikke å hente tilgjengelige utvidelser</string>\n    <string name=\"rotation_reverse_portrait\">Omvendt portrett</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Tøm kapittel hurtigbufferen ved oppstart av appen</string>\n    <string name=\"notification_update_error\">%1$d oppdatering(er) mislyktes</string>\n    <string name=\"learn_more\">Trykk for å finne ut mer</string>\n    <string name=\"skipped_reason_not_started\">Hoppet over fordi ingen kapitler er lest</string>\n    <string name=\"disabled_nav\">Deaktivert</string>\n    <string name=\"empty_backup_error\">Ingen bibliotekoppføringer å sikkerhetskopiere</string>\n    <string name=\"error_saving_picture\">Feil ved lagring av bilde</string>\n    <string name=\"update_check_open\">Åpne på GitHub</string>\n    <string name=\"action_close\">Lukk</string>\n    <string name=\"pref_clear_webview_data\">Slett WebView data</string>\n    <string name=\"webview_data_deleted\">WebView data slettet</string>\n    <string name=\"empty_screen\">Vel, dette er pinlig</string>\n    <string name=\"pref_tracking_summary\">Enveis fremdriftssynkronisering, forbedret synkronisering</string>\n    <string name=\"pref_browse_summary\">Kilder, utvidelser, globalt søk</string>\n    <string name=\"pref_backup_summary\">Manuelle &amp; automatiske sikkerhetskopier</string>\n    <string name=\"theme_lavender\">Lavendel</string>\n    <string name=\"network_not_metered\">Bare på nettverk uten datamåling</string>\n    <string name=\"ext_info_language\">Språk</string>\n    <string name=\"pref_reset_viewer_flags_success\">Alle leserinnstillinger tilbakestilt</string>\n    <string name=\"unknown_title\">Ukjent tittel</string>\n    <string name=\"invalid_location\">Ugyldig plassering: %s</string>\n    <string name=\"download_ahead_info\">Fungerer kun hvis det nåværende kapittelet + det neste allerede er lastet ned.</string>\n    <string name=\"crash_screen_restart_application\">Start applikasjonen på nytt</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Kunne ikke finne filbanen til side %d</string>\n    <string name=\"pref_security_summary\">Applås, sikker skjerm</string>\n    <string name=\"pref_advanced_summary\">Dump krasjlogger, batterioptimaliseringer</string>\n    <string name=\"missing_storage_permission\">Lagringstilgang er ikke gitt</string>\n    <string name=\"error_user_agent_string_invalid\">Ugyldig streng for brukeragent</string>\n    <string name=\"wish_list\">Ønskeliste</string>\n    <string name=\"skipped_reason_not_always_update\">Hoppet over fordi seriene ikke krever oppdateringer</string>\n    <string name=\"download_notifier_split_page_not_found\">Side %d ble ikke funnet under deling</string>\n    <string name=\"pref_reset_viewer_flags\">Tilbakestill leserinnstillinger per serie</string>\n    <string name=\"theme_tidalwave\">Tidevannsbølge</string>\n    <string name=\"ext_info_age_rating\">Aldersvurdering</string>\n    <string name=\"error_user_agent_string_blank\">Strengen for brukeragent kan ikke være tom</string>\n    <string name=\"complete_list\">Komplett liste</string>\n    <string name=\"on_hold_list\">På vent liste</string>\n    <string name=\"are_you_sure\">Er du sikker?</string>\n    <string name=\"remove_manga\">Du er i ferd med å fjerne \\\"%s\\\" fra biblioteket ditt</string>\n    <string name=\"unfinished_list\">Uferdig liste</string>\n    <string name=\"download_ahead\">Last ned i forkant</string>\n    <string name=\"pref_reset_user_agent_string\">Tilbakestill standard streng for brukeragent</string>\n    <string name=\"reading_list\">Leseliste</string>\n    <string name=\"action_sort_last_manga_update\">Siste oppdateringssjekk</string>\n    <string name=\"pref_reset_viewer_flags_error\">Kunne ikke tilbakestille leserinnstillingene</string>\n    <string name=\"multi_lang\">Multi</string>\n    <string name=\"auto_download_while_reading\">Last ned automatisk mens du leser</string>\n    <string name=\"split_tall_images_summary\">Forbedrer leserytelsen</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Tilbakestiller lesemodus og orientering for alle serier</string>\n    <string name=\"action_sort_unread_count\">Antall uleste</string>\n    <string name=\"delete_category_confirmation\">Ønsker du å slette kategorien \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Slett kategori</string>\n    <string name=\"internal_error\">InternalError: Sjekk krasjlogger for mer informasjon</string>\n    <string name=\"crash_screen_title\">Oops!</string>\n    <string name=\"crash_screen_description\">%s fikk en uventet feil. Vi foreslår at du deler krasjloggene i vår støttekanal på Discord.</string>\n    <string name=\"pref_app_language\">Appspråk</string>\n    <string name=\"description_placeholder\">Ingen beskrivelse</string>\n    <string name=\"action_search_hint\">Søk…</string>\n    <string name=\"action_remove_everything\">Fjern alt</string>\n    <string name=\"ext_info_version\">Versjon</string>\n    <string name=\"custom_cover\">Egendefinert omslag</string>\n    <string name=\"popular\">Populært</string>\n    <string name=\"appwidget_updates_description\">Se de nylig oppdaterte biblotekoppføringene dine</string>\n    <string name=\"appwidget_unavailable_locked\">Moduler er ikke tilgjengelig når applås er aktivert</string>\n    <string name=\"pref_user_agent_string\">Standard streng for brukeragent</string>\n    <string name=\"pref_appearance_summary\">Tema, dato- og klokkeslettformat</string>\n    <string name=\"pref_library_summary\">Kategorier, global oppdatering, kapittelsveip</string>\n    <string name=\"pref_downloads_summary\">Automatisk nedlasting, last ned i forkant</string>\n    <string name=\"pref_reader_summary\">Lesemodus, skjerm, navigasjon</string>\n    <string name=\"update_already_running\">En oppdatering kjører allerede</string>\n    <string name=\"cant_open_last_read_chapter\">Kan ikke åpne siste leste kapittel</string>\n    <string name=\"updates_last_update_info\">Bibliotek sist oppdatert: %s</string>\n    <string name=\"source_empty_screen\">Ingen kilde funnet</string>\n    <string name=\"source_filter_empty_screen\">Ingen installert kilde funnet</string>\n    <string name=\"not_installed\">Ikke installert</string>\n    <string name=\"updates_last_update_info_just_now\">Akkurat nå</string>\n    <string name=\"download_notifier_cache_renewal\">Sjekker nedlastinger</string>\n    <string name=\"fdroid_warning\">F-Droid-bygg er ikke offisielt støttet.\n\\nTrykk for å finne ut mer.</string>\n    <string name=\"information_no_entries_found\">Fant ingen oppføringer i denne kategorien</string>\n    <string name=\"action_open_random_manga\">Åpne tilfeldig oppføring</string>\n    <string name=\"action_display_show_continue_reading_button\">Fortsett å lese-knapp</string>\n    <string name=\"track_remove_date_conf_title\">Fjerne dato?</string>\n    <string name=\"track_remove_start_date_conf_text\">Dette vil fjerne den tidligere valgte startdatoen fra %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Dette vil fjerne den tidligere valgte sluttdatoen fra %s</string>\n    <string name=\"pref_invalidate_download_cache\">Rydd ut nedlastingsindeksen</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Tving appen til å sjekke nedlastede kapitler på nytt</string>\n    <string name=\"label_started\">Startet</string>\n    <string name=\"label_completed_titles\">Fullførte oppføringer</string>\n    <string name=\"label_titles_section\">Oppføringer</string>\n    <string name=\"label_used\">Brukt</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dt</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"label_stats\">Statistikk</string>\n    <string name=\"label_total_chapters\">Totalt</string>\n    <string name=\"label_downloaded\">Nedlastet</string>\n    <string name=\"label_overview_section\">Oversikt</string>\n    <string name=\"label_read_duration\">Tid brukt</string>\n    <string name=\"label_titles_in_global_update\">Globalt oppdaterte</string>\n    <string name=\"label_read_chapters\">Lest</string>\n    <string name=\"label_tracked_titles\">Tracket oppføringer</string>\n    <string name=\"label_mean_score\">Snitt poengsum</string>\n    <string name=\"not_applicable\">I/A</string>\n    <string name=\"label_local\">Lokale</string>\n    <string name=\"label_tracker_section\">Trackere</string>\n    <string name=\"action_not_now\">Ikke nå</string>\n    <string name=\"information_no_manga_category\">Kategorien er tom</string>\n    <string name=\"pref_library_update_show_tab_badge\">Vis antall uleste på oppdateringsikonet</string>\n    <string name=\"copied_to_clipboard_plain\">Kopiert til utklippstavlen</string>\n    <string name=\"enhanced_services_not_installed\">Tilgjengelig, men kilden er ikke installert: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Hopp over dupliserte kapitler</string>\n    <string name=\"track_error\">%1$s feil: %2$s</string>\n    <string name=\"information_required_plain\">*påkrevd</string>\n    <string name=\"pref_hide_in_library_items\">Skjul oppføringer som allerede er i biblioteket</string>\n    <string name=\"action_copy_to_clipboard\">Kopier til utklippstavle</string>\n    <string name=\"action_update_category\">Oppdater kategori</string>\n    <string name=\"split_tall_images\">Del opp høye bilder</string>\n    <string name=\"overlay_header\">Elementer</string>\n    <string name=\"pref_page_rotate_invert\">Vend orienteringen av roterte brede sider</string>\n    <string name=\"pref_page_rotate\">Roter brede sider slik at de passer</string>\n    <string name=\"pref_debug_info\">Debug info</string>\n    <string name=\"manga_display_modified_interval_title\">Sett til å oppdatere hver</string>\n    <string name=\"skipped_reason_not_in_release_period\">Hoppet over fordi ingen utgivelse var forventet i dag</string>\n    <string name=\"action_set_interval\">Sett intervall</string>\n    <string name=\"action_filter_interval_custom\">Egendefinert oppdateringsintervall</string>\n    <string name=\"action_sort_next_updated\">Neste forventede oppdatering</string>\n    <string name=\"pref_chapter_swipe_end\">Sveip til høyre handling</string>\n    <string name=\"intervals_header\">Intervaller</string>\n    <string name=\"manga_display_interval_title\">Anslå hver</string>\n    <string name=\"delete_downloaded\">Slett nedlastede</string>\n    <string name=\"pref_update_only_in_release_period\">Forutsi neste utgivelsestidspunkt</string>\n    <string name=\"pref_double_tap_zoom\">Dobbelttrykk for å zoome</string>\n    <string name=\"pref_chapter_swipe_start\">Sveip til venstre handling</string>\n    <string name=\"track_delete_title\">Vil du fjerne sporing for %s?</string>\n    <string name=\"track_delete_remote_text\">Fjern fra %s også</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_text\">Dette vil fjerne sporingen lokalt.</string>\n    <string name=\"has_results\">Har resultater</string>\n    <string name=\"syncing_library\">Synkroniserer biblioteket</string>\n    <string name=\"library_sync_complete\">Biblioteksynkronisering fullført</string>\n    <string name=\"information_cloudflare_help\">Trykk her for å få hjelp med Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Nedlastingsindeksen er ugyldiggjort</string>\n    <string name=\"create_backup_file_error\">Kunne ikke opprette en backup-fil</string>\n    <string name=\"track_activity_name\">Sporerinnlogging</string>\n    <string name=\"unlock_app_title\">Lås opp %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Flytt serien til bunnen</string>\n    <string name=\"exception_offline\">Ingen internettforbindelse</string>\n    <string name=\"exception_http\">HTTP %d, sjekk nettsiden i WebView</string>\n    <string name=\"exception_unknown_host\">Kunne ikke nå %s</string>\n    <string name=\"notification_updating_progress\">Oppdaterer bibliotek… (%s)</string>\n    <string name=\"source_settings\">Kildeinnstillinger</string>\n    <string name=\"app_settings\">Programinnstillinger</string>\n    <string name=\"pref_relative_format\">Relative tidsstempler</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" istedenfor \\\"%2$s\\\"</string>\n    <string name=\"pref_storage_location\">Lagringsplass</string>\n    <string name=\"action_create\">Opprett</string>\n    <string name=\"relative_time_span_never\">Aldri</string>\n    <string name=\"pref_flash_page_summ\">Reduserer etterbilde på e-ink skjermer</string>\n    <string name=\"pref_storage_location_info\">Brukt for automatiske sikkerhetskopier, nedlastede kapitler og lokal kilde.</string>\n    <string name=\"action_apply\">Bruk</string>\n    <string name=\"action_revert_to_default\">Gjenopprett standardinnstillinger</string>\n    <string name=\"action_menu_overflow_description\">Flere valg</string>\n    <string name=\"last_auto_backup_info\">Siste automatisk sikkerhetskopi: %s</string>\n    <string name=\"selected\">Valgt</string>\n    <string name=\"no_scanlators_found\">Ingen skanningsoversettere funnet</string>\n    <string name=\"not_selected\">Ikke valgt</string>\n    <string name=\"scanlator\">Skanningsoversetter</string>\n    <string name=\"pref_flash_page\">Blink ved sidebytte</string>\n    <string name=\"pref_storage_usage\">Lagringsbruk</string>\n    <string name=\"action_bar_up_description\">Naviger opp</string>\n    <string name=\"action_sort_tracker_score\">Sporer poengsum</string>\n    <string name=\"label_data_storage\">Data og lagring</string>\n    <string name=\"file_null_uri_error\">Ingen fil valgt</string>\n    <string name=\"exclude_scanlators\">Ekskluder skanningsoversettere</string>\n    <string name=\"onboarding_storage_action_select\">Velg en mappe</string>\n    <string name=\"pref_onboarding_guide\">Introduksjonsguide</string>\n    <string name=\"onboarding_guides_new_user\">Ny til %s? Vi anbefaler å sjekke ut startveiledningen.</string>\n    <string name=\"onboarding_action_finish\">Kom i gang</string>\n    <string name=\"onboarding_storage_selection_required\">En mappe må velges</string>\n    <string name=\"onboarding_heading\">Velkommen!</string>\n    <string name=\"onboarding_guides_returning_user\">Reinstallerer du %s?</string>\n    <string name=\"onboarding_action_skip\">Hopp over</string>\n    <string name=\"onboarding_action_next\">Neste</string>\n    <string name=\"onboarding_description\">La oss sette opp noen ting først. Du kan alltid endre disse i innstillingene senere også.</string>\n    <string name=\"no_location_set\">Ingen lagringsplassering angitt</string>\n    <string name=\"onboarding_storage_info\">Velg en mappe der %1$s vil lagre kapittelnedlastinger, sikkerhetskopier og mer.\n\\n\n\\nEn dedikert mappe anbefales.\n\\n\n\\nValgt mappe: %2$s</string>\n    <string name=\"manga_interval_expected_update\">Nye kapitler forventes om omtrent %1$s, sjekker omtrent hver %2$s.</string>\n    <string name=\"onboarding_permission_notifications\">Tillat varslinger</string>\n    <string name=\"onboarding_permission_install_apps\">Tillat å installere apper</string>\n    <string name=\"available_disk_space_info\">Tilgjengelig: %1$s / Totalt: %2$s</string>\n    <string name=\"manga_interval_custom_amount\">Egendefinert oppdateringsfrekvens:</string>\n    <string name=\"label_add_repo_input\">Pakkebrønn URL</string>\n    <string name=\"invalid_backup_file_error\">Fullstendig feil:</string>\n    <string name=\"error_repo_exists\">Denne pakkebrønnen finnes allerede!</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Unngå avbrudd i langvarige oppdateringer av biblioteket, nedlastinger og gjenoppretting av sikkerhetskopier.</string>\n    <string name=\"pref_library_update_smart_update\">Smart oppdatering</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Batteribruk i bakgrunnen</string>\n    <string name=\"onboarding_permission_install_apps_description\">For å installere kildeutvidelser.</string>\n    <string name=\"invalid_repo_name\">Ugyldig pakkebrønn URL</string>\n    <string name=\"action_add_repo_message\">Legg til ekstra pakkebrønner i %s. URL-en må ende med \\\"index.min.json\\\".</string>\n    <string name=\"onboarding_permission_notifications_description\">Få varsler for oppdateringer i biblioteket og mer.</string>\n    <string name=\"ext_permission_install_apps_warning\">Tillatelse er nødvendig for å installere utvidelser. Trykk her for å tillate.</string>\n    <string name=\"delete_repo_confirmation\">Ønsker du å slette pakkebrønnen \\\"%s\\\"?</string>\n    <string name=\"action_delete_repo\">Slett pakkebrønn</string>\n    <string name=\"action_add_repo\">Legg til pakkebrønn</string>\n    <string name=\"private_settings\">Inkluder sensitive innstillinger (f.eks., innloggingstoken for sporer)</string>\n    <string name=\"information_empty_repos\">Du har ingen pakkebrønner satt opp.</string>\n    <string name=\"onboarding_permission_action_grant\">Tillat</string>\n    <string name=\"label_extension_repos\">Utvidelsepakkebrønner</string>\n    <string name=\"onboarding_storage_help_info\">Oppdaterer du fra en eldre versjon og er usikker på hva du skal velge? Sjekk lagringsguiden for mer informasjon.</string>\n    <string name=\"onboarding_storage_help_action\">Lagringsguiden</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"manga_interval_expected_update_soon\">Snart</string>\n    <string name=\"ext_revoke_trust\">Fjern tilliten til ukjente utvidelser</string>\n    <string name=\"action_open_repo\">Åpne pakkebrønnen</string>\n    <string name=\"label_upcoming\">Kommende</string>\n    <string name=\"action_add_anyway\">Legg til likevel</string>\n    <string name=\"action_replace_repo\">Erstatt</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ne/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">हिजो</item>\n        <item quantity=\"other\">%1$d दिन अघि</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s मिनेट पछि</item>\n        <item quantity=\"other\">%1$s मिनेट पछि</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d वर्ग</item>\n        <item quantity=\"other\">%d वर्गहरू</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%2$s त्रुटिको साथ %1$s मा सम्पन्न भयो</item>\n        <item quantity=\"other\">%2$s त्रुटिहरूसँग %1$s मा सम्पन्न भयो</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d नयाँ अध्याय</item>\n        <item quantity=\"other\">%1$d नयाँ अध्यायहरू</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">एक्सटेन्शन अपडेट उपलब्ध छ</item>\n        <item quantity=\"other\">%d एक्सटेन्शन अपडेटहरू उपलब्ध छन्</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">अध्याय %1$s र 1 थप</item>\n        <item quantity=\"other\">अध्याय %1$s र %2$d थप</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d इन्ट्रीको लागि</item>\n        <item quantity=\"other\">%d इन्ट्रीहरूको लागि</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s बाँकी</item>\n        <item quantity=\"other\">%1$s बाँकी</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s अध्याय</item>\n        <item quantity=\"other\">%1$s अध्यायहरू</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d अध्याय छोड्दै, या त स्रोत सँग छैन वा यसलाई फिल्टर गरिएको छ</item>\n        <item quantity=\"other\">%d अध्यायहरू छोड्दै, या त स्रोत सँग छैन वा यसलाई फिल्टर गरिएको छ</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d ट्र्याकर</item>\n        <item quantity=\"other\">%d ट्र्याकरहरू</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">अर्को नपढिएको अध्याय</item>\n        <item quantity=\"other\">अर्को %d नपढिएका अध्यायहरू</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">अर्को अध्याय</item>\n        <item quantity=\"other\">अर्को %d अध्यायहरू</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s अध्याय छुटेको छ</item>\n        <item quantity=\"other\">%1$s अध्यायहरू छुटेका छन्</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">१ दिन</item>\n        <item quantity=\"other\">%d दिन</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d रेपो</item>\n        <item quantity=\"other\">%d रेपोहरु</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">भोलि</item>\n        <item quantity=\"other\">%1$d दिनमा</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">१ पाना</item>\n        <item quantity=\"other\">%1$s पाना</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$d प्रविष्टि सार्ने हो?</item>\n        <item quantity=\"other\">%1$d प्रविष्टिहरू सार्ने हो?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">%1$d प्रविष्टि प्रतिलिपि गर्ने हो?</item>\n        <item quantity=\"other\">%1$d प्रविष्टिहरू प्रतिलिपि गर्ने हो?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">एउटा प्रविष्टि छलेको थियो</item>\n        <item quantity=\"other\">%1$d वटा प्रविष्टिहरू छलेका थिए</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ne/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"theme_dark\">अन</string>\n    <string name=\"theme_light\">अफ</string>\n    <string name=\"pref_category_theme\">थीम</string>\n    <string name=\"pref_category_about\">बारेमा</string>\n    <string name=\"pref_category_advanced\">उन्नत सेटिंग्स</string>\n    <string name=\"pref_category_tracking\">ट्र्याकिङ</string>\n    <string name=\"pref_category_downloads\">डाउनलोड्स</string>\n    <string name=\"pref_category_reader\">रिडर</string>\n    <string name=\"pref_category_library\">पुस्तकालय</string>\n    <string name=\"pref_category_general\">सामान्य</string>\n    <string name=\"app_not_available\">एप उपलब्ध छैन</string>\n    <string name=\"loading\">लोड हुँदैछ …</string>\n    <string name=\"action_webview_refresh\">रिफ्रेस गर्नुहोस्</string>\n    <string name=\"action_webview_forward\">अगाडि</string>\n    <string name=\"action_webview_back\">पछाडि</string>\n    <string name=\"action_restore\">रिस्टोर गर्नुहोस्</string>\n    <string name=\"action_open_log\">लग खोल्नुहोस्</string>\n    <string name=\"action_undo\">अन्डु गर्नुहोस्</string>\n    <string name=\"action_reset\">रिसेट गर्नुहोस्</string>\n    <string name=\"action_save\">सेभ गर्नुहोस्</string>\n    <string name=\"action_share\">साझा गर्नुहोस्</string>\n    <string name=\"action_install\">स्थापना गर्नुहोस्</string>\n    <string name=\"action_move_to_bottom\">तल सार्नुहोस्</string>\n    <string name=\"action_move_to_top\">शीर्षमा सार्नुहोस्</string>\n    <string name=\"action_desc\">घट्दो क्रममा</string>\n    <string name=\"action_asc\">बढ्दो क्रममा</string>\n    <string name=\"action_oldest\">सबैभन्दा पुरानो</string>\n    <string name=\"action_newest\">सबैभन्दा नयाँ</string>\n    <string name=\"action_order_by_chapter_number\">अध्याय संख्या द्वारा</string>\n    <string name=\"action_order_by_upload_date\">अपलोड मिति द्वारा</string>\n    <string name=\"action_cancel_all\">सबै रद्द गर्नुहोस्</string>\n    <string name=\"action_cancel\">रद्द गर्नुहोस्</string>\n    <string name=\"action_unpin\">अनपिन</string>\n    <string name=\"action_pin\">पिन</string>\n    <string name=\"action_disable\">असक्षम गर्नुहोस्</string>\n    <string name=\"action_display_show_number_of_items\">वस्तुहरूको संख्या देखाउनुहोस्</string>\n    <string name=\"action_display_show_tabs\">वर्ग ट्याबहरू देखाउनुहोस्</string>\n    <string name=\"action_display_download_badge\">डाउनलोड गरिएका अध्यायहरू</string>\n    <string name=\"action_display_comfortable_grid\">आरामदायक ग्रिड</string>\n    <string name=\"action_display_list\">सूची</string>\n    <string name=\"action_display_grid\">कम्प्याक्ट ग्रिड</string>\n    <string name=\"action_display\">प्रदर्शन</string>\n    <string name=\"action_migrate\">स्थानान्तरण</string>\n    <string name=\"action_open_in_browser\">ब्राउजरमा खाेल्नुहाेस्</string>\n    <string name=\"action_resume\">जारी राख्नुहोस्</string>\n    <string name=\"action_start\">सुरु गर्नुहोस्</string>\n    <string name=\"action_remove\">हटाउनुहोस्</string>\n    <string name=\"action_retry\">पुनःप्रयास गर्नुहोस्</string>\n    <string name=\"action_next_chapter\">अर्को अध्याय</string>\n    <string name=\"action_previous_chapter\">अघिल्लो अध्याय</string>\n    <string name=\"action_pause\">रोक्नुहोस्</string>\n    <string name=\"action_view_chapters\">अध्यायहरू हेर्नुहोस्</string>\n    <string name=\"action_edit_cover\">आवरण सम्पादन गर्नुहोस्</string>\n    <string name=\"action_move_category\">वर्गहरू सेट गर्नुहोस्</string>\n    <string name=\"action_rename_category\">वर्गहरू को नाम बदल्नुहोस्</string>\n    <string name=\"action_edit_categories\">वर्गहरू सम्पादन गर्नुहोस्</string>\n    <string name=\"action_add_category\">वर्ग थप्नुहोस्</string>\n    <string name=\"action_add\">थप्नुहोस्</string>\n    <string name=\"action_edit\">सम्पादन गर्नुहोस्</string>\n    <string name=\"action_disable_all\">सबैलाई असक्षम गर्नुहोस्</string>\n    <string name=\"action_enable_all\">सबैलाई सक्षम गर्नुहोस्</string>\n    <string name=\"action_update_library\">पुस्तकालय अपडेट गर्नुहोस्</string>\n    <string name=\"action_delete\">हटाउनुहोस्</string>\n    <string name=\"action_remove_bookmark\">अध्यायमा पुस्तकचिनो हटाउनुहोस्</string>\n    <string name=\"action_bookmark\">अध्यायमा पुस्तकचिनो लगाउनुहोस्</string>\n    <string name=\"action_download\">डाउनलोड</string>\n    <string name=\"action_mark_previous_as_read\">अघिल्लोलाई पढिएको चिन्ह लगाउनुहोस्</string>\n    <string name=\"action_mark_as_unread\">नपढिएको चिन्ह लगाउनुहोस्</string>\n    <string name=\"action_mark_as_read\">पढिसकेको चिन्ह लगाउनुहोस्</string>\n    <string name=\"action_select_all\">सबै चयन गर्नुहोस्</string>\n    <string name=\"action_global_search\">ग्लोबल खोज</string>\n    <string name=\"action_search_settings\">सेटिंग्समा खोज्नुहोस्</string>\n    <string name=\"action_search\">खोज्नुहोस्</string>\n    <string name=\"action_sort_last_read\">अन्तिम पढिएको</string>\n    <string name=\"action_sort_total\">कुल अध्यायहरू</string>\n    <string name=\"action_sort_alpha\">वर्णमाला अनुसार</string>\n    <string name=\"action_filter_empty\">फिल्टर हटाउनुहोस्</string>\n    <string name=\"action_filter_unread\">नपढिएको</string>\n    <string name=\"action_filter_tracked\">ट्र्याक गरिएको</string>\n    <string name=\"action_filter_bookmarked\">पुस्तकचिनो लगाइएको</string>\n    <string name=\"action_filter\">फिल्टर</string>\n    <string name=\"action_menu\">मेनू</string>\n    <string name=\"action_settings\">सेटिंग्स</string>\n    <string name=\"history\">इतिहास</string>\n    <string name=\"track\">ट्र्याकिङ</string>\n    <string name=\"chapters\">अध्याय</string>\n    <string name=\"manga\">पुस्तकालयका इन्ट्रीहरू</string>\n    <string name=\"categories\">वर्गहरू</string>\n    <string name=\"information_empty_category\">तपाईंसँग कुनै वर्गहरू छैन। वर्ग बनाएर पुस्तकालय व्यवस्थित गर्न प्लस बटन थिच्नुहोस्।</string>\n    <string name=\"information_empty_library\">तपाईंको पुस्तकालय खाली छ</string>\n    <string name=\"information_no_recent_manga\">हालै केहि पढेको छैन</string>\n    <string name=\"information_no_recent\">हालैका कुनै अपडेट छैन</string>\n    <string name=\"label_download_queue\">डाउनलोड सूची</string>\n    <string name=\"information_no_downloads\">कुनै डाउनलोड्स छैन</string>\n    <string name=\"label_help\">मद्दत</string>\n    <string name=\"label_extension_info\">एक्सटेन्शनको जानकारी</string>\n    <string name=\"label_extensions\">एक्सटेन्शन</string>\n    <string name=\"label_migration\">स्थानान्तरण</string>\n    <string name=\"label_backup\">ब्याकअप र रिस्टोर</string>\n    <string name=\"label_sources\">स्रोतहरू</string>\n    <string name=\"label_recent_manga\">इतिहास</string>\n    <string name=\"label_recent_updates\">अपडेट्स</string>\n    <string name=\"label_library\">पुस्तकालय</string>\n    <string name=\"label_settings\">सेटिंग्स</string>\n    <string name=\"label_more\">अरू</string>\n    <string name=\"name\">नाम</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare लाई बाइपास गर्न असफल भयो</string>\n    <string name=\"action_display_mode\">प्रदर्शन मोड</string>\n    <string name=\"action_select_inverse\">उल्टो चयन गर्नुहोस्</string>\n    <string name=\"action_sort_date_added\">राखिएको मिती</string>\n    <string name=\"action_sort_chapter_fetch_date\">अध्याय ल्याएको मिति</string>\n    <string name=\"action_sort_latest_chapter\">नवीनतम अध्याय</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">पुस्तकालय अपडेट गर्दा नयाँ आवरण र विवरणहरूको लागि जाँच गर्नुहोस्</string>\n    <string name=\"pref_library_update_refresh_metadata\">मेटाडेटा स्वतः रिफ्रेस गर्नुहोस्</string>\n    <string name=\"pref_update_only_non_completed\">\\\"समाप्त\\\" स्थिति भएको इन्ट्रीहरू छोड्नुहोस्</string>\n    <string name=\"restrictions\">प्रतिबन्धहरू: %s</string>\n    <string name=\"charging\">चार्ज हुँदा</string>\n    <string name=\"pref_library_update_restriction\">स्वचालित अपडेट्स यन्त्र प्रतिबन्धहरू</string>\n    <string name=\"update_weekly\">साप्ताहिक</string>\n    <string name=\"update_48hour\">प्रत्येक २ दिन</string>\n    <string name=\"update_24hour\">दैनिक</string>\n    <string name=\"update_12hour\">प्रत्येक १२ घण्टा</string>\n    <string name=\"update_6hour\">प्रत्येक ६ घण्टा</string>\n    <string name=\"update_never\">अफ</string>\n    <string name=\"pref_library_update_interval\">स्वचालित अपडेट्स</string>\n    <string name=\"pref_category_library_update\">ग्लोबल अपडेट</string>\n    <string name=\"landscape\">ल्याण्डस्केप</string>\n    <string name=\"pref_library_columns\">प्रति रो वस्तुहरू</string>\n    <string name=\"pref_category_display\">प्रदर्शन</string>\n    <string name=\"relative_time_today\">आज</string>\n    <string name=\"pref_show_nsfw_source\">स्रोत र एक्सटेन्शन सूची मा देखाउनुहोस्</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) स्रोतहरू</string>\n    <string name=\"hide_notification_content\">सूचना को सामग्री लुकाउनुहोस्</string>\n    <string name=\"secure_screen_summary\">एपहरू स्विच गर्दा \\\"स्क्रिन सुरक्षित गर्नुहोस्\\\" ले एप सामग्रीहरू लुकाउँछ र स्क्रिनसटहरू रोक्छ</string>\n    <string name=\"secure_screen\">स्क्रिन सुरक्षित गर्नुहोस्</string>\n    <string name=\"lock_never\">कहिल्यै हैन</string>\n    <string name=\"lock_always\">सधैं</string>\n    <string name=\"lock_when_idle\">निष्क्रिय रहेमा लक होस्</string>\n    <string name=\"lock_with_biometrics\">अनलक गर्न आवश्यक छ</string>\n    <string name=\"pref_category_security\">सुरक्षा र गोपनीयता</string>\n    <string name=\"pref_manage_notifications\">सूचनाहरू व्यवस्थापन गर्नुहोस्</string>\n    <string name=\"pref_date_format\">मिति ढाँचा</string>\n    <string name=\"pref_dark_theme_pure_black\">शुद्ध कालो डार्क मोड</string>\n    <string name=\"theme_yotsuba\">योत्सुबा</string>\n    <string name=\"theme_yinyang\">यिन र यांग</string>\n    <string name=\"theme_tealturquoise\">टील र फिरोजा</string>\n    <string name=\"theme_tako\">टाको</string>\n    <string name=\"theme_strawberrydaiquiri\">स्ट्रबेरी दाइक्वरी</string>\n    <string name=\"theme_midnightdusk\">मिडनाइट डस्क</string>\n    <string name=\"theme_greenapple\">हरियो स्याउ</string>\n    <string name=\"theme_monet\">गतिशील</string>\n    <string name=\"pref_app_theme\">एपको थीम</string>\n    <string name=\"theme_system\">सिस्टम पालना गर्नुहोस्</string>\n    <string name=\"pref_category_appearance\">रूप</string>\n    <string name=\"action_start_downloading_now\">अहिले डाउनलोड गर्न सुरु गर्नुहोस्</string>\n    <string name=\"action_show_errors\">विवरणहरू हेर्न ट्याप गर्नुहोस्</string>\n    <string name=\"action_sort\">क्रमबद्ध</string>\n    <string name=\"cancel_all_for_series\">यी श्रृङ्खलाका सबै रद्द गर्नुहोस्</string>\n    <string name=\"action_display_local_badge\">लोकल स्रोत</string>\n    <string name=\"action_open_in_web_view\">WebView मा खोल्नुहोस्</string>\n    <string name=\"confirm_lock_change\">परिवर्तन पुष्टि गर्न प्रमाणित गर्नुहोस्</string>\n    <string name=\"label_default\">पूर्वनिर्धारित</string>\n    <string name=\"pref_tablet_ui_mode\">ट्याब्लेट UI</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">यन्त्रको सेटिंग्स खोल्न सकिएन</string>\n    <string name=\"pref_incognito_mode_summary\">पढिएको इतिहास रोक्छ</string>\n    <string name=\"pref_incognito_mode\">गुप्त मोड</string>\n    <string name=\"label_downloaded_only\">डाउनलोड गरिएको मात्र</string>\n    <string name=\"pref_acra_summary\">कुनै पनि बगहरू ठीक गर्न मद्दत गर्दछ। कुनै संवेदनशील डेटा पठाइने छैन</string>\n    <string name=\"pref_enable_acra\">Crash रिपोर्ट पठाउनुहोस्</string>\n    <string name=\"updated_version\">v%1$s मा अपडेट गरियो</string>\n    <string name=\"check_for_updates\">अपडेटका लागि जाँच गर्नुहोस्</string>\n    <string name=\"decode_image_error\">छवि लोड गर्न सकिएन</string>\n    <string name=\"download_queue_error\">अध्यायहरू डाउनलोड गर्न सकिएन। तपाईं डाउनलोड सूचीमा फेरि प्रयास गर्न सक्नुहुन्छ</string>\n    <string name=\"ext_uninstall\">अनइन्स्टल गर्नुहोस्</string>\n    <string name=\"third_to_last\">अन्तिम पढिएको अध्याय भन्दा २ अध्याय अघि</string>\n    <string name=\"portrait\">पोर्ट्रेट</string>\n    <string name=\"pref_color_filter_mode\">रङ फिल्टर मिश्रण मोड</string>\n    <string name=\"default_category_summary\">सधैं सोध्नुहोस्</string>\n    <string name=\"all\">सबै</string>\n    <string name=\"none\">कुनै पनि हैन</string>\n    <string name=\"ext_updates_pending\">विचाराधीन अपडेट्स</string>\n    <string name=\"ext_update\">अपडेट</string>\n    <string name=\"ext_update_all\">सबै अपडेट गर्नुहोस्</string>\n    <string name=\"ext_obsolete\">अप्रचलित</string>\n    <string name=\"ext_install\">स्थापना गर्नुहोस्</string>\n    <string name=\"ext_pending\">विचाराधीन</string>\n    <string name=\"ext_installed\">स्थापना गरियो</string>\n    <string name=\"ext_trust\">विश्वास</string>\n    <string name=\"obsolete_extension_message\">यो एक्सटेन्शन अब उपलब्ध छैन। यसले राम्ररी काम नगर्न सक्छ र एपमा समस्या ल्याउन सक्छ। यसलाई अनइन्स्टल गर्न सिफारिस गरिन्छ।</string>\n    <string name=\"ext_nsfw_warning\">यस एक्सटेन्शनको स्रोतहरूमा NSFW (१८+) सामग्री समावेश हुन सक्छ</string>\n    <string name=\"ext_install_service_notif\">एक्सटेन्शन स्थापना गर्दै…</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku चलिरहेको छैन</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizuku लाई एक्सटेन्शन इंस्टलरको रूपमा प्रयोग गर्न Shizuku स्थापना गर्नुहोस् र सुरु गर्नुहोस्।</string>\n    <string name=\"pref_show_navigation_mode\">नेभिगेसन लेआउट ओभरले देखाउनुहोस्</string>\n    <string name=\"pref_dual_page_split\">चौडा पृष्ठहरू विभाजित गर्नुहोस्</string>\n    <string name=\"pref_dual_page_invert\">विभाजित पृष्ठ प्लेसमेन्ट उल्टाउनुहोस्</string>\n    <string name=\"pref_cutout_short\">कटआउट क्षेत्रमा सामग्री देखाउनुहोस्</string>\n    <string name=\"pref_page_transitions\">पृष्ठ ट्रान्जिसन एनिमेट गर्नुहोस्</string>\n    <string name=\"pref_double_tap_anim_speed\">एनिमेसनको गति डबल ट्याप गर्नुहोस्</string>\n    <string name=\"pref_show_reading_mode_summary\">रिडर खोल्दा छोटकरीमा हालको मोड देखाउनुहोस्</string>\n    <string name=\"on\">अन</string>\n    <string name=\"pref_custom_brightness\">कस्टम चमक</string>\n    <string name=\"pref_skip_read_chapters\">पढिएको चिन्ह लगाइएका अध्यायहरू छोड्नुहोस्</string>\n    <string name=\"pref_reader_navigation\">नेभिगेसन</string>\n    <string name=\"pref_read_with_volume_keys\">भोल्युम कीहरू</string>\n    <string name=\"tapping_inverted_vertical\">ठाडो</string>\n    <string name=\"tapping_inverted_both\">दुबै</string>\n    <string name=\"pref_reader_actions\">कार्यहरू</string>\n    <string name=\"pref_read_with_long_tap\">लामो ट्यापमा कार्यहरू देखाउनुहोस्</string>\n    <string name=\"pref_reader_theme\">ब्याकग्राउण्ड रङ</string>\n    <string name=\"gray_background\">खैरो</string>\n    <string name=\"black_background\">कालो</string>\n    <string name=\"automatic_background\">स्वत</string>\n    <string name=\"l_nav\">L आकारको</string>\n    <string name=\"ext_downloading\">डाउनलोड गर्दै</string>\n    <string name=\"ext_installing\">स्थापना गर्दै</string>\n    <string name=\"ext_untrusted\">अविश्वसनीय</string>\n    <string name=\"ext_nsfw_short\">१८+</string>\n    <string name=\"filter_mode_overlay\">ओभरले</string>\n    <string name=\"pref_skip_filtered_chapters\">फिल्टर गरिएका अध्यायहरू छोड्नुहोस्</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">भोल्युम कीहरू उल्टाउनुहोस्</string>\n    <string name=\"pref_read_with_tapping_inverted\">ट्याप क्षेत्रहरू उल्टाउनुहोस्</string>\n    <string name=\"tapping_inverted_none\">कुनै पनि हैन</string>\n    <string name=\"tapping_inverted_horizontal\">तेर्सो</string>\n    <string name=\"ext_installer_legacy\">विरासत</string>\n    <string name=\"pref_custom_color_filter\">कस्टम रङ फिल्टर</string>\n    <string name=\"filter_mode_multiply\">गुणन</string>\n    <string name=\"filter_mode_screen\">स्क्रिन</string>\n    <string name=\"filter_mode_lighten\">डज / चम्किलो</string>\n    <string name=\"filter_mode_darken\">जलाउनु / अँध्यारो गर्नु</string>\n    <string name=\"pref_create_folder_per_manga\">फरक फोल्डरमा पृष्ठहरू सेभ गर्नुहोस्</string>\n    <string name=\"pref_keep_screen_on\">स्क्रिन अन राख्नुहोस्</string>\n    <string name=\"pref_create_folder_per_manga_summary\">इन्ट्रीहरूको शीर्षक अनुसार फोल्डरहरू सिर्जना गर्दछ</string>\n    <string name=\"action_sort_count\">कुल इन्ट्रीहरू</string>\n    <string name=\"label_warning\">सावधान</string>\n    <string name=\"action_display_language_badge\">भाषा</string>\n    <string name=\"parental_controls_info\">यसले अनौपचारिक वा सम्भावित रूपमा गलत रूपमा फ्ल्याग गरिएका एक्सटेन्शनहरूलाई एप भित्र NSFW (१८+) सामग्री आउन बाट रोक्दैन।</string>\n    <string name=\"default_category\">पूर्वनिर्धारित वर्ग</string>\n    <string name=\"categorized_display_settings\">क्रमबद्धका लागि प्रति-वर्ग सेटिंग्स</string>\n    <string name=\"include\">समावेश गर्नुहोस्: %s</string>\n    <string name=\"pref_library_update_categories_details\">\\\"बहिष्कृत\\\" वर्गहरूमा रहेका इन्ट्री \\\"समावेश गरिएका\\\" वर्गहरूमा भए पनि अपडेट हुने छैनन्।</string>\n    <string name=\"ext_app_info\">एप जानकारी</string>\n    <string name=\"untrusted_extension\">अविश्वसनीय एक्सटेन्शन</string>\n    <string name=\"exclude\">समावेश नगर्नुहोस्: %s</string>\n    <string name=\"ext_installer_pref\">इंस्टलर</string>\n    <string name=\"untrusted_extension_message\">खराब एक्सटेन्शनहरूले कुनै पनि भण्डारण लगइन प्रमाणहरू पढ्न वा मनमानी कोड कार्यान्वयन गर्न सक्छ। \\n \\nयस एक्सटेन्शनमा विश्वास गरेर तपाईंले यी जोखिमहरू स्वीकार गर्नुहुन्छ।</string>\n    <string name=\"pref_fullscreen\">पूर्ण स्क्रिन</string>\n    <string name=\"pref_show_navigation_mode_summary\">रिडर खोलिएको बेला छोटकरीमा देखाउनुहोस्</string>\n    <string name=\"pref_dual_page_invert_summary\">यदि विभाजित चौडा पृष्ठहरूको प्लेसमेन्ट पढ्ने दिशासँग मेल खाँदैन</string>\n    <string name=\"pref_show_reading_mode\">पढ्ने मोड देखाउनुहोस्</string>\n    <string name=\"pref_show_page_number\">पृष्ठ नम्बर देखाउनुहोस्</string>\n    <string name=\"pref_crop_borders\">सीमाना क्रप गर्नुहोस्</string>\n    <string name=\"off\">अफ</string>\n    <string name=\"pref_grayscale\">ग्रे-स्केल</string>\n    <string name=\"pref_inverted_colors\">उल्टो</string>\n    <string name=\"white_background\">सेतो</string>\n    <string name=\"pref_viewer_type\">पूर्वनिर्धारित पढ्ने मोड</string>\n    <string name=\"connected_to_wifi\">Wi-Fi मा मात्र</string>\n    <string name=\"update_72hour\">प्रत्येक ३ दिन</string>\n    <string name=\"edge_nav\">कुना</string>\n    <string name=\"vertical_viewer\">ठाडो</string>\n    <string name=\"webtoon_viewer\">लामो स्ट्रिप</string>\n    <string name=\"vertical_plus_viewer\">खाली ठाउँ भएको लामो स्ट्रिप</string>\n    <string name=\"nav_zone_prev\">पहिलेको</string>\n    <string name=\"kindlish_nav\">किन्डल जस्तै</string>\n    <string name=\"right_to_left_viewer\">दायाँ देखि बायाँ</string>\n    <string name=\"right_and_left_nav\">दायाँ र बायाँ</string>\n    <string name=\"nav_zone_next\">अर्को</string>\n    <string name=\"nav_zone_left\">बायाँ</string>\n    <string name=\"left_to_right_viewer\">बायाँ देखि दायाँ</string>\n    <string name=\"nav_zone_right\">दायाँ</string>\n    <string name=\"browse\">ब्राउज</string>\n    <string name=\"creating_backup\">ब्याकअप सिर्जना गर्दै</string>\n    <string name=\"zoom_start_center\">बीचमा</string>\n    <string name=\"double_tap_anim_speed_normal\">सामान्य</string>\n    <string name=\"double_tap_anim_speed_0\">कुनै एनिमेसन छैन</string>\n    <string name=\"double_tap_anim_speed_fast\">छिटो</string>\n    <string name=\"pref_rotation_type\">पूर्वनिर्धारित रोटेशन</string>\n    <string name=\"rotation_type\">रोटेशन</string>\n    <string name=\"rotation_free\">फ्री</string>\n    <string name=\"rotation_landscape\">ल्याण्डस्केप</string>\n    <string name=\"rotation_force_landscape\">लक गरिएको ल्याण्डस्केप</string>\n    <string name=\"color_filter_r_value\">रातो</string>\n    <string name=\"color_filter_g_value\">हरियो</string>\n    <string name=\"pref_category_reading_mode\">पढ्ने मोड</string>\n    <string name=\"pref_hide_threshold\">स्क्रोलमा मेनु लुकाउनका लागि संवेदनशीलता</string>\n    <string name=\"second_to_last\">अन्तिम पढिएको अध्याय भन्दा पहिले १ अध्याय</string>\n    <string name=\"pref_category_auto_download\">स्वत: डाउनलोड गर्नुहोस्</string>\n    <string name=\"tracking_guide\">ट्र्याकिङ गाइड</string>\n    <string name=\"pref_auto_update_manga_sync\">पढिसकेपछि प्रगति अपडेट गर्नुहोस्</string>\n    <string name=\"pref_remove_bookmarked_chapters\">पुस्तकचिनो लगाइएका अध्यायहरू हटाउन अनुमति दिनुहोस्</string>\n    <string name=\"last_read_chapter\">अन्तिम पढिएको अध्याय</string>\n    <string name=\"enhanced_tracking_info\">विशिष्ट स्रोतहरूको लागि परिष्कृत सुविधाहरू प्रदान गर्दछ। तपाईंको पुस्तकालयमा थप्दा इन्ट्री स्वचालित रूपमा ट्र्याक गरिन्छ।</string>\n    <string name=\"action_track\">ट्र्याक</string>\n    <string name=\"restore_completed\">रिस्टोर सम्पन्न भयो</string>\n    <string name=\"pref_clear_cookies\">कुकीहरू खाली गर्नुहोस्</string>\n    <string name=\"backup_choice\">तपाई के ब्याकअप गर्न चाहनुहुन्छ?</string>\n    <string name=\"creating_backup_error\">ब्याकअप असफल भयो</string>\n    <string name=\"pref_dns_over_https\">HTTPS (DoH) माथि DNS</string>\n    <string name=\"requires_app_restart\">प्रभाव पार्न एप फेरि सुरु गर्न आवश्यक छ</string>\n    <string name=\"notification_cover_update_failed\">आवरण अपडेट गर्न असफल भयो</string>\n    <string name=\"notification_first_add_to_library\">यो गर्नु अघि कृपया आफ्नो पुस्तकालयमा यस इन्ट्रीलाई राख्नुहोस्</string>\n    <string name=\"download_notifier_downloader_title\">डाउनलोडर</string>\n    <string name=\"restore_duration\">%1$02d मिनेट, %2$02d सेकेन्ड</string>\n    <string name=\"backup_in_progress\">ब्याकअप पहिले नै प्रगतिमा छ</string>\n    <string name=\"update_check_notification_update_available\">नयाँ संस्करण उपलब्ध छ!</string>\n    <string name=\"rotation_portrait\">पोर्ट्रेट</string>\n    <string name=\"scale_type_fit_height\">फिट उचाइ</string>\n    <string name=\"scale_type_fit_width\">फिट चौडाइ</string>\n    <string name=\"services\">ट्र्याकर</string>\n    <string name=\"invalid_backup_file\">अवैध ब्याकअप फाइल:</string>\n    <string name=\"backup_created\">ब्याकअप सिर्जना गरियो</string>\n    <string name=\"backup_restore_content_full\">तपाईंले कुनै पनि छुटेको एक्सटेन्शनहरू स्थापना गर्न र तिनीहरूलाई प्रयोग गर्न पछि ट्र्याकिङ सेवाहरूमा लगइन गर्न आवश्यक हुनेछ।</string>\n    <string name=\"restore_in_progress\">रिस्टोर पहिले नै प्रगतिमा छ</string>\n    <string name=\"label_network\">नेटवर्किङ</string>\n    <string name=\"restoring_backup_error\">ब्याकअप रिस्टोर असफल भयो</string>\n    <string name=\"backup_info\">तपाईंले ब्याकअपको प्रतिलिपिहरू अन्य ठाउँहरूमा पनि राख्नु पर्छ। ब्याकअपहरूमा कुनै पनि भण्डारण गरिएका पासवर्डहरू सहित संवेदनशील डेटा समावेश हुन सक्छ; साझा गर्दा होसियार ।</string>\n    <string name=\"notification_new_chapters\">नयाँ अध्यायहरू फेला पर्यो</string>\n    <string name=\"pref_highest\">सबैभन्दा उच्च</string>\n    <string name=\"disabled\">असक्षम</string>\n    <string name=\"enhanced_services\">परिष्कृत ट्र्याकरहरू</string>\n    <string name=\"restoring_backup_canceled\">रिस्टोर रद्द गरियो</string>\n    <string name=\"download_notifier_title_error\">त्रुटि</string>\n    <string name=\"scale_type_stretch\">तन्काउनुहोस्</string>\n    <string name=\"scale_type_smart_fit\">स्मार्ट फिट</string>\n    <string name=\"zoom_start_automatic\">स्वचालित</string>\n    <string name=\"rotation_force_portrait\">लक गरिएको पोर्ट्रेट</string>\n    <string name=\"color_filter_a_value\">अल्फा</string>\n    <string name=\"pref_always_show_chapter_transition\">अध्याय ट्रान्जिसन सधैँ देखाउनुहोस्</string>\n    <string name=\"color_filter_b_value\">निलो</string>\n    <string name=\"pref_category_reading\">पढ्दै</string>\n    <string name=\"pref_webtoon_side_padding\">साइड प्याडिङ</string>\n    <string name=\"pref_low\">कम</string>\n    <string name=\"pref_high\">उच्च</string>\n    <string name=\"pref_lowest\">सबैभन्दा कम</string>\n    <string name=\"pref_category_delete_chapters\">अध्यायहरू हटाउनुहोस्</string>\n    <string name=\"pref_remove_after_marked_as_read\">आफै पढिएको रूपमा चिन्ह लगाइएपछि</string>\n    <string name=\"pref_remove_after_read\">पढिसकेपछि स्वचालित रूपमा हटाउनुहोस्</string>\n    <string name=\"save_chapter_as_cbz\">CBZ अभिलेख को रूपमा सेभ गर्नुहोस्</string>\n    <string name=\"fourth_to_last\">अन्तिम पढिएको अध्याय भन्दा ३ अध्याय अघि</string>\n    <string name=\"pref_download_new\">नयाँ अध्यायहरू डाउनलोड गर्नुहोस्</string>\n    <string name=\"notification_chapters_multiple\">अध्यायहरू %1$s</string>\n    <string name=\"download_notifier_text_only_wifi\">कुनै Wi-Fi जडान उपलब्ध छैन</string>\n    <string name=\"download_notifier_download_paused\">डाउनलोड्स रोकियो</string>\n    <string name=\"download_notifier_no_network\">कुनै नेटवर्क जडान उपलब्ध छैन</string>\n    <string name=\"tracking_info\">बाह्य ट्र्याकर सेवाहरूमा अध्याय प्रगति अपडेट गर्न एकतर्फी सिंक। तिनीहरूको ट्र्याकिङ बटनबाट व्यक्तिगत इन्ट्रीहरूको लागि ट्र्याकिङ सेट अप गर्नुहोस्।</string>\n    <string name=\"backup_restore_missing_trackers\">ट्र्याकरहरूमा लगइन छैनन्:</string>\n    <string name=\"backup_restore_missing_sources\">छुटेको स्रोतहरू:</string>\n    <string name=\"pref_clear_chapter_cache\">अध्याय cache खाली गर्नुहोस्</string>\n    <string name=\"pref_remove_exclude_categories\">बहिष्कृत वर्गहरू</string>\n    <string name=\"fifth_to_last\">अन्तिम पढिएको अध्याय भन्दा ४ अध्याय अघि</string>\n    <string name=\"pref_download_new_categories_details\">बहिष्कृत गरिएका वर्गको इन्ट्री समावेश गरिएका वर्गमा भए पनि डाउनलोड गरिने छैन।</string>\n    <string name=\"pref_create_backup\">ब्याकअप सिर्जना गर्नुहोस्</string>\n    <string name=\"pref_create_backup_summ\">हालको पुस्तकालय रिस्टोर गर्न प्रयोग गर्न सकिन्छ</string>\n    <string name=\"cookies_cleared\">कुकीहरू खाली गरियो</string>\n    <string name=\"label_data\">डेटा</string>\n    <string name=\"cache_delete_error\">खाली गर्दा त्रुटि भयो</string>\n    <string name=\"status\">स्थिति</string>\n    <string name=\"update_check_notification_download_in_progress\">डाउनलोड गर्दै…</string>\n    <string name=\"update_check_notification_download_complete\">अपडेट स्थापना गर्न ट्याप गर्नुहोस्</string>\n    <string name=\"download_notifier_unknown_error\">अप्रत्याशित त्रुटिका कारण अध्याय डाउनलोड गर्न सकिएन</string>\n    <string name=\"notification_chapters_single\">अध्याय %1$s</string>\n    <string name=\"scale_type_original_size\">मूल आकार</string>\n    <string name=\"pref_zoom_start\">जूम सुरु स्थिति</string>\n    <string name=\"pref_auto_clear_chapter_cache\">एप खोलेमा अध्याय cache खाली गर्नुहोस्</string>\n    <string name=\"information_webview_outdated\">राम्रो संगतताको लागि कृपया WebView एप अपडेट गर्नुहोस्</string>\n    <string name=\"pref_update_only_completely_read\">नपढेको अध्याय(हरू) सँग</string>\n    <string name=\"pref_viewer_nav\">ट्याप क्षेत्रहरू</string>\n    <string name=\"pager_viewer\">पृष्ठांकित</string>\n    <string name=\"pref_image_scale_type\">स्केल को प्रकार</string>\n    <string name=\"scale_type_fit_screen\">फिट स्क्रिन</string>\n    <string name=\"zoom_start_left\">बायाँ</string>\n    <string name=\"restore_miui_warning\">यदि MIUI अप्टिमाइजेसन असक्षम छ भने ब्याकअप/रिस्टोरले राम्ररी काम नगर्न सक्छ।</string>\n    <string name=\"restoring_backup\">ब्याकअप रिस्टोर गर्दै</string>\n    <string name=\"extension_api_error\">एक्सटेन्शनहरूको सूची प्राप्त गर्न असफल भयो</string>\n    <string name=\"zoom_start_right\">दायाँ</string>\n    <string name=\"pref_restore_backup\">ब्याकअप रिस्टोर गर्नुहोस्</string>\n    <string name=\"pref_restore_backup_summ\">ब्याकअप फाइलबाट पुस्तकालय रिस्टोर गर्नुहोस्</string>\n    <string name=\"invalid_backup_file_missing_manga\">ब्याकअपमा कुनै पनि पुस्तकालयका इन्ट्री समावेश छैन।</string>\n    <string name=\"pref_backup_interval\">स्वचालित ब्याकअप फ्रिक्वेन्सी</string>\n    <string name=\"used_cache\">प्रयोग गरिएको: %1$s</string>\n    <string name=\"cache_deleted\">Cache खाली गरियो। %1$d फाइलहरू हटाएका छन्</string>\n    <string name=\"notification_chapters_single_and_more\">अध्याय %1$s र %2$d अरू</string>\n    <string name=\"update_check_notification_download_error\">डाउनलोड त्रुटि</string>\n    <string name=\"channel_ext_updates\">एक्सटेन्शन अपडेट्स</string>\n    <string name=\"pref_dump_crash_logs_summary\">विकासकर्ताहरूसँग साझेदारी गर्नको लागि फाइलमा error logs सेभ गर्दछ</string>\n    <string name=\"label_background_activity\">ब्याकग्राउण्ड गतिविधि</string>\n    <string name=\"whats_new\">नयाँ के छ</string>\n    <string name=\"clear_database_source_item_count\">डेटाबेसमा %1$d गैर-पुस्तकालय इन्ट्रीहरू छन्</string>\n    <string name=\"battery_optimization_disabled\">ब्याट्री अप्टिमाइजेसन पहिले नै असक्षम छ</string>\n    <string name=\"about_dont_kill_my_app\">केही निर्माताहरूसँग अतिरिक्त एप प्रतिबन्धहरू छन् जसले ब्याकग्राउण्ड सेवाहरूलाई मार्छ। यो वेबसाइटमा यसलाई कसरी ठीक गर्ने बारे थप जानकारी छ।</string>\n    <string name=\"clear_database_completed\">इन्ट्रीहरू हटाइयो</string>\n    <string name=\"pref_disable_battery_optimization_summary\">ब्याकग्राउण्ड पुस्तकालय अपडेट्स र ब्याकअप संग मद्दत गर्छ</string>\n    <string name=\"pref_verbose_logging_summary\">सिस्टम log मा verbose logs प्रिन्ट गर्नुहोस् (एपको कार्यसम्पादन घटाउँछ)</string>\n    <string name=\"privacy_policy\">गोपनीयता नीति</string>\n    <string name=\"email\">इमेल ठेगाना</string>\n    <string name=\"no_more_results\">थप परिणामहरू छैनन्</string>\n    <string name=\"local_source\">लोकल स्रोत</string>\n    <string name=\"other_source\">अन्य</string>\n    <string name=\"manga_from_library\">पुस्तकालयबाट</string>\n    <string name=\"tabs_header\">ट्याबहरू</string>\n    <string name=\"latest\">नवीनतम</string>\n    <string name=\"local_filter_order_by\">द्वारा अर्डर गर्नुहोस्</string>\n    <string name=\"date\">मिति</string>\n    <string name=\"login_title\">%1$s मा लगइन गर्नुहोस्</string>\n    <string name=\"pref_refresh_library_covers\">पुस्तकालयका आवरणहरू रिफ्रेस गर्नुहोस्</string>\n    <string name=\"notification_incognito_text\">गुप्त मोड असक्षम गर्नुहोस्</string>\n    <string name=\"unknown_error\">अज्ञात त्रुटि</string>\n    <string name=\"downloaded_chapters\">डाउनलोड गरिएका अध्यायहरू</string>\n    <string name=\"chapter_not_found\">अध्याय फेला परेन</string>\n    <string name=\"no_pinned_sources\">तपाईंसँग पिन गरिएको स्रोतहरू छैनन्</string>\n    <string name=\"local_invalid_format\">अवैध अध्याय ढाँचा</string>\n    <string name=\"downloaded_only_summary\">तपाईंको पुस्तकालयमा सबै इन्ट्री फिल्टर गर्नेछ</string>\n    <string name=\"pref_dump_crash_logs\">Crash logs साझा गर्नुहोस्</string>\n    <string name=\"pref_disable_battery_optimization\">ब्याट्री अप्टिमाइजेसन असक्षम पार्नुहोस्</string>\n    <string name=\"unknown\">अज्ञात</string>\n    <string name=\"no_results_found\">कुनै परिणाम फेला परेन</string>\n    <string name=\"pinned_sources\">पिन गरिएको</string>\n    <string name=\"action_global_search_query\">ग्लोबल रूपमा \\\"%1$s\\\" खोज्नुहोस्</string>\n    <string name=\"unknown_author\">अज्ञात लेखक</string>\n    <string name=\"pref_clear_database\">डेटाबेस खाली गर्नुहोस्</string>\n    <string name=\"pref_verbose_logging\">वर्बोज लगिङ</string>\n    <string name=\"username\">युजरनेम</string>\n    <string name=\"login\">लगइन</string>\n    <string name=\"login_success\">लगइन हुनुहुन्छ</string>\n    <string name=\"logout_title\">%1$s बाट लग-आउट गर्ने हो?</string>\n    <string name=\"logout\">लग-आउट</string>\n    <string name=\"logout_success\">तपाई अब लग-आउट हुनुभएको छ</string>\n    <string name=\"updating_category\">वर्ग अपडेट गर्दै</string>\n    <string name=\"last_used_source\">पछिल्लो पटक प्रयोग गरिएको</string>\n    <string name=\"action_global_search_hint\">ग्लोबल खोज…</string>\n    <string name=\"local_source_help_guide\">लोकल स्रोत गाइड</string>\n    <string name=\"ongoing\">जारी छ</string>\n    <string name=\"unknown_status\">अज्ञात स्थिति</string>\n    <string name=\"licensed\">लाइसेन्स प्राप्त</string>\n    <string name=\"password\">पासवर्ड</string>\n    <string name=\"pref_clear_database_summary\">पुस्तकालयमा नभएका इन्ट्रीको इतिहास हटाउनुहोस्</string>\n    <string name=\"database_clean\">सफा गर्न केही छैन</string>\n    <string name=\"version\">संस्करण</string>\n    <string name=\"website\">वेबसाइट</string>\n    <string name=\"help_translate\">अनुवाद गर्न मद्दत गर्नुहोस्</string>\n    <string name=\"licenses\">खुला स्रोत लाइसेन्सहरू</string>\n    <string name=\"remove_from_library\">पुस्तकालयबाट हटाउनुहोस्</string>\n    <string name=\"publishing_finished\">प्रकाशन सम्पन्न</string>\n    <string name=\"cancelled\">रद्द गरेको</string>\n    <string name=\"on_hiatus\">अन्तरालमा छ</string>\n    <string name=\"add_to_library\">पुस्तकालयमा राख्नुहोस्</string>\n    <string name=\"manga_added_library\">पुस्तकालयमा राखियो</string>\n    <string name=\"in_library\">पुस्तकालयमा छ</string>\n    <string name=\"completed\">समाप्त</string>\n    <string name=\"manga_removed_library\">पुस्तकालयबाट हटाइयो</string>\n    <string name=\"manga_info_expand\">थप</string>\n    <string name=\"manga_info_collapse\">थोरै</string>\n    <string name=\"display_mode_chapter\">अध्याय %1$s</string>\n    <string name=\"show_chapter_number\">अध्याय संख्या</string>\n    <string name=\"title\">शीर्षक</string>\n    <string name=\"score\">मूल्याङ्कन</string>\n    <string name=\"track_started_reading_date\">सुरु गरेको मिति</string>\n    <string name=\"track_finished_reading_date\">समाप्त गरेको मिति</string>\n    <string name=\"page_list_empty_error\">कुनै पृष्ठहरू फेला परेनन्</string>\n    <string name=\"loader_not_implemented_error\">स्रोत भेटिएन</string>\n    <string name=\"clear_history_completed\">इतिहास हटाइयो</string>\n    <string name=\"clear_history_confirmation\">के तपाईँ निश्चित हुनुहुन्छ? सबै इतिहास हराउनेछ।</string>\n    <string name=\"transition_pages_error\">पृष्ठहरू लोड हुन असफल भयो: %1$s</string>\n    <string name=\"source_not_installed\">स्रोत स्थापना गरिएको छैन: %1$s</string>\n    <string name=\"chapter_paused\">रोकिएको</string>\n    <string name=\"chapter_downloading_progress\">डाउनलोड गर्दै (%1$d/%2$d)</string>\n    <string name=\"sort_by_number\">अध्याय संख्या द्वारा</string>\n    <string name=\"sort_by_upload_date\">अपलोड मिति द्वारा</string>\n    <string name=\"migration_help_guide\">स्रोत स्थानान्तरण गाइड</string>\n    <string name=\"migration_selection_prompt\">स्थानान्तरण गर्नको लागि स्रोत चयन गर्नुहोस्</string>\n    <string name=\"error_saving_cover\">आवरण सेभ गर्दा त्रुटि भयो</string>\n    <string name=\"action_display_cover_only_grid\">आवरण मात्र ग्रिड</string>\n    <string name=\"error_sharing_cover\">आवरण साझा गर्दा त्रुटि भयो</string>\n    <string name=\"confirm_delete_chapters\">के तपाईँले चयन गर्नुभएको अध्यायहरू हटाउन चाहनुहुन्छ?</string>\n    <string name=\"chapter_settings\">अध्याय सेटिंग्स</string>\n    <string name=\"set_chapter_settings_as_default\">पूर्वनिर्धारित रूपमा सेट गर्नुहोस्</string>\n    <string name=\"confirm_set_image_as_cover\">यो छवि आवरण को रूपमा राख्न चाहनुहुन्छ?</string>\n    <string name=\"dialog_with_checkbox_reset\">यो इन्ट्रीको सबै अध्यायहरू रिसेट गर्नुहोस्</string>\n    <string name=\"download_unread\">नपढिएको</string>\n    <string name=\"cover_saved\">आवरण सेभ भयो</string>\n    <string name=\"pref_category_for_this_series\">यस श्रृङ्खलाको लागि</string>\n    <string name=\"transition_pages_loading\">पृष्ठहरू लोड हुँदै…</string>\n    <string name=\"migration_dialog_what_to_include\">समावेश गर्न डेटा चयन गर्नुहोस्</string>\n    <string name=\"recent_manga_time\">अध्याय. %1$s - %2$s</string>\n    <string name=\"copy\">प्रतिलिपि</string>\n    <string name=\"copied_to_clipboard\">क्लिपबोर्डमा प्रतिलिपि गर्नुहोस्:\n\\n%1$s</string>\n    <string name=\"clipboard_copy_error\">क्लिपबोर्डमा प्रतिलिपि गर्न असफल</string>\n    <string name=\"delete_downloads_for_manga\">डाउनलोड गरिएका अध्यायहरू हटाउने हो?</string>\n    <string name=\"pref_update_only_started\">जो सुरु भएको छैन</string>\n    <string name=\"cover_updated\">आवरण अपडेट भयो</string>\n    <string name=\"share_page_info\">%1$s: %2$s, पृष्ठ %3$d</string>\n    <string name=\"pref_clear_history\">इतिहास हटाउनुहोस्</string>\n    <string name=\"snack_add_to_library\">पुस्तकालयमा राख्ने?</string>\n    <string name=\"transition_next\">अर्को:</string>\n    <string name=\"viewer\">पढ्ने मोड</string>\n    <string name=\"transition_finished\">सकिएको:</string>\n    <string name=\"updating_library\">पुस्तकालय अपडेट गर्दै</string>\n    <string name=\"confirm_set_chapter_settings\">के तपाइँ निश्चित रूपमा यी सेटिंग्सलाई पूर्वनिर्धारित रूपमा सेभ गर्न चाहनुहुन्छ?</string>\n    <string name=\"also_set_chapter_settings_for_library\">मेरो पुस्तकालयका सबै इन्ट्रीहरूमा पनि लागू गर्नुहोस्</string>\n    <string name=\"no_chapters_error\">अध्यायहरू भेटिएन</string>\n    <string name=\"track_status\">स्थिति</string>\n    <string name=\"picture_saved\">फोटो सेभ गरियो</string>\n    <string name=\"action_show_manga\">इन्ट्री देखाउनुहोस्</string>\n    <string name=\"unread\">नपढिएको</string>\n    <string name=\"paused\">रोकिएको</string>\n    <string name=\"transition_no_next\">अर्को अध्याय छैन</string>\n    <string name=\"manga_cover\">आवरण</string>\n    <string name=\"chapter_error\">त्रुटि</string>\n    <string name=\"show_title\">स्रोत शीर्षक</string>\n    <string name=\"sort_by_source\">स्रोत द्वारा</string>\n    <string name=\"repeating\">फेरी पढ्दै</string>\n    <string name=\"transition_current\">हालको:</string>\n    <string name=\"error_no_match\">कुनै मेल फेला परेन</string>\n    <string name=\"myanimelist_relogin\">कृपया MAL मा फेरि लगइन गर्नुहोस्</string>\n    <string name=\"source_unsupported\">स्रोत समर्थित छैन</string>\n    <string name=\"error_category_exists\">सो नाम गरिएको वर्ग पहिले नै अवस्थित छ!</string>\n    <string name=\"snack_categories_deleted\">वर्गहरू हटाइयो</string>\n    <string name=\"dialog_with_checkbox_remove_description\">यसले यस अध्यायको पढेको मिति हटाउनेछ। के तपाईँ निश्चित हुनुहुन्छ?</string>\n    <string name=\"track_type\">प्रकार</string>\n    <string name=\"no_next_chapter\">अर्को अध्याय भेटिएन</string>\n    <string name=\"transition_previous\">पहिलेको:</string>\n    <string name=\"dropped\">छोडिसकेको</string>\n    <string name=\"on_hold\">होल्डमा छ</string>\n    <string name=\"plan_to_read\">पढ्ने योजना</string>\n    <string name=\"custom_filter\">कस्टम फिल्टर</string>\n    <string name=\"set_as_cover\">आवरणको रूपमा सेट गर्नुहोस्</string>\n    <string name=\"chapter_progress\">पृष्ठ: %1$d</string>\n    <string name=\"migrate\">स्थानान्तरण</string>\n    <string name=\"manga_download\">डाउनलोड</string>\n    <string name=\"transition_no_previous\">अघिल्लो अध्याय छैन</string>\n    <string name=\"download_insufficient_space\">थोरै जम्मा गर्ने ठाउँ भएको कारणले अध्याय डाउनलोड हुन सकिँदएन</string>\n    <string name=\"download_queue_size_warning\">सावधान: ठूलो हिस्सामा डाउनलोड गर्नाले स्रोत ढिलो चल्न अनि/वा %s लाई अवरुद्घ गर्न सक्नेछ। थप जान्नको लागि यहाँ थिच्नुहोस्।।</string>\n    <string name=\"manga_tracking_tab\">ट्र्याकिङ</string>\n    <string name=\"add_tracking\">ट्र्याक गर्नुहोस्</string>\n    <string name=\"reading\">पढ्दै</string>\n    <string name=\"file_picker_error\">कुनै फाइल पिकर एप फेला परेन</string>\n    <string name=\"update_check_confirm\">डाउनलोड गर्नुहोस्</string>\n    <string name=\"channel_new_chapters\">अध्याय अपडेट्स</string>\n    <string name=\"skipped_reason_completed\">श्रृङ्खला पूरा भएकोले छोडियो</string>\n    <string name=\"learn_more\">थप जान्नका लागि ट्याप गर्नुहोस्</string>\n    <string name=\"update_check_no_new_updates\">कुनै नयाँ अपडेट उपलब्ध छैन</string>\n    <string name=\"information_empty_category_dialog\">तपाईंसँग अहिलेसम्म कुनै पनि वर्गहरू छैन।</string>\n    <string name=\"chapter_settings_updated\">पूर्वनिर्धारित अध्याय सेटिंग्स अपडेट गरियो</string>\n    <string name=\"spen_next_page\">अर्को पृष्ठ</string>\n    <string name=\"channel_progress\">प्रगति</string>\n    <string name=\"channel_complete\">पूरा</string>\n    <string name=\"channel_app_updates\">एप अपडेट्स</string>\n    <string name=\"channel_errors\">त्रुटिहरू</string>\n    <string name=\"skipped_reason_not_started\">कुनै अध्याय नपढेकाले छोडियो</string>\n    <string name=\"notification_size_warning\">ठूला अपडेटले स्रोतहरूलाई हानि पुर्‍याउँछ र यसले ढिलो अपडेट्स निम्त्याउन सक्छ र ब्याट्रीको प्रयोग पनि बढाउँछ। थप जान्न ट्याप गर्नुहोस्।</string>\n    <string name=\"information_webview_required\">एप काम गर्नका लागि WebView आवश्यक छ</string>\n    <string name=\"action_move_to_top_all_for_series\">श्रृङ्खलालाई शीर्षमा सर्नुहोस्</string>\n    <string name=\"rotation_reverse_portrait\">पोर्ट्रेट उल्ट्याउनु</string>\n    <string name=\"skipped_reason_not_caught_up\">नपढिएका अध्यायहरू भएका कारण छोडियो</string>\n    <string name=\"file_select_cover\">आवरण छवि चयन गर्नुहोस्</string>\n    <string name=\"file_select_backup\">ब्याकअप फाइल चयन गर्नुहोस्</string>\n    <string name=\"channel_common\">साधारण</string>\n    <string name=\"spen_previous_page\">अघिल्लो पृष्ठ</string>\n    <string name=\"update_check_eol\">यो एन्ड्रोइड संस्करण अब समर्थित छैन</string>\n    <string name=\"getting_started_guide\">सुरु गर्ने गाइड</string>\n    <string name=\"pref_navigate_pan\">चौडा छविहरू प्यान गर्नुहोस्</string>\n    <string name=\"pref_landscape_zoom\">फराकिलो छविहरूमा स्वचालित रूपमा जूम गर्नुहोस्</string>\n    <string name=\"notification_update_error\">%1$d अपडेट(हरू) असफल भयो</string>\n    <string name=\"disabled_nav\">असक्षम</string>\n    <string name=\"library_errors_help\">पुस्तकालय अपडेट त्रुटिहरू कसरी समाधान गर्ने भन्ने बारे मद्दतको लागि, %1$s हेर्नुहोस्</string>\n    <string name=\"action_sort_unread_count\">नपढिएको संख्या</string>\n    <string name=\"action_close\">बन्द गर्नुहोस्</string>\n    <string name=\"pref_library_summary\">वर्गहरू, ग्लोबल अपडेट, अध्याय स्वाइप</string>\n    <string name=\"action_sort_last_manga_update\">पछिल्लो अपडेट जाँच</string>\n    <string name=\"delete_category_confirmation\">के तपाई \\\"%s\\\" वर्ग हटाउन चाहनु हुन्छ?</string>\n    <string name=\"delete_category\">वर्ग हटाउनुहोस्</string>\n    <string name=\"action_search_hint\">खोज्नुहोस्…</string>\n    <string name=\"action_remove_everything\">सबै हटाउनुहोस्</string>\n    <string name=\"pref_reader_summary\">पढ्ने मोड, प्रदर्शन, नेभिगेसन</string>\n    <string name=\"pref_downloads_summary\">स्वचालित डाउनलोड, अगाडि डाउनलोड गर्ने</string>\n    <string name=\"pref_browse_summary\">स्रोतहरू, एक्सटेन्शनहरू, ग्लोबल खोज</string>\n    <string name=\"theme_lavender\">ल्याभेन्डर</string>\n    <string name=\"pref_app_language\">एप को भाषा</string>\n    <string name=\"auto_download_while_reading\">पढ्दा स्वत: डाउनलोड गर्नुहोस्</string>\n    <string name=\"pref_backup_summary\">म्यानुअल र स्वचालित ब्याकअप, भण्डारण स्पेस</string>\n    <string name=\"pref_security_summary\">एप लक, सुरक्षित स्क्रिन</string>\n    <string name=\"multi_lang\">थुप्रै</string>\n    <string name=\"pref_library_update_show_tab_badge\">अपडेट्स आइकनमा नपढिएको गणना देखाउनुहोस्</string>\n    <string name=\"pref_skip_dupe_chapters\">डुप्लिकेट अध्यायहरू छोड्नुहोस्</string>\n    <string name=\"action_display_show_continue_reading_button\">जारी राख्ने बटन</string>\n    <string name=\"label_stats\">तथ्याङ्क</string>\n    <string name=\"label_started\">सुरु गरिएको</string>\n    <string name=\"label_local\">लोकल</string>\n    <string name=\"label_downloaded\">डाउनलोड गरिएको</string>\n    <string name=\"network_not_metered\">मापन नगरिएको नेटवर्कमा मात्र</string>\n    <string name=\"download_ahead\">अगाडि डाउनलोड गर्नुहोस्</string>\n    <string name=\"pref_appearance_summary\">थीम, मिति र समय ढाँचा</string>\n    <string name=\"download_ahead_info\">हालको अध्याय + अर्को पहिले नै डाउनलोड गरिएमा मात्र काम गर्दछ।</string>\n    <string name=\"theme_tidalwave\">समुन्द्री लहर</string>\n    <string name=\"ext_info_version\">संस्करण</string>\n    <string name=\"ext_info_language\">भाषा</string>\n    <string name=\"ext_info_age_rating\">उमेर मूल्याङ्कन</string>\n    <string name=\"action_not_now\">अहिले हैन</string>\n    <string name=\"action_open_random_manga\">जुनसुकै इन्ट्री खोल्नुहोस्</string>\n    <string name=\"reading_list\">पढिरहेको सूची</string>\n    <string name=\"updates_last_update_info\">पुस्तकालय पछिल्लो पटक अपडेट गरिएको: %s</string>\n    <string name=\"crash_screen_description\">%s एक अप्रत्याशित त्रुटिमा पर्यो। समर्थन को लागि हामी तपाईंलाई हाम्रो Discord को #support च्यानलमा crash logs शेगर गर्न सुझाव दिन्छौं।</string>\n    <string name=\"update_check_open\">GitHub मा खोल्नुहोस्</string>\n    <string name=\"pref_invalidate_download_cache_summary\">डाउनलोड गरिएका अध्यायहरू पुन: जाँच गर्न एपलाई फोर्स गर्नुहोस्</string>\n    <string name=\"pref_tracking_summary\">एकतर्फी प्रगति सिंक, परिष्कृत सिंक</string>\n    <string name=\"pref_advanced_summary\">Dump crash logs, battery optimizations</string>\n    <string name=\"error_saving_picture\">तस्वीर बचत गर्न त्रुटि भयो</string>\n    <string name=\"updates_last_update_info_just_now\">भर्खरै</string>\n    <string name=\"pref_reset_viewer_flags_success\">सबै रिडर सेटिंग्स रिसेट गरियो</string>\n    <string name=\"label_used\">प्रयोग गरिएको</string>\n    <string name=\"label_titles_in_global_update\">ग्लोबल अपडेटमा</string>\n    <string name=\"label_titles_section\">इन्ट्री</string>\n    <string name=\"label_tracker_section\">ट्र्याकर</string>\n    <string name=\"crash_screen_restart_application\">एप पुन: सुरु गर्नुहोस्</string>\n    <string name=\"label_tracked_titles\">ट्र्याक गरिएका इन्ट्रीहरू</string>\n    <string name=\"label_mean_score\">औसत स्कोर</string>\n    <string name=\"appwidget_updates_description\">तपाईंको भर्खरै अपडेट गरिएको पुस्तकालय इन्ट्रीहरू हेर्नुहोस्</string>\n    <string name=\"enhanced_services_not_installed\">उपलब्ध छ तर स्रोत स्थापना गरिएको छैन: %s</string>\n    <string name=\"copied_to_clipboard_plain\">क्लिपबोर्डमा प्रतिलिपि गरियो</string>\n    <string name=\"information_no_entries_found\">यस वर्गमा कुनै इन्ट्रीहरू फेला परेनन्</string>\n    <string name=\"unknown_title\">अज्ञात शीर्षक</string>\n    <string name=\"invalid_location\">अवैध स्थान: %s</string>\n    <string name=\"missing_storage_permission\">भण्डारण अनुमतिहरू प्रदान गरिएको छैन</string>\n    <string name=\"pref_clear_webview_data\">WebView डेटा खाली गर्नुहोस्</string>\n    <string name=\"fdroid_warning\">F-Droid निर्माणहरू आधिकारिक रूपमा समर्थित छैनन्।\n\\nथप जान्न ट्याप गर्नुहोस्।</string>\n    <string name=\"crash_screen_title\">उफ्!</string>\n    <string name=\"label_read_duration\">पढेको अवधि</string>\n    <string name=\"pref_reset_viewer_flags_error\">रिडर सेटिंग्स रिसेट गर्न सकिएन</string>\n    <string name=\"webview_data_deleted\">WebView डेटा खाली गरियो</string>\n    <string name=\"complete_list\">समाप्त सूची</string>\n    <string name=\"on_hold_list\">होल्ड सूची</string>\n    <string name=\"unfinished_list\">अधूरो सूची</string>\n    <string name=\"source_filter_empty_screen\">कुनै स्थापित स्रोत फेला परेन</string>\n    <string name=\"download_notifier_split_page_path_not_found\">पृष्ठ %d को फाइल मार्ग फेला पार्न सकेन</string>\n    <string name=\"custom_cover\">कस्टम आवरण</string>\n    <string name=\"wish_list\">इच्छा सूची</string>\n    <string name=\"popular\">लोकप्रिय</string>\n    <string name=\"split_tall_images_summary\">रिडर कार्यसम्पादन सुधार गर्दछ</string>\n    <string name=\"pref_reset_viewer_flags\">प्रति-श्रृङ्खला रिडर सेटिंग्स रिसेट गर्नुहोस्</string>\n    <string name=\"track_remove_date_conf_title\">मिति हटाउने हो?</string>\n    <string name=\"track_remove_start_date_conf_text\">यसले %s बाट तपाइँको पहिले चयन गरिएको सुरु मिति हटाउनेछ</string>\n    <string name=\"track_remove_finish_date_conf_text\">यसले %s बाट तपाइँको पहिले चयन गरिएको समाप्त मिति हटाउनेछ</string>\n    <string name=\"update_already_running\">एउटा अपडेट पहिले नै जारी छ</string>\n    <string name=\"empty_screen\">ल, यो के भयो</string>\n    <string name=\"not_installed\">स्थापना गरिएको छैन</string>\n    <string name=\"pref_reset_viewer_flags_summary\">पढ्ने मोड र सबै श्रृङ्खलाहरूको अभिमुखीकरण रिसेट गर्दछ</string>\n    <string name=\"are_you_sure\">के तपाईँ निश्चित हुनुहुन्छ?</string>\n    <string name=\"download_notifier_split_page_not_found\">पृष्ठ विभाजन गर्दा %d फेला परेन</string>\n    <string name=\"information_no_manga_category\">वर्ग खाली छ</string>\n    <string name=\"internal_error\">आन्तरिक त्रुटि: थप जानकारीको लागि Crash logs जाँच गर्नुहोस्</string>\n    <string name=\"label_completed_titles\">पढिसकेका इन्ट्रीहरू</string>\n    <string name=\"label_total_chapters\">कुल</string>\n    <string name=\"label_read_chapters\">पढेको</string>\n    <string name=\"download_notifier_cache_renewal\">डाउनलोड्स जाँच गर्दै</string>\n    <string name=\"description_placeholder\">कुनै वर्णन छैन</string>\n    <string name=\"appwidget_unavailable_locked\">एप लक सक्षम हुँदा विजेट उपलब्ध छैन</string>\n    <string name=\"empty_backup_error\">ब्याकअप गर्न कुनै पुस्तकालय इन्ट्रीहरू छैनन्</string>\n    <string name=\"track_error\">%1$s त्रुटि: %2$s</string>\n    <string name=\"cant_open_last_read_chapter\">अन्तिम पढिएको अध्याय खोल्न असमर्थ भयो</string>\n    <string name=\"source_empty_screen\">कुनै स्रोत फेला परेन</string>\n    <string name=\"label_overview_section\">अवलोकन</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"skipped_reason_not_always_update\">श्रृङ्खलालाई अपडेट आवश्यक नपर्ने भएकोले छोडियो</string>\n    <string name=\"information_required_plain\">*आवश्यक</string>\n    <string name=\"remove_manga\">तपाईं आफ्नो पुस्तकालयबाट \\\"%s\\\" हटाउन लाग्दै हुनुहुन्छ</string>\n    <string name=\"error_user_agent_string_blank\">User agent string खाली हुन सक्दैन</string>\n    <string name=\"pref_reset_user_agent_string\">पूर्वनिर्धारित user agent string रिसेट गर्नुहोस्</string>\n    <string name=\"seconds_short\">%dसे</string>\n    <string name=\"minute_short\">%dमि</string>\n    <string name=\"pref_hide_in_library_items\">पहिले नै पुस्तकालयमा रहेका इन्ट्रीहरू लुकाउनुहोस्</string>\n    <string name=\"action_copy_to_clipboard\">क्लिपबोर्डमा प्रतिलिपि गर्नुहोस्</string>\n    <string name=\"pref_invalidate_download_cache\">Reindex डाउनलोड्स</string>\n    <string name=\"pref_user_agent_string\">पूर्वनिर्धारित user agent string</string>\n    <string name=\"error_user_agent_string_invalid\">अवैध user agent string</string>\n    <string name=\"day_short\">%dदि</string>\n    <string name=\"hour_short\">%dघ</string>\n    <string name=\"action_update_category\">वर्ग अपडेट गर्नुहोस्</string>\n    <string name=\"split_tall_images\">अग्लो छविहरू विभाजित गर्नुहोस्</string>\n    <string name=\"overlay_header\">ओभरले</string>\n    <string name=\"pref_page_rotate\">फिट गर्न चौडा पृष्ठहरू घुमाउनुहोस्</string>\n    <string name=\"pref_page_rotate_invert\">घुमाइएका चौडा पृष्ठहरूको अभिमुखीकरण फ्लिप गर्नुहोस्</string>\n    <string name=\"pref_debug_info\">Debug जानकारी</string>\n    <string name=\"pref_chapter_swipe_end\">दायाँतिर स्वाइप गर्ने अध्याय</string>\n    <string name=\"pref_chapter_swipe_start\">बायाँतिर स्वाइप गर्ने अध्याय</string>\n    <string name=\"pref_double_tap_zoom\">जूम गर्न डबल ट्याप गर्नुहोस्</string>\n    <string name=\"action_set_interval\">अन्तराल सेट गर्नुहोस्</string>\n    <string name=\"action_filter_interval_custom\">कस्टम गरिएको अपडेट फ्रिक्वेन्सी</string>\n    <string name=\"manga_display_modified_interval_title\">प्रत्येक अपडेट गर्न सेट गर्नुहोस्</string>\n    <string name=\"skipped_reason_not_in_release_period\">छोडियो किनभने आज कुनै रिलीज अपेक्षित थिएन</string>\n    <string name=\"intervals_header\">अन्तरालहरू</string>\n    <string name=\"action_sort_next_updated\">अर्को अपेक्षित अपडेट</string>\n    <string name=\"pref_update_only_in_release_period\">अपेक्षित रिलीज अवधि बाहिर</string>\n    <string name=\"manga_display_interval_title\">प्रत्येक अनुमान लगाउनुहोस्</string>\n    <string name=\"track_delete_title\">%s ट्र्याकिङ हटाउने हो?</string>\n    <string name=\"track_delete_remote_text\">%s बाट पनि हटाउनुहोस्</string>\n    <string name=\"track_delete_text\">यसले लोकल रूपमा ट्र्याकिङ हटाउनेछ।</string>\n    <string name=\"action_ok\">ठिक छ</string>\n    <string name=\"delete_downloaded\">डाउनलोड गरिएको हटाउनुहोस्</string>\n    <string name=\"has_results\">परिणामहरू भएको</string>\n    <string name=\"library_sync_complete\">पुस्तकालय सिंक सम्पन्न भयो</string>\n    <string name=\"syncing_library\">पुस्तकालय सिंक गर्दै</string>\n    <string name=\"download_cache_invalidated\">डाउनलोड इन्डेक्स अवैध भयो</string>\n    <string name=\"information_cloudflare_help\">Cloudflare सम्बन्धित मद्दतको लागि यहाँ ट्याप गर्नुहोस्</string>\n    <string name=\"track_activity_name\">ट्र्याकर लगइन</string>\n    <string name=\"create_backup_file_error\">ब्याकअप फाइल सिर्जना गर्न असफल भयो</string>\n    <string name=\"exception_offline\">इन्टरनेट जडान छैन</string>\n    <string name=\"exception_unknown_host\">%s मा पुग्न सकिएन</string>\n    <string name=\"exception_http\">HTTP %d, WebView मा वेबसाइट जाँच गर्नुहोस्</string>\n    <string name=\"unlock_app_title\">अनलक %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">श्रृङ्खलालाई तल सार्नुहोस्</string>\n    <string name=\"notification_updating_progress\">पुस्तकालय अपडेट गर्दै... (%s)</string>\n    <string name=\"source_settings\">स्रोत सेटिंग्स</string>\n    <string name=\"app_settings\">एप सेटिंग्स</string>\n    <string name=\"pref_relative_format\">सापेक्ष टाइमस्ट्याम्पहरू</string>\n    <string name=\"pref_relative_format_summary\">\\\"%2$s\\\" को सट्टा \\\"%1$s\\\"</string>\n    <string name=\"relative_time_span_never\">कहिले पनि होइन</string>\n    <string name=\"pref_flash_page_summ\">ई-इंक स्क्रिनहरूमा गोस्टिङ घटाउँछ</string>\n    <string name=\"last_auto_backup_info\">पछिल्लो पटक स्वचालित ब्याकअप गरिएको: %s</string>\n    <string name=\"pref_flash_page\">पृष्ठ बदलिँदा स्क्रिनमा सेतो फ्ल्यास हुन्छ</string>\n    <string name=\"label_data_storage\">डेटा र भण्डारण</string>\n    <string name=\"file_null_uri_error\">फाइल पिकर एपमा फाइल फर्काउन असफल भयो</string>\n    <string name=\"selected\">चयन गरिएको</string>\n    <string name=\"not_selected\">चयन नगरिएको</string>\n    <string name=\"action_sort_tracker_score\">ट्र्याकर मूल्याङ्कन</string>\n    <string name=\"scanlator\">स्क्यानलेटर</string>\n    <string name=\"action_menu_overflow_description\">अरु मेनु</string>\n    <string name=\"onboarding_heading\">स्वागत छ!</string>\n    <string name=\"onboarding_action_next\">अर्को</string>\n    <string name=\"onboarding_action_finish\">सुरु</string>\n    <string name=\"onboarding_action_skip\">छोड</string>\n    <string name=\"onboarding_storage_selection_required\">एउटा फोल्डर चयन गर्नुपर्छ</string>\n    <string name=\"onboarding_storage_help_action\">भण्डारण गाइड</string>\n    <string name=\"onboarding_permission_notifications\">सूचना अनुमति</string>\n    <string name=\"onboarding_permission_action_grant\">प्रदान गर्नुहोस्</string>\n    <string name=\"onboarding_guides_new_user\">%s मा नयाँ हुनुहुन्छ? हामी स्टार्टिङ गाइड जाँच गर्न सिफारिस गर्छौं।</string>\n    <string name=\"theme_nord\">नोर्ड</string>\n    <string name=\"pref_library_update_smart_update\">स्मार्ट अपडेट</string>\n    <string name=\"error_repo_exists\">यो रिपो पहिले नै अवस्थित छ!</string>\n    <string name=\"action_delete_repo\">रिपो हटाउनुहोस्</string>\n    <string name=\"invalid_repo_name\">रिपो URL अवैध छ</string>\n    <string name=\"action_bar_up_description\">माथि नेभिगेट गर्नुहोस्</string>\n    <string name=\"action_revert_to_default\">पूर्वनिर्धारितमा फर्कनुहोस्</string>\n    <string name=\"pref_onboarding_guide\">अनबोर्डिङ गाइड</string>\n    <string name=\"onboarding_description\">पहिले केहि चीजहरू सेट गरौं। तपाईं पछि पनि सेटिंग्समा गएर यसलाई परिवर्तन गर्न सक्नुहुन्छ।</string>\n    <string name=\"onboarding_storage_info\">एउटा फोल्डर चयन गर्नुहोस् जहाँ %1$s ले अध्याय डाउनलोड, ब्याकअप, र थप भण्डारण गर्नेछ।\n\\n\n\\nएक समर्पित फोल्डर सिफारिस गरिएको छ।\n\\n\n\\nचयन गरिएको फोल्डर: %2$s</string>\n    <string name=\"onboarding_storage_action_select\">फोल्डर चयन गर्नुहोस्</string>\n    <string name=\"onboarding_permission_install_apps\">एप स्थापना गर्ने अनुमति</string>\n    <string name=\"onboarding_permission_install_apps_description\">स्रोत एक्सटेन्शन स्थापना गर्न को लागि।</string>\n    <string name=\"onboarding_permission_notifications_description\">पुस्तकालय अपडेट्स र थपका लागि सूचना प्राप्त गर्नुहोस्।</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">लामो समयदेखि चलिरहेको पुस्तकालय अपडेट्स, डाउनलोड्स, र ब्याकअप रिस्टोरमा अवरोधहरू बेवास्ता गर्नुहोस्।</string>\n    <string name=\"onboarding_storage_help_info\">पुरानो संस्करणबाट अपडेट गर्दै र के चयन गर्ने निश्चित छैन? थप जानकारीको लागि भण्डारण गाइड हेर्नुहोस्।</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">ब्याकग्राउण्ड ब्याट्री प्रयोग</string>\n    <string name=\"onboarding_guides_returning_user\">%s पुन: स्थापना गर्दै हुनुहुन्छ?</string>\n    <string name=\"ext_permission_install_apps_warning\">एक्सटेन्शनहरू स्थापना गर्न अनुमति आवश्यक छ। प्रदान गर्न यहाँ ट्याप गर्नुहोस्।</string>\n    <string name=\"ext_revoke_trust\">विश्वसनीय अज्ञात एक्सटेन्शनहरू रद्द गर्नुहोस्</string>\n    <string name=\"information_empty_repos\">तपाईंले कुनै पनि रिपो सेट गर्नु भएको छैन।</string>\n    <string name=\"label_add_repo_input\">रिपो URL</string>\n    <string name=\"label_extension_repos\">एक्सटेन्शन रिपो</string>\n    <string name=\"action_add_repo\">रिपो थप्नुहोस्</string>\n    <string name=\"action_add_repo_message\">%s मा अतिरिक्त रिपो थप्नुहोस्। URL को अन्त्यमा \\\"index.min.json\\\" हुनुपर्छ।</string>\n    <string name=\"action_apply\">अप्लाई</string>\n    <string name=\"delete_repo_confirmation\">के तपाइँ रिपो \\\"%s\\\" हटाउन चाहनुहुन्छ?</string>\n    <string name=\"action_open_repo\">खुला स्रोत रिपो</string>\n    <string name=\"pref_storage_location\">भण्डारण स्थान</string>\n    <string name=\"available_disk_space_info\">उपलब्ध: %1$s / कुल: %2$s</string>\n    <string name=\"manga_interval_expected_update\">नयाँ अध्यायहरू लगभग %1$s मा रिलीज हुने भविष्यवाणी गरिएको छ, हरेक %2$s को वरिपरि जाँच गर्दै।</string>\n    <string name=\"manga_interval_expected_update_soon\">छिटै</string>\n    <string name=\"manga_interval_custom_amount\">कस्टम अपडेट फ्रिक्वेन्सी:</string>\n    <string name=\"exclude_scanlators\">स्क्यानलेटर समावेश नगर्नुहोस्</string>\n    <string name=\"no_scanlators_found\">कुनै स्क्यानलेटर फेला परेन</string>\n    <string name=\"pref_storage_usage\">भण्डारण प्रयोग</string>\n    <string name=\"no_location_set\">कुनै भण्डारण स्थान सेट गरिएको छैन</string>\n    <string name=\"pref_storage_location_info\">स्वचालित ब्याकअप, अध्याय डाउनलोड, र स्थानीय स्रोतको लागि प्रयोग गरिन्छ।</string>\n    <string name=\"action_create\">सिर्जना गर्नुहोस्</string>\n    <string name=\"invalid_backup_file_error\">पूर्ण त्रुटि:</string>\n    <string name=\"private_settings\">संवेदनशील सेटिंग्स समावेश गर्नुहोस् (जस्तै, ट्र्याकर लगइन टोकनहरू)</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">जूम आउट असक्षम गर्नुहोस्</string>\n    <string name=\"action_add_anyway\">जे भए पनि थप्नुहोस्</string>\n    <string name=\"pref_display_profile\">कस्टम प्रदर्शन प्रोफाइल</string>\n    <string name=\"action_replace_repo\">रिप्लेस</string>\n    <string name=\"action_replace_repo_title\">साइन गर्ने की फिंगरप्रिन्ट पहिले नै अवस्थित छ</string>\n    <string name=\"action_replace_repo_message\">रिपो %1$s सँग %2$s जस्तै साइन गर्ने की फिंगरप्रिन्ट छ।\n\\nयदि यो अपेक्षित छ भने, %2$s प्रतिस्थापन गरिनेछ, अन्यथा आफ्नो रिपो प्रबन्धकलाई सम्पर्क गर्नुहोस्।</string>\n    <string name=\"label_upcoming\">आगामी</string>\n    <string name=\"action_view_upcoming\">आगामी अपडेट्स हेर्नुहोस्</string>\n    <string name=\"upcoming_guide\">आगामी गाइड</string>\n    <string name=\"upcoming_calendar_next\">अर्को महिना</string>\n    <string name=\"upcoming_calendar_prev\">अघिल्लो महिना</string>\n    <string name=\"file_picker_uri_permission_unsupported\">लगातार फोल्डर पहुँच प्राप्त गर्न असफल। एपले अप्रत्याशित रूपमा व्यवहार गर्न सक्छ।</string>\n    <string name=\"pref_flash_duration\">फ्ल्यास अवधि</string>\n    <string name=\"pref_flash_style_white\">सेतो</string>\n    <string name=\"pref_flash_style_white_black\">सेतो र कालो</string>\n    <string name=\"pref_flash_with\">सँग फ्ल्यास</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">फ्ल्यास हरेक</string>\n    <string name=\"pref_flash_style_black\">कालो</string>\n    <string name=\"manga_interval_expected_update_null\">यो माङ्गा या त समाप्त भयो, वा त्यहाँ कुनै अनुमानित रिलीज मिति छैन।</string>\n    <string name=\"extensionRepo_settings\">एक्सटेन्शन रिपो</string>\n    <string name=\"invalid_backup_file_json\">JSON ब्याकअप समर्थित छैन</string>\n    <string name=\"invalid_backup_file_unknown\">ब्याकअप फाइल बिग्रिएको छ</string>\n    <string name=\"action_copy_link\">लिङ्क प्रतिलिपि गर्नुहोस्</string>\n    <string name=\"add_repo_confirmation\">के तपाइँ \\\"%s\\\" रिपो थप्न चाहनुहुन्छ?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">पढेका डुप्लिकेट अध्यायहरू डाउनलोड गर्न छोड्नुहोस्</string>\n    <string name=\"confirm_tracker_update\">ट्र्याकरहरूलाई अध्याय %d मा अपडेट गर्ने हो?</string>\n    <string name=\"action_sort_random\">ऱ्याण्डम</string>\n    <string name=\"onboarding_permission_crashlytics\">Crash logs पठाउनुहोस्</string>\n    <string name=\"pref_firebase\">Analytics र Crash logs</string>\n    <string name=\"firebase_summary\">Crash logs र Analytics पठाउँदा हामीलाई समस्याहरू पहिचान र समाधान गर्न, कार्यसम्पादन सुधार गर्न, र भविष्यका अपडेट्समा तपाईंको आवश्यकताहरूसँग थप सान्दर्भिक बनाउन अनुमति दिनेछ</string>\n    <string name=\"onboarding_permission_analytics_description\">अनुप्रयोग सुविधाहरू सुधार गर्न बेनामी उपयोग डेटा पठाउनुहोस्।</string>\n    <string name=\"non_library_settings\">सबै पढेको इन्ट्री</string>\n    <string name=\"onboarding_permission_analytics\">Analytics लाई अनुमति दिनुहोस्</string>\n    <string name=\"pref_security\">सुरक्षा</string>\n    <string name=\"onboarding_permission_crashlytics_description\">विकासकर्ताहरूलाई अज्ञात Crash logs पठाउनुहोस्।</string>\n    <string name=\"ext_remove\">हटाउनुहोस्</string>\n    <string name=\"ext_confirm_remove\">एक्सटेन्शन हटाउने हो?</string>\n    <string name=\"remove_private_extension_message\">के तपाई साँच्चै \\\"%s\\\" एक्सटेन्शन हटाउन चाहनुहुन्छ?</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">पढिएको भनी चिन्ह लगाउँदा प्रगति अपडेट गर्नुहोस्</string>\n    <string name=\"trackers_updated_summary\">ट्र्याकरहरू अध्याय %d मा अपडेट गरियो</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">पूर्वनिर्धारित (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">यदि पाठकले खाली छवि लोड गर्छ भने क्रमशः threshold घटाउनुहोस्।\\nचयन गरिएको: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Custom hardware bitmap threshold</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">कार्यसम्पादनमा असर गर्छ। Bitmap threshold घटाउँदा खाली छवि समस्याहरू समाधान गर्दैन भने मात्र सक्षम गर्नुहोस्</string>\n    <string name=\"pref_incognito_mode_extension_summary\">एक्सटेन्शनमा पढिएको इतिहास रोक्नुहोस्</string>\n    <string name=\"label_auto\">अटो</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">लामो स्ट्रिप रिडरको लागि लिगेसी डिकोडर प्रयोग गर्नुहोस्</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">पढिएको अध्यायको डुप्लिकेटलाई पढिएको रूपमा चिन्ह लगाउनुहोस्</string>\n    <string name=\"theme_monochrome\">मोनोक्रोम</string>\n    <string name=\"action_toggle_private_on\">निजी रूपमा ट्र्याक गर्नुहोस्</string>\n    <string name=\"action_toggle_private_off\">सार्वजनिक रूपमा ट्र्याक गरिएको</string>\n    <string name=\"export\">निर्यात</string>\n    <string name=\"library_list\">पुस्तकालय सूची</string>\n    <string name=\"library_exported\">पुस्तकालय निर्यात गरियो</string>\n    <string name=\"author\">लेखक</string>\n    <string name=\"artist\">कलाकार</string>\n    <string name=\"tracked_privately\">निजी रूपमा ट्र्याक गरियो</string>\n    <string name=\"pref_behavior\">आचरण</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">अध्याय पढे पछि</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">नयाँ अध्याय ल्याएपछि</string>\n    <string name=\"pref_update_library_manga_titles\">स्रोतसँग मिल्ने गरी पुस्तकालयका माङ्गा शीर्षकहरू अपडेट गर्नुहोस्</string>\n    <string name=\"pref_update_library_manga_titles_summary\">चेतावनी: यदि माङ्गाको नाम परिवर्तन गरियो भने, यसलाई डाउनलोड सूचीबाट हटाइनेछ (यदि अवस्थित छ भने)।</string>\n    <string name=\"logging_in\">लग इन गर्दै…</string>\n    <string name=\"action_notes\">नोट</string>\n    <string name=\"action_edit_notes\">नोट सम्पादन गर्नुहोस्</string>\n    <string name=\"action_display_unread_badge\">नपढिएका अध्यायहरू</string>\n    <string name=\"clear_database_history_warning\">पुस्तकालयमा नभएका इन्ट्रीहरूको \\\"तपाईंले पढ्नुभएको अध्यायहरू र प्रगति\\\" हराउनेछ</string>\n    <string name=\"clear_db_exclude_read\">अध्याय पढिएका इन्ट्रीहरू राख्नुहोस्</string>\n    <string name=\"possible_duplicates_title\">सम्भावित डुप्लिकेटहरू</string>\n    <string name=\"notes_placeholder\">त्यो भाग मन पर्यो जहाँ…</string>\n    <string name=\"storage_failed_to_create_directory\">Directory सिर्जना गर्न असफल भयो: %s</string>\n    <string name=\"possible_duplicates_summary\">तपाईंको पुस्तकालयमा उस्तै नामका इन्ट्रीहरू छन्।\\n\\nस्थानान्तरण गर्न वा जे भए पनि थप्नको लागि इन्ट्री चयन गर्नुहोस्।</string>\n    <string name=\"clear_database_text\">तपाईं डाटाबेसबाट इन्ट्रीहरू हटाउन लाग्दै हुनुहुन्छ</string>\n    <string name=\"storage_failed_to_create_download_directory\">डाउनलोड directory सिर्जना गर्न असफल भयो</string>\n    <string name=\"label_donate\">दान</string>\n    <string name=\"theme_catppuccin\">कात्पुचिन</string>\n    <string name=\"pref_display_images_description\">mangaको विवरणहरूमा तस्वीर देखाउनुहोस</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">नभएको अध्यायहरु लुकौनुहोस</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">टिपेको</string>\n    <string name=\"migrationConfigScreen.availableHeader\">उपलब्ध</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">सबै तिप्नुहोस</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">कुनै पनि नतिप्नुहोस</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">सक्षम स्रोतहरू तिप्नुहोस</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">पिन गरिएको स्रोतहरू तिप्नुहोस</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">जारी</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">माइग्रेट गर्नुपर्ने डाटा</string>\n    <string name=\"action_webview_close_tab\">ट्याब बन्द गर्नुहोस्</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">गैर-ASCII फाइल नामहरूलाई अनुमति नदिनुहोस्</string>\n    <string name=\"pref_download_concurrent_sources\">समवर्ती स्रोत डाउनलोडहरू</string>\n    <string name=\"pref_download_concurrent_pages\">समवर्ती पृष्ठ डाउनलोडहरू</string>\n    <string name=\"pref_download_concurrent_pages_summary\">प्रत्येक स्रोतबाट एकैसाथ डाउनलोड गरिने पृष्ठहरूको संख्या</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">स्थानान्तरण पछि हालको इन्ट्रीका डाउनलोडहरू मेटाउनुहोस्</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">थप किवर्डहरू (वैकल्पिक)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">थप किवर्डहरू थपेर खोज परिणामहरूलाई संकुचित गर्न मद्दत गर्दछ</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">मिल्दो परिणाम नभएको इन्ट्रीहरू लुकाउनुहोस्</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">नयाँ अध्याय नभएका इन्ट्रीहरू लुकाउनुहोस्</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">मिल्दो इन्ट्रीमा थप अध्यायहरू भए मात्र इन्ट्री देखाउनुहोस्</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">उन्नत खोज मोड</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">फराकिलो खोजको लागि शीर्षकलाई किवर्डहरूमा विभाजन गर्दछ</string>\n    <string name=\"migrationListScreenTitle\">स्थानान्तरण</string>\n    <string name=\"migrationListScreenTitleWithProgress\">स्थानान्तरण (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">प्रतिलिपि गर्नुहोस्</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">स्थानान्तरण</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">कुनै विकल्प भेटिएन</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">नवीनतम: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">अज्ञात</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">आफै खोज्नुहोस्</string>\n    <string name=\"migrationListScreen.skipActionLabel\">स्थानान्तरण नगर्नुहोस्</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">अहिले स्थानान्तरण गर्नुहोस्</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">अहिले प्रतिलिपि गर्नुहोस्</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">स्थानान्तरण रोक्न चाहनुहुन्छ?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">रोक्नुहोस्</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">रद्द गर्नुहोस्</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">प्रतिलिपि गर्नुहोस्</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">कुनै अध्यायहरू फेला परेनन्, यो इन्ट्री स्थानान्तरणका लागि प्रयोग गर्न सकिँदैन</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/nl/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Na %1$s minuut</item>\n        <item quantity=\"other\">Na %1$s minuten</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Extensie-update beschikbaar</item>\n        <item quantity=\"other\">%d extensie-updates beschikbaar</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Hoofdstukken %1$s en 1 meer</item>\n        <item quantity=\"other\">Hoofdstukken %1$s en %2$d meer</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nieuw hoofdstuk</item>\n        <item quantity=\"other\">%1$d nieuwe hoofdstukken</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Voor %d titel</item>\n        <item quantity=\"other\">Voor %d titels</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s resterend</item>\n        <item quantity=\"other\">%1$s resterende</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Voltooid in %1$s met %2$s foutmelding</item>\n        <item quantity=\"other\">Voltooid in %1$s met %2$s foutmeldingen</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categorie</item>\n        <item quantity=\"other\">%d categorieën</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s hoofdstuk</item>\n        <item quantity=\"other\">%1$s hoofdstukken</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d tracker</item>\n        <item quantity=\"other\">%d trackers</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d hoofdstuk is overgeslagen, de bron mist of het is uitgefilterd</item>\n        <item quantity=\"other\">%d hoofdstukken zijn overgeslagen, de bron mist ze of ze zijn uitgefilterd</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Gisteren</item>\n        <item quantity=\"other\">%1$d dagen geleden</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Volgend ongelezen hoofdstuk</item>\n        <item quantity=\"other\">Volgende %d ongelezen hoofdstukken</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Volgend hoofdstuk</item>\n        <item quantity=\"other\">Volgende %d hoofdstukken</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 dag</item>\n        <item quantity=\"other\">%d dagen</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s hoofdstuk mist</item>\n        <item quantity=\"other\">%1$s hoofdstukken missen</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Morgen</item>\n        <item quantity=\"other\">Over %1$d dagen</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 pagina</item>\n        <item quantity=\"other\">%1$s pagina\\'s</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repo</item>\n        <item quantity=\"other\">%d repo\\'s</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$d item migreren?</item>\n        <item quantity=\"other\">%1$d items migreren?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">%1$d item kopiëren?</item>\n        <item quantity=\"other\">%1$d items kopiëren?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Een item werd overgeslagen</item>\n        <item quantity=\"other\">%1$d items werden overgeslagen</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/nl/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Naam</string>\n    <string name=\"categories\">Categorieën</string>\n    <string name=\"manga\">Bibliotheek</string>\n    <string name=\"chapters\">Hoofdstukken</string>\n    <string name=\"track\">Tracking</string>\n    <string name=\"history\">Geschiedenis</string>\n    <string name=\"label_settings\">Instellingen</string>\n    <string name=\"label_library\">Bibliotheek</string>\n    <string name=\"label_recent_manga\">Geschiedenis</string>\n    <string name=\"label_backup\">Back-up en herstel</string>\n    <string name=\"action_settings\">Instellingen</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_unread\">Ongelezen</string>\n    <string name=\"action_filter_empty\">Verwijder filter</string>\n    <string name=\"action_sort_alpha\">Alfabetisch</string>\n    <string name=\"action_sort_last_read\">Laatst gelezen</string>\n    <string name=\"action_search\">Zoeken</string>\n    <string name=\"action_select_all\">Alles selecteren</string>\n    <string name=\"action_mark_as_read\">Als gelezen markeren</string>\n    <string name=\"action_mark_as_unread\">Als ongelezen markeren</string>\n    <string name=\"action_mark_previous_as_read\">Markeer vorige als gelezen</string>\n    <string name=\"action_download\">Downloaden</string>\n    <string name=\"action_bookmark\">Hoofdstuk toevoegen aan bladwijzers</string>\n    <string name=\"action_remove_bookmark\">Hoofdstuk verwijderen uit bladwijzers</string>\n    <string name=\"action_delete\">Verwijderen</string>\n    <string name=\"action_edit\">Bewerken</string>\n    <string name=\"action_add\">Toevoegen</string>\n    <string name=\"action_add_category\">Categorie toevoegen</string>\n    <string name=\"action_edit_categories\">Categorieën bewerken</string>\n    <string name=\"action_rename_category\">Categorie hernoemen</string>\n    <string name=\"action_move_category\">Zet categorieën</string>\n    <string name=\"action_edit_cover\">Omslag wijzigen</string>\n    <string name=\"action_pause\">Pauzeren</string>\n    <string name=\"action_previous_chapter\">Vorige hoofdstuk</string>\n    <string name=\"action_next_chapter\">Volgende hoofdstuk</string>\n    <string name=\"label_download_queue\">Downloadwachtrij</string>\n    <string name=\"action_update_library\">Bibliotheek bijwerken</string>\n    <string name=\"action_retry\">Opnieuw proberen</string>\n    <string name=\"action_remove\">Verwijderen</string>\n    <string name=\"action_resume\">Hervatten</string>\n    <string name=\"action_open_in_browser\">Openen in browser</string>\n    <string name=\"action_display_mode\">Weergavemodus</string>\n    <string name=\"action_display\">Weergave</string>\n    <string name=\"action_display_grid\">Compact raster</string>\n    <string name=\"action_display_list\">Lijst</string>\n    <string name=\"action_cancel\">Annuleren</string>\n    <string name=\"action_sort\">Sorteren</string>\n    <string name=\"action_install\">Installeren</string>\n    <string name=\"action_share\">Delen</string>\n    <string name=\"action_save\">Opslaan</string>\n    <string name=\"action_reset\">Opnieuw instellen</string>\n    <string name=\"action_undo\">Ongedaan maken</string>\n    <string name=\"action_open_log\">Open log</string>\n    <string name=\"action_restore\">Herstellen</string>\n    <string name=\"loading\">Laden…</string>\n    <string name=\"pref_category_general\">Algemeen</string>\n    <string name=\"pref_category_reader\">Lezer</string>\n    <string name=\"pref_category_downloads\">Downloads</string>\n    <string name=\"pref_category_tracking\">Tracking</string>\n    <string name=\"pref_category_advanced\">Geavanceerd</string>\n    <string name=\"pref_library_columns\">Elementen per rij</string>\n    <string name=\"pref_library_update_interval\">Automatisch bijwerken</string>\n    <string name=\"update_never\">Uit</string>\n    <string name=\"update_6hour\">Iedere 6 uur</string>\n    <string name=\"update_12hour\">Iedere 12 uur</string>\n    <string name=\"update_24hour\">Dagelijks</string>\n    <string name=\"update_48hour\">Iedere 2 dagen</string>\n    <string name=\"update_weekly\">Wekelijks</string>\n    <string name=\"all\">Alles</string>\n    <string name=\"default_category\">Standaard categorie</string>\n    <string name=\"default_category_summary\">Altijd vragen</string>\n    <string name=\"pref_fullscreen\">Volledig scherm</string>\n    <string name=\"pref_page_transitions\">Animeer pagina-overgangen</string>\n    <string name=\"pref_show_page_number\">Toon paginanummer</string>\n    <string name=\"pref_crop_borders\">Randen bijsnijden</string>\n    <string name=\"pref_custom_brightness\">Aangepaste helderheid</string>\n    <string name=\"pref_custom_color_filter\">Aangepast kleurfilter</string>\n    <string name=\"pref_read_with_volume_keys\">Volumeknoppen</string>\n    <string name=\"pref_reader_theme\">Achtergrondkleur</string>\n    <string name=\"white_background\">Wit</string>\n    <string name=\"black_background\">Zwart</string>\n    <string name=\"pref_viewer_type\">Standaard leesmodus</string>\n    <string name=\"left_to_right_viewer\">Links naar rechts</string>\n    <string name=\"right_to_left_viewer\">Rechts naar links</string>\n    <string name=\"vertical_viewer\">Verticaal</string>\n    <string name=\"webtoon_viewer\">Lange strip</string>\n    <string name=\"scale_type_stretch\">Uitrekken</string>\n    <string name=\"scale_type_fit_width\">Breedtevullend</string>\n    <string name=\"scale_type_fit_height\">Hoogtevullend</string>\n    <string name=\"scale_type_original_size\">Oorspronkelijke grootte</string>\n    <string name=\"scale_type_smart_fit\">Intelligent aanpassen</string>\n    <string name=\"zoom_start_automatic\">Automatisch</string>\n    <string name=\"zoom_start_left\">Links</string>\n    <string name=\"zoom_start_right\">Rechts</string>\n    <string name=\"zoom_start_center\">Midden</string>\n    <string name=\"pref_rotation_type\">Standaardoriëntatie</string>\n    <string name=\"rotation_free\">Vrij</string>\n    <string name=\"color_filter_r_value\">Rood</string>\n    <string name=\"color_filter_g_value\">Groen</string>\n    <string name=\"color_filter_b_value\">Blauw</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"last_read_chapter\">Laatst gelezen hoofdstuk</string>\n    <string name=\"second_to_last\">Een-na-laatste gelezen hoofdstuk</string>\n    <string name=\"third_to_last\">Twee-na-laatste gelezen hoofdstuk</string>\n    <string name=\"pref_download_new\">Download nieuwe hoofdstukken</string>\n    <string name=\"services\">Trackers</string>\n    <string name=\"pref_create_backup\">Back-up maken</string>\n    <string name=\"pref_create_backup_summ\">Kan worden gebruikt om de huidige bibliotheek te herstellen</string>\n    <string name=\"pref_restore_backup\">Back-up herstellen</string>\n    <string name=\"pref_restore_backup_summ\">Herstellen van back-up bestand</string>\n    <string name=\"pref_backup_interval\">Frequentie van automatische back-ups</string>\n    <string name=\"backup_created\">Back-up gemaakt</string>\n    <string name=\"restore_completed\">Herstellen voltooid</string>\n    <string name=\"backup_choice\">Wat wil je back-uppen?</string>\n    <string name=\"restoring_backup\">Back-up aan het herstellen</string>\n    <string name=\"creating_backup\">Back-up aan het maken</string>\n    <string name=\"used_cache\">Gebruikt: %1$s</string>\n    <string name=\"pref_clear_cookies\">Verwijder cookies</string>\n    <string name=\"cookies_cleared\">Cookies verwijdered</string>\n    <string name=\"version\">Versie</string>\n    <string name=\"login_title\">Log in op %1$s</string>\n    <string name=\"username\">Gebruikersnaam</string>\n    <string name=\"password\">Wachtwoord</string>\n    <string name=\"login\">Log in</string>\n    <string name=\"unknown_error\">Onbekende fout</string>\n    <string name=\"updating_category\">Categorie bijwerken</string>\n    <string name=\"no_more_results\">Geen verdere resultaten</string>\n    <string name=\"local_source\">Lokale bron</string>\n    <string name=\"unknown\">Onbekend</string>\n    <string name=\"remove_from_library\">Verwijderen uit bibliotheek</string>\n    <string name=\"display_mode_chapter\">Hoofdstuk %1$s</string>\n    <string name=\"chapter_downloading_progress\">Aan het downloaden (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Fout</string>\n    <string name=\"chapter_paused\">Gepauzeerd</string>\n    <string name=\"show_title\">Brontitel</string>\n    <string name=\"show_chapter_number\">Hoofdstuknummer</string>\n    <string name=\"sort_by_source\">Op bron</string>\n    <string name=\"sort_by_number\">Op hoofdstuknummer</string>\n    <string name=\"manga_download\">Downloaden</string>\n    <string name=\"download_unread\">Ongelezen</string>\n    <string name=\"confirm_delete_chapters\">Weet je zeker dat je de geselecteerde hoofdstukken wilt verwijderen?</string>\n    <string name=\"manga_tracking_tab\">Tracking</string>\n    <string name=\"completed\">Voltooid</string>\n    <string name=\"score\">Score</string>\n    <string name=\"title\">Titel</string>\n    <string name=\"status\">Status</string>\n    <string name=\"error_category_exists\">Er bestaat al een categorie met deze naam!</string>\n    <string name=\"snack_categories_deleted\">Categorieën verwijderd</string>\n    <string name=\"dialog_with_checkbox_reset\">Stel alle hoofdstukken voor dit item opnieuw in</string>\n    <string name=\"snack_add_to_library\">Toevoegen aan bibliotheek?</string>\n    <string name=\"picture_saved\">Afbeelding opgeslagen</string>\n    <string name=\"custom_filter\">Aangepast filter</string>\n    <string name=\"set_as_cover\">Instellen als omslagfoto</string>\n    <string name=\"cover_updated\">Omslagfoto bijgewerkt</string>\n    <string name=\"chapter_progress\">Pagina: %1$d</string>\n    <string name=\"no_next_chapter\">Volgend hoofdstuk niet gevonden</string>\n    <string name=\"confirm_set_image_as_cover\">Deze afbeelding als omslagfoto gebruiken?</string>\n    <string name=\"notification_new_chapters\">Nieuwe hoofdstukken gevonden</string>\n    <string name=\"notification_first_add_to_library\">Voeg het item eerst aan je bibliotheek toe voordat je dit doet</string>\n    <string name=\"file_select_cover\">Selecteer omslagfoto</string>\n    <string name=\"file_select_backup\">Selecteer back-upbestand</string>\n    <string name=\"update_check_confirm\">Download</string>\n    <string name=\"update_check_no_new_updates\">Geen nieuwe updates beschikbaar</string>\n    <string name=\"update_check_notification_download_complete\">Download voltooid</string>\n    <string name=\"update_check_notification_update_available\">Nieuwe versie beschikbaar!</string>\n    <string name=\"information_no_downloads\">Geen downloads</string>\n    <string name=\"information_no_recent\">Geen recente updates</string>\n    <string name=\"information_empty_library\">Je bibliotheek is leeg</string>\n    <string name=\"information_empty_category\">Er zijn nog geen categorieën. Druk op de plus-knop om er een aan te maken.</string>\n    <string name=\"download_notifier_downloader_title\">Downloader</string>\n    <string name=\"download_notifier_title_error\">Fout</string>\n    <string name=\"download_notifier_text_only_wifi\">Geen Wi-Fi-verbinding beschikbaar</string>\n    <string name=\"download_notifier_no_network\">Geen netwerkverbinding beschikbaar</string>\n    <string name=\"download_notifier_download_paused\">Download gepauzeerd</string>\n    <string name=\"label_recent_updates\">Updates</string>\n    <string name=\"action_sort_total\">Aantal hoofdstukken</string>\n    <string name=\"app_not_available\">App niet beschikbaar</string>\n    <string name=\"pref_category_about\">Over</string>\n    <string name=\"portrait\">Staand</string>\n    <string name=\"landscape\">Liggend</string>\n    <string name=\"charging\">Aan het opladen</string>\n    <string name=\"pref_reader_navigation\">Navigatie</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Draai volumeknoppen om</string>\n    <string name=\"pref_image_scale_type\">Schaalmodus</string>\n    <string name=\"scale_type_fit_screen\">Aanpassen aan scherm</string>\n    <string name=\"pref_zoom_start\">Zoom startpositie</string>\n    <string name=\"rotation_force_portrait\">Vergrendeld staand</string>\n    <string name=\"rotation_force_landscape\">Vergrendeld liggend</string>\n    <string name=\"pref_remove_after_marked_as_read\">Nadat ze handmatig gemarkeerd zijn als gelezen</string>\n    <string name=\"pref_remove_after_read\">Automatisch verwijderen na het lezen</string>\n    <string name=\"disabled\">Uitgeschakeld</string>\n    <string name=\"fourth_to_last\">Drie-na-laatste gelezen hoofdstuk</string>\n    <string name=\"fifth_to_last\">Vier-na-laatste gelezen hoofdstuk</string>\n    <string name=\"pref_clear_chapter_cache\">Leeg hoofdstukkencache</string>\n    <string name=\"cache_deleted\">Cache geleegd. %1$d bestanden zijn verwijderd</string>\n    <string name=\"cache_delete_error\">Fout opgetreden tijdens het wissen</string>\n    <string name=\"pref_clear_database\">Database leegmaken</string>\n    <string name=\"pref_clear_database_summary\">Verwijder geschiedenis voor items die niet in je bibliotheek zijn opgeslagen</string>\n    <string name=\"pref_enable_acra\">Rapporteer bugs</string>\n    <string name=\"pref_acra_summary\">Helpt bij het oplossen van bugs. Er wordt geen gevoelige data verzonden</string>\n    <string name=\"information_no_recent_manga\">Niks recent gelezen</string>\n    <string name=\"download_notifier_unknown_error\">Kon dit hoofdstuk niet downloaden door een onverwachte fout</string>\n    <string name=\"pref_library_update_restriction\">Toestel beperkingen voor automatisch bijwerken</string>\n    <string name=\"pref_update_only_non_completed\">Gelezen series</string>\n    <string name=\"pref_auto_update_manga_sync\">Voortgang bijwerken na lezen</string>\n    <string name=\"pref_keep_screen_on\">Scherm aanhouden</string>\n    <string name=\"clear_database_completed\">Database geleegd</string>\n    <string name=\"ongoing\">Lopend</string>\n    <string name=\"delete_downloads_for_manga\">Verwijder gedownloade hoofdstukken?</string>\n    <string name=\"reading\">Aan het lezen</string>\n    <string name=\"dropped\">Opgegeven</string>\n    <string name=\"on_hold\">Gepauzeerd</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Dit verwijdert de datum waarop het hoofdstuk is gelezen. Weet je het zeker?</string>\n    <string name=\"decode_image_error\">De afbeelding kon niet worden geladen</string>\n    <string name=\"download_queue_error\">Kon hoofdstukken niet downloaden. Je kan het opnieuw proberen in het downloadscherm</string>\n    <string name=\"notification_cover_update_failed\">Updaten van omslag mislukt</string>\n    <string name=\"update_check_notification_download_in_progress\">Downloaden…</string>\n    <string name=\"update_check_notification_download_error\">Fout bij het downloaden</string>\n    <string name=\"action_filter_bookmarked\">Met bladwijzer</string>\n    <string name=\"login_success\">Ingelogd</string>\n    <string name=\"licensed\">Gelicenseerd</string>\n    <string name=\"plan_to_read\">Van plan te lezen</string>\n    <string name=\"action_global_search\">Globaal zoeken</string>\n    <string name=\"action_display_download_badge\">Gedownloade hoofdstukken</string>\n    <string name=\"other_source\">Anders</string>\n    <string name=\"action_global_search_hint\">Globaal zoeken…</string>\n    <string name=\"latest\">Nieuwste</string>\n    <string name=\"browse\">Bladeren</string>\n    <string name=\"channel_common\">Algemeen</string>\n    <string name=\"label_migration\">Migreren</string>\n    <string name=\"label_extensions\">Extensies</string>\n    <string name=\"label_extension_info\">Informatie over extensie</string>\n    <string name=\"ext_update\">Bijwerken</string>\n    <string name=\"ext_install\">Installeren</string>\n    <string name=\"ext_pending\">Aan het afwachten</string>\n    <string name=\"ext_downloading\">Aan het downloaden</string>\n    <string name=\"ext_installing\">Aan het installeren</string>\n    <string name=\"ext_installed\">Geïnstalleerd</string>\n    <string name=\"ext_trust\">Vertrouwen</string>\n    <string name=\"ext_untrusted\">Niet vertrouwd</string>\n    <string name=\"ext_uninstall\">Verwijderen</string>\n    <string name=\"untrusted_extension\">Niet vertrouwde extensie</string>\n    <string name=\"untrusted_extension_message\">Kwaadaardige extensies kunnen alle opgeslagen inloggegevens uitlezen of arbitraire code uitvoeren. \\n \\nDoor deze extensie te vertrouwen accepteer je deze risico\\'s.</string>\n    <string name=\"pref_double_tap_anim_speed\">Dubbeltik animatiesnelheid</string>\n    <string name=\"pref_read_with_long_tap\">Weergeven bij lang tikken</string>\n    <string name=\"pager_viewer\">Gepagineerd</string>\n    <string name=\"double_tap_anim_speed_0\">Geen animatie</string>\n    <string name=\"double_tap_anim_speed_normal\">Normaal</string>\n    <string name=\"double_tap_anim_speed_fast\">Snel</string>\n    <string name=\"manga_added_library\">Toegevoegd aan bibliotheek</string>\n    <string name=\"manga_removed_library\">Verwijderd uit bibliotheek</string>\n    <string name=\"copied_to_clipboard\">Gekopieerd naar het klembord:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Bron niet geïnstalleerd: %1$s</string>\n    <string name=\"repeating\">Opnieuw aan het lezen</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Soort</string>\n    <string name=\"transition_finished\">Afgerond:</string>\n    <string name=\"transition_current\">Huidige:</string>\n    <string name=\"transition_next\">Volgende:</string>\n    <string name=\"transition_previous\">Vorige:</string>\n    <string name=\"transition_no_next\">Er is geen volgend hoofdstuk</string>\n    <string name=\"transition_no_previous\">Er is geen vorig hoofdstuk</string>\n    <string name=\"transition_pages_loading\">Pagina\\'s aan het laden…</string>\n    <string name=\"transition_pages_error\">Fout bij het laden van pagina\\'s : %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Selecteer data om mee te nemen</string>\n    <string name=\"migrate\">Migreren</string>\n    <string name=\"copy\">Kopiëren</string>\n    <string name=\"action_open_in_web_view\">Openen in WebView</string>\n    <string name=\"pref_skip_read_chapters\">Gelezen hoofdstukken overslaan</string>\n    <string name=\"filter_mode_overlay\">Overlay</string>\n    <string name=\"filter_mode_multiply\">Vermenigvuldigen</string>\n    <string name=\"filter_mode_screen\">Bleken</string>\n    <string name=\"label_help\">Help</string>\n    <string name=\"pref_color_filter_mode\">Mengmodus kleurfilter</string>\n    <string name=\"filter_mode_lighten\">Tegenhouden / Lichter</string>\n    <string name=\"filter_mode_darken\">Doordrukken / Donkerder</string>\n    <string name=\"no_results_found\">Geen resultaten gevonden</string>\n    <string name=\"migration_selection_prompt\">Selecteer een bron om uit te migreren</string>\n    <string name=\"action_webview_back\">Terugkeren</string>\n    <string name=\"action_webview_forward\">Vooruit</string>\n    <string name=\"action_webview_refresh\">Vernieuwen</string>\n    <string name=\"pref_category_library\">Bibliotheek</string>\n    <string name=\"ext_obsolete\">Verouderd</string>\n    <string name=\"obsolete_extension_message\">Deze extensie is niet meer beschikbaar. Mogelijk zal deze niet meer naar behoren functioneren en kan problemen binnen de app veroorzaken. Het wordt aangeraden de extensie te verwijderen.</string>\n    <string name=\"pref_date_format\">Datumformaat</string>\n    <string name=\"pref_category_library_update\">Globaal bijwerken</string>\n    <string name=\"logout_title\">Uitloggen bij %1$s?</string>\n    <string name=\"logout\">Uitloggen</string>\n    <string name=\"logout_success\">U bent nu uitgelogd</string>\n    <string name=\"paused\">Gepauzeerd</string>\n    <string name=\"label_more\">Meer</string>\n    <string name=\"action_sort_latest_chapter\">Laatste hoofdstuk</string>\n    <string name=\"action_view_chapters\">Hoofdstukken bekijken</string>\n    <string name=\"action_cancel_all\">Alles annuleren</string>\n    <string name=\"theme_light\">Uit</string>\n    <string name=\"theme_dark\">Aan</string>\n    <string name=\"theme_system\">Volg systeeminstelling</string>\n    <string name=\"pref_manage_notifications\">Meldingen beheren</string>\n    <string name=\"pref_category_security\">Beveiliging en privacy</string>\n    <string name=\"lock_with_biometrics\">Vereis ontgrendeling</string>\n    <string name=\"lock_when_idle\">Vergrendelen indien niet in gebruik</string>\n    <string name=\"lock_always\">Altijd</string>\n    <string name=\"lock_never\">Nooit</string>\n    <string name=\"secure_screen\">Scherm beveiligen</string>\n    <string name=\"ext_updates_pending\">Updates in de wachtrij</string>\n    <string name=\"information_cloudflare_bypass_failure\">Kon Cloudflare niet omzeilen</string>\n    <string name=\"information_webview_outdated\">Gelieve de WebView-app bij te werken voor betere compatibiliteit</string>\n    <string name=\"channel_new_chapters\">Hoofdstukupdates</string>\n    <string name=\"secure_screen_summary\">Veilig scherm modus verbergt de inhoud van de app bij het wisselen en blokkeert schermafbeeldingen</string>\n    <string name=\"pref_category_display\">Weergave</string>\n    <string name=\"action_move_to_bottom\">Verplaats naar beneden</string>\n    <string name=\"action_oldest\">Oudste</string>\n    <string name=\"action_newest\">Nieuwste</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_pin\">Vastpinnen</string>\n    <string name=\"label_sources\">Bronnen</string>\n    <string name=\"action_select_inverse\">Selectie omkeren</string>\n    <string name=\"restoring_backup_canceled\">Herstellen geannuleerd</string>\n    <string name=\"restoring_backup_error\">Herstellen mislukt</string>\n    <string name=\"restore_in_progress\">Er wordt al een back-up hersteld</string>\n    <string name=\"channel_ext_updates\">Extensie-updates</string>\n    <string name=\"information_webview_required\">WebView is vereist voor Mihon</string>\n    <string name=\"notification_chapters_multiple\">Hoofdstukken %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Hoofdstuk %1$s en %2$d meer</string>\n    <string name=\"notification_chapters_single\">Hoofdstuk %1$s</string>\n    <string name=\"recent_manga_time\">Hfst. %1$s - %2$s</string>\n    <string name=\"updating_library\">Bibliotheek bijwerken</string>\n    <string name=\"add_tracking\">Tracking toevoegen</string>\n    <string name=\"manga_info_collapse\">Minder</string>\n    <string name=\"manga_info_expand\">Meer</string>\n    <string name=\"in_library\">In bibliotheek</string>\n    <string name=\"add_to_library\">Toevoegen aan bibliotheek</string>\n    <string name=\"local_source_help_guide\">Hulp bij lokale bronnen</string>\n    <string name=\"pinned_sources\">Vastgepind</string>\n    <string name=\"last_used_source\">Laatst gebruikt</string>\n    <string name=\"email\">E-mailadres</string>\n    <string name=\"downloaded_only_summary\">Filtert alle items in de bibliotheek</string>\n    <string name=\"label_downloaded_only\">Alleen gedownloade</string>\n    <string name=\"check_for_updates\">Controleer op updates</string>\n    <string name=\"licenses\">Open-sourcelicenties</string>\n    <string name=\"website\">Website</string>\n    <string name=\"battery_optimization_disabled\">Batterijoptimalisatie is al uitgeschakeld</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Helpt bij het bijwerken van bibliotheek en back-ups op de achtergrond</string>\n    <string name=\"pref_disable_battery_optimization\">Batterijoptimalisatie uitzetten</string>\n    <string name=\"creating_backup_error\">Back-up mislukt</string>\n    <string name=\"backup_in_progress\">Er wordt al een back-up gemaakt</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sec</string>\n    <string name=\"pref_category_reading\">Lezen</string>\n    <string name=\"pref_always_show_chapter_transition\">Hoofdstukovergangen altijd weergeven</string>\n    <string name=\"vertical_plus_viewer\">Lange strip met gaten</string>\n    <string name=\"pref_skip_filtered_chapters\">Gefilterde hoofdstukken overslaan</string>\n    <string name=\"pref_cutout_short\">Inhoud in uitgesneden gebied laten zien</string>\n    <string name=\"hide_notification_content\">Meldingsinhoud verbergen</string>\n    <string name=\"action_move_to_top\">Verplaats naar top</string>\n    <string name=\"action_unpin\">Lospinnen</string>\n    <string name=\"viewer\">Leesmodus</string>\n    <string name=\"pref_category_for_this_series\">Voor deze serie</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Kon de apparaatinstellingen niet openen</string>\n    <string name=\"pref_webtoon_side_padding\">Opvulling zijkant</string>\n    <string name=\"gray_background\">Grijs</string>\n    <string name=\"pref_refresh_library_covers\">Omslagen van manga in bibliotheek bijwerken</string>\n    <string name=\"tracking_info\">Eenzijdige synchronisatie om voortang van hoofdstukken bij te werken bij externe trackerdiensten. Stel tracking in bij individuele items via de \\\"Tracking\\\"-knop.</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Controleer bij het bijwerken van de bibliotheek op nieuwe omslag en details</string>\n    <string name=\"loader_not_implemented_error\">Bron niet gevonden</string>\n    <string name=\"page_list_empty_error\">Geen pagina\\'s gevonden</string>\n    <string name=\"sort_by_upload_date\">Op uploaddatum</string>\n    <string name=\"tabs_header\">Tabbladen</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"backup_restore_missing_sources\">Missende bronnen:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Back-up bevat geen items.</string>\n    <string name=\"invalid_backup_file\">Ongeldig back-upbestand:</string>\n    <string name=\"pref_show_reading_mode_summary\">Laat huidige modus kort zien als lezer geopend wordt</string>\n    <string name=\"pref_show_reading_mode\">Toon leesmodus</string>\n    <string name=\"pref_library_update_refresh_metadata\">Metadata automatisch bijwerken</string>\n    <string name=\"action_disable\">Uitzetten</string>\n    <string name=\"action_display_show_tabs\">Toon categorietabbladen</string>\n    <string name=\"action_display_comfortable_grid\">Comfortabel raster</string>\n    <string name=\"action_migrate\">Migreren</string>\n    <string name=\"action_start\">Beginnen</string>\n    <string name=\"action_disable_all\">Alles uitzetten</string>\n    <string name=\"action_enable_all\">Alles aanzetten</string>\n    <string name=\"requires_app_restart\">Herstart van de app nodig om van kracht te worden</string>\n    <string name=\"label_network\">Netwerken</string>\n    <string name=\"tapping_inverted_both\">Beiden</string>\n    <string name=\"tapping_inverted_vertical\">Verticaal</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontaal</string>\n    <string name=\"tapping_inverted_none\">Niet omkeren</string>\n    <string name=\"pref_read_with_tapping_inverted\">Tikken omkeren</string>\n    <string name=\"unknown_status\">Onbekende status</string>\n    <string name=\"unknown_author\">Onbekende auteur</string>\n    <string name=\"download_insufficient_space\">Kon hoofdstukken niet downloaden omdat er te weinig opslagruimte is</string>\n    <string name=\"action_global_search_query\">Overal zoeken naar \\\"%1$s\\\"</string>\n    <string name=\"updated_version\">Bijgewerkt naar v%1$s</string>\n    <string name=\"whats_new\">Wat is er nieuw</string>\n    <string name=\"pref_category_reading_mode\">Leesmodus</string>\n    <string name=\"pref_category_theme\">Thema</string>\n    <string name=\"action_sort_date_added\">Datum toegevoegd</string>\n    <string name=\"no_pinned_sources\">Je hebt geen vastgepinde bronnen</string>\n    <string name=\"channel_complete\">Voltooid</string>\n    <string name=\"channel_progress\">Voortgang</string>\n    <string name=\"channel_errors\">Fouten</string>\n    <string name=\"backup_restore_missing_trackers\">Niet-ingelogde trackers:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Verwijderen van hoofdstukken met bladwijzers toestaan</string>\n    <string name=\"pref_category_delete_chapters\">Hoofdstukken verwijderen</string>\n    <string name=\"ext_nsfw_warning\">Kan NSFW-inhoud (18+) bevatten</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Dit voorkomt niet dat onofficiële of mogelijk incorrect gemarkeerde extensies NSFW-inhoud (18+) kunnen laten zien in de app.</string>\n    <string name=\"no_chapters_error\">Geen hoofdstukken gevonden</string>\n    <string name=\"chapter_settings_updated\">Standaard hoofdstukinstellingen bijgewerkt</string>\n    <string name=\"set_chapter_settings_as_default\">Instellen als standaard</string>\n    <string name=\"also_set_chapter_settings_for_library\">Ook toepassen op alle items in mijn bibliotheek</string>\n    <string name=\"confirm_set_chapter_settings\">Weet je zeker dat je deze instellingen als standaardinstellingen wilt opslaan?</string>\n    <string name=\"chapter_settings\">Hoofdstukinstellingen</string>\n    <string name=\"share_page_info\">%1$s: %2$s, pagina %3$d</string>\n    <string name=\"action_search_settings\">Zoekinstellingen</string>\n    <string name=\"downloaded_chapters\">Gedownloade hoofdstukken</string>\n    <string name=\"manga_from_library\">Uit de bibliotheek</string>\n    <string name=\"pref_incognito_mode_summary\">Pauzeert leesgeschiedenis</string>\n    <string name=\"pref_incognito_mode\">Incognitomodus</string>\n    <string name=\"pref_clear_history\">Geschiedenis wissen</string>\n    <string name=\"clear_history_confirmation\">Weet je dit zeker? Alle geschiedenis zal verloren gaan.</string>\n    <string name=\"clear_history_completed\">Geschiedenis verwijderd</string>\n    <string name=\"spen_next_page\">Volgende pagina</string>\n    <string name=\"spen_previous_page\">Vorige pagina</string>\n    <string name=\"migration_help_guide\">Bronmigratiegids</string>\n    <string name=\"pref_category_nsfw_content\">NSFW-bronnen (18+)</string>\n    <string name=\"file_picker_error\">Geen bestandskiezer-app gevonden</string>\n    <string name=\"myanimelist_relogin\">Log alstublieft opnieuw in op MAL</string>\n    <string name=\"pref_show_nsfw_source\">Weergeven in bronnen- en extensielijst</string>\n    <string name=\"pref_viewer_nav\">Navigatie-indeling</string>\n    <string name=\"edge_nav\">Rand</string>\n    <string name=\"kindlish_nav\">Kindle-achtig</string>\n    <string name=\"l_nav\">L-vormig</string>\n    <string name=\"track_finished_reading_date\">Einddatum</string>\n    <string name=\"track_started_reading_date\">Begindatum</string>\n    <string name=\"pref_dump_crash_logs_summary\">Slaat foutmeldingslogboeken op in een bestand om te delen met de ontwikkelaars</string>\n    <string name=\"pref_dump_crash_logs\">Crashlogboeken opslaan</string>\n    <string name=\"action_desc\">Aflopend</string>\n    <string name=\"action_asc\">Oplopend</string>\n    <string name=\"action_order_by_chapter_number\">Op hoofdstuknummer</string>\n    <string name=\"action_order_by_upload_date\">Op uploaddatum</string>\n    <string name=\"action_display_show_number_of_items\">Aantal items tonen</string>\n    <string name=\"action_filter_tracked\">Getracked</string>\n    <string name=\"right_and_left_nav\">Rechts en links</string>\n    <string name=\"pref_dual_page_split\">Brede pagina\\'s opsplitsen</string>\n    <string name=\"backup_restore_content_full\">Je zal mogelijk missende extensies opnieuw moeten installeren en opnieuw moeten inloggen bij trackingdiensten om deze weer te gebruiken.</string>\n    <string name=\"nav_zone_right\">Rechts</string>\n    <string name=\"nav_zone_left\">Links</string>\n    <string name=\"nav_zone_next\">Volgende</string>\n    <string name=\"nav_zone_prev\">Vorige</string>\n    <string name=\"pref_dual_page_invert_summary\">Als de paginasplitsing in de breedte niet overeenkomt met de leesrichting</string>\n    <string name=\"pref_dual_page_invert\">paginasplitsing omkeren</string>\n    <string name=\"pref_show_navigation_mode_summary\">Laat de tikzones zien als de lezer wordt geopend</string>\n    <string name=\"pref_show_navigation_mode\">Navigatielayout als overlay laten zien</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"pref_download_new_categories_details\">Items in uitgezonderde categorieën worden niet gedownload, zelfs niet als ze onder opgenomen categorieën vallen.</string>\n    <string name=\"pref_category_auto_download\">Automatisch downloaden</string>\n    <string name=\"exclude\">Uitgezonderd: %s</string>\n    <string name=\"include\">Inbegrepen: %s</string>\n    <string name=\"pref_library_update_categories_details\">Items in uitgesloten categorieën worden niet bijgewerkt, zelfs niet als ze onder opgenomen categorieën vallen.</string>\n    <string name=\"action_sort_chapter_fetch_date\">Datum opgehaald</string>\n    <string name=\"none\">Geen</string>\n    <string name=\"action_show_errors\">Klik om details te weergeven</string>\n    <string name=\"update_check_eol\">Deze Android versie wordt niet meer ondersteund</string>\n    <string name=\"clipboard_copy_error\">Mislukt om naar het klemboord te kopiëren</string>\n    <string name=\"notification_incognito_text\">Incognitomodus uitschakelen</string>\n    <string name=\"rotation_landscape\">Liggend</string>\n    <string name=\"rotation_portrait\">Staand</string>\n    <string name=\"rotation_type\">Oriëntatie</string>\n    <string name=\"automatic_background\">Automatisch</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Mappen aanmaken op basis van titel</string>\n    <string name=\"pref_create_folder_per_manga\">Pagina\\'s opslaan in aparte mappen</string>\n    <string name=\"pref_reader_actions\">Acties</string>\n    <string name=\"pref_grayscale\">Grijstinten</string>\n    <string name=\"cancel_all_for_series\">Alles annuleren voor deze serie</string>\n    <string name=\"error_no_match\">Geen overeenkomst gevonden</string>\n    <string name=\"source_unsupported\">Bron wordt niet ondersteund</string>\n    <string name=\"unread\">Ongelezen</string>\n    <string name=\"date\">Datum</string>\n    <string name=\"local_filter_order_by\">Sorteer op</string>\n    <string name=\"chapter_not_found\">Hoofdstuk niet gevonden</string>\n    <string name=\"restrictions\">Beperkingen: %s</string>\n    <string name=\"error_sharing_cover\">Fout bij delen van omslag</string>\n    <string name=\"error_saving_cover\">Fout bij opslaan van omslag</string>\n    <string name=\"cover_saved\">Omslag opgeslagen</string>\n    <string name=\"manga_cover\">Omslag</string>\n    <string name=\"local_invalid_format\">Ongeldig hoofstukkenformaat</string>\n    <string name=\"tracking_guide\">Trackinghandleiding</string>\n    <string name=\"off\">Uit</string>\n    <string name=\"on\">Aan</string>\n    <string name=\"categorized_display_settings\">Instellingen per categorie voor sorteren en weergeven</string>\n    <string name=\"action_display_local_badge\">Lokale bron</string>\n    <string name=\"information_empty_category_dialog\">Er zijn nog geen categorieën.</string>\n    <string name=\"action_start_downloading_now\">Begin nu met downloaden</string>\n    <string name=\"about_dont_kill_my_app\">Sommige fabrikanten hebben extra beperkingen op apps die achtergronddiensten uitschakelen. Informatie over hoe je dit kan oplossen kan je vinden op de deze website.</string>\n    <string name=\"restore_miui_warning\">Backup/herstellen werkt waarschijnlijk niet goed als de MIUI Optimalisatie is uitgeschakeld.</string>\n    <string name=\"pref_dark_theme_pure_black\">Puur-zwarte donkere modus</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Aardbeien Daiquiri</string>\n    <string name=\"theme_midnightdusk\">Nachtschemering</string>\n    <string name=\"theme_greenapple\">Groene Appel</string>\n    <string name=\"pref_app_theme\">Appthema</string>\n    <string name=\"enhanced_tracking_info\">Bieden uitgebreidere functionaliteit voor bepaalde bronnen. Het tracken van items gebeurt automatisch wanneer je deze toevoegt aan je bibliotheek.</string>\n    <string name=\"enhanced_services\">Verbeterde trackers</string>\n    <string name=\"theme_monet\">Dynamisch</string>\n    <string name=\"getting_started_guide\">Gids voor beginners</string>\n    <string name=\"help_translate\">Help met vertalen</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet UI</string>\n    <string name=\"label_background_activity\">Achtergrond activiteit</string>\n    <string name=\"action_track\">Volg</string>\n    <string name=\"pref_remove_exclude_categories\">Uitgesloten categoriën</string>\n    <string name=\"pref_lowest\">Laagste</string>\n    <string name=\"pref_low\">Laag</string>\n    <string name=\"pref_high\">Hoog</string>\n    <string name=\"pref_highest\">Hoogste</string>\n    <string name=\"pref_hide_threshold\">Sensitiviteit voor het verbergen van het menu tijdens scrollen</string>\n    <string name=\"pref_inverted_colors\">Omgekeerd</string>\n    <string name=\"relative_time_today\">Vandaag</string>\n    <string name=\"theme_tealturquoise\">Blauwgroen &amp; Turkoois</string>\n    <string name=\"pref_category_appearance\">Uiterlijk</string>\n    <string name=\"confirm_lock_change\">Authenticeer om de wijziging te bevestigen</string>\n    <string name=\"label_default\">Standaard</string>\n    <string name=\"ext_app_info\">App-informatie</string>\n    <string name=\"ext_install_service_notif\">Extensies installeren…</string>\n    <string name=\"action_display_language_badge\">Taal</string>\n    <string name=\"label_warning\">Waarschuwing</string>\n    <string name=\"ext_installer_legacy\">Verouderd</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku wordt niet uitgevoerd</string>\n    <string name=\"ext_installer_pref\">Installatieprogramma</string>\n    <string name=\"backup_info\">Je zou kopies van back-ups ook in andere plaatsen moeten hebben. Back-ups kunnen gevoelige data zoals opgeslagen wachtwoorden bevatten; let op met delen.</string>\n    <string name=\"connected_to_wifi\">Alleen via Wi-Fi</string>\n    <string name=\"pref_verbose_logging\">Uitgebreide logging</string>\n    <string name=\"notification_size_warning\">Waarschuwing: grote updates beschadigen bronnen en kunnen leiden tot tragere updates en verhoogd batterijgebruik. Tik om meer te leren.</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installeer en start Shizuku om deze als extensie-installatieprogramma te gebruiken.</string>\n    <string name=\"action_sort_count\">Totaal aantal items</string>\n    <string name=\"pref_verbose_logging_summary\">Houd uitgebreide logs bij in de systeemlogs (verslechterd de werking van de app)</string>\n    <string name=\"channel_app_updates\">App updates</string>\n    <string name=\"download_queue_size_warning\">Waarschuwing: grote bulk downloads kunnen leiden tot bronnen die trager werken en/of %s blokkeren. Tik om meer te leren.</string>\n    <string name=\"ext_update_all\">Alles updaten</string>\n    <string name=\"update_72hour\">Iedere 3 dagen</string>\n    <string name=\"library_errors_help\">Voor hulp bij het oplossen van fouten bij het bijwerken van de bibliotheek, zie %1$s</string>\n    <string name=\"database_clean\">Niks om te wissen</string>\n    <string name=\"privacy_policy\">Privacybeleid</string>\n    <string name=\"clear_database_source_item_count\">%1$d items niet in de bibliotheek in database</string>\n    <string name=\"save_chapter_as_cbz\">Opslaan als CBZ archief</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Hoofdstuk cache leegmaken na het sluiten van de app</string>\n    <string name=\"pref_update_only_completely_read\">Heeft ongelezen hoofdstukken</string>\n    <string name=\"extension_api_error\">Lijst met extensies ophalen mislukt</string>\n    <string name=\"publishing_finished\">Uitgave voltooid</string>\n    <string name=\"cancelled\">Geannuleerd</string>\n    <string name=\"on_hiatus\">Gepauzeerd</string>\n    <string name=\"notification_update_error\">%1$d update(s) mislukt</string>\n    <string name=\"learn_more\">Kom meer te weten</string>\n    <string name=\"skipped_reason_not_caught_up\">Overgeslagen want er zijn geen ongelezen hoofdstukken</string>\n    <string name=\"skipped_reason_not_started\">Overgeslagen want er zijn geen gelezen hoofdstukken</string>\n    <string name=\"pref_landscape_zoom\">Zoom liggende afbeelding</string>\n    <string name=\"pref_navigate_pan\">Tik om door brede afbeeldingen te scrollen</string>\n    <string name=\"action_show_manga\">Laat item zien</string>\n    <string name=\"action_display_cover_only_grid\">Alleen-cover rooster</string>\n    <string name=\"rotation_reverse_portrait\">Omgedraaid portret-modus</string>\n    <string name=\"action_move_to_top_all_for_series\">Breng serie naar boven</string>\n    <string name=\"pref_update_only_started\">Geen gelezen hoofdstukken</string>\n    <string name=\"skipped_reason_completed\">Overgeslagen want de serie is af</string>\n    <string name=\"split_tall_images_summary\">Verbetert de prestaties van de lezer</string>\n    <string name=\"complete_list\">Volledige lijst</string>\n    <string name=\"unfinished_list\">Onvoltooide lijst</string>\n    <string name=\"download_ahead\">Download vooruit</string>\n    <string name=\"webview_data_deleted\">WebView-gegevens gewist</string>\n    <string name=\"pref_clear_webview_data\">WebView-gegevens wissen</string>\n    <string name=\"download_notifier_split_page_not_found\">Pagina %d niet gevonden tijdens het splitsen</string>\n    <string name=\"internal_error\">InternalError: Bekijk de crash logs voor meer informatie</string>\n    <string name=\"theme_lavender\">Lavendel</string>\n    <string name=\"action_sort_last_manga_update\">Laatst gecontroleerd op updates</string>\n    <string name=\"action_remove_everything\">Alles verwijderen</string>\n    <string name=\"delete_category_confirmation\">Wenst u categorie \\\"%s\\\" te verwijderen?</string>\n    <string name=\"delete_category\">Categorie verwijderen</string>\n    <string name=\"action_close\">Sluiten</string>\n    <string name=\"theme_tidalwave\">Vloedgolf</string>\n    <string name=\"disabled_nav\">Uitgeschakeld</string>\n    <string name=\"network_not_metered\">Alleen op ongelimiteerd netwerk</string>\n    <string name=\"auto_download_while_reading\">Automatisch downloaden tijdens het lezen</string>\n    <string name=\"ext_info_language\">Taal</string>\n    <string name=\"multi_lang\">Meerdere</string>\n    <string name=\"ext_info_age_rating\">Classificatie per leeftijd</string>\n    <string name=\"ext_info_version\">Versie</string>\n    <string name=\"pref_app_language\">Taal van de applicatie</string>\n    <string name=\"empty_backup_error\">Geen bibliotheek inzendingen om te backuppen</string>\n    <string name=\"action_sort_unread_count\">Ongelezen aantal</string>\n    <string name=\"download_ahead_info\">Werkt alleen als het huidige hoofdstuk en het volgende alreeds gedownload zijn.</string>\n    <string name=\"pref_user_agent_string\">Standaard \\'user-agent-string\\'</string>\n    <string name=\"action_search_hint\">Zoek…</string>\n    <string name=\"missing_storage_permission\">Opslag bevoegdheden niet verleent</string>\n    <string name=\"action_display_show_continue_reading_button\">Knop om lezen te hervatten weergeven</string>\n    <string name=\"label_stats\">Statistieken</string>\n    <string name=\"label_started\">Gestart</string>\n    <string name=\"label_local\">Lokaal</string>\n    <string name=\"label_downloaded\">Gedownload</string>\n    <string name=\"action_not_now\">Niet nu</string>\n    <string name=\"action_open_random_manga\">Willekeurige openen</string>\n    <string name=\"pref_appearance_summary\">Thema, datum- en tijdnotatie</string>\n    <string name=\"pref_library_summary\">Categorieën, globaal bijwerken</string>\n    <string name=\"pref_reader_summary\">Leesmodus, weergave, navigatie</string>\n    <string name=\"pref_downloads_summary\">Automatische downloads, vooraf downloaden</string>\n    <string name=\"pref_browse_summary\">Bronnen, extensies, globaal zoeken</string>\n    <string name=\"pref_backup_summary\">Handmatige &amp; automatische back-ups, opslagruimte</string>\n    <string name=\"pref_security_summary\">App-vergrendeling, schermbeveiliging</string>\n    <string name=\"pref_reset_viewer_flags_success\">Alle leesinstellingen teruggezet naar de standaardwaarden</string>\n    <string name=\"pref_reset_viewer_flags_error\">Kon leesinstellingen niet terugzetten naar standaardwaarden</string>\n    <string name=\"popular\">Populair</string>\n    <string name=\"download_notifier_cache_renewal\">Downloads worden gecontroleerd</string>\n    <string name=\"fdroid_warning\">F-Droid versies worden niet officieel ondersteund.\n\\nTik hier voor meer informatie.</string>\n    <string name=\"pref_skip_dupe_chapters\">Dubbele hoofdstukken overslaan</string>\n    <string name=\"are_you_sure\">Weet je het zeker?</string>\n    <string name=\"reading_list\">Leeslijst</string>\n    <string name=\"description_placeholder\">Geen beschrijving</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Zet de instellingen voor de leesmodus en het draaitype terug naar de standaardwaarden voor alle series</string>\n    <string name=\"error_user_agent_string_invalid\">Ongeldige user agent</string>\n    <string name=\"unknown_title\">Onbekende titel</string>\n    <string name=\"on_hold_list\">Wachtlijst</string>\n    <string name=\"appwidget_unavailable_locked\">Widget niet beschikbaar wanneer app-vergrendeling aan staat</string>\n    <string name=\"enhanced_services_not_installed\">Beschikbaar maar bron niet geïnstalleerd: %s</string>\n    <string name=\"error_user_agent_string_blank\">User agent mag niet leeg zijn</string>\n    <string name=\"pref_reset_viewer_flags\">Leesinstellingen voor alle series terugzetten naar standaardwaarde</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Hercontrole van gedownloade hoofdstukken forceren</string>\n    <string name=\"copied_to_clipboard_plain\">Naar klembord gekopieerd</string>\n    <string name=\"appwidget_updates_description\">Recentelijk bijgewerkte items in de bibliotheek bekijken</string>\n    <string name=\"track_error\">%1$s-fout: %2$s</string>\n    <string name=\"pref_reset_user_agent_string\">User agent terugzetten naar standaardwaarde</string>\n    <string name=\"track_remove_date_conf_title\">Datum verwijderen?</string>\n    <string name=\"wish_list\">Verlanglijst</string>\n    <string name=\"custom_cover\">Aangepaste omslag</string>\n    <string name=\"invalid_location\">Ongeldige locatie: %s</string>\n    <string name=\"pref_advanced_summary\">Crashlogboeken opslaan, batterijoptimalisaties</string>\n    <string name=\"action_update_category\">Categorie bijwerken</string>\n    <string name=\"updates_last_update_info\">Laatste update bibliotheek: %s</string>\n    <string name=\"pref_library_update_show_tab_badge\">Toon aantal ongelezen op updates icon</string>\n    <string name=\"source_filter_empty_screen\">Geen geïnstalleerde bron gevonden</string>\n    <string name=\"not_installed\">Niet geïnstalleerd</string>\n    <string name=\"pref_hide_in_library_items\">Verberg manga die al in de bibliotheek staat</string>\n    <string name=\"update_already_running\">Er is al een update bezig</string>\n    <string name=\"action_copy_to_clipboard\">Kopiëren naar klembord</string>\n    <string name=\"updates_last_update_info_just_now\">Net nu</string>\n    <string name=\"error_saving_picture\">Fout bij opslaan afbeelding</string>\n    <string name=\"empty_screen\">Nou, dit is ongemakkelijk</string>\n    <string name=\"cant_open_last_read_chapter\">Niet mogelijk om het laatst gelezen hoofdstuk te openen</string>\n    <string name=\"source_empty_screen\">Geen bron gevonden</string>\n    <string name=\"crash_screen_title\">Oops!</string>\n    <string name=\"pref_tracking_summary\">1-directie voortgang sync</string>\n    <string name=\"track_remove_start_date_conf_text\">Dit gaat je eerder geselcteerde startdatum %s verwijderen</string>\n    <string name=\"delete_downloaded\">Download verwijderen</string>\n    <string name=\"skipped_reason_not_always_update\">Overgeslagen omdat deze serie geen updates vereist</string>\n    <string name=\"crash_screen_description\">%s is een onverwachte fout tegengekomen. We raden u aan de crashlogboeken te delen in ons ondersteuningskanaal op Discord.</string>\n    <string name=\"pref_debug_info\">Foutopsporingsinformatie</string>\n    <string name=\"label_completed_titles\">Voltooide titels</string>\n    <string name=\"pref_update_only_in_release_period\">Buiten verwachte vrijgave periode</string>\n    <string name=\"action_set_interval\">Interval instellen</string>\n    <string name=\"action_filter_interval_custom\">Aangepast ophaalinterval</string>\n    <string name=\"action_sort_next_updated\">Volgende verwachte update</string>\n    <string name=\"split_tall_images\">Splits hoge afbeeldingen</string>\n    <string name=\"pref_page_rotate_invert\">Draairichting van geroteerde brede pagina\\'s omdraaien</string>\n    <string name=\"pref_double_tap_zoom\">Dubbeltik om te zoomen</string>\n    <string name=\"track_activity_name\">Tracker login</string>\n    <string name=\"syncing_library\">Bibliotheek synchroniseren</string>\n    <string name=\"has_results\">Heeft resultaten</string>\n    <string name=\"track_remove_finish_date_conf_text\">Dit zal jouw eerder geselecteerde einddatum weg halen van %s</string>\n    <string name=\"track_delete_text\">Dit zal de tracking lokaal verwijderen.</string>\n    <string name=\"track_delete_remote_text\">Haal ook weg van %s</string>\n    <string name=\"overlay_header\">Overlay</string>\n    <string name=\"label_overview_section\">Overzicht</string>\n    <string name=\"label_read_duration\">Leesduur</string>\n    <string name=\"manga_display_interval_title\">Schat elke</string>\n    <string name=\"crash_screen_restart_application\">Herstart de applicatie</string>\n    <string name=\"download_cache_invalidated\">Download Index geïnvalideerd</string>\n    <string name=\"pref_invalidate_download_cache\">Herindexeer downloads</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"pref_chapter_swipe_start\">Hoofdstuk bij links vegen</string>\n    <string name=\"intervals_header\">Intervallen</string>\n    <string name=\"track_delete_title\">Haal %s tracking weg?</string>\n    <string name=\"unlock_app_title\">Ontgrendel %s</string>\n    <string name=\"pref_chapter_swipe_end\">Hoofdstuk bij rechts vegen</string>\n    <string name=\"pref_page_rotate\">Roteer brede pagina\\'s zodat ze passen</string>\n    <string name=\"create_backup_file_error\">Kon een backup-bestand niet creëren</string>\n    <string name=\"library_sync_complete\">Bibliotheeksynchronisatie beëindigd</string>\n    <string name=\"label_tracker_section\">Trackers</string>\n    <string name=\"skipped_reason_not_in_release_period\">Overgeslagen omdat geen uitgave is verwacht vandaag</string>\n    <string name=\"information_required_plain\">*vereist</string>\n    <string name=\"label_total_chapters\">Totaal</string>\n    <string name=\"label_read_chapters\">Lees</string>\n    <string name=\"label_tracked_titles\">Gevolgde titels</string>\n    <string name=\"label_mean_score\">Gemiddelde score</string>\n    <string name=\"hour_short\">%du</string>\n    <string name=\"remove_manga\">U staat op het punt om \\\"%s\\\" te verwijderen uit uw bibliotheek</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Kon bestandspad van pagina %d niet vinden</string>\n    <string name=\"label_titles_section\">Titels</string>\n    <string name=\"update_check_open\">Open op GitHub</string>\n    <string name=\"information_no_entries_found\">Geen titels gevonden in deze categorie</string>\n    <string name=\"exception_offline\">Geen internet verbinding</string>\n    <string name=\"exception_unknown_host\">Kon niet %s bereiken</string>\n    <string name=\"label_used\">Gebruikt</string>\n    <string name=\"not_applicable\">N.v.t</string>\n    <string name=\"manga_display_modified_interval_title\">Stel in om te updaten iedere</string>\n    <string name=\"information_cloudflare_help\">Tik hier voor hulp met Cloudflare</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"information_no_manga_category\">Category is leeg</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"exception_http\">HTTP %d, check website in WebView</string>\n    <string name=\"label_titles_in_global_update\">In globale update</string>\n    <string name=\"relative_time_span_never\">Nooit</string>\n    <string name=\"pref_flash_page_summ\">Vermindert ghosting bij e-ink schermen</string>\n    <string name=\"last_auto_backup_info\">Voor het laatst een automatische back-up gemaakt op: %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Breng serie naar beneden</string>\n    <string name=\"pref_flash_page\">Scherm wit flitsen bij het wisselen van pagina\\'s</string>\n    <string name=\"pref_storage_usage\">Opslaggebruik</string>\n    <string name=\"notification_updating_progress\">Bibliotheek bijwerken... (%s)</string>\n    <string name=\"label_data_storage\">Data en opslag</string>\n    <string name=\"file_null_uri_error\">Bestandskiezer gaf geen bestand terug aan de app</string>\n    <string name=\"source_settings\">Bron-instellingen</string>\n    <string name=\"app_settings\">App-instellingen</string>\n    <string name=\"pref_relative_format\">Relatieve tijdstempels</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" in plaats van \\\"%2$s\\\"</string>\n    <string name=\"selected\">Geselecteerd</string>\n    <string name=\"not_selected\">Niet geselecteerd</string>\n    <string name=\"action_menu_overflow_description\">Meer opties</string>\n    <string name=\"action_bar_up_description\">Navigeer omhoog</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"action_apply\">Toepassen</string>\n    <string name=\"action_revert_to_default\">Naar standaard terugkeren</string>\n    <string name=\"pref_onboarding_guide\">Onboarding gids</string>\n    <string name=\"onboarding_heading\">Welkom!</string>\n    <string name=\"action_copy_link\">Link kopiëren</string>\n    <string name=\"ext_revoke_trust\">Vertrouwde onbekende extensies intrekken</string>\n    <string name=\"label_extension_repos\">Extensierepo\\'s</string>\n    <string name=\"pref_flash_style_black\">Zwart</string>\n    <string name=\"action_sort_random\">Willekeurig</string>\n    <string name=\"onboarding_description\">Laten we eerst enkele dingen instellen. Je kunt deze later altijd wijzigen in de instellingen.</string>\n    <string name=\"onboarding_storage_action_select\">Selecteer een map</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Stuur geanonimiseerde crashlogs naar de ontwikkelaars.</string>\n    <string name=\"pref_security\">Beveiliging</string>\n    <string name=\"pref_firebase\">Analytics en crashlogs</string>\n    <string name=\"error_repo_exists\">Deze repo bestaat al!</string>\n    <string name=\"information_empty_repos\">Je hebt geen repo\\'s ingesteld.</string>\n    <string name=\"action_sort_tracker_score\">Tracker score</string>\n    <string name=\"onboarding_action_skip\">Overslaan</string>\n    <string name=\"onboarding_storage_help_action\">Opslaggids</string>\n    <string name=\"onboarding_permission_analytics_description\">Stuur geanonimiseerde gebruiksgegevens om functies van de app te verbeteren.</string>\n    <string name=\"onboarding_permission_crashlytics\">Crashlogs verzenden</string>\n    <string name=\"onboarding_permission_analytics\">Analytics toestaan</string>\n    <string name=\"remove_private_extension_message\">Weet je zeker dat je de extensie \\\"%s\\\" wil verwijderen?</string>\n    <string name=\"onboarding_guides_returning_user\">%s aan het herinstalleren?</string>\n    <string name=\"onboarding_permission_action_grant\">Toestaan</string>\n    <string name=\"onboarding_guides_new_user\">Nieuw bij %s? Wij raden je aan om de opstartgids te lezen.</string>\n    <string name=\"delete_repo_confirmation\">Wens je de repo \\\"%s\\\" te verwijderen?</string>\n    <string name=\"action_open_repo\">Bronrepo openen</string>\n    <string name=\"pref_flash_duration\">Flitsduur</string>\n    <string name=\"ext_remove\">Verwijderen</string>\n    <string name=\"ext_confirm_remove\">Extensie verwijderen?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Downloaden van dubbele eerder gelezen hoofdstukken overslaan</string>\n    <string name=\"action_delete_repo\">Repo verwijderen</string>\n    <string name=\"onboarding_storage_selection_required\">Er moet een map geselecteerd zijn</string>\n    <string name=\"onboarding_storage_help_info\">Aan het updaten van een oudere versie en niet zeker wat te selecteren? Raadpleeg de opslaggids voor meer informatie.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Vermijd onderbrekingen van langlopende bibliotheekupdates, downloads en back-upherstellen.</string>\n    <string name=\"onboarding_permission_install_apps_description\">Om bronextensies te installeren.</string>\n    <string name=\"onboarding_permission_notifications_description\">Ontvang meldingen over bibliotheekupdates en meer.</string>\n    <string name=\"pref_library_update_smart_update\">Slimme update</string>\n    <string name=\"ext_permission_install_apps_warning\">Er zijn rechten nodig om extensies te installeren. Tik hier om deze toe te staan.</string>\n    <string name=\"action_add_repo\">Repo toevoegen</string>\n    <string name=\"label_add_repo_input\">Repo URL</string>\n    <string name=\"action_add_repo_message\">Voeg aanvullende repo\\'s toe aan %s. Dit moet een URL zijn die eindigt op “index.min.json”.</string>\n    <string name=\"invalid_repo_name\">Ongeldige repo URL</string>\n    <string name=\"no_location_set\">Geen opslaglocatie ingesteld</string>\n    <string name=\"action_add_anyway\">Toch toevoegen</string>\n    <string name=\"action_replace_repo\">Vervangen</string>\n    <string name=\"add_repo_confirmation\">Wens je de repo \\\"%s\\\" toe te voegen?</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flits elke</string>\n    <string name=\"pref_flash_with\">Flits met</string>\n    <string name=\"pref_flash_style_white\">Wit</string>\n    <string name=\"pref_flash_style_white_black\">Wit en Zwart</string>\n    <string name=\"onboarding_action_next\">Volgende</string>\n    <string name=\"pref_display_profile\">Aangepast weergaveprofiel</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Uitzoomen uitschakelen</string>\n    <string name=\"extensionRepo_settings\">Extensierepo\\'s</string>\n    <string name=\"non_library_settings\">Alle gelezen items</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"manga_interval_expected_update_null\">Deze manga is voltooid of er is geen voorspelde uitkomstdatum.</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Voortgang bijwerken wanneer gemarkeerd als gelezen</string>\n    <string name=\"trackers_updated_summary\">Trackers bijgewerkt naar hoofdstuk %d</string>\n    <string name=\"upcoming_calendar_next\">Volgende Maand</string>\n    <string name=\"action_create\">Aanmaken</string>\n    <string name=\"label_upcoming\">Toekomstige Updates</string>\n    <string name=\"available_disk_space_info\">Beschikbaar: %1$s / Totaal: %2$s</string>\n    <string name=\"pref_storage_location_info\">Gebruikt voor automatische back-ups, hoofdstukdownloads en als lokale bron.</string>\n    <string name=\"pref_storage_location\">Opslaglocatie</string>\n    <string name=\"invalid_backup_file_error\">Volledige fout:</string>\n    <string name=\"manga_interval_expected_update_soon\">Binnenkort</string>\n    <string name=\"manga_interval_custom_amount\">Aangepaste updatefrequentie:</string>\n    <string name=\"exclude_scanlators\">Scanlators uitsluiten</string>\n    <string name=\"no_scanlators_found\">Geen scanlators gevonden</string>\n    <string name=\"confirm_tracker_update\">Trackers bijwerken naar hoofdstuk %d?</string>\n    <string name=\"action_view_upcoming\">Toekomstige Updates Bekijken</string>\n    <string name=\"upcoming_calendar_prev\">Vorige Maand</string>\n    <string name=\"invalid_backup_file_json\">JSON back-up niet ondersteund</string>\n    <string name=\"invalid_backup_file_unknown\">Back-up bestand is corrupt</string>\n    <string name=\"manga_interval_expected_update\">Nieuwe hoofdstukken zijn geschat om uit te komen in ongeveer %1$s. Word ongeveer elke %2$s gecontroleerd.</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pauseer leesgeschiedenis voor extensie</string>\n    <string name=\"label_auto\">Automatisch</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Na het lezen van een hoofdstuk</string>\n    <string name=\"pref_behavior\">Gedrag</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Na het ophalen van een nieuw hoofdstuk</string>\n    <string name=\"action_notes\">Notities</string>\n    <string name=\"action_edit_notes\">Notities bewerken</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Duplicaat gelezen hoofdstuk als gelezen markeren</string>\n    <string name=\"action_display_unread_badge\">Ongelezen hoofdstukken</string>\n    <string name=\"theme_monochrome\">Monochroom</string>\n    <string name=\"label_donate\">Doneer</string>\n    <string name=\"pref_display_images_description\">Geef afbeeldingen weer in mangabeschrijvingen</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Verberg ontbrekende hoofdstukindicatoren</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Verbied niet-ASCII-bestandsnamen</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Verzekert compatibiliteit met bepaalde opslagmedia die Unicode niet ondersteunen. Wanneer dit is ingeschakeld moet je manueel bron- en mangamappen hernoemen door niet-ASCII-tekens te vervangen met hun UTF-8 hexadecimale representaties in kleine letters. Hoofdstukbestanden moeten niet hernoemd worden.</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Aangepaste hardware bitmapdrempel</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Standaard (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Als de lezer een lege afbeelding laadt, verlaag incrementeel de drempelwaarde.\\nGeselecteerd: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Gebruik verouderde decoder voor lange striplezer</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Beïnvloedt prestaties. Schakel dit alleen in als het verlagen van de bitmapdrempel problemen met lege afbeeldingen niet oplost</string>\n    <string name=\"storage_failed_to_create_download_directory\">Downloadmap kon niet worden aangemaakt</string>\n    <string name=\"storage_failed_to_create_directory\">Map kon niet worden aangemaakt: %s</string>\n    <string name=\"private_settings\">Voeg gevoelige intellingen toe (bijv. logintokens voor trackers)</string>\n    <string name=\"export\">Exporteren</string>\n    <string name=\"library_list\">Bibliotheeklijst</string>\n    <string name=\"library_exported\">Bibliotheek geëxporteerd</string>\n    <string name=\"clear_database_text\">Je staat op het punt om items uit de database te verwijderen</string>\n    <string name=\"clear_database_history_warning\">Gelezen hoofdstukken en voortgang van niet-bibliotheekitems zullen verloren gaan</string>\n    <string name=\"clear_db_exclude_read\">Houd items met gelezen hoofdstukken</string>\n    <string name=\"pref_update_library_manga_titles\">Update mangatitels in bibliotheek om overeen te komen met bron</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Waarschuwing: als een manga hernoemt wordt zal deze worden verwijderd uit de downloadwachtrij (indien aanwezig).</string>\n    <string name=\"logging_in\">Aan het inloggen…</string>\n    <string name=\"author\">Auteur</string>\n    <string name=\"artist\">Tekenaar</string>\n    <string name=\"possible_duplicates_title\">Mogelijke duplicaten</string>\n    <string name=\"possible_duplicates_summary\">Je hebt items in jouw bibliotheek met een gelijkaardige naam.\\n\\nSelecteer een item om te migreren of voeg toch toe.</string>\n    <string name=\"tracked_privately\">Privé getrackt</string>\n    <string name=\"action_toggle_private_on\">Track privé</string>\n    <string name=\"action_toggle_private_off\">Track openbaar</string>\n    <string name=\"notes_placeholder\">Vond het deel leuk waar…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Geselecteerd</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Beschikbaar</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Selecteer alle</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Selecteer geen</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Selecteer ingeschakelde bronnen</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Selecteer vastgepinde bronnen</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Ga door</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Data om te migreren</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Verwijder downloads van huidig item na migratie</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Aanvullende trefwoorden (optioneel)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Helpt bij het verfijnen van zoekresultaten door extra trefwoorden toe te voegen</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Verberg items zonder een match</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Verberg items zonder nieuwere hoofdstukken</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Toon item enkel als de match meer hoofdstukken heeft</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Deze opties zijn traag en gevaarlijk en kunnen leiden tot restricties van bronnen</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Geavanceerde zoekmodus</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Splitst de titel op in trefwoorden voor een breedere zoekopdracht</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Match op basis van hoofdstuknummer</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Indien ingeschakeld wordt de match die het verst vooruit is gekozen. Anders word de eerste match op basis van bronprioriteit gekozen.</string>\n    <string name=\"migrationListScreenTitle\">Migratie</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migratie (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopieer</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migreer</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Geen alternatieven gevonden</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Recentste: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Onbekend</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Zoek manueel</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Niet migreren</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migreer nu</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Kopieer nu</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Stoppen met migreren?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Stop</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Annuleer</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopieer</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migreer</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Annuleer</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Annuleer</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Geen hoofdstukken gevonden. Dit item kan niet worden gebruikt voor migratie</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/nn/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Etter %1$s minutt</item>\n        <item quantity=\"other\">Etter %1$s minuttar</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">I går</item>\n        <item quantity=\"other\">%1$d dagar sidan</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategori</item>\n        <item quantity=\"other\">%d kategoriar</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Gjort på %1$s med %2$s feil</item>\n        <item quantity=\"other\">Gjort på %1$s med %2$s feil</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/nn/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Namn</string>\n    <string name=\"label_more\">Meir</string>\n    <string name=\"label_settings\">Innstillingar</string>\n    <string name=\"label_recent_updates\">Oppdateringar</string>\n    <string name=\"label_help\">Hjelp</string>\n    <string name=\"categories\">Kategoriar</string>\n    <string name=\"manga\">Manga</string>\n    <string name=\"chapters\">Kapittel</string>\n    <string name=\"track\">Sporing</string>\n    <string name=\"history\">Historikk</string>\n    <string name=\"label_default\">Standard</string>\n    <string name=\"label_warning\">Åtvaring</string>\n    <string name=\"confirm_lock_change\">Autentiser for å stadfesta endring</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_bookmarked\">Bokmerket</string>\n    <string name=\"action_filter_tracked\">Sporet</string>\n    <string name=\"action_filter_unread\">Ulesen</string>\n    <string name=\"action_filter_empty\">Fjern filter</string>\n    <string name=\"action_sort_alpha\">Alfabetisk</string>\n    <string name=\"action_sort_latest_chapter\">Siste kapittel</string>\n    <string name=\"action_sort_chapter_fetch_date\">Dato henta</string>\n    <string name=\"action_search\">Søk</string>\n    <string name=\"action_search_settings\">Søkeinnstillingar</string>\n    <string name=\"action_select_all\">Vel alt</string>\n    <string name=\"action_select_inverse\">Vel motsett</string>\n    <string name=\"action_bookmark\">Bokmerk kapittel</string>\n    <string name=\"action_remove_bookmark\">Fjern bokmerke</string>\n    <string name=\"action_delete\">Slett</string>\n    <string name=\"action_update_library\">Oppdater bibliotek</string>\n    <string name=\"action_enable_all\">Aktiver alle</string>\n    <string name=\"action_disable_all\">Deaktiver alle</string>\n    <string name=\"action_edit\">Rediger</string>\n    <string name=\"action_add\">Legg til</string>\n    <string name=\"action_add_category\">Legg til kategori</string>\n    <string name=\"action_edit_categories\">Rediger kategoriar</string>\n    <string name=\"action_edit_cover\">Rediger omslag</string>\n    <string name=\"action_view_chapters\">Vis kapittel</string>\n    <string name=\"action_pause\">Pause</string>\n    <string name=\"action_next_chapter\">Neste kapittel</string>\n    <string name=\"action_retry\">Prøv igjen</string>\n    <string name=\"action_remove\">Fjern</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"action_open_in_browser\">Opne i nettlesar</string>\n    <string name=\"action_show_manga\">Vis manga</string>\n    <string name=\"action_open_in_web_view\">Opne i WebView</string>\n    <string name=\"action_migrate\">Migrer</string>\n    <string name=\"action_display_mode\">Visningsmodus</string>\n    <string name=\"action_display\">Vis</string>\n    <string name=\"action_display_grid\">Kompakt rutenett</string>\n    <string name=\"action_display_comfortable_grid\">Komfortabelt rutenett</string>\n    <string name=\"action_display_local_badge\">Lokal manga</string>\n    <string name=\"action_display_language_badge\">Språk</string>\n    <string name=\"action_display_show_tabs\">Vis kategorifaner</string>\n    <string name=\"action_display_show_number_of_items\">Vis talet på gjenstandar</string>\n    <string name=\"action_cancel\">Avbryt</string>\n    <string name=\"action_cancel_all\">Avbryt alle</string>\n    <string name=\"cancel_all_for_series\">Avbryt alle for denne serien</string>\n    <string name=\"action_sort\">Sorter</string>\n    <string name=\"action_newest\">Nyaste</string>\n    <string name=\"action_oldest\">Eldste</string>\n    <string name=\"action_move_to_top\">Flytt til toppen</string>\n    <string name=\"action_move_to_bottom\">Flytt til botnen</string>\n    <string name=\"action_install\">Installer</string>\n    <string name=\"action_share\">Del</string>\n    <string name=\"action_save\">Lagra</string>\n    <string name=\"action_undo\">Angra</string>\n    <string name=\"action_close\">Lukka</string>\n    <string name=\"action_open_log\">Opne logg</string>\n    <string name=\"action_show_errors\">Trykk for å sjå detaljar</string>\n    <string name=\"action_webview_back\">Tilbake</string>\n    <string name=\"loading\">Lastar…</string>\n    <string name=\"pref_category_general\">Generelt</string>\n    <string name=\"pref_category_appearance\">Utsjånad</string>\n    <string name=\"pref_category_library\">Bibliotek</string>\n    <string name=\"pref_category_reader\">Lesar</string>\n    <string name=\"pref_category_advanced\">Avansert</string>\n    <string name=\"pref_category_about\">Om</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"theme_light\">Av</string>\n    <string name=\"theme_dark\">På</string>\n    <string name=\"theme_monet\">Dynamisk</string>\n    <string name=\"information_no_downloads\">Ingen nedlastingar</string>\n    <string name=\"information_no_recent\">Ingen nylege oppdateringar</string>\n    <string name=\"label_library\">Bibliotek</string>\n    <string name=\"label_sources\">Kjelder</string>\n    <string name=\"action_settings\">Innstillingar</string>\n    <string name=\"action_menu\">Meny</string>\n    <string name=\"action_move_category\">Sett kategoriar</string>\n    <string name=\"action_rename_category\">Gi kategori nytt namn</string>\n    <string name=\"action_previous_chapter\">Førre kapittel</string>\n    <string name=\"action_asc\">Stigande</string>\n    <string name=\"action_desc\">Søkkande</string>\n    <string name=\"action_webview_forward\">Fram</string>\n    <string name=\"action_display_list\">Liste</string>\n    <string name=\"pref_app_theme\">App tema</string>\n    <string name=\"pref_date_format\">Datoformat</string>\n    <string name=\"pref_manage_notifications\">Handter varslingar</string>\n    <string name=\"pref_category_security\">Sikkerheit</string>\n    <string name=\"lock_always\">Alltid</string>\n    <string name=\"lock_never\">Aldri</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) kjeder</string>\n    <string name=\"relative_time_today\">I dag</string>\n    <string name=\"pref_category_display\">Skjerm</string>\n    <string name=\"pref_library_columns\">Element per rad</string>\n    <string name=\"pref_library_update_interval\">Automatisk oppdateringar</string>\n    <string name=\"update_24hour\">Dagleg</string>\n    <string name=\"update_48hour\">Annankvar dag</string>\n    <string name=\"update_weekly\">Kvar veke</string>\n    <string name=\"connected_to_wifi\">Berre på Wi-Fi</string>\n    <string name=\"restrictions\">Avgrensingar: %s</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Sjå etter nye omslag og detaljar ved oppdatering av bibliotek</string>\n    <string name=\"default_category\">Standard kategori</string>\n    <string name=\"default_category_summary\">Alltid spør</string>\n    <string name=\"pref_library_update_categories_details\">Manga i utelatne kategoriar vil ikkje bli oppdatert sjølv om dei òg er i inkluderte kategoriar.</string>\n    <string name=\"all\">Alle</string>\n    <string name=\"none\">Ingen</string>\n    <string name=\"include\">Inkluder: %s</string>\n    <string name=\"exclude\">Utelat: %s</string>\n    <string name=\"ext_update\">Oppdater</string>\n    <string name=\"ext_update_all\">Oppdater alle</string>\n    <string name=\"ext_install\">Installer</string>\n    <string name=\"ext_downloading\">Lastar ned</string>\n    <string name=\"ext_installing\">Installerer</string>\n    <string name=\"ext_installed\">Installert</string>\n    <string name=\"ext_trust\">Tiltru</string>\n    <string name=\"update_72hour\">Kvar tredje dag</string>\n    <string name=\"ext_untrusted\">Ikkje-tiltrudd</string>\n    <string name=\"ext_uninstall\">Avinstaller</string>\n    <string name=\"untrusted_extension\">Ikkje-tiltrudd utvidelse</string>\n    <string name=\"extension_api_error\">Kunne ikkje henta utvidingslista</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_install_service_notif\">Installerer utviding…</string>\n    <string name=\"ext_installer_pref\">Installatør</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku køyrar ikkje</string>\n    <string name=\"pref_show_page_number\">Vis sidetal</string>\n    <string name=\"on\">På</string>\n    <string name=\"off\">Av</string>\n    <string name=\"pref_custom_brightness\">Eigendefinert lysstyrke</string>\n    <string name=\"pref_grayscale\">Gråtonar</string>\n    <string name=\"pref_inverted_colors\">Invertert</string>\n    <string name=\"pref_custom_color_filter\">Eigendefinert fargefilter</string>\n    <string name=\"filter_mode_screen\">Skjerm</string>\n    <string name=\"pref_skip_filtered_chapters\">Hopp over filtrerte kapittel</string>\n    <string name=\"tapping_inverted_none\">Ingen</string>\n    <string name=\"tapping_inverted_horizontal\">Vassrett</string>\n    <string name=\"tapping_inverted_vertical\">Loddrett</string>\n    <string name=\"tapping_inverted_both\">Begge</string>\n    <string name=\"pref_reader_actions\">Handlingar</string>\n    <string name=\"pref_reader_theme\">Bakgrunnsfarge</string>\n    <string name=\"white_background\">Kvit</string>\n    <string name=\"gray_background\">Grå</string>\n    <string name=\"black_background\">Svart</string>\n    <string name=\"automatic_background\">Automatisk</string>\n    <string name=\"l_nav\">L-forma</string>\n    <string name=\"kindlish_nav\">Kindle-ish</string>\n    <string name=\"edge_nav\">Kant</string>\n    <string name=\"right_and_left_nav\">Høgre og Venstre</string>\n    <string name=\"nav_zone_prev\">Førre</string>\n    <string name=\"nav_zone_next\">Neste</string>\n    <string name=\"nav_zone_left\">Venstre</string>\n    <string name=\"nav_zone_right\">Høgre</string>\n    <string name=\"left_to_right_viewer\">Venstre til høgre</string>\n    <string name=\"right_to_left_viewer\">Høgre til venstre</string>\n    <string name=\"vertical_viewer\">Loddrett</string>\n    <string name=\"webtoon_viewer\">Webtoon</string>\n    <string name=\"vertical_plus_viewer\">Kontinuerleg loddrett</string>\n    <string name=\"scale_type_stretch\">Strekk</string>\n    <string name=\"zoom_start_automatic\">Automatisk</string>\n    <string name=\"zoom_start_left\">Venstre</string>\n    <string name=\"zoom_start_right\">Høgre</string>\n    <string name=\"rotation_landscape\">Liggjande</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_highest\">Høgaste</string>\n    <string name=\"pref_high\">Høg</string>\n    <string name=\"pref_low\">Låg</string>\n    <string name=\"pref_lowest\">Lågaste</string>\n    <string name=\"pref_remove_exclude_categories\">Utelatne kategoriar</string>\n    <string name=\"save_chapter_as_cbz\">Lagra som CBZ-arkiv</string>\n    <string name=\"services\">Tenester</string>\n    <string name=\"enhanced_services\">Forbetra tenester</string>\n    <string name=\"enhanced_tracking_info\">Tenester som tilbyr forbetra tenester for spesifikke kjelder. Manga blir spora automatisk når dei blir lagt til i biblioteket ditt.</string>\n    <string name=\"action_track\">Spor</string>\n    <string name=\"pref_create_backup\">Lag reservekopi</string>\n    <string name=\"pref_restore_backup\">Gjenopprett reservekopi</string>\n    <string name=\"backup_created\">Reservekopi oppretta</string>\n    <string name=\"invalid_backup_file\">Ugyldig reservekopifil</string>\n    <string name=\"invalid_backup_file_missing_manga\">Reservekopi inneheld ingen manga.</string>\n    <string name=\"pref_restore_backup_summ\">Gjenopprett bibliotek frå reservekopifil</string>\n    <string name=\"restore_completed\">Gjenoppretting fullført</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"backup_choice\">Kva ønskjer du å ta reservekopi av?</string>\n    <string name=\"creating_backup\">Lagar reservekopi</string>\n    <string name=\"restoring_backup\">Gjenoppretter reservekopi</string>\n    <string name=\"label_network\">Nettverk</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"used_cache\">Brukt: %1$s</string>\n    <string name=\"clear_database_source_item_count\">%1$d ikkje-bibliotek manga i databasen</string>\n    <string name=\"version\">Versjon</string>\n    <string name=\"help_translate\">Hjelp med å omsetje</string>\n    <string name=\"privacy_policy\">Personvernerklæring</string>\n    <string name=\"check_for_updates\">Sjå etter oppdateringar</string>\n    <string name=\"updated_version\">Oppdatert til v%1$s</string>\n    <string name=\"pref_incognito_mode\">Inkognitomodus</string>\n    <string name=\"username\">Brukarnamn</string>\n    <string name=\"email\">E-postadresse</string>\n    <string name=\"password\">Passord</string>\n    <string name=\"unknown_error\">Ukjend feil</string>\n    <string name=\"updating_category\">Oppdaterer kategori</string>\n    <string name=\"manga_from_library\">Manga frå biblioteket</string>\n    <string name=\"tabs_header\">Faner</string>\n    <string name=\"local_source\">Lokal kjelde</string>\n    <string name=\"other_source\">Andre</string>\n    <string name=\"last_used_source\">Sist brukt</string>\n    <string name=\"action_global_search_hint\">Globalt søk…</string>\n    <string name=\"action_global_search_query\">Søk etter «%1$s» globalt</string>\n    <string name=\"browse\">Utforsk</string>\n    <string name=\"unknown\">Ukjend</string>\n    <string name=\"unknown_author\">Ukjend forfattar</string>\n    <string name=\"unknown_status\">Ukjend status</string>\n    <string name=\"cancelled\">Kansellert</string>\n    <string name=\"add_to_library\">Legg til i bibliotek</string>\n    <string name=\"ongoing\">Pågåande</string>\n    <string name=\"manga_tracking_tab\">Sporing</string>\n    <string name=\"download_notifier_unknown_error\">Kunne ikkje lasta ned kapittel grunna uventa feil</string>\n    <string name=\"pref_category_library_update\">Global oppdatering</string>\n    <string name=\"landscape\">Liggjande</string>\n    <string name=\"update_never\">Av</string>\n    <string name=\"update_6hour\">Kvar sjette time</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installer og start Shizuku for å bruka Shizuku som utvidingsinstallatør.</string>\n    <string name=\"update_12hour\">Kvar tolvte time</string>\n    <string name=\"obsolete_extension_message\">Denne utvidinga er ikkje lengre tilgjengeleg.</string>\n    <string name=\"ext_nsfw_warning\">Kan innehalda NSFW (18+) innhald</string>\n    <string name=\"pref_category_delete_chapters\">Slett kapittel</string>\n    <string name=\"pref_download_new_categories_details\">Manga i utelatne kategoriar vil ikkje bli nedlasta sjølv om dei òg er i inkluderte kategoriar.</string>\n    <string name=\"pref_backup_interval\">Reservekopifrekvens</string>\n    <string name=\"restoring_backup_canceled\">Avbroten gjenoppretting</string>\n    <string name=\"backup_restore_missing_sources\">Manglande kjelder:</string>\n    <string name=\"backup_restore_missing_trackers\">Sporingstenester ikkje logga inn i:</string>\n    <string name=\"about_dont_kill_my_app\">Nokre produsentar har ytterlegare appavgrensingar som drep bakgrunnstenester. Denne nettstaden har meir info om korleis det kan fiksast.</string>\n    <string name=\"website\">Nettstaden</string>\n    <string name=\"local_filter_order_by\">Sorter etter</string>\n    <string name=\"date\">Dato</string>\n    <string name=\"publishing_finished\">Ferdig publisert</string>\n    <string name=\"manga_added_library\">Lagt til i biblioteket</string>\n    <string name=\"manga_removed_library\">Fjerna frå bibliotek</string>\n    <string name=\"copied_to_clipboard\">Kopiert til utklippstavla:\n\\n%1$s</string>\n    <string name=\"display_mode_chapter\">Kapittel %1$s</string>\n    <string name=\"chapter_downloading_progress\">Lastar ned (%1$d/%2$d)</string>\n    <string name=\"set_chapter_settings_as_default\">Sett som standard</string>\n    <string name=\"whats_new\">Kva er nytt</string>\n    <string name=\"remove_from_library\">Fjern frå bibliotek</string>\n    <string name=\"manga_info_expand\">Meir</string>\n    <string name=\"snack_add_to_library\">Legg manga til i bibliotek?</string>\n    <string name=\"manga_info_collapse\">Mindre</string>\n    <string name=\"clipboard_copy_error\">Kunne ikkje kopiera til utklippstavla</string>\n    <string name=\"source_not_installed\">Kjelde ikkje installert: %1$s</string>\n    <string name=\"in_library\">I biblioteket</string>\n    <string name=\"chapter_error\">Feil</string>\n    <string name=\"sort_by_source\">Etter kjelde</string>\n    <string name=\"manga_cover\">Omslag</string>\n    <string name=\"manga_download\">Last ned</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/pl/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Po %1$s minucie</item>\n        <item quantity=\"few\">Po %1$s minutach</item>\n        <item quantity=\"many\">Po %1$s minutach</item>\n        <item quantity=\"other\">Po %1$s minutach</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategoria</item>\n        <item quantity=\"few\">%d kategorie</item>\n        <item quantity=\"many\">%d kategorii</item>\n        <item quantity=\"other\">%d kategorii</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Dostępna aktualizacja rozszerzenia</item>\n        <item quantity=\"few\">Dostępne %d aktualizacje rozszerzeń</item>\n        <item quantity=\"many\">Dostępne %d aktualizacji rozszerzeń</item>\n        <item quantity=\"other\">Dostępne %d aktualizacji rozszerzeń</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Rozdziały %1$s i jeden więcej</item>\n        <item quantity=\"few\">Rozdziały %1$s i %2$d</item>\n        <item quantity=\"many\">Rozdziały %1$s i %2$d</item>\n        <item quantity=\"other\">Rozdziały %1$s i %2$d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nowy rozdział</item>\n        <item quantity=\"few\">%1$d nowe rozdziały</item>\n        <item quantity=\"many\">%1$d nowych rozdziałów</item>\n        <item quantity=\"other\">%1$d nowych rozdziałów</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Dla %d wpisu</item>\n        <item quantity=\"few\">Dla %d wpisów</item>\n        <item quantity=\"many\">Dla %d wpisów</item>\n        <item quantity=\"other\">Dla %d wpisów</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">Pozostał %1$s</item>\n        <item quantity=\"few\">Pozostało %1$s</item>\n        <item quantity=\"many\">Pozostało %1$s</item>\n        <item quantity=\"other\">Pozostało %1$s</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Wykonano w %1$s z %2$s błędem</item>\n        <item quantity=\"few\">Wykonano w %1$s z %2$s błędami</item>\n        <item quantity=\"many\">Wykonano w %1$s z %2$s błędami</item>\n        <item quantity=\"other\">Wykonano w %1$s z %2$s błędami</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s rozdział</item>\n        <item quantity=\"few\">%1$s rozdziały</item>\n        <item quantity=\"many\">%1$s rozdziałów</item>\n        <item quantity=\"other\">%1$s rozdziałów</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d brakujący rozdział</item>\n        <item quantity=\"few\">%d brakujące rozdziały</item>\n        <item quantity=\"many\">%d brakujących rozdziałów</item>\n        <item quantity=\"other\">%d brakujących rozdziałów</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">1 serwis śledzący</item>\n        <item quantity=\"few\">%d serwisy śledzące</item>\n        <item quantity=\"many\">%d serwisów śledzących</item>\n        <item quantity=\"other\">%d serwisów śledzących</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Wczoraj</item>\n        <item quantity=\"few\">%1$d dni temu</item>\n        <item quantity=\"many\">%1$d dni temu</item>\n        <item quantity=\"other\">%1$d dni temu</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Następny nieprzeczytany rozdział</item>\n        <item quantity=\"few\">Następne %d nieprzeczytane rozdziały</item>\n        <item quantity=\"many\">Następne %d nieprzeczytanych rozdziałów</item>\n        <item quantity=\"other\">Następne %d nieprzeczytanych rozdziałów</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Następny rozdział</item>\n        <item quantity=\"few\">Następne %d rozdziały</item>\n        <item quantity=\"many\">Następne %d rozdziałów</item>\n        <item quantity=\"other\">Następne %d rozdziałów</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Brakujący %1$s rozdział</item>\n        <item quantity=\"few\">Brakujące %1$s rozdziały</item>\n        <item quantity=\"many\">Brakuje %1$s rozdziałów</item>\n        <item quantity=\"other\">Brakuje %1$s rozdziałów</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 dzień</item>\n        <item quantity=\"few\">%d dni</item>\n        <item quantity=\"many\">%d dni</item>\n        <item quantity=\"other\">%d dni</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repozytorium</item>\n        <item quantity=\"few\">%d repozytoria</item>\n        <item quantity=\"many\">%d repozytoriów</item>\n        <item quantity=\"other\">%d repozytoriów</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Jutro</item>\n        <item quantity=\"few\">Za %1$d dni</item>\n        <item quantity=\"many\">Za %1$d dni</item>\n        <item quantity=\"other\">Za %1$d dni</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 strona</item>\n        <item quantity=\"few\">%1$s strony</item>\n        <item quantity=\"many\">%1$s stron</item>\n        <item quantity=\"other\">%1$s stron</item>\n    </plurals>\n</resources>"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/pl/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"categories\">Kategorie</string>\n    <string name=\"chapters\">Rozdziały</string>\n    <string name=\"name\">Nazwa</string>\n    <string name=\"history\">Historia</string>\n    <string name=\"label_settings\">Ustawienia</string>\n    <string name=\"label_download_queue\">Kolejka pobierania</string>\n    <string name=\"label_recent_manga\">Historia</string>\n    <string name=\"action_settings\">Ustawienia</string>\n    <string name=\"action_filter\">Filtry</string>\n    <string name=\"action_filter_unread\">Nieprzeczytane</string>\n    <string name=\"action_search\">Szukaj</string>\n    <string name=\"action_select_all\">Zaznacz wszystko</string>\n    <string name=\"label_library\">Biblioteka</string>\n    <string name=\"label_recent_updates\">Aktualizacje</string>\n    <string name=\"label_backup\">Kopia zapasowa i przywracanie</string>\n    <string name=\"action_filter_bookmarked\">Zakładki</string>\n    <string name=\"action_filter_empty\">Usuń filtr</string>\n    <string name=\"action_sort_last_read\">Ostatnio czytane</string>\n    <string name=\"action_mark_as_read\">Oznacz jako przeczytane</string>\n    <string name=\"action_mark_as_unread\">Oznacz jako nieprzeczytane</string>\n    <string name=\"action_mark_previous_as_read\">Oznacz poprzednie jako przeczytane</string>\n    <string name=\"action_download\">Pobierz</string>\n    <string name=\"action_bookmark\">Dodaj zakładkę</string>\n    <string name=\"action_remove_bookmark\">Usuń zakładkę</string>\n    <string name=\"action_delete\">Usuń</string>\n    <string name=\"action_update_library\">Aktualizuj bibliotekę</string>\n    <string name=\"action_edit\">Edytuj</string>\n    <string name=\"action_add\">Dodaj</string>\n    <string name=\"action_add_category\">Dodaj kategorię</string>\n    <string name=\"action_edit_categories\">Edytuj kategorie</string>\n    <string name=\"action_rename_category\">Zmień nazwę kategorii</string>\n    <string name=\"action_move_category\">Zmień kategorie</string>\n    <string name=\"action_edit_cover\">Edytuj okładkę</string>\n    <string name=\"action_sort_total\">Ilość rozdziałów</string>\n    <string name=\"action_pause\">Wstrzymaj</string>\n    <string name=\"action_previous_chapter\">Poprzedni rozdział</string>\n    <string name=\"action_next_chapter\">Następny rozdział</string>\n    <string name=\"action_retry\">Spróbuj ponownie</string>\n    <string name=\"action_remove\">Usuń</string>\n    <string name=\"action_resume\">Wznów</string>\n    <string name=\"action_open_in_browser\">Otwórz w przeglądarce</string>\n    <string name=\"action_display_mode\">Tryb wyświetlania</string>\n    <string name=\"action_display\">Widok</string>\n    <string name=\"action_display_grid\">Kompaktowa siatka</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_cancel\">Anuluj</string>\n    <string name=\"action_sort\">Sortuj</string>\n    <string name=\"action_install\">Zainstaluj</string>\n    <string name=\"action_share\">Udostępnij</string>\n    <string name=\"action_save\">Zapisz</string>\n    <string name=\"action_undo\">Cofnij</string>\n    <string name=\"action_restore\">Przywróć</string>\n    <string name=\"loading\">Ładowanie…</string>\n    <string name=\"app_not_available\">Aplikacja niedostępna</string>\n    <string name=\"pref_category_general\">Ogólne</string>\n    <string name=\"pref_category_reader\">Czytnik</string>\n    <string name=\"pref_category_downloads\">Pobieranie</string>\n    <string name=\"pref_category_advanced\">Zaawansowane</string>\n    <string name=\"pref_category_about\">O aplikacji</string>\n    <string name=\"pref_library_columns\">Rozmiar siatki</string>\n    <string name=\"remove_from_library\">Usuń z biblioteki</string>\n    <string name=\"display_mode_chapter\">Rozdział %1$s</string>\n    <string name=\"chapter_error\">Błąd</string>\n    <string name=\"chapter_paused\">Wstrzymane</string>\n    <string name=\"manga_download\">Pobierz</string>\n    <string name=\"download_unread\">Pobierz nieprzeczytane</string>\n    <string name=\"confirm_delete_chapters\">Czy na pewno chcesz usunąć wybrane rozdziały?</string>\n    <string name=\"reading\">Czytane</string>\n    <string name=\"completed\">Ukończone</string>\n    <string name=\"dropped\">Porzucone</string>\n    <string name=\"on_hold\">Wstrzymane</string>\n    <string name=\"plan_to_read\">Planowane</string>\n    <string name=\"score\">Ocena</string>\n    <string name=\"title\">Tytuł</string>\n    <string name=\"error_category_exists\">Kategoria o takiej nazwie już istnieje!</string>\n    <string name=\"picture_saved\">Obraz zapisany</string>\n    <string name=\"set_as_cover\">Ustaw jako okładkę</string>\n    <string name=\"cover_updated\">Okładka zaktualizowana</string>\n    <string name=\"chapter_progress\">Strona: %1$d</string>\n    <string name=\"no_next_chapter\">Nie znaleziono następnego rozdziału</string>\n    <string name=\"notification_new_chapters\">Znaleziono nowe rozdziały</string>\n    <string name=\"file_select_cover\">Wybierz okładkę</string>\n    <string name=\"update_check_confirm\">Pobierz</string>\n    <string name=\"update_check_no_new_updates\">Brak nowych aktualizacji</string>\n    <string name=\"update_check_notification_download_in_progress\">Pobieranie…</string>\n    <string name=\"update_check_notification_download_complete\">Naciśnij, by zaktualizować</string>\n    <string name=\"update_check_notification_download_error\">Błąd pobierania</string>\n    <string name=\"update_check_notification_update_available\">Dostępna nowa wersja!</string>\n    <string name=\"information_empty_library\">Twoja biblioteka jest pusta</string>\n    <string name=\"download_notifier_title_error\">Błąd</string>\n    <string name=\"download_notifier_unknown_error\">Podczas pobierania rozdziału wystąpił nieoczekiwany błąd</string>\n    <string name=\"download_notifier_download_paused\">Wstrzymano pobieranie</string>\n    <string name=\"action_sort_alpha\">Alfabetycznie</string>\n    <string name=\"track\">Śledzenie</string>\n    <string name=\"action_reset\">Reset</string>\n    <string name=\"services\">Usługi śledzenia</string>\n    <string name=\"version\">Wersja</string>\n    <string name=\"login_title\">Logowanie do %1$s</string>\n    <string name=\"username\">Nazwa użytkownika</string>\n    <string name=\"password\">Hasło</string>\n    <string name=\"login\">Zaloguj się</string>\n    <string name=\"unknown_error\">Nieznany błąd</string>\n    <string name=\"updating_category\">Aktualizowanie kategorii</string>\n    <string name=\"no_more_results\">Nie znaleziono więcej wyników</string>\n    <string name=\"action_open_log\">Otwórz log</string>\n    <string name=\"show_title\">Tytuł</string>\n    <string name=\"show_chapter_number\">Numer rozdziału</string>\n    <string name=\"portrait\">Pionowo</string>\n    <string name=\"landscape\">Poziomo</string>\n    <string name=\"pref_library_update_interval\">Automatyczne aktualizacje</string>\n    <string name=\"update_never\">Wyłączone</string>\n    <string name=\"update_6hour\">Co 6 godzin</string>\n    <string name=\"update_12hour\">Co 12 godzin</string>\n    <string name=\"update_24hour\">Co 1 dzień</string>\n    <string name=\"update_48hour\">Co 2 dni</string>\n    <string name=\"update_weekly\">Co tydzień</string>\n    <string name=\"all\">Wszystko</string>\n    <string name=\"pref_library_update_restriction\">Ograniczenia sprzętowe dla automatycznych aktualizacji</string>\n    <string name=\"charging\">Podczas ładowania</string>\n    <string name=\"pref_update_only_non_completed\">Ukończone serie</string>\n    <string name=\"pref_auto_update_manga_sync\">Aktualizuj postęp po przeczytaniu rozdziału</string>\n    <string name=\"default_category\">Domyślna kategoria</string>\n    <string name=\"default_category_summary\">Zawsze pytaj</string>\n    <string name=\"pref_fullscreen\">Pełny ekran</string>\n    <string name=\"pref_page_transitions\">Animacje przejścia stron</string>\n    <string name=\"pref_show_page_number\">Pokazuj numer strony</string>\n    <string name=\"pref_crop_borders\">Przycinaj krawędzie</string>\n    <string name=\"pref_custom_brightness\">Niestandardowa jasność</string>\n    <string name=\"pref_keep_screen_on\">Nie wyłączaj ekranu</string>\n    <string name=\"pref_custom_color_filter\">Niestandardowy filtr kolorów</string>\n    <string name=\"pref_read_with_volume_keys\">Przyciski głośności</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Odwróć przyciski głośności</string>\n    <string name=\"pref_reader_theme\">Kolor tła</string>\n    <string name=\"white_background\">Biały</string>\n    <string name=\"black_background\">Czarny</string>\n    <string name=\"left_to_right_viewer\">Od lewej do prawej</string>\n    <string name=\"right_to_left_viewer\">Od prawej do lewej</string>\n    <string name=\"vertical_viewer\">Pionowy</string>\n    <string name=\"webtoon_viewer\">Długi pasek</string>\n    <string name=\"pref_viewer_type\">Domyślny styl czytania</string>\n    <string name=\"scale_type_fit_screen\">Dopasuj do ekranu</string>\n    <string name=\"scale_type_stretch\">Rozciągnij</string>\n    <string name=\"scale_type_fit_width\">Dopasuj na szerokość</string>\n    <string name=\"scale_type_fit_height\">Dopasuj na wysokość</string>\n    <string name=\"pref_image_scale_type\">Rodzaj powiększenia</string>\n    <string name=\"scale_type_original_size\">Oryginalny rozmiar</string>\n    <string name=\"scale_type_smart_fit\">Inteligentne</string>\n    <string name=\"pref_zoom_start\">Początkowa pozycja przybliżenia</string>\n    <string name=\"zoom_start_automatic\">Automatycznie</string>\n    <string name=\"zoom_start_left\">Od lewej</string>\n    <string name=\"zoom_start_right\">Od prawej</string>\n    <string name=\"zoom_start_center\">Od środka</string>\n    <string name=\"pref_rotation_type\">Domyślna orientacja ekranu</string>\n    <string name=\"rotation_free\">Dowolna</string>\n    <string name=\"rotation_force_portrait\">Wymuś pionowo</string>\n    <string name=\"rotation_force_landscape\">Wymuś poziomo</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">Po ręcznym oznaczeniu jako przeczytane</string>\n    <string name=\"pref_remove_after_read\">Usuwaj rozdziały automatycznie po przeczytaniu</string>\n    <string name=\"disabled\">Wyłączone</string>\n    <string name=\"last_read_chapter\">Ostatnio czytany rozdział</string>\n    <string name=\"second_to_last\">Przedostatnio czytany rozdział</string>\n    <string name=\"third_to_last\">3 rozdziały do tyłu</string>\n    <string name=\"fourth_to_last\">4 rozdziały do tyłu</string>\n    <string name=\"fifth_to_last\">5 rozdziałów do tyłu</string>\n    <string name=\"pref_download_new\">Pobieraj nowe rozdziały</string>\n    <string name=\"manga\">Biblioteka</string>\n    <string name=\"pref_category_tracking\">Śledzenie</string>\n    <string name=\"pref_reader_navigation\">Nawigacja</string>\n    <string name=\"pref_create_backup\">Utwórz kopię zapasową</string>\n    <string name=\"pref_create_backup_summ\">Może być użyta do przywrócenia aktualnej biblioteki</string>\n    <string name=\"pref_restore_backup\">Przywróć kopię zapasową</string>\n    <string name=\"pref_restore_backup_summ\">Przywraca bibliotekę z pliku kopii zapasowej</string>\n    <string name=\"pref_backup_interval\">Częstotliwość tworzenia kopii</string>\n    <string name=\"backup_choice\">Co zawrzeć w kopii zapasowej?</string>\n    <string name=\"restoring_backup\">Przywracanie kopii zapasowej</string>\n    <string name=\"creating_backup\">Tworzenie kopii zapasowej</string>\n    <string name=\"pref_clear_chapter_cache\">Wyczyść cache rozdziałów</string>\n    <string name=\"used_cache\">W użyciu: %1$s</string>\n    <string name=\"cache_deleted\">Wyczyszczono cache, %1$d plików zostało usunięte</string>\n    <string name=\"cache_delete_error\">Podczas czyszczenia wystąpił błąd</string>\n    <string name=\"pref_clear_cookies\">Usuń ciasteczka</string>\n    <string name=\"cookies_cleared\">Ciasteczka usunięte</string>\n    <string name=\"pref_clear_database_summary\">Usuń historię wpisów, których nie ma w twojej bibliotece</string>\n    <string name=\"pref_clear_database\">Wyczyść bazę danych</string>\n    <string name=\"pref_enable_acra\">Wysyłaj raporty o awariach</string>\n    <string name=\"pref_acra_summary\">Pomaga naprawiać błędy. Żadne wrażliwe dane nie będą wysyłane</string>\n    <string name=\"backup_created\">Utworzono kopię zapasową</string>\n    <string name=\"restore_completed\">Przywracanie ukończone</string>\n    <string name=\"clear_database_completed\">Pozycje usunięte</string>\n    <string name=\"login_success\">Zalogowano</string>\n    <string name=\"local_source\">Źródło lokalne</string>\n    <string name=\"ongoing\">Nieukończone</string>\n    <string name=\"unknown\">Nieznany</string>\n    <string name=\"licensed\">Licencjonowane</string>\n    <string name=\"delete_downloads_for_manga\">Usunąć pobrane rozdziały?</string>\n    <string name=\"chapter_downloading_progress\">Pobieranie (%1$d/%2$d)</string>\n    <string name=\"sort_by_source\">Według źródła</string>\n    <string name=\"sort_by_number\">Według numeru rozdziału</string>\n    <string name=\"manga_tracking_tab\">Śledzenie</string>\n    <string name=\"status\">Status</string>\n    <string name=\"snack_categories_deleted\">Usunięto kategorie</string>\n    <string name=\"dialog_with_checkbox_remove_description\">To usunie datę przeczytania tego rozdziału. Na pewno?</string>\n    <string name=\"dialog_with_checkbox_reset\">Resetuj wszystkie rozdziały dla tego wpisu</string>\n    <string name=\"snack_add_to_library\">Dodać do biblioteki?</string>\n    <string name=\"custom_filter\">Filtr niestandardowy</string>\n    <string name=\"decode_image_error\">Nie udało się wczytać obrazka</string>\n    <string name=\"confirm_set_image_as_cover\">Ustawić ten obrazek jako okładkę?</string>\n    <string name=\"download_queue_error\">Nie udało się pobrać rozdziałów. Możesz spróbować ponownie w sekcji pobierania</string>\n    <string name=\"notification_cover_update_failed\">Nie udało się zaktualizować okładki</string>\n    <string name=\"notification_first_add_to_library\">Zanim to zrobisz, dodaj ten wpis do biblioteki</string>\n    <string name=\"file_select_backup\">Wybierz plik kopii zapasowej</string>\n    <string name=\"information_no_downloads\">Brak pobieranych rozdziałów</string>\n    <string name=\"information_no_recent\">Brak ostatnio zaktualizowanych</string>\n    <string name=\"information_no_recent_manga\">Nic ostatnio nie czytano</string>\n    <string name=\"download_notifier_downloader_title\">Pobieranie</string>\n    <string name=\"download_notifier_text_only_wifi\">Brak połączenia Wi-Fi</string>\n    <string name=\"download_notifier_no_network\">Brak połączenia z internetem</string>\n    <string name=\"action_global_search\">Wyszukiwanie globalne</string>\n    <string name=\"other_source\">Inne</string>\n    <string name=\"action_global_search_hint\">Wyszukiwanie globalne…</string>\n    <string name=\"browse\">Przeglądaj</string>\n    <string name=\"channel_common\">Zwykły</string>\n    <string name=\"latest\">Najnowsze</string>\n    <string name=\"action_display_download_badge\">Pobrane rozdziały</string>\n    <string name=\"information_empty_category\">Nie masz żadnych kategorii. Dotknij plusa, aby je utworzyć i zorganizować swoją bibliotekę.</string>\n    <string name=\"label_extensions\">Rozszerzenia</string>\n    <string name=\"ext_install\">Zainstaluj</string>\n    <string name=\"ext_pending\">Oczekujące</string>\n    <string name=\"ext_downloading\">Pobieranie</string>\n    <string name=\"ext_installing\">Instalowanie</string>\n    <string name=\"ext_installed\">Zainstalowano</string>\n    <string name=\"ext_uninstall\">Odinstaluj</string>\n    <string name=\"pref_double_tap_anim_speed\">Szybkość animacji podwójnego dotknięcia</string>\n    <string name=\"double_tap_anim_speed_0\">Bez animacji</string>\n    <string name=\"double_tap_anim_speed_normal\">Normalna</string>\n    <string name=\"double_tap_anim_speed_fast\">Szybka</string>\n    <string name=\"manga_added_library\">Dodano do biblioteki</string>\n    <string name=\"manga_removed_library\">Usunięto z biblioteki</string>\n    <string name=\"label_migration\">Migracja</string>\n    <string name=\"copied_to_clipboard\">Skopiowano do schowka:\n\\n %1$s</string>\n    <string name=\"copy\">Kopiuj</string>\n    <string name=\"label_extension_info\">Szczegóły rozszerzenia</string>\n    <string name=\"ext_update\">Aktualizuj</string>\n    <string name=\"ext_trust\">Ufaj</string>\n    <string name=\"ext_untrusted\">Niezaufane</string>\n    <string name=\"untrusted_extension\">Niezaufane rozszerzenie</string>\n    <string name=\"untrusted_extension_message\">To rozszerzenie było podpisane niezaufanym certyfikatem i nie zostało aktywowane.\n\\n\n\\nZłośliwe rozszerzenie może odczytać dane logowania albo uruchomić złośliwy kod.\n\\n\n\\nUfając temu rozszerzeniu akceptujesz to zagrożenie.</string>\n    <string name=\"migration_dialog_what_to_include\">Zaznacz dane do zawarcia</string>\n    <string name=\"migrate\">Migruj</string>\n    <string name=\"pager_viewer\">Widok stron</string>\n    <string name=\"source_not_installed\">Nie zainstalowano źródła: %1$s</string>\n    <string name=\"repeating\">Czytane ponownie</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Typ</string>\n    <string name=\"transition_finished\">Przeczytany:</string>\n    <string name=\"transition_current\">Obecny:</string>\n    <string name=\"transition_next\">Następny:</string>\n    <string name=\"transition_previous\">Poprzedni:</string>\n    <string name=\"transition_no_next\">Brak następnego rozdziału</string>\n    <string name=\"transition_no_previous\">Nie ma wcześniejszych rozdziałów</string>\n    <string name=\"transition_pages_loading\">Ładowanie stron…</string>\n    <string name=\"transition_pages_error\">Nie udało się załadować stron: %1$s</string>\n    <string name=\"action_open_in_web_view\">Otwórz używając WebView</string>\n    <string name=\"pref_skip_read_chapters\">Pomiń rozdziały ozn. jako przeczytane</string>\n    <string name=\"pref_read_with_long_tap\">Pokaż akcje po przytrzymaniu</string>\n    <string name=\"pref_color_filter_mode\">Tryb mieszania kolorów</string>\n    <string name=\"filter_mode_overlay\">Nakładka</string>\n    <string name=\"filter_mode_multiply\">Pomnożenie</string>\n    <string name=\"filter_mode_lighten\">Rozjaśnienie</string>\n    <string name=\"filter_mode_darken\">Ściemnienie</string>\n    <string name=\"label_help\">Pomoc</string>\n    <string name=\"action_webview_back\">Wstecz</string>\n    <string name=\"filter_mode_screen\">Ekran</string>\n    <string name=\"no_results_found\">Nie znaleziono wyników</string>\n    <string name=\"migration_selection_prompt\">Wybierz źródło, z którego chcesz migrować</string>\n    <string name=\"action_webview_forward\">Dalej</string>\n    <string name=\"action_webview_refresh\">Odśwież</string>\n    <string name=\"pref_category_library\">Biblioteka</string>\n    <string name=\"ext_obsolete\">Przestarzałe</string>\n    <string name=\"obsolete_extension_message\">To rozszerzenie nie jest już dostępne i może nie funkcjonować prawidłowo, powodując problemy z aplikacją. Zalecamy odinstalowanie go.</string>\n    <string name=\"pref_date_format\">Format daty</string>\n    <string name=\"pref_category_library_update\">Globalna aktualizacja</string>\n    <string name=\"logout_title\">Wylogować z %1$s?</string>\n    <string name=\"logout\">Wyloguj</string>\n    <string name=\"logout_success\">Wylogowano</string>\n    <string name=\"paused\">Wstrzymane</string>\n    <string name=\"pref_always_show_chapter_transition\">Zawsze pokazuj przejścia rozdziałów</string>\n    <string name=\"vertical_plus_viewer\">Pionowo z przerwami</string>\n    <string name=\"pref_skip_filtered_chapters\">Pomijaj odfiltrowane rozdziały</string>\n    <string name=\"pref_category_display\">Wyświetlanie</string>\n    <string name=\"hide_notification_content\">Ukryj zawartość powiadomienia</string>\n    <string name=\"lock_when_idle\">Zablokuj podczas bezczynności</string>\n    <string name=\"channel_new_chapters\">Aktualizacje rozdziałów</string>\n    <string name=\"information_webview_outdated\">Zaktualizuj aplikację WebView dla lepszej kompatybilności</string>\n    <string name=\"information_cloudflare_bypass_failure\">Nie udało się obejść Cloudflare</string>\n    <string name=\"label_more\">Więcej</string>\n    <string name=\"secure_screen_summary\">Ukrywa zawartość ekranu przy przełączaniu między aplikacjami i blokuj zrzuty ekranu</string>\n    <string name=\"lock_never\">Nigdy</string>\n    <string name=\"lock_always\">Zawsze</string>\n    <string name=\"lock_with_biometrics\">Wymagaj odblokowania</string>\n    <string name=\"pref_category_security\">Bezpieczeństwo i prywatność</string>\n    <string name=\"pref_manage_notifications\">Zarządzaj powiadomieniami</string>\n    <string name=\"theme_system\">Systemowy</string>\n    <string name=\"theme_dark\">Ciemny</string>\n    <string name=\"theme_light\">Jasny</string>\n    <string name=\"action_move_to_bottom\">Przenieś na dół</string>\n    <string name=\"action_move_to_top\">Przenieś na górę</string>\n    <string name=\"action_oldest\">Najstarsze</string>\n    <string name=\"action_newest\">Najnowsze</string>\n    <string name=\"action_cancel_all\">Anuluj wszystko</string>\n    <string name=\"action_select_inverse\">Odwróć zaznaczenie</string>\n    <string name=\"action_sort_latest_chapter\">Ostatni rozdział</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"label_sources\">Źródła</string>\n    <string name=\"notification_chapters_single\">Rozdział %1$s</string>\n    <string name=\"updating_library\">Aktualizowanie biblioteki</string>\n    <string name=\"pref_category_for_this_series\">Dla tej serii</string>\n    <string name=\"manga_info_collapse\">Mniej</string>\n    <string name=\"add_to_library\">Dodaj do biblioteki</string>\n    <string name=\"email\">Adres e-mail</string>\n    <string name=\"downloaded_only_summary\">Filtruje wszystkie pozycje w twojej bibliotece</string>\n    <string name=\"label_downloaded_only\">Tylko pobrane</string>\n    <string name=\"check_for_updates\">Sprawdź aktualizacje</string>\n    <string name=\"licenses\">Licencje open source</string>\n    <string name=\"website\">Strona WWW</string>\n    <string name=\"battery_optimization_disabled\">Oszczędzanie baterii jest już wyłączone</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Pomaga z aktualizacjami biblioteki i backupami w tle</string>\n    <string name=\"pref_disable_battery_optimization\">Wyłącz oszczędzanie baterii</string>\n    <string name=\"restoring_backup_canceled\">Anulowano przywracanie</string>\n    <string name=\"restore_in_progress\">Kopia zapasowa jest w trakcie przywracania</string>\n    <string name=\"backup_in_progress\">Kopia zapasowa jest już w trakcie tworzenia</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d s</string>\n    <string name=\"pref_webtoon_side_padding\">Marginesy boczne</string>\n    <string name=\"gray_background\">Szary</string>\n    <string name=\"ext_updates_pending\">Dostępne aktualizacje</string>\n    <string name=\"secure_screen\">Ukryj ekran</string>\n    <string name=\"action_unpin\">Odepnij</string>\n    <string name=\"action_pin\">Przypnij</string>\n    <string name=\"manga_info_expand\">Więcej</string>\n    <string name=\"recent_manga_time\">Rozdz. %1$s - %2$s</string>\n    <string name=\"in_library\">W bibliotece</string>\n    <string name=\"pinned_sources\">Przypięte</string>\n    <string name=\"last_used_source\">Ostatnio używane</string>\n    <string name=\"tracking_info\">Przesyłanie postępu czytania do zewnętrznego serwisu. Ustaw śledzenie guzikiem \\\"Śledzenie\\\" w wybranych tytułach.</string>\n    <string name=\"channel_ext_updates\">Aktualizacje rozszerzeń</string>\n    <string name=\"information_webview_required\">WebView jest wymagany do poprawnego działania aplikacji</string>\n    <string name=\"notification_chapters_multiple\">Rozdziały %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Rozdział %1$s i %2$d więcej</string>\n    <string name=\"viewer\">Tryb czytania</string>\n    <string name=\"local_source_help_guide\">Źródła lokalne - poradnik</string>\n    <string name=\"pref_cutout_short\">Pokazuj zawartość w strefie odcięcia</string>\n    <string name=\"action_view_chapters\">Przeglądaj rozdziały</string>\n    <string name=\"add_tracking\">Dodaj śledzenie</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Niepowodzenie otwarcia ustawień urządzenia</string>\n    <string name=\"pref_refresh_library_covers\">Odśwież okładki w bibliotece</string>\n    <string name=\"restoring_backup_error\">Przywracanie kopii zapasowej zakończone niepowodzeniem</string>\n    <string name=\"creating_backup_error\">Tworzenie kopii zapasowej zakończone niepowodzeniem</string>\n    <string name=\"pref_category_reading\">Czytane</string>\n    <string name=\"sort_by_upload_date\">Po dacie dodania</string>\n    <string name=\"label_data\">Dane</string>\n    <string name=\"backup_restore_missing_sources\">Brakujące źródła:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Kopia zapasowa nie zawiera żadnych wpisów.</string>\n    <string name=\"invalid_backup_file\">Nieprawidłowy plik kopii zapasowej:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Sprawdź, czy są nowe okładki i opisy podczas aktualizowania biblioteki</string>\n    <string name=\"pref_library_update_refresh_metadata\">Automatycznie odświeżaj metadane</string>\n    <string name=\"action_display_comfortable_grid\">Wygodna siatka</string>\n    <string name=\"action_migrate\">Migracja</string>\n    <string name=\"page_list_empty_error\">Nie znaleziono żadnych stron</string>\n    <string name=\"tabs_header\">Karty</string>\n    <string name=\"action_display_show_tabs\">Pokaż karty kategorii</string>\n    <string name=\"action_disable_all\">Wyłącz wszystkie</string>\n    <string name=\"action_enable_all\">Włącz wszystkie</string>\n    <string name=\"pref_show_reading_mode_summary\">Po otwarciu aplikacji pokaż aktualny tryb czytania</string>\n    <string name=\"pref_show_reading_mode\">Tryb czytania</string>\n    <string name=\"loader_not_implemented_error\">Nie znaleziono źródła</string>\n    <string name=\"action_disable\">Wyłącz</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"requires_app_restart\">Wymaga ponownego uruchomienia aplikacji</string>\n    <string name=\"label_network\">Sieć</string>\n    <string name=\"tapping_inverted_both\">Obydwa</string>\n    <string name=\"tapping_inverted_vertical\">Wertykalnie</string>\n    <string name=\"tapping_inverted_horizontal\">Horyzontalnie</string>\n    <string name=\"tapping_inverted_none\">Brak</string>\n    <string name=\"pref_read_with_tapping_inverted\">Odwróć strefy kliknięcia</string>\n    <string name=\"download_insufficient_space\">Nie udało się pobrać rozdziałów z powodu braku miejsca na urządzeniu</string>\n    <string name=\"unknown_status\">Nieznany status</string>\n    <string name=\"unknown_author\">Nieznany autor</string>\n    <string name=\"action_global_search_query\">Szukaj \\\"%1$s\\\" globalnie</string>\n    <string name=\"updated_version\">Zaktualizowano do v%1$s</string>\n    <string name=\"whats_new\">Co nowego</string>\n    <string name=\"pref_category_reading_mode\">Tryb czytania</string>\n    <string name=\"pref_category_theme\">Motyw</string>\n    <string name=\"action_sort_date_added\">Po dacie dodania</string>\n    <string name=\"action_search_settings\">Ustawienia szukania</string>\n    <string name=\"spen_next_page\">Następna strona</string>\n    <string name=\"spen_previous_page\">Poprzednia strona</string>\n    <string name=\"channel_errors\">Błędy</string>\n    <string name=\"channel_complete\">Ukończone</string>\n    <string name=\"channel_progress\">Postęp</string>\n    <string name=\"chapter_settings_updated\">Zaktualizowano domyślne ustawienia rozdziałów</string>\n    <string name=\"migration_help_guide\">Instrukcja przenoszenia źródeł</string>\n    <string name=\"share_page_info\">%1$s: %2$s, strona %3$d</string>\n    <string name=\"no_chapters_error\">Nie znaleziono rozdziałów</string>\n    <string name=\"set_chapter_settings_as_default\">Ustaw jako domyślne</string>\n    <string name=\"also_set_chapter_settings_for_library\">Dodatkowo zastosuj do wszystkich wpisów w mojej bibliotece</string>\n    <string name=\"confirm_set_chapter_settings\">Jesteś pewien, że chcesz zapisać te ustawienia jako domyślne?</string>\n    <string name=\"chapter_settings\">Ustawienia rozdziałów</string>\n    <string name=\"no_pinned_sources\">Nie masz podpiętych źródeł</string>\n    <string name=\"downloaded_chapters\">Pobrane rozdziały</string>\n    <string name=\"manga_from_library\">Z biblioteki</string>\n    <string name=\"pref_incognito_mode_summary\">Wstrzymuje zapisywanie do historii czytania</string>\n    <string name=\"pref_incognito_mode\">Tryb incognito</string>\n    <string name=\"pref_clear_history\">Wyczyść historię</string>\n    <string name=\"clear_history_confirmation\">Jesteś pewien? CAŁA historia zostanie usunięta.</string>\n    <string name=\"clear_history_completed\">Historia usunięta</string>\n    <string name=\"backup_restore_missing_trackers\">Serwisy, do których nie zalogowono:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Usuwaj rozdziały dodane do zakładek</string>\n    <string name=\"pref_category_delete_chapters\">Usuń rozdziały</string>\n    <string name=\"ext_nsfw_warning\">Źródła z tej wtyczki mogą zawierać treści NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Nie zapobiega to nieoficjalnym lub potencjalnie niepoprawnie oflagowanym rozszerzeniom przed pokazywaniem zwartości NSFW(18+) w aplikacji.</string>\n    <string name=\"pref_category_nsfw_content\">NFSW Materiały 18+</string>\n    <string name=\"file_picker_error\">Nie znaleziono aplikacji do przeglądania plików</string>\n    <string name=\"myanimelist_relogin\">Wymagane ponowne zalogowanie do MAL</string>\n    <string name=\"pref_show_nsfw_source\">Pokazuj na liście źródeł i rozszerzeń</string>\n    <string name=\"track_finished_reading_date\">Data zakończenia</string>\n    <string name=\"track_started_reading_date\">Data rozpoczęcia</string>\n    <string name=\"pref_dump_crash_logs_summary\">Zapisuje logi błędów do pliku do udostępnienia programistom</string>\n    <string name=\"pref_dump_crash_logs\">Udostępnij logi crasha</string>\n    <string name=\"pref_viewer_nav\">Strefy kliknięcia</string>\n    <string name=\"edge_nav\">Przy krawędzi</string>\n    <string name=\"kindlish_nav\">Podobnie jak w czytniku Kindle</string>\n    <string name=\"l_nav\">W kształcie litery \\\"L\\\"</string>\n    <string name=\"action_desc\">Malejąco</string>\n    <string name=\"action_asc\">Rosnąco</string>\n    <string name=\"action_order_by_chapter_number\">Według numeru rozdziału</string>\n    <string name=\"action_order_by_upload_date\">Po dacie dodania</string>\n    <string name=\"action_filter_tracked\">Śledzone</string>\n    <string name=\"action_display_show_number_of_items\">Pokaż liczbę elementów</string>\n    <string name=\"right_and_left_nav\">Prawa i Lewa</string>\n    <string name=\"pref_dual_page_invert_summary\">Jeśli układ w podziale podwójnych stron nie pasuje do kierunku czytania</string>\n    <string name=\"pref_dual_page_invert\">Odwróć układ w podziale podwójnych stron</string>\n    <string name=\"pref_dual_page_split\">Podział podwójnych stron</string>\n    <string name=\"pref_dns_over_https\">DNS przez HTTPS (DoH)</string>\n    <string name=\"backup_restore_content_full\">Dane z pliku kopii zapasowej zostaną przywrócone.\n\\n\n\\nBędziesz musiał zainstalować brakujące rozszerzenia i zalogować się do usług śledzących, aby móc z nich korzystać.</string>\n    <string name=\"nav_zone_right\">Prawo</string>\n    <string name=\"nav_zone_left\">Lewo</string>\n    <string name=\"nav_zone_next\">Następne</string>\n    <string name=\"nav_zone_prev\">Poprzednie</string>\n    <string name=\"pref_show_navigation_mode_summary\">Krótko pokazuj, kiedy czytnik zostaje otwarty</string>\n    <string name=\"pref_show_navigation_mode\">Pokazuj nakładkę stref kliknięcia</string>\n    <string name=\"exclude\">Wyklucz: %s</string>\n    <string name=\"include\">Uwzględnij: %s</string>\n    <string name=\"none\">Brak</string>\n    <string name=\"update_check_eol\">Ta wersja Androida nie jest już wspierana</string>\n    <string name=\"clipboard_copy_error\">Nie udało się skopiować do schowka</string>\n    <string name=\"pref_library_update_categories_details\">Tytuły w wykluczonych kategoriach nie będą aktualizowane, nawet jeśli są również w uwzględnionych kategoriach.</string>\n    <string name=\"pref_download_new_categories_details\">Tytuły w wykluczonych kategoriach nie będą pobierane, nawet jeśli są również w uwzględnionych kategoriach.</string>\n    <string name=\"pref_category_auto_download\">Automatyczne pobieranie</string>\n    <string name=\"rotation_landscape\">Poziomo</string>\n    <string name=\"rotation_portrait\">Pionowo</string>\n    <string name=\"action_show_errors\">Kliknij aby wyświetlić szczegóły</string>\n    <string name=\"notification_incognito_text\">Wyłącz tryb incognito</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data pobrania rozdziału</string>\n    <string name=\"error_no_match\">Nie znaleziono pasującego wyniku</string>\n    <string name=\"source_unsupported\">Źródło nie jest wspierane</string>\n    <string name=\"unread\">Nieprzeczytane</string>\n    <string name=\"rotation_type\">Orientacja ekranu</string>\n    <string name=\"automatic_background\">Automatycznie</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Utwórz foldery względem tytułu</string>\n    <string name=\"pref_create_folder_per_manga\">Zapisz strony do osobnych folderów</string>\n    <string name=\"pref_reader_actions\">Akcje</string>\n    <string name=\"pref_grayscale\">Odcienie szarości</string>\n    <string name=\"cancel_all_for_series\">Anuluj wszystko dla tego tytułu</string>\n    <string name=\"date\">Data</string>\n    <string name=\"local_filter_order_by\">Sortowanie</string>\n    <string name=\"local_invalid_format\">Błędny format rozdziału</string>\n    <string name=\"chapter_not_found\">Nie znaleziono rozdziału</string>\n    <string name=\"error_sharing_cover\">Błąd przy udostępnianiu okładki</string>\n    <string name=\"error_saving_cover\">Błąd przy zapisie okładki</string>\n    <string name=\"cover_saved\">Okładka zapisana</string>\n    <string name=\"manga_cover\">Okładka</string>\n    <string name=\"tracking_guide\">Przewodnik śledzenia postępu</string>\n    <string name=\"off\">Wyłączone</string>\n    <string name=\"on\">Włączone</string>\n    <string name=\"categorized_display_settings\">Ustawienia sortowania dla każdej kategorii</string>\n    <string name=\"action_display_local_badge\">Lokalne źródło</string>\n    <string name=\"information_empty_category_dialog\">Nie masz jeszcze żadnych kategorii.</string>\n    <string name=\"restrictions\">Ograniczenia: %s</string>\n    <string name=\"about_dont_kill_my_app\">Niektórzy producenci mają dodatkowe ograniczenia, które zabijają usługi działające w tle. Ta strona zawiera więcej informacji na ten temat.</string>\n    <string name=\"action_start_downloading_now\">Zacznij pobierać teraz</string>\n    <string name=\"theme_greenapple\">Zielone jabłko</string>\n    <string name=\"theme_monet\">Dynamiczny</string>\n    <string name=\"pref_app_theme\">Motyw aplikacji</string>\n    <string name=\"restore_miui_warning\">Funkcje kopii zapasowej mogą nie działać, jeśli optymalizacja nakładki MIUI jest wyłączona.</string>\n    <string name=\"theme_yotsuba\">Yotsuba •</string>\n    <string name=\"theme_yinyang\">Yin i Yang</string>\n    <string name=\"pref_dark_theme_pure_black\">Czysty czarny motyw</string>\n    <string name=\"theme_strawberrydaiquiri\">Truskawkowe daiquiri</string>\n    <string name=\"pref_hide_threshold\">Czułość ukrywania dolnego paska podczas przewijania</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"label_background_activity\">Aktywność w tle</string>\n    <string name=\"action_track\">Śledź</string>\n    <string name=\"pref_category_appearance\">Wygląd</string>\n    <string name=\"confirm_lock_change\">Autoryzuj, aby potwierdzić zmianę</string>\n    <string name=\"label_default\">Domyślny</string>\n    <string name=\"getting_started_guide\">Wprowadzenie - poradnik</string>\n    <string name=\"help_translate\">Pomóż tłumaczyć</string>\n    <string name=\"pref_tablet_ui_mode\">Wymuś UI dla tabletu</string>\n    <string name=\"pref_remove_exclude_categories\">Wykluczone kategorie</string>\n    <string name=\"pref_lowest\">Najniższe</string>\n    <string name=\"pref_low\">Niskie</string>\n    <string name=\"pref_high\">Wysokie</string>\n    <string name=\"pref_highest\">Najwyższy</string>\n    <string name=\"pref_inverted_colors\">Odwrócone</string>\n    <string name=\"ext_app_info\">Informacje o aplikacji</string>\n    <string name=\"relative_time_today\">Dzisiaj</string>\n    <string name=\"theme_tealturquoise\">Błękitny &amp; Turkusowy</string>\n    <string name=\"theme_midnightdusk\">Zmierzch północy</string>\n    <string name=\"notification_size_warning\">Ostrzeżenie: duże aktualizacje biblioteki mogą prowadzić do zwiększonego zużycia baterii oraz spowolnienia działania źródeł. Kliknij, by dowiedzieć się więcej.</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Zainstaluj i uruchom Shizuku, aby używać go jako instalatora rozszerzeń.</string>\n    <string name=\"ext_installer_pref\">Instalator</string>\n    <string name=\"pref_verbose_logging\">Szczegółowe logi</string>\n    <string name=\"ext_install_service_notif\">Instalowanie rozszerzenia…</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku nie jest aktywne</string>\n    <string name=\"pref_verbose_logging_summary\">Zapisuje szczegółowe logi w logu systemu (obniża wydajność aplikacji)</string>\n    <string name=\"backup_info\">Radzimy przechowywać kopie również w innych miejscach.</string>\n    <string name=\"action_sort_count\">Ilość wejść</string>\n    <string name=\"action_display_language_badge\">Język</string>\n    <string name=\"label_warning\">Ostrzeżenie</string>\n    <string name=\"download_queue_size_warning\">Ostrzeżenie: Duże aktualizacje biblioteki mogą prowadzić do zwiększonego zużycia baterii oraz spowolnienia działania źródeł.</string>\n    <string name=\"update_72hour\">Co 3 dni</string>\n    <string name=\"connected_to_wifi\">Tylko przez Wi-Fi</string>\n    <string name=\"enhanced_tracking_info\">Usługi dostarczania ulepszonych funkcji dla niektórych źródeł. Mangi po dodaniu do biblioteki są automatycznie śledzone.</string>\n    <string name=\"enhanced_services\">Ulepszone usługi śledzenia</string>\n    <string name=\"channel_app_updates\">Aktualizacje aplikacji</string>\n    <string name=\"ext_update_all\">Zaktualizuj wszystko</string>\n    <string name=\"ext_installer_legacy\">Przestarzały</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Wyczyść cache rozdziałów przy uruchamianiu aplikacji</string>\n    <string name=\"extension_api_error\">Nie można uzyskać listy rozszerzeń</string>\n    <string name=\"publishing_finished\">Opublikowane w całości</string>\n    <string name=\"database_clean\">Nie ma nic do wyczyszczynia</string>\n    <string name=\"cancelled\">Anulowane</string>\n    <string name=\"on_hiatus\">Przerwa wydawnicza</string>\n    <string name=\"library_errors_help\">Aby uzyskać pomoc z błędami aktualizacji biblioteki, zobacz %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Zapisz jako archiwum CBZ</string>\n    <string name=\"privacy_policy\">Polityka prywatności</string>\n    <string name=\"clear_database_source_item_count\">%1$d wpisów spoza biblioteki w bazie danych</string>\n    <string name=\"pref_update_only_completely_read\">Posiada nieprzeczytane rozdziały</string>\n    <string name=\"pref_update_only_started\">Brak przeczytanych rozdziałów</string>\n    <string name=\"pref_landscape_zoom\">Automatycznie przybliżaj poziome obrazy</string>\n    <string name=\"action_show_manga\">Pokaż</string>\n    <string name=\"pref_navigate_pan\">Przesuń szeroki obraz</string>\n    <string name=\"action_display_cover_only_grid\">Siatka z samych okładek</string>\n    <string name=\"skipped_reason_not_started\">Pominięto, ponieważ brak przeczytanych rozdziałów</string>\n    <string name=\"skipped_reason_completed\">Pominięto, ponieważ seria została ukończona</string>\n    <string name=\"skipped_reason_not_caught_up\">Pominięto, ponieważ istnieją nieprzeczytane rozdziały</string>\n    <string name=\"notification_update_error\">%1$d aktualizacja (aktualizacje) nie powiodła się</string>\n    <string name=\"action_close\">Zamknij</string>\n    <string name=\"action_move_to_top_all_for_series\">Przenieś serię na górę</string>\n    <string name=\"action_sort_unread_count\">Ilość nieprzeczytanych</string>\n    <string name=\"learn_more\">Kliknij, by dowiedzieć się więcej</string>\n    <string name=\"update_check_open\">Otwórz na GitHubie</string>\n    <string name=\"pref_reset_viewer_flags_success\">Reset wszystkich ustawień czytnika</string>\n    <string name=\"ext_info_version\">Wersja</string>\n    <string name=\"cant_open_last_read_chapter\">Nie można otworzyć ostatnio czytanego rozdziału</string>\n    <string name=\"not_installed\">Niezainstalowane</string>\n    <string name=\"theme_lavender\">Lawenda</string>\n    <string name=\"pref_app_language\">Język aplikacji</string>\n    <string name=\"disabled_nav\">Nieaktywny</string>\n    <string name=\"empty_backup_error\">Brak pozycji w bibliotece do utworzenia kopii zapasowej</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nie można zresetować ustawień czytnika</string>\n    <string name=\"error_saving_picture\">Błąd podczas zapisywania obrazka</string>\n    <string name=\"pref_clear_webview_data\">Wyczyść dane WebView</string>\n    <string name=\"webview_data_deleted\">Dane WebView wyczyszczone</string>\n    <string name=\"action_sort_last_manga_update\">Ostatnia aktualizacja</string>\n    <string name=\"split_tall_images_summary\">Poprawia wydajność czytnika</string>\n    <string name=\"description_placeholder\">Brak opisu</string>\n    <string name=\"wish_list\">Lista życzeń</string>\n    <string name=\"on_hold_list\">Lista odłożonych na później</string>\n    <string name=\"unfinished_list\">Lista niezakończonych</string>\n    <string name=\"source_empty_screen\">Nie znaleziono źródła</string>\n    <string name=\"source_filter_empty_screen\">Nie znaleziono zainstalowanego źródła</string>\n    <string name=\"empty_screen\">Cóż, to troszkę niezręczne</string>\n    <string name=\"ext_info_language\">Język</string>\n    <string name=\"reading_list\">Lista czytanych</string>\n    <string name=\"custom_cover\">Niestandardowa okładka</string>\n    <string name=\"complete_list\">Lista zakończonych</string>\n    <string name=\"network_not_metered\">Tylko na nielimitowanych połączeniach</string>\n    <string name=\"pref_reset_viewer_flags\">Resetowanie ustawień czytników serii</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Resetuje tryb czytania i orientację wszystkich serii</string>\n    <string name=\"download_notifier_split_page_not_found\">Strona %d nie została znaleziona podczas podziału</string>\n    <string name=\"ext_info_age_rating\">Oznaczenie wiekowe</string>\n    <string name=\"rotation_reverse_portrait\">Do góry nogami</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nie można było znaleźć ścieżki %d strony</string>\n    <string name=\"pref_user_agent_string\">Domyślny user agent string</string>\n    <string name=\"pref_reset_user_agent_string\">Zresetuj domyślny user agent string</string>\n    <string name=\"delete_category_confirmation\">Czy chcesz usunąć kategorię \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Usuń kategorię</string>\n    <string name=\"internal_error\">InternalError: sprawdź log błędów po więcej informacji</string>\n    <string name=\"action_remove_everything\">Usuń wszystko</string>\n    <string name=\"error_user_agent_string_blank\">Pole user agent nie może być puste</string>\n    <string name=\"update_already_running\">Aktualizacja już trwa</string>\n    <string name=\"theme_tidalwave\">Tsunami</string>\n    <string name=\"download_ahead\">Pobierz z wyprzedzeniem</string>\n    <string name=\"auto_download_while_reading\">Pobieraj podczas czytania</string>\n    <string name=\"appwidget_updates_description\">Zobacz ostatnio zaktualizowane wpisy</string>\n    <string name=\"appwidget_unavailable_locked\">Widżet nie jest dostępny kiedy blokada aplikacji jest włączona</string>\n    <string name=\"are_you_sure\">Jesteś pewien?</string>\n    <string name=\"download_ahead_info\">Działa tylko, jeśli aktualny i następny rozdział są już pobrane.</string>\n    <string name=\"multi_lang\">Wielojęzyczne</string>\n    <string name=\"popular\">Popularne</string>\n    <string name=\"updates_last_update_info\">Biblioteka ostatnio aktualizowana: %s</string>\n    <string name=\"remove_manga\">Zamierzasz usunąć \\\"%s\\\" ze swojej biblioteki</string>\n    <string name=\"label_stats\">Statystyki</string>\n    <string name=\"label_started\">Rozpoczęte</string>\n    <string name=\"label_local\">Lokalne</string>\n    <string name=\"label_downloaded\">Pobrane</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Wymuś ponowne sprawdzenie pobranych rozdziałów przez aplikację</string>\n    <string name=\"crash_screen_description\">%s napotkał nieoczekiwany błąd. Sugerujemy podzielenie się logami crasha, a następnie udostępnienie ich na naszym kanale wsparcia na Discordzie.</string>\n    <string name=\"pref_reader_summary\">Tryb czytania, wyświetl, nawigacja</string>\n    <string name=\"invalid_location\">Nieprawidłowa lokalizacja: %s</string>\n    <string name=\"action_display_show_continue_reading_button\">Przycisk wznów czytanie</string>\n    <string name=\"pref_tracking_summary\">Jednokierunkowa synchronizacja postępu, ulepszona synchronizacja</string>\n    <string name=\"pref_browse_summary\">Źródła, rozszerzenia, globalne wyszukiwanie</string>\n    <string name=\"pref_security_summary\">Blokada aplikacji, bezpieczny ekran</string>\n    <string name=\"pref_appearance_summary\">Tło, data &amp; format czasu</string>\n    <string name=\"pref_advanced_summary\">Zrzuć logi, optymalizacje baterii</string>\n    <string name=\"missing_storage_permission\">Nie przyznano uprawnień do przechowywania</string>\n    <string name=\"pref_backup_summary\">Manualna &amp; automatyczna kopia</string>\n    <string name=\"label_read_duration\">Czas odczytu</string>\n    <string name=\"label_titles_section\">Wpisy</string>\n    <string name=\"label_titles_in_global_update\">W globalnej aktualizacji</string>\n    <string name=\"label_tracker_section\">Śledzenie</string>\n    <string name=\"unknown_title\">Nieznany tytuł</string>\n    <string name=\"updates_last_update_info_just_now\">Przed chwilą</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"track_remove_date_conf_title\">Usunąć datę?</string>\n    <string name=\"track_remove_finish_date_conf_text\">To spowoduje usunięcie wcześniej wybranej daty zakończenia z %s</string>\n    <string name=\"error_user_agent_string_invalid\">Nieprawidłowy ciąg agenta użytkownika</string>\n    <string name=\"crash_screen_restart_application\">Uruchom ponownie aplikację</string>\n    <string name=\"action_not_now\">Nie teraz</string>\n    <string name=\"label_overview_section\">Przegląd</string>\n    <string name=\"label_completed_titles\">Zakończone wpisy</string>\n    <string name=\"label_total_chapters\">Razem</string>\n    <string name=\"action_search_hint\">Szukaj…</string>\n    <string name=\"action_open_random_manga\">Otwórz losową pozycję</string>\n    <string name=\"pref_library_summary\">Kategorie, aktualizacja globalna, przesunięcie rozdziału</string>\n    <string name=\"pref_invalidate_download_cache\">Odbuduj indeks pobierania</string>\n    <string name=\"fdroid_warning\">Kompilacje F-Droid nie są oficjalnie obsługiwane.\n\\nNaciśnij, aby dowiedzieć się więcej.</string>\n    <string name=\"label_read_chapters\">Przeczytane</string>\n    <string name=\"pref_downloads_summary\">Automatyczne pobieranie, pobierz wstępnie</string>\n    <string name=\"track_remove_start_date_conf_text\">To spowoduje usunięcie wcześniej wybranej daty rozpoczęcia z %s</string>\n    <string name=\"pref_library_update_show_tab_badge\">Pokaż liczbę nieprzeczytanych na ikonie Aktualizacji</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%d godz.</string>\n    <string name=\"minute_short\">%d minut</string>\n    <string name=\"seconds_short\">%d sekund</string>\n    <string name=\"label_used\">Używane</string>\n    <string name=\"label_tracked_titles\">Śledzone pozycje</string>\n    <string name=\"label_mean_score\">Średnia ocena</string>\n    <string name=\"skipped_reason_not_always_update\">Pominięto, ponieważ aktualizacja nie jest wymagana</string>\n    <string name=\"information_no_entries_found\">Nie znaleziono wpisów w tej kategorii</string>\n    <string name=\"download_notifier_cache_renewal\">Sprawdzanie pobranych plików</string>\n    <string name=\"information_no_manga_category\">Kategoria jest pusta</string>\n    <string name=\"copied_to_clipboard_plain\">Skopiowano do schowka</string>\n    <string name=\"pref_skip_dupe_chapters\">Pomiń zduplikowane rozdziały</string>\n    <string name=\"enhanced_services_not_installed\">Dostępne, ale źródło nie jest zainstalowane: %s</string>\n    <string name=\"track_error\">Błąd %1$s: %2$s</string>\n    <string name=\"information_required_plain\">*wymagane</string>\n    <string name=\"pref_hide_in_library_items\">Ukryj pozycje znajdujące się już w bibliotece</string>\n    <string name=\"action_copy_to_clipboard\">Kopiuj do schowka</string>\n    <string name=\"action_update_category\">Aktualizuj kategorię</string>\n    <string name=\"split_tall_images\">Dziel długie obrazy</string>\n    <string name=\"overlay_header\">Nakładka</string>\n    <string name=\"pref_page_rotate\">Dopasuj szerokie strony</string>\n    <string name=\"pref_page_rotate_invert\">Zmień orientację obróconych obrazów</string>\n    <string name=\"pref_debug_info\">Informacje debugowania</string>\n    <string name=\"pref_double_tap_zoom\">Dotknij dwukrotnie, aby powiększyć</string>\n    <string name=\"pref_chapter_swipe_end\">Przesuń palcem w prawo</string>\n    <string name=\"pref_chapter_swipe_start\">Przesuń palcem w lewo</string>\n    <string name=\"action_set_interval\">Ustaw interwał</string>\n    <string name=\"action_sort_next_updated\">Następna spodziewana aktualizacja</string>\n    <string name=\"manga_display_modified_interval_title\">Aktualizuj co</string>\n    <string name=\"syncing_library\">Synchronizowanie biblioteki</string>\n    <string name=\"create_backup_file_error\">Nie można wykonać kopi zapasowej</string>\n    <string name=\"intervals_header\">Interwały</string>\n    <string name=\"track_delete_remote_text\">Usuń też z %s</string>\n    <string name=\"exception_http\">HTTP %d, otwórz w WebView</string>\n    <string name=\"exception_offline\">Brak połączenia z internetem</string>\n    <string name=\"exception_unknown_host\">Nie można połączyć się z %s</string>\n    <string name=\"track_delete_title\">Przestań śledzić %s?</string>\n    <string name=\"delete_downloaded\">Usuń pobrane</string>\n    <string name=\"library_sync_complete\">Synchronizacja biblioteki zakończona</string>\n    <string name=\"download_cache_invalidated\">Indeksy pobrań unieważnione</string>\n    <string name=\"information_cloudflare_help\">Naciśnij tutaj aby uzyskać pomoc dotyczącą Cloudflare</string>\n    <string name=\"unlock_app_title\">Odblokuj %s</string>\n    <string name=\"action_filter_interval_custom\">Dostosowany interwał aktualizacji</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_text\">To usunie śledzenie lokalne.</string>\n    <string name=\"action_apply\">Zatwierdź</string>\n    <string name=\"action_revert_to_default\">Przywróć do domyślnych</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Przenieś serię na dół</string>\n    <string name=\"relative_time_span_never\">Nigdy</string>\n    <string name=\"onboarding_storage_action_select\">Wybierz folder</string>\n    <string name=\"manga_interval_expected_update\">Następna aktualizacja spodziewana za około %1$s, sprawdzanie co %2$s.</string>\n    <string name=\"onboarding_storage_selection_required\">Folder musi być wybrany</string>\n    <string name=\"onboarding_permission_notifications\">Uprawnienia powiadomień</string>\n    <string name=\"onboarding_heading\">Witaj!</string>\n    <string name=\"action_menu_overflow_description\">Więcej opcji</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"onboarding_action_skip\">Pomiń</string>\n    <string name=\"onboarding_action_next\">Następny</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Zużycie baterii w tle</string>\n    <string name=\"notification_updating_progress\">Aktualizowanie biblioteki... (%s)</string>\n    <string name=\"invalid_repo_name\">Nieprawidłowa nazwa repozytorium</string>\n    <string name=\"source_settings\">Ustawienia źródła</string>\n    <string name=\"app_settings\">Ustawienia aplikacji</string>\n    <string name=\"action_delete_repo\">Usuń repozytorium</string>\n    <string name=\"action_add_repo\">Dodaj repozytorium</string>\n    <string name=\"selected\">Zaznaczone</string>\n    <string name=\"action_bar_up_description\">Przewiń w górę</string>\n    <string name=\"onboarding_action_finish\">Zaczynajmy</string>\n    <string name=\"onboarding_storage_help_action\">Przewodnik po pamięci</string>\n    <string name=\"onboarding_permission_install_apps\">Zainstaluj uprawnienia aplikacji</string>\n    <string name=\"onboarding_permission_install_apps_description\">Do instalacji rozszerzeń.</string>\n    <string name=\"onboarding_permission_action_grant\">Zezwól</string>\n    <string name=\"onboarding_guides_new_user\">Pierwszy raz w %s? Zalecamy zapoznać się z poradnikiem.</string>\n    <string name=\"onboarding_guides_returning_user\">Ponowna instalacja %s?</string>\n    <string name=\"label_extension_repos\">Repozytoria rozszerzeń</string>\n    <string name=\"label_add_repo_input\">Link repozytorium</string>\n    <string name=\"pref_storage_usage\">Zużycie pamięci</string>\n    <string name=\"manga_interval_custom_amount\">Niestandardowa częstotliwość aktualizacji:</string>\n    <string name=\"no_scanlators_found\">Nie znaleziono skanlatorów</string>\n    <string name=\"file_null_uri_error\">Nie wybrano pliku</string>\n    <string name=\"not_selected\">Nie zaznaczone</string>\n    <string name=\"action_sort_tracker_score\">Serwisy śledzące</string>\n    <string name=\"label_data_storage\">Dane i pamięć</string>\n    <string name=\"pref_onboarding_guide\">Szybka konfiguracja</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Unikaj przerywania długich operacji takich jak pobieranie rozdziałów, aktualizacje bibliotek lub przywracanie kopii zapasowej.</string>\n    <string name=\"onboarding_permission_notifications_description\">Otrzymuj powiadomienia ze swojej biblioteki i więcej.</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"pref_relative_format\">Użyj dat względnych</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" zamiast \\\"%2$s\\\"</string>\n    <string name=\"pref_library_update_smart_update\">Inteligentna aktualizacja</string>\n    <string name=\"onboarding_description\">Na początek ustawmy kilka rzeczy. Zawsze możesz je później zmienić w ustawieniach.</string>\n    <string name=\"onboarding_storage_help_info\">Aktualizujesz ze starszej wersji i nie jesteś pewien co wybrać? Zobacz na przewodnik po pamięci.</string>\n    <string name=\"pref_update_only_in_release_period\">Przewiduj następną aktualizację</string>\n    <string name=\"ext_permission_install_apps_warning\">Uprawnienia są wymagane aby zainstalować rozszerzenia. Kliknij tutaj aby je przyznać.</string>\n    <string name=\"onboarding_storage_info\">Wybierz folder gdzie %1$s będzie zapisywał pobrane rozdziały, kopie zapasowe i inne.\n\\n\n\\nZalecany jest dedykowany folder.\n\\n\n\\nWybrany folder:%2$s</string>\n    <string name=\"ext_revoke_trust\">Unieważnij zaufanie nieznanym rozszerzeniom</string>\n    <string name=\"information_empty_repos\">Nie masz ustawionych repozytoriów.</string>\n    <string name=\"action_add_repo_message\">Dodaj repozytoria do %s. Powinien to być link z końcówką \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">To repozytorium jest już dodane!</string>\n    <string name=\"delete_repo_confirmation\">Na pewno chcesz usunąć repozytorium \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Repozytorium open source</string>\n    <string name=\"pref_flash_page_summ\">Redukuje ghosting na wyświetlaczach e-ink</string>\n    <string name=\"no_location_set\">Brak ustawionej ścieżki pamięci</string>\n    <string name=\"pref_storage_location\">Miejsce przechowywania danych</string>\n    <string name=\"pref_storage_location_info\">Używane do automatycznych kopii zapasowych, pobierania rozdziałów i lokalnych źródeł.</string>\n    <string name=\"invalid_backup_file_error\">Pełny błąd:</string>\n    <string name=\"track_activity_name\">Login serwisu śledzącego</string>\n    <string name=\"action_create\">Utwórz</string>\n    <string name=\"pref_flash_page\">Miganie przy zmianie strony</string>\n    <string name=\"private_settings\">Dołącz wrażliwe ustawienia (np. tokeny serwisu śledzącego)</string>\n    <string name=\"last_auto_backup_info\">Ostatnia automatyczna kopia zapasowa: %s</string>\n    <string name=\"has_results\">Ma wyniki</string>\n    <string name=\"manga_display_interval_title\">Oszacuj co</string>\n    <string name=\"available_disk_space_info\">Wolne: %1$s / Ogółem: %2$s</string>\n    <string name=\"manga_interval_expected_update_soon\">Wkrótce</string>\n    <string name=\"skipped_reason_not_in_release_period\">Pominięto, ponieważ nie spodziewano się dzisiaj żadnej publikacji</string>\n    <string name=\"exclude_scanlators\">Wyklucz skanlatorów</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Wyłącz oddalenie</string>\n    <string name=\"action_add_anyway\">Dodaj mimo to</string>\n    <string name=\"action_replace_repo\">Zamień</string>\n    <string name=\"action_view_upcoming\">Pokaż nadchodzące aktualizacje</string>\n    <string name=\"upcoming_calendar_next\">Następny miesiąc</string>\n    <string name=\"upcoming_calendar_prev\">Poprzedni miesiąc</string>\n    <string name=\"label_upcoming\">Nadchodzący</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Nie udało się uzyskać dostępu do folderu. Aplikacja może się zachowywać nieprzewidywalnie.</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_duration\">Długość migania</string>\n    <string name=\"pref_flash_with\">Miganie na</string>\n    <string name=\"pref_flash_style_white_black\">Biały i czarny</string>\n    <string name=\"pref_flash_style_black\">Czarny</string>\n    <string name=\"pref_flash_style_white\">Biały</string>\n    <string name=\"manga_interval_expected_update_null\">Ta manga jest zakończona lub nie ma przewidywanej daty wydania.</string>\n    <string name=\"pref_flash_page_interval\">Migaj co</string>\n    <string name=\"pref_display_profile\">Niestandardowy profil</string>\n    <string name=\"invalid_backup_file_unknown\">Plik kopii zapasowej jest uszkodzony</string>\n    <string name=\"onboarding_permission_analytics_description\">Wysyłaj zanonimizowane dane użytkowania aplikacji w celu ulepszenia jej funkcjonalności.</string>\n    <string name=\"action_copy_link\">Skopiuj link</string>\n    <string name=\"action_sort_random\">Losowo</string>\n    <string name=\"onboarding_permission_crashlytics\">Wyślij dziennik awarii</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Wyślij zanonimizowny dziennik awarii do deweloperów.</string>\n    <string name=\"onboarding_permission_analytics\">Zezwól na analizę danych</string>\n    <string name=\"pref_security\">Bezpieczeństwo i prywatność</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Aktualizuj postęp po oznaczeniu jako przeczytane</string>\n    <string name=\"extensionRepo_settings\">Repozytoria rozszerzeń</string>\n    <string name=\"pref_firebase\">Dane użytkownika i dzienniki awarii</string>\n    <string name=\"ext_remove\">Usuń</string>\n    <string name=\"ext_confirm_remove\">Usunąć Rozszerzenie?</string>\n    <string name=\"remove_private_extension_message\">Czy na pewno chcesz usunąć rozszerzenie \\\"%s\\\"?</string>\n    <string name=\"add_repo_confirmation\">Czy chciałbyś dodać to repozytorium \\\"%s\\\"?</string>\n    <string name=\"firebase_summary\">Przesyłanie dzienników awarii i danych użytkowania pozwoli nam na zidentyfikowanie i naprawę błędów, poprawę wydajności oraz dopasowanie przyszłych wersji aplikacji do twoich potrzeb</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Domyślne (%d)</string>\n    <string name=\"trackers_updated_summary\">Śledzenie zaktualizowane do rozdziału %d</string>\n    <string name=\"non_library_settings\">Wszystkie przeczytane wpisy</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Jeżeli czytnik załaduje pusty obraz, stopniowo zmniejszaj zakres graniczny.\\nWybrany: %s</string>\n    <string name=\"confirm_tracker_update\">Zaktualizować śledzenie do rozdziału %d?</string>\n    <string name=\"action_replace_repo_title\">Identyfikator Klucza Certyfikatu już istnieje</string>\n    <string name=\"upcoming_guide\">Przewodnik nadchodzących aktualizacji</string>\n    <string name=\"action_replace_repo_message\">Repozytorium %1$s posiada taki sam identyfikator certyfikatu jak %2$s.\\nJeżeli było to przewidziane, %2$s zostanie zastąpione, w przeciwnym wypadku skontaktuj się z z osobą utrzymującą repozytorium.</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Pomiń pobieranie duplikatów przeczytanych już rozdziałów</string>\n    <string name=\"invalid_backup_file_json\">Kopia zapasowa JSON nie jest wspierana</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Niestandardowy zakres graniczny bitmapy dla urządzenia</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Wpływa na wydajność. Włącz tylko wtedy, gdy zmniejszenie zakresu granicznego bitmapy nie pomaga przy naprawie nieładujących się obrazów</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Wstrzymaj historię dla rozszerzenia</string>\n    <string name=\"action_notes\">Notatki</string>\n    <string name=\"action_edit_notes\">Edytuj notatki</string>\n    <string name=\"action_webview_close_tab\">Zamknij kartę</string>\n    <string name=\"theme_monochrome\">Monochromatyczny</string>\n    <string name=\"pref_display_images_description\">Wyświetlaj obrazy w opisach mang</string>\n    <string name=\"storage_failed_to_create_download_directory\">Nie udało się utworzyć folderu pobierania</string>\n    <string name=\"storage_failed_to_create_directory\">Nie udało się utworzyć folderu: %s</string>\n    <string name=\"export\">Eksportuj</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/pt/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Após %1$s minuto</item>\n        <item quantity=\"many\">Após %1$s minutos</item>\n        <item quantity=\"other\">Após %1$s minutos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capítulos %1$s e 1 mais</item>\n        <item quantity=\"many\">Capítulos %1$s e %2$d mais</item>\n        <item quantity=\"other\">Capítulos %1$s e %2$d mais</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Para %d entrada</item>\n        <item quantity=\"many\">Para %d entradas</item>\n        <item quantity=\"other\">Para %d o acesso</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d novo capítulo</item>\n        <item quantity=\"many\">%1$d novos capítulos</item>\n        <item quantity=\"other\">%1$d novos capítulos</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Atualização de extensão disponível</item>\n        <item quantity=\"many\">%d atualizações de extensão disponíveis</item>\n        <item quantity=\"other\">%d atualizações de extensão disponíveis</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s restante</item>\n        <item quantity=\"many\">%1$s restantes</item>\n        <item quantity=\"other\">%1$s restantes</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoria</item>\n        <item quantity=\"many\">%d categorias</item>\n        <item quantity=\"other\">%d categorias</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Concluído em %1$s com %2$s erro</item>\n        <item quantity=\"many\">Concluído em %1$s com %2$s erros</item>\n        <item quantity=\"other\">Concluído em %1$s com %2$s erros</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capítulo</item>\n        <item quantity=\"many\">%1$s capítulos</item>\n        <item quantity=\"other\">%1$s capítulos</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d rastreador</item>\n        <item quantity=\"many\">%d rastreadores</item>\n        <item quantity=\"other\">%d rastreadores</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Ignorando %d capítulo, ou a fonte está em falta ou foi filtrado</item>\n        <item quantity=\"many\">Ignorando %d capítulos, ou a fonte está em falta ou foi filtrado</item>\n        <item quantity=\"other\">Capítulos %d ignorados, ou a fonte está em falta ou foi filtrado</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ontem</item>\n        <item quantity=\"many\">Há %1$d dias</item>\n        <item quantity=\"other\">Há %1$d dias</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Próximo capítulo não lido</item>\n        <item quantity=\"many\">Próximos %d capítulos não lidos</item>\n        <item quantity=\"other\">Próximos %d capítulos não lidos</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Próximo capítulo</item>\n        <item quantity=\"many\">Próximos %d capítulos</item>\n        <item quantity=\"other\">Próximos %d capítulos</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Falta %1$s capítulo</item>\n        <item quantity=\"many\">Faltam %1$s capítulos</item>\n        <item quantity=\"other\">Faltam %1$s capítulos</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">Um dia</item>\n        <item quantity=\"many\">%d dias</item>\n        <item quantity=\"other\">%d dias</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repositório</item>\n        <item quantity=\"many\">%d repositórios</item>\n        <item quantity=\"other\">%d repositórios</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Amanhã</item>\n        <item quantity=\"many\">Em %1$d dias</item>\n        <item quantity=\"other\">Em %1$d dias</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrar %1$d entrada?</item>\n        <item quantity=\"many\">Migrar %1$d entradas?</item>\n        <item quantity=\"other\">Migrar %1$d entradas?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Copiar %1$d entrada?</item>\n        <item quantity=\"many\">Copiar %1$d entradas?</item>\n        <item quantity=\"other\">Copiar %1$d entradas?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Foi saltada uma entrada</item>\n        <item quantity=\"many\">Foram saltadas %1$d entradas</item>\n        <item quantity=\"other\">Foram saltadas %1$d entradas</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">%1$s página</item>\n        <item quantity=\"many\">%1$s páginas</item>\n        <item quantity=\"other\">%1$s páginas</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/pt/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nome</string>\n    <string name=\"label_settings\">Definições</string>\n    <string name=\"label_download_queue\">Fila de Transferências</string>\n    <string name=\"label_library\">Biblioteca</string>\n    <string name=\"label_recent_manga\">Histórico</string>\n    <string name=\"label_recent_updates\">Atualizações</string>\n    <string name=\"label_backup\">Cópia de segurança e restauro</string>\n    <string name=\"action_settings\">Definições</string>\n    <string name=\"action_filter\">Filtro</string>\n    <string name=\"action_filter_unread\">Não Lido</string>\n    <string name=\"action_filter_empty\">Remover filtro</string>\n    <string name=\"action_search\">Pesquisar</string>\n    <string name=\"action_select_all\">Selecionar tudo</string>\n    <string name=\"action_mark_as_read\">Marcar como lido</string>\n    <string name=\"action_mark_as_unread\">Marcar como não lido</string>\n    <string name=\"action_mark_previous_as_read\">Marcar anteriores como lidos</string>\n    <string name=\"action_download\">Transferir</string>\n    <string name=\"action_delete\">Eliminar</string>\n    <string name=\"action_update_library\">Atualizar biblioteca</string>\n    <string name=\"action_edit\">Editar</string>\n    <string name=\"action_add_category\">Adicionar categoria</string>\n    <string name=\"action_edit_categories\">Editar categorias</string>\n    <string name=\"action_rename_category\">Renomear categoria</string>\n    <string name=\"action_move_category\">Definir categorias</string>\n    <string name=\"action_edit_cover\">Editar capa</string>\n    <string name=\"action_pause\">Pausar</string>\n    <string name=\"action_previous_chapter\">Capítulo anterior</string>\n    <string name=\"action_next_chapter\">Capítulo seguinte</string>\n    <string name=\"action_retry\">Tentar novamente</string>\n    <string name=\"action_remove\">Remover</string>\n    <string name=\"action_resume\">Resumir</string>\n    <string name=\"action_open_in_browser\">Abrir no navegador</string>\n    <string name=\"action_display_mode\">Modo de exibição</string>\n    <string name=\"action_cancel\">Cancelar</string>\n    <string name=\"action_sort\">Ordenar</string>\n    <string name=\"action_install\">Instalar</string>\n    <string name=\"loading\">A carregar…</string>\n    <string name=\"pref_category_general\">Geral</string>\n    <string name=\"pref_category_reader\">Leitor</string>\n    <string name=\"pref_category_downloads\">Transferências</string>\n    <string name=\"pref_category_advanced\">Avançado</string>\n    <string name=\"pref_category_about\">Sobre</string>\n    <string name=\"pref_library_columns\">Itens por linha</string>\n    <string name=\"portrait\">Vertical</string>\n    <string name=\"landscape\">Horizontal</string>\n    <string name=\"pref_library_update_interval\">Atualizações automáticas</string>\n    <string name=\"update_never\">Desligado</string>\n    <string name=\"update_6hour\">A cada 6 horas</string>\n    <string name=\"update_12hour\">A cada 12 horas</string>\n    <string name=\"update_24hour\">Diariamente</string>\n    <string name=\"update_48hour\">A cada 2 dias</string>\n    <string name=\"all\">Tudo</string>\n    <string name=\"pref_library_update_restriction\">Restrições do aparelho para atualizações automáticas</string>\n    <string name=\"charging\">Ao carregar</string>\n    <string name=\"pref_update_only_non_completed\">Com estado \\'\\'Terminado\\'\\'</string>\n    <string name=\"pref_auto_update_manga_sync\">Atualizar progresso após a leitura</string>\n    <string name=\"pref_fullscreen\">Ecrã inteiro</string>\n    <string name=\"pref_page_transitions\">Animar transições de página</string>\n    <string name=\"pref_show_page_number\">Mostrar número de página</string>\n    <string name=\"pref_custom_brightness\">Brilho personalizado</string>\n    <string name=\"pref_keep_screen_on\">Manter o ecrã ligado</string>\n    <string name=\"pref_reader_navigation\">Navegação</string>\n    <string name=\"pref_read_with_volume_keys\">Teclas de volume</string>\n    <string name=\"pref_reader_theme\">Cor de fundo</string>\n    <string name=\"white_background\">Branco</string>\n    <string name=\"black_background\">Preto</string>\n    <string name=\"pref_viewer_type\">Modo de leitura padrão</string>\n    <string name=\"left_to_right_viewer\">Paginado (da esquerda para a direita)</string>\n    <string name=\"right_to_left_viewer\">Paginado (da direita para a esquerda)</string>\n    <string name=\"vertical_viewer\">Paginação (vertical)</string>\n    <string name=\"webtoon_viewer\">Página longa</string>\n    <string name=\"pref_image_scale_type\">Tipo de escala</string>\n    <string name=\"scale_type_fit_screen\">Ajustar ao ecrã</string>\n    <string name=\"scale_type_stretch\">Esticar</string>\n    <string name=\"scale_type_fit_width\">Ajustar à largura</string>\n    <string name=\"scale_type_fit_height\">Ajustar à altura</string>\n    <string name=\"scale_type_original_size\">Tamanho original</string>\n    <string name=\"scale_type_smart_fit\">Ajuste inteligente</string>\n    <string name=\"pref_zoom_start\">Posição de zoom inicial</string>\n    <string name=\"zoom_start_automatic\">Automático</string>\n    <string name=\"zoom_start_left\">Esquerda</string>\n    <string name=\"zoom_start_right\">Direita</string>\n    <string name=\"zoom_start_center\">Centro</string>\n    <string name=\"pref_rotation_type\">Tipo de rotação padrão</string>\n    <string name=\"rotation_free\">Livre</string>\n    <string name=\"rotation_force_portrait\">Vertical bloqueado</string>\n    <string name=\"rotation_force_landscape\">Horizontal bloqueado</string>\n    <string name=\"pref_remove_after_marked_as_read\">Após marcado como lido manualmente</string>\n    <string name=\"pref_remove_after_read\">Eliminar automaticamente após a leitura</string>\n    <string name=\"disabled\">Desativado</string>\n    <string name=\"last_read_chapter\">Último capítulo</string>\n    <string name=\"second_to_last\">Penúltimo capítulo lido</string>\n    <string name=\"third_to_last\">Antepenúltimo capítulo lido</string>\n    <string name=\"fourth_to_last\">Quarto capítulo lido antes do último</string>\n    <string name=\"fifth_to_last\">Quinto capítulo lido antes do último</string>\n    <string name=\"services\">Serviços</string>\n    <string name=\"pref_clear_chapter_cache\">Limpar a cache dos capítulos</string>\n    <string name=\"used_cache\">Usado: %1$s</string>\n    <string name=\"cache_deleted\">Cache limpa. %1$d ficheiros foram eliminados</string>\n    <string name=\"cache_delete_error\">Ocorreu um erro ao limpar a cache</string>\n    <string name=\"pref_clear_cookies\">Limpar cookies</string>\n    <string name=\"cookies_cleared\">Cookies limpos</string>\n    <string name=\"pref_clear_database\">Limpar base de dados</string>\n    <string name=\"pref_clear_database_summary\">Exclui o histórico de itens que não estão salvos nasua biblioteca</string>\n    <string name=\"clear_database_completed\">Eliminar entradas</string>\n    <string name=\"version\">Versão</string>\n    <string name=\"pref_enable_acra\">Enviar relatórios de erro</string>\n    <string name=\"pref_acra_summary\">Ajuda a corrigir qualquer erro. Não serão enviados dados sensíveis</string>\n    <string name=\"login_title\">Iniciar sessão em %1$s</string>\n    <string name=\"username\">Nome de utilizador</string>\n    <string name=\"password\">Palavra-passe</string>\n    <string name=\"login\">Iniciar sessão</string>\n    <string name=\"login_success\">Sessão iniciada</string>\n    <string name=\"unknown_error\">Erro desconhecido</string>\n    <string name=\"updating_category\">A atualizar categoria</string>\n    <string name=\"ongoing\">Em curso</string>\n    <string name=\"unknown\">Desconhecido</string>\n    <string name=\"licensed\">Licenciado</string>\n    <string name=\"remove_from_library\">Remover da biblioteca</string>\n    <string name=\"display_mode_chapter\">Capítulo %1$s</string>\n    <string name=\"chapter_downloading_progress\">A Transferir (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Erro</string>\n    <string name=\"show_title\">Título da fonte</string>\n    <string name=\"show_chapter_number\">Número do capítulo</string>\n    <string name=\"sort_by_source\">Por fonte</string>\n    <string name=\"sort_by_number\">Por número de capítulo</string>\n    <string name=\"manga_download\">Transferir</string>\n    <string name=\"download_unread\">Não lidos</string>\n    <string name=\"confirm_delete_chapters\">Tem certeza de que deseja eliminar os capítulos selecionados?</string>\n    <string name=\"reading\">A ler</string>\n    <string name=\"completed\">Completo</string>\n    <string name=\"dropped\">Abandonado</string>\n    <string name=\"on_hold\">Em espera</string>\n    <string name=\"plan_to_read\">Planeada a leitura</string>\n    <string name=\"score\">Avaliação</string>\n    <string name=\"title\">Título</string>\n    <string name=\"status\">Estado</string>\n    <string name=\"chapters\">Capítulos</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Esta ação irá remover a data de leitura deste capítulo. Continuar?</string>\n    <string name=\"dialog_with_checkbox_reset\">Redefinir todos os capítulos para esta entrada</string>\n    <string name=\"chapter_progress\">Página: %1$d</string>\n    <string name=\"no_next_chapter\">Capítulo seguinte não encontrado</string>\n    <string name=\"decode_image_error\">A imagem não pôde ser carregada</string>\n    <string name=\"download_queue_error\">Não foi possível transferir capítulos. Poderá tentar novamente na secção das transferências</string>\n    <string name=\"notification_new_chapters\">Novos capítulos encontrados</string>\n    <string name=\"notification_first_add_to_library\">Por favor adicione à sua biblioteca antes de fazer isto</string>\n    <string name=\"file_select_cover\">Selecionar imagem de capa</string>\n    <string name=\"file_select_backup\">Selecionar ficheiro de cópia de segurança</string>\n    <string name=\"update_check_confirm\">Transferir</string>\n    <string name=\"update_check_no_new_updates\">Sem atualizações disponíveis</string>\n    <string name=\"update_check_notification_download_in_progress\">A transferir…</string>\n    <string name=\"update_check_notification_download_complete\">Toque para instalar a atualização</string>\n    <string name=\"update_check_notification_download_error\">Erro na transferência</string>\n    <string name=\"update_check_notification_update_available\">Nova versão disponível!</string>\n    <string name=\"information_no_downloads\">Sem transferências</string>\n    <string name=\"information_no_recent\">Sem atualizações recentes</string>\n    <string name=\"information_no_recent_manga\">Nada lido recentemente</string>\n    <string name=\"information_empty_library\">A sua biblioteca está vazia</string>\n    <string name=\"download_notifier_title_error\">Erro</string>\n    <string name=\"download_notifier_unknown_error\">Não foi possível transferir o capítulo devido a um erro inesperado</string>\n    <string name=\"download_notifier_text_only_wifi\">A ligação Wi-Fi está indisponível</string>\n    <string name=\"categories\">Categorias</string>\n    <string name=\"manga\">Entradas da biblioteca</string>\n    <string name=\"track\">Monitorização</string>\n    <string name=\"history\">Histórico</string>\n    <string name=\"label_extensions\">Extensões</string>\n    <string name=\"label_extension_info\">Informação da extensão</string>\n    <string name=\"action_filter_bookmarked\">Marcado</string>\n    <string name=\"action_sort_alpha\">Alfabeticamente</string>\n    <string name=\"action_sort_total\">Total de capítulos</string>\n    <string name=\"action_sort_last_read\">Última leitura</string>\n    <string name=\"action_global_search\">Pesquisa geral</string>\n    <string name=\"action_bookmark\">Marcar capítulo</string>\n    <string name=\"action_remove_bookmark\">Desmarcar capítulo</string>\n    <string name=\"action_add\">Adicionar</string>\n    <string name=\"action_display\">Exibir</string>\n    <string name=\"action_display_grid\">Grelha compacta</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_share\">Partilhar</string>\n    <string name=\"action_save\">Guardar</string>\n    <string name=\"action_undo\">Anular</string>\n    <string name=\"update_weekly\">Semanalmente</string>\n    <string name=\"action_restore\">Restaurar</string>\n    <string name=\"app_not_available\">App não disponível</string>\n    <string name=\"default_category\">Categoria padrão</string>\n    <string name=\"default_category_summary\">Perguntar sempre</string>\n    <string name=\"ext_update\">Atualizar</string>\n    <string name=\"ext_install\">Instalar</string>\n    <string name=\"ext_pending\">Pendente</string>\n    <string name=\"ext_downloading\">A transferir</string>\n    <string name=\"ext_installing\">A instalar</string>\n    <string name=\"ext_installed\">Instalado</string>\n    <string name=\"ext_uninstall\">Desinstalar</string>\n    <string name=\"untrusted_extension\">Extensão não confiável</string>\n    <string name=\"untrusted_extension_message\">Esta extensão maliciosa pode ler qualquer credenciais de sessão guardadas ou executar código arbitrário. \\n \\nAo confiar neste extensão, você aceita estes riscos.</string>\n    <string name=\"pref_crop_borders\">Cortar bordas</string>\n    <string name=\"pref_custom_color_filter\">Filtro de cor personalizado</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverter teclas de volume</string>\n    <string name=\"double_tap_anim_speed_0\">Sem animação</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Rápido</string>\n    <string name=\"color_filter_g_value\">Verde</string>\n    <string name=\"color_filter_b_value\">Azul</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_download_new\">Transferir novos capítulos</string>\n    <string name=\"pref_create_backup\">Criar cópia de segurança</string>\n    <string name=\"pref_create_backup_summ\">Pode ser usado para restaurar a biblioteca atual</string>\n    <string name=\"pref_restore_backup\">Restaurar cópia de segurança</string>\n    <string name=\"pref_restore_backup_summ\">Restaurar biblioteca a partir de cópia de segurança</string>\n    <string name=\"pref_backup_interval\">Frequência de cópia de segurança</string>\n    <string name=\"restoring_backup\">Restaurando cópia de segurança</string>\n    <string name=\"creating_backup\">Criando cópia de segurança</string>\n    <string name=\"label_migration\">Migrar</string>\n    <string name=\"action_reset\">Reiniciar</string>\n    <string name=\"action_open_log\">Abrir registo</string>\n    <string name=\"pref_category_tracking\">Listas</string>\n    <string name=\"pref_double_tap_anim_speed\">Velocidade de animação de toque duplo</string>\n    <string name=\"pager_viewer\">Paginação</string>\n    <string name=\"color_filter_r_value\">Vermelho</string>\n    <string name=\"backup_created\">Cópia de segurança criada</string>\n    <string name=\"restore_completed\">Restauro completo</string>\n    <string name=\"backup_choice\">O que pretende fazer cópia de segurança?</string>\n    <string name=\"action_display_download_badge\">Capítulos transferidos</string>\n    <string name=\"ext_trust\">Confiar</string>\n    <string name=\"ext_untrusted\">Não confiável</string>\n    <string name=\"pref_read_with_long_tap\">Mostrar com toque longo</string>\n    <string name=\"action_open_in_web_view\">Abrir em WebView</string>\n    <string name=\"pref_skip_read_chapters\">Ignorar capítulos marcados como lido</string>\n    <string name=\"no_more_results\">Sem mais resultados</string>\n    <string name=\"local_source\">Fonte local</string>\n    <string name=\"other_source\">Outras</string>\n    <string name=\"action_global_search_hint\">Pesquisa global…</string>\n    <string name=\"latest\">Mais recente</string>\n    <string name=\"browse\">Navegar</string>\n    <string name=\"manga_added_library\">Adicionado à biblioteca</string>\n    <string name=\"manga_removed_library\">Removido da biblioteca</string>\n    <string name=\"delete_downloads_for_manga\">Eliminar capítulos descarregados?</string>\n    <string name=\"copied_to_clipboard\">Copiado para área de transferência:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Fonte não instalada: %1$s</string>\n    <string name=\"chapter_paused\">Pausado</string>\n    <string name=\"manga_tracking_tab\">Monitorização</string>\n    <string name=\"repeating\">Relendo</string>\n    <string name=\"track_status\">Estado</string>\n    <string name=\"track_type\">Tipo</string>\n    <string name=\"error_category_exists\">Já existe uma categoria com este nome!</string>\n    <string name=\"snack_categories_deleted\">Categorias eliminadas</string>\n    <string name=\"snack_add_to_library\">Adicionar à biblioteca?</string>\n    <string name=\"picture_saved\">Imagem guardada</string>\n    <string name=\"custom_filter\">Filtro personalizado</string>\n    <string name=\"set_as_cover\">Usar como capa</string>\n    <string name=\"cover_updated\">Capa atualizada</string>\n    <string name=\"confirm_set_image_as_cover\">Usar esta imagem como capa?</string>\n    <string name=\"transition_finished\">Concluído:</string>\n    <string name=\"transition_current\">Atual:</string>\n    <string name=\"transition_next\">Próximo:</string>\n    <string name=\"transition_previous\">Anterior:</string>\n    <string name=\"transition_no_next\">Não há próximo capítulo</string>\n    <string name=\"transition_no_previous\">Não há capítulo anterior</string>\n    <string name=\"transition_pages_loading\">A carregar páginas…</string>\n    <string name=\"transition_pages_error\">Falha ao carregar páginas: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Selecione dados para incluir</string>\n    <string name=\"migrate\">Migrar</string>\n    <string name=\"copy\">Copiar</string>\n    <string name=\"notification_cover_update_failed\">Falha ao atualizar a capa</string>\n    <string name=\"information_empty_category\">Não tem nenhuma categoria. Toque no botão (+) para criar uma e organizar a sua biblioteca.</string>\n    <string name=\"download_notifier_downloader_title\">Gestor de transferências</string>\n    <string name=\"download_notifier_no_network\">A ligação à rede está indisponível</string>\n    <string name=\"download_notifier_download_paused\">Transferências em pausa</string>\n    <string name=\"channel_common\">Comum</string>\n    <string name=\"filter_mode_overlay\">Sobrepor</string>\n    <string name=\"filter_mode_multiply\">Multiplicação</string>\n    <string name=\"filter_mode_screen\">Divisão</string>\n    <string name=\"filter_mode_darken\">Super-exposição / Escurecer</string>\n    <string name=\"pref_color_filter_mode\">Modo de mistura do filtro de cores</string>\n    <string name=\"filter_mode_lighten\">Sub-exposição / Clarear</string>\n    <string name=\"label_help\">Ajuda</string>\n    <string name=\"no_results_found\">Nenhum resultado encontrado</string>\n    <string name=\"migration_selection_prompt\">Selecione uma fonte da qual migrar</string>\n    <string name=\"action_webview_back\">Voltar</string>\n    <string name=\"action_webview_forward\">Avançar</string>\n    <string name=\"action_webview_refresh\">Recarregar</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"ext_obsolete\">Obsoleto</string>\n    <string name=\"obsolete_extension_message\">Esta extensão não está mais disponível. Ela pode não funcionar corretamente e pode causar problemas na app. É recomendado desinstalá-la.</string>\n    <string name=\"pref_date_format\">Formato da data</string>\n    <string name=\"pref_category_library_update\">Atualização global</string>\n    <string name=\"logout_title\">Terminar sessão em %1$s?</string>\n    <string name=\"logout\">Terminar sessão</string>\n    <string name=\"logout_success\">Sua sessão está agora encerrada</string>\n    <string name=\"paused\">Pausado</string>\n    <string name=\"label_more\">Mais</string>\n    <string name=\"action_sort_latest_chapter\">Último capítulo</string>\n    <string name=\"action_view_chapters\">Ver capítulos</string>\n    <string name=\"action_cancel_all\">Cancelar tudo</string>\n    <string name=\"theme_light\">Desligado</string>\n    <string name=\"theme_dark\">Ligado</string>\n    <string name=\"theme_system\">Seguir o do sistema</string>\n    <string name=\"pref_manage_notifications\">Gerir notificações</string>\n    <string name=\"pref_category_security\">Segurança e privacidade</string>\n    <string name=\"lock_with_biometrics\">Requerer desbloqueio</string>\n    <string name=\"lock_when_idle\">Bloquear quando inativo</string>\n    <string name=\"lock_always\">Sempre</string>\n    <string name=\"lock_never\">Nunca</string>\n    <string name=\"secure_screen\">Ecrã seguro</string>\n    <string name=\"ext_updates_pending\">Atualizações pendentes</string>\n    <string name=\"pref_cutout_short\">Mostrar conteúdo na área de corte</string>\n    <string name=\"information_cloudflare_bypass_failure\">Falha ao contornar o Cloudflare</string>\n    <string name=\"information_webview_outdated\">Por favor, atualize a app de WebView para melhor compatibilidade</string>\n    <string name=\"channel_new_chapters\">Atualizações de capítulos</string>\n    <string name=\"secure_screen_summary\">Ecrã seguro esconde os conteúdos da app durante a troca de apps e impedir capturas de ecrã</string>\n    <string name=\"pref_category_display\">Visualização</string>\n    <string name=\"notification_chapters_single_and_more\">Capítulo %1$s e %2$d mais</string>\n    <string name=\"notification_chapters_multiple\">Capítulos %1$s</string>\n    <string name=\"hide_notification_content\">Esconder conteúdo das notificações</string>\n    <string name=\"pref_disable_battery_optimization\">Desativar otimização de bateria</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Ajuda com a atualização e cópia de segurança da biblioteca em segundo plano</string>\n    <string name=\"battery_optimization_disabled\">A otimização de bateria já está desativada</string>\n    <string name=\"email\">Endereço de e-mail</string>\n    <string name=\"pref_always_show_chapter_transition\">Mostrar sempre transição entre capítulos</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_newest\">Mais novos</string>\n    <string name=\"action_oldest\">Mais antigos</string>\n    <string name=\"action_move_to_top\">Mover para o topo</string>\n    <string name=\"action_move_to_bottom\">Mover para o final</string>\n    <string name=\"notification_chapters_single\">Capítulo %1$s</string>\n    <string name=\"channel_ext_updates\">Atualizações de extensão</string>\n    <string name=\"updating_library\">Atualizando biblioteca</string>\n    <string name=\"pinned_sources\">Fixado</string>\n    <string name=\"pref_webtoon_side_padding\">Preenchimento lateral</string>\n    <string name=\"pref_category_reading\">Lendo</string>\n    <string name=\"vertical_plus_viewer\">Página longa com espaços</string>\n    <string name=\"pref_skip_filtered_chapters\">Ignorar capítulos filtrados</string>\n    <string name=\"action_unpin\">Desafixar</string>\n    <string name=\"action_pin\">Afixar</string>\n    <string name=\"action_select_inverse\">Seleção inversa</string>\n    <string name=\"label_sources\">Fontes</string>\n    <string name=\"website\">Sítio Web</string>\n    <string name=\"restoring_backup_canceled\">Restauro cancelado</string>\n    <string name=\"restoring_backup_error\">Restauro da cópia de segurança falhou</string>\n    <string name=\"restore_in_progress\">Restauro já em progresso</string>\n    <string name=\"creating_backup_error\">Cópia de segurança falhou</string>\n    <string name=\"backup_in_progress\">Cópia de segurança já em progresso</string>\n    <string name=\"label_downloaded_only\">Apenas transferidos</string>\n    <string name=\"information_webview_required\">WebView é necessária para Mihon</string>\n    <string name=\"recent_manga_time\">Cap. %1$s - %2$s</string>\n    <string name=\"add_tracking\">Adicionar à monitorização</string>\n    <string name=\"manga_info_collapse\">Menos</string>\n    <string name=\"manga_info_expand\">Mais</string>\n    <string name=\"in_library\">Na biblioteca</string>\n    <string name=\"add_to_library\">Adicionar à biblioteca</string>\n    <string name=\"local_source_help_guide\">Guia de fonte local</string>\n    <string name=\"last_used_source\">Último usado</string>\n    <string name=\"check_for_updates\">Verificar por atualizações</string>\n    <string name=\"licenses\">Licenças de código aberto</string>\n    <string name=\"downloaded_only_summary\">Filtra todos os itens nasua biblioteca</string>\n    <string name=\"restore_duration\">%1$02d min., %2$02d seg.</string>\n    <string name=\"gray_background\">Cinza</string>\n    <string name=\"viewer\">Modo de leitura</string>\n    <string name=\"pref_category_for_this_series\">Para esta série</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Não foi possível abrir as definições do aparelho</string>\n    <string name=\"pref_refresh_library_covers\">Atualizar capas da biblioteca</string>\n    <string name=\"tracking_info\">Sincronização unidirecional para atualizar o progresso dos capítulos nos serviços de monitoramento. Configure o monitoramento para itens individuais a partir dos botões de monitoramento deles.</string>\n    <string name=\"pref_show_reading_mode_summary\">Mostra brevemente o modo atual quando o leitor é aberto</string>\n    <string name=\"page_list_empty_error\">Nenhuma página encontrada</string>\n    <string name=\"sort_by_upload_date\">Por data de envio</string>\n    <string name=\"tabs_header\">Abas</string>\n    <string name=\"label_data\">Dados</string>\n    <string name=\"backup_restore_missing_sources\">Fontes em falta:</string>\n    <string name=\"invalid_backup_file_missing_manga\">O backup não possui nenhum item da biblioteca.</string>\n    <string name=\"invalid_backup_file\">Ficheiro de cópia de segurança inválido:</string>\n    <string name=\"pref_show_reading_mode\">Mostrar modo de leitura</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Procurar nova capa e detalhes quando a biblioteca atualizar</string>\n    <string name=\"pref_library_update_refresh_metadata\">Atualizar automaticamente os metadados</string>\n    <string name=\"action_display_show_tabs\">Mostrar separadores de categoria</string>\n    <string name=\"action_display_comfortable_grid\">Grelha confortável</string>\n    <string name=\"action_migrate\">Migrar</string>\n    <string name=\"action_disable_all\">Desativar todas</string>\n    <string name=\"action_enable_all\">Ativar todas</string>\n    <string name=\"action_start\">Iniciar</string>\n    <string name=\"action_disable\">Desativar</string>\n    <string name=\"tapping_inverted_both\">Ambos</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"tapping_inverted_none\">Nenhum</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverter zonas toque</string>\n    <string name=\"loader_not_implemented_error\">Fonte não encontrada</string>\n    <string name=\"unknown_status\">Estado desconhecido</string>\n    <string name=\"unknown_author\">Autor desconhecido</string>\n    <string name=\"requires_app_restart\">Requer reinício da app para ter efeito</string>\n    <string name=\"label_network\">Rede</string>\n    <string name=\"updated_version\">Atualizado para v%1$s</string>\n    <string name=\"whats_new\">Novidades</string>\n    <string name=\"download_insufficient_space\">Não foi possível transferir capítulos devido a falta de espaço de armazenamento</string>\n    <string name=\"action_global_search_query\">Procurar por \\\"%1$s\\\" globalmente</string>\n    <string name=\"pref_category_reading_mode\">Modo de leitura</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Data de adição</string>\n    <string name=\"no_pinned_sources\">Você não possui fontes fixadas</string>\n    <string name=\"channel_complete\">Completo</string>\n    <string name=\"channel_progress\">Progresso</string>\n    <string name=\"channel_errors\">Erros</string>\n    <string name=\"backup_restore_missing_trackers\">Monitorizadores sem sessão iniciada:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permitir a eliminação de capítulos marcados</string>\n    <string name=\"pref_category_delete_chapters\">Eliminar capítulos</string>\n    <string name=\"ext_nsfw_warning\">Fontes desta extensão poderão conter conteúdo NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Isto não impede extensões não oficiais ou incorretamente marcadas de mostrarem conteúdo NSFW (18+) dentro da app.</string>\n    <string name=\"no_chapters_error\">Nenhum capítulo encontrado</string>\n    <string name=\"chapter_settings_updated\">Definições padrão de capítulo atualizadas</string>\n    <string name=\"confirm_set_chapter_settings\">Tem certeza de que quer guardar estas definições como padrão?</string>\n    <string name=\"chapter_settings\">Definições dos capítulos</string>\n    <string name=\"share_page_info\">%1$s: %2$s, página %3$d</string>\n    <string name=\"set_chapter_settings_as_default\">Definir como padrão</string>\n    <string name=\"also_set_chapter_settings_for_library\">Também aplicar a todos os itens na minha biblioteca</string>\n    <string name=\"action_search_settings\">Definições de pesquisa</string>\n    <string name=\"downloaded_chapters\">Capítulos descarregados</string>\n    <string name=\"manga_from_library\">Da biblioteca</string>\n    <string name=\"pref_incognito_mode_summary\">Pausa histórico de leitura</string>\n    <string name=\"pref_incognito_mode\">Modo incógnito</string>\n    <string name=\"pref_clear_history\">Eliminar histórico</string>\n    <string name=\"clear_history_confirmation\">Tem a certeza? Todo o histórico será perdido.</string>\n    <string name=\"clear_history_completed\">Histórico eliminado</string>\n    <string name=\"pref_category_nsfw_content\">Conteúdo 18+ (NSFW)</string>\n    <string name=\"spen_next_page\">Página seguinte</string>\n    <string name=\"spen_previous_page\">Página anterior</string>\n    <string name=\"migration_help_guide\">Guia de migração de fonte</string>\n    <string name=\"file_picker_error\">Não foi encontrada nenhuma app de seleção de ficheiros</string>\n    <string name=\"myanimelist_relogin\">Por favor inicie sessão no MAL novamente</string>\n    <string name=\"pref_show_nsfw_source\">Mostrar na lista de fontes e extensões</string>\n    <string name=\"pref_viewer_nav\">Zonas de toque</string>\n    <string name=\"kindlish_nav\">Estilo Kindle</string>\n    <string name=\"l_nav\">Em forma de L</string>\n    <string name=\"action_desc\">Descendente</string>\n    <string name=\"action_asc\">Ascendente</string>\n    <string name=\"action_order_by_chapter_number\">Por número do capítulo</string>\n    <string name=\"action_order_by_upload_date\">Por data de envio</string>\n    <string name=\"action_filter_tracked\">Monitorizado</string>\n    <string name=\"edge_nav\">Borda</string>\n    <string name=\"track_finished_reading_date\">Data de conclusão</string>\n    <string name=\"track_started_reading_date\">Data de início</string>\n    <string name=\"pref_dump_crash_logs\">Compartilhar registros de falha</string>\n    <string name=\"pref_dump_crash_logs_summary\">Guarda registos de erros num ficheiro para partilhar com os desenvolvedores</string>\n    <string name=\"action_display_show_number_of_items\">Mostrar número de itens</string>\n    <string name=\"right_and_left_nav\">Direita e Esquerda</string>\n    <string name=\"pref_dual_page_split\">Dividir as páginas longas</string>\n    <string name=\"pref_dual_page_invert_summary\">Se a posição das páginas longas divididas não se adequar ao modo de leitura</string>\n    <string name=\"pref_dual_page_invert\">Inverter a posição das páginas divididas</string>\n    <string name=\"backup_restore_content_full\">Pode ter que instalar quaisquer extensões em falta e iniciar a sessão para rastrear os serviços depois de os utilizar.</string>\n    <string name=\"nav_zone_right\">Direita</string>\n    <string name=\"nav_zone_left\">Esquerda</string>\n    <string name=\"nav_zone_next\">Seguinte</string>\n    <string name=\"nav_zone_prev\">Anterior</string>\n    <string name=\"pref_show_navigation_mode_summary\">Brevemente mostrar quando o leitor é aberto</string>\n    <string name=\"pref_show_navigation_mode\">Mostrar sobreposição das zonas de toque</string>\n    <string name=\"none\">Nenhum</string>\n    <string name=\"pref_dns_over_https\">DNS por HTTPS (DoH)</string>\n    <string name=\"pref_category_auto_download\">Transferir automaticamente</string>\n    <string name=\"update_check_eol\">Esta versão do Android não é mais suportada</string>\n    <string name=\"clipboard_copy_error\">Falha ao copiar para a área de transferência</string>\n    <string name=\"pref_download_new_categories_details\">Os itens nas categorias excluídas não serão disponibilizados offline mesmo que eles também estejam nas categorias incluídas.</string>\n    <string name=\"exclude\">Excluir: %s</string>\n    <string name=\"include\">Incluir: %s</string>\n    <string name=\"pref_library_update_categories_details\">Os itens nas categorias excluídas não serão atualizados mesmo que eles também estejam nas categorias incluídas.</string>\n    <string name=\"action_show_errors\">Toque para ver detalhes</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data de procura do capítulo</string>\n    <string name=\"rotation_landscape\">Horizontal</string>\n    <string name=\"rotation_portrait\">Vertical</string>\n    <string name=\"rotation_type\">Tipo de rotação</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Cria as pastas usando os títulos dos itens</string>\n    <string name=\"pref_create_folder_per_manga\">Guarda páginas em pastas separadas</string>\n    <string name=\"pref_reader_actions\">Ações</string>\n    <string name=\"pref_grayscale\">Tons de cinzento</string>\n    <string name=\"date\">Data</string>\n    <string name=\"local_filter_order_by\">Ordenar por</string>\n    <string name=\"local_invalid_format\">Formato de capítulo inválido</string>\n    <string name=\"chapter_not_found\">Capítulo não encontrado</string>\n    <string name=\"automatic_background\">Automático</string>\n    <string name=\"off\">Desligado</string>\n    <string name=\"on\">Ligado</string>\n    <string name=\"theme_yinyang\">Yin e Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri de Morango</string>\n    <string name=\"theme_midnightdusk\">Crepúsculo da Meia-Noite</string>\n    <string name=\"theme_greenapple\">Maçã Verde</string>\n    <string name=\"pref_app_theme\">Tema da aplicação</string>\n    <string name=\"action_start_downloading_now\">Começar a transferir agora</string>\n    <string name=\"cancel_all_for_series\">Cancelar tudo para esta série</string>\n    <string name=\"unread\">Não Lido</string>\n    <string name=\"error_sharing_cover\">Erro ao partilhar capa</string>\n    <string name=\"error_saving_cover\">Erro ao guardar capa</string>\n    <string name=\"cover_saved\">Capa guardada</string>\n    <string name=\"manga_cover\">Capa</string>\n    <string name=\"notification_incognito_text\">Desativar o modo incógnito</string>\n    <string name=\"about_dont_kill_my_app\">Alguns fabricantes têm restrições adicionais de aplicação que desligam os serviços em segundo plano. Este sítio web tem mais informações sobre como corrigi-lo.</string>\n    <string name=\"restore_miui_warning\">Restauros de cópias de segurança podem não funcionar corretamente se a otimização MIUI estiver desativada.</string>\n    <string name=\"tracking_guide\">Guia de monitorização</string>\n    <string name=\"categorized_display_settings\">Configurações por categoria para ordenação e exibição</string>\n    <string name=\"restrictions\">Restrições: %s</string>\n    <string name=\"pref_dark_theme_pure_black\">Modo escuro preto puro</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"action_display_local_badge\">Fonte local</string>\n    <string name=\"information_empty_category_dialog\">Ainda não tens nenhuma categoria.</string>\n    <string name=\"error_no_match\">Nenhuma correspondência encontrada</string>\n    <string name=\"source_unsupported\">Fonte não é suportada</string>\n    <string name=\"enhanced_tracking_info\">Serviços que oferecem recursos aprimorados para fontes específicas. Os itens são automaticamente monitorados quando adicionados na sua biblioteca.</string>\n    <string name=\"enhanced_services\">Serviços melhorados</string>\n    <string name=\"getting_started_guide\">Guia de introdução</string>\n    <string name=\"theme_tealturquoise\">Azul-petróleo e Turquesa</string>\n    <string name=\"relative_time_today\">Hoje</string>\n    <string name=\"theme_monet\">Dinâmico</string>\n    <string name=\"label_warning\">Aviso</string>\n    <string name=\"confirm_lock_change\">Autenticar para confirmar a alteração</string>\n    <string name=\"label_default\">Predefinição</string>\n    <string name=\"action_sort_count\">Total de entradas</string>\n    <string name=\"action_display_language_badge\">Idioma</string>\n    <string name=\"pref_category_appearance\">Aparência</string>\n    <string name=\"connected_to_wifi\">Só com Wi-Fi</string>\n    <string name=\"update_72hour\">A cada 3 dias</string>\n    <string name=\"ext_update_all\">Atualizar tudo</string>\n    <string name=\"ext_app_info\">Informações da app</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instale e inicie o Shizuku para utilizá-lo como o instalador de extensões.</string>\n    <string name=\"pref_verbose_logging_summary\">Imprimir registos detalhados no registo de eventos do sistema (reduz o desempenho da app)</string>\n    <string name=\"action_track\">Monitorizar</string>\n    <string name=\"save_chapter_as_cbz\">Guardar como ficheiro CBZ</string>\n    <string name=\"clear_database_source_item_count\">%1$d itens que não estão na biblioteca no banco de dados</string>\n    <string name=\"database_clean\">Nada para limpar</string>\n    <string name=\"download_queue_size_warning\">Aviso: downloads grandes em massa podem levar as fontes a ficarem lentas e/ou começarem a bloquear o %s. Toque para saber mais.</string>\n    <string name=\"notification_size_warning\">Grandes atualizações prejudicam as fontes e podem levar a atualizações lentas e ainda ao aumento do uso da bateria. Toque para saber mais.</string>\n    <string name=\"library_errors_help\">Para obter ajuda sobre como corrigir erros de atualização da biblioteca, veja %1$s</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Limpar a cache de capítulos ao fechar a app</string>\n    <string name=\"pref_update_only_completely_read\">Com capítulo(s) não lidos</string>\n    <string name=\"pref_hide_threshold\">Sensibilidade para ocultar menu ao deslocar</string>\n    <string name=\"pref_high\">Alta</string>\n    <string name=\"pref_low\">Baixa</string>\n    <string name=\"pref_lowest\">Mais baixa</string>\n    <string name=\"pref_remove_exclude_categories\">Categorias excluídas</string>\n    <string name=\"label_background_activity\">Atividade em segundo plano</string>\n    <string name=\"channel_app_updates\">Atualizações da app</string>\n    <string name=\"pref_inverted_colors\">Invertido</string>\n    <string name=\"backup_info\">Deve manter cópias em outros locais também.</string>\n    <string name=\"pref_tablet_ui_mode\">Interface de tablet</string>\n    <string name=\"pref_verbose_logging\">Registo de eventos detalhado</string>\n    <string name=\"privacy_policy\">Política de privacidade</string>\n    <string name=\"extension_api_error\">Falha ao obter a lista de extensões</string>\n    <string name=\"ext_install_service_notif\">Instalando a extensão…</string>\n    <string name=\"ext_installer_pref\">Instalador</string>\n    <string name=\"ext_installer_legacy\">Legado</string>\n    <string name=\"ext_installer_shizuku_stopped\">O Shizuku não está em execução</string>\n    <string name=\"help_translate\">Ajude a traduzir</string>\n    <string name=\"pref_highest\">Mais alta</string>\n    <string name=\"on_hiatus\">Em hiato</string>\n    <string name=\"publishing_finished\">Publicação concluída</string>\n    <string name=\"cancelled\">Cancelado</string>\n    <string name=\"action_show_manga\">Mostrar entrada</string>\n    <string name=\"disabled_nav\">Desativado</string>\n    <string name=\"action_display_cover_only_grid\">Grelha apenas de capas</string>\n    <string name=\"action_close\">Fechar</string>\n    <string name=\"action_move_to_top_all_for_series\">Mover séries para o topo</string>\n    <string name=\"skipped_reason_completed\">Ignorado porque a séria está completa</string>\n    <string name=\"skipped_reason_not_started\">Ignorado porque nenhum capítulo foi lido</string>\n    <string name=\"skipped_reason_not_caught_up\">Ignorado porque existem capítulos não lidos</string>\n    <string name=\"empty_backup_error\">Sem entradas na biblioteca para fazer cópia de segurança</string>\n    <string name=\"pref_update_only_started\">Que não começaram a ser lidos</string>\n    <string name=\"pref_clear_webview_data\">Limpar dados do WebView</string>\n    <string name=\"webview_data_deleted\">Dados do WebView limpos</string>\n    <string name=\"rotation_reverse_portrait\">Vertical invertido</string>\n    <string name=\"source_filter_empty_screen\">Nenhuma fonte instalada encontrada</string>\n    <string name=\"notification_update_error\">%1$d actualização(ões) falhada(s)</string>\n    <string name=\"learn_more\">Toque para saber mais</string>\n    <string name=\"pref_navigate_pan\">Imagens panorâmicas</string>\n    <string name=\"pref_landscape_zoom\">Ampliar imagem horizontal</string>\n    <string name=\"update_check_open\">Abrir no GitHub</string>\n    <string name=\"error_saving_picture\">Erro ao guardar a imagem</string>\n    <string name=\"action_sort_last_manga_update\">Última verificação da atualização</string>\n    <string name=\"action_sort_unread_count\">Contagem de não lidos</string>\n    <string name=\"split_tall_images_summary\">Melhora o desempenho do leitor</string>\n    <string name=\"empty_screen\">Bem, isto é estranho</string>\n    <string name=\"pref_reset_viewer_flags_error\">Não foi possível repor as definições do leitor</string>\n    <string name=\"pref_reset_viewer_flags_success\">Todas as definições do leitor reiniciadas</string>\n    <string name=\"source_empty_screen\">Nenhuma fonte encontrada</string>\n    <string name=\"download_notifier_split_page_not_found\">Página %d não encontrada durante a divisão</string>\n    <string name=\"pref_reset_viewer_flags\">Repor as definições do leitor por série</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Repõe o modo de leitura e orientação de todas as séries</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Não foi possível encontrar o caminho do ficheiro da página %d</string>\n    <string name=\"multi_lang\">Multi</string>\n    <string name=\"auto_download_while_reading\">Transferência automática durante leitura</string>\n    <string name=\"delete_category_confirmation\">Deseja eliminar a categoria \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Eliminar categoria</string>\n    <string name=\"internal_error\">InternalError: Verifique registos de falhas para mais informações</string>\n    <string name=\"error_user_agent_string_blank\">Cadeia de agente de utilizador não pode estar em branco</string>\n    <string name=\"are_you_sure\">Tem a certeza?</string>\n    <string name=\"updates_last_update_info\">Última atualização da biblioteca: %s</string>\n    <string name=\"appwidget_updates_description\">Veja os seus itens da biblioteca atualizados recentemente</string>\n    <string name=\"remove_manga\">Está prestes a remover \\\"%s\\\" da sua biblioteca</string>\n    <string name=\"download_ahead_info\">Funciona apenas se o capítulo atual, mais o próximo, já estiverem transferidos.</string>\n    <string name=\"theme_tidalwave\">Maremoto</string>\n    <string name=\"pref_app_language\">Idioma da aplicação</string>\n    <string name=\"ext_info_version\">Versão</string>\n    <string name=\"ext_info_language\">Idioma</string>\n    <string name=\"description_placeholder\">Sem descrição</string>\n    <string name=\"complete_list\">Lista de Completos</string>\n    <string name=\"wish_list\">Lista de Desejos</string>\n    <string name=\"unfinished_list\">Lista de Inacabados</string>\n    <string name=\"update_already_running\">Uma atualização já está a correr</string>\n    <string name=\"appwidget_unavailable_locked\">Widget não disponível quando o bloqueio de aplicações está ativo</string>\n    <string name=\"network_not_metered\">Apenas em redes com tráfego ilimitado</string>\n    <string name=\"download_ahead\">Transferência em antecedência</string>\n    <string name=\"on_hold_list\">Lista dos Em Espera</string>\n    <string name=\"ext_info_age_rating\">Classificação etária</string>\n    <string name=\"pref_reset_user_agent_string\">Redefinir cadeia de agente de utilizador predefinido</string>\n    <string name=\"pref_user_agent_string\">Cadeia de agente de utilizador padrão</string>\n    <string name=\"not_installed\">Não instalado</string>\n    <string name=\"cant_open_last_read_chapter\">Incapaz de abrir último capítulo lido</string>\n    <string name=\"custom_cover\">Capa personalizada</string>\n    <string name=\"reading_list\">Lista dos Em Leitura</string>\n    <string name=\"action_remove_everything\">Remover tudo</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"popular\">Famoso</string>\n    <string name=\"skipped_reason_not_always_update\">Ignorado porque a série não requer atualizações</string>\n    <string name=\"action_search_hint\">Pesquisar…</string>\n    <string name=\"missing_storage_permission\">Permissões de armazenamento não concedidas</string>\n    <string name=\"action_display_show_continue_reading_button\">Botão de continuar a ler</string>\n    <string name=\"pref_appearance_summary\">Tema, data e formato de hora</string>\n    <string name=\"pref_library_summary\">Categorias, atualização global, trocar de capítulo</string>\n    <string name=\"pref_reader_summary\">Modo leitura, exibir, navegação</string>\n    <string name=\"action_open_random_manga\">Abrir entrada aleatória</string>\n    <string name=\"label_stats\">Estatísticas</string>\n    <string name=\"label_started\">Começado</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_downloaded\">Transferido</string>\n    <string name=\"unknown_title\">Título desconhecido</string>\n    <string name=\"copied_to_clipboard_plain\">Copiado para a área de transferência</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"updates_last_update_info_just_now\">Agora mesmo</string>\n    <string name=\"crash_screen_restart_application\">Reinicie o aplicativo</string>\n    <string name=\"crash_screen_title\">Ops!</string>\n    <string name=\"crash_screen_description\">%s encontrou um erro inesperado. Sugerimos que você compartilhe os registros de falha em nosso canal de suporte no Discord.</string>\n    <string name=\"pref_downloads_summary\">Descarga automática, descarga a frente</string>\n    <string name=\"pref_tracking_summary\">Sincronização de progresso unidirecional, sincronização aprimorada</string>\n    <string name=\"pref_browse_summary\">Fontes, extensões, pesquisa global</string>\n    <string name=\"pref_backup_summary\">Backups manuais e automáticos</string>\n    <string name=\"information_no_manga_category\">A categoria está vazia</string>\n    <string name=\"track_remove_start_date_conf_text\">Isto irá remover a sua data de início selecionada anteriormente no %s</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"pref_library_update_show_tab_badge\">Mostrar a contagem no ícone de Atualizações</string>\n    <string name=\"pref_skip_dupe_chapters\">Pular capítulos duplicados</string>\n    <string name=\"error_user_agent_string_invalid\">Valor de user agent inválido</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"label_titles_in_global_update\">Na atualização global</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_read_chapters\">Lidos</string>\n    <string name=\"label_tracker_section\">Monitoradores</string>\n    <string name=\"invalid_location\">Local inválido: %s</string>\n    <string name=\"track_error\">Erro em %1$s: %2$s</string>\n    <string name=\"label_titles_section\">Itens</string>\n    <string name=\"label_read_duration\">Duração de leitura</string>\n    <string name=\"pref_security_summary\">Bloqueio da app, ecrã seguro</string>\n    <string name=\"pref_advanced_summary\">Exportar registos de travamento, otimizações de bateria</string>\n    <string name=\"pref_invalidate_download_cache\">Reindexar descargas</string>\n    <string name=\"track_remove_finish_date_conf_text\">Isto irá remover a sua data de término selecionada anteriormente no %s</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"action_not_now\">Agora não</string>\n    <string name=\"label_tracked_titles\">Itens monitorados</string>\n    <string name=\"label_mean_score\">Pontuação média</string>\n    <string name=\"label_used\">Usados</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"download_notifier_cache_renewal\">A verificar as transferências</string>\n    <string name=\"track_remove_date_conf_title\">Remover data?</string>\n    <string name=\"label_overview_section\">Visão geral</string>\n    <string name=\"label_completed_titles\">Itens completos</string>\n    <string name=\"information_required_plain\">*obrigatório</string>\n    <string name=\"enhanced_services_not_installed\">Disponíveis, mas a fonte não está instalada: %s</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Força a app a controlar novamente por capítulos disponíveis offline</string>\n    <string name=\"fdroid_warning\">Compilações do F-Droid não são suportadas oficialmente.\n\\nToque para saber mais.</string>\n    <string name=\"information_no_entries_found\">Nenhum item encontrado nesta categoria</string>\n    <string name=\"action_copy_to_clipboard\">Copiar para a área de transferência</string>\n    <string name=\"pref_hide_in_library_items\">Ocultar entradas existentes na biblioteca</string>\n    <string name=\"action_update_category\">Atualizar categoria</string>\n    <string name=\"split_tall_images\">Dividir Imagens altas</string>\n    <string name=\"overlay_header\">Sobreposição</string>\n    <string name=\"pref_page_rotate\">Girar páginas largas para caber</string>\n    <string name=\"pref_page_rotate_invert\">Virar a orientação de páginas largas giradas</string>\n    <string name=\"pref_chapter_swipe_start\">Capítulo ao deslizar para a esquerda</string>\n    <string name=\"pref_double_tap_zoom\">Toque duplo para aproximar</string>\n    <string name=\"action_set_interval\">Definir intervalo</string>\n    <string name=\"pref_update_only_in_release_period\">Fora do período esperado de lançamento</string>\n    <string name=\"pref_debug_info\">Informações de depuração</string>\n    <string name=\"pref_chapter_swipe_end\">Capítulo ao deslizar para a direita</string>\n    <string name=\"intervals_header\">intervalos</string>\n    <string name=\"manga_display_interval_title\">Estimado a cada</string>\n    <string name=\"action_filter_interval_custom\">Frequência da atualização personalizada</string>\n    <string name=\"action_sort_next_updated\">Próxima atualização esperada</string>\n    <string name=\"manga_display_modified_interval_title\">Definido para atualizar a cada</string>\n    <string name=\"skipped_reason_not_in_release_period\">Pulado, pois nenhum lançamento é esperado para hoje</string>\n    <string name=\"delete_downloaded\">Eliminar transferido</string>\n    <string name=\"selected\">Selecionado</string>\n    <string name=\"not_selected\">Não selecionado</string>\n    <string name=\"action_menu_overflow_description\">Mais opções</string>\n    <string name=\"action_bar_up_description\">Navegar para cima</string>\n    <string name=\"unlock_app_title\">Desbloquear %s</string>\n    <string name=\"label_data_storage\">Dados e armazenamento</string>\n    <string name=\"pref_storage_usage\">Uso de armazenamento</string>\n    <string name=\"available_disk_space_info\">Disponível: %1$s / Total: %2$s</string>\n    <string name=\"download_cache_invalidated\">Índice de descargas invalidado</string>\n    <string name=\"exception_unknown_host\">Não foi possível resolver %s</string>\n    <string name=\"manga_interval_custom_amount\">Frequência de atualização personalizada:</string>\n    <string name=\"track_delete_title\">Remover o monitoramento do %s?</string>\n    <string name=\"file_null_uri_error\">Nenhum ficheiro selecionado</string>\n    <string name=\"information_cloudflare_help\">Toque aqui para obter ajuda com o Cloudflare</string>\n    <string name=\"action_delete_repo\">Deletar repositório</string>\n    <string name=\"action_add_anyway\">Adicionar de qualquer maneira</string>\n    <string name=\"onboarding_permission_notifications_description\">Seja notificado para atualizações da biblioteca e mais.</string>\n    <string name=\"onboarding_guides_returning_user\">A reinstalar o %s?</string>\n    <string name=\"pref_relative_format\">Datas relativas</string>\n    <string name=\"ext_permission_install_apps_warning\">Permissões são necessárias para instalar extensões. Toque aqui para conceder.</string>\n    <string name=\"information_empty_repos\">Não tem repositórios definidos.</string>\n    <string name=\"action_add_repo\">Adicionar repositório</string>\n    <string name=\"label_add_repo_input\">URL do repositório</string>\n    <string name=\"pref_display_profile\">Perfil de exibição personalizado</string>\n    <string name=\"exception_offline\">Sem conexão de internet</string>\n    <string name=\"action_replace_repo\">Substituir</string>\n    <string name=\"action_replace_repo_title\">A impressão digital da chave de assinatura já existe</string>\n    <string name=\"pref_flash_page\">Flash ao mudar de página</string>\n    <string name=\"pref_storage_location\">Local de armazenamento</string>\n    <string name=\"action_create\">Criar</string>\n    <string name=\"app_settings\">Configurações da app</string>\n    <string name=\"syncing_library\">A sincronizar a biblioteca</string>\n    <string name=\"notification_updating_progress\">A atualizar a biblioteca… (%s)</string>\n    <string name=\"exception_http\">HTTP %d, verifique o site na WebView</string>\n    <string name=\"action_sort_tracker_score\">Pontuação do monitorizador</string>\n    <string name=\"action_apply\">Aplicar</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"action_revert_to_default\">Reverter para predefinição</string>\n    <string name=\"onboarding_heading\">Bem-vindo(a)!</string>\n    <string name=\"onboarding_action_skip\">Pular</string>\n    <string name=\"onboarding_storage_action_select\">Selecionar uma pasta</string>\n    <string name=\"onboarding_storage_selection_required\">Uma pasta deve ser selecionada</string>\n    <string name=\"onboarding_storage_help_info\">A atualizar de uma versão anterior e não tem certeza do que selecionar? Consulte o guia de armazenamento para mais informações.</string>\n    <string name=\"onboarding_storage_help_action\">Guia de armazenamento</string>\n    <string name=\"onboarding_permission_install_apps\">Permissão de instalação de apps</string>\n    <string name=\"onboarding_permission_install_apps_description\">Para instalar extensões de fontes.</string>\n    <string name=\"onboarding_permission_notifications\">Permissão de notificação</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Uso de pilha em plano de fundo</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Evite interrupções para tarefas longas como atualizações da biblioteca, descargas e restauração de backups.</string>\n    <string name=\"onboarding_permission_action_grant\">Conceder</string>\n    <string name=\"onboarding_guides_new_user\">Novo no %s? Recomendamos dar uma olhada no guia de introdução.</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" ao invés de \\\"%2$s\\\"</string>\n    <string name=\"action_add_repo_message\">Adiciona repositórios adicionais ao %s. Deve ser uma URL que termine com \\\"index.min.json\\\".</string>\n    <string name=\"invalid_repo_name\">URL do repositório inválido</string>\n    <string name=\"delete_repo_confirmation\">Deseja deletar o repositório \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Abrir repositório da fonte</string>\n    <string name=\"action_replace_repo_message\">O repositório %1$s tem a mesma impressão digital da chave de assinatura que %2$s.\n\\nSe isto for esperado, %2$s será substituído, caso contrário, entre em contato com o mantenedor do repositório.</string>\n    <string name=\"pref_flash_page_summ\">Reduz o efeito fantasma em ecrãs de e-ink</string>\n    <string name=\"invalid_backup_file_error\">Erro completo:</string>\n    <string name=\"source_settings\">Configurações das fontes</string>\n    <string name=\"private_settings\">Incluir configurações sensíveis (tokens de login dos monitoradores, por exemplo)</string>\n    <string name=\"create_backup_file_error\">Não foi possível criar o ficheiro do backup</string>\n    <string name=\"has_results\">Há resultados</string>\n    <string name=\"manga_interval_expected_update_soon\">Em breve</string>\n    <string name=\"relative_time_span_never\">Nunca</string>\n    <string name=\"upcoming_guide\">Guia de próximos lançamentos</string>\n    <string name=\"upcoming_calendar_next\">Próximo mês</string>\n    <string name=\"upcoming_calendar_prev\">Mês anterior</string>\n    <string name=\"track_delete_remote_text\">Também remover do %s</string>\n    <string name=\"onboarding_description\">Vamos definir algumas coisas primeiro. Sempre pode fazer alterações nas configurações depois também.</string>\n    <string name=\"onboarding_action_next\">Próximo</string>\n    <string name=\"onboarding_action_finish\">Começar</string>\n    <string name=\"onboarding_storage_info\">Escolha uma pasta onde o %1$s irá armazenar as descargas de capítulos, backups e mais.\n\\n\n\\nUma pasta dedicada é recomendada.\n\\n\n\\nPasta selecionada: %2$s</string>\n    <string name=\"exclude_scanlators\">Apagar scanlators</string>\n    <string name=\"no_scanlators_found\">Nenhum scanlator encontrado</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Mover série para o fim</string>\n    <string name=\"pref_onboarding_guide\">Guia de introdução</string>\n    <string name=\"pref_library_update_smart_update\">Atualização inteligente</string>\n    <string name=\"ext_revoke_trust\">Revogar a confiabilidade de extensões desconhecidas</string>\n    <string name=\"label_extension_repos\">Repositórios de extensões</string>\n    <string name=\"error_repo_exists\">Este repositório já existe!</string>\n    <string name=\"no_location_set\">Local de armazenamento não definido</string>\n    <string name=\"track_activity_name\">Login do monitorador</string>\n    <string name=\"pref_storage_location_info\">Usado para backups automáticos, descargas de capítulos e na fonte local.</string>\n    <string name=\"last_auto_backup_info\">Último backup automático feito em: %s</string>\n    <string name=\"library_sync_complete\">Sincronização da biblioteca finalizada</string>\n    <string name=\"manga_interval_expected_update\">Novos capítulos com previsão de serem lançados em torno de %1$s, verificando em torno de cada %2$s.</string>\n    <string name=\"track_delete_text\">Isto irá remover o monitoramento localmente.</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Desativar redução de zoom</string>\n    <string name=\"action_view_upcoming\">Exibir as próximas atualizações</string>\n    <string name=\"label_upcoming\">A seguir</string>\n    <string name=\"non_library_settings\">Todas as entradas lidas</string>\n    <string name=\"action_copy_link\">Copiar hiperligação</string>\n    <string name=\"pref_flash_style_black\">Preto</string>\n    <string name=\"pref_flash_style_white\">Branco</string>\n    <string name=\"invalid_backup_file_json\">Cópia de segurança JSON não suportada</string>\n    <string name=\"invalid_backup_file_unknown\">Ficheiro de Cópia de Segurança corrompido</string>\n    <string name=\"extensionRepo_settings\">Repositórios de Extensões</string>\n    <string name=\"action_sort_random\">Aleatório</string>\n    <string name=\"onboarding_permission_analytics_description\">Enviar dados de utilização anónimos para melhorar funções da aplicação.</string>\n    <string name=\"firebase_summary\">Se enviar os registos de crache e as analíticas irá permitir-nos identificar e resolver problemas, melhorar o desempenho, e realizar futuras atualizações que sejam mais relevantes para as suas necessidades</string>\n    <string name=\"pref_firebase\">Estatíscas e Logs de Crash</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Atualizar progresso quando for marcado como lido</string>\n    <string name=\"manga_interval_expected_update_null\">Este mangá ou está completo ou ainda não tem uma data de lançamento prevista.</string>\n    <string name=\"trackers_updated_summary\">Rastreadores atualizados para o capítulo %d</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Erro ao adquirir o acesso persistente à pasta. A aplicação pode comportar-se inesperadamente.</string>\n    <string name=\"onboarding_permission_crashlytics\">Enviar logs de crash</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Enviar logs de crash anónimos para os desenvolvedores.</string>\n    <string name=\"onboarding_permission_analytics\">Permitir estatísticas</string>\n    <string name=\"pref_security\">Segurança</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_style_white_black\">Branco e Preto</string>\n    <string name=\"ext_remove\">Remover</string>\n    <string name=\"ext_confirm_remove\">Remover Extensão?</string>\n    <string name=\"remove_private_extension_message\">Queres mesmo remover a extensão: \\\"%s\\\"?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Ignorar a transferência dos capítulos lidos duplicados</string>\n    <string name=\"confirm_tracker_update\">Atualizar os rastreadores para o capítulo %d?</string>\n    <string name=\"add_repo_confirmation\">Desejas adicionar o seguinte repositório: \\\"%s\\\"?</string>\n    <string name=\"label_auto\">Automático</string>\n    <string name=\"clear_db_exclude_read\">Manter entradas com capítulos lidos</string>\n    <string name=\"action_notes\">Notas</string>\n    <string name=\"action_edit_notes\">Editar notas</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"scanlator\">Equipa de tradução</string>\n    <string name=\"label_donate\">Doar</string>\n    <string name=\"action_display_unread_badge\">Capítulos não lidos</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/pt-rBR/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Após %1$s minuto</item>\n        <item quantity=\"many\">Após %1$s minutos</item>\n        <item quantity=\"other\">Após %1$s minuto</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d capítulo novo</item>\n        <item quantity=\"many\">%1$d capítulos novos</item>\n        <item quantity=\"other\">%1$d capítulos novos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capítulos %1$s e mais 1</item>\n        <item quantity=\"many\">Capítulos %1$s e mais %2$d</item>\n        <item quantity=\"other\">Capítulos %1$s e mais %2$d</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Para %d item</item>\n        <item quantity=\"many\">Para %d itens</item>\n        <item quantity=\"other\">Para %d itens</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Atualização de extensão disponível</item>\n        <item quantity=\"many\">%d atualizações de extensão disponíveis</item>\n        <item quantity=\"other\">%d atualizações de extensão disponíveis</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s restante</item>\n        <item quantity=\"many\">%1$s restantes</item>\n        <item quantity=\"other\">%1$s restantes</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoria</item>\n        <item quantity=\"many\">%d categorias</item>\n        <item quantity=\"other\">%d categorias</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Concluído em %1$s com %2$s erro</item>\n        <item quantity=\"many\">Concluído em %1$s com %2$s erros</item>\n        <item quantity=\"other\">Concluído em %1$s com %2$s erros</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capítulo</item>\n        <item quantity=\"many\">%1$s capítulos</item>\n        <item quantity=\"other\">%1$s capítulos</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d monitorador</item>\n        <item quantity=\"many\">%d monitoradores</item>\n        <item quantity=\"other\">%d monitoradores</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Pulando %d capítulo, ou ele está faltando na fonte, ou ele foi filtrado</item>\n        <item quantity=\"many\">Pulando %d capítulos, ou eles estão faltando na fonte, ou eles foram filtrados</item>\n        <item quantity=\"other\">Pulando %d capítulos, ou eles estão faltando na fonte, ou eles foram filtrados</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ontem</item>\n        <item quantity=\"many\">%1$d dias atrás</item>\n        <item quantity=\"other\">%1$d dias atrás</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Próximo capítulo não lido</item>\n        <item quantity=\"many\">Próximos %d capítulos não lidos</item>\n        <item quantity=\"other\">Próximos %d capítulos não lidos</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Próximo capítulo</item>\n        <item quantity=\"many\">Próximos %d capítulos</item>\n        <item quantity=\"other\">Próximos %d capítulos</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Faltando %1$s capítulo</item>\n        <item quantity=\"many\">Faltando %1$s capítulos</item>\n        <item quantity=\"other\">Faltando %1$s capítulos</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">%d dia(s)</item>\n        <item quantity=\"many\">%d dias</item>\n        <item quantity=\"other\">%d dias</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repositório(s)</item>\n        <item quantity=\"many\">%d repositórios</item>\n        <item quantity=\"other\">%d repositórios</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Amanhã</item>\n        <item quantity=\"many\">Em %1$d dias</item>\n        <item quantity=\"other\">Em breve</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrar %1$d entrada?</item>\n        <item quantity=\"many\">Migrar %1$d entradas?</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Copiar %1$d entrada?</item>\n        <item quantity=\"many\">Copiar %1$d entradas?</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Uma entrada foi ignorada</item>\n        <item quantity=\"many\">%1$d entradas foram ignoradas</item>\n        <item quantity=\"other\"/>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 página</item>\n        <item quantity=\"many\">%1$s páginas</item>\n        <item quantity=\"other\"></item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/pt-rBR/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nome</string>\n    <string name=\"categories\">Categorias</string>\n    <string name=\"manga\">Itens da biblioteca</string>\n    <string name=\"chapters\">Capítulos</string>\n    <string name=\"track\">Monitoramento</string>\n    <string name=\"history\">Histórico</string>\n    <string name=\"label_settings\">Configurações</string>\n    <string name=\"label_download_queue\">Fila de downloads</string>\n    <string name=\"label_library\">Biblioteca</string>\n    <string name=\"label_recent_manga\">Histórico</string>\n    <string name=\"label_recent_updates\">Atualizações</string>\n    <string name=\"label_backup\">Backup e restauração</string>\n    <string name=\"action_settings\">Configurações</string>\n    <string name=\"action_filter\">Filtrar</string>\n    <string name=\"action_filter_bookmarked\">Favorito</string>\n    <string name=\"action_filter_unread\">Não lido</string>\n    <string name=\"action_filter_empty\">Remover filtros</string>\n    <string name=\"action_sort_alpha\">Alfabeticamente</string>\n    <string name=\"action_sort_total\">Total de capítulos</string>\n    <string name=\"action_sort_last_read\">Último lido</string>\n    <string name=\"action_search\">Pesquisar</string>\n    <string name=\"action_select_all\">Selecionar tudo</string>\n    <string name=\"action_mark_as_read\">Marcar como lido</string>\n    <string name=\"action_mark_as_unread\">Marcar como não lido</string>\n    <string name=\"action_mark_previous_as_read\">Marcar anteriores como lidos</string>\n    <string name=\"action_download\">Fazer download</string>\n    <string name=\"action_bookmark\">Adicionar capítulo aos favoritos</string>\n    <string name=\"action_remove_bookmark\">Remover capítulo dos favoritos</string>\n    <string name=\"action_delete\">Remover</string>\n    <string name=\"action_update_library\">Atualizar biblioteca</string>\n    <string name=\"action_edit\">Editar</string>\n    <string name=\"action_add\">Adicionar</string>\n    <string name=\"action_add_category\">Adicionar categoria</string>\n    <string name=\"action_edit_categories\">Editar categorias</string>\n    <string name=\"action_rename_category\">Renomear categoria</string>\n    <string name=\"action_move_category\">Definir categorias</string>\n    <string name=\"action_edit_cover\">Editar a capa</string>\n    <string name=\"action_pause\">Pausar</string>\n    <string name=\"action_previous_chapter\">Capítulo anterior</string>\n    <string name=\"action_next_chapter\">Próximo capítulo</string>\n    <string name=\"action_retry\">Tentar novamente</string>\n    <string name=\"action_remove\">Remover</string>\n    <string name=\"action_resume\">Retomar</string>\n    <string name=\"action_open_in_browser\">Abrir no navegador</string>\n    <string name=\"action_display_mode\">Modo de visualização</string>\n    <string name=\"action_display\">Visualizar</string>\n    <string name=\"action_display_grid\">Grade compacta</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_cancel\">Cancelar</string>\n    <string name=\"action_sort\">Ordenar</string>\n    <string name=\"action_install\">Instalar</string>\n    <string name=\"action_share\">Compartilhar</string>\n    <string name=\"action_save\">Salvar</string>\n    <string name=\"action_reset\">Redefinir</string>\n    <string name=\"action_undo\">Desfazer</string>\n    <string name=\"action_open_log\">Abrir registro de eventos</string>\n    <string name=\"action_restore\">Restaurar</string>\n    <string name=\"loading\">Carregando…</string>\n    <string name=\"app_not_available\">Aplicativo indisponível</string>\n    <string name=\"pref_category_general\">Geral</string>\n    <string name=\"pref_category_reader\">Leitor</string>\n    <string name=\"pref_category_downloads\">Downloads</string>\n    <string name=\"pref_category_tracking\">Monitoramento</string>\n    <string name=\"pref_category_advanced\">Avançado</string>\n    <string name=\"pref_category_about\">Sobre</string>\n    <string name=\"pref_library_columns\">Itens por linha</string>\n    <string name=\"portrait\">Retrato</string>\n    <string name=\"landscape\">Paisagem</string>\n    <string name=\"pref_library_update_interval\">Atualizações automáticas</string>\n    <string name=\"update_never\">Desligado</string>\n    <string name=\"update_6hour\">A cada 6 horas</string>\n    <string name=\"update_12hour\">A cada 12 horas</string>\n    <string name=\"update_24hour\">Diariamente</string>\n    <string name=\"update_48hour\">A cada 2 dias</string>\n    <string name=\"update_weekly\">Semanalmente</string>\n    <string name=\"all\">Todas</string>\n    <string name=\"pref_library_update_restriction\">Restrições do dispositivo para atualizações automáticas</string>\n    <string name=\"charging\">Quando carregando</string>\n    <string name=\"pref_update_only_non_completed\">Pular itens com o estado \\\"Completo\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Atualizar o progresso após a leitura</string>\n    <string name=\"default_category\">Categoria padrão</string>\n    <string name=\"default_category_summary\">Sempre perguntar</string>\n    <string name=\"pref_fullscreen\">Tela cheia</string>\n    <string name=\"pref_page_transitions\">Animar as transições de página</string>\n    <string name=\"pref_show_page_number\">Mostrar o número da página</string>\n    <string name=\"pref_crop_borders\">Aparar as bordas</string>\n    <string name=\"pref_custom_brightness\">Brilho personalizado</string>\n    <string name=\"pref_custom_color_filter\">Filtro de cor personalizado</string>\n    <string name=\"pref_keep_screen_on\">Manter a tela ligada</string>\n    <string name=\"pref_reader_navigation\">Navegação</string>\n    <string name=\"pref_read_with_volume_keys\">Botões de volume</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverter os botões de volume</string>\n    <string name=\"pref_reader_theme\">Cor de fundo</string>\n    <string name=\"white_background\">Branco</string>\n    <string name=\"black_background\">Preto</string>\n    <string name=\"pref_viewer_type\">Modo de leitura padrão</string>\n    <string name=\"left_to_right_viewer\">Paginado (esquerda para direita)</string>\n    <string name=\"right_to_left_viewer\">Paginado (direita para esquerda)</string>\n    <string name=\"vertical_viewer\">Paginado (vertical)</string>\n    <string name=\"webtoon_viewer\">Tira longa</string>\n    <string name=\"pref_image_scale_type\">Tipo de escala</string>\n    <string name=\"scale_type_fit_screen\">Ajustar à tela</string>\n    <string name=\"scale_type_stretch\">Estender</string>\n    <string name=\"scale_type_fit_width\">Ajustar à largura</string>\n    <string name=\"scale_type_fit_height\">Ajustar à altura</string>\n    <string name=\"scale_type_original_size\">Tamanho original</string>\n    <string name=\"scale_type_smart_fit\">Ajuste inteligente</string>\n    <string name=\"pref_zoom_start\">Posição inicial do zoom</string>\n    <string name=\"zoom_start_automatic\">Automática</string>\n    <string name=\"zoom_start_left\">Esquerda</string>\n    <string name=\"zoom_start_right\">Direita</string>\n    <string name=\"zoom_start_center\">Centro</string>\n    <string name=\"pref_rotation_type\">Orientação padrão</string>\n    <string name=\"rotation_free\">Automática</string>\n    <string name=\"rotation_force_portrait\">Retrato bloqueado</string>\n    <string name=\"rotation_force_landscape\">Paisagem bloqueado</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">Após marcado como lido manualmente</string>\n    <string name=\"pref_remove_after_read\">Excluir automaticamente após a leitura</string>\n    <string name=\"disabled\">Desativado</string>\n    <string name=\"last_read_chapter\">Último capítulo lido</string>\n    <string name=\"second_to_last\">Penúltimo capítulo lido</string>\n    <string name=\"third_to_last\">Antepenúltimo capítulo lido</string>\n    <string name=\"fourth_to_last\">Quarto capítulo lido antes do último</string>\n    <string name=\"fifth_to_last\">Quinto capítulo lido antes do último</string>\n    <string name=\"pref_download_new\">Fazer download de novos capítulos</string>\n    <string name=\"services\">Monitoradores</string>\n    <string name=\"pref_create_backup\">Criar backup</string>\n    <string name=\"pref_create_backup_summ\">Pode ser usado para restaurar a biblioteca atual</string>\n    <string name=\"pref_restore_backup\">Restaurar backup</string>\n    <string name=\"pref_restore_backup_summ\">Restaura a biblioteca de um arquivo de backup</string>\n    <string name=\"pref_backup_interval\">Frequência de backup automático</string>\n    <string name=\"backup_created\">Backup criado</string>\n    <string name=\"restore_completed\">Restauração concluída</string>\n    <string name=\"backup_choice\">Do que você deseja fazer backup?</string>\n    <string name=\"restoring_backup\">Restaurando backup</string>\n    <string name=\"creating_backup\">Criando backup</string>\n    <string name=\"pref_clear_chapter_cache\">Limpar o cache de capítulos</string>\n    <string name=\"used_cache\">Utilizado: %1$s</string>\n    <string name=\"cache_deleted\">Cache limpo. %1$d arquivos excluídos</string>\n    <string name=\"cache_delete_error\">Ocorreu um erro ao limpar</string>\n    <string name=\"pref_clear_cookies\">Limpar os cookies</string>\n    <string name=\"cookies_cleared\">Cookies limpos</string>\n    <string name=\"pref_clear_database\">Limpar o banco de dados</string>\n    <string name=\"pref_clear_database_summary\">Exclui o histórico de itens que não estão salvos em sua biblioteca</string>\n    <string name=\"clear_database_completed\">Entradas excluídas</string>\n    <string name=\"version\">Versão</string>\n    <string name=\"pref_enable_acra\">Enviar relatórios de erro</string>\n    <string name=\"pref_acra_summary\">Ajuda a corrigir eventuais erros. Nenhum dado sensível será enviado</string>\n    <string name=\"login_title\">Fazer login em %1$s</string>\n    <string name=\"username\">Nome de usuário</string>\n    <string name=\"password\">Senha</string>\n    <string name=\"login\">Fazer login</string>\n    <string name=\"login_success\">Login realizado</string>\n    <string name=\"unknown_error\">Erro desconhecido</string>\n    <string name=\"updating_category\">Atualizando categoria</string>\n    <string name=\"no_more_results\">Não há mais resultados</string>\n    <string name=\"local_source\">Fonte local</string>\n    <string name=\"ongoing\">Em andamento</string>\n    <string name=\"unknown\">Desconhecido</string>\n    <string name=\"licensed\">Licenciado</string>\n    <string name=\"remove_from_library\">Remover da biblioteca</string>\n    <string name=\"delete_downloads_for_manga\">Excluir os capítulos disponíveis offline?</string>\n    <string name=\"display_mode_chapter\">Capítulo %1$s</string>\n    <string name=\"chapter_downloading_progress\">Fazendo download (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Erro</string>\n    <string name=\"chapter_paused\">Pausado</string>\n    <string name=\"show_title\">Título da fonte</string>\n    <string name=\"show_chapter_number\">Número do capítulo</string>\n    <string name=\"sort_by_source\">Pela fonte</string>\n    <string name=\"sort_by_number\">Pelo número do capítulo</string>\n    <string name=\"manga_download\">Fazer download</string>\n    <string name=\"download_unread\">Não lidos</string>\n    <string name=\"confirm_delete_chapters\">Você tem certeza que quer excluir os capítulos selecionados?</string>\n    <string name=\"manga_tracking_tab\">Monitoramento</string>\n    <string name=\"reading\">Lendo</string>\n    <string name=\"completed\">Concluído</string>\n    <string name=\"dropped\">Abandonado</string>\n    <string name=\"on_hold\">Em espera</string>\n    <string name=\"plan_to_read\">Planejo ler</string>\n    <string name=\"score\">Avaliação</string>\n    <string name=\"title\">Título</string>\n    <string name=\"status\">Estado</string>\n    <string name=\"error_category_exists\">Já existe uma categoria com este nome!</string>\n    <string name=\"snack_categories_deleted\">Categorias excluídas</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Isso irá remover a data de leitura deste capítulo. Você tem certeza?</string>\n    <string name=\"dialog_with_checkbox_reset\">Redefinir todos os capítulos deste item</string>\n    <string name=\"snack_add_to_library\">Adicionar à biblioteca?</string>\n    <string name=\"picture_saved\">Imagem salva</string>\n    <string name=\"custom_filter\">Filtro personalizado</string>\n    <string name=\"set_as_cover\">Usar como capa</string>\n    <string name=\"cover_updated\">Capa atualizada</string>\n    <string name=\"chapter_progress\">Página: %1$d</string>\n    <string name=\"no_next_chapter\">Próximo capítulo não encontrado</string>\n    <string name=\"decode_image_error\">A imagem não pôde ser carregada</string>\n    <string name=\"confirm_set_image_as_cover\">Usar esta imagem como capa?</string>\n    <string name=\"download_queue_error\">Não foi possível fazer o download dos capítulos. Você pode tentar novamente na seção de downloads</string>\n    <string name=\"notification_new_chapters\">Novos capítulos encontrados</string>\n    <string name=\"notification_cover_update_failed\">Erro ao atualizar a capa</string>\n    <string name=\"notification_first_add_to_library\">Por favor, adicione o item à sua biblioteca antes de fazer isso</string>\n    <string name=\"file_select_cover\">Selecionar imagem de capa</string>\n    <string name=\"file_select_backup\">Selecionar arquivo de backup</string>\n    <string name=\"update_check_confirm\">Fazer download</string>\n    <string name=\"update_check_no_new_updates\">Sem atualizações disponíveis</string>\n    <string name=\"update_check_notification_download_in_progress\">Fazendo download…</string>\n    <string name=\"update_check_notification_download_complete\">Toque para instalar a atualização</string>\n    <string name=\"update_check_notification_download_error\">Erro ao fazer download</string>\n    <string name=\"update_check_notification_update_available\">Nova versão disponível!</string>\n    <string name=\"information_no_downloads\">Nenhum download</string>\n    <string name=\"information_no_recent\">Sem atualizações recentes</string>\n    <string name=\"information_no_recent_manga\">Nada lido recentemente</string>\n    <string name=\"information_empty_library\">A sua biblioteca está vazia</string>\n    <string name=\"download_notifier_downloader_title\">Gerenciador de downloads</string>\n    <string name=\"download_notifier_title_error\">Erro</string>\n    <string name=\"download_notifier_unknown_error\">Não foi possível realizar o download do capítulo devido a um erro inesperado</string>\n    <string name=\"download_notifier_text_only_wifi\">Conexão Wi-Fi indisponível</string>\n    <string name=\"download_notifier_no_network\">Conexão à rede indisponível</string>\n    <string name=\"download_notifier_download_paused\">Downloads pausados</string>\n    <string name=\"action_global_search\">Pesquisa global</string>\n    <string name=\"other_source\">Outras</string>\n    <string name=\"action_global_search_hint\">Pesquisa global…</string>\n    <string name=\"latest\">Recentes</string>\n    <string name=\"browse\">Navegar</string>\n    <string name=\"channel_common\">Comum</string>\n    <string name=\"action_display_download_badge\">Capítulos disponíveis offline</string>\n    <string name=\"information_empty_category\">Você ainda não tem nenhuma categoria. Toque no botão Adicionar para criar uma e organizar a sua biblioteca.</string>\n    <string name=\"label_migration\">Migrar</string>\n    <string name=\"label_extensions\">Extensões</string>\n    <string name=\"label_extension_info\">Informações da extensão</string>\n    <string name=\"ext_update\">Atualizar</string>\n    <string name=\"ext_install\">Instalar</string>\n    <string name=\"ext_pending\">Pendente</string>\n    <string name=\"ext_downloading\">Fazendo download</string>\n    <string name=\"ext_installing\">Instalando</string>\n    <string name=\"ext_installed\">Instalada</string>\n    <string name=\"ext_trust\">Confiar</string>\n    <string name=\"ext_untrusted\">Não confiável</string>\n    <string name=\"ext_uninstall\">Desinstalar</string>\n    <string name=\"untrusted_extension\">Extensão não confiável</string>\n    <string name=\"untrusted_extension_message\">Extensões maliciosas podem ler quaisquer credenciais de login armazenadas ou executar códigos arbitrários.\n\\n\n\\nAo confiar nessa extensão, você estará aceitando estes riscos.</string>\n    <string name=\"pref_double_tap_anim_speed\">Velocidade da animação do toque duplo</string>\n    <string name=\"double_tap_anim_speed_0\">Sem animação</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Rápida</string>\n    <string name=\"manga_added_library\">Adicionado à biblioteca</string>\n    <string name=\"manga_removed_library\">Removido da biblioteca</string>\n    <string name=\"copied_to_clipboard\">Copiado para a área de transferência:\n\\n%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Selecione os dados para incluir</string>\n    <string name=\"migrate\">Migrar</string>\n    <string name=\"copy\">Copiar</string>\n    <string name=\"source_not_installed\">Fonte não instalada: %1$s</string>\n    <string name=\"repeating\">Relendo</string>\n    <string name=\"pager_viewer\">Paginação</string>\n    <string name=\"track_status\">Estado</string>\n    <string name=\"track_type\">Tipo</string>\n    <string name=\"transition_finished\">Concluído:</string>\n    <string name=\"transition_current\">Atual:</string>\n    <string name=\"transition_next\">Próximo:</string>\n    <string name=\"transition_previous\">Anterior:</string>\n    <string name=\"transition_no_next\">Não há próximo capítulo</string>\n    <string name=\"transition_no_previous\">Não há capítulo anterior</string>\n    <string name=\"transition_pages_loading\">Carregando as páginas…</string>\n    <string name=\"transition_pages_error\">Falha ao carregar as páginas: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">Mostrar as ações no toque longo</string>\n    <string name=\"action_open_in_web_view\">Abrir na WebView</string>\n    <string name=\"pref_skip_read_chapters\">Pular os capítulos marcados como lidos</string>\n    <string name=\"filter_mode_screen\">Divisão</string>\n    <string name=\"label_help\">Ajuda</string>\n    <string name=\"pref_color_filter_mode\">Modo de aplicação do filtro de cor</string>\n    <string name=\"filter_mode_overlay\">Sobreposição</string>\n    <string name=\"filter_mode_multiply\">Multiplicação</string>\n    <string name=\"filter_mode_lighten\">Clarear</string>\n    <string name=\"filter_mode_darken\">Escurecer</string>\n    <string name=\"action_webview_back\">Voltar</string>\n    <string name=\"action_webview_forward\">Avançar</string>\n    <string name=\"action_webview_refresh\">Recarregar</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"ext_obsolete\">Obsoleto</string>\n    <string name=\"obsolete_extension_message\">Esta extensão não está mais disponível. Ela pode não funcionar corretamente e pode causar problemas no aplicativo. É recomendado desinstalá-la.</string>\n    <string name=\"no_results_found\">Nenhum resultado encontrado</string>\n    <string name=\"migration_selection_prompt\">Selecione uma fonte da qual migrar</string>\n    <string name=\"pref_date_format\">Formato de data</string>\n    <string name=\"pref_category_library_update\">Atualização global</string>\n    <string name=\"logout_title\">Desconectar de %1$s?</string>\n    <string name=\"logout\">Desconectar</string>\n    <string name=\"logout_success\">Você foi desconectado</string>\n    <string name=\"paused\">Pausado</string>\n    <string name=\"label_more\">Mais</string>\n    <string name=\"action_sort_latest_chapter\">Último capítulo</string>\n    <string name=\"action_view_chapters\">Visualizar os capítulos</string>\n    <string name=\"action_cancel_all\">Cancelar todos</string>\n    <string name=\"theme_light\">Claro</string>\n    <string name=\"theme_dark\">Escuro</string>\n    <string name=\"theme_system\">Sistema</string>\n    <string name=\"pref_manage_notifications\">Gerenciar notificações</string>\n    <string name=\"pref_category_security\">Segurança e privacidade</string>\n    <string name=\"lock_with_biometrics\">Exigir desbloqueio</string>\n    <string name=\"lock_when_idle\">Bloquear quando ocioso</string>\n    <string name=\"lock_always\">Sempre</string>\n    <string name=\"lock_never\">Nunca</string>\n    <string name=\"secure_screen\">Tela segura</string>\n    <string name=\"ext_updates_pending\">Atualizações pendentes</string>\n    <string name=\"pref_cutout_short\">Mostrar conteúdo na área de recorte da tela</string>\n    <string name=\"information_cloudflare_bypass_failure\">Falha ao contornar o Cloudflare</string>\n    <string name=\"information_webview_outdated\">Por favor, atualize o aplicativo de WebView para uma melhor compatibilidade</string>\n    <string name=\"channel_new_chapters\">Atualizações de capítulos</string>\n    <string name=\"secure_screen_summary\">A tela segura oculta os conteúdos do aplicativo durante a troca de aplicativos e impede capturas de tela</string>\n    <string name=\"pref_category_display\">Visualização</string>\n    <string name=\"notification_chapters_single\">Capítulo %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Capítulo %1$s e mais %2$d</string>\n    <string name=\"notification_chapters_multiple\">Capítulos %1$s</string>\n    <string name=\"hide_notification_content\">Ocultar conteúdo da notificação</string>\n    <string name=\"pref_disable_battery_optimization\">Desativar a otimização de bateria</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Ajuda com as atualizações e os backups da biblioteca em segundo plano</string>\n    <string name=\"battery_optimization_disabled\">A otimização de bateria já está desativada</string>\n    <string name=\"email\">Endereço de email</string>\n    <string name=\"pref_always_show_chapter_transition\">Sempre mostrar a transição entre capítulos</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_newest\">Mais novos</string>\n    <string name=\"action_oldest\">Mais antigos</string>\n    <string name=\"action_move_to_top\">Mover para o começo</string>\n    <string name=\"action_move_to_bottom\">Mover para o final</string>\n    <string name=\"channel_ext_updates\">Atualizações de extensões</string>\n    <string name=\"updating_library\">Atualizando a biblioteca</string>\n    <string name=\"pref_category_reading\">Leitura</string>\n    <string name=\"pref_skip_filtered_chapters\">Pular os capítulos filtrados</string>\n    <string name=\"label_sources\">Fontes</string>\n    <string name=\"action_select_inverse\">Inverter a seleção</string>\n    <string name=\"vertical_plus_viewer\">Tira longa com lacunas</string>\n    <string name=\"pref_webtoon_side_padding\">Margem lateral</string>\n    <string name=\"pinned_sources\">Fixado</string>\n    <string name=\"action_unpin\">Desafixar</string>\n    <string name=\"action_pin\">Fixar</string>\n    <string name=\"add_tracking\">Adicionar monitoramento</string>\n    <string name=\"add_to_library\">Adicionar à biblioteca</string>\n    <string name=\"in_library\">Na biblioteca</string>\n    <string name=\"manga_info_collapse\">Menos</string>\n    <string name=\"manga_info_expand\">Mais</string>\n    <string name=\"information_webview_required\">A WebView é necessária para o funcionamento do app</string>\n    <string name=\"licenses\">Licenças de código aberto</string>\n    <string name=\"website\">Site</string>\n    <string name=\"label_downloaded_only\">Somente disponíveis offline</string>\n    <string name=\"creating_backup_error\">Falha no backup</string>\n    <string name=\"backup_in_progress\">O backup já está em andamento</string>\n    <string name=\"restore_in_progress\">A restauração já está em andamento</string>\n    <string name=\"recent_manga_time\">Cap. %1$s - %2$s</string>\n    <string name=\"restoring_backup_canceled\">Restauração cancelada</string>\n    <string name=\"restoring_backup_error\">Falha ao restaurar o backup</string>\n    <string name=\"last_used_source\">Última utilizada</string>\n    <string name=\"check_for_updates\">Procurar por atualizações</string>\n    <string name=\"local_source_help_guide\">Guia sobre a fonte local</string>\n    <string name=\"restore_duration\">%1$02d min e %2$02d seg</string>\n    <string name=\"downloaded_only_summary\">Filtra todos os itens em sua biblioteca</string>\n    <string name=\"gray_background\">Cinza</string>\n    <string name=\"viewer\">Modo de leitura</string>\n    <string name=\"pref_category_for_this_series\">Para esta série</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Não foi possível abrir as configurações do dispositivo</string>\n    <string name=\"tracking_info\">Sincronização unidirecional para atualizar o progresso dos capítulos nos serviços monitoradores externos. Configure o monitoramento para itens individuais a partir de seus botões de monitoramento.</string>\n    <string name=\"pref_refresh_library_covers\">Atualizar as capas da biblioteca</string>\n    <string name=\"sort_by_upload_date\">Pela data de envio</string>\n    <string name=\"label_data\">Dados</string>\n    <string name=\"backup_restore_missing_sources\">Fontes faltando:</string>\n    <string name=\"invalid_backup_file_missing_manga\">O backup não possui nenhum item da biblioteca.</string>\n    <string name=\"invalid_backup_file\">Arquivo de backup inválido:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Verifica por novas capas e detalhes durante a atualização da biblioteca</string>\n    <string name=\"pref_library_update_refresh_metadata\">Atualizar os metadados automaticamente</string>\n    <string name=\"action_migrate\">Migrar</string>\n    <string name=\"action_display_comfortable_grid\">Grade confortável</string>\n    <string name=\"action_display_show_tabs\">Mostrar as abas de categoria</string>\n    <string name=\"tabs_header\">Abas</string>\n    <string name=\"page_list_empty_error\">Nenhuma página encontrada</string>\n    <string name=\"action_disable_all\">Desativar todas</string>\n    <string name=\"action_enable_all\">Ativar todas</string>\n    <string name=\"pref_show_reading_mode_summary\">Mostra de forma resumida o modo atual quando o leitor for aberto</string>\n    <string name=\"pref_show_reading_mode\">Mostrar o modo de leitura</string>\n    <string name=\"action_start\">Iniciar</string>\n    <string name=\"loader_not_implemented_error\">Fonte não encontrada</string>\n    <string name=\"action_disable\">Desativar</string>\n    <string name=\"requires_app_restart\">Requer o reinício do aplicativo para ter efeito</string>\n    <string name=\"label_network\">Rede</string>\n    <string name=\"tapping_inverted_none\">Nenhum</string>\n    <string name=\"tapping_inverted_both\">Ambos</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontal</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverter as zonas de toque</string>\n    <string name=\"unknown_status\">Estado desconhecido</string>\n    <string name=\"unknown_author\">Autor desconhecido</string>\n    <string name=\"updated_version\">Atualizado para v%1$s</string>\n    <string name=\"whats_new\">O que há de novo</string>\n    <string name=\"download_insufficient_space\">Não foi possível fazer o download dos capítulos devido ao pouco espaço de armazenamento</string>\n    <string name=\"action_sort_date_added\">Data de inclusão</string>\n    <string name=\"action_global_search_query\">Pesquisar por \\\"%1$s\\\" globalmente</string>\n    <string name=\"pref_category_reading_mode\">Modo de leitura</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"no_pinned_sources\">Você não tem fontes fixadas</string>\n    <string name=\"channel_progress\">Andamento</string>\n    <string name=\"channel_complete\">Concluído</string>\n    <string name=\"channel_errors\">Erros</string>\n    <string name=\"backup_restore_missing_trackers\">Monitoradores sem login realizado:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permitir a exclusão de capítulos favoritos</string>\n    <string name=\"pref_category_delete_chapters\">Excluir capítulos</string>\n    <string name=\"ext_nsfw_warning\">As fontes desta extensão podem ter conteúdo NSFW (+18)</string>\n    <string name=\"ext_nsfw_short\">+18</string>\n    <string name=\"parental_controls_info\">Isso não impede que extensões não oficiais ou potencialmente sinalizadas de maneira incorreta apresentem conteúdo NSFW (+18) no aplicativo.</string>\n    <string name=\"no_chapters_error\">Nenhum capítulo encontrado</string>\n    <string name=\"chapter_settings_updated\">Configurações padrões de capítulo atualizadas</string>\n    <string name=\"set_chapter_settings_as_default\">Definir como padrão</string>\n    <string name=\"also_set_chapter_settings_for_library\">Também aplicar a todos os itens na minha biblioteca</string>\n    <string name=\"confirm_set_chapter_settings\">Você tem certeza que quer salvar como padrão essas configurações?</string>\n    <string name=\"chapter_settings\">Configurações de capítulo</string>\n    <string name=\"share_page_info\">%1$s: %2$s, página %3$d</string>\n    <string name=\"action_search_settings\">Pesquisar nas configurações</string>\n    <string name=\"manga_from_library\">Da biblioteca</string>\n    <string name=\"downloaded_chapters\">Capítulos disponíveis offline</string>\n    <string name=\"pref_incognito_mode_summary\">Pausa o histórico de leitura</string>\n    <string name=\"pref_incognito_mode\">Modo anônimo</string>\n    <string name=\"pref_clear_history\">Limpar o histórico</string>\n    <string name=\"clear_history_confirmation\">Você tem certeza? Todo o histórico será perdido.</string>\n    <string name=\"clear_history_completed\">Histórico excluído</string>\n    <string name=\"spen_next_page\">Próxima página</string>\n    <string name=\"spen_previous_page\">Página anterior</string>\n    <string name=\"migration_help_guide\">Guia sobre a migração de fonte</string>\n    <string name=\"pref_category_nsfw_content\">Fontes NSFW (+18)</string>\n    <string name=\"pref_show_nsfw_source\">Mostrar na lista de fontes e extensões</string>\n    <string name=\"file_picker_error\">Nenhum aplicativo de seleção de arquivos encontrado</string>\n    <string name=\"myanimelist_relogin\">Por favor, faça login no MAL novamente</string>\n    <string name=\"edge_nav\">Borda</string>\n    <string name=\"kindlish_nav\">Kindle</string>\n    <string name=\"l_nav\">Em forma de L</string>\n    <string name=\"pref_viewer_nav\">Zonas de toque</string>\n    <string name=\"track_finished_reading_date\">Data de término</string>\n    <string name=\"track_started_reading_date\">Data de início</string>\n    <string name=\"pref_dump_crash_logs_summary\">Salva os registros de erro em um arquivo para o compartilhamento com os desenvolvedores</string>\n    <string name=\"pref_dump_crash_logs\">Compartilhar os registros de travamentos</string>\n    <string name=\"action_desc\">Decrescente</string>\n    <string name=\"action_asc\">Crescente</string>\n    <string name=\"action_order_by_chapter_number\">Pelo número do capítulo</string>\n    <string name=\"action_order_by_upload_date\">Pela data de envio</string>\n    <string name=\"action_filter_tracked\">Monitorado</string>\n    <string name=\"action_display_show_number_of_items\">Mostrar o número de itens</string>\n    <string name=\"right_and_left_nav\">Direita e Esquerda</string>\n    <string name=\"pref_dual_page_split\">Dividir as páginas longas</string>\n    <string name=\"pref_dual_page_invert_summary\">Se a posição das páginas longas divididas não se adequar ao modo de leitura</string>\n    <string name=\"pref_dual_page_invert\">Inverter a posição das páginas divididas</string>\n    <string name=\"backup_restore_content_full\">Você precisará instalar quaisquer extensões que estejam faltando e depois realizar o login nos serviços de monitoramento para utilizá-los.</string>\n    <string name=\"pref_show_navigation_mode_summary\">Mostra rapidamente quando o leitor for aberto</string>\n    <string name=\"pref_show_navigation_mode\">Mostrar a sobreposição das zonas de toque</string>\n    <string name=\"nav_zone_right\">Direita</string>\n    <string name=\"nav_zone_left\">Esquerda</string>\n    <string name=\"nav_zone_next\">Próxima</string>\n    <string name=\"nav_zone_prev\">Anterior</string>\n    <string name=\"pref_dns_over_https\">DNS sobre HTTPS (DoH)</string>\n    <string name=\"none\">Nenhuma</string>\n    <string name=\"exclude\">Excluir: %s</string>\n    <string name=\"include\">Incluir: %s</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data de busca do capítulo</string>\n    <string name=\"pref_library_update_categories_details\">Os itens nas categorias excluídas não serão atualizados mesmo que eles também estejam nas categorias incluídas.</string>\n    <string name=\"pref_download_new_categories_details\">Os itens nas categorias excluídas não serão disponibilizados offline mesmo que eles também estejam nas categorias incluídas.</string>\n    <string name=\"pref_category_auto_download\">Download automático</string>\n    <string name=\"action_show_errors\">Toque para ver os detalhes</string>\n    <string name=\"update_check_eol\">Esta versão do Android não é mais suportada</string>\n    <string name=\"clipboard_copy_error\">Erro ao copiar para a área de transferência</string>\n    <string name=\"rotation_landscape\">Paisagem</string>\n    <string name=\"rotation_portrait\">Retrato</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Cria as pastas usando os títulos dos itens</string>\n    <string name=\"pref_create_folder_per_manga\">Salvar as páginas em pastas separadas</string>\n    <string name=\"pref_reader_actions\">Ações</string>\n    <string name=\"rotation_type\">Orientação</string>\n    <string name=\"pref_grayscale\">Nível de cinza</string>\n    <string name=\"notification_incognito_text\">Desabilitar o modo anônimo</string>\n    <string name=\"automatic_background\">Auto</string>\n    <string name=\"cancel_all_for_series\">Cancelar todos para esta série</string>\n    <string name=\"error_no_match\">Nenhum resultado encontrado</string>\n    <string name=\"source_unsupported\">Fonte não suportada</string>\n    <string name=\"unread\">Não lido</string>\n    <string name=\"date\">Data</string>\n    <string name=\"local_filter_order_by\">Ordenar por</string>\n    <string name=\"local_invalid_format\">Formato de capítulo inválido</string>\n    <string name=\"chapter_not_found\">Capítulo não encontrado</string>\n    <string name=\"restrictions\">Restrições: %s</string>\n    <string name=\"action_display_local_badge\">Fonte local</string>\n    <string name=\"off\">Desligado</string>\n    <string name=\"on\">Ligado</string>\n    <string name=\"error_sharing_cover\">Erro ao compartilhar a capa</string>\n    <string name=\"error_saving_cover\">Erro ao salvar a capa</string>\n    <string name=\"cover_saved\">Capa salva</string>\n    <string name=\"manga_cover\">Capa</string>\n    <string name=\"categorized_display_settings\">Configurações por categoria para ordenação</string>\n    <string name=\"tracking_guide\">Guia sobre o monitoramento</string>\n    <string name=\"information_empty_category_dialog\">Você não tem categorias ainda.</string>\n    <string name=\"action_start_downloading_now\">Começar o download agora</string>\n    <string name=\"about_dont_kill_my_app\">Algumas fabricantes possuem restrições adicionais de aplicativos que encerram os serviços em segundo plano. Este site possui mais informações sobre como corrigir este problema.</string>\n    <string name=\"restore_miui_warning\">O backup e restauração podem não funcionar corretamente se a Otimização da MIUI estiver desabilitada.</string>\n    <string name=\"pref_dark_theme_pure_black\">Modo noturno com preto absoluto</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri de Morango</string>\n    <string name=\"theme_midnightdusk\">Aurora-da-noite</string>\n    <string name=\"theme_greenapple\">Maçã-verde</string>\n    <string name=\"pref_app_theme\">Tema do aplicativo</string>\n    <string name=\"enhanced_tracking_info\">Oferecem recursos aprimorados para fontes específicas. Os itens são automaticamente monitorados quando adicionados em sua biblioteca.</string>\n    <string name=\"enhanced_services\">Monitoradores aprimorados</string>\n    <string name=\"theme_monet\">Dinâmico</string>\n    <string name=\"label_background_activity\">Atividade em segundo plano</string>\n    <string name=\"pref_lowest\">Mais baixa</string>\n    <string name=\"pref_low\">Baixa</string>\n    <string name=\"pref_high\">Alta</string>\n    <string name=\"pref_highest\">Mais alta</string>\n    <string name=\"pref_hide_threshold\">Sensibilidade para ocultar o menu na rolagem</string>\n    <string name=\"pref_inverted_colors\">Invertido</string>\n    <string name=\"relative_time_today\">Hoje</string>\n    <string name=\"theme_tealturquoise\">Azul-petróleo &amp; Turquesa</string>\n    <string name=\"confirm_lock_change\">Autentique-se para confirmar a mudança</string>\n    <string name=\"label_default\">Padrão</string>\n    <string name=\"pref_category_appearance\">Aparência</string>\n    <string name=\"action_track\">Monitorar</string>\n    <string name=\"getting_started_guide\">Guia de introdução</string>\n    <string name=\"pref_tablet_ui_mode\">Interface de tablet</string>\n    <string name=\"pref_remove_exclude_categories\">Categorias ignoradas</string>\n    <string name=\"help_translate\">Ajudar a traduzir</string>\n    <string name=\"ext_app_info\">Informações</string>\n    <string name=\"ext_installer_shizuku_stopped\">O Shizuku não está em execução</string>\n    <string name=\"ext_installer_legacy\">Legado</string>\n    <string name=\"ext_installer_pref\">Instalador</string>\n    <string name=\"ext_install_service_notif\">Instalando a extensão…</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instale e inicie o Shizuku para utilizá-lo como o instalador de extensões.</string>\n    <string name=\"action_sort_count\">Total de itens</string>\n    <string name=\"pref_verbose_logging_summary\">Imprime registros detalhados no registro de eventos do sistema (reduz o desempenho do aplicativo)</string>\n    <string name=\"pref_verbose_logging\">Registro de eventos detalhado</string>\n    <string name=\"action_display_language_badge\">Idioma</string>\n    <string name=\"notification_size_warning\">Atualizações com muitos itens prejudicam as fontes e podem deixar as atualizações lentas e aumentar o uso da bateria. Toque para saber mais.</string>\n    <string name=\"label_warning\">Aviso</string>\n    <string name=\"backup_info\">Você deve manter cópias em outros locais também. Backups podem ter informações sensíveis incluindo senhas salvas; tenha cuidado se compartilhar.</string>\n    <string name=\"connected_to_wifi\">Somente no Wi-Fi</string>\n    <string name=\"update_72hour\">A cada 3 dias</string>\n    <string name=\"download_queue_size_warning\">Aviso: grandes downloads em massa podem levar as fontes a ficarem lentas e/ou começarem a bloquear o %s. Toque para saber mais.</string>\n    <string name=\"ext_update_all\">Atualizar tudo</string>\n    <string name=\"channel_app_updates\">Atualizações do aplicativo</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Limpar o cache de capítulos ao abrir o aplicativo</string>\n    <string name=\"clear_database_source_item_count\">%1$d itens que não estão na biblioteca no banco de dados</string>\n    <string name=\"database_clean\">Nada a ser limpo</string>\n    <string name=\"extension_api_error\">Erro ao obter as extensões disponíveis</string>\n    <string name=\"privacy_policy\">Política de privacidade</string>\n    <string name=\"pref_update_only_completely_read\">Pular itens com capítulos não lidos</string>\n    <string name=\"library_errors_help\">Para obter ajuda sobre como corrigir erros de atualização da biblioteca, veja %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Salvar como arquivo CBZ</string>\n    <string name=\"publishing_finished\">Publicação finalizada</string>\n    <string name=\"cancelled\">Cancelado</string>\n    <string name=\"on_hiatus\">Em hiato</string>\n    <string name=\"action_show_manga\">Mostrar o item</string>\n    <string name=\"pref_navigate_pan\">Navegar imagens longas</string>\n    <string name=\"pref_landscape_zoom\">Dar zoom automaticamente em imagens largas</string>\n    <string name=\"action_display_cover_only_grid\">Grade somente com capas</string>\n    <string name=\"pref_update_only_started\">Pular itens que não tiveram a leitura iniciada</string>\n    <string name=\"skipped_reason_completed\">Pulado porque a série está finalizada</string>\n    <string name=\"skipped_reason_not_caught_up\">Pulado porque há capítulos não lidos</string>\n    <string name=\"skipped_reason_not_started\">Pulado porque nenhum capítulo foi lido</string>\n    <string name=\"notification_update_error\">%1$d atualização(ões) falhou(aram)</string>\n    <string name=\"learn_more\">Toque para saber mais</string>\n    <string name=\"rotation_reverse_portrait\">Retrato invertido</string>\n    <string name=\"action_move_to_top_all_for_series\">Mover série para o começo</string>\n    <string name=\"disabled_nav\">Desativado</string>\n    <string name=\"error_saving_picture\">Erro ao salvar a imagem</string>\n    <string name=\"empty_backup_error\">Nenhuma entrada na biblioteca para fazer backup</string>\n    <string name=\"update_check_open\">Abrir no GitHub</string>\n    <string name=\"pref_clear_webview_data\">Limpar os dados da WebView</string>\n    <string name=\"webview_data_deleted\">Dados da WebView limpos</string>\n    <string name=\"action_close\">Fechar</string>\n    <string name=\"source_filter_empty_screen\">Nenhuma fonte instalada foi encontrada</string>\n    <string name=\"source_empty_screen\">Nenhuma fonte encontrada</string>\n    <string name=\"action_sort_unread_count\">Contagem de não lidos</string>\n    <string name=\"action_sort_last_manga_update\">Ultima checagem de atualização</string>\n    <string name=\"split_tall_images_summary\">Melhora o desempenho do leitor</string>\n    <string name=\"download_notifier_split_page_not_found\">Página %d não encontrada durante a divisão</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Não foi possível encontrar o caminho do arquivo da página %d</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Redefine o modo de leitura e orientação de todas as séries</string>\n    <string name=\"pref_reset_viewer_flags_success\">Todas as configurações do leitor foram redefinidas</string>\n    <string name=\"pref_reset_viewer_flags_error\">Não foi possível redefinir as configurações do leitor</string>\n    <string name=\"pref_reset_viewer_flags\">Redefinir as configurações do leitor em cada série</string>\n    <string name=\"empty_screen\">Bem, isso é esquisito</string>\n    <string name=\"ext_info_version\">Versão</string>\n    <string name=\"ext_info_language\">Idioma</string>\n    <string name=\"ext_info_age_rating\">Classificação</string>\n    <string name=\"reading_list\">Lista de Leitura</string>\n    <string name=\"wish_list\">Lista de Desejos</string>\n    <string name=\"complete_list\">Lista de Completos</string>\n    <string name=\"on_hold_list\">Lista de Pausados</string>\n    <string name=\"unfinished_list\">Lista de Inacabados</string>\n    <string name=\"network_not_metered\">Somente em redes não limitadas</string>\n    <string name=\"cant_open_last_read_chapter\">Não foi possível abrir o último capítulo lido</string>\n    <string name=\"custom_cover\">Capa personalizada</string>\n    <string name=\"not_installed\">Não instalado</string>\n    <string name=\"pref_app_language\">Idioma do aplicativo</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"description_placeholder\">Sem descrição</string>\n    <string name=\"delete_category\">Deletar categoria</string>\n    <string name=\"delete_category_confirmation\">Você deseja deletar a categoria \\\"%s\\\"?</string>\n    <string name=\"internal_error\">Erro interno: Verifique os registros de travamento para mais informações</string>\n    <string name=\"pref_user_agent_string\">User Agent padrão</string>\n    <string name=\"pref_reset_user_agent_string\">Redefinir o User Agent padrão</string>\n    <string name=\"action_remove_everything\">Remover tudo</string>\n    <string name=\"appwidget_updates_description\">Veja seus itens da biblioteca atualizados recentemente</string>\n    <string name=\"appwidget_unavailable_locked\">Widget não disponível quando o bloqueio do aplicativo está habilitado</string>\n    <string name=\"update_already_running\">Uma atualização já está em andamento</string>\n    <string name=\"error_user_agent_string_blank\">O valor do User-Agent não pode ficar em branco</string>\n    <string name=\"theme_tidalwave\">Onda Tidal</string>\n    <string name=\"download_ahead\">Fazer download a frente</string>\n    <string name=\"auto_download_while_reading\">Download automático durante a leitura</string>\n    <string name=\"download_ahead_info\">Funciona somente se o capítulo atual e próximo já estão disponíveis offline.</string>\n    <string name=\"are_you_sure\">Você tem certeza?</string>\n    <string name=\"multi_lang\">Múltiplos</string>\n    <string name=\"updates_last_update_info\">Última atualização da biblioteca: %s</string>\n    <string name=\"remove_manga\">Você está prestes a remover \\\"%s\\\" de sua biblioteca</string>\n    <string name=\"popular\">Popular</string>\n    <string name=\"missing_storage_permission\">Permissões de armazenamento não concedidas</string>\n    <string name=\"skipped_reason_not_always_update\">Pulado porque a série não requer atualizações</string>\n    <string name=\"action_search_hint\">Pesquisar…</string>\n    <string name=\"pref_appearance_summary\">Tema, formato de data e hora</string>\n    <string name=\"pref_library_summary\">Categorias, atualização global, ações do capítulo</string>\n    <string name=\"pref_reader_summary\">Modo de leitura, exibição, navegação</string>\n    <string name=\"pref_downloads_summary\">Download automático, download a frente</string>\n    <string name=\"pref_tracking_summary\">Sincronização de progresso unidirecional, sincronização aprimorada</string>\n    <string name=\"pref_browse_summary\">Fontes, extensões, pesquisa global</string>\n    <string name=\"pref_backup_summary\">Backups manuais e automáticos, espaço de armazenamento</string>\n    <string name=\"pref_security_summary\">Bloqueio do aplicativo, tela segura</string>\n    <string name=\"pref_advanced_summary\">Exportar registros de travamento, otimizações de bateria</string>\n    <string name=\"crash_screen_title\">Ooops!</string>\n    <string name=\"crash_screen_restart_application\">Reiniciar o aplicativo</string>\n    <string name=\"crash_screen_description\">%s teve um erro inesperado. Nós sugerimos que você compartilhe os registros de travamento em nosso canal de suporte no Discord.</string>\n    <string name=\"unknown_title\">Título desconhecido</string>\n    <string name=\"invalid_location\">Local inválido: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Valor de user agent inválido</string>\n    <string name=\"updates_last_update_info_just_now\">Agora</string>\n    <string name=\"download_notifier_cache_renewal\">Verificando os downloads</string>\n    <string name=\"action_open_random_manga\">Abrir um item aleatório</string>\n    <string name=\"information_no_entries_found\">Nenhum item encontrado nesta categoria</string>\n    <string name=\"fdroid_warning\">Compilações do F-Droid não são suportadas oficialmente.\n\\nToque para saber mais.</string>\n    <string name=\"action_display_show_continue_reading_button\">Botão de continuar a leitura</string>\n    <string name=\"track_remove_date_conf_title\">Remover data?</string>\n    <string name=\"track_remove_start_date_conf_text\">Isto irá remover sua data de início selecionada anteriormente no %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Isto irá remover sua data de término selecionada anteriormente no %s</string>\n    <string name=\"pref_invalidate_download_cache\">Invalidar o índice de downloads</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Força o aplicativo a checar novamente por capítulos disponíveis offline</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_downloaded\">Disponíveis offline</string>\n    <string name=\"label_overview_section\">Visão geral</string>\n    <string name=\"label_completed_titles\">Itens completos</string>\n    <string name=\"label_read_duration\">Duração de leitura</string>\n    <string name=\"label_titles_section\">Itens</string>\n    <string name=\"label_titles_in_global_update\">Na atualização global</string>\n    <string name=\"label_tracker_section\">Monitoradores</string>\n    <string name=\"label_used\">Usados</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"label_read_chapters\">Lidos</string>\n    <string name=\"label_tracked_titles\">Itens monitorados</string>\n    <string name=\"label_stats\">Estatísticas</string>\n    <string name=\"label_started\">Iniciados</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_mean_score\">Avaliação média</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_not_now\">Agora não</string>\n    <string name=\"information_no_manga_category\">A categoria está vazia</string>\n    <string name=\"pref_library_update_show_tab_badge\">Mostrar a contagem no ícone de Atualizações</string>\n    <string name=\"copied_to_clipboard_plain\">Copiado para a área de transferência</string>\n    <string name=\"enhanced_services_not_installed\">Disponíveis, mas a fonte não está instalada: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Pular capítulos duplicados</string>\n    <string name=\"track_error\">Erro em %1$s: %2$s</string>\n    <string name=\"information_required_plain\">*obrigatório</string>\n    <string name=\"pref_hide_in_library_items\">Ocultar títulos que já estão na biblioteca</string>\n    <string name=\"action_copy_to_clipboard\">Copiar para a área de transferência</string>\n    <string name=\"action_update_category\">Atualizar categoria</string>\n    <string name=\"split_tall_images\">Dividir imagens compridas</string>\n    <string name=\"overlay_header\">Sobreposição</string>\n    <string name=\"pref_page_rotate\">Rotacionar páginas largas para caber</string>\n    <string name=\"pref_page_rotate_invert\">Inverter a orientação das páginas largas rotacionadas</string>\n    <string name=\"pref_debug_info\">Informações de depuração</string>\n    <string name=\"pref_chapter_swipe_end\">Capitulo ao deslizar para a direita</string>\n    <string name=\"pref_chapter_swipe_start\">Ação de deslizar para a esquerda</string>\n    <string name=\"pref_double_tap_zoom\">Toque duplo para dar zoom</string>\n    <string name=\"action_sort_next_updated\">Próxima atualização esperada</string>\n    <string name=\"pref_update_only_in_release_period\">Prever a data do próximo lançamento</string>\n    <string name=\"action_set_interval\">Definir intervalo</string>\n    <string name=\"action_filter_interval_custom\">Personalizar a frequência de atualizações</string>\n    <string name=\"skipped_reason_not_in_release_period\">Pulado porque nenhum lançamento era esperado hoje</string>\n    <string name=\"intervals_header\">Intervalos</string>\n    <string name=\"manga_display_modified_interval_title\">Definido para atualizar todo</string>\n    <string name=\"manga_display_interval_title\">Estimar todo</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"track_delete_title\">Remover o monitoramento do %s?</string>\n    <string name=\"track_delete_text\">Isso irá remover o monitoramento localmente.</string>\n    <string name=\"track_delete_remote_text\">Também remover do %s</string>\n    <string name=\"delete_downloaded\">Deletar os disponíveis offline</string>\n    <string name=\"has_results\">Há resultados</string>\n    <string name=\"syncing_library\">Sincronizando a biblioteca</string>\n    <string name=\"library_sync_complete\">Sincronização da biblioteca finalizada</string>\n    <string name=\"information_cloudflare_help\">Toque aqui para obter ajuda com o Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Índice de downloads invalidado</string>\n    <string name=\"track_activity_name\">Login do monitorador</string>\n    <string name=\"create_backup_file_error\">Não foi possível criar o arquivo do backup</string>\n    <string name=\"exception_http\">HTTP %d, verifique o site na WebView</string>\n    <string name=\"exception_offline\">Sem conexão de internet</string>\n    <string name=\"exception_unknown_host\">Não foi possível resolver %s</string>\n    <string name=\"unlock_app_title\">Desbloquear o %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Mover série para o final</string>\n    <string name=\"pref_relative_format\">Datas relativas</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" ao invés de \\\"%2$s\\\"</string>\n    <string name=\"app_settings\">Configurações do aplicativo</string>\n    <string name=\"notification_updating_progress\">Atualizando a biblioteca… (%s)</string>\n    <string name=\"source_settings\">Configurações das fontes</string>\n    <string name=\"file_null_uri_error\">Nenhum arquivo selecionado</string>\n    <string name=\"label_data_storage\">Dados e armazenamento</string>\n    <string name=\"pref_flash_page_summ\">Reduz o efeito fantasma em telas e-ink</string>\n    <string name=\"pref_flash_page\">Flash ao mudar de página</string>\n    <string name=\"action_sort_tracker_score\">Avaliação no monitorador</string>\n    <string name=\"relative_time_span_never\">Nunca</string>\n    <string name=\"last_auto_backup_info\">Último backup automático feito em: %s</string>\n    <string name=\"pref_storage_usage\">Uso de armazenamento</string>\n    <string name=\"action_apply\">Aplicar</string>\n    <string name=\"action_revert_to_default\">Reverter para o padrão</string>\n    <string name=\"no_scanlators_found\">Nenhum scanlator encontrado</string>\n    <string name=\"scanlator\">Scanner</string>\n    <string name=\"exclude_scanlators\">Excluir scanlators</string>\n    <string name=\"action_create\">Criar</string>\n    <string name=\"selected\">Selecionado</string>\n    <string name=\"not_selected\">Não selecionado</string>\n    <string name=\"pref_storage_location\">Local de armazenamento</string>\n    <string name=\"pref_storage_location_info\">Usado para backups automáticos, downloads de capítulos e na fonte local.</string>\n    <string name=\"action_menu_overflow_description\">Mais opções</string>\n    <string name=\"action_bar_up_description\">Navegar para cima</string>\n    <string name=\"onboarding_storage_action_select\">Selecionar uma pasta</string>\n    <string name=\"pref_onboarding_guide\">Guia de introdução</string>\n    <string name=\"onboarding_guides_new_user\">Novo no %s? Recomendamos dar uma olhada no guia de introdução.</string>\n    <string name=\"onboarding_action_finish\">Começar</string>\n    <string name=\"onboarding_heading\">Bem-vindo(a)!</string>\n    <string name=\"onboarding_guides_returning_user\">Reinstalando o %s?</string>\n    <string name=\"onboarding_action_skip\">Pular</string>\n    <string name=\"onboarding_action_next\">Próximo</string>\n    <string name=\"onboarding_description\">Vamos definir algumas coisas primeiro. Você sempre pode fazer alterações nas configurações depois também.</string>\n    <string name=\"no_location_set\">Local de armazenamento não definido</string>\n    <string name=\"onboarding_storage_info\">Escolha uma pasta onde o %1$s irá armazenar os downloads de capítulos, backups e mais.\n\\n\n\\nUma pasta dedicada é recomendada.\n\\n\n\\nPasta selecionada: %2$s</string>\n    <string name=\"onboarding_storage_selection_required\">Uma pasta deve ser selecionada</string>\n    <string name=\"onboarding_permission_notifications\">Permissão de notificação</string>\n    <string name=\"onboarding_permission_install_apps\">Permissão de instalação de aplicativos</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Evite interrupções para tarefas longas como atualizações da biblioteca, downloads e restauração de backups.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Uso de bateria em plano de fundo</string>\n    <string name=\"onboarding_permission_install_apps_description\">Para instalar extensões de fontes.</string>\n    <string name=\"onboarding_permission_notifications_description\">Seja notificado para atualizações da biblioteca e mais.</string>\n    <string name=\"onboarding_permission_action_grant\">Conceder</string>\n    <string name=\"available_disk_space_info\">Disponível: %1$s / Total: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">Permissões são necessárias para instalar extensões. Toque aqui para conceder.</string>\n    <string name=\"private_settings\">Incluir configurações sensíveis (tokens de login dos monitoradores, por exemplo)</string>\n    <string name=\"manga_interval_expected_update\">Novos capítulos com previsão de serem lançados em torno de %1$s, verificando em torno de cada %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Frequência de atualização personalizada:</string>\n    <string name=\"invalid_backup_file_error\">Erro completo:</string>\n    <string name=\"error_repo_exists\">Este repositório já existe!</string>\n    <string name=\"pref_library_update_smart_update\">Atualização inteligente</string>\n    <string name=\"invalid_repo_name\">URL do repositório inválido</string>\n    <string name=\"action_add_repo_message\">Adiciona repositórios adicionais ao %s. Deve ser uma URL que termine com \\\"index.min.json\\\".</string>\n    <string name=\"delete_repo_confirmation\">Você deseja deletar o repositório \\\"%s\\\"?</string>\n    <string name=\"action_delete_repo\">Deletar repositório</string>\n    <string name=\"action_add_repo\">Adicionar repositório</string>\n    <string name=\"information_empty_repos\">Você não tem repositórios definidos.</string>\n    <string name=\"label_extension_repos\">Repositórios de extensões</string>\n    <string name=\"label_add_repo_input\">URL do repositório</string>\n    <string name=\"onboarding_storage_help_action\">Guia de armazenamento</string>\n    <string name=\"onboarding_storage_help_info\">Atualizando de uma versão anterior e não tem certeza do que selecionar? Consulte o guia de armazenamento para mais informações.</string>\n    <string name=\"manga_interval_expected_update_soon\">Em breve</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"ext_revoke_trust\">Revogar a confiabilidade de extensões desconhecidas</string>\n    <string name=\"action_open_repo\">Abrir repositório da fonte</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Desativar redução de zoom</string>\n    <string name=\"action_add_anyway\">Adicionar de qualquer maneira</string>\n    <string name=\"action_replace_repo\">Substituir</string>\n    <string name=\"label_upcoming\">Próximo</string>\n    <string name=\"action_replace_repo_title\">A impressão digital da chave de assinatura já existe</string>\n    <string name=\"action_replace_repo_message\">O repositório %1$s tem a mesma impressão digital da chave de assinatura que %2$s.\n\\nSe isso for esperado, %2$s será substituído, caso contrário, entre em contato com o mantenedor do repositório.</string>\n    <string name=\"pref_display_profile\">Perfil de exibição personalizado</string>\n    <string name=\"action_view_upcoming\">Exibir as próximas atualizações</string>\n    <string name=\"upcoming_guide\">Guia de próximos lançamentos</string>\n    <string name=\"upcoming_calendar_next\">Próximo mês</string>\n    <string name=\"upcoming_calendar_prev\">Mês anterior</string>\n    <string name=\"pref_flash_style_black\">Preto</string>\n    <string name=\"pref_flash_style_white\">Branco</string>\n    <string name=\"pref_flash_style_white_black\">Branco e Preto</string>\n    <string name=\"add_repo_confirmation\">Você deseja adicionar o repositório \\\"%s\\\"?</string>\n    <string name=\"action_copy_link\">Copiar link</string>\n    <string name=\"extensionRepo_settings\">Repositório de extensões</string>\n    <string name=\"manga_interval_expected_update_null\">Esse mangá foi completado, ou não tem uma data de lançamento prevista.</string>\n    <string name=\"pref_flash_duration\">Duração do flash</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flash a cada</string>\n    <string name=\"pref_flash_with\">Flash com</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Pule o download de capítulos duplicados já lidos</string>\n    <string name=\"confirm_tracker_update\">Atualizar rastreadores para o capítulo %d?</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Falha ao adquirir acesso a uma pasta persistente. O aplicativo pode se comportar de maneira inesperada.</string>\n    <string name=\"invalid_backup_file_json\">Backup JSON não suportado</string>\n    <string name=\"invalid_backup_file_unknown\">O arquivo de backup está corrompido</string>\n    <string name=\"label_auto\">Automático</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Envie lgos de falhas anônimas para os desenvolvedores.</string>\n    <string name=\"onboarding_permission_analytics_description\">Enviar dados de uso anônimos para melhorar os recursos do aplicativo.</string>\n    <string name=\"pref_firebase\">Análises e registros de falhas</string>\n    <string name=\"action_sort_random\">Aleatório</string>\n    <string name=\"onboarding_permission_crashlytics\">Enviar logs de falhas</string>\n    <string name=\"pref_security\">Segurança</string>\n    <string name=\"onboarding_permission_analytics\">Permitir análise</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Padrão (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Afeta o desempenho. Habilite somente se a redução do limite de bitmap não corrigir problemas de imagem em branco</string>\n    <string name=\"ext_remove\">Remover</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Depois de ler um capítulo</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Use o decodificador legado para leitor de tira longa</string>\n    <string name=\"ext_confirm_remove\">Remover extensão?</string>\n    <string name=\"firebase_summary\">O envio de logs de falhas e análises nos permitirá identificar e corrigir problemas, melhorar o desempenho e tornar as atualizações futuras mais relevantes para suas necessidades</string>\n    <string name=\"pref_behavior\">Comportamento</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marcar capítulo lido duplicado como lido</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Atualizar progresso quando marcado como lido</string>\n    <string name=\"remove_private_extension_message\">Você realmente deseja remover a extensão \\\"%s\\\"?</string>\n    <string name=\"export\">Exportar</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Limite de bitmap de hardware personalizado</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pausar histórico de leitura para extensão</string>\n    <string name=\"trackers_updated_summary\">Rastreadores atualizados para o capítulo %d</string>\n    <string name=\"tracked_privately\">Rastreado de forma privada</string>\n    <string name=\"action_toggle_private_on\">Rastrear privadamente</string>\n    <string name=\"action_toggle_private_off\">Rastrear publicamente</string>\n    <string name=\"action_display_unread_badge\">Capítulos não lidos</string>\n    <string name=\"theme_monochrome\">Monocromático</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Depois de buscar um novo capítulo</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Se o leitor carregar uma imagem em branco, reduza o limite incrementalmente.\\nSelecionado: %s</string>\n    <string name=\"non_library_settings\">Todas as entradas lidas</string>\n    <string name=\"library_list\">Lista da biblioteca</string>\n    <string name=\"library_exported\">Biblioteca Exportada</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Cancelar</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrar</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Nenhum capítulo encontrado, esta entrada não pode ser usada para migração</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Cancelar</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copiar</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Cancelar</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Parar</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Parar migração?</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copiar agora</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrar agora</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Cancelar migração</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Pesquisar manualmente</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Desconhecido</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Mais recente: %1$s</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Nenhuma alternativa encontrada</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migrar</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copiar</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migração (%1$d/%2$d)</string>\n    <string name=\"migrationListScreenTitle\">Migração</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Se ativado, escolhe a correspondência mais avançada. Caso contrário, seleciona a primeira correspondência pela prioridade da fonte.</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Correspondência baseada no número do capítulo</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Divide o título em palavras-chave para uma busca mais ampla</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Modo de busca avançada</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Essas opções são lentas e perigosas, e podem causar restrições nas fontes</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Mostrar a entrada somente se a correspondência tiver capítulos adicionais</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Ocultar entradas sem capítulos mais recentes</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Ocultar entradas sem correspondência</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Ajuda a refinar os resultados da busca adicionando palavras-chave adicionais</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Palavras-chave adicionais (opcional)</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Excluir downloads da entrada atual após a migração</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Dados para migrar</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Contiunar</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Selecionar fontes fixadas</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Selecionar fontes habilitadas</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Selecionar nenhum</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Selecionar todos</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponível</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Selecionado</string>\n    <string name=\"notes_placeholder\">Gostou da parte onde…</string>\n    <string name=\"possible_duplicates_summary\">Você tem entradas na sua biblioteca com nomes semelhantes.\\n\\nSelecione uma entrada para migrar ou adicionar mesmo assim.</string>\n    <string name=\"possible_duplicates_title\">Possíveis duplicatas</string>\n    <string name=\"logging_in\">Fazendo login…</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Aviso: se um mangá for renomeado, ele será removido da fila de downloads (se estiver presente).</string>\n    <string name=\"pref_update_library_manga_titles\">Atualizar os títulos dos mangás da biblioteca para corresponder à fonte</string>\n    <string name=\"clear_db_exclude_read\">Manter mangás com capítulos lidos</string>\n    <string name=\"clear_database_history_warning\">Os capítulos lidos e o progresso de entradas fora da biblioteca serão perdidos</string>\n    <string name=\"clear_database_text\">Você está prestes a remover entradas do banco de dados</string>\n    <string name=\"storage_failed_to_create_directory\">Falha ao criar diretório: %s</string>\n    <string name=\"storage_failed_to_create_download_directory\">Falha ao criar diretório de download</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Ocultar indicadores de capítulos ausentes</string>\n    <string name=\"action_edit_notes\">Editar anotações</string>\n    <string name=\"action_notes\">Anotações</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"label_donate\">Doar</string>\n    <string name=\"action_webview_close_tab\">Fechar aba</string>\n    <string name=\"pref_display_images_description\">Renderizar imagens em descrições de mangá</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ro/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">După %1$s minut</item>\n        <item quantity=\"few\">După %1$s minute</item>\n        <item quantity=\"other\">După %1$s de minute</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d capitol nou</item>\n        <item quantity=\"few\">%1$d capitole noi</item>\n        <item quantity=\"other\">%1$d capitole noi</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capitolele %1$s și încă unul</item>\n        <item quantity=\"few\">Capitolele %1$s și încă %2$d în plus</item>\n        <item quantity=\"other\">Capitolele %1$s și încă %2$d mai multe</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Pentru %d intrare</item>\n        <item quantity=\"few\">Pentru %d intrări</item>\n        <item quantity=\"other\">Pentru %d intrări</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Actualizare de extensie disponibilă</item>\n        <item quantity=\"few\">%d actualizări de extensii sunt disponibile</item>\n        <item quantity=\"other\">%d actualizări de extensii sunt disponibile</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s rămasă</item>\n        <item quantity=\"few\">%1$s rămase</item>\n        <item quantity=\"other\">%1$s rămase</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categorie</item>\n        <item quantity=\"few\">%d categorii</item>\n        <item quantity=\"other\">%d de categorii</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Gata în %1$s cu eroarea %2$s</item>\n        <item quantity=\"few\">Gata în %1$s cu %2$s erori</item>\n        <item quantity=\"other\">Gata în %1$s cu %2$s erori</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capitol</item>\n        <item quantity=\"few\">%1$s capitole</item>\n        <item quantity=\"other\">%1$s de capitole</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d serviciu de urmărire</item>\n        <item quantity=\"few\">%d servicii de urmărire</item>\n        <item quantity=\"other\">%d de servicii de urmărire</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Omiterea %d capitol, fie că sursa lipsește, fie că a fost filtrată</item>\n        <item quantity=\"few\">Omiterea a %d capitole, fie că sursa nu le are, fie că au fost filtrate</item>\n        <item quantity=\"other\">Omiterea a %d capitole, fie că sursa nu le are, fie că au fost filtrate</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Ieri</item>\n        <item quantity=\"few\">Acum %1$d zile</item>\n        <item quantity=\"other\">Acum %1$d de zile</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Următorul capitol necitit</item>\n        <item quantity=\"few\">Următoarele %d capitole necitite</item>\n        <item quantity=\"other\">Următoarele %d de capitole necitite</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Următorul capitol</item>\n        <item quantity=\"few\">Următoarele %d capitole</item>\n        <item quantity=\"other\">Următoarele %d capitole</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Lipsește %1$s capitol</item>\n        <item quantity=\"few\">Lipsesc %1$s capitole</item>\n        <item quantity=\"other\">Lipsesc %1$s capitole</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">O zi</item>\n        <item quantity=\"few\">%d zile</item>\n        <item quantity=\"other\">%d zile</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d repozitoriu</item>\n        <item quantity=\"few\">%d repozitorii</item>\n        <item quantity=\"other\">%d de repozitorii</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Mâine</item>\n        <item quantity=\"few\">În %1$d zile</item>\n        <item quantity=\"other\">În %1$d de zile</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">O pagină</item>\n        <item quantity=\"few\">%1$s pagini</item>\n        <item quantity=\"other\">%1$s de pagini</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Migrați %1$d intrare?</item>\n        <item quantity=\"few\">Migrați %1$d intrări?</item>\n        <item quantity=\"other\">Migrați %1$d de intrări?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Copiați %1$d intrare?</item>\n        <item quantity=\"few\">Copiați %1$d intrări?</item>\n        <item quantity=\"other\">Copiați %1$d de intrări?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">O intrare a fost omisă</item>\n        <item quantity=\"few\">%1$d intrări au fost omise</item>\n        <item quantity=\"other\">%1$d de intrări au fost omise</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ro/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nume</string>\n    <string name=\"categories\">Categorii</string>\n    <string name=\"manga\">Intrări în bibliotecă</string>\n    <string name=\"chapters\">Capitole</string>\n    <string name=\"track\">Urmărind</string>\n    <string name=\"history\">Istoric</string>\n    <string name=\"label_settings\">Setări</string>\n    <string name=\"label_download_queue\">Coadă de descărcări</string>\n    <string name=\"label_library\">Bibliotecă</string>\n    <string name=\"label_recent_manga\">Istoric</string>\n    <string name=\"label_recent_updates\">Actualizări</string>\n    <string name=\"label_backup\">Backup și restaurare</string>\n    <string name=\"label_migration\">Migrează</string>\n    <string name=\"label_extensions\">Extensii</string>\n    <string name=\"label_extension_info\">Informații extensie</string>\n    <string name=\"action_settings\">Setări</string>\n    <string name=\"action_filter\">Filtru</string>\n    <string name=\"action_filter_bookmarked\">Marcate</string>\n    <string name=\"action_filter_unread\">Necitite</string>\n    <string name=\"action_filter_empty\">Șterge filtru</string>\n    <string name=\"action_sort_alpha\">Alfabetic</string>\n    <string name=\"action_sort_total\">Total capitole</string>\n    <string name=\"action_sort_last_read\">Citite recent</string>\n    <string name=\"action_search\">Caută</string>\n    <string name=\"action_global_search\">Caută global</string>\n    <string name=\"action_select_all\">Selectează tot</string>\n    <string name=\"action_mark_as_read\">Marchează ca citit</string>\n    <string name=\"action_mark_as_unread\">Marchează ca necitit</string>\n    <string name=\"action_mark_previous_as_read\">Marchează capitolele precedente ca citite</string>\n    <string name=\"action_download\">Descarcă</string>\n    <string name=\"action_bookmark\">Marchează Capitolul</string>\n    <string name=\"action_remove_bookmark\">Demarcați capitolul</string>\n    <string name=\"action_delete\">Șterge</string>\n    <string name=\"action_update_library\">Actualizează biblioteca</string>\n    <string name=\"action_edit\">Modifică</string>\n    <string name=\"action_add\">Adaugă</string>\n    <string name=\"action_add_category\">Adaugă categorie</string>\n    <string name=\"action_edit_categories\">Modifică categoriile</string>\n    <string name=\"action_rename_category\">Redenumește categoria</string>\n    <string name=\"action_move_category\">Setați categoriile</string>\n    <string name=\"action_edit_cover\">Modifică coperta</string>\n    <string name=\"action_pause\">Pauză</string>\n    <string name=\"action_previous_chapter\">Capitolul anterior</string>\n    <string name=\"action_next_chapter\">Capitolul următor</string>\n    <string name=\"action_retry\">Reîncearcă</string>\n    <string name=\"action_remove\">Șterge</string>\n    <string name=\"action_resume\">Continuă</string>\n    <string name=\"action_open_in_browser\">Deschide în browser</string>\n    <string name=\"action_display_mode\">Modul de afișare</string>\n    <string name=\"action_display\">Afișare</string>\n    <string name=\"action_display_grid\">Grilă compactă</string>\n    <string name=\"action_display_list\">Listă</string>\n    <string name=\"action_cancel\">Anulează</string>\n    <string name=\"action_sort\">Sortează</string>\n    <string name=\"action_install\">Instalează</string>\n    <string name=\"action_share\">Distribuie</string>\n    <string name=\"action_save\">Salvează</string>\n    <string name=\"action_reset\">Resetează</string>\n    <string name=\"action_undo\">Anulează</string>\n    <string name=\"action_open_log\">Deschide jurnal</string>\n    <string name=\"action_restore\">Restaurează</string>\n    <string name=\"loading\">Se încarcă…</string>\n    <string name=\"app_not_available\">Aplicația nu este accesibilă</string>\n    <string name=\"pref_category_general\">Generale</string>\n    <string name=\"pref_category_reader\">Cititor</string>\n    <string name=\"pref_category_downloads\">Descărcări</string>\n    <string name=\"pref_category_tracking\">Urmărite</string>\n    <string name=\"pref_category_advanced\">Avansat</string>\n    <string name=\"pref_category_about\">Despre</string>\n    <string name=\"pref_library_columns\">Elemente pe rând</string>\n    <string name=\"portrait\">Portret</string>\n    <string name=\"pref_library_update_interval\">Actualizări automate</string>\n    <string name=\"update_never\">Oprit</string>\n    <string name=\"update_6hour\">La fiecare 6 ore</string>\n    <string name=\"update_12hour\">La fiecare 12 ore</string>\n    <string name=\"update_24hour\">Zilnic</string>\n    <string name=\"update_48hour\">La fiecare 2 zile</string>\n    <string name=\"update_weekly\">Săptămânal</string>\n    <string name=\"all\">Toate</string>\n    <string name=\"pref_library_update_restriction\">Actualizează automat restricțiile dispozitivului</string>\n    <string name=\"charging\">La încărcare</string>\n    <string name=\"pref_update_only_non_completed\">Cu statutul \\\"Completată\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Actualizarea progresului după citire</string>\n    <string name=\"default_category\">Categorie implicită</string>\n    <string name=\"default_category_summary\">Întreabă mereu</string>\n    <string name=\"ext_update\">Actualizează</string>\n    <string name=\"ext_install\">Instalează</string>\n    <string name=\"ext_pending\">În așteptare</string>\n    <string name=\"ext_downloading\">Se descarcă</string>\n    <string name=\"ext_installing\">În curs de instalare</string>\n    <string name=\"ext_installed\">Instalată</string>\n    <string name=\"ext_trust\">Ai încredere</string>\n    <string name=\"ext_untrusted\">Nesigură</string>\n    <string name=\"ext_uninstall\">Dezinstalează</string>\n    <string name=\"untrusted_extension\">Extensie nesigură</string>\n    <string name=\"untrusted_extension_message\">Extensiile rău intenționate pot citi orice credențiale de autentificare stocate sau pot executa cod arbitrar.\n\\n\n\\nAcordând încredere acestei extensii, acceptați aceste riscuri.</string>\n    <string name=\"pref_fullscreen\">Ecran complet</string>\n    <string name=\"pref_page_transitions\">Animați tranzițiile de pagini</string>\n    <string name=\"action_display_download_badge\">Capitole descărcate</string>\n    <string name=\"landscape\">Peisaj</string>\n    <string name=\"pref_double_tap_anim_speed\">Viteza de animație pentru apăsare dublă</string>\n    <string name=\"pref_show_page_number\">Arată numărul paginii</string>\n    <string name=\"pref_crop_borders\">Taie marginile</string>\n    <string name=\"pref_custom_brightness\">Luminozitate personalizată</string>\n    <string name=\"pref_custom_color_filter\">Filtru color personalizat</string>\n    <string name=\"pref_keep_screen_on\">Păstrează ecranul pornit</string>\n    <string name=\"pref_reader_navigation\">Navigare</string>\n    <string name=\"pref_read_with_volume_keys\">Butoane de volum</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inversează butoanele de volum</string>\n    <string name=\"pref_reader_theme\">Culoare de fundal</string>\n    <string name=\"white_background\">Alb</string>\n    <string name=\"black_background\">Negru</string>\n    <string name=\"pref_viewer_type\">Mod de citire implicit</string>\n    <string name=\"left_to_right_viewer\">De la stânga la dreapta</string>\n    <string name=\"right_to_left_viewer\">De la dreapta la stânga</string>\n    <string name=\"vertical_viewer\">Paginat (vertical)</string>\n    <string name=\"webtoon_viewer\">Benzi desenate web</string>\n    <string name=\"pager_viewer\">Setări pagini</string>\n    <string name=\"pref_image_scale_type\">Tip de scalare</string>\n    <string name=\"scale_type_fit_screen\">Potrivește ecran</string>\n    <string name=\"scale_type_stretch\">Întinde</string>\n    <string name=\"scale_type_fit_width\">Potrivește pe lățime</string>\n    <string name=\"scale_type_fit_height\">Potrivește pe înălțime</string>\n    <string name=\"scale_type_original_size\">Mărimea originală</string>\n    <string name=\"scale_type_smart_fit\">Potrivire inteligentă</string>\n    <string name=\"pref_zoom_start\">Poziție inițială de mărire</string>\n    <string name=\"zoom_start_automatic\">Automat</string>\n    <string name=\"zoom_start_left\">Stânga</string>\n    <string name=\"zoom_start_right\">Dreapta</string>\n    <string name=\"zoom_start_center\">Centru</string>\n    <string name=\"double_tap_anim_speed_0\">Fără animație</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Rapid</string>\n    <string name=\"pref_rotation_type\">Tipul de rotație implicit</string>\n    <string name=\"rotation_free\">Liberă</string>\n    <string name=\"rotation_force_portrait\">Portret blocat</string>\n    <string name=\"rotation_force_landscape\">Peisaj blocat</string>\n    <string name=\"color_filter_r_value\">Roșu</string>\n    <string name=\"color_filter_g_value\">Verde</string>\n    <string name=\"color_filter_b_value\">Albastru</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_remove_after_marked_as_read\">După ce a fost marcat manual ca citit</string>\n    <string name=\"pref_remove_after_read\">După citire ștergeți automat</string>\n    <string name=\"disabled\">Deactivat</string>\n    <string name=\"last_read_chapter\">Ultimul capitol citit</string>\n    <string name=\"second_to_last\">Penultimul capitol citit</string>\n    <string name=\"third_to_last\">Al treilea până la ultimul capitol citit</string>\n    <string name=\"fourth_to_last\">Al patrulea până la ultimul capitol citit</string>\n    <string name=\"fifth_to_last\">Al cincilea până la ultimul capitol citit</string>\n    <string name=\"pref_download_new\">Descarcă capitole noi</string>\n    <string name=\"services\">Servicii de urmărire</string>\n    <string name=\"pref_create_backup\">Crează copie de rezervă</string>\n    <string name=\"pref_create_backup_summ\">Poate fii folosit pentru a restaura biblioteca curentă</string>\n    <string name=\"pref_restore_backup\">Restaurează un backup</string>\n    <string name=\"pref_restore_backup_summ\">Restaurează biblioteca din fișierul de backup</string>\n    <string name=\"pref_backup_interval\">Frecvența de creare a backupurilor automate</string>\n    <string name=\"backup_created\">Backup creat</string>\n    <string name=\"restore_completed\">Restaurare completă</string>\n    <string name=\"backup_choice\">Doriți să creați o copie de rezervă?</string>\n    <string name=\"restoring_backup\">Restaurând copia de rezervă</string>\n    <string name=\"creating_backup\">Creând copia de rezervă</string>\n    <string name=\"pref_clear_chapter_cache\">Curățare capitole depozitate</string>\n    <string name=\"used_cache\">Folosit: %1$s</string>\n    <string name=\"cache_deleted\">Depozit curățat. %1$d fișiere au fost șterse</string>\n    <string name=\"cache_delete_error\">A apărut o eroare în timpul ștergerii</string>\n    <string name=\"pref_clear_cookies\">Curăță cookies</string>\n    <string name=\"cookies_cleared\">Cookies curățate</string>\n    <string name=\"pref_clear_database\">Curățați baza de date</string>\n    <string name=\"pref_clear_database_summary\">Ștergeți istoricul pentru intrările care nu sunt salvate în bibliotecă</string>\n    <string name=\"clear_database_completed\">Înregistrări șterse</string>\n    <string name=\"version\">Versiune</string>\n    <string name=\"pref_enable_acra\">Trimite rapoarte pt. eșuări</string>\n    <string name=\"pref_acra_summary\">Ajută la rezolvarea bug-urilor. Informațiile sensibile nu vor fi trimise</string>\n    <string name=\"login_title\">Conectați-vă la %1$s</string>\n    <string name=\"username\">Nume de utilizator</string>\n    <string name=\"password\">Parolă</string>\n    <string name=\"login\">Autentificare</string>\n    <string name=\"login_success\">Autentificat</string>\n    <string name=\"unknown_error\">Eroare necunoscută</string>\n    <string name=\"updating_category\">Categorie in curs de actualizare</string>\n    <string name=\"no_more_results\">Nu mai sunt rezultate</string>\n    <string name=\"local_source\">Sursă locală</string>\n    <string name=\"other_source\">Altele</string>\n    <string name=\"action_global_search_hint\">Căutare globală…</string>\n    <string name=\"latest\">Cel mai recent</string>\n    <string name=\"browse\">Caută</string>\n    <string name=\"ongoing\">În desfășurare</string>\n    <string name=\"unknown\">Necunoscut</string>\n    <string name=\"licensed\">Licențiat</string>\n    <string name=\"remove_from_library\">Elimină din bibliotecă</string>\n    <string name=\"manga_added_library\">Adăugat la bibliotecă</string>\n    <string name=\"manga_removed_library\">Eliminat din bibliotecă</string>\n    <string name=\"delete_downloads_for_manga\">Ștergeți capitolele descărcate?</string>\n    <string name=\"copied_to_clipboard\">Copiat în clipboard:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Sursa nu este instalată:%1$s</string>\n    <string name=\"display_mode_chapter\">Capitolul %1$s</string>\n    <string name=\"chapter_downloading_progress\">Se descarcă (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Eroare</string>\n    <string name=\"chapter_paused\">Întrerupt</string>\n    <string name=\"show_title\">Titlul sursei</string>\n    <string name=\"show_chapter_number\">Numărul capitolului</string>\n    <string name=\"sort_by_source\">După sursă</string>\n    <string name=\"sort_by_number\">După numărul capitolului</string>\n    <string name=\"manga_download\">Descarcă</string>\n    <string name=\"download_unread\">Necitit</string>\n    <string name=\"confirm_delete_chapters\">Sigur doriți să ștergeți capitolele selectate?</string>\n    <string name=\"manga_tracking_tab\">Urmărite</string>\n    <string name=\"reading\">Citind</string>\n    <string name=\"completed\">Completată</string>\n    <string name=\"dropped\">Abandonată</string>\n    <string name=\"on_hold\">În așteptare</string>\n    <string name=\"plan_to_read\">Planificat pentru citit</string>\n    <string name=\"repeating\">Recitind</string>\n    <string name=\"score\">Scor</string>\n    <string name=\"title\">Titlu</string>\n    <string name=\"status\">Status</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Tip</string>\n    <string name=\"error_category_exists\">O categorie cu acest nume deja există!</string>\n    <string name=\"snack_categories_deleted\">Categoriile au fost șterse</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Acest lucru va șterge data citirii acestui capitol. Ești sigur?</string>\n    <string name=\"dialog_with_checkbox_reset\">Resetați toate capitolele pentru această intrare</string>\n    <string name=\"snack_add_to_library\">Adăugați la bibliotecă?</string>\n    <string name=\"picture_saved\">Imagine salvată</string>\n    <string name=\"custom_filter\">Filtru personalizat</string>\n    <string name=\"set_as_cover\">Stabilește ca și copertă</string>\n    <string name=\"cover_updated\">Copertă actualizată</string>\n    <string name=\"chapter_progress\">Pagina: %1$d</string>\n    <string name=\"no_next_chapter\">Capitolul următor nu a fost găsit</string>\n    <string name=\"decode_image_error\">Imaginea nu a putut să se încarce</string>\n    <string name=\"confirm_set_image_as_cover\">Folosiți această imagine ca și copertă?</string>\n    <string name=\"transition_finished\">Terminat:</string>\n    <string name=\"transition_current\">Actual:</string>\n    <string name=\"transition_next\">Următorul:</string>\n    <string name=\"transition_previous\">Precedent:</string>\n    <string name=\"transition_no_next\">Nu există capitolul următor</string>\n    <string name=\"transition_no_previous\">Nu există capitolul precedent</string>\n    <string name=\"transition_pages_loading\">Paginile se încarcă…</string>\n    <string name=\"transition_pages_error\">Încărcarea paginilor a eșuat: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Selectați ce date să fie incluse</string>\n    <string name=\"migrate\">Migrează</string>\n    <string name=\"copy\">Copiază</string>\n    <string name=\"download_queue_error\">Nu s-au putut descărca capitole. Puteți încerca din nou în secțiunea descărcări</string>\n    <string name=\"notification_new_chapters\">Capitole noi găsite</string>\n    <string name=\"notification_cover_update_failed\">Actualizarea copertei a eșuat</string>\n    <string name=\"notification_first_add_to_library\">Vă rugăm să adăugați intrarea în biblioteca dumneavoastră înainte de a face acest lucru</string>\n    <string name=\"file_select_cover\">Selectează imagine de copertă</string>\n    <string name=\"file_select_backup\">Selectează fișierul de rezervă</string>\n    <string name=\"update_check_confirm\">Descarcă</string>\n    <string name=\"update_check_no_new_updates\">Nu sunt exista actualizări noi</string>\n    <string name=\"update_check_notification_download_in_progress\">Se descarcă…</string>\n    <string name=\"update_check_notification_download_complete\">Apăsați pentru a instala actualizarea</string>\n    <string name=\"update_check_notification_download_error\">Eroare la descărcare</string>\n    <string name=\"update_check_notification_update_available\">Versiune nouă disponibilă!</string>\n    <string name=\"information_no_downloads\">Fără descărcări</string>\n    <string name=\"information_no_recent\">Nu există actualizări recente</string>\n    <string name=\"information_no_recent_manga\">Nimic citit recent</string>\n    <string name=\"information_empty_library\">Biblioteca este goală</string>\n    <string name=\"information_empty_category\">Nu aveți categorii. Apăsați butonul plus pentru a crea una pentru a vă organiza biblioteca.</string>\n    <string name=\"download_notifier_downloader_title\">Client de descărcare</string>\n    <string name=\"download_notifier_title_error\">Eroare</string>\n    <string name=\"download_notifier_unknown_error\">Nu s-a putut descărca capitolul din cauza unei erori neașteptate</string>\n    <string name=\"download_notifier_text_only_wifi\">Nu este disponibilă nicio conexiune Wi Fi</string>\n    <string name=\"download_notifier_no_network\">Nici o conexiune la internet valabilă</string>\n    <string name=\"download_notifier_download_paused\">Descărcare întreruptă</string>\n    <string name=\"channel_common\">General</string>\n    <string name=\"action_open_in_web_view\">Deschide în WebView</string>\n    <string name=\"pref_color_filter_mode\">Mod filtru de culoare</string>\n    <string name=\"filter_mode_overlay\">Acoperire</string>\n    <string name=\"filter_mode_multiply\">Înmulțește</string>\n    <string name=\"filter_mode_screen\">Ecran</string>\n    <string name=\"filter_mode_lighten\">Luminează</string>\n    <string name=\"filter_mode_darken\">Întunecă</string>\n    <string name=\"pref_skip_read_chapters\">Treci peste capitolele marcate ca Citit</string>\n    <string name=\"pref_read_with_long_tap\">Afișare la atingerea lungă</string>\n    <string name=\"label_help\">Ajutor</string>\n    <string name=\"no_results_found\">Nici un rezultat găsit</string>\n    <string name=\"migration_selection_prompt\">Selectați o sursă din care să migrați</string>\n    <string name=\"action_webview_back\">Înapoi</string>\n    <string name=\"action_webview_forward\">Înainte</string>\n    <string name=\"action_webview_refresh\">Actualizați</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"ext_obsolete\">Învechit</string>\n    <string name=\"obsolete_extension_message\">Această extensie nu mai este disponibilă. Este posibil să nu funcționeze corect și poate cauza probleme cu aplicația. Se recomandă dezinstalarea acesteia.</string>\n    <string name=\"pref_date_format\">Formatul datei</string>\n    <string name=\"pref_category_library_update\">Actualizare globală</string>\n    <string name=\"logout_title\">Deconectează-te de la %1$s?</string>\n    <string name=\"logout\">Deconectează-te</string>\n    <string name=\"logout_success\">Acum ești deconectat</string>\n    <string name=\"paused\">Întrerupt</string>\n    <string name=\"label_more\">Mai multe</string>\n    <string name=\"action_view_chapters\">Vezi capitolele</string>\n    <string name=\"action_cancel_all\">Anulează tot</string>\n    <string name=\"theme_light\">Oprită</string>\n    <string name=\"theme_dark\">Pornită</string>\n    <string name=\"theme_system\">Tema sistemului</string>\n    <string name=\"pref_manage_notifications\">Gestionați notificările</string>\n    <string name=\"pref_category_security\">Securitate și confidențialitate</string>\n    <string name=\"lock_with_biometrics\">Necesită deblocare</string>\n    <string name=\"action_sort_latest_chapter\">Cel mai recent capitol</string>\n    <string name=\"lock_when_idle\">Blocați când este inactiv</string>\n    <string name=\"lock_always\">Întotdeauna</string>\n    <string name=\"lock_never\">Niciodată</string>\n    <string name=\"secure_screen\">Securizează ecran</string>\n    <string name=\"ext_updates_pending\">Actualizări în așteptare</string>\n    <string name=\"pref_cutout_short\">Afișare conținut în zona decupată</string>\n    <string name=\"information_cloudflare_bypass_failure\">A eșuat evitarea Cloudflare</string>\n    <string name=\"information_webview_outdated\">Actualizați aplicația WebView pentru o compatibilitate mai bună</string>\n    <string name=\"channel_new_chapters\">Actualizări de capitole</string>\n    <string name=\"secure_screen_summary\">Ecranul securizat ascunde conținutul aplicațiilor la schimbarea aplicațiilor și blochează capturile de ecran</string>\n    <string name=\"pref_category_display\">Afișare</string>\n    <string name=\"notification_chapters_single\">Capitolul %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Capitolul %1$s și %2$d în plus</string>\n    <string name=\"notification_chapters_multiple\">Capitolele %1$s</string>\n    <string name=\"hide_notification_content\">Ascunde conținutul notificării</string>\n    <string name=\"pref_disable_battery_optimization\">Dezactivați optimizarea bateriei</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Ajută la actualizările și copiile de rezervă ale bibliotecii în fundal</string>\n    <string name=\"battery_optimization_disabled\">Optimizarea bateriei este deja dezactivată</string>\n    <string name=\"email\">Adresa de e-mail</string>\n    <string name=\"pref_always_show_chapter_transition\">Arată întotdeauna tranziția capitolului</string>\n    <string name=\"action_menu\">Meniu</string>\n    <string name=\"action_newest\">Cele mai recente</string>\n    <string name=\"action_oldest\">Cele mai vechi</string>\n    <string name=\"action_move_to_top\">Mută pe prima poziție</string>\n    <string name=\"action_move_to_bottom\">Mută pe ultima poziție</string>\n    <string name=\"channel_ext_updates\">Actualizări de extensie</string>\n    <string name=\"updating_library\">Se actualizează biblioteca</string>\n    <string name=\"pref_category_reading\">Citind</string>\n    <string name=\"pref_skip_filtered_chapters\">Săriți peste capitolele filtrate</string>\n    <string name=\"label_sources\">Surse</string>\n    <string name=\"action_select_inverse\">Selectează invers</string>\n    <string name=\"vertical_plus_viewer\">Vertical continuu</string>\n    <string name=\"pinned_sources\">Fixate</string>\n    <string name=\"pref_webtoon_side_padding\">Căptușeală laterală</string>\n    <string name=\"action_unpin\">Anulați fixarea</string>\n    <string name=\"action_pin\">Fixează</string>\n    <string name=\"add_tracking\">Urmărește</string>\n    <string name=\"in_library\">În bibliotecă</string>\n    <string name=\"add_to_library\">Adaugă în bibliotecă</string>\n    <string name=\"information_webview_required\">WebView este necesar pentru Mihon</string>\n    <string name=\"recent_manga_time\">Ch. %1$s - %2$s</string>\n    <string name=\"manga_info_collapse\">Mai puțin</string>\n    <string name=\"manga_info_expand\">Mai mult</string>\n    <string name=\"licenses\">Licențele open source</string>\n    <string name=\"website\">Pagină web</string>\n    <string name=\"restoring_backup_error\">Restaurarea copiei de rezervă a eșuat</string>\n    <string name=\"creating_backup_error\">Crearea copiei de rezervă a eșuat</string>\n    <string name=\"label_downloaded_only\">Doar descărcate</string>\n    <string name=\"restoring_backup_canceled\">Restaurare anulată</string>\n    <string name=\"restore_in_progress\">Restaurarea este deja în curs de desfășurare</string>\n    <string name=\"backup_in_progress\">Crearea copiei de rezervă este deja în curs de desfășurare</string>\n    <string name=\"local_source_help_guide\">Ghid sursă locală</string>\n    <string name=\"last_used_source\">Data ultimei utilizări</string>\n    <string name=\"check_for_updates\">Verifică pentru actualizări</string>\n    <string name=\"restore_duration\">%1$02d minute, %2$02d secunde</string>\n    <string name=\"downloaded_only_summary\">Filtrează toate intrările din bibliotecă</string>\n    <string name=\"viewer\">Mod de citire</string>\n    <string name=\"pref_category_for_this_series\">Pentru această serie</string>\n    <string name=\"gray_background\">Gri</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Imposibil de deschis setările dispozitivului</string>\n    <string name=\"tracking_info\">Sincronizare unidirecțională pentru actualizarea progresului capitolului în cadrul serviciilor de urmărire. Configurați urmărirea pentru intrările individuale din butonul de urmărire al acestora.</string>\n    <string name=\"pref_refresh_library_covers\">Reîmprospătarea coperților bibliotecii</string>\n    <string name=\"sort_by_upload_date\">După data încărcării</string>\n    <string name=\"backup_restore_missing_sources\">Surse lipsă:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Copia de rezervă nu conține nicio intrare în bibliotecă.</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Verifica dacă exista copertă și detalii noi când biblioteca este actualizată</string>\n    <string name=\"pref_library_update_refresh_metadata\">Actualizează metadata-ul automat</string>\n    <string name=\"action_display_comfortable_grid\">Grilă confortabilă</string>\n    <string name=\"action_migrate\">Migrează</string>\n    <string name=\"label_data\">Date</string>\n    <string name=\"invalid_backup_file\">Fișier de rezervă invalid:</string>\n    <string name=\"page_list_empty_error\">Nu s-au găsit pagini</string>\n    <string name=\"tabs_header\">Tab-uri</string>\n    <string name=\"action_display_show_tabs\">Afișează filele categoriei</string>\n    <string name=\"action_disable_all\">Dezactivați toate</string>\n    <string name=\"action_enable_all\">Activează toate</string>\n    <string name=\"pref_show_reading_mode_summary\">Afișați scurt modul curent când este deschis cititorul</string>\n    <string name=\"pref_show_reading_mode\">Arată modul de citire</string>\n    <string name=\"label_network\">Reţea</string>\n    <string name=\"loader_not_implemented_error\">Nu s-a găsit sursa</string>\n    <string name=\"requires_app_restart\">Necesită repornirea aplicației pentru a avea efect</string>\n    <string name=\"action_disable\">Dezactivați</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"tapping_inverted_both\">Ambele</string>\n    <string name=\"tapping_inverted_vertical\">Vertical</string>\n    <string name=\"tapping_inverted_horizontal\">Orizontal</string>\n    <string name=\"tapping_inverted_none\">Nici unul</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inversați zonele de atingere</string>\n    <string name=\"unknown_status\">Stare necunoscută</string>\n    <string name=\"unknown_author\">Autor necunoscut</string>\n    <string name=\"updated_version\">Actualizat la v%1$s</string>\n    <string name=\"whats_new\">Ce este nou</string>\n    <string name=\"download_insufficient_space\">Nu s-au putut descărca capitole din cauza spațiului de stocare redus</string>\n    <string name=\"action_global_search_query\">Căutați „%1$s” la nivel global</string>\n    <string name=\"pref_category_reading_mode\">Mod citire</string>\n    <string name=\"pref_category_theme\">Temă</string>\n    <string name=\"action_sort_date_added\">Data adăugării</string>\n    <string name=\"channel_errors\">Erori</string>\n    <string name=\"channel_complete\">Terminat</string>\n    <string name=\"channel_progress\">Progresul</string>\n    <string name=\"backup_restore_missing_trackers\">Serviciile de urmărire nu sunt conectate la:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permite ștergerea capitolelor marcate</string>\n    <string name=\"pref_category_delete_chapters\">Ștergeți capitole</string>\n    <string name=\"ext_nsfw_warning\">Sursele din această extensie pot avea conținut NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">Peste 18</string>\n    <string name=\"parental_controls_info\">Acest lucru nu împiedică extensiile neoficiale sau potențial semnalizate incorect să iasă la suprafață cu conținut 18+ în cadrul aplicației.</string>\n    <string name=\"no_pinned_sources\">Nu aveți surse fixate</string>\n    <string name=\"no_chapters_error\">Nu a fost găsit niciun capitol</string>\n    <string name=\"chapter_settings_updated\">S-au actualizat setările implicite ale capitolului</string>\n    <string name=\"share_page_info\">%1$s: %2$s, pagina %3$d</string>\n    <string name=\"set_chapter_settings_as_default\">Setați ca implicit</string>\n    <string name=\"also_set_chapter_settings_for_library\">Se aplică, de asemenea, tuturor intrărilor din biblioteca mea</string>\n    <string name=\"confirm_set_chapter_settings\">Sigur doriți să salvați aceste setări ca implicite?</string>\n    <string name=\"chapter_settings\">Setările capitolului</string>\n    <string name=\"downloaded_chapters\">Capitole descărcate</string>\n    <string name=\"manga_from_library\">Din bibliotecă</string>\n    <string name=\"action_search_settings\">Setări de căutare</string>\n    <string name=\"pref_incognito_mode_summary\">Întrerupe citirea istoricului</string>\n    <string name=\"pref_incognito_mode\">Modul incognito</string>\n    <string name=\"pref_clear_history\">Sterge istoricul</string>\n    <string name=\"clear_history_confirmation\">Esti sigur? Toată istoria va fi pierdută.</string>\n    <string name=\"clear_history_completed\">Istoricul a fost șters</string>\n    <string name=\"spen_next_page\">Pagina următoare</string>\n    <string name=\"spen_previous_page\">Pagina anterioară</string>\n    <string name=\"migration_help_guide\">Ghid de migrare a sursei</string>\n    <string name=\"pref_category_nsfw_content\">Conținut NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Afișați în listele de surse și extensii</string>\n    <string name=\"file_picker_error\">Nicio aplicație de ales fișiere nu a fost găsite</string>\n    <string name=\"myanimelist_relogin\">Te rugăm să te loghezi la MAL din nou</string>\n    <string name=\"pref_dual_page_invert\">Inversează plasamentul paginilor duble despărțite</string>\n    <string name=\"pref_dual_page_split\">Împărțire pagini duble</string>\n    <string name=\"pref_show_navigation_mode_summary\">Afișați pe scurt când cititorul este deschis</string>\n    <string name=\"pref_show_navigation_mode\">Afișați suprapunerea zonelor de atingere</string>\n    <string name=\"action_desc\">Descendent</string>\n    <string name=\"action_asc\">Ascendent</string>\n    <string name=\"action_order_by_chapter_number\">După numărul capitolului</string>\n    <string name=\"action_order_by_upload_date\">După data postării</string>\n    <string name=\"exclude\">Excludeți: %s</string>\n    <string name=\"include\">Includeți: %s</string>\n    <string name=\"pref_library_update_categories_details\">Înscrierile din categoriile excluse nu vor fi actualizate, chiar dacă acestea se află și în categoriile incluse.</string>\n    <string name=\"action_show_errors\">Atingeți pentru a vedea detaliile</string>\n    <string name=\"action_display_show_number_of_items\">Afișare număr de elemente</string>\n    <string name=\"none\">Nici unul</string>\n    <string name=\"pref_dns_over_https\">DNS prin HTTPS (DoH)</string>\n    <string name=\"track_finished_reading_date\">Data de terminare</string>\n    <string name=\"track_started_reading_date\">Data începerii</string>\n    <string name=\"pref_dump_crash_logs\">Aruncați jurnalele de erori fatale</string>\n    <string name=\"pref_dump_crash_logs_summary\">Salvează jurnalele de erori într-un fișier pentru partajarea cu dezvoltatorii</string>\n    <string name=\"pref_viewer_nav\">Zone de atingere</string>\n    <string name=\"edge_nav\">Margine</string>\n    <string name=\"kindlish_nav\">Similar unui Kindle</string>\n    <string name=\"l_nav\">În formă de L</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data obținerii capitolului</string>\n    <string name=\"action_filter_tracked\">Urmărit</string>\n    <string name=\"backup_restore_content_full\">Este posibil să fie necesar să instalați extensiile lipsă și să vă conectați ulterior la serviciile de urmărire pentru a le utiliza.</string>\n    <string name=\"pref_download_new_categories_details\">Nu vor fi descărcate înscrierile din categoriile excluse, chiar dacă acestea se află și în categoriile incluse.</string>\n    <string name=\"pref_category_auto_download\">Descărcare automată</string>\n    <string name=\"nav_zone_right\">Dreapta</string>\n    <string name=\"nav_zone_left\">Stânga</string>\n    <string name=\"nav_zone_next\">Următorul</string>\n    <string name=\"nav_zone_prev\">Anterior</string>\n    <string name=\"right_and_left_nav\">Dreapta și stânga</string>\n    <string name=\"pref_dual_page_invert_summary\">Dacă amplasarea divizării duble a paginii nu corespunde cu direcția de citire</string>\n    <string name=\"update_check_eol\">Această versiune Android nu mai este suportată</string>\n    <string name=\"clipboard_copy_error\">Nu s-a reușit copierea în clipboard</string>\n    <string name=\"error_sharing_cover\">Eroare la distribuirea copertei</string>\n    <string name=\"error_saving_cover\">Eroare la salvarea copertei</string>\n    <string name=\"cover_saved\">Copertă salvată</string>\n    <string name=\"chapter_not_found\">Capitolul nu a fost găsit</string>\n    <string name=\"unread\">Necitit</string>\n    <string name=\"action_start_downloading_now\">Începe acum descărcarea</string>\n    <string name=\"information_empty_category_dialog\">Nu aveți încă nicio categorie.</string>\n    <string name=\"theme_monet\">Dinamic</string>\n    <string name=\"label_default\">Implicit</string>\n    <string name=\"theme_midnightdusk\">Amurg de Miazănoapte</string>\n    <string name=\"channel_app_updates\">Actualizări de aplicație</string>\n    <string name=\"theme_tealturquoise\">Teal și turcoaz</string>\n    <string name=\"action_display_local_badge\">Sursă locală</string>\n    <string name=\"pref_category_appearance\">Aspect</string>\n    <string name=\"pref_app_theme\">Tematică Aplicație</string>\n    <string name=\"theme_greenapple\">Măr Verde</string>\n    <string name=\"cancel_all_for_series\">Anulează totul pentru această serie</string>\n    <string name=\"action_display_language_badge\">Limbă</string>\n    <string name=\"confirm_lock_change\">Autentifică-te pentru a confirma schimbările</string>\n    <string name=\"label_warning\">Avertizare</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri de căpșuni</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_yinyang\">Yin și Yang</string>\n    <string name=\"theme_yotsuba\">Yoțuba</string>\n    <string name=\"publishing_finished\">Editare finalizată</string>\n    <string name=\"cancelled\">Anulat</string>\n    <string name=\"on_hiatus\">În hiatus</string>\n    <string name=\"skipped_reason_completed\">Ignorata deoarece seria este completa</string>\n    <string name=\"skipped_reason_not_started\">Ignorat din cauza lipsei de capitolel citite</string>\n    <string name=\"local_invalid_format\">Format de capitol invalid</string>\n    <string name=\"download_queue_size_warning\">Atenție : actualizarile mari în masă vor face sursele mai incete și/sau vor bloca %s. Apăsați pentru mai multe informatii.</string>\n    <string name=\"getting_started_guide\">Ghidul de inceput</string>\n    <string name=\"notification_update_error\">%1$d actualizari esuate</string>\n    <string name=\"skipped_reason_not_caught_up\">Ignorata deoarece sunt capitole necitite</string>\n    <string name=\"empty_backup_error\">Nu există intrări în bibliotecă pentru a face backupuri</string>\n    <string name=\"delete_category\">Ștergeți categoria</string>\n    <string name=\"pref_inverted_colors\">Inversate</string>\n    <string name=\"enhanced_services\">Servicii de urmărire îmbunătățite</string>\n    <string name=\"webview_data_deleted\">Datele WebView au fost șterse</string>\n    <string name=\"about_dont_kill_my_app\">Unii producători au restricții suplimentare privind aplicațiile care opresc serviciile de fundal. Acest site web conține mai multe informații despre cum să le rezolvați.</string>\n    <string name=\"database_clean\">Nimic de curățat</string>\n    <string name=\"help_translate\">Ajută la traducere</string>\n    <string name=\"source_unsupported\">Sursa nu este acceptată</string>\n    <string name=\"network_not_metered\">Numai în rețea necontorizată</string>\n    <string name=\"date\">Dată</string>\n    <string name=\"pref_hide_threshold\">Sensibilitatea pentru ascunderea meniului la defilare</string>\n    <string name=\"action_show_manga\">Afișează intrarea</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instalați și porniți Shizuku pentru a utiliza Shizuku ca instalator de extensii.</string>\n    <string name=\"clear_database_source_item_count\">%1$d înregistrări în baza de datecare nu aparțin bibliotecii</string>\n    <string name=\"download_notifier_split_page_not_found\">Pagina %d nu a fost găsită în timpul divizării</string>\n    <string name=\"delete_category_confirmation\">Doriți să ștergeți categoria \\\"%s\\\"?</string>\n    <string name=\"internal_error\">InternalError: Verificați jurnalele de accident pentru informații suplimentare</string>\n    <string name=\"theme_lavender\">Lavandă</string>\n    <string name=\"pref_dark_theme_pure_black\">Mod întunecat negru pur</string>\n    <string name=\"enhanced_tracking_info\">Servicii care oferă caracteristici îmbunătățite pentru anumite surse. Înregistrările sunt urmărite automat atunci când sunt adăugate la biblioteca dumneavoastră.</string>\n    <string name=\"backup_info\">Ar trebui să păstrați copii ale backupurilor și în alte locuri.</string>\n    <string name=\"split_tall_images_summary\">Îmbunătățește performanța cititorului</string>\n    <string name=\"action_close\">Închide</string>\n    <string name=\"relative_time_today\">Azi</string>\n    <string name=\"reading_list\">Listă de citit</string>\n    <string name=\"wish_list\">Lista de dorințe</string>\n    <string name=\"complete_list\">Lista completă</string>\n    <string name=\"action_display_cover_only_grid\">Acoperire tip grilaj</string>\n    <string name=\"action_move_to_top_all_for_series\">Mutați seria pe prima poziție</string>\n    <string name=\"pref_update_only_started\">Care nu au fost începute</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku nu rulează</string>\n    <string name=\"pref_app_language\">Limba aplicației</string>\n    <string name=\"restrictions\">Restricții: %s</string>\n    <string name=\"pref_highest\">Cel mai înalt</string>\n    <string name=\"pref_high\">Înalt</string>\n    <string name=\"pref_low\">Scăzut</string>\n    <string name=\"pref_clear_webview_data\">Ștergeți datele WebView</string>\n    <string name=\"on_hold_list\">Lista în așteptare</string>\n    <string name=\"pref_update_only_completely_read\">Cu capitol(e) necitit(e)</string>\n    <string name=\"pref_lowest\">Cel mai scăzut</string>\n    <string name=\"unfinished_list\">Lista neterminată</string>\n    <string name=\"action_sort_unread_count\">Număr de necitite</string>\n    <string name=\"restore_miui_warning\">Este posibil să nu funcționeze corect backup/restaurare dacă MIUI Optimization este dezactivată.</string>\n    <string name=\"update_72hour\">La fiecare 3 zile</string>\n    <string name=\"connected_to_wifi\">Doar prin Wi Fi</string>\n    <string name=\"off\">Oprit</string>\n    <string name=\"ext_app_info\">Informații despre aplicație</string>\n    <string name=\"custom_cover\">Copertă personalizată</string>\n    <string name=\"manga_cover\">Copertă</string>\n    <string name=\"update_already_running\">O actualizare rulează deja</string>\n    <string name=\"pref_remove_exclude_categories\">Categorii excluse</string>\n    <string name=\"categorized_display_settings\">Setări per categorie pentru sortare și afișare</string>\n    <string name=\"rotation_type\">Tip de rotație</string>\n    <string name=\"rotation_portrait\">Portret</string>\n    <string name=\"privacy_policy\">Politica de confidențialitate</string>\n    <string name=\"auto_download_while_reading\">Descărcă automat în timp ce citiți</string>\n    <string name=\"ext_info_version\">Versiune</string>\n    <string name=\"ext_info_language\">Limbă</string>\n    <string name=\"save_chapter_as_cbz\">Salvează ca arhivă CBZ</string>\n    <string name=\"action_sort_last_manga_update\">Ultima verificare a actualizării</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Șterge memoria cache a capitolului la închiderea aplicației</string>\n    <string name=\"local_filter_order_by\">Ordonează după</string>\n    <string name=\"cant_open_last_read_chapter\">Nu se poate deschide ultimul capitol citit</string>\n    <string name=\"extension_api_error\">Nu s-a putut obține lista de extensii</string>\n    <string name=\"ext_install_service_notif\">Se instalează extensia…</string>\n    <string name=\"ext_installer_pref\">Program de instalare</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Creează dosare în funcție de titlul intrărilor</string>\n    <string name=\"automatic_background\">Automat</string>\n    <string name=\"on\">Pornit</string>\n    <string name=\"are_you_sure\">Ești sigur?</string>\n    <string name=\"error_saving_picture\">Eroare la salvarea imaginii</string>\n    <string name=\"ext_update_all\">Actualizează tot</string>\n    <string name=\"disabled_nav\">Deactivat</string>\n    <string name=\"action_remove_everything\">Șterge tot</string>\n    <string name=\"pref_reader_actions\">Acțiuni</string>\n    <string name=\"pref_create_folder_per_manga\">Salvează pagini în dosare separate</string>\n    <string name=\"description_placeholder\">Fără descriere</string>\n    <string name=\"notification_incognito_text\">Dezactivează modul incognito</string>\n    <string name=\"download_ahead_info\">Funcționează numai dacă capitolul curent + următorul sunt deja descărcate.</string>\n    <string name=\"library_errors_help\">Pentru ajutor în cum se repară erori de actualizări de bibliotecă, vezi %1$s</string>\n    <string name=\"pref_grayscale\">Alb-negru</string>\n    <string name=\"rotation_landscape\">Peisaj</string>\n    <string name=\"learn_more\">Apasă pentru a afla mai multe</string>\n    <string name=\"pref_landscape_zoom\">Măriți imaginea în format peisaj</string>\n    <string name=\"pref_reset_viewer_flags\">Resetați setările de cititor per serie</string>\n    <string name=\"pref_tablet_ui_mode\">Interfață de tabletă</string>\n    <string name=\"action_track\">Urmăriți</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Resetați modul de citire si orientare pentru toate seriile</string>\n    <string name=\"download_ahead\">Descarcă înainte</string>\n    <string name=\"multi_lang\">Multiple</string>\n    <string name=\"notification_size_warning\">Actualizări mari dăunează surselor și pot duce la actualizări mai lente și creșterea nivelului de utilizare a bateriei. Apasă pentru a afla mai multe.</string>\n    <string name=\"label_background_activity\">Activități în fundal</string>\n    <string name=\"update_check_open\">Deschide pe GitHub</string>\n    <string name=\"not_installed\">Nu este instalat</string>\n    <string name=\"action_sort_count\">Total intrări</string>\n    <string name=\"action_search_hint\">Caută…</string>\n    <string name=\"theme_tidalwave\">Tsunami</string>\n    <string name=\"ext_info_age_rating\">Vârsta minimă</string>\n    <string name=\"ext_installer_legacy\">Versiune veche</string>\n    <string name=\"tracking_guide\">Ghid de urmărire</string>\n    <string name=\"rotation_reverse_portrait\">Format portret întors</string>\n    <string name=\"missing_storage_permission\">Permisiunile de stocare nu au fost acceptate</string>\n    <string name=\"pref_reset_viewer_flags_success\">Toate setările de citire au fost resetate</string>\n    <string name=\"popular\">Populare</string>\n    <string name=\"error_no_match\">Nimic asemănător nu a fost găsit</string>\n    <string name=\"remove_manga\">Sunteți pe cale să eliminați \\\"%s\\\" din biblioteca dvs</string>\n    <string name=\"source_filter_empty_screen\">Nici o sursă instalată nu a fost găsită</string>\n    <string name=\"appwidget_updates_description\">Vizualizați intrările recent actualizate din bibliotecă</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nu am putut reseta setările de citire</string>\n    <string name=\"source_empty_screen\">Nici o sursă găsită</string>\n    <string name=\"skipped_reason_not_always_update\">Ignorat deoarece seria nu necesită actualizări</string>\n    <string name=\"updates_last_update_info\">Ultima actualizare a bibliotecii: %s</string>\n    <string name=\"empty_screen\">Ei bine, nu ar trebui sa vezi asta</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nu am putut găsi calea paginii %d</string>\n    <string name=\"unknown_title\">Titlu necunoscut</string>\n    <string name=\"invalid_location\">Locație invalidă: %s</string>\n    <string name=\"pref_verbose_logging_summary\">Tipărirea rapoartelor verbale către jurnalul de sistem (reduce performanța aplicației)</string>\n    <string name=\"error_user_agent_string_invalid\">Șir de caractere invalid pentru agentul de utilizator</string>\n    <string name=\"pref_reset_user_agent_string\">Restabilirea șirului implicit de agent al utilizatorului</string>\n    <string name=\"updates_last_update_info_just_now\">Chiar acum</string>\n    <string name=\"pref_verbose_logging\">Consemnare verbală</string>\n    <string name=\"crash_screen_description\">%s a întâmpinat o eroare neașteptată. Vă sugerăm să faceți o captură de ecran a acestui mesaj, să descărcați registrele de erori și apoi să le partajați prin intermediul canalului nostru de asistență pe Discord.</string>\n    <string name=\"appwidget_unavailable_locked\">Widgetul nu este disponibil atunci când este activată blocarea aplicației</string>\n    <string name=\"pref_appearance_summary\">Tema, formatul datei și al orei</string>\n    <string name=\"pref_library_summary\">Categorii, actualizări globale</string>\n    <string name=\"pref_reader_summary\">Modul de citire, afișare, navigare</string>\n    <string name=\"pref_downloads_summary\">Descărcare automată, descărcare anticipată</string>\n    <string name=\"pref_tracking_summary\">Sincronizare unică a progresului, sincronizare optimizată</string>\n    <string name=\"pref_browse_summary\">Surse, extensii, căutare globală</string>\n    <string name=\"pref_backup_summary\">Copii de rezervă manuale și automate</string>\n    <string name=\"pref_security_summary\">Blocarea aplicației, securizarea ecranului</string>\n    <string name=\"pref_advanced_summary\">Golirea registrelor de eroare, optimizări ale bateriei</string>\n    <string name=\"pref_user_agent_string\">Șirul implicit de agent al utilizatorului</string>\n    <string name=\"error_user_agent_string_blank\">Șirul agentului de utilizator nu poate fi gol</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"crash_screen_restart_application\">Reporniți aplicația</string>\n    <string name=\"pref_navigate_pan\">Panoramare a imaginii la scară largă la atingere</string>\n    <string name=\"action_display_show_continue_reading_button\">Afișați butonul de continuare a cititului</string>\n    <string name=\"information_no_entries_found\">Nu s-au găsit intrări în această categorie</string>\n    <string name=\"track_remove_finish_date_conf_text\">Acest lucru va elimina data de finalizare selectată anterior din %s</string>\n    <string name=\"pref_invalidate_download_cache\">Reindexați descărcările</string>\n    <string name=\"download_notifier_cache_renewal\">Descărcări de indexare</string>\n    <string name=\"track_remove_date_conf_title\">Eliminați data?</string>\n    <string name=\"track_remove_start_date_conf_text\">Acest lucru va elimina data de început selectată anterior din %s</string>\n    <string name=\"fdroid_warning\">Versiunile F-Droid nu sunt acceptate oficial.\n\\nApăsați pentru a afla mai multe.</string>\n    <string name=\"action_open_random_manga\">Deschideți aleatoriu</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Obligați aplicația să refacă verificarea capitolelor descărcate</string>\n    <string name=\"pref_library_update_show_tab_badge\">Afiseaza numarul de notificari necitite pe pictorgrama Actualizari</string>\n    <string name=\"label_stats\">Statistici</string>\n    <string name=\"label_local\">Local</string>\n    <string name=\"label_started\">Început</string>\n    <string name=\"label_downloaded\">Descărcat</string>\n    <string name=\"label_overview_section\">Prezentare generală</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_not_now\">Nu acum</string>\n    <string name=\"label_completed_titles\">Intrari complete</string>\n    <string name=\"label_read_duration\">Durata cutirii</string>\n    <string name=\"label_titles_section\">Intrari</string>\n    <string name=\"label_titles_in_global_update\">In actualizare globala</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_read_chapters\">Citit</string>\n    <string name=\"label_tracker_section\">Servicii de urmărire</string>\n    <string name=\"label_mean_score\">Scorul mediu</string>\n    <string name=\"label_used\">Utilizat</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"information_no_manga_category\">Categorie goala</string>\n    <string name=\"pref_skip_dupe_chapters\">Treci peste capitolele duplicae</string>\n    <string name=\"enhanced_services_not_installed\">Disponibil, dar sursa nu este instalata: %s</string>\n    <string name=\"track_error\">%1$s eroare: %2$s</string>\n    <string name=\"information_required_plain\">*necesar</string>\n    <string name=\"copied_to_clipboard_plain\">Copiat in clipboard</string>\n    <string name=\"unlock_app_title\">Deblochează %s</string>\n    <string name=\"delete_downloaded\">Șterge descărcările</string>\n    <string name=\"action_set_interval\">Setează intervalul</string>\n    <string name=\"scanlator\">Scanlator</string>\n    <string name=\"label_data_storage\">Date și stocare</string>\n    <string name=\"action_sort_next_updated\">Următoarea actualizare așteptată</string>\n    <string name=\"action_filter_interval_custom\">Frecvență de actualizare personalizată</string>\n    <string name=\"pref_storage_location\">Locație de stocare</string>\n    <string name=\"information_cloudflare_help\">Atinge aici pentru ajutor cu Cloudflare</string>\n    <string name=\"action_create\">Creați</string>\n    <string name=\"relative_time_span_never\">Niciodată</string>\n    <string name=\"pref_flash_page_summ\">Reduceți imaginile fantomă pe ecranele e-ink</string>\n    <string name=\"action_copy_to_clipboard\">Copiați în clipboard</string>\n    <string name=\"pref_page_rotate\">Rotiți paginile late pentru a se potrivi</string>\n    <string name=\"pref_storage_location_info\">Folosit pentru copii de rezervă automate, capitole descărcate, și surse locale.</string>\n    <string name=\"action_apply\">Aplică</string>\n    <string name=\"pref_debug_info\">Informații de depanare</string>\n    <string name=\"syncing_library\">Sincronizare bibliotecă</string>\n    <string name=\"create_backup_file_error\">Copia de rezervă nu a putut fi creată</string>\n    <string name=\"intervals_header\">Intervale</string>\n    <string name=\"action_revert_to_default\">Reveniți la implicit</string>\n    <string name=\"action_update_category\">Actualizați categoria</string>\n    <string name=\"action_menu_overflow_description\">Mai multe opțiuni</string>\n    <string name=\"library_sync_complete\">Sincronizare bibliotecă completă</string>\n    <string name=\"last_auto_backup_info\">Ultima copie de rezervă creata la: %s</string>\n    <string name=\"pref_page_rotate_invert\">Răsturnați orientarea paginilor late rotite</string>\n    <string name=\"selected\">Selectat</string>\n    <string name=\"no_scanlators_found\">Nici un scanlator nu a fost găsit</string>\n    <string name=\"not_selected\">Nu a fost selectat</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Mutați seria pe ultima poziție</string>\n    <string name=\"pref_chapter_swipe_end\">Glisare către dreapta a unui capitol</string>\n    <string name=\"exception_offline\">Fără conexiune la internet</string>\n    <string name=\"pref_storage_usage\">Utilizarea spațiului de stocare</string>\n    <string name=\"notification_updating_progress\">Actualizare bibliotecă… (%s)</string>\n    <string name=\"download_cache_invalidated\">Indexul de descărcări a fost invalidat</string>\n    <string name=\"action_bar_up_description\">Navighează în sus</string>\n    <string name=\"action_sort_tracker_score\">Scorul serviciului de urmărire</string>\n    <string name=\"skipped_reason_not_in_release_period\">Sărit peste deoarece nici o lansare nu era așteptată astăzi</string>\n    <string name=\"file_null_uri_error\">Nici o filă selectată</string>\n    <string name=\"track_delete_title\">Eliminați monitorizarea %s?</string>\n    <string name=\"source_settings\">Setări surse</string>\n    <string name=\"app_settings\">Setări aplicație</string>\n    <string name=\"pref_chapter_swipe_start\">Glisare către stânga a unui capitol</string>\n    <string name=\"track_delete_remote_text\">De asemenea elimină din %s</string>\n    <string name=\"split_tall_images\">Împărțiți imaginile înalte</string>\n    <string name=\"has_results\">Au fost găsite rezultate</string>\n    <string name=\"track_delete_text\">Această acțiune va elimina local monitorizarea.</string>\n    <string name=\"pref_update_only_in_release_period\">În afara perioadei de lansare estimată</string>\n    <string name=\"action_ok\">Ok</string>\n    <string name=\"pref_double_tap_zoom\">Atingeți de două ori pentru a mări</string>\n    <string name=\"track_activity_name\">Autentificare serviciu de urmărire</string>\n    <string name=\"pref_hide_in_library_items\">Ascundeți înregistrările care se află deja în bibliotecă</string>\n    <string name=\"pref_relative_format\">Marcaje de timp relative</string>\n    <string name=\"exception_http\">HTTP %d, verificați site-ul in modul WebView</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" în loc de \\\"%2$s\\\"</string>\n    <string name=\"exception_unknown_host\">Nu a putut fi accesat %s</string>\n    <string name=\"label_tracked_titles\">Înregistrări monitorizate</string>\n    <string name=\"exclude_scanlators\">Exclude scanlator</string>\n    <string name=\"pref_onboarding_guide\">Ghid de îmbarcare</string>\n    <string name=\"onboarding_heading\">Bine ați venit!</string>\n    <string name=\"onboarding_action_next\">Următorul</string>\n    <string name=\"onboarding_action_skip\">Omite</string>\n    <string name=\"onboarding_storage_action_select\">Selectează un folder</string>\n    <string name=\"onboarding_storage_selection_required\">Un folder trebuie selectat</string>\n    <string name=\"onboarding_storage_help_info\">Actualizați de la o versiune mai veche și nu sunteți sigur ce să selectați? Pentru mai multe informații, consultați ghidul de stocare.</string>\n    <string name=\"onboarding_storage_help_action\">Ghid de stocare</string>\n    <string name=\"onboarding_permission_install_apps\">Permisiunea de a instala aplicații</string>\n    <string name=\"onboarding_permission_install_apps_description\">Pentru a instala extensii sursă.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Utilizarea bateriei în fundal</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Evitați întreruperile actualizărilor bibliotecii, descărcărilor, și restaurărilor de lungă durată.</string>\n    <string name=\"onboarding_permission_action_grant\">Acordă</string>\n    <string name=\"onboarding_guides_returning_user\">Reinstalare %s?</string>\n    <string name=\"pref_library_update_smart_update\">Actualizare inteligentă</string>\n    <string name=\"label_extension_repos\">Repozitoriu extensii</string>\n    <string name=\"information_empty_repos\">Nu aveți nici un repozitoriu configurat.</string>\n    <string name=\"action_add_repo\">Adăugați repozitoriu</string>\n    <string name=\"action_add_repo_message\">Adăugați repozitorii adiționale pentru %s. Acestea ar trebuii să fie URL-uri care se încheie cu \\\"index.min.json\\\".</string>\n    <string name=\"delete_repo_confirmation\">Doriți să ștergeți repozitoriul \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Repozitoriu open source</string>\n    <string name=\"no_location_set\">Nici o locație pentru stocare nu a fost setată</string>\n    <string name=\"invalid_backup_file_error\">Eroarea completă:</string>\n    <string name=\"private_settings\">Includeți setări sensibile (ex. token-ul serviciilor de urmărire al logări)</string>\n    <string name=\"available_disk_space_info\">Disponibil: %1$s / Total: %2$s</string>\n    <string name=\"manga_display_interval_title\">Estimează la fiecare</string>\n    <string name=\"manga_display_modified_interval_title\">Configurează actualizări la fiecare</string>\n    <string name=\"manga_interval_expected_update\">Se preconizează că vor fi lansate noi capitole în aproximativ %1$s, verifică la fiecare %2$s.</string>\n    <string name=\"manga_interval_expected_update_soon\">În curând</string>\n    <string name=\"manga_interval_custom_amount\">Frecvența personalizată de actualizare:</string>\n    <string name=\"onboarding_description\">Să configurăm câteva lucruri mai întâi. Le puteți schimba oricând în setări și mai târziu.</string>\n    <string name=\"onboarding_action_finish\">Începe</string>\n    <string name=\"onboarding_storage_info\">Selectează un folder unde %1$s va păstra capitolele descărcate, copiile de rezervă, și altele.\n\\n\n\\nSe recomanda folosirea unui folder dedicat.\n\\n\n\\nFolder-ul selectat: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Permisiune de notificare</string>\n    <string name=\"onboarding_permission_notifications_description\">Primiți notificări pentru actualizările bibliotecii și altele.</string>\n    <string name=\"onboarding_guides_new_user\">Nou pe %s? Vă recomandăm să consultați ghidul introductiv.</string>\n    <string name=\"ext_permission_install_apps_warning\">Sunt necesare permisiuni pentru instalarea de extensii. Atingeți aici pentru a permite.</string>\n    <string name=\"ext_revoke_trust\">Revocați încrederea extensiilor necunoscute</string>\n    <string name=\"label_add_repo_input\">URL repozitoriu</string>\n    <string name=\"error_repo_exists\">Acest repozitoriu există deja!</string>\n    <string name=\"action_delete_repo\">Șterge repozitoriu</string>\n    <string name=\"invalid_repo_name\">URL repozitoriu invalid</string>\n    <string name=\"label_upcoming\">Viitoare</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"action_replace_repo_message\">Repozitoriul %1$s are acceeași amprenta digitală a cheii de semnare ca și %2$s\n\\nÎn cazul în care asta este la ce vă așteptați, %2$s va fi înlocuit, altfel contatati întreținătorul repozitoriului.</string>\n    <string name=\"pref_display_profile\">Profil de afișare personalizat</string>\n    <string name=\"action_add_anyway\">Adăugați oricum</string>\n    <string name=\"action_replace_repo\">Înlocuiți</string>\n    <string name=\"action_replace_repo_title\">Amprenta digitală a cheii de semnare există deja</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Dezactivați funcția de zoom-out</string>\n    <string name=\"action_view_upcoming\">Vizualizați actualizările viitoare</string>\n    <string name=\"upcoming_guide\">Ghidul viitor</string>\n    <string name=\"upcoming_calendar_next\">Luna următoare</string>\n    <string name=\"upcoming_calendar_prev\">Luna anterioară</string>\n    <string name=\"extensionRepo_settings\">Repo-uri extensii</string>\n    <string name=\"manga_interval_expected_update_null\">Această manga este fie finalizată, fie nu există preconizare pentru data lansării.</string>\n    <string name=\"pref_flash_style_black\">Negru</string>\n    <string name=\"pref_flash_with\">Luminează cu</string>\n    <string name=\"pref_flash_style_white\">Alb</string>\n    <string name=\"pref_flash_style_white_black\">Alb și Negru</string>\n    <string name=\"pref_flash_page_interval\">Luminează la fiecare</string>\n    <string name=\"action_copy_link\">Copiați link-ul</string>\n    <string name=\"file_picker_uri_permission_unsupported\">A eșuat obținerea accesului persistent la folder. Aplicația se poate comporta în mod neașteptat.</string>\n    <string name=\"pref_flash_duration\">Durată luminare</string>\n    <string name=\"pref_flash_page\">Luminează la schimbarea paginii</string>\n    <string name=\"overlay_header\">Strat acoperitor</string>\n    <string name=\"add_repo_confirmation\">Doriți să adăugați repo-ul „%s”?</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Omiteți descărcarea duplicatelor pentru capitolele deja citite</string>\n    <string name=\"invalid_backup_file_json\">Copie de rezervă JSON nu este admisibilă</string>\n    <string name=\"invalid_backup_file_unknown\">Copie de rezervă este coruptă</string>\n    <string name=\"confirm_tracker_update\">Actualizați serviciile de urmărire la capitolul %d?</string>\n    <string name=\"non_library_settings\">Toate înregistrările citite</string>\n    <string name=\"action_sort_random\">Aleatoriu</string>\n    <string name=\"onboarding_permission_analytics_description\">Trimiteți date de utilizare anonimizate pentru a îmbunătăți funcțiile aplicației.</string>\n    <string name=\"pref_security\">Securitate</string>\n    <string name=\"pref_firebase\">Jurnale de analiză și de erori</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Actualizare progres atunci când este marcat ca citit</string>\n    <string name=\"trackers_updated_summary\">Servicii de urmărire actualizate la capitolul %d</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Trimiteți anonim jurnalele de blocare către dezvoltatorilor.</string>\n    <string name=\"onboarding_permission_analytics\">Permiteți analizele</string>\n    <string name=\"onboarding_permission_crashlytics\">Trimiteți jurnalele de eroare</string>\n    <string name=\"firebase_summary\">Trimiterea jurnalelor de erori și a analizelor ne va permite să identificăm și să rezolvăm problemele, să îmbunătățim performanța și să facem actualizările viitoare mai relevante pentru nevoile dumneavoastră</string>\n    <string name=\"ext_remove\">Eliminați</string>\n    <string name=\"ext_confirm_remove\">Eliminați extensia?</string>\n    <string name=\"remove_private_extension_message\">Chiar doriți să eliminați extensia „%s”?</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Implicit (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Prag bitmap hardware personalizat</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Dacă cititorul încarcă o imagine goală, reduceți treptat pragul.\\nSelectat: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Afectează performanța. Activați numai dacă reducerea pragului bitmap nu rezolvă problemele legate de imaginile goale</string>\n    <string name=\"label_auto\">Automatic</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Întrerupeți istoricul de lectură pentru extensie</string>\n    <string name=\"label_donate\">Donează</string>\n    <string name=\"action_display_unread_badge\">Capitole necitite</string>\n    <string name=\"action_notes\">Notițe</string>\n    <string name=\"action_edit_notes\">Editează notițe</string>\n    <string name=\"theme_catppuccin\">Catppuccino</string>\n    <string name=\"theme_monochrome\">Monocromatic</string>\n    <string name=\"pref_display_images_description\">Afișați imagini în descrierile benzilor desenate</string>\n    <string name=\"pref_behavior\">Comportament</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marcați capitolele duplicate ca citite</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">După citirea unui capoitol</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">După aducerea noilor capitole</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Ascunde indicatoarele pentru capitolele absente</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Utilizați decodurul vechi pentru tipul bandă lungă</string>\n    <string name=\"storage_failed_to_create_download_directory\">Directorul pentru descărcări nu a putut fi creat</string>\n    <string name=\"storage_failed_to_create_directory\">Directorul: %s nu a putut fi creat</string>\n    <string name=\"export\">Exportă</string>\n    <string name=\"library_list\">Listă biblioteci</string>\n    <string name=\"library_exported\">Bibliotecă exportată</string>\n    <string name=\"clear_database_text\">Ești pe cale să elimini intrări din baza de date</string>\n    <string name=\"clear_database_history_warning\">Capitolele citite și progresul intrărilor care nu sunt în bibliotecă vor fi pierdute</string>\n    <string name=\"clear_db_exclude_read\">Păstrați intrările cu capitole citite</string>\n    <string name=\"pref_update_library_manga_titles\">Actualizați titlurile benzilor desenate din bibliotecă pentru a le potrivi cu sursa</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Atenție: dacă o bandă desenată este redenumită, aceasta va fi eliminată din coada de descărcare (dacă este prezenă).</string>\n    <string name=\"logging_in\">Conectare…</string>\n    <string name=\"author\">Autor</string>\n    <string name=\"artist\">Artist</string>\n    <string name=\"possible_duplicates_title\">Posibile duplicate</string>\n    <string name=\"possible_duplicates_summary\">Aveți intrări cu un nume similar în bibliotecă.\\n\\nSelectați o intrare pentru migrare sau adăugați oricum.</string>\n    <string name=\"tracked_privately\">Urmărit în mod privat</string>\n    <string name=\"action_toggle_private_on\">Urmăriți în mod privat</string>\n    <string name=\"action_toggle_private_off\">Urmăriți în mod public</string>\n    <string name=\"notes_placeholder\">Mi-a plăcut partea în care…</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Selectat</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Disponibil</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Selectați tot</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Selectați niciunul</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Selectați sursele active</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Selectați sursele fixate</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Continuați</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Date de migrat</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Ștergeți descărcările intrării curente după migrare</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Cuvinte cheie suplimentare (opțional)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Ajutați la restrângerea rezultatelor căutării prin adăugarea de cuvinte cheie suplimentare</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Ascundeți intrările fără potrivire</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Ascundeți intrările fără capitole mai noi</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Afișați intrarea doar dacă are capitole suplimentare</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Aceste opțiuni sunt lente și periculoase și pot duce la restricții din partea surselor</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Mod de căutare avansată</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Împarte titlul în cuvinte cheie pentru o căutare mai amplă</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Potrivire în funcție de numărul capitolului</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Dacă este activată, alege potrivirea cea mai înaintată. În caz contrar, alege prima potrivire după prioritatea sursei.</string>\n    <string name=\"migrationListScreenTitle\">Migrare</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Migrare (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Copiați</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Migarți</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Nu a fost găsită nici o alternativă</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Cel mai recent: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Necunoscut</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Căutare manuală</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Nu migrați</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Migrați acum</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Copiați acum</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Opriți migrarea?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Opriți</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Anulați</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Copiați</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Migrați</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Anulați</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Anulați</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Nu s-au găsit capitole, această intrare nu poate fi utilizată pentru migrare</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Nu permiteți nume de fișiere non-ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Asigurți compatibilitatea cu anumite medii de stocare care nu suportă Unicode. Când această opțiune este activată, va trebui să redenumiți manual directoarele sursă și cele de manga, înlocuind caracterele non-ASCII cu reprezentările lor hexadecimale UTF-8 cu litere mici. Fișierele capitolelor nu trebuie redenumite.</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ru/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">После %1$s минуты</item>\n        <item quantity=\"few\">После %1$s минут</item>\n        <item quantity=\"many\">После %1$s минут</item>\n        <item quantity=\"other\">После %1$s минут</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Главы %1$s и ещё одна</item>\n        <item quantity=\"few\">Главы %1$s и ещё %2$d</item>\n        <item quantity=\"many\">Главы %1$s и ещё %2$d</item>\n        <item quantity=\"other\">Главы %1$s и ещё %2$d</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d новая глава</item>\n        <item quantity=\"few\">%1$d новые главы</item>\n        <item quantity=\"many\">%1$d новых глав</item>\n        <item quantity=\"other\">%1$d новых глав</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Для %d серии</item>\n        <item quantity=\"few\">Для %d серий</item>\n        <item quantity=\"many\">Для %d серий</item>\n        <item quantity=\"other\">Для %d серий</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Доступно обновление для %d расширения</item>\n        <item quantity=\"few\">Доступны обновления для %d расширений</item>\n        <item quantity=\"many\">Доступны обновления для %d расширений</item>\n        <item quantity=\"other\">Доступны обновления для %d расширений</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">Осталась %1$s глава</item>\n        <item quantity=\"few\">Осталось %1$s главы</item>\n        <item quantity=\"many\">Осталось %1$s глав</item>\n        <item quantity=\"other\">Осталось %1$s глав</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d категория</item>\n        <item quantity=\"few\">%d категории</item>\n        <item quantity=\"many\">%d категорий</item>\n        <item quantity=\"other\">%d категорий</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Выполнено за %1$s с %2$s ошибкой</item>\n        <item quantity=\"few\">Выполнено за %1$s с %2$s ошибками</item>\n        <item quantity=\"many\">Выполнено за %1$s с %2$s ошибками</item>\n        <item quantity=\"other\">Выполнено за %1$s с %2$s ошибками</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s глава</item>\n        <item quantity=\"few\">%1$s главы</item>\n        <item quantity=\"many\">%1$s глав</item>\n        <item quantity=\"other\">%1$s глав</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d сервис отслеживания</item>\n        <item quantity=\"few\">%d сервиса отслеживания</item>\n        <item quantity=\"many\">%d сервисов отслеживания</item>\n        <item quantity=\"other\">%d сервисов отслеживания</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Отсутствует %d глава в источнике или была отфильтрована</item>\n        <item quantity=\"few\">Отсутствуют %d главы в источнике или были отфильтрованы</item>\n        <item quantity=\"many\">Отсутствуют %d глав в источнике или были отфильтрованы</item>\n        <item quantity=\"other\">Отсутствуют %d глав в источнике или были отфильтрованы</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Вчера</item>\n        <item quantity=\"few\">%1$d дня назад</item>\n        <item quantity=\"many\">%1$d дней назад</item>\n        <item quantity=\"other\">%1$d дней назад</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Следующая непрочитанная глава</item>\n        <item quantity=\"few\">Следующие %d непрочитанные главы</item>\n        <item quantity=\"many\">Следующие %d непрочитанных глав</item>\n        <item quantity=\"other\">Следующие %d непрочитанных глав</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Следующая глава</item>\n        <item quantity=\"few\">Следующие %d главы</item>\n        <item quantity=\"many\">Следующие %d глав</item>\n        <item quantity=\"other\">Следующие %d глав</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Отсутствует %1$s глава</item>\n        <item quantity=\"few\">Отсутствуют %1$s главы</item>\n        <item quantity=\"many\">Отсутствуют %1$s глав</item>\n        <item quantity=\"other\">Отсутствуют %1$s глав</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 день</item>\n        <item quantity=\"few\">%d дня</item>\n        <item quantity=\"many\">%d дней</item>\n        <item quantity=\"other\">%d дней</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d репозиторий</item>\n        <item quantity=\"few\">%d репозитория</item>\n        <item quantity=\"many\">%d репозиториев</item>\n        <item quantity=\"other\">%d репозиториев</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Завтра</item>\n        <item quantity=\"few\">В течении %1$d дней</item>\n        <item quantity=\"many\">В течении %1$d дней</item>\n        <item quantity=\"other\">В течении %1$d дней</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 страница</item>\n        <item quantity=\"few\">%1$s страницы</item>\n        <item quantity=\"many\">%1$s страниц</item>\n        <item quantity=\"other\">%1$s страниц</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">Перенести %1$d серию?</item>\n        <item quantity=\"few\">Перенести %1$d серии?</item>\n        <item quantity=\"many\">Перенести %1$d серий?</item>\n        <item quantity=\"other\">Перенести %1$d серий?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Серия была пропущена</item>\n        <item quantity=\"few\">%1$d серии было прощено</item>\n        <item quantity=\"many\">%1$d серий было прощено</item>\n        <item quantity=\"other\">%1$d серий было прощено</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">Копировать %1$d серию?</item>\n        <item quantity=\"few\">Копировать %1$d серии?</item>\n        <item quantity=\"many\">Копировать %1$d серий?</item>\n        <item quantity=\"other\">Копировать %1$d серий?</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ru/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"action_add\">Добавить</string>\n    <string name=\"action_add_category\">Добавить категорию</string>\n    <string name=\"action_bookmark\">Добавить закладку</string>\n    <string name=\"action_cancel\">Отмена</string>\n    <string name=\"action_delete\">Удалить</string>\n    <string name=\"action_display\">Отображение</string>\n    <string name=\"action_display_grid\">Компактная сетка</string>\n    <string name=\"action_display_list\">Список</string>\n    <string name=\"action_display_mode\">Режим отображения</string>\n    <string name=\"action_download\">Загрузить</string>\n    <string name=\"action_edit\">Изменить</string>\n    <string name=\"action_edit_categories\">Изменить категории</string>\n    <string name=\"action_edit_cover\">Изменить обложку</string>\n    <string name=\"action_filter\">Фильтрация</string>\n    <string name=\"action_filter_bookmarked\">В закладках</string>\n    <string name=\"action_filter_empty\">Удалить фильтр</string>\n    <string name=\"action_filter_unread\">Не прочитано</string>\n    <string name=\"action_install\">Установить</string>\n    <string name=\"action_mark_as_read\">Пометить как «Прочитано»</string>\n    <string name=\"action_mark_as_unread\">Пометить как «Не прочитано»</string>\n    <string name=\"action_mark_previous_as_read\">Пометить предыдущее как «Прочитано»</string>\n    <string name=\"action_move_category\">Добавить в категории</string>\n    <string name=\"action_next_chapter\">Следующая глава</string>\n    <string name=\"action_open_in_browser\">Открыть в браузере</string>\n    <string name=\"action_pause\">Пауза</string>\n    <string name=\"action_previous_chapter\">Предыдущая глава</string>\n    <string name=\"action_remove\">Удалить</string>\n    <string name=\"action_remove_bookmark\">Удалить закладку</string>\n    <string name=\"action_rename_category\">Переименовать категорию</string>\n    <string name=\"action_reset\">Сбросить</string>\n    <string name=\"action_resume\">Продолжить</string>\n    <string name=\"action_retry\">Повторить</string>\n    <string name=\"action_save\">Сохранить</string>\n    <string name=\"action_search\">Искать</string>\n    <string name=\"action_select_all\">Выбрать всё</string>\n    <string name=\"action_settings\">Настройки</string>\n    <string name=\"action_share\">Поделиться</string>\n    <string name=\"action_sort\">Сортировка</string>\n    <string name=\"action_sort_alpha\">Алфавит</string>\n    <string name=\"action_sort_last_read\">Последнее прочитанное</string>\n    <string name=\"action_update_library\">Обновить библиотеку</string>\n    <string name=\"all\">Все</string>\n    <string name=\"black_background\">Чёрный</string>\n    <string name=\"cache_delete_error\">Возникла ошибка при очистке</string>\n    <string name=\"cache_deleted\">Кэш очищен, %1$d файлов удалено</string>\n    <string name=\"chapter_downloading_progress\">Загружается (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Ошибка</string>\n    <string name=\"chapter_progress\">Страница: %1$d</string>\n    <string name=\"chapters\">Главы</string>\n    <string name=\"charging\">Когда заряжается</string>\n    <string name=\"clear_database_completed\">Серии удалены</string>\n    <string name=\"color_filter_a_value\">Альфа</string>\n    <string name=\"color_filter_r_value\">Красный</string>\n    <string name=\"color_filter_g_value\">Зелёный</string>\n    <string name=\"color_filter_b_value\">Синий</string>\n    <string name=\"completed\">Завершено</string>\n    <string name=\"confirm_delete_chapters\">Вы уверены, что хотите удалить выбранные главы?</string>\n    <string name=\"confirm_set_image_as_cover\">Использовать это изображение как обложку?</string>\n    <string name=\"cookies_cleared\">Cookies очищены</string>\n    <string name=\"cover_updated\">Обложка обновлена</string>\n    <string name=\"custom_filter\">Пользовательский фильтр</string>\n    <string name=\"decode_image_error\">Не удалось загрузить изображение</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Это действие удалит дату прочтения этой главы. Вы уверены?</string>\n    <string name=\"dialog_with_checkbox_reset\">Сбросить все главы для этой серии</string>\n    <string name=\"disabled\">Отключено</string>\n    <string name=\"display_mode_chapter\">Глава %1$s</string>\n    <string name=\"download_notifier_downloader_title\">Загрузчик</string>\n    <string name=\"download_notifier_no_network\">Нет соединения с сетью</string>\n    <string name=\"download_notifier_text_only_wifi\">Нет соединения Wi-Fi</string>\n    <string name=\"download_notifier_title_error\">Ошибка</string>\n    <string name=\"download_notifier_unknown_error\">Невозможно скачать главу из-за непредвиденной ошибки</string>\n    <string name=\"download_queue_error\">Невозможно скачать главы. Можете попробовать ещё раз в очереди загрузок</string>\n    <string name=\"download_unread\">Непрочитанные главы</string>\n    <string name=\"dropped\">Брошено</string>\n    <string name=\"error_category_exists\">Категория с таким названием уже существует!</string>\n    <string name=\"fifth_to_last\">Пятая от прочитанной главы</string>\n    <string name=\"file_select_backup\">Выбрать файл резервной копии</string>\n    <string name=\"file_select_cover\">Выбрать обложку</string>\n    <string name=\"fourth_to_last\">Четвёртая от прочитанной главы</string>\n    <string name=\"information_empty_library\">Ваша библиотека пуста</string>\n    <string name=\"information_no_downloads\">Нет загрузок</string>\n    <string name=\"information_no_recent\">Нет новых обновлений</string>\n    <string name=\"information_no_recent_manga\">Ничего не прочитано в последнее время</string>\n    <string name=\"label_backup\">Резервная копия</string>\n    <string name=\"label_download_queue\">Очередь загрузки</string>\n    <string name=\"label_library\">Библиотека</string>\n    <string name=\"label_recent_manga\">История</string>\n    <string name=\"label_recent_updates\">Обновления</string>\n    <string name=\"label_settings\">Настройки</string>\n    <string name=\"landscape\">Альбомная</string>\n    <string name=\"last_read_chapter\">Последняя прочитанная глава</string>\n    <string name=\"left_to_right_viewer\">Постранично (Слева направо)</string>\n    <string name=\"licensed\">Лицензировано</string>\n    <string name=\"loading\">Загрузка…</string>\n    <string name=\"login\">Вход</string>\n    <string name=\"login_success\">Успешный вход</string>\n    <string name=\"login_title\">Войти в %1$s</string>\n    <string name=\"manga_download\">Загрузить</string>\n    <string name=\"manga_tracking_tab\">Отслеживание</string>\n    <string name=\"name\">Название</string>\n    <string name=\"no_next_chapter\">Следующая глава не найдена</string>\n    <string name=\"notification_cover_update_failed\">Не удалось обновить обложку</string>\n    <string name=\"notification_first_add_to_library\">Пожалуйста, добавьте серию в библиотеку перед тем, как делать это</string>\n    <string name=\"notification_new_chapters\">Найдены новые главы</string>\n    <string name=\"on_hold\">Отложено</string>\n    <string name=\"ongoing\">Выпускается</string>\n    <string name=\"password\">Пароль</string>\n    <string name=\"picture_saved\">Картинка сохранена</string>\n    <string name=\"plan_to_read\">Планирую прочесть</string>\n    <string name=\"portrait\">Портретная</string>\n    <string name=\"pref_acra_summary\">Помогает исправлять все возможные ошибки. Данные пользователя не передаются</string>\n    <string name=\"pref_auto_update_manga_sync\">Обновлять прогресс после прочтения</string>\n    <string name=\"pref_category_about\">Информация</string>\n    <string name=\"pref_category_advanced\">Дополнительно</string>\n    <string name=\"pref_category_downloads\">Загрузки</string>\n    <string name=\"pref_category_general\">Основные</string>\n    <string name=\"pref_category_reader\">Читалка</string>\n    <string name=\"pref_category_tracking\">Отслеживание</string>\n    <string name=\"pref_clear_chapter_cache\">Очистить кэш глав</string>\n    <string name=\"pref_clear_cookies\">Очистить cookies</string>\n    <string name=\"pref_clear_database\">Очистить базу данных</string>\n    <string name=\"pref_clear_database_summary\">Удалить историю для серий, которые не находятся в библиотеке</string>\n    <string name=\"pref_custom_brightness\">Пользовательская яркость</string>\n    <string name=\"pref_custom_color_filter\">Пользовательский светофильтр</string>\n    <string name=\"pref_download_new\">Загружать новые главы</string>\n    <string name=\"pref_enable_acra\">Отправлять отчёты об сбоях</string>\n    <string name=\"pref_page_transitions\">Анимированные переходы страниц</string>\n    <string name=\"pref_fullscreen\">Полноэкранный режим</string>\n    <string name=\"pref_image_scale_type\">Масштабирование</string>\n    <string name=\"pref_keep_screen_on\">Не выключать экран</string>\n    <string name=\"pref_library_columns\">Размер сетки</string>\n    <string name=\"pref_library_update_interval\">Автоматические обновления</string>\n    <string name=\"pref_library_update_restriction\">Ограничения обновлений для устройства</string>\n    <string name=\"pref_read_with_volume_keys\">Клавиши громкости</string>\n    <string name=\"pref_reader_navigation\">Навигация</string>\n    <string name=\"pref_reader_theme\">Цвет фона</string>\n    <string name=\"pref_remove_after_marked_as_read\">Удалять помеченое вручную как «Прочитано»</string>\n    <string name=\"pref_remove_after_read\">Удалять после прочтения</string>\n    <string name=\"pref_rotation_type\">Ориентация по умолчанию</string>\n    <string name=\"pref_show_page_number\">Номер страницы</string>\n    <string name=\"pref_update_only_non_completed\">Пропускать завершённые серии</string>\n    <string name=\"pref_viewer_type\">Режим чтения</string>\n    <string name=\"pref_zoom_start\">Стартовая позиция увеличения</string>\n    <string name=\"reading\">Читаю</string>\n    <string name=\"remove_from_library\">Удалить из библиотеки</string>\n    <string name=\"right_to_left_viewer\">Постранично (Справа налево)</string>\n    <string name=\"rotation_force_landscape\">Заблокированная альбомная</string>\n    <string name=\"rotation_force_portrait\">Заблокированная портретная</string>\n    <string name=\"rotation_free\">Системная</string>\n    <string name=\"scale_type_fit_height\">По высоте</string>\n    <string name=\"scale_type_fit_screen\">Уместить в экран</string>\n    <string name=\"scale_type_fit_width\">По ширине</string>\n    <string name=\"scale_type_original_size\">Исходный размер</string>\n    <string name=\"scale_type_smart_fit\">Умное</string>\n    <string name=\"scale_type_stretch\">Растянуть</string>\n    <string name=\"score\">Оценка</string>\n    <string name=\"second_to_last\">Предпоследняя прочитанная глава</string>\n    <string name=\"services\">Сервисы отслеживания</string>\n    <string name=\"set_as_cover\">Установить как обложку</string>\n    <string name=\"show_chapter_number\">Номер главы</string>\n    <string name=\"show_title\">Название источника</string>\n    <string name=\"snack_add_to_library\">Добавить в библиотеку?</string>\n    <string name=\"sort_by_number\">Номер главы</string>\n    <string name=\"sort_by_source\">Источник</string>\n    <string name=\"status\">Статус</string>\n    <string name=\"third_to_last\">Третья от прочитанной главы</string>\n    <string name=\"title\">Название</string>\n    <string name=\"unknown\">Неизвестно</string>\n    <string name=\"unknown_error\">Неизвестная ошибка</string>\n    <string name=\"update_12hour\">Каждые 12 часов</string>\n    <string name=\"update_24hour\">Ежедневно</string>\n    <string name=\"update_48hour\">Каждые 2 дня</string>\n    <string name=\"update_6hour\">Каждые 6 часов</string>\n    <string name=\"update_check_confirm\">Загрузить</string>\n    <string name=\"update_check_no_new_updates\">Нет обновлений</string>\n    <string name=\"update_check_notification_download_complete\">Нажмите для установки обновления</string>\n    <string name=\"update_check_notification_download_error\">Ошибка загрузки</string>\n    <string name=\"update_check_notification_download_in_progress\">Загрузка…</string>\n    <string name=\"update_check_notification_update_available\">Доступно обновление!</string>\n    <string name=\"update_never\">Выключено</string>\n    <string name=\"updating_category\">Обновление категории</string>\n    <string name=\"used_cache\">Использовано: %1$s</string>\n    <string name=\"username\">Имя пользователя</string>\n    <string name=\"version\">Версия</string>\n    <string name=\"vertical_viewer\">Постранично (Вертикально)</string>\n    <string name=\"webtoon_viewer\">Длинные страницы</string>\n    <string name=\"white_background\">Белый</string>\n    <string name=\"zoom_start_automatic\">Автоматически</string>\n    <string name=\"zoom_start_center\">По центру</string>\n    <string name=\"zoom_start_left\">Слева</string>\n    <string name=\"zoom_start_right\">Справа</string>\n    <string name=\"action_restore\">Восстановить</string>\n    <string name=\"action_undo\">Отменить</string>\n    <string name=\"backup_choice\">Что добавить в резервную копию?</string>\n    <string name=\"backup_created\">Резервная копия создана</string>\n    <string name=\"categories\">Категории</string>\n    <string name=\"chapter_paused\">Пауза</string>\n    <string name=\"creating_backup\">Создание резервной копии</string>\n    <string name=\"default_category\">Основная категория</string>\n    <string name=\"default_category_summary\">Спрашивать</string>\n    <string name=\"delete_downloads_for_manga\">Удалить загруженные главы?</string>\n    <string name=\"download_notifier_download_paused\">Загрузки приостановлены</string>\n    <string name=\"history\">История</string>\n    <string name=\"local_source\">Источник на устройстве</string>\n    <string name=\"manga\">Серии библиотеки</string>\n    <string name=\"no_more_results\">Больше нет результатов</string>\n    <string name=\"pref_backup_interval\">Частота автоматических резервных копий</string>\n    <string name=\"pref_create_backup\">Создать резервную копию</string>\n    <string name=\"pref_create_backup_summ\">Можно использовать для восстановления текущей библиотеки</string>\n    <string name=\"pref_crop_borders\">Обрезать поля</string>\n    <string name=\"pref_restore_backup\">Восстановить из резервной копии</string>\n    <string name=\"pref_restore_backup_summ\">Восстановить библиотеку из резервной копии</string>\n    <string name=\"restore_completed\">Восстановление завершено</string>\n    <string name=\"restoring_backup\">Восстановление из резервной копии</string>\n    <string name=\"snack_categories_deleted\">Категории удалены</string>\n    <string name=\"track\">Отслеживание</string>\n    <string name=\"update_weekly\">Еженедельно</string>\n    <string name=\"action_sort_total\">Количество глав</string>\n    <string name=\"action_open_log\">Открыть журнал</string>\n    <string name=\"app_not_available\">Приложение недоступно</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Клавиши громкости наоборот</string>\n    <string name=\"action_global_search\">Искать глобально</string>\n    <string name=\"action_display_download_badge\">Загруженные главы</string>\n    <string name=\"other_source\">Другое</string>\n    <string name=\"action_global_search_hint\">Искать глобально…</string>\n    <string name=\"latest\">Последние</string>\n    <string name=\"browse\">Поисковик</string>\n    <string name=\"channel_common\">Общий</string>\n    <string name=\"information_empty_category\">Нет категорий в библиотеке. Нажмите кнопку «Добавить» чтобы создать категорию для организации вашей библиотеки.</string>\n    <string name=\"label_migration\">Перенос</string>\n    <string name=\"label_extensions\">Расширения</string>\n    <string name=\"label_extension_info\">Информация о расширении</string>\n    <string name=\"ext_update\">Обновить</string>\n    <string name=\"ext_install\">Установить</string>\n    <string name=\"ext_pending\">Ожидается</string>\n    <string name=\"ext_downloading\">Загружается</string>\n    <string name=\"ext_installing\">Устанавливается</string>\n    <string name=\"ext_installed\">Установлено</string>\n    <string name=\"ext_untrusted\">Ненадёжное</string>\n    <string name=\"ext_uninstall\">Удалить</string>\n    <string name=\"untrusted_extension\">Ненадёжное расширение</string>\n    <string name=\"untrusted_extension_message\">Вредоносные расширения могут считывать любые хранящиеся учётные данные для входа или выполнять произвольный код.\n\\n\n\\nДоверяя этому расширению, вы принимаете эти риски.</string>\n    <string name=\"pref_double_tap_anim_speed\">Скорость анимации при двойном нажатии</string>\n    <string name=\"double_tap_anim_speed_0\">Без анимации</string>\n    <string name=\"double_tap_anim_speed_normal\">Нормальная</string>\n    <string name=\"double_tap_anim_speed_fast\">Быстрая</string>\n    <string name=\"manga_added_library\">Добавлено в библиотеку</string>\n    <string name=\"manga_removed_library\">Удалено из библиотеки</string>\n    <string name=\"copied_to_clipboard\">Скопировано в буфер обмена:\n\\n%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Какие данные перенести</string>\n    <string name=\"migrate\">Перенести</string>\n    <string name=\"copy\">Копировать</string>\n    <string name=\"ext_trust\">Надёжное</string>\n    <string name=\"pager_viewer\">Постранично</string>\n    <string name=\"source_not_installed\">Источник не установлен: %1$s</string>\n    <string name=\"repeating\">Перечитываю</string>\n    <string name=\"track_status\">Статус</string>\n    <string name=\"track_type\">Тип</string>\n    <string name=\"transition_finished\">Закончена:</string>\n    <string name=\"transition_current\">Текущая:</string>\n    <string name=\"transition_next\">Следующая:</string>\n    <string name=\"transition_previous\">Предыдущая:</string>\n    <string name=\"transition_no_next\">Следующей главы нет</string>\n    <string name=\"transition_no_previous\">Предыдущей главы нет</string>\n    <string name=\"transition_pages_loading\">Идёт загрузка страниц…</string>\n    <string name=\"transition_pages_error\">Не удалось загрузить страницы: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">Показать действия при долгом нажатии</string>\n    <string name=\"action_open_in_web_view\">Открыть в WebView</string>\n    <string name=\"pref_skip_read_chapters\">Пропускать прочитанные главы</string>\n    <string name=\"pref_color_filter_mode\">Режим светофильтра</string>\n    <string name=\"filter_mode_overlay\">Наложение</string>\n    <string name=\"filter_mode_multiply\">Умножение</string>\n    <string name=\"filter_mode_screen\">Экран</string>\n    <string name=\"filter_mode_lighten\">Осветление</string>\n    <string name=\"filter_mode_darken\">Затемнение</string>\n    <string name=\"label_help\">Помощь</string>\n    <string name=\"no_results_found\">Нет результатов</string>\n    <string name=\"migration_selection_prompt\">Выберите источник переноса</string>\n    <string name=\"action_webview_back\">Назад</string>\n    <string name=\"action_webview_forward\">Вперед</string>\n    <string name=\"action_webview_refresh\">Обновить</string>\n    <string name=\"pref_category_library\">Библиотека</string>\n    <string name=\"ext_obsolete\">Устаревшее</string>\n    <string name=\"obsolete_extension_message\">Это расширение больше недоступно. Оно может работать неправильно, а также вызвать проблемы с приложением. Рекомендуется его удалить.</string>\n    <string name=\"pref_date_format\">Формат даты</string>\n    <string name=\"pref_category_library_update\">Глобальное обновление</string>\n    <string name=\"logout_title\">Выйти из %1$s?</string>\n    <string name=\"logout\">Выйти</string>\n    <string name=\"logout_success\">Вы успешно вышли</string>\n    <string name=\"paused\">На паузе</string>\n    <string name=\"label_more\">Больше</string>\n    <string name=\"action_sort_latest_chapter\">Последняя глава</string>\n    <string name=\"action_view_chapters\">Просмотреть главы</string>\n    <string name=\"action_cancel_all\">Отменить всё</string>\n    <string name=\"theme_light\">Светлая</string>\n    <string name=\"theme_dark\">Тёмная</string>\n    <string name=\"theme_system\">Система</string>\n    <string name=\"pref_manage_notifications\">Управление уведомлениями</string>\n    <string name=\"pref_category_security\">Безопасность и конфиденциальность</string>\n    <string name=\"lock_with_biometrics\">Блокировка биометрией</string>\n    <string name=\"lock_when_idle\">Блокировать при бездействии</string>\n    <string name=\"lock_always\">Всегда</string>\n    <string name=\"lock_never\">Никогда</string>\n    <string name=\"secure_screen\">Защита экрана приложения</string>\n    <string name=\"ext_updates_pending\">Доступны обновления</string>\n    <string name=\"pref_cutout_short\">Показывать содержимое в вырезанной области</string>\n    <string name=\"information_cloudflare_bypass_failure\">Не удалось обойти Cloudflare</string>\n    <string name=\"information_webview_outdated\">Пожалуйста, обновите WebView для лучшей совместимости</string>\n    <string name=\"channel_new_chapters\">Обновления глав</string>\n    <string name=\"notification_chapters_single_and_more\">Глава %1$s и ещё %2$d</string>\n    <string name=\"notification_chapters_multiple\">Главы %1$s</string>\n    <string name=\"notification_chapters_single\">Глава %1$s</string>\n    <string name=\"pref_category_display\">Отображение</string>\n    <string name=\"updating_library\">Обновление библиотеки</string>\n    <string name=\"battery_optimization_disabled\">Оптимизация батареи уже выключена</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Помогает с обновлением библиотеки и резервной копией в фоне</string>\n    <string name=\"pref_disable_battery_optimization\">Отключить оптимизацию батареи</string>\n    <string name=\"email\">Адрес электронной почты</string>\n    <string name=\"pref_always_show_chapter_transition\">Переход между главами</string>\n    <string name=\"hide_notification_content\">Скрыть содержимое уведомлений</string>\n    <string name=\"secure_screen_summary\">Защита экрана скрывает содержимое при переключении между приложениями, а также блокирует создание скриншотов</string>\n    <string name=\"action_oldest\">Старейший</string>\n    <string name=\"action_newest\">Новейший</string>\n    <string name=\"action_move_to_top\">В начало</string>\n    <string name=\"action_move_to_bottom\">В конец</string>\n    <string name=\"channel_ext_updates\">Обновления расширений</string>\n    <string name=\"action_menu\">Меню</string>\n    <string name=\"label_sources\">Источники</string>\n    <string name=\"pref_category_reading\">Чтение</string>\n    <string name=\"pref_skip_filtered_chapters\">Пропускать отфильтрованные главы</string>\n    <string name=\"action_select_inverse\">Выбрать наоборот</string>\n    <string name=\"vertical_plus_viewer\">Длинные страницы с зазорами</string>\n    <string name=\"pref_webtoon_side_padding\">Боковой отступ</string>\n    <string name=\"pinned_sources\">Закреплено</string>\n    <string name=\"action_unpin\">Открепить</string>\n    <string name=\"action_pin\">Закрепить</string>\n    <string name=\"add_tracking\">Добавить отслеживание</string>\n    <string name=\"label_downloaded_only\">Только загруженные главы</string>\n    <string name=\"information_webview_required\">Для работы приложения необходимо WebView</string>\n    <string name=\"manga_info_collapse\">Меньше</string>\n    <string name=\"manga_info_expand\">Больше</string>\n    <string name=\"in_library\">Добавлено</string>\n    <string name=\"add_to_library\">Добавить</string>\n    <string name=\"licenses\">Лицензии open-source</string>\n    <string name=\"website\">Сайт</string>\n    <string name=\"recent_manga_time\">Гл. %1$s - %2$s</string>\n    <string name=\"local_source_help_guide\">Руководство по источнику на устройстве</string>\n    <string name=\"last_used_source\">Последний использованный источник</string>\n    <string name=\"downloaded_only_summary\">Включает фильтр «Загружено» для всей библиотеки</string>\n    <string name=\"check_for_updates\">Проверить обновления</string>\n    <string name=\"restoring_backup_canceled\">Восстановление отменено</string>\n    <string name=\"restoring_backup_error\">Ошибка восстановления из резервной копии</string>\n    <string name=\"restore_in_progress\">Восстановление уже выполняется</string>\n    <string name=\"creating_backup_error\">Не удалось создать резервную копию</string>\n    <string name=\"backup_in_progress\">Резервная копия уже выполняется</string>\n    <string name=\"restore_duration\">%1$02d мин, %2$02d сек</string>\n    <string name=\"viewer\">Режим чтения</string>\n    <string name=\"pref_category_for_this_series\">Для этой серии</string>\n    <string name=\"gray_background\">Серый</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Не удалось открыть настройки устройства</string>\n    <string name=\"pref_refresh_library_covers\">Обновить обложки серий</string>\n    <string name=\"tracking_info\">Односторонняя синхронизация для обновления прогресса в сторонних сервисах отслеживания. Настройте отслеживание при помощи кнопки «Отслеживание».</string>\n    <string name=\"sort_by_upload_date\">Дата добавления</string>\n    <string name=\"label_data\">Данные</string>\n    <string name=\"backup_restore_missing_sources\">Отсутствующие источники:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Резервная копия не содержит серий.</string>\n    <string name=\"invalid_backup_file\">Неверный файл резервной копии:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">При обновлении библиотеки проверять наличие новой обложки и сведений</string>\n    <string name=\"pref_library_update_refresh_metadata\">Обновлять метаданные</string>\n    <string name=\"action_display_comfortable_grid\">Удобная сетка</string>\n    <string name=\"action_migrate\">Перенести</string>\n    <string name=\"tabs_header\">Вкладки</string>\n    <string name=\"action_display_show_tabs\">Показать вкладки категорий</string>\n    <string name=\"page_list_empty_error\">Страницы не найдены</string>\n    <string name=\"action_enable_all\">Включить всё</string>\n    <string name=\"action_disable_all\">Отключить всё</string>\n    <string name=\"pref_show_reading_mode_summary\">Ненадолго показать режим чтения при открытии читалки</string>\n    <string name=\"pref_show_reading_mode\">Показать режим чтения</string>\n    <string name=\"action_start\">Начать</string>\n    <string name=\"loader_not_implemented_error\">Источник не найден</string>\n    <string name=\"action_disable\">Отключить</string>\n    <string name=\"requires_app_restart\">Для вступления в силу требуется перезапуск приложения</string>\n    <string name=\"label_network\">Сеть</string>\n    <string name=\"tapping_inverted_both\">Обе оси</string>\n    <string name=\"tapping_inverted_vertical\">Вертикально</string>\n    <string name=\"tapping_inverted_horizontal\">Горизонтально</string>\n    <string name=\"tapping_inverted_none\">Нет</string>\n    <string name=\"pref_read_with_tapping_inverted\">Зоны касания наоборот</string>\n    <string name=\"unknown_status\">Неизвестный статус</string>\n    <string name=\"unknown_author\">Неизвестный автор</string>\n    <string name=\"updated_version\">Обновлено до %1$s</string>\n    <string name=\"whats_new\">Что нового</string>\n    <string name=\"download_insufficient_space\">Не удалось загрузить главы из-за малого объема хранилища</string>\n    <string name=\"action_global_search_query\">Искать \\\"%1$s\\\" глобально</string>\n    <string name=\"pref_category_reading_mode\">Режим чтения</string>\n    <string name=\"pref_category_theme\">Тема</string>\n    <string name=\"action_sort_date_added\">Последнее добавление серии</string>\n    <string name=\"no_pinned_sources\">У вас нет закреплённых источников</string>\n    <string name=\"channel_complete\">Завершено</string>\n    <string name=\"channel_progress\">Прогресс</string>\n    <string name=\"channel_errors\">Ошибки</string>\n    <string name=\"backup_restore_missing_trackers\">Сервисы отслеживания в которые не выполнен вход:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Удалять главы с закладками</string>\n    <string name=\"pref_category_delete_chapters\">Удаление глав</string>\n    <string name=\"ext_nsfw_warning\">Источики из этого расширения могут содержать контент NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Это не предотвращает появление внутри приложения контента NSFW (18+) из неофициальных или потенциально неправильно помеченных расширений.</string>\n    <string name=\"no_chapters_error\">Нет глав</string>\n    <string name=\"chapter_settings_updated\">Настройки главы по умолчанию были обновлены</string>\n    <string name=\"set_chapter_settings_as_default\">Установить по умолчанию</string>\n    <string name=\"also_set_chapter_settings_for_library\">Также применить ко всем сериям в моей библиотеке</string>\n    <string name=\"confirm_set_chapter_settings\">Вы уверены, что хотите сохранить эти настройки по умолчанию?</string>\n    <string name=\"chapter_settings\">Настройки главы</string>\n    <string name=\"share_page_info\">%1$s: %2$s, страница %3$d</string>\n    <string name=\"action_search_settings\">Искать настройки</string>\n    <string name=\"downloaded_chapters\">Загруженные главы</string>\n    <string name=\"manga_from_library\">Из библиотеки</string>\n    <string name=\"pref_incognito_mode_summary\">Приостанавливает историю чтения</string>\n    <string name=\"pref_incognito_mode\">Режим инкогнито</string>\n    <string name=\"pref_clear_history\">Очистить историю</string>\n    <string name=\"clear_history_confirmation\">Вы уверены? Вся история будет удалена.</string>\n    <string name=\"clear_history_completed\">История удалена</string>\n    <string name=\"spen_next_page\">Следующая страница</string>\n    <string name=\"spen_previous_page\">Предыдущая страница</string>\n    <string name=\"migration_help_guide\">Руководство по переносу источников</string>\n    <string name=\"pref_category_nsfw_content\">Источники NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Показывать в списке источников и расширений</string>\n    <string name=\"file_picker_error\">Приложение для выбора файлов не найдено</string>\n    <string name=\"myanimelist_relogin\">Пожалуйста, авторизуйтесь в MyAnimeList снова</string>\n    <string name=\"pref_viewer_nav\">Зоны касания</string>\n    <string name=\"edge_nav\">По краям</string>\n    <string name=\"kindlish_nav\">Kindle-подобная</string>\n    <string name=\"l_nav\">L-образная</string>\n    <string name=\"track_finished_reading_date\">Дата окончания</string>\n    <string name=\"track_started_reading_date\">Дата начала</string>\n    <string name=\"pref_dump_crash_logs_summary\">Сохраняет журнал сбоев в файл для отправки разработчикам</string>\n    <string name=\"pref_dump_crash_logs\">Поделиться журналом сбоев</string>\n    <string name=\"action_desc\">По убыванию</string>\n    <string name=\"action_asc\">По возрастанию</string>\n    <string name=\"action_order_by_chapter_number\">Номер главы</string>\n    <string name=\"action_order_by_upload_date\">Дата загрузки</string>\n    <string name=\"action_filter_tracked\">Отслеживается</string>\n    <string name=\"action_display_show_number_of_items\">Показывать количество серий</string>\n    <string name=\"right_and_left_nav\">Справа и слева</string>\n    <string name=\"pref_dual_page_split\">Разделение широких страниц</string>\n    <string name=\"pref_dual_page_invert\">Разделение широких страниц наоборот</string>\n    <string name=\"pref_dual_page_invert_summary\">Если разделение широких страниц не соответствует направлению чтения</string>\n    <string name=\"backup_restore_content_full\">Вам будет нужно установить все недостающие расширения и после этого авторизоваться в сервисах отслеживания для их использования.</string>\n    <string name=\"nav_zone_left\">Слева</string>\n    <string name=\"nav_zone_right\">Справа</string>\n    <string name=\"nav_zone_next\">Следующая</string>\n    <string name=\"nav_zone_prev\">Предыдущая</string>\n    <string name=\"pref_show_navigation_mode_summary\">Ненадолго показать при начале чтения</string>\n    <string name=\"pref_show_navigation_mode\">Наложение зон касания</string>\n    <string name=\"pref_dns_over_https\">DNS по HTTPS (DoH)</string>\n    <string name=\"none\">Нет</string>\n    <string name=\"exclude\">Исключать: %s</string>\n    <string name=\"include\">Включать: %s</string>\n    <string name=\"action_sort_chapter_fetch_date\">Последнее получение главы</string>\n    <string name=\"pref_download_new_categories_details\">Серии в исключённых категориях не будут загружаться, даже если находятся во включённых категориях.</string>\n    <string name=\"pref_library_update_categories_details\">Серии в исключённых категориях не будут обновляться, даже если находятся во включённых категориях.</string>\n    <string name=\"pref_category_auto_download\">Автозагрузка</string>\n    <string name=\"action_show_errors\">Нажать, чтобы увидеть подробности</string>\n    <string name=\"update_check_eol\">Эта версия Android больше не поддерживается</string>\n    <string name=\"clipboard_copy_error\">Не удалось скопировать в буфер обмена</string>\n    <string name=\"rotation_landscape\">Альбомная</string>\n    <string name=\"rotation_portrait\">Портретная</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Создавать папки в соответствии с названием серии</string>\n    <string name=\"pref_create_folder_per_manga\">Сохранять страницы в отдельные папки</string>\n    <string name=\"pref_reader_actions\">Действия</string>\n    <string name=\"rotation_type\">Ориентация</string>\n    <string name=\"pref_grayscale\">Чёрно-белый фильтр</string>\n    <string name=\"notification_incognito_text\">Выключить режим инкогнито</string>\n    <string name=\"automatic_background\">Автоматически</string>\n    <string name=\"cancel_all_for_series\">Отменить всё для этой серии</string>\n    <string name=\"error_no_match\">Совпадений не найдено</string>\n    <string name=\"source_unsupported\">Источник не поддерживается</string>\n    <string name=\"unread\">Не прочитано</string>\n    <string name=\"date\">Дата</string>\n    <string name=\"local_filter_order_by\">Сортировать по</string>\n    <string name=\"local_invalid_format\">Недопустимый формат глав</string>\n    <string name=\"chapter_not_found\">Глава не найдена</string>\n    <string name=\"restrictions\">Ограничения: %s</string>\n    <string name=\"action_display_local_badge\">Источник на устройстве</string>\n    <string name=\"off\">Выключено</string>\n    <string name=\"on\">Включено</string>\n    <string name=\"error_sharing_cover\">Ошибка отправки обложки</string>\n    <string name=\"error_saving_cover\">Ошибка сохранения обложки</string>\n    <string name=\"cover_saved\">Обложка сохранена</string>\n    <string name=\"manga_cover\">Обложка</string>\n    <string name=\"categorized_display_settings\">Каждая категория имеет собственные настройки сортировки</string>\n    <string name=\"tracking_guide\">Руководство по отслеживанию</string>\n    <string name=\"information_empty_category_dialog\">Ваша библиотека не имеет категорий.</string>\n    <string name=\"action_start_downloading_now\">Начать загрузку сейчас</string>\n    <string name=\"theme_greenapple\">Зелёное Яблоко</string>\n    <string name=\"pref_app_theme\">Тема приложения</string>\n    <string name=\"pref_dark_theme_pure_black\">Тёмный режим с чистым чёрным</string>\n    <string name=\"theme_yotsuba\">Ёцуба</string>\n    <string name=\"theme_yinyang\">Инь и Янь</string>\n    <string name=\"theme_tako\">Тако</string>\n    <string name=\"theme_strawberrydaiquiri\">Клубничный Дайкири</string>\n    <string name=\"theme_midnightdusk\">Полуночные Сумерки</string>\n    <string name=\"about_dont_kill_my_app\">У некоторых производителей есть дополнительные ограничения для приложений, которые убивают фоновые службы. На этом сайте есть более подробная информация о том, как это исправить.</string>\n    <string name=\"restore_miui_warning\">Резервная копия/Восстановление может не работать должным образом, если отключена «Оптимизация MIUI».</string>\n    <string name=\"enhanced_tracking_info\">Предоставляет расширенные возможности для определённых источников. Серии будут автоматически отслеживаться при добавлении в библиотеку.</string>\n    <string name=\"enhanced_services\">Расширенные сервисы отслеживания</string>\n    <string name=\"theme_monet\">Динамическая</string>\n    <string name=\"label_background_activity\">Фоновая активность</string>\n    <string name=\"pref_lowest\">Самая низкая</string>\n    <string name=\"pref_low\">Низкая</string>\n    <string name=\"pref_high\">Высокая</string>\n    <string name=\"pref_highest\">Самая высокая</string>\n    <string name=\"pref_hide_threshold\">Чувствительность скрытия меню при прокрутке</string>\n    <string name=\"pref_inverted_colors\">Цвета наоборот</string>\n    <string name=\"relative_time_today\">Сегодня</string>\n    <string name=\"theme_tealturquoise\">Бирюзовая</string>\n    <string name=\"confirm_lock_change\">Выполните аутентификацию, чтобы подтвердить изменение</string>\n    <string name=\"label_default\">По умолчанию</string>\n    <string name=\"pref_category_appearance\">Отображение</string>\n    <string name=\"getting_started_guide\">Руководство по началу работы с приложением</string>\n    <string name=\"action_track\">Отслеживать</string>\n    <string name=\"pref_tablet_ui_mode\">Планшетный интерфейс</string>\n    <string name=\"pref_remove_exclude_categories\">Исключённые категории</string>\n    <string name=\"help_translate\">Помочь с переводом</string>\n    <string name=\"ext_app_info\">О приложении</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Установите и запустите Shizuku, чтобы использовать его как установщик расширений.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku не работает</string>\n    <string name=\"ext_installer_legacy\">По умолчанию</string>\n    <string name=\"ext_installer_pref\">Установщик</string>\n    <string name=\"ext_install_service_notif\">Установка расширения…</string>\n    <string name=\"action_sort_count\">Всего серий</string>\n    <string name=\"pref_verbose_logging\">Подробное ведение журнала</string>\n    <string name=\"pref_verbose_logging_summary\">Записывать подробный журнал в системный журнал (Снижает производительность приложения)</string>\n    <string name=\"action_display_language_badge\">Язык</string>\n    <string name=\"label_warning\">Предупреждение</string>\n    <string name=\"notification_size_warning\">Большое количество обновлений может привести к замедлению работы источников и увеличению расхода батареи. Нажмите для подробностей.</string>\n    <string name=\"backup_info\">Настоятельно рекомендуется хранить резервные копии в других местах или сервисах. Резервные копии могут содержать конфиденциальную информацию, как, например, пароли. Будьте осторожны при их отправке.</string>\n    <string name=\"connected_to_wifi\">Только по Wi-Fi</string>\n    <string name=\"update_72hour\">Каждые 3 дня</string>\n    <string name=\"download_queue_size_warning\">Предупреждение: Большое количество загрузок может привести к замедлению работы источников и/или блокировке %s. Нажмите для подробностей.</string>\n    <string name=\"ext_update_all\">Обновить все</string>\n    <string name=\"channel_app_updates\">Обновления приложения</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Очищать кэш глав при запуске приложения</string>\n    <string name=\"clear_database_source_item_count\">%1$d не библиотечных серий в базе данных</string>\n    <string name=\"database_clean\">Нечего очищать</string>\n    <string name=\"extension_api_error\">Не удалось получить доступные расширения</string>\n    <string name=\"privacy_policy\">Политика конфиденциальности</string>\n    <string name=\"pref_update_only_completely_read\">Пропускать серии с непрочитанными главами</string>\n    <string name=\"library_errors_help\">Для помощи в исправлении ошибок библиотеки, нажмите %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Сохранить как архив CBZ</string>\n    <string name=\"cancelled\">Отменено</string>\n    <string name=\"on_hiatus\">Перерыв</string>\n    <string name=\"publishing_finished\">Публикация завершена</string>\n    <string name=\"action_show_manga\">Показать серию</string>\n    <string name=\"action_display_cover_only_grid\">Сетка без названия</string>\n    <string name=\"pref_navigate_pan\">Панорамирование широких изображений</string>\n    <string name=\"pref_landscape_zoom\">Автоматически увеличивать широкие изображения</string>\n    <string name=\"pref_update_only_started\">Пропускать не начатые серии</string>\n    <string name=\"skipped_reason_completed\">Пропущено, т.к серия завершена</string>\n    <string name=\"skipped_reason_not_caught_up\">Пропущено, т.к есть непрочитанные главы</string>\n    <string name=\"skipped_reason_not_started\">Пропущено, т.к серия не начата</string>\n    <string name=\"learn_more\">Нажать для подробностей</string>\n    <string name=\"notification_update_error\">%1$d обновление(ий) не удалось</string>\n    <string name=\"rotation_reverse_portrait\">Портретная наоборот</string>\n    <string name=\"action_move_to_top_all_for_series\">Переместить серию в начало</string>\n    <string name=\"disabled_nav\">Отключено</string>\n    <string name=\"error_saving_picture\">Не удалось сохранить изображение</string>\n    <string name=\"empty_backup_error\">Нет элементов в библиотеке для резервирования</string>\n    <string name=\"update_check_open\">Открыть в GitHub</string>\n    <string name=\"webview_data_deleted\">Данные WebView очищены</string>\n    <string name=\"pref_clear_webview_data\">Очистить данные WebView</string>\n    <string name=\"action_close\">Закрыть</string>\n    <string name=\"source_filter_empty_screen\">Не найдено установленных источников</string>\n    <string name=\"source_empty_screen\">Не найдено источников</string>\n    <string name=\"action_sort_last_manga_update\">Последняя проверка обновления</string>\n    <string name=\"action_sort_unread_count\">Оставшиеся главы</string>\n    <string name=\"download_notifier_split_page_not_found\">Страница %d не найдена, при разделении</string>\n    <string name=\"split_tall_images_summary\">Улучшает производительность читалки</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Путь к файлам страницы %d не найден</string>\n    <string name=\"pref_reset_viewer_flags\">Сбросить настройки читалки для каждой серии</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Сбрасывает режим чтения и ориентацию для всех серий</string>\n    <string name=\"pref_reset_viewer_flags_success\">Все настройки читалки сброшены</string>\n    <string name=\"pref_reset_viewer_flags_error\">Не удалось сбросить настройки читалки</string>\n    <string name=\"empty_screen\">Упс, ошибочка вышла</string>\n    <string name=\"ext_info_age_rating\">Возрастное ограничение</string>\n    <string name=\"ext_info_version\">Версия</string>\n    <string name=\"ext_info_language\">Язык</string>\n    <string name=\"complete_list\">Прочитано</string>\n    <string name=\"on_hold_list\">Отложено</string>\n    <string name=\"reading_list\">Читаю</string>\n    <string name=\"wish_list\">Хочу прочесть</string>\n    <string name=\"unfinished_list\">Не закончено</string>\n    <string name=\"network_not_metered\">Только в безлимитной сети</string>\n    <string name=\"cant_open_last_read_chapter\">Не удаётся открыть последнюю прочитанную главу</string>\n    <string name=\"custom_cover\">Пользовательская обложка</string>\n    <string name=\"not_installed\">Не установлено</string>\n    <string name=\"pref_app_language\">Язык приложения</string>\n    <string name=\"theme_lavender\">Лаванда</string>\n    <string name=\"description_placeholder\">Без описания</string>\n    <string name=\"internal_error\">InternalError: Проверьте журнал сбоев для дополнительной информации</string>\n    <string name=\"delete_category_confirmation\">Хотите ли вы удалить категорию \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Удалить категорию</string>\n    <string name=\"pref_user_agent_string\">User agent по умолчанию</string>\n    <string name=\"pref_reset_user_agent_string\">Сбросить user agent по умолчанию</string>\n    <string name=\"action_remove_everything\">Удалить всё</string>\n    <string name=\"appwidget_unavailable_locked\">Виджет недоступен при включённой блокировке биометрией</string>\n    <string name=\"appwidget_updates_description\">Посмотреть недавно обновлённые серии в библиотеке</string>\n    <string name=\"update_already_running\">Обновление уже запущено</string>\n    <string name=\"error_user_agent_string_blank\">User agent не может быть пустым</string>\n    <string name=\"theme_tidalwave\">Приливная Волна</string>\n    <string name=\"download_ahead\">Загрузить наперёд</string>\n    <string name=\"auto_download_while_reading\">При чтении</string>\n    <string name=\"download_ahead_info\">Работает только если текущая + следующая главы уже загружены.</string>\n    <string name=\"are_you_sure\">Вы уверены?</string>\n    <string name=\"multi_lang\">Многоязыковое</string>\n    <string name=\"remove_manga\">Вы собираетесь удалить \\\"%s\\\" из вашей библиотеки</string>\n    <string name=\"updates_last_update_info\">Последнее обновление библиотеки: %s</string>\n    <string name=\"popular\">Популярное</string>\n    <string name=\"missing_storage_permission\">Не предоставлены разрешения на хранение</string>\n    <string name=\"skipped_reason_not_always_update\">Пропущено, т.к серия не нуждается в обновлении</string>\n    <string name=\"action_search_hint\">Искать…</string>\n    <string name=\"crash_screen_restart_application\">Перезапустить приложение</string>\n    <string name=\"pref_appearance_summary\">Тема, формат даты и времени</string>\n    <string name=\"pref_library_summary\">Категории, глобальное обновление, перелистывание глав</string>\n    <string name=\"pref_reader_summary\">Режим чтения, отображение, навигация</string>\n    <string name=\"pref_downloads_summary\">Автоматическая загрузка, загрузка наперёд</string>\n    <string name=\"pref_tracking_summary\">Односторонняя синхронизация прогресса, расширенная синхронизация</string>\n    <string name=\"pref_browse_summary\">Источники, расширения, глобальный поиск</string>\n    <string name=\"pref_backup_summary\">Ручные и автоматические резервные копий, хранилище</string>\n    <string name=\"pref_security_summary\">Блокировка приложения, защита экрана</string>\n    <string name=\"pref_advanced_summary\">Выгрузка журнала сбоев, оптимизация батареи</string>\n    <string name=\"crash_screen_title\">Ой, ошибочка вышла!</string>\n    <string name=\"crash_screen_description\">%s столкнулось с непредвиденной ошибкой. Мы рекомендуем поделиться журналом сбоев в нашем Discord-сервере в ветке поддержки.</string>\n    <string name=\"unknown_title\">Неизвестное название</string>\n    <string name=\"invalid_location\">Недопустимое расположение: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Недопустимый параметр user agent</string>\n    <string name=\"updates_last_update_info_just_now\">Только что</string>\n    <string name=\"download_notifier_cache_renewal\">Проверка загрузок</string>\n    <string name=\"information_no_entries_found\">В этой категории нет серий</string>\n    <string name=\"action_open_random_manga\">Открыть случайную серию</string>\n    <string name=\"fdroid_warning\">Сборки F-Droid официально не поддерживаются.\n\\nНажмите, чтобы узнать больше.</string>\n    <string name=\"action_display_show_continue_reading_button\">Кнопка «Продолжить чтение»</string>\n    <string name=\"track_remove_finish_date_conf_text\">Это удалит ранее выбранную дату окончания из %s</string>\n    <string name=\"track_remove_date_conf_title\">Удалить дату?</string>\n    <string name=\"track_remove_start_date_conf_text\">Это удалит ранее выбранную дату начала из %s</string>\n    <string name=\"pref_invalidate_download_cache\">Переиндексировать загрузки</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Принуждает приложение перепроверить загруженные главы</string>\n    <string name=\"label_started\">Начато</string>\n    <string name=\"label_read_duration\">Продолжительность чтения</string>\n    <string name=\"label_overview_section\">Обзор</string>\n    <string name=\"label_tracker_section\">Отслеживание</string>\n    <string name=\"not_applicable\">Н/Д</string>\n    <string name=\"day_short\">%dд</string>\n    <string name=\"seconds_short\">%dс</string>\n    <string name=\"label_used\">Использовано</string>\n    <string name=\"label_downloaded\">Загружено</string>\n    <string name=\"label_total_chapters\">Всего</string>\n    <string name=\"label_stats\">Статистика</string>\n    <string name=\"label_completed_titles\">Завершённые серии</string>\n    <string name=\"label_titles_section\">Серии</string>\n    <string name=\"label_read_chapters\">Прочитано</string>\n    <string name=\"label_tracked_titles\">Отслеживаемые серии</string>\n    <string name=\"hour_short\">%dч</string>\n    <string name=\"label_mean_score\">Средняя оценка</string>\n    <string name=\"minute_short\">%dм</string>\n    <string name=\"label_titles_in_global_update\">В глобальном обновлении</string>\n    <string name=\"label_local\">На устройстве</string>\n    <string name=\"action_not_now\">Не сейчас</string>\n    <string name=\"information_no_manga_category\">Категория пуста</string>\n    <string name=\"pref_library_update_show_tab_badge\">Количество непрочитанных глав на иконке «Обновления»</string>\n    <string name=\"copied_to_clipboard_plain\">Скопировано в буфер обмена</string>\n    <string name=\"enhanced_services_not_installed\">Доступно, но источник не установлен: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Пропускать повторяющиеся главы</string>\n    <string name=\"track_error\">%1$s ошибка: %2$s</string>\n    <string name=\"information_required_plain\">*необходимо</string>\n    <string name=\"pref_hide_in_library_items\">Скрывать серии, уже находящиеся в библиотеке</string>\n    <string name=\"action_copy_to_clipboard\">Копировать в буфер обмена</string>\n    <string name=\"action_update_category\">Обновить категорию</string>\n    <string name=\"split_tall_images\">Разделять длинные изображения</string>\n    <string name=\"overlay_header\">Наложение</string>\n    <string name=\"pref_page_rotate\">Развернуть широкие страницы под размер экрана</string>\n    <string name=\"pref_page_rotate_invert\">Отразить ориентацию развёрнутых широких страниц</string>\n    <string name=\"pref_debug_info\">Отладочная информация</string>\n    <string name=\"pref_chapter_swipe_end\">Глава при смахивании вправо</string>\n    <string name=\"pref_chapter_swipe_start\">Глава при смахивании влево</string>\n    <string name=\"pref_double_tap_zoom\">Двойное нажатие для увеличения</string>\n    <string name=\"action_filter_interval_custom\">Настраиваемая частота обновления</string>\n    <string name=\"intervals_header\">Интервалы</string>\n    <string name=\"manga_display_interval_title\">Оценивать каждые</string>\n    <string name=\"action_set_interval\">Задать интервал</string>\n    <string name=\"action_sort_next_updated\">Следующее ожидамое обновление</string>\n    <string name=\"pref_update_only_in_release_period\">Предсказать время выхода новых глав</string>\n    <string name=\"manga_display_modified_interval_title\">Задать обновления каждые</string>\n    <string name=\"skipped_reason_not_in_release_period\">Пропущено, т.к сегодня не ожидается выпуска</string>\n    <string name=\"track_delete_title\">Удалить отслеживание %s?</string>\n    <string name=\"track_delete_text\">Это удалит отслеживание в приложении.</string>\n    <string name=\"track_delete_remote_text\">Также удалить из %s</string>\n    <string name=\"action_ok\">ОК</string>\n    <string name=\"delete_downloaded\">Удалить загруженное</string>\n    <string name=\"has_results\">Имеет результаты</string>\n    <string name=\"library_sync_complete\">Синхронизация библиотеки завершена</string>\n    <string name=\"syncing_library\">Синхронизация библиотеки</string>\n    <string name=\"information_cloudflare_help\">Нажмите здесь, чтобы получить помощь с Cloudflare</string>\n    <string name=\"download_cache_invalidated\">Пересоздаётся индекс загрузок</string>\n    <string name=\"create_backup_file_error\">Не удалось создать файл резервной копии</string>\n    <string name=\"track_activity_name\">Вход в сервис отслеживания</string>\n    <string name=\"exception_http\">HTTP %d, проверьте сайт в WebView</string>\n    <string name=\"exception_offline\">Нет подключения к интернету</string>\n    <string name=\"exception_unknown_host\">Не удалось достичь %s</string>\n    <string name=\"unlock_app_title\">Разблокировать %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Переместить серию в конец</string>\n    <string name=\"pref_relative_format\">Относительные временные метки</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" вместо \\\"%2$s\\\"</string>\n    <string name=\"app_settings\">Настройки приложения</string>\n    <string name=\"source_settings\">Настройки источников</string>\n    <string name=\"notification_updating_progress\">Обновление библиотеки... (%s)</string>\n    <string name=\"file_null_uri_error\">Файл не выбран</string>\n    <string name=\"label_data_storage\">Данные и хранение</string>\n    <string name=\"relative_time_span_never\">Никогда</string>\n    <string name=\"pref_flash_page_summ\">Уменьшает артефакты у экранов e-ink</string>\n    <string name=\"last_auto_backup_info\">Последнее автоматическое резервное копирование: %s</string>\n    <string name=\"pref_flash_page\">Мигать при смене страницы</string>\n    <string name=\"pref_storage_usage\">Использование хранилища</string>\n    <string name=\"action_sort_tracker_score\">Оценка сервиса отслеживания</string>\n    <string name=\"action_create\">Создать</string>\n    <string name=\"action_apply\">Применить</string>\n    <string name=\"action_revert_to_default\">Сбросить настройки</string>\n    <string name=\"no_scanlators_found\">Переводчики не найдены</string>\n    <string name=\"scanlator\">Переводчик</string>\n    <string name=\"exclude_scanlators\">Исключить переводчиков</string>\n    <string name=\"selected\">Выбрано</string>\n    <string name=\"not_selected\">Не выбрано</string>\n    <string name=\"action_menu_overflow_description\">Другие опции</string>\n    <string name=\"action_bar_up_description\">Перейти вверх</string>\n    <string name=\"pref_storage_location\">Путь хранилища</string>\n    <string name=\"pref_storage_location_info\">Используется для автоматических резевных копии, загрузок глав и источнике на устройстве.</string>\n    <string name=\"onboarding_storage_action_select\">Выбрать папку</string>\n    <string name=\"pref_onboarding_guide\">Руководство для начинающих</string>\n    <string name=\"onboarding_guides_new_user\">Новичок в %s? Мы настоятельно рекомендуем ознакомиться с нашим руководством.</string>\n    <string name=\"onboarding_action_finish\">Начать</string>\n    <string name=\"onboarding_storage_selection_required\">Необходимо выбрать папку</string>\n    <string name=\"onboarding_heading\">Добро пожаловать!</string>\n    <string name=\"onboarding_guides_returning_user\">Переустанавливаете %s?</string>\n    <string name=\"onboarding_action_skip\">Пропустить</string>\n    <string name=\"onboarding_action_next\">Следующее</string>\n    <string name=\"onboarding_description\">Давайте настроем парочку вещей. Вы всегда можете их поменять позже в настройках.</string>\n    <string name=\"no_location_set\">Не указан путь хранилища</string>\n    <string name=\"onboarding_storage_info\">Выберите папку где %1$s будет хранить загруженные главы, резервные копии и другое.\n\\n\n\\nРекомендуется использовать выделенную папку.\n\\n\n\\nВыбранная папка: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Разрешения для уведомлений</string>\n    <string name=\"onboarding_permission_install_apps\">Разрешения для установки приложений</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Позволит избежать прерывания длительных обновлений библиотеки, загрузок и восстановлений резервных копий.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Использование батареи в фоне</string>\n    <string name=\"onboarding_permission_install_apps_description\">Позволит устанавливать расширения источников.</string>\n    <string name=\"onboarding_permission_notifications_description\">Получать уведомления об обновлениях библиотеки и т.д.</string>\n    <string name=\"onboarding_permission_action_grant\">Предоставить</string>\n    <string name=\"available_disk_space_info\">Доступно: %1$s / Всего: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">Нужны разрешения для установки расширений. Нажмите сюда, чтобы их предоставить.</string>\n    <string name=\"private_settings\">Включать конфиденциальные настройки (например, токены для входа в службы отслеживания)</string>\n    <string name=\"invalid_backup_file_error\">Полная ошибка:</string>\n    <string name=\"manga_interval_expected_update\">Выход новых глав ожидается примерно через %1$s, следующая проверка будет через %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Настраиваемая частота обновления:</string>\n    <string name=\"error_repo_exists\">Этот репозиторий уже существует!</string>\n    <string name=\"pref_library_update_smart_update\">Умное обновление</string>\n    <string name=\"invalid_repo_name\">Недопустимый URL-адрес репозитория</string>\n    <string name=\"action_add_repo_message\">Добавить дополнительные репозиторий в %s. Это должны быть URL-адреса которые заканчиваться на \\\"index.min.json\\\".</string>\n    <string name=\"delete_repo_confirmation\">Хотите ли вы удалить репозиторий \\\"%s\\\"?</string>\n    <string name=\"action_delete_repo\">Удалить репозиторий</string>\n    <string name=\"action_add_repo\">Добавить репозиторий</string>\n    <string name=\"information_empty_repos\">У вас нет репозиториев.</string>\n    <string name=\"label_extension_repos\">Репозитории расширений</string>\n    <string name=\"label_add_repo_input\">URL-адрес репозитория</string>\n    <string name=\"onboarding_storage_help_action\">Руководство по хранению</string>\n    <string name=\"onboarding_storage_help_info\">Обновляетесь со старой версии и не знаете, что выбрать? Обратите внимание на руководство по хранению для большей информации.</string>\n    <string name=\"manga_interval_expected_update_soon\">Скоро</string>\n    <string name=\"theme_nord\">Север</string>\n    <string name=\"ext_revoke_trust\">Убрать доверие к ненадёжным расширениям</string>\n    <string name=\"action_open_repo\">Открыть репозиторий источника</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Отключить уменьшение масштаба</string>\n    <string name=\"action_add_anyway\">Добавить в любом случае</string>\n    <string name=\"pref_display_profile\">Пользовательский профиль отображения</string>\n    <string name=\"action_replace_repo\">Заменить</string>\n    <string name=\"action_replace_repo_message\">Репозиторий %1$s имеет тот же подписанный ключ отпечатка, что и %2$s.\n\\nЕсли это так и задумано, %2$s будет заменён, в противном случае, свяжитесь с сопровождающим вашего репозитория.</string>\n    <string name=\"action_replace_repo_title\">Подписанный ключ отпечатка уже существует</string>\n    <string name=\"upcoming_calendar_prev\">Предыдущий месяц</string>\n    <string name=\"action_view_upcoming\">Просмотр предстоящих обновлений</string>\n    <string name=\"label_upcoming\">Предстоящее</string>\n    <string name=\"upcoming_guide\">Предстоящее руководство</string>\n    <string name=\"upcoming_calendar_next\">Следующий месяц</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Не удалось получить постоянный доступ к папке. Приложение может работать некорректно.</string>\n    <string name=\"pref_flash_duration\">Продолжительность вспышки</string>\n    <string name=\"pref_flash_duration_summary\">%1$s мс</string>\n    <string name=\"pref_flash_with\">Вспышка с</string>\n    <string name=\"pref_flash_style_black\">Чёрная</string>\n    <string name=\"pref_flash_style_white\">Белая</string>\n    <string name=\"pref_flash_style_white_black\">Белая и чёрная</string>\n    <string name=\"pref_flash_page_interval\">Вспышка каждую</string>\n    <string name=\"manga_interval_expected_update_null\">Эта серия либо завершена, либо дата ее выхода неизвестна.</string>\n    <string name=\"invalid_backup_file_unknown\">Файл резервной копии поврежден</string>\n    <string name=\"invalid_backup_file_json\">Резервное копирование в формате JSON не поддерживается</string>\n    <string name=\"extensionRepo_settings\">Репозитории расширений</string>\n    <string name=\"action_copy_link\">Копировать ссылку</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Пропустить скачивание повторяющихся прочитанных глав</string>\n    <string name=\"add_repo_confirmation\">Хотите ли вы добавить репозиторий \\\"%s\\\"?</string>\n    <string name=\"confirm_tracker_update\">Обновить сервисы отслеживания для главы %d?</string>\n    <string name=\"onboarding_permission_analytics\">Разрешить аналитику</string>\n    <string name=\"pref_firebase\">Аналитика и Журнал сбоев</string>\n    <string name=\"onboarding_permission_crashlytics\">Отправить журнал сбоев</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Отправить анонимно журнал сбоев разработчикам.</string>\n    <string name=\"firebase_summary\">Отправляя журнал сбоев и аналитику, вы позволите нам обнаружить и исправить ошибки, улучшить производительность и сделать будущие обновления более актуальными для ваших потребностей</string>\n    <string name=\"onboarding_permission_analytics_description\">Отправить анонимно данные об использовании для улучшения функций приложения.</string>\n    <string name=\"pref_security\">Безопасность</string>\n    <string name=\"action_sort_random\">Случайно</string>\n    <string name=\"ext_remove\">Удалить</string>\n    <string name=\"ext_confirm_remove\">Удалить расширение?</string>\n    <string name=\"remove_private_extension_message\">Вы действительно хотите удалить расширение \\\"%s\\\"?</string>\n    <string name=\"non_library_settings\">Все прочитанные серии</string>\n    <string name=\"trackers_updated_summary\">Сервисы отслеживания обновлены для главы %d</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Обновлять прогресс, когда отмечено как «Прочитано»</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Если читалка загружает пустое изображение, постепенно уменьшайте пороговую обработку.\\nВыбрано: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Пользовательская аппаратная пороговая обработка растрового изображения</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">По умолчанию (%d)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Влияет на производительность. Включите этот параметр, если пороговая обработка растрового изображения не помогает с ошибками, связанными с пустыми изображениями</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Приостановить историю чтения для расширений</string>\n    <string name=\"label_auto\">Авто</string>\n    <string name=\"theme_monochrome\">Монохром</string>\n    <string name=\"tracked_privately\">Отслеживается приватно</string>\n    <string name=\"action_toggle_private_on\">Отслеживать приватно</string>\n    <string name=\"action_toggle_private_off\">Отслеживать публично</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Использовать старый декодер для читалки с длинными страницами</string>\n    <string name=\"export\">Экспортировать</string>\n    <string name=\"artist\">Художник</string>\n    <string name=\"library_exported\">Библиотека экспортирована</string>\n    <string name=\"author\">Автор</string>\n    <string name=\"library_list\">Список библиотеки</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Отмечать дублированную прочитанную главу как \\\"Прочитано\\\"</string>\n    <string name=\"action_display_unread_badge\">Непрочитанные главы</string>\n    <string name=\"pref_behavior\">Поведение</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">После прочтения главы</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">После получения новой главы</string>\n    <string name=\"notes_placeholder\">Понравилась часть, где…</string>\n    <string name=\"action_notes\">Заметки</string>\n    <string name=\"action_edit_notes\">Изменить заметки</string>\n    <string name=\"possible_duplicates_title\">Возможные дупликаты</string>\n    <string name=\"possible_duplicates_summary\">В вашей библиотеке есть серии с похожим названием.\\n\\nВыберите серию, чтобы её перенести, или же добавить как дупликат.</string>\n    <string name=\"clear_db_exclude_read\">Оставлять серии с прочитанными главами</string>\n    <string name=\"clear_database_history_warning\">Прочитанные главы и прогресс не библиотечных серий будет потерян</string>\n    <string name=\"clear_database_text\">Вы собираетесь удалить записи из базы данных</string>\n    <string name=\"storage_failed_to_create_directory\">Ошибка при создании папки: %s</string>\n    <string name=\"storage_failed_to_create_download_directory\">Ошибка при создании папки для загрузок</string>\n    <string name=\"logging_in\">Вход…</string>\n    <string name=\"pref_update_library_manga_titles\">Обновлять названия серий в библиотеке для соответствия в источнике</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Внимание: Если серия была переименована, она будет удалена из очереди загрузок (если присутствует).</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Выбрано</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Доступно</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Выбрать всё</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Выбрать включенные источники</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Выбрать закреплённые источники</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Продолжить</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Ничего не выбирать</string>\n    <string name=\"theme_catppuccin\">Котопуссин</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Эти настройки медленные и опасные а также могут привести к ограничениям источников</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Какие данные перенести</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Удалить загрузки текущей серии после переноса</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Помогает сузить результаты поиска добавляя ключевые слова</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Показывать серии только, если соответствие имеет дополнительные главы</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Дополнительные ключевые слова (опционально)</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Скрывать серии без совпадений</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Скрывать серии без новых глав</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Расширенный глубокий поиск</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Разделяет название на ключевые слова для более обширного поиска</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Соответствие основанное на количестве глав</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Если включено, выбирает соответствие находящиеся дальше всех. В противном случает, выбирает первое соответствие по приоритету источника.</string>\n    <string name=\"migrationListScreenTitle\">Перенос</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Перенос (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Копировать</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Перенести</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Не найдено других вариантов</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Последняя: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Неизвестно</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Не переносить</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Остановить перенос?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Остановить</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Отменить</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Копировать</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Перенести</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Отменить</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Не найдено глав, эта серия не может быть использована для переноса</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Копировать сейчас</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Искать вручную</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Перенести сейчас</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Отменить</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Скрывать индикаторы отсутствующих глав</string>\n    <string name=\"pref_display_images_description\">Отрисововать изображения в описаниях серий</string>\n    <string name=\"label_donate\">Спонсорство</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Не позволять наименования файлов в виде non-ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Обеспечивает совместимость с некоторыми носителями информации, которые не поддерживают Unicode. Когда этот функция включена, вам нужно будет вручную переименовать папки серий и источников, заменив non-ASCII символы на шестнадцатеричные UTF-8 в нижнем регистре. Файлы глав можно не переименовать.</string>\n    <string name=\"pref_download_concurrent_sources\">Параллельные загрузки с источников</string>\n    <string name=\"action_webview_close_tab\">Закрыть вкладку</string>\n    <string name=\"pref_download_concurrent_pages\">Параллельные загрузки страниц</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Число одновременных загрузок страниц с источника</string>\n    <string name=\"action_filter_excluded_scanlators\">Фильтровать исключенных переводчиков</string>\n    <string name=\"calculating\">Вычисление…</string>\n    <string name=\"download_bookmarked\">В закладках</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sa/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s निमिषात् परम्</item>\n        <item quantity=\"other\">%1$s निमिषेषु परम्</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">ह्यः</item>\n        <item quantity=\"other\">%1$d दिनानि पूर्वम्</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d वर्गः</item>\n        <item quantity=\"other\">%d वर्गाः</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s मध्ये सम्पन्नम्, %2$s दोषः अस्ति</item>\n        <item quantity=\"other\">%1$s मध्ये सम्पन्नम्, %2$s दोषाः सन्ति</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s अध्यायः</item>\n        <item quantity=\"other\">%1$s अध्यायाः</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d अन्वेषकः</item>\n        <item quantity=\"other\">%d अन्वेषकाः</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s शेषः अस्ति</item>\n        <item quantity=\"other\">%1$s शेषः अस्ति</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">विस्तार-संशोधनम् उपलब्धम्</item>\n        <item quantity=\"other\">%d विस्तार-संशोधनानि उपलब्धानि</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d नव अध्यायः</item>\n        <item quantity=\"other\">%1$d नव अध्यायाः</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d प्रविष्ट्यर्थम्</item>\n        <item quantity=\"other\">%d प्रविष्ट्यर्थम्</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">अध्यायाः %1$s तथा 1 अधिकः</item>\n        <item quantity=\"other\">अध्यायाः %1$s तथा %2$d अधिकाः</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Skipping %d अध्यायः, स्रोतः तस्य अभावः वा तस्य निष्कासनं अस्ति</item>\n        <item quantity=\"other\">Skipping %d अध्यायाः, स्रोतः तेषां अभावः वा तेषां निष्कासनं अस्ति</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">श्वः</item>\n        <item quantity=\"other\">%1$d दिनेषु</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">अगला अपठितः अध्यायः</item>\n        <item quantity=\"other\">अगले %d अपठिताः अध्यायाः</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">अगला अध्यायः</item>\n        <item quantity=\"other\">अगले %d अध्यायाः</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d रिपोज़िटरी</item>\n        <item quantity=\"other\">%d रिपोज़िटरिस्</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 पृष्ठम्</item>\n        <item quantity=\"other\">%1$s पृष्ठानि</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 दिनम्</item>\n        <item quantity=\"other\">%d दिनानि</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s अध्यायः नास्ति</item>\n        <item quantity=\"other\">%1$s अध्यायाः न सन्ति</item>\n    </plurals>\n</resources>"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sa/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_recent_updates\">नवीकरणानि</string>\n    <string name=\"name\">नाम</string>\n    <string name=\"label_more\">इतोऽपि</string>\n    <string name=\"label_settings\">समायोजनानि</string>\n    <string name=\"label_download_queue\">अवारोपणश्रेणिः</string>\n    <string name=\"label_recent_manga\">चरित्रम्</string>\n    <string name=\"label_migration\">स्थानान्तरगमनम्</string>\n    <string name=\"label_extensions\">विस्ताराः</string>\n    <string name=\"label_extension_info\">विस्तारस्य विवरणम्</string>\n    <string name=\"label_help\">साहाय्यम्</string>\n    <string name=\"manga\">ग्रन्थालय-प्रविष्ट्यः</string>\n    <string name=\"categories\">वर्गाः</string>\n    <string name=\"chapters\">अध्यायाः</string>\n    <string name=\"track\">अनुप्रज्ञानम्</string>\n    <string name=\"history\">चरित्रम्</string>\n    <string name=\"label_sources\">मूलानि</string>\n    <string name=\"label_default\">प्राथमिकम्</string>\n    <string name=\"label_library\">ग्रन्थालयः</string>\n    <string name=\"label_backup\">प्रतिलेखनं प्रतिसंस्कारं च</string>\n    <string name=\"label_warning\">पूर्वसूचना</string>\n    <string name=\"confirm_lock_change\">परिवर्तनं दृढीकर्तुं प्रमाणीकरोतु</string>\n    <string name=\"action_menu\">सूचिः</string>\n    <string name=\"action_filter\">शोधकम्</string>\n    <string name=\"action_filter_bookmarked\">पुटचिह्नं कृतानि</string>\n    <string name=\"action_filter_empty\">शोधकं निष्करोतु</string>\n    <string name=\"action_sort_alpha\">वर्णक्रमानुसारिणि</string>\n    <string name=\"action_sort_count\">समस्ताः माङ्गाः</string>\n    <string name=\"action_sort_latest_chapter\">नूतनः अध्यायः</string>\n    <string name=\"action_sort_date_added\">योजितदिनाङ्कः</string>\n    <string name=\"action_search\">अन्वेषणम्</string>\n    <string name=\"action_select_all\">सर्वानि चिनोतु</string>\n    <string name=\"action_mark_as_read\">पठितमिति अङ्कयतु</string>\n    <string name=\"action_mark_as_unread\">अपठितमिति अङ्कयतु</string>\n    <string name=\"action_download\">अवतारयतु</string>\n    <string name=\"action_bookmark\">अध्यायम् अङ्कयतु</string>\n    <string name=\"action_update_library\">ग्रन्थालयं नवीकरोतु</string>\n    <string name=\"action_enable_all\">सर्वाणि सशक्तं करोतु</string>\n    <string name=\"action_edit\">सम्पादयतु</string>\n    <string name=\"action_add\">योजयतु</string>\n    <string name=\"action_add_category\">वर्गं योजयतु</string>\n    <string name=\"action_rename_category\">वर्गस्य नाम परिणमतु</string>\n    <string name=\"action_move_category\">वर्गानि स्थापयतु</string>\n    <string name=\"action_edit_cover\">आवरणं सम्पादयतु</string>\n    <string name=\"action_pause\">विरामयतु</string>\n    <string name=\"action_previous_chapter\">पूर्वः अध्यायः</string>\n    <string name=\"action_retry\">पुनः यतताम्</string>\n    <string name=\"action_remove\">निष्कासयतु</string>\n    <string name=\"action_delete\">नाशयतु</string>\n    <string name=\"action_start\">आरभताम्</string>\n    <string name=\"action_resume\">अनुवर्तताम्</string>\n    <string name=\"action_open_in_web_view\">वेब्-व्यू-अनुप्रयोगे उद्घाटयतु</string>\n    <string name=\"action_migrate\">स्थानान्तरगमनं कुरु</string>\n    <string name=\"action_settings\">समायोजनानि</string>\n    <string name=\"action_filter_tracked\">अनुप्रज्ञातानि</string>\n    <string name=\"action_filter_unread\">अपठितानि</string>\n    <string name=\"action_sort_total\">समस्ताः अध्यायाः</string>\n    <string name=\"action_sort_last_read\">अन्तिमपठितम्</string>\n    <string name=\"action_sort_chapter_fetch_date\">समाहृतदिनाङ्कः</string>\n    <string name=\"action_search_settings\">अन्वेषणसमायोजनानि</string>\n    <string name=\"action_global_search\">सार्वत्रिकम् अन्वेषणम्</string>\n    <string name=\"action_select_inverse\">विलोमे चिनोतु</string>\n    <string name=\"action_edit_categories\">वर्गानि सम्पादयतु</string>\n    <string name=\"action_mark_previous_as_read\">पूर्वतमं पठितमिति अङ्कयतु</string>\n    <string name=\"action_view_chapters\">अध्यायाः दर्शयतु</string>\n    <string name=\"action_remove_bookmark\">अध्यायपुटचिह्नं निष्करोतु</string>\n    <string name=\"action_disable_all\">सर्वाणि अशक्तं करोतु</string>\n    <string name=\"action_next_chapter\">अग्रिमः अध्यायः</string>\n    <string name=\"action_open_in_browser\">जालसञ्चारके उद्घाटयतु</string>\n    <string name=\"information_no_downloads\">अवारोपितानि न सन्ति</string>\n    <string name=\"action_display\">प्रदर्शनम्</string>\n    <string name=\"action_display_grid\">सुसम्बद्धा ग्रिड्-शैली</string>\n    <string name=\"action_display_list\">सूची</string>\n    <string name=\"action_display_download_badge\">अवारोपिताः अध्यायाः</string>\n    <string name=\"action_display_local_badge\">स्थानीयाः माङ्गाः</string>\n    <string name=\"action_display_show_tabs\">वर्गीयाः पीठिकाः दर्शयतु</string>\n    <string name=\"action_disable\">अशक्तं करोतु</string>\n    <string name=\"action_pin\">उपरि उद्वर्णयतु</string>\n    <string name=\"action_unpin\">उद्वर्णं निष्करोतु</string>\n    <string name=\"action_cancel\">लुम्पतु</string>\n    <string name=\"action_cancel_all\">सर्वाणि लुम्पतु</string>\n    <string name=\"action_sort\">विन्यासः</string>\n    <string name=\"action_order_by_chapter_number\">अध्यायस्य क्रमसङ्ख्यया</string>\n    <string name=\"action_newest\">नविष्ठम्</string>\n    <string name=\"information_no_recent_manga\">सद्यः किमपि न पठितम्</string>\n    <string name=\"information_empty_library\">तव ग्रन्थालयः रिक्तम् अस्ति</string>\n    <string name=\"information_no_recent\">सद्यः नवीकरणानि न सन्ति</string>\n    <string name=\"information_empty_category\">तव वर्गाः एव न सन्ति। नूतनं निर्माणं कृत्वा व्यवस्थापयितुम् अधिकचिह्नं नोदयतु॥</string>\n    <string name=\"action_display_mode\">प्रदर्शनस्य अवस्था</string>\n    <string name=\"action_display_comfortable_grid\">सुसुखा ग्रिड्-शैली</string>\n    <string name=\"action_display_language_badge\">भाषा</string>\n    <string name=\"action_display_show_number_of_items\">वस्तूनां सङ्ख्यां दर्शयतु</string>\n    <string name=\"cancel_all_for_series\">अस्य धारावाहिकस्य कृते सर्वाणि लुम्पतु</string>\n    <string name=\"action_order_by_upload_date\">उपारोपणदिनाङ्केन</string>\n    <string name=\"action_oldest\">ज्येष्ठतमम्</string>\n    <string name=\"action_asc\">आरोहयतु</string>\n    <string name=\"action_desc\">अवारोहयतु</string>\n    <string name=\"action_move_to_top\">अग्रस्थानं चालयतु</string>\n    <string name=\"action_install\">प्रतिष्ठापयतु</string>\n    <string name=\"action_move_to_bottom\">अधःस्थानं चालयतु</string>\n    <string name=\"action_share\">प्रसारयतु</string>\n    <string name=\"action_save\">रक्षतु</string>\n    <string name=\"action_reset\">पुनःस्थापयतु</string>\n    <string name=\"action_undo\">अपाकरोतु</string>\n    <string name=\"action_show_errors\">विवरणानि द्रष्टुं स्पृशतु</string>\n    <string name=\"action_restore\">समाददातु</string>\n    <string name=\"action_webview_refresh\">नवीकरोतु</string>\n    <string name=\"action_start_downloading_now\">अवारोपणम् अधुना आरभताम्</string>\n    <string name=\"loading\">आरोपयति…</string>\n    <string name=\"app_not_available\">अनुप्रयोगः न उपलभ्यः</string>\n    <string name=\"pref_category_appearance\">रूपम्</string>\n    <string name=\"pref_category_library\">ग्रन्थालयः</string>\n    <string name=\"pref_category_downloads\">अवारोपितानि</string>\n    <string name=\"pref_category_tracking\">अनुप्रज्ञानम्</string>\n    <string name=\"pref_category_about\">स्वसमाचारः</string>\n    <string name=\"pref_category_theme\">दृश्यशैली</string>\n    <string name=\"theme_system\">संविधाम् अनुसरतु</string>\n    <string name=\"theme_light\">अशक्तं कुरु</string>\n    <string name=\"theme_monet\">गतिशीलम्</string>\n    <string name=\"theme_greenapple\">हरितसेवम्</string>\n    <string name=\"theme_midnightdusk\">निशीथसन्ध्या</string>\n    <string name=\"theme_strawberrydaiquiri\">तृणबदर-मदिरा</string>\n    <string name=\"theme_tealturquoise\">टील्-शैली</string>\n    <string name=\"theme_yinyang\">यिन् याङ्ग् च</string>\n    <string name=\"pref_dark_theme_pure_black\">सम्पूर्णकृष्णवर्णीया असितदशा</string>\n    <string name=\"action_open_log\">वृत्तम् उद्घाटयतु</string>\n    <string name=\"action_webview_back\">प्रतिगच्छतु</string>\n    <string name=\"action_webview_forward\">अग्रे गच्छतु</string>\n    <string name=\"pref_category_general\">सामान्यः</string>\n    <string name=\"pref_category_reader\">प्रदर्शकम्</string>\n    <string name=\"pref_category_advanced\">विस्तृतम्</string>\n    <string name=\"theme_dark\">सशक्तं कुरु</string>\n    <string name=\"pref_app_theme\">अनुप्रयोगस्य दृश्यशैली</string>\n    <string name=\"theme_tako\">टाकोशैली</string>\n    <string name=\"theme_yotsuba\">योट्सूबः</string>\n    <string name=\"pref_manage_notifications\">आवेदनानि निर्वहतु</string>\n    <string name=\"pref_category_security\">संरक्षणम्</string>\n    <string name=\"lock_with_biometrics\">उद्घाटनम् आवश्यकम्</string>\n    <string name=\"lock_always\">सदा</string>\n    <string name=\"lock_never\">न कदापि</string>\n    <string name=\"secure_screen\">पटलम् अभिरक्षतु</string>\n    <string name=\"hide_notification_content\">आवेदनवस्तु वृणोतु</string>\n    <string name=\"pref_date_format\">तिथिसंरूपम्</string>\n    <string name=\"lock_when_idle\">कार्याभावे अपिदधातु</string>\n    <string name=\"secure_screen_summary\">अभिरक्षणपटलम् अनुप्रयोगाणां परिवर्तने अनुप्रयोगवस्तु वृणोति पटलप्रतिकृतीनां च सृष्टिं निवारयति॥</string>\n    <string name=\"pref_category_nsfw_content\">प्रौढानां कृते एव (१८+) वस्तुमूलानि</string>\n    <string name=\"pref_show_nsfw_source\">मूलानां विस्ताराणां च सूचीषु दर्शयतु</string>\n    <string name=\"relative_time_today\">अद्य</string>\n    <string name=\"pref_library_columns\">प्रतिपङ्क्तौ वस्तूनि</string>\n    <string name=\"landscape\">अनुप्रस्थम्</string>\n    <string name=\"pref_category_display\">प्रदर्शनम्</string>\n    <string name=\"portrait\">चित्राकृतिः</string>\n    <string name=\"pref_library_update_interval\">स्वयङ्कृतनवीकरणानि</string>\n    <string name=\"update_never\">न कदापि</string>\n    <string name=\"update_6hour\">प्रतिषष्ठघण्टा</string>\n    <string name=\"update_24hour\">प्रतिदिनम्</string>\n    <string name=\"update_48hour\">प्रतिदिनद्वयम्</string>\n    <string name=\"update_72hour\">प्रतिदिनत्रयम्</string>\n    <string name=\"charging\">पारणसमये</string>\n    <string name=\"restrictions\">निर्बन्धाः - %s</string>\n    <string name=\"pref_category_library_update\">सार्वत्रिकनवीकरणम्</string>\n    <string name=\"update_12hour\">प्रतिद्वादशघण्टा</string>\n    <string name=\"update_weekly\">प्रतिसप्ताहिकम्</string>\n    <string name=\"pref_library_update_restriction\">स्वयङ्कृतनवीकरणनाम् उपकरणनिर्बन्धाः</string>\n    <string name=\"connected_to_wifi\">केवलं वै-फ़ै माध्यमेन</string>\n    <string name=\"pref_update_only_completely_read\">अपठितान् अध्यायान् गृह्णाति</string>\n    <string name=\"pref_update_only_non_completed\">समापितधारावाहिकाः</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">ग्रन्थालयनवीकरणे सति नूतनमुखचित्राय विवरणाय च मार्गतु</string>\n    <string name=\"default_category\">प्राथमिकवर्गः</string>\n    <string name=\"default_category_summary\">सदा पृच्छतु</string>\n    <string name=\"none\">न किमपि</string>\n    <string name=\"all\">सर्वाणि</string>\n    <string name=\"exclude\">वर्जयतु - %s</string>\n    <string name=\"include\">संयोजयतु - %s</string>\n    <string name=\"ext_updates_pending\">करणीयनवीकरणानि सन्ति</string>\n    <string name=\"ext_obsolete\">लुप्तम्</string>\n    <string name=\"ext_downloading\">अवतारयति</string>\n    <string name=\"ext_installing\">प्रतिष्ठापयति</string>\n    <string name=\"ext_installed\">प्रतिष्ठापितम्</string>\n    <string name=\"ext_untrusted\">अविश्वस्तम्</string>\n    <string name=\"ext_app_info\">अनुप्रयोगविवरणम्</string>\n    <string name=\"ext_nsfw_short\">१८+</string>\n    <string name=\"ext_nsfw_warning\">प्रौढानां कृते एव (१८+) वस्तु अन्तः स्यात्</string>\n    <string name=\"ext_install_service_notif\">विस्तारं प्रतिष्ठापयति …</string>\n    <string name=\"ext_installer_legacy\">क्रमगतम्</string>\n    <string name=\"pref_fullscreen\">पूर्णपटलम्</string>\n    <string name=\"pref_library_update_refresh_metadata\">प्रदत्तांशं स्वयञ्चालितं नवीकरोतु</string>\n    <string name=\"categorized_display_settings\">प्रतिवर्गं विन्यासस्य प्रदर्शनस्य च कृते समायोजनानि</string>\n    <string name=\"untrusted_extension\">अविश्वस्तविस्तारः</string>\n    <string name=\"extension_api_error\">विस्तारसूच्याः प्राप्तिः अनुत्तीर्णा</string>\n    <string name=\"pref_library_update_categories_details\">माङ्गाः याः वर्जितवर्गेषु सन्ति ताः अन्तर्भूतवर्गेषु सन्ति चेदपि तासां नवीकरणं न भविष्यति।</string>\n    <string name=\"obsolete_extension_message\">अयं विस्तारः इतःपरं न उपलभ्यः।</string>\n    <string name=\"ext_trust\">विश्वासः</string>\n    <string name=\"ext_update_all\">सर्वाणि नवीकरोतु</string>\n    <string name=\"ext_update\">नवीकरोतु</string>\n    <string name=\"ext_install\">प्रतिस्थायतु</string>\n    <string name=\"ext_pending\">अपूर्णम्</string>\n    <string name=\"ext_uninstall\">निष्कासयतु</string>\n    <string name=\"ext_installer_shizuku_stopped\">शिज़ुकुः न चलति</string>\n    <string name=\"ext_installer_pref\">प्रतिष्ठापनसहायकम्</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">शिजुकुं विस्तारप्रतिष्ठापनसहायकम् इव उपयोगं कर्तुं शिजुकुं प्रतिष्ठापयित्वा आरभताम्।</string>\n    <string name=\"pref_show_navigation_mode\">मार्गणविन्यासस्य उपरिस्तरं दर्शयतु</string>\n    <string name=\"pref_dual_page_invert\">द्विपुटविभाजनस्य स्थापनं व्यत्यासं कुरु</string>\n    <string name=\"pref_dual_page_split\">द्विपुटविभाजनम्</string>\n    <string name=\"pref_cutout_short\">खण्डितक्षेत्रे वस्तु दर्शयतु</string>\n    <string name=\"parental_controls_info\">एतत् अनधिकारैः उत वस्तुतः अशुद्धचिह्नितैः विस्तारेभ्यः ॰प्रौढानां कृते एव (१८+)॰ इति चिह्नितवस्तूनाम् अनुप्रयोगे दर्शनं न निवारयति।</string>\n    <string name=\"pref_show_navigation_mode_summary\">प्रदर्शकस्य उद्घाटने नोदनमण्डलानि दर्शयतु</string>\n    <string name=\"pref_page_transitions\">पुटसङ्क्रमान् जीवयतु</string>\n    <string name=\"pref_double_tap_anim_speed\">द्विवारनोदनं सञ्जीवनवेगः</string>\n    <string name=\"pref_dual_page_invert_summary\">यदि द्विपुटविभजनस्य स्थापना पठनदिशा समः न भवति</string>\n    <string name=\"pref_show_page_number\">पुटसङ्ख्यां दर्शयतु</string>\n    <string name=\"pref_show_reading_mode\">पठनदशां दर्शयतु</string>\n    <string name=\"pref_show_reading_mode_summary\">प्रदर्शकस्य उद्घाटने वर्तमानदशां सङ्क्षेपं दर्शयतु</string>\n    <string name=\"pref_crop_borders\">सीमाः कर्तयतु</string>\n    <string name=\"on\">सशक्तं कुरु</string>\n    <string name=\"off\">अशक्तं कुरु</string>\n    <string name=\"pref_grayscale\">धूसरवर्णीयम्</string>\n    <string name=\"pref_inverted_colors\">विलोमेन</string>\n    <string name=\"pref_custom_color_filter\">स्वकृतं वर्णशोधकम्</string>\n    <string name=\"pref_custom_brightness\">स्वकृता प्रचुरप्रकाशता</string>\n    <string name=\"pref_color_filter_mode\">वर्णशोधकस्य मिश्रदशा</string>\n    <string name=\"filter_mode_overlay\">उपरिस्तरः</string>\n    <string name=\"filter_mode_multiply\">गुणयतु</string>\n    <string name=\"filter_mode_screen\">पटलम्</string>\n    <string name=\"filter_mode_darken\">धूम्री करोतु</string>\n    <string name=\"pref_keep_screen_on\">पटलम् उत्तेजितं स्थापयतु</string>\n    <string name=\"pref_skip_filtered_chapters\">सम्मृष्टान् अध्यायान् लङ्घयतु</string>\n    <string name=\"pref_reader_navigation\">मार्गणम्</string>\n    <string name=\"pref_read_with_volume_keys\">ध्वनिस्तरकीले</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">ध्वनिस्तरकीले विलोमं कुरु</string>\n    <string name=\"tapping_inverted_none\">किमपि न</string>\n    <string name=\"tapping_inverted_horizontal\">अनुप्रस्थम्</string>\n    <string name=\"tapping_inverted_vertical\">ऊर्ध्वम्</string>\n    <string name=\"pref_reader_actions\">कार्याणि</string>\n    <string name=\"pref_read_with_long_tap\">दीर्घस्पर्शने दर्शयतु</string>\n    <string name=\"pref_create_folder_per_manga\">पुटानि भिन्नसञ्चयेषु रक्षतु</string>\n    <string name=\"pref_reader_theme\">पृष्ठभूमिवर्णः</string>\n    <string name=\"white_background\">श्वेतः</string>\n    <string name=\"gray_background\">धूसरः</string>\n    <string name=\"black_background\">कृष्णः</string>\n    <string name=\"automatic_background\">स्वयङ्कृतम्</string>\n    <string name=\"l_nav\">एल-आकारम्</string>\n    <string name=\"kindlish_nav\">किञ्डल्-इव</string>\n    <string name=\"edge_nav\">सीमा</string>\n    <string name=\"right_and_left_nav\">दक्षिणतः वामनतः च</string>\n    <string name=\"nav_zone_next\">अग्रिमम्</string>\n    <string name=\"nav_zone_prev\">पूर्वतनम्</string>\n    <string name=\"nav_zone_left\">वामतः</string>\n    <string name=\"nav_zone_right\">दक्षिणतः</string>\n    <string name=\"left_to_right_viewer\">दक्षिणेतरात् दक्षिणतः</string>\n    <string name=\"right_to_left_viewer\">वामेतरात् वामतः</string>\n    <string name=\"vertical_viewer\">ऊर्ध्वम्</string>\n    <string name=\"webtoon_viewer\">वेब्-टून्</string>\n    <string name=\"pref_viewer_nav\">मार्गणविन्यासः</string>\n    <string name=\"pref_viewer_type\">प्राथमिकपठनदशा</string>\n    <string name=\"vertical_plus_viewer\">सततम् ऊर्ध्वम्</string>\n    <string name=\"pref_read_with_tapping_inverted\">विलोमं स्पर्शनम्</string>\n    <string name=\"pref_skip_read_chapters\">पठितम् इति चिह्नितान् अध्यायान् लङ्घयतु</string>\n    <string name=\"filter_mode_lighten\">प्रकाशयति</string>\n    <string name=\"tapping_inverted_both\">द्वयम्</string>\n    <string name=\"pref_create_folder_per_manga_summary\">माङ्गाशीर्षकम् अनुसृत्य सञ्चयान् स्रक्ष्यति</string>\n    <string name=\"pager_viewer\">पृष्ठीकृतम्</string>\n    <string name=\"scale_type_stretch\">विस्तारणम्</string>\n    <string name=\"scale_type_fit_width\">विस्तृतिं समुचितं कुरु</string>\n    <string name=\"scale_type_fit_screen\">पटलं समुचितं कुरु</string>\n    <string name=\"scale_type_original_size\">मूलः आकारः</string>\n    <string name=\"scale_type_smart_fit\">चतुरसमुचितम्</string>\n    <string name=\"pref_zoom_start\">आरम्भस्थानं सर्पकं कुरु</string>\n    <string name=\"zoom_start_automatic\">स्वयङ्कृतम्</string>\n    <string name=\"zoom_start_left\">वामतः</string>\n    <string name=\"zoom_start_right\">दक्षिणतः</string>\n    <string name=\"zoom_start_center\">मध्यः</string>\n    <string name=\"double_tap_anim_speed_0\">सञ्जीवनं नास्ति</string>\n    <string name=\"double_tap_anim_speed_normal\">साधारणम्</string>\n    <string name=\"double_tap_anim_speed_fast\">शीघ्रम्</string>\n    <string name=\"pref_rotation_type\">प्राथमिकभ्रमणप्रकारः</string>\n    <string name=\"rotation_type\">भ्रमणप्रकारः</string>\n    <string name=\"rotation_free\">मुक्तम्</string>\n    <string name=\"rotation_portrait\">लम्बदर्शम्</string>\n    <string name=\"rotation_landscape\">अनुप्रस्थम्</string>\n    <string name=\"rotation_force_portrait\">नियतलम्बदर्शम्</string>\n    <string name=\"rotation_force_landscape\">नियतानुप्रस्थम्</string>\n    <string name=\"color_filter_r_value\">आर्</string>\n    <string name=\"color_filter_g_value\">जी</string>\n    <string name=\"color_filter_b_value\">बि</string>\n    <string name=\"color_filter_a_value\">ए</string>\n    <string name=\"pref_always_show_chapter_transition\">सदा अध्यायसङ्क्रमं दर्शयतु</string>\n    <string name=\"pref_category_reading_mode\">पठनदशा</string>\n    <string name=\"pref_category_reading\">पठनम्</string>\n    <string name=\"pref_webtoon_side_padding\">पक्षस्य पाडिङ्गः</string>\n    <string name=\"pref_image_scale_type\">मापनप्रकारः</string>\n    <string name=\"scale_type_fit_height\">ऊर्ध्वत्वं समुचितं कुरु</string>\n    <string name=\"pref_high\">उच्चम्</string>\n    <string name=\"pref_low\">अधस्तनम्</string>\n    <string name=\"pref_highest\">उच्चतमम्</string>\n    <string name=\"pref_remove_bookmarked_chapters\">पुटचिह्नकृतानाम् अध्यायानां नाशयितुम् अनुमन्यताम्</string>\n    <string name=\"pref_remove_exclude_categories\">वर्जितवर्गाः</string>\n    <string name=\"disabled\">अशक्तं कृतम्</string>\n    <string name=\"last_read_chapter\">अन्तिमपठितः अध्यायः</string>\n    <string name=\"second_to_last\">अन्तिमपठितात् अध्यायात् पूर्वम्</string>\n    <string name=\"third_to_last\">अन्तिमपठितात् अध्यायात् द्वितीयपूर्वम्</string>\n    <string name=\"services\">सेवाः</string>\n    <string name=\"pref_remove_after_marked_as_read\">पठितमिति स्वीयचिह्नितात् परम्</string>\n    <string name=\"pref_remove_after_read\">पठनात् परं स्वयञ्चालितं नाशयतु</string>\n    <string name=\"save_chapter_as_cbz\">CBZ-लेखागारम् इव अमुकनाम्ना रक्षतु</string>\n    <string name=\"pref_auto_update_manga_sync\">पठनात् परं प्रगतिं नवीकरोतु</string>\n    <string name=\"pref_lowest\">अधमम्</string>\n    <string name=\"pref_category_delete_chapters\">अध्यायान् नाशयतु</string>\n    <string name=\"fourth_to_last\">अन्तिमपठितात् अध्यायात् तृतीयपूर्वम्</string>\n    <string name=\"fifth_to_last\">अन्तिमपठितात् अध्यायात् चतुर्थपूर्वम्</string>\n    <string name=\"pref_category_auto_download\">स्वचालितम् अवारोपणम्</string>\n    <string name=\"pref_download_new\">नूतनान् अध्यायान् अवतारयतु</string>\n    <string name=\"tracking_guide\">अनुप्रज्ञानमार्गदर्शनम्</string>\n    <string name=\"enhanced_services\">विवृद्धसेवाः</string>\n    <string name=\"action_track\">अनुप्रजानातु</string>\n    <string name=\"pref_create_backup\">प्रतिलेखनं निर्मातु</string>\n    <string name=\"pref_create_backup_summ\">एतत् उपयुज्य वर्तमानग्रन्थालयं समादातुं शक्यते</string>\n    <string name=\"pref_restore_backup\">प्रतिलेखनं समाददातु</string>\n    <string name=\"pref_backup_interval\">प्रतिलेखनस्य आवर्तनता</string>\n    <string name=\"backup_in_progress\">प्रतिलेखनं पूर्वमेव प्रगतौ अस्ति</string>\n    <string name=\"restore_duration\">%1$02d निमेषाः %2$02d क्षणाः च</string>\n    <string name=\"restoring_backup_error\">प्रतिलेखनस्य समादानम् अनुत्तीर्णम्</string>\n    <string name=\"creating_backup_error\">प्रतिलेखनम् अनुत्तीर्णम्</string>\n    <string name=\"restore_in_progress\">प्रतिसंस्कारः पूर्वमेव प्रगत्याम् अस्ति</string>\n    <string name=\"restoring_backup\">प्रतिलेखनं समाददाति</string>\n    <string name=\"restoring_backup_canceled\">प्रतिसंस्कारः अलोप्यत</string>\n    <string name=\"restore_completed\">प्रतिसंस्कारं समापितम्</string>\n    <string name=\"restore_miui_warning\">यदि MIUI वृद्धिकरणम् अशक्तं कृतं तर्हि प्रतिलेखनम्/प्रतिसंस्कारः क्रियां युक्तं न कुर्यात्।</string>\n    <string name=\"backup_info\">स्वयङ्कृतप्रतिलेखनानि अतीव निर्दिशितानि। त्वया अन्यस्थानेषु अपि प्रतिकृतीनां स्थापनम् उचितं भविष्यति॥</string>\n    <string name=\"pref_restore_backup_summ\">प्रतिलेखनसञ्चिकायाः ग्रन्थालयं समाददातु</string>\n    <string name=\"backup_created\">प्रतिलेखनं निर्मितम्</string>\n    <string name=\"invalid_backup_file\">अनाप्ता प्रतिलेखनसञ्चिका</string>\n    <string name=\"invalid_backup_file_missing_manga\">प्रतिलेखने काऽपि माङ्गा नास्ति।</string>\n    <string name=\"backup_restore_missing_sources\">मूलानि विहीनानि -</string>\n    <string name=\"backup_restore_missing_trackers\">ट्राकर्तन्त्रांशाः न अन्तर्गताः -</string>\n    <string name=\"backup_choice\">त्वं कानि प्रतिलेखितुम् इच्छसि</string>\n    <string name=\"creating_backup\">प्रतिलेखनं निर्माति</string>\n    <string name=\"label_network\">जालम्</string>\n    <string name=\"pinned_sources\">अग्रिमस्थकृतानि</string>\n    <string name=\"latest\">नविष्ठम्</string>\n    <string name=\"browse\">गवेषयतु</string>\n    <string name=\"website\">जालस्थानम्</string>\n    <string name=\"version\">संस्करणम्</string>\n    <string name=\"cancelled\">अलोप्यत</string>\n    <string name=\"manga_info_expand\">अधिकम्</string>\n    <string name=\"manga_info_collapse\">न्यूनम्</string>\n    <string name=\"chapter_error\">दोषः</string>\n    <string name=\"chapter_paused\">विरमितम्</string>\n    <string name=\"download_unread\">अपठितम्</string>\n    <string name=\"manga_cover\">मुखचित्रम्</string>\n    <string name=\"dropped\">त्यक्तम्</string>\n    <string name=\"repeating\">पुनःपठति</string>\n    <string name=\"score\">प्राप्ताङ्कः</string>\n    <string name=\"title\">शीर्षकम्</string>\n    <string name=\"status\">स्थितिः</string>\n    <string name=\"track_status\">स्थितिः</string>\n    <string name=\"track_type\">प्रकारः</string>\n    <string name=\"paused\">विरमितम्</string>\n    <string name=\"username\">उपयोक्तृनाम</string>\n    <string name=\"pref_hide_threshold\">सारयति सति सूच्याः गुप्तीकरणाय सूक्ष्मचैतन्यम्</string>\n    <string name=\"pref_download_new_categories_details\">यद्यपि अन्तर्भूतवर्गेषु स्थिताः सन्ति तथापि वर्जितवर्गेषु स्थिताः माङ्गाः अवारोपिताः न भविष्यन्ति।</string>\n    <string name=\"tracking_info\">अनुप्रज्ञानसेवासु अध्यायप्रगतिं नवीकर्तुं एकमार्गसमाकलनम्। तदीयात् अनुप्रज्ञानगण्डात् व्यक्तिगतेभ्यः माङ्गानिवेशेभ्यः अनुप्रज्ञानं स्थापयतु॥</string>\n    <string name=\"label_data\">दत्तांशः</string>\n    <string name=\"tabs_header\">प्लवनखण्डाः</string>\n    <string name=\"other_source\">अन्यम्</string>\n    <string name=\"date\">तिथिः</string>\n    <string name=\"ongoing\">चलत्</string>\n    <string name=\"unknown\">अज्ञातम्</string>\n    <string name=\"licensed\">अधिकारि</string>\n    <string name=\"manga_download\">अवतारयतु</string>\n    <string name=\"manga_tracking_tab\">अनुप्रज्ञानम्</string>\n    <string name=\"password\">गुप्तपदम्</string>\n    <string name=\"login\">अन्तर्गच्छतु</string>\n    <string name=\"transition_finished\">समाप्तम् -</string>\n    <string name=\"transition_current\">वर्तमानम् -</string>\n    <string name=\"transition_next\">अग्रिमम् -</string>\n    <string name=\"transition_previous\">पूर्वम् -</string>\n    <string name=\"unread\">अपठितम्</string>\n    <string name=\"reading\">पठति</string>\n    <string name=\"completed\">समापितम्</string>\n    <string name=\"migrate\">स्थानान्तरगमनम्</string>\n    <string name=\"copy\">प्रतिलेखं करोतु</string>\n    <string name=\"update_check_confirm\">अवतारयतु</string>\n    <string name=\"update_check_notification_download_in_progress\">अवारोपयामि…</string>\n    <string name=\"local_source_help_guide\">स्थानीयमूलमार्गदर्शनम्</string>\n    <string name=\"action_global_search_hint\">सार्वत्रिकान्वेषणम्…</string>\n    <string name=\"chapter_not_found\">अध्यायः न लभ्यः</string>\n    <string name=\"on_hiatus\">भग्नम्</string>\n    <string name=\"add_to_library\">ग्रन्थालये योजयतु</string>\n    <string name=\"manga_added_library\">ग्रन्थालये योजितम्</string>\n    <string name=\"display_mode_chapter\">अध्यायः %1$s</string>\n    <string name=\"chapter_downloading_progress\">अवारोपयति (%1$d/%2$d)</string>\n    <string name=\"sort_by_source\">मूलेन</string>\n    <string name=\"update_check_notification_download_complete\">अवारोपणं समाप्तम्</string>\n    <string name=\"download_notifier_title_error\">दोषः</string>\n    <string name=\"spen_previous_page\">पूर्वपुटः</string>\n    <string name=\"spen_next_page\">अग्रिमपुटः</string>\n    <string name=\"pref_clear_database\">दत्तनिधिं मार्जयतु</string>\n    <string name=\"database_clean\">दत्तनिधिः मार्जितः</string>\n    <string name=\"label_background_activity\">पृष्ठभूमिकार्यक्रमम्</string>\n    <string name=\"pref_disable_battery_optimization\">विद्युत्कोषवृद्धिकरणम् अशक्तं करोतु</string>\n    <string name=\"whats_new\">नूतनं किम्</string>\n    <string name=\"pref_tablet_ui_mode\">टाबलेट् यू॰ऐ</string>\n    <string name=\"help_translate\">अनुवादसाहाय्यं करोतु</string>\n    <string name=\"remove_from_library\">ग्रन्थालयात् निष्करोतु</string>\n    <string name=\"publishing_finished\">प्रकाशनं समाप्तम्</string>\n    <string name=\"manga_removed_library\">ग्रन्थालयात् निष्कृतम्</string>\n    <string name=\"in_library\">ग्रन्थालये</string>\n    <string name=\"show_title\">मूलशीर्षकम्</string>\n    <string name=\"show_chapter_number\">अध्यायसङ्ख्या</string>\n    <string name=\"cover_saved\">मुखचित्रं रक्षितम्</string>\n    <string name=\"on_hold\">विरामे</string>\n    <string name=\"track_started_reading_date\">आरम्भकतिथिः</string>\n    <string name=\"track_finished_reading_date\">समाप्ततिथिः</string>\n    <string name=\"transition_pages_loading\">पुटान् आरोपयतु…</string>\n    <string name=\"updating_library\">ग्रन्थालयं नवीकरोति</string>\n    <string name=\"pref_clear_history\">चरित्रं मार्जयतु</string>\n    <string name=\"download_notifier_download_paused\">अवारोपणं विरमितम्</string>\n    <string name=\"channel_errors\">दोषाः</string>\n    <string name=\"label_downloaded_only\">अवारोपितानि एव</string>\n    <string name=\"channel_progress\">प्रगतिः</string>\n    <string name=\"download_notifier_downloader_title\">अवारोपणसाधनम्</string>\n    <string name=\"channel_common\">सामान्यम्</string>\n    <string name=\"pref_incognito_mode\">प्रच्छन्ननामदशा</string>\n    <string name=\"pref_clear_cookies\">ज्ञापकानि मार्जयतु</string>\n    <string name=\"cookies_cleared\">ज्ञापकानि मार्जितानि</string>\n    <string name=\"used_cache\">उपयुक्तम् - %1$s</string>\n    <string name=\"clear_database_completed\">निवेशाः नाशिताः</string>\n    <string name=\"check_for_updates\">नवीकरणेभ्यः मार्गतु</string>\n    <string name=\"updated_version\">सं%1$s प्रति नवीकृतम्</string>\n    <string name=\"email\">ईपत्रसङ्केतः</string>\n    <string name=\"login_success\">अन्तर्गतम्</string>\n    <string name=\"logout\">बहिर्गच्छतु</string>\n    <string name=\"unknown_error\">अज्ञातदोषः</string>\n    <string name=\"updating_category\">वर्गं नवीकरोमि</string>\n    <string name=\"downloaded_chapters\">अवारोपिताः अध्यायाः</string>\n    <string name=\"local_source\">स्थानीयमूलम्</string>\n    <string name=\"last_used_source\">गतोपयुक्तम्</string>\n    <string name=\"local_filter_order_by\">क्रमेण</string>\n    <string name=\"unknown_author\">अज्ञातलेखकः</string>\n    <string name=\"unknown_status\">अज्ञातस्थितिः</string>\n    <string name=\"chapter_settings\">अध्यायसमायोजनानि</string>\n    <string name=\"notification_incognito_text\">प्रच्छन्ननामदशां अशक्तं करोतु</string>\n    <string name=\"manga_from_library\">ग्रन्थालयात् माङ्गा</string>\n    <string name=\"no_more_results\">न इतोऽपि फलितानि</string>\n    <string name=\"no_results_found\">फलितानि न लभ्यानि</string>\n    <string name=\"local_invalid_format\">अध्यायसंरूपम् अनाप्तम्</string>\n    <string name=\"add_tracking\">अनुप्रज्ञानं योजयतु</string>\n    <string name=\"snack_categories_deleted\">वर्गाः नाशिताः</string>\n    <string name=\"picture_saved\">चित्रं रक्षितम्</string>\n    <string name=\"custom_filter\">स्वकृतशोधकम्</string>\n    <string name=\"cover_updated\">मुखचित्रं नवीकृतम्</string>\n    <string name=\"chapter_progress\">पुटः - %1$d</string>\n    <string name=\"viewer\">पठनदशा</string>\n    <string name=\"clear_history_completed\">चरित्रं नाशितम्</string>\n    <string name=\"notification_chapters_single\">अध्यायः %1$s</string>\n    <string name=\"notification_chapters_multiple\">अध्यायाः %1$s</string>\n    <string name=\"update_check_notification_download_error\">अवारोपणदोषः</string>\n    <string name=\"channel_complete\">पूर्णम्</string>\n    <string name=\"channel_new_chapters\">अध्यायनवीकरणानि</string>\n    <string name=\"channel_app_updates\">अनुप्रयोगनवीकरणानि</string>\n    <string name=\"channel_ext_updates\">विस्तारनवीकरणानि</string>\n    <string name=\"pref_dns_over_https\">HTTPS उपरि DNS (DoH)</string>\n    <string name=\"getting_started_guide\">प्रारम्भिकमार्गदर्शनम्</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">साधनसमायोजनानि उद्घाटयितुं न अशक्नोम्</string>\n    <string name=\"pref_verbose_logging\">अतिविस्तीर्णेतिवृत्तलेखनम्</string>\n    <string name=\"plan_to_read\">पठितुं इच्छामि</string>\n    <string name=\"page_list_empty_error\">पुटाः न लभ्याः</string>\n    <string name=\"loader_not_implemented_error\">मूलं न लभ्यम्</string>\n    <string name=\"update_check_notification_update_available\">नूतनसंस्करणम् उपलभ्यम्</string>\n    <string name=\"action_show_manga\">माङ्गां दर्शयतु</string>\n    <string name=\"notification_new_chapters\">नूतनाध्यायाः लभ्याः</string>\n    <string name=\"action_display_cover_only_grid\">केवलं मुखचित्रेण इष्टिकाविन्यासः</string>\n    <string name=\"pref_clear_chapter_cache\">अध्यायस्य काष्वस्तु मार्जयतु</string>\n    <string name=\"privacy_policy\">गुप्ततानीतिः</string>\n    <string name=\"licenses\">अपावृतप्रभावकानि अनुज्ञापत्राणि</string>\n    <string name=\"pref_enable_acra\">ध्वंसावेदनानि प्रेषयतु</string>\n    <string name=\"delete_downloads_for_manga\">अवारोपिताध्यायान् नाशयानि किम्</string>\n    <string name=\"set_chapter_settings_as_default\">प्राथमिकमिव स्थापयतु</string>\n    <string name=\"no_chapters_error\">काः अपि अध्यायाः न लभ्याः</string>\n    <string name=\"set_as_cover\">मुखचित्रम् इव स्थापयतु</string>\n    <string name=\"pref_category_for_this_series\">अस्यै धारावाहिकायै</string>\n    <string name=\"file_select_cover\">मुखचित्रम् चिनोतु</string>\n    <string name=\"file_select_backup\">प्रतिलेखनसञ्चिकां चिनोतु</string>\n    <string name=\"pref_navigate_pan\">पुटान्तरे प्लवतु</string>\n    <string name=\"pref_landscape_zoom\">अनुप्रस्थचित्रं सर्पकं करोतु</string>\n    <string name=\"pref_refresh_library_covers\">ग्रन्थालयमाङ्गामुखचित्राणि नवीकरोतु</string>\n    <string name=\"pref_dump_crash_logs\">ध्वंसेतिवृत्तानि पातयतु</string>\n    <string name=\"sort_by_upload_date\">उपारोपिततिथ्या</string>\n    <string name=\"error_saving_cover\">मुखचित्ररक्षणे दोषः</string>\n    <string name=\"error_sharing_cover\">मुखचित्रप्रसारणे दोषः</string>\n    <string name=\"sort_by_number\">अध्यायसङ्ख्यया</string>\n    <string name=\"pref_incognito_mode_summary\">पठनचरित्रं विरमिष्यति</string>\n    <string name=\"error_no_match\">समः न लभ्यः</string>\n    <string name=\"migration_help_guide\">मूलस्य सङ्क्रमणमार्गदर्शनम्</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" कृते सार्वत्रिकेण अवेक्षताम्</string>\n    <string name=\"login_title\">%1$s प्रति अन्तर्गच्छतु</string>\n    <string name=\"logout_title\">%1$s इतः बहिर्गच्छानि किम्</string>\n    <string name=\"source_not_installed\">मूलं न प्रतिष्ठापितम् - %1$s</string>\n    <string name=\"snack_add_to_library\">माङ्गां ग्रन्थालये योजयानि किम्</string>\n    <string name=\"notification_cover_update_failed\">मुखचित्रनवीकरणम् अनुत्तीर्णम्</string>\n    <string name=\"no_next_chapter\">अग्रिमाध्यायः न लभ्यः</string>\n    <string name=\"recent_manga_time\">अध्यायः %1$s – %2$s</string>\n    <string name=\"transition_no_next\">अग्रिमाध्यायः नास्ति</string>\n    <string name=\"transition_no_previous\">पूर्वाध्यायः नास्ति</string>\n    <string name=\"share_page_info\">%1$s: %2$s पुटः च %3$d</string>\n    <string name=\"pref_update_only_started\">पठिताः अध्यायाः न सन्ति</string>\n    <string name=\"update_check_no_new_updates\">नूतननवीकरणानि न उपलभ्यानि</string>\n    <string name=\"chapter_settings_updated\">अध्यायस्य प्राथमिकसमायोजनानि नवीकृतानि</string>\n    <string name=\"source_unsupported\">मूलं न भरितम्</string>\n    <string name=\"migration_dialog_what_to_include\">संयोजयितुं दत्तांशान् चिनोतु</string>\n    <string name=\"requires_app_restart\">प्रभावयितुम् अनुप्रयोगस्य पुनःप्रारम्भः आवश्यकः</string>\n    <string name=\"decode_image_error\">चित्रस्य आरोहणं न अशक्नोत्</string>\n    <string name=\"battery_optimization_disabled\">विद्युत्कोषवृद्धिकरणं पूर्वमेव अशक्तं कृतम्</string>\n    <string name=\"clipboard_copy_error\">अंशफलकान्ते प्रतिलेखनम् अनुत्तीर्णम्</string>\n    <string name=\"transition_pages_error\">पुटानाम् आरोहणम् अनुत्तीर्णम् - %1$s</string>\n    <string name=\"download_notifier_text_only_wifi\">वै-फ़ै सम्पर्कः न उपलभ्यः</string>\n    <string name=\"download_notifier_no_network\">जालसम्पर्कः न उपलभ्यः</string>\n    <string name=\"copied_to_clipboard\">प्रतिलेखः अंशफलकान्ते कृतः -\n\\n%1$s</string>\n    <string name=\"notification_chapters_single_and_more\">अध्यायः %1$s च इतोऽपि %2$d च</string>\n    <string name=\"file_picker_error\">सञ्चिकाग्राही अनुप्रयोगः न लभ्यः</string>\n    <string name=\"skipped_reason_completed\">धारावाहिकः पूर्णः अतः लङ्घितः</string>\n    <string name=\"clear_database_source_item_count\">दत्तनिधौ %1$d ग्रन्थालयपराः माङ्गाः सन्ति</string>\n    <string name=\"logout_success\">इदानीं त्वं बहिर्गतम्</string>\n    <string name=\"no_pinned_sources\">अग्रिमस्थकृतमूलानि तव न सन्ति</string>\n    <string name=\"myanimelist_relogin\">कृपया MAL-अन्ते पुनः अन्तर्गच्छतु</string>\n    <string name=\"information_webview_required\">टाचीयोमेः कृते वेब्-व्यू-तन्त्रांशः अपेक्षितः</string>\n    <string name=\"information_cloudflare_bypass_failure\">क्लौड्-फ़्लेर्व्यवस्थायाः अतिक्रमणम् अनुत्तीर्णम्</string>\n    <string name=\"download_insufficient_space\">साधनसङ्ग्रहे आवश्यकरिक्तस्थानं न अस्ति इति कारणात् अध्यायानाम् अवारोपणं न शक्नुयात्</string>\n    <string name=\"pref_verbose_logging_summary\">संविधावृत्तलेखं प्रति अतिविस्तीर्णवृत्तलेखान् मुद्रयतु (अनुप्रयोगप्रवृत्तिम् अल्पयति)</string>\n    <string name=\"download_notifier_unknown_error\">यादृच्छिकदोषकारणात् अध्यायस्य अवारोपणम् न शक्नुयात्</string>\n    <string name=\"also_set_chapter_settings_for_library\">अपि मम ग्रन्थालये सर्वाभ्यः माङ्गाभ्यः आचरतु</string>\n    <string name=\"clear_history_confirmation\">त्वं निश्चितं किम् ? चरित्रं सर्वं लुप्तं भविष्यति।</string>\n    <string name=\"update_check_eol\">एतत् आण्ड्रायिड्-संस्करणम् अधुना न भरितम्</string>\n    <string name=\"information_webview_outdated\">इतोऽपि उत्तमतरसङ्गतिं प्रप्तुं कृपया वेब्-व्यू-अनुप्रयोगं नवीकरोतु</string>\n    <string name=\"downloaded_only_summary\">तव ग्रन्थालये सर्वाः माङ्गाः शोधनीकरोति</string>\n    <string name=\"pref_clear_database_summary\">तव ग्रन्थालये न रक्षितानां माङ्गानां चरित्रं नाशय</string>\n    <string name=\"confirm_delete_chapters\">त्वं निश्चितरूपेण सङ्गृहीतान् अध्यायान् नाशयितुम् इच्छसि किम् ?</string>\n    <string name=\"download_queue_size_warning\">पूर्वसूचना -- महद्भाराणि अवारोपणानि कुर्यात् मूलानि मन्दानि। अपि च %s निवारयेत्॥</string>\n    <string name=\"pref_dump_crash_logs_summary\">व्युत्पादकेभ्यः प्रसारयितुं दोषदत्तम् एकस्यां सञ्चिकायां रक्षति</string>\n    <string name=\"confirm_set_chapter_settings\">इमानि समायोजनानि प्राथमिकानि इव रक्षितुं त्वं निश्चितं किम्</string>\n    <string name=\"pref_acra_summary\">स्खलितानां परिहरणे साहाय्यं करिष्यति। संवेदनशीलदत्तांशाः न प्रेषिष्यते॥</string>\n    <string name=\"pref_disable_battery_optimization_summary\">पृष्ठभूमौ ग्रन्थालयस्य नवीकरणेषु प्रतिलेखनेषु च साहाय्यं करोति</string>\n    <string name=\"dialog_with_checkbox_remove_description\">अस्य अध्यायस्य पठिततिथिम् एतत् निष्करोति। त्वं निश्चितं किम्</string>\n    <string name=\"cache_delete_error\">काष्वस्तु मार्जयति सति एकः दोषः भूतः</string>\n    <string name=\"pref_auto_clear_chapter_cache\">अनुप्रयोगपिधाने अध्यायस्य काष्वस्तु मार्जयतु</string>\n    <string name=\"cache_deleted\">काष्वस्तु मार्जितम्। %1$d-सञ्चिकाः नाशिताः भूताः</string>\n    <string name=\"error_category_exists\">अनेन नाम्ना पूर्वमेव एकः वर्गः अस्ति</string>\n    <string name=\"confirm_set_image_as_cover\">इदं चित्रं मुखचित्रम् इव उपयोजनीयं किम्</string>\n    <string name=\"notification_first_add_to_library\">एतत् करणात् पूर्वं कृपया तव ग्रन्थालयाय माङ्गाः योजयतु</string>\n    <string name=\"library_errors_help\">ग्रन्थालयनवीकरणदोषान् परिहर्तुं साहाय्यार्थं %1$s पश्य</string>\n    <string name=\"information_empty_category_dialog\">तव वर्गाः एव न सन्ति।</string>\n    <string name=\"dialog_with_checkbox_reset\">अस्यै माङ्गायै सर्वान् अध्यायान् पुनःस्थापयति</string>\n    <string name=\"skipped_reason_not_caught_up\">अपठिताध्यायाः सन्ति अतः लङ्घितम्</string>\n    <string name=\"skipped_reason_not_started\">काः अपि अध्यायाः न पठिताः अतः लङ्घितम्</string>\n    <string name=\"download_queue_error\">अध्यायानाम् अवारोपणं न अशक्नोत्। त्वया अवारोपितानि नाम्नः विभागे पुनः यतितुं शक्यते</string>\n    <string name=\"migration_selection_prompt\">यस्मात् स्थानान्तरगमनं करणीयं तत् चिनोतु</string>\n    <string name=\"notification_size_warning\">पूर्वसूचना -- मूलेभ्यः महद्नवीकरणानि हानिकारकाणि भवन्ति तस्मात् नवीकरणानि मन्दानि भवेयुः अपि च विद्युत्कोषोपयोगः अधिकं भवेत्</string>\n    <string name=\"notification_update_error\">%1$d नवीकरणानि अनुत्तीर्णानि</string>\n    <string name=\"learn_more\">अधिकं जानातु</string>\n    <string name=\"action_move_to_top_all_for_series\">धारावाहिकम् अग्रस्थानं चालयतु</string>\n    <string name=\"rotation_reverse_portrait\">विपरीतं लम्बदर्शनम्</string>\n    <string name=\"label_local\">स्थानीयम्</string>\n    <string name=\"label_stats\">साङ्ख्यिकी</string>\n    <string name=\"label_started\">आरब्धम्</string>\n    <string name=\"action_set_interval\">अवधिं स्थापयतु</string>\n    <string name=\"delete_downloaded\">अवारोपितं नाशयतु</string>\n    <string name=\"label_downloaded\">अवारोपितम्</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sah/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d бөлөхтөр</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">%1$s мүнүүтэ кэннэ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">Туолла %1$sҕа %2$s сыаһалаах</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">%1$s хаалла</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">%1$s түһүмэх</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d трэкэр</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">Манна %d түһүмэх суох</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sah/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"action_add\">Киллэр</string>\n    <string name=\"action_edit\">Уларыт</string>\n    <string name=\"action_disable_all\">Барытын араар</string>\n    <string name=\"action_enable_all\">Барытын холбоо</string>\n    <string name=\"action_update_library\">Бэбэлэтиэкэ саҥардыы</string>\n    <string name=\"action_delete\">Сотон кэбис</string>\n    <string name=\"action_remove_bookmark\">Түһүмэх кыбытыытын ылан кэбис</string>\n    <string name=\"action_bookmark\">Түһүмэх кыбытыыта</string>\n    <string name=\"action_download\">Хачайдаа</string>\n    <string name=\"action_mark_previous_as_read\">Ааспыты аахтым диэн бэлиэтээ</string>\n    <string name=\"action_mark_as_unread\">Аахпатым диэн бэлиэтээ</string>\n    <string name=\"action_mark_as_read\">Аахтым диэн бэлиэтээ</string>\n    <string name=\"action_select_inverse\">Төттөрөтүн тал</string>\n    <string name=\"action_select_all\">Барытын тал</string>\n    <string name=\"action_global_search\">Толору көрдөөһүн</string>\n    <string name=\"action_search\">Көрдөөһүн</string>\n    <string name=\"action_sort_date_added\">Киирбит кэмэ</string>\n    <string name=\"action_sort_latest_chapter\">Бүтэһик түһүмэх</string>\n    <string name=\"action_sort_last_read\">Бүтэһигинэн ааҕыллыбыт</string>\n    <string name=\"action_sort_total\">Түһүмэх ахсаанынан</string>\n    <string name=\"action_sort_alpha\">Алпаабыт бэрээдэгинэн</string>\n    <string name=\"action_filter_empty\">Биилтирэни ылыы</string>\n    <string name=\"action_filter_unread\">Ааҕыллыбатах</string>\n    <string name=\"action_filter_bookmarked\">Кыбытыы</string>\n    <string name=\"action_filter\">Биилтирэ</string>\n    <string name=\"action_menu\">Талба</string>\n    <string name=\"action_settings\">Түстэл</string>\n    <string name=\"history\">История</string>\n    <string name=\"track\">Кэтээһин</string>\n    <string name=\"chapters\">Түһүмэхтэр</string>\n    <string name=\"manga\">Маанга</string>\n    <string name=\"categories\">Бөлөхтөр</string>\n    <string name=\"information_empty_category\">Эйиэхэ бөлөхтөр суохтар. Эбэр бэлиэни батта, бэбэлэтиэкэҕэ саҥа бөлөҕү оҥорорго.</string>\n    <string name=\"information_empty_library\">Эн бэбэлэтиэкэн кураанах. Бэбэлэтиэкэҕэ айымньыыларыы көрдөөһүнтэн эп.</string>\n    <string name=\"information_no_recent_manga\">Бүтэһик кэмҥэ тугу да аахпатын</string>\n    <string name=\"information_no_recent\">Саҥардыылар суохтар</string>\n    <string name=\"information_no_downloads\">Хачаайдааһын суох</string>\n    <string name=\"label_help\">Көмө</string>\n    <string name=\"label_extension_info\">Кэҥэтии туһунан</string>\n    <string name=\"label_extensions\">Кэҥэтии</string>\n    <string name=\"label_migration\">Көһүү</string>\n    <string name=\"label_backup\">Хаппаас куопуйа</string>\n    <string name=\"label_sources\">Төрүттэр</string>\n    <string name=\"label_recent_manga\">Остуоруйа</string>\n    <string name=\"label_recent_updates\">Саҥардыылар</string>\n    <string name=\"label_library\">Бэбэлэтиэкэ</string>\n    <string name=\"label_download_queue\">Хачаайдааһын уочарата</string>\n    <string name=\"label_settings\">Түстэл</string>\n    <string name=\"label_more\">Эбии</string>\n    <string name=\"name\">Аат</string>\n    <string name=\"default_category_summary\">Наар ыйыт</string>\n    <string name=\"default_category\">Куолутунан бөлөх</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Саҥа тас уонна кыра чаастар баалларын, бэрэбиэркэлээ</string>\n    <string name=\"pref_library_update_refresh_metadata\">Метаданнайдары автоматическайдык саҥарт</string>\n    <string name=\"pref_update_only_non_completed\">Бүтэ илик маанганы эрэ, саҥарт</string>\n    <string name=\"charging\">Иитиллэр</string>\n    <string name=\"pref_library_update_restriction\">Саҥардыы хааччахтааһына</string>\n    <string name=\"update_weekly\">Нэдиэлэ аайы</string>\n    <string name=\"update_48hour\">Икки күн аайы</string>\n    <string name=\"update_24hour\">Күн аайы</string>\n    <string name=\"update_12hour\">Уон икки чаас аайы</string>\n    <string name=\"update_6hour\">Алта чаас аайы</string>\n    <string name=\"update_never\">Илиинэн</string>\n    <string name=\"pref_library_update_interval\">Саҥардыы түргэнэ</string>\n    <string name=\"pref_category_library_update\">Улахан саҥардыы</string>\n    <string name=\"landscape\">Сытыары</string>\n    <string name=\"portrait\">Туруору</string>\n    <string name=\"pref_library_columns\">Маллары кэккэ туруор</string>\n    <string name=\"pref_category_display\">Көрдөр</string>\n    <string name=\"hide_notification_content\">Биллэрии иһин кистээ</string>\n    <string name=\"secure_screen_summary\">Атын эбиликкэ көһөргөр, скриншоту сабаргар, эбилик иһин кистээ</string>\n    <string name=\"secure_screen\">Көмүскэл экрана</string>\n    <string name=\"lock_never\">Хаһан да</string>\n    <string name=\"lock_always\">Наар</string>\n    <string name=\"lock_when_idle\">Күүтү эрэһиимигэр сап</string>\n    <string name=\"lock_with_biometrics\">Арыйыыны ирдээ</string>\n    <string name=\"pref_category_security\">Көмүскэл</string>\n    <string name=\"pref_manage_notifications\">Биллэриилэри салай</string>\n    <string name=\"pref_date_format\">Даататын формаата</string>\n    <string name=\"theme_dark\">Холбоммут</string>\n    <string name=\"theme_light\">Араарыллыбыт</string>\n    <string name=\"theme_system\">Системнайы тутуһуҥ</string>\n    <string name=\"pref_category_theme\">Тиэмэ</string>\n    <string name=\"pref_category_about\">Эбии туһунан</string>\n    <string name=\"pref_category_advanced\">Эбии</string>\n    <string name=\"pref_category_tracking\">Кэтээһин</string>\n    <string name=\"pref_category_downloads\">Хачайдаммыттар</string>\n    <string name=\"pref_category_reader\">Ааҕааччы</string>\n    <string name=\"pref_category_library\">Бэбэлэтиэкэ</string>\n    <string name=\"pref_category_general\">Сүрүн</string>\n    <string name=\"app_not_available\">Эбилик кыаллыбат</string>\n    <string name=\"loading\">Холбонуу…</string>\n    <string name=\"action_webview_refresh\">Чэбдигирт</string>\n    <string name=\"action_webview_forward\">Инники</string>\n    <string name=\"action_webview_back\">Төптөрү</string>\n    <string name=\"action_restore\">Чөлүгэр түһэр</string>\n    <string name=\"action_open_log\">Программа сурунаалын арый</string>\n    <string name=\"action_undo\">Уларыт</string>\n    <string name=\"action_reset\">Ыраастаа</string>\n    <string name=\"action_save\">Хааллар</string>\n    <string name=\"action_share\">Тарҕат</string>\n    <string name=\"action_install\">Туруор</string>\n    <string name=\"action_move_to_bottom\">Бүтүүгэ көһөр</string>\n    <string name=\"action_move_to_top\">Саҕаланыыга көһөр</string>\n    <string name=\"action_oldest\">Олох урукку</string>\n    <string name=\"action_newest\">Сабыс-саҥа</string>\n    <string name=\"action_sort\">Сааһылаа</string>\n    <string name=\"action_cancel_all\">Барытын уларыт</string>\n    <string name=\"action_cancel\">Уларытыы</string>\n    <string name=\"action_unpin\">Уһул</string>\n    <string name=\"action_pin\">Иҥиннэр</string>\n    <string name=\"action_disable\">Араар</string>\n    <string name=\"action_display_show_tabs\">Бөлөхтөр кыбытыктарын көрдөр</string>\n    <string name=\"action_display_download_badge\">Бэлиэлэри хачайдаа</string>\n    <string name=\"action_display_comfortable_grid\">Табыгастаах илим</string>\n    <string name=\"action_display_list\">Испииһэк</string>\n    <string name=\"action_display_grid\">Биир кэлим илим</string>\n    <string name=\"action_display\">Көрдөр</string>\n    <string name=\"action_display_mode\">Көрүнүн уларыт</string>\n    <string name=\"action_migrate\">Көһүү</string>\n    <string name=\"action_open_in_web_view\">WebViewга арый</string>\n    <string name=\"action_open_in_browser\">Көрдөөһүнҥэ арый</string>\n    <string name=\"action_resume\">Салҕаа</string>\n    <string name=\"action_start\">Саҕалаа</string>\n    <string name=\"action_remove\">Суох гын</string>\n    <string name=\"action_retry\">Хатылаа</string>\n    <string name=\"action_next_chapter\">Аныгыскы түһүмэх</string>\n    <string name=\"action_previous_chapter\">Ааспыттанны түһүмэх</string>\n    <string name=\"action_pause\">Тохтобул</string>\n    <string name=\"action_view_chapters\">Түһүмэхтэри көр</string>\n    <string name=\"action_edit_cover\">Таһын уларытыы</string>\n    <string name=\"action_move_category\">Бөлө(ххө/хтөргө) киллэр</string>\n    <string name=\"action_rename_category\">Бөлөх аатын уларыт</string>\n    <string name=\"action_edit_categories\">Бөлөхтөрү уларыт</string>\n    <string name=\"action_add_category\">Бөлөҕү киллэр</string>\n    <string name=\"pref_webtoon_side_padding\">Ойоҕостон тэйии</string>\n    <string name=\"pref_category_reading\">Ааҕы</string>\n    <string name=\"pref_category_reading_mode\">Ааҕы эрэһиимэ</string>\n    <string name=\"pref_always_show_chapter_transition\">Көһөр түһүмэҕи куруук көрдөр</string>\n    <string name=\"color_filter_a_value\">А</string>\n    <string name=\"color_filter_b_value\">Халлаан күөх</string>\n    <string name=\"color_filter_g_value\">От күөх</string>\n    <string name=\"color_filter_r_value\">Кыһыл</string>\n    <string name=\"rotation_force_landscape\">Сытыары</string>\n    <string name=\"rotation_force_portrait\">Туруору</string>\n    <string name=\"rotation_free\">Босхо</string>\n    <string name=\"pref_rotation_type\">Эргичийии</string>\n    <string name=\"double_tap_anim_speed_fast\">Түргэнник</string>\n    <string name=\"double_tap_anim_speed_normal\">Көннөрү</string>\n    <string name=\"double_tap_anim_speed_0\">Хамсааһына суох</string>\n    <string name=\"zoom_start_center\">Киин</string>\n    <string name=\"zoom_start_right\">Уҥа</string>\n    <string name=\"zoom_start_left\">Хаҥас</string>\n    <string name=\"zoom_start_automatic\">Автоматическай</string>\n    <string name=\"pref_zoom_start\">Улаатыннары маҥнайгы туруга</string>\n    <string name=\"scale_type_smart_fit\">Өйдөөх</string>\n    <string name=\"scale_type_original_size\">Маҥнайгы кээмэй</string>\n    <string name=\"scale_type_fit_height\">Үрдүгүнэн</string>\n    <string name=\"scale_type_fit_width\">Туоратынан</string>\n    <string name=\"scale_type_stretch\">Ууннар</string>\n    <string name=\"scale_type_fit_screen\">Экранынан</string>\n    <string name=\"pref_image_scale_type\">Тарҕаныыта</string>\n    <string name=\"pager_viewer\">Сирэйдэринэн</string>\n    <string name=\"vertical_plus_viewer\">Тохтообоххо туруору</string>\n    <string name=\"webtoon_viewer\">Webtoon</string>\n    <string name=\"vertical_viewer\">Туруору</string>\n    <string name=\"right_to_left_viewer\">Хаҥас диэки</string>\n    <string name=\"left_to_right_viewer\">Уҥа диэки</string>\n    <string name=\"pref_viewer_type\">Куолутунан ааҕар эрэһиим</string>\n    <string name=\"black_background\">Хара</string>\n    <string name=\"gray_background\">Бороҥ</string>\n    <string name=\"white_background\">Маҥан</string>\n    <string name=\"pref_reader_theme\">Кэнники өҥ</string>\n    <string name=\"pref_read_with_long_tap\">Уһун баттааһыҥҥа - кэпсэтии</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Тыас талкыйдарын миэстэлэрин уларыт</string>\n    <string name=\"pref_read_with_volume_keys\">Тыас талкыйдара</string>\n    <string name=\"pref_reader_navigation\">Хамсыы</string>\n    <string name=\"pref_skip_filtered_chapters\">Биилтирэммит түһүмэхтэри көтүт</string>\n    <string name=\"pref_skip_read_chapters\">Ааҕыллыбыт түһүмэхтэри көтүт</string>\n    <string name=\"pref_keep_screen_on\">Экран холбонон турдун</string>\n    <string name=\"filter_mode_darken\">Хараҥатыы</string>\n    <string name=\"filter_mode_lighten\">Сырдатыы</string>\n    <string name=\"filter_mode_screen\">Экран</string>\n    <string name=\"filter_mode_multiply\">Төгүллээһин</string>\n    <string name=\"filter_mode_overlay\">Сабыы</string>\n    <string name=\"pref_show_reading_mode_summary\">Ааҕаччы холбонон турдаҕына, билиҥҥи эрэһиими кылгастык көрдөр</string>\n    <string name=\"pref_show_reading_mode\">Ааҕыы эрэһиимин көрдөр</string>\n    <string name=\"pref_color_filter_mode\">Өҥ биилтирэни олордор эрэһиим</string>\n    <string name=\"pref_custom_color_filter\">Туттааччы өҥ биилтирэ</string>\n    <string name=\"pref_custom_brightness\">Туттааччы сырдыга</string>\n    <string name=\"pref_crop_borders\">Быһыллы кыраныыссата</string>\n    <string name=\"pref_show_page_number\">Сирэй нүөмэрин көрдөр</string>\n    <string name=\"pref_double_tap_anim_speed\">Иккитэ баттыырга хамсааһын түргэнэ</string>\n    <string name=\"pref_page_transitions\">Хамсааһыннах, сирэй арыйыыта</string>\n    <string name=\"pref_cutout_short\">Быһыллыбыт хонууга баары көрдөр</string>\n    <string name=\"pref_fullscreen\">Толору экран</string>\n    <string name=\"obsolete_extension_message\">Бу кэҥэтии кыаллыбат буолла.</string>\n    <string name=\"untrusted_extension_message\">Бу кэҥэтии эрэлэ суох туоһу суругунан бэлиэтэммит уонна холбоммотох.\n\\n\n\\nКуһаҕан кэҥэтии ханнык баҕар, киирэргэ наадалах даннайдары, устуон сөп уонна бэйэтэ киириэн сөп.\n\\n\n\\nБу туоһу сурукка эрэнэр буоллаххына, бэйэҕин кутталга угаҕын.</string>\n    <string name=\"untrusted_extension\">Эрэлэ суох кэҥэтии</string>\n    <string name=\"ext_uninstall\">Сотон кэбис</string>\n    <string name=\"ext_untrusted\">Эрэлэ суох</string>\n    <string name=\"ext_trust\">Эрэллээх</string>\n    <string name=\"ext_installed\">Турда</string>\n    <string name=\"ext_installing\">ТуруорааҺын</string>\n    <string name=\"ext_downloading\">Хачайдааһын</string>\n    <string name=\"ext_pending\">Кэтэһэбит</string>\n    <string name=\"ext_install\">Туруор</string>\n    <string name=\"ext_obsolete\">Эргэрбит</string>\n    <string name=\"ext_update\">Саҥардыы</string>\n    <string name=\"ext_updates_pending\">Саҥардыылары кэтэһэбит</string>\n    <string name=\"all\">Барыта</string>\n    <string name=\"pref_clear_cookies\">Кукины ырааста</string>\n    <string name=\"label_network\">Ситим</string>\n    <string name=\"restoring_backup_canceled\">Төнүҥнэри тохтоото</string>\n    <string name=\"restoring_backup_error\">Хаппаас куопуйа төнүҥнэриитэ туолбата</string>\n    <string name=\"restoring_backup\">Хаппаас куопуйаны төнүҥнэри туола турар</string>\n    <string name=\"restore_in_progress\">Төнүҥнэрии туола турар</string>\n    <string name=\"creating_backup_error\">Хаппаас куопуйа оҥоһуллубата</string>\n    <string name=\"creating_backup\">Хаппаас куопуйа оҥоһуута</string>\n    <string name=\"backup_choice\">Тугу куопуйалаары гынннын?</string>\n    <string name=\"backup_in_progress\">Хаппаас куопуйа оҥоруута туола турар</string>\n    <string name=\"restore_duration\">%1$02d мүнүүтэ %2$02d сөкүүндэ</string>\n    <string name=\"restore_completed\">Төнүҥнэри бүттэ</string>\n    <string name=\"backup_restore_missing_trackers\">Трэкэрдар киирбэтилэр:</string>\n    <string name=\"backup_restore_missing_sources\">Суох төрүттэр:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Хаппаас куопуйа маангата суох.</string>\n    <string name=\"invalid_backup_file\">Хаппаас куопуйа алдьаммыт билэтэ</string>\n    <string name=\"backup_created\">Хаппаас куопуйа оҥоһуллунна</string>\n    <string name=\"pref_backup_interval\">Хаппаас куопуйа оҥоһуутун түргэнэ</string>\n    <string name=\"pref_restore_backup_summ\">Бэбэлэтиэкэни хаппаас куопуйа билэтиттэн төнүҥнэрии</string>\n    <string name=\"pref_restore_backup\">Хаппаас куопуйаны куолутунан туруоруу</string>\n    <string name=\"pref_create_backup_summ\">Билиҥни бибилиотеканы төнүннэрэргэ туттуохха сөп</string>\n    <string name=\"pref_create_backup\">Хаппаас куопуйаны оҥоруу</string>\n    <string name=\"tracking_info\">Биир өттүттэн мэнэйдэһии, кэтээһин өҥөлөргө баар түһүмэхтэр туруктарын саҥардыыга. Маанга туспа суругун уонна талкыйын кэтээһинин түстэлгэ уларыт.</string>\n    <string name=\"services\">Өҥөлөр</string>\n    <string name=\"pref_auto_update_manga_sync\">Түһүмэх туругун ааҕы кэннэ саҥарт</string>\n    <string name=\"pref_download_new\">Саҥа түһүмэхтэри хачайдаа</string>\n    <string name=\"fifth_to_last\">Бүтэһик түһүмэхтэн бэһис</string>\n    <string name=\"fourth_to_last\">Бүтэһик түһүмэхтэн төрдүс</string>\n    <string name=\"third_to_last\">Бүтэһик түһүмэхтэн үһүс</string>\n    <string name=\"second_to_last\">Бүтэһик түһүмэх иннинээҕи</string>\n    <string name=\"last_read_chapter\">Бүтэһигинэн ааҕыллыбыт түһүмэх</string>\n    <string name=\"disabled\">Араарыллыбыт</string>\n    <string name=\"pref_remove_after_read\">Ааҕы кэннэ</string>\n    <string name=\"pref_remove_after_marked_as_read\">Ааҕыллыбыт диэн суруллубутун кэннэ</string>\n    <string name=\"requires_app_restart\">Уларыйыы киирэрин гына эбилиги хос холбоо</string>\n    <string name=\"cache_delete_error\">Кээс сотторуутугар сыыһааһын буолла</string>\n    <string name=\"cache_deleted\">Кээс ыраастанна. %1$d билэ сотторуллубут этэ</string>\n    <string name=\"used_cache\">Туттуллубут: %1$s</string>\n    <string name=\"pref_clear_chapter_cache\">Түһүмэх кээһин ыраастааһын</string>\n    <string name=\"label_data\">Билим</string>\n    <string name=\"cookies_cleared\">Куки ыраастанна</string>\n    <string name=\"pref_clear_database_summary\">Эн бэбэлэтиэкэҕэр суох маанга остуоруйатын сотторуу</string>\n    <string name=\"pref_clear_database\">Билим олоҕо ыраастааһына</string>\n    <string name=\"pref_disable_battery_optimization\">Батарея тупсарыытын араарыы</string>\n    <string name=\"pref_refresh_library_covers\">Бэбэлэтиэкэҕэ баар маанга таһын чэбдигирии</string>\n    <string name=\"clear_database_completed\">Дааннайдар сотуллубуттар</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Бэбэлэтиэкэ уонна хаппаас куопуйатыгар кэннинээҕи саҥардыытыгар көмөлөһөр</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Устройства түстэлэ сатаан арыллыбата</string>\n    <string name=\"battery_optimization_disabled\">Батарея тупсуруута араарыллынна</string>\n    <string name=\"file_select_backup\">Хаппаас куопуйа билэтин талыы</string>\n    <string name=\"whats_new\">Туох саҥа баарый</string>\n    <string name=\"version\">Биэрсия</string>\n    <string name=\"website\">Үөп сир</string>\n    <string name=\"licenses\">Аһаҕас төрүттээх лицензиялар</string>\n    <string name=\"updated_version\">v%1$s дылы саҥарданна</string>\n    <string name=\"check_for_updates\">Саҥардыы баар буолуутун бэрэбиэркэлээһин</string>\n    <string name=\"action_global_search_hint\">Толору көрдөөһүн…</string>\n    <string name=\"pinned_sources\">Иҥиннэриллибит</string>\n    <string name=\"last_used_source\">Бүтэһигинэн туттуллубут</string>\n    <string name=\"other_source\">Атыттар</string>\n    <string name=\"local_source\">Локальнай төрүт</string>\n    <string name=\"no_results_found\">Түмүк суох</string>\n    <string name=\"no_more_results\">Эбии түмүк суох</string>\n    <string name=\"tabs_header\">Кыбытыктар</string>\n    <string name=\"updating_category\">Бөлөх саҥардыыта</string>\n    <string name=\"unknown_error\">Биллибэт сыыһыы</string>\n    <string name=\"logout_success\">Эн таҕыстын</string>\n    <string name=\"logout\">Тахсыы</string>\n    <string name=\"logout_title\">%1$s\\'тан тахсаҕын?</string>\n    <string name=\"login_success\">Киирдин</string>\n    <string name=\"login\">Киири</string>\n    <string name=\"password\">Аһарык</string>\n    <string name=\"email\">Эл.пуoчта аадырыһа</string>\n    <string name=\"username\">Туттааччы аата</string>\n    <string name=\"login_title\">%1$s\\'га киири</string>\n    <string name=\"downloaded_only_summary\">Бэбэлэтиэкэҕэ баар маанганы барытын биилтирдээһин</string>\n    <string name=\"label_downloaded_only\">Хачайдаммыт эрэ</string>\n    <string name=\"pref_acra_summary\">Ханнык баҕар сыаһалары көннөрөргө көмөлөһөр. Бэйэ дааннайдар ылыллыбаттар</string>\n    <string name=\"pref_enable_acra\">Охтуу туһунан отчуоту ыытыы</string>\n    <string name=\"delete_downloads_for_manga\">Хачайдаммыт түһүмэхтэри сотторобут?</string>\n    <string name=\"manga_info_collapse\">Кырата</string>\n    <string name=\"manga_info_expand\">Эбии</string>\n    <string name=\"manga_removed_library\">Бэбэлэтиэкэттэн ылылынна</string>\n    <string name=\"manga_added_library\">Бэбэлэтиэкэҕэ киирдэ</string>\n    <string name=\"remove_from_library\">Бэбэлэтиэкэттэн ыл</string>\n    <string name=\"in_library\">Бэбэлэтиэкэҕэ</string>\n    <string name=\"add_to_library\">Бэбэлэтиэкэҕэ киллэрии</string>\n    <string name=\"licensed\">Лицензиялаах</string>\n    <string name=\"unknown_status\">Биллибэт турук</string>\n    <string name=\"unknown\">Биллибэт</string>\n    <string name=\"ongoing\">Салҕанар</string>\n    <string name=\"unknown_author\">Биллибэт суруйааччы</string>\n    <string name=\"no_pinned_sources\">Эһиэхэ иҥиннэллибит төрүттэр суохтар</string>\n    <string name=\"local_source_help_guide\">Төрүт локальнай салалтата</string>\n    <string name=\"browse\">Көрдөөһүн</string>\n    <string name=\"latest\">Тиһэх</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" толору көрдөө</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Кыбытыылах түһүмэхтэри соттор</string>\n    <string name=\"pref_category_delete_chapters\">Түһүмэхтэри соттор</string>\n    <string name=\"manga_tracking_tab\">Кэтээһин</string>\n    <string name=\"confirm_delete_chapters\">Талыллыбыт түһүмэхтэри сотторорго эрэллээххин дуу?</string>\n    <string name=\"download_unread\">Ааҕыллыбата</string>\n    <string name=\"manga_download\">Хачайдаа</string>\n    <string name=\"sort_by_upload_date\">Хачайдааһын кэминэн</string>\n    <string name=\"sort_by_number\">Түһүмэх нүөмэринэн</string>\n    <string name=\"sort_by_source\">Төрүттэринэн</string>\n    <string name=\"show_chapter_number\">Түһүмэх нүөмэрэ</string>\n    <string name=\"show_title\">Төрүт аата</string>\n    <string name=\"chapter_paused\">Тохтотулунна</string>\n    <string name=\"chapter_error\">Сыыһааһын</string>\n    <string name=\"chapter_downloading_progress\">Хачайдааһын (%1$d/%2$d)</string>\n    <string name=\"display_mode_chapter\">Түһүмэх %1$s</string>\n    <string name=\"snack_add_to_library\">Маанганы Бэбэлэтиэкэҕэ киллэрэбит дуу?</string>\n    <string name=\"source_not_installed\">Төрүт туруоруллубатах: %1$s</string>\n    <string name=\"copied_to_clipboard\">Хоспоххо куопуйаланна:\n\\n %1$s</string>\n    <string name=\"ext_nsfw_warning\">18+ контент баар буолуон сөп</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Ити официальнайа суох эбэтэр сыыһа бэлиэтэммит 18+ контенны эбиликкж киирэрин тохтоппот.</string>\n    <string name=\"custom_filter\">Туттааччы биилтирэ</string>\n    <string name=\"picture_saved\">Хартыыҥка оннунан хаалла</string>\n    <string name=\"dialog_with_checkbox_reset\">Бу маанга бары түһүмэхтэрин түһэрии</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Бу дьайыы түһүмэх ааҕыллыбыт кэмин сотторуо. Эрэллээххин дуо?</string>\n    <string name=\"snack_categories_deleted\">Бөлөхтөр соттороллубуттар</string>\n    <string name=\"error_category_exists\">Оннук ааттах бөлөх уруккуттан баар!</string>\n    <string name=\"track_type\">Көрүҥ</string>\n    <string name=\"track_status\">Турук</string>\n    <string name=\"status\">Турук</string>\n    <string name=\"title\">Айымньы аата</string>\n    <string name=\"score\">Сыанабыл</string>\n    <string name=\"repeating\">Саҥаттаан ааҕабын</string>\n    <string name=\"plan_to_read\">Ааҕаары гынабын</string>\n    <string name=\"paused\">Тохтотулунна</string>\n    <string name=\"on_hold\">Тохтообут</string>\n    <string name=\"dropped\">Быраҕыллыбыт</string>\n    <string name=\"completed\">Бүппүт</string>\n    <string name=\"reading\">Ааҕабын</string>\n    <string name=\"add_tracking\">эбии кэтээһини киллэрии</string>\n    <string name=\"pref_category_for_this_series\">Бу сиэриэҕэ</string>\n    <string name=\"confirm_set_image_as_cover\">Бу ойууну тас курдук туттаҕын дуо?</string>\n    <string name=\"decode_image_error\">Ойуу кыайан хачайдаммата</string>\n    <string name=\"no_next_chapter\">Аныгыскы түһүмэх булуллубата</string>\n    <string name=\"chapter_progress\">Сирэй: %1$d</string>\n    <string name=\"cover_updated\">Тас саҥардыллыбыт</string>\n    <string name=\"set_as_cover\">Тас курдук туруор</string>\n    <string name=\"recent_manga_time\">%1$s-%2$s Түһ.</string>\n    <string name=\"updating_library\">Бэбэлэтиэкэ саҥардыыта</string>\n    <string name=\"loader_not_implemented_error\">Төрүт булуллубата</string>\n    <string name=\"page_list_empty_error\">Сирэйдэр булуллубатылар</string>\n    <string name=\"transition_pages_error\">Сирэйдэр хачайдааһыннара сатаммата: %1$s</string>\n    <string name=\"transition_pages_loading\">Сирэйдэр хачайдана тураллар…</string>\n    <string name=\"transition_no_previous\">Иннинээҕи түһүмэх суох</string>\n    <string name=\"transition_no_next\">Аныгыскы түһүмэх суох</string>\n    <string name=\"transition_previous\">Иннинээҕи:</string>\n    <string name=\"transition_next\">Аныгыскы:</string>\n    <string name=\"transition_current\">Билиҥҥи:</string>\n    <string name=\"transition_finished\">Бүппүт:</string>\n    <string name=\"viewer\">Ааҕы эрэһиимэ</string>\n    <string name=\"share_page_info\">%1$s: %2$s, сирэй %3$d</string>\n    <string name=\"no_chapters_error\">Түһүмэхтэр суохтар</string>\n    <string name=\"set_chapter_settings_as_default\">Куолутунан</string>\n    <string name=\"also_set_chapter_settings_for_library\">Мин бэбэлэтиэкэбэр баар маангаларга туттуҥ</string>\n    <string name=\"confirm_set_chapter_settings\">Бу түстэл куолутунан хааларын баҕараҕын дуо?</string>\n    <string name=\"chapter_settings\">Түһүмэх түстэлэ</string>\n    <string name=\"downloaded_chapters\">Хачайдаммыт түһүмэхтэр</string>\n    <string name=\"manga_from_library\">Бэбэлэтиэкэттэн маанга</string>\n    <string name=\"pref_incognito_mode_summary\">Ааҕы остуоруйатын тохтотор</string>\n    <string name=\"pref_incognito_mode\">Кистэлэҥ эрэһиимэ</string>\n    <string name=\"pref_clear_history\">Остуоруйаны сотторуу</string>\n    <string name=\"clear_history_confirmation\">Эрэллээххин дуо? Остуоруйа барыта сотторуллуоҕа.</string>\n    <string name=\"clear_history_completed\">Остуоруйа сотторулунна</string>\n    <string name=\"action_search_settings\">Көрдөөһүн түстэлэ</string>\n    <string name=\"migration_dialog_what_to_include\">Киллэрэр дааннайдары талыы</string>\n    <string name=\"spen_next_page\">Аныгыскы сирэй</string>\n    <string name=\"spen_previous_page\">Иннинээҕи сирэй</string>\n    <string name=\"file_picker_error\">Билэни талар эбилик булуллубата</string>\n    <string name=\"migration_help_guide\">Төрүттэр көһөрүүтүн туһунан салалта</string>\n    <string name=\"myanimelist_relogin\">Бука диэн MALга эмиэ киир</string>\n    <string name=\"pref_viewer_nav\">Нэбигээссийэ бэлиэтэ</string>\n    <string name=\"edge_nav\">Кытыы</string>\n    <string name=\"kindlish_nav\">Kindle курдук</string>\n    <string name=\"l_nav\">L курдук</string>\n    <string name=\"pref_show_nsfw_source\">Төрүттэр испииһэктэригэр көрдөрүү</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) төрүттэр</string>\n    <string name=\"exclude\">Киллэримэ: %s</string>\n    <string name=\"include\">Киллэр: %s</string>\n    <string name=\"none\">Суох</string>\n    <string name=\"pref_library_update_categories_details\">Сотуллубут категориялар маангалара саҥардыллыа суоҕа, холбоммут категорияларга баарын үрдүнэн.</string>\n    <string name=\"action_show_errors\">Сыһааһыннары көрдөр</string>\n    <string name=\"action_desc\">Кыччыытынан</string>\n    <string name=\"action_asc\">Улаатыытынан</string>\n    <string name=\"action_order_by_chapter_number\">Түһүмэх нүөмэринэн</string>\n    <string name=\"action_order_by_upload_date\">Хаһан хачайдаммытынан</string>\n    <string name=\"action_display_show_number_of_items\">Мал төһө элбэҕин көрдөр</string>\n    <string name=\"action_sort_chapter_fetch_date\">Кэлэр күнэ</string>\n    <string name=\"action_filter_tracked\">Суолун көрө сылдьабыт</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sc/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">A pustis de %1$s minutu</item>\n        <item quantity=\"other\">A pustis de %1$s minutos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d capìtulu nou</item>\n        <item quantity=\"other\">%1$d capìtulos noos</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Capìtulos %1$s e 1 àteru</item>\n        <item quantity=\"other\">Capìtulos %1$s e àteros %2$d</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Pro %d elementu</item>\n        <item quantity=\"other\">Pro %d elementos</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">B\\'at un\\'agiornamentu disponìbile pro un\\'estensione</item>\n        <item quantity=\"other\">B\\'ant agiornamentos disponìbiles pro %d estensiones</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">Nd\\'abarrat %1$s</item>\n        <item quantity=\"other\">Nd\\'abarrant %1$s</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d categoria</item>\n        <item quantity=\"other\">%d categorias</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Fatu in %1$s cun %2$s errore</item>\n        <item quantity=\"other\">Fatu in %1$s cun %2$s errores</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s capìtulu</item>\n        <item quantity=\"other\">%1$s capìtulos</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d arrastadore</item>\n        <item quantity=\"other\">%d arrastadores</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Brinchende %d capìtulu, sa fonte non lu tenet o est istadu bogadu cun unu filtru</item>\n        <item quantity=\"other\">Brinchende %d capìtulos, sa fonte non los tenet o sunt istados bogados cun unu filtru</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Eris</item>\n        <item quantity=\"other\">%1$d dies a oe</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Su capìtulu non lèghidu imbeniente</item>\n        <item quantity=\"other\">Sos %d capìtulos non lèghidos imbenientes</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Su capìtulu imbeniente</item>\n        <item quantity=\"other\">Sos %d capìtulos imbenientes</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Mancat %1$s capìtulu</item>\n        <item quantity=\"other\">Mancant %1$s capìtulos</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 die</item>\n        <item quantity=\"other\">%d dies</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Cras</item>\n        <item quantity=\"other\">In %1$d dies</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d depòsitu</item>\n        <item quantity=\"other\">%d depòsitos</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 pàgina</item>\n        <item quantity=\"other\">%1$s pàginas</item>\n    </plurals>\n</resources>"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sc/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Nùmene</string>\n    <string name=\"categories\">Categorias</string>\n    <string name=\"manga\">Elementos de sa biblioteca</string>\n    <string name=\"chapters\">Capìtulos</string>\n    <string name=\"track\">Arrastamentu</string>\n    <string name=\"history\">Cronologia</string>\n    <string name=\"label_settings\">Impostatziones</string>\n    <string name=\"label_download_queue\">Fila de sos iscarrigamentos</string>\n    <string name=\"label_library\">Biblioteca</string>\n    <string name=\"label_recent_manga\">Cronologia</string>\n    <string name=\"label_recent_updates\">Agiornamentos</string>\n    <string name=\"label_backup\">Còpia de seguresa e riprìstinu</string>\n    <string name=\"label_migration\">Tràmuda</string>\n    <string name=\"label_extensions\">Estensiones</string>\n    <string name=\"label_extension_info\">Informatziones de s\\'estensione</string>\n    <string name=\"action_settings\">Impostatziones</string>\n    <string name=\"action_filter\">Filtru</string>\n    <string name=\"action_filter_bookmarked\">Sinnados</string>\n    <string name=\"action_filter_unread\">Non lèghidos</string>\n    <string name=\"action_filter_empty\">Boga su filtru</string>\n    <string name=\"action_sort_alpha\">Alfabeticamente</string>\n    <string name=\"action_sort_total\">Capìtulos totales</string>\n    <string name=\"action_sort_last_read\">Ùrtimos lèghidos</string>\n    <string name=\"action_search\">Chirca</string>\n    <string name=\"action_global_search\">Chirca globale</string>\n    <string name=\"action_select_all\">Ischerta totu</string>\n    <string name=\"action_mark_as_read\">Sinna comente lèghidu</string>\n    <string name=\"action_mark_as_unread\">Sinna comente non lèghidu</string>\n    <string name=\"action_mark_previous_as_read\">Sinna sos antepostos comente lèghidos</string>\n    <string name=\"action_download\">Iscàrriga</string>\n    <string name=\"action_bookmark\">Annanghe su capìtulu a sos sinnalibros</string>\n    <string name=\"action_remove_bookmark\">Boga su capìtulu dae sos sinnalibros</string>\n    <string name=\"action_delete\">Iscantzella</string>\n    <string name=\"action_update_library\">Agiorna sa biblioteca</string>\n    <string name=\"action_edit\">Modìfica</string>\n    <string name=\"action_add\">Annanghe</string>\n    <string name=\"action_add_category\">Annanghe una categoria</string>\n    <string name=\"action_edit_categories\">Modìfica sas categorias</string>\n    <string name=\"action_rename_category\">Cambia su nùmene de sa categoria</string>\n    <string name=\"action_move_category\">Imposta sas categorias</string>\n    <string name=\"action_edit_cover\">Muda sa cobertedda</string>\n    <string name=\"action_pause\">Pone in pàusa</string>\n    <string name=\"action_previous_chapter\">Capìtulu antepostu</string>\n    <string name=\"action_next_chapter\">Capìtulu imbeniente</string>\n    <string name=\"action_retry\">Torra a proare</string>\n    <string name=\"action_remove\">Boga</string>\n    <string name=\"action_resume\">Sighi</string>\n    <string name=\"action_open_in_browser\">Aberi in s\\'esploradore (browser)</string>\n    <string name=\"action_display_mode\">Modalidade de visualizatzione</string>\n    <string name=\"action_display\">Visualizatzione</string>\n    <string name=\"action_display_grid\">Grìllia cumpata</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_display_download_badge\">Capìtulos iscarrigados</string>\n    <string name=\"action_cancel\">Annulla</string>\n    <string name=\"action_sort\">Òrdina</string>\n    <string name=\"action_install\">Installa</string>\n    <string name=\"action_share\">Cumpartzi</string>\n    <string name=\"action_save\">Sarva</string>\n    <string name=\"action_reset\">Torra a impostare</string>\n    <string name=\"action_undo\">Iscontza</string>\n    <string name=\"action_open_log\">Aberi su registru</string>\n    <string name=\"action_restore\">Riprìstina</string>\n    <string name=\"loading\">Carrighende…</string>\n    <string name=\"app_not_available\">Aplicatzione non disponìbile</string>\n    <string name=\"pref_category_general\">Generales</string>\n    <string name=\"pref_category_reader\">Leghidore</string>\n    <string name=\"pref_category_downloads\">Iscarrigamentos</string>\n    <string name=\"pref_category_tracking\">Arrastamentu</string>\n    <string name=\"pref_category_advanced\">Avantzadas</string>\n    <string name=\"pref_category_about\">Informatziones</string>\n    <string name=\"pref_library_columns\">Elementos pro riga</string>\n    <string name=\"portrait\">Verticale</string>\n    <string name=\"landscape\">Orizontale</string>\n    <string name=\"pref_library_update_interval\">Agiornamentos automàticos</string>\n    <string name=\"update_never\">Istudadu</string>\n    <string name=\"update_6hour\">Cada 6 oras</string>\n    <string name=\"update_12hour\">Cada 12 oras</string>\n    <string name=\"update_24hour\">Cada die</string>\n    <string name=\"update_48hour\">Cada 2 dies</string>\n    <string name=\"update_weekly\">Cada chida</string>\n    <string name=\"all\">Totus</string>\n    <string name=\"pref_library_update_restriction\">Restritziones de su dispositivu a s\\'agiornamentu automàticu</string>\n    <string name=\"charging\">Durante sa càrriga</string>\n    <string name=\"pref_update_only_non_completed\">Cun s\\'istadu \\\"acabbada\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Agiorna su progressu a pustis de sa leghidura</string>\n    <string name=\"default_category\">Categoria predefinida</string>\n    <string name=\"default_category_summary\">Pedi semper</string>\n    <string name=\"ext_update\">Agiorna</string>\n    <string name=\"ext_install\">Installa</string>\n    <string name=\"ext_pending\">Isetende</string>\n    <string name=\"ext_downloading\">Iscarrighende</string>\n    <string name=\"ext_installing\">Installende</string>\n    <string name=\"ext_installed\">Installadas</string>\n    <string name=\"ext_trust\">Mi fido</string>\n    <string name=\"ext_untrusted\">Non mi fido</string>\n    <string name=\"ext_uninstall\">Disinstalla</string>\n    <string name=\"untrusted_extension\">Estensione non afidàbile</string>\n    <string name=\"untrusted_extension_message\">Un\\'estensione mala diat pòdere lèghere totu sas informatziones de atzessu sarvadas o fàghere esecutare còdighe arbitràriu. \\n \\nPonende fide in custa estensione atzetas custos arriscos.</string>\n    <string name=\"pref_fullscreen\">Ischermu intreu</string>\n    <string name=\"pref_page_transitions\">Ànima sas transitziones de sas pàginas</string>\n    <string name=\"pref_double_tap_anim_speed\">Lestresa de s\\'animatzione de su tocu dòpiu</string>\n    <string name=\"pref_show_page_number\">Ammustra su nùmeru de sa pàgina</string>\n    <string name=\"pref_crop_borders\">Sega sos oros</string>\n    <string name=\"pref_custom_brightness\">Luminosidade personalizada</string>\n    <string name=\"pref_custom_color_filter\">Filtru de colore personalizadu</string>\n    <string name=\"pref_keep_screen_on\">Mantene s\\'ischermu allutu</string>\n    <string name=\"pref_reader_navigation\">Navigatzione</string>\n    <string name=\"pref_read_with_volume_keys\">Teclas de su volume</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Fùrria sas teclas de su volume</string>\n    <string name=\"pref_read_with_long_tap\">Ammustra sas atziones cun su tocu longu</string>\n    <string name=\"pref_reader_theme\">Colore de isfundu</string>\n    <string name=\"white_background\">Arbu/biancu</string>\n    <string name=\"black_background\">Nieddu</string>\n    <string name=\"pref_viewer_type\">Modalidade de leghidura predefinida</string>\n    <string name=\"left_to_right_viewer\">Pro pàgina (dae manca a destra)</string>\n    <string name=\"right_to_left_viewer\">Pro pàgina (dae destra a manca)</string>\n    <string name=\"vertical_viewer\">Pro pàgina (verticale)</string>\n    <string name=\"webtoon_viewer\">Verticale longu</string>\n    <string name=\"pager_viewer\">Impaginadu</string>\n    <string name=\"pref_image_scale_type\">Casta de iscala</string>\n    <string name=\"scale_type_fit_screen\">Adata a s\\'ischermu</string>\n    <string name=\"scale_type_stretch\">Prena s\\'ischermu</string>\n    <string name=\"scale_type_fit_width\">Adata a sa largària</string>\n    <string name=\"scale_type_fit_height\">Adata a s\\'artària</string>\n    <string name=\"scale_type_original_size\">Mannària originale</string>\n    <string name=\"scale_type_smart_fit\">Adatamentu intelligente</string>\n    <string name=\"pref_zoom_start\">Positzione incumintzu ismanniamentu</string>\n    <string name=\"zoom_start_automatic\">Automàtica</string>\n    <string name=\"zoom_start_left\">A manca</string>\n    <string name=\"zoom_start_right\">A destra</string>\n    <string name=\"zoom_start_center\">In su tzentru</string>\n    <string name=\"double_tap_anim_speed_0\">Peruna animatzione</string>\n    <string name=\"double_tap_anim_speed_normal\">Normale</string>\n    <string name=\"double_tap_anim_speed_fast\">Lestra</string>\n    <string name=\"pref_rotation_type\">Rotatzione predefinida</string>\n    <string name=\"rotation_free\">Lìbera</string>\n    <string name=\"rotation_force_portrait\">Blocadu in verticale</string>\n    <string name=\"rotation_force_landscape\">Blocadu in orizontale</string>\n    <string name=\"color_filter_r_value\">Ruju</string>\n    <string name=\"color_filter_g_value\">Birde</string>\n    <string name=\"color_filter_b_value\">Biaitu</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_remove_after_marked_as_read\">A pustis de l\\'àere marcadu manualmente comente lèghidu</string>\n    <string name=\"pref_remove_after_read\">Iscantzella in automàticu a pustis de sa leghidura</string>\n    <string name=\"disabled\">Disabilitadu</string>\n    <string name=\"last_read_chapter\">Leghe s\\'ùrtimu capìtulu</string>\n    <string name=\"second_to_last\">Penùrtimu capìtulu lèghidu</string>\n    <string name=\"third_to_last\">Tertzùrtimu capìtulu lèghidu</string>\n    <string name=\"fourth_to_last\">Cuartùrtimu capìtulu lèghidu</string>\n    <string name=\"fifth_to_last\">Cuintùrtimu capìtulu lèghidu</string>\n    <string name=\"pref_download_new\">Iscàrriga sos capìtulos noos</string>\n    <string name=\"services\">Arrastadores</string>\n    <string name=\"pref_create_backup\">Crea una còpia de seguresa</string>\n    <string name=\"pref_create_backup_summ\">Podet èssere impreada pro ripristinare sa biblioteca atuale</string>\n    <string name=\"pref_restore_backup\">Riprìstina una còpia de seguresa</string>\n    <string name=\"pref_restore_backup_summ\">Riprìstina sa biblioteca dae una còpia de seguresa</string>\n    <string name=\"pref_backup_interval\">Frecuèntzia de sarvatàgiu de sas còpias de seguresa</string>\n    <string name=\"backup_created\">Còpia de seguresa creada</string>\n    <string name=\"restore_completed\">Riprìstinu acabadu</string>\n    <string name=\"backup_choice\">De ite cheres fàghere una còpia de seguresa?</string>\n    <string name=\"restoring_backup\">Ripristinende sa còpia de seguresa</string>\n    <string name=\"creating_backup\">Creende sa còpia de seguresa</string>\n    <string name=\"pref_clear_chapter_cache\">Isbòida sa memòria temporànea de sos capìtulos</string>\n    <string name=\"used_cache\">Impreados: %1$s</string>\n    <string name=\"cache_deleted\">Memòria temporànea isbodiada. %1$d documentos sunt istados iscantzellados</string>\n    <string name=\"cache_delete_error\">Errore durante s\\'isboidamentu</string>\n    <string name=\"pref_clear_cookies\">Iscantzella sos cookies</string>\n    <string name=\"cookies_cleared\">Cookies iscantzellados</string>\n    <string name=\"pref_clear_database\">Isbòida sa base de datos</string>\n    <string name=\"pref_clear_database_summary\">Iscantzella sa cronologia pro sos elementos chi non sunt sarvados in sa biblioteca tua</string>\n    <string name=\"clear_database_completed\">Boghes iscantzelladas</string>\n    <string name=\"version\">Versione</string>\n    <string name=\"pref_enable_acra\">Imbia raportos a pitzu de sos arrestos anòmalos</string>\n    <string name=\"pref_acra_summary\">Agiudat a acontzare cale si siat faddina. Perunu datu sensìbile at a èssere imbiadu</string>\n    <string name=\"login_title\">Intra in %1$s</string>\n    <string name=\"username\">Nùmene impreadore</string>\n    <string name=\"password\">Crae de intrada</string>\n    <string name=\"login\">Intra</string>\n    <string name=\"login_success\">Ses intradu</string>\n    <string name=\"unknown_error\">Errore disconnotu</string>\n    <string name=\"updating_category\">Agiornende sa categoria</string>\n    <string name=\"no_more_results\">Non bi sunt àteros risultados</string>\n    <string name=\"local_source\">Fonte locale</string>\n    <string name=\"other_source\">Àteru</string>\n    <string name=\"action_global_search_hint\">Chirca globale…</string>\n    <string name=\"latest\">Ùrtimos</string>\n    <string name=\"browse\">Esplora</string>\n    <string name=\"ongoing\">In cursu</string>\n    <string name=\"unknown\">Disconnotu</string>\n    <string name=\"licensed\">Cuntzessu in litzèntzia</string>\n    <string name=\"remove_from_library\">Boga dae sa biblioteca</string>\n    <string name=\"manga_added_library\">Annantu a sa biblioteca</string>\n    <string name=\"manga_removed_library\">Bogadu dae sa biblioteca</string>\n    <string name=\"delete_downloads_for_manga\">Iscantzellare sos capìtulos iscarrigados?</string>\n    <string name=\"copied_to_clipboard\">Copiadu in punta de billete:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Fonte no installada: %1$s</string>\n    <string name=\"display_mode_chapter\">Capìtulu %1$s</string>\n    <string name=\"chapter_downloading_progress\">Iscarrighende (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Errore</string>\n    <string name=\"chapter_paused\">In pàusa</string>\n    <string name=\"show_title\">Tìtulu de sa fonte</string>\n    <string name=\"show_chapter_number\">Nùmeru de capìtulu</string>\n    <string name=\"sort_by_source\">Pro fonte</string>\n    <string name=\"sort_by_number\">Pro nùmeru de capìtulu</string>\n    <string name=\"manga_download\">Iscàrriga</string>\n    <string name=\"download_unread\">Non lèghidos</string>\n    <string name=\"confirm_delete_chapters\">Ses seguru de chèrrere iscantzellare sos capìtulos ischertados?</string>\n    <string name=\"manga_tracking_tab\">Arrastamentu</string>\n    <string name=\"reading\">Leghende</string>\n    <string name=\"completed\">Acabadu</string>\n    <string name=\"dropped\">Abbandonadu</string>\n    <string name=\"on_hold\">In pàusa</string>\n    <string name=\"plan_to_read\">De lèghere</string>\n    <string name=\"repeating\">Leghende torra</string>\n    <string name=\"score\">Votu</string>\n    <string name=\"title\">Tìtulu</string>\n    <string name=\"status\">Istadu</string>\n    <string name=\"track_status\">Istadu</string>\n    <string name=\"track_type\">Casta</string>\n    <string name=\"error_category_exists\">Esistit giai una categoria cun custu nùmene!</string>\n    <string name=\"snack_categories_deleted\">Categorias iscantzelladas</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Custu at a bogare sa data de leghidura de custu capìtulu. Seguru ses?</string>\n    <string name=\"dialog_with_checkbox_reset\">Reseta totu sos capìtulos pro custu elementu</string>\n    <string name=\"snack_add_to_library\">Annànghere a sa biblioteca?</string>\n    <string name=\"picture_saved\">Immàgine sarvada</string>\n    <string name=\"custom_filter\">Filtru personalizadu</string>\n    <string name=\"set_as_cover\">Imposta comente cobertedda</string>\n    <string name=\"cover_updated\">Cobertedda agiornada</string>\n    <string name=\"chapter_progress\">Pàgina: %1$d</string>\n    <string name=\"no_next_chapter\">Capìtulu imbeniente no agatadu</string>\n    <string name=\"decode_image_error\">No est istadu possìbile carrigare s\\'immàgine</string>\n    <string name=\"confirm_set_image_as_cover\">Cheres impostare custa immàgine comente cobertedda?</string>\n    <string name=\"transition_finished\">Acabadu:</string>\n    <string name=\"transition_current\">Atuale:</string>\n    <string name=\"transition_next\">Imbeniente:</string>\n    <string name=\"transition_previous\">Antepostu:</string>\n    <string name=\"transition_no_next\">Non b\\'at unu capìtulu imbeniente</string>\n    <string name=\"transition_no_previous\">Non b\\'at unu capìtulu antepostu</string>\n    <string name=\"transition_pages_loading\">Carrighende pàginas…</string>\n    <string name=\"transition_pages_error\">Carrigamentu de pàginas fallidu: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Ischerta sos datos de incluire</string>\n    <string name=\"migrate\">Tràmuda</string>\n    <string name=\"copy\">Còpia</string>\n    <string name=\"download_queue_error\">Iscarrigamentu de sos capìtulos fallidu. Podes torrare a proare in sa setzione de sos iscarrigamentos</string>\n    <string name=\"notification_new_chapters\">Capìtulos noos agatados</string>\n    <string name=\"notification_cover_update_failed\">Agiornamentu de sa cobertedda fallidu</string>\n    <string name=\"notification_first_add_to_library\">Pro praghere annanghe s\\'elementu a sa biblioteca tua in antis de fàghere custu</string>\n    <string name=\"file_select_cover\">Ischerta s\\'immàgine de cobertedda</string>\n    <string name=\"file_select_backup\">Ischerta sa còpia de seguresa</string>\n    <string name=\"update_check_confirm\">Iscàrriga</string>\n    <string name=\"update_check_no_new_updates\">Non bi sunt agiornamentos disponìbiles noos</string>\n    <string name=\"update_check_notification_download_in_progress\">Iscarrighende…</string>\n    <string name=\"update_check_notification_download_complete\">Toca pro installare s\\'agiornamentu</string>\n    <string name=\"update_check_notification_download_error\">Errore de iscarrigamentu</string>\n    <string name=\"update_check_notification_update_available\">Versione noa a disponimentu!</string>\n    <string name=\"information_no_downloads\">Perunu iscarrigamentu</string>\n    <string name=\"information_no_recent\">Perunu agiornamentu reghente</string>\n    <string name=\"information_no_recent_manga\">Nudda de lèghidu dae pagu</string>\n    <string name=\"information_empty_library\">Sa biblioteca tua est bòida</string>\n    <string name=\"information_empty_category\">Non tenes categorias. Incarca su butone de su \\\"prus\\\" pro nde creare una pro organizare sa biblioteca tua.</string>\n    <string name=\"download_notifier_downloader_title\">Iscarrigadore</string>\n    <string name=\"download_notifier_title_error\">Errore</string>\n    <string name=\"download_notifier_unknown_error\">Iscarrigamentu de su capìtulu fallidu pro more de un\\'errore imprevistu</string>\n    <string name=\"download_notifier_text_only_wifi\">Peruna connessione Wi-Fi disponìbile</string>\n    <string name=\"download_notifier_no_network\">Peruna connessione de retza disponìbile</string>\n    <string name=\"download_notifier_download_paused\">Iscarrigamentos in pàusa</string>\n    <string name=\"channel_common\">Comunu</string>\n    <string name=\"action_open_in_web_view\">Aberi in WebView</string>\n    <string name=\"pref_skip_read_chapters\">Brinca sos capìtulos marcados comente lèghidos</string>\n    <string name=\"pref_color_filter_mode\">Modalidade de fusione de su filtru colore</string>\n    <string name=\"filter_mode_overlay\">Istratu superiore</string>\n    <string name=\"filter_mode_multiply\">Multìplica</string>\n    <string name=\"filter_mode_screen\">Ischermu</string>\n    <string name=\"filter_mode_lighten\">Istransi / Acrari</string>\n    <string name=\"filter_mode_darken\">Brùsia / Iscuri</string>\n    <string name=\"label_help\">Agiudu</string>\n    <string name=\"no_results_found\">Perunu resultadu agadadu</string>\n    <string name=\"migration_selection_prompt\">Seletziona una fonte dae ue tramudare</string>\n    <string name=\"action_webview_back\">In segus</string>\n    <string name=\"action_webview_forward\">In antis</string>\n    <string name=\"action_webview_refresh\">Annoa</string>\n    <string name=\"pref_category_library\">Biblioteca</string>\n    <string name=\"ext_obsolete\">Obsoleta</string>\n    <string name=\"obsolete_extension_message\">Custa estensione no est prus a disponimentu. Diat pòdere non funtzionare prus comente si tocat e causare problemas cun s\\'aplicatzione. Ti cussigiamus de la disinstallare.</string>\n    <string name=\"pref_date_format\">Formadu de sa data</string>\n    <string name=\"pref_category_library_update\">Agiornamentu globale</string>\n    <string name=\"logout_title\">Essire dae %1$s?</string>\n    <string name=\"logout\">Essi</string>\n    <string name=\"logout_success\">Ses essidu</string>\n    <string name=\"paused\">In pàusa</string>\n    <string name=\"label_more\">Àteru</string>\n    <string name=\"action_sort_latest_chapter\">Ùrtimu capìtulu</string>\n    <string name=\"action_view_chapters\">Pòmpia sos capìtulos</string>\n    <string name=\"action_cancel_all\">Annulla totu</string>\n    <string name=\"theme_light\">Istudadu</string>\n    <string name=\"theme_dark\">Allutu</string>\n    <string name=\"theme_system\">Sighi su sistema</string>\n    <string name=\"pref_manage_notifications\">Amministra sas notìficas</string>\n    <string name=\"pref_category_security\">Seguresa e riservadesa</string>\n    <string name=\"lock_with_biometrics\">Tocat a l\\'isblocare</string>\n    <string name=\"lock_when_idle\">Bloca cando no est ativu</string>\n    <string name=\"lock_always\">Semper</string>\n    <string name=\"lock_never\">Mai</string>\n    <string name=\"secure_screen\">Ischermu seguru</string>\n    <string name=\"ext_updates_pending\">Agiornamentos in suspesu</string>\n    <string name=\"pref_cutout_short\">Ammustra sos cuntenutos in s\\'àrea de retàlliu</string>\n    <string name=\"information_cloudflare_bypass_failure\">Isfrancamentu de Cloudflare fallidu</string>\n    <string name=\"information_webview_outdated\">Agiorna s\\'aplicatzione de WebView pro otènnere una cumpatibilidade prus manna</string>\n    <string name=\"channel_new_chapters\">Agiornamentos de sos capìtulos</string>\n    <string name=\"secure_screen_summary\">S\\'ischermu seguru cuat sos cuntenutos de s\\'aplicatzione cando mudas de aplicatzione e blocat sas ischermadas</string>\n    <string name=\"pref_category_display\">Visualizatzione</string>\n    <string name=\"notification_chapters_single\">Capìtulu %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Capìtulu %1$s e àteros %2$d</string>\n    <string name=\"notification_chapters_multiple\">Capìtulos %1$s</string>\n    <string name=\"hide_notification_content\">Cua su cuntenutu de sas notìficas</string>\n    <string name=\"pref_disable_battery_optimization\">Disabìlita s\\'otimizatzione de sa bateria</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Agiudat cun sos agiornamentos de sa biblioteca e sas còpias de seguresa</string>\n    <string name=\"battery_optimization_disabled\">S\\'otimizatzione de sa bateria est giai disabilitada</string>\n    <string name=\"email\">Indiritzu de posta eletrònica</string>\n    <string name=\"pref_always_show_chapter_transition\">Ammustra semper sa transitzione de capìtulu</string>\n    <string name=\"action_menu\">Menù</string>\n    <string name=\"action_newest\">Prus noos</string>\n    <string name=\"action_oldest\">Prus betzos</string>\n    <string name=\"action_move_to_top\">Manda a pitzus</string>\n    <string name=\"action_move_to_bottom\">Manda a fundu</string>\n    <string name=\"channel_ext_updates\">Agiornamentos de sas estensiones</string>\n    <string name=\"updating_library\">Agiornende sa biblioteca</string>\n    <string name=\"pref_category_reading\">Leghende</string>\n    <string name=\"pref_skip_filtered_chapters\">Brinca sos capìtulos filtrados</string>\n    <string name=\"label_sources\">Fontes</string>\n    <string name=\"pref_webtoon_side_padding\">Distantziamentu laterale</string>\n    <string name=\"vertical_plus_viewer\">Verticale longu cun interrutziones</string>\n    <string name=\"action_select_inverse\">Fùrria s\\'ischertada</string>\n    <string name=\"pinned_sources\">Apicadu</string>\n    <string name=\"action_unpin\">Boga</string>\n    <string name=\"action_pin\">Apica</string>\n    <string name=\"add_tracking\">Annanghe arrastamentu</string>\n    <string name=\"in_library\">In sa biblioteca</string>\n    <string name=\"add_to_library\">Annanghe a sa biblioteca</string>\n    <string name=\"manga_info_collapse\">De mancu</string>\n    <string name=\"manga_info_expand\">De prus</string>\n    <string name=\"information_webview_required\">Pro chi s\\'aplicatzione funtzionet b\\'at bisòngiu de WebView</string>\n    <string name=\"licenses\">Litzèntzias a còdighe abertu</string>\n    <string name=\"website\">Situ web</string>\n    <string name=\"label_downloaded_only\">Iscarrigados ebbia</string>\n    <string name=\"recent_manga_time\">Cap. %1$s - %2$s</string>\n    <string name=\"last_used_source\">Ùrtima impreada</string>\n    <string name=\"check_for_updates\">Chirca agiornamentos</string>\n    <string name=\"restoring_backup_canceled\">Riprìstinu annulladu</string>\n    <string name=\"restoring_backup_error\">Riprìstinu de sa còpia de seguresa fallidu</string>\n    <string name=\"restore_in_progress\">Su riprìstinu est giai in cursu</string>\n    <string name=\"creating_backup_error\">Còpia de seguresa fallida</string>\n    <string name=\"backup_in_progress\">Sa còpia de seguresa est giai in cursu</string>\n    <string name=\"restore_duration\">%1$02d min e %2$02d seg</string>\n    <string name=\"local_source_help_guide\">Ghia a sas fontes locales</string>\n    <string name=\"downloaded_only_summary\">Filtrat totu sos elementos in sa biblioteca tua</string>\n    <string name=\"pref_category_for_this_series\">Pro custa sèrie</string>\n    <string name=\"gray_background\">Murru</string>\n    <string name=\"viewer\">Modalidade de leghidura</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Abertura de sas impostatziones de sistema fallida</string>\n    <string name=\"tracking_info\">Sincronizatzione a una diretzione ebbia pro agiornare su progressu in sos capìtulos in servìtzios de arrastamentu esternos. Imposta s\\'arrastamentu pro sos elementos dae su butone de arrastamentu issoro.</string>\n    <string name=\"pref_refresh_library_covers\">Annoa sas coberteddas de sa biblioteca</string>\n    <string name=\"sort_by_upload_date\">Pro data de carrigamentu</string>\n    <string name=\"label_data\">Datos</string>\n    <string name=\"backup_restore_missing_sources\">Fontes chi mancant:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Sa còpia de seguresa non tenet perunu elementu.</string>\n    <string name=\"invalid_backup_file\">Documentu de sa còpia de seguresa non vàlidu:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Verìfica si b\\'est una cobertedda noa o bi sunt detàllios noos cando agiornas sa biblioteca</string>\n    <string name=\"pref_library_update_refresh_metadata\">Annoa automaticamente sos metadatos</string>\n    <string name=\"action_migrate\">Tràmuda</string>\n    <string name=\"action_display_comfortable_grid\">Grìllia discansosa</string>\n    <string name=\"page_list_empty_error\">Peruna pàgina agatada</string>\n    <string name=\"tabs_header\">Ischedas</string>\n    <string name=\"action_display_show_tabs\">Ammustra sas ischedas de sas categorias</string>\n    <string name=\"action_disable_all\">Disabìlita totu</string>\n    <string name=\"action_enable_all\">Abìlita totu</string>\n    <string name=\"pref_show_reading_mode_summary\">Ammustrat pro pagu tempus sa manera atuale cando su leghidore benit abertu</string>\n    <string name=\"pref_show_reading_mode\">Ammustra sa manera de leghidura</string>\n    <string name=\"action_start\">Incumintza</string>\n    <string name=\"loader_not_implemented_error\">Fonte no agatada</string>\n    <string name=\"action_disable\">Disabìlita</string>\n    <string name=\"requires_app_restart\">Tenet bisòngiu chi torres a allùghere s\\'aplicatzione pro tènnere efetu</string>\n    <string name=\"label_network\">Retza</string>\n    <string name=\"tapping_inverted_both\">Ambos</string>\n    <string name=\"tapping_inverted_vertical\">Verticale</string>\n    <string name=\"tapping_inverted_horizontal\">Orizontale</string>\n    <string name=\"tapping_inverted_none\">Perunu</string>\n    <string name=\"pref_read_with_tapping_inverted\">Fùrria sas zonas de tocu</string>\n    <string name=\"unknown_status\">Istadu disconnotu</string>\n    <string name=\"unknown_author\">Autore disconnotu</string>\n    <string name=\"updated_version\">Agiornadu a v%1$s</string>\n    <string name=\"whats_new\">Ite b\\'at de nou</string>\n    <string name=\"download_insufficient_space\">Iscarrigamentu de sos capìtulos fallidu pro neghe de su pagu ispàtziu lìberu in su discu</string>\n    <string name=\"action_global_search_query\">Chirca \\\"%1$s\\\" globalmente</string>\n    <string name=\"pref_category_reading_mode\">Modalidade de leghidura</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Data de annanghidura</string>\n    <string name=\"no_pinned_sources\">Non tenes fontes apicadas</string>\n    <string name=\"channel_complete\">Acabada</string>\n    <string name=\"channel_progress\">Progressu</string>\n    <string name=\"channel_errors\">Errores</string>\n    <string name=\"backup_restore_missing_trackers\">Arrastadores a sos cales no as fatu atzessu:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Permite s\\'iscantzelladura de sos capìtulos cun sinnalibros</string>\n    <string name=\"pref_category_delete_chapters\">Iscantzella capìtulos</string>\n    <string name=\"ext_nsfw_warning\">Sas fontes de custa estensione diant pòdere cuntènnere cuntenutos NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Custu no impedit a estensiones no ufitziales o potentzialmente non curretas de ammustrare cuntenutos NSFW (18+) in s\\'aplicatzione.</string>\n    <string name=\"no_chapters_error\">Perunu capìtulu agatadu</string>\n    <string name=\"chapter_settings_updated\">Impostatziones predefinidas de sos capìtulos agiornadas</string>\n    <string name=\"set_chapter_settings_as_default\">Imposta comente predefinidu</string>\n    <string name=\"also_set_chapter_settings_for_library\">Àplica fintzas a totu sos elementos in sa biblioteca mea</string>\n    <string name=\"confirm_set_chapter_settings\">Ses seguru de chèrrere sarvare custas informatziones comente predefinidas?</string>\n    <string name=\"chapter_settings\">Impostatziones de sos capìtulos</string>\n    <string name=\"share_page_info\">%1$s: %2$s, pàgina %3$d</string>\n    <string name=\"action_search_settings\">Impostatziones de chirca</string>\n    <string name=\"downloaded_chapters\">Capìtulos iscarrigados</string>\n    <string name=\"manga_from_library\">Dae sa biblioteca</string>\n    <string name=\"pref_incognito_mode_summary\">Ponet in pàusa sa registratzione de sa cronologia de leghidura</string>\n    <string name=\"pref_incognito_mode\">Modalidade anònima</string>\n    <string name=\"pref_clear_history\">Isbòida sa cronologia</string>\n    <string name=\"clear_history_confirmation\">Seguru ses? As a pèrdere totu sa cronologia.</string>\n    <string name=\"clear_history_completed\">Cronologia iscantzellada</string>\n    <string name=\"spen_next_page\">Pàgina imbeniente</string>\n    <string name=\"spen_previous_page\">Pàgina anteposta</string>\n    <string name=\"migration_help_guide\">Ghia a sa tràmuda de sas fontes</string>\n    <string name=\"pref_category_nsfw_content\">Cuntenutu NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Ammustra in sa lista de sas fontes e de sas estensiones</string>\n    <string name=\"file_picker_error\">Peruna aplicatzione pro ischertare documentos agatada</string>\n    <string name=\"myanimelist_relogin\">Pro praghere torra a intrare in MAL</string>\n    <string name=\"edge_nav\">Oru</string>\n    <string name=\"pref_viewer_nav\">Zonas de tocu</string>\n    <string name=\"kindlish_nav\">A tipu Kindle</string>\n    <string name=\"l_nav\">A forma de L</string>\n    <string name=\"track_finished_reading_date\">Data de fine</string>\n    <string name=\"track_started_reading_date\">Data de incumintzu</string>\n    <string name=\"pref_dump_crash_logs_summary\">Sarva sos registros de sos errores in unu documentu pro lu cumpartzire cun sos isvilupadores</string>\n    <string name=\"pref_dump_crash_logs\">Cumpartzi sos registros de sos arrestos anòmalos</string>\n    <string name=\"action_desc\">In achirrada</string>\n    <string name=\"action_asc\">Creschente</string>\n    <string name=\"action_order_by_chapter_number\">Pro nùmeru de capìtulu</string>\n    <string name=\"action_order_by_upload_date\">Pro data de carrigamentu</string>\n    <string name=\"action_filter_tracked\">Arrastadu</string>\n    <string name=\"action_display_show_number_of_items\">Ammustra su nùmeru de elementos</string>\n    <string name=\"right_and_left_nav\">Destra e manca</string>\n    <string name=\"pref_dual_page_split\">Partzi sas pàginas largas</string>\n    <string name=\"pref_dual_page_invert_summary\">Si sa positzione de sas pàginas largas partzidas non currispondet a sa diretzione de leghidura</string>\n    <string name=\"pref_dual_page_invert\">Fùrria su positzionamentu de sas pàginas partzidas</string>\n    <string name=\"backup_restore_content_full\">A pustis dias pòdere dèpere installare sas estensiones chi mancant e atzèdere a sos servìtzios de arrastamentu pro los pòdere impreare.</string>\n    <string name=\"nav_zone_right\">Destra</string>\n    <string name=\"nav_zone_left\">Manca</string>\n    <string name=\"nav_zone_next\">Imbeniente</string>\n    <string name=\"nav_zone_prev\">Antepostu</string>\n    <string name=\"pref_show_navigation_mode_summary\">Ammustra pro pagu cando aberis su leghidore</string>\n    <string name=\"pref_show_navigation_mode\">Ammustra sa subrapositzione de sas zonas de tocu</string>\n    <string name=\"pref_dns_over_https\">DNS pro mèdiu de HTTPS (DoH)</string>\n    <string name=\"exclude\">Esclude: %s</string>\n    <string name=\"include\">Include: %s</string>\n    <string name=\"none\">Perunu</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data de recùperu de su capìtulu</string>\n    <string name=\"pref_download_new_categories_details\">Sos elementos in sas categorias esclùdidas non s\\'ant a iscarrigare nemmancu si sunt fintzas in categorias inclùdidas.</string>\n    <string name=\"pref_category_auto_download\">Iscarrigamentu automàticu</string>\n    <string name=\"pref_library_update_categories_details\">Sos elementos in sas categorias esclùdidas non s\\'ant a agiornare nemmancu si sunt fintzas in categorias inclùdidas.</string>\n    <string name=\"action_show_errors\">Toca pro bìdere sos detàllios</string>\n    <string name=\"clipboard_copy_error\">Còpia in punta de billete fallida</string>\n    <string name=\"update_check_eol\">Custa versione de Android no est prus suportada</string>\n    <string name=\"rotation_landscape\">Orizontale</string>\n    <string name=\"rotation_portrait\">Verticale</string>\n    <string name=\"rotation_type\">Rotatzione</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Creat cartellas in base a su tìtulu de sos elementos</string>\n    <string name=\"pref_create_folder_per_manga\">Sarva sas pàginas in cartellas separadas</string>\n    <string name=\"pref_reader_actions\">Atziones</string>\n    <string name=\"pref_grayscale\">Iscala de murros</string>\n    <string name=\"notification_incognito_text\">Disabìlita sa modalidade anònima</string>\n    <string name=\"automatic_background\">Automàticu</string>\n    <string name=\"cancel_all_for_series\">Annulla totu pro custa sèrie</string>\n    <string name=\"error_no_match\">Peruna currispondèntzia agatada</string>\n    <string name=\"source_unsupported\">Fonte non suportada</string>\n    <string name=\"unread\">Non lèghidos</string>\n    <string name=\"date\">Data</string>\n    <string name=\"local_filter_order_by\">Òrdina pro</string>\n    <string name=\"local_invalid_format\">Formadu de su capìtulu non vàlidu</string>\n    <string name=\"chapter_not_found\">Capìtulu no agatadu</string>\n    <string name=\"off\">Istudadu</string>\n    <string name=\"on\">Allutu</string>\n    <string name=\"restrictions\">Restritziones: %s</string>\n    <string name=\"action_display_local_badge\">Fontes locales</string>\n    <string name=\"error_sharing_cover\">B\\'at àpidu un\\'errore cumpartende sa cobertedda</string>\n    <string name=\"error_saving_cover\">B\\'at àpidu un\\'errore sarvende sa cobertedda</string>\n    <string name=\"cover_saved\">Cobertedda sarvada</string>\n    <string name=\"manga_cover\">Cobertedda</string>\n    <string name=\"tracking_guide\">Ghia pro s\\'arrastamentu</string>\n    <string name=\"categorized_display_settings\">Impostatziones de ordinamentu pro categoria</string>\n    <string name=\"information_empty_category_dialog\">Non tenes galu peruna categoria.</string>\n    <string name=\"action_start_downloading_now\">Incumintza a iscarrigare como</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"restore_miui_warning\">Sa còpia de seguresa e su riprìstinu diant pòdere non funtzionare comente si tocat si s\\'otimizatzione MIUI est disabilitada.</string>\n    <string name=\"enhanced_tracking_info\">Frunit funtzionalidades avantzadas pro fontes ispetzìficas. Sos elementos benint arrastados in manera automàtica cando los annanghes a sa biblioteca tua.</string>\n    <string name=\"enhanced_services\">Arrastadores avantzados</string>\n    <string name=\"pref_dark_theme_pure_black\">Modalidade iscura niedda pura</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin e Yang</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri a sa Fràgola</string>\n    <string name=\"theme_midnightdusk\">Intrinada de mesanote</string>\n    <string name=\"theme_greenapple\">Mela birde</string>\n    <string name=\"theme_monet\">Dinàmicu</string>\n    <string name=\"pref_app_theme\">Tema de s\\'aplicatzione</string>\n    <string name=\"about_dont_kill_my_app\">Unos cantos produtores tenent restritziones de s\\'aplicatzione chi istudant sos servìtzios in s\\'isfundu. Custu situ web tenet informatziones in prus in subra de comente acontzare su problema.</string>\n    <string name=\"pref_lowest\">Bassa meda</string>\n    <string name=\"pref_low\">Bassa</string>\n    <string name=\"pref_highest\">Arta meda</string>\n    <string name=\"pref_high\">Arta</string>\n    <string name=\"pref_hide_threshold\">Sensibilidade pro cuare su menù cun s\\'iscurrimentu</string>\n    <string name=\"label_background_activity\">Atividade in s\\'isfundu</string>\n    <string name=\"pref_inverted_colors\">Furriada</string>\n    <string name=\"relative_time_today\">Oe</string>\n    <string name=\"theme_tealturquoise\">Birde abba e turchesu</string>\n    <string name=\"confirm_lock_change\">Autèntica·ti pro cunfirmare sa modìfica</string>\n    <string name=\"label_default\">Predefinida</string>\n    <string name=\"pref_category_appearance\">Aparèntzia</string>\n    <string name=\"action_track\">Arrasta</string>\n    <string name=\"getting_started_guide\">Ghia pro incumintzare</string>\n    <string name=\"pref_tablet_ui_mode\">Modalidade pro tauleddas</string>\n    <string name=\"help_translate\">Agiuda a bortare</string>\n    <string name=\"pref_remove_exclude_categories\">Categorias esclùdidas</string>\n    <string name=\"ext_app_info\">Informatziones de s\\'aplicatzione</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installa e avia Shizuku pro l\\'impreare comente installadore de estensiones.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku no est in esecutzione</string>\n    <string name=\"ext_installer_legacy\">In disusu</string>\n    <string name=\"ext_installer_pref\">Installadore</string>\n    <string name=\"ext_install_service_notif\">Installende s\\'estensione…</string>\n    <string name=\"action_sort_count\">Elementos totales</string>\n    <string name=\"pref_verbose_logging\">Registru a sa minuda</string>\n    <string name=\"pref_verbose_logging_summary\">Imprenta registros fatos a sa minuda in su registru de sistema (abbassat su rendimentu de s\\'aplicatzione)</string>\n    <string name=\"label_warning\">Dae cara</string>\n    <string name=\"action_display_language_badge\">Limba</string>\n    <string name=\"backup_info\">Dias dèpere tènnere còpias de seguresa fintzas in àteros logos.</string>\n    <string name=\"notification_size_warning\">Sos agiornamentos mannos diant pòdere fàghere dannu a sas fontes e causare agiornamentos prus lentos e fintzas un\\'impreu de sa bateria prus mannu. Toca pro nde ischire de prus.</string>\n    <string name=\"update_72hour\">Cada 3 dies</string>\n    <string name=\"connected_to_wifi\">Petzi cun su Wi-Fi</string>\n    <string name=\"download_queue_size_warning\">Dae cara: sos iscarrigamentos de massa mannos diant pòdere rallentare sas fontes e/o blocare %s. Toca pro nde ischire de prus.</string>\n    <string name=\"ext_update_all\">Agiorna totu</string>\n    <string name=\"channel_app_updates\">Agiornamentos de s\\'aplicatzione</string>\n    <string name=\"clear_database_source_item_count\">%1$d elementos chi non sunt in sa biblioteca in sa base de datos</string>\n    <string name=\"extension_api_error\">Recùperu de sa lista de sas estensiones fallidu</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Isbòida sa memòria temporànea de sos capìtulos cando aberis s\\'aplicatzione</string>\n    <string name=\"database_clean\">Nudda de isboidare</string>\n    <string name=\"privacy_policy\">Polìtica de riservadesa</string>\n    <string name=\"save_chapter_as_cbz\">Sarva comente archìviu CBZ</string>\n    <string name=\"library_errors_help\">Pro tènnere un\\'agiudu pro acontzare sos errores de agiornamentu de sa biblioteca pòmpia·ti %1$s</string>\n    <string name=\"pref_update_only_completely_read\">Cun capìtulos non lèghidos</string>\n    <string name=\"publishing_finished\">Publicatzione acabada</string>\n    <string name=\"on_hiatus\">In pàusa</string>\n    <string name=\"cancelled\">Annullada</string>\n    <string name=\"action_show_manga\">Ammustra s\\'elementu</string>\n    <string name=\"pref_landscape_zoom\">Ismànnia in automàticu sas immàgines largas</string>\n    <string name=\"action_display_cover_only_grid\">Grìllia cun coberteddas ebbia</string>\n    <string name=\"pref_update_only_started\">No incumintzadas</string>\n    <string name=\"pref_navigate_pan\">Iscurre sas pàginas largas</string>\n    <string name=\"skipped_reason_completed\">Brincadu ca sa sèrie est acabada</string>\n    <string name=\"skipped_reason_not_caught_up\">Brincadu ca bi sunt capìtulos non lèghidos</string>\n    <string name=\"skipped_reason_not_started\">Brincadu ca non bi sunt capìtulos lèghidos</string>\n    <string name=\"learn_more\">Toca pro àteras informatziones</string>\n    <string name=\"notification_update_error\">%1$d agiornamentu(os) fallidu(os)</string>\n    <string name=\"rotation_reverse_portrait\">Verticale a s\\'imbesse</string>\n    <string name=\"action_move_to_top_all_for_series\">Move sa sèrie cara a pitzos</string>\n    <string name=\"disabled_nav\">Disabilitadu</string>\n    <string name=\"error_saving_picture\">Errore in su sarvamentu de s\\'immàgine</string>\n    <string name=\"update_check_open\">Aberi in GitHub</string>\n    <string name=\"empty_backup_error\">Perunu elementu in biblioteca de pònnere in sa còpia de seguresa</string>\n    <string name=\"pref_clear_webview_data\">Isbòida sos datos de WebView</string>\n    <string name=\"webview_data_deleted\">Datos de WebView isboidados</string>\n    <string name=\"action_close\">Serra</string>\n    <string name=\"action_sort_last_manga_update\">Ùrtimu agiornamentu</string>\n    <string name=\"action_sort_unread_count\">Contu de non lèghidos</string>\n    <string name=\"source_empty_screen\">Peruna fonte agatada</string>\n    <string name=\"source_filter_empty_screen\">Peruna fonte installada agatada</string>\n    <string name=\"split_tall_images_summary\">Megiorat su rendimentu de su leghidore</string>\n    <string name=\"download_notifier_split_page_not_found\">Pàgina %d no agatada partzende</string>\n    <string name=\"empty_screen\">Oja, custu est impitzosu</string>\n    <string name=\"network_not_metered\">Petzi in retzes chene datos</string>\n    <string name=\"pref_reset_viewer_flags\">Reseta sas impostatziones de su leghidore pro cada sèrie</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Resetat sa modalidade de leghidura e s\\'orientamentu de totu sas sèries</string>\n    <string name=\"pref_reset_viewer_flags_success\">Totu sas impostatziones de su leghidore resetadas</string>\n    <string name=\"pref_reset_viewer_flags_error\">No at fatu a resetare sas impostatziones de su leghidore</string>\n    <string name=\"ext_info_age_rating\">Classificatzione pro edade</string>\n    <string name=\"ext_info_language\">Limba</string>\n    <string name=\"ext_info_version\">Versione</string>\n    <string name=\"download_notifier_split_page_path_not_found\">No at fatu a agatare s\\'àndala de su documentu de sa pàgina %d</string>\n    <string name=\"reading_list\">Lista de leghidura</string>\n    <string name=\"wish_list\">Lista de disìgios</string>\n    <string name=\"complete_list\">Lista de acabados</string>\n    <string name=\"on_hold_list\">Lista de postos in pàusa</string>\n    <string name=\"unfinished_list\">Lista de no acabados</string>\n    <string name=\"cant_open_last_read_chapter\">No at fatu a abèrrere s\\'ùrtimu capìtulu lèghidu</string>\n    <string name=\"custom_cover\">Cobertedda personalizada</string>\n    <string name=\"not_installed\">No installada</string>\n    <string name=\"pref_app_language\">Limba de s\\'aplicatzione</string>\n    <string name=\"description_placeholder\">Peruna descritzione</string>\n    <string name=\"theme_lavender\">Archemissa</string>\n    <string name=\"delete_category_confirmation\">Boles iscantzellare sa categoria \\\"%s\\\"?</string>\n    <string name=\"internal_error\">Errore internu: verìfica sos registros de sas serradas improvisas pro àteras informatziones</string>\n    <string name=\"delete_category\">Iscantzella sa categoria</string>\n    <string name=\"pref_user_agent_string\">Istringa de agente de utente predefinida</string>\n    <string name=\"pref_reset_user_agent_string\">Reseta s\\'istringa de agente de utente predefinida</string>\n    <string name=\"action_remove_everything\">Boga totu</string>\n    <string name=\"appwidget_unavailable_locked\">Su widget no est a disponimentu cando su blocu de s\\'aplicatzione est abilitadu</string>\n    <string name=\"appwidget_updates_description\">Pòmpia sos elementos de biblioteca tuos agiornados dae pagu</string>\n    <string name=\"update_already_running\">B\\'est giai un\\'agiornamentu in cursu</string>\n    <string name=\"theme_tidalwave\">Maremotu</string>\n    <string name=\"error_user_agent_string_blank\">S\\'istringa de s\\'agente de s\\'utente non podet èssere bòida</string>\n    <string name=\"download_ahead\">Iscàrriga sos imbenientes</string>\n    <string name=\"auto_download_while_reading\">Iscàrriga in automàticu durante sa letura</string>\n    <string name=\"download_ahead_info\">Funtzionat petzi si su capìtulu atuale e s\\'imbeniente sunt giai iscarrigados.</string>\n    <string name=\"are_you_sure\">Seguru ses?</string>\n    <string name=\"remove_manga\">As a bogare \\\"%s\\\" dae sa biblioteca tua</string>\n    <string name=\"multi_lang\">Mùltiplas</string>\n    <string name=\"updates_last_update_info\">Ùrtimu agiornamentu de sa biblioteca: %s</string>\n    <string name=\"popular\">Populare</string>\n    <string name=\"missing_storage_permission\">Permissu de archiviatzione non cuntzessu</string>\n    <string name=\"skipped_reason_not_always_update\">Brincadu ca sa sèrie non tenet bisòngiu de agiornamentos</string>\n    <string name=\"action_search_hint\">Chirca…</string>\n    <string name=\"crash_screen_description\">%s at tentu un\\'errore non prevìdidu. Ti cussigiamus de cumpartzire sos registros de sas serraduras anòmalas in su canale de suportu nostru de Discord.</string>\n    <string name=\"crash_screen_restart_application\">Torra a allùghere s\\'aplicatzione</string>\n    <string name=\"pref_appearance_summary\">Tema, data e formadu de s\\'ora</string>\n    <string name=\"pref_library_summary\">Categorias, agiornamentos globales, iscurrimentu de capìtulos</string>\n    <string name=\"pref_reader_summary\">Modalidade de leghidura, aspetu, navigatzione</string>\n    <string name=\"pref_downloads_summary\">Iscarrigamentu automàticu, iscarrigamentu antitzipadu</string>\n    <string name=\"pref_tracking_summary\">Sincronizatzione uni-diretzionale de avantzamentu, sincronizatzione megiorada</string>\n    <string name=\"pref_browse_summary\">Fontes, estensiones, chirca globale</string>\n    <string name=\"pref_backup_summary\">Còpias de seguresa manuales e globales</string>\n    <string name=\"pref_security_summary\">Blocu de s\\'aplicatzione, ischermu seguru</string>\n    <string name=\"pref_advanced_summary\">Registros de serraduras anòmalas, otimizatziones de sa bateria</string>\n    <string name=\"crash_screen_title\">Oops!</string>\n    <string name=\"invalid_location\">Positzione non vàlida: %s</string>\n    <string name=\"unknown_title\">Tìtulu disconnotu</string>\n    <string name=\"error_user_agent_string_invalid\">Istringa de agente de utente non vàlida</string>\n    <string name=\"updates_last_update_info_just_now\">Como como</string>\n    <string name=\"download_notifier_cache_renewal\">Verifichende sos iscarrigamentos</string>\n    <string name=\"action_open_random_manga\">Aberi un\\'elementu a casu</string>\n    <string name=\"information_no_entries_found\">Perunu elementu atzapadu in custa categoria</string>\n    <string name=\"fdroid_warning\">Sas versiones de F-Droid non sunt prus suportadas in manera ufitziale.\n\\nToca pro nde ischire de prus.</string>\n    <string name=\"action_display_show_continue_reading_button\">Butone pro sighire a lèghere</string>\n    <string name=\"track_remove_date_conf_title\">Bogare sa data?</string>\n    <string name=\"pref_invalidate_download_cache\">Torra a inditzizare sos iscarrigamentos</string>\n    <string name=\"track_remove_start_date_conf_text\">Custu at a bogare sa data de incumintzu seletzionada in antis dae %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Custu at a bogare sa data de fine seletzionada in antis dae %s</string>\n    <string name=\"label_downloaded\">Iscarrigados</string>\n    <string name=\"label_local\">In locale</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Fortzat s\\'aplicatzione a torrare a verificare sos capìtulos iscarrigados</string>\n    <string name=\"label_titles_in_global_update\">In s\\'agiornamentu globale</string>\n    <string name=\"label_total_chapters\">Totale</string>\n    <string name=\"label_read_chapters\">Lèghidos</string>\n    <string name=\"label_tracked_titles\">Elementos arrastados</string>\n    <string name=\"label_mean_score\">Votu mèdiu</string>\n    <string name=\"label_used\">In impreu</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"label_stats\">Istatìsticas</string>\n    <string name=\"label_started\">Incumintzados</string>\n    <string name=\"label_overview_section\">Panoràmica</string>\n    <string name=\"label_completed_titles\">Elementos cumpletados</string>\n    <string name=\"label_titles_section\">Elementos</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"hour_short\">%do</string>\n    <string name=\"label_read_duration\">Tempus de leghidura</string>\n    <string name=\"label_tracker_section\">Arrastadores</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"action_not_now\">Como nono</string>\n    <string name=\"information_no_manga_category\">Sa categoria est bòida</string>\n    <string name=\"pref_library_update_show_tab_badge\">Ammustra su nùmeru de non lèghidos in s\\'icona de agiornamentu</string>\n    <string name=\"copied_to_clipboard_plain\">Copiadu in punta de billete</string>\n    <string name=\"pref_skip_dupe_chapters\">Brinca sos capìtulos duplicados</string>\n    <string name=\"enhanced_services_not_installed\">A disponimentu ma sa fonte no est installada: %s</string>\n    <string name=\"track_error\">Errore %1$s: %2$s</string>\n    <string name=\"information_required_plain\">*netzessàriu</string>\n    <string name=\"pref_hide_in_library_items\">Cua sos elementos giai in sa biblioteca</string>\n    <string name=\"action_copy_to_clipboard\">Còpia in punta de billete</string>\n    <string name=\"action_update_category\">Agiorna sa categoria</string>\n    <string name=\"split_tall_images\">Partzi sas immàgines artas</string>\n    <string name=\"overlay_header\">Istratu superiore</string>\n    <string name=\"pref_page_rotate\">Gira sas pàginas largas pro las adatare</string>\n    <string name=\"pref_page_rotate_invert\">Fùrria s\\'orientamentu de sas pàginas largas giradas</string>\n    <string name=\"pref_double_tap_zoom\">Tocu dòpiu pro ismanniare</string>\n    <string name=\"pref_chapter_swipe_end\">Capìtulu iscurrende a destra</string>\n    <string name=\"pref_chapter_swipe_start\">Capìtulu iscurrende a manca</string>\n    <string name=\"pref_debug_info\">Informatziones de depuratzione de còdighe</string>\n    <string name=\"manga_display_interval_title\">Càrcula cada</string>\n    <string name=\"action_filter_interval_custom\">Intervallu de recùperu personalizadu</string>\n    <string name=\"action_sort_next_updated\">Agiornamentu imbente prevìdidu</string>\n    <string name=\"pref_update_only_in_release_period\">Foras de su perìodu de publicatzione prevìdidu</string>\n    <string name=\"intervals_header\">Intervallos</string>\n    <string name=\"manga_display_modified_interval_title\">Imposta s\\'agiornamentu pro cada</string>\n    <string name=\"skipped_reason_not_in_release_period\">Brincadu ca non bi fiat peruna publicatzione prevìdida oe</string>\n    <string name=\"action_set_interval\">Imposta s\\'intervallu</string>\n    <string name=\"action_ok\">AB</string>\n    <string name=\"track_delete_title\">Bogare s\\'arrastadore de %s?</string>\n    <string name=\"track_delete_text\">Custu at a bogare s\\'arrastamentu locale.</string>\n    <string name=\"track_delete_remote_text\">Boga fintzas dae %s</string>\n    <string name=\"delete_downloaded\">Iscantzella sos iscarrigados</string>\n    <string name=\"information_cloudflare_help\">Toca inoghe pro agiudu cun Cloudflare</string>\n    <string name=\"unlock_app_title\">Isbloca %s</string>\n    <string name=\"syncing_library\">Sincronizende sa biblioteca</string>\n    <string name=\"create_backup_file_error\">Non at s\\'est pòdidu creare un\\'archìviu de còpia de seguresa</string>\n    <string name=\"library_sync_complete\">Sincronizatzione de sa biblioteca acabada</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Moe sa sèrie a fundu</string>\n    <string name=\"exception_offline\">Peruna connessione a ìnternet</string>\n    <string name=\"download_cache_invalidated\">Ìnditze de sos iscarrigamentos invalidadu</string>\n    <string name=\"has_results\">Tenet resurtados</string>\n    <string name=\"track_activity_name\">Atzessu a s\\'arrastadore</string>\n    <string name=\"pref_relative_format\">Marcas temporales relativas</string>\n    <string name=\"exception_http\">HTTP %d, verìfica su situ in WebView</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" in càmbiu de \\\"%2$s\\\"</string>\n    <string name=\"exception_unknown_host\">Non s\\'est pòdidu atzèdere a %s</string>\n    <string name=\"pref_storage_location\">Positzione de archiviatzione</string>\n    <string name=\"action_create\">Crea</string>\n    <string name=\"relative_time_span_never\">Mai</string>\n    <string name=\"pref_flash_page_summ\">Mìnimat s\\'efetu pantasma in ischermos cun tinta eletrònica</string>\n    <string name=\"pref_storage_location_info\">Impreadu pro sas còpias de seguresa automàticas, sos iscarrigamentos de sos capìtulos e s\\'orìgine locale.</string>\n    <string name=\"action_apply\">Àplica</string>\n    <string name=\"action_revert_to_default\">Riprìstina a sos valores predefinidos</string>\n    <string name=\"action_menu_overflow_description\">Prus optziones</string>\n    <string name=\"last_auto_backup_info\">Ùrtima còpia de seguresa automàtica: %s</string>\n    <string name=\"selected\">Seletzionadu</string>\n    <string name=\"no_scanlators_found\">Perunu iscandutore agatadu</string>\n    <string name=\"not_selected\">Non seletzionadu</string>\n    <string name=\"scanlator\">Iscandutore (iscansidore+tradutore)</string>\n    <string name=\"pref_flash_page\">Lampìgia in biancu in su càmbiu de pàgina</string>\n    <string name=\"pref_storage_usage\">Impreu de sa memòria</string>\n    <string name=\"notification_updating_progress\">Agiornende sa biblioteca… (%s)</string>\n    <string name=\"action_bar_up_description\">Nàviga cara a subra</string>\n    <string name=\"action_sort_tracker_score\">Votu de s\\'arrastadore</string>\n    <string name=\"label_data_storage\">Datos e archiviatzione</string>\n    <string name=\"file_null_uri_error\">Perunu archìviu seletzionadu</string>\n    <string name=\"source_settings\">Impostatziones de sas fontes</string>\n    <string name=\"app_settings\">Impostatziones de s\\'aplicatzione</string>\n    <string name=\"exclude_scanlators\">Esclude sos iscandutores (iscansidores+tradutores)</string>\n    <string name=\"manga_interval_expected_update_null\">Custu manga est acabbadu o non b\\'at una data de publicatzione previdida.</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Non s\\'est pòdidu otènnere s\\'atzessu permanente a sa cartella. S\\'aplicatzione si diat pòdere cumportare in manera no isetada.</string>\n    <string name=\"ext_permission_install_apps_warning\">B\\'at bisòngiu de sos permissos pro installare estensiones. Toca inoghe pro los frunire.</string>\n    <string name=\"information_empty_repos\">Non tenes galu depòsitos impostados.</string>\n    <string name=\"error_repo_exists\">Custu depòsitu esistit giai!</string>\n    <string name=\"action_delete_repo\">Iscantzella su depòsitu</string>\n    <string name=\"delete_repo_confirmation\">Boles iscantzellare su depòsitu \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Depòsitu a còdighe abertu</string>\n    <string name=\"no_location_set\">Perunu logu de archiviatzione isseberadu</string>\n    <string name=\"pref_flash_duration\">Durada de su flash</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Flash cada</string>\n    <string name=\"pref_flash_with\">Flash cun</string>\n    <string name=\"pref_flash_style_black\">Nieddu</string>\n    <string name=\"pref_flash_style_white\">Biancu</string>\n    <string name=\"pref_flash_style_white_black\">Biancu e nieddu</string>\n    <string name=\"invalid_backup_file_error\">Errore intreu:</string>\n    <string name=\"upcoming_guide\">Ghia a sas atualizatziones imbenientes</string>\n    <string name=\"pref_onboarding_guide\">Ghia de introdutzione</string>\n    <string name=\"onboarding_heading\">Bene bènnidu!</string>\n    <string name=\"onboarding_action_next\">Imbeniente</string>\n    <string name=\"onboarding_action_finish\">Incumintzemus</string>\n    <string name=\"onboarding_action_skip\">Brinca</string>\n    <string name=\"onboarding_storage_info\">Seletziona una cartella in ue %1$s at a archiviare sos capìtulos iscarrigados, sas còpias de seguresa e àteru.\n\\n\n\\nSi cussìgiat una cartella dedicada.\n\\n\n\\nCartella seletzionada: %2$s</string>\n    <string name=\"onboarding_storage_help_info\">Ses agiornende dae una versione betza e non ses seguru de ite seletzionare? Abbista·ti sa ghia a s\\'archiviatzione pro àteras informatziones.</string>\n    <string name=\"onboarding_storage_help_action\">Ghia a s\\'archiviatzione</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Èvita interrutziones a agiornamentos longos de sa biblioteca, iscarrigamentos, e riprìstinos de còpias de seguresa.</string>\n    <string name=\"onboarding_permission_action_grant\">Fruni</string>\n    <string name=\"onboarding_guides_new_user\">Nou in %s? Ti cussigiamus de t\\'abbistare sa ghia de introdutzione.</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"pref_library_update_smart_update\">Agiornamentu inteligente</string>\n    <string name=\"action_add_repo\">Annanghe unu depòsitu</string>\n    <string name=\"label_add_repo_input\">URL de su depòsitu</string>\n    <string name=\"action_add_repo_message\">Annanghe depòsitos additzionales a %s. Custu diat dèpere èssere un\\'URL chi acabbat cun \\\"index.min.json\\\".</string>\n    <string name=\"private_settings\">Include impostatziones sensìbiles ( a es. getones de intrada a sos arrastadores)</string>\n    <string name=\"manga_interval_expected_update_soon\">Luego</string>\n    <string name=\"action_add_anyway\">Annanghe su matessi</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Istuda sa ridutzione de ismanniada</string>\n    <string name=\"onboarding_description\">In antis de totus tocat a cunfigurare una paja de cosas. L\\'as a pòdere semper modificare a pustis dae sas impostatziones.</string>\n    <string name=\"onboarding_storage_action_select\">Seletziona una cartella</string>\n    <string name=\"onboarding_storage_selection_required\">Depes seletzionare una cartella</string>\n    <string name=\"onboarding_permission_install_apps\">Permissos pro installare s\\'aplicatzione</string>\n    <string name=\"onboarding_permission_install_apps_description\">Pro installare estensiones de fontes.</string>\n    <string name=\"onboarding_permission_notifications\">Permissu pro sas notìficas</string>\n    <string name=\"onboarding_permission_notifications_description\">Retzi notìficas pro agiornamentos de sa biblioteca e àteru.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Impreu de sa bateria in s\\'isfundu</string>\n    <string name=\"invalid_repo_name\">URL de su depòsitu non vàlidu</string>\n    <string name=\"manga_interval_expected_update\">Si pensat chi sos capìtulos los pùblichent pagu prus o mancu cada%1$s, cun verìficas cada %2$s.</string>\n    <string name=\"manga_interval_custom_amount\">Frecuèntzia de agiornamentu personalizada:</string>\n    <string name=\"upcoming_calendar_next\">Su mese chi intrat</string>\n    <string name=\"upcoming_calendar_prev\">Su mese coladu</string>\n    <string name=\"onboarding_guides_returning_user\">Ses torrende a installare %s?</string>\n    <string name=\"ext_revoke_trust\">Rèvoca sas estensiones disconnotas afidàbiles</string>\n    <string name=\"label_extension_repos\">Depòsitos de estensiones</string>\n    <string name=\"available_disk_space_info\">A disponimentu: %1$s / Totale: %2$s</string>\n    <string name=\"action_replace_repo\">Remplasa</string>\n    <string name=\"action_replace_repo_title\">S\\'imprenta digitale de sa crae de firma esistit giai</string>\n    <string name=\"action_replace_repo_message\">Su depòsitu %1$s tenet sa matessi imprenta digitale de sa crae de firma de %2$s.\n\\nSi custu est su chi t\\'isetas, %2$s s\\'at a sostituire, si nono cuntata su mantenidore de su depòsitu tuo.</string>\n    <string name=\"pref_display_profile\">Profilu de visualizatzione predefinidu</string>\n    <string name=\"action_view_upcoming\">Abbista·ti sos agiornamentos imbenientes</string>\n    <string name=\"label_upcoming\">Imbeniente</string>\n    <string name=\"non_library_settings\">Totu sos elementos lèghidos</string>\n    <string name=\"action_copy_link\">Còpia su ligàmene</string>\n    <string name=\"action_sort_random\">A casu</string>\n    <string name=\"onboarding_permission_crashlytics\">Imbia registros de arrestos anòmalos</string>\n    <string name=\"onboarding_permission_analytics\">Permite sas istatìsticas de impreu</string>\n    <string name=\"pref_firebase\">Istatìsticas de impreu e registros de sos arrestos anòmalos</string>\n    <string name=\"invalid_backup_file_json\">Còpia de seguresa JSON non suportada</string>\n    <string name=\"onboarding_permission_analytics_description\">Imbia datos de impreu anonimizados pro megiorare sas funtzionalidades de s\\'aplicatzione.</string>\n    <string name=\"remove_private_extension_message\">Boles a beru bogare s\\'estensione \\\"%s\\\"?</string>\n    <string name=\"pref_security\">Seguresa</string>\n    <string name=\"firebase_summary\">S\\'imbiu de sos registros de sos arrestos anòmalos e de sas istatìsticas de impreu non ant a permìtere de identificare e acontzare problemas, megiorare su rendimentu, e fàghere in manera chi sas atualizatziones imbenientes siant prus rilevantes pro sos bisòngios tuos</string>\n    <string name=\"ext_confirm_remove\">Bogare s\\'estensione?</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Imbia registros de arrestos anòmalos anonimizados a sos isvilupadores.</string>\n    <string name=\"ext_remove\">Boga</string>\n    <string name=\"add_repo_confirmation\">Boles annànghere su depòsitu \\\"%s\\\"?</string>\n    <string name=\"invalid_backup_file_unknown\">Su documentu de sa còpia de seguresa est corrùmpidu</string>\n    <string name=\"extensionRepo_settings\">Depòsitos de estensiones</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Brinca s\\'iscarrigamentu de capìtulos lèghidos duplicados</string>\n    <string name=\"confirm_tracker_update\">Atualizare sos arrastadores a su capìtulu %d?</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Agiorna su progressu cando est marcadu comente lèghidu</string>\n    <string name=\"trackers_updated_summary\">Arrastadores atualizados a su capìtulu %d</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Predefinidu (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Si su leghidore càrrigat un\\'immàgine bianca, mìnima de pagu a pagu su lìmite.\\nSeletzionadu: %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Mannària màssima pro sa decodìfica hardware (bitmap) de sas immàgines</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Influentzat su rendimentu. Abilita·lu petzi si sa minimada de sa mannària màssima pro sa decodìfica hardware (bitmap) de sas immàgines non risolvet sos problemas de sas immàgines bòidas</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pone in pàusa sa cronologia de letura pro s\\'estensione</string>\n    <string name=\"label_auto\">Automàticu</string>\n    <string name=\"library_list\">Lista de sa biblioteca</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Imprea su codificadore betzu pro su leghidore de immàgines longas</string>\n    <string name=\"export\">Esporta</string>\n    <string name=\"theme_monochrome\">Monocromo</string>\n    <string name=\"action_display_unread_badge\">Capìtulos non lèghidos</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">A pustis de àere lèghidu unu capìtulu</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Marca sos capìtulos lèghidos duplicados comente lèghidos</string>\n    <string name=\"tracked_privately\">Arrastadu in manera privada</string>\n    <string name=\"action_toggle_private_on\">Arrasta in manera privada</string>\n    <string name=\"author\">Autore</string>\n    <string name=\"artist\">Artista</string>\n    <string name=\"library_exported\">Biblioteca esportada</string>\n    <string name=\"action_toggle_private_off\">Arrasta in manera pùblica</string>\n    <string name=\"pref_behavior\">Cumportamentu</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">A pustis de su recùperu de unu capìtulu</string>\n    <string name=\"action_edit_notes\">Modìfica notas</string>\n    <string name=\"action_notes\">Notas</string>\n    <string name=\"notes_placeholder\">M\\'est agradadu cando…</string>\n    <string name=\"pref_update_library_manga_titles\">Annoa sos tìtulos de sos manga in sa biblioteca pro chi currispondant cun sa fonte</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Dae cara: si unu manga mudat de nùmene, s\\'at a bogare dae sa lista de iscarrigamentu (si b\\'est).</string>\n    <string name=\"logging_in\">Intrende…</string>\n    <string name=\"possible_duplicates_title\">Duplicados possìbiles</string>\n    <string name=\"possible_duplicates_summary\">Tenes elementos in s biblioteca tua cun nùmenes chi s\\'assimìgiant.\\n\\nSeletziona un\\'elementu pro lu tramudare o annànghere su matessi.</string>\n    <string name=\"storage_failed_to_create_download_directory\">Creatzione de sa cartella de iscarrigamentu fallida</string>\n    <string name=\"storage_failed_to_create_directory\">Non faghet a creare sa cartella: %s</string>\n    <string name=\"clear_database_text\">Ses pro bogare elementos dae sa base de datos</string>\n    <string name=\"clear_db_exclude_read\">Mantene sos elementos cun capìtulos lèghidos</string>\n    <string name=\"clear_database_history_warning\">Sos capìtulos lèghidos e su progressu de sos elementos chi non sunt in sa biblioteca s\\'ant a pèrdere</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Non seletziones nudda</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Seletziona fontes apicadas</string>\n    <string name=\"theme_catppuccin\">Gatuputzinu</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Seletzionadu</string>\n    <string name=\"migrationConfigScreen.availableHeader\">A disponimentu</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Seletziona totu</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Seletziona fontes abilitadas</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Sighi</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sdh/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">پاش 1 خولەک</item>\n        <item quantity=\"other\">پاش %1$s خولەک</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">دوێنێ</item>\n        <item quantity=\"other\">%1$d ڕۆژ پێش ئێستا</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sdh/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"label_default\">بنەڕەتی</string>\n    <string name=\"label_warning\">ئاگاداری</string>\n    <string name=\"name\">ناو</string>\n    <string name=\"label_more\">زیاتر</string>\n    <string name=\"label_settings\">سازکارییەکان</string>\n    <string name=\"label_download_queue\">لیستی داونلۆد</string>\n    <string name=\"history\">تۆماری ڕابردوو</string>\n    <string name=\"confirm_lock_change\">دڵنیابوونەوە تا گۆڕانکاری بکرێت</string>\n    <string name=\"action_mark_previous_as_read\">ئاماژەکردنی پێشوو وەک خوێندراو</string>\n    <string name=\"action_bookmark\">نیشانکردنی چاپتەر</string>\n    <string name=\"action_update_library\">نوێکردنەوەی کۆکراوەکان</string>\n    <string name=\"action_enable_all\">گشتی چالاک بکە</string>\n    <string name=\"action_disable_all\">گشتی ناچالاک بکە</string>\n    <string name=\"action_add\">زیادکردن</string>\n    <string name=\"action_add_category\">زیادکردنی کاتیگۆری</string>\n    <string name=\"action_edit_categories\">دەستکاریکردنی کاتیگۆری</string>\n    <string name=\"action_rename_category\">ناونانەوەی کاتیگۆری</string>\n    <string name=\"label_library\">کۆکراوەکان</string>\n    <string name=\"label_recent_updates\">نوێکارییەکان</string>\n    <string name=\"label_backup\">یەدەگ کردن و گەڕانەوە بۆ باری سەرەکی</string>\n    <string name=\"label_migration\">گواستنەوە</string>\n    <string name=\"label_extensions\">زیادکراوەکان</string>\n    <string name=\"label_recent_manga\">تۆماری ڕابردوو</string>\n    <string name=\"manga\">مانگا</string>\n    <string name=\"chapters\">چاپتەرەکان</string>\n    <string name=\"track\">بەدواداچوون</string>\n    <string name=\"categories\">کاتیگۆرییەکان</string>\n    <string name=\"action_settings\">سازکارییەکان</string>\n    <string name=\"action_menu\">لیست</string>\n    <string name=\"action_filter_bookmarked\">نیشانکراو</string>\n    <string name=\"action_filter_tracked\">بەدواداچوو</string>\n    <string name=\"action_sort_alpha\">بە شێوازی ئەلف و بێ</string>\n    <string name=\"action_sort_count\">کۆی مانگاکان</string>\n    <string name=\"action_sort_total\">کۆی چاپتەرەکان</string>\n    <string name=\"action_sort_last_read\">کۆتا خوێندراوە</string>\n    <string name=\"action_select_all\">هەڵبژاردنی هەمووی</string>\n    <string name=\"action_select_inverse\">هەڵبژاردنی پێچەوانە</string>\n    <string name=\"action_mark_as_read\">وەک خوێندراوێک ئاماژەی پێبکە</string>\n    <string name=\"information_no_downloads\">هیچ داونلۆدێک نییە</string>\n    <string name=\"action_filter\">فلتەر</string>\n    <string name=\"action_filter_unread\">نەخوێندراو</string>\n    <string name=\"action_filter_empty\">سڕینەوەی فلتەر</string>\n    <string name=\"action_sort_latest_chapter\">نوێترین چاپتەر</string>\n    <string name=\"action_sort_chapter_fetch_date\">بەرواری دەرچوون</string>\n    <string name=\"action_global_search\">گەڕانی گشتگیر</string>\n    <string name=\"action_sort_date_added\">بەرواری بەردەست بوون</string>\n    <string name=\"action_search\">گەڕان</string>\n    <string name=\"action_download\">داونلۆد</string>\n    <string name=\"information_empty_category\">هیچ کاتیگۆرییەکت نییە. دەست بنێ بە دوگمەی زیادە تا کاتیگۆرییەک بۆ ڕێکخستنی تۆماری ڕابردووت درووست بکەیت.</string>\n    <string name=\"action_delete\">سڕینەوە</string>\n    <string name=\"information_no_recent\">هێج نوێکارییەک نییە لەم دواییانەدا</string>\n    <string name=\"label_sources\">سەرچاوەکان</string>\n    <string name=\"information_no_recent_manga\">هیچ مانگایەکت لەم دواییانە نەخوێندووەتەوە</string>\n    <string name=\"label_extension_info\">زانیاری زیادکراو</string>\n    <string name=\"label_help\">یارمەتی</string>\n    <string name=\"information_empty_library\">تۆماری ڕابردووەکەت بەتاڵە</string>\n    <string name=\"action_search_settings\">گەڕان لە ناو سازکارییەکان</string>\n    <string name=\"action_mark_as_unread\">وەک نەخوێندراوێک ئاماژەی پێبکە</string>\n    <string name=\"action_remove_bookmark\">نیشان نەکردنی چاپتەر</string>\n    <string name=\"action_edit\">دەستکاری کردن</string>\n    <string name=\"pref_category_about\">دەربارە</string>\n    <string name=\"action_pause\">ڕاگرتنی کاتی</string>\n    <string name=\"action_remove\">لابردن</string>\n    <string name=\"action_start\">دەست پێکردن</string>\n    <string name=\"action_resume\">بەردەوام بوون</string>\n    <string name=\"action_open_in_browser\">کردنەوە لە وێبگەڕدا</string>\n    <string name=\"action_open_in_web_view\">WebView کردنەوە لە</string>\n    <string name=\"action_migrate\">گواستنەوە</string>\n    <string name=\"action_display_mode\">باری پیشاندان</string>\n    <string name=\"action_unpin\">لابردنی جێگیری</string>\n    <string name=\"action_cancel\">هەڵوەشاندنەوە</string>\n    <string name=\"action_cancel_all\">هەڵوەشاندنەوەی هەموو</string>\n    <string name=\"cancel_all_for_series\">هەڵوەشاندنەوەی هەموو بۆ ئەم زنجیرەیە</string>\n    <string name=\"action_sort\">ڕیزکردن</string>\n    <string name=\"action_move_to_bottom\">گواستنەوە بۆ خوارەوە</string>\n    <string name=\"action_install\">دامەزراندن</string>\n    <string name=\"action_share\">هاوبەشیکردن</string>\n    <string name=\"action_save\">خەزێنە کردن</string>\n    <string name=\"action_reset\">دووبارە سازکردنەوە</string>\n    <string name=\"action_undo\">پەشیمان بوونەوە</string>\n    <string name=\"action_open_log\">کردنەوەی تۆمار</string>\n    <string name=\"action_restore\">گەڕاندنەوە</string>\n    <string name=\"action_webview_back\">گەڕانەوە</string>\n    <string name=\"action_webview_forward\">بەرەو پێشەوە</string>\n    <string name=\"action_webview_refresh\">فرێشکردنەوە</string>\n    <string name=\"action_start_downloading_now\">ئێستا دەست بکە بە داونلۆد کردن</string>\n    <string name=\"action_show_errors\">وردەکاری هەموو ئیرۆرەکان ببینە</string>\n    <string name=\"action_desc\">بە پلە نزم بوونەوە</string>\n    <string name=\"action_move_category\">دیاریکردنی کاتیگۆرییەکان</string>\n    <string name=\"action_edit_cover\">گۆڕینی وێنەی بەرگەکە</string>\n    <string name=\"action_view_chapters\">بینینی چاپتەرەکان</string>\n    <string name=\"action_previous_chapter\">چاپتەری پێشوو</string>\n    <string name=\"action_next_chapter\">چاپتەری داهاتوو</string>\n    <string name=\"action_retry\">دووبارەکردنەوە</string>\n    <string name=\"action_display\">پیشاندان</string>\n    <string name=\"action_display_list\">لیست</string>\n    <string name=\"action_display_local_badge\">مانگای ناوخۆیی</string>\n    <string name=\"action_display_language_badge\">زمان</string>\n    <string name=\"action_display_show_tabs\">پیشاندانی خشتەبەندی کاتیگۆرییەکان</string>\n    <string name=\"action_order_by_chapter_number\">بە پێی ژمارەی چاپتەر</string>\n    <string name=\"action_move_to_top\">گواستنەوە بۆ سەرەوە</string>\n    <string name=\"action_display_download_badge\">چاپتەری داونلۆد کراو</string>\n    <string name=\"action_display_show_number_of_items\">پیشاندانی ژمارەی ئایتمەکان</string>\n    <string name=\"action_disable\">ناچالاککردن</string>\n    <string name=\"action_pin\">جێگیرکردن</string>\n    <string name=\"loading\">دۆخی بارکردن…</string>\n    <string name=\"action_order_by_upload_date\">بە پێی بەرواری بەردەست بوون</string>\n    <string name=\"action_newest\">نوێترین</string>\n    <string name=\"action_oldest\">کۆنترین</string>\n    <string name=\"action_asc\">بە پلە بەرزبوونەوە</string>\n    <string name=\"app_not_available\">بەرنامەکە بەردەست نییە</string>\n    <string name=\"pref_category_general\">گشتی</string>\n    <string name=\"pref_category_appearance\">شێوە</string>\n    <string name=\"pref_category_library\">کۆکراوەکان</string>\n    <string name=\"pref_category_reader\">خوێنەرەوە</string>\n    <string name=\"pref_category_downloads\">داونلۆدەکان</string>\n    <string name=\"pref_category_tracking\">بەدواداچوون</string>\n    <string name=\"pref_category_advanced\">سازکارییە ئاڵۆزەکان</string>\n    <string name=\"pager_viewer\">شێوازی لاپەڕەکان</string>\n    <string name=\"pref_viewer_nav\">شێوازی گەڕان</string>\n    <string name=\"scale_type_stretch\">ڕاکێشراو</string>\n    <string name=\"scale_type_original_size\">قەبارەی بنەڕەتی</string>\n    <string name=\"scale_type_smart_fit\">گونجاندنی زیرەک</string>\n    <string name=\"pref_zoom_start\">دەستپێکی شوێنی زوومکردن</string>\n    <string name=\"zoom_start_left\">چەپ</string>\n    <string name=\"zoom_start_right\">ڕاست</string>\n    <string name=\"zoom_start_center\">ناوەڕاست</string>\n    <string name=\"double_tap_anim_speed_0\">بێ ئەنیمەیشن</string>\n    <string name=\"double_tap_anim_speed_normal\">سرووشتی</string>\n    <string name=\"double_tap_anim_speed_fast\">خێرا</string>\n    <string name=\"rotation_landscape\">باری ئاسۆیی</string>\n    <string name=\"rotation_force_portrait\">باری ستوونی قوفڵکراو</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"pref_category_reading_mode\">دۆخی خوێندنەوە</string>\n    <string name=\"pref_category_reading\">سازکاری خوێندنەوە</string>\n    <string name=\"manga_added_library\">کراوەتە ناو کۆکراوەکان</string>\n    <string name=\"gray_background\">خۆڵەمێشی</string>\n    <string name=\"rotation_type\">جۆری خولانەوە</string>\n    <string name=\"action_display_grid\">تۆڕی پەستێنراو</string>\n    <string name=\"action_display_comfortable_grid\">تۆڕی ئاسوودە</string>\n    <string name=\"pref_category_theme\">ڕووکار</string>\n    <string name=\"theme_system\">وەک ڕووکاری سیستەم</string>\n    <string name=\"theme_light\">کوژاوە</string>\n    <string name=\"theme_dark\">داگیرساو</string>\n    <string name=\"pref_app_theme\">ڕووکاری پڕۆگرام</string>\n    <string name=\"theme_monet\">داینامیک</string>\n    <string name=\"theme_greenapple\">سەوز</string>\n    <string name=\"theme_midnightdusk\">مۆر</string>\n    <string name=\"theme_strawberrydaiquiri\">سوور</string>\n    <string name=\"theme_tako\">تاکۆ</string>\n    <string name=\"theme_tealturquoise\">پیرۆزەیی</string>\n    <string name=\"theme_yinyang\">ین و یانگ</string>\n    <string name=\"theme_yotsuba\">یۆتسوبا</string>\n    <string name=\"pref_dark_theme_pure_black\">دۆخی ڕەشی پوخت</string>\n    <string name=\"pref_date_format\">ڕێکخستنی بەروار</string>\n    <string name=\"pref_manage_notifications\">بەڕێوەبردنی ئاگانامەکان</string>\n    <string name=\"pref_category_security\">سازکاری پارێزراوی</string>\n    <string name=\"lock_with_biometrics\">پێویست بە کردنەوە دەکات</string>\n    <string name=\"lock_when_idle\">قوفڵکردن لە کاتی ناچالاکیدا</string>\n    <string name=\"lock_always\">هەمیشە</string>\n    <string name=\"lock_never\">هەرگیز</string>\n    <string name=\"secure_screen\">شاشە پارێزراو کردن</string>\n    <string name=\"hide_notification_content\">شاردنەوەی ناوەرۆکی ئاگانامە</string>\n    <string name=\"secure_screen_summary\">سکرین شۆت بلۆکردن و شاردنەوەی ناوەڕۆک، لە کاتی گۆڕین و دەرچوون لە بەرنامە</string>\n    <string name=\"pref_category_nsfw_content\">سەرچاوەی سەروو (18) ساڵ</string>\n    <string name=\"pref_show_nsfw_source\">پیشاندان لە لیستی سەرچاوە و زیادکراوەکان</string>\n    <string name=\"relative_time_today\">ئەمڕۆ</string>\n    <string name=\"pref_category_display\">شێوازی پیشاندان</string>\n    <string name=\"pref_read_with_tapping_inverted\">نەرمە لێدانی پێچەوانە</string>\n    <string name=\"tapping_inverted_none\">هیچ</string>\n    <string name=\"tapping_inverted_vertical\">ستوونی</string>\n    <string name=\"tapping_inverted_both\">هەردووکیان</string>\n    <string name=\"pref_reader_actions\">کردارەکان</string>\n    <string name=\"pref_create_folder_per_manga\">خەزێنە کردنی لاپەڕەکان لە فۆڵدەری جیاوزدا</string>\n    <string name=\"white_background\">سپی</string>\n    <string name=\"pref_grayscale\">خۆڵەمێشی پلە پلە</string>\n    <string name=\"pref_inverted_colors\">پێچەوانەکراو</string>\n    <string name=\"pref_custom_color_filter\">ڕەنگی فیلتەری تایبەتی</string>\n    <string name=\"pref_color_filter_mode\">فلتەری تێکەڵبوونی ڕەنگەکان</string>\n    <string name=\"filter_mode_overlay\">داپۆشراو</string>\n    <string name=\"filter_mode_multiply\">شێوازی دوو ‌هێندە</string>\n    <string name=\"pref_category_auto_download\">داونلۆدی ئۆتۆماتیکی</string>\n    <string name=\"pref_download_new\">داونلۆدکردنی چاپتەری نوێ</string>\n    <string name=\"add_tracking\">بەدواداچوون زیاد بکە</string>\n    <string name=\"add_to_library\">کردنە ناو کۆکراوەکان</string>\n    <string name=\"notification_first_add_to_library\">تکایە مانگا بۆ کۆکراوەکان زیاد بکە پێش کردنی ئەمە</string>\n    <string name=\"snack_add_to_library\">زیادکردنی مانگا بۆ کۆکراوەکان؟</string>\n    <string name=\"ext_downloading\">داونلۆدکردن</string>\n    <string name=\"label_downloaded_only\">تەنها داونلۆدکراوەکان</string>\n    <string name=\"parental_controls_info\">ئەمە ڕێگری ناکات لە دەرکەوتنی بابەتی سەروو 18 ی نا فەرمی لە بەرنامەکە.</string>\n    <string name=\"automatic_background\">ئۆتۆماتیک</string>\n    <string name=\"l_nav\">شێوە L</string>\n    <string name=\"nav_zone_prev\">پێشتر</string>\n    <string name=\"vertical_plus_viewer\">ستوونی بەردەوام</string>\n    <string name=\"pref_fullscreen\">تەواوی شاشە</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">دوگمەی دەنگی پێچەوانە</string>\n    <string name=\"pref_read_with_long_tap\">پیشاندان لە کاتی دەست لەسەر دانانی ماوە درێژ</string>\n    <string name=\"tapping_inverted_horizontal\">ئاسۆیی</string>\n    <string name=\"black_background\">ڕەش</string>\n    <string name=\"pref_image_scale_type\">دەوروبەری لاپەڕە</string>\n    <string name=\"scale_type_fit_screen\">گونجاو بە شاشە</string>\n    <string name=\"rotation_free\">ئازاد</string>\n    <string name=\"pref_create_folder_per_manga_summary\">درووستکردنی فۆڵدەر بە پێی تایتڵی مانگا</string>\n    <string name=\"pref_reader_theme\">ڕەنگی باکگراوند</string>\n    <string name=\"edge_nav\">سووچ</string>\n    <string name=\"right_and_left_nav\">ڕاست و چەپ</string>\n    <string name=\"nav_zone_next\">دواتر</string>\n    <string name=\"nav_zone_right\">ڕاست</string>\n    <string name=\"right_to_left_viewer\">ڕاست بۆ چەپ</string>\n    <string name=\"vertical_viewer\">ستوونی</string>\n    <string name=\"pref_viewer_type\">دۆخی خوێندنەوەی بنەڕەتی</string>\n    <string name=\"kindlish_nav\">شێوازی ئەمەزۆن کیندڵ</string>\n    <string name=\"nav_zone_left\">چەپ</string>\n    <string name=\"left_to_right_viewer\">چەپ بۆ ڕاست</string>\n    <string name=\"scale_type_fit_width\">گونجاو بە پانی شاشە</string>\n    <string name=\"scale_type_fit_height\">گونجاو بە درێژی شاشە</string>\n    <string name=\"webtoon_viewer\">شێوازی وێبتوون</string>\n    <string name=\"pref_rotation_type\">جۆری خولانەوەی بنەڕەتی</string>\n    <string name=\"zoom_start_automatic\">ئۆتۆماتیک</string>\n    <string name=\"rotation_force_landscape\">باری ئاسۆیی قوفڵکراو</string>\n    <string name=\"pref_webtoon_side_padding\">بۆشایی تەنیستەکان</string>\n    <string name=\"rotation_portrait\">باری ستوونی</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_always_show_chapter_transition\">هەمیشە تێپەڕینی چاپتەر پیشان بدە</string>\n    <string name=\"off\">کوژاوە</string>\n    <string name=\"on\">پێکراو</string>\n    <string name=\"action_show_manga\">نیشاندانی مانگا</string>\n    <string name=\"action_sort_last_manga_update\">کۆتانوێکردنەوەی مانگا</string>\n    <string name=\"action_sort_unread_count\">ژمارەی نەخوێندراوە</string>\n    <string name=\"delete_category\">ڕەشکردنەوەی بەش</string>\n    <string name=\"action_remove_everything\">لادانی هەمووشتێك</string>\n    <string name=\"action_search_hint\">گەڕان…</string>\n    <string name=\"delete_category_confirmation\">\\?ڕەشبکەیتەوە \\\"%s\\\"ئایا ئەتەوێ کە بەشی</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sk/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Pre %d titul</item>\n        <item quantity=\"few\">Pre %d tituly</item>\n        <item quantity=\"other\">Pre %d titulov</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Dostupná aktualizácia rozšírenia</item>\n        <item quantity=\"few\">%d dostupných aktualizácii rozšírenia</item>\n        <item quantity=\"other\">%d dostupné aktualizácie rozšírenia</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nová kapitola</item>\n        <item quantity=\"few\">%1$d nové kapitoly</item>\n        <item quantity=\"other\">%1$d nových kapitol</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Po %1$s minute</item>\n        <item quantity=\"few\">Po %1$s minútach</item>\n        <item quantity=\"other\">Po %1$s minútach</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Včera</item>\n        <item quantity=\"few\">Pred %1$d dňami</item>\n        <item quantity=\"other\">Pred %1$d dňami</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d sledovač</item>\n        <item quantity=\"few\">%d sledovače</item>\n        <item quantity=\"other\">%d sledovačov</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Ďalšia neprečítaná kapitola</item>\n        <item quantity=\"few\">Ďalšie %d neprečítané kapitoly</item>\n        <item quantity=\"other\">Ďalších %d neprečítaných kapitol</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s zostáva</item>\n        <item quantity=\"few\">%1$s zostávajúce</item>\n        <item quantity=\"other\">%1$s zostávajúcich</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Kapitoly %1$s a 1 ďalšia</item>\n        <item quantity=\"few\">Kapitoly %1$s a %2$d ďalšie</item>\n        <item quantity=\"other\">Kapitoly %1$s a %2$d ďalších</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s kapitola</item>\n        <item quantity=\"few\">%1$s kapitoly</item>\n        <item quantity=\"other\">%1$s kapitol</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Preskočenie %d kapitoly, buď zdroj chýba, alebo bol odfiltrovaný</item>\n        <item quantity=\"few\">Preskočenie %d kapitol, buď zdroj chýba, alebo bol odfiltrovaný</item>\n        <item quantity=\"other\">Zložky %d kapitoly, buď zdroj chýba, alebo boli filtrované</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Dokončené za %1$s s %2$s chybou</item>\n        <item quantity=\"few\">Dokončené za %1$s s %2$s chybami</item>\n        <item quantity=\"other\">Dokončené za %1$s s %2$s chybami</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategória</item>\n        <item quantity=\"few\">%d kategórie</item>\n        <item quantity=\"other\">%d kegórií</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Zajtra</item>\n        <item quantity=\"few\">O %1$d dni</item>\n        <item quantity=\"many\">O %1$d dní</item>\n        <item quantity=\"other\">O %1$d dní</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 deň</item>\n        <item quantity=\"few\">%d dni</item>\n        <item quantity=\"many\">%d dní</item>\n        <item quantity=\"other\">%d dní</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 strana</item>\n        <item quantity=\"few\">%1$s strany</item>\n        <item quantity=\"many\">%1$s strán</item>\n        <item quantity=\"other\">%1$s strán</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sk/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Názov</string>\n    <string name=\"categories\">Kategórie</string>\n    <string name=\"manga\">Záznamy v knižnici</string>\n    <string name=\"chapters\">Kapitoly</string>\n    <string name=\"track\">Sledovanie</string>\n    <string name=\"history\">História</string>\n    <string name=\"label_settings\">Nastavenia</string>\n    <string name=\"label_download_queue\">Sťahujúce sa</string>\n    <string name=\"label_library\">Knižnica</string>\n    <string name=\"label_recent_manga\">Nedávno čítané</string>\n    <string name=\"label_recent_updates\">Updaty</string>\n    <string name=\"label_backup\">Záloha a obnova</string>\n    <string name=\"label_migration\">Migrácia</string>\n    <string name=\"label_extensions\">Rozšírenia</string>\n    <string name=\"label_extension_info\">Info o rozšíreniach</string>\n    <string name=\"label_help\">Pomoc</string>\n    <string name=\"action_settings\">Nastavenia</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_bookmarked\">Uložené</string>\n    <string name=\"action_filter_unread\">Neprečítané</string>\n    <string name=\"action_filter_empty\">Zrušiť filter</string>\n    <string name=\"action_sort_alpha\">Abecedne</string>\n    <string name=\"action_sort_total\">Všetky kapitoly</string>\n    <string name=\"action_sort_last_read\">Naposledy čítané</string>\n    <string name=\"action_search\">Hľadať</string>\n    <string name=\"action_global_search\">Hľadať všade</string>\n    <string name=\"action_select_all\">Vybrať všetko</string>\n    <string name=\"action_mark_as_read\">Označiť ako prečítané</string>\n    <string name=\"action_mark_as_unread\">Označiť ako neprečítané</string>\n    <string name=\"action_mark_previous_as_read\">Označiť predošlé ako prečítané</string>\n    <string name=\"action_download\">Stiahnuť</string>\n    <string name=\"action_bookmark\">Záložka kapitoly</string>\n    <string name=\"action_remove_bookmark\">Odstrániť záložku kapitoly</string>\n    <string name=\"action_delete\">Vymazať</string>\n    <string name=\"action_update_library\">Aktualizovať knižnicu</string>\n    <string name=\"action_edit\">Upraviť</string>\n    <string name=\"action_add\">Pridať</string>\n    <string name=\"action_add_category\">Pridať kategóriu</string>\n    <string name=\"action_edit_categories\">Upraviť kategórie</string>\n    <string name=\"action_rename_category\">Premenovať kategóriu</string>\n    <string name=\"action_move_category\">Určiť kategórie</string>\n    <string name=\"action_edit_cover\">Upraviť obal</string>\n    <string name=\"action_pause\">Pauza</string>\n    <string name=\"action_previous_chapter\">Predošlá kapitola</string>\n    <string name=\"action_next_chapter\">Nasledujúca kapitola</string>\n    <string name=\"action_retry\">Skúsiť znovu</string>\n    <string name=\"action_remove\">Odstrániť</string>\n    <string name=\"action_resume\">Pokračovať</string>\n    <string name=\"action_open_in_browser\">Otvoriť v browseri</string>\n    <string name=\"action_open_in_web_view\">Otvoriť vo WebView</string>\n    <string name=\"action_display_mode\">Režim zobrazenia</string>\n    <string name=\"action_display\">Zobraziť</string>\n    <string name=\"action_display_grid\">Kompaktná mriežka</string>\n    <string name=\"action_display_list\">List</string>\n    <string name=\"action_display_download_badge\">Stiahnuté kapitoly</string>\n    <string name=\"action_cancel\">Zrušiť</string>\n    <string name=\"action_sort\">Triediť</string>\n    <string name=\"action_install\">Nainštalovať</string>\n    <string name=\"action_share\">Zdieľať</string>\n    <string name=\"action_save\">Uložiť</string>\n    <string name=\"action_reset\">Reset</string>\n    <string name=\"action_undo\">Krok späť</string>\n    <string name=\"action_open_log\">Otvoriť log</string>\n    <string name=\"action_restore\">Obnoviť</string>\n    <string name=\"loading\">Načítava sa…</string>\n    <string name=\"app_not_available\">Aplikácia nedostupná</string>\n    <string name=\"pref_category_general\">Všeobecné</string>\n    <string name=\"pref_category_reader\">Prehliadač</string>\n    <string name=\"pref_category_downloads\">Sťahovanie</string>\n    <string name=\"pref_category_tracking\">Sledovanie</string>\n    <string name=\"pref_category_advanced\">Rozšírené</string>\n    <string name=\"pref_category_about\">O Aplikácii</string>\n    <string name=\"pref_library_columns\">Položky na riadok</string>\n    <string name=\"portrait\">Na výšku</string>\n    <string name=\"landscape\">Na šírku</string>\n    <string name=\"pref_library_update_interval\">Automatické aktualizácie</string>\n    <string name=\"update_never\">Vyp.</string>\n    <string name=\"update_6hour\">Každých 6 hodín</string>\n    <string name=\"update_12hour\">Každých 12 hodín</string>\n    <string name=\"update_24hour\">Raz za deň</string>\n    <string name=\"update_48hour\">Každé 2 dni</string>\n    <string name=\"update_weekly\">Každý týždeň</string>\n    <string name=\"all\">Všetko</string>\n    <string name=\"pref_library_update_restriction\">Automatické aktualizácie obmedzení zariadenia</string>\n    <string name=\"charging\">Pri nabíjaní</string>\n    <string name=\"pref_update_only_non_completed\">So stavom \\\"Dokončené\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Aktualizácia priebehu po prečítaní</string>\n    <string name=\"default_category\">Predvolená kategória</string>\n    <string name=\"default_category_summary\">Vždy sa opýtať</string>\n    <string name=\"ext_update\">aktualizovať</string>\n    <string name=\"ext_install\">Nainštalovať</string>\n    <string name=\"ext_pending\">Čakajúce</string>\n    <string name=\"ext_downloading\">Sťahujem</string>\n    <string name=\"ext_installing\">Inštalujem</string>\n    <string name=\"ext_installed\">Nainštalovaný</string>\n    <string name=\"ext_trust\">Dôverovať</string>\n    <string name=\"ext_untrusted\">Odobrať dôveru</string>\n    <string name=\"ext_uninstall\">Odinštalovať</string>\n    <string name=\"untrusted_extension\">Nedôveryhodné rozšírenie</string>\n    <string name=\"untrusted_extension_message\">Toto rozšírenie bolo podpísané nedôveryhodným certifikátom a nebolo aktivované.\n\\n\n\\nŠkodlivé rozšírenie môže čítať všetky prihlasovacie údaje uložené v Mihon alebo spúšťať ľubovoľný kód.\n\\n\n\\nDôverovaním tohto certifikátu akceptujete tieto riziká.</string>\n    <string name=\"pref_fullscreen\">Na celú obrazovku</string>\n    <string name=\"pref_page_transitions\">Animácia prechodov strán</string>\n    <string name=\"pref_double_tap_anim_speed\">Rýchlosť animácie pre dvojité ťuknutie</string>\n    <string name=\"pref_show_page_number\">Zobraziť číslo strany</string>\n    <string name=\"pref_crop_borders\">Orezať okraje</string>\n    <string name=\"pref_custom_brightness\">Vlastný jas</string>\n    <string name=\"pref_custom_color_filter\">Vlastný farebný filter</string>\n    <string name=\"pref_color_filter_mode\">Farebný filter: režim splynutia</string>\n    <string name=\"filter_mode_overlay\">Prekrytie</string>\n    <string name=\"filter_mode_multiply\">Znásobiť</string>\n    <string name=\"filter_mode_screen\">Obrazovka</string>\n    <string name=\"filter_mode_lighten\">Dodge / Zosvetliť</string>\n    <string name=\"filter_mode_darken\">Spáliť / Stmaviť</string>\n    <string name=\"pref_keep_screen_on\">Nechať obrazovku zapnutú</string>\n    <string name=\"pref_skip_read_chapters\">Preskočiť kapitoly označené ako prečítané</string>\n    <string name=\"pref_reader_navigation\">Navigácia</string>\n    <string name=\"pref_read_with_volume_keys\">Tlačidlá hlasitosti</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Invertovať tlačidlá hlasitosti</string>\n    <string name=\"pref_read_with_long_tap\">Zobrazenie pri dlhom podržaní</string>\n    <string name=\"pref_reader_theme\">Farba pozadia</string>\n    <string name=\"white_background\">Biela</string>\n    <string name=\"black_background\">Čierna</string>\n    <string name=\"pref_viewer_type\">Predvolený režim čítania</string>\n    <string name=\"left_to_right_viewer\">Zľava doprava</string>\n    <string name=\"right_to_left_viewer\">Sprava doľava</string>\n    <string name=\"vertical_viewer\">Vertikálne</string>\n    <string name=\"webtoon_viewer\">Ako Webtoon - Zhora dole a strany sa spájajú do jednej dlhej</string>\n    <string name=\"pager_viewer\">Stránkovanie</string>\n    <string name=\"pref_image_scale_type\">Mód škálovania</string>\n    <string name=\"scale_type_fit_screen\">Prispôsobiť obrazovke</string>\n    <string name=\"scale_type_stretch\">natiahnuť</string>\n    <string name=\"scale_type_fit_width\">Prispôsobiť šírke</string>\n    <string name=\"scale_type_fit_height\">Prispôsobiť výške</string>\n    <string name=\"scale_type_original_size\">Pôvodná veľkosť</string>\n    <string name=\"scale_type_smart_fit\">Inteligentne prispôsobiť</string>\n    <string name=\"pref_zoom_start\">Začiatočná poloha priblíženia</string>\n    <string name=\"zoom_start_automatic\">Automatická</string>\n    <string name=\"zoom_start_left\">Vľavo</string>\n    <string name=\"zoom_start_right\">Vpravo</string>\n    <string name=\"zoom_start_center\">Stred</string>\n    <string name=\"double_tap_anim_speed_0\">Žiadna animácia</string>\n    <string name=\"double_tap_anim_speed_normal\">Normálne</string>\n    <string name=\"double_tap_anim_speed_fast\">Rýchlo</string>\n    <string name=\"pref_rotation_type\">Predvolený typ rotácie</string>\n    <string name=\"rotation_free\">Voľná</string>\n    <string name=\"rotation_force_portrait\">Zamknuté na výšku</string>\n    <string name=\"rotation_force_landscape\">Zamknuté na šírku</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">Po manuálnom označení ako prečítané</string>\n    <string name=\"pref_remove_after_read\">Po prečítaní automaticky odstrániť</string>\n    <string name=\"disabled\">Zakázané</string>\n    <string name=\"last_read_chapter\">Naposledy čítaná kapitola</string>\n    <string name=\"second_to_last\">Predposledná prečítaná kapitola</string>\n    <string name=\"third_to_last\">Predpred posledná kapitola</string>\n    <string name=\"fourth_to_last\">Štvrtá predposledná prečítaná kapitola</string>\n    <string name=\"fifth_to_last\">Piata posledná prečítaná kapitola</string>\n    <string name=\"pref_download_new\">Stiahnuť nové kapitoly</string>\n    <string name=\"services\">Sledovače</string>\n    <string name=\"pref_create_backup\">Vytvoriť zálohu</string>\n    <string name=\"pref_create_backup_summ\">Možno použiť na obnovenie aktuálnej knižnice</string>\n    <string name=\"pref_restore_backup\">Obnoviť zálohu</string>\n    <string name=\"pref_restore_backup_summ\">Obnoviť knižnicu zo záložného súboru</string>\n    <string name=\"pref_backup_interval\">Frekvencia zálohovania</string>\n    <string name=\"backup_created\">Záloha bola vytvorená</string>\n    <string name=\"restore_completed\">Obnovenie dokončené</string>\n    <string name=\"backup_choice\">Čo chcete zálohovať?</string>\n    <string name=\"restoring_backup\">Obnovuje sa záloha</string>\n    <string name=\"creating_backup\">Vytvára sa záloha</string>\n    <string name=\"pref_clear_chapter_cache\">Vymazať vyrovnávaciu pamäť kapitol</string>\n    <string name=\"used_cache\">Použité: %1$s</string>\n    <string name=\"cache_deleted\">Cache sa vyčistila. %1$d súborov bolo odstráneno</string>\n    <string name=\"cache_delete_error\">Počas vymazania sa vyskytla chyba</string>\n    <string name=\"pref_clear_cookies\">Vymazať cookies</string>\n    <string name=\"cookies_cleared\">Súbory cookie boli vymazané</string>\n    <string name=\"pref_clear_database\">Vymazať databázu</string>\n    <string name=\"pref_clear_database_summary\">Odstránenie histórie mangy, ktorá nie je uložená vo vašej knižnici</string>\n    <string name=\"action_webview_back\">Späť</string>\n    <string name=\"action_webview_forward\">Vpred</string>\n    <string name=\"action_webview_refresh\">Obnoviť</string>\n    <string name=\"pref_category_library\">Knižnica</string>\n    <string name=\"ext_obsolete\">Zastaraný</string>\n    <string name=\"obsolete_extension_message\">Toto rozšírenie už nie je k dispozícii.</string>\n    <string name=\"clear_database_completed\">Záznamy boli odstránené</string>\n    <string name=\"version\">Verzia</string>\n    <string name=\"pref_enable_acra\">Odosielať správy o zlyhaní</string>\n    <string name=\"pref_acra_summary\">Pomáha opraviť akékoľvek chyby. Nebudú odoslané žiadne citlivé údaje</string>\n    <string name=\"login_title\">Prihláste sa do %1$s</string>\n    <string name=\"username\">Užívateľské meno</string>\n    <string name=\"password\">Heslo</string>\n    <string name=\"login\">Prihlásenie</string>\n    <string name=\"login_success\">Prihlásený</string>\n    <string name=\"unknown_error\">Neznáma chyba</string>\n    <string name=\"updating_category\">Aktualizuje sa kategória</string>\n    <string name=\"no_more_results\">Žiadne ďalšie výsledky</string>\n    <string name=\"local_source\">Lokálny zdroj</string>\n    <string name=\"other_source\">Ostatné</string>\n    <string name=\"action_global_search_hint\">Globálne vyhľadávanie…</string>\n    <string name=\"latest\">Najnovší</string>\n    <string name=\"browse\">Prehľadávať</string>\n    <string name=\"ongoing\">Pokračujúci</string>\n    <string name=\"unknown\">Neznámy</string>\n    <string name=\"licensed\">Licencovaný</string>\n    <string name=\"remove_from_library\">Odstrániť z knižnice</string>\n    <string name=\"manga_added_library\">Pridané do knižnice</string>\n    <string name=\"manga_removed_library\">Odstránené z knižnice</string>\n    <string name=\"delete_downloads_for_manga\">Odstrániť stiahnuté kapitoly?</string>\n    <string name=\"copied_to_clipboard\">Skopírované do schránky:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Zdroj nie je nainštalovaný: %1$s</string>\n    <string name=\"display_mode_chapter\">Kapitola %1$s</string>\n    <string name=\"chapter_downloading_progress\">Sťahovanie (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Chyba</string>\n    <string name=\"chapter_paused\">Pozastavené</string>\n    <string name=\"show_title\">Názov zdroja</string>\n    <string name=\"show_chapter_number\">Číslo kapitoly</string>\n    <string name=\"sort_by_source\">Podľa zdroja</string>\n    <string name=\"sort_by_number\">Podľa čísla kapitoly</string>\n    <string name=\"manga_download\">Stiahnuť</string>\n    <string name=\"download_unread\">Neprečítané</string>\n    <string name=\"confirm_delete_chapters\">Naozaj chcete odstrániť vybrané kapitoly?</string>\n    <string name=\"manga_tracking_tab\">Sledovanie</string>\n    <string name=\"reading\">Čítanie</string>\n    <string name=\"completed\">Dokončený</string>\n    <string name=\"dropped\">Upustený</string>\n    <string name=\"on_hold\">Pozastavený</string>\n    <string name=\"plan_to_read\">Plánované čítanie</string>\n    <string name=\"repeating\">Znovu čítanie</string>\n    <string name=\"score\">Skóre</string>\n    <string name=\"title\">Názov</string>\n    <string name=\"status\">Stav</string>\n    <string name=\"track_status\">Stav</string>\n    <string name=\"track_type\">Typ</string>\n    <string name=\"error_category_exists\">Kategória s týmto názvom už existuje!</string>\n    <string name=\"snack_categories_deleted\">Kategórie boli odstránené</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Týmto sa odstráni dátum prečítania tejto kapitoly. Si si istý?</string>\n    <string name=\"dialog_with_checkbox_reset\">Resetovať všetky kapitoly mangy</string>\n    <string name=\"snack_add_to_library\">Pridať mangu do knižnice?</string>\n    <string name=\"picture_saved\">Obrázok bol uložený</string>\n    <string name=\"custom_filter\">Vlastný filter</string>\n    <string name=\"set_as_cover\">Nastaviť ako obal</string>\n    <string name=\"cover_updated\">Obal bol aktualizovaný</string>\n    <string name=\"chapter_progress\">Strana: %1$d</string>\n    <string name=\"no_next_chapter\">Ďalšia kapitola nebola nájdená</string>\n    <string name=\"decode_image_error\">Obrázok sa nepodarilo načítať</string>\n    <string name=\"confirm_set_image_as_cover\">Chcete použiť tento obrázok ako obal?</string>\n    <string name=\"transition_finished\">Dokončená:</string>\n    <string name=\"transition_current\">Aktuálna:</string>\n    <string name=\"transition_next\">Ďalšia:</string>\n    <string name=\"transition_previous\">Predchádzajúcí:</string>\n    <string name=\"transition_no_next\">Žiadna ďalšia kapitola</string>\n    <string name=\"transition_no_previous\">Žiadna predchádzajúca kapitola</string>\n    <string name=\"transition_pages_loading\">Načítání stránok…</string>\n    <string name=\"transition_pages_error\">Chyba pri načítání stránok: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Vyberte data, ktoré chcete zahrnúť</string>\n    <string name=\"migrate\">Migrovať</string>\n    <string name=\"copy\">Kopírovať</string>\n    <string name=\"download_queue_error\">Nepodarilo sa stiahnuť kapitoly. Môžete to skúsiť znova v sekcii na stiahnutie</string>\n    <string name=\"notification_new_chapters\">Boli nájdené nové kapitoly</string>\n    <string name=\"notification_cover_update_failed\">Chyba pri aktualizácii obalu</string>\n    <string name=\"notification_first_add_to_library\">Predtým, ako to urobíte, pridajte do svojej knižnice mangu</string>\n    <string name=\"file_select_cover\">Vyberte obrázok obalu</string>\n    <string name=\"file_select_backup\">Vyberte záložný súbor</string>\n    <string name=\"update_check_confirm\">Stiahnuť</string>\n    <string name=\"update_check_no_new_updates\">Žiadné nové aktualizácie</string>\n    <string name=\"update_check_notification_download_in_progress\">Prebiehá stahovanie…</string>\n    <string name=\"update_check_notification_download_complete\">Klepnutím nainštalujte</string>\n    <string name=\"update_check_notification_download_error\">Chyba sťahovania</string>\n    <string name=\"update_check_notification_update_available\">Dostupná nová aktualizácia!</string>\n    <string name=\"information_no_downloads\">Žiadne sťahovanie</string>\n    <string name=\"information_no_recent\">Žiadne nedávne aktualizácie</string>\n    <string name=\"information_no_recent_manga\">Nič nedávno čítané</string>\n    <string name=\"information_empty_library\">Vaša knižnica je prázdna</string>\n    <string name=\"information_empty_category\">Nemáte žiadne kategórie. Ťuknutím na tlačidlo plus si ju vytvorte a usporiadajte knižnicu.</string>\n    <string name=\"download_notifier_downloader_title\">Preberanie</string>\n    <string name=\"download_notifier_title_error\">Chyba</string>\n    <string name=\"download_notifier_unknown_error\">Kapitolu sa nepodarilo stiahnuť z dôvodu neočakávanej chyby</string>\n    <string name=\"download_notifier_text_only_wifi\">WiFi pripojenie nie je dostupné</string>\n    <string name=\"download_notifier_no_network\">Sieťové pripojenie nie je dostupné</string>\n    <string name=\"download_notifier_download_paused\">Sťahovanie bolo pozastavené</string>\n    <string name=\"channel_common\">Bežný</string>\n    <string name=\"no_results_found\">Neboli nájdené žiadne výsledky</string>\n    <string name=\"migration_selection_prompt\">Vyberte zdroj zo ktorého chcete migrovat</string>\n    <string name=\"action_sort_latest_chapter\">Najnovšia kapitola</string>\n    <string name=\"action_view_chapters\">Zobraziť kapitoly</string>\n    <string name=\"action_cancel_all\">Zrušiť všetky</string>\n    <string name=\"action_menu\">Menu</string>\n    <string name=\"action_newest\">Najnovšie</string>\n    <string name=\"action_oldest\">Najstaršie</string>\n    <string name=\"action_move_to_top\">Presunúť navrch</string>\n    <string name=\"information_webview_outdated\">Prosím aktualizujte si aplikáciu WebView pre lepšiu kompatibilitu</string>\n    <string name=\"information_cloudflare_bypass_failure\">Nepodarilo sa obísť službu Cloudflare</string>\n    <string name=\"paused\">Pozastavené</string>\n    <string name=\"unread\">Neprečítané</string>\n    <string name=\"hide_notification_content\">Skryť obsah upozornení</string>\n    <string name=\"action_disable_all\">Zakázať všetko</string>\n    <string name=\"action_enable_all\">Povoliť všetko</string>\n    <string name=\"action_select_inverse\">Vyberte inverzne</string>\n    <string name=\"action_search_settings\">Hľadať v nastaveniach</string>\n    <string name=\"action_sort_date_added\">Dátum pridaný</string>\n    <string name=\"action_sort_chapter_fetch_date\">Dátum načítania kapitoly</string>\n    <string name=\"confirm_lock_change\">Prihlásiť sa pre potvrdenie zmien</string>\n    <string name=\"label_default\">Predvolené</string>\n    <string name=\"label_sources\">Zdroje</string>\n    <string name=\"label_more\">Viac</string>\n    <string name=\"notification_chapters_multiple\">Kapitoly %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Kapitola %1$s a %2$d ďalšie</string>\n    <string name=\"notification_chapters_single\">Kapitola %1$s</string>\n    <string name=\"secure_screen\">Zabezpečená obrazovka</string>\n    <string name=\"action_show_errors\">Ťuknutím zobrazíte podrobnosti</string>\n    <string name=\"theme_system\">Podľa systému</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"action_show_manga\">Zobraziť záznam</string>\n    <string name=\"theme_yinyang\">Yin a Yang</string>\n    <string name=\"pref_category_appearance\">Vzhľad</string>\n    <string name=\"action_migrate\">Migrovať</string>\n    <string name=\"action_display_comfortable_grid\">Komfortná mriežka</string>\n    <string name=\"action_display_show_tabs\">Zobraziť karty kategórií</string>\n    <string name=\"action_display_show_number_of_items\">Zobraziť počet položiek</string>\n    <string name=\"action_order_by_upload_date\">Podľa dátumu nahratia</string>\n    <string name=\"action_start\">Začať</string>\n    <string name=\"action_display_cover_only_grid\">Mriežka len s obalmi</string>\n    <string name=\"action_display_local_badge\">Lokálny zdroj</string>\n    <string name=\"action_display_language_badge\">Jazyk</string>\n    <string name=\"action_pin\">Pripnúť</string>\n    <string name=\"cancel_all_for_series\">Zrušiť všetko pre túto sériu</string>\n    <string name=\"action_order_by_chapter_number\">Podľa čísla kapitoly</string>\n    <string name=\"action_start_downloading_now\">Začať sťahovať teraz</string>\n    <string name=\"secure_screen_summary\">Skryť obsah aplikácie pri prepínaní aplikácie a blokovať tvorbu snímkov obrazovky</string>\n    <string name=\"action_asc\">Vzostupne</string>\n    <string name=\"action_desc\">Zostupne</string>\n    <string name=\"action_move_to_bottom\">Presunúť na spodok</string>\n    <string name=\"action_disable\">Zakázať</string>\n    <string name=\"action_unpin\">Odopnúť</string>\n    <string name=\"label_warning\">Upozornenie</string>\n    <string name=\"action_filter_tracked\">Sledované</string>\n    <string name=\"pref_category_theme\">Téma</string>\n    <string name=\"theme_light\">Vyp.</string>\n    <string name=\"theme_dark\">Zap.</string>\n    <string name=\"pref_app_theme\">Téma aplikácie</string>\n    <string name=\"theme_monet\">Dynamické</string>\n    <string name=\"theme_greenapple\">Zelené jablko</string>\n    <string name=\"theme_yotsuba\">Jotsuba</string>\n    <string name=\"theme_midnightdusk\">Polnočný súmrak</string>\n    <string name=\"pref_dark_theme_pure_black\">Čisto čierny tmavý režim</string>\n    <string name=\"theme_strawberrydaiquiri\">Jahodové Daiquiri</string>\n    <string name=\"theme_tealturquoise\">Modrozelená a tyrkysová</string>\n    <string name=\"pref_date_format\">Formát dátumu</string>\n    <string name=\"pref_manage_notifications\">Spravovať oznámenia</string>\n    <string name=\"pref_category_security\">Bezpečnosť</string>\n    <string name=\"lock_with_biometrics\">Vyžaduje odomknutie</string>\n    <string name=\"lock_when_idle\">Uzamknúť pri nečinnosti</string>\n    <string name=\"lock_always\">Vždy</string>\n    <string name=\"lock_never\">Nikdy</string>\n    <string name=\"pref_show_nsfw_source\">Zobraziť v zoznamoch zdrojov a rozšírení</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) zdroje</string>\n    <string name=\"relative_time_today\">Dnes</string>\n    <string name=\"connected_to_wifi\">Iba na Wi-Fi</string>\n    <string name=\"restrictions\">Obmedzenia: %s</string>\n    <string name=\"pref_update_only_completely_read\">S neprečítanými kapitolami</string>\n    <string name=\"pref_update_only_started\">Ktoré sa ešte nezačali</string>\n    <string name=\"parental_controls_info\">Toto nastavenie avšak nebráni tomu, aby sa v aplikácii objavil neoficiálny alebo potenciálne nesprávne označený obsah NSFW (18+).</string>\n    <string name=\"pref_category_library_update\">Globálna aktualizácia</string>\n    <string name=\"pref_library_update_refresh_metadata\">Automatický obnoviť metadata</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Pri aktualizácii knižnice skontrolujte nový obal a podrobnosti</string>\n    <string name=\"pref_category_display\">Zobraziť</string>\n    <string name=\"update_72hour\">Každé 3 dni</string>\n    <string name=\"update_already_running\">Aktualizácia už prebieha</string>\n    <string name=\"empty_backup_error\">Žiadne záznami v knižnici k zálohovaniu</string>\n    <string name=\"requires_app_restart\">Vyžaduje reštart aplikácie, aby sa zmeny prejavili</string>\n    <string name=\"label_data\">Dáta</string>\n    <string name=\"logout\">Odhlásiť sa</string>\n    <string name=\"sort_by_upload_date\">Podľa dátumu nahratia</string>\n    <string name=\"spen_previous_page\">Predchádzajúca strana</string>\n    <string name=\"pref_show_navigation_mode\">Zobraziť prekrytie oblastí dotyku</string>\n    <string name=\"nav_zone_next\">Ďalší</string>\n    <string name=\"restoring_backup_error\">Obnovenie zálohy zlyhalo</string>\n    <string name=\"restoring_backup_canceled\">Obnovenie bolo zrušené</string>\n    <string name=\"tabs_header\">Karty</string>\n    <string name=\"error_user_agent_string_blank\">Reťazec User-Agent nemôže byť prázdny</string>\n    <string name=\"pref_reset_viewer_flags\">Obnovenie nastavení čítačky pre jednotlivé série</string>\n    <string name=\"clear_history_completed\">História bola odstránená</string>\n    <string name=\"clear_history_confirmation\">Ste si istý? Celá história sa stratí.</string>\n    <string name=\"confirm_set_chapter_settings\">Naozaj chcete tieto nastavenia uložiť ako predvolené?</string>\n    <string name=\"add_to_library\">Pridať do knižnice</string>\n    <string name=\"pref_show_reading_mode_summary\">Krátko zobrazí aktuálny režim pri otvorení čítačky</string>\n    <string name=\"pref_grayscale\">Odtiene šedej</string>\n    <string name=\"pref_highest\">Najvyššie</string>\n    <string name=\"backup_in_progress\">Zálohovanie už prebieha</string>\n    <string name=\"pref_refresh_library_covers\">Obnoviť obaly knižnice</string>\n    <string name=\"logout_title\">Odhlásiť sa z %1$s?</string>\n    <string name=\"complete_list\">Kompletný zoznam</string>\n    <string name=\"file_picker_error\">Nenašla sa žiadna aplikácia na výber súborov</string>\n    <string name=\"channel_complete\">Kompletný</string>\n    <string name=\"theme_tidalwave\">Prílivová vlna</string>\n    <string name=\"pref_category_delete_chapters\">Odstrániť kapitoly</string>\n    <string name=\"save_chapter_as_cbz\">Uložiť ako archív CBZ</string>\n    <string name=\"split_tall_images_summary\">Zlepšuje výkon čítačky</string>\n    <string name=\"tracking_guide\">Príručka k sledovačom</string>\n    <string name=\"enhanced_services\">Vylepšené sledovače</string>\n    <string name=\"label_network\">Sieť</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Vymazanie vyrovnávacej pamäte kapitoly pri zatvorení aplikácie</string>\n    <string name=\"whats_new\">Čo je nové</string>\n    <string name=\"help_translate\">Pomôžte s prekladom</string>\n    <string name=\"licenses\">Licencia Open Source</string>\n    <string name=\"error_sharing_cover\">Chyba pri zdieľaní obalu</string>\n    <string name=\"loader_not_implemented_error\">Zdroj sa nenašiel</string>\n    <string name=\"empty_screen\">No, toto je trápne</string>\n    <string name=\"information_webview_required\">WebView je potrebné pre Mihon</string>\n    <string name=\"popular\">Populárne</string>\n    <string name=\"reading_list\">Zoznam čítania</string>\n    <string name=\"track_finished_reading_date\">Dátum ukončenia</string>\n    <string name=\"updates_last_update_info\">Posledná aktualizácia knižnice: %s</string>\n    <string name=\"appwidget_updates_description\">Pozrite si svoju nedávno aktualizovanú mangu</string>\n    <string name=\"pref_hide_threshold\">Citlivosť pre skrytie ponuky pri posúvaní</string>\n    <string name=\"page_list_empty_error\">Nenašli sa žiadne stránky</string>\n    <string name=\"pref_always_show_chapter_transition\">Vždy zobraziť prechod medzi kapitolami</string>\n    <string name=\"pref_low\">Nízke</string>\n    <string name=\"backup_restore_content_full\">Údaje zo záložného súboru sa obnovia.\n\\n\n\\nBudete musieť nainštalovať všetky chýbajúce rozšírenia a potom sa prihlásiť do sledovacích služieb, aby ste ich mohli používať.</string>\n    <string name=\"pref_reset_viewer_flags_error\">Nepodarilo sa obnoviť nastavenia čítačky</string>\n    <string name=\"pref_tablet_ui_mode\">Používateľské rozhranie tabletu</string>\n    <string name=\"manga_from_library\">Manga z knižnice</string>\n    <string name=\"cancelled\">Zrušené</string>\n    <string name=\"on_hold_list\">Zoznam pozastavených položiek</string>\n    <string name=\"download_ahead\">Stiahnuť dopredu</string>\n    <string name=\"auto_download_while_reading\">Automatické sťahovanie počas čítania</string>\n    <string name=\"download_ahead_info\">Funguje iba na položkách v knižnici a ak je aktuálna kapitola a nasledujúca kapitola už stiahnutá.</string>\n    <string name=\"unknown_status\">Neznámy stav</string>\n    <string name=\"on_hiatus\">Prestávka</string>\n    <string name=\"add_tracking\">Pridať sledovanie</string>\n    <string name=\"unfinished_list\">Nedokončený zoznam</string>\n    <string name=\"information_empty_category_dialog\">Zatiaľ nemáte žiadne kategórie.</string>\n    <string name=\"ext_info_age_rating\">Vekové hodnotenie</string>\n    <string name=\"date\">Dátum</string>\n    <string name=\"tapping_inverted_both\">Obe</string>\n    <string name=\"nav_zone_prev\">Predchádzajúci</string>\n    <string name=\"pref_high\">Vysoké</string>\n    <string name=\"restore_miui_warning\">Zálohovanie/obnovenie nemusí fungovať správne, ak je vypnutá optimalizácia MIUI.</string>\n    <string name=\"pref_disable_battery_optimization\">Zakázať optimalizáciu batérie</string>\n    <string name=\"logout_success\">Teraz ste odhlásení</string>\n    <string name=\"local_source_help_guide\">Príručka pre lokálne zdroje</string>\n    <string name=\"unknown_author\">Neznámy autor</string>\n    <string name=\"clipboard_copy_error\">Nepodarilo sa skopírovať do schránky</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nepodarilo sa nájsť cestu k súboru stránky %d</string>\n    <string name=\"channel_errors\">Chyby</string>\n    <string name=\"off\">Vyp.</string>\n    <string name=\"download_insufficient_space\">Nepodarilo sa stiahnuť kapitoly z dôvodu nedostatku úložného priestoru</string>\n    <string name=\"action_sort_count\">Celkový počet</string>\n    <string name=\"ext_installer_legacy\">Pôvodný</string>\n    <string name=\"automatic_background\">Automatický</string>\n    <string name=\"tapping_inverted_none\">Žiadne</string>\n    <string name=\"delete_category\">Odstrániť kategóriu</string>\n    <string name=\"none\">Žiadne</string>\n    <string name=\"include\">Zahrnúť: %s</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Vytvára priečinky podľa názvu mangy</string>\n    <string name=\"edge_nav\">Okraj</string>\n    <string name=\"right_and_left_nav\">Vpravo a vľavo</string>\n    <string name=\"nav_zone_left\">Vľavo</string>\n    <string name=\"rotation_reverse_portrait\">Obrátený portrét</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Povoliť odstraňovanie kapitol so záložkami</string>\n    <string name=\"channel_ext_updates\">Aktualizácie rozšírení</string>\n    <string name=\"pref_app_language\">Jazyk aplikácie</string>\n    <string name=\"ext_info_language\">Jazyk</string>\n    <string name=\"ext_installer_pref\">Inštalátor</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku nebeží</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Nainštalujte a spustite Shizuku, aby ste mohli používať Shizuku ako inštalátor rozšírení.</string>\n    <string name=\"pref_show_navigation_mode_summary\">Krátko ukázať, keď je čítačka otvorená</string>\n    <string name=\"pref_dual_page_invert\">Prevrátiť rozdelenie na dve strany</string>\n    <string name=\"nav_zone_right\">Vpravo</string>\n    <string name=\"vertical_plus_viewer\">Nepretržité vertikálne</string>\n    <string name=\"pref_viewer_nav\">Dotykové zóny</string>\n    <string name=\"pref_landscape_zoom\">Priblížiť obrázok na šírku</string>\n    <string name=\"pref_category_reading\">Čítanie</string>\n    <string name=\"pref_category_for_this_series\">Pre túto sériu</string>\n    <string name=\"pref_webtoon_side_padding\">Bočné odsadenie</string>\n    <string name=\"pref_category_auto_download\">Automatické sťahovanie</string>\n    <string name=\"source_empty_screen\">Nenašiel sa žiadny zdroj</string>\n    <string name=\"channel_progress\">Priebeh</string>\n    <string name=\"pref_clear_history\">Vymazať históriu</string>\n    <string name=\"error_saving_cover\">Chyba pri ukladaní obalu</string>\n    <string name=\"set_chapter_settings_as_default\">Nastaviť ako predvolené</string>\n    <string name=\"tracking_info\">Jednosmerná synchronizácia postupu v mange na externé sledovacie služby (sledovače). Nastavte sledovanie pre jednotlivé položky mangy z ich tlačidla sledovania.</string>\n    <string name=\"pref_category_reading_mode\">Režim čítania</string>\n    <string name=\"channel_new_chapters\">Aktualizácie kapitol</string>\n    <string name=\"clear_database_source_item_count\">V databáze je manga %1$d, ktorá sa nenachádza v knižnici</string>\n    <string name=\"updating_library\">Aktualizácia knižnice</string>\n    <string name=\"track_started_reading_date\">Dátum začatia</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Obnovenie režimu čítania a orientácie pre všetky série</string>\n    <string name=\"pref_verbose_logging\">Podrobné logovanie</string>\n    <string name=\"check_for_updates\">Skontrolovať aktualizácie</string>\n    <string name=\"recent_manga_time\">Kap. %1$s - %2$s</string>\n    <string name=\"download_notifier_split_page_not_found\">Strana %d sa pri rozdeľovaní nenašla</string>\n    <string name=\"publishing_finished\">Publikovanie ukončené</string>\n    <string name=\"no_pinned_sources\">Nemáte žiadne pripnuté zdroje</string>\n    <string name=\"update_check_eol\">Táto verzia systému Android už nie je podporovaná</string>\n    <string name=\"action_sort_unread_count\">Počet neprečítaných</string>\n    <string name=\"kindlish_nav\">Podobné Kindl-u</string>\n    <string name=\"pref_lowest\">Najnižšie</string>\n    <string name=\"categorized_display_settings\">Nastavenia triedenia a zobrazenia pre jednotlivé kategórie</string>\n    <string name=\"backup_restore_missing_sources\">Chýbajúce zdroje:</string>\n    <string name=\"pref_verbose_logging_summary\">Výpis podrobných logov do systémových logov (znižuje výkon aplikácie)</string>\n    <string name=\"network_not_metered\">Iba v nemeranej sieti</string>\n    <string name=\"ext_update_all\">Aktualizovať všetko</string>\n    <string name=\"extension_api_error\">Nepodarilo sa získať zoznam rozšírení</string>\n    <string name=\"ext_install_service_notif\">Inštaluje sa rozšírenie…</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invertovať oblasti dotyku</string>\n    <string name=\"pref_create_folder_per_manga\">Uloženie stránok do samostatných priečinkov</string>\n    <string name=\"gray_background\">Šedivá</string>\n    <string name=\"rotation_landscape\">Na šírku</string>\n    <string name=\"restore_in_progress\">Obnovenie už prebieha</string>\n    <string name=\"pref_dump_crash_logs_summary\">Uložiť logy o chybách do súboru na zdieľanie s vývojármi</string>\n    <string name=\"manga_cover\">Obal</string>\n    <string name=\"cover_saved\">Obal uložený</string>\n    <string name=\"delete_category_confirmation\">Prajete si vymazať kategóriu %s?</string>\n    <string name=\"tapping_inverted_vertical\">Vertikálne</string>\n    <string name=\"backup_restore_missing_trackers\">Sledovače, do ktorých nie ste prihlásení:</string>\n    <string name=\"pref_dns_over_https\">DNS cez HTTPS (DoH)</string>\n    <string name=\"invalid_backup_file\">Neplatný záložný súbor</string>\n    <string name=\"restore_duration\">%1$02d min., %2$02d s</string>\n    <string name=\"multi_lang\">Viacjazyčné</string>\n    <string name=\"no_chapters_error\">Nenašli sa žiadne kapitoly</string>\n    <string name=\"ext_app_info\">Informácie o aplikácii</string>\n    <string name=\"ext_info_version\">Verzia</string>\n    <string name=\"pref_cutout_short\">Zobraziť obsah v oblasti výrezu</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontálne</string>\n    <string name=\"disabled_nav\">Zakázané</string>\n    <string name=\"pref_remove_exclude_categories\">Vylúčené kategórie</string>\n    <string name=\"updated_version\">Aktualizované na v%1$s</string>\n    <string name=\"label_downloaded_only\">Iba stiahnuté</string>\n    <string name=\"wish_list\">Zoznam prianí</string>\n    <string name=\"remove_manga\">Chystáte sa odstrániť \\\"%s\\\" zo svojej knižnice</string>\n    <string name=\"downloaded_only_summary\">Filtruje všetku mangu vo vašej knižnici</string>\n    <string name=\"source_unsupported\">Zdroj nie je podporovaný</string>\n    <string name=\"not_installed\">Nenainštalované</string>\n    <string name=\"share_page_info\">%1$s: %2$s, strana %3$d</string>\n    <string name=\"rotation_type\">Typ rotácie</string>\n    <string name=\"action_close\">Zatvoriť</string>\n    <string name=\"pref_library_update_categories_details\">Záznamy vo vylúčených kategóriách nebudú aktualizované, aj keď sú tiež v zahrnutých kategóriách.</string>\n    <string name=\"ext_updates_pending\">Čakajúce aktualizácie</string>\n    <string name=\"spen_next_page\">Ďalšia strana</string>\n    <string name=\"update_check_open\">Otvoriť na GitHub-e</string>\n    <string name=\"getting_started_guide\">Príručka pre začiatočníkov</string>\n    <string name=\"notification_incognito_text\">Zakázať režim inkognito</string>\n    <string name=\"manga_info_collapse\">Menej</string>\n    <string name=\"enhanced_tracking_info\">Služby, ktoré poskytujú rozšírené funkcie pre konkrétne zdroje. Mangy sú automaticky sledované po pridaní do vašej knižnice.</string>\n    <string name=\"pref_dual_page_split\">Rozdelenie na dve strany</string>\n    <string name=\"action_sort_last_manga_update\">Posledná aktualizácia</string>\n    <string name=\"action_remove_everything\">Odstrániť všetko</string>\n    <string name=\"internal_error\">InternalError: Skontrolujte záznmy pre ďalšie informácie</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">Zdroje z tohto rozšírenia môžu obsahovať obsah pre dospleých (18+)</string>\n    <string name=\"pref_dual_page_invert_summary\">Ak umiestnenie rozdelenia na dve strany nezodpovedá smeru čítania</string>\n    <string name=\"pref_show_reading_mode\">Zobraziť režim čítania</string>\n    <string name=\"invalid_backup_file_missing_manga\">Záloha neobsahuje žiadnu mangu.</string>\n    <string name=\"l_nav\">V tvare písmena L</string>\n    <string name=\"backup_info\">Dôrazne sa odporúča automatické zálohovanie. Kópie by ste si mali uchovávať aj na iných miestach.</string>\n    <string name=\"pref_dump_crash_logs\">Výpis logu o zlyhaní</string>\n    <string name=\"pref_reset_user_agent_string\">Obnoviť predvolený reťazec User-Agent</string>\n    <string name=\"action_global_search_query\">Globálne vyhľadať \\\"%1$s\\\"</string>\n    <string name=\"description_placeholder\">Bez popisu</string>\n    <string name=\"chapter_settings\">Nastavenia kapitoly</string>\n    <string name=\"also_set_chapter_settings_for_library\">Taktiež nastaviť pre všetky mangy v mojej knižnici</string>\n    <string name=\"source_filter_empty_screen\">Nenašiel sa žiadny nainštalovaný zdroj</string>\n    <string name=\"pref_navigate_pan\">Prejsť na posúvanie</string>\n    <string name=\"cant_open_last_read_chapter\">Nie je možné otvoriť poslednú prečítanú kapitolu</string>\n    <string name=\"learn_more\">Klepnutím sa dozviete viac</string>\n    <string name=\"downloaded_chapters\">Stiahnuté kapitoly</string>\n    <string name=\"migration_help_guide\">Príručka k migrácií zdrojov</string>\n    <string name=\"pref_reset_viewer_flags_success\">Všetky nastavenia čítačky sa obnovia</string>\n    <string name=\"label_background_activity\">Aktivita na pozadí</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Pomáha s aktualizáciami a zálohovaním knižnice na pozadí</string>\n    <string name=\"battery_optimization_disabled\">Optimalizácia batérie je už vypnutá</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Nepodarilo sa otvoriť nastavenia zariadenia</string>\n    <string name=\"about_dont_kill_my_app\">Niektorí výrobcovia majú ďalšie obmedzenia aplikácií, ktoré vypínajú služby na pozadí. Na tejto webovej stránke nájdete viac informácií o tom, ako to opraviť.</string>\n    <string name=\"viewer\">Režim čítania</string>\n    <string name=\"error_saving_picture\">Chyba pri ukladaní obrázka</string>\n    <string name=\"channel_app_updates\">Aktualizácie aplikácie</string>\n    <string name=\"appwidget_unavailable_locked\">Widget nie je k dispozícii, keď je povolený zámok aplikácie</string>\n    <string name=\"local_filter_order_by\">Zoradiť podľa</string>\n    <string name=\"local_invalid_format\">Neplatný formát kapitoly</string>\n    <string name=\"exclude\">Vylúčiť: %s</string>\n    <string name=\"last_used_source\">Naposledy použité</string>\n    <string name=\"pinned_sources\">Pripnuté</string>\n    <string name=\"chapter_not_found\">Kapitola sa nenašla</string>\n    <string name=\"on\">Zap.</string>\n    <string name=\"chapter_settings_updated\">Aktualizované predvolené nastavenia kapitol</string>\n    <string name=\"pref_inverted_colors\">Inverzný</string>\n    <string name=\"theme_lavender\">Levanduľa</string>\n    <string name=\"pref_download_new_categories_details\">Mangy vo vylúčených kategóriách nebudú stiahnuté, aj keď sú tiež v zahrnutých kategóriách.</string>\n    <string name=\"database_clean\">Čistenie databázy</string>\n    <string name=\"pref_clear_webview_data\">Vymazanie údajov WebView</string>\n    <string name=\"webview_data_deleted\">Údaje WebView boli vymazané</string>\n    <string name=\"manga_info_expand\">Viac</string>\n    <string name=\"download_queue_size_warning\">Upozornenie: Veľké hromadné sťahovanie môže viesť k spomaleniu zdrojov a/alebo blokovaniu %s. Klepnutím sa dozviete viac.</string>\n    <string name=\"notification_size_warning\">Veľké aktualizácie poškodzujú zdroje a môžu viesť k pomalším aktualizáciám a tiež k zvýšeniu spotreby batérie. Klepnutím sa dozviete viac.</string>\n    <string name=\"notification_update_error\">Zlyhané aktualizácie: %1$d</string>\n    <string name=\"creating_backup_error\">Zálohovanie zlyhalo</string>\n    <string name=\"action_track\">Sledovať</string>\n    <string name=\"website\">Webová stránka</string>\n    <string name=\"pref_reader_actions\">Akcie</string>\n    <string name=\"custom_cover\">Vlastný obal</string>\n    <string name=\"action_move_to_top_all_for_series\">Presunúť sériu na začiatok</string>\n    <string name=\"privacy_policy\">Zásady ochrany osobných údajov</string>\n    <string name=\"are_you_sure\">Ste si istí?</string>\n    <string name=\"rotation_portrait\">Na výšku</string>\n    <string name=\"pref_user_agent_string\">Predvolený reťazec pre User-Agent</string>\n    <string name=\"myanimelist_relogin\">Prihláste sa znova do MAL</string>\n    <string name=\"error_no_match\">Nenašla sa žiadna zhoda</string>\n    <string name=\"pref_incognito_mode\">Režim inkognito</string>\n    <string name=\"pref_incognito_mode_summary\">Pozastaví históriu čítania</string>\n    <string name=\"email\">Emailová adresa</string>\n    <string name=\"pref_skip_filtered_chapters\">Preskočiť filtrované kapitoly</string>\n    <string name=\"in_library\">V knižnici</string>\n    <string name=\"library_errors_help\">Pomoc s opravou chýb aktualizácie knižnice nájdete v %1$s</string>\n    <string name=\"skipped_reason_completed\">Preskočené, pretože séria je dokončená</string>\n    <string name=\"skipped_reason_not_caught_up\">Preskočené, pretože obsahuje neprečítané kapitoly</string>\n    <string name=\"skipped_reason_not_started\">Preskočené, pretože neboli prečítané žiadne kapitoly</string>\n    <string name=\"label_local\">Lokálna</string>\n    <string name=\"label_downloaded\">Stiahnuté</string>\n    <string name=\"label_stats\">Štatistiky</string>\n    <string name=\"label_started\">Začaté</string>\n    <string name=\"action_search_hint\">Hľadať…</string>\n    <string name=\"action_open_random_manga\">Otvoriť náhodný záznam</string>\n    <string name=\"action_copy_link\">Skopírovať link</string>\n    <string name=\"action_apply\">Použiť</string>\n    <string name=\"pref_update_only_in_release_period\">Predpokladať čas následujúceho vydania</string>\n    <string name=\"action_sort_random\">Náhodné</string>\n    <string name=\"action_update_category\">Aktualizovať kategóriu</string>\n    <string name=\"action_copy_to_clipboard\">Kopírovať do schránky</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Presunúť sériu na spodok</string>\n    <string name=\"onboarding_action_next\">Ďalej</string>\n    <string name=\"onboarding_action_skip\">Preskočiť</string>\n    <string name=\"onboarding_permission_install_apps\">Povolenie na inštalovanie ľubovoľných aplikácii</string>\n    <string name=\"pref_security\">Bezpečnosť</string>\n    <string name=\"onboarding_action_finish\">Začíname</string>\n    <string name=\"ext_confirm_remove\">Odstrániť rozšírenie?</string>\n    <string name=\"remove_private_extension_message\">Naozaj chcete odstrániť \\\"%s\\\" rozšírenie?</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"no_location_set\">Nie je nastavené miesto uloženia</string>\n    <string name=\"onboarding_storage_selection_required\">Priečinok musí byť vybraný</string>\n    <string name=\"onboarding_storage_action_select\">Vyberte priečinok</string>\n    <string name=\"selected\">Vybrané</string>\n    <string name=\"not_selected\">Nevybrané</string>\n    <string name=\"action_menu_overflow_description\">Viac možností</string>\n    <string name=\"delete_downloaded\">Vymazať stiahnuté</string>\n    <string name=\"scanlator\">Prekladateľ</string>\n    <string name=\"label_data_storage\">Dáta a úložisko</string>\n    <string name=\"unlock_app_title\">Odomknúť %s</string>\n    <string name=\"action_set_interval\">Nastaviť interval</string>\n    <string name=\"action_sort_next_updated\">Ďalšia očakávaná aktualizácia</string>\n    <string name=\"onboarding_heading\">Vitajte!</string>\n    <string name=\"label_upcoming\">Nadchádzajúce</string>\n    <string name=\"action_replace_repo\">Nahradiť</string>\n    <string name=\"action_bar_up_description\">Navigovať hore</string>\n    <string name=\"label_donate\">Prispieť finančne</string>\n    <string name=\"label_auto\">Auto</string>\n    <string name=\"action_filter_interval_custom\">Vlastná frekvencia aktualizácie</string>\n    <string name=\"action_sort_tracker_score\">Skóre na sledovači</string>\n    <string name=\"action_display_unread_badge\">Neprečítané kapitoly</string>\n    <string name=\"action_display_show_continue_reading_button\">Pokračovať v čítaní tlačidlo</string>\n    <string name=\"action_notes\">Poznámky</string>\n    <string name=\"action_edit_notes\">Upraviť poznámky</string>\n    <string name=\"action_revert_to_default\">Vrátiť na predvolené</string>\n    <string name=\"action_webview_close_tab\">Zatvoriť kartu</string>\n    <string name=\"action_not_now\">Nie teraz</string>\n    <string name=\"action_add_anyway\">Ajtak pridať</string>\n    <string name=\"calculating\">Vypočítavam…</string>\n    <string name=\"pref_onboarding_guide\">Príručka na úvod</string>\n    <string name=\"onboarding_description\">Poďme najprv nastaviť nejaké veci. Vždy ich môžete neskôr zmeniť.</string>\n    <string name=\"onboarding_storage_info\">Vyberte priečinok, kde %1$s bude ukladať stiahnuté kapitoly, zálohy a ďalšie.\\n\\nOdporúčame použiť samostatný priečinok špecificky pre túto aplikáciu.\\n\\nVybraný priečinok: %2$s</string>\n    <string name=\"onboarding_storage_help_info\">Aktualizujete zo staršej verzie, a nie ste si istí, čo vybrať? Viac informácií nájdete v príručke úložiska.</string>\n    <string name=\"onboarding_storage_help_action\">Príručka úložiska</string>\n    <string name=\"onboarding_permission_install_apps_description\">Na inštaláciu rozšírení zdrojov.</string>\n    <string name=\"onboarding_permission_notifications\">Povolenie posielania notifikácii</string>\n    <string name=\"onboarding_permission_notifications_description\">Notifikácie o aktualizáciach v knižnici a podobne.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Využitie batérie v pozadí</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Vyhnite sa prerušeniam aktualizácie knižnice, sťahovania a obnovy záloh.</string>\n    <string name=\"onboarding_permission_crashlytics\">Poslať záznamy v prípade zlyhania aplikácie</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Poslať anonymizované záznamy v prípade zlyhania aplikácie vývojárom.</string>\n    <string name=\"onboarding_permission_analytics\">Povoliť analytické dáta</string>\n    <string name=\"onboarding_permission_analytics_description\">Posielať anonymizované dáta o používaní aplikácie vývojárom pre zlepšenie zážitku.</string>\n    <string name=\"onboarding_permission_action_grant\">Povoliť</string>\n    <string name=\"onboarding_guides_new_user\">Prvý krát používate %s? Odporúčame prečítať si príručku pre začiatočníkov.</string>\n    <string name=\"onboarding_guides_returning_user\">Inštalujete %s znovu?</string>\n    <string name=\"pref_appearance_summary\">Téma, dátum a formát času</string>\n    <string name=\"upcoming_guide\">Príručka pre nadchádzajúce</string>\n    <string name=\"track_activity_name\">Prihlásenie do sledovača</string>\n    <string name=\"private_settings\">Zahrnúť citlivé nastavenia (napr. prihlasovacie údaje do sledovačov)</string>\n    <string name=\"confirm_tracker_update\">Aktualizovať postup na sledovačoch po kapitolu %d?</string>\n    <string name=\"trackers_updated_summary\">Sledovače aktualizované na kapitolu %d</string>\n    <string name=\"label_tracker_section\">Sledovače</string>\n    <string name=\"pref_library_summary\">Kategórie, globálna aktualizácia, prechádzanie kapitolami</string>\n    <string name=\"pref_reader_summary\">Režim čítania, displej, navigácia</string>\n    <string name=\"pref_downloads_summary\">Automatické sťahovanie, sťahovanie dopredu</string>\n    <string name=\"pref_tracking_summary\">Jednosmerná synchronizácia postupu, vylepšená synchronizácia</string>\n    <string name=\"pref_browse_summary\">Zdroje, rozšírenia, globálne vyhľadávanie</string>\n    <string name=\"pref_backup_summary\">Manuálne &amp; automatické zálohy, miesto v úložisku</string>\n    <string name=\"pref_security_summary\">Zamknutie aplikácie, bezpečná obrazovka</string>\n    <string name=\"pref_advanced_summary\">Uložiť záznamy o zlyhaní aplikácie, optimalizácie batérie</string>\n    <string name=\"theme_monochrome\">Monochromatická</string>\n    <string name=\"pref_relative_format\">Relatívne časové značky</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" namiesto \\\"%2$s\\\"</string>\n    <string name=\"pref_display_images_description\">Zobraziť obrázky v popisoch mangy</string>\n    <string name=\"pref_firebase\">Analytické dáta a záznamy v prípade zlyhania</string>\n    <string name=\"firebase_summary\">Posielaním záznamov v prípade zlyhania aplikácie a analytických údajov nám umožníte identifikovať a opraviť chyby, zlepšiť rýchlost aplikácie a urobiť aplikáciu viac relevantnejšiu pre vaše potreby</string>\n    <string name=\"pref_library_update_smart_update\">Inteligentné aktualizácie</string>\n    <string name=\"pref_library_update_show_tab_badge\">Zobraziť počet neprečítaných na ikone Aktualizácii</string>\n    <string name=\"pref_behavior\">Správanie</string>\n    <string name=\"pref_chapter_swipe_end\">Kapitola po potiahnutí prstom doprava</string>\n    <string name=\"pref_chapter_swipe_start\">Kapitola po potiahnutí prstom doľava</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Označiť duplikátne kapitoly ako prečítané</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Po prečítaní kapitoly</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Po získaní novej kapitoly</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Schovať chýbajúce indikátory kapitol</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Zakázať názvy súborov, ktoré nie sú v kódovaní ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Zaručí kompatibilitu s niektorými úložiskami, ktoré nepodporujú kódovanie Unicode. Keď je táto možnosť zvolená, budete musieť manuálne premenovať priečinky zdrojov a mangy tak, že nahradíte znaky, ktoré nie sú podporované v kódovaní ASCII, ich malými hexadecimálnymi reprezentáciami. Súbory kapitol netreba premenovávať.</string>\n    <string name=\"ext_remove\">Odstrániť</string>\n    <string name=\"ext_permission_install_apps_warning\">Na inštaláciu rozšírení sú potrebné povolenia. Ťuknite sem, aby ste ich udelili.</string>\n    <string name=\"ext_revoke_trust\">Odstrániť status \\\"dôveryhodné\\\" z neznámych rozšírení</string>\n    <string name=\"label_extension_repos\">Repozitáre rozšírení</string>\n    <string name=\"information_empty_repos\">Nemáte nastavené žiadne repozitáre.</string>\n    <string name=\"action_add_repo\">Pridať repozitár</string>\n    <string name=\"label_add_repo_input\">URL Repozitára</string>\n    <string name=\"action_add_repo_message\">Pridať ďalšie repozitáre do %s. Hodnota by mala byť URL, ktorá končí \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">Tento repozitár už existuje!</string>\n    <string name=\"action_delete_repo\">Odstrániť repozitár</string>\n    <string name=\"invalid_repo_name\">Neplatná URL repozitára</string>\n    <string name=\"delete_repo_confirmation\">Naozaj chcete odstrániť repozitár \\\"%s\\\"?</string>\n    <string name=\"add_repo_confirmation\">Chcete pridať repozitár \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Open-source repozitár</string>\n    <string name=\"action_replace_repo_title\">Otlačok podpisového kľúča už existuje</string>\n    <string name=\"action_replace_repo_message\">Repozitár %1$s má rovnaký otlačok podpisového kľúča ako %2$s.\\nAk je toto očakávané, %2$s bude nahradený, inak kontaktuje manažéra repozitára.</string>\n    <string name=\"pref_page_rotate\">Otočiť široké strany, aby sa zmestili</string>\n    <string name=\"pref_page_rotate_invert\">Preklopiť orientáciu otočených širokých strán</string>\n    <string name=\"pref_double_tap_zoom\">Dvojťuk pre priblíženie</string>\n    <string name=\"pref_flash_page\">Prebliknúť pri zmene strany</string>\n    <string name=\"pref_flash_page_summ\">Znižuje ghosting na e-ink displejoch</string>\n    <string name=\"pref_flash_duration\">Trvanie prebliknutia</string>\n    <string name=\"pref_flash_page_interval\">Prebliknúť každých</string>\n    <string name=\"pref_flash_with\">Prebliknúť s</string>\n    <string name=\"pref_flash_style_black\">Čiernou</string>\n    <string name=\"pref_flash_style_white\">Bielou</string>\n    <string name=\"pref_flash_style_white_black\">Čiernou aj Bielou</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Vlastný prah pre hardvérové bitmapy</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Predvolený (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Ak čítacie rozhranie načítava prázdne obrázky, postupne znížte prah.\\nVybrané: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Použiť starší dekodér pre čítacie rozhranie \\\"dlhé pásy\\\"</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sq/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Pas %1$s minutë</item>\n        <item quantity=\"other\">Pas %1$s minutash</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Dje</item>\n        <item quantity=\"other\">%1$d ditë më parë</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategori</item>\n        <item quantity=\"other\">%d kategoritë</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Kapitulli tjetër i palexuar</item>\n        <item quantity=\"other\">%d kapitujt e ardhshëm të palexuar</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s e mbetur</item>\n        <item quantity=\"other\">%1$s kanë mbetur</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Përfunduar në %1$s me %2$s gabim</item>\n        <item quantity=\"other\">Përfunduar në %1$s me %2$s gabime</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Ofrohet përditësim i shtesës</item>\n        <item quantity=\"other\">Ofrohen %d përditësime shtesë</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Po kalon %d kapitull, ose i mungon burimi ose është filtruar</item>\n        <item quantity=\"other\">Po kalon %d kapituj, ose i mungon burimi ose është filtruar</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d kapitull i ri</item>\n        <item quantity=\"other\">%1$d kapituj të rinj</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Kapitujt %1$s dhe 1 më shumë</item>\n        <item quantity=\"other\">Kapitujt %1$s dhe %2$d të tjerë</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Për %d hyrje</item>\n        <item quantity=\"other\">Për %d hyrjet</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d gjurmues</item>\n        <item quantity=\"other\">%d gjurmuesit</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s kapitull</item>\n        <item quantity=\"other\">%1$s kapituj</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Kapitulli i rradhës</item>\n        <item quantity=\"other\">%d kapituj të rradhës</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sq/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Emri</string>\n    <string name=\"label_more\">Më tepër</string>\n    <string name=\"label_settings\">Cilësimet</string>\n    <string name=\"label_download_queue\">Radha e shkarkimeve</string>\n    <string name=\"label_library\">Libraria</string>\n    <string name=\"label_recent_updates\">Përditësimet</string>\n    <string name=\"information_no_downloads\">S\\'ka shkarkime</string>\n    <string name=\"label_recent_manga\">Historia</string>\n    <string name=\"label_sources\">Burimet</string>\n    <string name=\"label_backup\">Ruaj dhe rikthe</string>\n    <string name=\"label_migration\">Shpërngulu</string>\n    <string name=\"label_extensions\">Shtesa</string>\n    <string name=\"label_extension_info\">Informacione shtesë</string>\n    <string name=\"label_help\">Ndihmë</string>\n    <string name=\"information_no_recent\">S\\'ka përditësime të reja</string>\n    <string name=\"action_disable\">Çaktivizo</string>\n    <string name=\"action_cancel\">Anulo</string>\n    <string name=\"action_cancel_all\">Anulo të gjitha</string>\n    <string name=\"cancel_all_for_series\">Anulo të gjitha për këtë seri</string>\n    <string name=\"action_undo\">Zhbëj</string>\n    <string name=\"action_open_log\">Hap regjistrin</string>\n    <string name=\"action_restore\">Rivendos</string>\n    <string name=\"action_webview_forward\">Përpara</string>\n    <string name=\"action_webview_refresh\">Rifresko</string>\n    <string name=\"app_not_available\">Aplikacioni i padisponueshem</string>\n    <string name=\"pref_downloads_summary\">Shkarkim automatik, shkarko përpara</string>\n    <string name=\"theme_dark\">Errët</string>\n    <string name=\"theme_greenapple\">Molle jeshile</string>\n    <string name=\"theme_lavender\">Livando</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_tidalwave\">Valët e Baticës</string>\n    <string name=\"pref_dark_theme_pure_black\">E zezë e pastër modaliteti i errët</string>\n    <string name=\"pref_manage_notifications\">Menaxho njoftimet</string>\n    <string name=\"pref_app_language\">Gjuha e aplikacionit</string>\n    <string name=\"pref_category_security\">Siguria dhe privatësia</string>\n    <string name=\"lock_with_biometrics\">Kërkohet shkyçja</string>\n    <string name=\"lock_when_idle\">Kyç kur është i papunë</string>\n    <string name=\"lock_always\">Gjithmonë</string>\n    <string name=\"lock_never\">Kurrë</string>\n    <string name=\"hide_notification_content\">Fshih përmbajtjen e njoftimit</string>\n    <string name=\"secure_screen\">Ekran i sigurt</string>\n    <string name=\"pref_category_nsfw_content\">Burimet NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Shfaq në listat e burimeve dhe shtesave</string>\n    <string name=\"relative_time_today\">Sot</string>\n    <string name=\"pref_category_display\">Shfaqja</string>\n    <string name=\"pref_library_columns\">Përmasat e grafikut</string>\n    <string name=\"pref_category_library_update\">Përditësim global</string>\n    <string name=\"update_never\">Joaktiv</string>\n    <string name=\"update_12hour\">Çdo 12 orë</string>\n    <string name=\"update_24hour\">Ditore</string>\n    <string name=\"update_weekly\">Javore</string>\n    <string name=\"connected_to_wifi\">Vetëm në Wi-Fi</string>\n    <string name=\"network_not_metered\">Vetëm në rrjet pa matje</string>\n    <string name=\"charging\">Gjatë karikimit</string>\n    <string name=\"pref_update_only_completely_read\">Me kapituj të palexuar</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Kontrolloni për kopertinë dhe detaje të reja kur përditësoni bibliotekën</string>\n    <string name=\"default_category\">Kategoria e parazgjedhur</string>\n    <string name=\"pref_library_update_categories_details\">Elementet në kategoritë e përjashtuara nuk do të përditësohen edhe nëse janë gjithashtu në kategoritë e përfshira.</string>\n    <string name=\"all\">Të gjitha</string>\n    <string name=\"none\">Asnje</string>\n    <string name=\"include\">Përfshi: %s</string>\n    <string name=\"exclude\">Përjashtoni: %s</string>\n    <string name=\"multi_lang\">Shumë</string>\n    <string name=\"ext_update\">Përditëso</string>\n    <string name=\"ext_obsolete\">I vjetëruar</string>\n    <string name=\"channel_progress\">Përparim</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Nuk mund të gjendej shtegu i skedarit të faqes %d</string>\n    <string name=\"information_no_recent_manga\">Asgjë e lexuar kohët e fundit</string>\n    <string name=\"download_notifier_title_error\">Gabim</string>\n    <string name=\"download_notifier_text_only_wifi\">Nuk ofrohet lidhje Wi-Fi</string>\n    <string name=\"information_empty_library\">Biblioteka juaj është bosh</string>\n    <string name=\"getting_started_guide\">Udhëzues për fillimin</string>\n    <string name=\"information_no_entries_found\">Nuk u gjet asnjë element në këtë kategori</string>\n    <string name=\"information_empty_category\">Nuk ke kategori. Prekni butonin plus për të krijuar një për organizimin e bibliotekës tuaj.</string>\n    <string name=\"information_webview_required\">WebView kërkohet për Mihon</string>\n    <string name=\"information_cloudflare_bypass_failure\">Dështoi të anashkalojë Cloudflare</string>\n    <string name=\"information_empty_category_dialog\">Nuk ke ende asnjë kategori.</string>\n    <string name=\"download_notifier_download_paused\">Shkarkimet u ndërprenë</string>\n    <string name=\"download_notifier_no_network\">Nuk ka lidhje rrjeti të disponueshme</string>\n    <string name=\"download_notifier_unknown_error\">Kapitulli nuk mund të shkarkohej për shkak të një gabimi të papritur</string>\n    <string name=\"channel_errors\">Gabimet</string>\n    <string name=\"channel_complete\">E plotësuar</string>\n    <string name=\"channel_common\">I përbashkët</string>\n    <string name=\"spen_next_page\">Faqja tjetër</string>\n    <string name=\"spen_previous_page\">Faqja e meparshme</string>\n    <string name=\"channel_ext_updates\">Përditësimet shtesë</string>\n    <string name=\"channel_app_updates\">Përditësimet e aplikacioneve</string>\n    <string name=\"channel_new_chapters\">Përditësimet e kapitullit</string>\n    <string name=\"download_notifier_cache_renewal\">Shkarkimet e indeksimit</string>\n    <string name=\"download_notifier_split_page_not_found\">Faqja %d nuk u gjet gjatë ndarjes</string>\n    <string name=\"download_notifier_downloader_title\">Shkarkues</string>\n    <string name=\"information_webview_outdated\">Përditësoni aplikacionin WebView për përputhshmëri më të mirë</string>\n    <string name=\"label_default\">E paracaktuar</string>\n    <string name=\"action_filter_tracked\">I gjurmuar</string>\n    <string name=\"action_settings\">Cilësimet</string>\n    <string name=\"action_filter_unread\">E palexuar</string>\n    <string name=\"action_filter_empty\">Hiq filtrin</string>\n    <string name=\"action_sort_alpha\">Sipas alfabetit</string>\n    <string name=\"action_sort_total\">Totali i kapitujve</string>\n    <string name=\"label_warning\">Paralajmërim</string>\n    <string name=\"action_sort_count\">Totali i elementeve</string>\n    <string name=\"action_sort_last_read\">Leximi i fundit</string>\n    <string name=\"confirm_lock_change\">Vërtetohuni për të konfirmuar ndryshimin</string>\n    <string name=\"action_menu\">Menuja</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_order_by_chapter_number\">Sipas numrit të kapitullit</string>\n    <string name=\"action_display_download_badge\">Kapitujt e shkarkuar</string>\n    <string name=\"action_display_local_badge\">Burimi lokal</string>\n    <string name=\"action_display_comfortable_grid\">Rrjetë e rehatshme</string>\n    <string name=\"action_display_show_tabs\">Shfaq skedat e kategorive</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_display_cover_only_grid\">Rrjetë vetëm me mbulesë</string>\n    <string name=\"action_display_language_badge\">Gjuha</string>\n    <string name=\"action_display_show_continue_reading_button\">Shfaq butonin për të vazhduar leximin</string>\n    <string name=\"action_display_show_number_of_items\">Trego numrin e artikujve</string>\n    <string name=\"action_pin\">Gozhdo</string>\n    <string name=\"action_newest\">Më të rejat</string>\n    <string name=\"action_unpin\">Hiqe</string>\n    <string name=\"loading\">Po ngarkohet…</string>\n    <string name=\"action_order_by_upload_date\">Sipas datës së ngarkimit</string>\n    <string name=\"action_sort\">Rendit</string>\n    <string name=\"action_oldest\">Më e vjetrat</string>\n    <string name=\"action_asc\">Në ngjitje</string>\n    <string name=\"action_move_to_top\">Lëvizni në krye</string>\n    <string name=\"action_desc\">Duke zbritur</string>\n    <string name=\"action_install\">Instaloni</string>\n    <string name=\"action_close\">Mbylle</string>\n    <string name=\"action_move_to_top_all_for_series\">Zhvendosni serinë në krye</string>\n    <string name=\"action_move_to_bottom\">Lëvizni në fund</string>\n    <string name=\"action_save\">Ruaj</string>\n    <string name=\"action_reset\">Rivendos</string>\n    <string name=\"action_share\">Shpërndaje</string>\n    <string name=\"action_show_errors\">Prekni për të parë detajet</string>\n    <string name=\"action_webview_back\">Mbrapa</string>\n    <string name=\"action_start_downloading_now\">Fillo shkarkimin tani</string>\n    <string name=\"internal_error\">Gabim i brendshëm: Kontrolloni regjistrat e përplasjeve për informacione të mëtejshme</string>\n    <string name=\"pref_security_summary\">Kyçja e aplikacionit, ekran i sigurt</string>\n    <string name=\"theme_tealturquoise\">Blu në Jeshile</string>\n    <string name=\"pref_category_general\">të përgjithshme</string>\n    <string name=\"pref_category_appearance\">Paraqitja</string>\n    <string name=\"pref_library_summary\">Kategoritë, përditësimi global</string>\n    <string name=\"pref_category_library\">Biblioteka</string>\n    <string name=\"pref_category_reader\">Lexues</string>\n    <string name=\"pref_category_downloads\">Shkarkimet</string>\n    <string name=\"pref_category_tracking\">Gjurmimi</string>\n    <string name=\"pref_browse_summary\">Burimet, zgjerimet, kërkimi global</string>\n    <string name=\"pref_backup_summary\">Rezervime manuale &amp; automatike</string>\n    <string name=\"pref_category_advanced\">E avancuar</string>\n    <string name=\"pref_appearance_summary\">Formati i temës, datës dhe orës</string>\n    <string name=\"pref_reader_summary\">Modaliteti i leximit, ekrani, navigimi</string>\n    <string name=\"pref_tracking_summary\">Sinkronizimi i përparimit në një drejtim, sinkronizimi i përmirësuar</string>\n    <string name=\"pref_category_about\">Rreth</string>\n    <string name=\"pref_advanced_summary\">Hidh regjistrat e përplasjeve, optimizimet e baterisë</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"theme_system\">Ndiq Sistemin</string>\n    <string name=\"theme_light\">Ndrçim</string>\n    <string name=\"theme_strawberrydaiquiri\">Daiquiri luleshtrydhe</string>\n    <string name=\"pref_app_theme\">Tema e aplikacionit</string>\n    <string name=\"theme_monet\">Dinamik</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"pref_date_format\">Formati i datës</string>\n    <string name=\"landscape\">Peizazhi</string>\n    <string name=\"secure_screen_summary\">Ekrani i sigurt fsheh përmbajtjen e aplikacionit kur ndërron aplikacionet dhe bllokon screenshots</string>\n    <string name=\"parental_controls_info\">Kjo nuk parandalon shtesat jozyrtare ose potencialisht të shënuara gabimisht që të shfaqin përmbajtjen NSFW (18+) brenda aplikacionit.</string>\n    <string name=\"portrait\">Portret</string>\n    <string name=\"restrictions\">Kufizimet: %s</string>\n    <string name=\"pref_library_update_interval\">Përditësimet automatike</string>\n    <string name=\"update_6hour\">Çdo 6 orë</string>\n    <string name=\"update_72hour\">Çdo 3 ditë</string>\n    <string name=\"pref_library_update_restriction\">Përditësimet automatike të kufizimet e pajisjes</string>\n    <string name=\"pref_update_only_non_completed\">Me statusin \\\"Përfunduar\\\"</string>\n    <string name=\"pref_update_only_started\">Kjo nuk ka filluar</string>\n    <string name=\"update_48hour\">Çdo 2 ditë</string>\n    <string name=\"pref_library_update_refresh_metadata\">Rifresko automatikisht të dhënat meta</string>\n    <string name=\"default_category_summary\">Gjithmonë pyesni</string>\n    <string name=\"ext_install\">Instaloni</string>\n    <string name=\"categorized_display_settings\">Cilësimet sipas kategorisë për renditjen dhe shfaqjen</string>\n    <string name=\"ext_update_all\">Përditëso të gjitha</string>\n    <string name=\"ext_updates_pending\">Përditësimet në pritje</string>\n    <string name=\"on\">Aktiv</string>\n    <string name=\"off\">Fikur</string>\n    <string name=\"categories\">Kategoritë</string>\n    <string name=\"manga\">Elementet e bibliotekës</string>\n    <string name=\"chapters\">Kapituj</string>\n    <string name=\"track\">Gjurmimi</string>\n    <string name=\"history\">Historia</string>\n    <string name=\"action_sort_last_manga_update\">Kontrolli i përditësimit të fundit</string>\n    <string name=\"action_sort_unread_count\">Numër i palexuar</string>\n    <string name=\"action_sort_latest_chapter\">Kapitulli i fundit</string>\n    <string name=\"action_sort_chapter_fetch_date\">Data e marrjes së kapitullit</string>\n    <string name=\"action_sort_date_added\">Data e shtimit</string>\n    <string name=\"action_search\">Kërko</string>\n    <string name=\"action_search_hint\">Kërko…</string>\n    <string name=\"action_search_settings\">Cilësimet e kërkimit</string>\n    <string name=\"action_global_search\">Kërkimi global</string>\n    <string name=\"action_select_all\">Selekto të gjitha</string>\n    <string name=\"action_select_inverse\">Zgjidhni anasjelltas</string>\n    <string name=\"action_mark_as_unread\">Shëno si të palexuar</string>\n    <string name=\"action_mark_as_read\">Shëno si të lexuar</string>\n    <string name=\"action_mark_previous_as_read\">Shëno të mëparshmen si të lexuar</string>\n    <string name=\"action_download\">Shkarko</string>\n    <string name=\"action_bookmark\">Shëno kapitullin</string>\n    <string name=\"action_remove_bookmark\">Zhshëno kapitullin</string>\n    <string name=\"action_delete\">Fshije</string>\n    <string name=\"action_update_library\">Përditëso bibliotekën</string>\n    <string name=\"action_enable_all\">Aktivizo të gjitha</string>\n    <string name=\"action_disable_all\">Çaktivzo të gjitha</string>\n    <string name=\"action_edit\">Redakto</string>\n    <string name=\"action_add\">Shtoni</string>\n    <string name=\"action_open_random_manga\">Hap hyrje të rastësishme</string>\n    <string name=\"action_add_category\">Shto kategori</string>\n    <string name=\"action_edit_categories\">Redakto kategoritë</string>\n    <string name=\"action_rename_category\">Riemërto kategorinë</string>\n    <string name=\"action_move_category\">Vendosni kategori</string>\n    <string name=\"delete_category_confirmation\">Dëshironi të fshini kategorinë \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Fshi kategorinë</string>\n    <string name=\"action_edit_cover\">Redakto kopertinën</string>\n    <string name=\"action_view_chapters\">Shiko kapitujt</string>\n    <string name=\"action_pause\">Ndalo</string>\n    <string name=\"action_previous_chapter\">Kapitulli i mëparshëm</string>\n    <string name=\"action_next_chapter\">Kapitulli tjetër</string>\n    <string name=\"action_retry\">Provo sërish</string>\n    <string name=\"action_remove\">Hiq</string>\n    <string name=\"action_remove_everything\">Hiqni gjithçka</string>\n    <string name=\"action_start\">Fillo</string>\n    <string name=\"action_resume\">Rifillo</string>\n    <string name=\"action_show_manga\">Shfaq hyrjen</string>\n    <string name=\"action_open_in_web_view\">Hapni në WebView</string>\n    <string name=\"action_open_in_browser\">Hapni në shfletues</string>\n    <string name=\"action_migrate\">Migroni</string>\n    <string name=\"action_display\">Ekrani</string>\n    <string name=\"action_display_mode\">Modaliteti i ekranit</string>\n    <string name=\"action_display_grid\">Rrjetë kompakte</string>\n    <string name=\"appwidget_updates_description\">Shiko përditësimin e fundit të elementeve të bibliotekes tuaj</string>\n    <string name=\"remove_manga\">Ju jeni gati të hiqni \\\"%s\\\" nga biblioteka juaj</string>\n    <string name=\"appwidget_unavailable_locked\">Miniaplikacioni nuk ofrohet kur kyçja e aplikacionit është aktivizuar</string>\n    <string name=\"ext_pending\">Në pritje</string>\n    <string name=\"ext_installing\">duke instaluar</string>\n    <string name=\"ext_untrusted\">E pabesueshme</string>\n    <string name=\"ext_app_info\">Informacioni i aplikacionit</string>\n    <string name=\"untrusted_extension\">Shtesë pabesueshme</string>\n    <string name=\"extension_api_error\">Marrja e listës së shtesave dështoi</string>\n    <string name=\"ext_info_version\">Versioni</string>\n    <string name=\"ext_info_age_rating\">Vlerësimi i moshës</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">Burimet nga kjo shtesë mund të përmbajnë përmbajtje NSFW (18+)</string>\n    <string name=\"ext_install_service_notif\">Po instalon shtesën…</string>\n    <string name=\"ext_installer_pref\">Instalues</string>\n    <string name=\"pref_fullscreen\">Ekran i plotë</string>\n    <string name=\"pref_show_navigation_mode\">Shfaq mbivendosjen e zonave të prekjes</string>\n    <string name=\"pref_show_navigation_mode_summary\">Trego shkurtimisht kur hapet lexuesi</string>\n    <string name=\"pref_dual_page_split\">Ndani faqet e gjera</string>\n    <string name=\"pref_dual_page_invert\">Inverto vendosjen e faqeve të ndara</string>\n    <string name=\"pref_dual_page_invert_summary\">Nëse vendosja e faqeve të ndara gjerësisht nuk përputhet me drejtimin e leximit</string>\n    <string name=\"pref_cutout_short\">Shfaq përmbajtjen në zonën e prerjes</string>\n    <string name=\"pref_double_tap_anim_speed\">Prekni dy herë shpejtësia e animacionit</string>\n    <string name=\"pref_show_page_number\">Shfaq numrin e faqes</string>\n    <string name=\"pref_show_reading_mode\">Shfaq modalitetin e leximit</string>\n    <string name=\"pref_custom_brightness\">Shkëlqimi i personalizuar</string>\n    <string name=\"pref_grayscale\">Shkallëgri</string>\n    <string name=\"pref_inverted_colors\">I përmbysur</string>\n    <string name=\"pref_custom_color_filter\">Filtër me ngjyra të personalizuara</string>\n    <string name=\"filter_mode_overlay\">Mbivendosje</string>\n    <string name=\"pref_keep_screen_on\">Mbaje ekranin të ndezur</string>\n    <string name=\"filter_mode_darken\">Djeg / Errëson</string>\n    <string name=\"pref_skip_filtered_chapters\">Kapërceni kapitujt e filtruar</string>\n    <string name=\"pref_reader_navigation\">Navigimi</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Inverto tastet e volumit</string>\n    <string name=\"pref_read_with_tapping_inverted\">Inverto zonat e trokitjes</string>\n    <string name=\"tapping_inverted_none\">Asnje</string>\n    <string name=\"tapping_inverted_vertical\">Vertikale</string>\n    <string name=\"pref_reader_actions\">Veprimet</string>\n    <string name=\"pref_read_with_long_tap\">Shfaq në trokitje të gjatë</string>\n    <string name=\"pref_crop_borders\">Kufijtë e prerjeve</string>\n    <string name=\"filter_mode_multiply\">Shumohen</string>\n    <string name=\"filter_mode_screen\">Ekrani</string>\n    <string name=\"pref_skip_read_chapters\">Kapërceni kapitujt e shënuar si të lexuar</string>\n    <string name=\"filter_mode_lighten\">Shmang/ Driten</string>\n    <string name=\"pref_color_filter_mode\">Filtri me ngjyra modaliteti i përzierjes</string>\n    <string name=\"tapping_inverted_horizontal\">Horizontale</string>\n    <string name=\"tapping_inverted_both\">te dyja</string>\n    <string name=\"ext_installed\">Instaluar</string>\n    <string name=\"ext_trust\">Besim</string>\n    <string name=\"ext_downloading\">Po shkarkohet</string>\n    <string name=\"ext_uninstall\">Çinstaloni</string>\n    <string name=\"ext_installer_legacy\">Trashëgimia</string>\n    <string name=\"untrusted_extension_message\">Kjo shtesë u nënshkrua me një certifikatë të pabesueshme dhe nuk u aktivizua.\n\\n\n\\n Një shtesë me qëllim të keq mund të lexojë çdo kredencial identifikimi të ruajtur në Mihon ose të ekzekutojë kod arbitrar.\n\\n\n\\n Duke i besuar kësaj certifikate ju i pranoni këto rreziqe.</string>\n    <string name=\"obsolete_extension_message\">Kjo shtesë nuk është më e disponueshme. Mund të mos funksionojë siç duhet dhe mund të shkaktojë probleme me aplikacionin. Rekomandohet ta çinstaloni.</string>\n    <string name=\"ext_info_language\">Gjuha</string>\n    <string name=\"pref_read_with_volume_keys\">Çelsat e volumit</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku nuk po kandidon</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Instaloni dhe filloni Shizuku për të përdorur Shizuku si instalues shtesë.</string>\n    <string name=\"pref_page_transitions\">Animoni tranzicionet e faqeve</string>\n    <string name=\"pref_show_reading_mode_summary\">Trego shkurtimisht modalitetin aktual kur hapet lexuesi</string>\n    <string name=\"pref_create_folder_per_manga\">Ruani faqet në dosje të veçanta</string>\n    <string name=\"pref_reader_theme\">Ngjyra e sfondit</string>\n    <string name=\"white_background\">E bardhë</string>\n    <string name=\"gray_background\">Gri</string>\n    <string name=\"automatic_background\">Automatik</string>\n    <string name=\"right_and_left_nav\">E djathta dhe e majta</string>\n    <string name=\"disabled_nav\">I paaftë</string>\n    <string name=\"nav_zone_prev\">e mëparshme</string>\n    <string name=\"right_to_left_viewer\">Nga e djathta në të majtë</string>\n    <string name=\"vertical_plus_viewer\">Vertikale e vazhdueshme</string>\n    <string name=\"pager_viewer\">Faqe</string>\n    <string name=\"pref_viewer_nav\">Prekni zonat</string>\n    <string name=\"pref_image_scale_type\">Lloji i shkallës</string>\n    <string name=\"scale_type_stretch\">Shtrirje</string>\n    <string name=\"scale_type_fit_height\">Lartësia e përshtatshme</string>\n    <string name=\"scale_type_fit_width\">Gjerësia e përshtatshme</string>\n    <string name=\"scale_type_original_size\">Madhësia origjinale</string>\n    <string name=\"scale_type_smart_fit\">Përshtatje e zgjuar</string>\n    <string name=\"pref_navigate_pan\">Paneli i gjerë i imazheve kur prekni</string>\n    <string name=\"zoom_start_automatic\">Automatik</string>\n    <string name=\"zoom_start_left\">Majtas</string>\n    <string name=\"zoom_start_right\">Djathtas</string>\n    <string name=\"zoom_start_center\">Qendra</string>\n    <string name=\"double_tap_anim_speed_0\">Asnjë animacion</string>\n    <string name=\"double_tap_anim_speed_normal\">Normale</string>\n    <string name=\"double_tap_anim_speed_fast\">Shpejt</string>\n    <string name=\"rotation_type\">Lloji i rrotullimit</string>\n    <string name=\"rotation_free\">I lire</string>\n    <string name=\"rotation_portrait\">Portret</string>\n    <string name=\"rotation_force_landscape\">Peizazh i mbyllur</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"pref_category_reading_mode\">Modaliteti i leximit</string>\n    <string name=\"pref_highest\">Më e larta</string>\n    <string name=\"pref_low\">E ulët</string>\n    <string name=\"pref_category_delete_chapters\">Fshi kapitujt</string>\n    <string name=\"pref_remove_exclude_categories\">Kategoritë e përjashtuara</string>\n    <string name=\"invalid_location\">Vendndodhja e pavlefshme: %s</string>\n    <string name=\"last_read_chapter\">Kapitulli i fundit i lexuar</string>\n    <string name=\"fourth_to_last\">Kapitulli i katërt deri tek i fundit i lexuar</string>\n    <string name=\"pref_category_auto_download\">Shkarkim-automatik</string>\n    <string name=\"pref_download_new\">Shkarkoni kapitujt e rinj</string>\n    <string name=\"download_ahead\">Shkarkoni përpara</string>\n    <string name=\"auto_download_while_reading\">Shkarkim automatik gjatë leximit</string>\n    <string name=\"save_chapter_as_cbz\">Ruaje si arkiv CBZ</string>\n    <string name=\"tracking_guide\">Udhëzues gjurmimi</string>\n    <string name=\"enhanced_services\">Gjurmues të përmirësuara</string>\n    <string name=\"transition_no_next\">Nuk ka kapitull tjetër</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Krijon dosje sipas titullit të elementeve</string>\n    <string name=\"black_background\">E zezë</string>\n    <string name=\"pref_viewer_type\">Modaliteti i parazgjedhur i leximit</string>\n    <string name=\"l_nav\">Në formë L</string>\n    <string name=\"edge_nav\">Skaji</string>\n    <string name=\"nav_zone_next\">Tjetra</string>\n    <string name=\"nav_zone_left\">Majtas</string>\n    <string name=\"nav_zone_right\">Djathtas</string>\n    <string name=\"left_to_right_viewer\">Nga e majta në të djathtë</string>\n    <string name=\"vertical_viewer\">Vertikale</string>\n    <string name=\"scale_type_fit_screen\">Ekran i përshtatshëm</string>\n    <string name=\"pref_landscape_zoom\">Zmadhoni imazhin e peizazhit</string>\n    <string name=\"pref_zoom_start\">Pozicioni fillestar i zmadhimit</string>\n    <string name=\"pref_rotation_type\">Lloji i parazgjedhur i rrotullimit</string>\n    <string name=\"rotation_reverse_portrait\">Portret i kundërt</string>\n    <string name=\"rotation_force_portrait\">Portret i mbyllur</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_always_show_chapter_transition\">Trego gjithmonë kalimin e kapitullit</string>\n    <string name=\"pref_webtoon_side_padding\">Mbushje anësore</string>\n    <string name=\"rotation_landscape\">Peizazh</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"pref_category_reading\">Duke lexuar</string>\n    <string name=\"pref_hide_threshold\">Ndjeshmëria për fshehjen e menysë në lëvizje</string>\n    <string name=\"pref_high\">E lartë</string>\n    <string name=\"pref_lowest\">Më e ulëta</string>\n    <string name=\"pref_remove_after_marked_as_read\">Pasi është shënuar manualisht si e lexuar</string>\n    <string name=\"pref_remove_after_read\">Pas leximit fshi automatikisht</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Lejo fshirjen e kapitujve të shënuar</string>\n    <string name=\"second_to_last\">Kapitulli i dytë deri tek i fundit i lexuar</string>\n    <string name=\"third_to_last\">Kapitulli i tretë deri tek i fundit i lexuar</string>\n    <string name=\"fifth_to_last\">Kapitulli i pestë deri tek i fundit i lexuar</string>\n    <string name=\"pref_download_new_categories_details\">Elementet në kategoritë e përjashtuara nuk do të shkarkohen edhe nëse janë gjithashtu në kategoritë e përfshira.</string>\n    <string name=\"download_ahead_info\">Punon vetëm në hyrjet në bibliotekë dhe nëse kapitulli aktual plus kapitulli tjetër janë shkarkuar tashmë</string>\n    <string name=\"services\">Gjurmuesët</string>\n    <string name=\"split_tall_images_summary\">Përmirëson performancën e lexuesit</string>\n    <string name=\"pref_auto_update_manga_sync\">Përditëso progresin pas leximit</string>\n    <string name=\"tracking_info\">Sinkronizimi i njëanshëm për të përditësuar përparimin e kapitullit në shërbimet e gjurmimit. Konfiguro gjurmimin për elementet individuale nga butoni i tyre i gjurmimit.</string>\n    <string name=\"action_filter_bookmarked\">Faqeshënuar</string>\n    <string name=\"webtoon_viewer\">Webtoon</string>\n    <string name=\"disabled\">I çaktivizuar</string>\n    <string name=\"kindlish_nav\">Kindle-ish</string>\n    <string name=\"enhanced_tracking_info\">Ofron tipare të përmirësuara për burime specifike. Elementet gjurmohen automatikisht kur shtohen në bibliotekën tuaj.</string>\n    <string name=\"action_track\">Pista</string>\n    <string name=\"pref_backup_interval\">Frekuenca rezervë</string>\n    <string name=\"backup_restore_missing_trackers\">I pa identifikuar ne gjurmuesit:</string>\n    <string name=\"restore_duration\">%1$02d min, %2$02d sek</string>\n    <string name=\"restore_miui_warning\">Rezervimi/rivendosja mund të mos funksionojë siç duhet nëse Optimizimi MIUI është i çaktivizuar.</string>\n    <string name=\"pref_reset_user_agent_string\">Rivendos vargun e parazgjedhur të agjentit të përdoruesit</string>\n    <string name=\"cache_delete_error\">Ndodhi një gabim gjatë pastrimit</string>\n    <string name=\"privacy_policy\">Politika e privatësisë</string>\n    <string name=\"login_success\">i regjistruar</string>\n    <string name=\"chapter_not_found\">Kapitulli nuk u gjet</string>\n    <string name=\"local_invalid_format\">Format i pavlefshëm i kapitullit</string>\n    <string name=\"unknown_status\">Status i panjohur</string>\n    <string name=\"licensed\">I licencuar</string>\n    <string name=\"manga_removed_library\">U hoq nga biblioteka</string>\n    <string name=\"delete_downloads_for_manga\">Të fshihen kapitujt e shkarkuar?</string>\n    <string name=\"clipboard_copy_error\">Kopjimi në kujtesën e fragmenteve dështoi</string>\n    <string name=\"source_not_installed\">Burimi nuk është i instaluar: %1$s</string>\n    <string name=\"sort_by_upload_date\">Sipas datës së ngarkimit</string>\n    <string name=\"manga_download\">Shkarko</string>\n    <string name=\"unread\">Të palexuara</string>\n    <string name=\"manga_tracking_tab\">Gjurmimi</string>\n    <string name=\"unfinished_list\">Lista e papërfunduar</string>\n    <string name=\"on_hold_list\">Në listën e pritjes</string>\n    <string name=\"track_type\">Lloji</string>\n    <string name=\"error_category_exists\">Një kategori me këtë emër ekziston tashmë!</string>\n    <string name=\"error_no_match\">Nuk u gjet asnjë përputhje</string>\n    <string name=\"dialog_with_checkbox_reset\">Rivendos të gjithë kapitujt për këtë hyrje</string>\n    <string name=\"set_as_cover\">Vendos si kopertinë</string>\n    <string name=\"viewer\">Mënyra e leximit</string>\n    <string name=\"transition_next\">Tjetra:</string>\n    <string name=\"pref_clear_history\">Pastro historinë</string>\n    <string name=\"notification_update_error\">%1$d përditësim(e) dështoi</string>\n    <string name=\"skipped_reason_completed\">U anashkalua sepse seria ka përfunduar</string>\n    <string name=\"file_select_cover\">Zgjidhni imazhin e kopertinës</string>\n    <string name=\"update_check_open\">Hapni në GitHub</string>\n    <string name=\"update_check_confirm\">Shkarko</string>\n    <string name=\"update_check_notification_download_complete\">Prekni për të instaluar përditësimin</string>\n    <string name=\"transition_no_previous\">Nuk ka kapitull të mëparshëm</string>\n    <string name=\"database_clean\">Asgjë për të pastruar</string>\n    <string name=\"notification_incognito_text\">Çaktivizo modalitetin e fshehtë</string>\n    <string name=\"logout\">Dil</string>\n    <string name=\"no_results_found\">Nuk u gjet asnjë rezultat</string>\n    <string name=\"unknown_title\">Titulli i panjohur</string>\n    <string name=\"add_tracking\">Shto gjurmimin</string>\n    <string name=\"migration_dialog_what_to_include\">Zgjidhni të dhënat për të përfshirë</string>\n    <string name=\"download_queue_error\">Kapitujt nuk mund të shkarkoheshin. Mund të provoni përsëri në seksionin e shkarkimeve</string>\n    <string name=\"notification_size_warning\">Përditësimet e mëdha dëmtojnë burimet dhe mund të çojnë në përditësime më të ngadalta dhe gjithashtu rritje të përdorimit të baterisë. Trokit për të mësuar më shumë.</string>\n    <string name=\"clear_database_completed\">Elementet u fshinë</string>\n    <string name=\"pref_disable_battery_optimization\">Çaktivizo optimizimin e baterisë</string>\n    <string name=\"email\">Adresa e emailit</string>\n    <string name=\"login_title\">Hyni në %1$s</string>\n    <string name=\"password\">Fjalëkalimi</string>\n    <string name=\"login\">Hyrje</string>\n    <string name=\"username\">Emri i përdoruesit</string>\n    <string name=\"latest\">Të fundit</string>\n    <string name=\"manga_info_expand\">Më shumë</string>\n    <string name=\"chapter_settings\">Cilësimet e kapitullit</string>\n    <string name=\"crash_screen_title\">Ups!</string>\n    <string name=\"update_check_notification_download_error\">Gabim shkarkimi</string>\n    <string name=\"pref_invalidate_download_cache\">Anuloni indeksin e shkarkimeve</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Pastro memorjen e kapitullit në mbylljen e aplikacionit</string>\n    <string name=\"pref_clear_database\">Pastro bazën e të dhënave</string>\n    <string name=\"no_pinned_sources\">Nuk ke burime të gozhduara</string>\n    <string name=\"local_filter_order_by\">Urdhër nga</string>\n    <string name=\"date\">Data</string>\n    <string name=\"ongoing\">Në vazhdim</string>\n    <string name=\"unknown\">E panjohur</string>\n    <string name=\"unknown_author\">Autor i panjohur</string>\n    <string name=\"cancelled\">Anuluar</string>\n    <string name=\"on_hiatus\">Në pauzë</string>\n    <string name=\"publishing_finished\">Botim i përfunduar</string>\n    <string name=\"manga_added_library\">Shtuar në bibliotekë</string>\n    <string name=\"manga_info_collapse\">Më pak</string>\n    <string name=\"description_placeholder\">Pa përshkrim</string>\n    <string name=\"show_chapter_number\">Numri i kapitullit</string>\n    <string name=\"status\">Statusi</string>\n    <string name=\"source_unsupported\">Burimi nuk mbështetet</string>\n    <string name=\"myanimelist_relogin\">Ju lutemi identifikohuni përsëri në MAL</string>\n    <string name=\"share_page_info\">%1$s: %2$s, faqe %3$d</string>\n    <string name=\"chapter_progress\">Faqe: %1$d</string>\n    <string name=\"no_next_chapter\">Kapitulli tjetër nuk u gjet</string>\n    <string name=\"decode_image_error\">Imazhi nuk mund të ngarkohej</string>\n    <string name=\"confirm_set_image_as_cover\">Të përdoret ky imazh si kopertinë?</string>\n    <string name=\"transition_finished\">Përfunduar:</string>\n    <string name=\"transition_current\">Aktuale:</string>\n    <string name=\"transition_previous\">E mëparshme:</string>\n    <string name=\"cant_open_last_read_chapter\">I paafte për të hapur kapitullin e lexuar së fundi</string>\n    <string name=\"clear_history_confirmation\">A je i sigurt? E gjithë historia do të humbasë.</string>\n    <string name=\"empty_screen\">Epo, kjo është e sikletshme</string>\n    <string name=\"not_installed\">Nuk është instaluar</string>\n    <string name=\"copy\">Kopjo</string>\n    <string name=\"notification_chapters_single_and_more\">Kapitulli %1$s dhe %2$d më shumë</string>\n    <string name=\"notification_chapters_multiple\">Kapitujt %1$s</string>\n    <string name=\"notification_chapters_single\">Kapitulli %1$s</string>\n    <string name=\"library_errors_help\">Për ndihmë se si të rregulloni gabimet e përditësimit të bibliotekës, shihni %1$s</string>\n    <string name=\"pref_create_backup\">Krijo kopje rezervë</string>\n    <string name=\"pref_create_backup_summ\">Mund të përdoret për të rivendosur bibliotekën aktuale</string>\n    <string name=\"pref_restore_backup\">Rivendos kopjen rezervë</string>\n    <string name=\"backup_created\">U krijua një kopje rezervë</string>\n    <string name=\"backup_restore_missing_sources\">Burimet që mungojnë:</string>\n    <string name=\"restore_completed\">Rivendosja përfundoi</string>\n    <string name=\"backup_in_progress\">Rezervimi është tashmë në proces</string>\n    <string name=\"backup_choice\">Çfarë dëshironi të bëni rezervë?</string>\n    <string name=\"creating_backup\">Duke krijuar rezervë</string>\n    <string name=\"creating_backup_error\">Rezervimi dështoi</string>\n    <string name=\"missing_storage_permission\">Lejet e ruajtjes nuk janë dhënë</string>\n    <string name=\"empty_backup_error\">Nuk ka element në bibliotekë për të rezervuar</string>\n    <string name=\"restore_in_progress\">Rivendosja është tashmë në proces</string>\n    <string name=\"restoring_backup\">Rivendosja e rezervës</string>\n    <string name=\"restoring_backup_error\">Rivendosja e rezervimit dështoi</string>\n    <string name=\"restoring_backup_canceled\">Rivendosja u anulua</string>\n    <string name=\"backup_info\">Ju duhet të mbani kopje rezervë edhe në vende të tjera.</string>\n    <string name=\"label_network\">Rrjeti</string>\n    <string name=\"pref_clear_cookies\">Pastro cookie-t</string>\n    <string name=\"pref_dns_over_https\">DNS mbi HTTPS (DoH)</string>\n    <string name=\"error_user_agent_string_blank\">Vargu i agjentit të përdoruesit nuk mund të jetë bosh</string>\n    <string name=\"error_user_agent_string_invalid\">Varg i pavlefshëm i agjentit të përdoruesit</string>\n    <string name=\"requires_app_restart\">Kërkon rinisjen e aplikacionit për të hyrë në fuqi</string>\n    <string name=\"cookies_cleared\">Cookie-t u pastruan</string>\n    <string name=\"label_data\">Të dhënat</string>\n    <string name=\"used_cache\">Përdorur: %1$s</string>\n    <string name=\"cache_deleted\">Memoria e fshehtë u pastrua. %1$d skedarë janë fshirë</string>\n    <string name=\"clear_database_source_item_count\">%1$d element jashtë bibliotekës në bazën e të dhënave</string>\n    <string name=\"pref_clear_webview_data\">Pastro të dhënat e WebView</string>\n    <string name=\"pref_refresh_library_covers\">Rifresko kopertinat e bibliotekës</string>\n    <string name=\"pref_reset_viewer_flags\">Rivendos cilësimet e lexuesit për seri</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Rivendos modalitetin e leximit dhe orientimin e të gjitha serive</string>\n    <string name=\"pref_reset_viewer_flags_error\">Cilësimet e lexuesit nuk mund të rivendoseshin</string>\n    <string name=\"pref_dump_crash_logs\">Hidh regjistrat e aksidenteve</string>\n    <string name=\"label_background_activity\">Aktiviteti në sfond</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Ndihmon me përditësimet dhe kopjet rezervë të bibliotekës në sfond</string>\n    <string name=\"pref_dump_crash_logs_summary\">Ruan regjistrat e gabimeve në një skedar për t\\'i ndarë me zhvilluesit</string>\n    <string name=\"battery_optimization_disabled\">Optimizimi i baterisë është tashmë i çaktivizuar</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Cilësimet e pajisjes nuk mund të hapeshin</string>\n    <string name=\"check_for_updates\">Kontrolloni për përditësime</string>\n    <string name=\"updated_version\">Përditësuar në v%1$s</string>\n    <string name=\"pref_enable_acra\">Dërgoni raporte përplasjesh</string>\n    <string name=\"pref_acra_summary\">Ndihmon në rregullimin e çdo defekti. Nuk do të dërgohen të dhëna sensitive</string>\n    <string name=\"fdroid_warning\">Ndërtimet e F-Droid nuk mbështeten zyrtarisht.\n\\nTrokit për të mësuar më shumë.</string>\n    <string name=\"label_downloaded_only\">Vetëm të shkarkuarat</string>\n    <string name=\"pref_incognito_mode\">Modaliteti i fshehtë</string>\n    <string name=\"pref_incognito_mode_summary\">Ndalon leximin e historisë</string>\n    <string name=\"downloaded_only_summary\">Filtro të gjitha elementet në bibliotekën tuaj</string>\n    <string name=\"logout_title\">Dil nga %1$s?</string>\n    <string name=\"logout_success\">Tani keni dalë nga llogaria</string>\n    <string name=\"unknown_error\">Gabim i panjohur</string>\n    <string name=\"updating_category\">Kategoria po përditësohet</string>\n    <string name=\"manga_from_library\">Nga biblioteka</string>\n    <string name=\"downloaded_chapters\">Kapitujt e shkarkuar</string>\n    <string name=\"tabs_header\">Skedat</string>\n    <string name=\"no_more_results\">Nuk ka më rezultate</string>\n    <string name=\"local_source\">Burimi lokal</string>\n    <string name=\"other_source\">Tjetër</string>\n    <string name=\"pinned_sources\">Fiksuar</string>\n    <string name=\"action_global_search_hint\">Kërkimi global…</string>\n    <string name=\"action_global_search_query\">Kërkoni për \\\"%1$s\\\" globalisht</string>\n    <string name=\"popular\">Popullor</string>\n    <string name=\"browse\">Shfletoni</string>\n    <string name=\"local_source_help_guide\">Udhëzues burimi lokal</string>\n    <string name=\"add_to_library\">Shto në bibliotekë</string>\n    <string name=\"in_library\">Në bibliotekë</string>\n    <string name=\"copied_to_clipboard\">Kopjuar në kujtesën e fragmenteve:\n\\n %1$s</string>\n    <string name=\"snack_add_to_library\">Të shtohet në bibliotekë?</string>\n    <string name=\"display_mode_chapter\">Kapitulli %1$s</string>\n    <string name=\"chapter_downloading_progress\">Po shkarkohet (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Gabim</string>\n    <string name=\"chapter_paused\">Ndaloi</string>\n    <string name=\"show_title\">Titulli i burimit</string>\n    <string name=\"sort_by_source\">Sipas burimit</string>\n    <string name=\"sort_by_number\">Sipas numrit të kapitullit</string>\n    <string name=\"download_unread\">Të palexuara</string>\n    <string name=\"custom_cover\">Kopertine e personalizuar</string>\n    <string name=\"manga_cover\">Kopertina</string>\n    <string name=\"cover_saved\">Kopertina u ruajt</string>\n    <string name=\"error_sharing_cover\">Gabim në ndarjen e kopertinës</string>\n    <string name=\"confirm_delete_chapters\">Jeni i sigurt që dëshironi të fshini kapitujt e zgjedhur?</string>\n    <string name=\"also_set_chapter_settings_for_library\">Aplikoni gjithashtu për të gjitha elementet në bibliotekën time</string>\n    <string name=\"set_chapter_settings_as_default\">Vendose si parësore</string>\n    <string name=\"no_chapters_error\">Nuk u gjet asnjë kapitull</string>\n    <string name=\"are_you_sure\">A je i sigurt?</string>\n    <string name=\"reading\">Leximi</string>\n    <string name=\"completed\">E përfunduar</string>\n    <string name=\"on_hold\">Ne pritje</string>\n    <string name=\"paused\">Në pauzë</string>\n    <string name=\"plan_to_read\">Planifikoni të lexoni</string>\n    <string name=\"repeating\">Rileximi</string>\n    <string name=\"dropped\">Hodhi</string>\n    <string name=\"reading_list\">Lista e leximit</string>\n    <string name=\"wish_list\">Lista e dëshirave</string>\n    <string name=\"complete_list\">Lista e plotë</string>\n    <string name=\"score\">Rezultati</string>\n    <string name=\"title\">Titulli</string>\n    <string name=\"track_started_reading_date\">Data e fillimit</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_finished_reading_date\">Data e mbarimit</string>\n    <string name=\"track_remove_date_conf_title\">Hiqni datën?</string>\n    <string name=\"track_remove_finish_date_conf_text\">Kjo do të heqë datën e përfundimit të zgjedhur më parë nga %s</string>\n    <string name=\"snack_categories_deleted\">Kategoritë u fshinë</string>\n    <string name=\"picture_saved\">Fotografia u ruajt</string>\n    <string name=\"error_saving_picture\">Gabim gjatë ruajtjes së fotografisë</string>\n    <string name=\"custom_filter\">Filtri i personalizuar</string>\n    <string name=\"cover_updated\">Kopertina u përditësua</string>\n    <string name=\"pref_category_for_this_series\">Për këtë seri</string>\n    <string name=\"transition_pages_loading\">Po ngarkon faqet…</string>\n    <string name=\"transition_pages_error\">Ngarkimi i faqeve dështoi: %1$s</string>\n    <string name=\"page_list_empty_error\">Nuk u gjet asnjë faqe</string>\n    <string name=\"loader_not_implemented_error\">Burimi nuk u gjet</string>\n    <string name=\"update_already_running\">Një përditësim po funksionon tashmë</string>\n    <string name=\"updating_library\">Biblioteka po përditësohet</string>\n    <string name=\"updates_last_update_info\">Biblioteka e përditësuar së fundi: %s</string>\n    <string name=\"updates_last_update_info_just_now\">Vetëm tani</string>\n    <string name=\"recent_manga_time\">Ch. %1$s - %2$s</string>\n    <string name=\"clear_history_completed\">Historia u fshi</string>\n    <string name=\"source_empty_screen\">Nuk u gjet asnjë burim</string>\n    <string name=\"source_filter_empty_screen\">Nuk u gjet asnjë burim i instaluar</string>\n    <string name=\"migration_help_guide\">Udhëzuesi i migrimit të burimit</string>\n    <string name=\"migration_selection_prompt\">Zgjidhni një burim për të migruar</string>\n    <string name=\"migrate\">Migroni</string>\n    <string name=\"crash_screen_description\">%s hasi në një gabim të papritur. Ne ju sugjerojmë që të fotografoni këtë mesazh, të hidhni regjistrat e aksidenteve dhe më pas ta shpërndani në kanalin tonë të mbështetjes në Discord.</string>\n    <string name=\"crash_screen_restart_application\">Rinisni aplikacionin</string>\n    <string name=\"download_insufficient_space\">Kapitujt nuk mund të shkarkoheshin për shkak të hapësirës së ulët të ruajtjes</string>\n    <string name=\"download_queue_size_warning\">Paralajmërim: shkarkimet e mëdha me shumicë mund të çojnë në ngadalësimin e burimeve dhe/ose bllokimin e %s. Trokit për të mësuar më shumë.</string>\n    <string name=\"notification_new_chapters\">U gjetën kapituj të rinj</string>\n    <string name=\"learn_more\">Trokit për të mësuar më shumë</string>\n    <string name=\"notification_cover_update_failed\">Përditësimi i kopertinës dështoi</string>\n    <string name=\"skipped_reason_not_caught_up\">U anashkalua sepse ka kapituj të palexuar</string>\n    <string name=\"skipped_reason_not_started\">U anashkalua sepse nuk lexohet asnjë kapitull</string>\n    <string name=\"skipped_reason_not_always_update\">U anashkalua sepse seritë nuk kërkojnë përditësime</string>\n    <string name=\"file_select_backup\">Zgjidhni skedarin rezervë</string>\n    <string name=\"update_check_no_new_updates\">Nuk disponohen përditësime të reja</string>\n    <string name=\"update_check_notification_download_in_progress\">Po shkarkohet…</string>\n    <string name=\"update_check_notification_update_available\">Versioni i ri në dispozicion!</string>\n    <string name=\"chapter_settings_updated\">Cilësimet e kapitullit të parazgjedhur të përditësuara</string>\n    <string name=\"theme_midnightdusk\">Perëndim Mesnate</string>\n    <string name=\"pref_restore_backup_summ\">Rivendosni bibliotekën nga skedari rezervë</string>\n    <string name=\"backup_restore_content_full\">Të dhënat nga skedari rezervë do të rikthehen.\n\\n\n\\n Do t\\'ju duhet të instaloni çdo shtesë që mungon dhe më pas të identifikoheni në shërbimet e gjurmimit për t\\'i përdorur ato.</string>\n    <string name=\"invalid_backup_file\">Skedar rezervë i pavlefshëm</string>\n    <string name=\"invalid_backup_file_missing_manga\">Rezervimi nuk përmban asnjë element në bibliotekë.</string>\n    <string name=\"pref_user_agent_string\">Varg i parazgjedhur i agjentit të përdoruesit</string>\n    <string name=\"pref_clear_chapter_cache\">Pastro memorien e kapitullit</string>\n    <string name=\"pref_clear_database_summary\">Fshi historikun për elementet që nuk janë ruajtur në bibliotekën tënde</string>\n    <string name=\"webview_data_deleted\">Të dhënat e WebView u pastruan</string>\n    <string name=\"pref_reset_viewer_flags_success\">Të gjitha cilësimet e lexuesit rivendosen</string>\n    <string name=\"last_used_source\">Përdorur për herë të fundit</string>\n    <string name=\"remove_from_library\">Hiqe nga biblioteka</string>\n    <string name=\"error_saving_cover\">Gabim gjatë ruajtjes së kopertinës</string>\n    <string name=\"notification_first_add_to_library\">Ju lutemi shtoni hyrjen në bibliotekën tuaj përpara se ta bëni këtë</string>\n    <string name=\"confirm_set_chapter_settings\">Jeni i sigurt që dëshironi t\\'i ruani këto cilësime si parazgjedhje?</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Kjo do të heqë datën e leximit të këtij kapitulli. A je i sigurt?</string>\n    <string name=\"track_remove_start_date_conf_text\">Kjo do të heqë datën e fillimit të zgjedhur më parë nga %s</string>\n    <string name=\"update_check_eol\">Ky version Android nuk mbështetet më</string>\n    <string name=\"website\">Faqja e internetit</string>\n    <string name=\"version\">Version</string>\n    <string name=\"whats_new\">Cfare ka te re</string>\n    <string name=\"help_translate\">Ndihmoni në përkthimin</string>\n    <string name=\"licenses\">Licencat me burim të hapur</string>\n    <string name=\"about_dont_kill_my_app\">Disa prodhues kanë kufizime shtesë të aplikacioneve që shkatërrojnë shërbimet e sfondit. Kjo faqe interneti ka më shumë informacion se si ta rregulloni atë.</string>\n    <string name=\"pref_verbose_logging\">Prerje me fjalë</string>\n    <string name=\"pref_tablet_ui_mode\">Ndërfaqja e përdoruesve të tabletit</string>\n    <string name=\"pref_verbose_logging_summary\">Printoni regjistrat me fjalë në regjistrin e sistemit (ul performancën e aplikacionit)</string>\n    <string name=\"file_picker_error\">Nuk u gjet asnjë aplikacion për përzgjedhjen e skedarëve</string>\n    <string name=\"pref_library_update_show_tab_badge\">Trego numrin e të pa lezuarave ne ikonën e Përditësimeve</string>\n    <string name=\"label_overview_section\">Pasqyrë e Përgjithshme</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"label_stats\">Statistikë</string>\n    <string name=\"label_started\">Filluar</string>\n    <string name=\"label_local\">Lokale</string>\n    <string name=\"label_downloaded\">Shkarkuar</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Detyro applikacionin te rikontrolloj kapitujtë e shkarkuar</string>\n    <string name=\"label_total_chapters\">Total</string>\n    <string name=\"label_mean_score\">Pikët mesatare</string>\n    <string name=\"label_used\">I përdorur</string>\n    <string name=\"label_read_chapters\">Lexo</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"label_tracker_section\">Gjurmuesit</string>\n    <string name=\"label_tracked_titles\">Elementet e gjurmuara</string>\n    <string name=\"action_not_now\">Jo tani</string>\n    <string name=\"label_completed_titles\">Elementet të përfunduara</string>\n    <string name=\"label_read_duration\">Koha e të lezuarit</string>\n    <string name=\"label_titles_section\">Elementet</string>\n    <string name=\"label_titles_in_global_update\">Ne përditësimin global</string>\n    <string name=\"hour_short\">%do</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"information_no_manga_category\">Kategorija është bosh</string>\n    <string name=\"enhanced_services_not_installed\">Në dispozicion, por burimi nuk është i instaluar: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Kapërceni kapitujt e kopjuar</string>\n    <string name=\"pref_hide_in_library_items\">Fshih elementet tashmë në bibliotekë</string>\n    <string name=\"action_copy_to_clipboard\">Kopjo në kujtesën e fragmenteve</string>\n    <string name=\"action_update_category\">Përditëso kategorinë</string>\n    <string name=\"track_error\">%1$s gabim: %2$s</string>\n    <string name=\"information_required_plain\">*kërkohet</string>\n    <string name=\"copied_to_clipboard_plain\">U kopjua në clipboard</string>\n    <string name=\"pref_storage_location\">Pika e magazinimit</string>\n    <string name=\"delete_downloaded\">Fshi shkarkimet</string>\n    <string name=\"action_sort_tracker_score\">Piket e gjurmimit</string>\n    <string name=\"track_delete_title\">Hiq %s gjurmimin?</string>\n    <string name=\"track_delete_remote_text\">Hiqe gjithashtu nga %s</string>\n    <string name=\"track_delete_text\">Kjo do te heq gjurmimn lokal.</string>\n    <string name=\"track_activity_name\">Gjurmuesi i identifikimit</string>\n    <string name=\"pref_relative_format\">Koha relative</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" në vend të \\\"%2$s\\\"</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sr/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Након %1$s минут</item>\n        <item quantity=\"few\">Након %1$s минута</item>\n        <item quantity=\"other\">Након %1$s минута</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d ново поглавље</item>\n        <item quantity=\"few\">%1$d нова поглавља</item>\n        <item quantity=\"other\">%1$d нових поглавља</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">За %d наслов</item>\n        <item quantity=\"few\">За %d наслова</item>\n        <item quantity=\"other\">За %d наслова</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Доступно је %d ново ажурирање додатака</item>\n        <item quantity=\"few\">Доступна су %d нова ажурирања додатака</item>\n        <item quantity=\"other\">Доступно је %d нових ажурирања додатака</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d категорија</item>\n        <item quantity=\"few\">%d категорије</item>\n        <item quantity=\"other\">%d категорија</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Пре %1$d дан</item>\n        <item quantity=\"few\">Пре %1$d дана</item>\n        <item quantity=\"other\">Пре %1$d дана</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Прескаче се %d поглавље, или не постоји у извору или је филтером издвојено</item>\n        <item quantity=\"few\">Прескаче се %d поглавља, или не постоји у извору или је филтером издвојено</item>\n        <item quantity=\"other\">Прескаче се %d поглавља, или не постоји у извору или је филтером издвојено</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Завршено у %1$s са %2$s грешком</item>\n        <item quantity=\"few\">Завршено у %1$s са %2$s грешке</item>\n        <item quantity=\"other\">Завршено у %1$s са %2$s грешака</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d пратилац</item>\n        <item quantity=\"few\">%d пратиоца</item>\n        <item quantity=\"other\">%d пратилаца</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s поглавље</item>\n        <item quantity=\"few\">%1$s поглавља</item>\n        <item quantity=\"other\">%1$s поглавља</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Поглавља %1$s и још једно</item>\n        <item quantity=\"few\">Поглавља %1$s и још %2$d</item>\n        <item quantity=\"other\">Поглавља %1$s и још %2$d</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s преостао</item>\n        <item quantity=\"few\">%1$s преостала</item>\n        <item quantity=\"other\">%1$s преосталих</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Следеће непрочитано поглавље</item>\n        <item quantity=\"few\">Следећа %d непрочитана поглавља</item>\n        <item quantity=\"other\">Следећих %d непрочитаних поглавља</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Следеће поглавље</item>\n        <item quantity=\"few\">Следећа %d поглавља</item>\n        <item quantity=\"other\">Следећих %d поглавља</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Недостаје %1$s поглавље</item>\n        <item quantity=\"few\">Недостају %1$s поглавља</item>\n        <item quantity=\"other\">Недостаје %1$s поглавља</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 дан</item>\n        <item quantity=\"few\">%d дана</item>\n        <item quantity=\"other\">%d дана</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d репозиторија</item>\n        <item quantity=\"few\">%d репозиторија</item>\n        <item quantity=\"other\">%d репозиторија</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">За %1$d дан</item>\n        <item quantity=\"few\">За %1$d дана</item>\n        <item quantity=\"other\">За %1$d дана</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sr/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Име</string>\n    <string name=\"categories\">Категорије</string>\n    <string name=\"manga\">Наслови колекције</string>\n    <string name=\"chapters\">Поглавља</string>\n    <string name=\"track\">Праћење</string>\n    <string name=\"history\">Историја</string>\n    <string name=\"label_settings\">Подешавања</string>\n    <string name=\"label_download_queue\">Редослед преузимања</string>\n    <string name=\"label_library\">Колекција</string>\n    <string name=\"label_recent_manga\">Историја</string>\n    <string name=\"label_recent_updates\">Ново</string>\n    <string name=\"label_backup\">Резервна копија и враћање</string>\n    <string name=\"label_migration\">Миграција</string>\n    <string name=\"label_extensions\">Додаци</string>\n    <string name=\"label_extension_info\">Информације о додатку</string>\n    <string name=\"label_data_storage\">Складиштење и подаци</string>\n    <string name=\"action_settings\">Подешавања</string>\n    <string name=\"action_filter\">Филтер</string>\n    <string name=\"action_filter_bookmarked\">Забележено</string>\n    <string name=\"action_filter_unread\">Непрочитано</string>\n    <string name=\"action_filter_empty\">Уклони филтер</string>\n    <string name=\"action_sort_alpha\">Алфабетно</string>\n    <string name=\"action_sort_total\">Укупно поглавља</string>\n    <string name=\"action_sort_last_read\">Последње читано</string>\n    <string name=\"action_search\">Претражи</string>\n    <string name=\"action_global_search\">Претражи глобално</string>\n    <string name=\"action_select_all\">Изабери све</string>\n    <string name=\"action_mark_as_read\">Означи као прочитано</string>\n    <string name=\"action_mark_as_unread\">Означи као непрочитано</string>\n    <string name=\"action_mark_previous_as_read\">Означи претходно као прочитано</string>\n    <string name=\"action_download\">Преузми</string>\n    <string name=\"action_bookmark\">Забележи поглавље</string>\n    <string name=\"action_remove_bookmark\">Уклони белешку поглавља</string>\n    <string name=\"action_delete\">Обриши</string>\n    <string name=\"action_update_library\">Ажурирај колекцију</string>\n    <string name=\"action_edit\">Уреди</string>\n    <string name=\"action_add\">Додај</string>\n    <string name=\"action_add_category\">Додај категорију</string>\n    <string name=\"action_edit_categories\">Уреди категорије</string>\n    <string name=\"action_rename_category\">Преименуј категорију</string>\n    <string name=\"action_move_category\">Изабери категорије</string>\n    <string name=\"action_edit_cover\">Промени омот</string>\n    <string name=\"action_pause\">Паузирај</string>\n    <string name=\"action_previous_chapter\">Претходно поглавље</string>\n    <string name=\"action_next_chapter\">Наредно поглавље</string>\n    <string name=\"action_retry\">Покушај поново</string>\n    <string name=\"action_remove\">Уклони</string>\n    <string name=\"action_resume\">Настави</string>\n    <string name=\"action_open_in_browser\">Отвори у претраживачу</string>\n    <string name=\"action_display_mode\">Режим приказа</string>\n    <string name=\"action_display\">Екран</string>\n    <string name=\"action_display_grid\">Збијена мрежа</string>\n    <string name=\"action_display_list\">Листа</string>\n    <string name=\"action_display_download_badge\">Преузета поглавља</string>\n    <string name=\"action_cancel\">Откажи</string>\n    <string name=\"action_sort\">Сортирај</string>\n    <string name=\"action_install\">Инсталирај</string>\n    <string name=\"action_share\">Подели</string>\n    <string name=\"action_save\">Сачувај</string>\n    <string name=\"action_reset\">Ресетуј</string>\n    <string name=\"action_undo\">Врати назад</string>\n    <string name=\"action_open_log\">Отвори записник</string>\n    <string name=\"action_restore\">Врати</string>\n    <string name=\"loading\">Учитавање…</string>\n    <string name=\"app_not_available\">Апликација није доступна</string>\n    <string name=\"pref_category_general\">Опште</string>\n    <string name=\"pref_category_reader\">Читач</string>\n    <string name=\"pref_category_downloads\">Преузимања</string>\n    <string name=\"pref_category_tracking\">Праћење</string>\n    <string name=\"pref_category_advanced\">Напредно</string>\n    <string name=\"pref_category_about\">O апликацији</string>\n    <string name=\"pref_library_columns\">Величина мреже</string>\n    <string name=\"portrait\">Усправно</string>\n    <string name=\"landscape\">Хоризонтално</string>\n    <string name=\"pref_library_update_interval\">Аутоматска ажурирања</string>\n    <string name=\"update_never\">Искључено</string>\n    <string name=\"update_6hour\">Шесточасовно</string>\n    <string name=\"update_12hour\">Дванаесточасовно</string>\n    <string name=\"update_24hour\">Дневно</string>\n    <string name=\"update_48hour\">Свака 2 дана</string>\n    <string name=\"update_weekly\">Недељно</string>\n    <string name=\"all\">Све</string>\n    <string name=\"pref_library_update_restriction\">Ограничења уређаја за аутоматска ажурирања</string>\n    <string name=\"charging\">Пуњење</string>\n    <string name=\"pref_update_only_non_completed\">Прескочи уносе са статусом \\\"Завршено\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Ажурирај пратиоца након читања</string>\n    <string name=\"default_category\">Подразумевана категорија</string>\n    <string name=\"default_category_summary\">Увек питај</string>\n    <string name=\"ext_update\">Ажурирај</string>\n    <string name=\"ext_install\">Инсталирај</string>\n    <string name=\"ext_pending\">На чекању</string>\n    <string name=\"ext_downloading\">Преузима се</string>\n    <string name=\"ext_installing\">Инсталира се</string>\n    <string name=\"ext_installed\">Инсталирано</string>\n    <string name=\"ext_trust\">Веруј</string>\n    <string name=\"ext_untrusted\">Неповерљиво</string>\n    <string name=\"ext_uninstall\">Обриши</string>\n    <string name=\"untrusted_extension\">Неповерљив додатак</string>\n    <string name=\"untrusted_extension_message\">Овај додатак је потписан са непоузданим сертификатом и није активиран.\n\\n\n\\nЗлонамерни додатак може прочитати све податке за пријаву или извршити произвољни код.\n\\n\n\\nВерујући овом сертификату прихватате ове ризике.</string>\n    <string name=\"pref_fullscreen\">Цео екран</string>\n    <string name=\"pref_page_transitions\">Анимације при промени странице</string>\n    <string name=\"pref_double_tap_anim_speed\">Брзина анимације двоклика</string>\n    <string name=\"pref_show_page_number\">Прикажи број странице</string>\n    <string name=\"pref_crop_borders\">Исеци крајеве</string>\n    <string name=\"pref_custom_brightness\">Подесиво осветљење</string>\n    <string name=\"pref_custom_color_filter\">Подесиви филтер боја</string>\n    <string name=\"pref_keep_screen_on\">Остави укључен екран</string>\n    <string name=\"pref_reader_navigation\">Навигација</string>\n    <string name=\"pref_read_with_volume_keys\">Дугмићима за звук</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Обрни дугмиће за звук</string>\n    <string name=\"pref_reader_theme\">Боја позадине</string>\n    <string name=\"white_background\">Бела</string>\n    <string name=\"black_background\">Црна</string>\n    <string name=\"pref_viewer_type\">Подразумевани начин читања</string>\n    <string name=\"left_to_right_viewer\">Страница (слева надесно)</string>\n    <string name=\"right_to_left_viewer\">Страница (сдесна налево)</string>\n    <string name=\"vertical_viewer\">Страница (вертикално)</string>\n    <string name=\"webtoon_viewer\">Дуги стрип</string>\n    <string name=\"pager_viewer\">Странично</string>\n    <string name=\"pref_image_scale_type\">Тип скалирања</string>\n    <string name=\"scale_type_fit_screen\">Попуни екран</string>\n    <string name=\"scale_type_stretch\">Развуци</string>\n    <string name=\"scale_type_fit_width\">Попуни ширину</string>\n    <string name=\"scale_type_fit_height\">Попуни висину</string>\n    <string name=\"scale_type_original_size\">Оригинална величина</string>\n    <string name=\"scale_type_smart_fit\">Паметно прилагођавање</string>\n    <string name=\"pref_zoom_start\">Почетни положај зумирања</string>\n    <string name=\"zoom_start_automatic\">Аутоматски</string>\n    <string name=\"zoom_start_left\">Лево</string>\n    <string name=\"zoom_start_right\">Десно</string>\n    <string name=\"zoom_start_center\">Средина</string>\n    <string name=\"double_tap_anim_speed_0\">Без анимације</string>\n    <string name=\"double_tap_anim_speed_normal\">Нормална</string>\n    <string name=\"double_tap_anim_speed_fast\">Брзa</string>\n    <string name=\"pref_rotation_type\">Подразумевана оријентација</string>\n    <string name=\"rotation_free\">Слободно</string>\n    <string name=\"rotation_force_portrait\">Усправно закључано</string>\n    <string name=\"rotation_force_landscape\">Положено закључано</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">Када су означена као прочитана</string>\n    <string name=\"pref_remove_after_read\">Аутоматски обриши након читања</string>\n    <string name=\"disabled\">Онемогућено</string>\n    <string name=\"last_read_chapter\">Последње прочитано поглавље</string>\n    <string name=\"second_to_last\">Претпоследње прочитано поглавље</string>\n    <string name=\"third_to_last\">Претпретпоследње прочитано поглавље</string>\n    <string name=\"fourth_to_last\">Четири пре прочитаног поглавља</string>\n    <string name=\"fifth_to_last\">Пет пре прочитаног поглавља</string>\n    <string name=\"pref_download_new\">Преузми нова поглавља</string>\n    <string name=\"services\">Сервиси праћења</string>\n    <string name=\"pref_create_backup\">Направи резервну копију</string>\n    <string name=\"pref_create_backup_summ\">Може се користити за враћање на тренутно стање колекције</string>\n    <string name=\"pref_restore_backup\">Врати се на резервну копију</string>\n    <string name=\"pref_restore_backup_summ\">Врати се на колекцију из резервне копије</string>\n    <string name=\"pref_backup_interval\">Учесталост прављења резервних копија</string>\n    <string name=\"backup_created\">Направљена је резервна копија</string>\n    <string name=\"restore_completed\">Враћање је завршено</string>\n    <string name=\"backup_choice\">Шта све желите да буде у резервној копији?</string>\n    <string name=\"restoring_backup\">Враћа се на резервну копију</string>\n    <string name=\"creating_backup\">Прави се резервна копија</string>\n    <string name=\"pref_clear_chapter_cache\">Испразни кеш меморију поглавља</string>\n    <string name=\"used_cache\">Искоришћено: %1$s</string>\n    <string name=\"cache_deleted\">Кеш је испражњен. Уклоњених фајлова: %1$d</string>\n    <string name=\"cache_delete_error\">Дошло је до грешке приликом брисања</string>\n    <string name=\"pref_clear_cookies\">Избриши колачиће</string>\n    <string name=\"cookies_cleared\">Колачићи су избрисани</string>\n    <string name=\"pref_clear_database\">Избриши базу података</string>\n    <string name=\"pref_clear_database_summary\">Обриши историју за наслове који нису сачувани у твојој колекцији</string>\n    <string name=\"clear_database_completed\">Уноси избрисани</string>\n    <string name=\"version\">Верзија</string>\n    <string name=\"pref_enable_acra\">Пошаљи извештаје грешака</string>\n    <string name=\"pref_acra_summary\">Помози у поправљању кварова. Ниједан осетљив податак неће бити послат</string>\n    <string name=\"login_title\">Пријави се у %1$s</string>\n    <string name=\"username\">Корисничко име</string>\n    <string name=\"password\">Лозинка</string>\n    <string name=\"login\">Пријави се</string>\n    <string name=\"login_success\">Пријављени сте</string>\n    <string name=\"unknown_error\">Непозната грешка</string>\n    <string name=\"updating_category\">Ажурирање категорије</string>\n    <string name=\"no_more_results\">Нема више резултата</string>\n    <string name=\"local_source\">Локални извор</string>\n    <string name=\"other_source\">Остало</string>\n    <string name=\"action_global_search_hint\">Глобално претраживање…</string>\n    <string name=\"latest\">Најновије</string>\n    <string name=\"browse\">Претражи</string>\n    <string name=\"ongoing\">У току</string>\n    <string name=\"unknown\">Непознато</string>\n    <string name=\"licensed\">Лиценсирано</string>\n    <string name=\"remove_from_library\">Обриши из колекције</string>\n    <string name=\"manga_added_library\">Додано у колекцији</string>\n    <string name=\"manga_removed_library\">Уклоњено из колекције</string>\n    <string name=\"delete_downloads_for_manga\">Обриши преузета поглавља?</string>\n    <string name=\"copied_to_clipboard\">Копирано:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Извор није инсталиран: %1$s</string>\n    <string name=\"display_mode_chapter\">Поглавље %1$s</string>\n    <string name=\"chapter_downloading_progress\">Преузима се (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Грешка</string>\n    <string name=\"chapter_paused\">Паузирано</string>\n    <string name=\"show_title\">Наслов извора</string>\n    <string name=\"show_chapter_number\">Број поглавља</string>\n    <string name=\"pref_read_with_long_tap\">Прикажи радње при дугом додиру</string>\n    <string name=\"sort_by_source\">Према извору</string>\n    <string name=\"sort_by_number\">Према броју поглавља</string>\n    <string name=\"manga_download\">Преузми</string>\n    <string name=\"download_unread\">Непрочитано</string>\n    <string name=\"confirm_delete_chapters\">Да ли сте сигурни да желите да обришете следећа поглавља?</string>\n    <string name=\"action_open_in_web_view\">Отвори у WebView</string>\n    <string name=\"pref_skip_read_chapters\">Прескочи поглавља означена као прочитана</string>\n    <string name=\"filter_mode_multiply\">Помножи</string>\n    <string name=\"filter_mode_screen\">Екран</string>\n    <string name=\"label_help\">Помоћ</string>\n    <string name=\"no_results_found\">Нема пронађених резултата</string>\n    <string name=\"action_webview_back\">Назад</string>\n    <string name=\"action_webview_forward\">Напред</string>\n    <string name=\"action_webview_refresh\">Освежи</string>\n    <string name=\"pref_category_library\">Колекција</string>\n    <string name=\"obsolete_extension_message\">Овај додатак није више доступан. Можда неће исправно функционисати и може изазвати проблеме са апликацијом. Препоручује се деинсталирање.</string>\n    <string name=\"pref_date_format\">Формат датума</string>\n    <string name=\"pref_category_library_update\">Глобално ажурирање</string>\n    <string name=\"logout_title\">Излогуј се из %1$s?</string>\n    <string name=\"logout\">Излогуј се</string>\n    <string name=\"logout_success\">Сада сте излоговани</string>\n    <string name=\"label_more\">Више</string>\n    <string name=\"action_sort_latest_chapter\">Последње поглавље</string>\n    <string name=\"action_view_chapters\">Погледај поглавља</string>\n    <string name=\"action_cancel_all\">Откажи све</string>\n    <string name=\"theme_light\">Светла</string>\n    <string name=\"theme_dark\">Тамна</string>\n    <string name=\"theme_system\">По систему</string>\n    <string name=\"pref_manage_notifications\">Управљај обавештењима</string>\n    <string name=\"pref_category_security\">Безбедност и приватност</string>\n    <string name=\"lock_when_idle\">Закључај приликом мировања</string>\n    <string name=\"lock_always\">Увек</string>\n    <string name=\"lock_never\">Никада</string>\n    <string name=\"secure_screen\">Безбедносни екран</string>\n    <string name=\"ext_updates_pending\">Ажурирања на чекању</string>\n    <string name=\"pref_category_display\">Прикажи</string>\n    <string name=\"hide_notification_content\">Сакриј обавештења</string>\n    <string name=\"pref_disable_battery_optimization\">Искључи оптимизацију коришћења батерије</string>\n    <string name=\"battery_optimization_disabled\">Оптимизација потрошње батерије је већ искључена</string>\n    <string name=\"email\">Имејл адреса</string>\n    <string name=\"information_empty_library\">Ваша колекција је празна</string>\n    <string name=\"information_no_recent_manga\">Ништа није недавно читано</string>\n    <string name=\"information_no_recent\">Нема недавних ажурирања</string>\n    <string name=\"information_no_downloads\">Нема преузимања</string>\n    <string name=\"label_sources\">Извори</string>\n    <string name=\"ext_obsolete\">Застарело</string>\n    <string name=\"secure_screen_summary\">Сакриј приказ апликације приликом пребацивања између апликација и онемогући снимке екрана</string>\n    <string name=\"lock_with_biometrics\">Захтевај закључавање</string>\n    <string name=\"action_move_to_bottom\">Премести на дно</string>\n    <string name=\"action_move_to_top\">Премести на врх</string>\n    <string name=\"action_oldest\">Најстарије</string>\n    <string name=\"action_newest\">Најновије</string>\n    <string name=\"action_unpin\">Откачи</string>\n    <string name=\"action_pin\">Закачи</string>\n    <string name=\"action_select_inverse\">Изабери обрнуто</string>\n    <string name=\"action_menu\">Мени</string>\n    <string name=\"label_downloaded_only\">Само преузето</string>\n    <string name=\"information_empty_category\">Немате категорија. Додирните дугме плус да бисте направили нову категорију за организовање колекције.</string>\n    <string name=\"notification_chapters_multiple\">Поглавља %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Поглавље %1$s и још %2$d</string>\n    <string name=\"notification_chapters_single\">Поглавље %1$s</string>\n    <string name=\"notification_new_chapters\">Пронађена су нова поглавља</string>\n    <string name=\"download_queue_error\">Неуспешно преузимање поглавља. Покушајте поново у секцији за преузимања</string>\n    <string name=\"copy\">Копирај</string>\n    <string name=\"migrate\">Мигрирај</string>\n    <string name=\"migration_selection_prompt\">Одаберите извор са којег ћете мигрирати</string>\n    <string name=\"migration_dialog_what_to_include\">Изаберите податке које желите да укључите</string>\n    <string name=\"recent_manga_time\">Погл. %1$s - %2$s</string>\n    <string name=\"updating_library\">Ажурирање колекције</string>\n    <string name=\"transition_pages_error\">Учитавање страница није успело: %1$s</string>\n    <string name=\"transition_pages_loading\">Учитавање страница…</string>\n    <string name=\"transition_no_previous\">Нема претходног поглавља</string>\n    <string name=\"transition_no_next\">Нема следећег поглавља</string>\n    <string name=\"transition_previous\">Претходно:</string>\n    <string name=\"transition_next\">Следеће:</string>\n    <string name=\"transition_current\">Тренутно:</string>\n    <string name=\"transition_finished\">Завршено:</string>\n    <string name=\"confirm_set_image_as_cover\">Користи ову слику као омот?</string>\n    <string name=\"decode_image_error\">Није могуће учитати слику</string>\n    <string name=\"no_next_chapter\">Следеће поглавље није пронађено</string>\n    <string name=\"chapter_progress\">Страница: %1$d</string>\n    <string name=\"custom_filter\">Подесиви филтер</string>\n    <string name=\"picture_saved\">Слика је сачувана</string>\n    <string name=\"dialog_with_checkbox_reset\">Ресетуј сва поглавља овог наслова</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ово ће уклонити датум читања овог поглавља. Да ли сте сигурни да то желите?</string>\n    <string name=\"snack_categories_deleted\">Категорије обрисане</string>\n    <string name=\"error_category_exists\">Категорија са овим именом већ постоји!</string>\n    <string name=\"track_type\">Врста</string>\n    <string name=\"track_status\">Статус</string>\n    <string name=\"status\">Статус</string>\n    <string name=\"title\">Наслов</string>\n    <string name=\"score\">Оцена</string>\n    <string name=\"repeating\">Поновно читање</string>\n    <string name=\"plan_to_read\">У плану</string>\n    <string name=\"paused\">Паузирано</string>\n    <string name=\"on_hold\">На паузи</string>\n    <string name=\"dropped\">Напуштено</string>\n    <string name=\"completed\">Завршено</string>\n    <string name=\"reading\">Читање</string>\n    <string name=\"add_tracking\">Додај праћење</string>\n    <string name=\"manga_tracking_tab\">Праћење</string>\n    <string name=\"snack_add_to_library\">Додати у колекцију?</string>\n    <string name=\"manga_info_collapse\">Мање</string>\n    <string name=\"manga_info_expand\">Више</string>\n    <string name=\"in_library\">У колекцији</string>\n    <string name=\"add_to_library\">Додати у колекцију</string>\n    <string name=\"local_source_help_guide\">Водич за локалне изворе</string>\n    <string name=\"pinned_sources\">Закачено</string>\n    <string name=\"last_used_source\">Последње коришћено</string>\n    <string name=\"downloaded_only_summary\">Филтрира све наслове у колекцији</string>\n    <string name=\"check_for_updates\">Провери ажурирања</string>\n    <string name=\"website\">Вебсајт</string>\n    <string name=\"restoring_backup_canceled\">Враћање је отказано</string>\n    <string name=\"restoring_backup_error\">Враћање на резервну копију није успело</string>\n    <string name=\"restore_in_progress\">Враћање је већ у току</string>\n    <string name=\"creating_backup_error\">Прављење резервне копије није успело</string>\n    <string name=\"backup_in_progress\">Прављење резервне копије је већ у току</string>\n    <string name=\"restore_duration\">%1$02d мин, %2$02d сек</string>\n    <string name=\"pref_webtoon_side_padding\">Растојање од ивице</string>\n    <string name=\"pref_category_reading\">Читање</string>\n    <string name=\"pref_always_show_chapter_transition\">Увек прикажи транзицију поглавља</string>\n    <string name=\"vertical_plus_viewer\">Дуги стрип са размацима</string>\n    <string name=\"pref_skip_filtered_chapters\">Прескочи филтрирана поглавља</string>\n    <string name=\"pref_cutout_short\">Прикажи садржај у исечку</string>\n    <string name=\"set_as_cover\">Постави као омот</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Помаже при ажурирању колекције и резервних копија</string>\n    <string name=\"download_notifier_title_error\">Грешка</string>\n    <string name=\"download_notifier_downloader_title\">Преузимања</string>\n    <string name=\"information_webview_outdated\">Ажурирајте WebView за бољу компатибилност</string>\n    <string name=\"information_webview_required\">WebView је потребан како би апликација функционисала</string>\n    <string name=\"information_cloudflare_bypass_failure\">Неуспешно заобилажење Cloudflare-а</string>\n    <string name=\"update_check_notification_update_available\">Доступно је ново ажурирање!</string>\n    <string name=\"update_check_notification_download_error\">Грешка током преузимања</string>\n    <string name=\"update_check_notification_download_complete\">Додирните за инсталирање ажурирања</string>\n    <string name=\"update_check_notification_download_in_progress\">Преузимање…</string>\n    <string name=\"update_check_no_new_updates\">Нема нових ажурирања</string>\n    <string name=\"update_check_confirm\">Преузми</string>\n    <string name=\"file_select_backup\">Изаберите датотеку резервне копије</string>\n    <string name=\"file_select_cover\">Изаберите слику за омот</string>\n    <string name=\"notification_first_add_to_library\">Морате прво додати наслов у колекцију</string>\n    <string name=\"notification_cover_update_failed\">Ажурирање омота није успјело</string>\n    <string name=\"pref_category_theme\">Тема</string>\n    <string name=\"action_disable\">Онемогући</string>\n    <string name=\"action_display_show_tabs\">Прикажи наслове категорија</string>\n    <string name=\"action_display_comfortable_grid\">Шира мрежа</string>\n    <string name=\"action_migrate\">Мигрирај</string>\n    <string name=\"action_start\">Почни</string>\n    <string name=\"action_disable_all\">Онемогући све</string>\n    <string name=\"action_enable_all\">Омогући све</string>\n    <string name=\"action_search_settings\">Подешавања претраге</string>\n    <string name=\"action_sort_date_added\">Датум додавања</string>\n    <string name=\"pref_show_reading_mode\">Прикажи начин читања</string>\n    <string name=\"ext_nsfw_warning\">Може садржати садржај за одрасле (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Провери да ли постоје нови омоти при ажурирању колекције</string>\n    <string name=\"pref_library_update_refresh_metadata\">Аутоматски освежи метаподатке</string>\n    <string name=\"parental_controls_info\">Ово не спречава незваничне или потенцијално погрешно означене додатке да прикажу садржај за одрасле (18+) унутар апликације.</string>\n    <string name=\"action_filter_tracked\">Запраћено</string>\n    <string name=\"label_warning\">Упозорење</string>\n    <string name=\"confirm_lock_change\">Оверите да бисте потврдили промене</string>\n    <string name=\"action_sort_count\">Укупно наслова</string>\n    <string name=\"action_sort_chapter_fetch_date\">Датум преузимања</string>\n    <string name=\"action_display_local_badge\">Локални извор</string>\n    <string name=\"action_order_by_upload_date\">По датуму постављања</string>\n    <string name=\"action_display_language_badge\">Језик</string>\n    <string name=\"action_order_by_chapter_number\">По броју поглавља</string>\n    <string name=\"pref_app_theme\">Тема апликације</string>\n    <string name=\"theme_greenapple\">Зелена јабука</string>\n    <string name=\"theme_yotsuba\">Јоцуба</string>\n    <string name=\"action_asc\">Растуће</string>\n    <string name=\"label_default\">Подразумевано</string>\n    <string name=\"action_start_downloading_now\">Покрени преузимање одмах</string>\n    <string name=\"action_display_show_number_of_items\">Прикажи број ставки</string>\n    <string name=\"cancel_all_for_series\">Откажи све за овај наслов</string>\n    <string name=\"action_desc\">Опадајуће</string>\n    <string name=\"action_show_errors\">Прикажи детаље</string>\n    <string name=\"pref_category_appearance\">Изглед</string>\n    <string name=\"theme_monet\">Динамично</string>\n    <string name=\"theme_midnightdusk\">Поноћни сумрак</string>\n    <string name=\"theme_strawberrydaiquiri\">Даикири јагода</string>\n    <string name=\"theme_tako\">Тако</string>\n    <string name=\"theme_tealturquoise\">Плавозелена и тиркизна</string>\n    <string name=\"theme_yinyang\">Јин и јанг</string>\n    <string name=\"pref_dark_theme_pure_black\">Потпуно црна тема</string>\n    <string name=\"pref_category_nsfw_content\">NSFW - извори за одрасле (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Покажи у листи за изворе и додатке</string>\n    <string name=\"pref_category_reading_mode\">Начин читања</string>\n    <string name=\"ext_installer_pref\">Инсталер</string>\n    <string name=\"pref_category_auto_download\">Аутоматско преузимање</string>\n    <string name=\"action_track\">Прати</string>\n    <string name=\"restore_miui_warning\">Резервна копија/враћање можда неће радити исправно ако није омогућена MIUI оптимизација.</string>\n    <string name=\"backup_info\">Чувајте резервне копије и на другим местима.</string>\n    <string name=\"pref_dns_over_https\">DNS преко HTTPS-а (DoH)</string>\n    <string name=\"pref_tablet_ui_mode\">Изглед за таблет</string>\n    <string name=\"requires_app_restart\">Захтева поновно покретање апликације</string>\n    <string name=\"pref_dump_crash_logs_summary\">Чува евиденцију грешака у датотеку за дељење са програмерима</string>\n    <string name=\"label_background_activity\">Активност у позадини</string>\n    <string name=\"pref_color_filter_mode\">Режим мешања филтера боја</string>\n    <string name=\"gray_background\">Сива</string>\n    <string name=\"nav_zone_prev\">Прет.</string>\n    <string name=\"about_dont_kill_my_app\">Неки произвођачи имају додатна ограничења за апликације која гасе сервисе које су у позадини. Овај сајт садржи више информација о могућим решењима.</string>\n    <string name=\"kindlish_nav\">Као Kindle</string>\n    <string name=\"edge_nav\">Ивица</string>\n    <string name=\"right_and_left_nav\">Десно и лево</string>\n    <string name=\"nav_zone_right\">Десно</string>\n    <string name=\"nav_zone_next\">След.</string>\n    <string name=\"pref_verbose_logging\">Детаљно извештавање</string>\n    <string name=\"pref_incognito_mode_summary\">Зауставља праћење историје читања</string>\n    <string name=\"tabs_header\">Картице</string>\n    <string name=\"unknown_status\">Непознат статус</string>\n    <string name=\"local_filter_order_by\">Поређај по</string>\n    <string name=\"enhanced_services\">Побољшани сервиси за праћење</string>\n    <string name=\"invalid_backup_file\">Неисправна датотека резервне копије</string>\n    <string name=\"backup_restore_missing_sources\">Недостају извори:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Резервна копија не садржи ниједан наслов.</string>\n    <string name=\"backup_restore_missing_trackers\">Пратиоци у које нисте пријављени:</string>\n    <string name=\"label_network\">Мрежа</string>\n    <string name=\"backup_restore_content_full\">Подаци из датотеке резервне копије ће бити враћени.\n\\n\n\\nМораћете да инсталирате све додатке које недостају и да се после тога пријавите на пратиоце да бисте их користили.</string>\n    <string name=\"enhanced_tracking_info\">Сервиси који пружају побољшане услуге за одређене изворе. Наслов се аутоматски прати када га додате у колекцију.</string>\n    <string name=\"help_translate\">Помозите у превођењу</string>\n    <string name=\"pref_dump_crash_logs\">Дели извештаје о паду</string>\n    <string name=\"pref_verbose_logging_summary\">Исписуј детаљне извештаје у системски дневник (смањује перформансе апликације)</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Није могуће отворити подешавања уређаја</string>\n    <string name=\"pref_refresh_library_covers\">Освежи омоте у колекцији</string>\n    <string name=\"whats_new\">Шта је ново</string>\n    <string name=\"notification_incognito_text\">Деактивирај инкогнито мод</string>\n    <string name=\"manga_from_library\">Из колекције</string>\n    <string name=\"downloaded_chapters\">Преузета поглавља</string>\n    <string name=\"action_global_search_query\">Претражи „%1$s” глобално</string>\n    <string name=\"no_pinned_sources\">Немате закачених извора</string>\n    <string name=\"chapter_not_found\">Поглавље није пронађено</string>\n    <string name=\"local_invalid_format\">Неважећи формат поглавља</string>\n    <string name=\"clipboard_copy_error\">Неуспешно копирање</string>\n    <string name=\"sort_by_upload_date\">Према датуму поставке</string>\n    <string name=\"error_saving_cover\">Грешка при чувању омота</string>\n    <string name=\"manga_cover\">Омот</string>\n    <string name=\"cover_saved\">Омот сачуван</string>\n    <string name=\"error_sharing_cover\">Грешка при дељењу омота</string>\n    <string name=\"set_chapter_settings_as_default\">Постави као подразумевано</string>\n    <string name=\"confirm_set_chapter_settings\">Да ли сте сигурни да желите да сачувате ова подешавања као подразумевана?</string>\n    <string name=\"also_set_chapter_settings_for_library\">Такође примени на све наслове у мојој колекцији</string>\n    <string name=\"no_chapters_error\">Није пронађено ни једно поглавље</string>\n    <string name=\"track_started_reading_date\">Датум почетка</string>\n    <string name=\"myanimelist_relogin\">Морате поново да се пријавите на MAL</string>\n    <string name=\"source_unsupported\">Извор није подржан</string>\n    <string name=\"unread\">Непрочитано</string>\n    <string name=\"channel_progress\">Напредак</string>\n    <string name=\"channel_complete\">Завршено</string>\n    <string name=\"channel_new_chapters\">Ажурирања поглавља</string>\n    <string name=\"download_insufficient_space\">Неуспешно преузимање поглавља због недовољне меморије</string>\n    <string name=\"getting_started_guide\">Почетни водич</string>\n    <string name=\"update_check_eol\">Ова Android верзија више није подржана</string>\n    <string name=\"chapter_settings_updated\">Ажурирана су подразумевана подешаваља поглавља</string>\n    <string name=\"download_notifier_unknown_error\">Није могуће преузети поглавље због неочекиване грешке</string>\n    <string name=\"download_notifier_text_only_wifi\">Нема доступне Wi-Fi везе</string>\n    <string name=\"channel_common\">Опште</string>\n    <string name=\"download_notifier_no_network\">Нема доступне интернет везе</string>\n    <string name=\"download_notifier_download_paused\">Преузимања су заустављена</string>\n    <string name=\"channel_ext_updates\">Ажурирања додатака</string>\n    <string name=\"spen_previous_page\">Претходна страница</string>\n    <string name=\"spen_next_page\">Следећа страница</string>\n    <string name=\"filter_mode_darken\">Потамни (Burn)</string>\n    <string name=\"ext_installer_legacy\">Првобитни метод</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Инсталирајте и покрените Shizuku да би користили Shizuku као инсталер додатака.</string>\n    <string name=\"filter_mode_lighten\">Посветли (Dodge)</string>\n    <string name=\"tracking_guide\">Водич за праћење</string>\n    <string name=\"pref_hide_threshold\">Осетљивост за сакривање менија при померању</string>\n    <string name=\"pref_show_navigation_mode\">Прикажи начин навигације</string>\n    <string name=\"track_finished_reading_date\">Датум завршетка</string>\n    <string name=\"automatic_background\">Аутоматски</string>\n    <string name=\"licenses\">Лиценце отвореног кода</string>\n    <string name=\"updated_version\">Ажурирано на v%1$s</string>\n    <string name=\"error_no_match\">Ништа није пронађено</string>\n    <string name=\"pref_dual_page_split\">Раздели широке странице</string>\n    <string name=\"none\">Ништа</string>\n    <string name=\"date\">Датум</string>\n    <string name=\"pref_viewer_nav\">Начин навигације</string>\n    <string name=\"unknown_author\">Непознат аутор</string>\n    <string name=\"file_picker_error\">Није пронађен програм за бирање датотека</string>\n    <string name=\"channel_errors\">Грешке</string>\n    <string name=\"chapter_settings\">Подешавања поглавља</string>\n    <string name=\"relative_time_today\">Данас</string>\n    <string name=\"nav_zone_left\">Лево</string>\n    <string name=\"information_empty_category_dialog\">Још немате категорија.</string>\n    <string name=\"ext_app_info\">Информације о апликацији</string>\n    <string name=\"update_72hour\">Свака 3 дана</string>\n    <string name=\"connected_to_wifi\">Само преко Wi-Fi-а</string>\n    <string name=\"restrictions\">Ограничења: %s</string>\n    <string name=\"categorized_display_settings\">Поставке за сортирање одвојено за сваку категорију</string>\n    <string name=\"pref_library_update_categories_details\">Наслови у искљученим категоријама се неће ажурирати иако су такође у укљученим категоријама.</string>\n    <string name=\"include\">Укључи: %s</string>\n    <string name=\"exclude\">Искључи: %s</string>\n    <string name=\"ext_install_service_notif\">Инсталирање додатка…</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku није укључен</string>\n    <string name=\"pref_show_navigation_mode_summary\">Прикажи зоне додира када се читач отвори</string>\n    <string name=\"pref_dual_page_invert\">Обрни положај подељене странице</string>\n    <string name=\"pref_dual_page_invert_summary\">Ако се положај подељених широких страница не подудара са смером читања</string>\n    <string name=\"pref_show_reading_mode_summary\">На тренутак прикажи тренутни начин читања када се читач отвори</string>\n    <string name=\"on\">Укључено</string>\n    <string name=\"off\">Искључено</string>\n    <string name=\"pref_grayscale\">Црно-бело</string>\n    <string name=\"pref_inverted_colors\">Инвертовано</string>\n    <string name=\"filter_mode_overlay\">Прекривање</string>\n    <string name=\"pref_read_with_tapping_inverted\">Обрни додире</string>\n    <string name=\"tapping_inverted_none\">Ништа</string>\n    <string name=\"tapping_inverted_horizontal\">Хоризонтално</string>\n    <string name=\"tapping_inverted_vertical\">Вертикално</string>\n    <string name=\"tapping_inverted_both\">Оба</string>\n    <string name=\"pref_reader_actions\">Радње</string>\n    <string name=\"pref_create_folder_per_manga\">Сачувај странице у засебне фолдере</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Прави датотеке по имену наслова</string>\n    <string name=\"l_nav\">У облику слова L</string>\n    <string name=\"rotation_type\">Оријентација</string>\n    <string name=\"rotation_portrait\">Усправно</string>\n    <string name=\"rotation_landscape\">Положено</string>\n    <string name=\"pref_highest\">Највиша</string>\n    <string name=\"pref_high\">Висока</string>\n    <string name=\"pref_low\">Ниска</string>\n    <string name=\"pref_lowest\">Најнижа</string>\n    <string name=\"pref_category_delete_chapters\">Избриши поглавља</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Дозволи брисање забележених поглавља</string>\n    <string name=\"pref_remove_exclude_categories\">Искључене категорије</string>\n    <string name=\"pref_download_new_categories_details\">Наслови у искљученим категоријама неће се преузимати иако су такође у укљученим категоријама.</string>\n    <string name=\"tracking_info\">Једносмерна синхронизација за ажурирање броја прочитаних поглавља у пратиоцима. За појединачно праћење наслова додирни дугме за њихово праћење.</string>\n    <string name=\"label_data\">Подаци</string>\n    <string name=\"pref_incognito_mode\">Инкогнито мод</string>\n    <string name=\"cover_updated\">Омот је ажуриран</string>\n    <string name=\"share_page_info\">%1$s: %2$s, страница %3$d</string>\n    <string name=\"pref_category_for_this_series\">За овај наслов</string>\n    <string name=\"viewer\">Режим читања</string>\n    <string name=\"page_list_empty_error\">Нема страница</string>\n    <string name=\"loader_not_implemented_error\">Извор није пронађен</string>\n    <string name=\"pref_clear_history\">Избриши историју</string>\n    <string name=\"clear_history_completed\">Историја је избрисана</string>\n    <string name=\"clear_history_confirmation\">Да ли сте сигурни? Цела историја ће бити изгубљена.</string>\n    <string name=\"migration_help_guide\">Водич за миграцију извора</string>\n    <string name=\"download_queue_size_warning\">Упозорење: велики број преузимања може довести до успоравања извора и/или блокирања %s-а. Додирни да сазнаш више.</string>\n    <string name=\"notification_size_warning\">Велика ажурирања штете изворима и могу довести до споријег ажурирања и повећања потрошње батерије. Кликни да сазнаш више.</string>\n    <string name=\"ext_update_all\">Ажурирај све</string>\n    <string name=\"channel_app_updates\">Ажурирања апликације</string>\n    <string name=\"clear_database_source_item_count\">Број наслова у бази података које нису у колекцији: %1$d</string>\n    <string name=\"extension_api_error\">Преузимање листе додатака није успело</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Испразни кеш меморију поглавља током покретања апликације</string>\n    <string name=\"database_clean\">Нема ништа за чишћење</string>\n    <string name=\"pref_update_only_completely_read\">Прескочи уносе са непрочитаним поглављима</string>\n    <string name=\"privacy_policy\">Политика приватности</string>\n    <string name=\"cancelled\">Отказано</string>\n    <string name=\"on_hiatus\">На паузи</string>\n    <string name=\"pref_update_only_started\">Прескочи уносе који нису започети</string>\n    <string name=\"action_show_manga\">Прикажи наслов</string>\n    <string name=\"action_move_to_top_all_for_series\">Помакни наслов на врх</string>\n    <string name=\"notification_update_error\">%1$d ажурирање није успело</string>\n    <string name=\"learn_more\">Додирните да сазнате више</string>\n    <string name=\"library_errors_help\">За помоћ о томе како да поправите грешке у ажурирању колекције, погледајте %1$s</string>\n    <string name=\"skipped_reason_not_started\">Прескочено јер ниједно поглавље није прочитано</string>\n    <string name=\"action_display_cover_only_grid\">Мрежа насловница</string>\n    <string name=\"pref_navigate_pan\">Померај широке слике</string>\n    <string name=\"pref_landscape_zoom\">Аутоматски зумирај слике у пејзажном облику</string>\n    <string name=\"save_chapter_as_cbz\">Сачувај као CBZ архиву</string>\n    <string name=\"rotation_reverse_portrait\">Обрнути портрет</string>\n    <string name=\"publishing_finished\">Издавање завршено</string>\n    <string name=\"skipped_reason_completed\">Прескочено јер је наслов завршен</string>\n    <string name=\"skipped_reason_not_caught_up\">Прескочено јер има непрочитаних поглавља</string>\n    <string name=\"disabled_nav\">Onesposobljen</string>\n    <string name=\"empty_backup_error\">Нема уноса у колекцији за прављење резервних копија</string>\n    <string name=\"update_check_open\">Отвори на GitHub-у</string>\n    <string name=\"error_saving_picture\">Грешка при чувању слике</string>\n    <string name=\"action_close\">Затвори</string>\n    <string name=\"pref_clear_webview_data\">Обриши податке WebView-a</string>\n    <string name=\"webview_data_deleted\">Подаци WebView-a су обрисани</string>\n    <string name=\"pref_library_summary\">Категорије, глобално ажурирање, листање поглавља</string>\n    <string name=\"pref_reader_summary\">Режим читања, дисплеј, навигација</string>\n    <string name=\"pref_downloads_summary\">Аутоматско преузимање, преузимање унапред</string>\n    <string name=\"pref_tracking_summary\">Једносмерна синхронизација напретка, побољшана синхронизација</string>\n    <string name=\"pref_browse_summary\">Извори, додаци, глобална претрага</string>\n    <string name=\"pref_backup_summary\">Ручне и аутоматске резервне копије</string>\n    <string name=\"auto_download_while_reading\">Преузми аутоматски током читања</string>\n    <string name=\"copied_to_clipboard_plain\">Копирано</string>\n    <string name=\"pref_reset_viewer_flags_success\">Сва подешавања читача су ресетована</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Присили апликацију да поново провери преузета поглавља</string>\n    <string name=\"not_installed\">Није инсталирано</string>\n    <string name=\"crash_screen_description\">%s је наишао на неочекивану грешку. Предлажемо да поделите запис о прекиду програма на нашем каналу за подршку на Discord-у.</string>\n    <string name=\"appwidget_unavailable_locked\">Виџет није доступан када је омогућено закључавање апликације</string>\n    <string name=\"pref_library_update_show_tab_badge\">Прокажи број непрочитаних на икони ажурирања</string>\n    <string name=\"wish_list\">Листа жеља</string>\n    <string name=\"enhanced_services_not_installed\">Доступно, али извор није преузет: %s</string>\n    <string name=\"fdroid_warning\">F-Droid верзије нису званично подржане.\n\\nДодирните да сазнате више.</string>\n    <string name=\"track_remove_date_conf_title\">Уклони датум?</string>\n    <string name=\"track_remove_start_date_conf_text\">Овим уклањате претходно изабран почетни датум од %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Овим уклањате претходно изабран завршени датум од %s</string>\n    <string name=\"updates_last_update_info\">Последње ажурирање колекције било је: %s</string>\n    <string name=\"updates_last_update_info_just_now\">Управо сада</string>\n    <string name=\"update_already_running\">Ажурирање је већ у току</string>\n    <string name=\"complete_list\">Завршена листа</string>\n    <string name=\"on_hold_list\">Наслови на чекању</string>\n    <string name=\"unfinished_list\">Незавршени наслови</string>\n    <string name=\"label_stats\">Статистике</string>\n    <string name=\"label_started\">Започето</string>\n    <string name=\"label_local\">Локално</string>\n    <string name=\"label_downloaded\">Преузето</string>\n    <string name=\"theme_lavender\">Лаванда</string>\n    <string name=\"pref_app_language\">Језик апликације</string>\n    <string name=\"ext_info_version\">Верзија</string>\n    <string name=\"invalid_location\">Неважећа локација: %s</string>\n    <string name=\"unknown_title\">Непознат наслов</string>\n    <string name=\"label_overview_section\">Преглед</string>\n    <string name=\"reading_list\">Листа за читање</string>\n    <string name=\"are_you_sure\">Да ли сте сигурни?</string>\n    <string name=\"label_read_duration\">Трајање читања</string>\n    <string name=\"label_titles_in_global_update\">У глобалним ажурирањима</string>\n    <string name=\"label_titles_section\">Наслови</string>\n    <string name=\"label_total_chapters\">Укупно</string>\n    <string name=\"label_mean_score\">Просечна оцена</string>\n    <string name=\"label_read_chapters\">Прочитано</string>\n    <string name=\"label_used\">Коришћено</string>\n    <string name=\"day_short\">%d д</string>\n    <string name=\"hour_short\">%dч</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"minute_short\">%dмин</string>\n    <string name=\"seconds_short\">%dс</string>\n    <string name=\"description_placeholder\">Нема описа</string>\n    <string name=\"action_display_show_continue_reading_button\">Дугме за наставак читања</string>\n    <string name=\"internal_error\">InternalError: Провери записнике о прекиду програма за даље информације</string>\n    <string name=\"pref_skip_dupe_chapters\">Прескочи дупликатска поглавља</string>\n    <string name=\"multi_lang\">Више језика</string>\n    <string name=\"ext_info_language\">Језик</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Ресетуј режим читања и оријентацију свих серија</string>\n    <string name=\"popular\">Популарно</string>\n    <string name=\"label_completed_titles\">Завршени наслови</string>\n    <string name=\"split_tall_images_summary\">Побољшава перформансе читача</string>\n    <string name=\"network_not_metered\">Само на мрежи без ограничења</string>\n    <string name=\"missing_storage_permission\">Дозвола за меморијски простор није одобрена</string>\n    <string name=\"error_user_agent_string_invalid\">Неважећи низ корисничког агента</string>\n    <string name=\"pref_reset_viewer_flags_error\">Није могуће ресетовати подешавања читача</string>\n    <string name=\"remove_manga\">Управо ћете уклонити \\\"%s\\\" из своје колекције</string>\n    <string name=\"appwidget_updates_description\">Погледај твоје недавно ажуриране наслове у колекцији</string>\n    <string name=\"pref_invalidate_download_cache\">Поништи индекс преузимања</string>\n    <string name=\"action_sort_unread_count\">Број непрочитаних</string>\n    <string name=\"action_sort_last_manga_update\">Последња провера ажурирања</string>\n    <string name=\"delete_category\">Обриши категорију</string>\n    <string name=\"delete_category_confirmation\">Желиш ли обрисати категорију \\\"%s\\\"?</string>\n    <string name=\"action_remove_everything\">Уклони све</string>\n    <string name=\"crash_screen_title\">Упс!</string>\n    <string name=\"crash_screen_restart_application\">Поново покрени апликацију</string>\n    <string name=\"cant_open_last_read_chapter\">Није могуће отворити последње прочитано поглавље</string>\n    <string name=\"action_search_hint\">Претражи…</string>\n    <string name=\"download_ahead\">Преузми унапред</string>\n    <string name=\"empty_screen\">Е па, ово је незгодно</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Није могуће пронаћи пут датотеке странице %d</string>\n    <string name=\"skipped_reason_not_always_update\">Прескочено јер наслов не захтева ажурирање</string>\n    <string name=\"download_notifier_split_page_not_found\">Страница %d није пронађена током раздвајања</string>\n    <string name=\"download_notifier_cache_renewal\">Провера преузимања</string>\n    <string name=\"action_not_now\">Не сада</string>\n    <string name=\"pref_appearance_summary\">Формат теме, датума и времена</string>\n    <string name=\"pref_security_summary\">Закључавање апликације, сигуран екран</string>\n    <string name=\"pref_advanced_summary\">Записници гашења апликације, оптимизације батерије</string>\n    <string name=\"action_open_random_manga\">Отвори насумични наслов</string>\n    <string name=\"download_ahead_info\">Ради само ако је тренутно и следеће поглавље већ преузето.</string>\n    <string name=\"information_no_entries_found\">Нема наслова у овој категорији</string>\n    <string name=\"information_no_manga_category\">Категорија је празна</string>\n    <string name=\"error_user_agent_string_blank\">Низ корисничког агента не може бити празан</string>\n    <string name=\"pref_reset_user_agent_string\">Ресетуј подразумевани низ корисничког агента</string>\n    <string name=\"label_tracked_titles\">Праћени наслови</string>\n    <string name=\"label_tracker_section\">Пратиоци</string>\n    <string name=\"ext_info_age_rating\">Рангирање по узрасту</string>\n    <string name=\"custom_cover\">Персонализовани омот</string>\n    <string name=\"pref_reset_viewer_flags\">Ресетуј подешавања читача по наслову</string>\n    <string name=\"source_empty_screen\">Извор није пронађен</string>\n    <string name=\"source_filter_empty_screen\">Није пронађен инсталирани извор</string>\n    <string name=\"theme_tidalwave\">Цунами</string>\n    <string name=\"pref_user_agent_string\">Подразумеван низ корисничког агента</string>\n    <string name=\"track_error\">%1$s грешка: %2$s</string>\n    <string name=\"information_required_plain\">*неопходно</string>\n    <string name=\"action_update_category\">Ажурирај категорију</string>\n    <string name=\"pref_hide_in_library_items\">Сакри уносе који се већ налазе у колекцији</string>\n    <string name=\"overlay_header\">Прекривање</string>\n    <string name=\"split_tall_images\">Растави високе слике</string>\n    <string name=\"pref_chapter_swipe_end\">Превуци удесно</string>\n    <string name=\"pref_chapter_swipe_start\">Превуци улево</string>\n    <string name=\"pref_double_tap_zoom\">Додирни двапут за зумирање</string>\n    <string name=\"action_copy_to_clipboard\">Копирај</string>\n    <string name=\"pref_page_rotate_invert\">Окрени положај широких страница</string>\n    <string name=\"pref_page_rotate\">Прилагоди широке странице ротирањем</string>\n    <string name=\"pref_debug_info\">Информације за отклањање грешака</string>\n    <string name=\"create_backup_file_error\">Није могуће створити датотеку резервне копије</string>\n    <string name=\"has_results\">Има резултата</string>\n    <string name=\"skipped_reason_not_in_release_period\">Прескочено јер данас није очекивано издање</string>\n    <string name=\"pref_update_only_in_release_period\">Предвиди очекивано време изласка</string>\n    <string name=\"action_set_interval\">Постави интервал</string>\n    <string name=\"intervals_header\">Интервали</string>\n    <string name=\"track_delete_remote_text\">Такође уклони из %s</string>\n    <string name=\"track_activity_name\">Запис праћења</string>\n    <string name=\"manga_display_interval_title\">Процени сваки</string>\n    <string name=\"information_cloudflare_help\">Додирни овде за помоћ са Cloudflare-ом</string>\n    <string name=\"download_cache_invalidated\">Индекс преузимања поништен</string>\n    <string name=\"delete_downloaded\">Обриши преузет садржај</string>\n    <string name=\"action_filter_interval_custom\">Прилагођен интервал преузимања</string>\n    <string name=\"action_ok\">У реду</string>\n    <string name=\"library_sync_complete\">Синхронизовање колекције завршено</string>\n    <string name=\"manga_display_modified_interval_title\">Постави да ажурира сваки</string>\n    <string name=\"track_delete_title\">Уклони праћење %s?</string>\n    <string name=\"track_delete_text\">Ово ће уклонити локално праћење.</string>\n    <string name=\"action_sort_next_updated\">Следеће очекивано ажурирање</string>\n    <string name=\"syncing_library\">Синхронизовање колекције</string>\n    <string name=\"unlock_app_title\">Откључај %s</string>\n    <string name=\"exception_offline\">Нема везе са интернетом</string>\n    <string name=\"exception_http\">HTTP %d, погледај веб сајт у WebView</string>\n    <string name=\"exception_unknown_host\">%s је недоступан</string>\n    <string name=\"pref_relative_format\">Релативне временске ознаке</string>\n    <string name=\"pref_relative_format_summary\">„%1$s” уместо „%2$s”</string>\n    <string name=\"pref_library_update_smart_update\">Паметно ажурирање</string>\n    <string name=\"pref_flash_page\">Забљесни приликом листања</string>\n    <string name=\"pref_flash_page_summ\">Смањује артефакте на е-инк екранима</string>\n    <string name=\"label_extension_repos\">Репозиторије додатака</string>\n    <string name=\"pref_storage_location\">Место складиштења</string>\n    <string name=\"pref_storage_location_info\">Користи се за аутоматске резервне копије, преузимаље поглавља и локални извор.</string>\n    <string name=\"ext_revoke_trust\">Опозови поверење непознатим екстензијама</string>\n    <string name=\"action_sort_tracker_score\">Оцена на пратиоцу</string>\n    <string name=\"scanlator\">Аматерски преводилац</string>\n    <string name=\"no_scanlators_found\">Ниједан аматерски преводилац није пронађен</string>\n    <string name=\"exclude_scanlators\">Не укључуј аматерске преводиоце</string>\n    <string name=\"manga_interval_expected_update\">Предвиђа се да ће нова поглавља изаћи за %1$s, проверава се сваких %2$s.</string>\n    <string name=\"manga_interval_expected_update_soon\">Ускоро</string>\n    <string name=\"available_disk_space_info\">Доступно: %1$s / Укупно: %2$s</string>\n    <string name=\"information_empty_repos\">Немате додатих репозиторија.</string>\n    <string name=\"action_add_repo\">Додај репозиторију</string>\n    <string name=\"action_delete_repo\">Избриши репозиторију</string>\n    <string name=\"label_add_repo_input\">URL репозиторије</string>\n    <string name=\"action_add_repo_message\">Додај додатне репозиторије у %s. Треба да буде URL који се завршава са „index.min.json”.</string>\n    <string name=\"invalid_repo_name\">Неисправан URL репозиторије</string>\n    <string name=\"delete_repo_confirmation\">Да ли желиш да избришеш репозиторију „%s”?</string>\n    <string name=\"private_settings\">Укључи и осетљива подешавања (нпр. токени за пријаву у пратиоце)</string>\n    <string name=\"onboarding_storage_action_select\">Изабери путању</string>\n    <string name=\"onboarding_action_finish\">Започни</string>\n    <string name=\"onboarding_storage_selection_required\">Мораш да изабереш једну путању</string>\n    <string name=\"onboarding_permission_notifications\">Дозвола за обавештења</string>\n    <string name=\"onboarding_permission_install_apps\">Дозвола за инсталацију апликација</string>\n    <string name=\"onboarding_action_skip\">Пресокочи</string>\n    <string name=\"onboarding_action_next\">Следеће</string>\n    <string name=\"onboarding_permission_install_apps_description\">За инсталирање додатака.</string>\n    <string name=\"onboarding_permission_notifications_description\">За примање обавештења о ажурурању библиотеке и др.</string>\n    <string name=\"onboarding_permission_action_grant\">Одобри</string>\n    <string name=\"onboarding_heading\">Добро дошли!</string>\n    <string name=\"pref_onboarding_guide\">Водич за прво покретање</string>\n    <string name=\"onboarding_guides_new_user\">Користш %s први пут? Препоручујемо да погледаш водич за покретање</string>\n    <string name=\"onboarding_guides_returning_user\">Поново инсталираш %s?</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Избегни прекиде при дуготрајном ажурирању колекције, преузимању и обнављању резервне копије</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Коришћење батерије у позадини</string>\n    <string name=\"onboarding_description\">Хајде да обавимо нека подешавања. Ако желиш можеш их касније променити у подешавањима.</string>\n    <string name=\"no_location_set\">Није постављена локација за складиштење</string>\n    <string name=\"onboarding_storage_info\">Одабери путању у коју ће %1$s чувати преузимања поглавља, резервне копије и друго.\n\\n\n\\nПрепоручујемо коришћење засебне путање\n\\n\n\\nОдабрана путања: %2$s</string>\n    <string name=\"theme_nord\">Норд</string>\n    <string name=\"onboarding_storage_help_info\">Ажурураш са старије верзије и не знаш шта да изабереш? Потражи информације у водичу складиштења.</string>\n    <string name=\"onboarding_storage_help_action\">Водич складиштења</string>\n    <string name=\"ext_permission_install_apps_warning\">За инсталацију додатака потребне су дозволе. Додирни овде за одобрење</string>\n    <string name=\"invalid_backup_file_error\">Грешка:</string>\n    <string name=\"error_repo_exists\">Ова репозиторија већ постоји</string>\n    <string name=\"manga_interval_custom_amount\">Прилагођена учесталост ажурирања:</string>\n    <string name=\"action_open_repo\">Отвори репозиторију</string>\n    <string name=\"not_selected\">Није одабрано</string>\n    <string name=\"selected\">Одабрано</string>\n    <string name=\"action_menu_overflow_description\">Више опција</string>\n    <string name=\"action_bar_up_description\">Навигација према горе</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Премести серију на крај</string>\n    <string name=\"app_settings\">Подешавања апликације</string>\n    <string name=\"source_settings\">Подешавања извора</string>\n    <string name=\"last_auto_backup_info\">Последња аутоматска резервна копија:%s</string>\n    <string name=\"relative_time_span_never\">Никада</string>\n    <string name=\"notification_updating_progress\">Ажурирање библиотеке... (%s)</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Онемогући умањивање</string>\n    <string name=\"action_create\">Створи</string>\n    <string name=\"pref_storage_usage\">Коришћење складишта</string>\n    <string name=\"file_null_uri_error\">Ни једна датотека није одабрана</string>\n    <string name=\"action_apply\">Примени</string>\n    <string name=\"action_revert_to_default\">Врати на подразумевано</string>\n    <string name=\"action_add_anyway\">Dodati svejedno</string>\n    <string name=\"label_upcoming\">Predstojeći</string>\n    <string name=\"action_replace_repo\">Zameniti</string>\n    <string name=\"action_replace_repo_title\">Otisak prsta za otključavanje već postoji</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sv/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Efter %1$s minut</item>\n        <item quantity=\"other\">Efter %1$s minuter</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d nytt kapitel</item>\n        <item quantity=\"other\">%1$d nya kapitel</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Kapitel %1$s och 1 till</item>\n        <item quantity=\"other\">Kapitlen %1$s och %2$d till</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">För %d post</item>\n        <item quantity=\"other\">För %d poster</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Tilläggsuppdatering tillgänglig</item>\n        <item quantity=\"other\">%d tilläggsuppdateringar tillgängliga</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s återstående</item>\n        <item quantity=\"other\">%1$s återstående</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d kategori</item>\n        <item quantity=\"other\">%d kategorier</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Klar på %1$s med %2$s fel</item>\n        <item quantity=\"other\">Klar på %1$s med %2$s fel</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s kapitel</item>\n        <item quantity=\"other\">%1$s kapitel</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d spårare</item>\n        <item quantity=\"other\">%d spårare</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Hoppar över %d kapitel, antingen saknar källan det eller så har det filtrerats bort</item>\n        <item quantity=\"other\">Hoppar över %d kapitel, antingen saknar källan dem eller så har de filtrerats bort</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Igår</item>\n        <item quantity=\"other\">För %1$d dagar sedan</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Nästa olästa kapitel</item>\n        <item quantity=\"other\">Nästa %d olästa kapitel</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Saknar %1$s kapitel</item>\n        <item quantity=\"other\">Saknar %1$s kapitel</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 dag</item>\n        <item quantity=\"other\">%d dagar</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Nästa kapitel</item>\n        <item quantity=\"other\">Nästa %d kapitel</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d förråd</item>\n        <item quantity=\"other\">%d förråd</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Imorgon</item>\n        <item quantity=\"other\">Om %1$d dagar</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 sida</item>\n        <item quantity=\"other\">%1$s sidor</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/sv/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Namn</string>\n    <string name=\"categories\">Kategorier</string>\n    <string name=\"manga\">Biblioteksposter</string>\n    <string name=\"chapters\">Kapitel</string>\n    <string name=\"track\">Spårning</string>\n    <string name=\"history\">Historik</string>\n    <string name=\"label_settings\">Inställningar</string>\n    <string name=\"label_download_queue\">Nedladdningskö</string>\n    <string name=\"label_library\">Bibliotek</string>\n    <string name=\"label_recent_manga\">Historik</string>\n    <string name=\"label_recent_updates\">Uppdateringar</string>\n    <string name=\"label_backup\">Säkerhetskopiera och återställ</string>\n    <string name=\"label_migration\">Migrera</string>\n    <string name=\"label_extensions\">Tillägg</string>\n    <string name=\"label_extension_info\">Tilläggsinformation</string>\n    <string name=\"action_settings\">Inställningar</string>\n    <string name=\"action_filter\">Filter</string>\n    <string name=\"action_filter_bookmarked\">Bokmärkt</string>\n    <string name=\"action_filter_unread\">Oläst</string>\n    <string name=\"action_filter_empty\">Ta bort filtret</string>\n    <string name=\"action_sort_alpha\">Alfabetiskt</string>\n    <string name=\"action_sort_total\">Totalt kapitel</string>\n    <string name=\"action_sort_last_read\">Senast läst</string>\n    <string name=\"action_search\">Sök</string>\n    <string name=\"action_global_search\">Global sökning</string>\n    <string name=\"action_select_all\">Välj alla</string>\n    <string name=\"action_mark_as_read\">Markera som läst</string>\n    <string name=\"action_mark_as_unread\">Markera som oläst</string>\n    <string name=\"action_mark_previous_as_read\">Markera tidigare som läst</string>\n    <string name=\"action_download\">Ladda ner</string>\n    <string name=\"action_bookmark\">Kapitel bokmärke</string>\n    <string name=\"action_remove_bookmark\">Radera kapitel bokmärke</string>\n    <string name=\"action_delete\">Radera</string>\n    <string name=\"action_update_library\">Uppdatera biblioteket</string>\n    <string name=\"action_edit\">Redigera</string>\n    <string name=\"action_add\">Lägg till</string>\n    <string name=\"action_add_category\">Lägg till kategori</string>\n    <string name=\"action_edit_categories\">Redigera kategorier</string>\n    <string name=\"action_rename_category\">Byt namn på kategori</string>\n    <string name=\"action_move_category\">Välj kategorier</string>\n    <string name=\"action_edit_cover\">Redigera omslaget</string>\n    <string name=\"action_pause\">Paus</string>\n    <string name=\"action_previous_chapter\">Föregående kapitel</string>\n    <string name=\"action_next_chapter\">Nästa kapitel</string>\n    <string name=\"action_retry\">Försök igen</string>\n    <string name=\"action_remove\">Ta bort</string>\n    <string name=\"action_resume\">Återuppta</string>\n    <string name=\"action_open_in_browser\">Öppna i webbläsaren</string>\n    <string name=\"action_display_mode\">Visningsläge</string>\n    <string name=\"action_display\">Visa</string>\n    <string name=\"action_display_grid\">Kompakt rutnät</string>\n    <string name=\"action_display_list\">Lista</string>\n    <string name=\"action_display_download_badge\">Nedladdade kapitel</string>\n    <string name=\"action_cancel\">Avbryt</string>\n    <string name=\"action_sort\">Sortera</string>\n    <string name=\"action_install\">Installera</string>\n    <string name=\"action_share\">Dela</string>\n    <string name=\"action_save\">Spara</string>\n    <string name=\"action_reset\">Återställ</string>\n    <string name=\"action_undo\">Ånga</string>\n    <string name=\"action_open_log\">Öppna logg</string>\n    <string name=\"action_restore\">Återställ</string>\n    <string name=\"loading\">Laddar…</string>\n    <string name=\"app_not_available\">Applikationen är inte tillgänglig</string>\n    <string name=\"pref_category_general\">Allmänt</string>\n    <string name=\"pref_category_reader\">Läsare</string>\n    <string name=\"pref_category_downloads\">Nedladdningar</string>\n    <string name=\"pref_category_tracking\">Spårning</string>\n    <string name=\"pref_category_advanced\">Avancerat</string>\n    <string name=\"pref_category_about\">Om appen</string>\n    <string name=\"pref_library_columns\">Objekt per rad</string>\n    <string name=\"portrait\">Porträtt</string>\n    <string name=\"landscape\">Landskap</string>\n    <string name=\"pref_library_update_interval\">Automatiska uppdateringar</string>\n    <string name=\"update_never\">Av</string>\n    <string name=\"update_6hour\">Var 6:e timme</string>\n    <string name=\"update_12hour\">Var 12:e timme</string>\n    <string name=\"update_24hour\">Dagligen</string>\n    <string name=\"update_48hour\">Varannan dag</string>\n    <string name=\"update_weekly\">Varje vecka</string>\n    <string name=\"all\">Alla</string>\n    <string name=\"pref_library_update_restriction\">Automatiska uppdateringar av enhetsbegränsningar</string>\n    <string name=\"charging\">Vid laddning</string>\n    <string name=\"pref_update_only_non_completed\">Hoppa över artiklar med status \\\"Avslutat\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Uppdatera förlopp efter läsning</string>\n    <string name=\"default_category\">Standardkategori</string>\n    <string name=\"default_category_summary\">Fråga alltid</string>\n    <string name=\"ext_update\">Uppdatera</string>\n    <string name=\"ext_install\">Installera</string>\n    <string name=\"ext_pending\">Väntade</string>\n    <string name=\"ext_downloading\">Laddar ner</string>\n    <string name=\"ext_installing\">Installerar</string>\n    <string name=\"ext_installed\">Installerad</string>\n    <string name=\"ext_trust\">Förtroende</string>\n    <string name=\"ext_untrusted\">Opålitlig</string>\n    <string name=\"ext_uninstall\">Avinstallera</string>\n    <string name=\"untrusted_extension\">Opålitlig extension</string>\n    <string name=\"untrusted_extension_message\">Ett skadligt tillägg kan läsa lagrade inloggningsuppgifter eller köra arbiträr kod.\n\\n\n\\nGenom att lita på detta tillägg accepterar du dessa risker.</string>\n    <string name=\"pref_fullscreen\">Fullskärm</string>\n    <string name=\"pref_page_transitions\">Animera sidbyten</string>\n    <string name=\"pref_double_tap_anim_speed\">Animationshastighet för dubbelklick</string>\n    <string name=\"pref_show_page_number\">Visa sidnummer</string>\n    <string name=\"pref_crop_borders\">Beskär kanter</string>\n    <string name=\"pref_custom_brightness\">Anpassad ljusstyrka</string>\n    <string name=\"pref_custom_color_filter\">Anpassad färgfilter</string>\n    <string name=\"pref_keep_screen_on\">Håll skärmen på</string>\n    <string name=\"pref_reader_navigation\">Navigering</string>\n    <string name=\"pref_read_with_volume_keys\">Volymknapparna</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Invertera volymknapparna</string>\n    <string name=\"pref_reader_theme\">Bakgrundsfärg</string>\n    <string name=\"white_background\">Vit</string>\n    <string name=\"black_background\">Svart</string>\n    <string name=\"pref_viewer_type\">Standardläsläge</string>\n    <string name=\"left_to_right_viewer\">Sidor (vänster till höger)</string>\n    <string name=\"right_to_left_viewer\">Sidor (höger till vänster)</string>\n    <string name=\"vertical_viewer\">Sidformat (vertikalt)</string>\n    <string name=\"webtoon_viewer\">Lång remsa</string>\n    <string name=\"pager_viewer\">Sidläsare</string>\n    <string name=\"pref_image_scale_type\">Bildanpassning</string>\n    <string name=\"scale_type_fit_screen\">Passa skärmen</string>\n    <string name=\"scale_type_stretch\">Sträck ut</string>\n    <string name=\"scale_type_fit_width\">Passa bredd</string>\n    <string name=\"scale_type_fit_height\">Passa höjd</string>\n    <string name=\"scale_type_original_size\">Originalstorlek</string>\n    <string name=\"scale_type_smart_fit\">Smart passning</string>\n    <string name=\"pref_zoom_start\">Startposition på Zoom</string>\n    <string name=\"zoom_start_automatic\">Automatisk</string>\n    <string name=\"zoom_start_left\">Vänster</string>\n    <string name=\"zoom_start_right\">Höger</string>\n    <string name=\"zoom_start_center\">Mitten</string>\n    <string name=\"double_tap_anim_speed_0\">Ingen animering</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Snabb</string>\n    <string name=\"pref_rotation_type\">Standard rotation</string>\n    <string name=\"rotation_free\">Upplåst</string>\n    <string name=\"rotation_force_portrait\">Låst porträtt</string>\n    <string name=\"rotation_force_landscape\">Låst liggande</string>\n    <string name=\"color_filter_r_value\">Röd</string>\n    <string name=\"color_filter_g_value\">Grön</string>\n    <string name=\"color_filter_b_value\">Blå</string>\n    <string name=\"color_filter_a_value\">Transparens</string>\n    <string name=\"pref_remove_after_marked_as_read\">Efter manuellt markerad som läst</string>\n    <string name=\"pref_remove_after_read\">Ta bort automatiskt efter läsning</string>\n    <string name=\"disabled\">Inaktiverad</string>\n    <string name=\"last_read_chapter\">Senaste lästa kapitel</string>\n    <string name=\"second_to_last\">Näst sist lästa kapitel</string>\n    <string name=\"third_to_last\">Tredje till sist lästa kapitlet</string>\n    <string name=\"fourth_to_last\">Fjärde till sista lästa kapitlet</string>\n    <string name=\"fifth_to_last\">Femte till sist lästa kapitlet</string>\n    <string name=\"pref_download_new\">Ladda ner nya kapitel</string>\n    <string name=\"services\">Spårare</string>\n    <string name=\"pref_create_backup\">Skapa säkerhetskopia</string>\n    <string name=\"pref_create_backup_summ\">Kan användas för att återställa biblioteket</string>\n    <string name=\"pref_restore_backup\">Återställ säkerhetskopia</string>\n    <string name=\"pref_restore_backup_summ\">Återställ biblioteket från en säkerhetskopia</string>\n    <string name=\"pref_backup_interval\">Automatisk säkerhetskopieringsfrekvens</string>\n    <string name=\"backup_created\">Säkerhetskopia skapad</string>\n    <string name=\"restore_completed\">Återställning slutförd</string>\n    <string name=\"backup_choice\">Vad vill du säkerhetskopiera?</string>\n    <string name=\"restoring_backup\">Återställer säkerhetskopia</string>\n    <string name=\"creating_backup\">Skapar säkerhetskopia</string>\n    <string name=\"pref_clear_chapter_cache\">Rensa kapitelcache</string>\n    <string name=\"used_cache\">Används: %1$s</string>\n    <string name=\"cache_deleted\">Cache rensad, %1$d filer togs bort</string>\n    <string name=\"cache_delete_error\">Fel inträffade vid rensning</string>\n    <string name=\"pref_clear_cookies\">Radera cookies</string>\n    <string name=\"cookies_cleared\">Cookies rensade</string>\n    <string name=\"pref_clear_database\">Rensa databas</string>\n    <string name=\"pref_clear_database_summary\">Ta bort historik för inlägg som inte finns i ditt bibliotek</string>\n    <string name=\"clear_database_completed\">Inlägg raderade</string>\n    <string name=\"version\">Version</string>\n    <string name=\"pref_enable_acra\">Skicka kraschrapporter</string>\n    <string name=\"pref_acra_summary\">Hjälper till att fixa eventuella buggar. Inga känsliga uppgifter skickas</string>\n    <string name=\"login_title\">Logga in för %1$s</string>\n    <string name=\"username\">Användarnamn</string>\n    <string name=\"password\">Lösenord</string>\n    <string name=\"login\">Logga in</string>\n    <string name=\"login_success\">Inloggad</string>\n    <string name=\"unknown_error\">Okänt fel</string>\n    <string name=\"updating_category\">Uppdaterar kategori</string>\n    <string name=\"no_more_results\">Inga mer resultat</string>\n    <string name=\"local_source\">Lokal källa</string>\n    <string name=\"other_source\">Andra</string>\n    <string name=\"action_global_search_hint\">Global sökning…</string>\n    <string name=\"latest\">Senaste</string>\n    <string name=\"browse\">Bläddra</string>\n    <string name=\"ongoing\">Pågående</string>\n    <string name=\"unknown\">Okänd</string>\n    <string name=\"licensed\">Licensierad</string>\n    <string name=\"remove_from_library\">Ta bort från biblioteket</string>\n    <string name=\"manga_added_library\">Lades till i biblioteket</string>\n    <string name=\"manga_removed_library\">Togs bort från biblioteket</string>\n    <string name=\"delete_downloads_for_manga\">Ta bort nedladdade kapitel?</string>\n    <string name=\"copied_to_clipboard\">Kopierat till urklipp:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Källa inte installerad: %1$s</string>\n    <string name=\"display_mode_chapter\">Kapitel %1$s</string>\n    <string name=\"chapter_downloading_progress\">Laddar ner (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Fel</string>\n    <string name=\"chapter_paused\">Pausad</string>\n    <string name=\"show_title\">Källtitel</string>\n    <string name=\"show_chapter_number\">Kapitelnummer</string>\n    <string name=\"sort_by_source\">Efter källa</string>\n    <string name=\"sort_by_number\">Efter kapitelnummer</string>\n    <string name=\"manga_download\">Ladda ner</string>\n    <string name=\"download_unread\">Olästa</string>\n    <string name=\"confirm_delete_chapters\">Är du säker på att du vill radera valda kapitel?</string>\n    <string name=\"manga_tracking_tab\">Spårning</string>\n    <string name=\"reading\">Läser</string>\n    <string name=\"completed\">Färdig</string>\n    <string name=\"dropped\">Slutat läsa</string>\n    <string name=\"on_hold\">Pausad</string>\n    <string name=\"plan_to_read\">Planerar att läsa</string>\n    <string name=\"repeating\">Läser om</string>\n    <string name=\"score\">Betyg</string>\n    <string name=\"title\">Titel</string>\n    <string name=\"status\">Status</string>\n    <string name=\"track_status\">Status</string>\n    <string name=\"track_type\">Typ</string>\n    <string name=\"error_category_exists\">En kategori med detta namn finns redan!</string>\n    <string name=\"snack_categories_deleted\">Kategorier raderade</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Detta kommer att ta bort läs datumet för detta kapitel. Är du säker?</string>\n    <string name=\"dialog_with_checkbox_reset\">Återställ alla kapitel för denna post</string>\n    <string name=\"snack_add_to_library\">Lägg till i biblioteket?</string>\n    <string name=\"picture_saved\">Bild sparad</string>\n    <string name=\"custom_filter\">Anpassat filter</string>\n    <string name=\"set_as_cover\">Ställ in som omslag</string>\n    <string name=\"cover_updated\">Omslag uppdaterad</string>\n    <string name=\"chapter_progress\">Sida: %1$d</string>\n    <string name=\"no_next_chapter\">Nästa kapitel kunde inte hittas</string>\n    <string name=\"decode_image_error\">Bilden kunde inte laddas</string>\n    <string name=\"confirm_set_image_as_cover\">Sätt bild som omslag?</string>\n    <string name=\"transition_finished\">Färdig:</string>\n    <string name=\"transition_current\">Nuvarande:</string>\n    <string name=\"transition_next\">Nästa:</string>\n    <string name=\"transition_previous\">Föregående:</string>\n    <string name=\"transition_no_next\">Det finns inget mer kapitel</string>\n    <string name=\"transition_no_previous\">Det finns inget tidigare kapitel</string>\n    <string name=\"transition_pages_loading\">Laddar sidor…</string>\n    <string name=\"transition_pages_error\">Misslyckades att ladda sidor: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Välj data som ska inkluderas</string>\n    <string name=\"migrate\">Migrera</string>\n    <string name=\"copy\">Kopiera</string>\n    <string name=\"download_queue_error\">Kunde inte ladda ned kapitlen. Du kan försöka igen i nedladdningssektionen</string>\n    <string name=\"notification_new_chapters\">Nya kapitel hittades</string>\n    <string name=\"notification_cover_update_failed\">Misslyckades att uppdatera omslag</string>\n    <string name=\"notification_first_add_to_library\">Vänligen lägg till post i ditt bibliotek innan du gör detta</string>\n    <string name=\"file_select_cover\">Välj omslagsbild</string>\n    <string name=\"file_select_backup\">Välj säkerhetskopia</string>\n    <string name=\"update_check_confirm\">Ladda ner</string>\n    <string name=\"update_check_no_new_updates\">Inga nya uppdateringar tillgängliga</string>\n    <string name=\"update_check_notification_download_in_progress\">Laddar ner…</string>\n    <string name=\"update_check_notification_download_complete\">Tryck för att installera uppdateringen</string>\n    <string name=\"update_check_notification_download_error\">Nedladdningsfel</string>\n    <string name=\"update_check_notification_update_available\">Ny version tillgänglig!</string>\n    <string name=\"information_no_downloads\">Inga nedladdningar</string>\n    <string name=\"information_no_recent\">Inga nya uppdateringar</string>\n    <string name=\"information_no_recent_manga\">Inget nyligen läst</string>\n    <string name=\"information_empty_library\">Ditt bibliotek är tomt</string>\n    <string name=\"information_empty_category\">Du har inga kategorier. Tryck på plusknappen för att skapa en för att organisera ditt bibliotek.</string>\n    <string name=\"download_notifier_downloader_title\">Nedladdare</string>\n    <string name=\"download_notifier_title_error\">Fel</string>\n    <string name=\"download_notifier_unknown_error\">Kunde inte ladda ned kapitel på grund av ett oförväntat fel</string>\n    <string name=\"download_notifier_text_only_wifi\">Ingen WiFi-anslutning tillgänglig</string>\n    <string name=\"download_notifier_no_network\">Ingen nätverksanslutning tillgänglig</string>\n    <string name=\"download_notifier_download_paused\">Nedladdningar pausade</string>\n    <string name=\"channel_common\">Vanlig</string>\n    <string name=\"action_open_in_web_view\">Öppna i WebView</string>\n    <string name=\"pref_skip_read_chapters\">Hoppa över lästa kapitel</string>\n    <string name=\"pref_read_with_long_tap\">Visa åtgärder vid lång tryckning</string>\n    <string name=\"pref_color_filter_mode\">Färgfilterblandningsläge</string>\n    <string name=\"filter_mode_overlay\">Överlägg</string>\n    <string name=\"filter_mode_multiply\">Multiplicera</string>\n    <string name=\"filter_mode_screen\">Skärm</string>\n    <string name=\"filter_mode_lighten\">Ljusna</string>\n    <string name=\"filter_mode_darken\">Mörkna</string>\n    <string name=\"label_help\">Hjälp</string>\n    <string name=\"no_results_found\">Inga resultat funna</string>\n    <string name=\"migration_selection_prompt\">Välj en källa att migrera ifrån</string>\n    <string name=\"action_webview_back\">Bakåt</string>\n    <string name=\"action_webview_forward\">Framåt</string>\n    <string name=\"action_webview_refresh\">Uppdatera</string>\n    <string name=\"pref_category_library\">Bibliotek</string>\n    <string name=\"ext_obsolete\">Obsolet</string>\n    <string name=\"obsolete_extension_message\">Detta tillägg är inte längre tillgängligt. Det kanske inte fungerar korrekt och kan orsaka problem med appen. Vi rekommenderar att du avinstallerar det.</string>\n    <string name=\"pref_date_format\">Datumformat</string>\n    <string name=\"pref_category_library_update\">Global uppdatering</string>\n    <string name=\"logout_title\">Logga ut från %1$s?</string>\n    <string name=\"logout\">Logga ut</string>\n    <string name=\"logout_success\">Du är nu utloggad</string>\n    <string name=\"paused\">Pausad</string>\n    <string name=\"label_more\">Mer</string>\n    <string name=\"action_sort_latest_chapter\">Senaste kapitel</string>\n    <string name=\"action_view_chapters\">Visa kapitel</string>\n    <string name=\"action_cancel_all\">Avbryt alla</string>\n    <string name=\"theme_light\">Ljus</string>\n    <string name=\"theme_dark\">Mörk</string>\n    <string name=\"theme_system\">System</string>\n    <string name=\"pref_manage_notifications\">Hantera aviseringar</string>\n    <string name=\"pref_category_security\">Säkerhet och integritet</string>\n    <string name=\"lock_with_biometrics\">Kräver upplåsning</string>\n    <string name=\"lock_when_idle\">Lås vid inaktivitet</string>\n    <string name=\"lock_always\">Alltid</string>\n    <string name=\"lock_never\">Aldrig</string>\n    <string name=\"secure_screen\">Säker skärm</string>\n    <string name=\"ext_updates_pending\">Uppdateringar väntar</string>\n    <string name=\"pref_cutout_short\">Visa innehåll i utskärningsområdet</string>\n    <string name=\"information_cloudflare_bypass_failure\">Det gick inte att kringgå Cloudflare</string>\n    <string name=\"information_webview_outdated\">Uppdatera WebView-appen för bättre kompatibilitet</string>\n    <string name=\"channel_new_chapters\">Kapiteluppdateringar</string>\n    <string name=\"secure_screen_summary\">Säker skärm döljer appinnehållet när du byter app och blockerar skärmdumpar</string>\n    <string name=\"pref_category_display\">Skärmvisning</string>\n    <string name=\"notification_chapters_single\">Kapitel %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Kapitel %1$s och %2$d till</string>\n    <string name=\"notification_chapters_multiple\">Kapitlen %1$s</string>\n    <string name=\"hide_notification_content\">Dölj notisinnehåll</string>\n    <string name=\"pref_disable_battery_optimization\">Inaktivera batterioptimering</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Hjälper till med uppdateringar och säkerhetskopior i bakgrunden</string>\n    <string name=\"battery_optimization_disabled\">Batterioptimering är redan inaktiverat</string>\n    <string name=\"email\">E-postadress</string>\n    <string name=\"pref_always_show_chapter_transition\">Visa alltid kapitelövergång</string>\n    <string name=\"action_menu\">Meny</string>\n    <string name=\"action_newest\">Nyaste</string>\n    <string name=\"action_oldest\">Äldsta</string>\n    <string name=\"action_move_to_top\">Flytta till toppen</string>\n    <string name=\"action_move_to_bottom\">Flytta till botten</string>\n    <string name=\"channel_ext_updates\">Tilläggsuppdateringar</string>\n    <string name=\"updating_library\">Uppdaterar biblioteket</string>\n    <string name=\"pref_category_reading\">Läser</string>\n    <string name=\"pref_skip_filtered_chapters\">Hoppa över filtrerade kapitel</string>\n    <string name=\"label_sources\">Källor</string>\n    <string name=\"add_tracking\">Lägg till spårning</string>\n    <string name=\"in_library\">I biblioteket</string>\n    <string name=\"add_to_library\">Lägg till i biblioteket</string>\n    <string name=\"pinned_sources\">Nålad</string>\n    <string name=\"pref_webtoon_side_padding\">Sidofyllning</string>\n    <string name=\"vertical_plus_viewer\">Lång remsa med mellanrum</string>\n    <string name=\"action_unpin\">Lossa</string>\n    <string name=\"action_pin\">Nåla</string>\n    <string name=\"action_select_inverse\">Välj omvänd</string>\n    <string name=\"manga_info_collapse\">Mindre</string>\n    <string name=\"manga_info_expand\">Mer</string>\n    <string name=\"information_webview_required\">WebView krävs för att appen ska fungera</string>\n    <string name=\"recent_manga_time\">Kapitel %1$s - %2$s</string>\n    <string name=\"local_source_help_guide\">Lokal källa guide</string>\n    <string name=\"last_used_source\">Senast använd</string>\n    <string name=\"check_for_updates\">Sök efter uppdateringar</string>\n    <string name=\"licenses\">Open source-licenser</string>\n    <string name=\"website\">Hemsida</string>\n    <string name=\"restoring_backup_canceled\">Avbruten återställning</string>\n    <string name=\"restoring_backup_error\">Återställning av säkerhetskopiering misslyckades</string>\n    <string name=\"restore_in_progress\">Återställningen pågår redan</string>\n    <string name=\"creating_backup_error\">Säkerhetskopiering misslyckades</string>\n    <string name=\"backup_in_progress\">Säkerhetskopiering pågår redan</string>\n    <string name=\"restore_duration\">%1$02d minuter, %2$02d sekunder</string>\n    <string name=\"label_downloaded_only\">Endast nedladdat</string>\n    <string name=\"downloaded_only_summary\">Filtrerar alla poster i ditt bibliotek</string>\n    <string name=\"viewer\">Läsläge</string>\n    <string name=\"pref_category_for_this_series\">För denna serie</string>\n    <string name=\"gray_background\">Grå</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Det gick inte att öppna enhetsinställningarna</string>\n    <string name=\"pref_refresh_library_covers\">Uppdatera bibliotekets omslag</string>\n    <string name=\"tracking_info\">Envägssynkronisering för att uppdatera kapitlets framsteg i externa spårningstjänster. Ställ in spårning för enskilda poster från deras spårningsknapp.</string>\n    <string name=\"sort_by_upload_date\">Efter uppladdningsdatum</string>\n    <string name=\"label_data\">Data</string>\n    <string name=\"backup_restore_missing_sources\">Saknade källor:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Säkerhetskopian innehåller inga biblioteksposter.</string>\n    <string name=\"invalid_backup_file\">Ogiltig säkerhetskopiafil:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Sök efter nytt omslag och detaljer när du uppdaterar biblioteket</string>\n    <string name=\"pref_library_update_refresh_metadata\">Uppdatera metadata automatiskt</string>\n    <string name=\"action_migrate\">Migrera</string>\n    <string name=\"action_disable_all\">Inaktivera alla</string>\n    <string name=\"page_list_empty_error\">Hittade inga sidor</string>\n    <string name=\"tabs_header\">Flikar</string>\n    <string name=\"pref_show_reading_mode_summary\">Visa nuvarande läge när läsaren öppnas</string>\n    <string name=\"pref_show_reading_mode\">Visa läsläge</string>\n    <string name=\"action_display_show_tabs\">Visa kategoriflikar</string>\n    <string name=\"action_display_comfortable_grid\">Komfortabelt rutnät</string>\n    <string name=\"action_enable_all\">Aktivera alla</string>\n    <string name=\"action_start\">Start</string>\n    <string name=\"tapping_inverted_both\">Både</string>\n    <string name=\"tapping_inverted_vertical\">Vertikal</string>\n    <string name=\"tapping_inverted_horizontal\">Horisontell</string>\n    <string name=\"tapping_inverted_none\">Ingen</string>\n    <string name=\"pref_read_with_tapping_inverted\">Invertera tryckzoner</string>\n    <string name=\"loader_not_implemented_error\">Källan hittades inte</string>\n    <string name=\"unknown_status\">Okänd status</string>\n    <string name=\"unknown_author\">Okänd författare</string>\n    <string name=\"requires_app_restart\">Kräver omstart av appen för att börja gälla</string>\n    <string name=\"label_network\">Nätverk</string>\n    <string name=\"action_disable\">Inaktivera</string>\n    <string name=\"download_insufficient_space\">Det gick inte att ladda ner kapitelt på grund av lågt lagringsutrymme</string>\n    <string name=\"action_global_search_query\">Sök efter \\\"%1$s\\\" globalt</string>\n    <string name=\"updated_version\">Uppdaterad till v%1$s</string>\n    <string name=\"whats_new\">Vad är nytt</string>\n    <string name=\"pref_category_reading_mode\">Läsläge</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"action_sort_date_added\">Datum tillagd</string>\n    <string name=\"channel_complete\">Färdig</string>\n    <string name=\"channel_progress\">Förlopp</string>\n    <string name=\"no_pinned_sources\">Du har inga fästa källor</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Tillåt att radera bokmärkta kapitel</string>\n    <string name=\"pref_category_delete_chapters\">Ta bort kapitel</string>\n    <string name=\"ext_nsfw_warning\">Källor från detta tillägg kan innehålla NSFW(18+) innehåll</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"backup_restore_missing_trackers\">Spårare som inte har loggats in:</string>\n    <string name=\"parental_controls_info\">Detta förhindrar inte inofficiella eller potentiellt felaktigt flaggade tillägg från att visa NSFW(18+) innehåll i appen.</string>\n    <string name=\"channel_errors\">Fel</string>\n    <string name=\"chapter_settings_updated\">Uppdaterade standardinställningar för kapitel</string>\n    <string name=\"confirm_set_chapter_settings\">Vill du spara de här inställningarna som standard?</string>\n    <string name=\"share_page_info\">%1$s: %2$s, sida %3$d</string>\n    <string name=\"no_chapters_error\">Inga kapitel hittades</string>\n    <string name=\"set_chapter_settings_as_default\">Ange som standard</string>\n    <string name=\"also_set_chapter_settings_for_library\">Gäller även alla inlägg i biblioteket</string>\n    <string name=\"chapter_settings\">Kapitelinställningar</string>\n    <string name=\"downloaded_chapters\">Nedladdade kapitel</string>\n    <string name=\"manga_from_library\">Från biblioteket</string>\n    <string name=\"pref_incognito_mode_summary\">Pausar läshistoriken</string>\n    <string name=\"pref_incognito_mode\">Inkognitoläge</string>\n    <string name=\"pref_clear_history\">Rensa historik</string>\n    <string name=\"clear_history_confirmation\">Är du säker? All historik kommer att försvinna.</string>\n    <string name=\"clear_history_completed\">Historiken har tagits bort</string>\n    <string name=\"action_search_settings\">Sök inställningar</string>\n    <string name=\"spen_next_page\">Nästa sida</string>\n    <string name=\"spen_previous_page\">Föregående sida</string>\n    <string name=\"migration_help_guide\">Migreringsguide för källor</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) källor</string>\n    <string name=\"pref_show_nsfw_source\">Visa i källor och tilläggslistor</string>\n    <string name=\"file_picker_error\">Ingen filväljare-app hittades</string>\n    <string name=\"myanimelist_relogin\">Vänligen logga in på MAL igen</string>\n    <string name=\"pref_dump_crash_logs_summary\">Sparar felloggar till en fil för delning med utvecklarna</string>\n    <string name=\"pref_dump_crash_logs\">Dela kraschloggar</string>\n    <string name=\"action_desc\">Fallande</string>\n    <string name=\"action_order_by_chapter_number\">Efter kapitelnummer</string>\n    <string name=\"action_order_by_upload_date\">Efter uppladdningsdatum</string>\n    <string name=\"action_asc\">Stigande</string>\n    <string name=\"track_finished_reading_date\">Slutdatum</string>\n    <string name=\"track_started_reading_date\">Start datum</string>\n    <string name=\"pref_viewer_nav\">Tryckzoner</string>\n    <string name=\"edge_nav\">Kant</string>\n    <string name=\"kindlish_nav\">Kindle-lik</string>\n    <string name=\"l_nav\">L-formad</string>\n    <string name=\"action_filter_tracked\">Spåras</string>\n    <string name=\"right_and_left_nav\">Höger och Vänster</string>\n    <string name=\"action_display_show_number_of_items\">Visa antal objekt</string>\n    <string name=\"pref_dual_page_split\">Delning av breda sidor</string>\n    <string name=\"backup_restore_content_full\">Du måste installera eventuella tillägg som saknas och logga in på spårningstjänster efteråt för att kunna använda dem.</string>\n    <string name=\"nav_zone_right\">Höger</string>\n    <string name=\"nav_zone_left\">Vänster</string>\n    <string name=\"nav_zone_next\">Nästa</string>\n    <string name=\"nav_zone_prev\">Föregående</string>\n    <string name=\"pref_dual_page_invert_summary\">Om placeringen av delning av breda sidor inte matchar läsriktningen</string>\n    <string name=\"pref_dual_page_invert\">Invertera placering av delad sida</string>\n    <string name=\"pref_show_navigation_mode_summary\">Visa kort när läsaren öppnas</string>\n    <string name=\"pref_show_navigation_mode\">Visa överlägg för tryckzoner</string>\n    <string name=\"pref_dns_over_https\">DNS över HTTPS (DoH)</string>\n    <string name=\"exclude\">Exkludera: %s</string>\n    <string name=\"include\">Inkludera: %s</string>\n    <string name=\"none\">Ingen</string>\n    <string name=\"action_sort_chapter_fetch_date\">Datum för hämtning av kapitel</string>\n    <string name=\"pref_download_new_categories_details\">Inlägg i uteslutna kategorier laddas inte ner även om de också ingår i inkluderade kategorier.</string>\n    <string name=\"pref_category_auto_download\">Ladda ned automatiskt</string>\n    <string name=\"pref_library_update_categories_details\">Inlägg i uteslutna kategorier uppdateras inte även om de också ingår i inkluderade kategorier.</string>\n    <string name=\"action_show_errors\">Tryck för att se detaljer</string>\n    <string name=\"update_check_eol\">Denna Android-version stöds inte längre</string>\n    <string name=\"clipboard_copy_error\">Kunde inte kopiera till urklipp</string>\n    <string name=\"rotation_landscape\">Liggande</string>\n    <string name=\"rotation_portrait\">Porträtt</string>\n    <string name=\"rotation_type\">Rotation</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Skapar mappar enligt posternas titel</string>\n    <string name=\"pref_create_folder_per_manga\">Spara sidor i separata mappar</string>\n    <string name=\"pref_reader_actions\">Åtgärder</string>\n    <string name=\"pref_grayscale\">Gråskala</string>\n    <string name=\"automatic_background\">Automatisk</string>\n    <string name=\"notification_incognito_text\">Inaktivera inkognitoläge</string>\n    <string name=\"cancel_all_for_series\">Avbryt alla för denna serie</string>\n    <string name=\"error_no_match\">Ingen matchning hittad</string>\n    <string name=\"source_unsupported\">Källan stöds inte</string>\n    <string name=\"unread\">Oläst</string>\n    <string name=\"date\">Datum</string>\n    <string name=\"local_filter_order_by\">Sortera efter</string>\n    <string name=\"local_invalid_format\">Ogiltigt kapitelformat</string>\n    <string name=\"chapter_not_found\">Kapitlet hittades inte</string>\n    <string name=\"restrictions\">Begränsningar: %s</string>\n    <string name=\"action_display_local_badge\">Lokal källa</string>\n    <string name=\"off\">Av</string>\n    <string name=\"on\">På</string>\n    <string name=\"error_sharing_cover\">Fel vid delning av omslag</string>\n    <string name=\"error_saving_cover\">Det gick inte att spara omslaget</string>\n    <string name=\"cover_saved\">Omslaget har sparats</string>\n    <string name=\"manga_cover\">Omslag</string>\n    <string name=\"tracking_guide\">Spårningsguide</string>\n    <string name=\"categorized_display_settings\">Inställningar per kategori för sortering</string>\n    <string name=\"information_empty_category_dialog\">Du har inga kategorier ännu.</string>\n    <string name=\"action_start_downloading_now\">Börja ladda ner nu</string>\n    <string name=\"restore_miui_warning\">Säkerhetskopiering/återställning kanske inte fungerar korrekt om MIUI-optimering är inaktiverat.</string>\n    <string name=\"enhanced_tracking_info\">Ger förbättrade funktioner för specifika källor. Poster spåras automatiskt när de läggs till i ditt bibliotek.</string>\n    <string name=\"enhanced_services\">Förbättrade spårare</string>\n    <string name=\"pref_dark_theme_pure_black\">Rent svart mörkt läge</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin och yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Jordgubbsdaiquiri</string>\n    <string name=\"theme_midnightdusk\">Midnattskymning</string>\n    <string name=\"theme_greenapple\">Grönt äpple</string>\n    <string name=\"theme_monet\">Dynamisk</string>\n    <string name=\"pref_app_theme\">App-tema</string>\n    <string name=\"about_dont_kill_my_app\">Vissa tillverkare har ytterligare appbegränsningar som dödar bakgrundstjänster. Denna webbplats har mer information om hur du åtgärdar det.</string>\n    <string name=\"label_background_activity\">Bakgrundsaktivitet</string>\n    <string name=\"pref_lowest\">Lägsta</string>\n    <string name=\"pref_low\">Låg</string>\n    <string name=\"pref_high\">Hög</string>\n    <string name=\"pref_highest\">Högsta</string>\n    <string name=\"pref_hide_threshold\">Känslighet för att dölja menyn vid rullning</string>\n    <string name=\"pref_inverted_colors\">Omvänd</string>\n    <string name=\"relative_time_today\">Idag</string>\n    <string name=\"theme_tealturquoise\">Teal och turkos</string>\n    <string name=\"pref_category_appearance\">Utseende</string>\n    <string name=\"confirm_lock_change\">Autentisera för att bekräfta ändringen</string>\n    <string name=\"label_default\">Standard</string>\n    <string name=\"getting_started_guide\">Komma igång guide</string>\n    <string name=\"action_track\">Spår</string>\n    <string name=\"pref_tablet_ui_mode\">Tablettgränssnitt</string>\n    <string name=\"help_translate\">Hjälp till med översättning</string>\n    <string name=\"pref_remove_exclude_categories\">Uteslutna kategorier</string>\n    <string name=\"ext_app_info\">Appinformation</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku körs inte</string>\n    <string name=\"ext_installer_legacy\">Äldre</string>\n    <string name=\"ext_installer_pref\">Installatör</string>\n    <string name=\"ext_install_service_notif\">Installerar tillägg…</string>\n    <string name=\"action_sort_count\">Totalt antal inlägg</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Installera och starta Shizuku för att använda Shizuku som tilläggsinstallationsprogram.</string>\n    <string name=\"pref_verbose_logging_summary\">Skriv ut utförliga loggar till systemloggen (minskar appprestanda)</string>\n    <string name=\"backup_info\">Du bör även spara kopior av säkerhetskopior på andra platser. Säkerhetskopior kan innehålla känsliga uppgifter, t.ex. lagrade lösenord; var försiktig om du delar dem.</string>\n    <string name=\"pref_verbose_logging\">Omfattande loggning</string>\n    <string name=\"label_warning\">Varning</string>\n    <string name=\"action_display_language_badge\">Språk</string>\n    <string name=\"connected_to_wifi\">Bara över Wi-Fi</string>\n    <string name=\"notification_size_warning\">Stora uppdateringar skadar källor och kan leda till långsammare uppdateringar samt en ökad batterianvändning. Tryck för att få veta mer.</string>\n    <string name=\"download_queue_size_warning\">Varning: stora massnerladdningar kan leda till att källor blir långsamma och/eller blockerar %s. Tryck för att få veta mer.</string>\n    <string name=\"update_72hour\">Var 3:e dag</string>\n    <string name=\"ext_update_all\">Uppdatera alla</string>\n    <string name=\"channel_app_updates\">Appuppdateringar</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Rensa kapitelcache när appen startas</string>\n    <string name=\"clear_database_source_item_count\">%1$d icke-biblioteksposter i databasen</string>\n    <string name=\"database_clean\">Inget att rensa</string>\n    <string name=\"library_errors_help\">För hjälp med att åtgärda fel i biblioteksuppdateringar, se %1$s</string>\n    <string name=\"cancelled\">Avbruten</string>\n    <string name=\"on_hiatus\">På uppehåll</string>\n    <string name=\"publishing_finished\">Publiceringen avslutad</string>\n    <string name=\"save_chapter_as_cbz\">Spara som CBZ-arkiv</string>\n    <string name=\"privacy_policy\">Integritetspolicy</string>\n    <string name=\"pref_update_only_completely_read\">Hoppa över artiklar med olästa kapitel</string>\n    <string name=\"extension_api_error\">Kunde inte hämta tillgängliga tillägg</string>\n    <string name=\"action_show_manga\">Visa inlägg</string>\n    <string name=\"action_display_cover_only_grid\">Endast omslags-rutnät</string>\n    <string name=\"pref_update_only_started\">Hoppa över artiklar som ej är påbörjade</string>\n    <string name=\"pref_navigate_pan\">Panorera breda sidor</string>\n    <string name=\"pref_landscape_zoom\">Automatiskt zoomning i stora bilder</string>\n    <string name=\"skipped_reason_completed\">Hoppade över eftersom serien är klar</string>\n    <string name=\"skipped_reason_not_caught_up\">Hoppade över eftersom det finns olästa kapitel</string>\n    <string name=\"skipped_reason_not_started\">Hoppade över eftersom inga kapitel läses</string>\n    <string name=\"learn_more\">Tryck på för att få veta mer</string>\n    <string name=\"notification_update_error\">%1$d uppdatering(ar) misslyckades</string>\n    <string name=\"rotation_reverse_portrait\">Omvänt porträtt</string>\n    <string name=\"action_move_to_top_all_for_series\">Flytta serien till toppen</string>\n    <string name=\"disabled_nav\">Inaktiverad</string>\n    <string name=\"error_saving_picture\">Fel vid lagring av bild</string>\n    <string name=\"empty_backup_error\">Inga biblioteksposter att säkerhetskopiera</string>\n    <string name=\"update_check_open\">Öppna på GitHub</string>\n    <string name=\"pref_clear_webview_data\">Rensa data från WebView</string>\n    <string name=\"webview_data_deleted\">WebView-data rensas</string>\n    <string name=\"action_close\">Stäng</string>\n    <string name=\"source_filter_empty_screen\">Ingen installerad källa hittades</string>\n    <string name=\"action_sort_last_manga_update\">Senaste uppdateringskontroll</string>\n    <string name=\"action_sort_unread_count\">Antal olästa</string>\n    <string name=\"split_tall_images_summary\">Förbättrar läsarens prestanda</string>\n    <string name=\"download_notifier_split_page_not_found\">Sida %d hittades inte under delning</string>\n    <string name=\"source_empty_screen\">Ingen källa hittad</string>\n    <string name=\"pref_reset_viewer_flags_error\">Kunde inte återställa läsarinställningarna</string>\n    <string name=\"pref_reset_viewer_flags\">Återställ läsinställningarna per serie</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Återställer läsläge och orientering för alla serier</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Kunde inte hitta filsökvägen för sida %d</string>\n    <string name=\"pref_reset_viewer_flags_success\">Återställning av läsarens inställningar</string>\n    <string name=\"network_not_metered\">Endast på nät utan mätning</string>\n    <string name=\"reading_list\">Läslista</string>\n    <string name=\"on_hold_list\">Väntelista</string>\n    <string name=\"unfinished_list\">Oavslutad lista</string>\n    <string name=\"empty_screen\">Det här är pinsamt</string>\n    <string name=\"wish_list\">Önskelista</string>\n    <string name=\"complete_list\">Klart lista</string>\n    <string name=\"ext_info_age_rating\">Åldersklassificering</string>\n    <string name=\"ext_info_version\">Version</string>\n    <string name=\"ext_info_language\">Språk</string>\n    <string name=\"cant_open_last_read_chapter\">Det går inte att öppna det senast lästa kapitlet</string>\n    <string name=\"not_installed\">Inte installerad</string>\n    <string name=\"custom_cover\">Anpassat omslag</string>\n    <string name=\"theme_lavender\">Lavendel</string>\n    <string name=\"description_placeholder\">Ingen beskrivning</string>\n    <string name=\"pref_app_language\">Appspråk</string>\n    <string name=\"delete_category_confirmation\">Vill du radera kategorin \\\"%s\\\"?</string>\n    <string name=\"internal_error\">Interntfel: Kontrollera kraschloggar för ytterligare information</string>\n    <string name=\"delete_category\">Ta bort kategori</string>\n    <string name=\"pref_user_agent_string\">Standardsträng för användaragent</string>\n    <string name=\"pref_reset_user_agent_string\">Återställ standardsträngen för användaragent</string>\n    <string name=\"action_remove_everything\">Ta bort allt</string>\n    <string name=\"appwidget_updates_description\">Se dina nyligen uppdaterade biblioteket inlägg</string>\n    <string name=\"appwidget_unavailable_locked\">Widget är inte tillgänglig när applåset är aktiverat</string>\n    <string name=\"update_already_running\">En uppdatering pågår redan</string>\n    <string name=\"multi_lang\">Flerspråkig</string>\n    <string name=\"error_user_agent_string_blank\">Strängen för användaragent kan inte vara tom</string>\n    <string name=\"are_you_sure\">Är du säker?</string>\n    <string name=\"updates_last_update_info\">Biblioteket uppdaterades senast: %s</string>\n    <string name=\"popular\">Populära</string>\n    <string name=\"remove_manga\">Du är på väg att ta bort \\\"%s\\\" från ditt bibliotek</string>\n    <string name=\"download_ahead\">Ladda ner i förväg</string>\n    <string name=\"theme_tidalwave\">Tidvattenvåg</string>\n    <string name=\"download_ahead_info\">Fungerar endast om det aktuella kapitlet + nästa redan har laddats ner.</string>\n    <string name=\"auto_download_while_reading\">Automatisk nedladdning under läsning</string>\n    <string name=\"pref_library_summary\">Kategorier, global uppdatering, kapitel svepning</string>\n    <string name=\"pref_reader_summary\">Läsläge, skärmvisning, navigering</string>\n    <string name=\"error_user_agent_string_invalid\">Ogiltig sträng för användaragent</string>\n    <string name=\"unknown_title\">Okänd titel</string>\n    <string name=\"updates_last_update_info_just_now\">Just nu</string>\n    <string name=\"action_search_hint\">Sök…</string>\n    <string name=\"pref_downloads_summary\">Automatisk nedladdning, ladda ned i förväg</string>\n    <string name=\"pref_tracking_summary\">Envägs synkronisering av framfart, förbättrad synkronisering</string>\n    <string name=\"pref_backup_summary\">Manuell och automatisk säkerhetskopiering, lagringsutrymme</string>\n    <string name=\"invalid_location\">Ogiltig plats: %s</string>\n    <string name=\"missing_storage_permission\">Lagrings rättigheter inte tillagda</string>\n    <string name=\"skipped_reason_not_always_update\">Hoppat över för att serien inte behöver uppdateras</string>\n    <string name=\"crash_screen_description\">%s stötte på ett oväntat fel. Vi föreslår att du delar med dig av kraschloggen i vår supportkanal på Discord.</string>\n    <string name=\"pref_appearance_summary\">Tema, datum och tids format</string>\n    <string name=\"pref_browse_summary\">Källor, tillägg, global sökning</string>\n    <string name=\"crash_screen_restart_application\">Starta om applikationen</string>\n    <string name=\"crash_screen_title\">Hoppsan!</string>\n    <string name=\"pref_advanced_summary\">Dumpa krasch logg, batterioptimering</string>\n    <string name=\"pref_security_summary\">Applikations lås, säkerhetsskärm</string>\n    <string name=\"label_stats\">Statistik</string>\n    <string name=\"label_started\">Påbörjade</string>\n    <string name=\"label_local\">Lokala</string>\n    <string name=\"label_downloaded\">Nedladdade</string>\n    <string name=\"enhanced_services_not_installed\">Tillgänglig men källan är ej installerad: %s</string>\n    <string name=\"pref_library_update_show_tab_badge\">Visa antal olästa på ikonen för Uppdateringar</string>\n    <string name=\"pref_skip_dupe_chapters\">Hoppa över duplicerade kapitel</string>\n    <string name=\"action_display_show_continue_reading_button\">Fortsätt läsa knapp</string>\n    <string name=\"action_not_now\">Inte nu</string>\n    <string name=\"action_open_random_manga\">Öppna en slumpmässig manga</string>\n    <string name=\"pref_invalidate_download_cache\">Omindexera nedladdningar</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Tvinga appen att läsa in nedladdade kapitel på nytt</string>\n    <string name=\"fdroid_warning\">F-Droid-versioner stöds inte officiellt.\n\\nTryck för att få veta mer.</string>\n    <string name=\"split_tall_images\">Dela höga bilder</string>\n    <string name=\"action_update_category\">Uppdatera kategori</string>\n    <string name=\"action_copy_to_clipboard\">Kopiera till urklipp</string>\n    <string name=\"pref_hide_in_library_items\">Dölja poster som redan finns i biblioteket</string>\n    <string name=\"download_notifier_cache_renewal\">Kontrollerar nedladdningar</string>\n    <string name=\"overlay_header\">Överlägg</string>\n    <string name=\"pref_page_rotate\">Rotera breda sidor så att de passar</string>\n    <string name=\"pref_page_rotate_invert\">Vänd orientering av roterade breda sidor</string>\n    <string name=\"information_required_plain\">*krävs</string>\n    <string name=\"information_no_entries_found\">Inga inlägg hittades i denna kategori</string>\n    <string name=\"label_mean_score\">Genomsnittlig poäng</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"label_used\">Använd</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"track_remove_date_conf_title\">Ta bort datum?</string>\n    <string name=\"label_titles_section\">Inlägg</string>\n    <string name=\"label_titles_in_global_update\">I global uppdatering</string>\n    <string name=\"label_total_chapters\">Totalt</string>\n    <string name=\"label_read_chapters\">Läst</string>\n    <string name=\"manga_display_interval_title\">Uppskatta varje</string>\n    <string name=\"action_set_interval\">Ange intervall</string>\n    <string name=\"action_filter_interval_custom\">Anpassat uppdateringsintervall</string>\n    <string name=\"action_sort_next_updated\">Nästa förväntade uppdatering</string>\n    <string name=\"skipped_reason_not_in_release_period\">Hoppades över eftersom ingen publicering förväntades idag</string>\n    <string name=\"label_tracked_titles\">Spårade inlägg</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"track_error\">%1$s fel: %2$s</string>\n    <string name=\"pref_double_tap_zoom\">Dubbeltryck för att zooma</string>\n    <string name=\"track_remove_start_date_conf_text\">Detta kommer att ta bort ditt tidigare valda startdatum från %s</string>\n    <string name=\"track_delete_title\">Ta bort %s spårning?</string>\n    <string name=\"track_delete_text\">Detta kommer att ta bort spårningen lokalt.</string>\n    <string name=\"track_remove_finish_date_conf_text\">Detta kommer att ta bort ditt tidigare valda slutdatum från %s</string>\n    <string name=\"track_delete_remote_text\">Ta även bort från %s</string>\n    <string name=\"information_no_manga_category\">Kategorin är tom</string>\n    <string name=\"hour_short\">%dt</string>\n    <string name=\"syncing_library\">Synkronisering av bibliotek</string>\n    <string name=\"pref_debug_info\">Felsökningsinformation</string>\n    <string name=\"copied_to_clipboard_plain\">Kopierad till urklipp</string>\n    <string name=\"manga_display_modified_interval_title\">Ställ in för att uppdatera varje</string>\n    <string name=\"has_results\">Har resultat</string>\n    <string name=\"label_completed_titles\">Avslutade inlägg</string>\n    <string name=\"library_sync_complete\">Bibliotekssynkronisering slutförd</string>\n    <string name=\"download_cache_invalidated\">Index för nedladdningar ogiltigt</string>\n    <string name=\"label_overview_section\">Översikt</string>\n    <string name=\"delete_downloaded\">Radera nedladdat</string>\n    <string name=\"pref_chapter_swipe_end\">Svep till höger åtgärd</string>\n    <string name=\"pref_chapter_swipe_start\">Svep till vänster åtgärd</string>\n    <string name=\"label_read_duration\">Lästid</string>\n    <string name=\"label_tracker_section\">Spårare</string>\n    <string name=\"information_cloudflare_help\">Klicka här för hjälp med Cloudflare</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"pref_update_only_in_release_period\">Förutspå nästa releaseperiod</string>\n    <string name=\"intervals_header\">Intervaller</string>\n    <string name=\"create_backup_file_error\">Kunde inte skapa en backup-fil</string>\n    <string name=\"track_activity_name\">Spårar-inloggning</string>\n    <string name=\"exception_offline\">Ingen internet anslutning</string>\n    <string name=\"exception_http\">HTTP %d, kolla på webbsida i WebView</string>\n    <string name=\"exception_unknown_host\">Kunde inte nå %s</string>\n    <string name=\"unlock_app_title\">Lås upp %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Flytta serien till botten</string>\n    <string name=\"notification_updating_progress\">Uppdaterar biblioteket... (%s)</string>\n    <string name=\"source_settings\">Inställningar för källa</string>\n    <string name=\"app_settings\">Appinställningar</string>\n    <string name=\"pref_relative_format\">Relativa tidsstämplar</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" istället för \\\"%2$s\\\"</string>\n    <string name=\"action_create\">Skapa</string>\n    <string name=\"relative_time_span_never\">Aldrig</string>\n    <string name=\"pref_flash_page_summ\">Minimerar spöktext på e-papperskärmar</string>\n    <string name=\"action_apply\">Tillämpa</string>\n    <string name=\"action_revert_to_default\">Återgå till standard</string>\n    <string name=\"last_auto_backup_info\">Senaste automatiska säkerhetskopieringen: %s</string>\n    <string name=\"no_scanlators_found\">Inga scanlatorer hittades</string>\n    <string name=\"scanlator\">Översättare</string>\n    <string name=\"pref_flash_page\">Blinka vid sidbyte</string>\n    <string name=\"pref_storage_usage\">Lagringsanvändning</string>\n    <string name=\"action_sort_tracker_score\">Spårares betyg</string>\n    <string name=\"label_data_storage\">Data och lagring</string>\n    <string name=\"file_null_uri_error\">Ingen fil vald</string>\n    <string name=\"exclude_scanlators\">Exkludera scanlatorer</string>\n    <string name=\"pref_storage_location\">Lagringsplats</string>\n    <string name=\"pref_storage_location_info\">Används för automatisk säkerhetskopiering, kapitelnedladdningar och lokal källa.</string>\n    <string name=\"action_menu_overflow_description\">Mer alternativ</string>\n    <string name=\"selected\">Vald</string>\n    <string name=\"not_selected\">Inte vald</string>\n    <string name=\"action_bar_up_description\">Navigera upp</string>\n    <string name=\"onboarding_storage_action_select\">Välj en mapp</string>\n    <string name=\"pref_onboarding_guide\">Introduktionsguide</string>\n    <string name=\"onboarding_guides_new_user\">Ny till %s? Vi rekommenderar att du tar en titt på komma igång guiden.</string>\n    <string name=\"onboarding_action_finish\">Kom igång</string>\n    <string name=\"onboarding_storage_selection_required\">En mapp måste väljas</string>\n    <string name=\"onboarding_heading\">Välkommen!</string>\n    <string name=\"onboarding_guides_returning_user\">Ominstalleras %s?</string>\n    <string name=\"onboarding_action_skip\">Hoppa över</string>\n    <string name=\"onboarding_action_next\">Nästa</string>\n    <string name=\"onboarding_description\">Låt oss ställa in några saker först. Du kan alltid ändra dessa i inställningarna senare.</string>\n    <string name=\"no_location_set\">Ingen lagringsplats inställd</string>\n    <string name=\"onboarding_storage_info\">Välj en mapp där %1$s lagrar kapitelnedladdningar, säkerhetskopior och mer.\n\\n\n\\nEn dedikerad mapp rekommenderas.\n\\n\n\\nVald mapp: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Aviseringsbehörigheter</string>\n    <string name=\"onboarding_permission_install_apps\">Installera app behörigheter</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Undvik avbrott i långvariga biblioteksuppdateringar, nedladdningar och säkerhetskopieringsåterställningar.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Bakgrundsbatterianvändning</string>\n    <string name=\"onboarding_permission_install_apps_description\">För att installera källtillägg.</string>\n    <string name=\"onboarding_permission_notifications_description\">Få aviseringar om biblioteksuppdateringar och mer.</string>\n    <string name=\"onboarding_permission_action_grant\">Bevilja</string>\n    <string name=\"available_disk_space_info\">Tillgängligt: %1$s / Totalt: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">Behörigheter krävs för att installera tillägg. Tryck här för att bevilja.</string>\n    <string name=\"private_settings\">Inkludera känsliga inställningar (t.ex. spårningsinloggningstokens)</string>\n    <string name=\"manga_interval_expected_update\">Nya kapitel förväntas att släppas varje \\\"%1$s\\\", kontrollerar varje \\\"%2$s\\\".</string>\n    <string name=\"invalid_backup_file_error\">Fullständigt fel:</string>\n    <string name=\"onboarding_storage_help_info\">Osäker på vad du ska välja då du uppdaterar från en äldre version? Se lagerhanteringsguiden för mer information.</string>\n    <string name=\"pref_library_update_smart_update\">Smart uppdatering</string>\n    <string name=\"onboarding_storage_help_action\">Lagerhanteringsguide</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"delete_repo_confirmation\">Vill du ta bort förråd \\\"%s\\\"?</string>\n    <string name=\"ext_revoke_trust\">Återkalla tillförlitliga okända tillägg</string>\n    <string name=\"label_extension_repos\">Tilläggsförråd</string>\n    <string name=\"information_empty_repos\">Du har inga förråd inställda.</string>\n    <string name=\"action_add_repo\">Lägg till förråd</string>\n    <string name=\"label_add_repo_input\">Förråd URL</string>\n    <string name=\"action_add_repo_message\">Lägg till ytterliga förråd till %s. Detta ska vara en URL som slutar med \\\"index.min.json\\\".</string>\n    <string name=\"error_repo_exists\">Detta förråd existerar redan!</string>\n    <string name=\"action_delete_repo\">Ta bort förråd</string>\n    <string name=\"invalid_repo_name\">Ogiltig förråds URL</string>\n    <string name=\"action_open_repo\">Öppenkällkods förråd</string>\n    <string name=\"manga_interval_expected_update_soon\">Snart</string>\n    <string name=\"manga_interval_custom_amount\">Anpassad uppdateringsfrekvens:</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Inaktivera utzoomning</string>\n    <string name=\"action_add_anyway\">Lägg till ändå</string>\n    <string name=\"action_replace_repo\">Ersätt</string>\n    <string name=\"pref_display_profile\">Anpassad skärmprofil</string>\n    <string name=\"label_upcoming\">Kommande</string>\n    <string name=\"upcoming_calendar_prev\">Föregående månad</string>\n    <string name=\"upcoming_calendar_next\">Nästa månad</string>\n    <string name=\"action_replace_repo_title\">Signeringsnyckel-fingeravtryck finns redan</string>\n    <string name=\"action_replace_repo_message\">Förrådet %1$s har samma Signering av nyckelfingeravtryck som %2$s.\n\\nOm detta förväntas kommer %2$s att ersättas, annars kontakta den förråds-ansvarige.</string>\n    <string name=\"action_view_upcoming\">Visa kommande uppdateringar</string>\n    <string name=\"upcoming_guide\">Kommande guide</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Misslyckades med att skaffa beständig mappåtkomst. Appen kan bete sig oväntat.</string>\n    <string name=\"manga_interval_expected_update_null\">Denna manga är antingen avslutad, eller så finns inget förutsebart publiceringsdatum.</string>\n    <string name=\"pref_flash_duration\">Blink varaktighet</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Blinka var</string>\n    <string name=\"pref_flash_with\">Blinka med</string>\n    <string name=\"pref_flash_style_black\">Svart</string>\n    <string name=\"pref_flash_style_white\">Vitt</string>\n    <string name=\"pref_flash_style_white_black\">Svart och vitt</string>\n    <string name=\"invalid_backup_file_unknown\">Säkerhetskopierings fil är korrupt</string>\n    <string name=\"invalid_backup_file_json\">JSON säkerhetskopering stöds inte</string>\n    <string name=\"extensionRepo_settings\">Tilläggsförråd</string>\n    <string name=\"action_copy_link\">Kopiera länk</string>\n    <string name=\"action_sort_random\">Slumpmässigt</string>\n    <string name=\"onboarding_permission_crashlytics\">Skicka kraschloggar</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Skicka anonymiserade kraschloggar till utvecklarna.</string>\n    <string name=\"onboarding_permission_analytics_description\">Skicka anonymiserade användningsdata för att förbättra appens funktioner.</string>\n    <string name=\"pref_security\">Säkerhet</string>\n    <string name=\"add_repo_confirmation\">Vill du verkligen lägga till förrådet \\\"%s\\\"?</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Om läsaren laddar en tom bild, minska stegvis tröskelvärdet.\\nVal: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Påverkar prestandan. Aktivera endast om minskning av bitmapströskeln inte fixar problem gällande tomma bilder</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Uppdatera läsförlopp vid markering som läst</string>\n    <string name=\"ext_remove\">Ta bort</string>\n    <string name=\"ext_confirm_remove\">Ta bort tillägg?</string>\n    <string name=\"remove_private_extension_message\">Vill du verkligen ta bort tillägget \\\"%s\\\"?</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Standard (%d)</string>\n    <string name=\"onboarding_permission_analytics\">Tillåt insamling av användningsdata</string>\n    <string name=\"pref_firebase\">Användningsdata och kraschloggar</string>\n    <string name=\"non_library_settings\">Alla färdiglästa artiklar</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Pausa tilläggets läshistorik</string>\n    <string name=\"trackers_updated_summary\">Spårare har uppdaterats till kapitel %d</string>\n    <string name=\"firebase_summary\">Att skicka kraschloggar och användningsdata tillåter oss att identifiera och korrigera fel, förbättra prestanda samt göra framtida uppdateringar mer relevanta till dina behov</string>\n    <string name=\"confirm_tracker_update\">Uppdatera spårare till kapitel %d?</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Anpassad hårdvarubitmapströskel</string>\n    <string name=\"action_toggle_private_off\">Spåra offentligt</string>\n    <string name=\"theme_monochrome\">Monokrom</string>\n    <string name=\"export\">Exportera</string>\n    <string name=\"library_exported\">Bibliotek Exporterat</string>\n    <string name=\"library_list\">Bibliotekslista</string>\n    <string name=\"author\">Författare</string>\n    <string name=\"artist\">Tecknare</string>\n    <string name=\"tracked_privately\">Spåras privat</string>\n    <string name=\"action_toggle_private_on\">Spåra privat</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/ta/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"on\">ஆன்</string>\n    <string name=\"off\">அணை</string>\n    <string name=\"scanlator\">ச்கேன்லேட்டர்</string>\n    <string name=\"label_more\">மேலும்</string>\n    <string name=\"label_settings\">அமைப்புகள்</string>\n    <string name=\"label_download_queue\">வரிசையைப் பதிவிறக்கவும்</string>\n    <string name=\"label_library\">நூலகம்</string>\n    <string name=\"label_recent_updates\">புதுப்பிப்புகள்</string>\n    <string name=\"label_default\">இயல்புநிலை</string>\n    <string name=\"label_warning\">எச்சரிக்கை</string>\n    <string name=\"label_started\">தொடங்கியது</string>\n    <string name=\"label_downloaded\">பதிவிறக்கம்</string>\n    <string name=\"unlock_app_title\">%s திறக்கவும்</string>\n    <string name=\"confirm_lock_change\">மாற்றத்தை உறுதிப்படுத்த ஏற்பு</string>\n    <string name=\"action_settings\">அமைப்புகள்</string>\n    <string name=\"action_menu\">பட்டியல்</string>\n    <string name=\"action_filter\">வடிப்பி</string>\n    <string name=\"action_set_interval\">இடைவெளி அமைக்கவும்</string>\n    <string name=\"action_filter_bookmarked\">புக்மார்க்கு செய்யப்பட்டது</string>\n    <string name=\"action_filter_tracked\">கண்காணிக்கப்பட்டது</string>\n    <string name=\"action_filter_unread\">படிக்காதது</string>\n    <string name=\"selected\">தேர்ந்தெடுக்கப்பட்டது</string>\n    <string name=\"not_selected\">தேர்ந்தெடுக்கப்படவில்லை</string>\n    <string name=\"action_menu_overflow_description\">மேலும் விருப்பங்கள்</string>\n    <string name=\"action_bar_up_description\">மேலே செல்லவும்</string>\n    <string name=\"name\">பெயர்</string>\n    <string name=\"categories\">வகைகள்</string>\n    <string name=\"manga\">நூலக உள்ளீடுகள்</string>\n    <string name=\"chapters\">பாடங்கள்</string>\n    <string name=\"track\">கண்காணிப்பு</string>\n    <string name=\"delete_downloaded\">பதிவிறக்கம் செய்யப்பட்டதை நீக்கு</string>\n    <string name=\"history\">வரலாறு</string>\n    <string name=\"label_upcoming\">வரவிருக்கும்</string>\n    <string name=\"label_recent_manga\">வரலாறு</string>\n    <string name=\"label_sources\">மூலங்கள்</string>\n    <string name=\"label_backup\">காப்புப்பிரதி மற்றும் மீட்டமை</string>\n    <string name=\"label_data_storage\">தரவு மற்றும் சேமிப்பு</string>\n    <string name=\"label_stats\">புள்ளிவிவரங்கள்</string>\n    <string name=\"label_migration\">குடியேறவும்</string>\n    <string name=\"label_extensions\">நீட்டிப்புகள்</string>\n    <string name=\"label_extension_info\">நீட்டிப்பு செய்தி</string>\n    <string name=\"label_help\">உதவி</string>\n    <string name=\"label_local\">உள்ளக</string>\n    <string name=\"action_filter_empty\">வடிகட்டியை அகற்று</string>\n    <string name=\"action_sort_alpha\">அகரவரிசை</string>\n    <string name=\"action_sort_count\">மொத்த உள்ளீடுகள்</string>\n    <string name=\"action_sort_total\">மொத்த அத்தியாயங்கள்</string>\n    <string name=\"action_sort_last_read\">கடைசியாக படித்தார்</string>\n    <string name=\"action_sort_last_manga_update\">கடைசி புதுப்பிப்பு சோதனை</string>\n    <string name=\"action_sort_unread_count\">படிக்காத எண்ணிக்கை</string>\n    <string name=\"action_sort_next_updated\">அடுத்து எதிர்பார்க்கப்படும் புதுப்பிப்பு</string>\n    <string name=\"action_sort_latest_chapter\">அண்மைக் கால அத்தியாயம்</string>\n    <string name=\"action_sort_random\">சீரற்ற</string>\n    <string name=\"action_search\">தேடல்</string>\n    <string name=\"action_search_hint\">தேடுங்கள்…</string>\n    <string name=\"action_search_settings\">அமைப்புகளைத் தேடுங்கள்</string>\n    <string name=\"action_migrate\">குடியேறவும்</string>\n    <string name=\"action_display_mode\">காட்சி முறை</string>\n    <string name=\"action_display\">காட்சி</string>\n    <string name=\"action_display_grid\">கச்சிதமான கட்டம்</string>\n    <string name=\"action_display_comfortable_grid\">வசதியான கட்டம்</string>\n    <string name=\"action_display_list\">பட்டியல்</string>\n    <string name=\"action_display_cover_only_grid\">கவர்-மட்டும் கட்டம்</string>\n    <string name=\"action_display_download_badge\">பதிவிறக்கம் செய்யப்பட்ட அத்தியாயங்கள்</string>\n    <string name=\"action_display_local_badge\">உள்ளக மூல</string>\n    <string name=\"action_display_language_badge\">மொழி</string>\n    <string name=\"pref_category_advanced\">மேம்பட்ட</string>\n    <string name=\"pref_remove_bookmarked_chapters\">புக்மார்க்கு செய்யப்பட்ட அத்தியாயங்களை நீக்க அனுமதிக்கவும்</string>\n    <string name=\"pref_remove_exclude_categories\">விலக்கப்பட்ட பிரிவுகள்</string>\n    <string name=\"no_location_set\">சேமிப்பக இருப்பிடம் இல்லை</string>\n    <string name=\"invalid_location\">தவறான இடம்: %s</string>\n    <string name=\"disabled\">முடக்கப்பட்டது</string>\n    <string name=\"last_read_chapter\">கடைசியாக படித்த அத்தியாயம்</string>\n    <string name=\"second_to_last\">இரண்டாவது முதல் கடைசியாக படிக்க அத்தியாயம்</string>\n    <string name=\"third_to_last\">மூன்றாவது முதல் கடைசியாக படிக்க அத்தியாயம்</string>\n    <string name=\"extensionRepo_settings\">நீட்டிப்பு களஞ்சியங்கள்</string>\n    <string name=\"private_settings\">உணர்திறன் அமைப்புகளைச் சேர்க்கவும் (எ.கா., டிராக்கர் உள்நுழைவு டோக்கன்கள்)</string>\n    <string name=\"non_library_settings\">உள்ளீடுகள் அனைத்தும்</string>\n    <string name=\"creating_backup\">காப்புப்பிரதியை உருவாக்குதல்</string>\n    <string name=\"creating_backup_error\">காப்புப்பிரதி தோல்வியடைந்தது</string>\n    <string name=\"backup_info\">நீங்கள் காப்புப்பிரதிகளின் நகல்களை மற்ற இடங்களிலும் வைத்திருக்க வேண்டும். சேமிக்கப்பட்ட கடவுச்சொற்கள் உட்பட முக்கியமான தரவு காப்புப்பிரதிகளில் இருக்கலாம்; பகிர்வு செய்தால் கவனமாக இருங்கள்.</string>\n    <string name=\"last_auto_backup_info\">கடைசியாக தானாக காப்புப் பிரதி எடுக்கப்பட்டது: %s</string>\n    <string name=\"label_data\">தகவல்கள்</string>\n    <string name=\"pref_storage_usage\">சேமிப்பக பயன்பாடு</string>\n    <string name=\"pref_clear_chapter_cache\">தெளிவான அத்தியாயம் கேச்</string>\n    <string name=\"pref_debug_info\">பிழைத்திருத்த செய்தி</string>\n    <string name=\"website\">வலைத்தளம்</string>\n    <string name=\"version\">பதிப்பு</string>\n    <string name=\"whats_new\">புதியது என்ன</string>\n    <string name=\"help_translate\">மொழிபெயர்க்க உதவுங்கள்</string>\n    <string name=\"licenses\">திறந்த மூல உரிமங்கள்</string>\n    <string name=\"action_global_search_hint\">உலக தேடல்…</string>\n    <string name=\"action_global_search_query\">உலகளவில் \\\"%1$s\\\" ஐத் தேடுங்கள்</string>\n    <string name=\"latest\">அண்மைக் கால</string>\n    <string name=\"popular\">மக்கள்</string>\n    <string name=\"browse\">உலாவு</string>\n    <string name=\"manga_removed_library\">நூலகத்திலிருந்து அகற்றப்பட்டது</string>\n    <string name=\"manga_info_expand\">மேலும்</string>\n    <string name=\"manga_info_collapse\">குறைவாக</string>\n    <string name=\"delete_downloads_for_manga\">பதிவிறக்கம் செய்யப்பட்ட அத்தியாயங்களை நீக்கவா?</string>\n    <string name=\"updates_last_update_info\">கடைசியாக புதுப்பிக்கப்பட்டது: %s</string>\n    <string name=\"updates_last_update_info_just_now\">இப்போது</string>\n    <string name=\"relative_time_span_never\">ஒருபோதும்</string>\n    <string name=\"action_view_upcoming\">வரவிருக்கும் புதுப்பிப்புகளைக் காண்க</string>\n    <string name=\"upcoming_guide\">வரவிருக்கும் வழிகாட்டி</string>\n    <string name=\"upcoming_calendar_next\">அடுத்த மாதம்</string>\n    <string name=\"upcoming_calendar_prev\">முந்தைய மாதம்</string>\n    <string name=\"recent_manga_time\">Ch. %1$s - %2$s</string>\n    <string name=\"pref_clear_history\">வரலாற்றை அழிக்கவும்</string>\n    <string name=\"appwidget_unavailable_locked\">பயன்பாட்டு பூட்டு இயக்கப்பட்டால் விட்செட் கிடைக்கவில்லை</string>\n    <string name=\"remove_manga\">உங்கள் நூலகத்திலிருந்து \\\"%s\\\" ஐ அகற்ற உள்ளீர்கள்</string>\n    <string name=\"exception_http\">Http %d, வெப்வியூவில் வலைத்தளத்தைப் பாருங்கள்</string>\n    <string name=\"exception_offline\">இணைய இணைப்பு இல்லை</string>\n    <string name=\"exception_unknown_host\">%s ஐ அடைய முடியவில்லை</string>\n    <string name=\"pref_create_folder_per_manga_summary\">உள்ளீடுகளின் தலைப்புக்கு ஏற்ப கோப்புறைகளை உருவாக்குகிறது</string>\n    <string name=\"action_filter_interval_custom\">தனிப்பயனாக்கப்பட்ட புதுப்பிப்பு அதிர்வெண்</string>\n    <string name=\"action_sort_chapter_fetch_date\">அத்தியாயம் பெறும் தேதி</string>\n    <string name=\"action_sort_date_added\">தேதி சேர்க்கப்பட்டது</string>\n    <string name=\"action_sort_tracker_score\">டிராக்கர் மதிப்பெண்</string>\n    <string name=\"action_global_search\">உலக தேடல்</string>\n    <string name=\"action_select_all\">அனைத்தையும் தெரிவுசெய்</string>\n    <string name=\"action_select_inverse\">தலைகீழ் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"action_mark_as_read\">படித்தபடி குறி</string>\n    <string name=\"action_mark_as_unread\">படிக்காத எனக் குறிக்கவும்</string>\n    <string name=\"action_mark_previous_as_read\">முந்தையதைப் படித்ததாகக் குறிக்கவும்</string>\n    <string name=\"action_download\">பதிவிறக்கம்</string>\n    <string name=\"action_bookmark\">புக்மார்க்கு அத்தியாயம்</string>\n    <string name=\"action_remove_bookmark\">Unbookmark அத்தியாயம்</string>\n    <string name=\"action_move_category\">வகைகளை அமைக்கவும்</string>\n    <string name=\"delete_category_confirmation\">\\\"%s\\\" என்ற வகையை நீக்க விரும்புகிறீர்களா?</string>\n    <string name=\"delete_category\">வகையை நீக்கு</string>\n    <string name=\"action_delete\">நீக்கு</string>\n    <string name=\"action_update_library\">நூலகத்தைப் புதுப்பிக்கவும்</string>\n    <string name=\"action_enable_all\">அனைத்தையும் இயக்கு</string>\n    <string name=\"action_disable_all\">அனைத்தையும் முடக்கு</string>\n    <string name=\"action_edit\">தொகு</string>\n    <string name=\"action_add\">கூட்டு</string>\n    <string name=\"action_update_category\">புதுப்பிப்பு வகை</string>\n    <string name=\"action_open_random_manga\">சீரற்ற நுழைவைத் திறக்கவும்</string>\n    <string name=\"action_add_category\">வகையைச் சேர்க்கவும்</string>\n    <string name=\"action_edit_categories\">வகைகளைத் திருத்து</string>\n    <string name=\"action_rename_category\">வகை மறுபெயரிடுதல்</string>\n    <string name=\"action_edit_cover\">கவர் திருத்து</string>\n    <string name=\"action_view_chapters\">அத்தியாயங்களைக் காண்க</string>\n    <string name=\"action_pause\">இடைநிறுத்தம்</string>\n    <string name=\"action_previous_chapter\">முந்தைய அத்தியாயம்</string>\n    <string name=\"action_start\">தொடங்கு</string>\n    <string name=\"action_resume\">மீண்டும் தொடங்குங்கள்</string>\n    <string name=\"action_open_in_browser\">உலாவியில் திற</string>\n    <string name=\"action_show_manga\">நுழைவு காட்டு</string>\n    <string name=\"action_copy_to_clipboard\">இடைநிலைப்பலகைக்கு நகலெடுக்கவும்</string>\n    <string name=\"action_next_chapter\">அடுத்த அத்தியாயம்</string>\n    <string name=\"action_retry\">மீண்டும் முயற்சிக்கவும்</string>\n    <string name=\"action_remove\">அகற்று</string>\n    <string name=\"action_remove_everything\">எல்லாவற்றையும் அகற்றவும்</string>\n    <string name=\"action_copy_link\">இணைப்பை நகலெடுக்கவும்</string>\n    <string name=\"action_open_in_web_view\">வெப்வியூவில் திறக்கவும்</string>\n    <string name=\"action_display_show_tabs\">வகை தாவல்களைக் காட்டு</string>\n    <string name=\"action_display_show_continue_reading_button\">படிப்பு பொத்தானைத் தொடரவும்</string>\n    <string name=\"action_disable\">முடக்கு</string>\n    <string name=\"action_pin\">முள்</string>\n    <string name=\"action_unpin\">மூள்நீக்கு</string>\n    <string name=\"action_apply\">இடு</string>\n    <string name=\"action_cancel\">ரத்துசெய்</string>\n    <string name=\"action_ok\">சரி</string>\n    <string name=\"action_display_show_number_of_items\">பொருட்களின் எண்ணிக்கையைக் காட்டு</string>\n    <string name=\"action_cancel_all\">அனைத்தையும் ரத்துசெய்</string>\n    <string name=\"cancel_all_for_series\">இந்த தொடருக்கு அனைத்தையும் ரத்துசெய்</string>\n    <string name=\"action_sort\">வரிசைப்படுத்து</string>\n    <string name=\"action_order_by_upload_date\">பதிவேற்றுவதன் மூலம்</string>\n    <string name=\"action_order_by_chapter_number\">அத்தியாய எண் மூலம்</string>\n    <string name=\"action_newest\">புதியது</string>\n    <string name=\"action_oldest\">பழமையானது</string>\n    <string name=\"action_asc\">ஏறுதல்</string>\n    <string name=\"action_desc\">இறங்கு</string>\n    <string name=\"action_move_to_top\">மேலே செல்லுங்கள்</string>\n    <string name=\"action_move_to_top_all_for_series\">தொடரை மேலே நகர்த்தவும்</string>\n    <string name=\"action_move_to_bottom\">கீழே செல்லுங்கள்</string>\n    <string name=\"action_move_to_bottom_all_for_series\">தொடரை கீழே நகர்த்தவும்</string>\n    <string name=\"action_install\">நிறுவவும்</string>\n    <string name=\"action_share\">பங்கு</string>\n    <string name=\"action_save\">சேமி</string>\n    <string name=\"action_reset\">மீட்டமை</string>\n    <string name=\"action_revert_to_default\">இயல்புநிலைக்கு திரும்பவும்</string>\n    <string name=\"action_undo\">செயல்தவிர்</string>\n    <string name=\"action_close\">மூடு</string>\n    <string name=\"action_open_log\">பதிவு திற</string>\n    <string name=\"action_show_errors\">விவரங்களைக் காண தட்டவும்</string>\n    <string name=\"action_restore\">மீட்டமை</string>\n    <string name=\"action_webview_back\">பின்</string>\n    <string name=\"action_webview_forward\">முன்னோக்கி</string>\n    <string name=\"action_webview_refresh\">புதுப்பிப்பு</string>\n    <string name=\"action_start_downloading_now\">இப்போது பதிவிறக்கத் தொடங்குங்கள்</string>\n    <string name=\"action_not_now\">இப்போது இல்லை</string>\n    <string name=\"action_add_anyway\">எப்படியும் சேர்க்கவும்</string>\n    <string name=\"loading\">ஏற்றுகிறது…</string>\n    <string name=\"internal_error\">இன்டர்னெர்ர்: மேலும் தகவலுக்கு செயலிழப்பு பதிவுகளை சரிபார்க்கவும்</string>\n    <string name=\"app_not_available\">பயன்பாடு கிடைக்கவில்லை</string>\n    <string name=\"pref_onboarding_guide\">ஆன் போர்டிங் வழிகாட்டி</string>\n    <string name=\"onboarding_heading\">வரவேற்கிறோம்!</string>\n    <string name=\"onboarding_description\">முதலில் சில விசயங்களை அமைப்போம். நீங்கள் எப்போதும் அமைப்புகளில் இவற்றை மாற்றலாம்.</string>\n    <string name=\"onboarding_action_next\">அடுத்தது</string>\n    <string name=\"onboarding_action_finish\">தொடங்கவும்</string>\n    <string name=\"onboarding_action_skip\">தவிர்</string>\n    <string name=\"onboarding_storage_info\">%1$s அத்தியாய பதிவிறக்கங்கள், காப்புப்பிரதிகள் மற்றும் பலவற்றை சேமிக்கும் ஒரு கோப்புறையைத் தேர்ந்தெடுக்கவும்.\\n\\n ஒரு பிரத்யேக கோப்புறை பரிந்துரைக்கப்படுகிறது.\\n\\n தேர்ந்தெடுக்கப்பட்ட கோப்புறை: %2$s</string>\n    <string name=\"onboarding_storage_action_select\">ஒரு கோப்புறையைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"onboarding_storage_selection_required\">ஒரு கோப்புறை தேர்ந்தெடுக்கப்பட வேண்டும்</string>\n    <string name=\"onboarding_storage_help_info\">பழைய பதிப்பிலிருந்து புதுப்பித்தல் மற்றும் எதைத் தேர்ந்தெடுப்பது என்று தெரியவில்லையா? மேலும் தகவலுக்கு சேமிப்பக வழிகாட்டியைப் பார்க்கவும்.</string>\n    <string name=\"onboarding_permission_notifications\">அறிவிப்பு இசைவு</string>\n    <string name=\"onboarding_permission_notifications_description\">நூலக புதுப்பிப்புகள் மற்றும் பலவற்றிற்கு அறிவிக்கப்படுங்கள்.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">பின்னணி பேட்டரி பயன்பாடு</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">நீண்டகால நூலக புதுப்பிப்புகள், பதிவிறக்கம் மற்றும் காப்புப்பிரதி மீட்டமைப்புக்கு குறுக்கீடுகளைத் தவிர்க்கவும்.</string>\n    <string name=\"onboarding_permission_crashlytics\">செயலிழப்பு பதிவுகளை அனுப்பவும்</string>\n    <string name=\"onboarding_permission_crashlytics_description\">டெவலப்பர்களுக்கு அநாமதேய செயலிழப்பு பதிவுகளை அனுப்பவும்.</string>\n    <string name=\"onboarding_permission_analytics\">பகுப்பாய்வுகளை அனுமதிக்கவும்</string>\n    <string name=\"onboarding_permission_analytics_description\">பயன்பாட்டு அம்சங்களை மேம்படுத்த அநாமதேய பயன்பாட்டு தரவை அனுப்பவும்.</string>\n    <string name=\"onboarding_storage_help_action\">சேமிப்பக வழிகாட்டி</string>\n    <string name=\"onboarding_permission_install_apps\">பயன்பாடுகளின் அனுமதியை நிறுவவும்</string>\n    <string name=\"onboarding_permission_install_apps_description\">மூல நீட்டிப்புகளை நிறுவ.</string>\n    <string name=\"onboarding_permission_action_grant\">மானியம்</string>\n    <string name=\"pref_appearance_summary\">கருப்பொருள், தேதி மற்றும் நேர வடிவம்</string>\n    <string name=\"pref_library_summary\">வகைகள், உலகளாவிய புதுப்பிப்பு, அத்தியாயம் ச்வைப்</string>\n    <string name=\"pref_reader_summary\">படித்தல் பயன்முறை, காட்சி, வழிசெலுத்தல்</string>\n    <string name=\"pref_downloads_summary\">தானியங்கி பதிவிறக்க, முன்னால் பதிவிறக்குங்கள்</string>\n    <string name=\"pref_tracking_summary\">ஒரு வழி முன்னேற்ற ஒத்திசைவு, மேம்பட்ட ஒத்திசைவு</string>\n    <string name=\"pref_browse_summary\">ஆதாரங்கள், நீட்டிப்புகள், உலகளாவிய தேடல்</string>\n    <string name=\"pref_backup_summary\">கையேடு மற்றும் தானியங்கி காப்புப்பிரதிகள், சேமிப்பு இடம்</string>\n    <string name=\"pref_security_summary\">பயன்பாட்டு பூட்டு, பாதுகாப்பான திரை</string>\n    <string name=\"pref_advanced_summary\">செயலிழப்பு பதிவுகள், பேட்டரி மேம்படுத்தல்கள்</string>\n    <string name=\"pref_category_theme\">கருப்பொருள்</string>\n    <string name=\"pref_app_theme\">பயன்பாட்டு கருப்பொருள்</string>\n    <string name=\"theme_system\">மண்டலம்</string>\n    <string name=\"theme_light\">ஒளி</string>\n    <string name=\"theme_dark\">இருண்ட</string>\n    <string name=\"onboarding_guides_new_user\">%s க்கு புதியதா? தொடங்கும் வழிகாட்டியைப் பார்க்க பரிந்துரைக்கிறோம்.</string>\n    <string name=\"onboarding_guides_returning_user\">%s ஐ மீண்டும் நிறுவுகிறீர்களா?</string>\n    <string name=\"pref_category_general\">பொது</string>\n    <string name=\"pref_category_appearance\">தோற்றம்</string>\n    <string name=\"pref_category_library\">நூலகம்</string>\n    <string name=\"pref_category_reader\">வாசகர்</string>\n    <string name=\"pref_category_downloads\">பதிவிறக்கங்கள்</string>\n    <string name=\"pref_category_tracking\">கண்காணிப்பு</string>\n    <string name=\"pref_category_about\">பற்றி</string>\n    <string name=\"theme_tako\">என</string>\n    <string name=\"theme_tealturquoise\">டீல் &amp; டர்க்கைச்</string>\n    <string name=\"theme_yinyang\">யின் &amp; யாங்</string>\n    <string name=\"theme_yotsuba\">நான்கு இலைகள்</string>\n    <string name=\"theme_tidalwave\">அலைகடல் அலை</string>\n    <string name=\"pref_dark_theme_pure_black\">தூய கருப்பு இருண்ட பயன்முறை</string>\n    <string name=\"pref_relative_format\">உறவினர் நேர முத்திரைகள்</string>\n    <string name=\"theme_monet\">மாறும்</string>\n    <string name=\"theme_greenapple\">பச்சை ஆப்பிள்</string>\n    <string name=\"pref_relative_format_summary\">\\\"%2$s\\\" க்கு பதிலாக \\\"%1$s\\\"</string>\n    <string name=\"theme_lavender\">சுகந்தி</string>\n    <string name=\"theme_midnightdusk\">நள்ளிரவு அந்தி</string>\n    <string name=\"theme_nord\">nord</string>\n    <string name=\"theme_strawberrydaiquiri\">ச்ட்ராபெரி டாய்கிரி</string>\n    <string name=\"pref_date_format\">தேதி வடிவம்</string>\n    <string name=\"pref_manage_notifications\">அறிவிப்புகளை நிர்வகிக்கவும்</string>\n    <string name=\"pref_app_language\">பயன்பாட்டு மொழி</string>\n    <string name=\"pref_category_security\">பாதுகாப்பு மற்றும் தனியுரிமை</string>\n    <string name=\"secure_screen\">பாதுகாப்பான திரை</string>\n    <string name=\"secure_screen_summary\">பயன்பாடுகளை மாற்றும்போது பயன்பாட்டு உள்ளடக்கத்தை பாதுகாப்பான திரை மறைக்கவும், திரை சாட்களைத் தடுக்கவும்</string>\n    <string name=\"firebase_summary\">செயலிழப்பு பதிவுகள் மற்றும் பகுப்பாய்வுகளை அனுப்புவது சிக்கல்களைக் கண்டறிந்து சரிசெய்யவும், செயல்திறனை மேம்படுத்தவும், எதிர்கால புதுப்பிப்புகளை உங்கள் தேவைகளுக்கு மிகவும் பொருத்தமானதாக மாற்றவும் அனுமதிக்கும்</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) ஆதாரங்கள்</string>\n    <string name=\"pref_show_nsfw_source\">ஆதாரங்கள் மற்றும் நீட்டிப்பு பட்டியல்களில் காண்பி</string>\n    <string name=\"parental_controls_info\">இது பயன்பாட்டிற்குள் NSFW (18+) உள்ளடக்கத்தை வெளிவருவதிலிருந்து அதிகாரப்பூர்வமற்ற அல்லது தவறான கொடிய நீட்டிப்புகளைத் தடுக்காது.</string>\n    <string name=\"relative_time_today\">இன்று</string>\n    <string name=\"pref_category_display\">காட்சி</string>\n    <string name=\"pref_library_columns\">ஒரு வரிசையில் உருப்படிகள்</string>\n    <string name=\"portrait\">உருவப்படம்</string>\n    <string name=\"landscape\">நிலப்பரப்பு</string>\n    <string name=\"pref_category_library_update\">உலகளாவிய புதுப்பிப்பு</string>\n    <string name=\"pref_library_update_interval\">தானியங்கி புதுப்பிப்புகள்</string>\n    <string name=\"update_never\">அணை</string>\n    <string name=\"update_6hour\">ஒவ்வொரு 6 மணி நேரமும்</string>\n    <string name=\"update_12hour\">ஒவ்வொரு 12 மணி நேரமும்</string>\n    <string name=\"update_24hour\">நாள்தோறும்</string>\n    <string name=\"update_48hour\">ஒவ்வொரு 2 நாட்களுக்கும்</string>\n    <string name=\"update_72hour\">ஒவ்வொரு 3 நாட்களுக்கும்</string>\n    <string name=\"update_weekly\">வாராந்திர</string>\n    <string name=\"pref_security\">பாதுகாப்பு</string>\n    <string name=\"pref_firebase\">பகுப்பாய்வு மற்றும் செயலிழப்பு பதிவுகள்</string>\n    <string name=\"lock_with_biometrics\">திறத்தல் தேவை</string>\n    <string name=\"lock_when_idle\">சும்மா இருக்கும்போது பூட்டு</string>\n    <string name=\"lock_always\">எப்போதும்</string>\n    <string name=\"lock_never\">ஒருபோதும்</string>\n    <string name=\"hide_notification_content\">அறிவிப்பு உள்ளடக்கத்தை மறைக்கவும்</string>\n    <string name=\"pref_library_update_restriction\">தானியங்கி புதுப்பிப்புகள் சாதன கட்டுப்பாடுகள்</string>\n    <string name=\"connected_to_wifi\">வைஃபை மட்டுமே</string>\n    <string name=\"network_not_metered\">அளவிடப்படாத நெட்வொர்க்கில் மட்டுமே</string>\n    <string name=\"charging\">கட்டணம் வசூலிக்கும்போது</string>\n    <string name=\"restrictions\">கட்டுப்பாடுகள்: %s</string>\n    <string name=\"pref_library_update_smart_update\">அறிவுள்ள புதுப்பிப்பு</string>\n    <string name=\"pref_update_only_completely_read\">படிக்காத அத்தியாயம் (கள்) உடன் உள்ளீடுகளைத் தவிர்க்கவும்</string>\n    <string name=\"pref_update_only_non_completed\">\\\"நிறைவு செய்யப்பட்ட\\\" நிலையுடன் உள்ளீடுகளைத் தவிர்க்கவும்</string>\n    <string name=\"pref_update_only_started\">சிக்கலற்ற உள்ளீடுகளைத் தவிர்க்கவும்</string>\n    <string name=\"pref_update_only_in_release_period\">அடுத்த வெளியீட்டு நேரத்தை கணிக்கவும்</string>\n    <string name=\"pref_library_update_show_tab_badge\">புதுப்பிப்புகள் ஐகானில் படிக்காத எண்ணிக்கையைக் காட்டுங்கள்</string>\n    <string name=\"pref_library_update_refresh_metadata\">மெட்டாடேட்டாவை தானாக புதுப்பிக்கவும்</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">நூலகத்தைப் புதுப்பிக்கும்போது புதிய கவர் மற்றும் விவரங்களைச் சரிபார்க்கவும்</string>\n    <string name=\"default_category\">இயல்புநிலை வகை</string>\n    <string name=\"default_category_summary\">எப்போதும் கேளுங்கள்</string>\n    <string name=\"categorized_display_settings\">வரிசைக்கான ஒரு வகை அமைப்புகள்</string>\n    <string name=\"pref_library_update_categories_details\">விலக்கப்பட்ட வகைகளில் உள்ளீடுகள் சேர்க்கப்பட்ட வகைகளில் இருந்தாலும் அவை புதுப்பிக்கப்படாது.</string>\n    <string name=\"all\">அனைத்தும்</string>\n    <string name=\"none\">எதுவுமில்லை</string>\n    <string name=\"include\">அடங்கும்: %s</string>\n    <string name=\"exclude\">விலக்கு: %s</string>\n    <string name=\"pref_chapter_swipe_end\">ச்விப் டு ரைட் பற்றிய அத்தியாயம்</string>\n    <string name=\"pref_chapter_swipe_start\">இடதுபுறமாக ச்வைப் பற்றிய அத்தியாயம்</string>\n    <string name=\"multi_lang\">பல</string>\n    <string name=\"ext_updates_pending\">புதுப்பிப்புகள் நிலுவையில் உள்ளன</string>\n    <string name=\"ext_update\">புதுப்பிப்பு</string>\n    <string name=\"ext_update_all\">அனைத்தையும் புதுப்பிக்கவும்</string>\n    <string name=\"ext_obsolete\">வழக்கற்றுப்போன</string>\n    <string name=\"ext_install\">நிறுவவும்</string>\n    <string name=\"ext_pending\">நிலுவையில் உள்ளது</string>\n    <string name=\"ext_downloading\">பதிவிறக்குகிறது</string>\n    <string name=\"ext_installing\">நிறுவுகிறது</string>\n    <string name=\"ext_installed\">நிறுவப்பட்டது</string>\n    <string name=\"ext_trust\">நம்பிக்கை</string>\n    <string name=\"ext_untrusted\">நம்பத்தகாதது</string>\n    <string name=\"ext_uninstall\">நிறுவல் நீக்க</string>\n    <string name=\"ext_remove\">அகற்று</string>\n    <string name=\"ext_confirm_remove\">நீட்டிப்பை அகற்றவா?</string>\n    <string name=\"ext_app_info\">பயன்பாட்டு செய்தி</string>\n    <string name=\"untrusted_extension\">நம்பத்தகாத நீட்டிப்பு</string>\n    <string name=\"obsolete_extension_message\">இந்த நீட்டிப்பு இனி கிடைக்காது. இது சரியாக செயல்படாது மற்றும் பயன்பாட்டில் சிக்கல்களை ஏற்படுத்தக்கூடும். அதை நிறுவல் நீக்க பரிந்துரைக்கப்படுகிறது.</string>\n    <string name=\"remove_private_extension_message\">\\\"%s\\\" நீட்டிப்பை அகற்ற விரும்புகிறீர்களா?</string>\n    <string name=\"extension_api_error\">கிடைக்கக்கூடிய நீட்டிப்புகளைப் பெறத் தவறிவிட்டது</string>\n    <string name=\"ext_info_version\">பதிப்பு</string>\n    <string name=\"ext_info_language\">மொழி</string>\n    <string name=\"ext_info_age_rating\">அகவை மதிப்பீடு</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"ext_nsfw_warning\">இந்த நீட்டிப்பின் ஆதாரங்களில் NSFW (18+) உள்ளடக்கம் இருக்கலாம்</string>\n    <string name=\"ext_permission_install_apps_warning\">நீட்டிப்புகளை நிறுவ அனுமதிகள் தேவை. வழங்க இங்கே தட்டவும்.</string>\n    <string name=\"ext_install_service_notif\">நீட்டிப்பை நிறுவுதல்…</string>\n    <string name=\"ext_installer_pref\">நிறுவி</string>\n    <string name=\"ext_installer_legacy\">மரபு</string>\n    <string name=\"ext_installer_shizuku_stopped\">சிசுகு ஓடவில்லை</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">சிசுகுவை நீட்டிப்பு நிறுவியாகப் பயன்படுத்த சிசுகுவை நிறுவி தொடங்கவும்.</string>\n    <string name=\"ext_revoke_trust\">நம்பகமான அறியப்படாத நீட்டிப்புகளைத் திரும்பப் பெறுங்கள்</string>\n    <string name=\"label_extension_repos\">நீட்டிப்பு களஞ்சியங்கள்</string>\n    <string name=\"information_empty_repos\">உங்களிடம் எந்த களஞ்சியமும் இல்லை.</string>\n    <string name=\"action_add_repo\">ரெப்போ சேர்க்கவும்</string>\n    <string name=\"label_add_repo_input\">முகவரி களஞ்சி</string>\n    <string name=\"untrusted_extension_message\">தீங்கிழைக்கும் நீட்டிப்புகள் சேமிக்கப்பட்ட உள்நுழைவு நற்சான்றிதழ்களைப் படிக்கலாம் அல்லது தன்னிச்சையான குறியீட்டை இயக்கலாம்.\\n\\n இந்த நீட்டிப்பை நம்புவதன் மூலம், இந்த அபாயங்களை நீங்கள் ஏற்றுக்கொள்கிறீர்கள்.</string>\n    <string name=\"action_add_repo_message\">மிஓனில் கூடுதல் களஞ்சியங்களைச் சேர்க்கவும். இது \\\"index.min.json\\\" உடன் முடிவடையும் முகவரி ஆக இருக்க வேண்டும்.</string>\n    <string name=\"error_repo_exists\">இந்த ரெப்போ ஏற்கனவே உள்ளது!</string>\n    <string name=\"action_delete_repo\">ரெப்போவை நீக்கு</string>\n    <string name=\"invalid_repo_name\">தவறான ரெப்போ முகவரி</string>\n    <string name=\"delete_repo_confirmation\">ரெப்போ \\\"%s\\\" ஐ நீக்க விரும்புகிறீர்களா?</string>\n    <string name=\"add_repo_confirmation\">ரெப்போ \\\"%s\\\" சேர்க்க விரும்புகிறீர்களா?</string>\n    <string name=\"action_open_repo\">திறந்த மூல ரெப்போ</string>\n    <string name=\"action_replace_repo\">மாற்றவும்</string>\n    <string name=\"action_replace_repo_title\">முக்கிய கைரேகை கையொப்பமிடுவது ஏற்கனவே உள்ளது</string>\n    <string name=\"pref_dual_page_split\">பரந்த பக்கங்களைப் பிரிக்கவும்</string>\n    <string name=\"pref_dual_page_invert\">பிளவு பக்க வேலைவாய்ப்பு தலைகீழ்</string>\n    <string name=\"pref_dual_page_invert_summary\">பிளவு அகலமான பக்கங்களின் இடம் வாசிப்பு திசையுடன் பொருந்தவில்லை என்றால்</string>\n    <string name=\"pref_page_rotate\">பொருத்தமாக பரந்த பக்கங்களை சுழற்றுங்கள்</string>\n    <string name=\"pref_page_rotate_invert\">சுழற்றப்பட்ட அகலமான பக்கங்களின் புரட்டல் நோக்குநிலை</string>\n    <string name=\"pref_double_tap_zoom\">பெரிதாக்க இரட்டை தட்டவும்</string>\n    <string name=\"pref_cutout_short\">கட்அவுட் பகுதியில் உள்ளடக்கத்தைக் காட்டு</string>\n    <string name=\"pref_page_transitions\">பக்க மாற்றங்களை உயிரூட்டவும்</string>\n    <string name=\"pref_flash_page\">பக்க மாற்றத்தில் ஃபிளாச்</string>\n    <string name=\"pref_flash_page_summ\">ஈ-மை காட்சிகளில் பேயைக் குறைக்கிறது</string>\n    <string name=\"pref_flash_duration\">ஃபிளாச் காலம்</string>\n    <string name=\"action_replace_repo_message\">களஞ்சியம் %1$s %2$s போன்ற கையொப்பமிடும் விசை கைரேகையைக் கொண்டுள்ளது.\\n இது எதிர்பார்க்கப்பட்டால், %2$s மாற்றப்படும், இல்லையெனில் உங்கள் ரெப்போ பராமரிப்பாளரைத் தொடர்பு கொள்ளுங்கள்.</string>\n    <string name=\"pref_fullscreen\">முழு திரை</string>\n    <string name=\"pref_show_navigation_mode\">குழாய் மண்டலங்கள் மேலடுக்கைக் காட்டு</string>\n    <string name=\"pref_show_navigation_mode_summary\">வாசகர் திறக்கப்படும்போது சுருக்கமாகக் காட்டுங்கள்</string>\n    <string name=\"pref_flash_duration_summary\">%1$s MS</string>\n    <string name=\"pref_flash_page_interval\">ஒவ்வொரு ஃபிளாச்</string>\n    <string name=\"pref_flash_with\">உடன் ஃபிளாச்</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">செயல்திறனை பாதிக்கிறது. பிட்மேப் வாசலைக் குறைப்பது வெற்று பட சிக்கல்களை சரிசெய்யவில்லை என்றால் மட்டுமே இயக்கவும்</string>\n    <string name=\"pref_flash_style_black\">கருப்பு</string>\n    <string name=\"pref_flash_style_white\">வெள்ளை</string>\n    <string name=\"pref_flash_style_white_black\">வெள்ளை மற்றும் கருப்பு</string>\n    <string name=\"pref_double_tap_anim_speed\">அனிமேசன் விரைவு இரட்டை தட்டவும்</string>\n    <string name=\"pref_show_page_number\">பக்க எண்ணைக் காட்டு</string>\n    <string name=\"pref_show_reading_mode\">வாசிப்பு பயன்முறையைக் காட்டு</string>\n    <string name=\"pref_show_reading_mode_summary\">வாசகர் திறக்கப்படும்போது தற்போதைய பயன்முறையை சுருக்கமாகக் காட்டு</string>\n    <string name=\"pref_hardware_bitmap_threshold\">தனிப்பயன் வன்பொருள் பிட்மேப் வாசல்</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">இயல்புநிலை (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">வாசகர் ஒரு வெற்று படத்தை ஏற்றினால், வாசலைக் குறைக்கும்.\\n தேர்ந்தெடுக்கப்பட்டது: %s</string>\n    <string name=\"pref_display_profile\">தனிப்பயன் காட்சி சுயவிவரம்</string>\n    <string name=\"filter_mode_overlay\">மேலடுக்கு</string>\n    <string name=\"pref_crop_borders\">பயிர் எல்லைகள்</string>\n    <string name=\"pref_custom_brightness\">தனிப்பயன் ஒளி</string>\n    <string name=\"pref_grayscale\">கிரேச்கேல்</string>\n    <string name=\"pref_inverted_colors\">தலைகீழ்</string>\n    <string name=\"filter_mode_multiply\">பெருக்கவும்</string>\n    <string name=\"filter_mode_screen\">திரை</string>\n    <string name=\"filter_mode_lighten\">டாட்ச் / லைட்</string>\n    <string name=\"filter_mode_darken\">எரிக்க / இருட்டாக</string>\n    <string name=\"pref_custom_color_filter\">தனிப்பயன் வண்ண வடிகட்டி</string>\n    <string name=\"pref_color_filter_mode\">வண்ண வடிகட்டி கலப்பு முறை</string>\n    <string name=\"pref_keep_screen_on\">திரையை தொடர்ந்து வைத்திருங்கள்</string>\n    <string name=\"pref_skip_read_chapters\">வாசிப்பு குறிக்கப்பட்ட அத்தியாயங்களைத் தவிர்க்கவும்</string>\n    <string name=\"pref_skip_filtered_chapters\">வடிகட்டப்பட்ட அத்தியாயங்களைத் தவிர்க்கவும்</string>\n    <string name=\"pref_skip_dupe_chapters\">நகல் அத்தியாயங்களைத் தவிர்க்கவும்</string>\n    <string name=\"pref_reader_navigation\">வானோடல்</string>\n    <string name=\"pref_read_with_volume_keys\">தொகுதி விசைகள்</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">தொகுதி விசைகள் தலைகீழ்</string>\n    <string name=\"pref_read_with_tapping_inverted\">தட்டல் மண்டலங்களைத் தலைகீழ்</string>\n    <string name=\"tapping_inverted_none\">எதுவுமில்லை</string>\n    <string name=\"tapping_inverted_horizontal\">கிடைமட்டமாக</string>\n    <string name=\"tapping_inverted_vertical\">செங்குத்து</string>\n    <string name=\"tapping_inverted_both\">இரண்டும்</string>\n    <string name=\"pref_reader_actions\">செயல்கள்</string>\n    <string name=\"pref_read_with_long_tap\">நீண்ட தட்டில் செயல்களைக் காட்டு</string>\n    <string name=\"pref_create_folder_per_manga\">பக்கங்களை தனி கோப்புறைகளில் சேமிக்கவும்</string>\n    <string name=\"pref_reader_theme\">பின்னணி நிறம்</string>\n    <string name=\"white_background\">வெள்ளை</string>\n    <string name=\"gray_background\">சாம்பல்</string>\n    <string name=\"black_background\">கருப்பு</string>\n    <string name=\"automatic_background\">தானி</string>\n    <string name=\"pref_viewer_type\">இயல்புநிலை வாசிப்பு முறை</string>\n    <string name=\"l_nav\">எல் வடிவ</string>\n    <string name=\"kindlish_nav\">கின்டெல்-இச்</string>\n    <string name=\"edge_nav\">விளிம்பு</string>\n    <string name=\"right_and_left_nav\">வலது மற்றும் இடது</string>\n    <string name=\"disabled_nav\">முடக்கப்பட்டது</string>\n    <string name=\"nav_zone_prev\">முந்தைய</string>\n    <string name=\"nav_zone_next\">அடுத்தது</string>\n    <string name=\"nav_zone_left\">இடது</string>\n    <string name=\"nav_zone_right\">வலது</string>\n    <string name=\"left_to_right_viewer\">பேச் (இடமிருந்து வலமாக)</string>\n    <string name=\"right_to_left_viewer\">பேச் (வலமிருந்து இடமாக)</string>\n    <string name=\"vertical_viewer\">பேச் செய்யப்பட்ட (செங்குத்து)</string>\n    <string name=\"webtoon_viewer\">நீண்ட துண்டு</string>\n    <string name=\"vertical_plus_viewer\">இடைவெளிகளுடன் நீண்ட துண்டு</string>\n    <string name=\"pager_viewer\">பேச்</string>\n    <string name=\"pref_viewer_nav\">மண்டலங்களைத் தட்டவும்</string>\n    <string name=\"pref_image_scale_type\">அளவிலான வகை</string>\n    <string name=\"scale_type_fit_screen\">திரை பொருத்தம்</string>\n    <string name=\"scale_type_stretch\">நீட்டிக்க</string>\n    <string name=\"scale_type_fit_width\">பொருந்தக்கூடிய அகலம்</string>\n    <string name=\"scale_type_fit_height\">பொருத்தமான உயரத்திற்கு</string>\n    <string name=\"scale_type_original_size\">அசல் அளவு</string>\n    <string name=\"scale_type_smart_fit\">அறிவுள்ள பொருத்தம்</string>\n    <string name=\"pref_navigate_pan\">பரந்த படங்களை பான்</string>\n    <string name=\"pref_landscape_zoom\">தானாகவே பரந்த படங்களாக பெரிதாக்கவும்</string>\n    <string name=\"pref_zoom_start\">சூம் தொடக்க நிலை</string>\n    <string name=\"zoom_start_automatic\">தானியங்கி</string>\n    <string name=\"zoom_start_left\">இடது</string>\n    <string name=\"zoom_start_right\">வலது</string>\n    <string name=\"zoom_start_center\">நடுவண்</string>\n    <string name=\"double_tap_anim_speed_0\">அனிமேசன் இல்லை</string>\n    <string name=\"double_tap_anim_speed_normal\">சாதாரண</string>\n    <string name=\"double_tap_anim_speed_fast\">வேகமாக</string>\n    <string name=\"pref_rotation_type\">இயல்புநிலை சுழற்சி</string>\n    <string name=\"rotation_type\">சுழற்சி</string>\n    <string name=\"rotation_free\">இலவசம்</string>\n    <string name=\"rotation_portrait\">உருவப்படம்</string>\n    <string name=\"rotation_reverse_portrait\">தலைகீழ் உருவப்படம்</string>\n    <string name=\"rotation_landscape\">நிலப்பரப்பு</string>\n    <string name=\"rotation_force_portrait\">பூட்டப்பட்ட உருவப்படம்</string>\n    <string name=\"pref_remove_after_marked_as_read\">கைமுறையாக வாசிக்கப்பட்ட பிறகு குறிக்கப்பட்ட பிறகு</string>\n    <string name=\"pref_remove_after_read\">படித்த பிறகு தானாக நீக்கவும்</string>\n    <string name=\"fourth_to_last\">நான்காவது முதல் கடைசியாக படிக்க அத்தியாயம்</string>\n    <string name=\"fifth_to_last\">ஐந்தாவது முதல் கடைசியாக படிக்க அத்தியாயம்</string>\n    <string name=\"pref_category_auto_download\">ஆட்டோ-டவுன்லோட்</string>\n    <string name=\"pref_download_new\">புதிய அத்தியாயங்களைப் பதிவிறக்கவும்</string>\n    <string name=\"pref_download_new_unread_chapters_only\">நகல் வாசிப்பு அத்தியாயங்களைப் பதிவிறக்குவதைத் தவிர்க்கவும்</string>\n    <string name=\"rotation_force_landscape\">பூட்டப்பட்ட நிலப்பரப்பு</string>\n    <string name=\"color_filter_r_value\">சிவப்பு</string>\n    <string name=\"color_filter_g_value\">பச்சை</string>\n    <string name=\"color_filter_b_value\">நீலம்</string>\n    <string name=\"color_filter_a_value\">அகர</string>\n    <string name=\"pref_always_show_chapter_transition\">எப்போதும் அத்தியாய மாற்றத்தைக் காட்டுங்கள்</string>\n    <string name=\"pref_category_reading_mode\">படித்தல் பயன்முறை</string>\n    <string name=\"pref_category_reading\">படித்தல்</string>\n    <string name=\"pref_webtoon_side_padding\">பக்க திணிப்பு</string>\n    <string name=\"pref_hide_threshold\">சுருளில் மெனுவை மறைப்பதற்கான உணர்திறன்</string>\n    <string name=\"pref_highest\">அதிகபட்சம்</string>\n    <string name=\"pref_high\">உயர்ந்த</string>\n    <string name=\"pref_low\">குறைந்த</string>\n    <string name=\"pref_lowest\">மிகக் குறைந்த</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">சூம் அவுட் முடக்கு</string>\n    <string name=\"pref_category_delete_chapters\">அத்தியாயங்களை நீக்கு</string>\n    <string name=\"save_chapter_as_cbz\">சிபிஇசட் காப்பகமாக சேமிக்கவும்</string>\n    <string name=\"split_tall_images\">உயரமான படங்களை பிரிக்கவும்</string>\n    <string name=\"split_tall_images_summary\">வாசகர் செயல்திறனை மேம்படுத்துகிறது</string>\n    <string name=\"tracking_guide\">கண்காணிப்பு வழிகாட்டி</string>\n    <string name=\"pref_auto_update_manga_sync\">படித்த பிறகு முன்னேற்றத்தைப் புதுப்பிக்கவும்</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">படிக்கும்போது முன்னேற்றத்தைப் புதுப்பிக்கவும்</string>\n    <string name=\"services\">டிராக்கர்கள்</string>\n    <string name=\"tracking_info\">வெளிப்புற டிராக்கர் சேவைகளில் அத்தியாய முன்னேற்றத்தைப் புதுப்பிக்க ஒரு வழி ஒத்திசைவு. அவற்றின் கண்காணிப்பு பொத்தானிலிருந்து தனிப்பட்ட உள்ளீடுகளுக்கான கண்காணிப்பை அமைக்கவும்.</string>\n    <string name=\"enhanced_services\">மேம்படுத்தப்பட்ட டிராக்கர்கள்</string>\n    <string name=\"enhanced_services_not_installed\">கிடைக்கிறது ஆனால் சான்று நிறுவப்படவில்லை: %s</string>\n    <string name=\"pref_download_new_categories_details\">விலக்கப்பட்ட வகைகளில் உள்ளீடுகள் சேர்க்கப்பட்ட வகைகளில் இருந்தாலும் பதிவிறக்கம் செய்யப்படாது.</string>\n    <string name=\"download_ahead\">மேலே பதிவிறக்கவும்</string>\n    <string name=\"auto_download_while_reading\">படிக்கும் போது தானாக பதிவிறக்கம்</string>\n    <string name=\"download_ahead_info\">தற்போதைய அத்தியாயம் + அடுத்தது ஏற்கனவே பதிவிறக்கம் செய்யப்பட்டால் மட்டுமே செயல்படும்.</string>\n    <string name=\"enhanced_tracking_info\">குறிப்பிட்ட மூலங்களுக்கான மேம்பட்ட அம்சங்களை வழங்குகிறது. உங்கள் நூலகத்தில் சேர்க்கும்போது உள்ளீடுகள் தானாகவே கண்காணிக்கப்படும்.</string>\n    <string name=\"action_track\">மின்தடம்</string>\n    <string name=\"track_activity_name\">டிராக்கர் உள்நுழைவு</string>\n    <string name=\"pref_hide_in_library_items\">ஏற்கனவே நூலகத்தில் உள்ளீடுகளை மறைக்கவும்</string>\n    <string name=\"pref_storage_location\">சேமிப்பக இடம்</string>\n    <string name=\"pref_storage_location_info\">தானியங்கி காப்புப்பிரதிகள், அத்தியாயம் பதிவிறக்கங்கள் மற்றும் உள்ளக மூலங்களுக்குப் பயன்படுத்தப்படுகிறது.</string>\n    <string name=\"pref_create_backup\">காப்புப்பிரதியை உருவாக்கவும்</string>\n    <string name=\"pref_create_backup_summ\">தற்போதைய நூலகத்தை மீட்டெடுக்க பயன்படுத்தலாம்</string>\n    <string name=\"pref_restore_backup\">காப்புப்பிரதியை மீட்டமைக்கவும்</string>\n    <string name=\"pref_restore_backup_summ\">காப்புப்பிரதி கோப்பிலிருந்து நூலகத்தை மீட்டெடுக்கவும்</string>\n    <string name=\"pref_backup_interval\">தானியங்கி காப்பு அதிர்வெண்</string>\n    <string name=\"action_create\">உருவாக்கு</string>\n    <string name=\"backup_created\">காப்புப்பிரதி உருவாக்கப்பட்டது</string>\n    <string name=\"invalid_backup_file\">தவறான காப்புப்பிரதி கோப்பு:</string>\n    <string name=\"invalid_backup_file_error\">முழு பிழை:</string>\n    <string name=\"invalid_backup_file_missing_manga\">காப்புப்பிரதியில் எந்த நூலக உள்ளீடுகளும் இல்லை.</string>\n    <string name=\"invalid_backup_file_json\">சாதொபொகு காப்புப்பிரதி ஆதரிக்கப்படவில்லை</string>\n    <string name=\"invalid_backup_file_unknown\">காப்பு கோப்பு சிதைந்துள்ளது</string>\n    <string name=\"backup_restore_missing_sources\">ஆதாரங்களைக் காணவில்லை:</string>\n    <string name=\"backup_restore_missing_trackers\">டிராக்கர்கள் உள்நுழையவில்லை:</string>\n    <string name=\"backup_restore_content_full\">நீங்கள் காணாமல் போன நீட்டிப்புகளை நிறுவ வேண்டும், பின்னர் அவற்றைப் பயன்படுத்த கண்காணிப்பு சேவைகளில் உள்நுழைய வேண்டும்.</string>\n    <string name=\"restore_completed\">மீட்டமை முடிந்தது</string>\n    <string name=\"restore_duration\">%1$02d மணித்துளி, %2$02d நொடி</string>\n    <string name=\"backup_in_progress\">காப்புப்பிரதி ஏற்கனவே நடந்து வருகிறது</string>\n    <string name=\"backup_choice\">நீங்கள் என்ன காப்புப் பிரதி எடுக்க விரும்புகிறீர்கள்?</string>\n    <string name=\"app_settings\">பயன்பாட்டு அமைப்புகள்</string>\n    <string name=\"source_settings\">மூல அமைப்புகள்</string>\n    <string name=\"missing_storage_permission\">சேமிப்பக அனுமதிகள் வழங்கப்படவில்லை</string>\n    <string name=\"empty_backup_error\">காப்புப் பிரதி எடுக்க நூலக உள்ளீடுகள் இல்லை</string>\n    <string name=\"create_backup_file_error\">காப்புப்பிரதி கோப்பை உருவாக்க முடியவில்லை</string>\n    <string name=\"restore_miui_warning\">MIUI உகப்பாக்கம் முடக்கப்பட்டிருந்தால் காப்புப்பிரதி/மீட்டமை சரியாக செயல்படாது.</string>\n    <string name=\"pref_clear_cookies\">குக்கீகளை அழிக்கவும்</string>\n    <string name=\"pref_dns_over_https\">Https (doh) க்கு மேல் dns</string>\n    <string name=\"pref_user_agent_string\">இயல்புநிலை பயனர் முகவர் சரம்</string>\n    <string name=\"error_user_agent_string_blank\">பயனர் முகவர் சரம் காலியாக இருக்க முடியாது</string>\n    <string name=\"error_user_agent_string_invalid\">தவறான பயனர் முகவர் சரம்</string>\n    <string name=\"pref_reset_user_agent_string\">இயல்புநிலை பயனர் முகவர் சரத்தை மீட்டமைக்கவும்</string>\n    <string name=\"requires_app_restart\">நடைமுறைக்கு வர பயன்பாட்டு மறுதொடக்கம் தேவை</string>\n    <string name=\"cookies_cleared\">குக்கீகள் அகற்றப்பட்டன</string>\n    <string name=\"restore_in_progress\">மீட்டமை ஏற்கனவே நடந்து வருகிறது</string>\n    <string name=\"restoring_backup\">காப்புப்பிரதியை மீட்டமைத்தல்</string>\n    <string name=\"restoring_backup_error\">காப்புப்பிரதியை மீட்டெடுப்பது தோல்வியடைந்தது</string>\n    <string name=\"restoring_backup_canceled\">ரத்து செய்யப்பட்ட மீட்டமை</string>\n    <string name=\"available_disk_space_info\">கிடைக்கிறது: %1$s / மொத்தம்: %2$s</string>\n    <string name=\"used_cache\">பயன்படுத்தப்பட்டது: %1$s</string>\n    <string name=\"cache_deleted\">கேச் அழிக்கப்பட்டது, %1$d கோப்புகள் நீக்கப்பட்டன</string>\n    <string name=\"cache_delete_error\">அழிக்கும்போது பிழை ஏற்பட்டது</string>\n    <string name=\"pref_auto_clear_chapter_cache\">பயன்பாட்டு வெளியீட்டில் அத்தியாயம் கேச் அழிக்கவும்</string>\n    <string name=\"syncing_library\">நூலகம் ஒத்திசைத்தல்</string>\n    <string name=\"library_sync_complete\">நூலக ஒத்திசைவு முடிந்தது</string>\n    <string name=\"label_network\">நெட்வொர்க்கிங்</string>\n    <string name=\"pref_invalidate_download_cache\">REINDEX பதிவிறக்கங்கள்</string>\n    <string name=\"pref_invalidate_download_cache_summary\">பதிவிறக்கம் செய்யப்பட்ட அத்தியாயங்களை மறுபரிசீலனை செய்ய பயன்பாடு</string>\n    <string name=\"download_cache_invalidated\">பதிவிறக்கங்கள் அட்டவணை செல்லாதது</string>\n    <string name=\"pref_clear_database\">தரவுத்தளத்தை அழிக்கவும்</string>\n    <string name=\"pref_clear_database_summary\">உங்கள் நூலகத்தில் சேமிக்கப்படாத உள்ளீடுகளுக்கான வரலாற்றை நீக்கவும்</string>\n    <string name=\"clear_database_source_item_count\">தரவுத்தளத்தில் %1$d நூலகமற்ற உள்ளீடுகள்</string>\n    <string name=\"clear_database_completed\">உள்ளீடுகள் நீக்கப்பட்டன</string>\n    <string name=\"database_clean\">அழிக்க எதுவும் இல்லை</string>\n    <string name=\"pref_clear_webview_data\">வெப்வியூ தரவை அழிக்கவும்</string>\n    <string name=\"webview_data_deleted\">வெப்வியூ தரவு அழிக்கப்பட்டது</string>\n    <string name=\"pref_refresh_library_covers\">நூலக அட்டைகளைப் புதுப்பிக்கவும்</string>\n    <string name=\"pref_reset_viewer_flags\">ஒவ்வொரு தொடர் வாசகர் அமைப்புகளையும் மீட்டமைக்கவும்</string>\n    <string name=\"pref_reset_viewer_flags_summary\">அனைத்து தொடர்களின் வாசிப்பு முறை மற்றும் நோக்குநிலையை மீட்டமைக்கிறது</string>\n    <string name=\"pref_reset_viewer_flags_success\">அனைத்து வாசகர் அமைப்புகளும் மீட்டமைக்கப்படுகின்றன</string>\n    <string name=\"pref_reset_viewer_flags_error\">வாசகர் அமைப்புகளை மீட்டமைக்க முடியவில்லை</string>\n    <string name=\"pref_dump_crash_logs\">செயலிழப்பு பதிவுகளைப் பகிரவும்</string>\n    <string name=\"pref_dump_crash_logs_summary\">டெவலப்பர்களுடன் பகிர்வதற்காக பிழை பதிவுகளை ஒரு கோப்பில் சேமிக்கிறது</string>\n    <string name=\"label_background_activity\">பின்னணி செயல்பாடு</string>\n    <string name=\"pref_disable_battery_optimization\">பேட்டரி தேர்வுமுறை முடக்கு</string>\n    <string name=\"pref_disable_battery_optimization_summary\">பின்னணி நூலக புதுப்பிப்புகள் மற்றும் காப்புப்பிரதிகளுக்கு உதவுகிறது</string>\n    <string name=\"battery_optimization_disabled\">பேட்டரி தேர்வுமுறை ஏற்கனவே முடக்கப்பட்டுள்ளது</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">சாதன அமைப்புகளைத் திறக்க முடியவில்லை</string>\n    <string name=\"about_dont_kill_my_app\">சில உற்பத்தியாளர்களுக்கு பின்னணி சேவைகளைக் கொல்லும் கூடுதல் பயன்பாட்டு கட்டுப்பாடுகள் உள்ளன. இந்த வலைத்தளத்தை எவ்வாறு சரிசெய்வது என்பது பற்றிய கூடுதல் தகவல்கள் உள்ளன.</string>\n    <string name=\"pref_tablet_ui_mode\">டேப்லெட் இடைமுகம்</string>\n    <string name=\"pref_verbose_logging\">சொற்களஞ்சியம் பதிவு</string>\n    <string name=\"pref_verbose_logging_summary\">கணினி பதிவுக்கு வாய்மொழி பதிவுகளை அச்சிடுக (பயன்பாட்டு செயல்திறனைக் குறைக்கிறது)</string>\n    <string name=\"privacy_policy\">தனியுரிமைக் கொள்கை</string>\n    <string name=\"check_for_updates\">புதுப்பிப்புகளை சரிபார்க்கவும்</string>\n    <string name=\"updated_version\">V%1$s க்கு புதுப்பிக்கப்பட்டது</string>\n    <string name=\"pref_enable_acra\">செயலிழப்பு அறிக்கைகளை அனுப்பவும்</string>\n    <string name=\"pref_acra_summary\">எந்த பிழைகளையும் சரிசெய்ய உதவுகிறது. முக்கியமான தரவு எதுவும் அனுப்பப்படாது</string>\n    <string name=\"fdroid_warning\">எஃப்-டிராய்டு கட்டடங்கள் அதிகாரப்பூர்வமாக ஆதரிக்கப்படவில்லை.\\n மேலும் அறிய தட்டவும்.</string>\n    <string name=\"label_downloaded_only\">பதிவிறக்கம் மட்டுமே</string>\n    <string name=\"pref_incognito_mode\">மறைநிலை பயன்முறை</string>\n    <string name=\"pref_incognito_mode_summary\">வரலாற்றைப் படிப்பதை இடைநிறுத்துகிறது</string>\n    <string name=\"pref_incognito_mode_extension_summary\">நீட்டிப்புக்கு படித்தல் வரலாற்றை இடைநிறுத்துங்கள்</string>\n    <string name=\"notification_incognito_text\">மறைநிலை பயன்முறையை முடக்கு</string>\n    <string name=\"downloaded_only_summary\">உங்கள் நூலகத்தில் உள்ள அனைத்து உள்ளீடுகளையும் வடிகட்டுகிறது</string>\n    <string name=\"login_title\">%1$s இல் உள்நுழைக</string>\n    <string name=\"username\">பயனர்பெயர்</string>\n    <string name=\"email\">மின்னஞ்சல் முகவரி</string>\n    <string name=\"password\">கடவுச்சொல்</string>\n    <string name=\"login\">புகுபதிவு</string>\n    <string name=\"login_success\">உள்நுழைந்தது</string>\n    <string name=\"logout_title\">%1$s இலிருந்து வெளியேறவா?</string>\n    <string name=\"logout\">விடுபதிகை</string>\n    <string name=\"logout_success\">நீங்கள் இப்போது வெளியேறிவிட்டீர்கள்</string>\n    <string name=\"unknown_error\">தெரியாத பிழை</string>\n    <string name=\"updating_category\">வகை புதுப்பித்தல்</string>\n    <string name=\"manga_from_library\">நூலகத்திலிருந்து</string>\n    <string name=\"downloaded_chapters\">பதிவிறக்கம் செய்யப்பட்ட அத்தியாயங்கள்</string>\n    <string name=\"intervals_header\">இடைவெளிகள்</string>\n    <string name=\"overlay_header\">மேலடுக்கு</string>\n    <string name=\"tabs_header\">தாவல்கள்</string>\n    <string name=\"no_more_results\">இனி முடிவுகள் இல்லை</string>\n    <string name=\"no_results_found\">முடிவுகள் எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"local_source\">உள்ளக மூல</string>\n    <string name=\"other_source\">மற்றொன்று</string>\n    <string name=\"last_used_source\">கடைசியாக பயன்படுத்தப்பட்டது</string>\n    <string name=\"pinned_sources\">பின்</string>\n    <string name=\"has_results\">முடிவுகள் உள்ளன</string>\n    <string name=\"local_source_help_guide\">உள்ளக மூல வழிகாட்டி</string>\n    <string name=\"no_pinned_sources\">உங்களிடம் பின் ஆதாரங்கள் இல்லை</string>\n    <string name=\"chapter_not_found\">அத்தியாயம் காணப்படவில்லை</string>\n    <string name=\"local_invalid_format\">தவறான அத்தியாயம் வடிவம்</string>\n    <string name=\"local_filter_order_by\">வழங்கியவர்</string>\n    <string name=\"date\">திகதி</string>\n    <string name=\"ongoing\">நடந்து கொண்டிருக்கிறது</string>\n    <string name=\"unknown\">தெரியவில்லை</string>\n    <string name=\"unknown_author\">தெரியாத ஆசிரியர்</string>\n    <string name=\"unknown_status\">தெரியாத நிலை</string>\n    <string name=\"licensed\">உரிமம்</string>\n    <string name=\"publishing_finished\">வெளியீடு முடிந்தது</string>\n    <string name=\"unknown_title\">தெரியாத தலைப்பு</string>\n    <string name=\"manga_added_library\">நூலகத்தில் சேர்க்கப்பட்டது</string>\n    <string name=\"cancelled\">ரத்து செய்யப்பட்டது</string>\n    <string name=\"on_hiatus\">இடைவெளியில்</string>\n    <string name=\"add_to_library\">நூலகத்தில் சேர்க்கவும்</string>\n    <string name=\"in_library\">நூலகத்தில்</string>\n    <string name=\"remove_from_library\">நூலகத்திலிருந்து அகற்று</string>\n    <string name=\"copied_to_clipboard_plain\">இடைநிலைப்பலகைக்கு நகலெடுக்கப்பட்டது</string>\n    <string name=\"copied_to_clipboard\">இடைநிலைப்பலகைக்கு நகலெடுக்கப்பட்டது:\\n %1$s</string>\n    <string name=\"clipboard_copy_error\">இடைநிலைப்பலகைக்கு நகலெடுப்பதில் தோல்வி</string>\n    <string name=\"source_not_installed\">சான்று நிறுவப்படவில்லை: %1$s</string>\n    <string name=\"snack_add_to_library\">நூலகத்தில் சேர்க்கவா?</string>\n    <string name=\"description_placeholder\">விளக்கம் இல்லை</string>\n    <string name=\"display_mode_chapter\">அத்தியாயம் %1$s</string>\n    <string name=\"manga_display_interval_title\">ஒவ்வொன்றையும் மதிப்பிடுங்கள்</string>\n    <string name=\"manga_display_modified_interval_title\">ஒவ்வொன்றையும் புதுப்பிக்க அமைக்கவும்</string>\n    <string name=\"manga_interval_expected_update\">புதிய அத்தியாயங்கள் சுமார் %1$s இல் வெளியிடப்படும் என்று கணிக்கப்பட்டுள்ளது, ஒவ்வொரு %2$s ஐச் சுற்றி உள்ளது.</string>\n    <string name=\"manga_interval_expected_update_null\">இந்த மங்கா முடிந்தது, அல்லது கணிக்கப்பட்ட வெளியீட்டு தேதி இல்லை.</string>\n    <string name=\"manga_interval_expected_update_soon\">விரைவில்</string>\n    <string name=\"manga_interval_custom_amount\">தனிப்பயன் புதுப்பிப்பு அதிர்வெண்:</string>\n    <string name=\"chapter_downloading_progress\">பதிவிறக்குதல் (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">பிழை</string>\n    <string name=\"chapter_paused\">இடைநிறுத்தப்பட்டது</string>\n    <string name=\"show_title\">மூல தலைப்பு</string>\n    <string name=\"show_chapter_number\">அத்தியாயம் எண்</string>\n    <string name=\"sort_by_source\">மூலத்தால்</string>\n    <string name=\"sort_by_number\">அத்தியாய எண் மூலம்</string>\n    <string name=\"sort_by_upload_date\">பதிவேற்றுவதன் மூலம்</string>\n    <string name=\"manga_download\">பதிவிறக்கம்</string>\n    <string name=\"download_unread\">படிக்காதது</string>\n    <string name=\"custom_cover\">தனிப்பயன் கவர்</string>\n    <string name=\"manga_cover\">கவர்</string>\n    <string name=\"cover_saved\">கவர் சேமிக்கப்பட்டது</string>\n    <string name=\"error_saving_cover\">கவர் சேமிக்கும் பிழை</string>\n    <string name=\"error_sharing_cover\">பிழை பகிர்வு கவர்</string>\n    <string name=\"confirm_delete_chapters\">தேர்ந்தெடுக்கப்பட்ட அத்தியாயங்களை நீக்க விரும்புகிறீர்களா?</string>\n    <string name=\"chapter_settings\">அத்தியாயம் அமைப்புகள்</string>\n    <string name=\"confirm_set_chapter_settings\">இந்த அமைப்புகளை இயல்புநிலையாக சேமிக்க விரும்புகிறீர்களா?</string>\n    <string name=\"also_set_chapter_settings_for_library\">எனது நூலகத்தில் உள்ள அனைத்து உள்ளீடுகளுக்கும் பொருந்தும்</string>\n    <string name=\"set_chapter_settings_as_default\">இயல்புநிலையாக அமைக்கவும்</string>\n    <string name=\"no_chapters_error\">அத்தியாயங்கள் எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"are_you_sure\">நீங்கள் உறுதியாக இருக்கிறீர்களா?</string>\n    <string name=\"exclude_scanlators\">ச்கேன்லேட்டர்களை விலக்கு</string>\n    <string name=\"no_scanlators_found\">ச்கேன்லேட்டர்கள் எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"completed\">முடிந்தது</string>\n    <string name=\"dropped\">கைவிடப்பட்டது</string>\n    <string name=\"on_hold\">நிறுத்தி</string>\n    <string name=\"paused\">இடைநிறுத்தப்பட்டது</string>\n    <string name=\"plan_to_read\">படிக்க திட்டமிடுங்கள்</string>\n    <string name=\"confirm_tracker_update\">அத்தியாயம் %d க்கு டிராக்கர்களைப் புதுப்பிக்கவா?</string>\n    <string name=\"trackers_updated_summary\">டிராக்கர்கள் அத்தியாயம் %d க்கு புதுப்பிக்கப்பட்டன</string>\n    <string name=\"manga_tracking_tab\">கண்காணிப்பு</string>\n    <string name=\"add_tracking\">கண்காணிப்பைச் சேர்க்கவும்</string>\n    <string name=\"unread\">படிக்காதது</string>\n    <string name=\"reading\">படித்தல்</string>\n    <string name=\"repeating\">மீண்டும் படிக்க</string>\n    <string name=\"reading_list\">படித்தல் பட்டியல்</string>\n    <string name=\"wish_list\">விருப்பப்பட்டியல்</string>\n    <string name=\"complete_list\">முழுமையான பட்டியல்</string>\n    <string name=\"on_hold_list\">வைத்திருக்கும் பட்டியலில்</string>\n    <string name=\"score\">கெலிப்பெண்</string>\n    <string name=\"title\">தலைப்பு</string>\n    <string name=\"status\">நிலை</string>\n    <string name=\"track_status\">நிலை</string>\n    <string name=\"track_started_reading_date\">தொடக்க தேதி</string>\n    <string name=\"track_finished_reading_date\">தேதியை முடிக்க</string>\n    <string name=\"track_type\">வகை</string>\n    <string name=\"myanimelist_relogin\">தயவுசெய்து மீண்டும் மால் இல் உள்நுழைக</string>\n    <string name=\"source_unsupported\">சான்று ஆதரிக்கப்படவில்லை</string>\n    <string name=\"unfinished_list\">முடிக்கப்படாத பட்டியல்</string>\n    <string name=\"error_no_match\">போட்டி எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"track_error\">%1$s பிழை: %2$s</string>\n    <string name=\"track_remove_date_conf_title\">தேதியை அகற்றவா?</string>\n    <string name=\"track_remove_start_date_conf_text\">இது நீங்கள் முன்னர் தேர்ந்தெடுக்கப்பட்ட தொடக்க தேதியை %s இலிருந்து அகற்றும்</string>\n    <string name=\"track_remove_finish_date_conf_text\">இது நீங்கள் முன்னர் தேர்ந்தெடுக்கப்பட்ட பூச்சு தேதியை %s இலிருந்து அகற்றும்</string>\n    <string name=\"track_delete_title\">%s கண்காணிப்பை அகற்றவா?</string>\n    <string name=\"track_delete_remote_text\">%s இலிருந்து அகற்றவும்</string>\n    <string name=\"error_category_exists\">இந்த பெயருடன் ஒரு வகை ஏற்கனவே உள்ளது!</string>\n    <string name=\"snack_categories_deleted\">வகைகள் நீக்கப்பட்டன</string>\n    <string name=\"dialog_with_checkbox_remove_description\">இது இந்த அத்தியாயத்தின் வாசிப்பு தேதியை அகற்றும். நீங்கள் உறுதியாக இருக்கிறீர்களா?</string>\n    <string name=\"dialog_with_checkbox_reset\">இந்த நுழைவுக்கான அனைத்து அத்தியாயங்களையும் மீட்டமைக்கவும்</string>\n    <string name=\"track_delete_text\">இது உள்நாட்டில் கண்காணிப்பை அகற்றும்.</string>\n    <string name=\"picture_saved\">படம் சேமிக்கப்பட்டது</string>\n    <string name=\"error_saving_picture\">படம் சேமிப்பதில் பிழை</string>\n    <string name=\"custom_filter\">தனிப்பயன் வடிகட்டி</string>\n    <string name=\"set_as_cover\">கவர் அமைக்கவும்</string>\n    <string name=\"cover_updated\">கவர் புதுப்பிக்கப்பட்டது</string>\n    <string name=\"share_page_info\">%1$s: %2$s, பக்கம் %3$d</string>\n    <string name=\"chapter_progress\">பக்கம்: %1$d</string>\n    <string name=\"no_next_chapter\">அடுத்த அத்தியாயம் காணப்படவில்லை</string>\n    <string name=\"decode_image_error\">படத்தை ஏற்ற முடியவில்லை</string>\n    <string name=\"confirm_set_image_as_cover\">இந்த படத்தை கவர் கலையாகப் பயன்படுத்தவா?</string>\n    <string name=\"pref_category_for_this_series\">இந்த தொடருக்கு</string>\n    <string name=\"viewer\">படித்தல் பயன்முறை</string>\n    <string name=\"transition_finished\">முடிந்தது:</string>\n    <string name=\"transition_current\">நடப்பு:</string>\n    <string name=\"transition_next\">அடுத்து:</string>\n    <string name=\"transition_previous\">முந்தைய:</string>\n    <string name=\"transition_no_next\">அடுத்த அத்தியாயம் இல்லை</string>\n    <string name=\"transition_no_previous\">முந்தைய அத்தியாயம் எதுவும் இல்லை</string>\n    <string name=\"transition_pages_loading\">பக்கங்களை ஏற்றுகிறது…</string>\n    <string name=\"transition_pages_error\">பக்கங்களை ஏற்றுவதில் தோல்வி: %1$s</string>\n    <string name=\"page_list_empty_error\">பக்கங்கள் எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"loader_not_implemented_error\">சான்று கிடைக்கவில்லை</string>\n    <string name=\"cant_open_last_read_chapter\">கடைசி வாசிப்பு அத்தியாயத்தைத் திறக்க முடியவில்லை</string>\n    <string name=\"clear_history_completed\">வரலாறு நீக்கப்பட்டது</string>\n    <string name=\"updating_library\">நூலகம் புதுப்பித்தல்</string>\n    <string name=\"update_already_running\">ஒரு புதுப்பிப்பு ஏற்கனவே இயங்குகிறது</string>\n    <string name=\"clear_history_confirmation\">நீங்கள் உறுதியாக இருக்கிறீர்களா? எல்லா வரலாற்றும் இழக்கப்படும்.</string>\n    <string name=\"source_empty_screen\">எந்த மூலமும் கிடைக்கவில்லை</string>\n    <string name=\"crash_screen_title\">அச்சச்சோ!</string>\n    <string name=\"crash_screen_description\">%s எதிர்பாராத பிழையில் ஓடியது. மோதல் பதிவுகளை எங்கள் உதவி சேனலில் டிச்கார்டில் பகிர்ந்து கொள்ள பரிந்துரைக்கிறோம்.</string>\n    <string name=\"crash_screen_restart_application\">விண்ணப்பத்தை மறுதொடக்கம் செய்யுங்கள்</string>\n    <string name=\"label_overview_section\">கண்ணோட்டம்</string>\n    <string name=\"source_filter_empty_screen\">நிறுவப்பட்ட மூலமும் கிடைக்கவில்லை</string>\n    <string name=\"migration_help_guide\">மூல இடம்பெயர்வு வழிகாட்டி</string>\n    <string name=\"migration_dialog_what_to_include\">சேர்க்க தரவைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"migration_selection_prompt\">இடம்பெயர ஒரு மூலத்தைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"label_completed_titles\">நிறைவு செய்யப்பட்ட உள்ளீடுகள்</string>\n    <string name=\"label_read_duration\">காலத்தைப் படியுங்கள்</string>\n    <string name=\"label_titles_section\">உள்ளீடுகள்</string>\n    <string name=\"label_titles_in_global_update\">உலகளாவிய புதுப்பிப்பில்</string>\n    <string name=\"migrate\">குடியேறவும்</string>\n    <string name=\"copy\">நகலெடு</string>\n    <string name=\"empty_screen\">சரி, இது மோசமானது</string>\n    <string name=\"not_installed\">நிறுவப்படவில்லை</string>\n    <string name=\"label_total_chapters\">மொத்தம்</string>\n    <string name=\"label_read_chapters\">படிக்க</string>\n    <string name=\"label_tracker_section\">டிராக்கர்கள்</string>\n    <string name=\"label_tracked_titles\">கண்காணிக்கப்பட்ட உள்ளீடுகள்</string>\n    <string name=\"label_mean_score\">சராசரி மதிப்பெண்</string>\n    <string name=\"label_used\">பயன்படுத்தப்பட்டது</string>\n    <string name=\"download_insufficient_space\">குறைந்த சேமிப்பு இடம் காரணமாக அத்தியாயங்களை பதிவிறக்கம் செய்ய முடியவில்லை</string>\n    <string name=\"download_queue_size_warning\">எச்சரிக்கை: பெரிய மொத்த பதிவிறக்கங்கள் ஆதாரங்கள் மெதுவாகவும்/அல்லது மிஓனைத் தடுக்கவும் வழிவகுக்கும். மேலும் அறிய தட்டவும்.</string>\n    <string name=\"not_applicable\">இதற்கில்லை</string>\n    <string name=\"day_short\">%d.டி.</string>\n    <string name=\"notification_updating_progress\">நூலகத்தைப் புதுப்பித்தல்… (%s)</string>\n    <string name=\"hour_short\">%d.எச்</string>\n    <string name=\"minute_short\">%d.எம்</string>\n    <string name=\"seconds_short\">%d.எச்</string>\n    <string name=\"download_queue_error\">அத்தியாயங்களை பதிவிறக்கம் செய்ய முடியவில்லை. பதிவிறக்கங்கள் பிரிவில் நீங்கள் மீண்டும் முயற்சி செய்யலாம்</string>\n    <string name=\"notification_size_warning\">பெரிய புதுப்பிப்புகள் ஆதாரங்களுக்கு தீங்கு விளைவிக்கும் மற்றும் மெதுவான புதுப்பிப்புகளுக்கு வழிவகுக்கும் மற்றும் பேட்டரி பயன்பாட்டையும் அதிகரிக்கும். மேலும் அறிய தட்டவும்.</string>\n    <string name=\"notification_new_chapters\">புதிய அத்தியாயங்கள் காணப்பட்டன</string>\n    <string name=\"notification_chapters_single\">அத்தியாயம் %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">அத்தியாயம் %1$s மற்றும் %2$d மேலும்</string>\n    <string name=\"notification_chapters_multiple\">அத்தியாயங்கள் %1$s</string>\n    <string name=\"notification_update_error\">%1$d புதுப்பிப்பு (கள்) தோல்வியடைந்தது</string>\n    <string name=\"learn_more\">மேலும் அறிய தட்டவும்</string>\n    <string name=\"notification_cover_update_failed\">அட்டையைப் புதுப்பிக்கத் தவறிவிட்டது</string>\n    <string name=\"notification_first_add_to_library\">இதைச் செய்வதற்கு முன் உங்கள் நூலகத்தில் உள்ளீட்டைச் சேர்க்கவும்</string>\n    <string name=\"library_errors_help\">நூலக புதுப்பிப்பு பிழைகளை எவ்வாறு சரிசெய்வது என்பதற்கான உதவிக்கு, %1$s ஐப் பார்க்கவும்</string>\n    <string name=\"skipped_reason_completed\">தொடர் முடிந்ததால் தவிர்க்கப்பட்டது</string>\n    <string name=\"skipped_reason_not_caught_up\">படிக்காத அத்தியாயங்கள் இருப்பதால் தவிர்க்கப்பட்டது</string>\n    <string name=\"skipped_reason_not_started\">அத்தியாயங்கள் எதுவும் படிக்காததால் தவிர்க்கப்பட்டது</string>\n    <string name=\"skipped_reason_not_always_update\">தொடருக்கு புதுப்பிப்புகள் தேவையில்லை என்பதால் தவிர்க்கப்பட்டது</string>\n    <string name=\"skipped_reason_not_in_release_period\">இன்று எந்த வெளியீடும் எதிர்பார்க்கப்படவில்லை என்பதால் தவிர்க்கப்பட்டது</string>\n    <string name=\"file_select_cover\">கவர் படத்தைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"file_select_backup\">காப்புப்பிரதி கோப்பைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"file_picker_error\">கோப்பு பிக்கர் பயன்பாடு எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"file_picker_uri_permission_unsupported\">தொடர்ச்சியான கோப்புறை அணுகலைப் பெறுவதில் தோல்வி. பயன்பாடு எதிர்பாராத விதமாக நடந்து கொள்ளலாம்.</string>\n    <string name=\"file_null_uri_error\">எந்த கோப்பும் தேர்ந்தெடுக்கப்படவில்லை</string>\n    <string name=\"update_check_confirm\">பதிவிறக்கம்</string>\n    <string name=\"update_check_open\">கிட்அப்பில் திறந்திருக்கும்</string>\n    <string name=\"update_check_eol\">இந்த ஆண்ட்ராய்டு பதிப்பு இனி ஆதரிக்கப்படாது</string>\n    <string name=\"update_check_no_new_updates\">புதிய புதுப்பிப்புகள் எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"update_check_notification_download_in_progress\">பதிவிறக்கம்…</string>\n    <string name=\"update_check_notification_download_complete\">புதுப்பிப்பை நிறுவ தட்டவும்</string>\n    <string name=\"update_check_notification_download_error\">பிழையைப் பதிவிறக்கவும்</string>\n    <string name=\"update_check_notification_update_available\">புதிய பதிப்பு கிடைக்கிறது!</string>\n    <string name=\"information_no_downloads\">பதிவிறக்கங்கள் இல்லை</string>\n    <string name=\"information_no_recent\">அண்மைக் கால புதுப்பிப்புகள் இல்லை</string>\n    <string name=\"information_no_recent_manga\">அண்மைக் காலத்தில் எதுவும் படிக்கவில்லை</string>\n    <string name=\"information_empty_library\">உங்கள் நூலகம் காலியாக உள்ளது</string>\n    <string name=\"information_no_manga_category\">வகை காலியாக உள்ளது</string>\n    <string name=\"information_no_entries_found\">இந்த பிரிவில் உள்ளீடுகள் எதுவும் காணப்படவில்லை</string>\n    <string name=\"getting_started_guide\">தொடங்குதல் வழிகாட்டி</string>\n    <string name=\"information_empty_category\">உங்களிடம் வகைகள் இல்லை. உங்கள் நூலகத்தை ஒழுங்கமைக்க ஒன்றை உருவாக்க பிளச் பொத்தானைத் தட்டவும்.</string>\n    <string name=\"information_empty_category_dialog\">உங்களிடம் இதுவரை எந்த வகைகளும் இல்லை.</string>\n    <string name=\"information_cloudflare_bypass_failure\">கிளவுட்ஃப்ளேரைத் தவிர்ப்பதில் தோல்வி</string>\n    <string name=\"information_cloudflare_help\">கிளவுட்ஃப்ளேர் உதவிக்கு இங்கே தட்டவும்</string>\n    <string name=\"information_required_plain\">*தேவை</string>\n    <string name=\"information_webview_required\">பயன்பாடு செயல்பட வெப்வியூ தேவை</string>\n    <string name=\"information_webview_outdated\">சிறந்த இணக்கத்தன்மைக்கு வெப்வியூ பயன்பாட்டைப் புதுப்பிக்கவும்</string>\n    <string name=\"chapter_settings_updated\">புதுப்பிக்கப்பட்ட இயல்புநிலை அத்தியாய அமைப்புகள்</string>\n    <string name=\"download_notifier_downloader_title\">பதிவிறக்குபவர்</string>\n    <string name=\"download_notifier_title_error\">பிழை</string>\n    <string name=\"download_notifier_unknown_error\">எதிர்பாராத பிழை காரணமாக அத்தியாயத்தைப் பதிவிறக்க முடியவில்லை</string>\n    <string name=\"download_notifier_text_only_wifi\">வைஃபை இணைப்பு எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"download_notifier_no_network\">பிணைய இணைப்பு எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"download_notifier_download_paused\">பதிவிறக்கங்கள் இடைநிறுத்தப்பட்டன</string>\n    <string name=\"download_notifier_split_page_not_found\">பக்கம் %d பிரிக்கும் போது காணப்படவில்லை</string>\n    <string name=\"download_notifier_split_page_path_not_found\">பக்கம் %d இன் கோப்பு பாதையை கண்டுபிடிக்க முடியவில்லை</string>\n    <string name=\"download_notifier_cache_renewal\">பதிவிறக்கங்களை சரிபார்க்கிறது</string>\n    <string name=\"channel_common\">பொது</string>\n    <string name=\"channel_progress\">முன்னேற்றம்</string>\n    <string name=\"channel_complete\">முழுமையானது</string>\n    <string name=\"channel_errors\">பிழைகள்</string>\n    <string name=\"channel_new_chapters\">அத்தியாயம் புதுப்பிப்புகள்</string>\n    <string name=\"channel_app_updates\">பயன்பாட்டு புதுப்பிப்புகள்</string>\n    <string name=\"channel_ext_updates\">நீட்டிப்பு புதுப்பிப்புகள்</string>\n    <string name=\"spen_previous_page\">முந்தைய பக்கம்</string>\n    <string name=\"spen_next_page\">அடுத்த பக்கம்</string>\n    <string name=\"appwidget_updates_description\">அண்மைக் காலத்தில் புதுப்பிக்கப்பட்ட நூலக உள்ளீடுகளைப் பார்க்கவும்</string>\n    <string name=\"label_auto\">தானி</string>\n    <string name=\"library_list\">நூலக பட்டியல்</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">இடம்பெயர்வுக்குப் பிறகு தற்போதைய நுழைவின் பதிவிறக்கங்களை நீக்கு</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">புதிய அத்தியாயங்கள் இல்லாமல் உள்ளீடுகளை மறைக்கவும்</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">போட்டியில் கூடுதல் அத்தியாயங்கள் இருந்தால் மட்டுமே நுழைவைக் காட்டு</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">இந்த விருப்பங்கள் மெதுவான மற்றும் ஆபத்தானவை மற்றும் மூலங்களிலிருந்து கட்டுப்பாடுகளுக்கு வழிவகுக்கும்</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">மேம்பட்ட தேடல் முறை</string>\n    <string name=\"theme_catppuccin\">கேட்ப்புச்சின்</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">மார்க் டூப்ளிகேட் வாசிப்பு அத்தியாயத்தைப் படிக்க</string>\n    <string name=\"pref_behavior\">நடத்தை</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">ஒரு அத்தியாயத்தைப் படித்த பிறகு</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">புதிய அத்தியாயத்தைப் பெற்ற பிறகு</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">லாங் உரி ரீடருக்கு மரபு டிகோடரைப் பயன்படுத்தவும்</string>\n    <string name=\"pref_update_library_manga_titles_summary\">எச்சரிக்கை: ஒரு மங்கா மறுபெயரிடப்பட்டால், அது பதிவிறக்க வரிசையில் இருந்து அகற்றப்படும் (இருந்தால்).</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">தேர்ந்தெடுக்கப்பட்டது</string>\n    <string name=\"migrationConfigScreen.availableHeader\">கிடைக்கிறது</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">அனைத்தையும் தெரிவுசெய்</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">எதுவுமில்லை என்பதைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">இயக்கப்பட்ட ஆதாரங்களைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">தொடரவும்</string>\n    <string name=\"action_notes\">குறிப்புகள்</string>\n    <string name=\"action_edit_notes\">குறிப்புகளைத் திருத்து</string>\n    <string name=\"theme_monochrome\">ஒரே வண்ணமுடைய</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">காணாமல் போன அத்தியாயம் குறிகாட்டிகளை மறைக்கவும்</string>\n    <string name=\"library_exported\">நூலகம் ஏற்றுமதி செய்யப்பட்டது</string>\n    <string name=\"clear_db_exclude_read\">வாசிப்பு அத்தியாயங்களுடன் உள்ளீடுகளை வைத்திருங்கள்</string>\n    <string name=\"pref_update_library_manga_titles\">மூலத்துடன் பொருந்தக்கூடிய நூலக மங்கா தலைப்புகளைப் புதுப்பிக்கவும்</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">கூடுதல் முக்கிய வார்த்தைகள் (விரும்பினால்)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">கூடுதல் சொற்களைச் சேர்ப்பதன் மூலம் தேடல் முடிவுகளை குறைக்க உதவுகிறது</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">இடம்பெயர்வு</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">மாற்று வழிகள் எதுவும் கிடைக்கவில்லை</string>\n    <string name=\"migrationListScreen.skipActionLabel\">குடியேற வேண்டாம்</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">இப்போது குடியேறவும்</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">இப்போது நகலெடுக்கவும்</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">குடியேறுவதை நிறுத்தவா?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">நிறுத்து</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">ரத்துசெய்</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">இடம்பெயர்வு</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">ரத்துசெய்</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">ரத்துசெய்</string>\n    <string name=\"tracked_privately\">தனிப்பட்ட முறையில் கண்காணிக்கப்பட்டது</string>\n    <string name=\"action_toggle_private_on\">தனிப்பட்ட முறையில் கண்காணிக்கவும்</string>\n    <string name=\"artist\">கலைஞர்</string>\n    <string name=\"action_display_unread_badge\">படிக்காத அத்தியாயங்கள்</string>\n    <string name=\"export\">ஏற்றுமதி</string>\n    <string name=\"clear_database_text\">தரவுத்தளத்திலிருந்து உள்ளீடுகளை அகற்றப் போகிறீர்கள்</string>\n    <string name=\"clear_database_history_warning\">அத்தியாயங்கள் மற்றும் நூலகமற்ற உள்ளீடுகளின் முன்னேற்றம் இழக்கப்படும்</string>\n    <string name=\"possible_duplicates_summary\">இதேபோன்ற பெயருடன் உங்கள் நூலகத்தில் உள்ளீடுகள் உள்ளன. \\n\\nஇடம்பெயர ஒரு உள்ளீட்டைத் தேர்ந்தெடுக்கவும் அல்லது எப்படியும் சேர்க்கவும்.</string>\n    <string name=\"action_toggle_private_off\">பகிரங்கமாக கண்காணிக்கவும்</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">பின் செய்யப்பட்ட ஆதாரங்களைத் தேர்ந்தெடுக்கவும்</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">இயக்கப்பட்டால், போட்டியை மிக முன்னால் தேர்வுசெய்கிறது. இல்லையெனில், மூல முன்னுரிமையால் முதல் போட்டியைத் தேர்ந்தெடுக்கிறது.</string>\n    <string name=\"migrationListScreenTitle\">குடிபெயர்வு</string>\n    <string name=\"migrationListScreenTitleWithProgress\">இடம்பெயர்வு (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">நகலெடு</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">சமீபத்திய: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">தெரியவில்லை</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">கைமுறையாக தேடுங்கள்</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">நகலெடு</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">அத்தியாயங்கள் எதுவும் கிடைக்கவில்லை, இந்த உள்ளீட்டை இடம்பெயர்வுக்கு பயன்படுத்த முடியாது</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">இடம்பெயர தரவு</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">போட்டி இல்லாமல் உள்ளீடுகளை மறைக்கவும்</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">பரந்த தேடலுக்கான தலைப்பை முக்கிய வார்த்தைகளாக உடைக்கிறது</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">அத்தியாய எண்ணின் அடிப்படையில் பொருந்தவும்</string>\n    <string name=\"possible_duplicates_title\">சாத்தியமான நகல்கள்</string>\n    <string name=\"notes_placeholder\">எங்கே பகுதியை அனுபவித்தேன்…</string>\n    <string name=\"logging_in\">உள்நுழைவு…</string>\n    <string name=\"author\">நூலாசிரியர்</string>\n    <string name=\"storage_failed_to_create_directory\">கோப்பகத்தை உருவாக்குவதில் தோல்வி: %s</string>\n    <string name=\"storage_failed_to_create_download_directory\">பதிவிறக்க கோப்பகத்தை உருவாக்குவதில் தோல்வி</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/te/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">ఒక నిమిషము తరువాత</item>\n        <item quantity=\"other\">%1$s నిమిషముల తరువాత</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/te/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"information_no_downloads\">దిగుమతులు ఏమి లేవు</string>\n    <string name=\"label_help\">సహాయము</string>\n    <string name=\"label_extension_info\">పొడిగింపు యొక్క సమాచారము</string>\n    <string name=\"label_extensions\">పొడిగింపులు</string>\n    <string name=\"label_migration\">వలస</string>\n    <string name=\"label_backup\">భద్రపరచడము మరియు పునరుద్ధారణ</string>\n    <string name=\"label_sources\">మూలాలు</string>\n    <string name=\"label_recent_manga\">చరిత్ర</string>\n    <string name=\"label_recent_updates\">నవీకరణలు</string>\n    <string name=\"label_library\">గ్రంథాలయము</string>\n    <string name=\"label_download_queue\">దిగుమతి వరుస</string>\n    <string name=\"label_settings\">అమరికలు</string>\n    <string name=\"label_more\">మరింత</string>\n    <string name=\"name\">పేరు</string>\n    <string name=\"action_rename_category\">విభాగ పేరును మార్చుము</string>\n    <string name=\"action_edit_categories\">విభాగములను సవరించుము</string>\n    <string name=\"action_add_category\">విభాగమును జోడించుము</string>\n    <string name=\"action_add\">జోడించుము</string>\n    <string name=\"action_edit\">సవరించుము</string>\n    <string name=\"action_disable_all\">అన్నిటిని అచైతన్న పరుచుము</string>\n    <string name=\"action_enable_all\">అన్నిటిని చైతన్న పరుచుము</string>\n    <string name=\"action_update_library\">గ్రంథాలయాన్ని నవీకరించుము</string>\n    <string name=\"action_delete\">తొలగించుము</string>\n    <string name=\"action_remove_bookmark\">అధ్యాయ గుర్తు చిహ్నాన్ని తొలగించుము</string>\n    <string name=\"action_bookmark\">అధ్యాయమును గుర్తు పెట్టుకొనుము</string>\n    <string name=\"action_download\">దిగుమతి</string>\n    <string name=\"action_mark_previous_as_read\">దీని మునుపటివాటికి చదివినట్లు గుర్తును పెట్టుము</string>\n    <string name=\"action_mark_as_unread\">చదవనట్లు గుర్తును పెట్టుము</string>\n    <string name=\"action_mark_as_read\">చదివినట్లు గుర్తును పెట్టుము</string>\n    <string name=\"action_select_inverse\">ఎంపికలను విపరీతమును చేయుము</string>\n    <string name=\"action_select_all\">అన్నిటినీ ఎంచుకోండి</string>\n    <string name=\"action_global_search\">ప్రాపంచిక శోధన</string>\n    <string name=\"action_search_settings\">శోధన అమరికలు</string>\n    <string name=\"action_search\">వెతకండి</string>\n    <string name=\"action_sort_date_added\">జోడించబడిన తేదీ</string>\n    <string name=\"action_sort_latest_chapter\">నూతన అధ్యాయము</string>\n    <string name=\"action_sort_last_read\">చివరిగా చదివినది</string>\n    <string name=\"action_sort_total\">సమస్త అధ్యాయములు</string>\n    <string name=\"action_sort_alpha\">అక్షరక్రమములో</string>\n    <string name=\"action_filter_empty\">ఫిల్టర్ను తొలగించుము</string>\n    <string name=\"action_filter_unread\">చదవనివి</string>\n    <string name=\"action_filter_bookmarked\">గుర్తు ఉంచబడినవి</string>\n    <string name=\"action_filter\">శోధకము</string>\n    <string name=\"action_menu\">వివరాలపట్టిక</string>\n    <string name=\"action_settings\">అమరికలు</string>\n    <string name=\"history\">చరిత్ర</string>\n    <string name=\"track\">కంట కనిపెట్టుట</string>\n    <string name=\"chapters\">అధ్యాయాలు</string>\n    <string name=\"manga\">లైబ్రరీ ఎంట్రీలు</string>\n    <string name=\"categories\">విభాగములు</string>\n    <string name=\"information_empty_category\">మీ దగ్గర ఏ విభాగములు లేవు। మీ గ్రంథాలయాన్ని సరికూర్చుకోడానికి ప్లస్ చిహ్నాన్ని నొక్కి కొత్త దాన్ని సృష్టించుకోండి॥</string>\n    <string name=\"information_empty_library\">మీ గ్రంథాలయము ఖాళీగా ఉన్నది</string>\n    <string name=\"information_no_recent_manga\">ఈ మధ్య మీరు ఏమి చదవలేదు</string>\n    <string name=\"information_no_recent\">కొత్త నవీకరణలు లేవు</string>\n    <string name=\"action_remove\">తొలగించుము</string>\n    <string name=\"action_retry\">మళ్ళీ ప్రయత్నించుము</string>\n    <string name=\"action_next_chapter\">తదుపరి అధ్యాయము</string>\n    <string name=\"action_previous_chapter\">మునుపటి అధ్యాయము</string>\n    <string name=\"action_pause\">తాత్కాలికముగా నిలిపి వేయుము</string>\n    <string name=\"action_view_chapters\">అధ్యాయాములను చూడుము</string>\n    <string name=\"action_edit_cover\">ముఖచిత్రమును సవరించుము</string>\n    <string name=\"action_move_category\">విభాగములను క్రమీకరించుము</string>\n    <string name=\"action_sort_chapter_fetch_date\">పొందబడిన తేదీ</string>\n    <string name=\"action_filter_tracked\">కంట కనిపెట్టబడ్డవి</string>\n    <string name=\"label_default\">ప్రమాణము</string>\n    <string name=\"action_sort_count\">మొత్తం ఎంట్రీలు</string>\n    <string name=\"label_warning\">హెచ్చరిక</string>\n    <string name=\"confirm_lock_change\">మార్పును నిర్ధారించడానికి ప్రమాణీకరించండి</string>\n    <string name=\"action_open_in_browser\">జాలసంచారకములో తెరువుము</string>\n    <string name=\"action_newest\">నూతనమైనది</string>\n    <string name=\"action_webview_refresh\">నవీకరించుము</string>\n    <string name=\"pref_category_reader\">పాఠకము</string>\n    <string name=\"action_start_downloading_now\">దిగుమతిని ఇప్పుడు ప్రారంభించుము</string>\n    <string name=\"pref_category_tracking\">జాడ కనిపెట్టుట</string>\n    <string name=\"action_display_comfortable_grid\">తేలికపాటి వరుస</string>\n    <string name=\"action_display_grid\">ఇమిడ్చిన వరుస</string>\n    <string name=\"action_migrate\">వలస</string>\n    <string name=\"action_display_mode\">ప్రదర్శన ప్రణాలికము</string>\n    <string name=\"action_display_local_badge\">స్థానిక సోర్స్</string>\n    <string name=\"action_start\">మొదలు పెట్టుము</string>\n    <string name=\"action_resume\">పునఃప్రారంభించుము</string>\n    <string name=\"action_open_in_web_view\">\\\"వెబ్ వ్యూ\\\" లో తెరుము</string>\n    <string name=\"action_display\">ప్రదర్శన</string>\n    <string name=\"action_display_list\">జాబితా</string>\n    <string name=\"action_display_show_tabs\">విభాగ మీటలను చూపుము</string>\n    <string name=\"action_display_show_number_of_items\">వస్తు సంఖ్యను చూపుము</string>\n    <string name=\"action_disable\">అశక్త పరుచుము</string>\n    <string name=\"action_pin\">పిన్</string>\n    <string name=\"action_unpin\">పిన్నును తీయుము</string>\n    <string name=\"action_cancel\">రద్దు చెయ్యుము</string>\n    <string name=\"action_cancel_all\">అన్నిటి రద్దు చెయ్యుము</string>\n    <string name=\"cancel_all_for_series\">ఈ ధారావాహిక కొరకు అన్నిటిని రద్దు చెయ్యుము</string>\n    <string name=\"action_sort\">సర్దుము</string>\n    <string name=\"action_order_by_chapter_number\">అధ్యాయము సంఖ్యను బట్టి</string>\n    <string name=\"action_oldest\">అన్నిటికన్నా పురాతనమైనది</string>\n    <string name=\"action_asc\">ఆరోహికము</string>\n    <string name=\"action_move_to_top\">అగ్రమ స్థానానికి జరుపుము</string>\n    <string name=\"action_move_to_bottom\">చిట్ట చివరకు జరుపుము</string>\n    <string name=\"action_share\">పంచుకొనుము</string>\n    <string name=\"action_save\">భద్రపరుచుము</string>\n    <string name=\"action_reset\">పునః స్థాపించుము</string>\n    <string name=\"action_open_log\">విషయ చిట్టాను తెరువుము</string>\n    <string name=\"action_restore\">పునఃస్థాపనను చేయుము</string>\n    <string name=\"action_webview_back\">వెనుకకు</string>\n    <string name=\"action_webview_forward\">ముందుకు</string>\n    <string name=\"loading\">లోడ్ అవుతుంది…</string>\n    <string name=\"app_not_available\">అనువర్తనము అందుబాటులో లేదు</string>\n    <string name=\"pref_category_general\">సామాన్యము</string>\n    <string name=\"pref_category_appearance\">రూపము</string>\n    <string name=\"pref_category_library\">గ్రంథాలయము</string>\n    <string name=\"pref_category_downloads\">దిగుమతులు</string>\n    <string name=\"pref_category_advanced\">ఆధునికము</string>\n    <string name=\"action_display_download_badge\">దిగుమతి చేసిన అధ్యాయములు</string>\n    <string name=\"action_display_language_badge\">భాష</string>\n    <string name=\"pref_category_about\">గురించి</string>\n    <string name=\"pref_category_theme\">వీక్షణము</string>\n    <string name=\"theme_system\">పరికరమును అనుసరించుము</string>\n    <string name=\"theme_light\">ఆపుము</string>\n    <string name=\"theme_dark\">ప్రారంభించుము</string>\n    <string name=\"pref_app_theme\">అనువర్తన వీక్షణము</string>\n    <string name=\"action_order_by_upload_date\">ఎగుమతి తారీఖును బట్టి</string>\n    <string name=\"action_desc\">అవరోహికము</string>\n    <string name=\"action_install\">ప్రతిష్ఠాపించుము</string>\n    <string name=\"action_undo\">పూర్వ స్థితికి వెళ్ళుము</string>\n    <string name=\"theme_monet\">క్రియాశీలము</string>\n    <string name=\"action_show_errors\">తప్పిద వివరములను చూచుటకై నొక్కుము</string>\n    <string name=\"theme_greenapple\">ఆకుపచ్చ సేవఫలము</string>\n    <string name=\"theme_yinyang\">యిన్ మరియు యాంగ్</string>\n    <string name=\"lock_never\">ఎప్పుడూ వద్దు</string>\n    <string name=\"theme_midnightdusk\">సందెచీకటి</string>\n    <string name=\"secure_screen\">తెరను సంరక్షించుము</string>\n    <string name=\"secure_screen_summary\">అనువర్తనములను మారునపుడు వర్తక విషయములను దాయుము మరియు తెర యొక్క చిత్రములను తీయుటను నిరోధించుము</string>\n    <string name=\"hide_notification_content\">సూచన విషయములను దాయుము</string>\n    <string name=\"pref_category_nsfw_content\">పెద్దలకు మాత్రమే (+18) మూలాలు</string>\n    <string name=\"pref_show_nsfw_source\">మూలాలు మరియు పొడిగింపుల జాబితాలలో చూపుము</string>\n    <string name=\"theme_strawberrydaiquiri\">తుప్పపండు</string>\n    <string name=\"theme_tako\">టాకో</string>\n    <string name=\"theme_tealturquoise\">టీల్ మరియు మణి</string>\n    <string name=\"theme_yotsuba\">యోట్సూబ</string>\n    <string name=\"pref_dark_theme_pure_black\">స్వచ్ఛమైన నలుపు వీక్షణ</string>\n    <string name=\"pref_category_security\">భద్రత</string>\n    <string name=\"lock_with_biometrics\">తాళమును తెరుచుట ఆవశ్యకము</string>\n    <string name=\"lock_when_idle\">కార్యచరణము లేనిచో తాళమును వేయుము</string>\n    <string name=\"lock_always\">ఎల్లప్పుడు</string>\n    <string name=\"pref_date_format\">తారీఖు స్వరూపము</string>\n    <string name=\"pref_manage_notifications\">సూచనలను నిర్వహించుము</string>\n    <string name=\"label_stats\">గణాంకాలు</string>\n    <string name=\"label_started\">ప్రారంభించారు</string>\n    <string name=\"action_close\">బంజేయండి</string>\n    <string name=\"action_display_show_continue_reading_button\">చదవడం కొనసాగించే బటన్ చూపియండి</string>\n    <string name=\"label_local\">లోకల్</string>\n    <string name=\"label_downloaded\">డౌన్లోడ్ అయినవి</string>\n    <string name=\"on\">ఓన్</string>\n    <string name=\"action_show_manga\">ఎంట్రీ చూపియండి</string>\n    <string name=\"off\">ఆఫ్</string>\n    <string name=\"action_sort_unread_count\">చదవని లెక్క</string>\n    <string name=\"action_sort_last_manga_update\">చివరి అప్డేట్ తనిఖీ</string>\n    <string name=\"action_remove_everything\">మొత్తం తీసేయండి</string>\n    <string name=\"delete_category_confirmation\">మీరు \\\"%s\\\" క్యాటగిరీ తీసివేయాలి అనుకుంటున్నారా?</string>\n    <string name=\"delete_category\">క్యాటగిరీ తీసేయండి</string>\n    <string name=\"action_move_to_top_all_for_series\">సిరీస్ పైన పెట్టండి</string>\n    <string name=\"action_search_hint\">అన్వేషించండి…</string>\n    <string name=\"action_not_now\">ఇప్పుడు కాదు</string>\n    <string name=\"action_open_random_manga\">ఏదైనా తెరవండి</string>\n    <string name=\"internal_error\">అంతర్గత లోపం: మరింత సమాచారం కోసం క్రాష్ లాగ్‌లను తనిఖీ చేయండి</string>\n    <string name=\"pref_appearance_summary\">థీమ్, తేదీ మరియు సమయ ఆకృతి</string>\n    <string name=\"channel_errors\">లోపాలూ</string>\n    <string name=\"website\">జాలగూడు</string>\n    <string name=\"username\">వాడుకరి పేరు</string>\n    <string name=\"completed\">పూర్తయింది</string>\n    <string name=\"disabled\">అశక్తమైనది</string>\n    <string name=\"licensed\">లైసెన్స్ పొందింది</string>\n    <string name=\"browse\">విహరించండి</string>\n    <string name=\"vertical_viewer\">నిలువు</string>\n    <string name=\"services\">సేవలు</string>\n    <string name=\"password\">గుప్తపదం</string>\n    <string name=\"all\">అన్ని</string>\n    <string name=\"edge_nav\">అంచు</string>\n    <string name=\"latest\">తాజా</string>\n    <string name=\"reading\">చదువుతున్నారు</string>\n    <string name=\"title\">శీర్షిక</string>\n    <string name=\"score\">గణన</string>\n    <string name=\"kindlish_nav\">కిండల్ మాదిరి</string>\n    <string name=\"ongoing\">కొనసాగుతున్నది</string>\n    <string name=\"status\">స్థితి</string>\n    <string name=\"unknown\">తెలియదు</string>\n    <string name=\"none\">ఏమిలేదు</string>\n    <string name=\"version\">సంస్కరణ</string>\n    <string name=\"dropped\">విడిచెను</string>\n    <string name=\"portrait\">చిత్తరువు</string>\n    <string name=\"landscape\">ప్రకృతి దృశ్యం</string>\n    <string name=\"paused\">నిలిపివేయబడింది</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/th/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">หมวดหมู่ %d</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">หลังจาก %1$s นาที</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">ข้ามตอนที่ %d อาจเป็นเพราะหายมาจากแหล่งที่มาหรือถูกกรองออก</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d ตัวติดตาม</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">%1$s ตอน</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">เหลืออีก %1$s รายการ</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">ใช้เวลาไป %1$s โดยมีข้อผิดพลาด %2$s รายการ</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">ตอนที่ %1$s และอีก %2$d ตอน</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d ตอนใหม่</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">มี %d รายการ</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">มีการอัปเดตส่วนขยาย %d รายการพร้อมใช้งาน</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d วันที่ผ่านมา</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">%d ตอนที่ยังไม่ได้อ่านถัดไป</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">%d ตอนถัดไป</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">ไม่พบ %1$s ตอน</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d วัน</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d รีโพ</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/th/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">ชื่อ</string>\n    <string name=\"categories\">หมวดหมู่</string>\n    <string name=\"manga\">รายการคลัง</string>\n    <string name=\"chapters\">ตอน</string>\n    <string name=\"track\">ติดตาม</string>\n    <string name=\"history\">ประวัติ</string>\n    <string name=\"label_settings\">ตั้งค่า</string>\n    <string name=\"label_download_queue\">คิวดาวน์โหลด</string>\n    <string name=\"label_library\">คลัง</string>\n    <string name=\"label_backup\">สำรองข้อมูลและการเรียกคืน</string>\n    <string name=\"label_extensions\">ส่วนขยาย</string>\n    <string name=\"label_extension_info\">ข้อมูลส่วนขยาย</string>\n    <string name=\"action_settings\">ตั้งค่า</string>\n    <string name=\"action_filter\">ตัวกรอง</string>\n    <string name=\"label_recent_updates\">อัปเดต</string>\n    <string name=\"action_filter_unread\">ยังไม่ได้อ่าน</string>\n    <string name=\"action_filter_empty\">นำตัวกรองออก</string>\n    <string name=\"action_sort_alpha\">ตามตัวอักษร</string>\n    <string name=\"action_sort_total\">จำนวนตอน</string>\n    <string name=\"action_sort_last_read\">อ่านล่าสุด</string>\n    <string name=\"action_search\">ค้นหา</string>\n    <string name=\"action_select_all\">เลือกทั้งหมด</string>\n    <string name=\"action_mark_as_read\">ทำเครื่องหมายว่าอ่านแล้ว</string>\n    <string name=\"action_mark_as_unread\">ทำเครื่องหมายว่ายังไม่ได้อ่าน</string>\n    <string name=\"action_download\">ดาวน์โหลด</string>\n    <string name=\"action_delete\">ลบ</string>\n    <string name=\"action_update_library\">อัปเดตคลัง</string>\n    <string name=\"action_edit\">แก้ไข</string>\n    <string name=\"action_add\">เพิ่ม</string>\n    <string name=\"action_add_category\">เพิ่มหมวดหมู่</string>\n    <string name=\"action_edit_categories\">แก้ไขหมวดหมู่</string>\n    <string name=\"action_rename_category\">เปลี่ยนชื่อหมวดหมู่</string>\n    <string name=\"action_edit_cover\">แก้ไขปก</string>\n    <string name=\"action_previous_chapter\">ตอนก่อนหน้า</string>\n    <string name=\"action_next_chapter\">ตอนถัดไป</string>\n    <string name=\"action_retry\">ลองอีกครั้ง</string>\n    <string name=\"action_open_in_browser\">เปิดในเบราว์เซอร์</string>\n    <string name=\"action_display_grid\">ตารางแบบกระชับ</string>\n    <string name=\"action_display_list\">รายการ</string>\n    <string name=\"action_cancel\">ยกเลิก</string>\n    <string name=\"action_install\">ติดตั้ง</string>\n    <string name=\"action_save\">บันทึก</string>\n    <string name=\"action_reset\">รีเซ็ต</string>\n    <string name=\"loading\">กำลังโหลด…</string>\n    <string name=\"pref_category_general\">ทั่วไป</string>\n    <string name=\"pref_category_reader\">ตัวอ่าน</string>\n    <string name=\"pref_category_advanced\">ขั้นสูง</string>\n    <string name=\"pref_category_about\">เกี่ยวกับ</string>\n    <string name=\"update_6hour\">ทุก 6 ชั่วโมง</string>\n    <string name=\"update_12hour\">ทุก 12 ชั่วโมง</string>\n    <string name=\"update_24hour\">ทุกวัน</string>\n    <string name=\"update_48hour\">ทุก 2 วัน</string>\n    <string name=\"update_weekly\">ทุกสัปดาห์</string>\n    <string name=\"all\">ทั้งหมด</string>\n    <string name=\"charging\">ขณะกำลังชาร์จ</string>\n    <string name=\"default_category_summary\">ถามทุกครั้ง</string>\n    <string name=\"ext_update\">อัปเดต</string>\n    <string name=\"ext_install\">ติดตั้ง</string>\n    <string name=\"ext_pending\">รอดำเนินการ</string>\n    <string name=\"ext_downloading\">กำลังดาวน์โหลด</string>\n    <string name=\"ext_installing\">กำลังติดตั้ง</string>\n    <string name=\"ext_installed\">ติดตั้งแล้ว</string>\n    <string name=\"pref_reader_navigation\">การนำทาง</string>\n    <string name=\"pref_reader_theme\">สีพื้นหลัง</string>\n    <string name=\"white_background\">ขาว</string>\n    <string name=\"black_background\">ดำ</string>\n    <string name=\"label_recent_manga\">ประวัติ</string>\n    <string name=\"action_global_search\">ค้นหาทั้งหมด</string>\n    <string name=\"action_mark_previous_as_read\">ตั้งก่อนหน้านี้เป็นอ่านแล้ว</string>\n    <string name=\"label_help\">ช่วยเหลือ</string>\n    <string name=\"label_migration\">โยกย้าย</string>\n    <string name=\"action_filter_bookmarked\">บุ๊คมาร์ค</string>\n    <string name=\"action_bookmark\">บุ๊คมาร์คตอน</string>\n    <string name=\"action_remove_bookmark\">ยกเลิกบุ๊คมาร์คตอน</string>\n    <string name=\"action_move_category\">ตั้งหมวดหมู่</string>\n    <string name=\"action_pause\">หยุดชั่วคราว</string>\n    <string name=\"action_remove\">นำออก</string>\n    <string name=\"action_resume\">ดำเนินการต่อ</string>\n    <string name=\"action_display_mode\">โหมดการแสดงผล</string>\n    <string name=\"action_display\">การแสดงผล</string>\n    <string name=\"action_display_download_badge\">ตอนที่ดาวน์โหลดแล้ว</string>\n    <string name=\"action_sort\">การจัดเรียง</string>\n    <string name=\"action_share\">แบ่งปัน</string>\n    <string name=\"action_undo\">เลิกทำ</string>\n    <string name=\"action_open_log\">เปิดบันทึก</string>\n    <string name=\"action_restore\">เรียกคืน</string>\n    <string name=\"app_not_available\">แอพไม่พร้อมใช้งาน</string>\n    <string name=\"pref_category_downloads\">การดาวน์โหลด</string>\n    <string name=\"pref_category_tracking\">การติดตาม</string>\n    <string name=\"pref_library_columns\">รายการต่อแถว</string>\n    <string name=\"portrait\">แนวตั้ง</string>\n    <string name=\"landscape\">แนวนอน</string>\n    <string name=\"pref_library_update_interval\">การอัปเดตอัตโนมัติ</string>\n    <string name=\"update_never\">ปิด</string>\n    <string name=\"pref_library_update_restriction\">อัปเดตข้อจำกัดของอุปกรณ์โดยอัตโนมัติ</string>\n    <string name=\"pref_update_only_non_completed\">ข้ามรายการที่มีสถานะ \\\"จบแล้ว\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">อัปเดตความคืบหน้าหลังอ่าน</string>\n    <string name=\"default_category\">หมวดหมู่เริ่มต้น</string>\n    <string name=\"ext_trust\">เชื่อถือได้</string>\n    <string name=\"ext_untrusted\">ไม่น่าเชื่อถือ</string>\n    <string name=\"ext_uninstall\">ถอนการติดตั้ง</string>\n    <string name=\"untrusted_extension\">ส่วนขยายที่ไม่น่าเชื่อถือ</string>\n    <string name=\"untrusted_extension_message\">ส่วนขยายที่เป็นอันตรายสามารถอ่านข้อมูลการเข้าสู่ระบบที่จัดเก็บไว้ หรือเรียกใช้โค้ดโดยอำเภอใจ\n\\n\n\\nการเชื่อถือส่วนขยายนี้แสดงว่าคุณยอมรับความเสี่ยงเหล่านี้</string>\n    <string name=\"pref_fullscreen\">เต็มหน้าจอ</string>\n    <string name=\"pref_page_transitions\">แสดงแอนิเมชั่นเมื่อเปลี่ยนหน้า</string>\n    <string name=\"pref_double_tap_anim_speed\">ความเร็วแอนิเมชั่นเมื่อแตะ 2 ครั้ง</string>\n    <string name=\"pref_show_page_number\">แสดงหมายเลขหน้า</string>\n    <string name=\"pref_crop_borders\">ตัดขอบ</string>\n    <string name=\"pref_custom_brightness\">ความสว่างแบบกำหนดเอง</string>\n    <string name=\"pref_custom_color_filter\">ตัวกรองสีแบบกำหนดเอง</string>\n    <string name=\"pref_keep_screen_on\">เปิดหน้าจอไว้ตลอด</string>\n    <string name=\"pref_read_with_volume_keys\">ปุ่มปรับระดับเสียง</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">สลับด้านปุ่มปรับระดับเสียง</string>\n    <string name=\"pref_viewer_type\">โหมดการอ่านเริ่มต้น</string>\n    <string name=\"left_to_right_viewer\">แสดงเป็นหน้า (จากซ้ายไปขวา)</string>\n    <string name=\"right_to_left_viewer\">แสดงเป็นหน้า (จากขวาไปซ้าย)</string>\n    <string name=\"vertical_viewer\">แสดงเป็นหน้า (แนวตั้ง)</string>\n    <string name=\"webtoon_viewer\">หน้ายาว</string>\n    <string name=\"pager_viewer\">แสดงเป็นหน้า</string>\n    <string name=\"pref_image_scale_type\">ชนิดมาตราส่วน</string>\n    <string name=\"scale_type_fit_screen\">พอดีกับหน้าจอ</string>\n    <string name=\"scale_type_stretch\">ยืด</string>\n    <string name=\"scale_type_fit_width\">พอดีกับความกว้าง</string>\n    <string name=\"scale_type_fit_height\">พอดีกับความสูง</string>\n    <string name=\"scale_type_original_size\">ขนาดดั้งเดิม</string>\n    <string name=\"scale_type_smart_fit\">พอดีอัตโนมัติ</string>\n    <string name=\"pref_zoom_start\">ตำแหน่งเริ่มซูม</string>\n    <string name=\"zoom_start_automatic\">อัตโนมัติ</string>\n    <string name=\"zoom_start_left\">ซ้าย</string>\n    <string name=\"zoom_start_right\">ขวา</string>\n    <string name=\"zoom_start_center\">ตรงกลาง</string>\n    <string name=\"double_tap_anim_speed_0\">ไม่มีแอนิเมชั่น</string>\n    <string name=\"double_tap_anim_speed_normal\">ปกติ</string>\n    <string name=\"double_tap_anim_speed_fast\">เร็ว</string>\n    <string name=\"pref_rotation_type\">การหมุนเริ่มต้น</string>\n    <string name=\"rotation_free\">อิสระ</string>\n    <string name=\"rotation_force_portrait\">ล็อกแนวตั้ง</string>\n    <string name=\"rotation_force_landscape\">ล็อกแนวนอน</string>\n    <string name=\"color_filter_r_value\">แดง</string>\n    <string name=\"color_filter_g_value\">เขียว</string>\n    <string name=\"color_filter_b_value\">น้ำเงิน</string>\n    <string name=\"color_filter_a_value\">โปร่งใส</string>\n    <string name=\"pref_remove_after_marked_as_read\">หลังจากทําเครื่องหมายว่าอ่านแล้วด้วยตนเอง</string>\n    <string name=\"pref_remove_after_read\">ลบอัตโนมัติหลังจากที่อ่านแล้ว</string>\n    <string name=\"disabled\">ปิดการใช้งาน</string>\n    <string name=\"last_read_chapter\">ตอนที่อ่านล่าสุด</string>\n    <string name=\"second_to_last\">ตอนรองก่อนตอนที่อ่านล่าสุด</string>\n    <string name=\"third_to_last\">ตอนที่สามก่อนตอนที่อ่านล่าสุด</string>\n    <string name=\"fourth_to_last\">ตอนที่สี่ก่อนตอนที่อ่านล่าสุด</string>\n    <string name=\"fifth_to_last\">ตอนที่ห้าก่อนตอนที่อ่านล่าสุด</string>\n    <string name=\"pref_download_new\">ดาวน์โหลดตอนใหม่</string>\n    <string name=\"services\">ตัวติดตาม</string>\n    <string name=\"pref_create_backup\">สำรองข้อมูล</string>\n    <string name=\"pref_create_backup_summ\">สามารถใช้ในการเรียกคืนค่าคลังปัจจุบัน</string>\n    <string name=\"pref_restore_backup\">เรียกคืนค่าการสำรองข้อมูล</string>\n    <string name=\"pref_restore_backup_summ\">เรียกคืนค่าคลังจากแฟ้มข้อมูลสำรอง</string>\n    <string name=\"pref_backup_interval\">ความถี่ในการสำรองข้อมูลอัตโนมัติ</string>\n    <string name=\"backup_created\">สร้างการสำรองข้อมูลแล้ว</string>\n    <string name=\"restore_completed\">คืนค่าเสร็จสมบูรณ์</string>\n    <string name=\"backup_choice\">ต้องการสำรองข้อมูลใดบ้าง?</string>\n    <string name=\"restoring_backup\">กำลังคืนค่าการสำรองข้อมูล</string>\n    <string name=\"creating_backup\">กำลังสร้างการสำรองข้อมูล</string>\n    <string name=\"pref_clear_chapter_cache\">ล้างแคชตอน</string>\n    <string name=\"used_cache\">ใช้ไปแล้ว: %1$s</string>\n    <string name=\"cache_deleted\">ล้างแคชแล้ว %1$d แฟ้มถูกลบ</string>\n    <string name=\"cache_delete_error\">เกิดข้อผิดพลาดขณะกำลังล้าง</string>\n    <string name=\"pref_clear_cookies\">ล้างคุกกี้</string>\n    <string name=\"cookies_cleared\">ล้างคุกกี้แล้ว</string>\n    <string name=\"pref_clear_database\">ล้างฐานข้อมูล</string>\n    <string name=\"pref_clear_database_summary\">ลบประวัติรายการที่ไม่ได้บันทึกไว้ในคลัง</string>\n    <string name=\"clear_database_completed\">ลบรายการแล้ว</string>\n    <string name=\"version\">เวอร์ชัน</string>\n    <string name=\"pref_enable_acra\">ส่งรายงานความผิดพลาด</string>\n    <string name=\"pref_acra_summary\">ช่วยแก้ไขจุดบกพร่องต่างๆ จะไม่มีการส่งข้อมูลที่สำคัญ</string>\n    <string name=\"login_title\">ลงชื่อเข้าใช้ %1$s</string>\n    <string name=\"username\">ชื่อผู้ใช้</string>\n    <string name=\"password\">รหัสผ่าน</string>\n    <string name=\"login\">ลงชื่อเข้าใช้</string>\n    <string name=\"login_success\">ลงชื่อเข้าใช้แล้ว</string>\n    <string name=\"unknown_error\">ข้อผิดพลาดที่ไม่รู้จัก</string>\n    <string name=\"updating_category\">กำลังอัปเดตหมวดหมู่</string>\n    <string name=\"no_more_results\">ไม่มีผลลัพธ์เพิ่มเติม</string>\n    <string name=\"local_source\">แหล่งที่มาภายในเครื่อง</string>\n    <string name=\"other_source\">อื่น ๆ</string>\n    <string name=\"action_global_search_hint\">ค้นหาทั้งหมด…</string>\n    <string name=\"latest\">ล่าสุด</string>\n    <string name=\"browse\">เรียกดู</string>\n    <string name=\"ongoing\">ยังไม่จบ</string>\n    <string name=\"unknown\">ไม่ระบุ</string>\n    <string name=\"licensed\">มีลิขสิทธิ์แล้ว</string>\n    <string name=\"remove_from_library\">นำออกจากคลัง</string>\n    <string name=\"manga_added_library\">เพิ่มไปยังคลังแล้ว</string>\n    <string name=\"manga_removed_library\">นำออกจากคลังแล้ว</string>\n    <string name=\"delete_downloads_for_manga\">ลบตอนที่ดาวน์โหลดแล้วหรือไม่?</string>\n    <string name=\"copied_to_clipboard\">คัดลอกไปยังคลิปบอร์ดแล้ว:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">ไม่ได้ติดตั้งแหลงที่มา: %1$s</string>\n    <string name=\"display_mode_chapter\">ตอนที่ %1$s</string>\n    <string name=\"chapter_downloading_progress\">กำลังดาวน์โหลด (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">เกิดข้อผิดพลาด</string>\n    <string name=\"chapter_paused\">หยุดชั่วคราว</string>\n    <string name=\"show_title\">ชื่อตามแหล่งที่มา</string>\n    <string name=\"show_chapter_number\">หมายเลขตอน</string>\n    <string name=\"sort_by_source\">ตามแหล่งที่มา</string>\n    <string name=\"sort_by_number\">ตามหมายเลขตอน</string>\n    <string name=\"manga_download\">ดาวน์โหลด</string>\n    <string name=\"download_unread\">ที่ยังไม่ได้อ่าน</string>\n    <string name=\"confirm_delete_chapters\">แน่ใจหรือไม่ว่าต้องการลบตอนที่เลือก?</string>\n    <string name=\"manga_tracking_tab\">การติดตาม</string>\n    <string name=\"reading\">กำลังอ่าน</string>\n    <string name=\"completed\">จบแล้ว</string>\n    <string name=\"dropped\">ดรอป</string>\n    <string name=\"on_hold\">พักไว้</string>\n    <string name=\"plan_to_read\">วางแผนที่จะอ่าน</string>\n    <string name=\"repeating\">อ่านอีกครั้ง</string>\n    <string name=\"score\">คะแนน</string>\n    <string name=\"pref_read_with_long_tap\">แสดงการกระทำเมื่อแตะค้าง</string>\n    <string name=\"action_open_in_web_view\">เปิดใน WebView</string>\n    <string name=\"pref_skip_read_chapters\">ข้ามตอนที่ทำเครื่องหมายว่าอ่านแล้ว</string>\n    <string name=\"pref_color_filter_mode\">โหมดผสมตัวกรองสี</string>\n    <string name=\"filter_mode_overlay\">ซ้อนทับ</string>\n    <string name=\"filter_mode_screen\">สกรีน</string>\n    <string name=\"filter_mode_lighten\">ดอดจ์ / สว่างขึ้น</string>\n    <string name=\"no_results_found\">ไม่พบผลลัพธ์</string>\n    <string name=\"title\">ชื่อเรื่อง</string>\n    <string name=\"status\">สถานะ</string>\n    <string name=\"track_status\">สถานะ</string>\n    <string name=\"track_type\">ประเภท</string>\n    <string name=\"error_category_exists\">หมวดหมู่ที่มีชื่อนี้มีอยู่แล้ว!</string>\n    <string name=\"snack_categories_deleted\">หมวดหมู่ถูกลบแล้ว</string>\n    <string name=\"dialog_with_checkbox_remove_description\">การดำเนินการนี้จะลบวันที่อ่านของตอนนี้ คุณแน่ใจไหม?</string>\n    <string name=\"dialog_with_checkbox_reset\">รีเซ็ตตอนทั้งหมดสำหรับรายการนี้</string>\n    <string name=\"snack_add_to_library\">เพิ่มไปยังคลัง?</string>\n    <string name=\"picture_saved\">บันทึกรูปภาพแล้ว</string>\n    <string name=\"custom_filter\">ตัวกรอง</string>\n    <string name=\"set_as_cover\">ตั้งเป็นปก</string>\n    <string name=\"cover_updated\">อัปเดตปกแล้ว</string>\n    <string name=\"chapter_progress\">หน้า: %1$d</string>\n    <string name=\"no_next_chapter\">ไม่พบตอนถัดไป</string>\n    <string name=\"decode_image_error\">ไม่สามารถโหลดภาพนี้ได้</string>\n    <string name=\"confirm_set_image_as_cover\">ใช้ภาพนี้เป็นรูปปก?</string>\n    <string name=\"transition_finished\">อ่านจบแล้ว:</string>\n    <string name=\"transition_current\">ปัจจุบัน:</string>\n    <string name=\"transition_next\">ตอนถัดไป:</string>\n    <string name=\"transition_previous\">ก่อนหน้า:</string>\n    <string name=\"transition_no_next\">ไม่มีตอนต่อไป</string>\n    <string name=\"transition_no_previous\">ไม่มีตอนก่อนหน้านี้</string>\n    <string name=\"transition_pages_loading\">กำลังโหลดหน้า …</string>\n    <string name=\"transition_pages_error\">ไม่สามารถโหลดหน้า: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">เลือกข้อมูลที่จะรวมไว้</string>\n    <string name=\"migrate\">โยกย้าย</string>\n    <string name=\"copy\">คัดลอก</string>\n    <string name=\"download_queue_error\">ไม่สามารถดาวน์โหลดตอน สามารถลองอีกครั้งได้ในส่วนการดาวน์โหลด</string>\n    <string name=\"notification_new_chapters\">พบตอนใหม่</string>\n    <string name=\"notification_cover_update_failed\">อัปเดตหน้าปกล้มเหลว</string>\n    <string name=\"notification_first_add_to_library\">เพิ่มรายการไปยังในคลังก่อนที่จะดำเนินการนี้</string>\n    <string name=\"file_select_cover\">เลือกภาพหน้าปก</string>\n    <string name=\"file_select_backup\">เลือกแฟ้มข้อมูลสำรอง</string>\n    <string name=\"update_check_confirm\">ดาวน์โหลด</string>\n    <string name=\"update_check_no_new_updates\">ไม่มีการอัปเดตใหม่</string>\n    <string name=\"update_check_notification_download_in_progress\">กำลังดาวน์โหลด…</string>\n    <string name=\"update_check_notification_download_complete\">แตะเพื่อติดตั้งการอัปเดต</string>\n    <string name=\"update_check_notification_download_error\">เกิดข้อผิดพลาดในการดาวน์โหลด</string>\n    <string name=\"update_check_notification_update_available\">มีเวอร์ชั่นใหม่!</string>\n    <string name=\"information_no_downloads\">ไม่มีการดาวน์โหลด</string>\n    <string name=\"information_no_recent\">ไม่มีอัปเดตล่าสุด</string>\n    <string name=\"information_no_recent_manga\">ไม่มีอะไรที่อ่านเมื่อเร็ว ๆ นี้</string>\n    <string name=\"information_empty_library\">คลังว่างเปล่า</string>\n    <string name=\"information_empty_category\">ไม่มีหมวดหมู่ แตะปุ่มบวกเพื่อสร้างปุ่มสำหรับจัดระเบียบคลัง</string>\n    <string name=\"download_notifier_downloader_title\">ตัวดาวน์โหลด</string>\n    <string name=\"download_notifier_title_error\">เกิดข้อผิดพลาด</string>\n    <string name=\"download_notifier_unknown_error\">ไม่สามารถดาวน์โหลดตอนได้เนื่องจากข้อผิดพลาดที่ไม่คาดคิด</string>\n    <string name=\"download_notifier_text_only_wifi\">ไม่มีการเชื่อมต่อ Wi-Fi</string>\n    <string name=\"download_notifier_no_network\">ไม่มีการเชื่อมต่อเครือข่าย</string>\n    <string name=\"download_notifier_download_paused\">การดาวน์โหลดหยุดชั่วคราว</string>\n    <string name=\"channel_common\">ทั่วไป</string>\n    <string name=\"filter_mode_multiply\">หลากหลาย</string>\n    <string name=\"filter_mode_darken\">เบิร์น / มืดขึ้น</string>\n    <string name=\"migration_selection_prompt\">เลือกแหล่งที่มาที่จะย้ายจาก</string>\n    <string name=\"pref_remove_bookmarked_chapters\">อนุญาตให้ลบตอนที่บุ๊คมาร์คไว้</string>\n    <string name=\"pref_category_delete_chapters\">การลบตอน</string>\n    <string name=\"pref_always_show_chapter_transition\">แสดงการเปลี่ยนผ่านตอนเสมอ</string>\n    <string name=\"rotation_landscape\">แนวนอน</string>\n    <string name=\"rotation_portrait\">แนวตั้ง</string>\n    <string name=\"nav_zone_left\">ซ้าย</string>\n    <string name=\"nav_zone_prev\">ก่อนหน้า</string>\n    <string name=\"right_and_left_nav\">ขวาและซ้าย</string>\n    <string name=\"kindlish_nav\">เหมือน Kindle</string>\n    <string name=\"l_nav\">รูปตัว L</string>\n    <string name=\"automatic_background\">อัตโนมัติ</string>\n    <string name=\"gray_background\">เทา</string>\n    <string name=\"pref_create_folder_per_manga_summary\">สร้างโฟลเดอร์ตามชื่อเรื่องของรายการ</string>\n    <string name=\"pref_create_folder_per_manga\">บันทึกแต่ละหน้าลงในโฟลเดอร์ที่แยกต่างหาก</string>\n    <string name=\"pref_reader_actions\">การกระทำ</string>\n    <string name=\"tapping_inverted_both\">ทั้งสอง</string>\n    <string name=\"tapping_inverted_vertical\">แนวตั้ง</string>\n    <string name=\"tapping_inverted_horizontal\">แนวนอน</string>\n    <string name=\"tapping_inverted_none\">ไม่มี</string>\n    <string name=\"pref_read_with_tapping_inverted\">กลับด้านโซนการแตะ</string>\n    <string name=\"pref_skip_filtered_chapters\">ข้ามตอนที่กรองไว้</string>\n    <string name=\"pref_grayscale\">โทนสีเทา</string>\n    <string name=\"pref_show_reading_mode_summary\">แสดงโหมดปัจจุบันสั้น ๆ เมื่อตัวอ่านเปิดขั้นมา</string>\n    <string name=\"pref_show_reading_mode\">แสดงโหมดการอ่าน</string>\n    <string name=\"pref_cutout_short\">แสดงเนื้อหาในพื้นที่ตัดออก</string>\n    <string name=\"pref_dual_page_invert_summary\">หากการจัดวางการแยกหน้ากว้างไม่ตรงกับทิศทางการอ่าน</string>\n    <string name=\"pref_dual_page_invert\">แยกส่วนหน้ากว้างแบบสลับตำแหน่ง</string>\n    <string name=\"pref_dual_page_split\">แยกส่วนหน้ากว้าง</string>\n    <string name=\"pref_show_navigation_mode_summary\">แสดงครู่หนึ่งเมื่อเปิดตัวอ่าน</string>\n    <string name=\"pref_show_navigation_mode\">แสดงตำแหน่งโซนการแตะ</string>\n    <string name=\"ext_nsfw_warning\">แหล่งที่มาจากส่วนขยายนี้อาจมีเนื้อหา NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"obsolete_extension_message\">ส่วนขยายนี้ไม่สามารถใช้ได้อีกต่อไป แอปอาจทำงานไม่ถูกต้องและอาจทำให้เกิดปัญหากับแอปได้ ขอแนะนำให้ถอนการติดตั้งออก</string>\n    <string name=\"ext_obsolete\">ล้าสมัย</string>\n    <string name=\"ext_updates_pending\">อัปเดตที่รอดำเนินการ</string>\n    <string name=\"exclude\">ที่ยกเว้นไว้: %s</string>\n    <string name=\"include\">ที่รวมไว้: %s</string>\n    <string name=\"none\">ไม่มี</string>\n    <string name=\"pref_library_update_categories_details\">รายการในหมวดหมู่ที่ยกเว้นจะไม่ได้รับการอัปเดตแม้ว่าจะอยู่ในหมวดหมู่ที่รวมอยู่ด้วยก็ตาม</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">ตรวจสอบหน้าปกและรายละเอียดใหม่เมื่ออัปเดตคลัง</string>\n    <string name=\"pref_library_update_refresh_metadata\">โหลดข้อมูลเมตาใหม่โดยอัตโนมัติ</string>\n    <string name=\"pref_category_library_update\">อัปเดตทั้งหมด</string>\n    <string name=\"pref_category_display\">การแสดงผล</string>\n    <string name=\"parental_controls_info\">นี่ไม่ได้เป็นการป้องกันไม่ให้ส่วนขยายที่ไม่เป็นทางการ หรือที่อาจถูกตั้งค่าสถานะไม่ถูกต้อง ให้แสดงเนื้อหา NSFW (18+) ภายในแอป</string>\n    <string name=\"pref_show_nsfw_source\">แสดงในรายการแหล่งข้อมูลและส่วนขยาย</string>\n    <string name=\"pref_category_nsfw_content\">แหล่งที่มา NSFW (18+)</string>\n    <string name=\"hide_notification_content\">ซ่อนเนื้อหาการแจ้งเตือน</string>\n    <string name=\"secure_screen_summary\">หน้าจอปลอดภัยจะซ่อนเนื้อหาของแอปเมื่อสลับแอปและกันไม่ให้ถ่ายภาพหน้าจอ</string>\n    <string name=\"secure_screen\">หน้าจอความปลอดภัย</string>\n    <string name=\"lock_never\">ไม่เลย</string>\n    <string name=\"lock_always\">ตลอด</string>\n    <string name=\"lock_when_idle\">ล็อกเมื่อไม่ได้ใช้งาน</string>\n    <string name=\"lock_with_biometrics\">จำเป็นต้องปลดล็อก</string>\n    <string name=\"pref_category_security\">ความปลอดภัยและความเป็นส่วนตัว</string>\n    <string name=\"pref_manage_notifications\">จัดการการแจ้งเตือน</string>\n    <string name=\"pref_date_format\">รูปแบบวันที่</string>\n    <string name=\"theme_dark\">มืด</string>\n    <string name=\"theme_light\">สว่าง</string>\n    <string name=\"theme_system\">ระบบ</string>\n    <string name=\"pref_category_theme\">ธีม</string>\n    <string name=\"pref_category_library\">คลัง</string>\n    <string name=\"action_webview_refresh\">โหลดซ้ำ</string>\n    <string name=\"action_webview_forward\">ไปข้างหน้า</string>\n    <string name=\"action_webview_back\">กลับ</string>\n    <string name=\"action_show_errors\">แตะเพื่อดูรายละเอียด</string>\n    <string name=\"action_move_to_bottom\">ย้ายไปด้านล่าง</string>\n    <string name=\"action_move_to_top\">ย้ายไปด้านบน</string>\n    <string name=\"action_desc\">มากไปน้อย</string>\n    <string name=\"action_asc\">น้อยไปมาก</string>\n    <string name=\"action_oldest\">เก่าสุด</string>\n    <string name=\"action_newest\">ล่าสุด</string>\n    <string name=\"action_order_by_chapter_number\">ตามเลขตอน</string>\n    <string name=\"action_order_by_upload_date\">ตามวันที่อัปโหลด</string>\n    <string name=\"cancel_all_for_series\">ยกเลิกทั้งหมดสำหรับเรื่องนี้</string>\n    <string name=\"action_cancel_all\">ยกเลิกทั้งหมด</string>\n    <string name=\"action_unpin\">ยกเลิกการตรึง</string>\n    <string name=\"action_pin\">ตรึง</string>\n    <string name=\"action_disable\">ปิดการใช้งาน</string>\n    <string name=\"action_display_show_number_of_items\">แสดงจำนวน</string>\n    <string name=\"action_display_show_tabs\">แสดงแท็บหมวดหมู่</string>\n    <string name=\"action_display_comfortable_grid\">ตารางแบบเต็มที</string>\n    <string name=\"action_migrate\">โยกย้าย</string>\n    <string name=\"action_start\">เริ่ม</string>\n    <string name=\"action_view_chapters\">ดูตอน</string>\n    <string name=\"action_disable_all\">ปิดใช้งานทั้งหมด</string>\n    <string name=\"action_enable_all\">เปิดใช้งานทั้งหมด</string>\n    <string name=\"action_select_inverse\">สลับการเลือก</string>\n    <string name=\"action_search_settings\">ตั้งค่าการค้นหา</string>\n    <string name=\"action_sort_date_added\">วันที่เพิ่ม</string>\n    <string name=\"action_sort_chapter_fetch_date\">วันที่ดึงข้อมูลตอน</string>\n    <string name=\"action_sort_latest_chapter\">ตอนล่าสุด</string>\n    <string name=\"action_filter_tracked\">ติดตามแล้ว</string>\n    <string name=\"action_menu\">เมนู</string>\n    <string name=\"label_sources\">แหล่งที่มา</string>\n    <string name=\"label_more\">เพิ่มเติม</string>\n    <string name=\"pref_webtoon_side_padding\">ช่องว่างด้านข้าง</string>\n    <string name=\"pref_category_reading\">การอ่าน</string>\n    <string name=\"pref_category_reading_mode\">โหมดการอ่าน</string>\n    <string name=\"rotation_type\">การหมุน</string>\n    <string name=\"pref_viewer_nav\">โซนการแตะ</string>\n    <string name=\"vertical_plus_viewer\">หน้ายาวแยกช่องว่าง</string>\n    <string name=\"nav_zone_right\">ขวา</string>\n    <string name=\"nav_zone_next\">ถัดไป</string>\n    <string name=\"edge_nav\">ขอบ</string>\n    <string name=\"migration_help_guide\">คู่มือการโยกย้ายแหล่งที่มา</string>\n    <string name=\"clear_history_confirmation\">แน่ใจไหม? ประวัติทั้งหมดจะหายไป</string>\n    <string name=\"clear_history_completed\">ลบประวัติแล้ว</string>\n    <string name=\"pref_clear_history\">ล้างประวัติ</string>\n    <string name=\"recent_manga_time\">ตอน %1$s - %2$s</string>\n    <string name=\"updating_library\">กำลังอัปเดตคลัง</string>\n    <string name=\"loader_not_implemented_error\">ไม่พบแหล่งที่มา</string>\n    <string name=\"page_list_empty_error\">ไม่พบหน้า</string>\n    <string name=\"viewer\">โหมดการอ่าน</string>\n    <string name=\"pref_category_for_this_series\">สำหรับเรื่องนี้</string>\n    <string name=\"share_page_info\">%1$s: %2$s, หน้า %3$d</string>\n    <string name=\"myanimelist_relogin\">กรุณาเข้าสู่ระบบ MAL อีกครั้ง</string>\n    <string name=\"track_finished_reading_date\">วันที่อ่านจบ</string>\n    <string name=\"track_started_reading_date\">วันที่เริ่มอ่าน</string>\n    <string name=\"paused\">หยุดชั่วคราว</string>\n    <string name=\"add_tracking\">เพิ่มการติดตาม</string>\n    <string name=\"no_chapters_error\">ไม่พบตอน</string>\n    <string name=\"set_chapter_settings_as_default\">ตั้งเป็นค่าเริ่มต้น</string>\n    <string name=\"also_set_chapter_settings_for_library\">นําไปใช้กับรายการทั้งหมดในคลังด้วย</string>\n    <string name=\"confirm_set_chapter_settings\">แน่ใจหรือไม่ว่าต้องการบันทึกการตั้งค่าเหล่านี้เป็นค่าเริ่มต้น?</string>\n    <string name=\"chapter_settings\">การตั้งค่าตอน</string>\n    <string name=\"sort_by_upload_date\">ตามวันที่อัปโหลด</string>\n    <string name=\"clipboard_copy_error\">ไม่สามารถคัดลอกไปยังคลิปบอร์ด</string>\n    <string name=\"manga_info_collapse\">น้อยลง</string>\n    <string name=\"manga_info_expand\">เพิ่มเติม</string>\n    <string name=\"in_library\">อยู่ในคลัง</string>\n    <string name=\"add_to_library\">เพิ่มไปยังคลัง</string>\n    <string name=\"unknown_status\">ไม่ระบุสถานะ</string>\n    <string name=\"unknown_author\">ไม่ทราบผู้แต่ง</string>\n    <string name=\"no_pinned_sources\">ไม่มีแหล่งที่มาที่ตรึงไว้</string>\n    <string name=\"local_source_help_guide\">คู่มือแหล่งที่มาภายในเครื่อง</string>\n    <string name=\"action_global_search_query\">ค้นหา \\\"%1$s\\\" ในทั้งหมด</string>\n    <string name=\"pinned_sources\">ที่ตรึงไว้</string>\n    <string name=\"last_used_source\">ใช้ล่าสุด</string>\n    <string name=\"tabs_header\">แท็บ</string>\n    <string name=\"downloaded_chapters\">ตอนที่ดาวน์โหลดแล้ว</string>\n    <string name=\"manga_from_library\">จากคลัง</string>\n    <string name=\"logout_success\">ออกจากระบบแล้ว</string>\n    <string name=\"logout\">ออกจากระบบ</string>\n    <string name=\"logout_title\">ออกจากระบบจาก %1$s?</string>\n    <string name=\"email\">ที่อยู่อีเมล</string>\n    <string name=\"downloaded_only_summary\">กรองรายการทั้งหมดในคลังของคุณ</string>\n    <string name=\"notification_incognito_text\">ปิดใช้งานโหมดไม่ระบุตัวตน</string>\n    <string name=\"pref_incognito_mode_summary\">หยุดประวัติการอ่านชั่วคราว</string>\n    <string name=\"pref_incognito_mode\">โหมดไม่ระบุตัวตน</string>\n    <string name=\"label_downloaded_only\">ดาวน์โหลดแล้วเท่านั้น</string>\n    <string name=\"updated_version\">อัปเดตเป็น v%1$s แล้ว</string>\n    <string name=\"check_for_updates\">ตรวจสอบการอัปเดต</string>\n    <string name=\"licenses\">ใบอนุญาตโอเพ่นซอร์ส</string>\n    <string name=\"whats_new\">มีอะไรใหม่</string>\n    <string name=\"website\">เว็บไซต์</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">ไม่สามารถเปิดการตั้งค่าอุปกรณ์</string>\n    <string name=\"battery_optimization_disabled\">การเพิ่มประสิทธิภาพแบตเตอรี่ถูกปิดใช้งานอยู่แล้ว</string>\n    <string name=\"pref_disable_battery_optimization_summary\">ช่วยในการอัปเดตและสำรองข้อมูลคลังในพื้นหลัง</string>\n    <string name=\"pref_disable_battery_optimization\">ปิดการใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่</string>\n    <string name=\"pref_dump_crash_logs_summary\">บันทึกบันทึกข้อผิดพลาดลงในแฟ้มเพื่อแบ่งปันกับผู้พัฒนา</string>\n    <string name=\"pref_dump_crash_logs\">แบ่งปันบันทึกข้อขัดข้อง</string>\n    <string name=\"pref_refresh_library_covers\">โหลดปกในคลังใหม่</string>\n    <string name=\"label_data\">ข้อมูล</string>\n    <string name=\"requires_app_restart\">ต้องรีสตาร์ทแอปจึงจะมีผล</string>\n    <string name=\"pref_dns_over_https\">DNS ผ่าน HTTPS (DoH)</string>\n    <string name=\"label_network\">เครือข่าย</string>\n    <string name=\"restoring_backup_canceled\">ยกเลิกการคืนค่า</string>\n    <string name=\"restoring_backup_error\">การคืนค่าข้อมูลสำรองล้มเหลว</string>\n    <string name=\"restore_in_progress\">การคืนค่ากําลังดําเนินการอยู่แล้ว</string>\n    <string name=\"creating_backup_error\">การสำรองข้อมูลล้มเหลว</string>\n    <string name=\"backup_in_progress\">การสำรองข้อมูลกําลังดําเนินการอยู่แล้ว</string>\n    <string name=\"restore_duration\">%1$02d นาที %2$02d วินาที</string>\n    <string name=\"backup_restore_content_full\">คุณจะต้องติดตั้งส่วนขยายที่ขาดหายไปและลงชื่อเข้าใช้บริการติดตามจึงจะสามารถใช้งานได้</string>\n    <string name=\"backup_restore_missing_trackers\">ตัวติดตามไม่ได้เข้าสู่ระบบ:</string>\n    <string name=\"backup_restore_missing_sources\">แหล่งที่มาที่หายไป:</string>\n    <string name=\"invalid_backup_file_missing_manga\">แฟ้มสํารองข้อมูลไม่มีรายการคลังใด ๆ</string>\n    <string name=\"invalid_backup_file\">ข้อมูลสำรองไม่ถูกต้อง:</string>\n    <string name=\"tracking_info\">ซิงค์ทางเดียวเพื่ออัปเดตความคืบหน้าของตอนกับตัวติดตามภายนอก ตั้งค่าการติดตามรายการในแต่ละรายการได้จากปุ่มติดตาม</string>\n    <string name=\"pref_download_new_categories_details\">รายการในหมวดหมู่ที่ยกเว้นไว้จะไม่ถูกดาวน์โหลดแม้ว่าจะอยู่ในหมวดหมู่ที่รวมอยู่ด้วยก็ตาม</string>\n    <string name=\"pref_category_auto_download\">ดาวน์โหลดอัตโนมัติ</string>\n    <string name=\"download_insufficient_space\">ไม่สามารถดาวน์โหลดตอนได้เนื่องจากพื้นที่จัดเก็บเหลือน้อย</string>\n    <string name=\"update_check_eol\">ไม่รองรับ Android เวอร์ชันนี้อีกต่อไป</string>\n    <string name=\"file_picker_error\">ไม่พบแอปเลือกแฟ้ม</string>\n    <string name=\"notification_chapters_multiple\">ตอนที่ %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">ตอนที่ %1$s และอีก %2$d ตอน</string>\n    <string name=\"notification_chapters_single\">ตอนที่ %1$s</string>\n    <string name=\"spen_previous_page\">หน้าก่อน</string>\n    <string name=\"channel_ext_updates\">การอัปเดตส่วนขยาย</string>\n    <string name=\"channel_new_chapters\">อัปเดตตอน</string>\n    <string name=\"channel_errors\">ข้อผิดพลาด</string>\n    <string name=\"channel_complete\">เสร็จสมบูรณ์</string>\n    <string name=\"channel_progress\">ความคืบหน้า</string>\n    <string name=\"chapter_settings_updated\">อัปเดตการตั้งค่าตอนเริ่มต้นแล้ว</string>\n    <string name=\"information_webview_outdated\">โปรดอัปเดตแอพ WebView เพื่อความเข้ากันได้ที่ดีขึ้น</string>\n    <string name=\"information_webview_required\">แอปจำเป็นต้องใช้ WebView เพื่อให้ทำงานได้</string>\n    <string name=\"information_cloudflare_bypass_failure\">ไม่สามารถเลี่ยงผ่าน Cloudflare ได้</string>\n    <string name=\"information_empty_category_dialog\">คุณยังไม่มีหมวดหมู่</string>\n    <string name=\"confirm_lock_change\">ยืนยันการเปลี่ยนแปลง</string>\n    <string name=\"relative_time_today\">วันนี้</string>\n    <string name=\"pref_update_only_completely_read\">ข้ามรายการที่มีตอนที่ยังไม่ได้อ่าน</string>\n    <string name=\"off\">ปิด</string>\n    <string name=\"on\">เปิด</string>\n    <string name=\"save_chapter_as_cbz\">บันทึกเป็นแฟ้ม CBZ</string>\n    <string name=\"privacy_policy\">นโยบายความเป็นส่วนตัว</string>\n    <string name=\"library_errors_help\">สำหรับความช่วยเหลือเกี่ยวกับวิธีการแก้ไขข้อผิดพลาดในการอัปเดตคลัง ไปยัง %1$s</string>\n    <string name=\"local_filter_order_by\">เรียงตาม</string>\n    <string name=\"date\">วันที่</string>\n    <string name=\"categorized_display_settings\">การตั้งค่าการจัดเรียงตามหมวดหมู่</string>\n    <string name=\"ext_install_service_notif\">กำลังติดตั้งส่วนขยาย…</string>\n    <string name=\"pref_hide_threshold\">ความเร็วในการซ่อนเมนูบนเมื่อเลื่อน</string>\n    <string name=\"restore_miui_warning\">การสำรอง/กู้คืนอาจทำงานไม่ถูกต้องหากปิดใช้งานการเพิ่มประสิทธิภาพ MIUI</string>\n    <string name=\"label_background_activity\">กิจกรรมเบื้องหลัง</string>\n    <string name=\"error_no_match\">ไม่พบรายการที่ตรงกัน</string>\n    <string name=\"getting_started_guide\">คู่มือเริ่มต้นใช้งาน</string>\n    <string name=\"spen_next_page\">หน้าถัดไป</string>\n    <string name=\"ext_update_all\">อัปเดตทั้งหมด</string>\n    <string name=\"ext_installer_pref\">ตัวติดตั้ง</string>\n    <string name=\"ext_installer_legacy\">แบบเก่า</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ไม่ทำงาน</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">ติดตั้งและเริ่ม Shizuku เพื่อใช้ Shizuku เป็นตัวติดตั้งส่วนขยาย</string>\n    <string name=\"action_track\">ติดตาม</string>\n    <string name=\"chapter_not_found\">ไม่พบตอน</string>\n    <string name=\"cover_saved\">บันทึกปกแล้ว</string>\n    <string name=\"error_saving_cover\">ผิดพลาดในการบันทึกปก</string>\n    <string name=\"source_unsupported\">ไม่รองรับแหล่งที่มานี้</string>\n    <string name=\"channel_app_updates\">แอพอัปเดต</string>\n    <string name=\"label_default\">ค่าเริ่มต้น</string>\n    <string name=\"error_sharing_cover\">ผิดพลาดในการแบ่งปันปก</string>\n    <string name=\"action_start_downloading_now\">เริ่มดาวน์โหลดเลย</string>\n    <string name=\"enhanced_services\">ตัวติดตามขั้นสูง</string>\n    <string name=\"backup_info\">ควรเก็บสำเนาของข้อมูลสำรองไว้ที่อื่นด้วยเช่นกัน การสำรองข้อมูลอาจมีข้อมูลที่ละเอียดอ่อนรวมถึงรหัสผ่านที่เก็บไว้ ควรระวังหากแบ่งปันสำเนา</string>\n    <string name=\"pref_verbose_logging_summary\">บันทึกบันทึกอย่างละเอียดไปยังบันทึกของระบบ (ลดประสิทธิภาพของแอป)</string>\n    <string name=\"help_translate\">แปลเป็นภาษาไทยโดย altqx</string>\n    <string name=\"local_invalid_format\">รูปแบบตอนไม่ถูกต้อง</string>\n    <string name=\"manga_cover\">ปก</string>\n    <string name=\"unread\">ยังไม่ได้อ่าน</string>\n    <string name=\"pref_inverted_colors\">สลับสี</string>\n    <string name=\"action_sort_count\">รายการทั้งหมด</string>\n    <string name=\"pref_tablet_ui_mode\">UI แท็บเล็ต</string>\n    <string name=\"clear_database_source_item_count\">มี %1$d รายการ ที่ไม่ได้อยู่ในคลังในฐานข้อมูล</string>\n    <string name=\"database_clean\">ไม่มีอะไรให้ต้องล้าง</string>\n    <string name=\"about_dont_kill_my_app\">ผู้ผลิตบางรายมีข้อจำกัดเพิ่มเติมของแอปที่ปิดบริการพื้นหลัง เว็บไซต์นี้มีข้อมูลเพิ่มเติมเกี่ยวกับวิธีการแก้ไข</string>\n    <string name=\"pref_verbose_logging\">การบันทึกอย่างละเอียด</string>\n    <string name=\"pref_category_appearance\">ลักษณะ</string>\n    <string name=\"pref_app_theme\">ธีมแอพ</string>\n    <string name=\"theme_monet\">ไดนามิก</string>\n    <string name=\"theme_greenapple\">กรีนแอปเปิ้ล</string>\n    <string name=\"theme_midnightdusk\">มิดไนท์ดัสก์</string>\n    <string name=\"pref_low\">ช้า</string>\n    <string name=\"pref_lowest\">ช้ามาก</string>\n    <string name=\"pref_highest\">เร็วที่สุด</string>\n    <string name=\"pref_high\">เร็ว</string>\n    <string name=\"tracking_guide\">คู่มือการติดตาม</string>\n    <string name=\"pref_remove_exclude_categories\">หมวดหมู่ที่ยกเว้นไว้</string>\n    <string name=\"enhanced_tracking_info\">ใช้สำหรับเฉพาะบางแหล่งที่มา รายการจะถูกติดตามโดยอัตโนมัติเมื่อเพิ่มลงในคลัง</string>\n    <string name=\"ext_app_info\">ข้อมูลแอพ</string>\n    <string name=\"extension_api_error\">เกิดข้อผิดพลาดในการดึงรายการส่วนขยายที่พร้อมใช้งาน</string>\n    <string name=\"pref_auto_clear_chapter_cache\">ล้างแคชตอนในเมื่อเปิดแอพ</string>\n    <string name=\"label_warning\">คำเตือน</string>\n    <string name=\"action_display_local_badge\">แหล่งที่มาในเครื่อง</string>\n    <string name=\"action_display_language_badge\">ภาษา</string>\n    <string name=\"theme_strawberrydaiquiri\">สตรอว์เบอร์รีแด๊กเคอรี่</string>\n    <string name=\"theme_tako\">ทาโกะ</string>\n    <string name=\"theme_tealturquoise\">ทีลและเทอร์ควอยซ์</string>\n    <string name=\"theme_yinyang\">หยินหยาง</string>\n    <string name=\"theme_yotsuba\">โยทซึบะ</string>\n    <string name=\"pref_dark_theme_pure_black\">โหมดมืดดำสนิท</string>\n    <string name=\"update_72hour\">ทุก 3 วัน</string>\n    <string name=\"restrictions\">ข้อจำกัด: %s</string>\n    <string name=\"connected_to_wifi\">เฉพาะขณะเชื่อมต่อ Wi-Fi</string>\n    <string name=\"download_queue_size_warning\">คำเตือน: การดาวน์โหลดจำนวนมากอาจทำให้แหล่งที่มาทำงานช้าลงและ/หรือปิดกั้น %s แตะเพื่อเรียนรู้เพิ่มเติม</string>\n    <string name=\"notification_size_warning\">การอัปเดตจำนวนมากเป็นอันตรายต่อแหล่งที่มาและอาจทำให้การอัปเดตช้าลงและใช้งานแบตเตอรี่เพิ่มขึ้น แตะเพื่อเรียนรู้เพิ่มเติม</string>\n    <string name=\"publishing_finished\">เผยแพร่จบแล้ว</string>\n    <string name=\"cancelled\">ถูกยกเลิก</string>\n    <string name=\"on_hiatus\">อยู่ระหว่างพัก</string>\n    <string name=\"pref_navigate_pan\">แพนหน้ากว้าง</string>\n    <string name=\"action_display_cover_only_grid\">ตารางแสดงแค่หน้าปก</string>\n    <string name=\"pref_landscape_zoom\">ซูมภาพกว้างโดยอัตโนมัติ</string>\n    <string name=\"skipped_reason_not_caught_up\">ถูกข้ามเนื่องจากมีตอนที่ยังไม่ได้อ่าน</string>\n    <string name=\"skipped_reason_not_started\">ถูกข้ามเนื่องจากยังไม่มีตอนใด ๆ ถูกอ่าน</string>\n    <string name=\"action_show_manga\">แสดงรายการ</string>\n    <string name=\"pref_update_only_started\">ข้ามรายการที่ยังไม่ได้เริ่มอ่าน</string>\n    <string name=\"skipped_reason_completed\">ถูกข้ามเนื่องจากเรื่องนี้จบแล้ว</string>\n    <string name=\"learn_more\">แตะเพื่อเรียนรู้เพิ่มเติม</string>\n    <string name=\"notification_update_error\">อัปเดตผิดพลาด %1$d รายการ</string>\n    <string name=\"rotation_reverse_portrait\">แนวตั้งแบบกลับด้าน</string>\n    <string name=\"action_move_to_top_all_for_series\">ย้ายเรื่องไปด้านบน</string>\n    <string name=\"disabled_nav\">ปิดใช้งาน</string>\n    <string name=\"error_saving_picture\">ผิดพลาดในการบันทึกรูปภาพ</string>\n    <string name=\"update_check_open\">เปิดใน GithHub</string>\n    <string name=\"empty_backup_error\">ไม่มีรายการคลังถูกสำรองข้อมูลไว้</string>\n    <string name=\"action_close\">ปิด</string>\n    <string name=\"pref_clear_webview_data\">ล้างข้อมูล WebView</string>\n    <string name=\"webview_data_deleted\">ล้างข้อมูล WebView แล้ว</string>\n    <string name=\"source_filter_empty_screen\">ไม่พบแหล่งที่มาที่ติดตั้งแล้ว</string>\n    <string name=\"source_empty_screen\">ไม่พบแหล่งที่มาใด ๆ</string>\n    <string name=\"action_sort_unread_count\">จำนวนตอนที่ยังไม่ได้อ่าน</string>\n    <string name=\"action_sort_last_manga_update\">เช็กอัปเดตล่าสุด</string>\n    <string name=\"download_notifier_split_page_not_found\">ไม่พบหน้า %d ขณะกำลังแยกหน้า</string>\n    <string name=\"split_tall_images_summary\">เพิ่มประสิทธิภาพตัวอ่าน</string>\n    <string name=\"download_notifier_split_page_path_not_found\">ไม่พบตำแหน่งไฟล์ของหน้า %d</string>\n    <string name=\"pref_reset_viewer_flags\">รีเซ็ตค่ากำหนดตัวอ่านตามเรื่อง</string>\n    <string name=\"pref_reset_viewer_flags_summary\">รีเซ็ตโหมดการอ่านและการจัดวางของทุกเรื่อง</string>\n    <string name=\"pref_reset_viewer_flags_success\">รีเซ็ตค่ากำหนดตัวอ่านทั้งหมดแล้ว</string>\n    <string name=\"pref_reset_viewer_flags_error\">ไม่สามารถรีเซ็ตค่ากำหนดตัวอ่าน</string>\n    <string name=\"empty_screen\">เอ่อ นี้มันงี่เง่าชะมัด</string>\n    <string name=\"ext_info_version\">เวอร์ชัน</string>\n    <string name=\"ext_info_language\">ภาษา</string>\n    <string name=\"ext_info_age_rating\">ระดับความเหมาะสม</string>\n    <string name=\"wish_list\">รายการที่อยากอ่าน</string>\n    <string name=\"on_hold_list\">รายการที่พักอ่านไว้</string>\n    <string name=\"unfinished_list\">รายการที่ยังไม่จบ</string>\n    <string name=\"reading_list\">รายการที่กำลังอ่าน</string>\n    <string name=\"complete_list\">รายการที่จบแล้ว</string>\n    <string name=\"network_not_metered\">เฉพาะบนเครือข่ายที่ไม่ได้ตรวจสอบ</string>\n    <string name=\"cant_open_last_read_chapter\">ไม่สามารถเปิดตอนที่อ่านล่าสุดได้</string>\n    <string name=\"custom_cover\">กำหนดปกเอง</string>\n    <string name=\"not_installed\">ยังไม่ถูกติดตั้ง</string>\n    <string name=\"pref_app_language\">ภาษาของแอพ</string>\n    <string name=\"description_placeholder\">ไม่มีคำอธิบาย</string>\n    <string name=\"theme_lavender\">ลาเวนเดอร์</string>\n    <string name=\"delete_category_confirmation\">ต้องการจะลบหมวดหมู่ \\\"%s\\\" ไหม?</string>\n    <string name=\"delete_category\">ลบหมวดหมู่</string>\n    <string name=\"internal_error\">InternalError: ตรวจสอบบันทึกการแครชสำหรับข้อมูลเพิ่มเติม</string>\n    <string name=\"pref_user_agent_string\">ตัวแทนผู้ใช้เริ่มต้น</string>\n    <string name=\"pref_reset_user_agent_string\">รีเซ็ตตัวแทนผู้ใช้</string>\n    <string name=\"action_remove_everything\">นำทุกอย่างออก</string>\n    <string name=\"appwidget_updates_description\">แสดงรายการในคลังที่อัปเดตล่าสุดของคุณ</string>\n    <string name=\"appwidget_unavailable_locked\">วิดเจ็ตไม่พร้อมใช้งานขณะการล็อกแอปเปิดไว้</string>\n    <string name=\"error_user_agent_string_blank\">สตริงตัวแทนผู้ใช้ไม่สามารถทิ้งว่างเปล่าไว้ได้</string>\n    <string name=\"update_already_running\">กำลังอัปเดตอยู่แล้ว</string>\n    <string name=\"theme_tidalwave\">ไทเดลเวฟ</string>\n    <string name=\"download_ahead\">ดาวน์โหลดล่วงหน้า</string>\n    <string name=\"auto_download_while_reading\">ดาวน์โหลดอัตโนมัติขณะกำลังอ่าน</string>\n    <string name=\"download_ahead_info\">ใช้ได้เฉพาะกับตอนปัจจุบัน + ตอนถัด ๆ ไปดาวน์โหลดไว้อยู่แล้ว</string>\n    <string name=\"are_you_sure\">แน่ใจแล้วใช่หรือไม่?</string>\n    <string name=\"multi_lang\">หลายภาษา</string>\n    <string name=\"updates_last_update_info\">อัปเดตคลังล่าสุด: %s</string>\n    <string name=\"remove_manga\">คุณกำลังจะนำ \\\"%s\\\" ออกจากคลัง</string>\n    <string name=\"popular\">ยอดนิยม</string>\n    <string name=\"missing_storage_permission\">ไม่ได้รับการอนุญาตให้ใช้งานที่จัดเก็บ</string>\n    <string name=\"action_search_hint\">ค้นหา…</string>\n    <string name=\"skipped_reason_not_always_update\">ถูกข้ามเนื่องจากเรื่องไม่จำเป็นต้องถูกอัปเดต</string>\n    <string name=\"pref_appearance_summary\">ธีม, รูปแบบวันที่และเวลา</string>\n    <string name=\"pref_library_summary\">หมวดหมู่, การอัปเดตคลัง, การปัดรายการตอน</string>\n    <string name=\"pref_reader_summary\">โหมดการอ่าน, การแสดงผล, การนำทาง</string>\n    <string name=\"pref_downloads_summary\">การดาวน์โหลดอัตโนมัติ, การดาวน์โหลดล่วงหน้า</string>\n    <string name=\"pref_tracking_summary\">การอัพเดทความคืบหน้าหลังอ่าน, การซิงค์กับแหล่งที่มาภายนอก</string>\n    <string name=\"pref_browse_summary\">แหล่งที่มา, ส่วนขยาย, การค้นหาทั้งหมด</string>\n    <string name=\"pref_backup_summary\">การสำรองข้อมูลและพื้นที่เก็บข้อมูลด้วยตนเองและอัตโนมัติ</string>\n    <string name=\"pref_security_summary\">การล็อกแอป, หน้าจอความปลอดภัย</string>\n    <string name=\"pref_advanced_summary\">ดัมพ์บันทึกข้อขัดข้อง, การเพิ่มประสิทธิภาพแบตเตอรี่</string>\n    <string name=\"crash_screen_title\">เกิดความผิดพลาด!</string>\n    <string name=\"crash_screen_description\">%s เกิดข้อผิดพลาดอย่างไม่คาดคิด ขอแนะนำให้คุณแบ่งปันบันทึกข้อขัดข้อง แล้วส่งลงไปในช่องสนับสนุนของเราใน Discord</string>\n    <string name=\"invalid_location\">ตำแหน่งไม่ถูกต้อง: %s</string>\n    <string name=\"unknown_title\">ไม่ทราบชื่อเรื่อง</string>\n    <string name=\"crash_screen_restart_application\">เริ่มแอปพลิเคชันใหม่</string>\n    <string name=\"updates_last_update_info_just_now\">เมื่อสักครู่</string>\n    <string name=\"error_user_agent_string_invalid\">สตริงตัวแทนผู้ใช้ไม่ถูกต้อง</string>\n    <string name=\"action_open_random_manga\">สุ่มเปิดรายการ</string>\n    <string name=\"fdroid_warning\">บิลด์ F-Droid ไม่ได้ถูกรองรับอย่างเป็นทางการ\n\\nแตะเพื่อเรียนรู้เพิ่มเติม</string>\n    <string name=\"information_no_entries_found\">ไม่พบรายการใด ๆ ในหมวดหมู่นี้</string>\n    <string name=\"download_notifier_cache_renewal\">กำลังตรวจสอบการดาวน์โหลด</string>\n    <string name=\"action_display_show_continue_reading_button\">ปุ่มอ่านต่อ</string>\n    <string name=\"pref_invalidate_download_cache\">ทำดัชนีการดาวน์โหลดใหม่</string>\n    <string name=\"track_remove_start_date_conf_text\">การกระทำนี้จะเป็นการนำวันที่เริ่มอ่านของรายการที่เลือกไว้ก่อนหน้าจาก %s ออก</string>\n    <string name=\"track_remove_finish_date_conf_text\">การกระทำนี้จะเป็นการนำวันที่อ่านจบของรายการที่เลือกไว้ก่อนหน้าจาก %s ออก</string>\n    <string name=\"track_remove_date_conf_title\">นำวันที่ออก?</string>\n    <string name=\"pref_invalidate_download_cache_summary\">บังคับให้ตรวจสอบบทที่ดาวน์โหลดไว้</string>\n    <string name=\"label_started\">เริ่มต้น</string>\n    <string name=\"label_downloaded\">ดาวน์โหลดไว้แล้ว</string>\n    <string name=\"label_read_duration\">ระยะเวลาการอ่าน</string>\n    <string name=\"label_titles_section\">รายการ</string>\n    <string name=\"label_total_chapters\">รวม</string>\n    <string name=\"label_tracker_section\">ตัวติดตาม</string>\n    <string name=\"label_mean_score\">คะแนนเฉลี่ย</string>\n    <string name=\"minute_short\">%d น.</string>\n    <string name=\"label_stats\">สถิติ</string>\n    <string name=\"label_local\">ภายในเครื่อง</string>\n    <string name=\"not_applicable\">ไม่ทราบ</string>\n    <string name=\"label_tracked_titles\">รายการที่ติดตาม</string>\n    <string name=\"label_used\">ใช้แล้ว</string>\n    <string name=\"label_overview_section\">ภาพรวม</string>\n    <string name=\"label_completed_titles\">รายการที่อ่านจบแล้ว</string>\n    <string name=\"label_titles_in_global_update\">ในการอัปเดตทั้งหมด</string>\n    <string name=\"day_short\">%d วัน</string>\n    <string name=\"label_read_chapters\">อ่านแล้ว</string>\n    <string name=\"hour_short\">%d ชม.</string>\n    <string name=\"seconds_short\">%d วิ.</string>\n    <string name=\"action_not_now\">ไม่ใช่ตอนนี้</string>\n    <string name=\"pref_library_update_show_tab_badge\">แสดงจำนวนที่ยังไม่ได้อ่านบนไอคอนการอัปเดต</string>\n    <string name=\"information_no_manga_category\">หมวดหมู่ว่างเปล่า</string>\n    <string name=\"copied_to_clipboard_plain\">คัดลอกไปยังคลิปบอร์ดแล้ว</string>\n    <string name=\"pref_skip_dupe_chapters\">ข้ามตอนที่ซ้ำกัน</string>\n    <string name=\"enhanced_services_not_installed\">พร้อมใช้งานแต่ไม่ได้ติดตั้งแหล่งที่มา: %s</string>\n    <string name=\"track_error\">%1$s ข้อผิดพลาด: %2$s</string>\n    <string name=\"information_required_plain\">*จำเป็น</string>\n    <string name=\"pref_hide_in_library_items\">ซ่อนรายการที่มีอยู่ในคลังอยู่แล้ว</string>\n    <string name=\"action_copy_to_clipboard\">คัดลอกไปยังคลิปบอร์ด</string>\n    <string name=\"action_update_category\">อัปเดตหมวดหมู่</string>\n    <string name=\"split_tall_images\">แยกภาพสูงยาว</string>\n    <string name=\"overlay_header\">โอเวอร์เลย์</string>\n    <string name=\"pref_page_rotate\">หมุนหน้ากว้างให้พอดี</string>\n    <string name=\"pref_page_rotate_invert\">พลิกการวางแนวของหน้ากว้างที่หมุน</string>\n    <string name=\"pref_debug_info\">ข้อมูลดีบัก</string>\n    <string name=\"pref_chapter_swipe_end\">เปิดตอนเมื่อปัดไปทางขวา</string>\n    <string name=\"pref_chapter_swipe_start\">เปิดตอนเมื่อปัดไปทางซ้าย</string>\n    <string name=\"pref_double_tap_zoom\">แตะสองครั้งเพื่อซูม</string>\n    <string name=\"action_set_interval\">กำหนดช่วงเวลา</string>\n    <string name=\"action_filter_interval_custom\">กำหนดความถี่ในการอัปเดต</string>\n    <string name=\"action_sort_next_updated\">การอัปเดตที่คาดไว้ต่อไป</string>\n    <string name=\"pref_update_only_in_release_period\">คาดการณ์เวลาออกครั้งต่อไป</string>\n    <string name=\"skipped_reason_not_in_release_period\">ข้ามไปเนื่องจากคาดว่าจะไม่มีการออกในวันนี้</string>\n    <string name=\"manga_display_interval_title\">ประมาณทุกๆ</string>\n    <string name=\"manga_display_modified_interval_title\">ตั้งค่าให้อัพเดตทุกๆ</string>\n    <string name=\"intervals_header\">ช่วงเวลา</string>\n    <string name=\"action_ok\">ตกลง</string>\n    <string name=\"track_delete_title\">นำการติดตามของ %s ออกไหม?</string>\n    <string name=\"track_delete_text\">การกระทำนี้จะเป็นการลบการติดตามภายในเครื่อง</string>\n    <string name=\"track_delete_remote_text\">และลบออกจาก %s เช่นกัน</string>\n    <string name=\"library_sync_complete\">ซิงค์คลังเสร็จสมบูรณ์</string>\n    <string name=\"has_results\">มีผลลัพธ์</string>\n    <string name=\"syncing_library\">กำลังซิงค์คลัง</string>\n    <string name=\"delete_downloaded\">ลบการดาวน์โหลด</string>\n    <string name=\"download_cache_invalidated\">ดัชนีการดาวน์โหลดไม่ถูกต้อง</string>\n    <string name=\"information_cloudflare_help\">แตะที่นี่เพื่อขอความช่วยเหลือเกี่ยวกับ Cloudflare</string>\n    <string name=\"create_backup_file_error\">ไม่สามารถสร้างไฟล์สำรองข้อมูล</string>\n    <string name=\"track_activity_name\">เข้าสู่ระบบตัวติดตาม</string>\n    <string name=\"unlock_app_title\">ปลดล็อก %s</string>\n    <string name=\"exception_offline\">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</string>\n    <string name=\"exception_http\">HTTP %d, ดูเว็บไซต์ใน WebView</string>\n    <string name=\"exception_unknown_host\">ไม่สามารถเข้าถึง %s ได้</string>\n    <string name=\"action_move_to_bottom_all_for_series\">ย้ายเรื่องไปด้านล่าง</string>\n    <string name=\"pref_relative_format\">ประทับเวลาแบบสัมพันธ์กัน</string>\n    <string name=\"pref_relative_format_summary\">แสดง \\\"%1$s\\\" แทน \\\"%2$s\\\"</string>\n    <string name=\"notification_updating_progress\">กำลังอัปเดตคลัง... (%s)</string>\n    <string name=\"source_settings\">การตั้งค่าแหล่งที่มา</string>\n    <string name=\"app_settings\">การตั้งค่าแอป</string>\n    <string name=\"file_null_uri_error\">ไม่มีไฟล์ถูกเลือกไว้</string>\n    <string name=\"relative_time_span_never\">ไม่เลย</string>\n    <string name=\"pref_flash_page_summ\">ลดภาพซ้อนบนจอแสดงผล E-Ink</string>\n    <string name=\"last_auto_backup_info\">สำรองข้อมูลอัตโนมัติครั้งล่าสุด: %s</string>\n    <string name=\"pref_flash_page\">แฟลชเมื่อเปลี่ยนหน้า</string>\n    <string name=\"pref_storage_usage\">การใช้พื้นที่เก็บข้อมูล</string>\n    <string name=\"label_data_storage\">ข้อมูลและการจัดเก็บข้อมูล</string>\n    <string name=\"action_create\">สร้าง</string>\n    <string name=\"action_apply\">นำไปใช้</string>\n    <string name=\"action_revert_to_default\">ย้อนกลับไปเป็นค่าเริ่มต้น</string>\n    <string name=\"no_scanlators_found\">ไม่พบผู้แปล</string>\n    <string name=\"scanlator\">ผู้แปล</string>\n    <string name=\"action_sort_tracker_score\">คะแนนจากตัวติดตาม</string>\n    <string name=\"exclude_scanlators\">ผู้แปลที่เว้นไว้</string>\n    <string name=\"pref_storage_location\">ตำแหน่งที่จัดเก็บ</string>\n    <string name=\"pref_storage_location_info\">ใช้สำหรับการสำรองข้อมูลอัตโนมัติ การดาวน์โหลดตอน และแหล่งที่มาในเครื่อง</string>\n    <string name=\"action_menu_overflow_description\">ตัวเลือกเพิ่มเติม</string>\n    <string name=\"selected\">เลือกแล้ว</string>\n    <string name=\"not_selected\">ยังไม่ได้เลือก</string>\n    <string name=\"action_bar_up_description\">ขึ้นไปข้างบน</string>\n    <string name=\"onboarding_storage_action_select\">เลือกโฟลเดอร์</string>\n    <string name=\"pref_onboarding_guide\">คู่มือการเริ่มต้นใช้งาน</string>\n    <string name=\"onboarding_guides_new_user\">เพิ่งรู้จัก %s? เราขอแนะนำให้ดูคู่มือการเริ่มต้นใช้งาน</string>\n    <string name=\"onboarding_action_finish\">เริ่มต้น</string>\n    <string name=\"manga_interval_expected_update\">ตอนใหม่คาดว่าจะออกในอีกประมาณ %1$s จะตรวจสอบทุก ๆ %2$s</string>\n    <string name=\"onboarding_storage_selection_required\">จำเป็นต้องเลือกโฟลเดอร์</string>\n    <string name=\"onboarding_permission_notifications\">สิทธิ์ในการแจ้งเตือน</string>\n    <string name=\"onboarding_permission_install_apps\">สิทธิ์ในการติดตั้งแอป</string>\n    <string name=\"available_disk_space_info\">พร้อมใช้งาน: %1$s / ทั้งหมด: %2$s</string>\n    <string name=\"onboarding_heading\">ยินดีต้อนรับ!</string>\n    <string name=\"onboarding_guides_returning_user\">กลับมาติดตั้ง %s ใหม่?</string>\n    <string name=\"invalid_backup_file_error\">ข้อผิดพลาดเต็ม:</string>\n    <string name=\"onboarding_action_skip\">ข้าม</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">เพื่อหลีกเลี่ยงการหยุดชะงักใน การอัปเดตไลบรารี ดาวน์โหลด และการสำรองข้อมูลที่ใช้เวลานาน</string>\n    <string name=\"onboarding_action_next\">ถัดไป</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">การใช้แบตเตอรี่ในพื้นหลัง</string>\n    <string name=\"onboarding_permission_install_apps_description\">ในการติดตั้งส่วนขยายแหล่งที่มา</string>\n    <string name=\"onboarding_description\">มาตั้งค่าอะไรสักอย่างกันก่อน คุณสามารถเปลี่ยนสิ่งเหล่านี้ในการตั้งค่าในภายหลังได้</string>\n    <string name=\"no_location_set\">ไม่มีการกำหนดตำแหน่งจัดเก็บ</string>\n    <string name=\"onboarding_permission_notifications_description\">รับการแจ้งเตือนการอัปเดตคลังและอื่น ๆ</string>\n    <string name=\"ext_permission_install_apps_warning\">จำเป็นต้องมีสิทธิ์ในการติดตั้งส่วนขยาย แตะที่นี่เพื่อให้สิทธิ์</string>\n    <string name=\"private_settings\">รวมการตั้งค่าที่ละเอียดอ่อน (เช่น โทเค็นการเข้าสู่ระบบตัวติดตาม)</string>\n    <string name=\"onboarding_permission_action_grant\">อนุญาต</string>\n    <string name=\"onboarding_storage_info\">เลือกโฟลเดอร์ที่ %1$s จะจัดเก็บการดาวน์โหลดบท การสำรองข้อมูล และอื่นๆ\n\\n\n\\nแนะนำให้ใช้โฟลเดอร์เฉพาะ\n\\n\n\\nโฟลเดอร์ที่เลือก: %2$s</string>\n    <string name=\"pref_library_update_smart_update\">อัปเดตอัจฉริยะ</string>\n    <string name=\"label_extension_repos\">รีโพส่วนขยาย</string>\n    <string name=\"error_repo_exists\">มีรีโพนี้อยู่แล้ว!</string>\n    <string name=\"action_add_repo_message\">เพิ่มรีโพเพิ่มเติมให้กับ %s - ควรเป็น URL ที่ลงท้ายด้วย \\\"index.min.json\\\"</string>\n    <string name=\"manga_interval_custom_amount\">ความถี่ในการอัปเดตกำหนดเอง:</string>\n    <string name=\"information_empty_repos\">คุณไม่มีรีโพที่ตั้งค่าไว้</string>\n    <string name=\"onboarding_storage_help_action\">คู่มือการจัดเก็บข้อมูล</string>\n    <string name=\"ext_revoke_trust\">เพิกถอนส่วนขยายที่ไม่รู้จักที่เชื่อถือไว้</string>\n    <string name=\"action_add_repo\">เพิ่มรีโพ</string>\n    <string name=\"action_delete_repo\">ลบรีโพ</string>\n    <string name=\"invalid_repo_name\">URL ของรีโพไม่ถูกต้อง</string>\n    <string name=\"manga_interval_expected_update_soon\">เร็ว ๆ นี้</string>\n    <string name=\"onboarding_storage_help_info\">กำลังอัปเดตจากเวอร์ชันเก่าและไม่แน่ใจว่าจะเลือกอะไรใช่ไหม? โปรดดูคู่มือการจัดเก็บข้อมูลสำหรับข้อมูลเพิ่มเติม</string>\n    <string name=\"theme_nord\">นอร์ด</string>\n    <string name=\"label_add_repo_input\">URL รีโพ</string>\n    <string name=\"delete_repo_confirmation\">ต้องการจะลบรีโพ \\\"%s\\\" หรือไม่?</string>\n    <string name=\"action_open_repo\">เปิดที่มาของรีโพ</string>\n    <string name=\"action_copy_link\">คัดลอกลิงก์</string>\n    <string name=\"action_sort_random\">สุ่ม</string>\n    <string name=\"onboarding_permission_analytics\">อนุญาตให้เก็บข้อมูลไปวิเคราะห์</string>\n    <string name=\"pref_security\">ความปลอดภัย</string>\n    <string name=\"pref_firebase\">การวิเคราะห์และบันทึกข้อผิดพลาด</string>\n    <string name=\"onboarding_permission_crashlytics_description\">ส่งบันทึกข้อผิดพลาดแบบไม่เปิดเผยตัวตนให้กับนักพัฒนา</string>\n    <string name=\"onboarding_permission_crashlytics\">ส่งบันทึกข้อผิดพลาด</string>\n    <string name=\"onboarding_permission_analytics_description\">ส่งข้อมูลการใช้งานที่ไม่ระบุตัวตนเพื่อปรับปรุงคุณสมบัติของแอป</string>\n    <string name=\"firebase_summary\">การส่งบันทึกข้อผิดพลาดและการวิเคราะห์จะช่วยให้เราระบุและแก้ไขปัญหา ปรับปรุงประสิทธิภาพ และทำให้การอัปเดตในอนาคตมีความเกี่ยวข้องกับความต้องการของคุณมากขึ้น</string>\n    <string name=\"ext_remove\">นำออก</string>\n    <string name=\"ext_confirm_remove\">ต้องการนำส่วนขยายออกหรือไม่?</string>\n    <string name=\"remove_private_extension_message\">ต้องการนำส่วนขยาย \\\"%s\\\" ออกหรือไม่?</string>\n    <string name=\"label_upcoming\">ที่กำลังจะมีขึ้น</string>\n    <string name=\"action_add_anyway\">เพิ่มอยู่ดี</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">อัปเดตความคืบหน้าเมื่อทำเครื่องหมายว่าอ่านแล้ว</string>\n    <string name=\"invalid_backup_file_unknown\">ไฟล์สำรองข้อมูลเสียหาย</string>\n    <string name=\"non_library_settings\">รายการที่อ่านทั้งหมด</string>\n    <string name=\"trackers_updated_summary\">ตัวติดตามของบท %d ได้รับการอัปเดตแล้ว</string>\n    <string name=\"upcoming_guide\">ไกด์ที่กำลังจะมีขึ้น</string>\n    <string name=\"upcoming_calendar_next\">เดือนถัดไป</string>\n    <string name=\"pref_flash_style_white\">สีขาว</string>\n    <string name=\"pref_flash_duration\">ระยะเวลากระพริบ</string>\n    <string name=\"pref_flash_page_interval\">กระพริบทุก</string>\n    <string name=\"pref_flash_with\">กระพิบเป็น</string>\n    <string name=\"pref_flash_style_black\">สีดำ</string>\n    <string name=\"upcoming_calendar_prev\">เดือนก่อนหน้า</string>\n    <string name=\"invalid_backup_file_json\">ไม่รองรับการสำรองข้อมูลเป็น JSON</string>\n    <string name=\"extensionRepo_settings\">รีโพส่วนขยาย</string>\n    <string name=\"manga_interval_expected_update_null\">มังงะเรื่องนี้เสร็จแล้ว หรือไม่มีกำหนดวางจำหน่ายที่แน่ชัด</string>\n    <string name=\"file_picker_uri_permission_unsupported\">ไม่สามารถรับสิทธิ์การเข้าถึงโฟลเดอร์ถาวรได้ แอปอาจทำงานผิดปกติ</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_style_white_black\">สีขาวและสีดำ</string>\n    <string name=\"pref_download_new_unread_chapters_only\">ข้ามการดาวน์โหลดบทที่ซ้ำ</string>\n    <string name=\"action_replace_repo_title\">กุญแจลายเซ็นระบุตัวตนนี้มีอยู่แล้ว</string>\n    <string name=\"pref_display_profile\">โปรไฟล์การแสดงผลแบบกำหนดเอง</string>\n    <string name=\"action_replace_repo\">แทนที่</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">ปิดการใช้งานการซูมออก</string>\n    <string name=\"action_view_upcoming\">ดูการอัปเดตที่กำลังจะมีขึ้น</string>\n    <string name=\"action_replace_repo_message\">รีโพสิทอรี %1$s มีกุญแจลายเซ็นระบุตัวตนเดียวกันกับ %2$s\\nหากต้องการ %2$s จะถูกแทนที่ มิฉะนั้น โปรดติดต่อผู้ดูแลรีโพนี้</string>\n    <string name=\"add_repo_confirmation\">คุณต้องการเพิ่มรีโพ \\\"%s\\\" หรือไม่?</string>\n    <string name=\"confirm_tracker_update\">อัปเดตตัวติดตามของบท %d หรือไม่?</string>\n    <string name=\"label_auto\">อัตโนมัติ</string>\n    <string name=\"action_display_unread_badge\">ตอนที่ยังไม่ได้อ่าน</string>\n    <string name=\"action_notes\">โน้ต</string>\n    <string name=\"action_edit_notes\">แก้ไขโน้ต</string>\n    <string name=\"theme_catppuccin\">แคทปุชชิน</string>\n    <string name=\"theme_monochrome\">โมโนโครม</string>\n    <string name=\"pref_behavior\">พฤติกรรม</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">ทำเครื่องหมายตอนซ้ำที่อ่านแล้วว่าอ่านแล้ว</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">หลังจากอ่านตอน</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">หลังจากเรียกข้อมูลตอนใหม่</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">ซ่อนตัวแสดงตอนที่หายไป</string>\n    <string name=\"pref_hardware_bitmap_threshold\">เกณฑ์บิตแมปฮาร์ดแวร์กำหนดเอง</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">ค่าเริ่มต้น (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">หากตัวอ่านโหลดภาพเปล่า ให้ลดเกณฑ์ลงทีละน้อย\\nเลือกแล้ว: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">ใช้ตัวถอดรหัสแบบเก่าสำหรับตัวอ่านภาพยาว</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">มีผลต่อประสิทธิภาพ เปิดใช้งานเฉพาะเมื่อการลดเกณฑ์บิตแมปไม่สามารถแก้ไขปัญหาภาพเปล่าได้</string>\n    <string name=\"storage_failed_to_create_download_directory\">เกิดข้อผิดพลาดในการสร้างไดเรกเทอรี่ดาวน์โหลด</string>\n    <string name=\"storage_failed_to_create_directory\">เกิดข้อผิดพลาดในการสร้างไดเรกเทอรี่: %s</string>\n    <string name=\"export\">ส่งออก</string>\n    <string name=\"library_list\">รายการคลัง</string>\n    <string name=\"library_exported\">ส่งออกคลังแล้ว</string>\n    <string name=\"clear_database_text\">คุณกำลังจะลบรายการออกจากฐานข้อมูล</string>\n    <string name=\"label_donate\">บริจาค</string>\n    <string name=\"pref_display_images_description\">เรนเดอร์รูปภาพในคำอธิบายเรื่อง</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">ไม่อนุญาตชื่อไฟล์ที่ไม่ใช่ ASCII</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/tr/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s dakika sonra</item>\n        <item quantity=\"other\">%1$s dakika sonra</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d yeni bölüm</item>\n        <item quantity=\"other\">%1$d yeni bölüm</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Bölüm %1$s ve 1 daha</item>\n        <item quantity=\"other\">Bölüm %1$s ve %2$d daha</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">%d girdi için</item>\n        <item quantity=\"other\">%d girdi için</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">Uzantı güncellemesi var</item>\n        <item quantity=\"other\">%d uzantı güncellemesi var</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s kaldı</item>\n        <item quantity=\"other\">%1$s kaldı</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d Kategori</item>\n        <item quantity=\"other\">%d Kategoriler</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">%1$s içinde %2$s hatayla tamamlandı</item>\n        <item quantity=\"other\">%1$s içinde %2$s hatayla tamamlandı</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s bölüm</item>\n        <item quantity=\"other\">%1$s bölüm</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d izleyici</item>\n        <item quantity=\"other\">%d izleyici</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">%d bölüm atlandı, kaynak mevcut değil veya filtrelendi</item>\n        <item quantity=\"other\">%d bölüm atlandı, kaynak mevcut değil veya filtrelendi</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Dün</item>\n        <item quantity=\"other\">%1$d gün önce</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Sonraki okunmayan bölüm</item>\n        <item quantity=\"other\">Sonraki %d okunmayan bölüm</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Sonraki bölüm</item>\n        <item quantity=\"other\">Sonraki %d bölüm</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">%1$s bölüm eksik</item>\n        <item quantity=\"other\">%1$s bölüm eksik</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">1 gün</item>\n        <item quantity=\"other\">%d gün</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d depo</item>\n        <item quantity=\"other\">%d depo</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Yarın</item>\n        <item quantity=\"other\">%1$d gün içinde</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">1 sayfa</item>\n        <item quantity=\"other\">%1$s sayfa</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"one\">%1$d girdiyi taşı?</item>\n        <item quantity=\"other\">%1$d girdiyi taşı?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"one\">%1$d girdiyi kopyala?</item>\n        <item quantity=\"other\">%1$d girdiyi kopyala?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"one\">Bir girdi atlandı</item>\n        <item quantity=\"other\">%1$d girdi atlandı</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/tr/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Ad</string>\n    <string name=\"categories\">Kategoriler</string>\n    <string name=\"manga\">Kitaplık girdileri</string>\n    <string name=\"chapters\">Bölümler</string>\n    <string name=\"track\">İzleme</string>\n    <string name=\"history\">Geçmiş</string>\n    <string name=\"label_settings\">Ayarlar</string>\n    <string name=\"label_download_queue\">İndirme kuyruğu</string>\n    <string name=\"label_library\">Kitaplık</string>\n    <string name=\"label_recent_manga\">Geçmiş</string>\n    <string name=\"label_recent_updates\">Güncellemeler</string>\n    <string name=\"label_backup\">Yedekle ve geri yükle</string>\n    <string name=\"label_migration\">Taşı</string>\n    <string name=\"label_extensions\">Uzantılar</string>\n    <string name=\"label_extension_info\">Uzantı bilgisi</string>\n    <string name=\"action_settings\">Ayarlar</string>\n    <string name=\"action_filter\">Filtrele</string>\n    <string name=\"action_filter_bookmarked\">Yer imli</string>\n    <string name=\"action_filter_unread\">Okunmamış</string>\n    <string name=\"action_filter_empty\">Filtreyi kaldır</string>\n    <string name=\"action_sort_alpha\">Alfabetik</string>\n    <string name=\"action_sort_total\">Toplam bölüm</string>\n    <string name=\"action_sort_last_read\">Son okunan</string>\n    <string name=\"action_search\">Ara</string>\n    <string name=\"action_global_search\">Genel arama</string>\n    <string name=\"action_select_all\">Tümünü seç</string>\n    <string name=\"action_mark_as_read\">Okundu olarak işaretle</string>\n    <string name=\"action_mark_as_unread\">Okunmadı olarak işaretle</string>\n    <string name=\"action_mark_previous_as_read\">Öncekileri okundu olarak imle</string>\n    <string name=\"action_download\">İndir</string>\n    <string name=\"action_bookmark\">Bölüme yer imi ekle</string>\n    <string name=\"action_remove_bookmark\">Bölümün yer imini kaldır</string>\n    <string name=\"action_delete\">Sil</string>\n    <string name=\"action_update_library\">Kitaplığı güncelle</string>\n    <string name=\"action_edit\">Düzenle</string>\n    <string name=\"action_add\">Ekle</string>\n    <string name=\"action_add_category\">Kategori ekle</string>\n    <string name=\"action_edit_categories\">Kategorileri düzenle</string>\n    <string name=\"action_rename_category\">Kategoriyi yeniden adlandır</string>\n    <string name=\"action_move_category\">Kategorileri ayarla</string>\n    <string name=\"action_edit_cover\">Kapağı düzenle</string>\n    <string name=\"action_pause\">Duraklat</string>\n    <string name=\"action_previous_chapter\">Önceki bölüm</string>\n    <string name=\"action_next_chapter\">Sonraki bölüm</string>\n    <string name=\"action_retry\">Tekrar dene</string>\n    <string name=\"action_remove\">Kaldır</string>\n    <string name=\"action_resume\">Devam Et</string>\n    <string name=\"action_open_in_browser\">Tarayıcıda aç</string>\n    <string name=\"action_display_mode\">Görüntüleme modu</string>\n    <string name=\"action_display\">Görüntüleme</string>\n    <string name=\"action_display_grid\">Sıkışık ızgara</string>\n    <string name=\"action_display_list\">Liste</string>\n    <string name=\"action_display_download_badge\">İndirilen bölümler</string>\n    <string name=\"action_cancel\">İptal et</string>\n    <string name=\"action_sort\">Sırala</string>\n    <string name=\"action_install\">Yükle</string>\n    <string name=\"action_share\">Paylaş</string>\n    <string name=\"action_save\">Kaydet</string>\n    <string name=\"action_reset\">Sıfırla</string>\n    <string name=\"action_undo\">Geri al</string>\n    <string name=\"action_open_log\">Günlüğü aç</string>\n    <string name=\"action_restore\">Geri yükle</string>\n    <string name=\"loading\">Yükleniyor…</string>\n    <string name=\"app_not_available\">Uygulama kullanılamıyor</string>\n    <string name=\"pref_category_general\">Genel</string>\n    <string name=\"pref_category_reader\">Okuyucu</string>\n    <string name=\"pref_category_downloads\">İndirmeler</string>\n    <string name=\"pref_category_tracking\">İzleme</string>\n    <string name=\"pref_category_advanced\">Gelişmiş</string>\n    <string name=\"pref_category_about\">Hakkında</string>\n    <string name=\"pref_library_columns\">Bir satırdaki öge sayısı</string>\n    <string name=\"portrait\">Portre</string>\n    <string name=\"landscape\">Manzara</string>\n    <string name=\"pref_library_update_interval\">Otomatik güncellemeler</string>\n    <string name=\"update_never\">Kapalı</string>\n    <string name=\"update_6hour\">6 saatte bir</string>\n    <string name=\"update_12hour\">12 saatte bir</string>\n    <string name=\"update_24hour\">Günlük</string>\n    <string name=\"update_48hour\">2 günde bir</string>\n    <string name=\"update_weekly\">Haftalık</string>\n    <string name=\"all\">Tümü</string>\n    <string name=\"pref_library_update_restriction\">Otomatik güncelleme cihaz kısıtlamaları</string>\n    <string name=\"charging\">Şarj olurken</string>\n    <string name=\"pref_update_only_non_completed\">\\\"Tamamlanmış\\\" durumda olan girdileri atla</string>\n    <string name=\"pref_auto_update_manga_sync\">Okuduktan sonra ilerlemeyi güncelle</string>\n    <string name=\"default_category\">Varsayılan kategori</string>\n    <string name=\"default_category_summary\">Her zaman sor</string>\n    <string name=\"ext_update\">Güncelle</string>\n    <string name=\"ext_install\">Yükle</string>\n    <string name=\"ext_pending\">Beklemede</string>\n    <string name=\"ext_downloading\">İndiriliyor</string>\n    <string name=\"ext_installing\">Yükleniyor</string>\n    <string name=\"ext_installed\">Yüklendi</string>\n    <string name=\"ext_trust\">Güven</string>\n    <string name=\"ext_untrusted\">Güvenilmeyen</string>\n    <string name=\"ext_uninstall\">Kaldır</string>\n    <string name=\"untrusted_extension\">Güvenilmeyen uzantı</string>\n    <string name=\"untrusted_extension_message\">Kötü niyetli uzantılar, oturum açma bilgilerini okuyabilir veya güvenilmeyen kodlar çalıştırabilir.\n\\n\n\\nBu uzantıya güvenerek bu riskleri kabul etmiş olursunuz.</string>\n    <string name=\"pref_fullscreen\">Tam ekran</string>\n    <string name=\"pref_page_transitions\">Sayfa geçişlerini animasyonla yap</string>\n    <string name=\"pref_double_tap_anim_speed\">Çift dokunma animasyon hızı</string>\n    <string name=\"pref_show_page_number\">Sayfa numarası göster</string>\n    <string name=\"pref_crop_borders\">Kenarları kırp</string>\n    <string name=\"pref_custom_brightness\">Özel parlaklık</string>\n    <string name=\"pref_custom_color_filter\">Özel renk filtresi</string>\n    <string name=\"pref_keep_screen_on\">Ekranı açık tut</string>\n    <string name=\"pref_reader_navigation\">Gezinme</string>\n    <string name=\"pref_read_with_volume_keys\">Ses tuşları</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Ses tuşlarını ters çevir</string>\n    <string name=\"pref_reader_theme\">Arka plan rengi</string>\n    <string name=\"white_background\">Beyaz</string>\n    <string name=\"black_background\">Siyah</string>\n    <string name=\"pref_viewer_type\">Varsayılan okuma modu</string>\n    <string name=\"left_to_right_viewer\">Sayfalı (soldan sağa)</string>\n    <string name=\"right_to_left_viewer\">Sayfalı (sağdan sola)</string>\n    <string name=\"vertical_viewer\">Sayfalı (dikey)</string>\n    <string name=\"webtoon_viewer\">Uzun şerit</string>\n    <string name=\"pager_viewer\">Sayfalı</string>\n    <string name=\"pref_image_scale_type\">Boyutlandırma şekli</string>\n    <string name=\"scale_type_fit_screen\">Ekrana sığdır</string>\n    <string name=\"scale_type_stretch\">Uzat</string>\n    <string name=\"scale_type_fit_width\">Genişliğe sığdır</string>\n    <string name=\"scale_type_fit_height\">Yüksekliğe sığdır</string>\n    <string name=\"scale_type_original_size\">Orijinal boyut</string>\n    <string name=\"scale_type_smart_fit\">Akıllı sığdırma</string>\n    <string name=\"pref_zoom_start\">Yakınlaştırma başlangıç konumu</string>\n    <string name=\"zoom_start_automatic\">Otomatik</string>\n    <string name=\"zoom_start_left\">Sol</string>\n    <string name=\"zoom_start_right\">Sağ</string>\n    <string name=\"zoom_start_center\">Orta</string>\n    <string name=\"double_tap_anim_speed_0\">Animasyon yok</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Hızlı</string>\n    <string name=\"pref_rotation_type\">Varsayılan yön</string>\n    <string name=\"rotation_free\">Serbest</string>\n    <string name=\"rotation_force_portrait\">Kilitli portre</string>\n    <string name=\"rotation_force_landscape\">Kilitli manzara</string>\n    <string name=\"color_filter_r_value\">Kırmızı</string>\n    <string name=\"color_filter_g_value\">Yeşil</string>\n    <string name=\"color_filter_b_value\">Mavi</string>\n    <string name=\"color_filter_a_value\">Alfa</string>\n    <string name=\"pref_remove_after_marked_as_read\">Elle okundu olarak işaretlenince</string>\n    <string name=\"pref_remove_after_read\">Okuduktan sonra otomatik sil</string>\n    <string name=\"disabled\">Devre dışı</string>\n    <string name=\"last_read_chapter\">Son okunan bölüm</string>\n    <string name=\"second_to_last\">Okunan sondan ikinci bölüm</string>\n    <string name=\"third_to_last\">Okunan sondan üçüncü bölüm</string>\n    <string name=\"fourth_to_last\">Okunan sondan dördüncü bölüm</string>\n    <string name=\"fifth_to_last\">Okunan sondan beşinci bölüm</string>\n    <string name=\"pref_download_new\">Yeni bölümleri indir</string>\n    <string name=\"services\">İzleyiciler</string>\n    <string name=\"pref_create_backup\">Yedek oluştur</string>\n    <string name=\"pref_create_backup_summ\">Şu anki kitaplığı geri yüklemek için kullanılabilir</string>\n    <string name=\"pref_restore_backup\">Yedeği geri yükle</string>\n    <string name=\"pref_restore_backup_summ\">Kitaplığı yedek dosyasından geri yükle</string>\n    <string name=\"pref_backup_interval\">Otomatik yedekleme sıklığı</string>\n    <string name=\"backup_created\">Yedek oluşturuldu</string>\n    <string name=\"restore_completed\">Geri yükleme tamamlandı</string>\n    <string name=\"backup_choice\">Neyi yedeklemek istiyorsunuz?</string>\n    <string name=\"restoring_backup\">Yedek geri yükleniyor</string>\n    <string name=\"creating_backup\">Yedek oluşturuluyor</string>\n    <string name=\"pref_clear_chapter_cache\">Bölüm önbelleğini temizle</string>\n    <string name=\"used_cache\">Kullanılan: %1$s</string>\n    <string name=\"cache_deleted\">Önbellek temizlendi, %1$d dosya silindi</string>\n    <string name=\"cache_delete_error\">Temizlenirken sorun oluştu</string>\n    <string name=\"pref_clear_cookies\">Çerezleri temizle</string>\n    <string name=\"cookies_cleared\">Çerezler temizlendi</string>\n    <string name=\"pref_clear_database\">Veritabanını temizle</string>\n    <string name=\"pref_clear_database_summary\">Kitaplığa kaydedilmeyen girdilerin geçmiş bilgisini sil</string>\n    <string name=\"clear_database_completed\">Girdiler silindi</string>\n    <string name=\"version\">Sürüm</string>\n    <string name=\"pref_enable_acra\">Çökme günlüklerini gönder</string>\n    <string name=\"pref_acra_summary\">Hataların düzeltilmesine yardımcı olur. Kişisel bilgi gönderilmeyecektir</string>\n    <string name=\"login_title\">%1$s \\'e giriş yap</string>\n    <string name=\"username\">Kullanıcı adı</string>\n    <string name=\"password\">Parola</string>\n    <string name=\"login\">Giriş</string>\n    <string name=\"login_success\">Giriş yapıldı</string>\n    <string name=\"unknown_error\">Bilinmeyen sorun</string>\n    <string name=\"updating_category\">Kategori güncelleniyor</string>\n    <string name=\"no_more_results\">Başka sonuç yok</string>\n    <string name=\"local_source\">Yerel kaynak</string>\n    <string name=\"other_source\">Diğer</string>\n    <string name=\"action_global_search_hint\">Genel arama…</string>\n    <string name=\"latest\">En son</string>\n    <string name=\"browse\">Göz At</string>\n    <string name=\"ongoing\">Devam ediyor</string>\n    <string name=\"unknown\">Bilinmeyen</string>\n    <string name=\"licensed\">Lisanslı</string>\n    <string name=\"remove_from_library\">Kitaplıktan kaldır</string>\n    <string name=\"manga_added_library\">Kitaplığa eklendi</string>\n    <string name=\"manga_removed_library\">Kitaplıktan kaldırıldı</string>\n    <string name=\"delete_downloads_for_manga\">İndirilen bölümler silinsin mi?</string>\n    <string name=\"copied_to_clipboard\">Panoya kopyalandı:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Kaynak yüklenmedi: %1$s</string>\n    <string name=\"display_mode_chapter\">Bölüm %1$s</string>\n    <string name=\"chapter_downloading_progress\">İndiriliyor (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Hata</string>\n    <string name=\"chapter_paused\">Duraklatıldı</string>\n    <string name=\"show_title\">Kaynak başlığı</string>\n    <string name=\"show_chapter_number\">Bölüm numarası</string>\n    <string name=\"sort_by_source\">Kaynağa göre</string>\n    <string name=\"sort_by_number\">Bölüm numarasına göre</string>\n    <string name=\"manga_download\">İndir</string>\n    <string name=\"download_unread\">Okunmamış</string>\n    <string name=\"confirm_delete_chapters\">Seçilen bölümleri silmek istediğinize emin misiniz?</string>\n    <string name=\"manga_tracking_tab\">İzleme</string>\n    <string name=\"reading\">Okunuyor</string>\n    <string name=\"completed\">Tamamlandı</string>\n    <string name=\"dropped\">Bırakıldı</string>\n    <string name=\"on_hold\">Beklemede</string>\n    <string name=\"plan_to_read\">Planlanıyor</string>\n    <string name=\"repeating\">Yeniden okunuyor</string>\n    <string name=\"score\">Puan</string>\n    <string name=\"title\">Başlık</string>\n    <string name=\"status\">Durum</string>\n    <string name=\"track_status\">Durum</string>\n    <string name=\"track_type\">Tür</string>\n    <string name=\"error_category_exists\">Bu adda bir kategori zaten var!</string>\n    <string name=\"snack_categories_deleted\">Kategoriler silindi</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Bu, bu bölümün okunma tarihini kaldıracak. Emin misiniz?</string>\n    <string name=\"dialog_with_checkbox_reset\">Bu girdi için tüm bölümleri sıfırla</string>\n    <string name=\"snack_add_to_library\">Kitaplığa ekle?</string>\n    <string name=\"picture_saved\">Görsel kaydedildi</string>\n    <string name=\"custom_filter\">Özel filtre</string>\n    <string name=\"set_as_cover\">Kapak olarak ayarla</string>\n    <string name=\"cover_updated\">Kapak güncellendi</string>\n    <string name=\"chapter_progress\">Sayfa: %1$d</string>\n    <string name=\"no_next_chapter\">Sonraki bölüm bulunamadı</string>\n    <string name=\"decode_image_error\">Bu görsel yüklenemedi</string>\n    <string name=\"confirm_set_image_as_cover\">Bu görsel kapak resmi olarak kullanılsın mı?</string>\n    <string name=\"migration_dialog_what_to_include\">Dahil edilecek veri seç</string>\n    <string name=\"migrate\">Taşı</string>\n    <string name=\"copy\">Kopyala</string>\n    <string name=\"download_queue_error\">Bölümler indirilemedi. İndirmeler bölümünden yeniden deneyebilirsiniz</string>\n    <string name=\"notification_new_chapters\">Yeni bölümler bulundu</string>\n    <string name=\"notification_cover_update_failed\">Kapak güncellenemedi</string>\n    <string name=\"notification_first_add_to_library\">Lütfen bunu yapmadan önce girdiyi kitaplığınıza ekleyin</string>\n    <string name=\"file_select_cover\">Kapak görselini seç</string>\n    <string name=\"file_select_backup\">Yedek dosyasını seç</string>\n    <string name=\"update_check_confirm\">İndir</string>\n    <string name=\"update_check_no_new_updates\">Yeni güncelleme yok</string>\n    <string name=\"update_check_notification_download_in_progress\">İndiriliyor…</string>\n    <string name=\"update_check_notification_download_complete\">Güncellemeyi yüklemek için dokunun</string>\n    <string name=\"update_check_notification_download_error\">İndirme hatası</string>\n    <string name=\"update_check_notification_update_available\">Yeni sürüm var!</string>\n    <string name=\"information_no_downloads\">İndirme yok</string>\n    <string name=\"information_no_recent\">Yeni güncelleme yok</string>\n    <string name=\"information_no_recent_manga\">Yakında okunan yok</string>\n    <string name=\"information_empty_library\">Kitaplığınız boş</string>\n    <string name=\"information_empty_category\">Kategoriniz yok. Kitaplığınızı düzenlemek için artı düğmesine basarak bir tane oluşturun.</string>\n    <string name=\"download_notifier_downloader_title\">İndirici</string>\n    <string name=\"download_notifier_title_error\">Hata</string>\n    <string name=\"download_notifier_unknown_error\">Bölüm, beklenmeyen hata sonucu indirilemedi</string>\n    <string name=\"download_notifier_text_only_wifi\">Kablosuz ağ bağlantısı yok</string>\n    <string name=\"download_notifier_no_network\">Ağ bağlantısı yok</string>\n    <string name=\"download_notifier_download_paused\">İndirmeler duraklatıldı</string>\n    <string name=\"channel_common\">Genel</string>\n    <string name=\"transition_finished\">Tamamlandı:</string>\n    <string name=\"transition_current\">Şimdiki:</string>\n    <string name=\"transition_next\">Sıradaki:</string>\n    <string name=\"transition_previous\">Önceki:</string>\n    <string name=\"transition_no_next\">Sonraki bölüm yok</string>\n    <string name=\"transition_no_previous\">Önceki bölüm yok</string>\n    <string name=\"transition_pages_loading\">Sayfalar yükleniyor…</string>\n    <string name=\"transition_pages_error\">Sayfalar yüklenemedi: %1$s</string>\n    <string name=\"pref_read_with_long_tap\">Uzun dokununca eylemleri göster</string>\n    <string name=\"action_open_in_web_view\">WebView ile aç</string>\n    <string name=\"pref_skip_read_chapters\">Okundu olarak işaretlenmiş bölümleri atla</string>\n    <string name=\"pref_color_filter_mode\">Renk filtresi karışım modu</string>\n    <string name=\"filter_mode_overlay\">Kaplama</string>\n    <string name=\"filter_mode_multiply\">Çoğalt</string>\n    <string name=\"filter_mode_screen\">Ekran</string>\n    <string name=\"filter_mode_lighten\">Soldurma / Açıklaştırma</string>\n    <string name=\"filter_mode_darken\">Yanma / Koyulaştırma</string>\n    <string name=\"label_help\">Yardım</string>\n    <string name=\"no_results_found\">Sonuç bulunmadı</string>\n    <string name=\"migration_selection_prompt\">Taşımak için bir kaynak seçin</string>\n    <string name=\"action_webview_back\">Geri</string>\n    <string name=\"action_webview_forward\">İleri</string>\n    <string name=\"action_webview_refresh\">Yenile</string>\n    <string name=\"pref_category_library\">Kitaplık</string>\n    <string name=\"ext_obsolete\">Geçersiz</string>\n    <string name=\"obsolete_extension_message\">Bu uzantı artık kullanılamıyor. Düzgün çalışmayabilir ve uygulamada sorunlara neden olabilir. Kaldırılması önerilir.</string>\n    <string name=\"pref_date_format\">Tarih biçimi</string>\n    <string name=\"pref_category_library_update\">Genel güncelleme</string>\n    <string name=\"logout_title\">%1$s \\'den çıkılsın mı?</string>\n    <string name=\"logout\">Çıkış yap</string>\n    <string name=\"logout_success\">Çıkış yaptınız</string>\n    <string name=\"paused\">Duraklatıldı</string>\n    <string name=\"label_more\">Daha Çok</string>\n    <string name=\"action_sort_latest_chapter\">Son bölüm</string>\n    <string name=\"action_view_chapters\">Bölümleri görüntüle</string>\n    <string name=\"action_cancel_all\">Tümünü iptal et</string>\n    <string name=\"theme_light\">Açık</string>\n    <string name=\"theme_dark\">Koyu</string>\n    <string name=\"theme_system\">Sistem</string>\n    <string name=\"pref_manage_notifications\">Bildirimleri yönet</string>\n    <string name=\"pref_category_security\">Güvenlik ve gizlilik</string>\n    <string name=\"lock_with_biometrics\">Kilit açma gerektir</string>\n    <string name=\"lock_when_idle\">Boştayken kilitle</string>\n    <string name=\"lock_always\">Her zaman</string>\n    <string name=\"lock_never\">Asla</string>\n    <string name=\"secure_screen\">Güvenli ekran</string>\n    <string name=\"ext_updates_pending\">Bekleyen güncellemeler</string>\n    <string name=\"pref_cutout_short\">Ekran kesimi bölgesinde içerik göster</string>\n    <string name=\"information_cloudflare_bypass_failure\">Cloudflare geçilemedi</string>\n    <string name=\"information_webview_outdated\">Daha iyi uyumluluk için lütfen WebView uygulamasını güncelleyin</string>\n    <string name=\"channel_new_chapters\">Bölüm güncellemeleri</string>\n    <string name=\"secure_screen_summary\">Güvenli ekran, uygulamalar arasında geçiş yaparken uygulama içeriğini gizler ve ekran görüntüsü alınmasını engeller</string>\n    <string name=\"pref_category_display\">Ekran</string>\n    <string name=\"notification_chapters_single\">Bölüm %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Bölüm %1$s ve %2$d daha</string>\n    <string name=\"notification_chapters_multiple\">Bölüm %1$s</string>\n    <string name=\"hide_notification_content\">Bildirim içeriğini gizle</string>\n    <string name=\"pref_disable_battery_optimization\">Pil iyileştirmesini devre dışı bırak</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Arka plan kitaplık güncellemelerine ve yedeklemelere yardım eder</string>\n    <string name=\"battery_optimization_disabled\">Pil iyileştirmesi zaten devre dışı</string>\n    <string name=\"email\">E-posta adresi</string>\n    <string name=\"pref_always_show_chapter_transition\">Bölüm geçişini her zaman göster</string>\n    <string name=\"action_menu\">Menü</string>\n    <string name=\"action_newest\">En yeni</string>\n    <string name=\"action_oldest\">En eski</string>\n    <string name=\"action_move_to_top\">En üste taşı</string>\n    <string name=\"action_move_to_bottom\">En alta taşı</string>\n    <string name=\"channel_ext_updates\">Uzantı güncellemeleri</string>\n    <string name=\"updating_library\">Kitaplık güncelleniyor</string>\n    <string name=\"pref_category_reading\">Okuma</string>\n    <string name=\"pref_skip_filtered_chapters\">Filtrelenmiş bölümleri atla</string>\n    <string name=\"label_sources\">Kaynaklar</string>\n    <string name=\"action_select_inverse\">Tersini seç</string>\n    <string name=\"vertical_plus_viewer\">Aralıklı uzun şerit</string>\n    <string name=\"pref_webtoon_side_padding\">Kenar boşluğu</string>\n    <string name=\"pinned_sources\">Sabitlenmiş</string>\n    <string name=\"action_unpin\">Sabitlemeyi kaldır</string>\n    <string name=\"action_pin\">Sabitle</string>\n    <string name=\"add_tracking\">İzleyici ekle</string>\n    <string name=\"in_library\">Kitaplıkta</string>\n    <string name=\"add_to_library\">Kitaplığa ekle</string>\n    <string name=\"manga_info_collapse\">Daha az</string>\n    <string name=\"manga_info_expand\">Daha fazla</string>\n    <string name=\"website\">Web sitesi</string>\n    <string name=\"information_webview_required\">Uygulamanın çalışabilmesi için WebView gereklidir</string>\n    <string name=\"licenses\">Açık kaynak lisansları</string>\n    <string name=\"label_downloaded_only\">Yalnızca indirilen</string>\n    <string name=\"recent_manga_time\">Böl. %1$s - %2$s</string>\n    <string name=\"restoring_backup_error\">Yedek geri yüklenemedi</string>\n    <string name=\"creating_backup_error\">Yedekleme başarısız</string>\n    <string name=\"restoring_backup_canceled\">Geri yükleme iptal edildi</string>\n    <string name=\"restore_in_progress\">Geri yükleme zaten devam ediyor</string>\n    <string name=\"backup_in_progress\">Yedekleme zaten devam ediyor</string>\n    <string name=\"check_for_updates\">Güncellemeleri kontrol et</string>\n    <string name=\"last_used_source\">Son kullanılan</string>\n    <string name=\"local_source_help_guide\">Yerel kaynak kılavuzu</string>\n    <string name=\"restore_duration\">%1$02d dk, %2$02d sn</string>\n    <string name=\"downloaded_only_summary\">Kitaplığınızdaki tüm girdileri filtreler</string>\n    <string name=\"gray_background\">Gri</string>\n    <string name=\"viewer\">Okuma modu</string>\n    <string name=\"pref_category_for_this_series\">Bu seri için</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Cihaz ayarları açılamadı</string>\n    <string name=\"tracking_info\">Bölüm ilerlemesini harici izleyici hizmetlerine güncellemek için tek yönlü eşitleme. Her girdinin izleme düğmesinden izlemeyi ayarlayın.</string>\n    <string name=\"pref_refresh_library_covers\">Kitaplıktakilerin kapaklarını yenile</string>\n    <string name=\"sort_by_upload_date\">Yükleme tarihine göre</string>\n    <string name=\"label_data\">Veri</string>\n    <string name=\"backup_restore_missing_sources\">Eksik kaynaklar:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Yedek, bir kitaplık girdisi içermiyor.</string>\n    <string name=\"invalid_backup_file\">Geçersiz yedekleme dosyası:</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Kitaplığı güncellerken yeni kapak ve ayrıntılar için kontrol et</string>\n    <string name=\"pref_library_update_refresh_metadata\">Üst veriyi otomatik yenile</string>\n    <string name=\"action_migrate\">Taşı</string>\n    <string name=\"action_display_comfortable_grid\">Rahat ızgara</string>\n    <string name=\"tabs_header\">Sekmeler</string>\n    <string name=\"action_display_show_tabs\">Kategori sekmelerini göster</string>\n    <string name=\"page_list_empty_error\">Sayfa bulunamadı</string>\n    <string name=\"action_disable_all\">Tümünü devre dışı bırak</string>\n    <string name=\"action_enable_all\">Tümünü etkinleştir</string>\n    <string name=\"pref_show_reading_mode_summary\">Okuyucu açılınca kısaca okuma modunu göster</string>\n    <string name=\"pref_show_reading_mode\">Okuma modunu göster</string>\n    <string name=\"action_start\">Başla</string>\n    <string name=\"loader_not_implemented_error\">Kaynak bulunamadı</string>\n    <string name=\"action_disable\">Devre dışı bırak</string>\n    <string name=\"requires_app_restart\">Etkili olması için uygulamanın yeniden başlatılmasını gerektirir</string>\n    <string name=\"label_network\">Ağ</string>\n    <string name=\"tapping_inverted_none\">Hiçbiri</string>\n    <string name=\"pref_read_with_tapping_inverted\">Dokunma bölgelerini ters çevir</string>\n    <string name=\"tapping_inverted_both\">İkisi de</string>\n    <string name=\"tapping_inverted_vertical\">Dikey</string>\n    <string name=\"tapping_inverted_horizontal\">Yatay</string>\n    <string name=\"unknown_status\">Bilinmeyen durum</string>\n    <string name=\"unknown_author\">Bilinmeyen yazar</string>\n    <string name=\"updated_version\">v%1$s sürümüne güncellendi</string>\n    <string name=\"whats_new\">Yenilikler</string>\n    <string name=\"download_insufficient_space\">Depolama alanı az olduğu için bölümler indirilemedi</string>\n    <string name=\"action_sort_date_added\">Eklendiği tarih</string>\n    <string name=\"action_global_search_query\">\\\"%1$s\\\" için genel arama</string>\n    <string name=\"pref_category_reading_mode\">Okuma modu</string>\n    <string name=\"pref_category_theme\">Tema</string>\n    <string name=\"no_pinned_sources\">Sabitlenmiş kaynağınız yok</string>\n    <string name=\"channel_complete\">Tamamlandı</string>\n    <string name=\"channel_progress\">İlerleme</string>\n    <string name=\"channel_errors\">Hatalar</string>\n    <string name=\"backup_restore_missing_trackers\">Giriş yapılmamış izleyiciler:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Yer imi eklenmiş bölümleri silmeye izin ver</string>\n    <string name=\"pref_category_delete_chapters\">Bölümleri sil</string>\n    <string name=\"ext_nsfw_warning\">Bu uzantıdaki kaynaklar yetişkin içerik (18+) içerebilir</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Bu, resmî olmayan veya yanlış işaretlenmiş uzantıların uygulama içinde yetişkin içeriği (18+) göstermesini engellemez.</string>\n    <string name=\"no_chapters_error\">Bölüm bulunamadı</string>\n    <string name=\"chapter_settings_updated\">Varsayılan bölüm ayarları güncellendi</string>\n    <string name=\"set_chapter_settings_as_default\">Varsayılan olarak ayarla</string>\n    <string name=\"also_set_chapter_settings_for_library\">Ayrıca kitaplığımdaki tüm girdilere uygula</string>\n    <string name=\"confirm_set_chapter_settings\">Bu ayarları varsayılan olarak kaydetmek istediğinizden emin misiniz?</string>\n    <string name=\"chapter_settings\">Bölüm ayarları</string>\n    <string name=\"share_page_info\">%1$s: %2$s, sayfa %3$d</string>\n    <string name=\"action_search_settings\">Ayarlarda ara</string>\n    <string name=\"downloaded_chapters\">İndirilen bölümler</string>\n    <string name=\"manga_from_library\">Kitaplıktan</string>\n    <string name=\"pref_incognito_mode_summary\">Okuma geçmişini duraklatır</string>\n    <string name=\"pref_incognito_mode\">Gizli mod</string>\n    <string name=\"pref_clear_history\">Geçmişi temizle</string>\n    <string name=\"clear_history_confirmation\">Emin misiniz? Tüm geçmiş kaybolacak.</string>\n    <string name=\"clear_history_completed\">Geçmiş temizlendi</string>\n    <string name=\"spen_next_page\">Sonraki sayfa</string>\n    <string name=\"spen_previous_page\">Önceki sayfa</string>\n    <string name=\"migration_help_guide\">Kaynak taşıma kılavuzu</string>\n    <string name=\"pref_category_nsfw_content\">Yetişkin içerik (18+) kaynakları</string>\n    <string name=\"pref_show_nsfw_source\">Kaynaklar ve uzantılar listelerinde göster</string>\n    <string name=\"file_picker_error\">Dosya seçme uygulaması bulunamadı</string>\n    <string name=\"myanimelist_relogin\">Lütfen MAL\\'a tekrar giriş yapın</string>\n    <string name=\"pref_viewer_nav\">Dokunma bölgeleri</string>\n    <string name=\"edge_nav\">Kenar</string>\n    <string name=\"kindlish_nav\">Kindle gibi</string>\n    <string name=\"l_nav\">L şeklinde</string>\n    <string name=\"track_finished_reading_date\">Bitirme tarihi</string>\n    <string name=\"track_started_reading_date\">Başlama tarihi</string>\n    <string name=\"pref_dump_crash_logs_summary\">Geliştiricilerle paylaşmak için hata günlüklerini bir dosyaya kaydeder</string>\n    <string name=\"pref_dump_crash_logs\">Çökme günlüklerini paylaş</string>\n    <string name=\"action_desc\">Azalan</string>\n    <string name=\"action_asc\">Artan</string>\n    <string name=\"action_order_by_chapter_number\">Bölüm numarasına göre</string>\n    <string name=\"action_order_by_upload_date\">Yükleme tarihine göre</string>\n    <string name=\"action_filter_tracked\">İzleniyor</string>\n    <string name=\"action_display_show_number_of_items\">Öge sayısını göster</string>\n    <string name=\"right_and_left_nav\">Sağ ve Sol</string>\n    <string name=\"pref_dual_page_split\">Geniş sayfaları böl</string>\n    <string name=\"pref_dual_page_invert_summary\">Bölünmüş geniş sayfaların sırası okuma yönüyle uyuşmuyorsa</string>\n    <string name=\"pref_dual_page_invert\">Bölünmüş sayfa sırasını ters çevir</string>\n    <string name=\"backup_restore_content_full\">Daha sonra kullanmak için eksik uzantıları yüklemeniz ve izleyici hizmetlerinde oturum açmanız gerekebilir.</string>\n    <string name=\"nav_zone_right\">Sağ</string>\n    <string name=\"nav_zone_left\">Sol</string>\n    <string name=\"nav_zone_next\">Sonraki</string>\n    <string name=\"nav_zone_prev\">Önceki</string>\n    <string name=\"pref_show_navigation_mode_summary\">Okuyucu açıldığında kısaca göster</string>\n    <string name=\"pref_show_navigation_mode\">Dokunma bölgelerini göster</string>\n    <string name=\"pref_dns_over_https\">HTTPS üzerinden DNS (DoH)</string>\n    <string name=\"exclude\">Hariç tut: %s</string>\n    <string name=\"include\">Dahil et: %s</string>\n    <string name=\"none\">Hiçbiri</string>\n    <string name=\"action_sort_chapter_fetch_date\">Bölümün alındığı tarih</string>\n    <string name=\"pref_download_new_categories_details\">Hariç tutulan kategorilerdeki girdiler, dahil edilen kategorilerde olsa bile indirilmeyecektir.</string>\n    <string name=\"pref_category_auto_download\">Otomatik indir</string>\n    <string name=\"pref_library_update_categories_details\">Hariç tutulan kategorilerdeki girdiler, dahil edilen kategorilerde de olsa bile güncellenmeyecektir.</string>\n    <string name=\"action_show_errors\">Ayrıntıları görmek için dokun</string>\n    <string name=\"update_check_eol\">Bu Android sürümü artık desteklenmiyor</string>\n    <string name=\"clipboard_copy_error\">Panoya kopyalanamadı</string>\n    <string name=\"rotation_landscape\">Manzara</string>\n    <string name=\"rotation_portrait\">Portre</string>\n    <string name=\"rotation_type\">Yön</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Girdilerin başlığına göre klasör oluşturur</string>\n    <string name=\"pref_create_folder_per_manga\">Sayfaları ayrı klasörlere kaydet</string>\n    <string name=\"pref_reader_actions\">Eylemler</string>\n    <string name=\"pref_grayscale\">Gri tonlama</string>\n    <string name=\"notification_incognito_text\">Gizli modu devre dışı bırak</string>\n    <string name=\"automatic_background\">Otomatik</string>\n    <string name=\"cancel_all_for_series\">Bu seri için tümünü iptal et</string>\n    <string name=\"error_no_match\">Eşleşme bulunamadı</string>\n    <string name=\"source_unsupported\">Kaynak desteklenmiyor</string>\n    <string name=\"unread\">Okunmamış</string>\n    <string name=\"date\">Tarih</string>\n    <string name=\"local_filter_order_by\">Sıralama ölçütü</string>\n    <string name=\"local_invalid_format\">Geçersiz bölüm biçimi</string>\n    <string name=\"chapter_not_found\">Bölüm bulunamadı</string>\n    <string name=\"restrictions\">Kısıtlamalar: %s</string>\n    <string name=\"action_display_local_badge\">Yerel kaynak</string>\n    <string name=\"on\">Açık</string>\n    <string name=\"off\">Kapalı</string>\n    <string name=\"error_sharing_cover\">Kapak paylaşılamadı</string>\n    <string name=\"error_saving_cover\">Kapak kaydedilemedi</string>\n    <string name=\"cover_saved\">Kapak kaydedildi</string>\n    <string name=\"manga_cover\">Kapak</string>\n    <string name=\"categorized_display_settings\">Her kategori için ayrı sıralama ayarları</string>\n    <string name=\"tracking_guide\">İzleyici kılavuzu</string>\n    <string name=\"information_empty_category_dialog\">Henüz bir kategoriniz yok.</string>\n    <string name=\"action_start_downloading_now\">Şimdi indirmeye başla</string>\n    <string name=\"about_dont_kill_my_app\">Bazı üreticilerin arka plan hizmetlerini durduran ek uygulama kısıtlamaları vardır. Bu web sitesi bu durumun nasıl düzeltileceği hakkında daha fazla bilgi verir.</string>\n    <string name=\"restore_miui_warning\">MIUI iyileştirmesi devre dışıysa yedekleme/geri yükleme düzgün çalışmayabilir.</string>\n    <string name=\"enhanced_tracking_info\">Belirli kaynaklar için gelişmiş özellikler sağlar. Girdiler, kitaplığınıza eklendiğinde otomatik olarak izlenir.</string>\n    <string name=\"enhanced_services\">Gelişmiş izleyiciler</string>\n    <string name=\"pref_dark_theme_pure_black\">Tamamen karanlık koyu mod</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"theme_yinyang\">Yin &amp; Yang</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">Çilekli Kokteyl</string>\n    <string name=\"theme_midnightdusk\">Alacakaranlık</string>\n    <string name=\"theme_greenapple\">Yeşil Elma</string>\n    <string name=\"theme_monet\">Dinamik</string>\n    <string name=\"pref_app_theme\">Uygulama teması</string>\n    <string name=\"label_background_activity\">Arka plan etkinliği</string>\n    <string name=\"pref_lowest\">En düşük</string>\n    <string name=\"pref_low\">Düşük</string>\n    <string name=\"pref_high\">Yüksek</string>\n    <string name=\"pref_highest\">En yüksek</string>\n    <string name=\"pref_hide_threshold\">Kaydırmada menüyü gizleme duyarlılığı</string>\n    <string name=\"pref_inverted_colors\">Ters Çevrilmiş</string>\n    <string name=\"relative_time_today\">Bugün</string>\n    <string name=\"theme_tealturquoise\">Ördekbaşı &amp; Turkuaz</string>\n    <string name=\"confirm_lock_change\">Değişikliği onaylamak için kimlik doğrula</string>\n    <string name=\"label_default\">Varsayılan</string>\n    <string name=\"pref_category_appearance\">Görünüm</string>\n    <string name=\"action_track\">İzle</string>\n    <string name=\"getting_started_guide\">Başlangıç kılavuzu</string>\n    <string name=\"pref_tablet_ui_mode\">Tablet arayüzü</string>\n    <string name=\"pref_remove_exclude_categories\">Hariç tutulan kategoriler</string>\n    <string name=\"help_translate\">Çeviriye yardım edin</string>\n    <string name=\"ext_app_info\">Uygulama bilgisi</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Uzantı yükleyicisi olarak Shizuku\\'yu kullanmak için Shizuku\\'yu yükleyin ve başlatın.</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku çalışmıyor</string>\n    <string name=\"ext_installer_legacy\">Eski</string>\n    <string name=\"ext_installer_pref\">Yükleyici</string>\n    <string name=\"ext_install_service_notif\">Uzantı yükleniyor…</string>\n    <string name=\"action_sort_count\">Toplam girdi</string>\n    <string name=\"label_warning\">Uyarı</string>\n    <string name=\"action_display_language_badge\">Dil</string>\n    <string name=\"backup_info\">Yedeklerin kopyalarını başka yerlerde de tutmalısınız. Yedekler, şifreler dahil olmak üzere hassas verileri içerebilirler; paylaşıyorsanız dikkat edin.</string>\n    <string name=\"notification_size_warning\">Büyük güncellemeler kaynaklara zarar verir ve daha yavaş güncellemelere ve ayrıca pil kullanımının artmasına neden olabilir. Daha fazla bilgi için dokunun.</string>\n    <string name=\"pref_verbose_logging\">Ayrıntılı günlük kaydı</string>\n    <string name=\"pref_verbose_logging_summary\">Ayrıntılı günlükleri sistem günlüğüne yaz (uygulama performansını düşürür)</string>\n    <string name=\"connected_to_wifi\">Yalnızca kablosuz ağda</string>\n    <string name=\"download_queue_size_warning\">Uyarı: Büyük toplu indirmeler kaynakların yavaşlamasına ve/veya %s\\'u engellemesine neden olabilir. Daha fazla bilgi için dokunun.</string>\n    <string name=\"update_72hour\">3 günde bir</string>\n    <string name=\"ext_update_all\">Tümünü güncelle</string>\n    <string name=\"channel_app_updates\">Uygulama güncellemeleri</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Uygulama başlatıldığında bölüm önbelleğini temizle</string>\n    <string name=\"clear_database_source_item_count\">Veri tabanında %1$d kitaplık dışı girdi</string>\n    <string name=\"database_clean\">Temizlenecek bir şey yok</string>\n    <string name=\"extension_api_error\">Kullanılabilir uzantılar alınamadı</string>\n    <string name=\"save_chapter_as_cbz\">CBZ arşivi olarak kaydet</string>\n    <string name=\"publishing_finished\">Yayımı tamamlandı</string>\n    <string name=\"privacy_policy\">Gizlilik politikası</string>\n    <string name=\"cancelled\">İptal edildi</string>\n    <string name=\"on_hiatus\">Molada</string>\n    <string name=\"action_show_manga\">Girdiyi göster</string>\n    <string name=\"library_errors_help\">Kitaplık güncelleme hatalarının nasıl düzeltileceği konusunda yardım için bkz. %1$s</string>\n    <string name=\"action_display_cover_only_grid\">Izgara (Yalnızca kapak)</string>\n    <string name=\"pref_update_only_completely_read\">Okunmamış bölümü olan girdileri atla</string>\n    <string name=\"pref_update_only_started\">Başlanmamış girdileri atla</string>\n    <string name=\"skipped_reason_completed\">Seri tamamlandığı için atlandı</string>\n    <string name=\"skipped_reason_not_caught_up\">Okunmamış bölümler olduğu için atlandı</string>\n    <string name=\"skipped_reason_not_started\">Hiçbir bölüm okunmadığı için atlandı</string>\n    <string name=\"pref_navigate_pan\">Geniş görselleri kaydır</string>\n    <string name=\"pref_landscape_zoom\">Geniş görsellere otomatik yakınlaştır</string>\n    <string name=\"notification_update_error\">%1$d güncelleme başarısız oldu</string>\n    <string name=\"learn_more\">Daha fazla bilgi için dokunun</string>\n    <string name=\"rotation_reverse_portrait\">Ters portre</string>\n    <string name=\"action_move_to_top_all_for_series\">Seriyi en üste taşı</string>\n    <string name=\"disabled_nav\">Devre dışı</string>\n    <string name=\"error_saving_picture\">Görsel kaydedilirken hata oluştu</string>\n    <string name=\"empty_backup_error\">Yedeklenecek kitaplık girdisi yok</string>\n    <string name=\"update_check_open\">GitHub\\'da aç</string>\n    <string name=\"webview_data_deleted\">WebView verileri temizlendi</string>\n    <string name=\"pref_clear_webview_data\">WebView verilerini temizle</string>\n    <string name=\"action_close\">Kapat</string>\n    <string name=\"source_filter_empty_screen\">Yüklü kaynak bulunamadı</string>\n    <string name=\"source_empty_screen\">Kaynak bulunamadı</string>\n    <string name=\"action_sort_last_manga_update\">Son güncelleme kontrolü</string>\n    <string name=\"action_sort_unread_count\">Okunmamış sayısı</string>\n    <string name=\"split_tall_images_summary\">Okuyucu performansını iyileştirir</string>\n    <string name=\"download_notifier_split_page_not_found\">Bölünürken %d. sayfa bulunamadı</string>\n    <string name=\"download_notifier_split_page_path_not_found\">%d. sayfa için dosya yolu bulunamadı</string>\n    <string name=\"pref_reset_viewer_flags\">Her seri için okuyucu ayarlarını sıfırla</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Tüm serilerin okuma modunu ve yönünü sıfırlar</string>\n    <string name=\"pref_reset_viewer_flags_success\">Tüm okuyucu ayarları sıfırlandı</string>\n    <string name=\"pref_reset_viewer_flags_error\">Okuyucu ayarları sıfırlanamadı</string>\n    <string name=\"empty_screen\">Peki, bu garip</string>\n    <string name=\"ext_info_version\">Sürüm</string>\n    <string name=\"ext_info_language\">Dil</string>\n    <string name=\"ext_info_age_rating\">Yaş derecelendirmesi</string>\n    <string name=\"wish_list\">İstek Listesi</string>\n    <string name=\"on_hold_list\">Beklemede Listesi</string>\n    <string name=\"unfinished_list\">Bitirilmemiş Listesi</string>\n    <string name=\"complete_list\">Tamamlanmış Listesi</string>\n    <string name=\"reading_list\">Okuma Listesi</string>\n    <string name=\"network_not_metered\">Yalnızca tarifesiz ağda</string>\n    <string name=\"cant_open_last_read_chapter\">Son okunan bölüm açılamıyor</string>\n    <string name=\"custom_cover\">Özel kapak</string>\n    <string name=\"not_installed\">Yüklü değil</string>\n    <string name=\"pref_app_language\">Uygulama dili</string>\n    <string name=\"description_placeholder\">Açıklama yok</string>\n    <string name=\"theme_lavender\">Lavanta</string>\n    <string name=\"delete_category\">Kategoriyi sil</string>\n    <string name=\"delete_category_confirmation\">\\\"%s\\\" kategorisini silmek istiyor musunuz?</string>\n    <string name=\"internal_error\">İç Hata: Daha çok bilgi için çökme günlüklerine bakın</string>\n    <string name=\"pref_user_agent_string\">Varsayılan kullanıcı aracısı</string>\n    <string name=\"pref_reset_user_agent_string\">Varsayılan kullanıcı aracısını sıfırla</string>\n    <string name=\"action_remove_everything\">Her şeyi kaldır</string>\n    <string name=\"appwidget_unavailable_locked\">Uygulama kilidi etkinleştirildiğinde widget kullanılamıyor</string>\n    <string name=\"appwidget_updates_description\">Son güncellenen kitaplık girdilerinizi görün</string>\n    <string name=\"update_already_running\">Bir güncelleme zaten çalışıyor</string>\n    <string name=\"error_user_agent_string_blank\">Kullanıcı aracısı boş olamaz</string>\n    <string name=\"theme_tidalwave\">Gelgit Dalgası</string>\n    <string name=\"download_ahead\">Önceden indir</string>\n    <string name=\"auto_download_while_reading\">Okurken otomatik indir</string>\n    <string name=\"download_ahead_info\">Yalnızca geçerli bölüm ile bir sonraki bölüm zaten indirildiyse çalışır.</string>\n    <string name=\"are_you_sure\">Emin misiniz?</string>\n    <string name=\"remove_manga\">\\\"%s\\\" girdisini kitaplığınızdan kaldırmak üzeresiniz</string>\n    <string name=\"updates_last_update_info\">Son kitaplık güncelleme: %s</string>\n    <string name=\"multi_lang\">Çoklu</string>\n    <string name=\"popular\">Popüler</string>\n    <string name=\"missing_storage_permission\">Depolama izinleri verilmedi</string>\n    <string name=\"skipped_reason_not_always_update\">Seri güncelleme gerektirmediği için atlandı</string>\n    <string name=\"action_search_hint\">Ara…</string>\n    <string name=\"pref_backup_summary\">Elle ve otomatik yedeklemeler, depolama alanı</string>\n    <string name=\"pref_security_summary\">Uygulama kilidi, güvenli ekran</string>\n    <string name=\"pref_advanced_summary\">Çökme günlükleri dökümü, pil iyileştirmeleri</string>\n    <string name=\"pref_library_summary\">Kategoriler, genel güncelleme, kaydırma kontrolleri</string>\n    <string name=\"pref_browse_summary\">Kaynaklar, uzantılar, genel arama</string>\n    <string name=\"pref_downloads_summary\">Otomatik indirme, önceden indirme</string>\n    <string name=\"pref_reader_summary\">Okuma modu, görüntüleme, gezinme</string>\n    <string name=\"pref_appearance_summary\">Tema, tarih ve saat biçimi</string>\n    <string name=\"pref_tracking_summary\">Tek yönlü ilerleme eşitlemesi, gelişmiş eşitleme</string>\n    <string name=\"crash_screen_restart_application\">Uygulamayı yeniden başlat</string>\n    <string name=\"crash_screen_title\">Tüh!</string>\n    <string name=\"crash_screen_description\">%s beklenmeyen bir hatayla karşılaştı. Çökme günlüklerini Discord\\'daki destek kanalımızda paylaşmanızı öneririz.</string>\n    <string name=\"unknown_title\">Bilinmeyen başlık</string>\n    <string name=\"invalid_location\">Geçersiz konum: %s</string>\n    <string name=\"error_user_agent_string_invalid\">Geçersiz kullanıcı aracısı</string>\n    <string name=\"updates_last_update_info_just_now\">Şimdi</string>\n    <string name=\"download_notifier_cache_renewal\">İndirilenler kontrol ediliyor</string>\n    <string name=\"action_open_random_manga\">Rastgele girdi aç</string>\n    <string name=\"information_no_entries_found\">Bu kategoride girdi bulunamadı</string>\n    <string name=\"fdroid_warning\">F-Droid derlemeleri desteklenmemektedir.\n\\nDaha fazla bilgi için dokunun.</string>\n    <string name=\"action_display_show_continue_reading_button\">Okumaya devam et butonu</string>\n    <string name=\"track_remove_date_conf_title\">Tarih kaldırılsın mı?</string>\n    <string name=\"track_remove_start_date_conf_text\">Bu, daha önce seçtiğiniz başlangıç tarihini şuradan kaldıracak: %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Bu, daha önce seçtiğiniz bitirme tarihini şuradan kaldıracak: %s</string>\n    <string name=\"pref_invalidate_download_cache\">İndirmeleri tekrar kontrol et</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Uygulamayı indirilen bölümleri yeniden kontrol etmeye zorla</string>\n    <string name=\"label_stats\">İstatistikler</string>\n    <string name=\"label_started\">Başlandı</string>\n    <string name=\"label_downloaded\">İndirilen</string>\n    <string name=\"label_total_chapters\">Toplam</string>\n    <string name=\"label_used\">Kullanılan</string>\n    <string name=\"not_applicable\">Yok</string>\n    <string name=\"day_short\">%dg</string>\n    <string name=\"hour_short\">%dsa</string>\n    <string name=\"label_local\">Yerel</string>\n    <string name=\"label_completed_titles\">Tamamlanan girdiler</string>\n    <string name=\"label_overview_section\">Genel görünüm</string>\n    <string name=\"label_tracker_section\">İzleyiciler</string>\n    <string name=\"label_titles_section\">Girdiler</string>\n    <string name=\"label_read_chapters\">Okundu</string>\n    <string name=\"label_read_duration\">Okuma süresi</string>\n    <string name=\"label_titles_in_global_update\">Genel güncellemede</string>\n    <string name=\"label_tracked_titles\">İzlenen girdiler</string>\n    <string name=\"label_mean_score\">Ortalama puan</string>\n    <string name=\"minute_short\">%ddak</string>\n    <string name=\"seconds_short\">%dsn</string>\n    <string name=\"action_not_now\">Şimdi değil</string>\n    <string name=\"information_no_manga_category\">Kategori boş</string>\n    <string name=\"pref_library_update_show_tab_badge\">Güncellemeler simgesinde okunmayan sayısını göster</string>\n    <string name=\"copied_to_clipboard_plain\">Panoya kopyalandı</string>\n    <string name=\"enhanced_services_not_installed\">Kullanılabilir ancak kaynak yüklü değil: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Yinelenen bölümleri atla</string>\n    <string name=\"track_error\">%1$s hatası: %2$s</string>\n    <string name=\"information_required_plain\">*gerekli</string>\n    <string name=\"pref_hide_in_library_items\">Zaten kitaplıkta bulunan girdileri gizle</string>\n    <string name=\"action_copy_to_clipboard\">Panoya kopyala</string>\n    <string name=\"action_update_category\">Kategoriyi güncelle</string>\n    <string name=\"split_tall_images\">Uzun görselleri böl</string>\n    <string name=\"overlay_header\">Üstünde göster</string>\n    <string name=\"pref_page_rotate\">Geniş sayfaları sığdırmak için döndür</string>\n    <string name=\"pref_page_rotate_invert\">Döndürülen geniş sayfaların yönünü ters çevir</string>\n    <string name=\"pref_debug_info\">Hata ayıklama bilgisi</string>\n    <string name=\"pref_chapter_swipe_end\">Bölümü sağa kaydırma</string>\n    <string name=\"pref_chapter_swipe_start\">Bölümü sola kaydırma</string>\n    <string name=\"pref_double_tap_zoom\">Yakınlaştırmak için iki kez dokun</string>\n    <string name=\"action_set_interval\">Sıklığı ayarla</string>\n    <string name=\"action_filter_interval_custom\">Özel güncelleme sıklığı</string>\n    <string name=\"intervals_header\">Zaman aralıkları</string>\n    <string name=\"action_sort_next_updated\">Sonraki beklenen güncelleme</string>\n    <string name=\"pref_update_only_in_release_period\">Bir sonraki yayınlama zamanını tahmin et</string>\n    <string name=\"action_ok\">TAMAM</string>\n    <string name=\"manga_display_interval_title\">Şu sıklıkla tahmin et:</string>\n    <string name=\"track_delete_title\">%s izlemesi kaldırılsın mı?</string>\n    <string name=\"skipped_reason_not_in_release_period\">Bugün bir yayın beklenmedigi için atlandı</string>\n    <string name=\"track_delete_text\">Bu, izlemeyi yerel olarak kaldıracak.</string>\n    <string name=\"track_delete_remote_text\">Ayrıca şuradan da kaldır: %s</string>\n    <string name=\"manga_display_modified_interval_title\">Şu sıklıkla güncellemeye ayarla:</string>\n    <string name=\"has_results\">Sonuç var</string>\n    <string name=\"delete_downloaded\">İndirilenleri sil</string>\n    <string name=\"create_backup_file_error\">Yedekleme dosyası oluşturulamadı</string>\n    <string name=\"download_cache_invalidated\">İndirme dizini tekrar oluşturuluyor</string>\n    <string name=\"information_cloudflare_help\">Cloudflare ile ilgili yardım için buraya dokunun</string>\n    <string name=\"exception_unknown_host\">%s verisine erişilemedi</string>\n    <string name=\"track_activity_name\">İzleyici girişi</string>\n    <string name=\"library_sync_complete\">Kitaplık eşitlemesi tamamlandı</string>\n    <string name=\"exception_http\">HTTP %d, siteyi WebView\\'de kontrol et</string>\n    <string name=\"exception_offline\">Ağ bağlantısı yok</string>\n    <string name=\"syncing_library\">Kitaplık eşitleniyor</string>\n    <string name=\"unlock_app_title\">%s Kilidini Aç</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Seriyi en alta taşı</string>\n    <string name=\"notification_updating_progress\">Kitaplık güncelleniyor… (%s)</string>\n    <string name=\"file_null_uri_error\">Dosya seçilmedi</string>\n    <string name=\"source_settings\">Kaynak ayarları</string>\n    <string name=\"app_settings\">Uygulama ayarları</string>\n    <string name=\"pref_relative_format\">Göreli zaman damgaları</string>\n    <string name=\"pref_relative_format_summary\">\\\"%2$s\\\" yerine \\\"%1$s\\\"</string>\n    <string name=\"relative_time_span_never\">Asla</string>\n    <string name=\"pref_flash_page_summ\">E-ink ekranlarda gölgelenmeyi azaltır</string>\n    <string name=\"action_apply\">Uygula</string>\n    <string name=\"action_revert_to_default\">Varsayılana dön</string>\n    <string name=\"last_auto_backup_info\">Son otomatik yedekleme: %s</string>\n    <string name=\"no_scanlators_found\">Çeviren bulunamadı</string>\n    <string name=\"scanlator\">Çeviren</string>\n    <string name=\"pref_flash_page\">Sayfa değişiminde ışık çak</string>\n    <string name=\"pref_storage_usage\">Depolama kullanımı</string>\n    <string name=\"action_sort_tracker_score\">İzleyici puanı</string>\n    <string name=\"label_data_storage\">Veri ve depolama</string>\n    <string name=\"exclude_scanlators\">Çevirenleri hariç tut</string>\n    <string name=\"action_create\">Oluştur</string>\n    <string name=\"not_selected\">Seçilmedi</string>\n    <string name=\"action_menu_overflow_description\">Daha fazla seçenek</string>\n    <string name=\"selected\">Seçili</string>\n    <string name=\"pref_storage_location\">Depolama konumu</string>\n    <string name=\"pref_storage_location_info\">Otomatik yedeklemeler, bölüm indirmeleri ve yerel kaynak için kullanılır.</string>\n    <string name=\"action_bar_up_description\">Yukarı git</string>\n    <string name=\"onboarding_storage_action_select\">Klasör seç</string>\n    <string name=\"pref_onboarding_guide\">Başlangıç rehberi</string>\n    <string name=\"onboarding_guides_new_user\">%s\\'da yeni misiniz? Başlangıç rehberine göz atmanızı tavsiye ederiz.</string>\n    <string name=\"onboarding_action_finish\">Başlayın</string>\n    <string name=\"onboarding_storage_selection_required\">Bir klasör seçilmelidir</string>\n    <string name=\"onboarding_heading\">Hoş geldiniz!</string>\n    <string name=\"onboarding_guides_returning_user\">%s\\'u yeniden mi yüklüyorsunuz?</string>\n    <string name=\"onboarding_action_skip\">Atla</string>\n    <string name=\"onboarding_action_next\">Sonraki</string>\n    <string name=\"onboarding_description\">Hadi bazı şeyleri ayarlayalım. Bunları daha sonra ayarlardan da değiştirebilirsiniz.</string>\n    <string name=\"no_location_set\">Depolama konumu ayarlanmadı</string>\n    <string name=\"onboarding_storage_info\">%1$s\\'un bölüm indirmelerini, yedeklemeleri ve daha fazlasını kaydedeceği bir klasör seçin.\n\\n\n\\nYalnızca buna ait bir klasör tavsiye edilir.\n\\n\n\\nSeçilen klasör: %2$s</string>\n    <string name=\"onboarding_permission_notifications\">Bildirim izni</string>\n    <string name=\"onboarding_permission_install_apps\">Uygulama yükleme izni</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Uzun süren kitaplık güncellemelerinin, indirmelerin, yedeklemelerin ve geri yüklemelerinin kesintiye uğramasını önleyin.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Arka planda pil kullanımı</string>\n    <string name=\"onboarding_permission_install_apps_description\">Kaynak uzantılarını yüklemek için.</string>\n    <string name=\"onboarding_permission_notifications_description\">Kitaplık güncellemeleri ve daha fazlası için bildirim alın.</string>\n    <string name=\"onboarding_permission_action_grant\">İzin Ver</string>\n    <string name=\"available_disk_space_info\">Kullanılabilir: %1$s / Toplam: %2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">Uzantıları yüklemek için izin gerekli. İzin vermek için buraya dokunun.</string>\n    <string name=\"private_settings\">Hassas ayarları dahil et (örn. izleyici oturum açma bilgileri)</string>\n    <string name=\"manga_interval_expected_update\">Sonraki bölümlerin %1$s içinde yayınlanacağı tahmin ediliyor, her %2$s içinde bir kontrol ediliyor.</string>\n    <string name=\"invalid_backup_file_error\">Tüm hata:</string>\n    <string name=\"information_empty_repos\">Hiç depo ayarlamadınız.</string>\n    <string name=\"onboarding_storage_help_action\">Depolama kılavuzu</string>\n    <string name=\"action_add_repo\">Depo ekle</string>\n    <string name=\"label_add_repo_input\">Depo bağlantısı</string>\n    <string name=\"action_add_repo_message\">%s\\'a ek depolar ekleyin. Bu, \\\"index.min.json\\\" ile biten bir bağlantı olmalıdır.</string>\n    <string name=\"error_repo_exists\">Bu depo zaten var!</string>\n    <string name=\"action_delete_repo\">Depoyu sil</string>\n    <string name=\"invalid_repo_name\">Geçersiz depo bağlantısı</string>\n    <string name=\"delete_repo_confirmation\">\\\"%s\\\" deposunu silmek istiyor musunuz?</string>\n    <string name=\"manga_interval_custom_amount\">Özel güncelleme sıklığı:</string>\n    <string name=\"onboarding_storage_help_info\">Eski bir sürümden güncelleme yapıyorsunuz ve neyi seçeceğinizden emin değil misiniz? Daha fazla bilgi için depolama kılavuzuna bakın.</string>\n    <string name=\"pref_library_update_smart_update\">Akıllı güncelleme</string>\n    <string name=\"label_extension_repos\">Uzantı depoları</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"ext_revoke_trust\">Güvenilmiş bilinmeyen uzantıları geri al</string>\n    <string name=\"manga_interval_expected_update_soon\">Yakında</string>\n    <string name=\"action_open_repo\">Açık kaynaklı depo</string>\n    <string name=\"action_copy_link\">Bağlantıyı kopyala</string>\n    <string name=\"pref_flash_with\">Işık rengi</string>\n    <string name=\"pref_flash_style_black\">Siyah</string>\n    <string name=\"pref_flash_style_white_black\">Beyaz ve Siyah</string>\n    <string name=\"pref_flash_style_white\">Beyaz</string>\n    <string name=\"pref_flash_duration\">Işık çakma süresi</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Işık çakma aralığı</string>\n    <string name=\"pref_display_profile\">Özel görünüm profili</string>\n    <string name=\"action_replace_repo_message\">%1$s deposunun İmzalama Anahtarı Parmak İzi %2$s deposuyla aynı.\n\\nEğer böyle olması gerekiyorsa %2$s ile değiştirilecek. Aksi takdirde depo yöneticinize ulaşın.</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Uzaklaştırmayı devre dışı bırak</string>\n    <string name=\"invalid_backup_file_json\">JSON yedekleri desteklenmiyor</string>\n    <string name=\"invalid_backup_file_unknown\">Yedek dosyası bozuk</string>\n    <string name=\"manga_interval_expected_update_null\">Bu manga ya tamamlanmış ya da tahmin edilen yayımlanma tarihi yok.</string>\n    <string name=\"action_add_anyway\">Yine de ekle</string>\n    <string name=\"action_replace_repo\">Değiştir</string>\n    <string name=\"action_replace_repo_title\">İmzalama Anahtarı Parmak İzi Zaten Var</string>\n    <string name=\"extensionRepo_settings\">Eklenti depoları</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Stabil klasör erişimi sağlanamadı. Uygulama belirsiz çalışabilir.</string>\n    <string name=\"label_upcoming\">Takvim</string>\n    <string name=\"action_view_upcoming\">Gelecek Güncellemeleri Görüntüle</string>\n    <string name=\"upcoming_guide\">Yakında Gelecek Rehberi</string>\n    <string name=\"upcoming_calendar_next\">Gelecek Ay</string>\n    <string name=\"upcoming_calendar_prev\">Önceki Ay</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Yinelenen okunmuş bölümlerin indirilmesini atla</string>\n    <string name=\"add_repo_confirmation\">\\\"%s\\\" deposunu eklemek istiyor musunuz?</string>\n    <string name=\"confirm_tracker_update\">İzleyicileri %d. bölüme güncelle?</string>\n    <string name=\"onboarding_permission_crashlytics\">Çökme kayıtlarını gönder</string>\n    <string name=\"pref_security\">Güvenlik</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Geliştiricilere anonimleştirilmiş çökme kayıtlarını gönder.</string>\n    <string name=\"firebase_summary\">Çökme kayıtlarını ve kullanım istatistiklerini göndermek sorunları tanımlamamıza ve düzeltmemize imkân verir, performansı iyileştirmemizi sağlar ve gelecek güncellemeleri ihtiyaçlarınızla uyumlu yapmamıza olanak tanır</string>\n    <string name=\"onboarding_permission_analytics\">Kullanım istatistiklerine izin ver</string>\n    <string name=\"onboarding_permission_analytics_description\">Uygulama özelliklerini geliştirmek için anonimleştirilmiş kullanım verileri gönder.</string>\n    <string name=\"pref_firebase\">Kullanım İstatistikleri ve Çökme Kayıtları</string>\n    <string name=\"action_sort_random\">Rastgele</string>\n    <string name=\"ext_remove\">Kaldır</string>\n    <string name=\"remove_private_extension_message\">\\\"%s\\\" eklentisini kaldırmak istediğinize emin misiniz?</string>\n    <string name=\"ext_confirm_remove\">Eklentiyi Kaldır?</string>\n    <string name=\"non_library_settings\">Tüm okunmuş girdiler</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Okundu olarak işaretlendiğinde ilerlemeyi güncelle</string>\n    <string name=\"trackers_updated_summary\">İzleyiciler %d. bölüme güncellendi</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Özel bitmap donanım sınırı</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Varsayılan (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Eğer okuyucu boş bir görsel yüklerse bu sınırı kademeli olarak azaltın.\\nSeçili: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Performansı etkiler. Yalnızca bitmap sınırını düşürmek boş görsel sorunlarını çözmediğinde kullanın</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Eklenti için okuma geçmişini duraklat</string>\n    <string name=\"label_auto\">Otomatik</string>\n    <string name=\"theme_monochrome\">Monokrom</string>\n    <string name=\"tracked_privately\">Gizli olarak izlendi</string>\n    <string name=\"library_exported\">Kitaplık Dışa Aktarıldı</string>\n    <string name=\"author\">Yazar</string>\n    <string name=\"artist\">Sanatçı</string>\n    <string name=\"action_toggle_private_on\">Gizli olarak izle</string>\n    <string name=\"library_list\">Kitaplık Listesi</string>\n    <string name=\"export\">Dışa Aktar</string>\n    <string name=\"action_toggle_private_off\">Herkese açık olarak izle</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Uzun şerit okuyucusu için eski çözümleyiciyi kullan</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Yinelenen okunmuş bölümleri okundu olarak işaretle</string>\n    <string name=\"action_display_unread_badge\">Okunmamış bölümler</string>\n    <string name=\"pref_behavior\">Davranış</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Bölümü okuduktan sonra</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Yeni bir bölüm geldiğinde</string>\n    <string name=\"action_edit_notes\">Notları düzenle</string>\n    <string name=\"action_notes\">Notlar</string>\n    <string name=\"notes_placeholder\">…olduğu kısmı beğendim.</string>\n    <string name=\"possible_duplicates_title\">Muhtemel yinelenenler</string>\n    <string name=\"possible_duplicates_summary\">Kitaplığınızda benzer isimli girdiler var.\\n\\nTaşımak için bir girdi seçin veya yine de ekleyin.</string>\n    <string name=\"clear_database_history_warning\">Kitaplıkta olmayan girdilerin okunmuş bölümleri ve ilerlemeleri kaybolacaktır</string>\n    <string name=\"clear_database_text\">Girdileri veri tabanından kaldırmak üzeresiniz</string>\n    <string name=\"clear_db_exclude_read\">Okunmuş bölümleri olan girdileri koru</string>\n    <string name=\"storage_failed_to_create_download_directory\">İndirme dosya konumu oluşturulamadı</string>\n    <string name=\"storage_failed_to_create_directory\">Dosya konumu oluşturulamadı: %s</string>\n    <string name=\"logging_in\">Giriş yapılıyor…</string>\n    <string name=\"pref_update_library_manga_titles\">Kitaplıktaki mangaların başlıklarını kaynakla eşleşecek şekilde güncelle</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Uyarı: Eğer bir manga yeniden adlandırılırsa (eğer mevcutsa) indirme sırasından kaldırılacaktır.</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Mevcut</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Etkin kaynakları seç</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Sabitlenmiş kaynakları seç</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Devam Et</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Tümünü seç</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Seçimleri kaldır</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Seçilen</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Daha geniş bir arama için başlığı anahtar kelimelere ayırır</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Taşıdıktan sonra şu anki girdi için indirilenleri sil</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Aşağıdaki ayarlar yavaş ve tehlikelidirler ve kaynaklardan gelen kısıtlamalara neden olabilirler</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Gelişmiş arama modu</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Taşınacak veriler</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Ek anahter kelimeler (isteğe bağlı)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Arama sorgusunu anahtar kelimeler ekleyerek daraltmaya yardımcı olur</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Eşleşmeyen girdileri gizle</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Daha yeni bölümleri olmayan girdileri gizle</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Girdiyi yalnızca eşleşen içerikte daha fazla bölüm varsa göster</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Bölüm numarasına göre eşleştir</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Eğer etkinleştirilirse en ileride olan içeriği seçer. Yoksa kaynağın önceliğine göre ilk eşleşen içeriği seçer.</string>\n    <string name=\"migrationListScreenTitle\">Taşıma</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Taşıma (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Kopyala</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Taşı</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Alternatif bulunamadı</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">En son: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Bilinmeyen</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Manuel olarak ara</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Taşıma</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Şimdi taşı</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Şimdi kopyala</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">İptal Et</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Kopyala</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Taşı</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">İptal Et</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">İptal Et</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Bölüm bulunamadı, bu girdi taşıma için kullanılamıyor</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Taşımayı durdur?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Durdur</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Eksik bölüm göstergelerini gizle</string>\n    <string name=\"pref_display_images_description\">Manga açıklamalarında bulunan görselleri göster</string>\n    <string name=\"label_donate\">Bağış</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">ASCII olmayan dosya isimlerine izin verme</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Unicode desteklemeyen bazı depolama sistemleri için uyumluluk sağlar. Etkinleştirildiğinde kaynak ve manga klasörlerini manuel olarak yeniden adlandırıp ASCII olmayan karakterleri küçük UTF-8 heksadesimal karşılıklarıyla değiştirmeniz gerekir. Bölüm dosyalarının yeniden adlandırılması gerekli değildir.</string>\n    <string name=\"pref_download_concurrent_pages\">Tek seferde indirilen sayfa sayısı</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Her kaynak için aynı anda indirilen sayfa sayısı</string>\n    <string name=\"pref_download_concurrent_sources\">Tek seferde indirilen kaynak sayısı</string>\n    <string name=\"action_webview_close_tab\">Sekmeyi kapat</string>\n    <string name=\"action_filter_excluded_scanlators\">Hariç tutulan Çevirenleri filtrele</string>\n    <string name=\"calculating\">Hesaplanıyor…</string>\n    <string name=\"download_bookmarked\">Yer imli</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/tt/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n</resources>"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/uk/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">Після %1$s хвилини</item>\n        <item quantity=\"few\">Після %1$s хвилин</item>\n        <item quantity=\"many\">Після %1$s хвилин</item>\n        <item quantity=\"other\">Після %1$s хвилин</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"one\">%1$d новий розділ</item>\n        <item quantity=\"few\">%1$d нових розділів</item>\n        <item quantity=\"many\">%1$d нових розділів</item>\n        <item quantity=\"other\">%1$d нових розділів</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"one\">Розділи %1$s та ще 1 розділ</item>\n        <item quantity=\"few\">Розділи %1$s та ще %2$d розділи</item>\n        <item quantity=\"many\">Розділи %1$s та ще %2$d розділів</item>\n        <item quantity=\"other\">Розділи %1$s та ще %2$d розділів</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"one\">Для %d запису</item>\n        <item quantity=\"few\">Для %d записів</item>\n        <item quantity=\"many\">Для %d записів</item>\n        <item quantity=\"other\">Для %d записів</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"one\">%d розширення має оновлення</item>\n        <item quantity=\"few\">%d розширення мають оновлення</item>\n        <item quantity=\"many\">%d розширень мають оновлення</item>\n        <item quantity=\"other\">%d розширень мають оновлення</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d категорія</item>\n        <item quantity=\"few\">%d категорії</item>\n        <item quantity=\"many\">%d категорій</item>\n        <item quantity=\"other\">%d категорій</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"one\">%1$s залишився</item>\n        <item quantity=\"few\">%1$s залишились</item>\n        <item quantity=\"many\">%1$s залишилось</item>\n        <item quantity=\"other\">%1$s залишилось</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"one\">Зроблено за %1$s з %2$s помилкою</item>\n        <item quantity=\"few\">Зроблено за %1$s з %2$s помилками</item>\n        <item quantity=\"many\">Зроблено за %1$s з %2$s помилками</item>\n        <item quantity=\"other\">Зроблено за %1$s з %2$s помилками</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"one\">%1$s розділ</item>\n        <item quantity=\"few\">%1$s розділів</item>\n        <item quantity=\"many\">%1$s розділів</item>\n        <item quantity=\"other\">%1$s розділів</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"one\">%d трекер</item>\n        <item quantity=\"few\">%d трекери</item>\n        <item quantity=\"many\">%d трекерів</item>\n        <item quantity=\"other\">%d трекерів</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"one\">Пропускається %d розділ, тому що джерело не має його, або він був відфільтрований</item>\n        <item quantity=\"few\">Пропускаються %d розділи, тому що джерело не має їх, або вони були відфільтровані</item>\n        <item quantity=\"many\">Пропускаються %d розділів, тому що джерело не має їх, або вони були відфільтровані</item>\n        <item quantity=\"other\">Пропускаються %d розділів, тому що джерело не має їх, або вони були відфільтровані</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Учора</item>\n        <item quantity=\"few\">%1$d дні тому</item>\n        <item quantity=\"many\">%1$d днів тому</item>\n        <item quantity=\"other\">%1$d днів тому</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"one\">Наступний непрочитаний розділ</item>\n        <item quantity=\"few\">Наступні %d непрочитані розділи</item>\n        <item quantity=\"many\">Наступні %d непрочитаних розділів</item>\n        <item quantity=\"other\">Наступні %d непрочитаних розділів</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"one\">Наступний розділ</item>\n        <item quantity=\"few\">Наступних %d розділи</item>\n        <item quantity=\"many\">Наступних %d розділів</item>\n        <item quantity=\"other\">Наступних %d розділів</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"one\">Відсутній %1$s розділ</item>\n        <item quantity=\"few\">Відсутні %1$s розділи</item>\n        <item quantity=\"many\">Відсутні %1$s розділів</item>\n        <item quantity=\"other\">Відсутні %1$s розділів</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"one\">%d день</item>\n        <item quantity=\"few\">%d дні</item>\n        <item quantity=\"many\">%d днів</item>\n        <item quantity=\"other\">%d днів</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"one\">%d репозиторій</item>\n        <item quantity=\"few\">%d репозиторії</item>\n        <item quantity=\"many\">%d репозиторіїв</item>\n        <item quantity=\"other\">%d репозиторіїв</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"one\">%1$s сторінка</item>\n        <item quantity=\"few\">%1$s сторінки</item>\n        <item quantity=\"many\">%1$s сторінок</item>\n        <item quantity=\"other\">%1$s сторінок</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"one\">Завтра</item>\n        <item quantity=\"few\">Через %1$d дні</item>\n        <item quantity=\"many\">Через %1$d днів</item>\n        <item quantity=\"other\">Через %1$d днів</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/uk/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Назва</string>\n    <string name=\"categories\">Категорії</string>\n    <string name=\"manga\">Записи бібліотеки</string>\n    <string name=\"chapters\">Розділи</string>\n    <string name=\"track\">Відстеження</string>\n    <string name=\"history\">Історія</string>\n    <string name=\"label_settings\">Налаштування</string>\n    <string name=\"label_download_queue\">Черга завантажень</string>\n    <string name=\"label_library\">Бібліотека</string>\n    <string name=\"label_recent_manga\">Історія</string>\n    <string name=\"label_recent_updates\">Нове</string>\n    <string name=\"label_backup\">Резервування та відновлення</string>\n    <string name=\"label_migration\">Міграція</string>\n    <string name=\"label_extensions\">Розширення</string>\n    <string name=\"label_extension_info\">Інформація про розширення</string>\n    <string name=\"action_settings\">Налаштування</string>\n    <string name=\"action_filter\">Фільтр</string>\n    <string name=\"action_filter_bookmarked\">В закладках</string>\n    <string name=\"action_filter_unread\">Непрочитане</string>\n    <string name=\"action_filter_empty\">Видалити фільтр</string>\n    <string name=\"action_sort_alpha\">В алфавітному порядку</string>\n    <string name=\"action_sort_total\">За кількістю розділів</string>\n    <string name=\"action_sort_last_read\">Остання прочитана</string>\n    <string name=\"action_search\">Пошук</string>\n    <string name=\"action_global_search\">Глобальний пошук</string>\n    <string name=\"action_select_all\">Обрати все</string>\n    <string name=\"action_mark_as_read\">Позначити як прочитане</string>\n    <string name=\"action_mark_as_unread\">Позначити як непрочитане</string>\n    <string name=\"action_mark_previous_as_read\">Позначити попередні як прочитані</string>\n    <string name=\"action_download\">Завантажити</string>\n    <string name=\"action_bookmark\">Закладка розділу</string>\n    <string name=\"action_remove_bookmark\">Видалити закладку розділу</string>\n    <string name=\"action_delete\">Видалити</string>\n    <string name=\"action_update_library\">Оновити бібліотеку</string>\n    <string name=\"action_edit\">Редагувати</string>\n    <string name=\"action_add\">Додати</string>\n    <string name=\"action_add_category\">Додати категорію</string>\n    <string name=\"action_edit_categories\">Редагувати категорію</string>\n    <string name=\"action_rename_category\">Перейменувати категорію</string>\n    <string name=\"action_move_category\">Помістити в категорію</string>\n    <string name=\"action_edit_cover\">Змінити обкладинку</string>\n    <string name=\"action_pause\">Пауза</string>\n    <string name=\"action_previous_chapter\">Попередній розділ</string>\n    <string name=\"action_next_chapter\">Наступний розділ</string>\n    <string name=\"action_retry\">Повторити</string>\n    <string name=\"action_remove\">Видалити</string>\n    <string name=\"action_resume\">Продовжити</string>\n    <string name=\"action_open_in_browser\">Відкрити в браузері</string>\n    <string name=\"action_display_mode\">Режим відображення</string>\n    <string name=\"action_display\">Вигляд</string>\n    <string name=\"action_display_grid\">Компактна сітка</string>\n    <string name=\"action_display_list\">Список</string>\n    <string name=\"action_display_download_badge\">Завантажені розділи</string>\n    <string name=\"action_cancel\">Скасувати</string>\n    <string name=\"action_sort\">Сортувати</string>\n    <string name=\"action_install\">Встановити</string>\n    <string name=\"action_share\">Поділитись</string>\n    <string name=\"action_save\">Зберегти</string>\n    <string name=\"action_reset\">Скинути</string>\n    <string name=\"action_undo\">Скасувати</string>\n    <string name=\"action_open_log\">Відкрити лог</string>\n    <string name=\"action_restore\">Відновити</string>\n    <string name=\"loading\">Завантаження…</string>\n    <string name=\"app_not_available\">Застосунок не відповідає</string>\n    <string name=\"pref_category_general\">Головні</string>\n    <string name=\"pref_category_reader\">Читалка</string>\n    <string name=\"pref_category_downloads\">Завантаження</string>\n    <string name=\"pref_category_tracking\">Відстеження</string>\n    <string name=\"pref_category_advanced\">Додатково</string>\n    <string name=\"pref_category_about\">Інформація</string>\n    <string name=\"pref_library_columns\">Елементів у рядку</string>\n    <string name=\"portrait\">Портретна</string>\n    <string name=\"landscape\">Альбомна</string>\n    <string name=\"pref_library_update_interval\">Автоматичне оновлення</string>\n    <string name=\"update_never\">Вимкнути</string>\n    <string name=\"update_6hour\">Кожні 6 годин</string>\n    <string name=\"update_12hour\">Кожні 12 годин</string>\n    <string name=\"update_24hour\">Щодня</string>\n    <string name=\"update_48hour\">Що 2 дні</string>\n    <string name=\"update_weekly\">Щонеділі</string>\n    <string name=\"all\">Всі</string>\n    <string name=\"pref_library_update_restriction\">Обмеження пристрою для автоматичних оновлень</string>\n    <string name=\"charging\">Коли заряджається</string>\n    <string name=\"pref_update_only_non_completed\">Пропустити глави з статусом \\\"Завершено\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Оновлювати прогрес після прочитання</string>\n    <string name=\"default_category\">Типова категорія</string>\n    <string name=\"default_category_summary\">Завжди запитувати</string>\n    <string name=\"ext_update\">Оновлення</string>\n    <string name=\"ext_install\">Встановити</string>\n    <string name=\"ext_pending\">Очікується</string>\n    <string name=\"ext_downloading\">Завантажується</string>\n    <string name=\"ext_installing\">Встановлюється</string>\n    <string name=\"ext_installed\">Встановлено</string>\n    <string name=\"ext_trust\">Довірений</string>\n    <string name=\"ext_untrusted\">Ненадійне</string>\n    <string name=\"ext_uninstall\">Видалити</string>\n    <string name=\"untrusted_extension\">Ненадійне розширення</string>\n    <string name=\"untrusted_extension_message\">Шкідливе розширення може зчитувати будь-які збережені облікові дані для входу або виконати довільний код.\n\\n\n\\nДовіряючи цьому розширенню, ви приймаєте ці ризики.</string>\n    <string name=\"pref_fullscreen\">Повноекранний режим</string>\n    <string name=\"pref_page_transitions\">Анімація переходів сторінки</string>\n    <string name=\"pref_double_tap_anim_speed\">Швидкість анімації при подвійному натиснені</string>\n    <string name=\"pref_show_page_number\">Показувати номер сторінки</string>\n    <string name=\"pref_crop_borders\">Обрізати поля</string>\n    <string name=\"pref_custom_brightness\">Користувацька яскравість</string>\n    <string name=\"pref_custom_color_filter\">Користувацький кольоровий фільтр</string>\n    <string name=\"pref_keep_screen_on\">Тримати екран ввімкненим</string>\n    <string name=\"pref_reader_navigation\">Навігація</string>\n    <string name=\"pref_read_with_volume_keys\">Клавіші гучності</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Інвертувати клавіші гучності</string>\n    <string name=\"pref_reader_theme\">Колір фону</string>\n    <string name=\"white_background\">Білий</string>\n    <string name=\"black_background\">Чорний</string>\n    <string name=\"pref_viewer_type\">Типовий напрямок читання</string>\n    <string name=\"left_to_right_viewer\">Посторінково (зліва направо)</string>\n    <string name=\"right_to_left_viewer\">Посторінково (справа наліво)</string>\n    <string name=\"vertical_viewer\">Посторінковий (вертикальний)</string>\n    <string name=\"webtoon_viewer\">Довга смуга</string>\n    <string name=\"pager_viewer\">Посторінково</string>\n    <string name=\"pref_image_scale_type\">Масштабування</string>\n    <string name=\"scale_type_fit_screen\">По екрану</string>\n    <string name=\"scale_type_stretch\">Розтягнута</string>\n    <string name=\"scale_type_fit_width\">По ширині</string>\n    <string name=\"scale_type_fit_height\">По висоті</string>\n    <string name=\"scale_type_original_size\">Оригінальний розмір</string>\n    <string name=\"scale_type_smart_fit\">Розумна</string>\n    <string name=\"pref_zoom_start\">Стартова позиція збільшення</string>\n    <string name=\"zoom_start_automatic\">Автоматична</string>\n    <string name=\"zoom_start_left\">Зліва</string>\n    <string name=\"zoom_start_right\">Справа</string>\n    <string name=\"zoom_start_center\">Центральна</string>\n    <string name=\"double_tap_anim_speed_0\">Без анімації</string>\n    <string name=\"double_tap_anim_speed_normal\">Нормальна</string>\n    <string name=\"double_tap_anim_speed_fast\">Швидка</string>\n    <string name=\"pref_rotation_type\">Орієнтація за замовчуванням</string>\n    <string name=\"rotation_free\">Вільна</string>\n    <string name=\"rotation_force_portrait\">Заблокована портретна</string>\n    <string name=\"rotation_force_landscape\">Заблокована альбомна</string>\n    <string name=\"color_filter_r_value\">Червоний</string>\n    <string name=\"color_filter_g_value\">Зелений</string>\n    <string name=\"color_filter_b_value\">Синій</string>\n    <string name=\"color_filter_a_value\">Прозорість</string>\n    <string name=\"pref_remove_after_marked_as_read\">Після того, як було відмічено прочитаним вручну</string>\n    <string name=\"pref_remove_after_read\">Автоматично видаляти після прочитання</string>\n    <string name=\"disabled\">Вимкнено</string>\n    <string name=\"last_read_chapter\">Останній прочитаний розділ</string>\n    <string name=\"second_to_last\">Передостанній прочитаний розділ</string>\n    <string name=\"third_to_last\">Третій від останнього прочитаного розділу</string>\n    <string name=\"fourth_to_last\">Четвертий від останнього прочитаного розділу</string>\n    <string name=\"fifth_to_last\">П\\'ятий від останнього прочитаного розділу</string>\n    <string name=\"pref_download_new\">Завантажувати нові розділи</string>\n    <string name=\"services\">Трекери</string>\n    <string name=\"pref_create_backup\">Створити резервну копію</string>\n    <string name=\"pref_create_backup_summ\">Можна використовувати для відновлення поточної бібліотеки</string>\n    <string name=\"pref_restore_backup\">Відновити резервну копію</string>\n    <string name=\"pref_restore_backup_summ\">Відновити бібліотеку з резервної копії</string>\n    <string name=\"pref_backup_interval\">Частота автоматичних бекапів</string>\n    <string name=\"backup_created\">Резервна копія створена</string>\n    <string name=\"restore_completed\">Відновлення завершено</string>\n    <string name=\"backup_choice\">Що ви хочете зберегти до резервної копії?</string>\n    <string name=\"restoring_backup\">Відновлення резервної копії</string>\n    <string name=\"creating_backup\">Створення резервної копії</string>\n    <string name=\"pref_clear_chapter_cache\">Очистити кеш розділів</string>\n    <string name=\"used_cache\">Використано: %1$s</string>\n    <string name=\"cache_deleted\">Кеш очищено, %1$d файлів видалено</string>\n    <string name=\"cache_delete_error\">Виникла помилка при видаленні кешу</string>\n    <string name=\"pref_clear_cookies\">Очистити куки</string>\n    <string name=\"cookies_cleared\">Куки очищено</string>\n    <string name=\"pref_clear_database\">Очистити базу даних</string>\n    <string name=\"pref_clear_database_summary\">Видалити історію для записів, котрі не знаходяться в вашій бібліотеці</string>\n    <string name=\"clear_database_completed\">Дані видалено</string>\n    <string name=\"version\">Версія</string>\n    <string name=\"pref_enable_acra\">Надсилати звіти про падіння</string>\n    <string name=\"pref_acra_summary\">Допомагає виправляти будь-які баги. Особисті дані не передаються</string>\n    <string name=\"login_title\">Авторизація до %1$s</string>\n    <string name=\"username\">Ім\\'я користувача</string>\n    <string name=\"password\">Пароль</string>\n    <string name=\"login\">Логін</string>\n    <string name=\"login_success\">Вхід успішний</string>\n    <string name=\"unknown_error\">Невідома помилка</string>\n    <string name=\"updating_category\">Оновлення категорії</string>\n    <string name=\"no_more_results\">Більше немає результатів</string>\n    <string name=\"local_source\">Локальне джерело</string>\n    <string name=\"other_source\">Інші</string>\n    <string name=\"action_global_search_hint\">Глобальний пошук…</string>\n    <string name=\"latest\">Новинки</string>\n    <string name=\"browse\">Огляд</string>\n    <string name=\"ongoing\">Онгоінг</string>\n    <string name=\"unknown\">Невідомо</string>\n    <string name=\"licensed\">Ліцензовано</string>\n    <string name=\"remove_from_library\">Видалити з бібліотеки</string>\n    <string name=\"manga_added_library\">Додати до бібліотеки</string>\n    <string name=\"manga_removed_library\">Видалено з бібліотеки</string>\n    <string name=\"delete_downloads_for_manga\">Видаляти завантажені розділи?</string>\n    <string name=\"copied_to_clipboard\">Скопійовано до буферу\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Джерело не встановлено: %1$s</string>\n    <string name=\"display_mode_chapter\">Розділ %1$s</string>\n    <string name=\"chapter_downloading_progress\">Завантажується (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Помилка</string>\n    <string name=\"chapter_paused\">Призупинено</string>\n    <string name=\"show_title\">Назва джерела</string>\n    <string name=\"show_chapter_number\">Номер розділу</string>\n    <string name=\"sort_by_source\">За каталогом</string>\n    <string name=\"sort_by_number\">За номером розділу</string>\n    <string name=\"manga_download\">Завантажити</string>\n    <string name=\"download_unread\">Непрочитані</string>\n    <string name=\"confirm_delete_chapters\">Ви впевнені, що бажаєте видалити вибрані розділи?</string>\n    <string name=\"manga_tracking_tab\">Стежити</string>\n    <string name=\"reading\">В процесі читання</string>\n    <string name=\"completed\">Завершене</string>\n    <string name=\"dropped\">Кинуто</string>\n    <string name=\"on_hold\">Заморожено</string>\n    <string name=\"plan_to_read\">Планую почитати</string>\n    <string name=\"repeating\">Перечитую</string>\n    <string name=\"score\">Оцінка</string>\n    <string name=\"title\">Заголовок</string>\n    <string name=\"status\">Статус</string>\n    <string name=\"track_status\">Статус</string>\n    <string name=\"track_type\">Тип</string>\n    <string name=\"error_category_exists\">Категорія з таким іменем вже існує!</string>\n    <string name=\"snack_categories_deleted\">Категорію видалено</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Ця дія видалить дату прочитання розділу. Ви впевнені?</string>\n    <string name=\"dialog_with_checkbox_reset\">Скинути всіх розділи для цього запису</string>\n    <string name=\"snack_add_to_library\">Додати до бібліотеки?</string>\n    <string name=\"picture_saved\">Картинку збережено</string>\n    <string name=\"custom_filter\">Користувацький фільтр</string>\n    <string name=\"set_as_cover\">Встановити як обкладинку</string>\n    <string name=\"cover_updated\">Обкладинку оновлено</string>\n    <string name=\"chapter_progress\">Сторінка %1$d</string>\n    <string name=\"no_next_chapter\">Наступний розділ не знайдено</string>\n    <string name=\"decode_image_error\">Зображення не вдалося завантажити</string>\n    <string name=\"confirm_set_image_as_cover\">Ви бажаєте встановити цю картинку як обкладинку?</string>\n    <string name=\"transition_finished\">Завершено:</string>\n    <string name=\"transition_current\">Поточна:</string>\n    <string name=\"transition_next\">Наступна:</string>\n    <string name=\"transition_previous\">Попередня:</string>\n    <string name=\"transition_no_next\">Наступної частини немає</string>\n    <string name=\"transition_no_previous\">Попередньої частини немає</string>\n    <string name=\"transition_pages_loading\">Завантаження сторінок…</string>\n    <string name=\"transition_pages_error\">Не вдалось завантажити сторінки %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Виберіть включені дані</string>\n    <string name=\"migrate\">Мігрувати</string>\n    <string name=\"copy\">Копіювати</string>\n    <string name=\"download_queue_error\">Не вдалося завантажити розділи. Ви можете повторити спробу в розділі завантажень</string>\n    <string name=\"notification_new_chapters\">Знайдено нові розділи</string>\n    <string name=\"notification_cover_update_failed\">Не вдалось оновити обкладинку</string>\n    <string name=\"notification_first_add_to_library\">Будь ласка, додайте запис до своєї бібліотеки перед тим як робити це</string>\n    <string name=\"file_select_cover\">Вибрати обкладинку</string>\n    <string name=\"file_select_backup\">Виберіть файл резервної копії</string>\n    <string name=\"update_check_confirm\">Завантажити</string>\n    <string name=\"update_check_no_new_updates\">Оновлень не виявлено</string>\n    <string name=\"update_check_notification_download_in_progress\">Завантаження в процесі…</string>\n    <string name=\"update_check_notification_download_complete\">Тицьніть для встановлення оновлень</string>\n    <string name=\"update_check_notification_download_error\">Помилка завантаження</string>\n    <string name=\"update_check_notification_update_available\">Доступна нова версія!</string>\n    <string name=\"information_no_downloads\">Завантажень немає</string>\n    <string name=\"information_no_recent\">Без оновлень</string>\n    <string name=\"information_no_recent_manga\">Останнім часом нічого не прочитано</string>\n    <string name=\"information_empty_library\">Ваша бібліотека порожня</string>\n    <string name=\"information_empty_category\">У вас немає категорій. Тицьніть кнопку плюс, для початку облаштування вашої бібліотеки.</string>\n    <string name=\"download_notifier_downloader_title\">Завантажувач</string>\n    <string name=\"download_notifier_title_error\">Помилка</string>\n    <string name=\"download_notifier_unknown_error\">Невідома помилка при завантаженні розділу</string>\n    <string name=\"download_notifier_text_only_wifi\">Немає Wi-Fi підключення</string>\n    <string name=\"download_notifier_no_network\">Немає мережевого з`єднання</string>\n    <string name=\"download_notifier_download_paused\">Завантаження призупинено</string>\n    <string name=\"channel_common\">Звичайний</string>\n    <string name=\"pref_read_with_long_tap\">Показувати дії при довгому натисканні</string>\n    <string name=\"action_open_in_web_view\">Відкрити у WebView</string>\n    <string name=\"pref_skip_read_chapters\">Пропускати розділи, відмічені як прочитані</string>\n    <string name=\"pref_color_filter_mode\">Режим накладання кольорового фільтру</string>\n    <string name=\"filter_mode_overlay\">Оверлей</string>\n    <string name=\"filter_mode_multiply\">множення</string>\n    <string name=\"filter_mode_screen\">Екран</string>\n    <string name=\"filter_mode_lighten\">Світліше</string>\n    <string name=\"filter_mode_darken\">Темніше</string>\n    <string name=\"label_help\">Допомога</string>\n    <string name=\"no_results_found\">Нічого не знайдено</string>\n    <string name=\"migration_selection_prompt\">Виберіть джерело, з якого потрібно мігрувати</string>\n    <string name=\"action_webview_back\">Назад</string>\n    <string name=\"action_webview_forward\">Вперед</string>\n    <string name=\"action_webview_refresh\">Оновити</string>\n    <string name=\"pref_category_library\">Бібліотека</string>\n    <string name=\"ext_obsolete\">Застарілий</string>\n    <string name=\"obsolete_extension_message\">Це розширення більше не доступне. Воно може працювати невірно, а також викликати проблеми із застосунком. Рекомендується його видалити.</string>\n    <string name=\"pref_date_format\">Формат дати</string>\n    <string name=\"pref_category_library_update\">Глобальне оновлення</string>\n    <string name=\"logout_title\">Вихід із %1$s?</string>\n    <string name=\"logout\">Вихід</string>\n    <string name=\"logout_success\">Ви вийшли з системи</string>\n    <string name=\"paused\">Призупинено</string>\n    <string name=\"label_more\">Ще</string>\n    <string name=\"action_sort_latest_chapter\">Останній розділ</string>\n    <string name=\"action_view_chapters\">Подивитись розділи</string>\n    <string name=\"action_cancel_all\">Скасувати все</string>\n    <string name=\"theme_light\">Світла</string>\n    <string name=\"theme_dark\">Темна</string>\n    <string name=\"theme_system\">Системна</string>\n    <string name=\"pref_manage_notifications\">Керування сповіщеннями</string>\n    <string name=\"pref_category_security\">Безпека і конфіденційність</string>\n    <string name=\"lock_with_biometrics\">Потрібно розблокувати</string>\n    <string name=\"lock_when_idle\">Блокувати в режимі очікування</string>\n    <string name=\"lock_always\">Завжди</string>\n    <string name=\"lock_never\">Ніколи</string>\n    <string name=\"secure_screen\">Захистити екран додатку</string>\n    <string name=\"ext_updates_pending\">Очікуються оновлення</string>\n    <string name=\"pref_cutout_short\">Відображати вміст обітнутої області</string>\n    <string name=\"information_cloudflare_bypass_failure\">Не вдалось обійти Cloudflare</string>\n    <string name=\"information_webview_outdated\">Будь ласка, оновіть WebView для кращої сумісності</string>\n    <string name=\"channel_new_chapters\">Оновлення розділів</string>\n    <string name=\"secure_screen_summary\">Ховати вміст застосунку при перемиканні застосунків та блокувати скріншоти</string>\n    <string name=\"pref_category_display\">Відображення</string>\n    <string name=\"notification_chapters_single\">Розділ %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Розділ %1$s та ще %2$d</string>\n    <string name=\"notification_chapters_multiple\">Розділи %1$s</string>\n    <string name=\"hide_notification_content\">Приховати вміст сповіщень</string>\n    <string name=\"pref_disable_battery_optimization\">Вимкнути збереження батареї</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Допомагає фоновому оновленню бібліотеки та резервним копіям</string>\n    <string name=\"battery_optimization_disabled\">Збереження батареї вже вимкнено</string>\n    <string name=\"email\">Електропошта</string>\n    <string name=\"pref_always_show_chapter_transition\">Завжди показувати перехід розділу</string>\n    <string name=\"action_menu\">Меню</string>\n    <string name=\"action_newest\">Найновіші</string>\n    <string name=\"action_oldest\">Найстаріші</string>\n    <string name=\"action_move_to_top\">Перемістити догори</string>\n    <string name=\"action_move_to_bottom\">Перемістити додолу</string>\n    <string name=\"channel_ext_updates\">Оновлення розширень</string>\n    <string name=\"pref_category_reading\">Читання</string>\n    <string name=\"label_sources\">Джерела</string>\n    <string name=\"updating_library\">Оновлення бібліотеки</string>\n    <string name=\"pref_skip_filtered_chapters\">Пропускати відфільтровані розділи</string>\n    <string name=\"pref_webtoon_side_padding\">Бічний відступ</string>\n    <string name=\"vertical_plus_viewer\">Довга смуга з проміжками</string>\n    <string name=\"action_select_inverse\">Інвертувати вибір</string>\n    <string name=\"add_tracking\">Додати відстеження</string>\n    <string name=\"pinned_sources\">Прикріплено</string>\n    <string name=\"action_unpin\">Відкріпити</string>\n    <string name=\"action_pin\">Закріпити</string>\n    <string name=\"in_library\">В бібліотеці</string>\n    <string name=\"add_to_library\">Додати до бібліотеки</string>\n    <string name=\"manga_info_collapse\">Менше</string>\n    <string name=\"manga_info_expand\">Більше</string>\n    <string name=\"information_webview_required\">WebView необхідний для роботи застосунку</string>\n    <string name=\"licenses\">Ліцензії з відкритим кодом</string>\n    <string name=\"website\">Сторінка</string>\n    <string name=\"label_downloaded_only\">Тільки завантажені</string>\n    <string name=\"gray_background\">Сірий</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Перевірити наявність нової обкладинки та подробиць при оновленні бібліотеки</string>\n    <string name=\"pref_library_update_refresh_metadata\">Автоматично оновлювати метадані</string>\n    <string name=\"action_migrate\">Мігрувати</string>\n    <string name=\"sort_by_upload_date\">За датою завантаження</string>\n    <string name=\"local_source_help_guide\">Посібник місцевого джерела</string>\n    <string name=\"last_used_source\">Останній використаний</string>\n    <string name=\"tabs_header\">Вкладки</string>\n    <string name=\"downloaded_only_summary\">Фільтрувати усі записи в вашій бібліотеці</string>\n    <string name=\"check_for_updates\">Перевірити оновлення</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Не вдалось відкрити налаштування пристрою</string>\n    <string name=\"pref_refresh_library_covers\">Оновити обкладинки в бібліотеці</string>\n    <string name=\"label_data\">Дані</string>\n    <string name=\"restoring_backup_canceled\">Відновлення відмінено</string>\n    <string name=\"restoring_backup_error\">Відновлення бекапу не вдалось</string>\n    <string name=\"restore_in_progress\">Відновлення вже відбувається</string>\n    <string name=\"creating_backup_error\">Помилка резервування</string>\n    <string name=\"backup_in_progress\">Резервне копіювання вже виконується</string>\n    <string name=\"restore_duration\">%1$02d хв, %2$02d сек</string>\n    <string name=\"backup_restore_missing_sources\">Відсутні джерела:</string>\n    <string name=\"invalid_backup_file_missing_manga\">Бекап не містить жодних записів бібліотеки.</string>\n    <string name=\"invalid_backup_file\">Невірний файл резервної копії:</string>\n    <string name=\"tracking_info\">Одностороння синхронізація для оновлення прогресу розділу у зовнішніх сервісах стеження. Налаштуйте відстеження окремих записів за допомогою кнопки відстеження.</string>\n    <string name=\"action_display_show_tabs\">Показувати вкладки категорій</string>\n    <string name=\"action_display_comfortable_grid\">Зручна сітка</string>\n    <string name=\"recent_manga_time\">Розд. %1$s - %2$s</string>\n    <string name=\"viewer\">Режим читання</string>\n    <string name=\"pref_category_for_this_series\">Для цієї серії</string>\n    <string name=\"page_list_empty_error\">Сторінки не знайдено</string>\n    <string name=\"action_disable_all\">Вимкнути все</string>\n    <string name=\"action_enable_all\">Увімкнути все</string>\n    <string name=\"pref_show_reading_mode_summary\">Стисло відобразити поточний режим, коли читалку відкрито</string>\n    <string name=\"pref_show_reading_mode\">Показати режим читання</string>\n    <string name=\"action_start\">Розпочати</string>\n    <string name=\"loader_not_implemented_error\">Джерело не знайдено</string>\n    <string name=\"action_disable\">Відключити</string>\n    <string name=\"tapping_inverted_both\">Обоє</string>\n    <string name=\"tapping_inverted_vertical\">Вертикально</string>\n    <string name=\"tapping_inverted_horizontal\">Горизонтально</string>\n    <string name=\"tapping_inverted_none\">Нічого</string>\n    <string name=\"pref_read_with_tapping_inverted\">Інвертувати зони тицяння</string>\n    <string name=\"unknown_status\">Невідомий стан</string>\n    <string name=\"unknown_author\">Невідомий автор</string>\n    <string name=\"requires_app_restart\">Потрібен перезапуск застосунку, щоб зміни вступили в дію</string>\n    <string name=\"label_network\">Мережа</string>\n    <string name=\"updated_version\">Оновлено до v%1$s</string>\n    <string name=\"whats_new\">Що новенького</string>\n    <string name=\"download_insufficient_space\">Не вдалось завантажити розділи через нестачу місця в сховищі</string>\n    <string name=\"action_global_search_query\">Шукати \\\"%1$s\\\" глобально</string>\n    <string name=\"pref_category_reading_mode\">Режим читання</string>\n    <string name=\"pref_category_theme\">Тема</string>\n    <string name=\"action_sort_date_added\">Дата додавання</string>\n    <string name=\"no_pinned_sources\">У вас немає закріплених джерел</string>\n    <string name=\"channel_errors\">Помилки</string>\n    <string name=\"channel_complete\">Завершено</string>\n    <string name=\"channel_progress\">Прогрес</string>\n    <string name=\"backup_restore_missing_trackers\">Трекери не авторизовано:</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Дозволити видалення розділів з закладок</string>\n    <string name=\"pref_category_delete_chapters\">Видалити розділи</string>\n    <string name=\"ext_nsfw_warning\">Джерела з цього розширення можуть містити контент NSFW (18+)</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">Це не заважає неофіційним або потенційно невірним розширенням розміщувати вміст NSFW (18+) у застосунку.</string>\n    <string name=\"no_chapters_error\">Немає розділів</string>\n    <string name=\"chapter_settings_updated\">Налаштування розділу оновлено</string>\n    <string name=\"share_page_info\">%1$s: %2$s, сторінка %3$d</string>\n    <string name=\"set_chapter_settings_as_default\">Зберегти налаштування</string>\n    <string name=\"also_set_chapter_settings_for_library\">Також застосувати для усіх записів в моїй бібліотеці</string>\n    <string name=\"confirm_set_chapter_settings\">Ви впевнені, що бажаєте зберегти ці налаштування як основні?</string>\n    <string name=\"chapter_settings\">Налаштування розділу</string>\n    <string name=\"downloaded_chapters\">Завантажені розділи</string>\n    <string name=\"manga_from_library\">З бібліотеки</string>\n    <string name=\"action_search_settings\">Налаштування пошуку</string>\n    <string name=\"pref_incognito_mode_summary\">Призупиняє історію читання</string>\n    <string name=\"pref_incognito_mode\">Режим інкогніто</string>\n    <string name=\"pref_clear_history\">Очистити історію</string>\n    <string name=\"clear_history_confirmation\">Ви впевнені? Всю історію буде втрачено.</string>\n    <string name=\"clear_history_completed\">Історію видалено</string>\n    <string name=\"spen_next_page\">Наступна сторінка</string>\n    <string name=\"spen_previous_page\">Попередня сторінка</string>\n    <string name=\"migration_help_guide\">Гайд по міграції джерел</string>\n    <string name=\"file_picker_error\">Застосунок вибору файлів не знайдено</string>\n    <string name=\"myanimelist_relogin\">Будь ласка, увійдіть в MAL знову</string>\n    <string name=\"pref_show_nsfw_source\">Показувати в списку джерел та розширень</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) джерела</string>\n    <string name=\"track_finished_reading_date\">Дата закінчення</string>\n    <string name=\"track_started_reading_date\">Дата початку</string>\n    <string name=\"pref_dump_crash_logs_summary\">Зберігає логи помилок до файлу для надсилання розробникам</string>\n    <string name=\"pref_dump_crash_logs\">Поділіться журналами збоїв</string>\n    <string name=\"pref_viewer_nav\">Зони тицяння</string>\n    <string name=\"edge_nav\">Межа</string>\n    <string name=\"kindlish_nav\">Kindle-подібна</string>\n    <string name=\"l_nav\">L-подібна</string>\n    <string name=\"action_desc\">За спаданням</string>\n    <string name=\"action_asc\">За зростанням</string>\n    <string name=\"action_order_by_chapter_number\">За номером розділу</string>\n    <string name=\"action_order_by_upload_date\">За датою завантаження</string>\n    <string name=\"action_filter_tracked\">Відстежуване</string>\n    <string name=\"action_display_show_number_of_items\">Показати кількість об\\'єктів</string>\n    <string name=\"right_and_left_nav\">Праворуч та ліворуч</string>\n    <string name=\"pref_dual_page_split\">Розділення широких сторінок</string>\n    <string name=\"pref_dual_page_invert_summary\">Якщо розділення широких сторінок, не відповідає напрямку читання</string>\n    <string name=\"pref_dual_page_invert\">Інвертувати розділення широких сторінок</string>\n    <string name=\"backup_restore_content_full\">Вам потрібно встановити розширення яких бракує та увійти в сервіси відстежування для їх використання.</string>\n    <string name=\"nav_zone_right\">Зправа</string>\n    <string name=\"nav_zone_left\">Зліва</string>\n    <string name=\"nav_zone_next\">Наступний</string>\n    <string name=\"nav_zone_prev\">Попередній</string>\n    <string name=\"pref_show_navigation_mode_summary\">Короткочасно відобразити, коли читалку відкрито</string>\n    <string name=\"pref_show_navigation_mode\">Оверлей зон дотику</string>\n    <string name=\"pref_dns_over_https\">DNS поверх HTTPS (DoH)</string>\n    <string name=\"pref_download_new_categories_details\">Записи в виключених категоріях не буде завантажено, навіть якщо вона також знаходиться у включених категоріях.</string>\n    <string name=\"pref_category_auto_download\">Автозавантаження</string>\n    <string name=\"exclude\">Виключати: %s</string>\n    <string name=\"include\">Включати: %s</string>\n    <string name=\"none\">Немає</string>\n    <string name=\"pref_library_update_categories_details\">Записи в виключених категоріях не буде оновлено, навіть якщо вони також знаходяться у включених категоріях.</string>\n    <string name=\"action_sort_chapter_fetch_date\">Дата отримання розділу</string>\n    <string name=\"action_show_errors\">Тицьніть для перегляду подробиць</string>\n    <string name=\"update_check_eol\">Ця версія Android більше не підтримується</string>\n    <string name=\"clipboard_copy_error\">Не вдалось скопіювати до буферу обміну</string>\n    <string name=\"rotation_landscape\">Альбомна</string>\n    <string name=\"rotation_portrait\">Портретна</string>\n    <string name=\"rotation_type\">Орієнтація</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Створювати теки в відповідності до назви записів</string>\n    <string name=\"pref_create_folder_per_manga\">Зберігати сторінки до окремих тек</string>\n    <string name=\"pref_reader_actions\">Дії</string>\n    <string name=\"pref_grayscale\">Відтінки сірого</string>\n    <string name=\"notification_incognito_text\">Вимкнути режим інкогніто</string>\n    <string name=\"automatic_background\">Авто</string>\n    <string name=\"cancel_all_for_series\">Скасувати для усієї серії</string>\n    <string name=\"error_no_match\">Збігів не знайдено</string>\n    <string name=\"source_unsupported\">Джерело не підтримується</string>\n    <string name=\"unread\">Не прочитане</string>\n    <string name=\"error_sharing_cover\">Помилка відправлення обкладинки</string>\n    <string name=\"error_saving_cover\">Помилка при збереженні обкладинки</string>\n    <string name=\"cover_saved\">Обкладинку збережено</string>\n    <string name=\"manga_cover\">Обкладинка</string>\n    <string name=\"date\">Дата</string>\n    <string name=\"local_filter_order_by\">Сортувати за</string>\n    <string name=\"local_invalid_format\">Невірний формат розділів</string>\n    <string name=\"chapter_not_found\">Розділ не знайдено</string>\n    <string name=\"tracking_guide\">Гайд відстежування</string>\n    <string name=\"off\">Вимкнено</string>\n    <string name=\"on\">Увімкнено</string>\n    <string name=\"categorized_display_settings\">Налаштування сортування для кожної категорії</string>\n    <string name=\"restrictions\">Обмеження %s</string>\n    <string name=\"action_display_local_badge\">Локальне джерело</string>\n    <string name=\"information_empty_category_dialog\">У вашій бібліотеці ще немає категорій.</string>\n    <string name=\"about_dont_kill_my_app\">У деяких виробників є додаткові обмеження застосунків, котрі вбивають фонові сервіси. На цьому сайті більше інформації з приводу того, як це виправити.</string>\n    <string name=\"label_background_activity\">Фонова активність</string>\n    <string name=\"restore_miui_warning\">Резервування/Відновлення можуть не працювати належним чином, у випадку, якщо вимкнено Оптимізацію MIUI.</string>\n    <string name=\"enhanced_tracking_info\">Надає розширені функції для конкретних джерел. Записи автоматично відстежуються при додаванні до бібліотеки.</string>\n    <string name=\"enhanced_services\">Розширені трекери</string>\n    <string name=\"pref_lowest\">Найнижча</string>\n    <string name=\"pref_low\">Низька</string>\n    <string name=\"pref_high\">Висока</string>\n    <string name=\"pref_highest\">Найвища</string>\n    <string name=\"pref_hide_threshold\">Чутливість приховування меню при прокручуванні</string>\n    <string name=\"pref_dark_theme_pure_black\">Чистий чорний темний режим</string>\n    <string name=\"theme_yotsuba\">Йоцуба</string>\n    <string name=\"theme_yinyang\">Інь та Янь</string>\n    <string name=\"theme_tako\">Тако</string>\n    <string name=\"theme_strawberrydaiquiri\">Полуничний Дайкірі</string>\n    <string name=\"theme_midnightdusk\">Опівнічні Сутінки</string>\n    <string name=\"theme_greenapple\">Зелене яблуко</string>\n    <string name=\"theme_monet\">Динамічна</string>\n    <string name=\"pref_app_theme\">Тема застосунку</string>\n    <string name=\"action_start_downloading_now\">Розпочати завантаження зараз</string>\n    <string name=\"pref_inverted_colors\">Інвертовано</string>\n    <string name=\"relative_time_today\">Сьогодні</string>\n    <string name=\"theme_tealturquoise\">Бірюзова</string>\n    <string name=\"confirm_lock_change\">Виконайте автентифікацію, щоб підтвердити зміну</string>\n    <string name=\"label_default\">Типово</string>\n    <string name=\"pref_category_appearance\">Вигляд</string>\n    <string name=\"action_track\">Стежити</string>\n    <string name=\"getting_started_guide\">Посібник з початку роботи</string>\n    <string name=\"pref_tablet_ui_mode\">Планшетний інтерфейс</string>\n    <string name=\"help_translate\">Допомогти з перекладом</string>\n    <string name=\"ext_installer_pref\">Встановлювач</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku не запущений</string>\n    <string name=\"pref_remove_exclude_categories\">Виключені категорії</string>\n    <string name=\"action_sort_count\">Всього записів</string>\n    <string name=\"ext_install_service_notif\">Встановлюю розширення…</string>\n    <string name=\"ext_app_info\">Про застосунок</string>\n    <string name=\"ext_installer_legacy\">Спадок</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Встановіть і запустіть Shizuku, щоб використовувати Shizuku як інсталятор розширення.</string>\n    <string name=\"pref_verbose_logging\">Докладне журналювання</string>\n    <string name=\"pref_verbose_logging_summary\">Записувати докладні журнали до системного журналу (знижує продуктивність застосунку)</string>\n    <string name=\"notification_size_warning\">Попередження: великі оновлення можуть призвести до сповільнення джерел або збільшити використання батареї. Тицьніть задля подробиць.</string>\n    <string name=\"channel_app_updates\">Оновлення застосунку</string>\n    <string name=\"download_queue_size_warning\">Попередження: великий об\\'єм завантажень може призвести до сповільнення роботи джерел та/або блокуванню %s.</string>\n    <string name=\"ext_update_all\">Оновити все</string>\n    <string name=\"backup_info\">Ви повинні зберігати декілька резервних копій в інших місцях. Резервні копії можуть містити конфіденційні дані, включно зі збереженими паролями; будьте обережні, якщо ділитеся ними.</string>\n    <string name=\"label_warning\">Попередження</string>\n    <string name=\"action_display_language_badge\">Мова</string>\n    <string name=\"update_72hour\">Що 3 дні</string>\n    <string name=\"connected_to_wifi\">Тільки через Wi-Fi</string>\n    <string name=\"extension_api_error\">Не вдалося отримати список розширень</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Очищати кеш розділів під час запуску застосунку</string>\n    <string name=\"clear_database_source_item_count\">%1$d небібліотечних записів у базі даних</string>\n    <string name=\"database_clean\">Немає чого очищувати</string>\n    <string name=\"privacy_policy\">Політика конфіденційності</string>\n    <string name=\"pref_update_only_completely_read\">Пропустити непрочитаний(ні) розділ(и)</string>\n    <string name=\"save_chapter_as_cbz\">Зберегти архів як CBZ</string>\n    <string name=\"library_errors_help\">Для допомоги в виправленні помилок оновлення бібліотеки, дивіться %1$s</string>\n    <string name=\"publishing_finished\">Публікація завершена</string>\n    <string name=\"cancelled\">Відмінено</string>\n    <string name=\"on_hiatus\">Заморожено</string>\n    <string name=\"action_show_manga\">Показати запис</string>\n    <string name=\"action_display_cover_only_grid\">Сітка тільки з обкладинками</string>\n    <string name=\"pref_update_only_started\">Пропустити непочаті глави</string>\n    <string name=\"action_move_to_top_all_for_series\">Перемістити серію на початок</string>\n    <string name=\"rotation_reverse_portrait\">Портретна навпаки</string>\n    <string name=\"notification_update_error\">%1$d оновлення(нь) не вдалось</string>\n    <string name=\"skipped_reason_completed\">Пропущено, оскільки серія завершена</string>\n    <string name=\"skipped_reason_not_caught_up\">Пропущено через те, що є непрочитані розділи</string>\n    <string name=\"skipped_reason_not_started\">Пропущено, оскільки серія не почата</string>\n    <string name=\"empty_backup_error\">Немає елементів у бібліотеці для резервування</string>\n    <string name=\"download_notifier_split_page_not_found\">Сторінку %d не знайдено, при розділенні</string>\n    <string name=\"split_tall_images_summary\">Покращує продуктивність читалки</string>\n    <string name=\"webview_data_deleted\">Дані WebView очищені</string>\n    <string name=\"pref_clear_webview_data\">Очистити дані WebView</string>\n    <string name=\"reading_list\">Читаю</string>\n    <string name=\"wish_list\">Заплановано</string>\n    <string name=\"complete_list\">Прочитано</string>\n    <string name=\"on_hold_list\">Відкладено</string>\n    <string name=\"unfinished_list\">Не закінчено</string>\n    <string name=\"action_sort_last_manga_update\">Остання перевірка оновлень</string>\n    <string name=\"action_sort_unread_count\">Кількість непрочитаного</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Скидує режим читання та орієнтацію всіх серій</string>\n    <string name=\"theme_lavender\">Лаванда</string>\n    <string name=\"description_placeholder\">Без опису</string>\n    <string name=\"pref_reset_viewer_flags\">Скинути налаштування читалки для кожної серії</string>\n    <string name=\"pref_reset_viewer_flags_success\">Скидання всіх налаштувань</string>\n    <string name=\"custom_cover\">Користувацька обкладинка</string>\n    <string name=\"pref_reset_viewer_flags_error\">Не вдалось скинути налаштування</string>\n    <string name=\"empty_screen\">Йой, трапилась халепа</string>\n    <string name=\"error_saving_picture\">Не вдалось зберегти зображення</string>\n    <string name=\"not_installed\">Не встановлено</string>\n    <string name=\"network_not_metered\">Тільки в безлімітній мережі</string>\n    <string name=\"source_filter_empty_screen\">Встановлених джерел не знайдено</string>\n    <string name=\"source_empty_screen\">Джерел не знайдено</string>\n    <string name=\"disabled_nav\">Вимкнено</string>\n    <string name=\"learn_more\">Тицьніть задля подробиць</string>\n    <string name=\"cant_open_last_read_chapter\">Не вдається відкрити останній прочитаний розділ</string>\n    <string name=\"pref_app_language\">Мова застосунку</string>\n    <string name=\"ext_info_version\">Версія</string>\n    <string name=\"ext_info_language\">Мова</string>\n    <string name=\"ext_info_age_rating\">Вікові обмеження</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Не вдалось знайти шлях сторінки %d</string>\n    <string name=\"pref_navigate_pan\">Панорамування широких зображень</string>\n    <string name=\"pref_landscape_zoom\">Автоматичне масштабування широких зображень</string>\n    <string name=\"action_close\">Закрити</string>\n    <string name=\"update_check_open\">Відкрити на GitHub</string>\n    <string name=\"internal_error\">InternalError: Перевірте журнал халеп задля додаткової інформації</string>\n    <string name=\"delete_category_confirmation\">Чи бажаєте ви видалити категорію \\\"%s\\\"?</string>\n    <string name=\"delete_category\">Видалити категорію</string>\n    <string name=\"appwidget_updates_description\">Переглянути нещодавно оновлені записи бібліотеки</string>\n    <string name=\"appwidget_unavailable_locked\">Віджет не доступний при ввімкненому блокуванні застосунку</string>\n    <string name=\"pref_user_agent_string\">Типовий user agent</string>\n    <string name=\"action_remove_everything\">Видалити все</string>\n    <string name=\"pref_reset_user_agent_string\">Скинути типовий user agent</string>\n    <string name=\"multi_lang\">Багатомовне</string>\n    <string name=\"updates_last_update_info\">Останнє оновлення бібліотеки: %s</string>\n    <string name=\"missing_storage_permission\">Доступ до файлової системи не надано</string>\n    <string name=\"download_ahead\">Завантажувати наперед</string>\n    <string name=\"download_ahead_info\">Працює, якщо поточний розділ + наступний вже завантажені.</string>\n    <string name=\"remove_manga\">Ви збираєтесь видалити \\\"%s\\\" з вашої бібліотеки</string>\n    <string name=\"theme_tidalwave\">Приливна Хвиля</string>\n    <string name=\"are_you_sure\">Ви впевнені?</string>\n    <string name=\"update_already_running\">Оновлення вже розпочато</string>\n    <string name=\"error_user_agent_string_blank\">Рядок User agent не може бути пустим</string>\n    <string name=\"popular\">Популярне</string>\n    <string name=\"auto_download_while_reading\">Автоматичне завантаження під час читання</string>\n    <string name=\"crash_screen_description\">%s зіткнулися з неочікуваною помилкою. Ми пропонуємо вам поділитися журналами збоїв у нашому каналі підтримки на Discord.</string>\n    <string name=\"pref_appearance_summary\">Тема, формат дати та часу</string>\n    <string name=\"pref_library_summary\">Категорії, глобальне оновлення, гортання розділів</string>\n    <string name=\"pref_reader_summary\">Режим читання, відображення, навігація</string>\n    <string name=\"pref_downloads_summary\">Автоматичне завантаження, завантаження наперед</string>\n    <string name=\"pref_tracking_summary\">Одностороння синхронізація прогресу, розширена синхронізація</string>\n    <string name=\"pref_browse_summary\">Джерела, розширення, глобальний пошук</string>\n    <string name=\"pref_backup_summary\">Ручне та автоматичне резервування, сховище</string>\n    <string name=\"pref_security_summary\">Блокування застосунку, захист екрану</string>\n    <string name=\"pref_advanced_summary\">Вивантаження журнала з помилками, оптимізація батареї</string>\n    <string name=\"crash_screen_title\">Ой!</string>\n    <string name=\"crash_screen_restart_application\">Перезапустити застосунок</string>\n    <string name=\"skipped_reason_not_always_update\">Пропущено, оскільки серія не потребує оновлень</string>\n    <string name=\"action_search_hint\">Шукати…</string>\n    <string name=\"invalid_location\">Неприпустиме місцезнаходження %s</string>\n    <string name=\"unknown_title\">Невідомий тайтл</string>\n    <string name=\"updates_last_update_info_just_now\">Тільки що</string>\n    <string name=\"error_user_agent_string_invalid\">Невірне значення user agent</string>\n    <string name=\"action_open_random_manga\">Відкрити випадковий запис</string>\n    <string name=\"information_no_entries_found\">В цій категорії немає записів</string>\n    <string name=\"download_notifier_cache_renewal\">Перевірка завантажень</string>\n    <string name=\"fdroid_warning\">Збірки F-Droid офіційно не підтримуються.\n\\nТицьніть для того, щоб дізнатись більше.</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Змусити застосунок повторно перевірити завантажені розділи</string>\n    <string name=\"action_display_show_continue_reading_button\">Кнопка \\\"Продовжити читання\\\"</string>\n    <string name=\"track_remove_date_conf_title\">Видалити дату?</string>\n    <string name=\"track_remove_start_date_conf_text\">Це призведе до видалення вибраної раніше дати початку з %s</string>\n    <string name=\"track_remove_finish_date_conf_text\">Це призведе до видалення раніше вибраної дати завершення з %s</string>\n    <string name=\"pref_invalidate_download_cache\">Переіндексація завантажень</string>\n    <string name=\"label_read_duration\">Тривалість читання</string>\n    <string name=\"label_titles_section\">Записи</string>\n    <string name=\"label_total_chapters\">Всього</string>\n    <string name=\"label_tracker_section\">Відстеження</string>\n    <string name=\"label_tracked_titles\">Відстежувані записи</string>\n    <string name=\"not_applicable\">Н/П</string>\n    <string name=\"minute_short\">%dm</string>\n    <string name=\"label_stats\">Статистика</string>\n    <string name=\"label_local\">Локально</string>\n    <string name=\"label_downloaded\">Завантажене</string>\n    <string name=\"label_started\">Розпочате</string>\n    <string name=\"label_overview_section\">Огляд</string>\n    <string name=\"label_titles_in_global_update\">У глобальному оновленні</string>\n    <string name=\"label_used\">Використано</string>\n    <string name=\"label_completed_titles\">Завершені записи</string>\n    <string name=\"label_read_chapters\">Прочитано</string>\n    <string name=\"label_mean_score\">Середня оцінка</string>\n    <string name=\"day_short\">%dd</string>\n    <string name=\"hour_short\">%dh</string>\n    <string name=\"seconds_short\">%ds</string>\n    <string name=\"action_not_now\">Не зараз</string>\n    <string name=\"pref_library_update_show_tab_badge\">Відображення кількості непрочитаних на значку \\\"Нове\\\"</string>\n    <string name=\"information_no_manga_category\">Категорія порожня</string>\n    <string name=\"copied_to_clipboard_plain\">Скопійовано в буфер обміну</string>\n    <string name=\"enhanced_services_not_installed\">Доступно, але джерело не встановлене: %s</string>\n    <string name=\"pref_skip_dupe_chapters\">Пропуск повторюваних розділів</string>\n    <string name=\"track_error\">%1$s помилка: %2$s</string>\n    <string name=\"information_required_plain\">*необхідно</string>\n    <string name=\"pref_hide_in_library_items\">Приховати записи, які вже є в бібліотеці</string>\n    <string name=\"action_copy_to_clipboard\">Копіювати в буфер обміну</string>\n    <string name=\"action_update_category\">Оновити категорію</string>\n    <string name=\"split_tall_images\">Розділяти довгі зображення</string>\n    <string name=\"overlay_header\">Оверлей</string>\n    <string name=\"pref_page_rotate\">Повернути широкі сторінки за розміром</string>\n    <string name=\"pref_page_rotate_invert\">Перевернути орієнтацію обернутих широких сторінок</string>\n    <string name=\"pref_debug_info\">Інформація для відлагодження</string>\n    <string name=\"pref_chapter_swipe_end\">Розділ при проведені пальцем вправоруч</string>\n    <string name=\"pref_chapter_swipe_start\">Розділ при проведені пальцем ліворуч</string>\n    <string name=\"pref_double_tap_zoom\">Двічі торкніться, щоб збільшити</string>\n    <string name=\"action_set_interval\">Встановити інтервал</string>\n    <string name=\"manga_display_interval_title\">Оцініть кожну</string>\n    <string name=\"action_filter_interval_custom\">Налаштувати інтервал оновленнь</string>\n    <string name=\"pref_update_only_in_release_period\">Передбачити наступний випуск</string>\n    <string name=\"action_sort_next_updated\">Наступне очікуване оновлення</string>\n    <string name=\"intervals_header\">Інтервали</string>\n    <string name=\"manga_display_modified_interval_title\">Налаштовано на оновлення кожної</string>\n    <string name=\"skipped_reason_not_in_release_period\">Пропущено, оскільки сьогодні не очікується жодного релізу</string>\n    <string name=\"action_ok\">ОК</string>\n    <string name=\"track_delete_remote_text\">Також видалити з %s</string>\n    <string name=\"track_delete_title\">Видалити відстеження %s?</string>\n    <string name=\"track_delete_text\">Це видалить відстеження локально.</string>\n    <string name=\"delete_downloaded\">Видалити завантажене</string>\n    <string name=\"has_results\">Має результати</string>\n    <string name=\"library_sync_complete\">Синхронізацію бібліотеки завершено</string>\n    <string name=\"syncing_library\">Синхронізація бібліотеки</string>\n    <string name=\"track_activity_name\">Логін трекера</string>\n    <string name=\"download_cache_invalidated\">Індекс завантажень недійсний</string>\n    <string name=\"information_cloudflare_help\">Натисніть тут, щоб отримати допомогу з Cloudflare</string>\n    <string name=\"create_backup_file_error\">Не вдалося створити файл резервної копії</string>\n    <string name=\"unlock_app_title\">Розблокувати %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Перемістити серію вниз</string>\n    <string name=\"exception_offline\">Немає Інтернет-з\\'єднання</string>\n    <string name=\"exception_http\">Http %d, перевірте вебсайт у WebView</string>\n    <string name=\"exception_unknown_host\">Не вдалося досягти %s</string>\n    <string name=\"pref_relative_format\">Відносні позначки часу</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" замість \\\"%2$s\\\"</string>\n    <string name=\"source_settings\">Налаштування джерела</string>\n    <string name=\"app_settings\">Налаштування застосунку</string>\n    <string name=\"action_apply\">Застосувати</string>\n    <string name=\"action_revert_to_default\">Повернути за замовчуванням</string>\n    <string name=\"scanlator\">Сканлейтор</string>\n    <string name=\"action_sort_tracker_score\">Оцінка трекера</string>\n    <string name=\"label_data_storage\">Дані та сховище</string>\n    <string name=\"action_create\">Створити</string>\n    <string name=\"relative_time_span_never\">Ніколи</string>\n    <string name=\"pref_flash_page_summ\">Зменшує гостинг на e-ink екранах</string>\n    <string name=\"last_auto_backup_info\">Востаннє автоматично зарезервовано: %s</string>\n    <string name=\"no_scanlators_found\">Перекладачів не знайдено</string>\n    <string name=\"pref_flash_page\">Блимати екраном при зміні сторінки</string>\n    <string name=\"pref_storage_usage\">Використання сховища</string>\n    <string name=\"notification_updating_progress\">Оновлення бібліотеки... (%s)</string>\n    <string name=\"file_null_uri_error\">Файл не вибрано</string>\n    <string name=\"exclude_scanlators\">Виключити перекладачів</string>\n    <string name=\"onboarding_permission_install_apps_description\">Щоб встановити джерело розширеннь.</string>\n    <string name=\"onboarding_guides_returning_user\">Перевстановлюєте %s?</string>\n    <string name=\"onboarding_permission_install_apps\">Встановити дозволи додатка</string>\n    <string name=\"ext_permission_install_apps_warning\">Потребуються дозволи для встановлення додатків. Натисніть сюди для отримання.</string>\n    <string name=\"invalid_backup_file_error\">Повна помилка:</string>\n    <string name=\"private_settings\">Включати конфіденційні налаштування (наприклад, токени для входу в трекери)</string>\n    <string name=\"available_disk_space_info\">Доступні: %1$s / Усього: %2$s</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Використання батареї на фоні</string>\n    <string name=\"onboarding_storage_selection_required\">Потрібно обрати папку</string>\n    <string name=\"onboarding_permission_notifications\">Дозвіл на сповіщення</string>\n    <string name=\"onboarding_permission_notifications_description\">Отримувати сповіщення про оновлення бібліотек та інше.</string>\n    <string name=\"pref_library_update_smart_update\">Розумні оновлення</string>\n    <string name=\"information_empty_repos\">У вас нема встановлених репозиторіїв.</string>\n    <string name=\"action_add_repo\">Додати репозиторій</string>\n    <string name=\"label_extension_repos\">Репозиторії розширень</string>\n    <string name=\"error_repo_exists\">Цей репозиторій вже існує!</string>\n    <string name=\"label_add_repo_input\">Посилання на репозиторій</string>\n    <string name=\"action_add_repo_message\">Додати додаткові репозиторії до %s. Це повинні бути посилання які закінчуються на \\\"index.min.json\\\".</string>\n    <string name=\"manga_interval_expected_update\">Нові розділи передбачено будуть випущені приблизно в %1$s, перевіряючи кожні %2$s.</string>\n    <string name=\"onboarding_storage_help_info\">Оновлюєтесь з попередньої версії і не впевнені яку обрати? Перегляньте гайд по сховищу для додаткової інформації.</string>\n    <string name=\"onboarding_storage_help_action\">Гайд по сховищу</string>\n    <string name=\"manga_interval_custom_amount\">Своя частота оновлення:</string>\n    <string name=\"theme_nord\">Північ</string>\n    <string name=\"invalid_repo_name\">Недійсне посилання на репозиторій</string>\n    <string name=\"delete_repo_confirmation\">Бажаєте видалити репозиторій \\\"%s\\\"?</string>\n    <string name=\"no_location_set\">Не встановлено місце сховища</string>\n    <string name=\"pref_storage_location\">Місце сховища</string>\n    <string name=\"onboarding_permission_action_grant\">Отримати</string>\n    <string name=\"pref_storage_location_info\">Використовується для автоматичних бекапів, завантажень розділів, та локальних джерел.</string>\n    <string name=\"manga_interval_expected_update_soon\">Незабаром</string>\n    <string name=\"ext_revoke_trust\">Скинути довірені невідомі розширення</string>\n    <string name=\"action_delete_repo\">Видалити репозиторій</string>\n    <string name=\"action_open_repo\">Репозиторій з відкритим початковим кодом</string>\n    <string name=\"selected\">Обрано</string>\n    <string name=\"not_selected\">Не обрано</string>\n    <string name=\"action_menu_overflow_description\">Більше опцій</string>\n    <string name=\"action_bar_up_description\">Навігація вгору</string>\n    <string name=\"onboarding_guides_new_user\">Новачки у %s? Ми рекомендуємо переглянути стартовий гайд.</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Уникати переривань для довготривалих оновлень бібліотек, завантажень, та бекапів.</string>\n    <string name=\"onboarding_storage_action_select\">Оберіть папку</string>\n    <string name=\"onboarding_heading\">Вітаємо!</string>\n    <string name=\"onboarding_action_next\">Далі</string>\n    <string name=\"onboarding_action_skip\">Пропустити</string>\n    <string name=\"onboarding_storage_info\">Оберіть папку де %1$s буде зберігати збережені розділи, бекапи, та інше. \\n \\nРекомендуємо обрати окрему папку. \\n \\nОбрана папка: %2$s</string>\n    <string name=\"onboarding_action_finish\">Почнемо</string>\n    <string name=\"onboarding_description\">Давайте для початку налаштуємо дещо. Ви завжди зможете змінити ці налаштування потім.</string>\n    <string name=\"pref_onboarding_guide\">Гайд новачка</string>\n    <string name=\"action_add_anyway\">Додати у будь-якому разі</string>\n    <string name=\"action_replace_repo_title\">Відбиток пальця для підпису ключа вже існує</string>\n    <string name=\"action_replace_repo_message\">Репозиторій %1$s має такий самий відбиток ключа підпису, як і %2$s.\n\\nЯкщо це очікувано, %2$s буде замінено, в іншому випадку зверніться до вашого обслуговуючого репозиторію.</string>\n    <string name=\"action_view_upcoming\">Переглянути майбутні оновлення</string>\n    <string name=\"upcoming_calendar_prev\">Попередній місяць</string>\n    <string name=\"action_replace_repo\">Замінити</string>\n    <string name=\"pref_display_profile\">Власний профіль відображення</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Вимкнути зменшення масштабу</string>\n    <string name=\"label_upcoming\">Незабаром</string>\n    <string name=\"upcoming_calendar_next\">Наступний місяць</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Оновити прогрес коли главу помічено прочитаною</string>\n    <string name=\"manga_interval_expected_update_null\">Ця манґа завершена, або не має приблизної дати релізу.</string>\n    <string name=\"action_sort_random\">Випадково</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Надіслати анонімний звіт про помилку.</string>\n    <string name=\"onboarding_permission_crashlytics\">Надіслати звіт про помилку</string>\n    <string name=\"onboarding_permission_analytics\">Дозволити аналітику</string>\n    <string name=\"pref_flash_duration_summary\">%1$s мс</string>\n    <string name=\"pref_firebase\">Аналітика та Звіти про помилки</string>\n    <string name=\"action_copy_link\">Копіювати посилання</string>\n    <string name=\"onboarding_permission_analytics_description\">Надсилати анонімну інформацію про використання для покращення застосунку.</string>\n    <string name=\"pref_security\">Безпека</string>\n    <string name=\"firebase_summary\">Надсилання звітів про помилки та аналітику дозволить нам ідентифікувати та виправити недоліки, покращити працездатність та зробити майбутні оновлення більш актуальними для ваших потреб</string>\n    <string name=\"ext_confirm_remove\">Видалити Розширення?</string>\n    <string name=\"ext_remove\">Видалити</string>\n    <string name=\"remove_private_extension_message\">Дійсно видалити \\\"%s\\\"?</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Пропустити завантаження копій прочитаних розділів</string>\n    <string name=\"add_repo_confirmation\">Дійсно додати репозиторій \\\"%s\\\"?</string>\n    <string name=\"label_auto\">Автоматичний</string>\n    <string name=\"theme_monochrome\">Монохромний режим</string>\n    <string name=\"pref_behavior\">Поведінка</string>\n    <string name=\"action_notes\">Примітки</string>\n    <string name=\"action_edit_notes\">Редагувати примітки</string>\n    <string name=\"action_display_unread_badge\">Непрочитані розділи</string>\n    <string name=\"pref_flash_style_white\">Білий</string>\n    <string name=\"pref_flash_style_white_black\">Білий і чорний</string>\n    <string name=\"pref_flash_duration\">Тривалість спалаху</string>\n    <string name=\"pref_flash_page_interval\">Блимайти кожну</string>\n    <string name=\"pref_flash_with\">Блимайти з</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Позначати дублікат прочитаного розділу теж як прочитаний</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Після прочитання розділу</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Після отримання нового розділу</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Використовуйте застарілий декодер для читалки довгих сторінок</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Впливає на продуктивність. Увімкніть, якщо зменшення порогу растрового зображення не розв\\'язує проблему з порожніми зображеннями</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Користувацький поріг апаратного растра</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Якщо читалка завантажує порожнє зображення, поступово зменшувати поріг.\\nВибрано: %s</string>\n    <string name=\"pref_flash_style_black\">Чорний</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">За замовчуванням (%d)</string>\n    <string name=\"invalid_backup_file_json\">Резервне копіювання JSON не підтримується</string>\n    <string name=\"invalid_backup_file_unknown\">Файл резервної копії пошкоджено</string>\n    <string name=\"trackers_updated_summary\">Трекери оновлено до розділу %d</string>\n    <string name=\"confirm_tracker_update\">Оновити трекери до розділу %d?</string>\n    <string name=\"library_exported\">Бібліотеку експортовано</string>\n    <string name=\"possible_duplicates_title\">Можливі копії</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Призупинити історію читання для розширення</string>\n    <string name=\"action_toggle_private_on\">Відстежувати приватно</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Не вдалося отримати постійний доступ до теки. Програма може поводитися непередбачувано.</string>\n    <string name=\"notes_placeholder\">Сподобалась частина, де…</string>\n    <string name=\"extensionRepo_settings\">Репозиторії розширень</string>\n    <string name=\"upcoming_guide\">Інструкції до наступних розділів</string>\n    <string name=\"non_library_settings\">Всі прочитані записи</string>\n    <string name=\"tracked_privately\">Відстежується приватно</string>\n    <string name=\"action_toggle_private_off\">Відстежувати публічно</string>\n    <string name=\"export\">Експортувати</string>\n    <string name=\"artist\">Художник</string>\n    <string name=\"author\">Автор</string>\n    <string name=\"library_list\">Список бібліотеки</string>\n    <string name=\"possible_duplicates_summary\">У вашій бібліотеці є записи зі схожою назвою.\\n\\nВиберіть запис для перенесення або просто додайте.</string>\n    <string name=\"clear_db_exclude_read\">Зберегти записи з прочитаними розділами</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/uz/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"num_categories\">\n        <item quantity=\"one\">%d toifa</item>\n        <item quantity=\"other\">%d toifa</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"one\">Kecha</item>\n        <item quantity=\"other\">%1$d kun oldin</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"one\">%1$s daqiqadan so\\'ng</item>\n        <item quantity=\"other\">%1$s daqiqadan so\\'ng</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/uz/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"action_view_chapters\">Bõlimlarni kõrish</string>\n    <string name=\"action_edit_cover\">Muqovani õzgartirish</string>\n    <string name=\"action_move_category\">Kategoriyalar õrnatish</string>\n    <string name=\"action_rename_category\">Kategoriyani qayta nomlash</string>\n    <string name=\"action_edit_categories\">Kategoriyalarni õzgartirish</string>\n    <string name=\"action_add_category\">Kategoriya qõshish</string>\n    <string name=\"information_empty_category\">Kutubxonada toifalar yo\\'q. Toifalar yaratish uchun «Qo\\'shish» tugmasini bosing.</string>\n    <string name=\"action_add\">Qõshish</string>\n    <string name=\"action_edit\">Õzgartirish</string>\n    <string name=\"action_disable_all\">Hammasini õchirish</string>\n    <string name=\"action_enable_all\">Hammasini yoqish</string>\n    <string name=\"action_update_library\">Bibliotekani yangilash</string>\n    <string name=\"action_delete\">Õchirish</string>\n    <string name=\"action_remove_bookmark\">Belgini olib tashlash</string>\n    <string name=\"action_bookmark\">Xatchõp</string>\n    <string name=\"action_download\">Yuklash</string>\n    <string name=\"action_mark_previous_as_read\">Oldingisini õqilgan deb belgilash</string>\n    <string name=\"action_mark_as_unread\">Õqilmagan deb belgilash</string>\n    <string name=\"action_mark_as_read\">Õqilgan deb belgilash</string>\n    <string name=\"action_select_inverse\">Teskari tanlov</string>\n    <string name=\"action_select_all\">Hammasini tanlash</string>\n    <string name=\"action_global_search\">Global qidirish</string>\n    <string name=\"action_search_settings\">Qidirish sozlamalari</string>\n    <string name=\"action_search\">Qidirish</string>\n    <string name=\"action_sort_date_added\">Qõshilgan sana</string>\n    <string name=\"action_sort_latest_chapter\">Eng oxirgi bõlim</string>\n    <string name=\"action_sort_last_read\">Oxirgi õqilgan</string>\n    <string name=\"action_sort_total\">Umumiy bõlimlar</string>\n    <string name=\"action_sort_alpha\">Alifbo ko\\'rinishida</string>\n    <string name=\"action_filter_empty\">Filtrni o\\'chirish</string>\n    <string name=\"action_filter_unread\">O\\'qilmagan</string>\n    <string name=\"action_filter_bookmarked\">Xatchopda</string>\n    <string name=\"action_filter\">Filtr</string>\n    <string name=\"action_menu\">Menyu</string>\n    <string name=\"action_settings\">Sozlamalar</string>\n    <string name=\"history\">Tarix</string>\n    <string name=\"track\">Kuzatish</string>\n    <string name=\"chapters\">Boblar</string>\n    <string name=\"manga\">Kutubxona yozuvlari</string>\n    <string name=\"categories\">Toifalar</string>\n    <string name=\"information_empty_library\">Sizning kutubxonangiz bo\\'sh</string>\n    <string name=\"information_no_recent_manga\">Yaqin vaqtda hech narsa o\\'qilmagan</string>\n    <string name=\"information_no_recent\">Yangilanishlar yo\\'q</string>\n    <string name=\"information_no_downloads\">Yuklamalar yo\\'q</string>\n    <string name=\"label_help\">Yordam</string>\n    <string name=\"label_extension_info\">Qo\\'shimchalar haqida ma\\'lumot</string>\n    <string name=\"label_extensions\">Qo\\'shimchalar</string>\n    <string name=\"label_migration\">Kõchish</string>\n    <string name=\"label_backup\">Saqlash</string>\n    <string name=\"label_sources\">Manbalar</string>\n    <string name=\"label_recent_manga\">Tarix</string>\n    <string name=\"label_recent_updates\">Yangilanishlar</string>\n    <string name=\"label_library\">Kutubxona</string>\n    <string name=\"label_download_queue\">Yuklash navbati</string>\n    <string name=\"label_settings\">Sozlamalar</string>\n    <string name=\"label_more\">Kõproq</string>\n    <string name=\"name\">Name</string>\n    <string name=\"label_stats\">Statistika</string>\n    <string name=\"label_default\">Standart</string>\n    <string name=\"label_started\">Boshlangan</string>\n    <string name=\"label_local\">Foydalanuvchi</string>\n    <string name=\"label_downloaded\">Yuklangan</string>\n    <string name=\"off\">Oʻchiq</string>\n    <string name=\"action_sort_count\">Jami qismlar</string>\n    <string name=\"on\">Yoniq</string>\n    <string name=\"action_sort_last_manga_update\">Oxirgi yangilanish tekshiruvi</string>\n    <string name=\"label_warning\">Ogohlantirish</string>\n    <string name=\"confirm_lock_change\">O\\'zgartirishni tasdiqlash uchun autentifikatsiya qiling</string>\n    <string name=\"action_filter_tracked\">Kuzatilayotgan</string>\n    <string name=\"action_display_show_number_of_items\">Qismlar sonini ko\\'rsatish</string>\n    <string name=\"action_display_show_continue_reading_button\">«Davom ettirish» tugmasi</string>\n    <string name=\"action_pin\">Pin</string>\n    <string name=\"action_order_by_upload_date\">Yuklab olish sanasi</string>\n    <string name=\"action_oldest\">Eng eski</string>\n    <string name=\"action_asc\">Ko\\'tarilish</string>\n    <string name=\"action_desc\">Pasayish</string>\n    <string name=\"action_install\">O\\'rnatish</string>\n    <string name=\"action_save\">Saqlash</string>\n    <string name=\"app_not_available\">Hozir ilovaga kirish iloji yo\\'q</string>\n    <string name=\"pref_category_general\">Asosiy</string>\n    <string name=\"pref_category_reader\">Rider</string>\n    <string name=\"pref_appearance_summary\">Mavzu, sana va vaqt formati</string>\n    <string name=\"pref_reader_summary\">O\\'qish rejimi, ko\\'rinish, navigatsiya</string>\n    <string name=\"pref_tracking_summary\">Bir tomonlama sinxronlash, kengaytirilgan sinxronlash</string>\n    <string name=\"theme_system\">Tizimdagidek</string>\n    <string name=\"theme_lavender\">Lavanda</string>\n    <string name=\"delete_category_confirmation\">\\\"%s\\\" toifasini o\\'chirishni hohlaysizmi?</string>\n    <string name=\"action_previous_chapter\">Oldingi bob</string>\n    <string name=\"action_next_chapter\">Keyingi bob</string>\n    <string name=\"action_migrate\">Ko\\'chirish</string>\n    <string name=\"action_display_local_badge\">Foydalanuvchi manbaasi</string>\n    <string name=\"action_display_language_badge\">Til</string>\n    <string name=\"action_disable\">O\\'chirish</string>\n    <string name=\"action_sort\">Saralash</string>\n    <string name=\"action_newest\">Eng yangi</string>\n    <string name=\"loading\">Yuklanmoqda…</string>\n    <string name=\"internal_error\">InternalError: Qo\\'shimcha ma\\'lumot uchun xatolar ro\\'yhatini ko\\'ring</string>\n    <string name=\"theme_light\">O\\'chiq</string>\n    <string name=\"theme_greenapple\">Yashil olma</string>\n    <string name=\"pref_category_theme\">Mavzu</string>\n    <string name=\"pref_security_summary\">Ilova qulflanishi, ekran himoyasi</string>\n    <string name=\"pref_manage_notifications\">Bildirishnomalarni boshqarish</string>\n    <string name=\"delete_category\">Toifani o\\'chirish</string>\n    <string name=\"action_remove\">O\\'chirish</string>\n    <string name=\"action_start\">Boshlash</string>\n    <string name=\"action_open_in_browser\">Brauzerda ochish</string>\n    <string name=\"action_open_in_web_view\">WebView\\'da ochish</string>\n    <string name=\"action_webview_back\">Orqaga</string>\n    <string name=\"action_webview_forward\">Oldinga</string>\n    <string name=\"pref_browse_summary\">Manbaalar, kengaytmalar, global qidiruv</string>\n    <string name=\"pref_backup_summary\">Qo\\'lbola va avtomatik zaxira nusxalar</string>\n    <string name=\"pref_date_format\">Sana formati</string>\n    <string name=\"theme_tidalwave\">Toshgan to\\'lqin</string>\n    <string name=\"action_start_downloading_now\">Yuklashni boshlash</string>\n    <string name=\"action_display_comfortable_grid\">Qulay ko\\'rinish</string>\n    <string name=\"theme_monet\">O\\'zgaruvchan</string>\n    <string name=\"action_resume\">Davom ettirish</string>\n    <string name=\"action_sort_chapter_fetch_date\">Oxirgi bob sanasi</string>\n    <string name=\"pref_app_language\">Ilova tili</string>\n    <string name=\"action_sort_unread_count\">O\\'qilmagan boblar</string>\n    <string name=\"action_display_mode\">Ko\\'rsatish rejimi</string>\n    <string name=\"action_cancel_all\">Barchasini bekor qilish</string>\n    <string name=\"action_remove_everything\">Barchasini o\\'chirish</string>\n    <string name=\"action_display\">Ko\\'rsatish</string>\n    <string name=\"action_display_grid\">Ixcham ko\\'rinish</string>\n    <string name=\"action_cancel\">Bekor qilish</string>\n    <string name=\"theme_dark\">Yoniq</string>\n    <string name=\"action_retry\">Takrorlash</string>\n    <string name=\"action_display_show_tabs\">Toifa yorliqlarini ko\\'rish</string>\n    <string name=\"action_webview_refresh\">Yangilash</string>\n    <string name=\"pref_downloads_summary\">Avto yuklash, oldindan yuklash</string>\n    <string name=\"pref_advanced_summary\">Xatolar ro\\'yhatini yuklash, quvvat sarfini optimizatsiyalash</string>\n    <string name=\"action_pause\">Pauza</string>\n    <string name=\"action_search_hint\">Qidirish…</string>\n    <string name=\"action_unpin\">Bo\\'shatish</string>\n    <string name=\"cancel_all_for_series\">Ushbu qism uchun barchasini bekor qilish</string>\n    <string name=\"action_order_by_chapter_number\">Bob soni</string>\n    <string name=\"action_move_to_top\">Boshiga</string>\n    <string name=\"action_move_to_top_all_for_series\">Qismni boshiga ko\\'chirish</string>\n    <string name=\"pref_category_appearance\">Ko\\'rsatish</string>\n    <string name=\"pref_category_downloads\">Yuklamalar</string>\n    <string name=\"pref_category_tracking\">Kuzatilayotgan</string>\n    <string name=\"pref_category_about\">Ma\\'lumot</string>\n    <string name=\"pref_app_theme\">Ilova mavzusi</string>\n    <string name=\"theme_midnightdusk\">Yarim tungi oqshom</string>\n    <string name=\"theme_strawberrydaiquiri\">Qulupnayli Daikiri</string>\n    <string name=\"theme_yinyang\">In va Yang</string>\n    <string name=\"theme_yotsuba\">Yotsuba</string>\n    <string name=\"pref_category_library\">Kutubxona</string>\n    <string name=\"action_close\">Yopish</string>\n    <string name=\"action_show_manga\">Qismni ko\\'rsatish</string>\n    <string name=\"action_not_now\">Hozir emas</string>\n    <string name=\"theme_tealturquoise\">Firuz</string>\n    <string name=\"lock_with_biometrics\">Biometrik qulflash</string>\n    <string name=\"action_restore\">Tiklash</string>\n    <string name=\"action_move_to_bottom\">Oxiriga</string>\n    <string name=\"action_share\">Ulashish</string>\n    <string name=\"action_reset\">Tashlash</string>\n    <string name=\"action_undo\">Bekor qilish</string>\n    <string name=\"pref_category_security\">Xavfsizlik</string>\n    <string name=\"pref_dark_theme_pure_black\">Qop-qora qorong\\'u rejim</string>\n    <string name=\"action_open_random_manga\">Tasodifiy qismni ochish</string>\n    <string name=\"action_display_list\">Ro\\'yhat</string>\n    <string name=\"action_display_cover_only_grid\">Nomsiz ko\\'rinish</string>\n    <string name=\"action_display_download_badge\">Yuklab olingan boblar</string>\n    <string name=\"action_open_log\">Logni ochish</string>\n    <string name=\"action_show_errors\">Tafsilotlarni ko\\'rish uchun bosing</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"pref_category_advanced\">Qo\\'shimcha</string>\n    <string name=\"pref_library_summary\">Toifalar, global yangilanish</string>\n    <string name=\"lock_when_idle\">Ishlamayotganda qulflash</string>\n    <string name=\"lock_always\">Doim</string>\n    <string name=\"hide_notification_content\">Bildirishnoma mazmunini yashirish</string>\n    <string name=\"secure_screen\">Ilova ekrani himoyasi</string>\n    <string name=\"pref_show_nsfw_source\">Manbaa va kengaytmalar ro\\'yhatida ko\\'rsatish</string>\n    <string name=\"parental_controls_info\">Bu, ilovada norasmiy yoki noto\\'g\\'ri belgilangan kengaytmalardan NSFW (18+) kontent paydo bo\\'lishini oldini olmaydi.</string>\n    <string name=\"relative_time_today\">Bugun</string>\n    <string name=\"pref_category_display\">Ko\\'rsatish</string>\n    <string name=\"pref_library_columns\">Qismlar soni</string>\n    <string name=\"pref_update_only_started\">Qism boshlanmagan</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Kutubxona yangilanishida yangi muqova va ma\\'lumotlarni tekshirish</string>\n    <string name=\"default_category_summary\">Doim so\\'rash</string>\n    <string name=\"categorized_display_settings\">Har toifa o\\'z sozlamasiga ega</string>\n    <string name=\"pref_library_update_categories_details\">Cheklangan toifalardagi qismlar yangilanmaydi, yoniq toifalarga kirsaham.</string>\n    <string name=\"none\">Yo\\'q</string>\n    <string name=\"multi_lang\">Ko\\'p tilli</string>\n    <string name=\"ext_updates_pending\">Yangilanishlar mavjud</string>\n    <string name=\"untrusted_extension\">Ishonchsiz kengaytma</string>\n    <string name=\"ext_untrusted\">Ishonchsiz</string>\n    <string name=\"untrusted_extension_message\">Bu kengaytma ishonchsiz sertifikat tomonidan imzolangan va faollashtirilmagan.\n\\n\n\\nZararli kengaytma Mihonda saqlanadigan barcha hisobga kirish ma\\'lumotlarini o\\'qishi, yoki ixtiyoriy kodni bajarishi mumkin.\n\\n\n\\nBu sertifikatga ishonish orqali, ushbu xavflarni qabul qilasiz.</string>\n    <string name=\"pref_dual_page_invert_summary\">Agar keng sahifalarning bo\\'linishi o\\'qish yo\\'nalishiga mos kelmasa</string>\n    <string name=\"pref_fullscreen\">To\\'liq ekran rejimi</string>\n    <string name=\"pref_dual_page_split\">Keng sahifalarni bo\\'lish</string>\n    <string name=\"pref_dual_page_invert\">Keng sahifalarni teskarisiga ajratish</string>\n    <string name=\"pref_crop_borders\">Chetlarini kesish</string>\n    <string name=\"pref_color_filter_mode\">Rang filtri rejimi</string>\n    <string name=\"all\">Barchasi</string>\n    <string name=\"pref_library_update_show_tab_badge\">O\\'qilmagan boblar soni «Yangilanishlar» ikonida</string>\n    <string name=\"ext_pending\">Kutilmoqda</string>\n    <string name=\"ext_downloading\">Yuklanmoqda</string>\n    <string name=\"ext_installing\">O\\'rnatilmoqda</string>\n    <string name=\"obsolete_extension_message\">Bu kangaytma boshqa mavjud emas. U noto\\'g\\'ri ishlashi, va ilovada muammolar keltirib chiqarishi mumkin.</string>\n    <string name=\"extension_api_error\">Kengaytmalar ro\\'yhatini olib bo\\'lmadi</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) manbaalari</string>\n    <string name=\"secure_screen_summary\">Ilova himoyasi dasturlar orasida almashishda ilova ekranini yashiradi, va skrinshot qilish imkonini cheklaydi</string>\n    <string name=\"pref_update_only_completely_read\">O\\'qilmagan bob(lar) bor</string>\n    <string name=\"ext_update\">Yangilash</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_show_page_number\">Sahifa raqamini ko\\'rsatish</string>\n    <string name=\"update_6hour\">Har 6 soatda</string>\n    <string name=\"pref_reader_navigation\">Navigatsiya</string>\n    <string name=\"landscape\">Landshaft</string>\n    <string name=\"update_48hour\">Har 2 kunda</string>\n    <string name=\"ext_uninstall\">O\\'chirish</string>\n    <string name=\"restrictions\">Cheklovlar: %s</string>\n    <string name=\"update_12hour\">Har 12 soatda</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Shizukudan kengaytma o\\'rnatishda foydalanish uchun, Shizukuni o\\'rnating va ishga tushuring.</string>\n    <string name=\"ext_trust\">Ishonchli</string>\n    <string name=\"update_weekly\">Har hafta</string>\n    <string name=\"update_72hour\">HAr 3 kunda</string>\n    <string name=\"charging\">Quvvatlanayotganda</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku ishlamayapti</string>\n    <string name=\"pref_skip_filtered_chapters\">Filtrlangan boblarni o\\'tkazib yuborish</string>\n    <string name=\"pref_skip_read_chapters\">O\\'qilgan boblarni o\\'tkazib yuborish</string>\n    <string name=\"filter_mode_darken\">Qoraytirish</string>\n    <string name=\"pref_custom_color_filter\">Foydalanuvchi rang filtri</string>\n    <string name=\"lock_never\">Hech qachon</string>\n    <string name=\"pref_show_reading_mode_summary\">O\\'qish boshlanganida o\\'qish rejimini birozga ko\\'rsatish</string>\n    <string name=\"pref_update_only_non_completed\">Qism yakunlangan</string>\n    <string name=\"ext_install_service_notif\">Kengaytma o\\'rnatilmoqda…</string>\n    <string name=\"pref_category_library_update\">Global yangilanish</string>\n    <string name=\"pref_library_update_refresh_metadata\">Metama\\'lumotlarni yangilash</string>\n    <string name=\"exclude\">Istisno qilish: %s</string>\n    <string name=\"ext_installer_legacy\">Standart</string>\n    <string name=\"pref_show_navigation_mode_summary\">O\\'qish boshlanishida birozga ko\\'rsatish</string>\n    <string name=\"pref_show_navigation_mode\">Teginish hududlari</string>\n    <string name=\"ext_installer_pref\">O\\'rnatuvchi</string>\n    <string name=\"pref_page_transitions\">Sahifalar o\\'tishini animatsiyalash</string>\n    <string name=\"default_category\">Asosiy toifalar</string>\n    <string name=\"ext_update_all\">Barchasini yangilash</string>\n    <string name=\"ext_obsolete\">Eskirgan</string>\n    <string name=\"ext_install\">O\\'rnatish</string>\n    <string name=\"ext_app_info\">Ilova haqida</string>\n    <string name=\"pref_inverted_colors\">Teskari ranglar</string>\n    <string name=\"ext_nsfw_warning\">Ushbu kengaytma manbaalarida NSFW (18+) bo\\'lishi mumkin</string>\n    <string name=\"connected_to_wifi\">Faqat Wi-Fi orqali</string>\n    <string name=\"ext_info_language\">Til</string>\n    <string name=\"portrait\">Portret</string>\n    <string name=\"update_24hour\">Har kun</string>\n    <string name=\"pref_library_update_interval\">Avtomatik yangilanish</string>\n    <string name=\"update_never\">O\\'chiq</string>\n    <string name=\"pref_grayscale\">Kulrang</string>\n    <string name=\"filter_mode_lighten\">Yoritish</string>\n    <string name=\"pref_keep_screen_on\">Ekranni o\\'chirmaslik</string>\n    <string name=\"ext_installed\">O\\'rnatildi</string>\n    <string name=\"ext_info_version\">Versiya</string>\n    <string name=\"pref_double_tap_anim_speed\">Ikki marta bosilganda animatsiya tezligi</string>\n    <string name=\"pref_custom_brightness\">Foydalanuvchi tanlagan yoruqlik</string>\n    <string name=\"ext_info_age_rating\">Yosh cheklovi</string>\n    <string name=\"network_not_metered\">Faqat cheksiz tarmoq orqali</string>\n    <string name=\"include\">O\\'z ichiga oladi: %s</string>\n    <string name=\"pref_cutout_short\">Kesilgan maydondagi ma\\'lumotni ko\\'rsatish</string>\n    <string name=\"pref_show_reading_mode\">O\\'qish rejimini ko\\'rsatish</string>\n    <string name=\"filter_mode_overlay\">Qoplama</string>\n    <string name=\"filter_mode_multiply\">Ko\\'paytirish</string>\n    <string name=\"filter_mode_screen\">Ekran</string>\n    <string name=\"pref_library_update_restriction\">Uskuna uchun avtomatik yangilanishlarni cheklash</string>\n    <string name=\"pref_skip_dupe_chapters\">Takrorlanuvchi boblarni o\\'tkazib yuborish</string>\n    <string name=\"pref_create_folder_per_manga\">Sahifalarni alohida papkalarga saqlash</string>\n    <string name=\"tapping_inverted_horizontal\">Gorizontal</string>\n    <string name=\"tapping_inverted_vertical\">Vertikal</string>\n    <string name=\"tapping_inverted_both\">Ikkala taraf</string>\n    <string name=\"pref_reader_actions\">Amallar</string>\n    <string name=\"pref_read_with_long_tap\">Uzoq teginishda ko\\'rsatiladigan variantlar</string>\n    <string name=\"webtoon_viewer\">Vebtun</string>\n    <string name=\"pref_viewer_nav\">Tegish qismlari</string>\n    <string name=\"nav_zone_left\">Chap</string>\n    <string name=\"nav_zone_right\">O\\'ng</string>\n    <string name=\"right_to_left_viewer\">O\\'ngdan chapga</string>\n    <string name=\"vertical_viewer\">Vertikal</string>\n    <string name=\"l_nav\">L-simon</string>\n    <string name=\"pref_reader_theme\">Orqa fon rangi</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Teskari ovoz tugmalari</string>\n    <string name=\"black_background\">Qora</string>\n    <string name=\"automatic_background\">Avtomatik</string>\n    <string name=\"disabled_nav\">O\\'chirilgan</string>\n    <string name=\"nav_zone_prev\">Oldingi</string>\n    <string name=\"vertical_plus_viewer\">Uzluksiz vertikal</string>\n    <string name=\"pager_viewer\">Sahifabay</string>\n    <string name=\"white_background\">Oq</string>\n    <string name=\"tapping_inverted_none\">Yo\\'q</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Qism nomiga asoslanib papka yaratish</string>\n    <string name=\"nav_zone_next\">Keyingi</string>\n    <string name=\"left_to_right_viewer\">Chapdan o\\'ngga</string>\n    <string name=\"pref_read_with_volume_keys\">Ovoz tugmalari</string>\n    <string name=\"gray_background\">Kulrang</string>\n    <string name=\"pref_viewer_type\">O\\'qish rejimi</string>\n    <string name=\"kindlish_nav\">Kindle-simon</string>\n    <string name=\"edge_nav\">Chekkalar</string>\n    <string name=\"right_and_left_nav\">O\\'ng va chap</string>\n    <string name=\"scale_type_fit_screen\">Ekranga sig\\'dirish</string>\n    <string name=\"scale_type_stretch\">Cho\\'zish</string>\n    <string name=\"scale_type_fit_width\">Eniga</string>\n    <string name=\"double_tap_anim_speed_0\">Animatsiyasiz</string>\n    <string name=\"double_tap_anim_speed_normal\">Normal</string>\n    <string name=\"double_tap_anim_speed_fast\">Tez</string>\n    <string name=\"pref_rotation_type\">Standart aylanish</string>\n    <string name=\"pref_highest\">Eng baland</string>\n    <string name=\"pref_high\">Baland</string>\n    <string name=\"color_filter_b_value\">K</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"fourth_to_last\">O\\'qilgan bobdan to\\'rtinchisi</string>\n    <string name=\"fifth_to_last\">O\\'qilgan bobdan beshinchisi</string>\n    <string name=\"pref_category_auto_download\">Avto-yuklash</string>\n    <string name=\"pref_download_new\">Yangi boblarni yuklash</string>\n    <string name=\"rotation_type\">Aylanish turi</string>\n    <string name=\"rotation_free\">Tizim</string>\n    <string name=\"color_filter_r_value\">Q</string>\n    <string name=\"pref_lowest\">Eng past</string>\n    <string name=\"rotation_landscape\">Landshaft</string>\n    <string name=\"rotation_reverse_portrait\">Teskari portret</string>\n    <string name=\"pref_category_delete_chapters\">Boblarni o\\'chirish</string>\n    <string name=\"invalid_location\">Noto\\'g\\'ri joylashuv: %s</string>\n    <string name=\"pref_low\">Past</string>\n    <string name=\"pref_remove_after_marked_as_read\">«O\\'qilgan» deb belgilangandan so\\'ng o\\'chirish</string>\n    <string name=\"zoom_start_automatic\">Avtomatik</string>\n    <string name=\"rotation_portrait\">Portret</string>\n    <string name=\"rotation_force_portrait\">O\\'zgarmas portret</string>\n    <string name=\"pref_hide_threshold\">Aylantirish vaqtida menyu yashirish sezuvchanligi</string>\n    <string name=\"rotation_force_landscape\">O\\'zgarmas landshaft</string>\n    <string name=\"pref_image_scale_type\">Kattalashtirish</string>\n    <string name=\"pref_remove_after_read\">O\\'qib bo\\'lingandan so\\'ng o\\'chirish</string>\n    <string name=\"last_read_chapter\">Oxirgi o\\'qilgan bob</string>\n    <string name=\"second_to_last\">Oxiridan oldingi o\\'qilgan bob</string>\n    <string name=\"pref_landscape_zoom\">Tasvirni gorizontal kattalashtirish</string>\n    <string name=\"color_filter_g_value\">Y</string>\n    <string name=\"disabled\">O\\'chirilgan</string>\n    <string name=\"zoom_start_left\">Chapdan</string>\n    <string name=\"pref_remove_exclude_categories\">Istisno qilingan toifalar</string>\n    <string name=\"pref_navigate_pan\">Keng rasmlarga teginishda panoramalash</string>\n    <string name=\"scale_type_original_size\">Original o\\'lcham</string>\n    <string name=\"pref_zoom_start\">Kattalashtirishning boshlang\\'ich pozitsiyasi</string>\n    <string name=\"scale_type_smart_fit\">Aqlli</string>\n    <string name=\"zoom_start_right\">O\\'ngdan</string>\n    <string name=\"zoom_start_center\">Markazda</string>\n    <string name=\"pref_always_show_chapter_transition\">Boblar aro o\\'tish</string>\n    <string name=\"pref_category_reading_mode\">O\\'qish rejimi</string>\n    <string name=\"pref_category_reading\">O\\'qish</string>\n    <string name=\"scale_type_fit_height\">Uzunasiga</string>\n    <string name=\"pref_webtoon_side_padding\">Yon bo\\'shliq</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Xatchopli boblarni o\\'chirish</string>\n    <string name=\"third_to_last\">O\\'qilgan bobdan uchinchisi</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/vi/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">Có %d bản cập nhật cho các tiện ích mở rộng sẵn sàng</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d chương mới có</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">Cho %d chương</item>\n    </plurals>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">Sau %1$s phút</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d danh mục</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">Chương %1$s và %2$d</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">Đã bỏ qua %d chương, vì nguồn đang bị thiếu hoặc đã bị lọc ra</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d bộ theo dõi</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">%1$s chương</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">Còn lại %1$s</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">Hoàn tất trong %1$s với %2$s lỗi</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d ngày trước</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">%d chương chưa đọc tiếp</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">%d Chương tiếp theo</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">Đang thiếu %1$s chương</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d ngày</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d kho</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">Trong %1$d ngày</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s trang</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">Di chuyển %1$d mục?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">Sao chép %1$d mục?</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d mục được bỏ qua</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/vi/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">Tên</string>\n    <string name=\"label_settings\">Cài đặt</string>\n    <string name=\"label_download_queue\">Hàng chờ tải xuống</string>\n    <string name=\"label_library\">Thư viện</string>\n    <string name=\"label_recent_manga\">Lịch sử</string>\n    <string name=\"label_recent_updates\">Cập nhật</string>\n    <string name=\"label_backup\">Sao lưu và khôi phục</string>\n    <string name=\"action_settings\">Cài đặt</string>\n    <string name=\"action_filter\">Bộ lọc</string>\n    <string name=\"action_filter_bookmarked\">Đã đánh dấu</string>\n    <string name=\"action_filter_unread\">Chưa đọc</string>\n    <string name=\"action_filter_empty\">Bỏ bộ lọc</string>\n    <string name=\"action_sort_alpha\">Theo bảng chữ cái</string>\n    <string name=\"action_sort_last_read\">Đã đọc gần nhất</string>\n    <string name=\"action_search\">Tìm kiếm</string>\n    <string name=\"action_select_all\">Chọn tất cả</string>\n    <string name=\"action_mark_as_read\">Đánh dấu là đã đọc</string>\n    <string name=\"action_mark_as_unread\">Đánh dấu là chưa đọc</string>\n    <string name=\"action_mark_previous_as_read\">Đánh dấu các chương trước là đã đọc</string>\n    <string name=\"action_download\">Tải xuống</string>\n    <string name=\"action_bookmark\">Đánh dấu chương</string>\n    <string name=\"action_remove_bookmark\">Bỏ đánh dấu chương</string>\n    <string name=\"action_delete\">Xóa</string>\n    <string name=\"action_update_library\">Cập nhật thư viện</string>\n    <string name=\"action_edit\">Sửa</string>\n    <string name=\"action_add\">Thêm</string>\n    <string name=\"action_add_category\">Thêm danh mục</string>\n    <string name=\"action_edit_categories\">Chỉnh sửa danh mục</string>\n    <string name=\"action_rename_category\">Đổi tên danh mục</string>\n    <string name=\"action_move_category\">Đặt danh mục</string>\n    <string name=\"action_edit_cover\">Sửa ảnh bìa</string>\n    <string name=\"action_pause\">Tạm dừng</string>\n    <string name=\"action_previous_chapter\">Chương trước</string>\n    <string name=\"action_next_chapter\">Chương sau</string>\n    <string name=\"action_retry\">Thử lại</string>\n    <string name=\"action_remove\">Gỡ bỏ</string>\n    <string name=\"action_resume\">Tiếp tục</string>\n    <string name=\"action_open_in_browser\">Mở trong trình duyệt</string>\n    <string name=\"action_display_mode\">Chế độ hiển thị</string>\n    <string name=\"action_display\">Hiển thị</string>\n    <string name=\"action_display_grid\">Lưới thu gọn</string>\n    <string name=\"action_display_list\">Danh sách</string>\n    <string name=\"action_cancel\">Hủy</string>\n    <string name=\"action_sort\">Sắp xếp</string>\n    <string name=\"action_install\">Cài đặt</string>\n    <string name=\"action_share\">Chia sẻ</string>\n    <string name=\"action_save\">Lưu lại</string>\n    <string name=\"action_reset\">Làm mới</string>\n    <string name=\"action_undo\">Hoàn tác</string>\n    <string name=\"loading\">Đang tải…</string>\n    <string name=\"pref_category_general\">Chung</string>\n    <string name=\"pref_category_reader\">Trình đọc</string>\n    <string name=\"pref_category_downloads\">Tải xuống</string>\n    <string name=\"pref_category_tracking\">Theo dõi</string>\n    <string name=\"pref_category_advanced\">Nâng cao</string>\n    <string name=\"pref_category_about\">Giới thiệu</string>\n    <string name=\"pref_library_columns\">Số mục trên mỗi hàng</string>\n    <string name=\"portrait\">Dọc</string>\n    <string name=\"landscape\">Ngang</string>\n    <string name=\"pref_library_update_interval\">Tự động cập nhật</string>\n    <string name=\"update_never\">Tắt</string>\n    <string name=\"update_6hour\">Mỗi 6 tiếng</string>\n    <string name=\"update_12hour\">Mỗi 12 tiếng</string>\n    <string name=\"update_24hour\">Mỗi ngày</string>\n    <string name=\"update_48hour\">Mỗi 2 ngày</string>\n    <string name=\"all\">Tất cả</string>\n    <string name=\"pref_library_update_restriction\">Những hạn chế cập nhật thiết bị tự động</string>\n    <string name=\"charging\">Khi đang sạc</string>\n    <string name=\"pref_update_only_non_completed\">Có trạng thái \\\"Đã hoàn thành\\\"</string>\n    <string name=\"pref_auto_update_manga_sync\">Cập nhật tiến triển sau khi đọc</string>\n    <string name=\"pref_fullscreen\">Toàn màn hình</string>\n    <string name=\"pref_page_transitions\">Hoạt ảnh chuyển trang</string>\n    <string name=\"pref_show_page_number\">Hiện số trang</string>\n    <string name=\"pref_custom_brightness\">Độ sáng tùy chỉnh</string>\n    <string name=\"pref_custom_color_filter\">Bộ lọc màu tùy chỉnh</string>\n    <string name=\"pref_keep_screen_on\">Giữ màn hình bật</string>\n    <string name=\"pref_reader_navigation\">Điều hướng</string>\n    <string name=\"pref_read_with_volume_keys\">Phím âm lượng</string>\n    <string name=\"pref_reader_theme\">Màu nền</string>\n    <string name=\"white_background\">Trắng</string>\n    <string name=\"black_background\">Đen</string>\n    <string name=\"pref_viewer_type\">Kiểu đọc mặc định</string>\n    <string name=\"left_to_right_viewer\">Phân trang (trái sang phải)</string>\n    <string name=\"right_to_left_viewer\">Phân trang (phải sang trái)</string>\n    <string name=\"vertical_viewer\">Phân trang (chiều dọc)</string>\n    <string name=\"webtoon_viewer\">Cuộc dọc</string>\n    <string name=\"pref_image_scale_type\">Kiểu tỉ lệ</string>\n    <string name=\"scale_type_fit_screen\">Vừa màn hình</string>\n    <string name=\"scale_type_stretch\">Kéo dãn</string>\n    <string name=\"scale_type_fit_width\">Vừa chiều ngang</string>\n    <string name=\"scale_type_fit_height\">Vừa chiều dọc</string>\n    <string name=\"scale_type_original_size\">Kích thước gốc</string>\n    <string name=\"scale_type_smart_fit\">Tùy chỉnh thông minh</string>\n    <string name=\"pref_zoom_start\">Phóng to vị trí bắt đầu</string>\n    <string name=\"zoom_start_automatic\">Tự động</string>\n    <string name=\"zoom_start_left\">Trái</string>\n    <string name=\"zoom_start_right\">Phải</string>\n    <string name=\"zoom_start_center\">Giữa</string>\n    <string name=\"pref_rotation_type\">Kiểu xoay mặc định</string>\n    <string name=\"rotation_free\">Tự do</string>\n    <string name=\"rotation_force_portrait\">Khoá theo chiều dọc</string>\n    <string name=\"rotation_force_landscape\">Khoá theo chiều ngang</string>\n    <string name=\"color_filter_r_value\">Đỏ</string>\n    <string name=\"color_filter_g_value\">Xanh lá</string>\n    <string name=\"color_filter_b_value\">Xanh lam</string>\n    <string name=\"color_filter_a_value\">Độ mờ đục</string>\n    <string name=\"pref_remove_after_marked_as_read\">Sau khi đánh dấu thủ công là đã đọc</string>\n    <string name=\"pref_remove_after_read\">Tự động xóa sau khi đọc</string>\n    <string name=\"disabled\">Vô hiệu hóa</string>\n    <string name=\"last_read_chapter\">Chương đã đọc gần nhất</string>\n    <string name=\"second_to_last\">Hai chương đã đọc gần nhất</string>\n    <string name=\"third_to_last\">Ba chương đã đọc gần nhất</string>\n    <string name=\"fourth_to_last\">Bốn chương đã đọc gần nhất</string>\n    <string name=\"fifth_to_last\">Năm chương đã đọc gần nhất</string>\n    <string name=\"pref_download_new\">Tải chương mới</string>\n    <string name=\"services\">Dịch vụ</string>\n    <string name=\"pref_clear_chapter_cache\">Dọn dẹp bộ nhớ đệm</string>\n    <string name=\"used_cache\">Đã sử dụng: %1$s</string>\n    <string name=\"cache_deleted\">Bộ nhớ đệm đã được dọn dẹp, đã xoá %1$d tập tin</string>\n    <string name=\"cache_delete_error\">Lỗi xảy ra trong khi xóa</string>\n    <string name=\"pref_clear_cookies\">Dọn dẹp thông tin lưu trữ</string>\n    <string name=\"cookies_cleared\">Thông tin lưu trữ đã được xóa</string>\n    <string name=\"pref_clear_database\">Dọn dẹp cơ sở dữ liệu</string>\n    <string name=\"pref_clear_database_summary\">Xóa lịch sử đọc truyện và các chương không nằm trong thư viện</string>\n    <string name=\"clear_database_completed\">Các mục đã bị xóa</string>\n    <string name=\"version\">Phiên bản</string>\n    <string name=\"pref_enable_acra\">Gửi báo cáo lỗi</string>\n    <string name=\"pref_acra_summary\">Giúp đỡ sửa lỗi. Sẽ không có thông tin nhạy cảm nào được gửi đi</string>\n    <string name=\"login_title\">Đăng nhập vào %1$s</string>\n    <string name=\"username\">Tên đăng nhập</string>\n    <string name=\"password\">Mật khẩu</string>\n    <string name=\"login\">Đăng nhập</string>\n    <string name=\"login_success\">Đăng nhập thành công</string>\n    <string name=\"unknown_error\">Lỗi không xác định</string>\n    <string name=\"updating_category\">Cập nhật danh mục</string>\n    <string name=\"no_more_results\">Không có thêm kết quả nào</string>\n    <string name=\"ongoing\">Đang tiến hành</string>\n    <string name=\"unknown\">Không rõ</string>\n    <string name=\"licensed\">Đã được mua bản quyền</string>\n    <string name=\"remove_from_library\">Gỡ bỏ khỏi thư viện</string>\n    <string name=\"display_mode_chapter\">Chương %1$s</string>\n    <string name=\"chapter_downloading_progress\">Đang tải xuống (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">Lỗi</string>\n    <string name=\"chapter_paused\">Đã tạm dừng</string>\n    <string name=\"show_title\">Tiêu đề nguồn</string>\n    <string name=\"show_chapter_number\">Số chương</string>\n    <string name=\"sort_by_source\">Theo nguồn truyện</string>\n    <string name=\"sort_by_number\">Theo số chương</string>\n    <string name=\"manga_download\">Tải xuống</string>\n    <string name=\"download_unread\">Chưa đọc</string>\n    <string name=\"confirm_delete_chapters\">Bạn có chắc muốn xóa các chương đã chọn?</string>\n    <string name=\"manga_tracking_tab\">Theo dõi</string>\n    <string name=\"reading\">Đang đọc</string>\n    <string name=\"completed\">Đã hoàn thành</string>\n    <string name=\"dropped\">Đã dừng</string>\n    <string name=\"on_hold\">Đang đọc</string>\n    <string name=\"plan_to_read\">Dự định sẽ đọc</string>\n    <string name=\"score\">Điểm số</string>\n    <string name=\"title\">Tiêu đề</string>\n    <string name=\"status\">Trạng thái</string>\n    <string name=\"chapters\">Các chương</string>\n    <string name=\"error_category_exists\">Tên danh mục này đã tồn tại!</string>\n    <string name=\"snack_categories_deleted\">Danh mục đã bị xóa</string>\n    <string name=\"dialog_with_checkbox_remove_description\">Sẽ xóa ngày đọc các chương. Bạn chắc chứ?</string>\n    <string name=\"dialog_with_checkbox_reset\">Làm mới mọi chương của truyện này</string>\n    <string name=\"snack_add_to_library\">Thêm truyện vào thư viện?</string>\n    <string name=\"picture_saved\">Đã lưu ảnh</string>\n    <string name=\"custom_filter\">Bộ lọc tùy chỉnh</string>\n    <string name=\"set_as_cover\">Đặt làm ảnh bìa</string>\n    <string name=\"cover_updated\">Đã cập nhật ảnh bìa</string>\n    <string name=\"chapter_progress\">Trang: %1$d</string>\n    <string name=\"no_next_chapter\">Không tìm thấy chương kế tiếp</string>\n    <string name=\"decode_image_error\">Hình ảnh không thể hiển thị được</string>\n    <string name=\"confirm_set_image_as_cover\">Bạn có chắc muốn đặt ảnh này làm ảnh bìa?</string>\n    <string name=\"download_queue_error\">Có lỗi đã xảy ra khi đang tải các chương. Bạn có thể thử lại trong phần Tải xuống</string>\n    <string name=\"notification_new_chapters\">Đã tìm thấy chương mới</string>\n    <string name=\"notification_cover_update_failed\">Cập nhật ảnh bìa thất bại</string>\n    <string name=\"notification_first_add_to_library\">Hãy thêm truyện vào thư viện trước khi thực hiện</string>\n    <string name=\"file_select_cover\">Chọn ảnh bìa</string>\n    <string name=\"file_select_backup\">Chọn file sao lưu</string>\n    <string name=\"update_check_confirm\">Tải xuống</string>\n    <string name=\"update_check_no_new_updates\">Không có cập nhật mới</string>\n    <string name=\"update_check_notification_download_in_progress\">Đang tải xuống…</string>\n    <string name=\"update_check_notification_download_complete\">Nhấn để cập nhật</string>\n    <string name=\"update_check_notification_download_error\">Lỗi khi tải xuống</string>\n    <string name=\"update_check_notification_update_available\">Có cập nhật mới!</string>\n    <string name=\"information_no_downloads\">Không có</string>\n    <string name=\"information_no_recent\">Không có cập nhật mới</string>\n    <string name=\"information_no_recent_manga\">Không có truyện đã đọc gần đây</string>\n    <string name=\"information_empty_library\">Thư viện trống</string>\n    <string name=\"download_notifier_downloader_title\">Trình tải xuống</string>\n    <string name=\"download_notifier_title_error\">Lỗi</string>\n    <string name=\"download_notifier_unknown_error\">Đã xảy ra lỗi khi tải xuống chương này</string>\n    <string name=\"download_notifier_text_only_wifi\">Không có kết nối Wi-fi</string>\n    <string name=\"download_notifier_no_network\">Không có kết nối mạng</string>\n    <string name=\"download_notifier_download_paused\">Tải xuống đã tạm dừng</string>\n    <string name=\"categories\">Hạng mục</string>\n    <string name=\"manga\">Truyện trong thư viện</string>\n    <string name=\"track\">Theo dõi</string>\n    <string name=\"history\">Lịch sử</string>\n    <string name=\"label_migration\">Di chuyển</string>\n    <string name=\"label_extensions\">Phần mở rộng</string>\n    <string name=\"label_extension_info\">Thông tin chi tiết</string>\n    <string name=\"action_sort_total\">Tổng số chương</string>\n    <string name=\"action_global_search\">Tìm kiếm toàn bộ</string>\n    <string name=\"action_display_download_badge\">Tải các chương</string>\n    <string name=\"action_open_log\">Nhật ký mở</string>\n    <string name=\"action_restore\">Khôi phục</string>\n    <string name=\"app_not_available\">Ứng dụng không có sẵn</string>\n    <string name=\"update_weekly\">Mỗi tuần</string>\n    <string name=\"default_category\">Danh mục mặc định</string>\n    <string name=\"default_category_summary\">Luôn hỏi</string>\n    <string name=\"ext_update\">Cập nhật</string>\n    <string name=\"ext_install\">Cài đặt</string>\n    <string name=\"ext_pending\">Đang chờ xử lý</string>\n    <string name=\"ext_downloading\">Đang tải</string>\n    <string name=\"ext_installing\">Đang cài đặt</string>\n    <string name=\"ext_installed\">Đã cài đặt</string>\n    <string name=\"ext_trust\">Đáng tin cậy</string>\n    <string name=\"ext_untrusted\">Không đáng tin cậy</string>\n    <string name=\"ext_uninstall\">Gỡ cài đặt</string>\n    <string name=\"untrusted_extension\">Tiện ích mở rộng không đáng tin cậy</string>\n    <string name=\"untrusted_extension_message\">Các tiện ích mở rộng độc hại có thể đọc mọi thông tin đăng nhập được lưu trữ hoặc thực thi mã tùy ý.\n\\n\n\\nBạn sẽ chấp nhận những rủi ro khi tin tưởng tiện ích mở rộng này.</string>\n    <string name=\"pref_double_tap_anim_speed\">Tốc độ nhấn đúp hình ảnh động</string>\n    <string name=\"pref_crop_borders\">Cắt viền</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">Đảo ngược phím âm lượng</string>\n    <string name=\"pager_viewer\">Trang</string>\n    <string name=\"double_tap_anim_speed_0\">Không có hiệu ứng</string>\n    <string name=\"double_tap_anim_speed_normal\">Bình thường</string>\n    <string name=\"double_tap_anim_speed_fast\">Nhanh</string>\n    <string name=\"pref_create_backup\">Tạo bản sao lưu</string>\n    <string name=\"pref_create_backup_summ\">Có thể sử dụng để khôi phục thư viện hiện tại</string>\n    <string name=\"pref_restore_backup\">Khôi phục sao lưu</string>\n    <string name=\"pref_restore_backup_summ\">Khôi phục thư viện từ tập tin sao lưu</string>\n    <string name=\"pref_backup_interval\">Lịch sao lưu</string>\n    <string name=\"backup_created\">Sao lưu đã được tạo</string>\n    <string name=\"restore_completed\">Khôi phục hoàn tất</string>\n    <string name=\"backup_choice\">Bạn có muốn sao lưu không?</string>\n    <string name=\"restoring_backup\">Khôi phục sao lưu</string>\n    <string name=\"creating_backup\">Đang tạo bản sao lưu</string>\n    <string name=\"local_source\">Nguồn cục bộ</string>\n    <string name=\"other_source\">Khác</string>\n    <string name=\"action_global_search_hint\">Tìm kiếm toàn bộ…</string>\n    <string name=\"latest\">Mới nhất</string>\n    <string name=\"browse\">Duyệt</string>\n    <string name=\"manga_added_library\">Đã thêm vào thư viện</string>\n    <string name=\"manga_removed_library\">Đã xóa khỏi thư viện</string>\n    <string name=\"delete_downloads_for_manga\">Muốn xóa các chương đã tải?</string>\n    <string name=\"copied_to_clipboard\">Đã sao chép vào bảng tạm:\n\\n%1$s</string>\n    <string name=\"source_not_installed\">Nguồn truyện không thể cài đặt: %1$s</string>\n    <string name=\"repeating\">Đọc lại</string>\n    <string name=\"track_status\">Trạng thái</string>\n    <string name=\"track_type\">Loại</string>\n    <string name=\"transition_finished\">Đã đọc xong:</string>\n    <string name=\"transition_current\">Đang đọc:</string>\n    <string name=\"transition_next\">Chương kế:</string>\n    <string name=\"transition_previous\">Chương trước:</string>\n    <string name=\"transition_no_next\">Không có chương tiếp theo</string>\n    <string name=\"transition_no_previous\">Không có chương trước đó</string>\n    <string name=\"transition_pages_loading\">Đang tải trang…</string>\n    <string name=\"transition_pages_error\">Tải trang thất bại: %1$s</string>\n    <string name=\"migration_dialog_what_to_include\">Chọn dữ liệu bao gồm</string>\n    <string name=\"migrate\">Di chuyển</string>\n    <string name=\"copy\">Sao chép</string>\n    <string name=\"information_empty_category\">Không có danh mục. Nhấn vào dấu cộng để tạo một nhóm từ thư viện.</string>\n    <string name=\"channel_common\">Thường gặp</string>\n    <string name=\"pref_read_with_long_tap\">Nhấn giữ để mở mục hành động</string>\n    <string name=\"action_open_in_web_view\">Mở bằng WebView</string>\n    <string name=\"pref_skip_read_chapters\">Bỏ qua chap đã đọc</string>\n    <string name=\"pref_color_filter_mode\">Chế độ hòa trộn bộ lọc màu</string>\n    <string name=\"filter_mode_overlay\">Phủ lên</string>\n    <string name=\"filter_mode_multiply\">Nhân</string>\n    <string name=\"label_help\">Trợ giúp</string>\n    <string name=\"no_results_found\">Không tìm thấy kết quả nào</string>\n    <string name=\"migration_selection_prompt\">Chọn 1 nguồn để di chuyển từ</string>\n    <string name=\"channel_ext_updates\">Cập nhật tiện ích mở rộng</string>\n    <string name=\"information_webview_outdated\">Vui lòng cập nhật WebView để tương thích tốt hơn</string>\n    <string name=\"information_cloudflare_bypass_failure\">Bỏ qua Cloudflare thất bại</string>\n    <string name=\"notification_chapters_single\">Chương %1$s</string>\n    <string name=\"updating_library\">Đang cập nhật thư viện</string>\n    <string name=\"paused\">Đã tạm ngưng</string>\n    <string name=\"logout_success\">Bạn đã đăng xuất</string>\n    <string name=\"logout\">Đăng xuất tài khoản</string>\n    <string name=\"logout_title\">Đăng xuất khỏi %1$s?</string>\n    <string name=\"email\">Địa chỉ email</string>\n    <string name=\"battery_optimization_disabled\">Tối ưu pin đã được tắt</string>\n    <string name=\"pref_disable_battery_optimization_summary\">Giúp cập nhật và sao lưu thư viện nền</string>\n    <string name=\"pref_disable_battery_optimization\">Tắt tối ưu pin</string>\n    <string name=\"pref_category_reading\">Đang đọc</string>\n    <string name=\"pref_always_show_chapter_transition\">Luôn hiển thị chuyển tiếp chương</string>\n    <string name=\"pref_skip_filtered_chapters\">Bỏ qua các chương đã lọc</string>\n    <string name=\"filter_mode_screen\">Màn hình</string>\n    <string name=\"pref_cutout_short\">Hiển thị nội dung ở phần rìa</string>\n    <string name=\"obsolete_extension_message\">Phần mở rộng này không khả dụng. Nó có thể không chạy và có thể gây ra lỗi với Mihon. Kiến nghị nên Gỡ cài đặt.</string>\n    <string name=\"ext_obsolete\">Lỗi thời</string>\n    <string name=\"ext_updates_pending\">Đang chờ cập nhật</string>\n    <string name=\"pref_category_library_update\">Cập nhật toàn bộ</string>\n    <string name=\"pref_category_display\">Hiển thị</string>\n    <string name=\"hide_notification_content\">Ẩn nội dung thông báo</string>\n    <string name=\"secure_screen_summary\">Bảo vệ màn hình sẽ ẩn nội dung khi chuyển đổi ứng dụng và chặn chụp màn hình</string>\n    <string name=\"secure_screen\">Bảo vệ màn hình</string>\n    <string name=\"lock_never\">Không bao giờ</string>\n    <string name=\"lock_always\">Luôn luôn</string>\n    <string name=\"lock_when_idle\">Khóa khi chạy nền</string>\n    <string name=\"lock_with_biometrics\">Khóa ứng dụng</string>\n    <string name=\"pref_category_security\">Bảo mật và quyền riêng tư</string>\n    <string name=\"pref_manage_notifications\">Quản lý thông báo</string>\n    <string name=\"pref_date_format\">Định dạng ngày</string>\n    <string name=\"theme_system\">Hệ thống</string>\n    <string name=\"theme_dark\">Tối</string>\n    <string name=\"theme_light\">Sáng</string>\n    <string name=\"pref_category_library\">Thư viện</string>\n    <string name=\"action_webview_refresh\">Làm mới</string>\n    <string name=\"action_webview_forward\">Chuyển tới trước</string>\n    <string name=\"action_webview_back\">Trở lại</string>\n    <string name=\"action_move_to_bottom\">Di chuyển xuống cuối</string>\n    <string name=\"action_move_to_top\">Di chuyển lên đầu</string>\n    <string name=\"action_oldest\">Cũ nhất</string>\n    <string name=\"action_newest\">Mới nhất</string>\n    <string name=\"action_cancel_all\">Huỷ bỏ tất cả</string>\n    <string name=\"action_view_chapters\">Xem các chương</string>\n    <string name=\"action_select_inverse\">Đảo ngược lựa chọn</string>\n    <string name=\"action_sort_latest_chapter\">Chương mới nhất</string>\n    <string name=\"action_menu\">Mục chính</string>\n    <string name=\"label_sources\">Nguồn</string>\n    <string name=\"label_more\">Thêm</string>\n    <string name=\"tracking_info\">Đồng bộ một chiều để cập nhật tiến trình chương trong các dịch vụ theo dõi. Thiết lập theo dõi cho các truyện riêng lẻ từ nút theo dõi.</string>\n    <string name=\"pref_category_reading_mode\">Kiểu đọc</string>\n    <string name=\"vertical_plus_viewer\">Cuộc dọc có khoảng cách</string>\n    <string name=\"pref_show_reading_mode_summary\">Hiển thị ngắn gọn chế độ hiện tại khi mở trang đọc truyện</string>\n    <string name=\"pref_show_reading_mode\">Hiển thị chế độ đọc</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">Kiểm tra ảnh bìa và chi tiết khi cập nhật thư viện</string>\n    <string name=\"pref_category_theme\">Chủ đề</string>\n    <string name=\"action_unpin\">Bỏ ghim</string>\n    <string name=\"action_pin\">Ghim</string>\n    <string name=\"action_disable\">Tắt</string>\n    <string name=\"action_display_show_tabs\">Hiện các thẻ danh mục</string>\n    <string name=\"action_display_comfortable_grid\">Lưới</string>\n    <string name=\"action_migrate\">Chuyển</string>\n    <string name=\"action_start\">Bắt đầu</string>\n    <string name=\"action_disable_all\">Tắt tất cả</string>\n    <string name=\"action_enable_all\">Bật tất cả</string>\n    <string name=\"action_sort_date_added\">Ngày thêm</string>\n    <string name=\"invalid_backup_file_missing_manga\">Bản sao lưu không chứa truyện nào.</string>\n    <string name=\"invalid_backup_file\">Tệp sao lưu không hợp lệ:</string>\n    <string name=\"add_to_library\">Thêm vào thư viện</string>\n    <string name=\"ext_nsfw_warning\">Nguồn truyền từ tiện ích mở rộng này có thể chứa nội dung NSFW 18+</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"pref_library_update_refresh_metadata\">Tự động làm mới bộ siêu dữ liệu</string>\n    <string name=\"parental_controls_info\">Điều này không ngăn các tiện ích mở rộng không chính thức hoặc có khả năng bị gắn cờ không chính xác hiển thị nội dung NSFW (18+) trong ứng dụng.</string>\n    <string name=\"label_downloaded_only\">Chỉ hiện truyện đã tải</string>\n    <string name=\"migration_help_guide\">Hướng dẫn di chuyển nguồn</string>\n    <string name=\"action_search_settings\">Cài đặt tìm kiếm</string>\n    <string name=\"backup_in_progress\">Sao lưu đang trong quá trình thực hiện</string>\n    <string name=\"clear_history_confirmation\">Bạn có chắc không? Tất cả lịch sử sẽ bị xoá.</string>\n    <string name=\"pref_library_update_categories_details\">Truyện trong danh mục bị loại trừ sẽ không được cập nhật.</string>\n    <string name=\"track_finished_reading_date\">Ngày kết thúc</string>\n    <string name=\"filter_mode_lighten\">Chế độ làm sáng lên</string>\n    <string name=\"filter_mode_darken\">Chế độ làm tối đi</string>\n    <string name=\"manga_from_library\">Từ thư viện</string>\n    <string name=\"downloaded_chapters\">Các chương đã tải</string>\n    <string name=\"requires_app_restart\">Yêu cầu khởi động lại ứng dụng để có hiệu lực</string>\n    <string name=\"edge_nav\">Dạng góc cạnh</string>\n    <string name=\"kindlish_nav\">Dạng giống Kindle</string>\n    <string name=\"l_nav\">Dạng chữ L</string>\n    <string name=\"pref_viewer_nav\">Khu vực nhấn</string>\n    <string name=\"clear_history_completed\">Lịch sử đã được xoá</string>\n    <string name=\"pref_clear_history\">Xoá lịch sử</string>\n    <string name=\"myanimelist_relogin\">Xin hãy đăng nhập lại MAL</string>\n    <string name=\"track_started_reading_date\">Ngày bắt đầu</string>\n    <string name=\"pref_incognito_mode\">Chế độ ẩn danh</string>\n    <string name=\"pref_refresh_library_covers\">Làm mới ảnh bìa trong thư viện</string>\n    <string name=\"pref_dump_crash_logs\">Chia sẻ tệp báo lỗi tạm</string>\n    <string name=\"pref_dump_crash_logs_summary\">Lưu thông tin lỗi và gửi về nhà phát triển</string>\n    <string name=\"pref_incognito_mode_summary\">Dừng lưu giữ lịch sử đọc</string>\n    <string name=\"file_picker_error\">Không tìm thấy ứng dụng chọn tệp</string>\n    <string name=\"spen_previous_page\">Trang trước</string>\n    <string name=\"spen_next_page\">Trang tiếp theo</string>\n    <string name=\"channel_new_chapters\">Cập nhật chương</string>\n    <string name=\"chapter_settings_updated\">Đã cập nhật tuỳ chỉnh mặc định cho chương</string>\n    <string name=\"channel_errors\">Lỗi</string>\n    <string name=\"channel_complete\">Hoàn thành</string>\n    <string name=\"channel_progress\">Quá trình</string>\n    <string name=\"information_webview_required\">Mihon yêu cầu phải có WebView</string>\n    <string name=\"update_check_eol\">Phiên bản Android này không còn được hỗ trợ</string>\n    <string name=\"notification_chapters_multiple\">Chương %1$s</string>\n    <string name=\"notification_chapters_single_and_more\">Chương %1$s và thêm %2$d</string>\n    <string name=\"download_insufficient_space\">Không thể tãi chương vì dung lượng bộ nhớ xuống thấp</string>\n    <string name=\"recent_manga_time\">Ch.%1$s-%2$s</string>\n    <string name=\"loader_not_implemented_error\">Nguồn không tìm thấy</string>\n    <string name=\"page_list_empty_error\">Trang không tìm thấy</string>\n    <string name=\"viewer\">Chế độ đọc</string>\n    <string name=\"pref_category_for_this_series\">Dành cho phần truyện này</string>\n    <string name=\"share_page_info\">%1$s:%2$s,trang %3$d</string>\n    <string name=\"add_tracking\">Thêm theo dõi</string>\n    <string name=\"no_chapters_error\">Không tìm thấy chương</string>\n    <string name=\"set_chapter_settings_as_default\">Đặt mặc định</string>\n    <string name=\"also_set_chapter_settings_for_library\">Ngoài ra có hiệu lực với tất cả truyện trong thư viện</string>\n    <string name=\"confirm_set_chapter_settings\">Bạn có chắc chắn muốn lưu lại tuỳ chỉnh này hay không?</string>\n    <string name=\"chapter_settings\">Tuỳ chỉnh chương</string>\n    <string name=\"sort_by_upload_date\">Bởi ngày đăng</string>\n    <string name=\"clipboard_copy_error\">Sao chép vào bảng tạm thất bại</string>\n    <string name=\"manga_info_collapse\">Hiện bớt</string>\n    <string name=\"manga_info_expand\">Xem thêm</string>\n    <string name=\"in_library\">Trong thư viện</string>\n    <string name=\"unknown_status\">Không rõ trạng thái</string>\n    <string name=\"unknown_author\">Không rõ tác giả</string>\n    <string name=\"pinned_sources\">Đã ghim</string>\n    <string name=\"last_used_source\">Sử dụng lần cuối</string>\n    <string name=\"no_pinned_sources\">Bạn không có nguồn được đánh dấu</string>\n    <string name=\"local_source_help_guide\">Hướng dẫn nguồn cục bộ</string>\n    <string name=\"action_global_search_query\">Tìm kiếm \\\"%1$s\\\" toàn bộ</string>\n    <string name=\"tabs_header\">Mục</string>\n    <string name=\"downloaded_only_summary\">Lọc tất cả truyện trong thư viện</string>\n    <string name=\"notification_incognito_text\">Tắt chế độ ẩn danh</string>\n    <string name=\"updated_version\">Được cập nhật đến phiên bản v%1$s</string>\n    <string name=\"check_for_updates\">Kiểm tra cập nhật</string>\n    <string name=\"licenses\">Mở giấy phép nguồn mở</string>\n    <string name=\"whats_new\">Có gì mới</string>\n    <string name=\"website\">Trang chủ</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">Không thể mở tuỳ chỉnh thiết bị</string>\n    <string name=\"label_data\">Dữ liệu</string>\n    <string name=\"pref_dns_over_https\">DNS qua HTTPS (DoH)</string>\n    <string name=\"label_network\">Mạng</string>\n    <string name=\"restoring_backup_canceled\">Quá trình khôi phục đã bị ngắt</string>\n    <string name=\"restoring_backup_error\">Khôi phục thất bại</string>\n    <string name=\"restore_in_progress\">Đang trong quá trình phục hồi</string>\n    <string name=\"creating_backup_error\">Lưu trữ thất bại</string>\n    <string name=\"restore_duration\">%1$02d phút, %2$02d giây</string>\n    <string name=\"backup_restore_content_full\">Bạn sẽ cần cài đặt bất kỳ tiện ích mở rộng nào bị thiếu rồi đăng nhập vào các dịch vụ theo dõi để sử dụng chúng.</string>\n    <string name=\"backup_restore_missing_trackers\">Bộ theo dõi chưa được đăng nhập vào :</string>\n    <string name=\"backup_restore_missing_sources\">Nguồn không tìm thấy :</string>\n    <string name=\"pref_download_new_categories_details\">Truyện trong các danh mục bị loại trừ sẽ không được tải xuống.</string>\n    <string name=\"pref_category_auto_download\">Tự động tải xuống</string>\n    <string name=\"pref_remove_bookmarked_chapters\">Cho phép xóa các chương đã đánh dấu</string>\n    <string name=\"pref_category_delete_chapters\">Xoá chương</string>\n    <string name=\"pref_webtoon_side_padding\">Kích cỡ hai bên</string>\n    <string name=\"rotation_landscape\">Chế độ nằm ngang</string>\n    <string name=\"rotation_portrait\">Chế độ dọc</string>\n    <string name=\"rotation_type\">Kiểu xoay</string>\n    <string name=\"nav_zone_right\">Phải</string>\n    <string name=\"nav_zone_left\">Trái</string>\n    <string name=\"nav_zone_next\">Tiếp theo</string>\n    <string name=\"nav_zone_prev\">Trước</string>\n    <string name=\"right_and_left_nav\">Phải và trái</string>\n    <string name=\"automatic_background\">Tự động</string>\n    <string name=\"gray_background\">Xám</string>\n    <string name=\"pref_create_folder_per_manga_summary\">Tạo thư mục dựa theo tên truyện</string>\n    <string name=\"pref_create_folder_per_manga\">Lưu lại trang trong thư mục riêng</string>\n    <string name=\"pref_reader_actions\">Hành động</string>\n    <string name=\"tapping_inverted_both\">Cả hai</string>\n    <string name=\"tapping_inverted_vertical\">Dọc</string>\n    <string name=\"tapping_inverted_horizontal\">Ngang</string>\n    <string name=\"tapping_inverted_none\">Không</string>\n    <string name=\"pref_read_with_tapping_inverted\">Đảo ngược khu vực nhấn</string>\n    <string name=\"pref_grayscale\">Ảnh đen trắng</string>\n    <string name=\"pref_dual_page_invert_summary\">Nếu vị trí của phần tách trang rộng không khớp với hướng đọc</string>\n    <string name=\"pref_dual_page_invert\">Đảo ngược vị trí tách trang</string>\n    <string name=\"pref_dual_page_split\">Chia các trang đôi</string>\n    <string name=\"pref_show_navigation_mode_summary\">Hiển thị ngắn gọn các vùng chạm khi trình đọc được mở</string>\n    <string name=\"pref_show_navigation_mode\">Hiển thị lớp phủ khu vực nhấn</string>\n    <string name=\"exclude\">Loại trừ:%s</string>\n    <string name=\"include\">Bao gồm: %s</string>\n    <string name=\"none\">Không có</string>\n    <string name=\"action_display_show_number_of_items\">Hiện số truyện</string>\n    <string name=\"pref_category_nsfw_content\">Nguồn NSFW (18+)</string>\n    <string name=\"pref_show_nsfw_source\">Hiển thị trong các danh sách nguồn và tiện ích mở rộng</string>\n    <string name=\"action_show_errors\">Chạm để xem toàn bộ chi tiết</string>\n    <string name=\"action_desc\">Giảm dần</string>\n    <string name=\"action_asc\">Tăng dần</string>\n    <string name=\"action_order_by_chapter_number\">Theo số chương</string>\n    <string name=\"action_order_by_upload_date\">Theo ngày đăng</string>\n    <string name=\"action_sort_chapter_fetch_date\">Ngày nhập chương</string>\n    <string name=\"action_filter_tracked\">Đã theo dõi</string>\n    <string name=\"cancel_all_for_series\">Hủy bỏ tất cả cho phần truyền này</string>\n    <string name=\"action_display_local_badge\">Truyện cục bộ</string>\n    <string name=\"error_no_match\">Không tìm thấy chính sác</string>\n    <string name=\"source_unsupported\">Nguồn không còn được hỗ trợ</string>\n    <string name=\"unread\">Chưa đọc</string>\n    <string name=\"error_sharing_cover\">Lỗi khi chia sẻ ảnh bìa</string>\n    <string name=\"error_saving_cover\">Lỗi khi lưu ảnh bìa</string>\n    <string name=\"cover_saved\">Đã lưu ảnh bìa</string>\n    <string name=\"manga_cover\">Ảnh bìa</string>\n    <string name=\"date\">Ngày</string>\n    <string name=\"local_filter_order_by\">Xếp theo</string>\n    <string name=\"local_invalid_format\">Định dạng chương hợp lệ</string>\n    <string name=\"chapter_not_found\">Không tìm thấy chương</string>\n    <string name=\"on\">Bật</string>\n    <string name=\"off\">Tắt</string>\n    <string name=\"restrictions\">Hạn chế: %s</string>\n    <string name=\"information_empty_category_dialog\">Người dùng chưa có danh mục.</string>\n    <string name=\"restore_miui_warning\">Tính năng tối ưu hóa của MIUI phải được bật lên để việc sao lưu/khôi phục hoạt động tốt.</string>\n    <string name=\"theme_greenapple\">Chủ đề: Táo Xanh</string>\n    <string name=\"theme_monet\">Chủ đề: Động</string>\n    <string name=\"pref_app_theme\">Chủ đề ứng dụng</string>\n    <string name=\"action_start_downloading_now\">Bắt đầu tải xuống ngay</string>\n    <string name=\"theme_midnightdusk\">Chủ đề: Hoàng Hôn Giữa Đêm</string>\n    <string name=\"theme_strawberrydaiquiri\">Chủ đề: Daiquiri Dâu Tây</string>\n    <string name=\"theme_tako\">Chủ đề: Tako</string>\n    <string name=\"theme_yinyang\">Chủ đề: Âm &amp; Dương</string>\n    <string name=\"theme_yotsuba\">Chủ đề: Yotsuba</string>\n    <string name=\"pref_dark_theme_pure_black\">Chế độ đen tuyền</string>\n    <string name=\"categorized_display_settings\">Tùy chỉnh mỗi danh mục cho sắp xếp</string>\n    <string name=\"tracking_guide\">Hướng dẫn theo dõi</string>\n    <string name=\"enhanced_services\">Dịch vụ nâng cao</string>\n    <string name=\"enhanced_tracking_info\">Dịch vụ cung cấp các tính năng nâng cao cho các nguồn cụ thể. Truyện sẽ tự động theo dõi khi được thêm vào thư viện của bạn.</string>\n    <string name=\"about_dont_kill_my_app\">Một vài nhà sản xuất có các hạn chế về việc chạy ngầm của ứng dụng có thể gây dừng hiện thị dịch vụ nền. Xem thêm ở địa chỉ này để sửa chữa chúng.</string>\n    <string name=\"theme_tealturquoise\">Chủ đề: Xanh lam &amp; Xanh ngọc</string>\n    <string name=\"pref_category_appearance\">Giao diện</string>\n    <string name=\"confirm_lock_change\">Xác nhận thay đổi</string>\n    <string name=\"label_default\">Mặc định</string>\n    <string name=\"action_track\">Theo dõi</string>\n    <string name=\"pref_remove_exclude_categories\">Các thể loại bị loại trừ</string>\n    <string name=\"pref_hide_threshold\">Độ nhạy cho phần tự ẩn mục chính khi kéo cuộn</string>\n    <string name=\"getting_started_guide\">Hướng dẫn sử dụng khởi đầu</string>\n    <string name=\"pref_tablet_ui_mode\">Giao diện máy tính bảng</string>\n    <string name=\"label_background_activity\">Hoạt động nền</string>\n    <string name=\"pref_lowest\">Thấp nhất</string>\n    <string name=\"pref_low\">Thấp</string>\n    <string name=\"pref_high\">Cao</string>\n    <string name=\"pref_highest\">Cao nhất</string>\n    <string name=\"pref_inverted_colors\">Đảo màu</string>\n    <string name=\"relative_time_today\">Hôm nay</string>\n    <string name=\"help_translate\">Hỗ trợ dịch thuật</string>\n    <string name=\"ext_app_info\">Thông tin ứng dụng</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">Cài và chạy Shizuku để sử dụng Shizuku như một trình cài đặt tiện ích mở rộng.</string>\n    <string name=\"action_sort_count\">Tổng số truyện</string>\n    <string name=\"label_warning\">Cảnh báo</string>\n    <string name=\"ext_installer_pref\">Trình cài đặt</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku đang không chạy</string>\n    <string name=\"ext_installer_legacy\">Cũ</string>\n    <string name=\"pref_verbose_logging\">Ghi nhật ký chi tiết</string>\n    <string name=\"action_display_language_badge\">Ngôn ngữ</string>\n    <string name=\"backup_info\">Bạn nên giữ lại bản sao của sao lưu ở các nơi khác nữa.</string>\n    <string name=\"pref_verbose_logging_summary\">In các ghi chép tường tận đến cả ghi chép hệ thống ( giảm hiệu suất ứng dụng )</string>\n    <string name=\"notification_size_warning\">Các bản cập nhật lớn sẽ gây hại cho các nguồn và có thể dẫn đến các bản cập nhật chậm hơn và cũng làm tăng mức sử dụng pin. Nhấn vào để tìm hiểu thêm.</string>\n    <string name=\"ext_install_service_notif\">Đang cài đặt tiện ích mở rộng…</string>\n    <string name=\"update_72hour\">3 ngày một lần</string>\n    <string name=\"connected_to_wifi\">Chỉ qua Wi-Fi</string>\n    <string name=\"download_queue_size_warning\">Cảnh báo: các tải xuống hàng loạt lớn có thể dẫn đến các nguồn trở nên chậm hơn và / hoặc chặn %s. Nhấn vào để tìm hiểu thêm.</string>\n    <string name=\"channel_app_updates\">Cập nhật ứng dụng</string>\n    <string name=\"ext_update_all\">Cập nhật tất cả</string>\n    <string name=\"pref_auto_clear_chapter_cache\">Xóa bộ nhớ đệm các chương khi tắt ứng dụng</string>\n    <string name=\"clear_database_source_item_count\">%1$d truyện ngoài thư viện có trong cơ sở dữ liệu</string>\n    <string name=\"database_clean\">Không có gì để dọn</string>\n    <string name=\"extension_api_error\">Không tải được danh sách tiện ích mở rộng</string>\n    <string name=\"privacy_policy\">Chính sách quyền riêng tư</string>\n    <string name=\"pref_update_only_completely_read\">Có chương chưa đọc</string>\n    <string name=\"publishing_finished\">Đã hoàn thành xuất bản</string>\n    <string name=\"cancelled\">Đã ngưng</string>\n    <string name=\"on_hiatus\">Đang tạm ngưng</string>\n    <string name=\"library_errors_help\">Để được trợ giúp về cách sửa lỗi cập nhật thư viện, hãy xem %1$s</string>\n    <string name=\"save_chapter_as_cbz\">Lưu dưới dạng lưu trữ CBZ</string>\n    <string name=\"pref_update_only_started\">Chưa bắt đầu đọc</string>\n    <string name=\"learn_more\">Nhấn để tìm hiểu thêm</string>\n    <string name=\"pref_landscape_zoom\">Phóng ảnh phong cảnh tự động</string>\n    <string name=\"action_show_manga\">Hiển thị truyện</string>\n    <string name=\"pref_navigate_pan\">Xoay ảnh rộng</string>\n    <string name=\"action_display_cover_only_grid\">Lưới chỉ mỗi bìa</string>\n    <string name=\"rotation_reverse_portrait\">Đảo ngược chân dung</string>\n    <string name=\"notification_update_error\">%1$d cập nhật thất bại</string>\n    <string name=\"skipped_reason_completed\">Đã bỏ qua vì bộ truyện đã hoàn thành</string>\n    <string name=\"skipped_reason_not_caught_up\">Đã bỏ qua vì vẫn còn chương chưa đọc</string>\n    <string name=\"skipped_reason_not_started\">Đã bỏ qua vì chưa chương được đọc</string>\n    <string name=\"action_move_to_top_all_for_series\">Di chuyển bộ truyện lên đầu</string>\n    <string name=\"disabled_nav\">Tắt</string>\n    <string name=\"error_saving_picture\">Lỗi khi lưu ảnh</string>\n    <string name=\"action_close\">Đóng</string>\n    <string name=\"source_filter_empty_screen\">Không có nguồn đã cài tìm thấy</string>\n    <string name=\"source_empty_screen\">Không có nguồn nào được tìm thấy</string>\n    <string name=\"update_check_open\">Mở trên GitHub</string>\n    <string name=\"empty_backup_error\">Không có mục thư viện nào để sao lưu</string>\n    <string name=\"webview_data_deleted\">Dữ liệu WebView đã được xóa</string>\n    <string name=\"pref_clear_webview_data\">Xóa dữ liệu WebView</string>\n    <string name=\"network_not_metered\">Chỉ trên mạng lưới không hạn định</string>\n    <string name=\"action_sort_last_manga_update\">Truyện cập nhật gần đây</string>\n    <string name=\"action_sort_unread_count\">Số lượng chưa đọc</string>\n    <string name=\"split_tall_images_summary\">Cải thiện khả năng đọc bằng việc cắt nhỏ các ảnh quá dài</string>\n    <string name=\"pref_reset_viewer_flags_success\">Tất cả cài đặt đọc đã được cài lại</string>\n    <string name=\"pref_reset_viewer_flags_error\">Không thể cài lại cài đặt đọc</string>\n    <string name=\"pref_user_agent_string\">Chuỗi đại diện người dùng mặc định</string>\n    <string name=\"unfinished_list\">Danh sách chưa hoàn thành</string>\n    <string name=\"cant_open_last_read_chapter\">Không thể mở lại chương truyện trước</string>\n    <string name=\"delete_category\">Xóa thể loại</string>\n    <string name=\"internal_error\">Lỗi nội bộ: Kiểm tra nhật ký bị ngắt ứng dụng để biết thêm thông tin</string>\n    <string name=\"theme_lavender\">Oải Hương</string>\n    <string name=\"pref_app_language\">Ngôn ngữ ứng dụng</string>\n    <string name=\"ext_info_version\">Phiên bản</string>\n    <string name=\"ext_info_language\">Ngôn ngữ</string>\n    <string name=\"pref_reset_viewer_flags_summary\">Cài lại chế độ đọc và điều hướng của tất cả các bộ truyện</string>\n    <string name=\"pref_reset_viewer_flags\">Cài lại cài đặt đọc từng bộ truyện</string>\n    <string name=\"empty_screen\">Ờ thì, nó lạ lắm</string>\n    <string name=\"not_installed\">Chưa được cài</string>\n    <string name=\"reading_list\">Danh sách đang đọc</string>\n    <string name=\"complete_list\">Danh sách hoàn thành</string>\n    <string name=\"on_hold_list\">Danh sách đang chờ</string>\n    <string name=\"wish_list\">Danh sách muốn đọc</string>\n    <string name=\"download_notifier_split_page_not_found\">Trang %d không thể được tìm thấy khi chia cắt</string>\n    <string name=\"ext_info_age_rating\">Phân loại độ tuổi</string>\n    <string name=\"download_notifier_split_page_path_not_found\">Không thể tìm thấy đường dẫn của trang %d</string>\n    <string name=\"pref_reset_user_agent_string\">Cài lại chuỗi đại diện người dùng mặc định</string>\n    <string name=\"description_placeholder\">Không có mô tả</string>\n    <string name=\"delete_category_confirmation\">Bạn có muốn xóa thể loại \\\"%s\\\"?</string>\n    <string name=\"custom_cover\">Tùy chỉnh ảnh bìa</string>\n    <string name=\"appwidget_unavailable_locked\">Tiện ích không còn khả dụng khi khóa ứng dụng đang bật</string>\n    <string name=\"appwidget_updates_description\">Xem các bộ truyện được cập nhật gần đây</string>\n    <string name=\"action_remove_everything\">Loại bỏ tất cả mọi thứ</string>\n    <string name=\"update_already_running\">Có một cập nhật đang chạy sẵn</string>\n    <string name=\"theme_tidalwave\">Sóng Thủy Triều</string>\n    <string name=\"error_user_agent_string_blank\">Chuỗi đại diện người dùng không thể bỏ trống</string>\n    <string name=\"auto_download_while_reading\">Tự động tải khi đang đọc</string>\n    <string name=\"missing_storage_permission\">Quyền truy cập lưu trữ không được thông qua</string>\n    <string name=\"popular\">Nổi Tiếng</string>\n    <string name=\"are_you_sure\">Bạn chắc chứ?</string>\n    <string name=\"remove_manga\">Bạn sẽ xóa bỏ \\\"%s\\\" này ra khỏi thư viện của bạn</string>\n    <string name=\"updates_last_update_info\">Thư viện lần cuối được cập nhật:%s</string>\n    <string name=\"download_ahead\">Tải Trước</string>\n    <string name=\"download_ahead_info\">Tải trước chỉ áp dụng cho các mục ở trong thư viện và nếu chương cuối cùng đã được tải rồi.</string>\n    <string name=\"multi_lang\">Đa Ngôn Ngữ</string>\n    <string name=\"skipped_reason_not_always_update\">Bỏ qua vì loạt truyện không cần cập nhật</string>\n    <string name=\"action_search_hint\">Tìm kiếm…</string>\n    <string name=\"pref_appearance_summary\">Chủ đề, kiểu hiển thị ngày &amp; giờ</string>\n    <string name=\"pref_library_summary\">Danh mục, cập nhật toàn bộ, vuốt chương</string>\n    <string name=\"pref_reader_summary\">Dạng đọc, hiển thị, điều hướng</string>\n    <string name=\"pref_downloads_summary\">Tự động tải xuống, tải xuống trước</string>\n    <string name=\"pref_backup_summary\">Sao lưu thủ công &amp; tự động</string>\n    <string name=\"pref_security_summary\">Khoá ứng dụng, bảo vệ màn hình</string>\n    <string name=\"pref_advanced_summary\">Tệp báo lỗi tạm, tối ưu hoá pin</string>\n    <string name=\"pref_tracking_summary\">Đồng bộ tiến trình đọc, đồng bộ nâng cao</string>\n    <string name=\"pref_browse_summary\">Nguồn, tiện ích, tìm kiếm toàn bộ</string>\n    <string name=\"action_display_show_continue_reading_button\">Nút tiếp tục đọc</string>\n    <string name=\"action_open_random_manga\">Mở một truyện ngẫu nhiên</string>\n    <string name=\"invalid_location\">Vị trí không hợp lệ: %s</string>\n    <string name=\"label_stats\">Thống kê</string>\n    <string name=\"label_downloaded\">Đã tải xuống</string>\n    <string name=\"label_local\">Nội bộ</string>\n    <string name=\"label_total_chapters\">Tổng số chương</string>\n    <string name=\"label_read_chapters\">Đã đọc</string>\n    <string name=\"information_no_entries_found\">Không có gì trong danh mục này</string>\n    <string name=\"label_overview_section\">Tổng quát</string>\n    <string name=\"label_completed_titles\">Truyện đã đọc</string>\n    <string name=\"label_titles_section\">Truyện</string>\n    <string name=\"label_read_duration\">Thời gian đọc</string>\n    <string name=\"label_started\">Đang tiến hành</string>\n    <string name=\"label_mean_score\">Điểm trung bình</string>\n    <string name=\"updates_last_update_info_just_now\">Ngay bây giờ</string>\n    <string name=\"pref_invalidate_download_cache_summary\">Buộc ứng dụng kiểm tra lại các chương đã tải xuống</string>\n    <string name=\"label_titles_in_global_update\">Tổng cập nhật</string>\n    <string name=\"label_used\">Đã theo dõi</string>\n    <string name=\"label_tracker_section\">Theo dõi</string>\n    <string name=\"label_tracked_titles\">Tổng theo dõi</string>\n    <string name=\"crash_screen_restart_application\">Khởi động lại ứng dụng</string>\n    <string name=\"pref_library_update_show_tab_badge\">Hiển thị số chương chưa đọc</string>\n    <string name=\"error_user_agent_string_invalid\">Chuỗi tác nhân người dùng không hợp lệ</string>\n    <string name=\"unknown_title\">Tiêu đề không xác định</string>\n    <string name=\"track_remove_start_date_conf_text\">Thao tác này sẽ xóa ngày bắt đầu đã chọn trước đó của bạn khỏi %s</string>\n    <string name=\"crash_screen_title\">Ôi trời!</string>\n    <string name=\"track_remove_finish_date_conf_text\">Thao tác này sẽ xóa ngày kết thúc đã chọn trước đó của bạn khỏi %s</string>\n    <string name=\"information_no_manga_category\">Hạng mục trống</string>\n    <string name=\"pref_invalidate_download_cache\">Lập chỉ mục tải xuống</string>\n    <string name=\"action_not_now\">Lúc khác</string>\n    <string name=\"fdroid_warning\">Bản dựng F-Droid không được hỗ trợ chính thức.\n\\nNhấn để tìm hiểu thêm.</string>\n    <string name=\"pref_skip_dupe_chapters\">Bỏ qua chương đúp</string>\n    <string name=\"enhanced_services_not_installed\">Có sẵn nhưng nguồn không được cài đặt: %s</string>\n    <string name=\"day_short\">Ngày %d</string>\n    <string name=\"split_tall_images\">Tách ra những hình ảnh dài</string>\n    <string name=\"pref_hide_in_library_items\">Giấu những truyện đã có trong thư viện</string>\n    <string name=\"minute_short\">%d phút</string>\n    <string name=\"download_notifier_cache_renewal\">Đang kiểm tra những truyện đã tải xuống</string>\n    <string name=\"crash_screen_description\">%s đã có lỗi. Bạn nên chia sẻ tệp báo lỗi tạm ở trong kênh hỗ trợ của chúng tôi trên Discord.</string>\n    <string name=\"action_update_category\">Cập nhật danh mục</string>\n    <string name=\"copied_to_clipboard_plain\">Đã sao chép vào bảng tạm</string>\n    <string name=\"action_copy_to_clipboard\">Sao chép vào bảng tạm</string>\n    <string name=\"seconds_short\">%d giây</string>\n    <string name=\"hour_short\">%d giờ</string>\n    <string name=\"pref_page_rotate\">Quay những trang rộng để vừa màn hình</string>\n    <string name=\"pref_page_rotate_invert\">Lật hướng của các trang rộng đã xoay</string>\n    <string name=\"overlay_header\">Phủ lên</string>\n    <string name=\"track_remove_date_conf_title\">Loại bỏ ngày?</string>\n    <string name=\"track_error\">%1$s Lỗi: %2$s</string>\n    <string name=\"not_applicable\">N/A</string>\n    <string name=\"information_required_plain\">*bắt buộc</string>\n    <string name=\"pref_double_tap_zoom\">Nhấn đúp để phóng to</string>\n    <string name=\"pref_chapter_swipe_end\">Chương khi vuốt sang phải</string>\n    <string name=\"pref_chapter_swipe_start\">Chương khi vuốt sang trái</string>\n    <string name=\"pref_debug_info\">Thông tin gỡ lỗi</string>\n    <string name=\"create_backup_file_error\">Không thể tạo tệp sao lưu</string>\n    <string name=\"action_set_interval\">Đặt khoảng thời gian</string>\n    <string name=\"action_ok\">OK</string>\n    <string name=\"syncing_library\">Đồng bộ thư viện</string>\n    <string name=\"library_sync_complete\">Hoàn tất đồng bộ hóa thư viện</string>\n    <string name=\"delete_downloaded\">Xóa các chương đã tải xuống</string>\n    <string name=\"action_filter_interval_custom\">Khoảng thời gian cập nhật tùy chỉnh</string>\n    <string name=\"action_sort_next_updated\">Cập nhật dự kiến tiếp theo</string>\n    <string name=\"information_cloudflare_help\">Nhấn vào đây để được trợ giúp về Cloudflare</string>\n    <string name=\"pref_update_only_in_release_period\">Chưa công bố</string>\n    <string name=\"unlock_app_title\">Mở khoá %s</string>\n    <string name=\"source_settings\">Cài đặt nguồn</string>\n    <string name=\"app_settings\">Cài đặt ứng dụng</string>\n    <string name=\"pref_storage_location\">Vị trí kho chứa</string>\n    <string name=\"action_create\">Tạo</string>\n    <string name=\"relative_time_span_never\">Không bao giờ</string>\n    <string name=\"onboarding_storage_action_select\">Chọn một thư mục</string>\n    <string name=\"pref_flash_page_summ\">Giảm tình trạng bóng ma trên màn hình e-ink</string>\n    <string name=\"pref_onboarding_guide\">Hướng dẫn làm quen</string>\n    <string name=\"pref_storage_location_info\">Được sử dụng để sao lưu tự động, tải chương và nguồn cục bộ.</string>\n    <string name=\"onboarding_guides_new_user\">Mới với %s sao? Chúng tôi khuyên bạn nên xem hướng dẫn bắt đầu.</string>\n    <string name=\"onboarding_action_finish\">Bắt đầu</string>\n    <string name=\"action_apply\">Áp dụng</string>\n    <string name=\"manga_display_modified_interval_title\">Đặt để cập nhật mỗi</string>\n    <string name=\"onboarding_storage_selection_required\">Phải chọn một thư mục</string>\n    <string name=\"onboarding_permission_notifications\">Quyền thông báo</string>\n    <string name=\"intervals_header\">Đoạn thời gian</string>\n    <string name=\"action_revert_to_default\">Chỉnh về mặc định</string>\n    <string name=\"onboarding_permission_install_apps\">Cài đặt quyền ứng dụng</string>\n    <string name=\"onboarding_heading\">Xin chào!</string>\n    <string name=\"action_menu_overflow_description\">Thêm tùy chọn</string>\n    <string name=\"last_auto_backup_info\">Lần cuối cùng tự động lưu: %s</string>\n    <string name=\"onboarding_guides_returning_user\">Đã sử dụng %s từ trước rồi sao?</string>\n    <string name=\"selected\">Được chọn</string>\n    <string name=\"no_scanlators_found\">Không tìm thấy nhóm dịch nào</string>\n    <string name=\"not_selected\">Chưa chọn</string>\n    <string name=\"action_move_to_bottom_all_for_series\">Di chuyển bộ truyện xuống cuối</string>\n    <string name=\"scanlator\">Nhóm dịch</string>\n    <string name=\"onboarding_action_skip\">Bỏ qua</string>\n    <string name=\"pref_flash_page\">Làm mới màn hình khi đổi trang</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">Tránh gián đoạn quá trình cập nhật thư viện, tải xuống và khôi phục bản sao lưu trong thời gian dài.</string>\n    <string name=\"exception_offline\">Mất kết nối mạng</string>\n    <string name=\"pref_storage_usage\">Kho chứa chiếm dụng</string>\n    <string name=\"onboarding_action_next\">Tiếp</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">Sử dụng pin nền</string>\n    <string name=\"onboarding_permission_install_apps_description\">Để cài đặt nguồn mở rộng.</string>\n    <string name=\"notification_updating_progress\">Đang cập nhật thư viện… (%s)</string>\n    <string name=\"download_cache_invalidated\">Tái tạo chỉ mục tải xuống</string>\n    <string name=\"action_bar_up_description\">Điều hướng trên</string>\n    <string name=\"onboarding_description\">Trước tiên hãy thiết lập một số thứ nhé. Bạn có thể tùy ý chỉnh lại những cài đặt này lại sau.</string>\n    <string name=\"action_sort_tracker_score\">Điểm bộ theo dõi</string>\n    <string name=\"no_location_set\">Chưa đặt vị trí kho chứa</string>\n    <string name=\"label_data_storage\">Dữ liệu và kho chứa</string>\n    <string name=\"skipped_reason_not_in_release_period\">Bỏ qua vì dự kiến hôm nay không có bản phát hành nào</string>\n    <string name=\"onboarding_permission_notifications_description\">Gửi thông báo khi thư viện cấp nhật và nhiều hơn thế.</string>\n    <string name=\"file_null_uri_error\">Không có tập tin được chọn</string>\n    <string name=\"track_delete_title\">Xóa bộ theo dõi %s?</string>\n    <string name=\"track_delete_remote_text\">Đồng thời xóa khỏi %s</string>\n    <string name=\"has_results\">Có kết quả</string>\n    <string name=\"manga_display_interval_title\">Ước tính mỗi</string>\n    <string name=\"track_delete_text\">Điều này sẽ loại bỏ bộ theo dõi cục bộ.</string>\n    <string name=\"track_activity_name\">Đăng nhập bộ theo dõi</string>\n    <string name=\"onboarding_permission_action_grant\">Cho phép</string>\n    <string name=\"onboarding_storage_info\">Chọn thư mục nơi mà %1$s sẽ chứa chương truyện tải xuống, sao lưu, và những thứ khác.\n\\n\n\\nKhuyến khích sử dụng một thư mục chuyên dụng.\n\\n\n\\nThư mục được chọn: %2$s</string>\n    <string name=\"pref_relative_format\">Mốc thời gian liên quan</string>\n    <string name=\"exception_http\">HTTP %d, kiểm tra trang web trong WebView</string>\n    <string name=\"pref_relative_format_summary\">\\\"%1$s\\\" thay vì là \\\"%2$s\\\"</string>\n    <string name=\"exception_unknown_host\">Không thể truy cập %s</string>\n    <string name=\"exclude_scanlators\">Loại trừ nhóm dịch</string>\n    <string name=\"manga_interval_expected_update\">Các chương mới được dự đoán sẽ phát hành trong khoảng %1$s, kiểm tra vào khoảng %2$s.</string>\n    <string name=\"available_disk_space_info\">Hiện có: %1$s / Tổng cộng: %2$s</string>\n    <string name=\"invalid_backup_file_error\">Mã lỗi đầy đủ:</string>\n    <string name=\"ext_permission_install_apps_warning\">Cần phải cấp phép để cài đặt tiện ích mở rộng. Bấm đây để cấp.</string>\n    <string name=\"private_settings\">Bao gồm những cài đặt nhạy cảm (ví dụ như token đăng nhập tracker)</string>\n    <string name=\"action_add_anyway\">Luôn luôn thêm</string>\n    <string name=\"theme_nord\">Phương bắc</string>\n    <string name=\"pref_library_update_smart_update\">Tùy chọn bỏ qua cập nhật</string>\n    <string name=\"label_upcoming\">Sắp tới</string>\n    <string name=\"onboarding_storage_help_info\">Cập nhật từ phiên bản cũ hơn và không biết nên chọn gì? Tham khảo hướng dẫn để biết thêm thông tin.</string>\n    <string name=\"action_add_repo_message\">Thêm nguồn bổ sung vào %s. Địa chỉ URL này cần phải kết thúc với \\\"index.min.json\\\".</string>\n    <string name=\"action_replace_repo_message\">Kho lưu trữ %1$s có Dấu vân tay Khóa ký giống hệt như %2$s.\n\\nNếu điều này là dự kiến, %2$s sẽ bị thay thế. Nếu không, vui lòng liên hệ với người quản lý kho lưu trữ của bạn.</string>\n    <string name=\"information_empty_repos\">Bạn chưa có nguồn nào.</string>\n    <string name=\"ext_revoke_trust\">Thu hồi quyền truy cập của tiện ích không xác định</string>\n    <string name=\"action_add_repo\">Thêm nguồn</string>\n    <string name=\"error_repo_exists\">Nguồn đã có rồi!</string>\n    <string name=\"action_delete_repo\">Xóa nguồn</string>\n    <string name=\"onboarding_storage_help_action\">Hướng dẫn</string>\n    <string name=\"label_extension_repos\">Quản lý nguồn</string>\n    <string name=\"invalid_repo_name\">URL nguồn không hợp lệ</string>\n    <string name=\"label_add_repo_input\">URL nguồn</string>\n    <string name=\"delete_repo_confirmation\">Bạn có muốn xóa nguồn \\\"%s\\\"?</string>\n    <string name=\"action_open_repo\">Mở nguồn</string>\n    <string name=\"manga_interval_expected_update_soon\">Sớm</string>\n    <string name=\"manga_interval_custom_amount\">Tần suất cập nhật tùy chỉnh:</string>\n    <string name=\"pref_display_profile\">Tùy chỉnh hồ sơ màn hình</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">Tắt thu nhỏ</string>\n    <string name=\"action_view_upcoming\">Xem các cập nhật sắp tới</string>\n    <string name=\"upcoming_guide\">Hướng dẫn sắp tới</string>\n    <string name=\"upcoming_calendar_next\">Tháng tiếp theo</string>\n    <string name=\"upcoming_calendar_prev\">Tháng trước</string>\n    <string name=\"action_replace_repo\">Thay thế</string>\n    <string name=\"action_replace_repo_title\">Dấu vân tay cho khóa ký đã được tạo trước đó</string>\n    <string name=\"action_copy_link\">Sao chép liên kết</string>\n    <string name=\"manga_interval_expected_update_null\">Manga này đã hoàn thành hoặc chưa có ngày phát hành dự kiến.</string>\n    <string name=\"pref_flash_duration_summary\">%1$s ms</string>\n    <string name=\"pref_flash_page_interval\">Làm mới sau</string>\n    <string name=\"pref_flash_with\">Làm mới bằng</string>\n    <string name=\"pref_flash_style_black\">Nền đen</string>\n    <string name=\"pref_flash_style_white\">Nền trắng</string>\n    <string name=\"pref_flash_style_white_black\">Nền trắng và Nền đen</string>\n    <string name=\"extensionRepo_settings\">Kho lưu tiện ích mở rộng (repo)</string>\n    <string name=\"add_repo_confirmation\">Bạn có muốn thêm repo \\\"%s\\\" không?</string>\n    <string name=\"pref_flash_duration\">Độ dài làm mới</string>\n    <string name=\"pref_download_new_unread_chapters_only\">Bỏ qua tải xuống các chương đã đọc bị trùng</string>\n    <string name=\"invalid_backup_file_json\">Sao lưu JSON không được hỗ trợ</string>\n    <string name=\"invalid_backup_file_unknown\">Tệp sao lưu bị hỏng</string>\n    <string name=\"confirm_tracker_update\">Cập nhật theo dõi từ chương %d?</string>\n    <string name=\"file_picker_uri_permission_unsupported\">Không thể liên tục truy cập thư mục. Ứng dụng có thể hoạt động bất thường.</string>\n    <string name=\"action_sort_random\">Ngẫu nhiên</string>\n    <string name=\"onboarding_permission_crashlytics\">Gửi nhật ký sự cố (crash log)</string>\n    <string name=\"onboarding_permission_analytics\">Cho phép phân tích dữ liệu</string>\n    <string name=\"onboarding_permission_analytics_description\">Gửi dữ liệu sử dụng ẩn danh để cải thiện các tính năng của ứng dụng.</string>\n    <string name=\"pref_security\">Bảo mật</string>\n    <string name=\"pref_firebase\">Phân tích và Nhật ký sự cố</string>\n    <string name=\"firebase_summary\">Gửi nhật ký sự cố và phân tích, giúp nhà phát triển xác định và khắc phục sự cố, cải thiện hiệu suất và thực hiện các bản cập nhật trong tương lai phù hợp hơn với nhu cầu của bạn</string>\n    <string name=\"onboarding_permission_crashlytics_description\">Gửi nhật ký sự cố ẩn danh tới nhà phát triển để giúp phát triển ứng dụng tốt hơn.</string>\n    <string name=\"ext_confirm_remove\">Gỡ tiện ích mở rộng?</string>\n    <string name=\"non_library_settings\">Tất cả các mục đã đọc</string>\n    <string name=\"ext_remove\">Gỡ</string>\n    <string name=\"remove_private_extension_message\">Bạn có thật sự muốn gỡ tiện ích mở rộng \\\"%s\\\"?</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">Cập nhật tiến trình khi được đánh dấu là đã đọc</string>\n    <string name=\"trackers_updated_summary\">Trình theo dõi được cập nhật đến chương %d</string>\n    <string name=\"pref_hardware_bitmap_threshold\">Tùy chỉnh ngưỡng phần cứng bitmap</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">Mặc định (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">Nếu người đọc tải một hình ảnh trống thì hãy giảm dần ngưỡng\\nĐã chọn: %s</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">Ảnh hưởng đến hiệu suất. Chỉ bật nếu việc giảm ngưỡng bitmap không khắc phục được sự cố hình ảnh trống</string>\n    <string name=\"pref_incognito_mode_extension_summary\">Tạm dừng lịch sử đọc của phần mở rộng</string>\n    <string name=\"pref_behavior\">Tùy chỉnh ưu tiên</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">Sau khi đọc một chương</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">Sau khi tìm nạp chương mới</string>\n    <string name=\"possible_duplicates_title\">Tiêu đề các mục có thể trùng lặp</string>\n    <string name=\"label_auto\">Tự động</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">Đánh dấu chương trùng lặp đã đọc là đã đọc</string>\n    <string name=\"action_edit_notes\">Sửa</string>\n    <string name=\"theme_monochrome\">Chủ đề Đơn sắc</string>\n    <string name=\"action_notes\">Ghi chú</string>\n    <string name=\"action_display_unread_badge\">Chương chưa đọc</string>\n    <string name=\"storage_failed_to_create_download_directory\">Không tạo được thư mục tải xuống</string>\n    <string name=\"pref_update_library_manga_titles\">Cập nhật các tiêu đề truyện trong thư viện để khớp với nguồn</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">Chọn tất cả</string>\n    <string name=\"theme_catppuccin\">Chủ đềL Catppuccin</string>\n    <string name=\"storage_failed_to_create_directory\">Không tạo được thư mục: %s</string>\n    <string name=\"library_list\">Danh sách thư viện</string>\n    <string name=\"library_exported\">Đã Xuất Thư viện</string>\n    <string name=\"clear_database_history_warning\">Đọc các chương và tiến trình của các mục không phải thư viện sẽ bị mất</string>\n    <string name=\"possible_duplicates_summary\">Bạn có các mục trong thư viện của bạn với một tên tương tự.\\n\\nChọn một mục để di chuyển hoặc luôn thêm vào.</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">Đã chọn</string>\n    <string name=\"migrationConfigScreen.availableHeader\">Có sẵn</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">Bỏ chọn</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">Chọn Nguồn được kích hoạt</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">Chọn các nguồn được ghim</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">Tiếp tục</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">Sử dụng bộ giải mã cũ cho cuộc dọc</string>\n    <string name=\"export\">Xuất</string>\n    <string name=\"tracked_privately\">Theo dõi riêng tư</string>\n    <string name=\"action_toggle_private_off\">Theo dõi công khai</string>\n    <string name=\"action_toggle_private_on\">Theo dõi riêng tư</string>\n    <string name=\"author\">Tác giả</string>\n    <string name=\"clear_database_text\">Bạn sắp xóa các mục khỏi cơ sở dữ liệu</string>\n    <string name=\"notes_placeholder\">Rất thích phần mà…</string>\n    <string name=\"pref_update_library_manga_titles_summary\">Cảnh báo: nếu một truyện được đổi tên, nó sẽ bị xóa khỏi hàng đợi tải xuống (nếu có).</string>\n    <string name=\"artist\">Họa sĩ</string>\n    <string name=\"clear_db_exclude_read\">Giữ các mục có chương đã đọc</string>\n    <string name=\"logging_in\">Đang đăng nhập…</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">Ẩn các chỉ báo chương bị thiếu</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">Dữ liệu để di chuyển</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">Xóa các mục tải xuống của mục hiện tại sau khi di chuyển</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">Từ khóa bổ sung (tùy chọn)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">Giúp thu hẹp kết quả tìm kiếm bằng cách thêm các từ khóa bổ sung</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">Ẩn các mục không khớp</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">Ẩn các mục không có chương mới hơn</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">Chỉ hiển thị mục nhập nếu mục có thêm chương</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">Các tùy chọn này chậm và nguy hiểm và có thể dẫn đến các hạn chế từ các nguồn</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">Tìm kiếm nâng cao</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">Chia nhỏ tiêu đề thành các từ khóa để tìm kiếm rộng hơn</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">Phù hợp dựa trên số chương</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">Nếu được bật, sẽ chọn kết quả khớp xa nhất. Nếu không, sẽ chọn kết quả khớp đầu tiên theo thứ tự ưu tiên nguồn.</string>\n    <string name=\"migrationListScreenTitle\">Di chuyển</string>\n    <string name=\"migrationListScreenTitleWithProgress\">Di chuyển (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">Sao chép</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">Di chuyển</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">Không tìm thấy lựa chọn thay thế</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">Mới nhất: %1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">Không rõ</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">Tìm kiếm thủ công</string>\n    <string name=\"migrationListScreen.skipActionLabel\">Không di chuyển</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">Di chuyển ngay</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">Sao chép ngay</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">Dừng di chuyển?</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">Dừng lại</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">Hủy bỏ</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">Sao chép</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">Di chuyển</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">Hủy bỏ</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">Hủy bỏ</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">Không tìm thấy chương nào, mục này không thể được sử dụng để di chuyển</string>\n    <string name=\"label_donate\">Quyên góp</string>\n    <string name=\"pref_display_images_description\">Hiển thị hình ảnh trong mô tả manga</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">Không cho phép tên tệp không phải định dạng ASCII</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">Đảm bảo khả năng tương thích với một số phương tiện lưu trữ nhất định không hỗ trợ Unicode. Khi tính năng này được bật, bạn sẽ cần đổi tên thủ công các thư mục nguồn và manga bằng cách thay thế các ký tự không phải ASCII bằng cách biểu diễn thập lục phân UTF-8 chữ thường của chúng. Các tập tin chương không cần phải đổi tên.</string>\n    <string name=\"pref_download_concurrent_sources\">Tải xuống nguồn đồng thời</string>\n    <string name=\"pref_download_concurrent_pages\">Tải xuống trang đồng thời</string>\n    <string name=\"pref_download_concurrent_pages_summary\">Các trang được tải xuống đồng thời theo từng nguồn</string>\n    <string name=\"action_webview_close_tab\">Đóng thẻ</string>\n    <string name=\"action_filter_excluded_scanlators\">Lọc nhóm dịch bị loại trừ</string>\n    <string name=\"calculating\">Đang tính…</string>\n    <string name=\"download_bookmarked\">Đã đánh dấu</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/zh-rCN/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">%1$s 分钟后</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d 个新章节</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">第 %1$s 章及另外 %2$d 章</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">共 %d 部作品</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">%d 个插件可更新</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">剩余 %1$s 章</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d 个分类</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">耗时 %1$s，出现 %2$s 个错误</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">共 %1$s 章</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d 个记录平台</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">跳过了 %d 章，可能是图源没有这些章节，或者被筛选规则排除了</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d 天前</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">后续 %d 个未读章节</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">后续 %d 章</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">缺少 %1$s 章</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d 天</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d 个仓库</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">%1$d 天后</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">第 %1$s 页</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">迁移 %1$d 个作品？</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">复制 %1$d 作品？</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">%1$d 个作品已跳过</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/zh-rCN/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"name\">名称</string>\n    <string name=\"categories\">分类</string>\n    <string name=\"manga\">书架中的作品</string>\n    <string name=\"chapters\">章节</string>\n    <string name=\"history\">历史</string>\n    <string name=\"label_settings\">设置</string>\n    <string name=\"label_download_queue\">下载队列</string>\n    <string name=\"label_library\">书架</string>\n    <string name=\"label_recent_manga\">历史</string>\n    <string name=\"label_recent_updates\">更新</string>\n    <string name=\"label_backup\">备份与还原</string>\n    <string name=\"label_extensions\">插件</string>\n    <string name=\"label_extension_info\">插件信息</string>\n    <string name=\"action_settings\">设置</string>\n    <string name=\"action_filter\">筛选</string>\n    <string name=\"action_filter_bookmarked\">已添加书签</string>\n    <string name=\"action_filter_unread\">未读</string>\n    <string name=\"action_filter_empty\">取消筛选</string>\n    <string name=\"action_sort_alpha\">名称</string>\n    <string name=\"action_sort_total\">章节数</string>\n    <string name=\"action_sort_last_read\">最近阅读</string>\n    <string name=\"action_search\">搜索</string>\n    <string name=\"action_global_search\">全局搜索</string>\n    <string name=\"action_select_all\">全选</string>\n    <string name=\"action_mark_as_read\">标记为已读</string>\n    <string name=\"action_mark_as_unread\">标记为未读</string>\n    <string name=\"action_download\">下载</string>\n    <string name=\"action_bookmark\">为章节添加书签</string>\n    <string name=\"action_remove_bookmark\">为章节删除书签</string>\n    <string name=\"action_delete\">删除</string>\n    <string name=\"action_update_library\">更新书架</string>\n    <string name=\"action_edit\">编辑</string>\n    <string name=\"action_add\">添加</string>\n    <string name=\"action_add_category\">添加分类</string>\n    <string name=\"action_edit_categories\">编辑分类</string>\n    <string name=\"action_rename_category\">重命名分类</string>\n    <string name=\"action_move_category\">设置分类</string>\n    <string name=\"action_edit_cover\">编辑封面</string>\n    <string name=\"action_pause\">暂停</string>\n    <string name=\"action_previous_chapter\">上一章</string>\n    <string name=\"action_next_chapter\">下一章</string>\n    <string name=\"action_retry\">重试</string>\n    <string name=\"action_remove\">删除</string>\n    <string name=\"action_resume\">继续</string>\n    <string name=\"action_open_in_browser\">在浏览器中打开</string>\n    <string name=\"action_display_mode\">显示模式</string>\n    <string name=\"action_display\">显示</string>\n    <string name=\"action_display_grid\">紧凑网格</string>\n    <string name=\"action_display_list\">列表</string>\n    <string name=\"action_cancel\">取消</string>\n    <string name=\"action_sort\">排序</string>\n    <string name=\"action_install\">安装</string>\n    <string name=\"action_share\">分享</string>\n    <string name=\"action_save\">保存</string>\n    <string name=\"action_reset\">重置</string>\n    <string name=\"action_undo\">撤销</string>\n    <string name=\"track\">进度记录</string>\n    <string name=\"label_migration\">迁移</string>\n    <string name=\"action_mark_previous_as_read\">标记之前章节为已读</string>\n    <string name=\"action_open_log\">打开日志</string>\n    <string name=\"action_restore\">还原</string>\n    <string name=\"loading\">正在加载…</string>\n    <string name=\"action_display_download_badge\">已下载的章节数</string>\n    <string name=\"app_not_available\">应用无法使用</string>\n    <string name=\"pref_category_general\">常规</string>\n    <string name=\"pref_category_reader\">阅读</string>\n    <string name=\"pref_category_downloads\">下载</string>\n    <string name=\"pref_category_tracking\">进度记录</string>\n    <string name=\"pref_category_advanced\">高级</string>\n    <string name=\"pref_category_about\">关于</string>\n    <string name=\"pref_library_columns\">每行数目</string>\n    <string name=\"portrait\">竖屏</string>\n    <string name=\"landscape\">横屏</string>\n    <string name=\"pref_library_update_interval\">自动更新</string>\n    <string name=\"update_never\">关闭</string>\n    <string name=\"update_6hour\">每 6 小时</string>\n    <string name=\"update_12hour\">每 12 小时</string>\n    <string name=\"update_24hour\">每天</string>\n    <string name=\"update_48hour\">每 2 天</string>\n    <string name=\"update_weekly\">每周</string>\n    <string name=\"all\">全部</string>\n    <string name=\"pref_library_update_restriction\">自动更新的系统限制</string>\n    <string name=\"charging\">充电时</string>\n    <string name=\"pref_update_only_non_completed\">跳过已完结的作品</string>\n    <string name=\"pref_auto_update_manga_sync\">阅读后更新进度</string>\n    <string name=\"default_category\">默认归入分类</string>\n    <string name=\"default_category_summary\">每次都询问</string>\n    <string name=\"ext_update\">更新</string>\n    <string name=\"ext_install\">安装</string>\n    <string name=\"ext_pending\">等待中</string>\n    <string name=\"ext_downloading\">下载中</string>\n    <string name=\"ext_installing\">安装中</string>\n    <string name=\"ext_installed\">已安装</string>\n    <string name=\"ext_trust\">信任</string>\n    <string name=\"ext_untrusted\">未信任</string>\n    <string name=\"ext_uninstall\">卸载</string>\n    <string name=\"untrusted_extension\">插件未受信任</string>\n    <string name=\"untrusted_extension_message\">恶意插件可能会读取所有登录的账号或执行任意代码。\n\\n\n\\n信任此插件即代表你愿意承担上述风险。</string>\n    <string name=\"pref_fullscreen\">全屏</string>\n    <string name=\"pref_page_transitions\">翻页动画</string>\n    <string name=\"pref_double_tap_anim_speed\">双击动画速度</string>\n    <string name=\"pref_show_page_number\">显示页码</string>\n    <string name=\"pref_crop_borders\">裁剪边缘</string>\n    <string name=\"pref_custom_brightness\">自定义亮度</string>\n    <string name=\"pref_custom_color_filter\">色彩滤镜</string>\n    <string name=\"pref_keep_screen_on\">保持屏幕常亮</string>\n    <string name=\"pref_reader_navigation\">翻页</string>\n    <string name=\"pref_read_with_volume_keys\">音量键翻页</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">反转音量键</string>\n    <string name=\"pref_reader_theme\">背景颜色</string>\n    <string name=\"white_background\">白色</string>\n    <string name=\"black_background\">黑色</string>\n    <string name=\"pref_viewer_type\">默认阅读模式</string>\n    <string name=\"left_to_right_viewer\">单页式（从左到右）</string>\n    <string name=\"right_to_left_viewer\">单页式（从右到左）</string>\n    <string name=\"vertical_viewer\">单页式（从上到下）</string>\n    <string name=\"webtoon_viewer\">条漫</string>\n    <string name=\"pager_viewer\">单页式</string>\n    <string name=\"pref_image_scale_type\">缩放模式</string>\n    <string name=\"scale_type_fit_screen\">适应屏幕</string>\n    <string name=\"scale_type_stretch\">拉伸</string>\n    <string name=\"scale_type_fit_width\">适应宽度</string>\n    <string name=\"scale_type_fit_height\">适应高度</string>\n    <string name=\"scale_type_original_size\">原始大小</string>\n    <string name=\"scale_type_smart_fit\">智能填充</string>\n    <string name=\"pref_zoom_start\">缩放位置</string>\n    <string name=\"zoom_start_automatic\">自动</string>\n    <string name=\"zoom_start_left\">左边</string>\n    <string name=\"zoom_start_right\">右边</string>\n    <string name=\"zoom_start_center\">中间</string>\n    <string name=\"double_tap_anim_speed_0\">无动画</string>\n    <string name=\"double_tap_anim_speed_normal\">正常</string>\n    <string name=\"double_tap_anim_speed_fast\">快速</string>\n    <string name=\"pref_rotation_type\">默认屏幕方向</string>\n    <string name=\"rotation_free\">跟随系统</string>\n    <string name=\"rotation_force_portrait\">锁定竖屏</string>\n    <string name=\"rotation_force_landscape\">锁定横屏</string>\n    <string name=\"color_filter_r_value\">R</string>\n    <string name=\"color_filter_g_value\">G</string>\n    <string name=\"color_filter_b_value\">B</string>\n    <string name=\"color_filter_a_value\">A</string>\n    <string name=\"pref_remove_after_marked_as_read\">手动标记为已读后</string>\n    <string name=\"pref_remove_after_read\">读完自动删除</string>\n    <string name=\"disabled\">关闭</string>\n    <string name=\"last_read_chapter\">刚才读完的章节</string>\n    <string name=\"second_to_last\">倒数第二个已读章节</string>\n    <string name=\"third_to_last\">倒数第三个已读章节</string>\n    <string name=\"fourth_to_last\">倒数第四个已读章节</string>\n    <string name=\"fifth_to_last\">倒数第五个已读章节</string>\n    <string name=\"pref_download_new\">自动下载新章节</string>\n    <string name=\"services\">平台</string>\n    <string name=\"pref_create_backup\">创建备份</string>\n    <string name=\"pref_create_backup_summ\">可以用来还原当前书架内容</string>\n    <string name=\"pref_restore_backup\">还原备份</string>\n    <string name=\"pref_restore_backup_summ\">从备份文件中还原书架内容</string>\n    <string name=\"pref_backup_interval\">自动备份频率</string>\n    <string name=\"backup_created\">已创建备份</string>\n    <string name=\"restore_completed\">还原完毕</string>\n    <string name=\"backup_choice\">想要备份什么？</string>\n    <string name=\"restoring_backup\">正在还原备份</string>\n    <string name=\"creating_backup\">正在创建备份</string>\n    <string name=\"pref_clear_chapter_cache\">清除章节缓存</string>\n    <string name=\"used_cache\">已使用：%1$s</string>\n    <string name=\"cache_deleted\">已清除缓存，删除了 %1$d 个文件</string>\n    <string name=\"cache_delete_error\">清除时发生错误</string>\n    <string name=\"pref_clear_cookies\">清除 Cookie</string>\n    <string name=\"cookies_cleared\">Cookie 已清除</string>\n    <string name=\"pref_clear_database\">清理数据库</string>\n    <string name=\"pref_clear_database_summary\">删除未添加到书架的作品记录</string>\n    <string name=\"clear_database_completed\">数据已删除</string>\n    <string name=\"version\">版本</string>\n    <string name=\"pref_enable_acra\">发送错误报告</string>\n    <string name=\"pref_acra_summary\">协助我们修复错误；不会发送敏感数据</string>\n    <string name=\"login_title\">登录 %1$s</string>\n    <string name=\"username\">用户名</string>\n    <string name=\"password\">密码</string>\n    <string name=\"login\">登录</string>\n    <string name=\"login_success\">已登录</string>\n    <string name=\"unknown_error\">未知错误</string>\n    <string name=\"updating_category\">正在更新分类</string>\n    <string name=\"no_more_results\">没有更多结果</string>\n    <string name=\"local_source\">本地图源</string>\n    <string name=\"other_source\">其他</string>\n    <string name=\"action_global_search_hint\">全局搜索…</string>\n    <string name=\"latest\">最近更新</string>\n    <string name=\"browse\">浏览</string>\n    <string name=\"ongoing\">连载中</string>\n    <string name=\"unknown\">未知</string>\n    <string name=\"licensed\">版权屏蔽</string>\n    <string name=\"remove_from_library\">移出书架</string>\n    <string name=\"manga_added_library\">已添加到书架</string>\n    <string name=\"manga_removed_library\">已移出书架</string>\n    <string name=\"delete_downloads_for_manga\">要删除已下载的章节吗？</string>\n    <string name=\"copied_to_clipboard\">已复制到剪贴板：\n\\n「%1$s」</string>\n    <string name=\"source_not_installed\">未安装图源：%1$s</string>\n    <string name=\"display_mode_chapter\">第 %1$s 章</string>\n    <string name=\"chapter_downloading_progress\">正在下载 (%1$d/%2$d)</string>\n    <string name=\"chapter_error\">出错</string>\n    <string name=\"chapter_paused\">已暂停</string>\n    <string name=\"show_title\">图源标题</string>\n    <string name=\"show_chapter_number\">章节编号</string>\n    <string name=\"sort_by_source\">按图源</string>\n    <string name=\"sort_by_number\">按章节编号</string>\n    <string name=\"manga_download\">下载</string>\n    <string name=\"download_unread\">未读</string>\n    <string name=\"confirm_delete_chapters\">确定要删除所选章节吗？</string>\n    <string name=\"manga_tracking_tab\">进度记录</string>\n    <string name=\"reading\">在读</string>\n    <string name=\"completed\">已完结</string>\n    <string name=\"dropped\">抛弃</string>\n    <string name=\"on_hold\">搁置</string>\n    <string name=\"plan_to_read\">想读</string>\n    <string name=\"repeating\">重温</string>\n    <string name=\"score\">评分</string>\n    <string name=\"title\">标题</string>\n    <string name=\"status\">状态</string>\n    <string name=\"track_status\">状态</string>\n    <string name=\"track_type\">类型</string>\n    <string name=\"error_category_exists\">已存在同名分类！</string>\n    <string name=\"snack_categories_deleted\">分类已删除</string>\n    <string name=\"dialog_with_checkbox_remove_description\">将会清除此章节的阅读日期，你确定吗？</string>\n    <string name=\"dialog_with_checkbox_reset\">重置此作品的所有章节</string>\n    <string name=\"snack_add_to_library\">要添加到书架吗？</string>\n    <string name=\"picture_saved\">图片已保存</string>\n    <string name=\"custom_filter\">滤镜</string>\n    <string name=\"set_as_cover\">设为封面</string>\n    <string name=\"cover_updated\">封面已更新</string>\n    <string name=\"chapter_progress\">第 %1$d 页</string>\n    <string name=\"no_next_chapter\">后面没有啦</string>\n    <string name=\"decode_image_error\">加载图片失败</string>\n    <string name=\"confirm_set_image_as_cover\">要将此页设为封面吗？</string>\n    <string name=\"transition_finished\">已读完：</string>\n    <string name=\"transition_current\">本章：</string>\n    <string name=\"transition_next\">下一章：</string>\n    <string name=\"transition_previous\">上一章：</string>\n    <string name=\"transition_no_next\">后面没有啦</string>\n    <string name=\"transition_no_previous\">前面没有啦</string>\n    <string name=\"transition_pages_loading\">正在加载页面…</string>\n    <string name=\"transition_pages_error\">图片加载失败：%1$s</string>\n    <string name=\"migration_dialog_what_to_include\">选择需要迁移的数据</string>\n    <string name=\"migrate\">迁移</string>\n    <string name=\"copy\">共存</string>\n    <string name=\"download_queue_error\">下载章节失败，可以在下载页面中重试</string>\n    <string name=\"notification_new_chapters\">发现新章节</string>\n    <string name=\"notification_cover_update_failed\">封面更新失败</string>\n    <string name=\"notification_first_add_to_library\">请先将作品添加到书架</string>\n    <string name=\"file_select_cover\">选择封面图片</string>\n    <string name=\"file_select_backup\">选择备份文件</string>\n    <string name=\"update_check_confirm\">下载</string>\n    <string name=\"update_check_no_new_updates\">没有新版本</string>\n    <string name=\"update_check_notification_download_in_progress\">正在下载…</string>\n    <string name=\"update_check_notification_download_complete\">点击安装更新</string>\n    <string name=\"update_check_notification_download_error\">下载失败</string>\n    <string name=\"update_check_notification_update_available\">有新版本！</string>\n    <string name=\"information_no_downloads\">无下载任务</string>\n    <string name=\"information_no_recent\">最近没有更新</string>\n    <string name=\"information_no_recent_manga\">最近没有阅读</string>\n    <string name=\"information_empty_library\">书架为空</string>\n    <string name=\"information_empty_category\">尚无分类，点击加号按钮创建分类用来管理书架。</string>\n    <string name=\"download_notifier_downloader_title\">下载</string>\n    <string name=\"download_notifier_title_error\">出错</string>\n    <string name=\"download_notifier_unknown_error\">下载时发生意外错误</string>\n    <string name=\"download_notifier_text_only_wifi\">未连接 Wi-Fi</string>\n    <string name=\"download_notifier_no_network\">未连接网络</string>\n    <string name=\"download_notifier_download_paused\">下载已暂停</string>\n    <string name=\"channel_common\">通用</string>\n    <string name=\"pref_read_with_long_tap\">长按显示操作菜单</string>\n    <string name=\"action_open_in_web_view\">在 WebView 中打开</string>\n    <string name=\"pref_skip_read_chapters\">跳过已读章节</string>\n    <string name=\"pref_color_filter_mode\">滤镜混合模式</string>\n    <string name=\"label_help\">帮助</string>\n    <string name=\"filter_mode_overlay\">叠加</string>\n    <string name=\"filter_mode_multiply\">正片叠底</string>\n    <string name=\"filter_mode_screen\">滤色</string>\n    <string name=\"filter_mode_lighten\">变亮</string>\n    <string name=\"filter_mode_darken\">变暗</string>\n    <string name=\"no_results_found\">没有结果</string>\n    <string name=\"migration_selection_prompt\">选择需要迁移的图源</string>\n    <string name=\"action_webview_back\">后退</string>\n    <string name=\"action_webview_forward\">前进</string>\n    <string name=\"action_webview_refresh\">刷新</string>\n    <string name=\"pref_category_library\">书架</string>\n    <string name=\"ext_obsolete\">废弃</string>\n    <string name=\"obsolete_extension_message\">此插件已被废弃，可能无法正常运行或导致应用发生故障，建议卸载。</string>\n    <string name=\"pref_date_format\">日期格式</string>\n    <string name=\"pref_category_library_update\">全局更新</string>\n    <string name=\"logout_title\">要退出 %1$s 吗？</string>\n    <string name=\"logout\">退出</string>\n    <string name=\"logout_success\">已退出</string>\n    <string name=\"paused\">已暂停</string>\n    <string name=\"label_more\">更多</string>\n    <string name=\"action_sort_latest_chapter\">作品更新时间</string>\n    <string name=\"action_view_chapters\">查看章节</string>\n    <string name=\"action_cancel_all\">全部取消</string>\n    <string name=\"theme_light\">浅色</string>\n    <string name=\"theme_dark\">深色</string>\n    <string name=\"theme_system\">跟随系统</string>\n    <string name=\"pref_manage_notifications\">通知管理</string>\n    <string name=\"pref_category_security\">隐私</string>\n    <string name=\"lock_when_idle\">切后台时锁定</string>\n    <string name=\"lock_always\">始终开启</string>\n    <string name=\"lock_never\">关闭</string>\n    <string name=\"secure_screen\">隐私界面</string>\n    <string name=\"ext_updates_pending\">待更新</string>\n    <string name=\"information_cloudflare_bypass_failure\">无法绕过 Cloudflare</string>\n    <string name=\"information_webview_outdated\">请更新 WebView 应用提高兼容性</string>\n    <string name=\"secure_screen_summary\">阻止截屏，并在切换后台时隐藏预览图</string>\n    <string name=\"pref_category_display\">显示</string>\n    <string name=\"channel_new_chapters\">章节更新</string>\n    <string name=\"hide_notification_content\">隐藏通知内容</string>\n    <string name=\"lock_with_biometrics\">应用锁</string>\n    <string name=\"pref_cutout_short\">在屏幕刘海区域显示内容</string>\n    <string name=\"notification_chapters_single\">第 %1$s 章</string>\n    <string name=\"notification_chapters_single_and_more\">第 %1$s 章及另外 %2$d 章</string>\n    <string name=\"notification_chapters_multiple\">第 %1$s 章</string>\n    <string name=\"pref_disable_battery_optimization\">关闭电池优化</string>\n    <string name=\"pref_disable_battery_optimization_summary\">有助于后台更新书架和备份</string>\n    <string name=\"battery_optimization_disabled\">电池优化已经关闭</string>\n    <string name=\"email\">邮箱地址</string>\n    <string name=\"pref_always_show_chapter_transition\">始终显示章节间的过渡页面</string>\n    <string name=\"action_menu\">菜单</string>\n    <string name=\"action_newest\">从新到旧</string>\n    <string name=\"action_oldest\">从旧到新</string>\n    <string name=\"action_move_to_top\">移到顶部</string>\n    <string name=\"action_move_to_bottom\">移到底部</string>\n    <string name=\"channel_ext_updates\">插件更新</string>\n    <string name=\"label_sources\">图源</string>\n    <string name=\"updating_library\">正在更新书架</string>\n    <string name=\"pref_category_reading\">阅读</string>\n    <string name=\"pref_skip_filtered_chapters\">跳过筛选掉的章节</string>\n    <string name=\"pinned_sources\">已置顶</string>\n    <string name=\"action_unpin\">取消置顶</string>\n    <string name=\"action_pin\">置顶</string>\n    <string name=\"pref_webtoon_side_padding\">侧边留白</string>\n    <string name=\"vertical_plus_viewer\">条漫（页间有空隙）</string>\n    <string name=\"action_select_inverse\">反选</string>\n    <string name=\"add_tracking\">添加进度记录</string>\n    <string name=\"information_webview_required\">本应用需要 WebView 才能运行</string>\n    <string name=\"manga_info_collapse\">收起</string>\n    <string name=\"manga_info_expand\">展开</string>\n    <string name=\"licenses\">开源许可证</string>\n    <string name=\"website\">官网</string>\n    <string name=\"add_to_library\">添加到书架</string>\n    <string name=\"in_library\">在书架中</string>\n    <string name=\"label_downloaded_only\">仅限已下载内容</string>\n    <string name=\"creating_backup_error\">备份失败</string>\n    <string name=\"restoring_backup_canceled\">已取消还原</string>\n    <string name=\"restoring_backup_error\">还原备份失败</string>\n    <string name=\"restore_in_progress\">还原已在进行</string>\n    <string name=\"backup_in_progress\">备份已在进行</string>\n    <string name=\"recent_manga_time\">第 %1$s 章 - %2$s</string>\n    <string name=\"local_source_help_guide\">本地图源指南</string>\n    <string name=\"last_used_source\">最近使用</string>\n    <string name=\"downloaded_only_summary\">筛选书架里的全部作品</string>\n    <string name=\"check_for_updates\">检查更新</string>\n    <string name=\"restore_duration\">%1$02d 分， %2$02d 秒</string>\n    <string name=\"gray_background\">灰色</string>\n    <string name=\"pref_category_for_this_series\">本作品</string>\n    <string name=\"viewer\">阅读模式</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">打开系统设置失败</string>\n    <string name=\"pref_refresh_library_covers\">刷新书架封面</string>\n    <string name=\"tracking_info\">将阅读进度上传到第三方进度记录平台。在作品页面点击“进度记录”按钮即可设置。</string>\n    <string name=\"sort_by_upload_date\">按上传日期</string>\n    <string name=\"label_data\">数据</string>\n    <string name=\"backup_restore_missing_sources\">图源缺失：</string>\n    <string name=\"invalid_backup_file_missing_manga\">备份未包含任何作品。</string>\n    <string name=\"invalid_backup_file\">备份文件无效：</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">更新书架时一并检查封面和简介的变动</string>\n    <string name=\"pref_library_update_refresh_metadata\">自动刷新作品信息</string>\n    <string name=\"action_migrate\">迁移</string>\n    <string name=\"action_display_comfortable_grid\">松散网格</string>\n    <string name=\"tabs_header\">标签</string>\n    <string name=\"action_display_show_tabs\">显示分类标签</string>\n    <string name=\"page_list_empty_error\">没有图片</string>\n    <string name=\"action_disable_all\">全部关闭</string>\n    <string name=\"action_enable_all\">全部开启</string>\n    <string name=\"pref_show_reading_mode_summary\">开始阅读时，短暂显示当前阅读模式</string>\n    <string name=\"pref_show_reading_mode\">阅读模式提示</string>\n    <string name=\"action_start\">开始</string>\n    <string name=\"loader_not_implemented_error\">未找到图源</string>\n    <string name=\"action_disable\">关闭</string>\n    <string name=\"requires_app_restart\">需要重启应用才能生效</string>\n    <string name=\"label_network\">网络</string>\n    <string name=\"tapping_inverted_both\">全部</string>\n    <string name=\"tapping_inverted_vertical\">上下</string>\n    <string name=\"tapping_inverted_horizontal\">左右</string>\n    <string name=\"tapping_inverted_none\">无</string>\n    <string name=\"unknown_status\">未知状态</string>\n    <string name=\"unknown_author\">未知作者</string>\n    <string name=\"updated_version\">已更新至 v%1$s</string>\n    <string name=\"whats_new\">更新日志</string>\n    <string name=\"download_insufficient_space\">存储空间不足，无法下载章节</string>\n    <string name=\"action_global_search_query\">全局搜索 \\\"%1$s\\\"</string>\n    <string name=\"pref_category_reading_mode\">阅读模式</string>\n    <string name=\"pref_category_theme\">主题</string>\n    <string name=\"action_sort_date_added\">收藏日期</string>\n    <string name=\"pref_read_with_tapping_inverted\">反转点按区域</string>\n    <string name=\"no_pinned_sources\">没有置顶图源</string>\n    <string name=\"channel_complete\">完成</string>\n    <string name=\"channel_progress\">进度</string>\n    <string name=\"channel_errors\">错误</string>\n    <string name=\"backup_restore_missing_trackers\">尚未登录进度记录平台：</string>\n    <string name=\"pref_remove_bookmarked_chapters\">允许删除添加了书签的章节</string>\n    <string name=\"pref_category_delete_chapters\">删除章节</string>\n    <string name=\"ext_nsfw_warning\">来自此插件的图源可能包含 NSFW (18+) 内容</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">如果有插件标记错误，这项设置无法阻止它们展示 NSFW (18+) 内容。</string>\n    <string name=\"no_chapters_error\">没有章节</string>\n    <string name=\"chapter_settings_updated\">已更新默认章节设置</string>\n    <string name=\"set_chapter_settings_as_default\">设为默认</string>\n    <string name=\"also_set_chapter_settings_for_library\">同时应用到书架里的所有作品</string>\n    <string name=\"confirm_set_chapter_settings\">确定要将当前设置保存为默认吗？</string>\n    <string name=\"chapter_settings\">章节设置</string>\n    <string name=\"share_page_info\">《%1$s》%2$s，第 %3$d 页</string>\n    <string name=\"action_search_settings\">搜索设置</string>\n    <string name=\"downloaded_chapters\">已下载的章节</string>\n    <string name=\"manga_from_library\">书架中的作品</string>\n    <string name=\"pref_incognito_mode_summary\">暂停记录阅读历史</string>\n    <string name=\"pref_incognito_mode\">无痕模式</string>\n    <string name=\"pref_clear_history\">清除历史记录</string>\n    <string name=\"clear_history_confirmation\">你确定吗？所有历史记录都会丢失。</string>\n    <string name=\"clear_history_completed\">历史记录已删除</string>\n    <string name=\"spen_next_page\">下一页</string>\n    <string name=\"spen_previous_page\">上一页</string>\n    <string name=\"migration_help_guide\">图源迁移指南</string>\n    <string name=\"pref_category_nsfw_content\">NSFW (18+) 图源</string>\n    <string name=\"file_picker_error\">没有文件管理器</string>\n    <string name=\"myanimelist_relogin\">请重新登录 MAL</string>\n    <string name=\"pref_show_nsfw_source\">在图源和插件列表中显示</string>\n    <string name=\"pref_viewer_nav\">点按区域</string>\n    <string name=\"edge_nav\">两侧</string>\n    <string name=\"kindlish_nav\">Kindle</string>\n    <string name=\"l_nav\">L 形</string>\n    <string name=\"track_finished_reading_date\">阅读完毕日期</string>\n    <string name=\"track_started_reading_date\">开始阅读日期</string>\n    <string name=\"pref_dump_crash_logs_summary\">将错误日志保存到文件中，以便提供给开发者</string>\n    <string name=\"pref_dump_crash_logs\">导出崩溃日志</string>\n    <string name=\"action_desc\">降序</string>\n    <string name=\"action_asc\">升序</string>\n    <string name=\"action_order_by_chapter_number\">按章节编号</string>\n    <string name=\"action_order_by_upload_date\">按上传日期</string>\n    <string name=\"action_filter_tracked\">已记录进度</string>\n    <string name=\"action_display_show_number_of_items\">显示作品数</string>\n    <string name=\"right_and_left_nav\">左右</string>\n    <string name=\"pref_dual_page_split\">拆分双页</string>\n    <string name=\"pref_dual_page_invert\">拆分双页时交换顺序</string>\n    <string name=\"pref_dual_page_invert_summary\">拆分双页的顺序与阅读方向不符时可以开启</string>\n    <string name=\"backup_restore_content_full\">可能需要安装缺失的插件并重新登录进度记录平台。</string>\n    <string name=\"nav_zone_right\">往右</string>\n    <string name=\"nav_zone_left\">往左</string>\n    <string name=\"nav_zone_next\">下一页</string>\n    <string name=\"nav_zone_prev\">上一页</string>\n    <string name=\"pref_show_navigation_mode_summary\">开始阅读时，短暂显示点按区域</string>\n    <string name=\"pref_show_navigation_mode\">点按区域提示</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"none\">无</string>\n    <string name=\"exclude\">排除：%s</string>\n    <string name=\"include\">包含：%s</string>\n    <string name=\"action_sort_chapter_fetch_date\">章节获取时间</string>\n    <string name=\"pref_library_update_categories_details\">排除优先于包含，同时属于包含和排除分类的作品不会自动更新。</string>\n    <string name=\"pref_download_new_categories_details\">排除优先于包含，同时属于包含和排除分类的作品不会自动下载。</string>\n    <string name=\"pref_category_auto_download\">自动下载</string>\n    <string name=\"action_show_errors\">点击查看详情</string>\n    <string name=\"update_check_eol\">应用不再支持此 Android 版本</string>\n    <string name=\"clipboard_copy_error\">复制到剪贴板失败</string>\n    <string name=\"rotation_landscape\">横屏</string>\n    <string name=\"rotation_portrait\">竖屏</string>\n    <string name=\"pref_create_folder_per_manga_summary\">根据作品标题创建文件夹</string>\n    <string name=\"pref_create_folder_per_manga\">将图片保存到单独文件夹</string>\n    <string name=\"pref_reader_actions\">操作菜单</string>\n    <string name=\"rotation_type\">屏幕方向</string>\n    <string name=\"pref_grayscale\">灰度</string>\n    <string name=\"notification_incognito_text\">关闭无痕模式</string>\n    <string name=\"automatic_background\">自动</string>\n    <string name=\"cancel_all_for_series\">取消此作品</string>\n    <string name=\"error_no_match\">没有匹配项</string>\n    <string name=\"source_unsupported\">图源不受支持</string>\n    <string name=\"unread\">未读</string>\n    <string name=\"date\">日期</string>\n    <string name=\"local_filter_order_by\">排序依据</string>\n    <string name=\"local_invalid_format\">章节格式无效</string>\n    <string name=\"chapter_not_found\">未找到章节</string>\n    <string name=\"restrictions\">限制：%s</string>\n    <string name=\"action_display_local_badge\">本地图源</string>\n    <string name=\"off\">关闭</string>\n    <string name=\"on\">开启</string>\n    <string name=\"error_sharing_cover\">分享封面时出错</string>\n    <string name=\"error_saving_cover\">保存封面时出错</string>\n    <string name=\"cover_saved\">封面已保存</string>\n    <string name=\"manga_cover\">封面</string>\n    <string name=\"categorized_display_settings\">单独设置各个分类的排序</string>\n    <string name=\"tracking_guide\">进度记录指南</string>\n    <string name=\"information_empty_category_dialog\">还没有创建分类。</string>\n    <string name=\"action_start_downloading_now\">立即开始下载</string>\n    <string name=\"about_dont_kill_my_app\">部分厂商杀掉后台服务的现象比较严重，此网站提供了一些解决方法。</string>\n    <string name=\"restore_miui_warning\">如果关闭 MIUI 优化，备份与还原可能会出现问题。</string>\n    <string name=\"pref_dark_theme_pure_black\">纯黑深色模式</string>\n    <string name=\"theme_yotsuba\">四叶草</string>\n    <string name=\"theme_yinyang\">阴阳</string>\n    <string name=\"theme_tako\">Tako</string>\n    <string name=\"theme_strawberrydaiquiri\">草莓黛绮莉</string>\n    <string name=\"theme_midnightdusk\">午夜幽暗</string>\n    <string name=\"theme_greenapple\">青苹果</string>\n    <string name=\"pref_app_theme\">应用主题</string>\n    <string name=\"enhanced_tracking_info\">为特定图源提供增强功能。作品在添加到书架时会自动同步进度。</string>\n    <string name=\"enhanced_services\">增强平台</string>\n    <string name=\"theme_monet\">动态</string>\n    <string name=\"label_background_activity\">后台活动</string>\n    <string name=\"pref_lowest\">最低</string>\n    <string name=\"pref_low\">低</string>\n    <string name=\"pref_high\">高</string>\n    <string name=\"pref_highest\">最高</string>\n    <string name=\"pref_hide_threshold\">滑动时隐藏菜单的灵敏度</string>\n    <string name=\"pref_inverted_colors\">反色</string>\n    <string name=\"relative_time_today\">今天</string>\n    <string name=\"theme_tealturquoise\">青绿</string>\n    <string name=\"confirm_lock_change\">验证后完成修改</string>\n    <string name=\"label_default\">默认</string>\n    <string name=\"pref_category_appearance\">外观</string>\n    <string name=\"action_track\">记录进度</string>\n    <string name=\"getting_started_guide\">入门指南</string>\n    <string name=\"pref_tablet_ui_mode\">平板界面</string>\n    <string name=\"pref_remove_exclude_categories\">排除的分类</string>\n    <string name=\"help_translate\">协助翻译</string>\n    <string name=\"ext_app_info\">应用信息</string>\n    <string name=\"ext_installer_legacy\">旧式安装程序</string>\n    <string name=\"ext_installer_pref\">安装程序</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">安装并启动 Shizuku 后才能设置 Shizuku 为插件安装程序。</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku 未在运行</string>\n    <string name=\"ext_install_service_notif\">正在安装插件…</string>\n    <string name=\"action_sort_count\">作品总数</string>\n    <string name=\"pref_verbose_logging_summary\">将详细日志打印到系统日志（会降低应用性能）</string>\n    <string name=\"pref_verbose_logging\">详细日志记录</string>\n    <string name=\"label_warning\">警告</string>\n    <string name=\"action_display_language_badge\">语言</string>\n    <string name=\"backup_info\">你应该将备份数据保存到多个地方。备份可能含有敏感数据（例如储存的密码），分享时请留意。</string>\n    <string name=\"notification_size_warning\">大量更新会损害图源，并可能导致更新变慢、耗电增加。点击了解详情。</string>\n    <string name=\"connected_to_wifi\">仅连接 Wi-Fi 时</string>\n    <string name=\"update_72hour\">每 3 天</string>\n    <string name=\"download_queue_size_warning\">警告：批量下载可能导致图源变慢，甚至会使得它们屏蔽 %s 。点击了解详情。</string>\n    <string name=\"ext_update_all\">全部更新</string>\n    <string name=\"channel_app_updates\">应用更新</string>\n    <string name=\"pref_auto_clear_chapter_cache\">启动时清除章节缓存</string>\n    <string name=\"database_clean\">无需清理</string>\n    <string name=\"clear_database_source_item_count\">数据库中有 %1$d 部作品未添加到书架</string>\n    <string name=\"extension_api_error\">获取插件列表失败</string>\n    <string name=\"privacy_policy\">隐私声明</string>\n    <string name=\"pref_update_only_completely_read\">跳过有未读章节的作品</string>\n    <string name=\"library_errors_help\">关于书架更新出错的解决方法，请参阅 %1$s</string>\n    <string name=\"save_chapter_as_cbz\">保存为 CBZ 压缩包</string>\n    <string name=\"publishing_finished\">出版完毕</string>\n    <string name=\"cancelled\">已中止</string>\n    <string name=\"on_hiatus\">休刊中</string>\n    <string name=\"action_show_manga\">显示作品</string>\n    <string name=\"action_display_cover_only_grid\">封面网格</string>\n    <string name=\"pref_landscape_zoom\">自动放大横向图片</string>\n    <string name=\"pref_navigate_pan\">图片放大时先平移再翻页</string>\n    <string name=\"pref_update_only_started\">跳过尚未开始阅读的作品</string>\n    <string name=\"skipped_reason_completed\">已跳过，因为作品已完结</string>\n    <string name=\"skipped_reason_not_caught_up\">已跳过，因为有未读章节</string>\n    <string name=\"skipped_reason_not_started\">已跳过，因为尚未开始阅读</string>\n    <string name=\"learn_more\">点击了解详情</string>\n    <string name=\"notification_update_error\">%1$d 个更新失败了</string>\n    <string name=\"rotation_reverse_portrait\">反向竖屏</string>\n    <string name=\"action_move_to_top_all_for_series\">将作品移到顶部</string>\n    <string name=\"disabled_nav\">关闭</string>\n    <string name=\"error_saving_picture\">保存图片出错</string>\n    <string name=\"empty_backup_error\">书架没有可备份的作品</string>\n    <string name=\"update_check_open\">打开 GitHub 页面</string>\n    <string name=\"webview_data_deleted\">已清除 WebView 数据</string>\n    <string name=\"pref_clear_webview_data\">清除 WebView 数据</string>\n    <string name=\"action_close\">关闭</string>\n    <string name=\"source_filter_empty_screen\">没有已安装的图源</string>\n    <string name=\"source_empty_screen\">没有图源</string>\n    <string name=\"action_sort_last_manga_update\">检查更新时间</string>\n    <string name=\"action_sort_unread_count\">未读章数</string>\n    <string name=\"split_tall_images_summary\">可以改善阅读器的性能</string>\n    <string name=\"download_notifier_split_page_not_found\">分割时未找到第 %d 页</string>\n    <string name=\"download_notifier_split_page_path_not_found\">未找到第 %d 页的文件路径</string>\n    <string name=\"pref_reset_viewer_flags\">重置各作品阅读器独立设置</string>\n    <string name=\"pref_reset_viewer_flags_summary\">重置所有作品的阅读模式和屏幕方向</string>\n    <string name=\"pref_reset_viewer_flags_success\">已重置所有阅读器设置</string>\n    <string name=\"pref_reset_viewer_flags_error\">重置阅读器设置失败</string>\n    <string name=\"empty_screen\">呃…尴尬了</string>\n    <string name=\"ext_info_age_rating\">分级</string>\n    <string name=\"ext_info_version\">版本</string>\n    <string name=\"ext_info_language\">语言</string>\n    <string name=\"reading_list\">在读</string>\n    <string name=\"wish_list\">想读</string>\n    <string name=\"complete_list\">读过</string>\n    <string name=\"unfinished_list\">抛弃</string>\n    <string name=\"on_hold_list\">搁置</string>\n    <string name=\"network_not_metered\">仅通过不按流量计费的网络</string>\n    <string name=\"cant_open_last_read_chapter\">无法打开上次阅读的章节</string>\n    <string name=\"custom_cover\">自定义封面</string>\n    <string name=\"not_installed\">未安装</string>\n    <string name=\"pref_app_language\">应用语言</string>\n    <string name=\"theme_lavender\">薰衣草</string>\n    <string name=\"description_placeholder\">无简介</string>\n    <string name=\"delete_category_confirmation\">确定要删除 \\\"%s\\\" 分类吗？</string>\n    <string name=\"delete_category\">删除分类</string>\n    <string name=\"internal_error\">InternalError: 内部错误，详情请见崩溃日志</string>\n    <string name=\"pref_user_agent_string\">默认 User Agent 字符串</string>\n    <string name=\"pref_reset_user_agent_string\">恢复默认 User Agent 字符串</string>\n    <string name=\"action_remove_everything\">全部删除</string>\n    <string name=\"appwidget_unavailable_locked\">应用锁开启时，小部件不能使用</string>\n    <string name=\"appwidget_updates_description\">查看最近更新的作品</string>\n    <string name=\"update_already_running\">有其他更新尚未完成</string>\n    <string name=\"error_user_agent_string_blank\">User Agent 字符串不能为空</string>\n    <string name=\"theme_tidalwave\">浪潮</string>\n    <string name=\"download_ahead\">预先下载</string>\n    <string name=\"auto_download_while_reading\">阅读时自动下载</string>\n    <string name=\"download_ahead_info\">要求当前章节和下一章节都已下载。</string>\n    <string name=\"are_you_sure\">你确定吗？</string>\n    <string name=\"multi_lang\">多语言</string>\n    <string name=\"updates_last_update_info\">书架更新时间：%s</string>\n    <string name=\"remove_manga\">即将从书架中删除 \\\"%s\\\"</string>\n    <string name=\"popular\">热门</string>\n    <string name=\"missing_storage_permission\">未授予存储权限</string>\n    <string name=\"skipped_reason_not_always_update\">已跳过，因为作品无需更新</string>\n    <string name=\"action_search_hint\">搜索…</string>\n    <string name=\"crash_screen_title\">哦豁！</string>\n    <string name=\"crash_screen_description\">%s 发生了意外错误。建议你反馈时提供崩溃日志。</string>\n    <string name=\"crash_screen_restart_application\">重启应用</string>\n    <string name=\"pref_appearance_summary\">主题 • 日期格式</string>\n    <string name=\"pref_library_summary\">分类 • 全局更新 • 目录左右滑动</string>\n    <string name=\"pref_downloads_summary\">自动下载 • 预先下载</string>\n    <string name=\"pref_tracking_summary\">阅读进度上传 • 增强同步</string>\n    <string name=\"pref_advanced_summary\">导出崩溃日志 • 电池优化</string>\n    <string name=\"pref_backup_summary\">手动备份 • 自动备份 • 存储空间</string>\n    <string name=\"pref_security_summary\">应用锁 • 隐私界面</string>\n    <string name=\"pref_browse_summary\">图源 • 插件 • 全局搜索</string>\n    <string name=\"pref_reader_summary\">阅读模式 • 显示 • 翻页</string>\n    <string name=\"unknown_title\">未知标题</string>\n    <string name=\"invalid_location\">无效位置：%s</string>\n    <string name=\"error_user_agent_string_invalid\">User Agent 字符串无效</string>\n    <string name=\"updates_last_update_info_just_now\">刚才</string>\n    <string name=\"download_notifier_cache_renewal\">正在扫描已下载章节</string>\n    <string name=\"action_open_random_manga\">随机打开作品</string>\n    <string name=\"information_no_entries_found\">此分类没有作品</string>\n    <string name=\"fdroid_warning\">F-Droid 渠道不受官方支持。\n\\n点击了解详情。</string>\n    <string name=\"action_display_show_continue_reading_button\">继续阅读按钮</string>\n    <string name=\"pref_invalidate_download_cache\">重建下载索引</string>\n    <string name=\"track_remove_date_conf_title\">要删除日期吗？</string>\n    <string name=\"track_remove_start_date_conf_text\">将会删除之前在 %s 中标记的开始日期</string>\n    <string name=\"track_remove_finish_date_conf_text\">将会删除之前在 %s 中标记的结束日期</string>\n    <string name=\"pref_invalidate_download_cache_summary\">强制重新扫描已下载的章节</string>\n    <string name=\"label_stats\">统计</string>\n    <string name=\"label_local\">本地</string>\n    <string name=\"label_downloaded\">已下载</string>\n    <string name=\"label_overview_section\">总览</string>\n    <string name=\"label_read_duration\">阅读时长</string>\n    <string name=\"label_titles_section\">作品</string>\n    <string name=\"label_completed_titles\">读完的作品数</string>\n    <string name=\"label_total_chapters\">总数</string>\n    <string name=\"label_titles_in_global_update\">在全局更新范围</string>\n    <string name=\"label_tracker_section\">进度记录</string>\n    <string name=\"label_tracked_titles\">记录的作品数</string>\n    <string name=\"label_read_chapters\">已读</string>\n    <string name=\"label_mean_score\">平均评分</string>\n    <string name=\"label_started\">阅读过</string>\n    <string name=\"action_not_now\">以后再说</string>\n    <string name=\"label_used\">平台数</string>\n    <string name=\"not_applicable\">无</string>\n    <string name=\"minute_short\">%d 分</string>\n    <string name=\"seconds_short\">%d 秒</string>\n    <string name=\"day_short\">%d 天</string>\n    <string name=\"hour_short\">%d 时</string>\n    <string name=\"pref_library_update_show_tab_badge\">在“更新”图标上显示未读章数</string>\n    <string name=\"information_no_manga_category\">分类为空</string>\n    <string name=\"copied_to_clipboard_plain\">已复制到剪贴板</string>\n    <string name=\"enhanced_services_not_installed\">支持以下平台但图源尚未安装：%s</string>\n    <string name=\"pref_skip_dupe_chapters\">跳过重复章节</string>\n    <string name=\"track_error\">%1$s 发生错误：%2$s</string>\n    <string name=\"information_required_plain\">*必填</string>\n    <string name=\"pref_hide_in_library_items\">隐藏已添加到书架的作品</string>\n    <string name=\"action_copy_to_clipboard\">复制到剪贴板</string>\n    <string name=\"action_update_category\">更新分类</string>\n    <string name=\"split_tall_images\">分割长图</string>\n    <string name=\"overlay_header\">标记和按钮</string>\n    <string name=\"pref_page_rotate\">旋转横向图片</string>\n    <string name=\"pref_page_rotate_invert\">旋转横向图片时反转方向</string>\n    <string name=\"pref_debug_info\">调试信息</string>\n    <string name=\"pref_chapter_swipe_end\">向右滑动章节</string>\n    <string name=\"pref_chapter_swipe_start\">向左滑动章节</string>\n    <string name=\"pref_double_tap_zoom\">双击放大</string>\n    <string name=\"pref_update_only_in_release_period\">预测下次更新时间</string>\n    <string name=\"action_ok\">确定</string>\n    <string name=\"track_delete_title\">要删除 %s 的记录吗？</string>\n    <string name=\"track_delete_remote_text\">同时删除 %s 上的数据</string>\n    <string name=\"track_delete_text\">将会在本地删除进度记录的关联。</string>\n    <string name=\"delete_downloaded\">删除已下载章节</string>\n    <string name=\"action_filter_interval_custom\">自定义更新频率</string>\n    <string name=\"action_set_interval\">设置间隔</string>\n    <string name=\"action_sort_next_updated\">预计更新时间</string>\n    <string name=\"intervals_header\">间隔</string>\n    <string name=\"manga_display_interval_title\">估计每个</string>\n    <string name=\"manga_display_modified_interval_title\">设定更新为每</string>\n    <string name=\"skipped_reason_not_in_release_period\">已跳过，因为预计今天没有更新</string>\n    <string name=\"has_results\">有结果</string>\n    <string name=\"syncing_library\">正在同步书架</string>\n    <string name=\"library_sync_complete\">书架同步完成</string>\n    <string name=\"information_cloudflare_help\">点击这里查看 Cloudflare 帮助</string>\n    <string name=\"download_cache_invalidated\">重建下载索引</string>\n    <string name=\"track_activity_name\">登录进度记录平台</string>\n    <string name=\"create_backup_file_error\">创建备份文件失败</string>\n    <string name=\"exception_offline\">未连接网络</string>\n    <string name=\"exception_http\">HTTP %d，请在 WebView 中检查网站</string>\n    <string name=\"exception_unknown_host\">无法连接到 %s</string>\n    <string name=\"source_settings\">图源设置</string>\n    <string name=\"app_settings\">应用设置</string>\n    <string name=\"unlock_app_title\">解锁 %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">将作品移到底部</string>\n    <string name=\"notification_updating_progress\">正在更新书架… (%s)</string>\n    <string name=\"file_null_uri_error\">未选择文件</string>\n    <string name=\"pref_relative_format\">相对时间戳</string>\n    <string name=\"pref_relative_format_summary\">显示 \\\"%1$s\\\" 而不是 \\\"%2$s\\\"</string>\n    <string name=\"relative_time_span_never\">尚未</string>\n    <string name=\"pref_flash_page_summ\">减轻墨水屏上的残影</string>\n    <string name=\"last_auto_backup_info\">上次自动备份时间：%s</string>\n    <string name=\"pref_flash_page\">翻页时闪烁</string>\n    <string name=\"label_data_storage\">数据与存储</string>\n    <string name=\"pref_storage_usage\">存储占用</string>\n    <string name=\"action_create\">创建</string>\n    <string name=\"action_apply\">应用</string>\n    <string name=\"action_revert_to_default\">恢复默认</string>\n    <string name=\"no_scanlators_found\">没有翻译组</string>\n    <string name=\"scanlator\">翻译组</string>\n    <string name=\"action_sort_tracker_score\">记录平台评分</string>\n    <string name=\"exclude_scanlators\">排除翻译组</string>\n    <string name=\"action_menu_overflow_description\">更多选项</string>\n    <string name=\"selected\">已选中</string>\n    <string name=\"not_selected\">未选中</string>\n    <string name=\"pref_onboarding_guide\">首次启动引导</string>\n    <string name=\"onboarding_action_finish\">开始使用</string>\n    <string name=\"onboarding_heading\">欢迎！</string>\n    <string name=\"onboarding_action_skip\">跳过</string>\n    <string name=\"onboarding_action_next\">下一步</string>\n    <string name=\"action_bar_up_description\">返回</string>\n    <string name=\"onboarding_description\">首先调整一些设置。稍后也可以在设置中修改。</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">避免需要长时间运行的书架更新、下载、备份恢复任务受到中断。</string>\n    <string name=\"onboarding_permission_action_grant\">允许</string>\n    <string name=\"no_location_set\">未设置存储位置</string>\n    <string name=\"invalid_backup_file_error\">完整错误信息：</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">后台运行权限</string>\n    <string name=\"ext_permission_install_apps_warning\">需要安装插件的权限，点击此处授权。</string>\n    <string name=\"action_add_repo\">添加仓库</string>\n    <string name=\"private_settings\">包含敏感设置（例如进度记录平台的账号信息）</string>\n    <string name=\"delete_repo_confirmation\">确定要删除仓库 \\\"%s\\\" 吗？</string>\n    <string name=\"error_repo_exists\">此仓库已存在！</string>\n    <string name=\"action_delete_repo\">删除仓库</string>\n    <string name=\"invalid_repo_name\">仓库网址无效</string>\n    <string name=\"pref_storage_location_info\">用于自动备份、章节下载、本地图源。</string>\n    <string name=\"manga_interval_expected_update\">预计 %1$s后更新，每 %2$s检查一次。</string>\n    <string name=\"manga_interval_custom_amount\">自定义更新频率：</string>\n    <string name=\"onboarding_permission_install_apps\">应用安装权限</string>\n    <string name=\"onboarding_permission_install_apps_description\">用来安装图源插件。</string>\n    <string name=\"onboarding_permission_notifications\">通知权限</string>\n    <string name=\"onboarding_guides_new_user\">如果你是第一次使用 %s，推荐查看入门指南。</string>\n    <string name=\"onboarding_guides_returning_user\">如果你是重新安装了 %s，可以使用以下功能。</string>\n    <string name=\"pref_library_update_smart_update\">智能更新</string>\n    <string name=\"onboarding_permission_notifications_description\">用来发送书架更新等通知。</string>\n    <string name=\"label_extension_repos\">插件仓库</string>\n    <string name=\"information_empty_repos\">尚未设置仓库</string>\n    <string name=\"label_add_repo_input\">仓库网址</string>\n    <string name=\"action_add_repo_message\">在 %s 中添加仓库，输入的网址结尾应为 \\\"index.min.json\\\" 。</string>\n    <string name=\"onboarding_storage_help_info\">如果你是从旧版更新而来，可以查看存储指南了解详情。</string>\n    <string name=\"onboarding_storage_help_action\">存储指南</string>\n    <string name=\"pref_storage_location\">存储位置</string>\n    <string name=\"onboarding_storage_action_select\">选择文件夹</string>\n    <string name=\"onboarding_storage_info\">选择一个文件夹供 %1$s 存放下载章节、备份文件等。\n\\n\n\\n推荐使用一个专门的文件夹。\n\\n\n\\n已选文件夹：%2$s</string>\n    <string name=\"onboarding_storage_selection_required\">必须选择一个文件夹</string>\n    <string name=\"available_disk_space_info\">%1$s / %2$s</string>\n    <string name=\"theme_nord\">Nord</string>\n    <string name=\"manga_interval_expected_update_soon\">即将更新</string>\n    <string name=\"ext_revoke_trust\">撤销已信任的未知插件</string>\n    <string name=\"action_open_repo\">打开图源仓库</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">禁用缩小</string>\n    <string name=\"action_add_anyway\">依然添加</string>\n    <string name=\"action_replace_repo\">替换</string>\n    <string name=\"pref_display_profile\">自定义校色文件</string>\n    <string name=\"action_replace_repo_message\">%1$s 仓库已经存在和 %2$s 仓库相同的签名密钥指纹。\n\\n若继续，%2$s 将被替换，否则请联系你的仓库维护员。</string>\n    <string name=\"action_replace_repo_title\">签名密钥指纹已存在</string>\n    <string name=\"action_view_upcoming\">显示即将推出的更新</string>\n    <string name=\"upcoming_guide\">即将推出的指南</string>\n    <string name=\"label_upcoming\">即将推出</string>\n    <string name=\"upcoming_calendar_next\">下个月</string>\n    <string name=\"upcoming_calendar_prev\">上个月</string>\n    <string name=\"manga_interval_expected_update_null\">此漫画或已完结，或无发行日期。</string>\n    <string name=\"pref_flash_duration_summary\">%1$s 毫秒</string>\n    <string name=\"pref_flash_duration\">闪烁时间</string>\n    <string name=\"pref_flash_style_black\">黑</string>\n    <string name=\"pref_flash_with\">闪烁于</string>\n    <string name=\"pref_flash_style_white\">白</string>\n    <string name=\"pref_flash_style_white_black\">黑白</string>\n    <string name=\"file_picker_uri_permission_unsupported\">获取永久文件存储权限失败，应用程序可能会出现异常。</string>\n    <string name=\"pref_flash_page_interval\">闪烁时间间隔</string>\n    <string name=\"invalid_backup_file_json\">不支持 JSON 备份</string>\n    <string name=\"invalid_backup_file_unknown\">备份文件已损坏</string>\n    <string name=\"action_copy_link\">复制链接</string>\n    <string name=\"extensionRepo_settings\">插件仓库</string>\n    <string name=\"add_repo_confirmation\">您想添加仓库 \\\"%s\\\" 吗？</string>\n    <string name=\"pref_download_new_unread_chapters_only\">跳过下载重复阅读的章节</string>\n    <string name=\"confirm_tracker_update\">将进度更新到第 %d 章？</string>\n    <string name=\"onboarding_permission_crashlytics\">发送崩溃日志</string>\n    <string name=\"onboarding_permission_crashlytics_description\">向开发者发送匿名的崩溃日志</string>\n    <string name=\"onboarding_permission_analytics\">数据分析</string>\n    <string name=\"pref_security\">安全</string>\n    <string name=\"onboarding_permission_analytics_description\">发送匿名的应用数据以提升用户体验</string>\n    <string name=\"pref_firebase\">数据分析与崩溃日志</string>\n    <string name=\"firebase_summary\">允许发送崩溃日志和数据分析帮助开发者辨别并修复问题，提高应用体验，以期更新符合你需要的功能</string>\n    <string name=\"action_sort_random\">随机</string>\n    <string name=\"ext_remove\">删除</string>\n    <string name=\"ext_confirm_remove\">确定删除？</string>\n    <string name=\"remove_private_extension_message\">确定要删除 \\\"%s\\\" 插件吗?</string>\n    <string name=\"non_library_settings\">所有已读作品</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">标记为已读时更新章节进度</string>\n    <string name=\"trackers_updated_summary\">进度记录平台已更新到 %d 章</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">默认 (%d)</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">如果阅读器加载空白图像，请逐步降低阈值。\\n已选择： %s</string>\n    <string name=\"pref_hardware_bitmap_threshold\">自定义硬件位图阈值</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">会影响性能。仅当降低位图阈值无法解决空白图像问题时才启用</string>\n    <string name=\"pref_incognito_mode_extension_summary\">暂停记录插件的阅读历史</string>\n    <string name=\"label_auto\">自动</string>\n    <string name=\"theme_monochrome\">单色</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">在长条阅读模式中使用旧版解码器</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">将重复的已读章节都标记为已读</string>\n    <string name=\"author\">作者</string>\n    <string name=\"action_toggle_private_off\">公开记录</string>\n    <string name=\"artist\">画师</string>\n    <string name=\"export\">导出</string>\n    <string name=\"library_list\">书架列表</string>\n    <string name=\"library_exported\">已导出列表</string>\n    <string name=\"tracked_privately\">私下记录</string>\n    <string name=\"action_toggle_private_on\">私下记录</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">获取新章节后</string>\n    <string name=\"pref_behavior\">操作</string>\n    <string name=\"action_display_unread_badge\">未读章节</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">读完一个章节后</string>\n    <string name=\"action_notes\">添加注释</string>\n    <string name=\"action_edit_notes\">编辑注释</string>\n    <string name=\"notes_placeholder\">标注你喜欢的部分…</string>\n    <string name=\"possible_duplicates_summary\">在你的书架中有一些名称相似的作品。\\n\\n请选择其中一个作品进行迁移或仍然新增。</string>\n    <string name=\"possible_duplicates_title\">可能重复的作品</string>\n    <string name=\"clear_database_text\">你即将从数据库中删除这些作品</string>\n    <string name=\"clear_database_history_warning\">已读章节和不在书架中的作品的进度将会丢失</string>\n    <string name=\"clear_db_exclude_read\">保留有已读章节的作品</string>\n    <string name=\"storage_failed_to_create_download_directory\">创建下载目录失败</string>\n    <string name=\"storage_failed_to_create_directory\">创建目录失败： %s</string>\n    <string name=\"logging_in\">正在登录…</string>\n    <string name=\"pref_update_library_manga_titles\">更新书架中的漫画标题以匹配图源</string>\n    <string name=\"pref_update_library_manga_titles_summary\">警告：如果漫画被重命名，将会从下载队列中移除（如果存在）。</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">选中</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">全不选</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">全选</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">选择已启用的图源</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">选择已置顶图源</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">继续</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"migrationConfigScreen.availableHeader\">可选</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">需要迁移的数据</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">高级搜索模式</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">迁移后删除当前作品的下载项</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">这些选项运行缓慢且危险，并可能导致图源限制</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">将标题拆解为关键词以进行更宽泛的搜索</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">附加关键字（可选）</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">通过添加其他关键字帮助缩小搜索结果范围</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">隐藏无匹配的作品</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">隐藏没有新章节的作品</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">仅当匹配项有额外章节时才显示作品</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">根据章节号进行匹配</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">如果启用，则选择最前面的匹配项。否则按图源优先级选择第一个匹配项。</string>\n    <string name=\"migrationListScreenTitleWithProgress\">迁移 (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">迁移</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">未找到替代项</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">最新： %1$s</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">手动搜索</string>\n    <string name=\"migrationListScreen.skipActionLabel\">不要迁移</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">立即迁移</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">停止迁移？</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">停止</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">取消</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">复制</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">迁移</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">取消</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">取消</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">未找到章节，此作品无法迁移</string>\n    <string name=\"migrationListScreen.copyActionLabel\">复制</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">立即复制</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">未知</string>\n    <string name=\"migrationListScreenTitle\">迁移</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">隐藏缺失章节提示符</string>\n    <string name=\"pref_display_images_description\">在漫画注释中显示图片</string>\n    <string name=\"label_donate\">捐赠</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">禁用非ASCII文件名</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">确保与某些不支持 Unicode 的存储介质相兼容。启用此功能后，你需要手动重命名图源和漫画文件夹，将非 ASCII 字符改为对应的 UTF-8 小写十六进制表示形式。章节文件无需重命名。</string>\n    <string name=\"pref_download_concurrent_sources\">同时下载的图源数量</string>\n    <string name=\"pref_download_concurrent_pages\">同时下载的页数</string>\n    <string name=\"pref_download_concurrent_pages_summary\">每个图源同时下载的页数</string>\n    <string name=\"action_webview_close_tab\">关闭标签</string>\n    <string name=\"action_filter_excluded_scanlators\">筛选排除翻译组</string>\n    <string name=\"calculating\">计算中…</string>\n    <string name=\"download_bookmarked\">已添加书签</string>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/zh-rTW/plurals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <plurals name=\"lock_after_mins\">\n        <item quantity=\"other\">%1$s 分鐘後</item>\n    </plurals>\n    <plurals name=\"update_check_notification_ext_updates\">\n        <item quantity=\"other\">%d 個擴充套件可更新</item>\n    </plurals>\n    <plurals name=\"download_queue_summary\">\n        <item quantity=\"other\">剩餘 %1$s 項</item>\n    </plurals>\n    <plurals name=\"manga_num_chapters\">\n        <item quantity=\"other\">共 %1$s 章</item>\n    </plurals>\n    <plurals name=\"num_categories\">\n        <item quantity=\"other\">%d 個類別</item>\n    </plurals>\n    <plurals name=\"restore_completed_message\">\n        <item quantity=\"other\">歷時 %1$s，出現 %2$s 個錯誤</item>\n    </plurals>\n    <plurals name=\"notification_chapters_generic\">\n        <item quantity=\"other\">%1$d 篇新章節</item>\n    </plurals>\n    <plurals name=\"notification_chapters_multiple_and_more\">\n        <item quantity=\"other\">第 %1$s 章以及另外 %2$d 章</item>\n    </plurals>\n    <plurals name=\"num_trackers\">\n        <item quantity=\"other\">%d 個平臺</item>\n    </plurals>\n    <plurals name=\"missing_chapters_warning\">\n        <item quantity=\"other\">略過了 %d 章，也許是來源沒有這些章節，或其已被篩選規則排除</item>\n    </plurals>\n    <plurals name=\"notification_new_chapters_summary\">\n        <item quantity=\"other\">共 %d 部作品</item>\n    </plurals>\n    <plurals name=\"relative_time\">\n        <item quantity=\"other\">%1$d 天前</item>\n    </plurals>\n    <plurals name=\"next_unread_chapters\">\n        <item quantity=\"other\">接下來未讀的 %d 章</item>\n    </plurals>\n    <plurals name=\"download_amount\">\n        <item quantity=\"other\">後續 %d 章</item>\n    </plurals>\n    <plurals name=\"missing_chapters\">\n        <item quantity=\"other\">缺漏 %1$s 章</item>\n    </plurals>\n    <plurals name=\"day\">\n        <item quantity=\"other\">%d 天</item>\n    </plurals>\n    <plurals name=\"num_repos\">\n        <item quantity=\"other\">%d 處儲存庫</item>\n    </plurals>\n    <plurals name=\"upcoming_relative_time\">\n        <item quantity=\"other\">%1$d 天後</item>\n    </plurals>\n    <plurals name=\"pref_pages\">\n        <item quantity=\"other\">%1$s pages</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.migrateTitle\">\n        <item quantity=\"other\">遷移 %1$d 個項目？</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.copyTitle\">\n        <item quantity=\"other\">複製 %1$d 個項目？</item>\n    </plurals>\n    <plurals name=\"migrationListScreen.migrateDialog.skipText\">\n        <item quantity=\"other\">已跳過 %1$d 個項目</item>\n    </plurals>\n</resources>\n"
  },
  {
    "path": "i18n/src/commonMain/moko-resources/zh-rTW/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"categories\">類別</string>\n    <string name=\"manga\">藏書</string>\n    <string name=\"chapters\">章節</string>\n    <string name=\"history\">記錄</string>\n    <string name=\"label_settings\">設定</string>\n    <string name=\"label_download_queue\">下載佇列</string>\n    <string name=\"label_library\">書櫃</string>\n    <string name=\"label_recent_manga\">記錄</string>\n    <string name=\"label_recent_updates\">更新</string>\n    <string name=\"label_backup\">備份與還原</string>\n    <string name=\"label_migration\">遷移</string>\n    <string name=\"label_extensions\">擴充套件</string>\n    <string name=\"label_extension_info\">擴充套件資訊</string>\n    <string name=\"label_help\">說明</string>\n    <string name=\"action_settings\">設定</string>\n    <string name=\"action_filter\">篩選</string>\n    <string name=\"action_filter_bookmarked\">已新增書籤</string>\n    <string name=\"action_filter_unread\">未讀</string>\n    <string name=\"action_filter_empty\">清除篩選器</string>\n    <string name=\"action_sort_alpha\">名稱</string>\n    <string name=\"action_sort_total\">總章節數</string>\n    <string name=\"action_sort_last_read\">最近閱讀</string>\n    <string name=\"action_search\">搜尋</string>\n    <string name=\"action_global_search\">全域搜尋</string>\n    <string name=\"action_select_all\">全選</string>\n    <string name=\"action_mark_as_read\">標示為已讀</string>\n    <string name=\"action_mark_as_unread\">標示為未讀</string>\n    <string name=\"action_mark_previous_as_read\">標示過往章節為已讀</string>\n    <string name=\"action_download\">下載</string>\n    <string name=\"action_bookmark\">將章節加上書籤</string>\n    <string name=\"action_remove_bookmark\">將章節移除書籤</string>\n    <string name=\"action_delete\">刪除</string>\n    <string name=\"action_update_library\">更新書櫃</string>\n    <string name=\"action_edit\">編輯</string>\n    <string name=\"action_add\">新增</string>\n    <string name=\"action_add_category\">新增類別</string>\n    <string name=\"action_edit_categories\">編輯類別</string>\n    <string name=\"action_rename_category\">重新命名類別</string>\n    <string name=\"action_move_category\">設定類別</string>\n    <string name=\"action_edit_cover\">編輯封面</string>\n    <string name=\"action_pause\">暫停</string>\n    <string name=\"action_previous_chapter\">上一章</string>\n    <string name=\"action_next_chapter\">下一章</string>\n    <string name=\"action_retry\">重試</string>\n    <string name=\"action_remove\">移除</string>\n    <string name=\"action_resume\">繼續</string>\n    <string name=\"action_open_in_browser\">在瀏覽器中開啟</string>\n    <string name=\"action_open_in_web_view\">在 WebView 中開啟</string>\n    <string name=\"action_display_mode\">檢視模式</string>\n    <string name=\"action_display\">檢視</string>\n    <string name=\"action_display_grid\">密集格狀</string>\n    <string name=\"action_display_list\">清單</string>\n    <string name=\"action_display_download_badge\">已下載章數</string>\n    <string name=\"action_cancel\">取消</string>\n    <string name=\"action_sort\">排序</string>\n    <string name=\"action_install\">安裝</string>\n    <string name=\"action_share\">分享</string>\n    <string name=\"action_save\">儲存</string>\n    <string name=\"action_reset\">重設</string>\n    <string name=\"action_undo\">復原</string>\n    <string name=\"action_restore\">還原</string>\n    <string name=\"loading\">正在載入…</string>\n    <string name=\"app_not_available\">應用程式無法使用</string>\n    <string name=\"pref_category_general\">一般</string>\n    <string name=\"pref_category_reader\">閱讀</string>\n    <string name=\"pref_category_downloads\">下載</string>\n    <string name=\"pref_category_advanced\">進階</string>\n    <string name=\"pref_category_about\">關於</string>\n    <string name=\"portrait\">直向</string>\n    <string name=\"landscape\">橫向</string>\n    <string name=\"pref_library_update_interval\">自動更新</string>\n    <string name=\"update_never\">關閉</string>\n    <string name=\"update_6hour\">每 6 小時</string>\n    <string name=\"update_12hour\">每 12 小時</string>\n    <string name=\"update_24hour\">每天</string>\n    <string name=\"update_48hour\">每 2 天</string>\n    <string name=\"update_weekly\">每週</string>\n    <string name=\"all\">全部</string>\n    <string name=\"pref_library_update_restriction\">自動更新的裝置限制</string>\n    <string name=\"charging\">僅充電時</string>\n    <string name=\"pref_update_only_non_completed\">略過已完結的作品</string>\n    <string name=\"default_category\">預設類別</string>\n    <string name=\"default_category_summary\">總是詢問</string>\n    <string name=\"ext_update\">更新</string>\n    <string name=\"ext_install\">安裝</string>\n    <string name=\"ext_pending\">等待中</string>\n    <string name=\"ext_downloading\">下載中</string>\n    <string name=\"ext_installing\">安裝中</string>\n    <string name=\"ext_installed\">已安裝</string>\n    <string name=\"ext_uninstall\">解除安裝</string>\n    <string name=\"pref_fullscreen\">全螢幕</string>\n    <string name=\"pref_double_tap_anim_speed\">輕觸兩下動畫速度</string>\n    <string name=\"pref_show_page_number\">顯示頁碼</string>\n    <string name=\"pref_custom_brightness\">自訂亮度</string>\n    <string name=\"pref_custom_color_filter\">色彩濾鏡</string>\n    <string name=\"pref_keep_screen_on\">保持螢幕恆亮</string>\n    <string name=\"double_tap_anim_speed_0\">停用動畫</string>\n    <string name=\"double_tap_anim_speed_normal\">正常</string>\n    <string name=\"double_tap_anim_speed_fast\">快速</string>\n    <string name=\"pref_rotation_type\">預設螢幕方向</string>\n    <string name=\"rotation_free\">自動</string>\n    <string name=\"rotation_force_portrait\">鎖定直向</string>\n    <string name=\"rotation_force_landscape\">鎖定橫向</string>\n    <string name=\"color_filter_r_value\">紅色</string>\n    <string name=\"color_filter_g_value\">綠色</string>\n    <string name=\"color_filter_b_value\">藍色</string>\n    <string name=\"color_filter_a_value\">阿爾法</string>\n    <string name=\"pref_remove_after_marked_as_read\">手動標示為已讀後</string>\n    <string name=\"disabled\">已停用</string>\n    <string name=\"pref_download_new\">自動下載新章節</string>\n    <string name=\"services\">歷程平臺</string>\n    <string name=\"pref_create_backup\">建立備份</string>\n    <string name=\"pref_restore_backup\">還原備份</string>\n    <string name=\"pref_backup_interval\">自動備份頻率</string>\n    <string name=\"backup_created\">已建立備份</string>\n    <string name=\"restore_completed\">還原成功</string>\n    <string name=\"backup_choice\">哪些項目需要備份？</string>\n    <string name=\"restoring_backup\">正在還原</string>\n    <string name=\"creating_backup\">正在建立備份</string>\n    <string name=\"pref_clear_chapter_cache\">清除章節快取</string>\n    <string name=\"pref_clear_cookies\">清除 Cookie</string>\n    <string name=\"pref_clear_database\">清除資料庫</string>\n    <string name=\"version\">版本</string>\n    <string name=\"pref_enable_acra\">傳送錯誤報告</string>\n    <string name=\"password\">密碼</string>\n    <string name=\"login\">登入</string>\n    <string name=\"login_success\">已登入</string>\n    <string name=\"manga_added_library\">已收藏至書櫃</string>\n    <string name=\"manga_removed_library\">已從書櫃中移除</string>\n    <string name=\"copied_to_clipboard\">已複製到剪貼簿： \\n「%1$s」</string>\n    <string name=\"source_not_installed\">來源未安裝：%1$s</string>\n    <string name=\"chapter_error\">錯誤</string>\n    <string name=\"chapter_paused\">已暫停</string>\n    <string name=\"manga_download\">下載</string>\n    <string name=\"snack_categories_deleted\">已刪除類別</string>\n    <string name=\"picture_saved\">圖片已儲存</string>\n    <string name=\"set_as_cover\">設為封面</string>\n    <string name=\"cover_updated\">已更新封面</string>\n    <string name=\"copy\">副本</string>\n    <string name=\"update_check_confirm\">下載</string>\n    <string name=\"update_check_no_new_updates\">沒有可用的更新</string>\n    <string name=\"update_check_notification_download_in_progress\">正在下載更新…</string>\n    <string name=\"update_check_notification_download_complete\">輕觸即可更新</string>\n    <string name=\"update_check_notification_download_error\">更新下載失敗</string>\n    <string name=\"update_check_notification_update_available\">有可用的更新！</string>\n    <string name=\"information_no_downloads\">尚無下載作業</string>\n    <string name=\"download_notifier_title_error\">錯誤</string>\n    <string name=\"download_notifier_text_only_wifi\">沒有可用的 Wi-Fi 連線</string>\n    <string name=\"download_notifier_no_network\">尚未連接至網路</string>\n    <string name=\"download_notifier_download_paused\">下載已暫停</string>\n    <string name=\"pref_library_columns\">每列數目</string>\n    <string name=\"pref_page_transitions\">翻頁轉場動畫</string>\n    <string name=\"pref_crop_borders\">邊緣裁剪</string>\n    <string name=\"pref_color_filter_mode\">濾鏡融合機制</string>\n    <string name=\"filter_mode_overlay\">覆蓋</string>\n    <string name=\"filter_mode_multiply\">色彩增值</string>\n    <string name=\"filter_mode_screen\">濾色</string>\n    <string name=\"filter_mode_lighten\">減淡/變亮</string>\n    <string name=\"filter_mode_darken\">加深/變暗</string>\n    <string name=\"pref_reader_navigation\">導覽</string>\n    <string name=\"pref_read_with_volume_keys\">音量按鈕</string>\n    <string name=\"pref_read_with_volume_keys_inverted\">反轉音量按鈕</string>\n    <string name=\"pref_read_with_long_tap\">長按時彈出快顯選單</string>\n    <string name=\"pref_reader_theme\">背景顏色</string>\n    <string name=\"white_background\">白色</string>\n    <string name=\"black_background\">黑色</string>\n    <string name=\"pref_viewer_type\">預設閱讀模式</string>\n    <string name=\"left_to_right_viewer\">單頁(左至右)</string>\n    <string name=\"right_to_left_viewer\">單頁(右至左)</string>\n    <string name=\"vertical_viewer\">單頁(上至下)</string>\n    <string name=\"webtoon_viewer\">捲動(連續)</string>\n    <string name=\"pager_viewer\">單頁</string>\n    <string name=\"pref_image_scale_type\">縮放模式</string>\n    <string name=\"scale_type_fit_screen\">符合螢幕</string>\n    <string name=\"scale_type_stretch\">延展</string>\n    <string name=\"scale_type_fit_width\">符合頁寬</string>\n    <string name=\"scale_type_fit_height\">符合頁高</string>\n    <string name=\"scale_type_original_size\">原始大小</string>\n    <string name=\"scale_type_smart_fit\">智慧填充</string>\n    <string name=\"pref_zoom_start\">縮放原點</string>\n    <string name=\"zoom_start_automatic\">自動</string>\n    <string name=\"zoom_start_left\">左邊</string>\n    <string name=\"zoom_start_right\">右邊</string>\n    <string name=\"zoom_start_center\">中間</string>\n    <string name=\"pref_restore_backup_summ\">由備份檔還原書櫃內容</string>\n    <string name=\"used_cache\">已使用：%1$s</string>\n    <string name=\"cache_deleted\">已清除快取，刪除了 %1$d 個檔案</string>\n    <string name=\"cache_delete_error\">清除時發生錯誤</string>\n    <string name=\"cookies_cleared\">已清除 Cookie</string>\n    <string name=\"pref_acra_summary\">協助我們修復錯誤，傳送的資料將不包含個人敏感資訊</string>\n    <string name=\"login_title\">登入 %1$s</string>\n    <string name=\"username\">使用者名稱</string>\n    <string name=\"updating_category\">正在更新類別</string>\n    <string name=\"action_global_search_hint\">全域搜尋…</string>\n    <string name=\"snack_add_to_library\">將作品收藏至書櫃？</string>\n    <string name=\"file_select_cover\">選擇封面圖片</string>\n    <string name=\"information_no_recent_manga\">無近期閱讀</string>\n    <string name=\"channel_common\">一般</string>\n    <string name=\"pref_create_backup_summ\">可用來儲存目前書櫃內容</string>\n    <string name=\"pref_clear_database_summary\">將未加入書櫃的作品的紀錄刪除</string>\n    <string name=\"clear_database_completed\">已刪除項目</string>\n    <string name=\"unknown_error\">不明的錯誤</string>\n    <string name=\"no_more_results\">沒有更多結果</string>\n    <string name=\"local_source\">本機來源</string>\n    <string name=\"other_source\">其他</string>\n    <string name=\"browse\">探索</string>\n    <string name=\"ongoing\">連載中</string>\n    <string name=\"unknown\">不明</string>\n    <string name=\"licensed\">已授權</string>\n    <string name=\"remove_from_library\">移出書櫃</string>\n    <string name=\"delete_downloads_for_manga\">刪除下載的章節？</string>\n    <string name=\"display_mode_chapter\">第 %1$s 章</string>\n    <string name=\"chapter_downloading_progress\">正在下載 (%1$d/%2$d)</string>\n    <string name=\"show_title\">來源標題</string>\n    <string name=\"show_chapter_number\">章節編號</string>\n    <string name=\"sort_by_source\">遵循來源</string>\n    <string name=\"sort_by_number\">章節編號</string>\n    <string name=\"completed\">已完結</string>\n    <string name=\"score\">評分</string>\n    <string name=\"title\">標題</string>\n    <string name=\"status\">狀態</string>\n    <string name=\"track_status\">狀態</string>\n    <string name=\"decode_image_error\">圖片無法載入</string>\n    <string name=\"notification_first_add_to_library\">請先將作品收藏至書櫃</string>\n    <string name=\"file_select_backup\">選擇備份檔</string>\n    <string name=\"information_empty_category\">尚無任何類別，輕觸新增按鈕即可建立類別以組織你的書櫃</string>\n    <string name=\"download_notifier_downloader_title\">下載管理</string>\n    <string name=\"download_unread\">未讀</string>\n    <string name=\"confirm_set_image_as_cover\">要將該圖片設為封面嗎？</string>\n    <string name=\"transition_pages_loading\">正在載入頁面…</string>\n    <string name=\"information_empty_library\">尚未收藏任何作品</string>\n    <string name=\"dialog_with_checkbox_reset\">重設此作品所有章節</string>\n    <string name=\"custom_filter\">濾鏡</string>\n    <string name=\"migrate\">遷移</string>\n    <string name=\"notification_cover_update_failed\">封面更新失敗</string>\n    <string name=\"confirm_delete_chapters\">確定要刪除所選的章節嗎？</string>\n    <string name=\"error_category_exists\">已有名稱相同的類別！</string>\n    <string name=\"chapter_progress\">第 %1$d 頁</string>\n    <string name=\"no_next_chapter\">找不到下一章</string>\n    <string name=\"transition_finished\">已閱畢：</string>\n    <string name=\"transition_next\">接下來：</string>\n    <string name=\"notification_new_chapters\">發現新章節</string>\n    <string name=\"pref_skip_read_chapters\">略過已讀的章節</string>\n    <string name=\"pref_remove_after_read\">翻閱過後自動刪除</string>\n    <string name=\"transition_no_next\">以下空白</string>\n    <string name=\"transition_no_previous\">已達盡頭</string>\n    <string name=\"transition_pages_error\">頁面載入失敗：%1$s</string>\n    <string name=\"information_no_recent\">最近無更新</string>\n    <string name=\"name\">名稱</string>\n    <string name=\"track\">歷程</string>\n    <string name=\"action_open_log\">檢視記錄檔</string>\n    <string name=\"pref_category_tracking\">歷程</string>\n    <string name=\"pref_auto_update_manga_sync\">閱後自動更新章節進度</string>\n    <string name=\"ext_trust\">信任</string>\n    <string name=\"ext_untrusted\">未信任</string>\n    <string name=\"untrusted_extension\">未受信任的擴充套件</string>\n    <string name=\"untrusted_extension_message\">惡意的擴充套件可能會讀取任何已儲存的登入認證或執行任意的程式碼\\n\\n若選擇信任該擴充套件，即表示你願意承擔上述風險</string>\n    <string name=\"last_read_chapter\">最後閱畢的章節</string>\n    <string name=\"latest\">最新</string>\n    <string name=\"manga_tracking_tab\">歷程</string>\n    <string name=\"reading\">閱讀中</string>\n    <string name=\"plan_to_read\">準備中</string>\n    <string name=\"repeating\">重溫中</string>\n    <string name=\"track_type\">類型</string>\n    <string name=\"dialog_with_checkbox_remove_description\">此章節的閱讀日期將被清除，你確定嗎？</string>\n    <string name=\"transition_current\">這一章：</string>\n    <string name=\"transition_previous\">上一章：</string>\n    <string name=\"migration_dialog_what_to_include\">選擇欲處理的項目</string>\n    <string name=\"download_queue_error\">該章節無法下載，請再試一次</string>\n    <string name=\"download_notifier_unknown_error\">下載時發生不可預期的錯誤</string>\n    <string name=\"second_to_last\">倒數第二閱畢的章節</string>\n    <string name=\"third_to_last\">倒數第三閱畢的章節</string>\n    <string name=\"fourth_to_last\">倒數第四閱畢的章節</string>\n    <string name=\"fifth_to_last\">倒數第五閱畢的章節</string>\n    <string name=\"dropped\">已拋棄</string>\n    <string name=\"on_hold\">擱置中</string>\n    <string name=\"no_results_found\">找不到結果</string>\n    <string name=\"migration_selection_prompt\">請選擇檔案來源</string>\n    <string name=\"action_webview_back\">上一頁</string>\n    <string name=\"action_webview_forward\">下一頁</string>\n    <string name=\"action_webview_refresh\">重新整理</string>\n    <string name=\"pref_category_library\">書櫃</string>\n    <string name=\"ext_obsolete\">過舊</string>\n    <string name=\"obsolete_extension_message\">這個擴充套件已無法使用，其可能無法正確運作或導致本程式發生問題，建議解除安裝</string>\n    <string name=\"theme_light\">淺色</string>\n    <string name=\"theme_system\">系統</string>\n    <string name=\"theme_dark\">深色</string>\n    <string name=\"pref_date_format\">日期格式</string>\n    <string name=\"downloaded_only_summary\">將套用至你書櫃中的作品</string>\n    <string name=\"label_downloaded_only\">僅限下載內容</string>\n    <string name=\"licenses\">開放原始碼授權</string>\n    <string name=\"website\">網站</string>\n    <string name=\"check_for_updates\">檢查更新</string>\n    <string name=\"label_more\">其他</string>\n    <string name=\"manga_info_expand\">更多</string>\n    <string name=\"lock_never\">永不</string>\n    <string name=\"lock_always\">立即</string>\n    <string name=\"lock_when_idle\">閒置時鎖定</string>\n    <string name=\"lock_with_biometrics\">上鎖應用程式</string>\n    <string name=\"secure_screen_summary\">在切換應用程式時隱藏預覽，並禁止擷取螢幕畫面</string>\n    <string name=\"secure_screen\">防窺畫面</string>\n    <string name=\"pref_category_security\">隱私</string>\n    <string name=\"hide_notification_content\">隱藏通知內容</string>\n    <string name=\"pref_manage_notifications\">管理通知設定</string>\n    <string name=\"channel_ext_updates\">擴充套件更新</string>\n    <string name=\"action_display_show_tabs\">類別索引</string>\n    <string name=\"tabs_header\">頁籤</string>\n    <string name=\"gray_background\">灰色</string>\n    <string name=\"pref_category_display\">檢視</string>\n    <string name=\"action_display_comfortable_grid\">鬆散格狀</string>\n    <string name=\"pref_category_for_this_series\">套用於這部作品</string>\n    <string name=\"pref_category_reading\">翻閱</string>\n    <string name=\"pref_category_library_update\">全域更新</string>\n    <string name=\"battery_optimization_disabled\">已停用電池效能最佳化</string>\n    <string name=\"battery_optimization_setting_activity_not_found\">無法前往裝置設定</string>\n    <string name=\"pref_disable_battery_optimization\">停用電池效能最佳化</string>\n    <string name=\"manga_info_collapse\">較少</string>\n    <string name=\"updating_library\">正在更新書櫃</string>\n    <string name=\"add_to_library\">加入書櫃</string>\n    <string name=\"logout_success\">你已登出</string>\n    <string name=\"logout\">登出</string>\n    <string name=\"last_used_source\">最近使用</string>\n    <string name=\"local_source_help_guide\">本機來源指南</string>\n    <string name=\"information_webview_outdated\">請更新 WebView 以獲得更佳的相容性</string>\n    <string name=\"information_webview_required\">應用程式運作需要 WebView</string>\n    <string name=\"action_select_inverse\">反向選擇</string>\n    <string name=\"pref_library_update_refresh_metadata\">自動重新整理中繼資料</string>\n    <string name=\"pref_library_update_refresh_metadata_summary\">更新書櫃時一併檢查封面與簡介是否有更動</string>\n    <string name=\"pref_refresh_library_covers\">重新整理書櫃中的封面</string>\n    <string name=\"ext_updates_pending\">等待更新中</string>\n    <string name=\"pref_disable_battery_optimization_summary\">有助於背景更新書櫃與自動備份</string>\n    <string name=\"pinned_sources\">已釘選</string>\n    <string name=\"action_unpin\">取消釘選</string>\n    <string name=\"action_pin\">釘選</string>\n    <string name=\"action_view_chapters\">檢視章節</string>\n    <string name=\"action_disable_all\">全部停用</string>\n    <string name=\"action_enable_all\">全部啟用</string>\n    <string name=\"action_menu\">選單</string>\n    <string name=\"information_cloudflare_bypass_failure\">無法繞過 Cloudflare</string>\n    <string name=\"action_start\">開始</string>\n    <string name=\"pref_always_show_chapter_transition\">一律顯示章節間的隔頁</string>\n    <string name=\"pref_cutout_short\">使用螢幕凹口區域</string>\n    <string name=\"email\">電子郵件地址</string>\n    <string name=\"pref_skip_filtered_chapters\">略過已篩選的章節</string>\n    <string name=\"pref_show_reading_mode_summary\">開始閱讀時，快顯闡明目前的模式</string>\n    <string name=\"pref_show_reading_mode\">閱讀模式提示</string>\n    <string name=\"label_sources\">來源</string>\n    <string name=\"pref_webtoon_side_padding\">頁緣留白</string>\n    <string name=\"add_tracking\">新增閱讀歷程</string>\n    <string name=\"channel_new_chapters\">章節更新</string>\n    <string name=\"in_library\">在書櫃中</string>\n    <string name=\"viewer\">閱讀模式</string>\n    <string name=\"action_disable\">停用</string>\n    <string name=\"action_migrate\">遷移</string>\n    <string name=\"paused\">擱置中</string>\n    <string name=\"action_newest\">由新到舊</string>\n    <string name=\"action_oldest\">由舊到新</string>\n    <string name=\"action_move_to_bottom\">排至最後</string>\n    <string name=\"action_move_to_top\">排至最前</string>\n    <string name=\"action_cancel_all\">全部取消</string>\n    <string name=\"sort_by_upload_date\">上傳日期</string>\n    <string name=\"action_sort_latest_chapter\">最新章節</string>\n    <string name=\"invalid_backup_file\">無效的備份檔：</string>\n    <string name=\"backup_in_progress\">備份已在進行</string>\n    <string name=\"restore_in_progress\">還原已在進行</string>\n    <string name=\"label_data\">資料</string>\n    <string name=\"restoring_backup_canceled\">已取消還原</string>\n    <string name=\"restoring_backup_error\">還原失敗</string>\n    <string name=\"creating_backup_error\">備份失敗</string>\n    <string name=\"logout_title\">登出 %1$s？</string>\n    <string name=\"tracking_info\">將閱讀進度單向同步至外部歷程平臺，請逕行前往個別作品的「歷程」專區以設定</string>\n    <string name=\"requires_app_restart\">需要重新啟動應用程式以套用</string>\n    <string name=\"label_network\">網路</string>\n    <string name=\"tapping_inverted_both\">全部</string>\n    <string name=\"tapping_inverted_vertical\">垂直</string>\n    <string name=\"tapping_inverted_horizontal\">水平</string>\n    <string name=\"pref_read_with_tapping_inverted\">反轉輕觸區域</string>\n    <string name=\"vertical_plus_viewer\">捲動(留空)</string>\n    <string name=\"tapping_inverted_none\">無</string>\n    <string name=\"restore_duration\">%1$02d 分， %2$02d 秒</string>\n    <string name=\"recent_manga_time\">第 %1$s 章 - %2$s</string>\n    <string name=\"notification_chapters_single\">第 %1$s 章</string>\n    <string name=\"notification_chapters_multiple\">第 %1$s 章</string>\n    <string name=\"notification_chapters_single_and_more\">第 %1$s 章以及另外 %2$d 章</string>\n    <string name=\"whats_new\">更新日誌</string>\n    <string name=\"unknown_status\">連載狀態不明</string>\n    <string name=\"unknown_author\">佚名</string>\n    <string name=\"action_global_search_query\">在所有範圍內搜尋「%1$s」</string>\n    <string name=\"download_insufficient_space\">由於儲存空間不足，無法下載章節</string>\n    <string name=\"updated_version\">已更新至 v%1$s</string>\n    <string name=\"pref_category_reading_mode\">閱讀模式</string>\n    <string name=\"pref_category_theme\">主題</string>\n    <string name=\"action_sort_date_added\">收藏日期</string>\n    <string name=\"loader_not_implemented_error\">找不到來源</string>\n    <string name=\"no_pinned_sources\">你尚未釘選任何來源</string>\n    <string name=\"page_list_empty_error\">沒有任何頁面</string>\n    <string name=\"backup_restore_missing_sources\">未安裝擴充套件：</string>\n    <string name=\"backup_restore_missing_trackers\">未登入歷程平臺：</string>\n    <string name=\"channel_progress\">進度</string>\n    <string name=\"channel_errors\">錯誤</string>\n    <string name=\"channel_complete\">作業完成</string>\n    <string name=\"ext_nsfw_short\">18+</string>\n    <string name=\"parental_controls_info\">即使啟用監護限制，還是可能有漏網之魚，使用者仍可藉由第三方或未正確標幟的擴充套件在本應用程式中瀏覽 NSFW(18+) 內容</string>\n    <string name=\"ext_nsfw_warning\">來自此擴充套件的來源可能包含未滿十八歲之人不宜觀賞的內容</string>\n    <string name=\"invalid_backup_file_missing_manga\">備份檔並未包含任何書櫃中的作品</string>\n    <string name=\"pref_remove_bookmarked_chapters\">允許刪除有書籤的章節</string>\n    <string name=\"pref_category_delete_chapters\">刪除章節</string>\n    <string name=\"chapter_settings_updated\">已更新章節設定預設值</string>\n    <string name=\"action_search_settings\">搜尋設定</string>\n    <string name=\"chapter_settings\">章節設定</string>\n    <string name=\"also_set_chapter_settings_for_library\">同時套用至其餘在書櫃中的作品</string>\n    <string name=\"confirm_set_chapter_settings\">確定要將目前的選項儲存為預設值嗎？</string>\n    <string name=\"no_chapters_error\">沒有章節</string>\n    <string name=\"set_chapter_settings_as_default\">儲存為預設值</string>\n    <string name=\"clear_history_completed\">已刪除記錄</string>\n    <string name=\"clear_history_confirmation\">你確定嗎？所有的閱讀記錄將會遺失</string>\n    <string name=\"pref_clear_history\">清除閱讀記錄</string>\n    <string name=\"pref_incognito_mode_summary\">暫停閱讀記錄</string>\n    <string name=\"pref_incognito_mode\">無痕模式</string>\n    <string name=\"file_picker_error\">找不到檔案選擇器</string>\n    <string name=\"share_page_info\">《%1$s》：%2$s，第 %3$d 頁</string>\n    <string name=\"migration_help_guide\">來源遷移指南</string>\n    <string name=\"spen_next_page\">下一頁</string>\n    <string name=\"spen_previous_page\">上一頁</string>\n    <string name=\"myanimelist_relogin\">請重新登入 MAL</string>\n    <string name=\"pref_category_nsfw_content\">未滿十八歲之人不宜瀏覽的來源</string>\n    <string name=\"pref_show_nsfw_source\">在來源和擴充套件清單中顯示</string>\n    <string name=\"track_finished_reading_date\">閱讀完畢日期</string>\n    <string name=\"track_started_reading_date\">開始閱讀日期</string>\n    <string name=\"edge_nav\">邊緣式</string>\n    <string name=\"kindlish_nav\">Kindle 式</string>\n    <string name=\"l_nav\">L 式</string>\n    <string name=\"action_filter_tracked\">已登錄歷程</string>\n    <string name=\"pref_dump_crash_logs_summary\">產生錯誤記錄檔以便分享予開發人員</string>\n    <string name=\"pref_dump_crash_logs\">分享當機記錄</string>\n    <string name=\"pref_viewer_nav\">輕觸區域</string>\n    <string name=\"right_and_left_nav\">左右式</string>\n    <string name=\"action_order_by_upload_date\">依上傳日期</string>\n    <string name=\"action_desc\">遞減</string>\n    <string name=\"action_asc\">遞增</string>\n    <string name=\"action_order_by_chapter_number\">依章節編號</string>\n    <string name=\"action_display_show_number_of_items\">顯示藏書數目</string>\n    <string name=\"manga_from_library\">書櫃上的作品</string>\n    <string name=\"downloaded_chapters\">已下載的章節</string>\n    <string name=\"pref_dual_page_split\">分割寬頁</string>\n    <string name=\"pref_dual_page_invert_summary\">若分割後的排版方向與翻閱順序不符</string>\n    <string name=\"pref_dual_page_invert\">調換分割寬頁排版</string>\n    <string name=\"pref_dns_over_https\">DNS over HTTPS (DoH)</string>\n    <string name=\"pref_category_auto_download\">自動下載</string>\n    <string name=\"rotation_portrait\">直向</string>\n    <string name=\"rotation_type\">螢幕方向</string>\n    <string name=\"nav_zone_left\">左邊</string>\n    <string name=\"nav_zone_prev\">上一頁</string>\n    <string name=\"nav_zone_next\">下一頁</string>\n    <string name=\"action_sort_chapter_fetch_date\">章節擷取日期</string>\n    <string name=\"nav_zone_right\">右邊</string>\n    <string name=\"rotation_landscape\">橫向</string>\n    <string name=\"pref_reader_actions\">快顯選單</string>\n    <string name=\"exclude\">排除：%s</string>\n    <string name=\"include\">包含：%s</string>\n    <string name=\"none\">無</string>\n    <string name=\"action_show_errors\">輕觸以檢視詳細資訊</string>\n    <string name=\"update_check_eol\">不再支援此 Android 版本</string>\n    <string name=\"clipboard_copy_error\">無法複製到剪貼簿</string>\n    <string name=\"backup_restore_content_full\">你可能需要安裝任何缺少的擴充套件並重新登入各歷程平臺以開始使用</string>\n    <string name=\"pref_download_new_categories_details\">類別同時屬於「排除」及「包含」的作品，將不會自動下載</string>\n    <string name=\"pref_create_folder_per_manga\">儲存頁面至個別資料夾</string>\n    <string name=\"pref_create_folder_per_manga_summary\">根據作品標題建立資料夾</string>\n    <string name=\"pref_show_navigation_mode_summary\">開始閱讀時，短暫浮現輕觸區域</string>\n    <string name=\"pref_show_navigation_mode\">輕觸區域提示</string>\n    <string name=\"pref_library_update_categories_details\">類別同時屬於「排除」及「包含」的作品將不會自動更新</string>\n    <string name=\"cancel_all_for_series\">取消此作品</string>\n    <string name=\"automatic_background\">自動</string>\n    <string name=\"pref_grayscale\">灰階</string>\n    <string name=\"notification_incognito_text\">停用無痕模式</string>\n    <string name=\"error_no_match\">未找到匹配項</string>\n    <string name=\"source_unsupported\">不支援的來源</string>\n    <string name=\"unread\">未讀</string>\n    <string name=\"date\">日期</string>\n    <string name=\"chapter_not_found\">未找到章節</string>\n    <string name=\"off\">關閉</string>\n    <string name=\"on\">開啟</string>\n    <string name=\"restrictions\">限制：%s</string>\n    <string name=\"local_filter_order_by\">排序</string>\n    <string name=\"local_invalid_format\">無效的章節格式</string>\n    <string name=\"action_display_local_badge\">本機來源</string>\n    <string name=\"information_empty_category_dialog\">你目前沒有任何類別</string>\n    <string name=\"error_sharing_cover\">分享封面時發生錯誤</string>\n    <string name=\"error_saving_cover\">儲存封面時發生錯誤</string>\n    <string name=\"cover_saved\">已儲存封面</string>\n    <string name=\"manga_cover\">封面</string>\n    <string name=\"action_start_downloading_now\">立刻開始下載</string>\n    <string name=\"about_dont_kill_my_app\">部分裝置製造商設有額外的應用程式限制來終止背景服務，此網站提供了修復這項問題的詳細資訊</string>\n    <string name=\"label_background_activity\">背景活動</string>\n    <string name=\"restore_miui_warning\">若停用 MIUI 最佳化，備份與還原可能無法正確執行</string>\n    <string name=\"enhanced_tracking_info\">為特定來源提供增強功能，當作品被加入書櫃時，將自動登錄閱讀歷程</string>\n    <string name=\"enhanced_services\">增強式歷程平臺</string>\n    <string name=\"tracking_guide\">歷程平臺指南</string>\n    <string name=\"categorized_display_settings\">獨立各類別的排序方式</string>\n    <string name=\"pref_dark_theme_pure_black\">純黑深色模式</string>\n    <string name=\"theme_yotsuba\">四葉</string>\n    <string name=\"theme_yinyang\">陰陽</string>\n    <string name=\"theme_tako\">章魚</string>\n    <string name=\"theme_strawberrydaiquiri\">草莓黛綺莉</string>\n    <string name=\"theme_midnightdusk\">黃昏</string>\n    <string name=\"theme_greenapple\">青蘋果</string>\n    <string name=\"theme_monet\">動態</string>\n    <string name=\"pref_app_theme\">應用程式主題</string>\n    <string name=\"pref_lowest\">最低</string>\n    <string name=\"pref_low\">低</string>\n    <string name=\"pref_high\">高</string>\n    <string name=\"pref_highest\">最高</string>\n    <string name=\"pref_hide_threshold\">捲動時隱藏選單的靈敏度</string>\n    <string name=\"pref_inverted_colors\">反轉</string>\n    <string name=\"theme_tealturquoise\">綠松色</string>\n    <string name=\"confirm_lock_change\">驗證以確認變更</string>\n    <string name=\"pref_category_appearance\">外觀</string>\n    <string name=\"relative_time_today\">今天</string>\n    <string name=\"label_default\">預設</string>\n    <string name=\"pref_tablet_ui_mode\">平板電腦介面</string>\n    <string name=\"getting_started_guide\">入門指南</string>\n    <string name=\"action_track\">新增</string>\n    <string name=\"help_translate\">協助翻譯</string>\n    <string name=\"pref_remove_exclude_categories\">排除的類別</string>\n    <string name=\"ext_app_info\">程式資訊</string>\n    <string name=\"ext_installer_shizuku_unavailable_dialog\">若要使用 Shizuku 來安裝擴充套件，請先安裝 Shizuku 並開啟</string>\n    <string name=\"ext_installer_legacy\">傳統</string>\n    <string name=\"ext_installer_shizuku_stopped\">Shizuku 未執行</string>\n    <string name=\"ext_installer_pref\">套件安裝程式</string>\n    <string name=\"ext_install_service_notif\">正在安裝擴充套件…</string>\n    <string name=\"action_sort_count\">作品總數</string>\n    <string name=\"action_display_language_badge\">語言</string>\n    <string name=\"label_warning\">警告</string>\n    <string name=\"notification_size_warning\">大量更新會損害來源，並可能導致更新速度緩慢、電池用量增加，輕觸以瞭解詳情</string>\n    <string name=\"pref_verbose_logging\">錄製詳細記錄</string>\n    <string name=\"backup_info\">你應該在多處儲存備份副本，備份檔可能含有敏感資料 (包括任何已儲存的密碼)，分享時請留意</string>\n    <string name=\"pref_verbose_logging_summary\">傾印詳細記錄至系統日誌 (將降低應用程式效能)</string>\n    <string name=\"connected_to_wifi\">僅透過 Wi-Fi</string>\n    <string name=\"update_72hour\">每 3 天</string>\n    <string name=\"download_queue_size_warning\">警告：大量批次下載可能壅塞來源，甚至使其封鎖 %s，輕觸以瞭解詳情</string>\n    <string name=\"ext_update_all\">全部更新</string>\n    <string name=\"channel_app_updates\">應用程式更新</string>\n    <string name=\"pref_auto_clear_chapter_cache\">啟動應用程式時清除章節快取</string>\n    <string name=\"clear_database_source_item_count\">資料庫中有 %1$d 部作品未加入書櫃</string>\n    <string name=\"database_clean\">無須清理</string>\n    <string name=\"extension_api_error\">無法取得可用的擴充套件</string>\n    <string name=\"privacy_policy\">隱私權政策</string>\n    <string name=\"pref_update_only_completely_read\">略過有未讀章節的作品</string>\n    <string name=\"library_errors_help\">如欲瞭解如何修復書櫃更新失敗，請參閱 %1$s</string>\n    <string name=\"save_chapter_as_cbz\">以 CBZ 封存檔格式儲存</string>\n    <string name=\"on_hiatus\">休刊中</string>\n    <string name=\"cancelled\">已取消</string>\n    <string name=\"publishing_finished\">出版完畢</string>\n    <string name=\"action_show_manga\">顯示作品</string>\n    <string name=\"pref_landscape_zoom\">自動縮放寬頁</string>\n    <string name=\"pref_navigate_pan\">導覽寬頁時先平移後翻頁</string>\n    <string name=\"action_display_cover_only_grid\">純封面格狀</string>\n    <string name=\"pref_update_only_started\">略過無已讀章節的作品</string>\n    <string name=\"skipped_reason_completed\">由於連載已完結，因此略過</string>\n    <string name=\"skipped_reason_not_caught_up\">由於有未讀章節，因此略過</string>\n    <string name=\"skipped_reason_not_started\">由於無已讀章節，因此略過</string>\n    <string name=\"rotation_reverse_portrait\">顛倒直向</string>\n    <string name=\"learn_more\">瞭解詳情</string>\n    <string name=\"notification_update_error\">%1$d 項更新失敗</string>\n    <string name=\"action_move_to_top_all_for_series\">置頂此作品</string>\n    <string name=\"disabled_nav\">停用</string>\n    <string name=\"empty_backup_error\">書櫃中尚無作品可供備份</string>\n    <string name=\"update_check_open\">在 GitHub 上檢視</string>\n    <string name=\"error_saving_picture\">儲存圖片錯誤</string>\n    <string name=\"pref_clear_webview_data\">清除 WebView 資料</string>\n    <string name=\"webview_data_deleted\">已清除 WebView 資料</string>\n    <string name=\"action_close\">關閉</string>\n    <string name=\"source_empty_screen\">找不到來源</string>\n    <string name=\"source_filter_empty_screen\">找不到已安裝的來源</string>\n    <string name=\"action_sort_last_manga_update\">上次檢查更新</string>\n    <string name=\"action_sort_unread_count\">未讀章數</string>\n    <string name=\"download_notifier_split_page_not_found\">分割時找不到第 %d 頁</string>\n    <string name=\"split_tall_images_summary\">用以改善閱讀器效能</string>\n    <string name=\"download_notifier_split_page_path_not_found\">找不到第 %d 頁的檔案路徑</string>\n    <string name=\"pref_reset_viewer_flags\">重設個別閱讀器設定</string>\n    <string name=\"pref_reset_viewer_flags_summary\">將所有作品的閱讀模式和螢幕方向還原為預設值</string>\n    <string name=\"pref_reset_viewer_flags_success\">已重設所有閱讀器設定</string>\n    <string name=\"pref_reset_viewer_flags_error\">無法重設閱讀器設定</string>\n    <string name=\"empty_screen\">呃…尷尬了</string>\n    <string name=\"ext_info_version\">版本</string>\n    <string name=\"ext_info_language\">語言</string>\n    <string name=\"ext_info_age_rating\">分級</string>\n    <string name=\"unfinished_list\">已拋棄</string>\n    <string name=\"on_hold_list\">擱置中</string>\n    <string name=\"complete_list\">已完結</string>\n    <string name=\"wish_list\">準備中</string>\n    <string name=\"reading_list\">閱讀中</string>\n    <string name=\"network_not_metered\">僅透過吃到飽網路</string>\n    <string name=\"cant_open_last_read_chapter\">無法開啟上次閱讀章節</string>\n    <string name=\"custom_cover\">自訂封面</string>\n    <string name=\"not_installed\">未安裝</string>\n    <string name=\"pref_app_language\">應用程式語言</string>\n    <string name=\"theme_lavender\">薰衣草</string>\n    <string name=\"description_placeholder\">沒有簡介</string>\n    <string name=\"delete_category_confirmation\">確定要刪除「%s」類別嗎？</string>\n    <string name=\"internal_error\">InternalError：請檢視當機記錄以瞭解詳情</string>\n    <string name=\"delete_category\">刪除類別</string>\n    <string name=\"pref_reset_user_agent_string\">重設預設使用者代理字串</string>\n    <string name=\"pref_user_agent_string\">預設使用者代理字串</string>\n    <string name=\"action_remove_everything\">全部清除</string>\n    <string name=\"appwidget_unavailable_locked\">當需要解鎖才能存取應用程式時，無法使用小工具</string>\n    <string name=\"appwidget_updates_description\">查看書櫃中近期更新的作品</string>\n    <string name=\"update_already_running\">已在進行更新</string>\n    <string name=\"error_user_agent_string_blank\">使用者代理字串不得為空</string>\n    <string name=\"theme_tidalwave\">潮浪</string>\n    <string name=\"download_ahead\">預先下載</string>\n    <string name=\"auto_download_while_reading\">閱讀時自動下載</string>\n    <string name=\"download_ahead_info\">僅於目前章節及下一章節皆已下載時生效</string>\n    <string name=\"are_you_sure\">你確定嗎？</string>\n    <string name=\"multi_lang\">多語</string>\n    <string name=\"remove_manga\">即將從書櫃中移除《%s》</string>\n    <string name=\"updates_last_update_info\">書櫃更新於：%s</string>\n    <string name=\"popular\">熱門</string>\n    <string name=\"missing_storage_permission\">未被授予儲存空間權限</string>\n    <string name=\"skipped_reason_not_always_update\">由於作品無須更新，因此略過</string>\n    <string name=\"action_search_hint\">搜尋…</string>\n    <string name=\"pref_reader_summary\">閱讀模式、檢視、導覽</string>\n    <string name=\"pref_appearance_summary\">主題、日期格式</string>\n    <string name=\"pref_downloads_summary\">自動下載、預先下載</string>\n    <string name=\"pref_tracking_summary\">單向進度同步、增強式同步</string>\n    <string name=\"pref_backup_summary\">手動與自動備份、儲存空間</string>\n    <string name=\"pref_security_summary\">上鎖應用程式、防窺畫面</string>\n    <string name=\"pref_advanced_summary\">傾印當機記錄、電池效能最佳化</string>\n    <string name=\"crash_screen_restart_application\">重新啟動應用程式</string>\n    <string name=\"crash_screen_title\">哎呀！</string>\n    <string name=\"crash_screen_description\">「%s」發生了未預期的錯誤，我們建議你將崩潰日誌分享至我們位於 Discord 上的頻道</string>\n    <string name=\"pref_library_summary\">類別、全域更新、目錄滑動動作</string>\n    <string name=\"pref_browse_summary\">來源、擴充套件、全域搜尋</string>\n    <string name=\"invalid_location\">無效的位置：%s</string>\n    <string name=\"unknown_title\">未知的標題</string>\n    <string name=\"error_user_agent_string_invalid\">無效的使用者代理字串</string>\n    <string name=\"updates_last_update_info_just_now\">剛剛</string>\n    <string name=\"download_notifier_cache_renewal\">正在檢查下載</string>\n    <string name=\"action_open_random_manga\">開啟隨機作品</string>\n    <string name=\"information_no_entries_found\">類別沒有作品</string>\n    <string name=\"fdroid_warning\">F-Droid 的組建未被正式支援\\n輕觸以瞭解詳情</string>\n    <string name=\"action_display_show_continue_reading_button\">繼續閱讀按鈕</string>\n    <string name=\"track_remove_date_conf_title\">移除日期？</string>\n    <string name=\"track_remove_finish_date_conf_text\">從「%s」移除你先前輸入的閱讀完畢日期</string>\n    <string name=\"track_remove_start_date_conf_text\">從「%s」移除你先前輸入的開始閱讀日期</string>\n    <string name=\"pref_invalidate_download_cache\">重新索引下載</string>\n    <string name=\"pref_invalidate_download_cache_summary\">強制重新檢查已下載的章節</string>\n    <string name=\"label_downloaded\">已下載</string>\n    <string name=\"label_completed_titles\">閱畢作品</string>\n    <string name=\"label_titles_section\">作品</string>\n    <string name=\"label_total_chapters\">總數</string>\n    <string name=\"label_read_chapters\">已讀</string>\n    <string name=\"label_mean_score\">平均評分</string>\n    <string name=\"label_used\">平臺</string>\n    <string name=\"day_short\">%d天</string>\n    <string name=\"label_stats\">統計資料</string>\n    <string name=\"label_local\">本機</string>\n    <string name=\"label_overview_section\">總覽</string>\n    <string name=\"label_started\">開始日</string>\n    <string name=\"label_titles_in_global_update\">適用全域更新</string>\n    <string name=\"label_read_duration\">閱讀歷時</string>\n    <string name=\"label_tracker_section\">歷程平臺</string>\n    <string name=\"not_applicable\">不適用</string>\n    <string name=\"label_tracked_titles\">登錄作品</string>\n    <string name=\"hour_short\">%d時</string>\n    <string name=\"minute_short\">%d 分鐘</string>\n    <string name=\"seconds_short\">%d 秒鐘</string>\n    <string name=\"action_not_now\">暫時不要</string>\n    <string name=\"information_no_manga_category\">類別尚無作品</string>\n    <string name=\"pref_library_update_show_tab_badge\">在「更新」導覽圖示上標記未讀章數</string>\n    <string name=\"copied_to_clipboard_plain\">已複製到剪貼簿</string>\n    <string name=\"pref_skip_dupe_chapters\">略過重複的章節</string>\n    <string name=\"enhanced_services_not_installed\">可供使用但來源尚未安裝：%s</string>\n    <string name=\"track_error\">%1$s 發生錯誤：%2$s</string>\n    <string name=\"information_required_plain\">*必填</string>\n    <string name=\"pref_hide_in_library_items\">隱藏已在書櫃的作品</string>\n    <string name=\"action_copy_to_clipboard\">複製</string>\n    <string name=\"action_update_category\">更新類別</string>\n    <string name=\"split_tall_images\">分割過高的圖片</string>\n    <string name=\"overlay_header\">封面附加元素</string>\n    <string name=\"pref_page_rotate\">旋轉寬頁以符合螢幕</string>\n    <string name=\"pref_page_rotate_invert\">調換旋轉寬頁方向</string>\n    <string name=\"pref_debug_info\">偵錯資訊</string>\n    <string name=\"pref_chapter_swipe_start\">向左滑動章節</string>\n    <string name=\"pref_double_tap_zoom\">輕觸兩下以縮放</string>\n    <string name=\"pref_chapter_swipe_end\">向右滑動章節</string>\n    <string name=\"action_ok\">確定</string>\n    <string name=\"delete_downloaded\">刪除舊有下載章節</string>\n    <string name=\"track_delete_title\">移除「%s」歷程平臺？</string>\n    <string name=\"track_delete_text\">這將在本機上解除登錄該歷程平臺</string>\n    <string name=\"track_delete_remote_text\">同時移除「%s」上的資料</string>\n    <string name=\"action_filter_interval_custom\">已自訂更新頻率</string>\n    <string name=\"action_set_interval\">設定間隔</string>\n    <string name=\"action_sort_next_updated\">下次預期更新</string>\n    <string name=\"intervals_header\">刊期</string>\n    <string name=\"manga_display_interval_title\">預計每個</string>\n    <string name=\"pref_update_only_in_release_period\">預估下次更新時間</string>\n    <string name=\"manga_display_modified_interval_title\">設定為每個</string>\n    <string name=\"skipped_reason_not_in_release_period\">由於未臨更新日，因此略過</string>\n    <string name=\"has_results\">有結果</string>\n    <string name=\"syncing_library\">正在同步書櫃</string>\n    <string name=\"library_sync_complete\">書櫃同步完成</string>\n    <string name=\"download_cache_invalidated\">正在重新建立下載索引</string>\n    <string name=\"information_cloudflare_help\">查看 Cloudflare 相關說明</string>\n    <string name=\"track_activity_name\">登入歷程平臺</string>\n    <string name=\"create_backup_file_error\">無法建立備份檔</string>\n    <string name=\"exception_http\">HTTP %d，請在 WebView 中檢查網站</string>\n    <string name=\"exception_offline\">沒有網路連線</string>\n    <string name=\"exception_unknown_host\">無法連上 %s</string>\n    <string name=\"unlock_app_title\">解鎖 %s</string>\n    <string name=\"action_move_to_bottom_all_for_series\">置底此作品</string>\n    <string name=\"pref_relative_format\">相對時間戳記</string>\n    <string name=\"pref_relative_format_summary\">以「%1$s」表示「%2$s」</string>\n    <string name=\"app_settings\">應用程式設定</string>\n    <string name=\"notification_updating_progress\">正在更新書櫃… (%s)</string>\n    <string name=\"source_settings\">來源設定</string>\n    <string name=\"file_null_uri_error\">未選擇檔案</string>\n    <string name=\"relative_time_span_never\">永不</string>\n    <string name=\"pref_flash_page_summ\">減少電子紙顯示器上的殘影</string>\n    <string name=\"last_auto_backup_info\">上次自動備份於：%s</string>\n    <string name=\"pref_flash_page\">翻頁時閃爍畫面</string>\n    <string name=\"label_data_storage\">資料與儲存空間</string>\n    <string name=\"pref_storage_usage\">儲存空間使用情形</string>\n    <string name=\"action_sort_tracker_score\">歷程平臺評分</string>\n    <string name=\"action_apply\">套用</string>\n    <string name=\"action_revert_to_default\">還原為預設值</string>\n    <string name=\"no_scanlators_found\">沒有掃譯者</string>\n    <string name=\"scanlator\">掃譯者</string>\n    <string name=\"exclude_scanlators\">排除掃譯者</string>\n    <string name=\"action_create\">建立</string>\n    <string name=\"action_menu_overflow_description\">更多選項</string>\n    <string name=\"selected\">已勾選</string>\n    <string name=\"not_selected\">尚未勾選</string>\n    <string name=\"action_bar_up_description\">向上瀏覽</string>\n    <string name=\"pref_storage_location\">儲存位置</string>\n    <string name=\"pref_storage_location_info\">供自動備份、章節下載和本機來源使用</string>\n    <string name=\"onboarding_storage_action_select\">選擇資料夾</string>\n    <string name=\"pref_onboarding_guide\">新手上路精靈</string>\n    <string name=\"onboarding_guides_new_user\">初探 %s？我們建議你查看入門指南</string>\n    <string name=\"onboarding_action_finish\">開始使用</string>\n    <string name=\"onboarding_storage_selection_required\">必須選擇一個資料夾</string>\n    <string name=\"onboarding_heading\">歡迎！</string>\n    <string name=\"onboarding_guides_returning_user\">重新安裝 %s？</string>\n    <string name=\"onboarding_action_skip\">略過</string>\n    <string name=\"onboarding_action_next\">下一步</string>\n    <string name=\"onboarding_description\">讓我們先設定一些東西，隨後你隨時可至設定中變更這些選項</string>\n    <string name=\"no_location_set\">未設定儲存位置</string>\n    <string name=\"onboarding_storage_info\">選擇供 %1$s 存放下載的章節、備份檔等內容的資料夾 \\n \\n建議使用專屬的資料夾 \\n \\n選擇的資料夾：%2$s</string>\n    <string name=\"onboarding_permission_notifications\">通知權限</string>\n    <string name=\"onboarding_permission_install_apps\">安裝應用程式權限</string>\n    <string name=\"onboarding_permission_ignore_battery_opts_description\">避免中斷書櫃更新、章節下載和還原備份等較為費時的作業</string>\n    <string name=\"onboarding_permission_ignore_battery_opts\">背景耗電量</string>\n    <string name=\"onboarding_permission_install_apps_description\">用以安裝來源擴充套件</string>\n    <string name=\"onboarding_permission_notifications_description\">用以傳送書櫃更新等通知</string>\n    <string name=\"onboarding_permission_action_grant\">授予</string>\n    <string name=\"available_disk_space_info\">可用：%1$s / 總計：%2$s</string>\n    <string name=\"ext_permission_install_apps_warning\">缺少安裝擴充套件所需的權限，輕觸此處以授予</string>\n    <string name=\"private_settings\">包含敏感設定 (如：歷程平臺登入權杖)</string>\n    <string name=\"manga_interval_expected_update\">預計 %1$s後更新，每 %2$s檢查一次</string>\n    <string name=\"invalid_backup_file_error\">完整錯誤訊息：</string>\n    <string name=\"manga_interval_custom_amount\">自訂更新頻率：</string>\n    <string name=\"label_add_repo_input\">儲存庫網址</string>\n    <string name=\"error_repo_exists\">已有該儲存庫！</string>\n    <string name=\"pref_library_update_smart_update\">智慧更新</string>\n    <string name=\"invalid_repo_name\">無效的儲存庫網址</string>\n    <string name=\"action_add_repo_message\">將額外的擴充套件儲存庫新增至 %s，此處應填入一個結尾為「index.min.json」的網址</string>\n    <string name=\"delete_repo_confirmation\">確定要刪除「%s」儲存庫嗎？</string>\n    <string name=\"action_delete_repo\">刪除儲存庫</string>\n    <string name=\"action_add_repo\">新增儲存庫</string>\n    <string name=\"information_empty_repos\">尚未新增任何儲存庫</string>\n    <string name=\"label_extension_repos\">擴充套件儲存庫</string>\n    <string name=\"onboarding_storage_help_action\">儲存空間指南</string>\n    <string name=\"onboarding_storage_help_info\">從舊版升級而不確定該如何選擇嗎？請參閱儲存空間指南以取得更多資訊</string>\n    <string name=\"theme_nord\">北風</string>\n    <string name=\"ext_revoke_trust\">復原對不明擴充套件的信任</string>\n    <string name=\"manga_interval_expected_update_soon\">即將</string>\n    <string name=\"action_open_repo\">開啟來源儲存庫</string>\n    <string name=\"pref_webtoon_disable_zoom_out\">停用縮小</string>\n    <string name=\"pref_display_profile\">自訂顯示設定檔</string>\n    <string name=\"action_add_anyway\">仍要新增</string>\n    <string name=\"action_replace_repo\">取代</string>\n    <string name=\"action_replace_repo_title\">已有相同的簽署金鑰指紋</string>\n    <string name=\"action_replace_repo_message\">「%1$s」儲存庫的簽署金鑰指紋與「%2$s」相同\\n若此為預期現象，則「%2$s」將被取代，否則請聯絡該儲存庫的維護者</string>\n    <string name=\"upcoming_guide\">即將推出的指南</string>\n    <string name=\"upcoming_calendar_next\">下個月</string>\n    <string name=\"upcoming_calendar_prev\">上個月</string>\n    <string name=\"label_upcoming\">即將推出</string>\n    <string name=\"action_view_upcoming\">檢視即將推出的更新</string>\n    <string name=\"file_picker_uri_permission_unsupported\">無法取得永久性資料夾存取權，應用程式可能會表現異常</string>\n    <string name=\"pref_flash_style_white\">白</string>\n    <string name=\"pref_flash_style_white_black\">黑白</string>\n    <string name=\"manga_interval_expected_update_null\">此漫畫已完結，又或尚無預發佈日</string>\n    <string name=\"pref_flash_duration\">閃爍時間</string>\n    <string name=\"pref_flash_duration_summary\">%1$s 毫秒</string>\n    <string name=\"pref_flash_page_interval\">閃爍間隔</string>\n    <string name=\"pref_flash_with\">閃爍於</string>\n    <string name=\"pref_flash_style_black\">黑</string>\n    <string name=\"invalid_backup_file_unknown\">備份檔案已損壞</string>\n    <string name=\"invalid_backup_file_json\">不支援 JSON 備份</string>\n    <string name=\"extensionRepo_settings\">擴充套件儲存庫</string>\n    <string name=\"action_copy_link\">複製連結</string>\n    <string name=\"add_repo_confirmation\">您想新增儲存庫\\\"%s\\\"嗎？</string>\n    <string name=\"pref_download_new_unread_chapters_only\">略過下載重複閱讀的章節</string>\n    <string name=\"confirm_tracker_update\">將進度更新到第 %d 章？</string>\n    <string name=\"onboarding_permission_analytics\">允許資料分析</string>\n    <string name=\"onboarding_permission_analytics_description\">傳送匿名使用資料來改進應用程式功能</string>\n    <string name=\"pref_security\">安全</string>\n    <string name=\"pref_firebase\">資料分析和崩潰日誌</string>\n    <string name=\"onboarding_permission_crashlytics\">傳送崩潰日誌</string>\n    <string name=\"onboarding_permission_crashlytics_description\">向開發人員傳送匿名崩潰日誌</string>\n    <string name=\"firebase_summary\">傳送崩潰日誌及資料分析有助於我們識別並解決問題和提升效能，並使未來的更新更貼近您的需求</string>\n    <string name=\"action_sort_random\">隨機</string>\n    <string name=\"ext_remove\">解除安裝</string>\n    <string name=\"ext_confirm_remove\">解除安裝擴充套件？</string>\n    <string name=\"remove_private_extension_message\">您真的要解除安裝「%s」擴充套件嗎？</string>\n    <string name=\"non_library_settings\">所有已閱讀的作品</string>\n    <string name=\"pref_auto_update_manga_on_mark_read\">標記為已讀時更新章節進度</string>\n    <string name=\"trackers_updated_summary\">已更新歷程到第%d章</string>\n    <string name=\"pref_hardware_bitmap_threshold\">自訂硬體點陣圖的閾值設定</string>\n    <string name=\"pref_hardware_bitmap_threshold_summary\">如果閱讀時載入的是空白影像，請逐步降低閾值\\n已選擇：%s</string>\n    <string name=\"pref_hardware_bitmap_threshold_default\">%d (預設)</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_summary\">影響效能。 僅當降低點陣圖閾值無法解決空白影象問題時才啟用</string>\n    <string name=\"pref_incognito_mode_extension_summary\">停止紀錄擴充的閱讀歷史</string>\n    <string name=\"label_auto\">自動</string>\n    <string name=\"theme_monochrome\">單色</string>\n    <string name=\"tracked_privately\">私下紀錄</string>\n    <string name=\"action_toggle_private_on\">私下紀錄</string>\n    <string name=\"action_toggle_private_off\">公開紀錄</string>\n    <string name=\"library_list\">書櫃清單</string>\n    <string name=\"library_exported\">已匯出清單</string>\n    <string name=\"export\">匯出</string>\n    <string name=\"author\">作者</string>\n    <string name=\"artist\">畫家</string>\n    <string name=\"pref_always_decode_long_strip_with_ssiv_2\">對長條閱讀模式使用舊版解碼器</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read\">將重複的已讀章節標記為已讀</string>\n    <string name=\"action_display_unread_badge\">未讀章節</string>\n    <string name=\"pref_behavior\">操作</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_existing\">閱讀完一章後</string>\n    <string name=\"pref_mark_duplicate_read_chapter_read_new\">獲取新章節後</string>\n    <string name=\"action_notes\">新增筆記</string>\n    <string name=\"action_edit_notes\">編輯筆記</string>\n    <string name=\"notes_placeholder\">我喜歡這段⋯</string>\n    <string name=\"possible_duplicates_summary\">您的書櫃有相似名稱的作品\\n\\n請選擇一個作品進行遷移或仍然新增</string>\n    <string name=\"possible_duplicates_title\">可能重複的作品</string>\n    <string name=\"clear_database_text\">您即將從資料庫中刪除作品</string>\n    <string name=\"clear_database_history_warning\">已讀章節和非書櫃裡的作品進度將會遺失</string>\n    <string name=\"clear_db_exclude_read\">保留有已讀章節的作品</string>\n    <string name=\"storage_failed_to_create_download_directory\">無法建立下載目錄</string>\n    <string name=\"storage_failed_to_create_directory\">無法建立目錄：%s</string>\n    <string name=\"logging_in\">登入中⋯</string>\n    <string name=\"pref_update_library_manga_titles\">更新書櫃中的漫畫標題以符合來源</string>\n    <string name=\"pref_update_library_manga_titles_summary\">警告：如果漫畫被重新命名，將會從下載佇列中移除（如果有的話）</string>\n    <string name=\"migrationConfigScreen.availableHeader\">可選</string>\n    <string name=\"migrationConfigScreen.selectAllLabel\">全選</string>\n    <string name=\"theme_catppuccin\">Catppuccin</string>\n    <string name=\"migrationConfigScreen.selectedHeader\">已選</string>\n    <string name=\"migrationConfigScreen.selectNoneLabel\">全不選</string>\n    <string name=\"migrationConfigScreen.selectEnabledLabel\">選擇已啟用的來源</string>\n    <string name=\"migrationConfigScreen.selectPinnedLabel\">選擇已釘選的來源</string>\n    <string name=\"migrationConfigScreen.continueButtonText\">繼续</string>\n    <string name=\"migrationConfigScreen.dataToMigrateHeader\">遷移日期</string>\n    <string name=\"pref_hide_missing_chapter_indicators\">隱藏缺少章節指示器</string>\n    <string name=\"migrationConfigScreen.removeDownloadsTitle\">遷移後刪除目前項目的下載</string>\n    <string name=\"migrationConfigScreen.additionalSearchQueryLabel\">額外關鍵字 (可選)</string>\n    <string name=\"migrationConfigScreen.additionalSearchQuerySupportingText\">新增額外關鍵字以縮小搜尋結果範圍</string>\n    <string name=\"migrationConfigScreen.hideUnmatchedTitle\">隱藏不符的項目</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesTitle\">隱藏沒有較新章節的項目</string>\n    <string name=\"migrationConfigScreen.hideWithoutUpdatesSubtitle\">僅在符合項目有額外章節時顯示</string>\n    <string name=\"migrationConfigScreen.enhancedOptionsWarning\">這些選項速度緩慢且具危險性，可能導致來源方的限制</string>\n    <string name=\"migrationConfigScreen.deepSearchModeTitle\">進階搜尋模式</string>\n    <string name=\"migrationConfigScreen.deepSearchModeSubtitle\">將標題分解為關鍵字以進行更廣泛的搜尋</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersTitle\">依章節數比對</string>\n    <string name=\"migrationConfigScreen.prioritizeByChaptersSubtitle\">若啟用，將選擇進度最超前的符合項目。否則，將依來源優先順序選擇第一個符合項目。</string>\n    <string name=\"migrationListScreenTitle\">遷移</string>\n    <string name=\"migrationListScreenTitleWithProgress\">遷移 (%1$d/%2$d)</string>\n    <string name=\"migrationListScreen.copyActionLabel\">複製</string>\n    <string name=\"migrationListScreen.migrateActionLabel\">遷移</string>\n    <string name=\"migrationListScreen.noMatchFoundText\">找不到替代項目</string>\n    <string name=\"migrationListScreen.latestChapterLabel\">最新：%1$s</string>\n    <string name=\"migrationListScreen.unknownLatestChapter\">未知</string>\n    <string name=\"migrationListScreen.searchManuallyActionLabel\">手動搜尋</string>\n    <string name=\"migrationListScreen.skipActionLabel\">不要遷移</string>\n    <string name=\"migrationListScreen.migrateNowActionLabel\">立即遷移</string>\n    <string name=\"migrationListScreen.copyNowActionLabel\">立即複製</string>\n    <string name=\"migrationListScreen.exitDialogTitle\">停止遷移？</string>\n    <string name=\"migrationListScreen.exitDialog.stopLabel\">停止</string>\n    <string name=\"migrationListScreen.exitDialog.cancelLabel\">取消</string>\n    <string name=\"migrationListScreen.migrateDialog.cancelLabel\">取消</string>\n    <string name=\"migrationListScreen.progressDialog.cancelLabel\">取消</string>\n    <string name=\"migrationListScreen.migrateDialog.copyLabel\">複製</string>\n    <string name=\"migrationListScreen.migrateDialog.migrateLabel\">遷移</string>\n    <string name=\"migrationListScreen.matchWithoutChapterToast\">找不到章節，此項目無法用於遷移</string>\n    <string name=\"pref_display_images_description\">在漫畫描述中顯示圖片</string>\n    <string name=\"label_donate\">捐贈</string>\n    <string name=\"pref_disallow_non_ascii_filenames\">禁止使用非 ASCII 檔名</string>\n    <string name=\"pref_disallow_non_ascii_filenames_details\">確保與不支援 Unicode 的某些儲存媒體相容，啟用此選項後，你需要手動將來源與漫畫資料夾中的非 ASCII 字元改成對應的小寫 UTF-8 十六進位表示方式，章節檔案則不需要重新命名。</string>\n    <string name=\"pref_download_concurrent_sources\">同時下載的來源數目</string>\n    <string name=\"pref_download_concurrent_pages\">同時下載的頁數</string>\n    <string name=\"pref_download_concurrent_pages_summary\">每個來源同時下載的頁數</string>\n    <string name=\"action_webview_close_tab\">關閉頁籤</string>\n    <string name=\"action_filter_excluded_scanlators\">篩選排除掃譯者</string>\n    <string name=\"calculating\">計算中…</string>\n    <string name=\"download_bookmarked\">已新增書籤</string>\n</resources>\n"
  },
  {
    "path": "macrobenchmark/README.md",
    "content": "# Baseline profiles\n\nThe baseline profile for this app is located at [`app/src/main/baseline-prof.txt`](../app/src/main/baseline-prof.txt).\nIt contains rules that enable AOT compilation of the critical user path taken during app launch.\nFor more information on baseline profiles, read [this document](https://developer.android.com/studio/profile/baselineprofiles).\n\n> Note: The baseline profile needs to be re-generated for release builds that touch code which changes app startup.\n\nTo generate the baseline profile, select the `devBenchmark` build variant and run the\n`BaselineProfileGenerator` benchmark test on an AOSP Android Emulator.\nThen copy the resulting baseline profile from the emulator to [`app/src/main/baseline-prof.txt`](../app/src/main/baseline-prof.txt)."
  },
  {
    "path": "macrobenchmark/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.benchmark\")\n}\n\nandroid {\n    namespace = \"tachiyomi.macrobenchmark\"\n\n    defaultConfig {\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n        testInstrumentationRunnerArguments[\"androidx.benchmark.enabledRules\"] = \"BaselineProfile\"\n    }\n\n    buildTypes {\n        // This benchmark buildType is used for benchmarking, and should function like your\n        // release build (for example, with minification on). It's signed with a debug key\n        // for easy local/CI testing.\n        create(\"benchmark\") {\n            isDebuggable = true\n            signingConfig = getByName(\"debug\").signingConfig\n            matchingFallbacks.add(\"release\")\n        }\n    }\n\n    targetProjectPath = \":app\"\n    experimentalProperties[\"android.experimental.self-instrumenting\"] = true\n}\n\ndependencies {\n    implementation(androidx.test.ext)\n    implementation(androidx.test.espresso.core)\n    implementation(androidx.test.uiautomator)\n    implementation(androidx.benchmark.macro)\n}\n\nandroidComponents {\n    beforeVariants(selector().all()) {\n        it.enable = it.buildType == \"benchmark\"\n    }\n}\n"
  },
  {
    "path": "macrobenchmark/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "macrobenchmark/src/main/java/tachiyomi/macrobenchmark/BaselineProfileGenerator.kt",
    "content": "package tachiyomi.macrobenchmark\n\nimport androidx.benchmark.macro.junit4.BaselineProfileRule\nimport androidx.test.uiautomator.By\nimport org.junit.Rule\nimport org.junit.Test\n\nclass BaselineProfileGenerator {\n\n    @get:Rule\n    val baselineProfileRule = BaselineProfileRule()\n\n    @Test\n    fun generate() = baselineProfileRule.collect(\n        packageName = \"eu.kanade.tachiyomi.benchmark\",\n        profileBlock = {\n            pressHome()\n            startActivityAndWait()\n\n            device.findObject(By.text(\"Updates\")).click()\n\n            device.findObject(By.text(\"History\")).click()\n\n            // TODO: automate storage permissions and possibly open manga details screen too?\n            // device.findObject(By.text(\"Browse\")).click()\n            // device.findObject(By.text(\"Extensions\")).click()\n            // device.swipe(150, 150, 50, 150, 1)\n\n            device.findObject(By.text(\"More\")).click()\n            device.findObject(By.text(\"Settings\")).click()\n        },\n    )\n}\n"
  },
  {
    "path": "macrobenchmark/src/main/java/tachiyomi/macrobenchmark/StartupBenchmark.kt",
    "content": "/*\n * Copyright 2022 The Android Open Source Project\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage tachiyomi.macrobenchmark\n\nimport androidx.benchmark.macro.BaselineProfileMode\nimport androidx.benchmark.macro.CompilationMode\nimport androidx.benchmark.macro.StartupMode\nimport androidx.benchmark.macro.StartupTimingMetric\nimport androidx.benchmark.macro.junit4.MacrobenchmarkRule\nimport androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner\nimport org.junit.Rule\nimport org.junit.Test\nimport org.junit.runner.RunWith\n\n/**\n * Run this benchmark from Studio to see startup measurements, and captured system traces\n * for investigating your app's performance from a cold state.\n */\n@RunWith(AndroidJUnit4ClassRunner::class)\nclass ColdStartupBenchmark : AbstractStartupBenchmark(StartupMode.COLD)\n\n/**\n * Run this benchmark from Studio to see startup measurements, and captured system traces\n * for investigating your app's performance from a warm state.\n */\n@RunWith(AndroidJUnit4ClassRunner::class)\nclass WarmStartupBenchmark : AbstractStartupBenchmark(StartupMode.WARM)\n\n/**\n * Run this benchmark from Studio to see startup measurements, and captured system traces\n * for investigating your app's performance from a hot state.\n */\n@RunWith(AndroidJUnit4ClassRunner::class)\nclass HotStartupBenchmark : AbstractStartupBenchmark(StartupMode.HOT)\n\n/**\n * Base class for benchmarks with different startup modes.\n * Enables app startups from various states of baseline profile or [CompilationMode]s.\n */\nabstract class AbstractStartupBenchmark(private val startupMode: StartupMode) {\n    @get:Rule\n    val benchmarkRule = MacrobenchmarkRule()\n\n    @Test\n    fun startupNoCompilation() = startup(CompilationMode.None())\n\n    @Test\n    fun startupBaselineProfileDisabled() = startup(\n        CompilationMode.Partial(\n            baselineProfileMode = BaselineProfileMode.Disable,\n            warmupIterations = 1,\n        ),\n    )\n\n    @Test\n    fun startupBaselineProfile() = startup(\n        CompilationMode.Partial(baselineProfileMode = BaselineProfileMode.Require),\n    )\n\n    @Test\n    fun startupFullCompilation() = startup(CompilationMode.Full())\n\n    private fun startup(compilationMode: CompilationMode) = benchmarkRule.measureRepeated(\n        packageName = \"eu.kanade.tachiyomi.benchmark\",\n        metrics = listOf(StartupTimingMetric()),\n        compilationMode = compilationMode,\n        iterations = 10,\n        startupMode = startupMode,\n        setupBlock = {\n            pressHome()\n        },\n    ) {\n        startActivityAndWait()\n    }\n}\n"
  },
  {
    "path": "presentation-core/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    id(\"mihon.library.compose\")\n    kotlin(\"android\")\n}\n\nandroid {\n    namespace = \"tachiyomi.presentation.core\"\n\n    defaultConfig {\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n        consumerProguardFiles(\"consumer-rules.pro\")\n    }\n}\n\nkotlin {\n    compilerOptions {\n        freeCompilerArgs.addAll(\n            \"-opt-in=androidx.compose.animation.ExperimentalAnimationApi\",\n            \"-opt-in=androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi\",\n            \"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi\",\n            \"-opt-in=androidx.compose.foundation.layout.ExperimentalLayoutApi\",\n            \"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api\",\n            \"-opt-in=androidx.compose.ui.ExperimentalComposeUiApi\",\n            \"-opt-in=kotlinx.coroutines.FlowPreview\",\n        )\n    }\n}\n\ndependencies {\n    api(projects.core.common)\n    api(projects.i18n)\n\n    // Compose\n    implementation(compose.activity)\n    implementation(compose.foundation)\n    implementation(compose.material3.core)\n    implementation(compose.material.icons)\n    implementation(compose.animation)\n    implementation(compose.animation.graphics)\n    debugImplementation(compose.ui.tooling)\n    implementation(compose.ui.tooling.preview)\n    implementation(compose.ui.util)\n\n    implementation(androidx.paging.runtime)\n    implementation(androidx.paging.compose)\n    implementation(kotlinx.immutables)\n}\n"
  },
  {
    "path": "presentation-core/consumer-rules.pro",
    "content": ""
  },
  {
    "path": "presentation-core/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile"
  },
  {
    "path": "presentation-core/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "presentation-core/src/main/java/mihon/presentation/core/util/PagingDataUtil.kt",
    "content": "package mihon.presentation.core.util\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.paging.PagingData\nimport androidx.paging.compose.LazyPagingItems\nimport androidx.paging.compose.collectAsLazyPagingItems\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.StateFlow\n\n@Composable\nfun <T : Any> StateFlow<Flow<PagingData<T>>>.collectAsLazyPagingItems(): LazyPagingItems<T> {\n    val flow by collectAsState()\n    return flow.collectAsLazyPagingItems()\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/ActionButton.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.text.style.TextAlign\nimport tachiyomi.presentation.core.components.material.padding\n\n@Composable\nfun ActionButton(\n    title: String,\n    icon: ImageVector,\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n) {\n    TextButton(\n        modifier = modifier,\n        onClick = onClick,\n    ) {\n        Column(\n            verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n            horizontalAlignment = Alignment.CenterHorizontally,\n        ) {\n            Icon(\n                imageVector = icon,\n                contentDescription = null,\n            )\n            Text(\n                text = title,\n                textAlign = TextAlign.Center,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/AdaptiveSheet.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.activity.compose.BackHandler\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.animation.core.tween\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.gestures.AnchoredDraggableDefaults\nimport androidx.compose.foundation.gestures.AnchoredDraggableState\nimport androidx.compose.foundation.gestures.DraggableAnchors\nimport androidx.compose.foundation.gestures.Orientation\nimport androidx.compose.foundation.gestures.anchoredDraggable\nimport androidx.compose.foundation.gestures.animateTo\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.navigationBarsPadding\nimport androidx.compose.foundation.layout.offset\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.requiredWidthIn\nimport androidx.compose.foundation.layout.statusBarsPadding\nimport androidx.compose.foundation.layout.systemBarsPadding\nimport androidx.compose.foundation.layout.widthIn\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.derivedStateOf\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableFloatStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.runtime.snapshotFlow\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.geometry.Offset\nimport androidx.compose.ui.input.nestedscroll.NestedScrollConnection\nimport androidx.compose.ui.input.nestedscroll.NestedScrollSource\nimport androidx.compose.ui.input.nestedscroll.nestedScroll\nimport androidx.compose.ui.layout.onSizeChanged\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.unit.IntOffset\nimport androidx.compose.ui.unit.Velocity\nimport androidx.compose.ui.unit.dp\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.drop\nimport kotlinx.coroutines.flow.filter\nimport kotlinx.coroutines.launch\nimport kotlin.math.roundToInt\n\n@Composable\nfun AdaptiveSheet(\n    isTabletUi: Boolean,\n    enableSwipeDismiss: Boolean,\n    onDismissRequest: () -> Unit,\n    modifier: Modifier = Modifier,\n    content: @Composable () -> Unit,\n) {\n    val density = LocalDensity.current\n    val scope = rememberCoroutineScope()\n    if (isTabletUi) {\n        var targetAlpha by remember { mutableFloatStateOf(0f) }\n        val alpha by animateFloatAsState(\n            targetValue = targetAlpha,\n            animationSpec = sheetAnimationSpec,\n            label = \"alpha\",\n        )\n        val internalOnDismissRequest: () -> Unit = {\n            scope.launch {\n                targetAlpha = 0f\n                onDismissRequest()\n            }\n        }\n        Box(\n            modifier = Modifier\n                .clickable(\n                    interactionSource = null,\n                    indication = null,\n                    onClick = internalOnDismissRequest,\n                )\n                .fillMaxSize()\n                .alpha(alpha),\n            contentAlignment = Alignment.Center,\n        ) {\n            Surface(\n                modifier = Modifier\n                    .requiredWidthIn(max = 460.dp)\n                    .clickable(\n                        interactionSource = null,\n                        indication = null,\n                        onClick = {},\n                    )\n                    .systemBarsPadding()\n                    .padding(vertical = 16.dp)\n                    .then(modifier),\n                shape = MaterialTheme.shapes.extraLarge,\n                color = MaterialTheme.colorScheme.surfaceContainerHigh,\n                content = {\n                    BackHandler(\n                        enabled = remember { derivedStateOf { alpha > 0f } }.value,\n                        onBack = internalOnDismissRequest,\n                    )\n                    content()\n                },\n            )\n\n            LaunchedEffect(Unit) {\n                targetAlpha = 1f\n            }\n        }\n    } else {\n        val anchoredDraggableState = rememberSaveable(saver = AnchoredDraggableState.Saver()) {\n            AnchoredDraggableState(initialValue = 1)\n        }\n        val flingBehavior = AnchoredDraggableDefaults.flingBehavior(\n            state = anchoredDraggableState,\n            positionalThreshold = { _: Float -> with(density) { 56.dp.toPx() } },\n            animationSpec = sheetAnimationSpec,\n        )\n        val internalOnDismissRequest = {\n            if (anchoredDraggableState.settledValue == 0) {\n                scope.launch { anchoredDraggableState.animateTo(1) }\n            }\n        }\n        Box(\n            modifier = Modifier\n                .clickable(\n                    interactionSource = null,\n                    indication = null,\n                    onClick = internalOnDismissRequest,\n                )\n                .fillMaxSize()\n                .onSizeChanged {\n                    val anchors = DraggableAnchors {\n                        0 at 0f\n                        1 at it.height.toFloat()\n                    }\n                    anchoredDraggableState.updateAnchors(anchors)\n                },\n            contentAlignment = Alignment.BottomCenter,\n        ) {\n            Surface(\n                modifier = Modifier\n                    .widthIn(max = 460.dp)\n                    .clickable(\n                        interactionSource = null,\n                        indication = null,\n                        onClick = {},\n                    )\n                    .then(\n                        if (enableSwipeDismiss) {\n                            Modifier.nestedScroll(\n                                remember(anchoredDraggableState) {\n                                    anchoredDraggableState.preUpPostDownNestedScrollConnection {\n                                        scope.launch { anchoredDraggableState.settle(sheetAnimationSpec) }\n                                    }\n                                },\n                            )\n                        } else {\n                            Modifier\n                        },\n                    )\n                    .then(modifier)\n                    .offset {\n                        IntOffset(\n                            0,\n                            anchoredDraggableState.offset\n                                .takeIf { it.isFinite() }\n                                ?.roundToInt()\n                                ?: 0,\n                        )\n                    }\n                    .anchoredDraggable(\n                        state = anchoredDraggableState,\n                        orientation = Orientation.Vertical,\n                        enabled = enableSwipeDismiss,\n                        flingBehavior = flingBehavior,\n                    )\n                    .navigationBarsPadding()\n                    .statusBarsPadding(),\n                shape = MaterialTheme.shapes.extraLarge,\n                color = MaterialTheme.colorScheme.surfaceContainerHigh,\n                content = {\n                    BackHandler(\n                        enabled = anchoredDraggableState.targetValue == 0,\n                        onBack = internalOnDismissRequest,\n                    )\n                    content()\n                },\n            )\n\n            LaunchedEffect(anchoredDraggableState) {\n                scope.launch { anchoredDraggableState.animateTo(0) }\n                snapshotFlow { anchoredDraggableState.settledValue }\n                    .drop(1)\n                    .filter { it == 1 }\n                    .collectLatest {\n                        onDismissRequest()\n                    }\n            }\n        }\n    }\n}\n\nprivate fun <T> AnchoredDraggableState<T>.preUpPostDownNestedScrollConnection(\n    onFling: (velocity: Float) -> Unit,\n) = object : NestedScrollConnection {\n    override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {\n        val delta = available.toFloat()\n        return if (delta < 0 && source == NestedScrollSource.UserInput) {\n            dispatchRawDelta(delta).toOffset()\n        } else {\n            Offset.Zero\n        }\n    }\n\n    override fun onPostScroll(\n        consumed: Offset,\n        available: Offset,\n        source: NestedScrollSource,\n    ): Offset {\n        return if (source == NestedScrollSource.UserInput) {\n            dispatchRawDelta(available.toFloat()).toOffset()\n        } else {\n            Offset.Zero\n        }\n    }\n\n    override suspend fun onPreFling(available: Velocity): Velocity {\n        val toFling = available.toFloat()\n        return if (toFling < 0 && offset > anchors.minPosition()) {\n            onFling(toFling)\n            // since we go to the anchor with tween settling, consume all for the best UX\n            available\n        } else {\n            Velocity.Zero\n        }\n    }\n\n    override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity {\n        onFling(available.toFloat())\n        return if (targetValue != settledValue) {\n            available\n        } else {\n            Velocity.Zero\n        }\n    }\n\n    private fun Float.toOffset(): Offset = Offset(0f, this)\n\n    @JvmName(\"velocityToFloat\")\n    private fun Velocity.toFloat() = this.y\n\n    @JvmName(\"offsetToFloat\")\n    private fun Offset.toFloat(): Float = this.y\n}\n\nprivate val sheetAnimationSpec = tween<Float>(durationMillis = 350)\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/Badges.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.text.InlineTextContent\nimport androidx.compose.foundation.text.appendInlineContent\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.RectangleShape\nimport androidx.compose.ui.graphics.Shape\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.text.Placeholder\nimport androidx.compose.ui.text.PlaceholderVerticalAlign\nimport androidx.compose.ui.text.buildAnnotatedString\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.unit.dp\nimport kotlinx.collections.immutable.persistentMapOf\n\n@Composable\nfun BadgeGroup(\n    modifier: Modifier = Modifier,\n    shape: Shape = MaterialTheme.shapes.extraSmall,\n    content: @Composable RowScope.() -> Unit,\n) {\n    Row(modifier = modifier.clip(shape)) {\n        content()\n    }\n}\n\n@Composable\nfun Badge(\n    text: String,\n    modifier: Modifier = Modifier,\n    color: Color = MaterialTheme.colorScheme.secondary,\n    textColor: Color = MaterialTheme.colorScheme.onSecondary,\n    shape: Shape = RectangleShape,\n) {\n    Text(\n        text = text,\n        modifier = modifier\n            .clip(shape)\n            .background(color)\n            .padding(horizontal = 3.dp, vertical = 1.dp),\n        color = textColor,\n        fontWeight = FontWeight.Medium,\n        maxLines = 1,\n        style = MaterialTheme.typography.bodySmall,\n    )\n}\n\n@Composable\nfun Badge(\n    imageVector: ImageVector,\n    modifier: Modifier = Modifier,\n    color: Color = MaterialTheme.colorScheme.secondary,\n    iconColor: Color = MaterialTheme.colorScheme.onSecondary,\n    shape: Shape = RectangleShape,\n) {\n    val iconContentPlaceholder = \"[icon]\"\n    val text = buildAnnotatedString {\n        appendInlineContent(iconContentPlaceholder)\n    }\n    val inlineContent = persistentMapOf(\n        Pair(\n            iconContentPlaceholder,\n            InlineTextContent(\n                Placeholder(\n                    width = MaterialTheme.typography.bodySmall.fontSize,\n                    height = MaterialTheme.typography.bodySmall.fontSize,\n                    placeholderVerticalAlign = PlaceholderVerticalAlign.Center,\n                ),\n            ) {\n                Icon(\n                    imageVector = imageVector,\n                    tint = iconColor,\n                    contentDescription = null,\n                )\n            },\n        ),\n    )\n\n    Text(\n        text = text,\n        inlineContent = inlineContent,\n        modifier = modifier\n            .clip(shape)\n            .background(color)\n            .padding(horizontal = 3.dp, vertical = 1.dp),\n        color = iconColor,\n        fontWeight = FontWeight.Medium,\n        maxLines = 1,\n        style = MaterialTheme.typography.bodySmall,\n    )\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/CircularProgressIndicator.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.animation.AnimatedContent\nimport androidx.compose.animation.core.LinearEasing\nimport androidx.compose.animation.core.RepeatMode\nimport androidx.compose.animation.core.animateFloat\nimport androidx.compose.animation.core.animateFloatAsState\nimport androidx.compose.animation.core.infiniteRepeatable\nimport androidx.compose.animation.core.rememberInfiniteTransition\nimport androidx.compose.animation.core.tween\nimport androidx.compose.animation.fadeIn\nimport androidx.compose.animation.fadeOut\nimport androidx.compose.animation.togetherWith\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProgressIndicatorDefaults\nimport androidx.compose.material3.Scaffold\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableFloatStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.rotate\nimport androidx.compose.ui.tooling.preview.Preview\n\n/**\n * A combined [CircularProgressIndicator] that always rotates.\n *\n * By always rotating we give the feedback to the user that the application isn't 'stuck'.\n */\n@Composable\nfun CombinedCircularProgressIndicator(\n    progress: () -> Float,\n    modifier: Modifier = Modifier,\n) {\n    AnimatedContent(\n        targetState = progress() == 0f,\n        transitionSpec = { fadeIn() togetherWith fadeOut() },\n        label = \"progressState\",\n        modifier = modifier,\n    ) { indeterminate ->\n        if (indeterminate) {\n            // Indeterminate\n            CircularProgressIndicator()\n        } else {\n            // Determinate\n            val infiniteTransition = rememberInfiniteTransition(label = \"infiniteRotation\")\n            val rotation by infiniteTransition.animateFloat(\n                initialValue = 0f,\n                targetValue = 360f,\n                animationSpec = infiniteRepeatable(\n                    animation = tween(2000, easing = LinearEasing),\n                    repeatMode = RepeatMode.Restart,\n                ),\n                label = \"rotation\",\n            )\n            val animatedProgress by animateFloatAsState(\n                targetValue = progress(),\n                animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec,\n                label = \"progress\",\n            )\n            CircularProgressIndicator(\n                progress = { animatedProgress },\n                modifier = Modifier.rotate(rotation),\n            )\n        }\n    }\n}\n\n@Preview\n@Composable\nprivate fun CombinedCircularProgressIndicatorPreview() {\n    var progress by remember { mutableFloatStateOf(0f) }\n    MaterialTheme {\n        Scaffold(\n            bottomBar = {\n                Button(\n                    modifier = Modifier.fillMaxWidth(),\n                    onClick = {\n                        progress = when (progress) {\n                            0f -> 0.15f\n                            0.15f -> 0.25f\n                            0.25f -> 0.5f\n                            0.5f -> 0.75f\n                            0.75f -> 0.95f\n                            else -> 0f\n                        }\n                    },\n                ) {\n                    Text(\"change\")\n                }\n            },\n        ) {\n            Box(\n                contentAlignment = Alignment.Center,\n                modifier = Modifier\n                    .fillMaxSize()\n                    .padding(it),\n            ) {\n                CombinedCircularProgressIndicator(progress = { progress })\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/CollapsibleBox.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.animation.AnimatedVisibility\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.ExpandLess\nimport androidx.compose.material.icons.filled.ExpandMore\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.presentation.core.theme.header\n\n@Composable\nfun CollapsibleBox(\n    heading: String,\n    content: @Composable () -> Unit,\n) {\n    var expanded by remember { mutableStateOf(false) }\n\n    Column {\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .clickable { expanded = !expanded }\n                .padding(horizontal = 24.dp, vertical = 12.dp),\n        ) {\n            Text(\n                text = heading,\n                style = MaterialTheme.typography.header,\n            )\n\n            Spacer(modifier = Modifier.weight(1f))\n\n            Icon(\n                imageVector = if (expanded) Icons.Default.ExpandLess else Icons.Default.ExpandMore,\n                contentDescription = null,\n            )\n        }\n\n        AnimatedVisibility(visible = expanded) {\n            content()\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/LabeledCheckbox.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.heightIn\nimport androidx.compose.material3.Checkbox\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.semantics.Role\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.presentation.core.components.material.padding\n\n@Composable\nfun LabeledCheckbox(\n    label: String,\n    checked: Boolean,\n    onCheckedChange: (Boolean) -> Unit,\n    modifier: Modifier = Modifier,\n    enabled: Boolean = true,\n) {\n    Row(\n        modifier = modifier\n            .clip(MaterialTheme.shapes.small)\n            .fillMaxWidth()\n            .heightIn(min = 48.dp)\n            .clickable(\n                role = Role.Checkbox,\n                onClick = {\n                    if (enabled) {\n                        onCheckedChange(!checked)\n                    }\n                },\n            ),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n    ) {\n        Checkbox(\n            checked = checked,\n            onCheckedChange = null,\n            enabled = enabled,\n        )\n\n        Text(text = label)\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/LazyColumnWithAction.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListScope\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.HorizontalDivider\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun LazyColumnWithAction(\n    contentPadding: PaddingValues,\n    actionLabel: String,\n    onClickAction: () -> Unit,\n    modifier: Modifier = Modifier,\n    actionEnabled: Boolean = true,\n    content: LazyListScope.() -> Unit,\n) {\n    Column(\n        modifier = modifier\n            .padding(contentPadding)\n            .fillMaxSize(),\n    ) {\n        LazyColumn(\n            modifier = Modifier.weight(1f),\n            content = content,\n        )\n\n        HorizontalDivider()\n\n        Button(\n            modifier = Modifier\n                .padding(horizontal = 16.dp, vertical = 8.dp)\n                .fillMaxWidth(),\n            enabled = actionEnabled,\n            onClick = onClickAction,\n        ) {\n            Text(\n                text = actionLabel,\n                color = MaterialTheme.colorScheme.onPrimary,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/LazyGrid.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.foundation.lazy.grid.LazyGridScope\nimport androidx.compose.foundation.lazy.grid.LazyGridState\nimport androidx.compose.foundation.lazy.grid.LazyVerticalGrid\nimport androidx.compose.foundation.lazy.grid.rememberLazyGridState\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun FastScrollLazyVerticalGrid(\n    columns: GridCells,\n    modifier: Modifier = Modifier,\n    state: LazyGridState = rememberLazyGridState(),\n    thumbAllowed: () -> Boolean = { true },\n    thumbColor: Color = MaterialTheme.colorScheme.primary,\n    contentPadding: PaddingValues = PaddingValues(0.dp),\n    topContentPadding: Dp = Dp.Hairline,\n    bottomContentPadding: Dp = Dp.Hairline,\n    endContentPadding: Dp = Dp.Hairline,\n    reverseLayout: Boolean = false,\n    verticalArrangement: Arrangement.Vertical =\n        if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,\n    horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,\n    userScrollEnabled: Boolean = true,\n    content: LazyGridScope.() -> Unit,\n) {\n    VerticalGridFastScroller(\n        state = state,\n        columns = columns,\n        arrangement = horizontalArrangement,\n        contentPadding = contentPadding,\n        modifier = modifier,\n        thumbAllowed = thumbAllowed,\n        thumbColor = thumbColor,\n        topContentPadding = topContentPadding,\n        bottomContentPadding = bottomContentPadding,\n        endContentPadding = endContentPadding,\n    ) {\n        LazyVerticalGrid(\n            columns = columns,\n            state = state,\n            contentPadding = contentPadding,\n            reverseLayout = reverseLayout,\n            verticalArrangement = verticalArrangement,\n            horizontalArrangement = horizontalArrangement,\n            userScrollEnabled = userScrollEnabled,\n            content = content,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/LazyList.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListScope\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.presentation.core.util.drawVerticalScrollbar\n\n/**\n * LazyColumn with scrollbar.\n */\n@Composable\nfun ScrollbarLazyColumn(\n    modifier: Modifier = Modifier,\n    state: LazyListState = rememberLazyListState(),\n    contentPadding: PaddingValues = PaddingValues(0.dp),\n    reverseLayout: Boolean = false,\n    verticalArrangement: Arrangement.Vertical =\n        if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,\n    horizontalAlignment: Alignment.Horizontal = Alignment.Start,\n    userScrollEnabled: Boolean = true,\n    content: LazyListScope.() -> Unit,\n) {\n    val direction = LocalLayoutDirection.current\n    val density = LocalDensity.current\n    val positionOffset = remember(contentPadding) {\n        with(density) { contentPadding.calculateEndPadding(direction).toPx() }\n    }\n    LazyColumn(\n        modifier = modifier\n            .drawVerticalScrollbar(\n                state = state,\n                reverseScrolling = reverseLayout,\n                positionOffsetPx = positionOffset,\n            ),\n        state = state,\n        contentPadding = contentPadding,\n        reverseLayout = reverseLayout,\n        verticalArrangement = verticalArrangement,\n        horizontalAlignment = horizontalAlignment,\n        userScrollEnabled = userScrollEnabled,\n        content = content,\n    )\n}\n\n/**\n * LazyColumn with fast scroller.\n */\n@Composable\nfun FastScrollLazyColumn(\n    modifier: Modifier = Modifier,\n    state: LazyListState = rememberLazyListState(),\n    contentPadding: PaddingValues = PaddingValues(0.dp),\n    reverseLayout: Boolean = false,\n    verticalArrangement: Arrangement.Vertical =\n        if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,\n    horizontalAlignment: Alignment.Horizontal = Alignment.Start,\n    userScrollEnabled: Boolean = true,\n    content: LazyListScope.() -> Unit,\n) {\n    VerticalFastScroller(\n        listState = state,\n        modifier = modifier,\n        topContentPadding = contentPadding.calculateTopPadding(),\n        endContentPadding = contentPadding.calculateEndPadding(LocalLayoutDirection.current),\n    ) {\n        LazyColumn(\n            state = state,\n            contentPadding = contentPadding,\n            reverseLayout = reverseLayout,\n            verticalArrangement = verticalArrangement,\n            horizontalAlignment = horizontalAlignment,\n            userScrollEnabled = userScrollEnabled,\n            content = content,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/LinkIcon.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.IconButton\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalUriHandler\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun LinkIcon(\n    label: String,\n    icon: ImageVector,\n    url: String,\n    modifier: Modifier = Modifier,\n) {\n    val uriHandler = LocalUriHandler.current\n    IconButton(\n        modifier = modifier.padding(4.dp),\n        onClick = { uriHandler.openUri(url) },\n    ) {\n        Icon(\n            imageVector = icon,\n            tint = MaterialTheme.colorScheme.primary,\n            contentDescription = label,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/ListGroupHeader.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.font.FontWeight\nimport tachiyomi.presentation.core.components.material.padding\n\n@Composable\nfun ListGroupHeader(\n    text: String,\n    modifier: Modifier = Modifier,\n) {\n    Text(\n        text = text,\n        modifier = modifier\n            .padding(\n                horizontal = MaterialTheme.padding.medium,\n                vertical = MaterialTheme.padding.small,\n            ),\n        color = MaterialTheme.colorScheme.onSurfaceVariant,\n        fontWeight = FontWeight.SemiBold,\n        style = MaterialTheme.typography.bodyMedium,\n    )\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/Pill.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.LocalTextStyle\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.unit.TextUnit\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun Pill(\n    text: String,\n    modifier: Modifier = Modifier,\n    color: Color = MaterialTheme.colorScheme.surfaceContainerHigh,\n    contentColor: Color = MaterialTheme.colorScheme.onSurface,\n    style: TextStyle = LocalTextStyle.current,\n) {\n    Surface(\n        modifier = modifier\n            .padding(start = 4.dp),\n        shape = MaterialTheme.shapes.extraLarge,\n        color = color,\n        contentColor = contentColor,\n    ) {\n        Box(\n            modifier = Modifier\n                .padding(6.dp, 1.dp),\n            contentAlignment = Alignment.Center,\n        ) {\n            Text(\n                text = text,\n                maxLines = 1,\n                style = style,\n            )\n        }\n    }\n}\n\n@Composable\nfun Pill(\n    text: String,\n    modifier: Modifier = Modifier,\n    color: Color = MaterialTheme.colorScheme.surfaceContainerHigh,\n    contentColor: Color = MaterialTheme.colorScheme.onSurface,\n    fontSize: TextUnit = LocalTextStyle.current.fontSize,\n) {\n    Pill(\n        text = text,\n        modifier = modifier,\n        color = color,\n        contentColor = contentColor,\n        style = LocalTextStyle.current.merge(fontSize = fontSize),\n    )\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/SectionCard.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyItemScope\nimport androidx.compose.material3.ElevatedCard\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun LazyItemScope.SectionCard(\n    titleRes: StringResource? = null,\n    content: @Composable ColumnScope.() -> Unit,\n) {\n    if (titleRes != null) {\n        Text(\n            modifier = Modifier.padding(horizontal = MaterialTheme.padding.extraLarge),\n            text = stringResource(titleRes),\n            style = MaterialTheme.typography.titleSmall,\n        )\n    }\n\n    ElevatedCard(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(\n                horizontal = MaterialTheme.padding.medium,\n                vertical = MaterialTheme.padding.small,\n            ),\n        shape = MaterialTheme.shapes.extraLarge,\n    ) {\n        Column(modifier = Modifier.padding(MaterialTheme.padding.medium)) {\n            content()\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/SettingsItems.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.clickable\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.FlowRow\nimport androidx.compose.foundation.layout.FlowRowScope\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.foundation.lazy.grid.LazyGridScope\nimport androidx.compose.foundation.lazy.grid.LazyVerticalGrid\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.filled.ArrowDownward\nimport androidx.compose.material.icons.filled.ArrowUpward\nimport androidx.compose.material.icons.rounded.CheckBox\nimport androidx.compose.material.icons.rounded.CheckBoxOutlineBlank\nimport androidx.compose.material.icons.rounded.DisabledByDefault\nimport androidx.compose.material3.Checkbox\nimport androidx.compose.material3.DropdownMenuItem\nimport androidx.compose.material3.ExposedDropdownMenuAnchorType\nimport androidx.compose.material3.ExposedDropdownMenuBox\nimport androidx.compose.material3.ExposedDropdownMenuDefaults\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.RadioButton\nimport androidx.compose.material3.Surface\nimport androidx.compose.material3.Text\nimport androidx.compose.material3.darkColorScheme\nimport androidx.compose.material3.lightColorScheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.dp\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.core.common.preference.Preference\nimport tachiyomi.core.common.preference.TriState\nimport tachiyomi.core.common.preference.toggle\nimport tachiyomi.presentation.core.components.material.DISABLED_ALPHA\nimport tachiyomi.presentation.core.components.material.Slider\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.theme.header\nimport tachiyomi.presentation.core.util.collectAsState\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\nobject SettingsItemsPaddings {\n    val Horizontal = 24.dp\n    val Vertical = 10.dp\n}\n\n@Composable\nfun HeadingItem(labelRes: StringResource) {\n    HeadingItem(stringResource(labelRes))\n}\n\n@Composable\nfun HeadingItem(text: String) {\n    Text(\n        text = text,\n        style = MaterialTheme.typography.header,\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(\n                horizontal = SettingsItemsPaddings.Horizontal,\n                vertical = SettingsItemsPaddings.Vertical,\n            ),\n    )\n}\n\n@Composable\nfun IconItem(label: String, icon: ImageVector, onClick: () -> Unit) {\n    BaseSettingsItem(\n        label = label,\n        widget = {\n            Icon(\n                imageVector = icon,\n                contentDescription = null,\n                tint = MaterialTheme.colorScheme.primary,\n            )\n        },\n        onClick = onClick,\n    )\n}\n\n@Composable\nfun SortItem(label: String, sortDescending: Boolean?, onClick: () -> Unit) {\n    val arrowIcon = when (sortDescending) {\n        true -> Icons.Default.ArrowDownward\n        false -> Icons.Default.ArrowUpward\n        null -> null\n    }\n\n    BaseSortItem(\n        label = label,\n        icon = arrowIcon,\n        onClick = onClick,\n    )\n}\n\n@Composable\nfun BaseSortItem(label: String, icon: ImageVector?, onClick: () -> Unit) {\n    BaseSettingsItem(\n        label = label,\n        widget = {\n            if (icon != null) {\n                Icon(\n                    imageVector = icon,\n                    contentDescription = null,\n                    tint = MaterialTheme.colorScheme.primary,\n                )\n            } else {\n                Spacer(modifier = Modifier.size(24.dp))\n            }\n        },\n        onClick = onClick,\n    )\n}\n\n@Composable\nfun CheckboxItem(label: String, pref: Preference<Boolean>) {\n    val checked by pref.collectAsState()\n    CheckboxItem(\n        label = label,\n        checked = checked,\n        onClick = { pref.toggle() },\n    )\n}\n\n@Composable\nfun CheckboxItem(label: String, checked: Boolean, onClick: () -> Unit) {\n    BaseSettingsItem(\n        label = label,\n        widget = {\n            Checkbox(\n                checked = checked,\n                onCheckedChange = null,\n            )\n        },\n        onClick = onClick,\n    )\n}\n\n@Composable\nfun RadioItem(label: String, selected: Boolean, onClick: () -> Unit) {\n    BaseSettingsItem(\n        label = label,\n        widget = {\n            RadioButton(\n                selected = selected,\n                onClick = null,\n            )\n        },\n        onClick = onClick,\n    )\n}\n\n@Composable\nfun SliderItem(\n    value: Int,\n    valueRange: IntProgression,\n    label: String,\n    onChange: (Int) -> Unit,\n    steps: Int = with(valueRange) { (last - first) - 1 },\n    valueString: String = value.toString(),\n    labelStyle: TextStyle = MaterialTheme.typography.bodyMedium,\n    pillColor: Color = MaterialTheme.colorScheme.surfaceContainerHigh,\n) {\n    BaseSliderItem(\n        value = value,\n        valueRange = valueRange,\n        steps = steps,\n        title = label,\n        valueString = valueString,\n        onChange = onChange,\n        titleStyle = labelStyle,\n        pillColor = pillColor,\n        modifier = Modifier.padding(\n            horizontal = SettingsItemsPaddings.Horizontal,\n            vertical = SettingsItemsPaddings.Vertical,\n        ),\n    )\n}\n\n@Composable\nfun BaseSliderItem(\n    value: Int,\n    valueRange: IntProgression,\n    title: String,\n    onChange: (Int) -> Unit,\n    modifier: Modifier = Modifier,\n    subtitle: String? = null,\n    steps: Int = with(valueRange) { (last - first) - 1 },\n    valueString: String = value.toString(),\n    titleStyle: TextStyle = MaterialTheme.typography.titleLarge,\n    subtitleStyle: TextStyle = MaterialTheme.typography.bodySmall,\n    pillColor: Color = MaterialTheme.colorScheme.surfaceContainerHigh,\n) {\n    val haptic = LocalHapticFeedback.current\n    Column(\n        modifier = Modifier\n            .fillMaxWidth()\n            .then(modifier),\n        verticalArrangement = Arrangement.spacedBy(2.dp),\n    ) {\n        Row(\n            verticalAlignment = Alignment.CenterVertically,\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n        ) {\n            Column(modifier = Modifier.weight(1f)) {\n                Text(\n                    text = title,\n                    style = titleStyle,\n                )\n                if (subtitle != null) {\n                    Text(\n                        text = subtitle,\n                        style = subtitleStyle,\n                        modifier = Modifier.secondaryItemAlpha(),\n                    )\n                }\n            }\n            Pill(\n                text = valueString,\n                style = MaterialTheme.typography.bodyMedium,\n                color = pillColor,\n            )\n        }\n        Slider(\n            value = value,\n            onValueChange = f@{\n                if (it == value) return@f\n                onChange(it)\n                haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)\n            },\n            valueRange = valueRange,\n            steps = steps,\n        )\n    }\n}\n\n@Composable\n@PreviewLightDark\nfun SliderItemPreview() {\n    MaterialTheme(if (isSystemInDarkTheme()) darkColorScheme() else lightColorScheme()) {\n        var value by remember { mutableIntStateOf(0) }\n        Surface {\n            BaseSliderItem(\n                value = value,\n                valueRange = 0..10,\n                title = \"Item per row\",\n                valueString = if (value == 0) \"Auto\" else value.toString(),\n                onChange = { value = it },\n                modifier = Modifier.padding(\n                    horizontal = SettingsItemsPaddings.Horizontal,\n                    vertical = SettingsItemsPaddings.Vertical,\n                ),\n            )\n        }\n    }\n}\n\n@Composable\nfun SelectItem(\n    label: String,\n    options: Array<out Any?>,\n    selectedIndex: Int,\n    onSelect: (Int) -> Unit,\n) {\n    var expanded by remember { mutableStateOf(false) }\n\n    ExposedDropdownMenuBox(\n        expanded = expanded,\n        onExpandedChange = { expanded = !expanded },\n    ) {\n        OutlinedTextField(\n            modifier = Modifier\n                .menuAnchor(ExposedDropdownMenuAnchorType.PrimaryNotEditable)\n                .fillMaxWidth()\n                .padding(\n                    horizontal = SettingsItemsPaddings.Horizontal,\n                    vertical = SettingsItemsPaddings.Vertical,\n                ),\n            label = { Text(text = label) },\n            value = options[selectedIndex].toString(),\n            onValueChange = {},\n            readOnly = true,\n            singleLine = true,\n            trailingIcon = {\n                ExposedDropdownMenuDefaults.TrailingIcon(\n                    expanded = expanded,\n                )\n            },\n            colors = ExposedDropdownMenuDefaults.textFieldColors(),\n        )\n\n        ExposedDropdownMenu(\n            modifier = Modifier.exposedDropdownSize(),\n            expanded = expanded,\n            onDismissRequest = { expanded = false },\n        ) {\n            options.forEachIndexed { index, text ->\n                DropdownMenuItem(\n                    text = { Text(text.toString()) },\n                    onClick = {\n                        onSelect(index)\n                        expanded = false\n                    },\n                    contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,\n                )\n            }\n        }\n    }\n}\n\n@Composable\nfun TriStateItem(\n    label: String,\n    state: TriState,\n    enabled: Boolean = true,\n    onClick: ((TriState) -> Unit)?,\n) {\n    Row(\n        modifier = Modifier\n            .clickable(\n                enabled = enabled && onClick != null,\n                onClick = {\n                    when (state) {\n                        TriState.DISABLED -> onClick?.invoke(TriState.ENABLED_IS)\n                        TriState.ENABLED_IS -> onClick?.invoke(TriState.ENABLED_NOT)\n                        TriState.ENABLED_NOT -> onClick?.invoke(TriState.DISABLED)\n                    }\n                },\n            )\n            .fillMaxWidth()\n            .padding(\n                horizontal = SettingsItemsPaddings.Horizontal,\n                vertical = SettingsItemsPaddings.Vertical,\n            ),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.large),\n    ) {\n        val stateAlpha = if (enabled && onClick != null) 1f else DISABLED_ALPHA\n\n        Icon(\n            imageVector = when (state) {\n                TriState.DISABLED -> Icons.Rounded.CheckBoxOutlineBlank\n                TriState.ENABLED_IS -> Icons.Rounded.CheckBox\n                TriState.ENABLED_NOT -> Icons.Rounded.DisabledByDefault\n            },\n            contentDescription = null,\n            tint = if (!enabled || state == TriState.DISABLED) {\n                MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = stateAlpha)\n            } else {\n                when (onClick) {\n                    null -> MaterialTheme.colorScheme.onSurface.copy(alpha = DISABLED_ALPHA)\n                    else -> MaterialTheme.colorScheme.primary\n                }\n            },\n        )\n        Text(\n            text = label,\n            color = MaterialTheme.colorScheme.onSurface.copy(alpha = stateAlpha),\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n\n@Composable\nfun TextItem(label: String, value: String, onChange: (String) -> Unit) {\n    OutlinedTextField(\n        modifier = Modifier\n            .fillMaxWidth()\n            .padding(horizontal = SettingsItemsPaddings.Horizontal, vertical = 4.dp),\n        label = { Text(text = label) },\n        value = value,\n        onValueChange = onChange,\n        singleLine = true,\n    )\n}\n\n@Composable\nfun SettingsChipRow(labelRes: StringResource, content: @Composable FlowRowScope.() -> Unit) {\n    Column {\n        HeadingItem(labelRes)\n        FlowRow(\n            modifier = Modifier.padding(\n                start = SettingsItemsPaddings.Horizontal,\n                top = 0.dp,\n                end = SettingsItemsPaddings.Horizontal,\n                bottom = SettingsItemsPaddings.Vertical,\n            ),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n            content = content,\n        )\n    }\n}\n\n@Composable\nfun SettingsIconGrid(labelRes: StringResource, content: LazyGridScope.() -> Unit) {\n    Column {\n        HeadingItem(labelRes)\n        LazyVerticalGrid(\n            columns = GridCells.Adaptive(128.dp),\n            modifier = Modifier.padding(\n                start = SettingsItemsPaddings.Horizontal,\n                end = SettingsItemsPaddings.Horizontal,\n                bottom = SettingsItemsPaddings.Vertical,\n            ),\n            verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.extraSmall),\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n            content = content,\n        )\n    }\n}\n\n@Composable\nprivate fun BaseSettingsItem(\n    label: String,\n    widget: @Composable RowScope.() -> Unit,\n    onClick: () -> Unit,\n) {\n    Row(\n        modifier = Modifier\n            .clickable(onClick = onClick)\n            .fillMaxWidth()\n            .padding(\n                horizontal = SettingsItemsPaddings.Horizontal,\n                vertical = SettingsItemsPaddings.Vertical,\n            ),\n        verticalAlignment = Alignment.CenterVertically,\n        horizontalArrangement = Arrangement.spacedBy(24.dp),\n    ) {\n        widget(this)\n        Text(\n            text = label,\n            style = MaterialTheme.typography.bodyMedium,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/TwoPanelBox.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.BoxScope\nimport androidx.compose.foundation.layout.BoxWithConstraints\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.asPaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun TwoPanelBox(\n    startContent: @Composable BoxScope.() -> Unit,\n    endContent: @Composable BoxScope.() -> Unit,\n    modifier: Modifier = Modifier,\n    contentWindowInsets: WindowInsets = WindowInsets(0),\n) {\n    val direction = LocalLayoutDirection.current\n    val padding = contentWindowInsets.asPaddingValues()\n    val startPadding = padding.calculateStartPadding(direction)\n    val endPadding = padding.calculateEndPadding(direction)\n    BoxWithConstraints(modifier = modifier.fillMaxSize()) {\n        val width = maxWidth - startPadding - endPadding\n        val firstWidth = (width / 2).coerceAtMost(450.dp)\n        val secondWidth = width - firstWidth\n        Box(\n            modifier = Modifier\n                .align(Alignment.TopStart)\n                .width(firstWidth + startPadding),\n            content = startContent,\n        )\n        Box(\n            modifier = Modifier\n                .align(Alignment.TopEnd)\n                .width(secondWidth + endPadding),\n            content = endContent,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport android.view.ViewConfiguration\nimport androidx.compose.animation.core.Animatable\nimport androidx.compose.animation.core.tween\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.gestures.Orientation\nimport androidx.compose.foundation.gestures.draggable\nimport androidx.compose.foundation.gestures.rememberDraggableState\nimport androidx.compose.foundation.interaction.MutableInteractionSource\nimport androidx.compose.foundation.interaction.collectIsDraggedAsState\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.offset\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.lazy.LazyListItemInfo\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.grid.GridCells\nimport androidx.compose.foundation.lazy.grid.LazyGridState\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.foundation.systemGestureExclusion\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableFloatStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.layout.SubcomposeLayout\nimport androidx.compose.ui.platform.LocalDensity\nimport androidx.compose.ui.unit.Constraints\nimport androidx.compose.ui.unit.Density\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.IntOffset\nimport androidx.compose.ui.unit.LayoutDirection\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastFirstOrNull\nimport androidx.compose.ui.util.fastForEach\nimport androidx.compose.ui.util.fastLastOrNull\nimport androidx.compose.ui.util.fastMaxBy\nimport kotlinx.coroutines.channels.BufferOverflow\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.MutableSharedFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.sample\nimport tachiyomi.presentation.core.components.Scroller.STICKY_HEADER_KEY_PREFIX\nimport kotlin.math.abs\nimport kotlin.math.max\nimport kotlin.math.min\nimport kotlin.math.roundToInt\n\n/**\n * Draws vertical fast scroller to a lazy list\n *\n * Set key with [STICKY_HEADER_KEY_PREFIX] prefix to any sticky header item in the list.\n */\n@Composable\nfun VerticalFastScroller(\n    listState: LazyListState,\n    modifier: Modifier = Modifier,\n    thumbAllowed: () -> Boolean = { true },\n    thumbColor: Color = MaterialTheme.colorScheme.primary,\n    topContentPadding: Dp = Dp.Hairline,\n    bottomContentPadding: Dp = Dp.Hairline,\n    endContentPadding: Dp = Dp.Hairline,\n    content: @Composable () -> Unit,\n) {\n    SubcomposeLayout(modifier = modifier) { constraints ->\n        val contentPlaceable = subcompose(\"content\", content).map { it.measure(constraints) }\n        val contentHeight = contentPlaceable.fastMaxBy { it.height }?.height ?: 0\n        val contentWidth = contentPlaceable.fastMaxBy { it.width }?.width ?: 0\n\n        val scrollerConstraints = constraints.copy(minWidth = 0, minHeight = 0)\n        val scrollerPlaceable = subcompose(\"scroller\") {\n            val layoutInfo = listState.layoutInfo\n            if (layoutInfo.visibleItemsInfo.isEmpty() || layoutInfo.totalItemsCount == 0) return@subcompose\n\n            val thumbTopPadding = with(LocalDensity.current) { topContentPadding.toPx() }\n            var thumbOffsetY by remember(thumbTopPadding) { mutableFloatStateOf(thumbTopPadding) }\n\n            val dragInteractionSource = remember { MutableInteractionSource() }\n            val isThumbDragged by dragInteractionSource.collectIsDraggedAsState()\n            val scrolled = remember {\n                MutableSharedFlow<Unit>(\n                    extraBufferCapacity = 1,\n                    onBufferOverflow = BufferOverflow.DROP_OLDEST,\n                )\n            }\n\n            // listState.isScrollInProgress occasionally flickers\n            val scrollStateTracker = remember { MutableData(listState.isScrollInProgress) }\n            val stableScrollInProgress = scrollStateTracker.value || listState.isScrollInProgress\n            scrollStateTracker.value = listState.isScrollInProgress\n            val anyScrollInProgress = stableScrollInProgress || isThumbDragged\n\n            val thumbBottomPadding = with(LocalDensity.current) { bottomContentPadding.toPx() }\n            val heightPx = contentHeight.toFloat() -\n                thumbTopPadding -\n                thumbBottomPadding -\n                listState.layoutInfo.afterContentPadding\n            val thumbHeightPx = with(LocalDensity.current) { ThumbLength.toPx() }\n            val trackHeightPx = heightPx - thumbHeightPx\n            val scrollHeightPx = contentHeight.toFloat() -\n                listState.layoutInfo.beforeContentPadding -\n                listState.layoutInfo.afterContentPadding -\n                thumbBottomPadding\n\n            val visibleItems = layoutInfo.visibleItemsInfo\n            val topItem = visibleItems.fastFirstOrNull {\n                it.bottom >= 0 &&\n                    (it.key as? String)?.startsWith(STICKY_HEADER_KEY_PREFIX)?.not() ?: true\n            } ?: visibleItems.first()\n            val bottomItem = visibleItems.fastLastOrNull {\n                it.top <= scrollHeightPx &&\n                    (it.key as? String)?.startsWith(STICKY_HEADER_KEY_PREFIX)?.not() ?: true\n            } ?: visibleItems.last()\n\n            val topHiddenProportion = -1f * topItem.top / topItem.size.coerceAtLeast(1)\n            val bottomHiddenProportion = (bottomItem.bottom - scrollHeightPx) / bottomItem.size.coerceAtLeast(1)\n            val previousSections = topHiddenProportion + topItem.index\n            val remainingSections = bottomHiddenProportion + (layoutInfo.totalItemsCount - (bottomItem.index + 1))\n            val scrollableSections = previousSections + remainingSections\n\n            val layoutChangeTracker = remember { MutableData(scrollableSections) }\n            val layoutChanged = !anyScrollInProgress && abs(layoutChangeTracker.value - scrollableSections) > 0.1\n            layoutChangeTracker.value = scrollableSections\n\n            val estimateConfidence = remember { MutableData(remainingSections) }\n            if (layoutChanged) estimateConfidence.value = remainingSections\n            val maxRemainingSections = remember(estimateConfidence.value) { scrollableSections }\n            estimateConfidence.value = max(estimateConfidence.value, remainingSections)\n\n            if (maxRemainingSections < 0.5) return@subcompose\n\n            // When thumb dragged\n            LaunchedEffect(thumbOffsetY) {\n                if (layoutInfo.totalItemsCount == 0 || !isThumbDragged) return@LaunchedEffect\n                val thumbProportion = (thumbOffsetY - thumbTopPadding) / trackHeightPx\n                if (thumbProportion <= 0.001f) {\n                    estimateConfidence.value = -1f\n                    listState.scrollToItem(index = 0, scrollOffset = 0)\n                    scrolled.tryEmit(Unit)\n                    return@LaunchedEffect\n                }\n                val scrollRemainingSections = (1f - thumbProportion) * maxRemainingSections\n                val currentSection = layoutInfo.totalItemsCount - scrollRemainingSections\n                val scrollSectionIndex = currentSection.toInt().coerceAtMost(layoutInfo.totalItemsCount)\n                val expectedScrollItem = visibleItems.find { it.index == scrollSectionIndex } ?: visibleItems.first()\n                val scrollRelativeOffset = expectedScrollItem.size * (currentSection - scrollSectionIndex)\n                val scrollSectionOffset = (scrollRelativeOffset - scrollHeightPx).roundToInt()\n                val scrollItemIndex = scrollSectionIndex.coerceIn(0, layoutInfo.totalItemsCount - 1)\n                val scrollItemOffset = scrollSectionOffset + (scrollSectionIndex - scrollItemIndex) * bottomItem.size\n                listState.scrollToItem(index = scrollItemIndex, scrollOffset = scrollItemOffset)\n                scrolled.tryEmit(Unit)\n            }\n\n            // When list scrolled\n            if (layoutInfo.totalItemsCount != 0 && !isThumbDragged) {\n                val proportion = 1f - remainingSections / maxRemainingSections\n                thumbOffsetY = trackHeightPx * proportion + thumbTopPadding\n                if (stableScrollInProgress) scrolled.tryEmit(Unit)\n            }\n\n            // Thumb alpha\n            val alpha = remember { Animatable(0f) }\n            val isThumbVisible = alpha.value > 0f\n            LaunchedEffect(scrolled, alpha) {\n                scrolled\n                    .sample(100)\n                    .collectLatest {\n                        if (thumbAllowed()) {\n                            alpha.snapTo(1f)\n                            delay(ScrollBarVisibilityDurationMillis)\n                            alpha.animateTo(0f, animationSpec = ImmediateFadeOutAnimationSpec)\n                        } else {\n                            alpha.animateTo(0f, animationSpec = ImmediateFadeOutAnimationSpec)\n                        }\n                    }\n            }\n\n            Box(\n                modifier = Modifier\n                    .offset { IntOffset(0, thumbOffsetY.roundToInt()) }\n                    .then(\n                        // Recompose opts\n                        if (isThumbVisible && !listState.isScrollInProgress) {\n                            Modifier.draggable(\n                                interactionSource = dragInteractionSource,\n                                orientation = Orientation.Vertical,\n                                state = rememberDraggableState { delta ->\n                                    val newOffsetY = thumbOffsetY + delta\n                                    thumbOffsetY = newOffsetY.coerceIn(\n                                        thumbTopPadding,\n                                        thumbTopPadding + trackHeightPx,\n                                    )\n                                },\n                            )\n                        } else {\n                            Modifier\n                        },\n                    )\n                    .then(\n                        // Exclude thumb from gesture area only when needed\n                        if (isThumbVisible && !isThumbDragged && !listState.isScrollInProgress) {\n                            Modifier.systemGestureExclusion()\n                        } else {\n                            Modifier\n                        },\n                    )\n                    .height(ThumbLength)\n                    .padding(horizontal = 8.dp)\n                    .padding(end = endContentPadding)\n                    .width(ThumbThickness)\n                    .alpha(alpha.value)\n                    .background(color = thumbColor, shape = ThumbShape),\n            )\n        }.map { it.measure(scrollerConstraints) }\n        val scrollerWidth = scrollerPlaceable.fastMaxBy { it.width }?.width ?: 0\n\n        layout(contentWidth, contentHeight) {\n            contentPlaceable.fastForEach {\n                it.place(0, 0)\n            }\n            scrollerPlaceable.fastForEach {\n                it.placeRelative(contentWidth - scrollerWidth, 0)\n            }\n        }\n    }\n}\n\n@Composable\nprivate fun rememberColumnWidthSums(\n    columns: GridCells,\n    horizontalArrangement: Arrangement.Horizontal,\n    contentPadding: PaddingValues,\n) = remember<Density.(Constraints) -> List<Int>>(\n    columns,\n    horizontalArrangement,\n    contentPadding,\n) {\n    { constraints ->\n        require(constraints.maxWidth != Constraints.Infinity) {\n            \"LazyVerticalGrid's width should be bound by parent\"\n        }\n        val horizontalPadding = contentPadding.calculateStartPadding(LayoutDirection.Ltr) +\n            contentPadding.calculateEndPadding(LayoutDirection.Ltr)\n        val gridWidth = constraints.maxWidth - horizontalPadding.roundToPx()\n        with(columns) {\n            calculateCrossAxisCellSizes(\n                gridWidth,\n                horizontalArrangement.spacing.roundToPx(),\n            ).toMutableList().apply {\n                for (i in 1..<size) {\n                    this[i] += this[i - 1]\n                }\n            }\n        }\n    }\n}\n\n/*\n    VerticalGridFastScroller was written with a regularity assumption, so it is slightly inaccurate for layouts with\n    varying row sizes.\n */\n// TODO: Ideally rewrite VerticalGridFastScroller to use similar logic as VerticalFastScroller\n@Composable\nfun VerticalGridFastScroller(\n    state: LazyGridState,\n    columns: GridCells,\n    arrangement: Arrangement.Horizontal,\n    contentPadding: PaddingValues,\n    modifier: Modifier = Modifier,\n    thumbAllowed: () -> Boolean = { true },\n    thumbColor: Color = MaterialTheme.colorScheme.primary,\n    topContentPadding: Dp = Dp.Hairline,\n    bottomContentPadding: Dp = Dp.Hairline,\n    endContentPadding: Dp = Dp.Hairline,\n    content: @Composable () -> Unit,\n) {\n    val slotSizesSums = rememberColumnWidthSums(\n        columns = columns,\n        horizontalArrangement = arrangement,\n        contentPadding = contentPadding,\n    )\n\n    SubcomposeLayout(modifier = modifier) { constraints ->\n        val contentPlaceable = subcompose(\"content\", content).map { it.measure(constraints) }\n        val contentHeight = contentPlaceable.fastMaxBy { it.height }?.height ?: 0\n        val contentWidth = contentPlaceable.fastMaxBy { it.width }?.width ?: 0\n\n        val scrollerConstraints = constraints.copy(minWidth = 0, minHeight = 0)\n        val scrollerPlaceable = subcompose(\"scroller\") {\n            val layoutInfo = state.layoutInfo\n            val showScroller = remember(columns, layoutInfo.totalItemsCount) {\n                layoutInfo.visibleItemsInfo.size < layoutInfo.totalItemsCount\n            }\n            if (!showScroller) return@subcompose\n            val thumbTopPadding = with(LocalDensity.current) { topContentPadding.toPx() }\n            var thumbOffsetY by remember(thumbTopPadding) { mutableFloatStateOf(thumbTopPadding) }\n\n            val dragInteractionSource = remember { MutableInteractionSource() }\n            val isThumbDragged by dragInteractionSource.collectIsDraggedAsState()\n            val scrolled = remember {\n                MutableSharedFlow<Unit>(\n                    extraBufferCapacity = 1,\n                    onBufferOverflow = BufferOverflow.DROP_OLDEST,\n                )\n            }\n\n            val thumbBottomPadding = with(LocalDensity.current) { bottomContentPadding.toPx() }\n            val heightPx = contentHeight.toFloat() -\n                thumbTopPadding -\n                thumbBottomPadding -\n                state.layoutInfo.afterContentPadding\n            val thumbHeightPx = with(LocalDensity.current) { ThumbLength.toPx() }\n            val trackHeightPx = heightPx - thumbHeightPx\n\n            val columnCount = remember(columns) { slotSizesSums(constraints).size.coerceAtLeast(1) }\n            val scrollRange = remember(columns) { computeGridScrollRange(state = state, columnCount = columnCount) }\n\n            // When thumb dragged\n            LaunchedEffect(thumbOffsetY) {\n                if (layoutInfo.totalItemsCount == 0 || !isThumbDragged) return@LaunchedEffect\n                val visibleItems = state.layoutInfo.visibleItemsInfo\n                val startChild = visibleItems.first()\n                val endChild = visibleItems.last()\n                val laidOutArea = (endChild.offset.y + endChild.size.height) - startChild.offset.y\n                val laidOutRows = 1 + abs(endChild.index - startChild.index) / columnCount\n                val avgSizePerRow = laidOutArea.toFloat() / laidOutRows\n\n                val scrollRatio = (thumbOffsetY - thumbTopPadding) / trackHeightPx\n                val scrollAmt = scrollRatio * (scrollRange.toFloat() - heightPx).coerceAtLeast(1f)\n                val rowNumber = (scrollAmt / avgSizePerRow).toInt()\n                val rowOffset = scrollAmt - rowNumber * avgSizePerRow\n\n                state.scrollToItem(index = columnCount * rowNumber, scrollOffset = rowOffset.roundToInt())\n                scrolled.tryEmit(Unit)\n            }\n\n            // When list scrolled\n            LaunchedEffect(state.firstVisibleItemScrollOffset) {\n                if (state.layoutInfo.totalItemsCount == 0 || isThumbDragged) return@LaunchedEffect\n                val scrollOffset = computeGridScrollOffset(state = state, columnCount = columnCount)\n                /*\n                    LazyGridItemInfo doesn't always give the accurate height of the object, so we clamp the proportion\n                    at 1 to ensure that there are no issues due to this -- ideally we would correctly compute the value\n                 */\n                val extraScrollRange = (scrollRange.toFloat() - heightPx).coerceAtLeast(1f)\n                val proportion = (scrollOffset.toFloat() / extraScrollRange).coerceAtMost(1f)\n                thumbOffsetY = trackHeightPx * proportion + thumbTopPadding\n                scrolled.tryEmit(Unit)\n            }\n\n            // Thumb alpha\n            val alpha = remember { Animatable(0f) }\n            val isThumbVisible = alpha.value > 0f\n            LaunchedEffect(scrolled, alpha) {\n                scrolled\n                    .sample(100)\n                    .collectLatest {\n                        if (thumbAllowed()) {\n                            alpha.snapTo(1f)\n                            delay(ScrollBarVisibilityDurationMillis)\n                            alpha.animateTo(0f, animationSpec = ImmediateFadeOutAnimationSpec)\n                        } else {\n                            alpha.animateTo(0f, animationSpec = ImmediateFadeOutAnimationSpec)\n                        }\n                    }\n            }\n\n            Box(\n                modifier = Modifier\n                    .offset { IntOffset(0, thumbOffsetY.roundToInt()) }\n                    .then(\n                        // Recompose opts\n                        if (isThumbVisible && !state.isScrollInProgress) {\n                            Modifier.draggable(\n                                interactionSource = dragInteractionSource,\n                                orientation = Orientation.Vertical,\n                                state = rememberDraggableState { delta ->\n                                    val newOffsetY = thumbOffsetY + delta\n                                    thumbOffsetY = newOffsetY.coerceIn(\n                                        thumbTopPadding,\n                                        thumbTopPadding + trackHeightPx,\n                                    )\n                                },\n                            )\n                        } else {\n                            Modifier\n                        },\n                    )\n                    .then(\n                        // Exclude thumb from gesture area only when needed\n                        if (isThumbVisible && !isThumbDragged && !state.isScrollInProgress) {\n                            Modifier.systemGestureExclusion()\n                        } else {\n                            Modifier\n                        },\n                    )\n                    .height(ThumbLength)\n                    .padding(end = endContentPadding)\n                    .width(ThumbThickness)\n                    .alpha(alpha.value)\n                    .background(color = thumbColor, shape = ThumbShape),\n            )\n        }.map { it.measure(scrollerConstraints) }\n        val scrollerWidth = scrollerPlaceable.fastMaxBy { it.width }?.width ?: 0\n\n        layout(contentWidth, contentHeight) {\n            contentPlaceable.fastForEach {\n                it.place(0, 0)\n            }\n            scrollerPlaceable.fastForEach {\n                it.placeRelative(contentWidth - scrollerWidth, 0)\n            }\n        }\n    }\n}\n\n// TODO: not sure why abs corrections are in the following functions; these can probably be removed\n\nprivate fun computeGridScrollOffset(state: LazyGridState, columnCount: Int): Int {\n    if (state.layoutInfo.totalItemsCount == 0) return 0\n    val visibleItems = state.layoutInfo.visibleItemsInfo\n    val startChild = visibleItems.first()\n    val endChild = visibleItems.last()\n    val laidOutArea = (endChild.offset.y + endChild.size.height) - startChild.offset.y\n    val laidOutRows = 1 + abs(endChild.index - startChild.index) / columnCount\n    val avgSizePerRow = laidOutArea.toFloat() / laidOutRows\n\n    val rowsBefore = min(startChild.index, endChild.index).coerceAtLeast(0) / columnCount\n    return (rowsBefore * avgSizePerRow - startChild.offset.y).roundToInt()\n}\n\nprivate fun computeGridScrollRange(state: LazyGridState, columnCount: Int): Int {\n    if (state.layoutInfo.totalItemsCount == 0) return 0\n    val visibleItems = state.layoutInfo.visibleItemsInfo\n    val startChild = visibleItems.first()\n    val endChild = visibleItems.last()\n    val laidOutArea = (endChild.offset.y + endChild.size.height) - startChild.offset.y\n    val laidOutRows = 1 + abs(endChild.index - startChild.index) / columnCount\n    val avgSizePerRow = laidOutArea.toFloat() / laidOutRows\n\n    val totalRows = 1 + (state.layoutInfo.totalItemsCount - 1) / columnCount\n    val endSpacing = avgSizePerRow - endChild.size.height\n    return (endSpacing + (laidOutArea.toFloat() / laidOutRows) * totalRows).roundToInt()\n}\n\nprivate class MutableData<T>(var value: T)\n\nobject Scroller {\n    const val STICKY_HEADER_KEY_PREFIX = \"sticky:\"\n}\n\nprivate val ThumbLength = 48.dp\nprivate val ThumbThickness = 12.dp\nprivate val ThumbShape = RoundedCornerShape(ThumbThickness / 2)\nprivate val ScrollBarVisibilityDurationMillis = 2000L\nprivate val ImmediateFadeOutAnimationSpec = tween<Float>(\n    durationMillis = ViewConfiguration.getScrollBarFadeDuration(),\n)\n\nprivate val LazyListItemInfo.top: Int\n    get() = offset\n\nprivate val LazyListItemInfo.bottom: Int\n    get() = offset + size\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/WheelPicker.kt",
    "content": "package tachiyomi.presentation.core.components\n\nimport androidx.compose.foundation.BorderStroke\nimport androidx.compose.foundation.gestures.snapping.rememberSnapFlingBehavior\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.width\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyItemScope\nimport androidx.compose.foundation.lazy.LazyListItemInfo\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.itemsIndexed\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.foundation.shape.RoundedCornerShape\nimport androidx.compose.foundation.text.BasicTextField\nimport androidx.compose.foundation.text.KeyboardOptions\nimport androidx.compose.foundation.text.input.TextFieldLineLimits\nimport androidx.compose.foundation.text.input.TextFieldState\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableIntStateOf\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.runtime.snapshotFlow\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.hapticfeedback.HapticFeedbackType\nimport androidx.compose.ui.platform.LocalHapticFeedback\nimport androidx.compose.ui.text.TextRange\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.input.ImeAction\nimport androidx.compose.ui.text.input.KeyboardType\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.DpSize\nimport androidx.compose.ui.unit.dp\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.map\nimport kotlinx.coroutines.launch\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.util.clearFocusOnSoftKeyboardHide\nimport tachiyomi.presentation.core.util.clickableNoIndication\nimport tachiyomi.presentation.core.util.showSoftKeyboard\nimport kotlin.math.absoluteValue\n\n@Composable\nfun WheelNumberPicker(\n    items: ImmutableList<Number>,\n    modifier: Modifier = Modifier,\n    startIndex: Int = 0,\n    size: DpSize = DpSize(128.dp, 128.dp),\n    onSelectionChanged: (index: Int) -> Unit = {},\n    backgroundContent: (@Composable (size: DpSize) -> Unit)? = {\n        WheelPickerDefaults.Background(size = it)\n    },\n) {\n    WheelPicker(\n        modifier = modifier,\n        startIndex = startIndex,\n        items = items,\n        size = size,\n        onSelectionChanged = onSelectionChanged,\n        manualInputType = KeyboardType.Number,\n        backgroundContent = backgroundContent,\n    ) {\n        WheelPickerDefaults.Item(text = \"$it\")\n    }\n}\n\n@Composable\nfun WheelTextPicker(\n    items: ImmutableList<String>,\n    modifier: Modifier = Modifier,\n    startIndex: Int = 0,\n    size: DpSize = DpSize(128.dp, 128.dp),\n    onSelectionChanged: (index: Int) -> Unit = {},\n    backgroundContent: (@Composable (size: DpSize) -> Unit)? = {\n        WheelPickerDefaults.Background(size = it)\n    },\n) {\n    WheelPicker(\n        modifier = modifier,\n        startIndex = startIndex,\n        items = items,\n        size = size,\n        onSelectionChanged = onSelectionChanged,\n        backgroundContent = backgroundContent,\n    ) {\n        WheelPickerDefaults.Item(text = it)\n    }\n}\n\n@Composable\nprivate fun <T> WheelPicker(\n    items: ImmutableList<T>,\n    modifier: Modifier = Modifier,\n    startIndex: Int = 0,\n    size: DpSize = DpSize(128.dp, 128.dp),\n    onSelectionChanged: (index: Int) -> Unit = {},\n    manualInputType: KeyboardType? = null,\n    backgroundContent: (@Composable (size: DpSize) -> Unit)? = {\n        WheelPickerDefaults.Background(size = it)\n    },\n    itemContent: @Composable LazyItemScope.(item: T) -> Unit,\n) {\n    val haptic = LocalHapticFeedback.current\n    val lazyListState = rememberLazyListState(startIndex)\n\n    var internalIndex by remember { mutableIntStateOf(startIndex) }\n    val internalOnSelectionChanged: (Int) -> Unit = {\n        internalIndex = it\n        onSelectionChanged(it)\n    }\n\n    LaunchedEffect(lazyListState, onSelectionChanged) {\n        snapshotFlow { lazyListState.firstVisibleItemScrollOffset }\n            .map { calculateSnappedItemIndex(lazyListState) }\n            .distinctUntilChanged()\n            .collectLatest {\n                haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove)\n                internalOnSelectionChanged(it)\n            }\n    }\n\n    Box(\n        modifier = modifier\n            .height(size.height)\n            .width(size.width),\n        contentAlignment = Alignment.Center,\n    ) {\n        backgroundContent?.invoke(size)\n\n        var showManualInput by remember { mutableStateOf(false) }\n        if (showManualInput) {\n            val value = rememberSaveable(saver = TextFieldState.Saver) {\n                val currentString = items[internalIndex].toString()\n                TextFieldState(initialText = currentString, initialSelection = TextRange(currentString.length))\n            }\n\n            val scope = rememberCoroutineScope()\n            val processManualInput: () -> Unit = {\n                scope.launch {\n                    items\n                        .indexOfFirst { it.toString() == value.text }\n                        .takeIf { it >= 0 }\n                        ?.apply {\n                            internalOnSelectionChanged(this)\n                            lazyListState.scrollToItem(this)\n                        }\n                    showManualInput = false\n                }\n            }\n\n            BasicTextField(\n                modifier = Modifier\n                    .align(Alignment.Center)\n                    .showSoftKeyboard(true)\n                    .clearFocusOnSoftKeyboardHide(processManualInput),\n                onKeyboardAction = { processManualInput() },\n                state = value,\n                lineLimits = TextFieldLineLimits.SingleLine,\n                keyboardOptions = KeyboardOptions(\n                    keyboardType = manualInputType!!,\n                    imeAction = ImeAction.Done,\n                ),\n                textStyle = MaterialTheme.typography.titleMedium +\n                    TextStyle(\n                        color = MaterialTheme.colorScheme.onSurface,\n                        textAlign = TextAlign.Center,\n                    ),\n                cursorBrush = SolidColor(MaterialTheme.colorScheme.primary),\n            )\n        } else {\n            LazyColumn(\n                modifier = Modifier\n                    .let {\n                        if (manualInputType != null) {\n                            it.clickableNoIndication { showManualInput = true }\n                        } else {\n                            it\n                        }\n                    },\n                state = lazyListState,\n                contentPadding = PaddingValues(vertical = size.height / ROW_COUNT * ((ROW_COUNT - 1) / 2)),\n                flingBehavior = rememberSnapFlingBehavior(lazyListState = lazyListState),\n            ) {\n                itemsIndexed(items) { index, item ->\n                    Box(\n                        modifier = Modifier\n                            .height(size.height / ROW_COUNT)\n                            .width(size.width)\n                            .alpha(\n                                calculateAnimatedAlpha(\n                                    lazyListState = lazyListState,\n                                    index = index,\n                                ),\n                            ),\n                        contentAlignment = Alignment.Center,\n                    ) {\n                        itemContent(item)\n                    }\n                }\n            }\n        }\n    }\n}\n\nprivate fun LazyListState.snapOffsetForItem(itemInfo: LazyListItemInfo): Int {\n    val startScrollOffset = 0\n    val endScrollOffset = layoutInfo.let { it.viewportEndOffset - it.afterContentPadding }\n    return startScrollOffset + (endScrollOffset - startScrollOffset - itemInfo.size) / 2\n}\n\nprivate fun LazyListState.distanceToSnapForIndex(index: Int): Int {\n    val itemInfo = layoutInfo.visibleItemsInfo.firstOrNull { it.index == index }\n    if (itemInfo != null) {\n        return itemInfo.offset - snapOffsetForItem(itemInfo)\n    }\n    return 0\n}\n\nprivate fun calculateAnimatedAlpha(\n    lazyListState: LazyListState,\n    index: Int,\n): Float {\n    val distanceToIndexSnap = lazyListState.distanceToSnapForIndex(index).absoluteValue\n    val viewPortHeight = lazyListState.layoutInfo.viewportSize.height.toFloat()\n    val singleViewPortHeight = viewPortHeight / ROW_COUNT\n    return if (distanceToIndexSnap in 0..singleViewPortHeight.toInt()) {\n        1.2f - (distanceToIndexSnap / singleViewPortHeight)\n    } else {\n        0.2f\n    }\n}\n\nprivate fun calculateSnappedItemIndex(lazyListState: LazyListState): Int {\n    return lazyListState.layoutInfo.visibleItemsInfo\n        .maxBy { calculateAnimatedAlpha(lazyListState, it.index) }\n        .index\n}\n\nobject WheelPickerDefaults {\n    @Composable\n    fun Background(size: DpSize) {\n        androidx.compose.material3.Surface(\n            modifier = Modifier\n                .size(size.width, size.height / ROW_COUNT),\n            shape = RoundedCornerShape(MaterialTheme.padding.medium),\n            color = MaterialTheme.colorScheme.primary.copy(alpha = 0.2f),\n            border = BorderStroke(1.dp, MaterialTheme.colorScheme.primary),\n            content = {},\n        )\n    }\n\n    @Composable\n    fun Item(text: String) {\n        Text(\n            text = text,\n            style = MaterialTheme.typography.titleMedium,\n            maxLines = 1,\n        )\n    }\n}\n\nprivate const val ROW_COUNT = 3\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/AlertDialog.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.sizeIn\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProvideTextStyle\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun AlertDialogContent(\n    buttons: @Composable () -> Unit,\n    modifier: Modifier = Modifier,\n    icon: (@Composable () -> Unit)? = null,\n    title: (@Composable () -> Unit)? = null,\n    text: @Composable () -> Unit,\n) {\n    AlertDialogContent(\n        modifier = modifier,\n        icon = icon,\n        title = title,\n        content = {\n            Column {\n                CompositionLocalProvider(\n                    LocalContentColor provides MaterialTheme.colorScheme.onSurfaceVariant,\n                ) {\n                    val textStyle = MaterialTheme.typography.bodyMedium\n                    ProvideTextStyle(textStyle) {\n                        Box(\n                            Modifier\n                                .weight(weight = 1f, fill = false)\n                                .padding(horizontal = DialogPadding)\n                                .padding(TextPadding)\n                                .align(Alignment.Start),\n                        ) {\n                            text()\n                        }\n                    }\n                }\n\n                Box(\n                    modifier = Modifier\n                        .padding(\n                            start = DialogPadding,\n                            end = DialogPadding,\n                            bottom = DialogPadding,\n                        )\n                        .align(Alignment.End),\n                ) {\n                    CompositionLocalProvider(\n                        LocalContentColor provides MaterialTheme.colorScheme.primary,\n                    ) {\n                        val textStyle = MaterialTheme.typography.labelLarge\n                        ProvideTextStyle(value = textStyle, content = buttons)\n                    }\n                }\n            }\n        },\n    )\n}\n\n@Composable\nfun AlertDialogContent(\n    modifier: Modifier = Modifier,\n    icon: (@Composable () -> Unit)? = null,\n    title: (@Composable () -> Unit)? = null,\n    content: @Composable (ColumnScope.() -> Unit)? = null,\n) {\n    Column(\n        modifier = modifier\n            .sizeIn(minWidth = MinWidth, maxWidth = MaxWidth),\n    ) {\n        if (icon != null || title != null) {\n            Column(\n                modifier = Modifier\n                    .padding(\n                        start = DialogPadding,\n                        top = DialogPadding,\n                        end = DialogPadding,\n                    )\n                    .fillMaxWidth(),\n            ) {\n                icon?.let {\n                    CompositionLocalProvider(\n                        LocalContentColor provides MaterialTheme.colorScheme.secondary,\n                    ) {\n                        Box(\n                            Modifier\n                                .padding(IconPadding)\n                                .align(Alignment.CenterHorizontally),\n                        ) {\n                            icon()\n                        }\n                    }\n                }\n                title?.let {\n                    CompositionLocalProvider(\n                        LocalContentColor provides MaterialTheme.colorScheme.onSurface,\n                    ) {\n                        val textStyle = MaterialTheme.typography.headlineSmall\n                        ProvideTextStyle(textStyle) {\n                            Box(\n                                // Align the title to the center when an icon is present.\n                                Modifier\n                                    .padding(TitlePadding)\n                                    .align(\n                                        if (icon == null) {\n                                            Alignment.Start\n                                        } else {\n                                            Alignment.CenterHorizontally\n                                        },\n                                    ),\n                            ) {\n                                title()\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        content?.invoke(this)\n    }\n}\n\n// Paddings for each of the dialog's parts.\nprivate val DialogPadding = 24.dp\nprivate val IconPadding = PaddingValues(bottom = 16.dp)\nprivate val TitlePadding = PaddingValues(bottom = 16.dp)\nprivate val TextPadding = PaddingValues(bottom = 24.dp)\n\nprivate val MinWidth = 280.dp\nprivate val MaxWidth = 560.dp\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Button.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.animation.core.Animatable\nimport androidx.compose.animation.core.VectorConverter\nimport androidx.compose.foundation.BorderStroke\nimport androidx.compose.foundation.interaction.FocusInteraction\nimport androidx.compose.foundation.interaction.HoverInteraction\nimport androidx.compose.foundation.interaction.Interaction\nimport androidx.compose.foundation.interaction.InteractionSource\nimport androidx.compose.foundation.interaction.MutableInteractionSource\nimport androidx.compose.foundation.interaction.PressInteraction\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.defaultMinSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.ColorScheme\nimport androidx.compose.material3.ElevatedButton\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ProvideTextStyle\nimport androidx.compose.material3.TextButton\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.Stable\nimport androidx.compose.runtime.State\nimport androidx.compose.runtime.mutableStateListOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberUpdatedState\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.geometry.Offset\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.Shape\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport tachiyomi.presentation.core.util.animateElevation\nimport androidx.compose.material3.ButtonDefaults as M3ButtonDefaults\n\n/**\n * TextButton with additional onLongClick functionality.\n *\n * @see androidx.compose.material3.TextButton\n */\n@Composable\nfun TextButton(\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n    onLongClick: (() -> Unit)? = null,\n    enabled: Boolean = true,\n    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },\n    elevation: ButtonElevation? = null,\n    shape: Shape = M3ButtonDefaults.textShape,\n    border: BorderStroke? = null,\n    colors: ButtonColors = ButtonColors(\n        containerColor = Color.Transparent,\n        contentColor = MaterialTheme.colorScheme.primary,\n        disabledContainerColor = Color.Transparent,\n        disabledContentColor = MaterialTheme.colorScheme.onSurface.copy(alpha = DISABLED_ALPHA),\n    ),\n    contentPadding: PaddingValues = M3ButtonDefaults.TextButtonContentPadding,\n    content: @Composable RowScope.() -> Unit,\n) = Button(\n    onClick = onClick,\n    modifier = modifier,\n    onLongClick = onLongClick,\n    enabled = enabled,\n    interactionSource = interactionSource,\n    elevation = elevation,\n    shape = shape,\n    border = border,\n    colors = colors,\n    contentPadding = contentPadding,\n    content = content,\n)\n\n/**\n * Button with additional onLongClick functionality.\n *\n * @see androidx.compose.material3.TextButton\n */\n@Composable\nfun Button(\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n    onLongClick: (() -> Unit)? = null,\n    enabled: Boolean = true,\n    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },\n    elevation: ButtonElevation? = ButtonDefaults.buttonElevation(),\n    shape: Shape = M3ButtonDefaults.textShape,\n    border: BorderStroke? = null,\n    colors: ButtonColors = ButtonDefaults.buttonColors(),\n    contentPadding: PaddingValues = M3ButtonDefaults.ContentPadding,\n    content: @Composable RowScope.() -> Unit,\n) {\n    val containerColor = colors.containerColor(enabled).value\n    val contentColor = colors.contentColor(enabled).value\n    val shadowElevation = elevation?.shadowElevation(enabled, interactionSource)?.value ?: 0.dp\n\n    Surface(\n        onClick = onClick,\n        modifier = modifier,\n        onLongClick = onLongClick,\n        shape = shape,\n        color = containerColor,\n        contentColor = contentColor,\n        shadowElevation = shadowElevation,\n        border = border,\n        interactionSource = interactionSource,\n        enabled = enabled,\n    ) {\n        CompositionLocalProvider(LocalContentColor provides contentColor) {\n            ProvideTextStyle(value = MaterialTheme.typography.labelLarge) {\n                Row(\n                    Modifier.defaultMinSize(\n                        minWidth = M3ButtonDefaults.MinWidth,\n                        minHeight = M3ButtonDefaults.MinHeight,\n                    )\n                        .padding(contentPadding),\n                    horizontalArrangement = Arrangement.Center,\n                    verticalAlignment = Alignment.CenterVertically,\n                    content = content,\n                )\n            }\n        }\n    }\n}\n\nobject ButtonDefaults {\n    /**\n     * Creates a [ButtonColors] that represents the default container and content colors used in a\n     * [Button].\n     *\n     * @param containerColor the container color of this [Button] when enabled.\n     * @param contentColor the content color of this [Button] when enabled.\n     * @param disabledContainerColor the container color of this [Button] when not enabled.\n     * @param disabledContentColor the content color of this [Button] when not enabled.\n     */\n    @Composable\n    fun buttonColors(\n        containerColor: Color = MaterialTheme.colorScheme.primary,\n        contentColor: Color = MaterialTheme.colorScheme.onPrimary,\n        disabledContainerColor: Color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.12f),\n        disabledContentColor: Color = MaterialTheme.colorScheme.onSurface.copy(alpha = DISABLED_ALPHA),\n    ): ButtonColors = ButtonColors(\n        containerColor = containerColor,\n        contentColor = contentColor,\n        disabledContainerColor = disabledContainerColor,\n        disabledContentColor = disabledContentColor,\n    )\n\n    /**\n     * Creates a [ButtonElevation] that will animate between the provided values according to the\n     * Material specification for a [Button].\n     *\n     * @param defaultElevation the elevation used when the [Button] is enabled, and has no other\n     * [Interaction]s.\n     * @param pressedElevation the elevation used when this [Button] is enabled and pressed.\n     * @param focusedElevation the elevation used when the [Button] is enabled and focused.\n     * @param hoveredElevation the elevation used when the [Button] is enabled and hovered.\n     * @param disabledElevation the elevation used when the [Button] is not enabled.\n     */\n    @Composable\n    fun buttonElevation(\n        defaultElevation: Dp = 0.dp,\n        pressedElevation: Dp = 0.dp,\n        focusedElevation: Dp = 0.dp,\n        hoveredElevation: Dp = 1.dp,\n        disabledElevation: Dp = 0.dp,\n    ): ButtonElevation = ButtonElevation(\n        defaultElevation = defaultElevation,\n        pressedElevation = pressedElevation,\n        focusedElevation = focusedElevation,\n        hoveredElevation = hoveredElevation,\n        disabledElevation = disabledElevation,\n    )\n}\n\n/**\n * Represents the elevation for a button in different states.\n *\n * - See [M3ButtonDefaults.buttonElevation] for the default elevation used in a [Button].\n * - See [M3ButtonDefaults.elevatedButtonElevation] for the default elevation used in a\n * [ElevatedButton].\n */\n@Stable\nclass ButtonElevation internal constructor(\n    private val defaultElevation: Dp,\n    private val pressedElevation: Dp,\n    private val focusedElevation: Dp,\n    private val hoveredElevation: Dp,\n    private val disabledElevation: Dp,\n) {\n    /**\n     * Represents the tonal elevation used in a button, depending on its [enabled] state and\n     * [interactionSource]. This should typically be the same value as the [shadowElevation].\n     *\n     * Tonal elevation is used to apply a color shift to the surface to give the it higher emphasis.\n     * When surface's color is [ColorScheme.surface], a higher elevation will result in a darker\n     * color in light theme and lighter color in dark theme.\n     *\n     * See [shadowElevation] which controls the elevation of the shadow drawn around the button.\n     *\n     * @param enabled whether the button is enabled\n     * @param interactionSource the [InteractionSource] for this button\n     */\n    @Composable\n    internal fun tonalElevation(enabled: Boolean, interactionSource: InteractionSource): State<Dp> {\n        return animateElevation(enabled = enabled, interactionSource = interactionSource)\n    }\n\n    /**\n     * Represents the shadow elevation used in a button, depending on its [enabled] state and\n     * [interactionSource]. This should typically be the same value as the [tonalElevation].\n     *\n     * Shadow elevation is used to apply a shadow around the button to give it higher emphasis.\n     *\n     * See [tonalElevation] which controls the elevation with a color shift to the surface.\n     *\n     * @param enabled whether the button is enabled\n     * @param interactionSource the [InteractionSource] for this button\n     */\n    @Composable\n    internal fun shadowElevation(\n        enabled: Boolean,\n        interactionSource: InteractionSource,\n    ): State<Dp> {\n        return animateElevation(enabled = enabled, interactionSource = interactionSource)\n    }\n\n    @Composable\n    private fun animateElevation(\n        enabled: Boolean,\n        interactionSource: InteractionSource,\n    ): State<Dp> {\n        val interactions = remember { mutableStateListOf<Interaction>() }\n        LaunchedEffect(interactionSource) {\n            interactionSource.interactions.collect { interaction ->\n                when (interaction) {\n                    is HoverInteraction.Enter -> {\n                        interactions.add(interaction)\n                    }\n                    is HoverInteraction.Exit -> {\n                        interactions.remove(interaction.enter)\n                    }\n                    is FocusInteraction.Focus -> {\n                        interactions.add(interaction)\n                    }\n                    is FocusInteraction.Unfocus -> {\n                        interactions.remove(interaction.focus)\n                    }\n                    is PressInteraction.Press -> {\n                        interactions.add(interaction)\n                    }\n                    is PressInteraction.Release -> {\n                        interactions.remove(interaction.press)\n                    }\n                    is PressInteraction.Cancel -> {\n                        interactions.remove(interaction.press)\n                    }\n                }\n            }\n        }\n\n        val interaction = interactions.lastOrNull()\n\n        val target =\n            if (!enabled) {\n                disabledElevation\n            } else {\n                when (interaction) {\n                    is PressInteraction.Press -> pressedElevation\n                    is HoverInteraction.Enter -> hoveredElevation\n                    is FocusInteraction.Focus -> focusedElevation\n                    else -> defaultElevation\n                }\n            }\n\n        val animatable = remember { Animatable(target, Dp.VectorConverter) }\n\n        if (!enabled) {\n            // No transition when moving to a disabled state\n            LaunchedEffect(target) { animatable.snapTo(target) }\n        } else {\n            LaunchedEffect(target) {\n                val lastInteraction = when (animatable.targetValue) {\n                    pressedElevation -> PressInteraction.Press(Offset.Zero)\n                    hoveredElevation -> HoverInteraction.Enter()\n                    focusedElevation -> FocusInteraction.Focus()\n                    else -> null\n                }\n                animatable.animateElevation(\n                    from = lastInteraction,\n                    to = interaction,\n                    target = target,\n                )\n            }\n        }\n\n        return animatable.asState()\n    }\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (other == null || other !is ButtonElevation) return false\n\n        if (defaultElevation != other.defaultElevation) return false\n        if (pressedElevation != other.pressedElevation) return false\n        if (focusedElevation != other.focusedElevation) return false\n        if (hoveredElevation != other.hoveredElevation) return false\n        if (disabledElevation != other.disabledElevation) return false\n\n        return true\n    }\n\n    override fun hashCode(): Int {\n        var result = defaultElevation.hashCode()\n        result = 31 * result + pressedElevation.hashCode()\n        result = 31 * result + focusedElevation.hashCode()\n        result = 31 * result + hoveredElevation.hashCode()\n        result = 31 * result + disabledElevation.hashCode()\n        return result\n    }\n}\n\n/**\n * Represents the container and content colors used in a button in different states.\n *\n * - See [M3ButtonDefaults.buttonColors] for the default colors used in a [Button].\n * - See [M3ButtonDefaults.elevatedButtonColors] for the default colors used in a [ElevatedButton].\n * - See [M3ButtonDefaults.textButtonColors] for the default colors used in a [TextButton].\n */\n@Immutable\nclass ButtonColors internal constructor(\n    private val containerColor: Color,\n    private val contentColor: Color,\n    private val disabledContainerColor: Color,\n    private val disabledContentColor: Color,\n) {\n    /**\n     * Represents the container color for this button, depending on [enabled].\n     *\n     * @param enabled whether the button is enabled\n     */\n    @Composable\n    internal fun containerColor(enabled: Boolean): State<Color> {\n        return rememberUpdatedState(if (enabled) containerColor else disabledContainerColor)\n    }\n\n    /**\n     * Represents the content color for this button, depending on [enabled].\n     *\n     * @param enabled whether the button is enabled\n     */\n    @Composable\n    internal fun contentColor(enabled: Boolean): State<Color> {\n        return rememberUpdatedState(if (enabled) contentColor else disabledContentColor)\n    }\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (other == null || other !is ButtonColors) return false\n\n        if (containerColor != other.containerColor) return false\n        if (contentColor != other.contentColor) return false\n        if (disabledContainerColor != other.disabledContainerColor) return false\n        if (disabledContentColor != other.disabledContentColor) return false\n\n        return true\n    }\n\n    override fun hashCode(): Int {\n        var result = containerColor.hashCode()\n        result = 31 * result + contentColor.hashCode()\n        result = 31 * result + disabledContainerColor.hashCode()\n        result = 31 * result + disabledContentColor.hashCode()\n        return result\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Constants.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.ui.unit.dp\n\nval topSmallPaddingValues = PaddingValues(top = MaterialTheme.padding.small)\n\nconst val DISABLED_ALPHA = .38f\nconst val SECONDARY_ALPHA = .78f\n\nclass Padding {\n\n    val extraLarge = 32.dp\n\n    val large = 24.dp\n\n    val medium = 16.dp\n\n    val small = 8.dp\n\n    val extraSmall = 4.dp\n}\n\nval MaterialTheme.padding: Padding\n    get() = Padding()\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/IconButtonTokens.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.ui.unit.dp\n\n/**\n * Exposing some internal tokens.\n *\n * @see androidx.compose.material3.tokens.IconButtonTokens\n */\nobject IconButtonTokens {\n    val StateLayerSize = 40.0.dp\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/IconToggleButton.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.FilledIconToggleButton\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.dp\n\n@Composable\nfun IconToggleButton(\n    checked: Boolean,\n    onCheckedChange: (Boolean) -> Unit,\n    imageVector: ImageVector,\n    title: String,\n    modifier: Modifier = Modifier,\n) {\n    FilledIconToggleButton(\n        checked = checked,\n        onCheckedChange = onCheckedChange,\n        modifier = modifier\n            .height(48.dp),\n    ) {\n        Row(\n            horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n            verticalAlignment = Alignment.CenterVertically,\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(MaterialTheme.padding.small),\n        ) {\n            Icon(\n                imageVector = imageVector,\n                contentDescription = null,\n            )\n\n            Text(\n                text = title,\n                maxLines = 2,\n                overflow = TextOverflow.Ellipsis,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/NavigationBar.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.RowScope\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.selection.selectableGroup\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.NavigationBarDefaults\nimport androidx.compose.material3.contentColorFor\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\n\n/**\n * M3 Navbar with no horizontal spacer\n *\n * @see [androidx.compose.material3.NavigationBar]\n */\n@Composable\nfun NavigationBar(\n    modifier: Modifier = Modifier,\n    containerColor: Color = NavigationBarDefaults.containerColor,\n    contentColor: Color = MaterialTheme.colorScheme.contentColorFor(containerColor),\n    tonalElevation: Dp = NavigationBarDefaults.Elevation,\n    windowInsets: WindowInsets = NavigationBarDefaults.windowInsets,\n    content: @Composable RowScope.() -> Unit,\n) {\n    androidx.compose.material3.Surface(\n        color = containerColor,\n        contentColor = contentColor,\n        tonalElevation = tonalElevation,\n        modifier = modifier,\n    ) {\n        Row(\n            modifier = Modifier\n                .fillMaxWidth()\n                .windowInsetsPadding(windowInsets)\n                .height(80.dp)\n                .selectableGroup(),\n            content = content,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/NavigationRail.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.fillMaxHeight\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.widthIn\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.selection.selectableGroup\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.NavigationRailDefaults\nimport androidx.compose.material3.contentColorFor\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.unit.dp\n\n/**\n * Center-aligned M3 Navigation rail\n *\n * @see [androidx.compose.material3.NavigationRail]\n */\n@Composable\nfun NavigationRail(\n    modifier: Modifier = Modifier,\n    containerColor: Color = NavigationRailDefaults.ContainerColor,\n    contentColor: Color = contentColorFor(containerColor),\n    header: @Composable (ColumnScope.() -> Unit)? = null,\n    windowInsets: WindowInsets = NavigationRailDefaults.windowInsets,\n    content: @Composable ColumnScope.() -> Unit,\n) {\n    androidx.compose.material3.Surface(\n        color = containerColor,\n        contentColor = contentColor,\n        modifier = modifier,\n        tonalElevation = 3.dp,\n    ) {\n        Column(\n            Modifier\n                .fillMaxHeight()\n                .windowInsetsPadding(windowInsets)\n                .widthIn(min = 80.dp)\n                .padding(vertical = MaterialTheme.padding.extraSmall)\n                .selectableGroup(),\n            horizontalAlignment = Alignment.CenterHorizontally,\n            verticalArrangement = Arrangement.spacedBy(\n                MaterialTheme.padding.extraSmall,\n                alignment = Alignment.CenterVertically,\n            ),\n        ) {\n            if (header != null) {\n                header()\n                Spacer(Modifier.height(MaterialTheme.padding.small))\n            }\n            content()\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/PullRefresh.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.pulltorefresh.PullToRefreshDefaults\nimport androidx.compose.material3.pulltorefresh.pullToRefresh\nimport androidx.compose.material3.pulltorefresh.rememberPullToRefreshState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\n\n/**\n * @param refreshing Whether the layout is currently refreshing\n * @param onRefresh Lambda which is invoked when a swipe to refresh gesture is completed.\n * @param enabled Whether the the layout should react to swipe gestures or not.\n * @param indicatorPadding Content padding for the indicator, to inset the indicator in if required.\n * @param content The content containing a vertically scrollable composable.\n */\n@Composable\nfun PullRefresh(\n    refreshing: Boolean,\n    enabled: Boolean,\n    onRefresh: () -> Unit,\n    modifier: Modifier = Modifier,\n    indicatorPadding: PaddingValues = PaddingValues(0.dp),\n    content: @Composable () -> Unit,\n) {\n    val state = rememberPullToRefreshState()\n    Box(\n        modifier = modifier\n            .pullToRefresh(\n                isRefreshing = refreshing,\n                state = state,\n                enabled = enabled,\n                onRefresh = onRefresh,\n            ),\n    ) {\n        content()\n\n        PullToRefreshDefaults.Indicator(\n            modifier = Modifier\n                .align(Alignment.TopCenter)\n                .padding(indicatorPadding),\n            isRefreshing = refreshing,\n            state = state,\n            containerColor = MaterialTheme.colorScheme.surfaceVariant,\n            color = MaterialTheme.colorScheme.onSurfaceVariant,\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Scaffold.kt",
    "content": "/*\n * Copyright 2021 The Android Open Source Project\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@file:Suppress(\"KDocUnresolvedReference\")\n\npackage tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.layout.MutableWindowInsets\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.asPaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.foundation.layout.exclude\nimport androidx.compose.foundation.layout.onConsumedWindowInsetsChanged\nimport androidx.compose.material3.ExperimentalMaterial3Api\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.ScaffoldDefaults\nimport androidx.compose.material3.TopAppBarDefaults\nimport androidx.compose.material3.TopAppBarScrollBehavior\nimport androidx.compose.material3.contentColorFor\nimport androidx.compose.material3.rememberTopAppBarState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.Immutable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.input.nestedscroll.nestedScroll\nimport androidx.compose.ui.layout.SubcomposeLayout\nimport androidx.compose.ui.unit.Constraints\nimport androidx.compose.ui.unit.LayoutDirection\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.max\nimport androidx.compose.ui.util.fastForEach\nimport androidx.compose.ui.util.fastMap\nimport androidx.compose.ui.util.fastMaxBy\nimport kotlin.math.max\n\n/**\n * <a href=\"https://material.io/design/layout/understanding-layout.html\" class=\"external\" target=\"_blank\">Material Design layout</a>.\n *\n * Scaffold implements the basic material design visual layout structure.\n *\n * This component provides API to put together several material components to construct your\n * screen, by ensuring proper layout strategy for them and collecting necessary data so these\n * components will work together correctly.\n *\n * Simple example of a Scaffold with [SmallTopAppBar], [FloatingActionButton]:\n *\n * @sample androidx.compose.material3.samples.SimpleScaffoldWithTopBar\n *\n * To show a [Snackbar], use [SnackbarHostState.showSnackbar].\n *\n * @sample androidx.compose.material3.samples.ScaffoldWithSimpleSnackbar\n *\n * Tachiyomi changes:\n * * Pass scroll behavior to top bar by default\n * * Remove height constraint for expanded app bar\n * * Also take account of fab height when providing inner padding\n * * Fixes for fab and snackbar horizontal placements when [contentWindowInsets] is used\n * * Handle consumed window insets\n * * Add startBar slot for Navigation Rail\n *\n * @param modifier the [Modifier] to be applied to this scaffold\n * @param topBar top app bar of the screen, typically a [SmallTopAppBar]\n * @param startBar side bar on the start of the screen, typically a [NavigationRail]\n * @param bottomBar bottom bar of the screen, typically a [NavigationBar]\n * @param snackbarHost component to host [Snackbar]s that are pushed to be shown via\n * [SnackbarHostState.showSnackbar], typically a [SnackbarHost]\n * @param floatingActionButton Main action button of the screen, typically a [FloatingActionButton]\n * @param floatingActionButtonPosition position of the FAB on the screen. See [FabPosition].\n * @param containerColor the color used for the background of this scaffold. Use [Color.Transparent]\n * to have no color.\n * @param contentColor the preferred color for content inside this scaffold. Defaults to either the\n * matching content color for [containerColor], or to the current [LocalContentColor] if\n * [containerColor] is not a color from the theme.\n * @param contentWindowInsets window insets to be passed to content slot via PaddingValues params.\n * Scaffold will take the insets into account from the top/bottom only if the topBar/ bottomBar\n * are not present, as the scaffold expect topBar/bottomBar to handle insets instead\n * @param content content of the screen. The lambda receives a [PaddingValues] that should be\n * applied to the content root via [Modifier.padding] and [Modifier.consumeWindowInsets] to\n * properly offset top and bottom bars. If using [Modifier.verticalScroll], apply this modifier to\n * the child of the scroll, and not on the scroll itself.\n */\n@ExperimentalMaterial3Api\n@Composable\nfun Scaffold(\n    modifier: Modifier = Modifier,\n    topBarScrollBehavior: TopAppBarScrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(\n        rememberTopAppBarState(),\n    ),\n    topBar: @Composable (TopAppBarScrollBehavior) -> Unit = {},\n    bottomBar: @Composable () -> Unit = {},\n    startBar: @Composable () -> Unit = {},\n    snackbarHost: @Composable () -> Unit = {},\n    floatingActionButton: @Composable () -> Unit = {},\n    floatingActionButtonPosition: FabPosition = FabPosition.End,\n    containerColor: Color = MaterialTheme.colorScheme.background,\n    contentColor: Color = contentColorFor(containerColor),\n    contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets,\n    content: @Composable (PaddingValues) -> Unit,\n) {\n    // Tachiyomi: Handle consumed window insets\n    val remainingWindowInsets = remember { MutableWindowInsets() }\n    androidx.compose.material3.Surface(\n        modifier = Modifier\n            .nestedScroll(topBarScrollBehavior.nestedScrollConnection)\n            .onConsumedWindowInsetsChanged {\n                remainingWindowInsets.insets = contentWindowInsets.exclude(\n                    it,\n                )\n            }\n            .then(modifier),\n        color = containerColor,\n        contentColor = contentColor,\n    ) {\n        ScaffoldLayout(\n            fabPosition = floatingActionButtonPosition,\n            topBar = { topBar(topBarScrollBehavior) },\n            startBar = startBar,\n            bottomBar = bottomBar,\n            content = content,\n            snackbar = snackbarHost,\n            contentWindowInsets = remainingWindowInsets,\n            fab = floatingActionButton,\n        )\n    }\n}\n\n/**\n * Layout for a [Scaffold]'s content.\n *\n * @param fabPosition [FabPosition] for the FAB (if present)\n * @param topBar the content to place at the top of the [Scaffold], typically a [SmallTopAppBar]\n * @param content the main 'body' of the [Scaffold]\n * @param snackbar the [Snackbar] displayed on top of the [content]\n * @param fab the [FloatingActionButton] displayed on top of the [content], below the [snackbar]\n * and above the [bottomBar]\n * @param bottomBar the content to place at the bottom of the [Scaffold], on top of the\n * [content], typically a [NavigationBar].\n */\n@OptIn(ExperimentalMaterial3Api::class)\n@Composable\nprivate fun ScaffoldLayout(\n    fabPosition: FabPosition,\n    topBar: @Composable () -> Unit,\n    startBar: @Composable () -> Unit,\n    content: @Composable (PaddingValues) -> Unit,\n    snackbar: @Composable () -> Unit,\n    fab: @Composable () -> Unit,\n    contentWindowInsets: WindowInsets,\n    bottomBar: @Composable () -> Unit,\n) {\n    SubcomposeLayout { constraints ->\n        val layoutWidth = constraints.maxWidth\n        val layoutHeight = constraints.maxHeight\n\n        val looseConstraints = constraints.copy(minWidth = 0, minHeight = 0)\n\n        /**\n         * Tachiyomi: Remove height constraint for expanded app bar\n         */\n        val topBarConstraints = looseConstraints.copy(maxHeight = Constraints.Infinity)\n\n        layout(layoutWidth, layoutHeight) {\n            val leftInset = contentWindowInsets.getLeft(this@SubcomposeLayout, layoutDirection)\n            val rightInset = contentWindowInsets.getRight(this@SubcomposeLayout, layoutDirection)\n            val bottomInset = contentWindowInsets.getBottom(this@SubcomposeLayout)\n\n            // Tachiyomi: Add startBar slot for Navigation Rail\n            val startBarPlaceables = subcompose(ScaffoldLayoutContent.StartBar, startBar).fastMap {\n                it.measure(looseConstraints)\n            }\n            val startBarWidth = startBarPlaceables.fastMaxBy { it.width }?.width ?: 0\n\n            // Tachiyomi: layoutWidth after horizontal insets\n            val insetLayoutWidth = layoutWidth - leftInset - rightInset - startBarWidth\n\n            val topBarPlaceables = subcompose(ScaffoldLayoutContent.TopBar, topBar).fastMap {\n                it.measure(topBarConstraints)\n            }\n\n            val topBarHeight = topBarPlaceables.fastMaxBy { it.height }?.height ?: 0\n\n            val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).fastMap {\n                it.measure(looseConstraints)\n            }\n\n            val snackbarHeight = snackbarPlaceables.fastMaxBy { it.height }?.height ?: 0\n            val snackbarWidth = snackbarPlaceables.fastMaxBy { it.width }?.width ?: 0\n\n            // Tachiyomi: Calculate insets for snackbar placement offset\n            val snackbarLeft = if (snackbarPlaceables.isNotEmpty()) {\n                (insetLayoutWidth - snackbarWidth) / 2 + leftInset\n            } else {\n                0\n            }\n\n            val fabPlaceables =\n                subcompose(ScaffoldLayoutContent.Fab, fab).fastMap { measurable ->\n                    measurable.measure(looseConstraints)\n                }\n\n            val fabWidth = fabPlaceables.fastMaxBy { it.width }?.width ?: 0\n            val fabHeight = fabPlaceables.fastMaxBy { it.height }?.height ?: 0\n\n            val fabPlacement = if (fabPlaceables.isNotEmpty() && fabWidth != 0 && fabHeight != 0) {\n                // FAB distance from the left of the layout, taking into account LTR / RTL\n                // Tachiyomi: Calculate insets for fab placement offset\n                val fabLeftOffset = if (fabPosition == FabPosition.End) {\n                    if (layoutDirection == LayoutDirection.Ltr) {\n                        layoutWidth - FabSpacing.roundToPx() - fabWidth - rightInset\n                    } else {\n                        FabSpacing.roundToPx() + leftInset\n                    }\n                } else {\n                    leftInset + ((insetLayoutWidth - fabWidth) / 2)\n                }\n\n                FabPlacement(\n                    left = fabLeftOffset,\n                    width = fabWidth,\n                    height = fabHeight,\n                )\n            } else {\n                null\n            }\n\n            val bottomBarPlaceables = subcompose(ScaffoldLayoutContent.BottomBar) {\n                bottomBar()\n            }.fastMap { it.measure(looseConstraints) }\n\n            val bottomBarHeight = bottomBarPlaceables\n                .fastMaxBy { it.height }\n                ?.height\n                ?.takeIf { it != 0 }\n            val fabOffsetFromBottom = fabPlacement?.let {\n                max(bottomBarHeight ?: 0, bottomInset) + it.height + FabSpacing.roundToPx()\n            }\n\n            val snackbarOffsetFromBottom = if (snackbarHeight != 0) {\n                snackbarHeight + (fabOffsetFromBottom ?: max(bottomBarHeight ?: 0, bottomInset))\n            } else {\n                0\n            }\n\n            val bodyContentPlaceables = subcompose(ScaffoldLayoutContent.MainContent) {\n                val insets = contentWindowInsets.asPaddingValues(this@SubcomposeLayout)\n                val fabOffsetDp = fabOffsetFromBottom?.toDp() ?: 0.dp\n                val bottomBarHeightPx = bottomBarHeight ?: 0\n                val innerPadding = PaddingValues(\n                    top = if (topBarPlaceables.isEmpty()) {\n                        insets.calculateTopPadding()\n                    } else {\n                        topBarHeight.toDp()\n                    },\n                    // Tachiyomi: Also take account of fab height when providing inner padding\n                    bottom = if (bottomBarPlaceables.isEmpty() || bottomBarHeightPx == 0) {\n                        max(insets.calculateBottomPadding(), fabOffsetDp)\n                    } else {\n                        max(bottomBarHeightPx.toDp(), fabOffsetDp)\n                    },\n                    start = max(\n                        insets.calculateStartPadding((this@SubcomposeLayout).layoutDirection),\n                        startBarWidth.toDp(),\n                    ),\n                    end = insets.calculateEndPadding((this@SubcomposeLayout).layoutDirection),\n                )\n                content(innerPadding)\n            }.fastMap { it.measure(looseConstraints) }\n\n            // Placing to control drawing order to match default elevation of each placeable\n\n            bodyContentPlaceables.fastForEach {\n                it.place(0, 0)\n            }\n            startBarPlaceables.fastForEach {\n                it.placeRelative(0, 0)\n            }\n            topBarPlaceables.fastForEach {\n                it.place(0, 0)\n            }\n            snackbarPlaceables.fastForEach {\n                it.place(\n                    snackbarLeft,\n                    layoutHeight - snackbarOffsetFromBottom,\n                )\n            }\n            // The bottom bar is always at the bottom of the layout\n            bottomBarPlaceables.fastForEach {\n                it.place(0, layoutHeight - (bottomBarHeight ?: 0))\n            }\n            // Explicitly not using placeRelative here as `leftOffset` already accounts for RTL\n            fabPlaceables.fastForEach {\n                it.place(fabPlacement?.left ?: 0, layoutHeight - (fabOffsetFromBottom ?: 0))\n            }\n        }\n    }\n}\n\n/**\n * The possible positions for a [FloatingActionButton] attached to a [Scaffold].\n */\n@ExperimentalMaterial3Api\n@JvmInline\nvalue class FabPosition internal constructor(@Suppress(\"unused\") private val value: Int) {\n    companion object {\n        /**\n         * Position FAB at the bottom of the screen in the center, above the [NavigationBar] (if it\n         * exists)\n         */\n        val Center = FabPosition(0)\n\n        /**\n         * Position FAB at the bottom of the screen at the end, above the [NavigationBar] (if it\n         * exists)\n         */\n        val End = FabPosition(1)\n    }\n\n    override fun toString(): String {\n        return when (this) {\n            Center -> \"FabPosition.Center\"\n            else -> \"FabPosition.End\"\n        }\n    }\n}\n\n/**\n * Placement information for a [FloatingActionButton] inside a [Scaffold].\n *\n * @property left the FAB's offset from the left edge of the bottom bar, already adjusted for RTL\n * support\n * @property width the width of the FAB\n * @property height the height of the FAB\n */\n@Immutable\ninternal class FabPlacement(\n    val left: Int,\n    val width: Int,\n    val height: Int,\n)\n\n// FAB spacing above the bottom bar / bottom of the Scaffold\nprivate val FabSpacing = 16.dp\n\nprivate enum class ScaffoldLayoutContent { TopBar, MainContent, Snackbar, Fab, BottomBar, StartBar }\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Slider.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.annotation.IntRange\nimport androidx.compose.foundation.interaction.MutableInteractionSource\nimport androidx.compose.material3.Slider\nimport androidx.compose.material3.SliderColors\nimport androidx.compose.material3.SliderDefaults\nimport androidx.compose.material3.SliderState\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport kotlin.math.roundToInt\n\n@Composable\nfun Slider(\n    value: Int,\n    onValueChange: (Int) -> Unit,\n    modifier: Modifier = Modifier,\n    enabled: Boolean = true,\n    valueRange: IntProgression = 0..1,\n    @IntRange(from = 0) steps: Int = with(valueRange) { (last - first) - 1 },\n    onValueChangeFinished: (() -> Unit)? = null,\n    colors: SliderColors = SliderDefaults.colors(),\n    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },\n    thumb: @Composable (SliderState) -> Unit = {\n        SliderDefaults.Thumb(\n            interactionSource = interactionSource,\n            colors = colors,\n            enabled = enabled,\n        )\n    },\n    track: @Composable (SliderState) -> Unit = { sliderState ->\n        SliderDefaults.Track(colors = colors, enabled = enabled, sliderState = sliderState)\n    },\n) {\n    Slider(\n        value = value.toFloat(),\n        onValueChange = { onValueChange(it.roundToInt()) },\n        modifier = modifier,\n        enabled = enabled,\n        valueRange = with(valueRange) { first.toFloat()..last.toFloat() },\n        steps = steps,\n        onValueChangeFinished = onValueChangeFinished,\n        colors = colors,\n        interactionSource = interactionSource,\n        thumb = thumb,\n        track = track,\n    )\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Surface.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.BorderStroke\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.border\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.interaction.MutableInteractionSource\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.material3.ColorScheme\nimport androidx.compose.material3.LocalAbsoluteTonalElevation\nimport androidx.compose.material3.LocalContentColor\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.contentColorFor\nimport androidx.compose.material3.minimumInteractiveComponentSize\nimport androidx.compose.material3.ripple\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.NonRestartableComposable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.clip\nimport androidx.compose.ui.draw.shadow\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.RectangleShape\nimport androidx.compose.ui.graphics.Shape\nimport androidx.compose.ui.graphics.compositeOver\nimport androidx.compose.ui.semantics.Role\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport kotlin.math.ln\n\n/**\n * Surface with additional onLongClick functionality.\n *\n * @see androidx.compose.material3.Surface\n */\n@Composable\n@NonRestartableComposable\nfun Surface(\n    onClick: () -> Unit,\n    modifier: Modifier = Modifier,\n    onLongClick: (() -> Unit)? = null,\n    enabled: Boolean = true,\n    shape: Shape = RectangleShape,\n    color: Color = MaterialTheme.colorScheme.surface,\n    contentColor: Color = contentColorFor(color),\n    tonalElevation: Dp = 0.dp,\n    shadowElevation: Dp = 0.dp,\n    border: BorderStroke? = null,\n    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },\n    content: @Composable () -> Unit,\n) {\n    val absoluteElevation = LocalAbsoluteTonalElevation.current + tonalElevation\n    CompositionLocalProvider(\n        LocalContentColor provides contentColor,\n        LocalAbsoluteTonalElevation provides absoluteElevation,\n    ) {\n        Box(\n            modifier = modifier\n                .minimumInteractiveComponentSize()\n                .surface(\n                    shape = shape,\n                    backgroundColor = surfaceColorAtElevation(\n                        color = color,\n                        elevation = absoluteElevation,\n                    ),\n                    border = border,\n                    shadowElevation = shadowElevation,\n                )\n                .combinedClickable(\n                    interactionSource = interactionSource,\n                    indication = ripple(),\n                    enabled = enabled,\n                    role = Role.Button,\n                    onLongClick = onLongClick,\n                    onClick = onClick,\n                ),\n            propagateMinConstraints = true,\n        ) {\n            content()\n        }\n    }\n}\n\nprivate fun Modifier.surface(\n    shape: Shape,\n    backgroundColor: Color,\n    border: BorderStroke?,\n    shadowElevation: Dp,\n) = this\n    .shadow(shadowElevation, shape, clip = false)\n    .then(if (border != null) Modifier.border(border, shape) else Modifier)\n    .background(color = backgroundColor, shape = shape)\n    .clip(shape)\n\n@Composable\n@ReadOnlyComposable\nprivate fun surfaceColorAtElevation(color: Color, elevation: Dp): Color {\n    return if (color == MaterialTheme.colorScheme.surface) {\n        MaterialTheme.colorScheme.surfaceColorAtElevation(elevation)\n    } else {\n        color\n    }\n}\n\nprivate fun ColorScheme.surfaceColorAtElevation(elevation: Dp): Color {\n    if (elevation == 0.dp) return surface\n    val alpha = ((4.5f * ln(elevation.value + 1)) + 2f) / 100f\n    return surfaceTint.copy(alpha = alpha).compositeOver(surface)\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Tabs.kt",
    "content": "package tachiyomi.presentation.core.components.material\n\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.text.style.TextOverflow\nimport androidx.compose.ui.unit.sp\nimport tachiyomi.presentation.core.components.Pill\n\n@Composable\nfun TabText(text: String, badgeCount: Int? = null) {\n    val pillAlpha = if (isSystemInDarkTheme()) 0.12f else 0.08f\n\n    Row(\n        verticalAlignment = Alignment.CenterVertically,\n    ) {\n        Text(\n            text = text,\n            maxLines = 1,\n            overflow = TextOverflow.Ellipsis,\n        )\n        if (badgeCount != null) {\n            Pill(\n                text = \"$badgeCount\",\n                color = MaterialTheme.colorScheme.onBackground.copy(alpha = pillAlpha),\n                fontSize = 10.sp,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/i18n/Localize.kt",
    "content": "package tachiyomi.presentation.core.i18n\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.ui.platform.LocalContext\nimport dev.icerock.moko.resources.PluralsResource\nimport dev.icerock.moko.resources.StringResource\nimport tachiyomi.core.common.i18n.pluralStringResource\nimport tachiyomi.core.common.i18n.stringResource\n\n@Composable\n@ReadOnlyComposable\nfun stringResource(resource: StringResource): String {\n    return LocalContext.current.stringResource(resource)\n}\n\n@Composable\n@ReadOnlyComposable\nfun stringResource(resource: StringResource, vararg args: Any): String {\n    return LocalContext.current.stringResource(resource, *args)\n}\n\n@Composable\n@ReadOnlyComposable\nfun pluralStringResource(resource: PluralsResource, count: Int): String {\n    return LocalContext.current.pluralStringResource(resource, count)\n}\n\n@Composable\n@ReadOnlyComposable\nfun pluralStringResource(resource: PluralsResource, count: Int, vararg args: Any): String {\n    return LocalContext.current.pluralStringResource(resource, count, *args)\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/icons/CustomIcons.kt",
    "content": "package tachiyomi.presentation.core.icons\n\n/**\n * Icons imported from https://simpleicons.org using\n * https://github.com/DevSrSouza/svg-to-compose\n */\nobject CustomIcons\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/icons/Discord.kt",
    "content": "package tachiyomi.presentation.core.icons\n\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.PathFillType.Companion.NonZero\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.graphics.StrokeCap.Companion.Butt\nimport androidx.compose.ui.graphics.StrokeJoin.Companion.Miter\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.graphics.vector.ImageVector.Builder\nimport androidx.compose.ui.graphics.vector.path\nimport androidx.compose.ui.unit.dp\n\n@Suppress(\"UnusedReceiverParameter\", \"BooleanLiteralArgument\")\nval CustomIcons.Discord: ImageVector\n    get() {\n        if (_discord != null) {\n            return _discord!!\n        }\n        _discord = Builder(\n            name = \"Discord\",\n            defaultWidth = 24.0.dp,\n            defaultHeight = 24.0.dp,\n            viewportWidth = 24.0f,\n            viewportHeight = 24.0f,\n        ).apply {\n            path(\n                fill = SolidColor(Color(0xFF000000)),\n                stroke = null,\n                strokeLineWidth = 0.0f,\n                strokeLineCap = Butt,\n                strokeLineJoin = Miter,\n                strokeLineMiter = 4.0f,\n                pathFillType = NonZero,\n            ) {\n                moveTo(20.317f, 4.3698f)\n                arcToRelative(19.7913f, 19.7913f, 0.0f, false, false, -4.8851f, -1.5152f)\n                arcToRelative(0.0741f, 0.0741f, 0.0f, false, false, -0.0785f, 0.0371f)\n                curveToRelative(-0.211f, 0.3753f, -0.4447f, 0.8648f, -0.6083f, 1.2495f)\n                curveToRelative(-1.8447f, -0.2762f, -3.68f, -0.2762f, -5.4868f, 0.0f)\n                curveToRelative(-0.1636f, -0.3933f, -0.4058f, -0.8742f, -0.6177f, -1.2495f)\n                arcToRelative(0.077f, 0.077f, 0.0f, false, false, -0.0785f, -0.037f)\n                arcToRelative(19.7363f, 19.7363f, 0.0f, false, false, -4.8852f, 1.515f)\n                arcToRelative(0.0699f, 0.0699f, 0.0f, false, false, -0.0321f, 0.0277f)\n                curveTo(0.5334f, 9.0458f, -0.319f, 13.5799f, 0.0992f, 18.0578f)\n                arcToRelative(0.0824f, 0.0824f, 0.0f, false, false, 0.0312f, 0.0561f)\n                curveToRelative(2.0528f, 1.5076f, 4.0413f, 2.4228f, 5.9929f, 3.0294f)\n                arcToRelative(0.0777f, 0.0777f, 0.0f, false, false, 0.0842f, -0.0276f)\n                curveToRelative(0.4616f, -0.6304f, 0.8731f, -1.2952f, 1.226f, -1.9942f)\n                arcToRelative(0.076f, 0.076f, 0.0f, false, false, -0.0416f, -0.1057f)\n                curveToRelative(-0.6528f, -0.2476f, -1.2743f, -0.5495f, -1.8722f, -0.8923f)\n                arcToRelative(0.077f, 0.077f, 0.0f, false, true, -0.0076f, -0.1277f)\n                curveToRelative(0.1258f, -0.0943f, 0.2517f, -0.1923f, 0.3718f, -0.2914f)\n                arcToRelative(0.0743f, 0.0743f, 0.0f, false, true, 0.0776f, -0.0105f)\n                curveToRelative(3.9278f, 1.7933f, 8.18f, 1.7933f, 12.0614f, 0.0f)\n                arcToRelative(0.0739f, 0.0739f, 0.0f, false, true, 0.0785f, 0.0095f)\n                curveToRelative(0.1202f, 0.099f, 0.246f, 0.1981f, 0.3728f, 0.2924f)\n                arcToRelative(0.077f, 0.077f, 0.0f, false, true, -0.0066f, 0.1276f)\n                arcToRelative(12.2986f, 12.2986f, 0.0f, false, true, -1.873f, 0.8914f)\n                arcToRelative(0.0766f, 0.0766f, 0.0f, false, false, -0.0407f, 0.1067f)\n                curveToRelative(0.3604f, 0.698f, 0.7719f, 1.3628f, 1.225f, 1.9932f)\n                arcToRelative(0.076f, 0.076f, 0.0f, false, false, 0.0842f, 0.0286f)\n                curveToRelative(1.961f, -0.6067f, 3.9495f, -1.5219f, 6.0023f, -3.0294f)\n                arcToRelative(0.077f, 0.077f, 0.0f, false, false, 0.0313f, -0.0552f)\n                curveToRelative(0.5004f, -5.177f, -0.8382f, -9.6739f, -3.5485f, -13.6604f)\n                arcToRelative(0.061f, 0.061f, 0.0f, false, false, -0.0312f, -0.0286f)\n                close()\n                moveTo(8.02f, 15.3312f)\n                curveToRelative(-1.1825f, 0.0f, -2.1569f, -1.0857f, -2.1569f, -2.419f)\n                curveToRelative(0.0f, -1.3332f, 0.9555f, -2.4189f, 2.157f, -2.4189f)\n                curveToRelative(1.2108f, 0.0f, 2.1757f, 1.0952f, 2.1568f, 2.419f)\n                curveToRelative(0.0f, 1.3332f, -0.9555f, 2.4189f, -2.1569f, 2.4189f)\n                close()\n                moveTo(15.9948f, 15.3312f)\n                curveToRelative(-1.1825f, 0.0f, -2.1569f, -1.0857f, -2.1569f, -2.419f)\n                curveToRelative(0.0f, -1.3332f, 0.9554f, -2.4189f, 2.1569f, -2.4189f)\n                curveToRelative(1.2108f, 0.0f, 2.1757f, 1.0952f, 2.1568f, 2.419f)\n                curveToRelative(0.0f, 1.3332f, -0.946f, 2.4189f, -2.1568f, 2.4189f)\n                close()\n            }\n        }\n            .build()\n        return _discord!!\n    }\n\n@Suppress(\"ObjectPropertyName\")\nprivate var _discord: ImageVector? = null\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/icons/Facebook.kt",
    "content": "package tachiyomi.presentation.core.icons\n\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.PathFillType.Companion.NonZero\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.graphics.StrokeCap.Companion.Butt\nimport androidx.compose.ui.graphics.StrokeJoin.Companion.Miter\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.graphics.vector.ImageVector.Builder\nimport androidx.compose.ui.graphics.vector.path\nimport androidx.compose.ui.unit.dp\n\n@Suppress(\"UnusedReceiverParameter\")\nval CustomIcons.Facebook: ImageVector\n    get() {\n        if (_facebook != null) {\n            return _facebook!!\n        }\n        _facebook = Builder(\n            name = \"Facebook\",\n            defaultWidth = 24.0.dp,\n            defaultHeight = 24.0.dp,\n            viewportWidth = 24.0f,\n            viewportHeight = 24.0f,\n        ).apply {\n            path(\n                fill = SolidColor(Color(0xFF000000)),\n                stroke = null,\n                strokeLineWidth = 0.0f,\n                strokeLineCap = Butt,\n                strokeLineJoin = Miter,\n                strokeLineMiter = 4.0f,\n                pathFillType = NonZero,\n            ) {\n                moveTo(9.101f, 23.691f)\n                verticalLineToRelative(-7.98f)\n                horizontalLineTo(6.627f)\n                verticalLineToRelative(-3.667f)\n                horizontalLineToRelative(2.474f)\n                verticalLineToRelative(-1.58f)\n                curveToRelative(0.0f, -4.085f, 1.848f, -5.978f, 5.858f, -5.978f)\n                curveToRelative(0.401f, 0.0f, 0.955f, 0.042f, 1.468f, 0.103f)\n                arcToRelative(8.68f, 8.68f, 0.0f, false, true, 1.141f, 0.195f)\n                verticalLineToRelative(3.325f)\n                arcToRelative(8.623f, 8.623f, 0.0f, false, false, -0.653f, -0.036f)\n                arcToRelative(26.805f, 26.805f, 0.0f, false, false, -0.733f, -0.009f)\n                curveToRelative(-0.707f, 0.0f, -1.259f, 0.096f, -1.675f, 0.309f)\n                arcToRelative(1.686f, 1.686f, 0.0f, false, false, -0.679f, 0.622f)\n                curveToRelative(-0.258f, 0.42f, -0.374f, 0.995f, -0.374f, 1.752f)\n                verticalLineToRelative(1.297f)\n                horizontalLineToRelative(3.919f)\n                lineToRelative(-0.386f, 2.103f)\n                lineToRelative(-0.287f, 1.564f)\n                horizontalLineToRelative(-3.246f)\n                verticalLineToRelative(8.245f)\n                curveTo(19.396f, 23.238f, 24.0f, 18.179f, 24.0f, 12.044f)\n                curveToRelative(0.0f, -6.627f, -5.373f, -12.0f, -12.0f, -12.0f)\n                reflectiveCurveToRelative(-12.0f, 5.373f, -12.0f, 12.0f)\n                curveToRelative(0.0f, 5.628f, 3.874f, 10.35f, 9.101f, 11.647f)\n                close()\n            }\n        }\n            .build()\n        return _facebook!!\n    }\n\n@Suppress(\"ObjectPropertyName\")\nprivate var _facebook: ImageVector? = null\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/icons/Github.kt",
    "content": "package tachiyomi.presentation.core.icons\n\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.PathFillType.Companion.NonZero\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.graphics.StrokeCap.Companion.Butt\nimport androidx.compose.ui.graphics.StrokeJoin.Companion.Miter\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.graphics.vector.ImageVector.Builder\nimport androidx.compose.ui.graphics.vector.path\nimport androidx.compose.ui.unit.dp\n\n@Suppress(\"UnusedReceiverParameter\")\nval CustomIcons.Github: ImageVector\n    get() {\n        if (_github != null) {\n            return _github!!\n        }\n        _github = Builder(\n            name = \"Github\",\n            defaultWidth = 24.0.dp,\n            defaultHeight = 24.0.dp,\n            viewportWidth = 24.0f,\n            viewportHeight = 24.0f,\n        ).apply {\n            path(\n                fill = SolidColor(Color(0xFF000000)),\n                stroke = null,\n                strokeLineWidth = 0.0f,\n                strokeLineCap = Butt,\n                strokeLineJoin = Miter,\n                strokeLineMiter = 4.0f,\n                pathFillType = NonZero,\n            ) {\n                moveTo(12.0f, 0.297f)\n                curveToRelative(-6.63f, 0.0f, -12.0f, 5.373f, -12.0f, 12.0f)\n                curveToRelative(0.0f, 5.303f, 3.438f, 9.8f, 8.205f, 11.385f)\n                curveToRelative(0.6f, 0.113f, 0.82f, -0.258f, 0.82f, -0.577f)\n                curveToRelative(0.0f, -0.285f, -0.01f, -1.04f, -0.015f, -2.04f)\n                curveToRelative(-3.338f, 0.724f, -4.042f, -1.61f, -4.042f, -1.61f)\n                curveTo(4.422f, 18.07f, 3.633f, 17.7f, 3.633f, 17.7f)\n                curveToRelative(-1.087f, -0.744f, 0.084f, -0.729f, 0.084f, -0.729f)\n                curveToRelative(1.205f, 0.084f, 1.838f, 1.236f, 1.838f, 1.236f)\n                curveToRelative(1.07f, 1.835f, 2.809f, 1.305f, 3.495f, 0.998f)\n                curveToRelative(0.108f, -0.776f, 0.417f, -1.305f, 0.76f, -1.605f)\n                curveToRelative(-2.665f, -0.3f, -5.466f, -1.332f, -5.466f, -5.93f)\n                curveToRelative(0.0f, -1.31f, 0.465f, -2.38f, 1.235f, -3.22f)\n                curveToRelative(-0.135f, -0.303f, -0.54f, -1.523f, 0.105f, -3.176f)\n                curveToRelative(0.0f, 0.0f, 1.005f, -0.322f, 3.3f, 1.23f)\n                curveToRelative(0.96f, -0.267f, 1.98f, -0.399f, 3.0f, -0.405f)\n                curveToRelative(1.02f, 0.006f, 2.04f, 0.138f, 3.0f, 0.405f)\n                curveToRelative(2.28f, -1.552f, 3.285f, -1.23f, 3.285f, -1.23f)\n                curveToRelative(0.645f, 1.653f, 0.24f, 2.873f, 0.12f, 3.176f)\n                curveToRelative(0.765f, 0.84f, 1.23f, 1.91f, 1.23f, 3.22f)\n                curveToRelative(0.0f, 4.61f, -2.805f, 5.625f, -5.475f, 5.92f)\n                curveToRelative(0.42f, 0.36f, 0.81f, 1.096f, 0.81f, 2.22f)\n                curveToRelative(0.0f, 1.606f, -0.015f, 2.896f, -0.015f, 3.286f)\n                curveToRelative(0.0f, 0.315f, 0.21f, 0.69f, 0.825f, 0.57f)\n                curveTo(20.565f, 22.092f, 24.0f, 17.592f, 24.0f, 12.297f)\n                curveToRelative(0.0f, -6.627f, -5.373f, -12.0f, -12.0f, -12.0f)\n            }\n        }\n            .build()\n        return _github!!\n    }\n\n@Suppress(\"ObjectPropertyName\")\nprivate var _github: ImageVector? = null\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/icons/Reddit.kt",
    "content": "package tachiyomi.presentation.core.icons\n\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.PathFillType.Companion.NonZero\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.graphics.StrokeCap.Companion.Butt\nimport androidx.compose.ui.graphics.StrokeJoin.Companion.Miter\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.graphics.vector.ImageVector.Builder\nimport androidx.compose.ui.graphics.vector.path\nimport androidx.compose.ui.unit.dp\n\n@Suppress(\"UnusedReceiverParameter\", \"BooleanLiteralArgument\")\nval CustomIcons.Reddit: ImageVector\n    get() {\n        if (_reddit != null) {\n            return _reddit!!\n        }\n        _reddit = Builder(\n            name = \"Reddit\",\n            defaultWidth = 24.0.dp,\n            defaultHeight = 24.0.dp,\n            viewportWidth = 24.0f,\n            viewportHeight = 24.0f,\n        ).apply {\n            path(\n                fill = SolidColor(Color(0xFF000000)),\n                stroke = null,\n                strokeLineWidth = 0.0f,\n                strokeLineCap = Butt,\n                strokeLineJoin = Miter,\n                strokeLineMiter = 4.0f,\n                pathFillType = NonZero,\n            ) {\n                moveTo(12.0f, 0.0f)\n                curveTo(5.373f, 0.0f, 0.0f, 5.373f, 0.0f, 12.0f)\n                curveToRelative(0.0f, 3.314f, 1.343f, 6.314f, 3.515f, 8.485f)\n                lineToRelative(-2.286f, 2.286f)\n                curveTo(0.775f, 23.225f, 1.097f, 24.0f, 1.738f, 24.0f)\n                lineTo(12.0f, 24.0f)\n                curveToRelative(6.627f, 0.0f, 12.0f, -5.373f, 12.0f, -12.0f)\n                reflectiveCurveTo(18.627f, 0.0f, 12.0f, 0.0f)\n                close()\n                moveTo(16.388f, 3.199f)\n                curveToRelative(1.104f, 0.0f, 1.999f, 0.895f, 1.999f, 1.999f)\n                curveToRelative(0.0f, 1.105f, -0.895f, 2.0f, -1.999f, 2.0f)\n                curveToRelative(-0.946f, 0.0f, -1.739f, -0.657f, -1.947f, -1.539f)\n                verticalLineToRelative(0.002f)\n                curveToRelative(-1.147f, 0.162f, -2.032f, 1.15f, -2.032f, 2.341f)\n                verticalLineToRelative(0.007f)\n                curveToRelative(1.776f, 0.067f, 3.4f, 0.567f, 4.686f, 1.363f)\n                curveToRelative(0.473f, -0.363f, 1.064f, -0.58f, 1.707f, -0.58f)\n                curveToRelative(1.547f, 0.0f, 2.802f, 1.254f, 2.802f, 2.802f)\n                curveToRelative(0.0f, 1.117f, -0.655f, 2.081f, -1.601f, 2.531f)\n                curveToRelative(-0.088f, 3.256f, -3.637f, 5.876f, -7.997f, 5.876f)\n                curveToRelative(-4.361f, 0.0f, -7.905f, -2.617f, -7.998f, -5.87f)\n                curveToRelative(-0.954f, -0.447f, -1.614f, -1.415f, -1.614f, -2.538f)\n                curveToRelative(0.0f, -1.548f, 1.255f, -2.802f, 2.803f, -2.802f)\n                curveToRelative(0.645f, 0.0f, 1.239f, 0.218f, 1.712f, 0.585f)\n                curveToRelative(1.275f, -0.79f, 2.881f, -1.291f, 4.64f, -1.365f)\n                verticalLineToRelative(-0.01f)\n                curveToRelative(0.0f, -1.663f, 1.263f, -3.034f, 2.88f, -3.207f)\n                curveToRelative(0.188f, -0.911f, 0.993f, -1.595f, 1.959f, -1.595f)\n                close()\n                moveTo(8.303f, 11.575f)\n                curveToRelative(-0.784f, 0.0f, -1.459f, 0.78f, -1.506f, 1.797f)\n                curveToRelative(-0.047f, 1.016f, 0.64f, 1.429f, 1.426f, 1.429f)\n                curveToRelative(0.786f, 0.0f, 1.371f, -0.369f, 1.418f, -1.385f)\n                curveToRelative(0.047f, -1.017f, -0.553f, -1.841f, -1.338f, -1.841f)\n                close()\n                moveTo(15.709f, 11.575f)\n                curveToRelative(-0.786f, 0.0f, -1.385f, 0.824f, -1.338f, 1.841f)\n                curveToRelative(0.047f, 1.017f, 0.634f, 1.385f, 1.418f, 1.385f)\n                curveToRelative(0.785f, 0.0f, 1.473f, -0.413f, 1.426f, -1.429f)\n                curveToRelative(-0.046f, -1.017f, -0.721f, -1.797f, -1.506f, -1.797f)\n                close()\n                moveTo(12.006f, 15.588f)\n                curveToRelative(-0.974f, 0.0f, -1.907f, 0.048f, -2.77f, 0.135f)\n                curveToRelative(-0.147f, 0.015f, -0.241f, 0.168f, -0.183f, 0.305f)\n                curveToRelative(0.483f, 1.154f, 1.622f, 1.964f, 2.953f, 1.964f)\n                curveToRelative(1.33f, 0.0f, 2.47f, -0.81f, 2.953f, -1.964f)\n                curveToRelative(0.057f, -0.137f, -0.037f, -0.29f, -0.184f, -0.305f)\n                curveToRelative(-0.863f, -0.087f, -1.795f, -0.135f, -2.769f, -0.135f)\n                close()\n            }\n        }\n            .build()\n        return _reddit!!\n    }\n\n@Suppress(\"ObjectPropertyName\")\nprivate var _reddit: ImageVector? = null\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/icons/X.kt",
    "content": "package tachiyomi.presentation.core.icons\n\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.PathFillType.Companion.NonZero\nimport androidx.compose.ui.graphics.SolidColor\nimport androidx.compose.ui.graphics.StrokeCap.Companion.Butt\nimport androidx.compose.ui.graphics.StrokeJoin.Companion.Miter\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.graphics.vector.ImageVector.Builder\nimport androidx.compose.ui.graphics.vector.path\nimport androidx.compose.ui.unit.dp\n\n@Suppress(\"UnusedReceiverParameter\")\nval CustomIcons.X: ImageVector\n    get() {\n        if (_x != null) {\n            return _x!!\n        }\n        _x = Builder(\n            name = \"X\",\n            defaultWidth = 24.0.dp,\n            defaultHeight = 24.0.dp,\n            viewportWidth =\n            24.0f,\n            viewportHeight = 24.0f,\n        ).apply {\n            path(\n                fill = SolidColor(Color(0xFF000000)),\n                stroke = null,\n                strokeLineWidth = 0.0f,\n                strokeLineCap = Butt,\n                strokeLineJoin = Miter,\n                strokeLineMiter = 4.0f,\n                pathFillType = NonZero,\n            ) {\n                moveTo(18.901f, 1.153f)\n                horizontalLineToRelative(3.68f)\n                lineToRelative(-8.04f, 9.19f)\n                lineTo(24.0f, 22.846f)\n                horizontalLineToRelative(-7.406f)\n                lineToRelative(-5.8f, -7.584f)\n                lineToRelative(-6.638f, 7.584f)\n                horizontalLineTo(0.474f)\n                lineToRelative(8.6f, -9.83f)\n                lineTo(0.0f, 1.154f)\n                horizontalLineToRelative(7.594f)\n                lineToRelative(5.243f, 6.932f)\n                close()\n                moveTo(17.61f, 20.644f)\n                horizontalLineToRelative(2.039f)\n                lineTo(6.486f, 3.24f)\n                horizontalLineTo(4.298f)\n                close()\n            }\n        }\n            .build()\n        return _x!!\n    }\n\n@Suppress(\"ObjectPropertyName\")\nprivate var _x: ImageVector? = null\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/screens/EmptyScreen.kt",
    "content": "package tachiyomi.presentation.core.screens\n\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Row\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.paddingFromBaseline\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.CompositionLocalProvider\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.unit.LayoutDirection\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastForEach\nimport dev.icerock.moko.resources.StringResource\nimport kotlinx.collections.immutable.ImmutableList\nimport tachiyomi.presentation.core.components.ActionButton\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\nimport kotlin.random.Random\n\ndata class EmptyScreenAction(\n    val stringRes: StringResource,\n    val icon: ImageVector,\n    val onClick: () -> Unit,\n)\n\n@Composable\nfun EmptyScreen(\n    stringRes: StringResource,\n    modifier: Modifier = Modifier,\n    actions: ImmutableList<EmptyScreenAction>? = null,\n) {\n    EmptyScreen(\n        message = stringResource(stringRes),\n        modifier = modifier,\n        actions = actions,\n    )\n}\n\n@Composable\nfun EmptyScreen(\n    message: String,\n    modifier: Modifier = Modifier,\n    actions: ImmutableList<EmptyScreenAction>? = null,\n) {\n    val face = remember { getRandomErrorFace() }\n    Column(\n        modifier = modifier\n            .fillMaxSize()\n            .verticalScroll(rememberScrollState())\n            .padding(horizontal = 24.dp),\n        horizontalAlignment = Alignment.CenterHorizontally,\n        verticalArrangement = Arrangement.Center,\n    ) {\n        CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) {\n            Text(\n                text = face,\n                modifier = Modifier.secondaryItemAlpha(),\n                style = MaterialTheme.typography.displayMedium,\n            )\n        }\n\n        Text(\n            text = message,\n            modifier = Modifier\n                .paddingFromBaseline(top = 24.dp)\n                .secondaryItemAlpha(),\n            style = MaterialTheme.typography.bodyMedium,\n            textAlign = TextAlign.Center,\n        )\n\n        if (!actions.isNullOrEmpty()) {\n            Row(\n                modifier = Modifier\n                    .padding(top = 24.dp),\n                horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),\n            ) {\n                actions.fastForEach {\n                    ActionButton(\n                        modifier = Modifier.weight(1f),\n                        title = stringResource(it.stringRes),\n                        icon = it.icon,\n                        onClick = it.onClick,\n                    )\n                }\n            }\n        }\n    }\n}\n\nprivate val ErrorFaces = listOf(\n    \"(･o･;)\",\n    \"Σ(ಠ_ಠ)\",\n    \"ಥ_ಥ\",\n    \"(˘･_･˘)\",\n    \"(；￣Д￣)\",\n    \"(･Д･。\",\n    \"(╬ಠ益ಠ)\",\n    \"(╥﹏╥)\",\n    \"(⋟﹏⋞)\",\n    \"Ò︵Ó\",\n    \" ˙ᯅ˙)\",\n    \"(¬_¬)\",\n)\n\nprivate fun getRandomErrorFace(): String {\n    return ErrorFaces[Random.nextInt(ErrorFaces.size)]\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/screens/InfoScreen.kt",
    "content": "package tachiyomi.presentation.core.screens\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.ColumnScope\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.size\nimport androidx.compose.foundation.layout.windowInsetsPadding\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.outlined.Newspaper\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.Icon\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.NavigationBarDefaults\nimport androidx.compose.material3.OutlinedButton\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.drawBehind\nimport androidx.compose.ui.geometry.Offset\nimport androidx.compose.ui.graphics.vector.ImageVector\nimport androidx.compose.ui.tooling.preview.PreviewLightDark\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.zIndex\nimport tachiyomi.presentation.core.components.material.Scaffold\nimport tachiyomi.presentation.core.components.material.padding\nimport tachiyomi.presentation.core.util.secondaryItemAlpha\n\n@Composable\nfun InfoScreen(\n    icon: ImageVector,\n    headingText: String,\n    subtitleText: String,\n    acceptText: String,\n    onAcceptClick: () -> Unit,\n    canAccept: Boolean = true,\n    rejectText: String? = null,\n    onRejectClick: (() -> Unit)? = null,\n    content: @Composable ColumnScope.() -> Unit,\n) {\n    Scaffold(\n        bottomBar = {\n            val strokeWidth = Dp.Hairline\n            val borderColor = MaterialTheme.colorScheme.outline\n            Column(\n                modifier = Modifier\n                    .background(MaterialTheme.colorScheme.background)\n                    .drawBehind {\n                        drawLine(\n                            borderColor,\n                            Offset(0f, 0f),\n                            Offset(size.width, 0f),\n                            strokeWidth.value,\n                        )\n                    }\n                    .windowInsetsPadding(NavigationBarDefaults.windowInsets)\n                    .padding(\n                        horizontal = MaterialTheme.padding.medium,\n                        vertical = MaterialTheme.padding.small,\n                    ),\n            ) {\n                Button(\n                    modifier = Modifier.fillMaxWidth(),\n                    enabled = canAccept,\n                    onClick = onAcceptClick,\n                ) {\n                    Text(text = acceptText)\n                }\n                if (rejectText != null && onRejectClick != null) {\n                    OutlinedButton(\n                        modifier = Modifier.fillMaxWidth(),\n                        onClick = onRejectClick,\n                    ) {\n                        Text(text = rejectText)\n                    }\n                }\n            }\n        },\n    ) { paddingValues ->\n        // Status bar scrim\n        Box(\n            modifier = Modifier\n                .zIndex(2f)\n                .secondaryItemAlpha()\n                .background(MaterialTheme.colorScheme.background)\n                .fillMaxWidth()\n                .height(paddingValues.calculateTopPadding()),\n        )\n\n        Column(\n            modifier = Modifier\n                .verticalScroll(rememberScrollState())\n                .fillMaxWidth()\n                .padding(paddingValues)\n                .padding(top = 48.dp)\n                .padding(horizontal = MaterialTheme.padding.medium),\n        ) {\n            Icon(\n                imageVector = icon,\n                contentDescription = null,\n                modifier = Modifier\n                    .padding(bottom = MaterialTheme.padding.small)\n                    .size(48.dp),\n                tint = MaterialTheme.colorScheme.primary,\n            )\n            Text(\n                text = headingText,\n                style = MaterialTheme.typography.headlineLarge,\n            )\n            Text(\n                text = subtitleText,\n                modifier = Modifier\n                    .secondaryItemAlpha()\n                    .padding(vertical = MaterialTheme.padding.small),\n                style = MaterialTheme.typography.titleSmall,\n            )\n\n            content()\n        }\n    }\n}\n\n@PreviewLightDark\n@Composable\nprivate fun InfoScaffoldPreview() {\n    InfoScreen(\n        icon = Icons.Outlined.Newspaper,\n        headingText = \"Heading\",\n        subtitleText = \"Subtitle\",\n        acceptText = \"Accept\",\n        onAcceptClick = {},\n        rejectText = \"Reject\",\n        onRejectClick = {},\n    ) {\n        Text(\"Hello world\")\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/screens/LoadingScreen.kt",
    "content": "package tachiyomi.presentation.core.screens\n\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\n\n@Composable\nfun LoadingScreen(modifier: Modifier = Modifier) {\n    Box(\n        modifier = modifier.fillMaxSize(),\n        contentAlignment = Alignment.Center,\n    ) {\n        CircularProgressIndicator()\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/theme/Color.kt",
    "content": "package tachiyomi.presentation.core.theme\n\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.material3.ColorScheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.graphics.Color\n\nval ColorScheme.active: Color\n    @Composable\n    get() {\n        return if (isSystemInDarkTheme()) Color(255, 235, 59) else Color(255, 193, 7)\n    }\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/theme/Typography.kt",
    "content": "package tachiyomi.presentation.core.theme\n\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Typography\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.text.TextStyle\nimport androidx.compose.ui.text.font.FontWeight\n\nval Typography.header: TextStyle\n    @Composable\n    get() = bodyMedium.copy(\n        color = MaterialTheme.colorScheme.onSurfaceVariant,\n        fontWeight = FontWeight.SemiBold,\n    )\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/util/Elevation.kt",
    "content": "/*\n * Copyright 2021 The Android Open Source Project\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Straight copy from Compose M3 for Button fork\n */\n\npackage tachiyomi.presentation.core.util\n\nimport androidx.compose.animation.core.Animatable\nimport androidx.compose.animation.core.AnimationSpec\nimport androidx.compose.animation.core.CubicBezierEasing\nimport androidx.compose.animation.core.Easing\nimport androidx.compose.animation.core.FastOutSlowInEasing\nimport androidx.compose.animation.core.TweenSpec\nimport androidx.compose.foundation.interaction.DragInteraction\nimport androidx.compose.foundation.interaction.FocusInteraction\nimport androidx.compose.foundation.interaction.HoverInteraction\nimport androidx.compose.foundation.interaction.Interaction\nimport androidx.compose.foundation.interaction.PressInteraction\nimport androidx.compose.ui.unit.Dp\n\n/**\n * Animates the [Dp] value of [this] between [from] and [to] [Interaction]s, to [target]. The\n * [AnimationSpec] used depends on the values for [from] and [to], see\n * [ElevationDefaults.incomingAnimationSpecForInteraction] and\n * [ElevationDefaults.outgoingAnimationSpecForInteraction] for more details.\n *\n * @param target the [Dp] target elevation for this component, corresponding to the elevation\n * desired for the [to] state.\n * @param from the previous [Interaction] that was used to calculate elevation. `null` if there\n * was no previous [Interaction], such as when the component is in its default state.\n * @param to the [Interaction] that this component is moving to, such as [PressInteraction.Press]\n * when this component is being pressed. `null` if this component is moving back to its default\n * state.\n */\nsuspend fun Animatable<Dp, *>.animateElevation(\n    target: Dp,\n    from: Interaction? = null,\n    to: Interaction? = null,\n) {\n    val spec = when {\n        // Moving to a new state\n        to != null -> ElevationDefaults.incomingAnimationSpecForInteraction(to)\n        // Moving to default, from a previous state\n        from != null -> ElevationDefaults.outgoingAnimationSpecForInteraction(from)\n        // Loading the initial state, or moving back to the baseline state from a disabled /\n        // unknown state, so just snap to the final value.\n        else -> null\n    }\n    if (spec != null) animateTo(target, spec) else snapTo(target)\n}\n\n/**\n * Contains default [AnimationSpec]s used for animating elevation between different [Interaction]s.\n *\n * Typically you should use [animateElevation] instead, which uses these [AnimationSpec]s\n * internally. [animateElevation] in turn is used by the defaults for cards and buttons.\n *\n * @see animateElevation\n */\nprivate object ElevationDefaults {\n    /**\n     * Returns the [AnimationSpec]s used when animating elevation to [interaction], either from a\n     * previous [Interaction], or from the default state. If [interaction] is unknown, then\n     * returns `null`.\n     *\n     * @param interaction the [Interaction] that is being animated to\n     */\n    fun incomingAnimationSpecForInteraction(interaction: Interaction): AnimationSpec<Dp>? {\n        return when (interaction) {\n            is PressInteraction.Press -> DefaultIncomingSpec\n            is DragInteraction.Start -> DefaultIncomingSpec\n            is HoverInteraction.Enter -> DefaultIncomingSpec\n            is FocusInteraction.Focus -> DefaultIncomingSpec\n            else -> null\n        }\n    }\n\n    /**\n     * Returns the [AnimationSpec]s used when animating elevation away from [interaction], to the\n     * default state. If [interaction] is unknown, then returns `null`.\n     *\n     * @param interaction the [Interaction] that is being animated away from\n     */\n    fun outgoingAnimationSpecForInteraction(interaction: Interaction): AnimationSpec<Dp>? {\n        return when (interaction) {\n            is PressInteraction.Press -> DefaultOutgoingSpec\n            is DragInteraction.Start -> DefaultOutgoingSpec\n            is HoverInteraction.Enter -> HoveredOutgoingSpec\n            is FocusInteraction.Focus -> DefaultOutgoingSpec\n            else -> null\n        }\n    }\n}\n\nprivate val OutgoingSpecEasing: Easing = CubicBezierEasing(0.40f, 0.00f, 0.60f, 1.00f)\n\nprivate val DefaultIncomingSpec = TweenSpec<Dp>(\n    durationMillis = 120,\n    easing = FastOutSlowInEasing,\n)\n\nprivate val DefaultOutgoingSpec = TweenSpec<Dp>(\n    durationMillis = 150,\n    easing = OutgoingSpecEasing,\n)\n\nprivate val HoveredOutgoingSpec = TweenSpec<Dp>(\n    durationMillis = 120,\n    easing = OutgoingSpecEasing,\n)\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/util/LazyListState.kt",
    "content": "package tachiyomi.presentation.core.util\n\nimport androidx.compose.foundation.lazy.LazyListState\n\nfun LazyListState.shouldExpandFAB(): Boolean = lastScrolledBackward || !canScrollForward || !canScrollBackward\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/util/Modifier.kt",
    "content": "package tachiyomi.presentation.core.util\n\nimport androidx.compose.foundation.combinedClickable\nimport androidx.compose.foundation.isSystemInDarkTheme\nimport androidx.compose.foundation.layout.WindowInsets\nimport androidx.compose.foundation.layout.isImeVisible\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.saveable.rememberSaveable\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.alpha\nimport androidx.compose.ui.draw.drawBehind\nimport androidx.compose.ui.focus.FocusRequester\nimport androidx.compose.ui.focus.focusRequester\nimport androidx.compose.ui.focus.onFocusChanged\nimport androidx.compose.ui.input.key.Key\nimport androidx.compose.ui.input.key.KeyEventType\nimport androidx.compose.ui.input.key.key\nimport androidx.compose.ui.input.key.onPreviewKeyEvent\nimport androidx.compose.ui.input.key.type\nimport androidx.compose.ui.platform.LocalFocusManager\nimport tachiyomi.presentation.core.components.material.SECONDARY_ALPHA\n\n@Composable\nfun Modifier.selectedBackground(isSelected: Boolean): Modifier {\n    if (!isSelected) return this\n    val alpha = if (isSystemInDarkTheme()) 0.16f else 0.22f\n    val color = MaterialTheme.colorScheme.secondary.copy(alpha = alpha)\n    return this.drawBehind { drawRect(color) }\n}\n\nfun Modifier.secondaryItemAlpha(): Modifier = this.alpha(SECONDARY_ALPHA)\n\nfun Modifier.clickableNoIndication(\n    onLongClick: (() -> Unit)? = null,\n    onClick: () -> Unit,\n) = this.combinedClickable(\n    interactionSource = null,\n    indication = null,\n    onLongClick = onLongClick,\n    onClick = onClick,\n)\n\n/**\n * For TextField, the provided [action] will be invoked when\n * physical enter key is pressed.\n *\n * Naturally, the TextField should be set to single line only.\n */\nfun Modifier.runOnEnterKeyPressed(action: () -> Unit): Modifier = this.onPreviewKeyEvent {\n    when (it.key) {\n        Key.Enter, Key.NumPadEnter -> {\n            // Physical keyboards generate two event types:\n            // - KeyDown when the key is pressed\n            // - KeyUp when the key is released\n            if (it.type == KeyEventType.KeyDown) {\n                action()\n                true\n            } else {\n                false\n            }\n        }\n\n        else -> false\n    }\n}\n\n/**\n * For TextField on AppBar, this modifier will request focus\n * to the element the first time it's composed.\n */\n@Composable\nfun Modifier.showSoftKeyboard(show: Boolean): Modifier {\n    if (!show) return this\n    val focusRequester = remember { FocusRequester() }\n    var openKeyboard by rememberSaveable { mutableStateOf(show) }\n    LaunchedEffect(focusRequester) {\n        if (openKeyboard) {\n            focusRequester.requestFocus()\n            openKeyboard = false\n        }\n    }\n    return this.focusRequester(focusRequester)\n}\n\n/**\n * For TextField, this modifier will clear focus when soft\n * keyboard is hidden.\n */\n@Composable\nfun Modifier.clearFocusOnSoftKeyboardHide(\n    onFocusCleared: (() -> Unit)? = null,\n): Modifier {\n    var isFocused by remember { mutableStateOf(false) }\n    var keyboardShowedSinceFocused by remember { mutableStateOf(false) }\n    if (isFocused) {\n        val imeVisible = WindowInsets.isImeVisible\n        val focusManager = LocalFocusManager.current\n        LaunchedEffect(imeVisible) {\n            if (imeVisible) {\n                keyboardShowedSinceFocused = true\n            } else if (keyboardShowedSinceFocused) {\n                focusManager.clearFocus()\n                onFocusCleared?.invoke()\n            }\n        }\n    }\n\n    return this.onFocusChanged {\n        if (isFocused != it.isFocused) {\n            if (isFocused) {\n                keyboardShowedSinceFocused = false\n            }\n            isFocused = it.isFocused\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/util/PaddingValues.kt",
    "content": "package tachiyomi.presentation.core.util\n\nimport androidx.compose.foundation.layout.PaddingValues\nimport androidx.compose.foundation.layout.calculateEndPadding\nimport androidx.compose.foundation.layout.calculateStartPadding\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.ReadOnlyComposable\nimport androidx.compose.ui.platform.LocalLayoutDirection\n\n@Composable\n@ReadOnlyComposable\noperator fun PaddingValues.plus(other: PaddingValues): PaddingValues {\n    val layoutDirection = LocalLayoutDirection.current\n    return PaddingValues(\n        start = calculateStartPadding(layoutDirection) +\n            other.calculateStartPadding(layoutDirection),\n        end = calculateEndPadding(layoutDirection) +\n            other.calculateEndPadding(layoutDirection),\n        top = calculateTopPadding() + other.calculateTopPadding(),\n        bottom = calculateBottomPadding() + other.calculateBottomPadding(),\n    )\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/util/Preference.kt",
    "content": "package tachiyomi.presentation.core.util\n\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.State\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.remember\nimport tachiyomi.core.common.preference.Preference\n\n@Composable\nfun <T> Preference<T>.collectAsState(): State<T> {\n    val flow = remember(this) { changes() }\n    return flow.collectAsState(initial = get())\n}\n"
  },
  {
    "path": "presentation-core/src/main/java/tachiyomi/presentation/core/util/Scrollbar.kt",
    "content": "package tachiyomi.presentation.core.util\n\n/*\n * MIT License\n *\n * Copyright (c) 2022 Albert Chang\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/*\n * Code taken from https://gist.github.com/mxalbert1996/33a360fcab2105a31e5355af98216f5a\n * with some modifications to handle contentPadding.\n *\n * Modifiers for regular scrollable list is omitted.\n */\n\nimport android.view.ViewConfiguration\nimport androidx.compose.animation.core.Animatable\nimport androidx.compose.animation.core.tween\nimport androidx.compose.foundation.gestures.Orientation\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.lazy.LazyColumn\nimport androidx.compose.foundation.lazy.LazyListState\nimport androidx.compose.foundation.lazy.LazyRow\nimport androidx.compose.foundation.lazy.rememberLazyListState\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.draw.drawWithContent\nimport androidx.compose.ui.geometry.Offset\nimport androidx.compose.ui.geometry.Size\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.graphics.drawscope.ContentDrawScope\nimport androidx.compose.ui.graphics.drawscope.DrawScope\nimport androidx.compose.ui.input.nestedscroll.NestedScrollConnection\nimport androidx.compose.ui.input.nestedscroll.NestedScrollSource\nimport androidx.compose.ui.input.nestedscroll.nestedScroll\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.platform.LocalLayoutDirection\nimport androidx.compose.ui.tooling.preview.Preview\nimport androidx.compose.ui.unit.LayoutDirection\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.util.fastFirstOrNull\nimport androidx.compose.ui.util.fastSumBy\nimport kotlinx.coroutines.channels.BufferOverflow\nimport kotlinx.coroutines.delay\nimport kotlinx.coroutines.flow.MutableSharedFlow\nimport kotlinx.coroutines.flow.collectLatest\nimport kotlinx.coroutines.flow.sample\nimport tachiyomi.presentation.core.components.Scroller.STICKY_HEADER_KEY_PREFIX\n\n/**\n * Draws horizontal scrollbar to a LazyList.\n *\n * Set key with [STICKY_HEADER_KEY_PREFIX] prefix to any sticky header item in the list.\n */\n@Composable\nfun Modifier.drawHorizontalScrollbar(\n    state: LazyListState,\n    reverseScrolling: Boolean = false,\n    // The amount of offset the scrollbar position towards the top of the layout\n    positionOffsetPx: Float = 0f,\n): Modifier = drawScrollbar(state, Orientation.Horizontal, reverseScrolling, positionOffsetPx)\n\n/**\n * Draws vertical scrollbar to a LazyList.\n *\n * Set key with [STICKY_HEADER_KEY_PREFIX] prefix to any sticky header item in the list.\n */\n@Composable\nfun Modifier.drawVerticalScrollbar(\n    state: LazyListState,\n    reverseScrolling: Boolean = false,\n    // The amount of offset the scrollbar position towards the start of the layout\n    positionOffsetPx: Float = 0f,\n): Modifier = drawScrollbar(state, Orientation.Vertical, reverseScrolling, positionOffsetPx)\n\n@Composable\nprivate fun Modifier.drawScrollbar(\n    state: LazyListState,\n    orientation: Orientation,\n    reverseScrolling: Boolean,\n    positionOffset: Float,\n): Modifier = drawScrollbar(\n    orientation,\n    reverseScrolling,\n) { reverseDirection, atEnd, thickness, color, alpha ->\n    val layoutInfo = state.layoutInfo\n    val viewportSize = if (orientation == Orientation.Horizontal) {\n        layoutInfo.viewportSize.width\n    } else {\n        layoutInfo.viewportSize.height\n    } - layoutInfo.beforeContentPadding - layoutInfo.afterContentPadding\n    val items = layoutInfo.visibleItemsInfo\n    val itemsSize = items.fastSumBy { it.size }\n    val showScrollbar = items.size < layoutInfo.totalItemsCount || itemsSize > viewportSize\n    val estimatedItemSize = if (items.isEmpty()) 0f else itemsSize.toFloat() / items.size\n    val totalSize = estimatedItemSize * layoutInfo.totalItemsCount\n    val thumbSize = viewportSize / totalSize * viewportSize\n    val startOffset = if (items.isEmpty()) {\n        0f\n    } else {\n        items\n            .fastFirstOrNull { (it.key as? String)?.startsWith(STICKY_HEADER_KEY_PREFIX)?.not() ?: true }\n            ?.run {\n                val startPadding = if (reverseDirection) {\n                    layoutInfo.afterContentPadding\n                } else {\n                    layoutInfo.beforeContentPadding\n                }\n                startPadding + ((estimatedItemSize * index - offset) / totalSize * viewportSize)\n            } ?: 0f\n    }\n    val drawScrollbar = onDrawScrollbar(\n        orientation, reverseDirection, atEnd, showScrollbar,\n        thickness, color, alpha, thumbSize, startOffset, positionOffset,\n    )\n    drawContent()\n    drawScrollbar()\n}\n\nprivate fun ContentDrawScope.onDrawScrollbar(\n    orientation: Orientation,\n    reverseDirection: Boolean,\n    atEnd: Boolean,\n    showScrollbar: Boolean,\n    thickness: Float,\n    color: Color,\n    alpha: () -> Float,\n    thumbSize: Float,\n    scrollOffset: Float,\n    positionOffset: Float,\n): DrawScope.() -> Unit {\n    val topLeft = if (orientation == Orientation.Horizontal) {\n        Offset(\n            if (reverseDirection) size.width - scrollOffset - thumbSize else scrollOffset,\n            if (atEnd) size.height - positionOffset - thickness else positionOffset,\n        )\n    } else {\n        Offset(\n            if (atEnd) size.width - positionOffset - thickness else positionOffset,\n            if (reverseDirection) size.height - scrollOffset - thumbSize else scrollOffset,\n        )\n    }\n    val size = if (orientation == Orientation.Horizontal) {\n        Size(thumbSize, thickness)\n    } else {\n        Size(thickness, thumbSize)\n    }\n\n    return {\n        if (showScrollbar) {\n            drawRect(\n                color = color,\n                topLeft = topLeft,\n                size = size,\n                alpha = alpha(),\n            )\n        }\n    }\n}\n\n@Composable\nprivate fun Modifier.drawScrollbar(\n    orientation: Orientation,\n    reverseScrolling: Boolean,\n    onDraw: ContentDrawScope.(\n        reverseDirection: Boolean,\n        atEnd: Boolean,\n        thickness: Float,\n        color: Color,\n        alpha: () -> Float,\n    ) -> Unit,\n): Modifier {\n    val scrolled = remember {\n        MutableSharedFlow<Unit>(\n            extraBufferCapacity = 1,\n            onBufferOverflow = BufferOverflow.DROP_OLDEST,\n        )\n    }\n    val nestedScrollConnection = remember(orientation, scrolled) {\n        object : NestedScrollConnection {\n            override fun onPostScroll(\n                consumed: Offset,\n                available: Offset,\n                source: NestedScrollSource,\n            ): Offset {\n                val delta = if (orientation == Orientation.Horizontal) consumed.x else consumed.y\n                if (delta != 0f) scrolled.tryEmit(Unit)\n                return Offset.Zero\n            }\n        }\n    }\n\n    val alpha = remember { Animatable(0f) }\n    LaunchedEffect(scrolled, alpha) {\n        scrolled\n            .sample(100)\n            .collectLatest {\n                alpha.snapTo(1f)\n                delay(ScrollBarVisibilityDurationMillis)\n                alpha.animateTo(0f, animationSpec = ImmediateFadeOutAnimationSpec)\n            }\n    }\n\n    val isLtr = LocalLayoutDirection.current == LayoutDirection.Ltr\n    val reverseDirection = if (orientation == Orientation.Horizontal) {\n        if (isLtr) reverseScrolling else !reverseScrolling\n    } else {\n        reverseScrolling\n    }\n    val atEnd = if (orientation == Orientation.Vertical) isLtr else true\n\n    val context = LocalContext.current\n    val thickness = remember { ViewConfiguration.get(context).scaledScrollBarSize.toFloat() }\n    val color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.364f)\n\n    return this\n        .nestedScroll(nestedScrollConnection)\n        .drawWithContent {\n            onDraw(reverseDirection, atEnd, thickness, color, alpha::value)\n        }\n}\n\nprivate val ScrollBarVisibilityDurationMillis = ViewConfiguration.getScrollDefaultDelay().toLong()\nprivate val ImmediateFadeOutAnimationSpec = tween<Float>(\n    durationMillis = ViewConfiguration.getScrollBarFadeDuration(),\n)\n\n@Preview(widthDp = 400, heightDp = 400, showBackground = true)\n@Composable\nfun LazyListScrollbarPreview() {\n    val state = rememberLazyListState()\n    LazyColumn(\n        modifier = Modifier.drawVerticalScrollbar(state),\n        state = state,\n    ) {\n        items(50) {\n            Text(\n                text = \"Item ${it + 1}\",\n                modifier = Modifier\n                    .fillMaxWidth()\n                    .padding(16.dp),\n            )\n        }\n    }\n}\n\n@Preview(widthDp = 400, showBackground = true)\n@Composable\nfun LazyListHorizontalScrollbarPreview() {\n    val state = rememberLazyListState()\n    LazyRow(\n        modifier = Modifier.drawHorizontalScrollbar(state),\n        state = state,\n    ) {\n        items(50) {\n            Text(\n                text = (it + 1).toString(),\n                modifier = Modifier\n                    .padding(horizontal = 8.dp, vertical = 16.dp),\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"splash\">@color/accent_blue</color>\n\n    <color name=\"cover_placeholder\">#1F888888</color>\n\n    <!-- Default Theme -->\n    <color name=\"divider_default\">@color/md_black_1000_12</color>\n\n    <!-- Blue Theme -->\n    <color name=\"accent_blue\">#54759E</color>\n\n    <!-- AMOLED Mode -->\n    <color name=\"amoled_background\">#000000</color>\n    <color name=\"amoled_onBackground\">#FFFFFF</color>\n    <color name=\"amoled_surface\">#000000</color>\n    <color name=\"amoled_onSurface\">#FFFFFF</color>\n    <color name=\"amoled_surfaceContainer\">#0C0C0C</color>\n    <color name=\"amoled_surfaceContainerHigh\">#131313</color>\n    <color name=\"amoled_surfaceContainerHighest\">#1B1B1B</color>\n\n    <!-- Material Design Colors -->\n    <color name=\"md_black_1000_12\">#1F000000</color>\n    <color name=\"md_white_1000_12\">#1FFFFFFF</color>\n\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_catppuccin.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Catppuccin theme\n  ~ MIT License\n  ~ Copyright (c) 2021 Catppuccin\n  ~ https://catppuccin.com\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #8839EF\n  ~ Secondary #8839EF\n  ~ Tertiary #8839EF\n  ~ Neutral #E6E9EF\n-->\n<resources>\n    <color name=\"catppuccin_primary\">#8839EF</color>\n    <color name=\"catppuccin_onPrimary\">#DCE0E8</color>\n    <color name=\"catppuccin_primaryContainer\">#8839EF</color>\n    <color name=\"catppuccin_onPrimaryContainer\">#DCE0E8</color>\n    <color name=\"catppuccin_secondary\">#8839EF</color>\n    <color name=\"catppuccin_onSecondary\">#DCE0E8</color>\n    <color name=\"catppuccin_secondaryContainer\">#CDD0DA</color>\n    <color name=\"catppuccin_onSecondaryContainer\">#8839EF</color>\n    <color name=\"catppuccin_tertiary\">#8839EF</color>\n    <color name=\"catppuccin_onTertiary\">#DCE0E8</color>\n    <color name=\"catppuccin_tertiaryContainer\">#EFF1F5</color>\n    <color name=\"catppuccin_onTertiaryContainer\">#CDD6F4</color>\n    <color name=\"catppuccin_error\">#D20F39</color>\n    <color name=\"catppuccin_onError\">#DCE0E8</color>\n    <color name=\"catppuccin_errorContainer\">#FF68001C</color>\n    <color name=\"catppuccin_onErrorContainer\">#D61C41</color>\n    <color name=\"catppuccin_background\">#E6E9EF</color>\n    <color name=\"catppuccin_onBackground\">#4C4F69</color>\n    <color name=\"catppuccin_surface\">#E6E9EF</color>\n    <color name=\"catppuccin_onSurface\">#4C4F69</color>\n    <color name=\"catppuccin_surfaceVariant\">#EFF1F5</color>\n    <color name=\"catppuccin_onSurfaceVariant\">#4C4F69</color>\n    <color name=\"catppuccin_outline\">#8839EF</color>\n    <color name=\"catppuccin_outlineVariant\">#ACB0BE</color>\n    <color name=\"catppuccin_scrim\">#FFDCE0E8</color>\n    <color name=\"catppuccin_inverseSurface\">#1E1E2E</color>\n    <color name=\"catppuccin_inverseOnSurface\">#CDD6F4</color>\n    <color name=\"catppuccin_inversePrimary\">#CBA6F7</color>\n    <color name=\"catppuccin_surfaceDim\">#E6E9EF</color>\n    <color name=\"catppuccin_surfaceBright\">#CDD0DA</color>\n    <color name=\"catppuccin_surfaceContainerLowest\">#FFE6E9EF</color>\n    <color name=\"catppuccin_surfaceContainerLow\">#EFF1F5</color>\n    <color name=\"catppuccin_surfaceContainer\">#EFF1F5</color>\n    <color name=\"catppuccin_surfaceContainerHigh\">#EFF1F5</color>\n    <color name=\"catppuccin_surfaceContainerHighest\">#CDD0DA</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_greenapple.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Green Apple theme\n  ~ Original color scheme by CarlosEsco, Jays2Kings and CrepeTF\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #188140\n  ~ Secondary #188140\n  ~ Tertiary #D33131\n  ~ Neutral #5D5F5B\n-->\n<resources>\n    <color name=\"greenapple_primary\">#005927</color>\n    <color name=\"greenapple_onPrimary\">#FFFFFF</color>\n    <color name=\"greenapple_primaryContainer\">#188140</color>\n    <color name=\"greenapple_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"greenapple_secondary\">#005927</color>\n    <color name=\"greenapple_onSecondary\">#FFFFFF</color>\n    <color name=\"greenapple_secondaryContainer\">#97f7a9</color>\n    <color name=\"greenapple_onSecondaryContainer\">#000000</color>\n    <color name=\"greenapple_tertiary\">#9D0012</color>\n    <color name=\"greenapple_onTertiary\">#FFFFFF</color>\n    <color name=\"greenapple_tertiaryContainer\">#D33131</color>\n    <color name=\"greenapple_onTertiaryContainer\">#FFFFFF</color>\n    <color name=\"greenapple_error\">#BA1A1A</color>\n    <color name=\"greenapple_onError\">#FFFFFF</color>\n    <color name=\"greenapple_errorContainer\">#FFDAD6</color>\n    <color name=\"greenapple_onErrorContainer\">#410002</color>\n    <color name=\"greenapple_background\">#F6FBF2</color>\n    <color name=\"greenapple_onBackground\">#181D18</color>\n    <color name=\"greenapple_surface\">#F6FBF2</color>\n    <color name=\"greenapple_onSurface\">#181D18</color>\n    <color name=\"greenapple_surfaceVariant\">#DAE6D7</color>\n    <color name=\"greenapple_onSurfaceVariant\">#3F493F</color>\n    <color name=\"greenapple_outline\">#6F7A6E</color>\n    <color name=\"greenapple_outlineVariant\">#BECABC</color>\n    <color name=\"greenapple_scrim\">#000000</color>\n    <color name=\"greenapple_inverseSurface\">#2C322C</color>\n    <color name=\"greenapple_inverseOnSurface\">#EDF2E9</color>\n    <color name=\"greenapple_inversePrimary\">#7ADB8F</color>\n    <color name=\"greenapple_surfaceDim\">#D6DCD3</color>\n    <color name=\"greenapple_surfaceBright\">#F6FBF2</color>\n    <color name=\"greenapple_surfaceContainerLowest\">#FFFFFF</color>\n    <color name=\"greenapple_surfaceContainerLow\">#F0F5EC</color>\n    <color name=\"greenapple_surfaceContainer\">#EAEFE6</color>\n    <color name=\"greenapple_surfaceContainerHigh\">#E4EAE1</color>\n    <color name=\"greenapple_surfaceContainerHighest\">#DFE4DB</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_lavender.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Lavender theme\n  ~ Original color scheme by CrepeTF\n  ~\n  ~ Key colors:\n  ~ Primary #7B46AF\n  ~ Secondary #7B46AF\n  ~ Tertiary #EDE2FF\n  ~ Neutral #EDE2FF\n-->\n<resources>\n    <color name=\"lavender_primary\">#6D41C8</color>\n    <color name=\"lavender_onPrimary\">#FFFFFF</color>\n    <color name=\"lavender_primaryContainer\">#7B46AF</color>\n    <color name=\"lavender_onPrimaryContainer\">#130038</color>\n    <color name=\"lavender_secondary\">#7B46AF</color>\n    <color name=\"lavender_onSecondary\">#EDE2FF</color>\n    <color name=\"lavender_secondaryContainer\">#C9B0E6</color>\n    <color name=\"lavender_onSecondaryContainer\">#7B46AF</color>\n    <color name=\"lavender_tertiary\">#EDE2FF</color>\n    <color name=\"lavender_onTertiary\">#7B46AF</color>\n    <color name=\"lavender_tertiaryContainer\">#6D3BF0</color>\n    <color name=\"lavender_onTertiaryContainer\">#FFFFFF</color>\n    <color name=\"lavender_error\">#BA1A1A</color>\n    <color name=\"lavender_onError\">#FFFFFF</color>\n    <color name=\"lavender_errorContainer\">#FFDAD6</color>\n    <color name=\"lavender_onErrorContainer\">#410002</color>\n    <color name=\"lavender_background\">#EDE2FF</color>\n    <color name=\"lavender_onBackground\">#1D1A22</color>\n    <color name=\"lavender_surface\">#EDE2FF</color>\n    <color name=\"lavender_onSurface\">#1D1A22</color>\n    <color name=\"lavender_surfaceVariant\">#E4D5F8</color>\n    <color name=\"lavender_onSurfaceVariant\">#4A4453</color>\n    <color name=\"lavender_outline\">#7B7485</color>\n    <color name=\"lavender_outlineVariant\">#CBC3D6</color>\n    <color name=\"lavender_scrim\">#000000</color>\n    <color name=\"lavender_inverseSurface\">#322F38</color>\n    <color name=\"lavender_inverseOnSurface\">#F5EEFA</color>\n    <color name=\"lavender_inversePrimary\">#A177FF</color>\n    <color name=\"lavender_surfaceDim\">#DED7E3</color>\n    <color name=\"lavender_surfaceBright\">#EDE2FF</color>\n    <color name=\"lavender_surfaceContainerLowest\">#DACCEC</color>\n    <color name=\"lavender_surfaceContainerLow\">#DED0F1</color>\n    <color name=\"lavender_surfaceContainer\">#E4D5F8</color>\n    <color name=\"lavender_surfaceContainerHigh\">#EADCFD</color>\n    <color name=\"lavender_surfaceContainerHighest\">#EEE2FF</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_midnightdusk.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Midnight Dusk theme\n  ~ Original color scheme by CrepeTF\n  ~ M3 color scheme generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #F02475\n  ~ Secondary #F02475\n  ~ Tertiary #7A5733\n  ~ Neutral #16151D\n-->\n<resources>\n    <color name=\"midnightdusk_primary\">#BB0054</color>\n    <color name=\"midnightdusk_onPrimary\">#FFFFFF</color>\n    <color name=\"midnightdusk_primaryContainer\">#FFD9E1</color>\n    <color name=\"midnightdusk_onPrimaryContainer\">#3F0017</color>\n    <color name=\"midnightdusk_inversePrimary\">#FFB1C4</color>\n    <color name=\"midnightdusk_secondary\">#BB0054</color>\n    <color name=\"midnightdusk_onSecondary\">#FFFFFF</color>\n    <color name=\"midnightdusk_secondaryContainer\">#EFBAD4</color>\n    <color name=\"midnightdusk_onSecondaryContainer\">#D1377C</color>\n    <color name=\"midnightdusk_tertiary\">#006638</color>\n    <color name=\"midnightdusk_onTertiary\">#FFFFFF</color>\n    <color name=\"midnightdusk_tertiaryContainer\">#00894b</color>\n    <color name=\"midnightdusk_onTertiaryContainer\">#2D1600</color>\n    <color name=\"midnightdusk_background\">#FFFBFF</color>\n    <color name=\"midnightdusk_onBackground\">#1C1B1F</color>\n    <color name=\"midnightdusk_surface\">#FFFBFF</color>\n    <color name=\"midnightdusk_onSurface\">#1C1B1F</color>\n    <color name=\"midnightdusk_surfaceVariant\">#F9E6F1</color>\n    <color name=\"midnightdusk_onSurfaceVariant\">#524346</color>\n    <color name=\"midnightdusk_surfaceTint\">#BB0054</color>\n    <color name=\"midnightdusk_inverseSurface\">#313033</color>\n    <color name=\"midnightdusk_inverseOnSurface\">#F4F0F4</color>\n    <color name=\"midnightdusk_outline\">#847376</color>\n    <color name=\"midnightdusk_surfaceContainerLowest\">#DAC0CD</color>\n    <color name=\"midnightdusk_surfaceContainerLow\">#E8D1DD</color>\n    <color name=\"midnightdusk_surfaceContainer\">#F9E6F1</color>\n    <color name=\"midnightdusk_surfaceContainerHigh\">#FCF3F8</color>\n    <color name=\"midnightdusk_surfaceContainerHighest\">#FEF9FC</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_monochrome.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"monochrome_primary\">#000000</color>\n    <color name=\"monochrome_onPrimary\">#FFFFFF</color>\n    <color name=\"monochrome_primaryContainer\">#000000</color>\n    <color name=\"monochrome_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"monochrome_secondary\">#000000</color>\n    <color name=\"monochrome_onSecondary\">#FFFFFF</color>\n    <color name=\"monochrome_secondaryContainer\">#888888</color>\n    <color name=\"monochrome_onSecondaryContainer\">#FFFFFF</color>\n    <color name=\"monochrome_tertiary\">#888888</color>\n    <color name=\"monochrome_onTertiary\">#FFFFFF</color>\n    <color name=\"monochrome_tertiaryContainer\">#000000</color>\n    <color name=\"monochrome_onTertiaryContainer\">#FFFFFF</color>\n    <color name=\"monochrome_error\">#000000</color>\n    <color name=\"monochrome_onError\">#FFFFFF</color>\n    <color name=\"monochrome_errorContainer\">#000000</color>\n    <color name=\"monochrome_onErrorContainer\">#FFFFFF</color>\n    <color name=\"monochrome_background\">#FFFFFF</color>\n    <color name=\"monochrome_onBackground\">#000000</color>\n    <color name=\"monochrome_surface\">#FFFFFF</color>\n    <color name=\"monochrome_onSurface\">#000000</color>\n    <color name=\"monochrome_surfaceVariant\">#FFFFFF</color>\n    <color name=\"monochrome_onSurfaceVariant\">#000000</color>\n    <color name=\"monochrome_outline\">#000000</color>\n    <color name=\"monochrome_outlineVariant\">#000000</color>\n    <color name=\"monochrome_scrim\">#000000</color>\n    <color name=\"monochrome_inverseSurface\">#000000</color>\n    <color name=\"monochrome_inverseOnSurface\">#FFFFFF</color>\n    <color name=\"monochrome_inversePrimary\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceDim\">#000000</color>\n    <color name=\"monochrome_surfaceBright\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceContainerLowest\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceContainerLow\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceContainer\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceContainerHigh\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceContainerHighest\">#FFFFFF</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_nord.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--https://www.nordtheme.com/docs/colors-and-palettes-->\n<!--for the light theme, the primary color is switched with the tertiary for better contrast in some case-->\n<resources>\n    <color name=\"nord_primary\">#5E81AC</color>\n    <color name=\"nord_onPrimary\">#000000</color>\n    <color name=\"nord_primaryContainer\">#5E81AC</color>\n    <color name=\"nord_onPrimaryContainer\">#000000</color>\n    <color name=\"nord_inversePrimary\">#8CA8CD</color>\n    <color name=\"nord_secondary\">#81A1C1</color>\n    <color name=\"nord_onSecondary\">#2E3440</color>\n    <color name=\"nord_secondaryContainer\">#91B4D7</color>\n    <color name=\"nord_onSecondaryContainer\">#2E3440</color>\n    <color name=\"nord_tertiary\">#88C0D0</color>\n    <color name=\"nord_onTertiary\">#2E3440</color>\n    <color name=\"nord_tertiaryContainer\">#88C0D0</color>\n    <color name=\"nord_onTertiaryContainer\">#2E3440</color>\n    <color name=\"nord_background\">#ECEFF4</color>\n    <color name=\"nord_onBackground\">#2E3440</color>\n    <color name=\"nord_surface\">#E5E9F0</color>\n    <color name=\"nord_onSurface\">#2E3440</color>\n    <color name=\"nord_surfaceVariant\">#DAE0EA</color>\n    <color name=\"nord_onSurfaceVariant\">#2E3440</color>\n    <color name=\"nord_surfaceTint\">#5E81AC</color>\n    <color name=\"nord_inverseSurface\">#3B4252</color>\n    <color name=\"nord_inverseOnSurface\">#ECEFF4</color>\n    <color name=\"nord_outline\">#2E3440</color>\n    <color name=\"nord_onError\">#ECEFF4</color>\n    <color name=\"nord_errorContainer\">#BF616A</color>\n    <color name=\"nord_onErrorContainer\">#000000</color>\n    <color name=\"nord_surfaceContainerLowest\">#D1D7E0</color>\n    <color name=\"nord_surfaceContainerLow\">#D6DCE6</color>\n    <color name=\"nord_surfaceContainer\">#DAE0EA</color>\n    <color name=\"nord_surfaceContainerHigh\">#E9EDF3</color>\n    <color name=\"nord_surfaceContainerHighest\">#F2F4F8</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_strawberry.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Strawberry Daiquiri theme\n  ~ Original color scheme by Soitora\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #ED4A65\n  ~ Secondary #ED4A65\n  ~ Tertiary #775930\n  ~ Neutral #655C5C\n-->\n<resources>\n    <color name=\"strawberry_primary\">#A10833</color>\n    <color name=\"strawberry_onPrimary\">#FFFFFF</color>\n    <color name=\"strawberry_primaryContainer\">#D53855</color>\n    <color name=\"strawberry_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"strawberry_secondary\">#A10833</color>\n    <color name=\"strawberry_onSecondary\">#FFFFFF</color>\n    <color name=\"strawberry_secondaryContainer\">#D53855</color>\n    <color name=\"strawberry_onSecondaryContainer\">#F6EAED</color>\n    <color name=\"strawberry_tertiary\">#5F441D</color>\n    <color name=\"strawberry_onTertiary\">#FFFFFF</color>\n    <color name=\"strawberry_tertiaryContainer\">#87683D</color>\n    <color name=\"strawberry_onTertiaryContainer\">#FFFFFF</color>\n    <color name=\"strawberry_error\">#BA1A1A</color>\n    <color name=\"strawberry_onError\">#FFFFFF</color>\n    <color name=\"strawberry_errorContainer\">#FFDAD6</color>\n    <color name=\"strawberry_onErrorContainer\">#410002</color>\n    <color name=\"strawberry_background\">#FAFAFA</color>\n    <color name=\"strawberry_onBackground\">#261819</color>\n    <color name=\"strawberry_surface\">#FAFAFA</color>\n    <color name=\"strawberry_onSurface\">#261819</color>\n    <color name=\"strawberry_surfaceVariant\">#F6EAED</color>\n    <color name=\"strawberry_onSurfaceVariant\">#594042</color>\n    <color name=\"strawberry_outline\">#8D7071</color>\n    <color name=\"strawberry_outlineVariant\">#E1BEC0</color>\n    <color name=\"strawberry_scrim\">#000000</color>\n    <color name=\"strawberry_inverseSurface\">#3D2C2D</color>\n    <color name=\"strawberry_inverseOnSurface\">#FFECED</color>\n    <color name=\"strawberry_inversePrimary\">#FFB2B8</color>\n    <color name=\"strawberry_surfaceDim\">#EED4D5</color>\n    <color name=\"strawberry_surfaceBright\">#FFF8F7</color>\n    <color name=\"strawberry_surfaceContainerLowest\">#F7DCDD</color>\n    <color name=\"strawberry_surfaceContainerLow\">#FDE2E3</color>\n    <color name=\"strawberry_surfaceContainer\">#F6EAED</color>\n    <color name=\"strawberry_surfaceContainerHigh\">#FFF0F0</color>\n    <color name=\"strawberry_surfaceContainerHighest\">#FFFFFF</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_tachiyomi.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Default theme\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #2979FF\n  ~ Secondary #2979FF\n  ~ Tertiary #47A84A\n  ~ Neutral #5E5E62\n-->\n<resources>\n    <color name=\"tachiyomi_primary\">#0058CA</color>\n    <color name=\"tachiyomi_onPrimary\">#FFFFFF</color>\n    <color name=\"tachiyomi_primaryContainer\">#D9E2FF</color>\n    <color name=\"tachiyomi_onPrimaryContainer\">#001945</color>\n    <color name=\"tachiyomi_inversePrimary\">#B0C6FF</color>\n    <color name=\"tachiyomi_secondary\">#0058CA</color>\n    <color name=\"tachiyomi_onSecondary\">#FFFFFF</color>\n    <color name=\"tachiyomi_secondaryContainer\">#D9E2FF</color>\n    <color name=\"tachiyomi_onSecondaryContainer\">#001945</color>\n    <color name=\"tachiyomi_tertiary\">#006E1B</color>\n    <color name=\"tachiyomi_onTertiary\">#FFFFFF</color>\n    <color name=\"tachiyomi_tertiaryContainer\">#95F990</color>\n    <color name=\"tachiyomi_onTertiaryContainer\">#002203</color>\n    <color name=\"tachiyomi_background\">#FEFBFF</color>\n    <color name=\"tachiyomi_onBackground\">#1B1B1F</color>\n    <color name=\"tachiyomi_surface\">#FEFBFF</color>\n    <color name=\"tachiyomi_onSurface\">#1B1B1F</color>\n    <color name=\"tachiyomi_surfaceVariant\">#F3EDF7</color>\n    <color name=\"tachiyomi_onSurfaceVariant\">#44464F</color>\n    <color name=\"tachiyomi_surfaceTint\">#0058CA</color>\n    <color name=\"tachiyomi_inverseSurface\">#303034</color>\n    <color name=\"tachiyomi_inverseOnSurface\">#F2F0F4</color>\n    <color name=\"tachiyomi_error\">#BA1A1A</color>\n    <color name=\"tachiyomi_onError\">#FFFFFF</color>\n    <color name=\"tachiyomi_errorContainer\">#FFDAD6</color>\n    <color name=\"tachiyomi_onErrorContainer\">#410002</color>\n    <color name=\"tachiyomi_outline\">#757780</color>\n    <color name=\"tachiyomi_outlineVariant\">#C5C6D0</color>\n    <color name=\"tachiyomi_surfaceContainerLowest\">#F5F1F8</color>\n    <color name=\"tachiyomi_surfaceContainerLow\">#F7F2FA</color>\n    <color name=\"tachiyomi_surfaceContainer\">#F3EDF7</color>\n    <color name=\"tachiyomi_surfaceContainerHigh\">#FCF7FF</color>\n    <color name=\"tachiyomi_surfaceContainerHighest\">#FCF7FF</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_tako.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Tako theme\n  ~ Original color scheme by ghostbear\n  ~ M3 colors generated by yours truly\n  ~\n  ~ Key colors:\n  ~ Primary #66577E\n  ~ Secondary #66577E\n  ~ Tertiary #F3B375\n  ~ Neutral #F7F5FF\n-->\n<resources>\n    <color name=\"tako_primary\">#66577E</color>\n    <color name=\"tako_onPrimary\">#F3B375</color>\n    <color name=\"tako_primaryContainer\">#66577E</color>\n    <color name=\"tako_onPrimaryContainer\">#F3B375</color>\n    <color name=\"tako_inversePrimary\">#D6BAFF</color>\n    <color name=\"tako_secondary\">#66577E</color>\n    <color name=\"tako_onSecondary\">#F3B375</color>\n    <color name=\"tako_secondaryContainer\">#C8BED0</color>\n    <color name=\"tako_onSecondaryContainer\">#66577E</color>\n    <color name=\"tako_tertiary\">#F3B375</color>\n    <color name=\"tako_onTertiary\">#574360</color>\n    <color name=\"tako_tertiaryContainer\">#FDD6B0</color>\n    <color name=\"tako_onTertiaryContainer\">#221437</color>\n    <color name=\"tako_background\">#F7F5FF</color>\n    <color name=\"tako_onBackground\">#1B1B22</color>\n    <color name=\"tako_surface\">#F7F5FF</color>\n    <color name=\"tako_onSurface\">#1B1B22</color>\n    <color name=\"tako_surfaceVariant\">#E8E0EB</color>\n    <color name=\"tako_onSurfaceVariant\">#49454E</color>\n    <color name=\"tako_surfaceTint\">#66577E</color>\n    <color name=\"tako_inverseSurface\">#313033</color>\n    <color name=\"tako_inverseOnSurface\">#F3EFF4</color>\n    <color name=\"tako_outline\">#7A757E</color>\n    <color name=\"tako_surfaceContainerLowest\">#D7D0DA</color>\n    <color name=\"tako_surfaceContainerLow\">#DFD8E2</color>\n    <color name=\"tako_surfaceContainer\">#E8E0EB</color>\n    <color name=\"tako_surfaceContainerHigh\">#EEE6F1</color>\n    <color name=\"tako_surfaceContainerHighest\">#F7EEFA</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_tealturqoise.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"tealturquoise_primary\">#008080</color>\n    <color name=\"tealturquoise_onPrimary\">#FFFFFF</color>\n    <color name=\"tealturquoise_primaryContainer\">#008080</color>\n    <color name=\"tealturquoise_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"tealturquoise_inversePrimary\">#40E0D0</color>\n    <color name=\"tealturquoise_secondary\">#008080</color>\n    <color name=\"tealturquoise_onSecondary\">#FFFFFF</color>\n    <color name=\"tealturquoise_secondaryContainer\">#CFE5E4</color>\n    <color name=\"tealturquoise_onSecondaryContainer\">#008080</color>\n    <color name=\"tealturquoise_tertiary\">#FF7F7F</color>\n    <color name=\"tealturquoise_onTertiary\">#000000</color>\n    <color name=\"tealturquoise_tertiaryContainer\">#2A1616</color>\n    <color name=\"tealturquoise_onTertiaryContainer\">#FF7F7F</color>\n    <color name=\"tealturquoise_background\">#FAFAFA</color>\n    <color name=\"tealturquoise_onBackground\">#050505</color>\n    <color name=\"tealturquoise_surface\">#FAFAFA</color>\n    <color name=\"tealturquoise_onSurface\">#050505</color>\n    <color name=\"tealturquoise_surfaceVariant\">#EBF3F1</color>\n    <color name=\"tealturquoise_onSurfaceVariant\">#050505</color>\n    <color name=\"tealturquoise_surfaceTint\">#BFDFDF</color>\n    <color name=\"tealturquoise_inverseSurface\">#050505</color>\n    <color name=\"tealturquoise_inverseOnSurface\">#FAFAFA</color>\n    <color name=\"tealturquoise_outline\">#6F7977</color>\n    <color name=\"tealturquoise_surfaceContainerLowest\">#E1E9E7</color>\n    <color name=\"tealturquoise_surfaceContainerLow\">#E6EEEC</color>\n    <color name=\"tealturquoise_surfaceContainer\">#EBF3F1</color>\n    <color name=\"tealturquoise_surfaceContainerHigh\">#F0F8F6</color>\n    <color name=\"tealturquoise_surfaceContainerHighest\">#F7FFFD</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_tidalwave.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!--\n  ~ Colors for Tidal Wave theme\n  ~ Original color scheme by NahutabDevelop\n  ~\n  ~ Key colors:\n  ~ Primary #006780\n  ~ Secondary #004152\n  ~ Tertiary #92f7bc\n  ~ Neutral #b6b5b8\n-->\n<resources>\n    <color name=\"tidalwave_primary\">#006780</color>\n    <color name=\"tidalwave_onPrimary\">#ffffff</color>\n    <color name=\"tidalwave_primaryContainer\">#B4D4DF</color>\n    <color name=\"tidalwave_onPrimaryContainer\">#001f28</color>\n    <color name=\"tidalwave_inversePrimary\">#ff987f</color>\n    <color name=\"tidalwave_secondary\">#006780</color>\n    <color name=\"tidalwave_onSecondary\">#ffffff</color>\n    <color name=\"tidalwave_secondaryContainer\">#9AE1FF</color>\n    <color name=\"tidalwave_onSecondaryContainer\">#001f28</color>\n    <color name=\"tidalwave_tertiary\">#92f7bc</color>\n    <color name=\"tidalwave_onTertiary\">#001c3b</color>\n    <color name=\"tidalwave_tertiaryContainer\">#c3fada</color>\n    <color name=\"tidalwave_onTertiaryContainer\">#78ffd6</color>\n    <color name=\"tidalwave_background\">#fdfbff</color>\n    <color name=\"tidalwave_onBackground\">#001c3b</color>\n    <color name=\"tidalwave_surface\">#fdfbff</color>\n    <color name=\"tidalwave_onSurface\">#001c3b</color>\n    <color name=\"tidalwave_surfaceVariant\">#e8eff5</color>\n    <color name=\"tidalwave_onSurfaceVariant\">#40484c</color>\n    <color name=\"tidalwave_surfaceTint\">#006780</color>\n    <color name=\"tidalwave_inverseSurface\">#020400</color>\n    <color name=\"tidalwave_inverseOnSurface\">#ffe3c4</color>\n    <color name=\"tidalwave_outline\">#70787c</color>\n    <color name=\"tidalwave_surfaceContainerLowest\">#e2e8ec</color>\n    <color name=\"tidalwave_surfaceContainerLow\">#e5ecf1</color>\n    <color name=\"tidalwave_surfaceContainer\">#e8eff5</color>\n    <color name=\"tidalwave_surfaceContainerHigh\">#edf4fA</color>\n    <color name=\"tidalwave_surfaceContainerHighest\">#f5faff</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_yinyang.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Yin & Yang theme\n  ~ Original color scheme by Riztard\n  ~ M3 colors generated by yours truly + tweaked manually\n-->\n<resources>\n    <color name=\"yinyang_primary\">#000000</color>\n    <color name=\"yinyang_onPrimary\">#FFFFFF</color>\n    <color name=\"yinyang_primaryContainer\">#000000</color>\n    <color name=\"yinyang_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"yinyang_inversePrimary\">#A6A6A6</color>\n    <color name=\"yinyang_secondary\">#000000</color>\n    <color name=\"yinyang_onSecondary\">#FFFFFF</color>\n    <color name=\"yinyang_secondaryContainer\">#DDDDDD</color>\n    <color name=\"yinyang_onSecondaryContainer\">#0C0C0C</color>\n    <color name=\"yinyang_tertiary\">#FFFFFF</color>\n    <color name=\"yinyang_onTertiary\">#000000</color>\n    <color name=\"yinyang_tertiaryContainer\">#D8E2FF</color>\n    <color name=\"yinyang_onTertiaryContainer\">#001947</color>\n    <color name=\"yinyang_background\">#FDFDFD</color>\n    <color name=\"yinyang_onBackground\">#222222</color>\n    <color name=\"yinyang_surface\">#FDFDFD</color>\n    <color name=\"yinyang_onSurface\">#222222</color>\n    <color name=\"yinyang_surfaceVariant\">#E8E8E8</color>\n    <color name=\"yinyang_onSurfaceVariant\">#515151</color>\n    <color name=\"yinyang_surfaceTint\">#000000</color>\n    <color name=\"yinyang_inverseSurface\">#333333</color>\n    <color name=\"yinyang_inverseOnSurface\">#F4F4F4</color>\n    <color name=\"yinyang_outline\">#838383</color>\n    <color name=\"yinyang_surfaceContainerLowest\">#CFCFCF</color>\n    <color name=\"yinyang_surfaceContainerLow\">#DADADA</color>\n    <color name=\"yinyang_surfaceContainer\">#E8E8E8</color>\n    <color name=\"yinyang_surfaceContainerHigh\">#ECECEC</color>\n    <color name=\"yinyang_surfaceContainerHighest\">#EFEFEF</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values/colors_yotsuba.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Yotsuba theme\n  ~ Original color scheme by ztimms73\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #AE3200\n  ~ Secondary #AE3200\n  ~ Tertiary #6B5E2F\n  ~ Neutral #655C5A\n-->\n<resources>\n    <color name=\"yotsuba_primary\">#AE3200</color>\n    <color name=\"yotsuba_onPrimary\">#FFFFFF</color>\n    <color name=\"yotsuba_primaryContainer\">#FFDBCF</color>\n    <color name=\"yotsuba_onPrimaryContainer\">#3B0A00</color>\n    <color name=\"yotsuba_inversePrimary\">#FFB59D</color>\n    <color name=\"yotsuba_secondary\">#AE3200</color>\n    <color name=\"yotsuba_onSecondary\">#FFFFFF</color>\n    <color name=\"yotsuba_secondaryContainer\">#EBCDC2</color>\n    <color name=\"yotsuba_onSecondaryContainer\">#3B0A00</color>\n    <color name=\"yotsuba_tertiary\">#6B5E2F</color>\n    <color name=\"yotsuba_onTertiary\">#FFFFFF</color>\n    <color name=\"yotsuba_tertiaryContainer\">#F5E2A7</color>\n    <color name=\"yotsuba_onTertiaryContainer\">#231B00</color>\n    <color name=\"yotsuba_background\">#FCFCFC</color>\n    <color name=\"yotsuba_onBackground\">#211A18</color>\n    <color name=\"yotsuba_surface\">#FCFCFC</color>\n    <color name=\"yotsuba_onSurface\">#211A18</color>\n    <color name=\"yotsuba_surfaceVariant\">#F6EBE7</color>\n    <color name=\"yotsuba_onSurfaceVariant\">#53433F</color>\n    <color name=\"yotsuba_surfaceTint\">#AE3200</color>\n    <color name=\"yotsuba_inverseSurface\">#362F2D</color>\n    <color name=\"yotsuba_inverseOnSurface\">#FBEEEB</color>\n    <color name=\"yotsuba_outline\">#85736E</color>\n    <color name=\"yotsuba_surfaceContainerLowest\">#ECE3E0</color>\n    <color name=\"yotsuba_surfaceContainerLow\">#F1E7E4</color>\n    <color name=\"yotsuba_surfaceContainer\">#F6EBE7</color>\n    <color name=\"yotsuba_surfaceContainerHigh\">#FAF4F2</color>\n    <color name=\"yotsuba_surfaceContainerHighest\">#FBF6F4</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"splash\">#202125</color>\n\n    <!-- Default Theme -->\n    <color name=\"divider_default\">@color/md_white_1000_12</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_catppuccin.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Catppuccin theme\n  ~ MIT License\n  ~ Copyright (c) 2021 Catppuccin\n  ~ https://catppuccin.com\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #CBA6F7\n  ~ Secondary #CBA6F4\n  ~ Tertiary #CBA6F4\n  ~ Neutral #181825\n-->\n<resources>\n    <color name=\"catppuccin_primary\">#CBA6F7</color>\n    <color name=\"catppuccin_onPrimary\">#11111B</color>\n    <color name=\"catppuccin_primaryContainer\">#CBA6F7</color>\n    <color name=\"catppuccin_onPrimaryContainer\">#11111B</color>\n    <color name=\"catppuccin_secondary\">#CBA6F7</color>\n    <color name=\"catppuccin_onSecondary\">#11111B</color>\n    <color name=\"catppuccin_secondaryContainer\">#313244</color>\n    <color name=\"catppuccin_onSecondaryContainer\">#CBA6F7</color>\n    <color name=\"catppuccin_tertiary\">#CBA6F7</color>\n    <color name=\"catppuccin_onTertiary\">#11111B</color>\n    <color name=\"catppuccin_tertiaryContainer\">#1E1E2E</color>\n    <color name=\"catppuccin_onTertiaryContainer\">#CDD6F4</color>\n    <color name=\"catppuccin_error\">#F38BA8</color>\n    <color name=\"catppuccin_onError\">#11111B</color>\n    <color name=\"catppuccin_errorContainer\">#FFFF0558</color>\n    <color name=\"catppuccin_onErrorContainer\">#EF9FB4</color>\n    <color name=\"catppuccin_background\">#181825</color>\n    <color name=\"catppuccin_onBackground\">#CDD6F4</color>\n    <color name=\"catppuccin_surface\">#181825</color>\n    <color name=\"catppuccin_onSurface\">#CDD6F4</color>\n    <color name=\"catppuccin_surfaceVariant\">#1E1E2E</color>\n    <color name=\"catppuccin_onSurfaceVariant\">#CDD6F4</color>\n    <color name=\"catppuccin_outline\">#CBA6F7</color>\n    <color name=\"catppuccin_outlineVariant\">#585B70</color>\n    <color name=\"catppuccin_scrim\">#FF11111B</color>\n    <color name=\"catppuccin_inverseSurface\">#EFF1F5</color>\n    <color name=\"catppuccin_inverseOnSurface\">#4C4F69</color>\n    <color name=\"catppuccin_inversePrimary\">#8839EF</color>\n    <color name=\"catppuccin_surfaceDim\">#181825</color>\n    <color name=\"catppuccin_surfaceBright\">#313244</color>\n    <color name=\"catppuccin_surfaceContainerLowest\">#FF181825</color>\n    <color name=\"catppuccin_surfaceContainerLow\">#1E1E2E</color>\n    <color name=\"catppuccin_surfaceContainer\">#1E1E2E</color>\n    <color name=\"catppuccin_surfaceContainerHigh\">#1E1E2E</color>\n    <color name=\"catppuccin_surfaceContainerHighest\">#313244</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_greenapple.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Green Apple theme\n  ~ Original color scheme by CarlosEsco, Jays2Kings and CrepeTF\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #188140\n  ~ Secondary #188140\n  ~ Tertiary #D33131\n  ~ Neutral #5D5F5B\n-->\n<resources>\n    <color name=\"greenapple_primary\">#7ADB8F</color>\n    <color name=\"greenapple_onPrimary\">#003917</color>\n    <color name=\"greenapple_primaryContainer\">#017737</color>\n    <color name=\"greenapple_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"greenapple_secondary\">#7ADB8F</color>\n    <color name=\"greenapple_onSecondary\">#003917</color>\n    <color name=\"greenapple_secondaryContainer\">#017737</color>\n    <color name=\"greenapple_onSecondaryContainer\">#FFFFFF</color>\n    <color name=\"greenapple_tertiary\">#FFB3AC</color>\n    <color name=\"greenapple_onTertiary\">#680008</color>\n    <color name=\"greenapple_tertiaryContainer\">#C7282A</color>\n    <color name=\"greenapple_onTertiaryContainer\">#FFFFFF</color>\n    <color name=\"greenapple_error\">#FFB4AB</color>\n    <color name=\"greenapple_onError\">#690005</color>\n    <color name=\"greenapple_errorContainer\">#93000A</color>\n    <color name=\"greenapple_onErrorContainer\">#FFDAD6</color>\n    <color name=\"greenapple_background\">#0F1510</color>\n    <color name=\"greenapple_onBackground\">#DFE4DB</color>\n    <color name=\"greenapple_surface\">#0F1510</color>\n    <color name=\"greenapple_onSurface\">#DFE4DB</color>\n    <color name=\"greenapple_surfaceVariant\">#3F493F</color>\n    <color name=\"greenapple_onSurfaceVariant\">#BECABC</color>\n    <color name=\"greenapple_outline\">#889487</color>\n    <color name=\"greenapple_outlineVariant\">#3F493F</color>\n    <color name=\"greenapple_scrim\">#000000</color>\n    <color name=\"greenapple_inverseSurface\">#DFE4DB</color>\n    <color name=\"greenapple_inverseOnSurface\">#2C322C</color>\n    <color name=\"greenapple_inversePrimary\">#006D32</color>\n    <color name=\"greenapple_surfaceDim\">#0F1510</color>\n    <color name=\"greenapple_surfaceBright\">#353B35</color>\n    <color name=\"greenapple_surfaceContainerLowest\">#0A0F0B</color>\n    <color name=\"greenapple_surfaceContainerLow\">#181D18</color>\n    <color name=\"greenapple_surfaceContainer\">#1C211C</color>\n    <color name=\"greenapple_surfaceContainerHigh\">#262B26</color>\n    <color name=\"greenapple_surfaceContainerHighest\">#313630</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_lavender.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Lavender theme\n  ~\n  ~ Color scheme by Osyx\n  ~\n  ~ Key colors:\n  ~ Primary #A177FF\n  ~ Secondary #A177FF\n  ~ Tertiary #5E25E1\n  ~ Neutral #111129\n-->\n<resources>\n    <color name=\"lavender_primary\">#A177FF</color>\n    <color name=\"lavender_onPrimary\">#3D0090</color>\n    <color name=\"lavender_primaryContainer\">#A177FF</color>\n    <color name=\"lavender_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"lavender_secondary\">#A177FF</color>\n    <color name=\"lavender_onSecondary\">#FFFFFF</color>\n    <color name=\"lavender_secondaryContainer\">#423271</color>\n    <color name=\"lavender_onSecondaryContainer\">#A177FF</color>\n    <color name=\"lavender_tertiary\">#CDBDFF</color>\n    <color name=\"lavender_onTertiary\">#360096</color>\n    <color name=\"lavender_tertiaryContainer\">#5512D8</color>\n    <color name=\"lavender_onTertiaryContainer\">#EFE6FF</color>\n    <color name=\"lavender_error\">#FFB4AB</color>\n    <color name=\"lavender_onError\">#690005</color>\n    <color name=\"lavender_errorContainer\">#93000A</color>\n    <color name=\"lavender_onErrorContainer\">#FFDAD6</color>\n    <color name=\"lavender_background\">#111129</color>\n    <color name=\"lavender_onBackground\">#E7E0EC</color>\n    <color name=\"lavender_surface\">#111129</color>\n    <color name=\"lavender_onSurface\">#E7E0EC</color>\n    <color name=\"lavender_surfaceVariant\">#3D2F6B</color>\n    <color name=\"lavender_onSurfaceVariant\">#CBC3D6</color>\n    <color name=\"lavender_outline\">#958E9F</color>\n    <color name=\"lavender_outlineVariant\">#4A4453</color>\n    <color name=\"lavender_scrim\">#000000</color>\n    <color name=\"lavender_inverseSurface\">#E7E0EC</color>\n    <color name=\"lavender_inverseOnSurface\">#322F38</color>\n    <color name=\"lavender_inversePrimary\">#6D41C8</color>\n    <color name=\"lavender_surfaceDim\">#111129</color>\n    <color name=\"lavender_surfaceBright\">#3B3841</color>\n    <color name=\"lavender_surfaceContainerLowest\">#15132d</color>\n    <color name=\"lavender_surfaceContainerLow\">#171531</color>\n    <color name=\"lavender_surfaceContainer\">#1D193B</color>\n    <color name=\"lavender_surfaceContainerHigh\">#241f41</color>\n    <color name=\"lavender_surfaceContainerHighest\">#282446</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_midnightdusk.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Midnight Dusk theme\n  ~ Original color scheme by CrepeTF\n  ~ M3 color scheme generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #F02475\n  ~ Secondary #F02475\n  ~ Tertiary #7A5733\n  ~ Neutral #16151D\n-->\n<resources>\n    <color name=\"midnightdusk_primary\">#F02475</color>\n    <color name=\"midnightdusk_onPrimary\">#FFFFFF</color>\n    <color name=\"midnightdusk_primaryContainer\">#BD1C5C</color>\n    <color name=\"midnightdusk_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"midnightdusk_inversePrimary\">#F02475</color>\n    <color name=\"midnightdusk_secondary\">#F02475</color>\n    <color name=\"midnightdusk_onSecondary\">#16151D</color>\n    <color name=\"midnightdusk_secondaryContainer\">#66183C</color>\n    <color name=\"midnightdusk_onSecondaryContainer\">#F02475</color>\n    <color name=\"midnightdusk_tertiary\">#55971C</color>\n    <color name=\"midnightdusk_onTertiary\">#16151D</color>\n    <color name=\"midnightdusk_tertiaryContainer\">#386412</color>\n    <color name=\"midnightdusk_onTertiaryContainer\">#E5E1E5</color>\n    <color name=\"midnightdusk_background\">#16151D</color>\n    <color name=\"midnightdusk_onBackground\">#E5E1E5</color>\n    <color name=\"midnightdusk_surface\">#16151D</color>\n    <color name=\"midnightdusk_onSurface\">#E5E1E5</color>\n    <color name=\"midnightdusk_surfaceVariant\">#281624</color>\n    <color name=\"midnightdusk_onSurfaceVariant\">#D6C1C4</color>\n    <color name=\"midnightdusk_surfaceTint\">#F02475</color>\n    <color name=\"midnightdusk_inverseSurface\">#333043</color>\n    <color name=\"midnightdusk_inverseOnSurface\">#FFFFFF</color>\n    <color name=\"midnightdusk_outline\">#9F8C8F</color>\n    <color name=\"midnightdusk_surfaceContainerLowest\">#221320</color>\n    <color name=\"midnightdusk_surfaceContainerLow\">#251522</color>\n    <color name=\"midnightdusk_surfaceContainer\">#281624</color>\n    <color name=\"midnightdusk_surfaceContainerHigh\">#2D1C2A</color>\n    <color name=\"midnightdusk_surfaceContainerHighest\">#2F1F2C</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_monochrome.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"monochrome_primary\">#FFFFFF</color>\n    <color name=\"monochrome_onPrimary\">#000000</color>\n    <color name=\"monochrome_primaryContainer\">#FFFFFF</color>\n    <color name=\"monochrome_onPrimaryContainer\">#000000</color>\n    <color name=\"monochrome_secondary\">#FFFFFF</color>\n    <color name=\"monochrome_onSecondary\">#000000</color>\n    <color name=\"monochrome_secondaryContainer\">#777777</color>\n    <color name=\"monochrome_onSecondaryContainer\">#000000</color>\n    <color name=\"monochrome_tertiary\">#777777</color>\n    <color name=\"monochrome_onTertiary\">#FFFFFF</color>\n    <color name=\"monochrome_tertiaryContainer\">#FFFFFF</color>\n    <color name=\"monochrome_onTertiaryContainer\">#000000</color>\n    <color name=\"monochrome_error\">#FFFFFF</color>\n    <color name=\"monochrome_onError\">#000000</color>\n    <color name=\"monochrome_errorContainer\">#FFFFFF</color>\n    <color name=\"monochrome_onErrorContainer\">#000000</color>\n    <color name=\"monochrome_background\">#000000</color>\n    <color name=\"monochrome_onBackground\">#FFFFFF</color>\n    <color name=\"monochrome_surface\">#000000</color>\n    <color name=\"monochrome_onSurface\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceVariant\">#000000</color>\n    <color name=\"monochrome_onSurfaceVariant\">#FFFFFF</color>\n    <color name=\"monochrome_outline\">#FFFFFF</color>\n    <color name=\"monochrome_outlineVariant\">#FFFFFF</color>\n    <color name=\"monochrome_scrim\">#000000</color>\n    <color name=\"monochrome_inverseSurface\">#FFFFFF</color>\n    <color name=\"monochrome_inverseOnSurface\">#000000</color>\n    <color name=\"monochrome_inversePrimary\">#000000</color>\n    <color name=\"monochrome_surfaceDim\">#000000</color>\n    <color name=\"monochrome_surfaceBright\">#FFFFFF</color>\n    <color name=\"monochrome_surfaceContainerLowest\">#000000</color>\n    <color name=\"monochrome_surfaceContainerLow\">#000000</color>\n    <color name=\"monochrome_surfaceContainer\">#000000</color>\n    <color name=\"monochrome_surfaceContainerHigh\">#000000</color>\n    <color name=\"monochrome_surfaceContainerHighest\">#000000</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_nord.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--https://www.nordtheme.com/docs/colors-and-palettes-->\n<resources>\n    <color name=\"nord_primary\">#88C0D0</color>\n    <color name=\"nord_onPrimary\">#2E3440</color>\n    <color name=\"nord_primaryContainer\">#88C0D0</color>\n    <color name=\"nord_onPrimaryContainer\">#2E3440</color>\n    <color name=\"nord_inversePrimary\">#397E91</color>\n    <color name=\"nord_secondary\">#81A1C1</color>\n    <color name=\"nord_onSecondary\">#2E3440</color>\n    <color name=\"nord_secondaryContainer\">#506275</color>\n    <color name=\"nord_onSecondaryContainer\">#88C0D0</color>\n    <color name=\"nord_tertiary\">#5E81AC</color>\n    <color name=\"nord_onTertiary\">#000000</color>\n    <color name=\"nord_tertiaryContainer\">#5E81AC</color>\n    <color name=\"nord_onTertiaryContainer\">#000000</color>\n    <color name=\"nord_background\">#2E3440</color>\n    <color name=\"nord_onBackground\">#ECEFF4</color>\n    <color name=\"nord_surface\">#2E3440</color>\n    <color name=\"nord_onSurface\">#ECEFF4</color>\n    <color name=\"nord_surfaceVariant\">#414C5C</color>\n    <color name=\"nord_onSurfaceVariant\">#ECEFF4</color>\n    <color name=\"nord_surfaceTint\">#88C0D0</color>\n    <color name=\"nord_inverseSurface\">#D8DEE9</color>\n    <color name=\"nord_inverseOnSurface\">#2E3440</color>\n    <color name=\"nord_outline\">#6d717b</color>\n    <color name=\"nord_outlineVariant\">#90939a</color>\n    <color name=\"nord_onError\">#2E3440</color>\n    <color name=\"nord_errorContainer\">#BF616A</color>\n    <color name=\"nord_onErrorContainer\">#000000</color>\n    <color name=\"nord_surfaceContainerLowest\">#373F4D</color>\n    <color name=\"nord_surfaceContainerLow\">#3E4756</color>\n    <color name=\"nord_surfaceContainer\">#414C5C</color>\n    <color name=\"nord_surfaceContainerHigh\">#4E5766</color>\n    <color name=\"nord_surfaceContainerHighest\">#505968</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_strawberry.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Strawberry Daiquiri theme\n  ~ Original color scheme by Soitora\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #ED4A65\n  ~ Secondary #ED4A65\n  ~ Tertiary #775930\n  ~ Neutral #655C5C\n-->\n<resources>\n    <color name=\"strawberry_primary\">#FFB2B8</color>\n    <color name=\"strawberry_onPrimary\">#67001D</color>\n    <color name=\"strawberry_primaryContainer\">#D53855</color>\n    <color name=\"strawberry_onPrimaryContainer\">#FFFFFF</color>\n    <color name=\"strawberry_secondary\">#ED4A65</color>\n    <color name=\"strawberry_onSecondary\">#201A1A</color>\n    <color name=\"strawberry_secondaryContainer\">#91002A</color>\n    <color name=\"strawberry_onSecondaryContainer\">#FFFFFF</color>\n    <color name=\"strawberry_tertiary\">#E8C08E</color>\n    <color name=\"strawberry_onTertiary\">#201A1A</color>\n    <color name=\"strawberry_tertiaryContainer\">#775930</color>\n    <color name=\"strawberry_onTertiaryContainer\">#FFF7F1</color>\n    <color name=\"strawberry_error\">#FFB4AB</color>\n    <color name=\"strawberry_onError\">#690005</color>\n    <color name=\"strawberry_errorContainer\">#93000A</color>\n    <color name=\"strawberry_onErrorContainer\">#FFDAD6</color>\n    <color name=\"strawberry_background\">#201A1A</color>\n    <color name=\"strawberry_onBackground\">#F7DCDD</color>\n    <color name=\"strawberry_surface\">#201A1A</color>\n    <color name=\"strawberry_onSurface\">#F7DCDD</color>\n    <color name=\"strawberry_surfaceVariant\">#322727</color>\n    <color name=\"strawberry_onSurfaceVariant\">#E1BEC0</color>\n    <color name=\"strawberry_outline\">#A9898B</color>\n    <color name=\"strawberry_outlineVariant\">#594042</color>\n    <color name=\"strawberry_scrim\">#000000</color>\n    <color name=\"strawberry_inverseSurface\">#F7DCDD</color>\n    <color name=\"strawberry_inverseOnSurface\">#3D2C2D</color>\n    <color name=\"strawberry_inversePrimary\">#B61F40</color>\n    <color name=\"strawberry_surfaceDim\">#1D1011</color>\n    <color name=\"strawberry_surfaceBright\">#463536</color>\n    <color name=\"strawberry_surfaceContainerLowest\">#2C2222</color>\n    <color name=\"strawberry_surfaceContainerLow\">#302525</color>\n    <color name=\"strawberry_surfaceContainer\">#322727</color>\n    <color name=\"strawberry_surfaceContainerHigh\">#3C2F2F</color>\n    <color name=\"strawberry_surfaceContainerHighest\">#463737</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_tachiyomi.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Default theme\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #2979FF\n  ~ Secondary #2979FF\n  ~ Tertiary #47A84A\n  ~ Neutral #5E5E62\n-->\n<resources>\n    <color name=\"tachiyomi_primary\">#B0C6FF</color>\n    <color name=\"tachiyomi_onPrimary\">#002D6E</color>\n    <color name=\"tachiyomi_primaryContainer\">#00429B</color>\n    <color name=\"tachiyomi_onPrimaryContainer\">#D9E2FF</color>\n    <color name=\"tachiyomi_inversePrimary\">#0058CA</color>\n    <color name=\"tachiyomi_secondary\">#B0C6FF</color>\n    <color name=\"tachiyomi_onSecondary\">#002D6E</color>\n    <color name=\"tachiyomi_secondaryContainer\">#00429B</color>\n    <color name=\"tachiyomi_onSecondaryContainer\">#D9E2FF</color>\n    <color name=\"tachiyomi_tertiary\">#7ADC77</color>\n    <color name=\"tachiyomi_onTertiary\">#003909</color>\n    <color name=\"tachiyomi_tertiaryContainer\">#005312</color>\n    <color name=\"tachiyomi_onTertiaryContainer\">#95F990</color>\n    <color name=\"tachiyomi_background\">#1B1B1F</color>\n    <color name=\"tachiyomi_onBackground\">#E3E2E6</color>\n    <color name=\"tachiyomi_surface\">#1B1B1F</color>\n    <color name=\"tachiyomi_onSurface\">#E3E2E6</color>\n    <color name=\"tachiyomi_surfaceVariant\">#211F26</color>\n    <color name=\"tachiyomi_onSurfaceVariant\">#C5C6D0</color>\n    <color name=\"tachiyomi_surfaceTint\">#B0C6FF</color>\n    <color name=\"tachiyomi_inverseSurface\">#E3E2E6</color>\n    <color name=\"tachiyomi_inverseOnSurface\">#1B1B1F</color>\n    <color name=\"tachiyomi_error\">#FFB4AB</color>\n    <color name=\"tachiyomi_onError\">#690005</color>\n    <color name=\"tachiyomi_errorContainer\">#93000A</color>\n    <color name=\"tachiyomi_onErrorContainer\">#FFDAD6</color>\n    <color name=\"tachiyomi_outline\">#8F9099</color>\n    <color name=\"tachiyomi_outlineVariant\">#44464F</color>\n    <color name=\"tachiyomi_surfaceContainerLowest\">#1A181D</color>\n    <color name=\"tachiyomi_surfaceContainerLow\">#1E1C22</color>\n    <color name=\"tachiyomi_surfaceContainer\">#211F26</color>\n    <color name=\"tachiyomi_surfaceContainerHigh\">#292730</color>\n    <color name=\"tachiyomi_surfaceContainerHighest\">#302E38</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_tako.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Tako theme\n  ~ Original color scheme by ghostbear\n  ~ M3 color scheme generated by yours truly\n  ~\n  ~ Key colors:\n  ~ Primary #F3B375\n  ~ Secondary #F3B375\n  ~ Tertiary #66577E\n  ~ Neutral #21212E\n-->\n<resources>\n    <color name=\"tako_primary\">#F3B375</color>\n    <color name=\"tako_onPrimary\">#38294E</color>\n    <color name=\"tako_primaryContainer\">#F3B375</color>\n    <color name=\"tako_onPrimaryContainer\">#38294E</color>\n    <color name=\"tako_inversePrimary\">#84531E</color>\n    <color name=\"tako_secondary\">#F3B375</color>\n    <color name=\"tako_onSecondary\">#38294E</color>\n    <color name=\"tako_secondaryContainer\">#5C4D4B</color>\n    <color name=\"tako_onSecondaryContainer\">#F3B375</color>\n    <color name=\"tako_tertiary\">#66577E</color>\n    <color name=\"tako_onTertiary\">#F3B375</color>\n    <color name=\"tako_tertiaryContainer\">#4E4065</color>\n    <color name=\"tako_onTertiaryContainer\">#EDDCFF</color>\n    <color name=\"tako_background\">#21212E</color>\n    <color name=\"tako_onBackground\">#E3E0F2</color>\n    <color name=\"tako_surface\">#21212E</color>\n    <color name=\"tako_onSurface\">#E3E0F2</color>\n    <color name=\"tako_surfaceVariant\">#2A2A3C</color>\n    <color name=\"tako_onSurfaceVariant\">#CBC4CE</color>\n    <color name=\"tako_surfaceTint\">#66577E</color>\n    <color name=\"tako_inverseSurface\">#E5E1E6</color>\n    <color name=\"tako_inverseOnSurface\">#1B1B1E</color>\n    <color name=\"tako_outline\">#958F99</color>\n    <color name=\"tako_surfaceContainerLowest\">#20202E</color>\n    <color name=\"tako_surfaceContainerLow\">#262636</color>\n    <color name=\"tako_surfaceContainer\">#2A2A3C</color>\n    <color name=\"tako_surfaceContainerHigh\">#303044</color>\n    <color name=\"tako_surfaceContainerHighest\">#36364D</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_tealturqoise.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"tealturquoise_primary\">#40E0D0</color>\n    <color name=\"tealturquoise_onPrimary\">#000000</color>\n    <color name=\"tealturquoise_primaryContainer\">#40E0D0</color>\n    <color name=\"tealturquoise_onPrimaryContainer\">#000000</color>\n    <color name=\"tealturquoise_inversePrimary\">#008080</color>\n    <color name=\"tealturquoise_secondary\">#40E0D0</color>\n    <color name=\"tealturquoise_onSecondary\">#000000</color>\n    <color name=\"tealturquoise_secondaryContainer\">#18544E</color>\n    <color name=\"tealturquoise_onSecondaryContainer\">#40E0D0</color>\n    <color name=\"tealturquoise_tertiary\">#BF1F2F</color>\n    <color name=\"tealturquoise_onTertiary\">#FFFFFF</color>\n    <color name=\"tealturquoise_tertiaryContainer\">#200508</color>\n    <color name=\"tealturquoise_onTertiaryContainer\">#BF1F2F</color>\n    <color name=\"tealturquoise_background\">#202125</color>\n    <color name=\"tealturquoise_onBackground\">#DFDEDA</color>\n    <color name=\"tealturquoise_surface\">#202125</color>\n    <color name=\"tealturquoise_onSurface\">#DFDEDA</color>\n    <color name=\"tealturquoise_surfaceVariant\">#233133</color>\n    <color name=\"tealturquoise_onSurfaceVariant\">#DFDEDA</color>\n    <color name=\"tealturquoise_surfaceTint\">#40E0D0</color>\n    <color name=\"tealturquoise_inverseSurface\">#DFDEDA</color>\n    <color name=\"tealturquoise_inverseOnSurface\">#202125</color>\n    <color name=\"tealturquoise_outline\">#899391</color>\n    <color name=\"tealturquoise_surfaceContainerLowest\">#202C2E</color>\n    <color name=\"tealturquoise_surfaceContainerLow\">#222F31</color>\n    <color name=\"tealturquoise_surfaceContainer\">#233133</color>\n    <color name=\"tealturquoise_surfaceContainerHigh\">#28383A</color>\n    <color name=\"tealturquoise_surfaceContainerHighest\">#2F4244</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_tidalwave.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Tidal Wave theme\n  ~ Original color scheme by NahutabDevelop\n  ~\n  ~ Key colors:\n  ~ Primary #004152\n  ~ Secondary #5ed4fc\n  ~ Tertiary #92f7bc\n  ~ Neutral #16151D\n-->\n<resources>\n    <color name=\"tidalwave_primary\">#5ed4fc</color>\n    <color name=\"tidalwave_onPrimary\">#003544</color>\n    <color name=\"tidalwave_primaryContainer\">#004d61</color>\n    <color name=\"tidalwave_onPrimaryContainer\">#b8eaff</color>\n    <color name=\"tidalwave_inversePrimary\">#a12b03</color>\n    <color name=\"tidalwave_secondary\">#5ed4fc</color>\n    <color name=\"tidalwave_onSecondary\">#003544</color>\n    <color name=\"tidalwave_secondaryContainer\">#004d61</color>\n    <color name=\"tidalwave_onSecondaryContainer\">#b8eaff</color>\n    <color name=\"tidalwave_tertiary\">#92f7bc</color>\n    <color name=\"tidalwave_onTertiary\">#001c3b</color>\n    <color name=\"tidalwave_tertiaryContainer\">#c3fada</color>\n    <color name=\"tidalwave_onTertiaryContainer\">#78ffd6</color>\n    <color name=\"tidalwave_background\">#001c3b</color>\n    <color name=\"tidalwave_onBackground\">#d5e3ff</color>\n    <color name=\"tidalwave_surface\">#001c3b</color>\n    <color name=\"tidalwave_onSurface\">#d5e3ff</color>\n    <color name=\"tidalwave_surfaceVariant\">#082b4b</color>\n    <color name=\"tidalwave_onSurfaceVariant\">#bfc8cc</color>\n    <color name=\"tidalwave_surfaceTint\">#5ed4fc</color>\n    <color name=\"tidalwave_inverseSurface\">#ffe3c4</color>\n    <color name=\"tidalwave_inverseOnSurface\">#001c3b</color>\n    <color name=\"tidalwave_outline\">#8a9296</color>\n    <color name=\"tidalwave_surfaceContainerLowest\">#072642</color>\n    <color name=\"tidalwave_surfaceContainerLow\">#072947</color>\n    <color name=\"tidalwave_surfaceContainer\">#082b4b</color>\n    <color name=\"tidalwave_surfaceContainerHigh\">#093257</color>\n    <color name=\"tidalwave_surfaceContainerHighest\">#0A3861</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_yinyang.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Yin & Yang theme\n  ~ Original color scheme by Riztard\n  ~ M3 colors generated by yours truly + tweaked manually\n-->\n<resources>\n    <color name=\"yinyang_primary\">#FFFFFF</color>\n    <color name=\"yinyang_onPrimary\">#5A5A5A</color>\n    <color name=\"yinyang_primaryContainer\">#FFFFFF</color>\n    <color name=\"yinyang_onPrimaryContainer\">#000000</color>\n    <color name=\"yinyang_inversePrimary\">#CECECE</color>\n    <color name=\"yinyang_secondary\">#FFFFFF</color>\n    <color name=\"yinyang_onSecondary\">#5A5A5A</color>\n    <color name=\"yinyang_secondaryContainer\">#717171</color>\n    <color name=\"yinyang_onSecondaryContainer\">#E4E4E4</color>\n    <color name=\"yinyang_tertiary\">#000000</color>\n    <color name=\"yinyang_onTertiary\">#FFFFFF</color>\n    <color name=\"yinyang_tertiaryContainer\">#00419E</color>\n    <color name=\"yinyang_onTertiaryContainer\">#D8E2FF</color>\n    <color name=\"yinyang_background\">#1E1E1E</color>\n    <color name=\"yinyang_onBackground\">#E6E6E6</color>\n    <color name=\"yinyang_surface\">#1E1E1E</color>\n    <color name=\"yinyang_onSurface\">#E6E6E6</color>\n    <color name=\"yinyang_surfaceVariant\">#313131</color>\n    <color name=\"yinyang_onSurfaceVariant\">#D1D1D1</color>\n    <color name=\"yinyang_surfaceTint\">#FFFFFF</color>\n    <color name=\"yinyang_inverseSurface\">#E6E6E6</color>\n    <color name=\"yinyang_inverseOnSurface\">#1E1E1E</color>\n    <color name=\"yinyang_outline\">#999999</color>\n    <color name=\"yinyang_surfaceContainerLowest\">#2A2A2A</color>\n    <color name=\"yinyang_surfaceContainerLow\">#2D2D2D</color>\n    <color name=\"yinyang_surfaceContainer\">#313131</color>\n    <color name=\"yinyang_surfaceContainerHigh\">#383838</color>\n    <color name=\"yinyang_surfaceContainerHighest\">#3F3F3F</color>\n</resources>\n"
  },
  {
    "path": "presentation-core/src/main/res/values-night/colors_yotsuba.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n  ~ Colors for Yotsuba theme\n  ~ Original color scheme by ztimms73\n  ~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)\n  ~\n  ~ Key colors:\n  ~ Primary #AE3200\n  ~ Secondary #AE3200\n  ~ Tertiary #6B5E2F\n  ~ Neutral #655C5A\n-->\n<resources>\n    <color name=\"yotsuba_primary\">#FFB59D</color>\n    <color name=\"yotsuba_onPrimary\">#5F1600</color>\n    <color name=\"yotsuba_primaryContainer\">#862200</color>\n    <color name=\"yotsuba_onPrimaryContainer\">#FFDBCF</color>\n    <color name=\"yotsuba_inversePrimary\">#AE3200</color>\n    <color name=\"yotsuba_secondary\">#FFB59D</color>\n    <color name=\"yotsuba_onSecondary\">#5F1600</color>\n    <color name=\"yotsuba_secondaryContainer\">#862200</color>\n    <color name=\"yotsuba_onSecondaryContainer\">#FFDBCF</color>\n    <color name=\"yotsuba_tertiary\">#D7C68D</color>\n    <color name=\"yotsuba_onTertiary\">#3A2F05</color>\n    <color name=\"yotsuba_tertiaryContainer\">#524619</color>\n    <color name=\"yotsuba_onTertiaryContainer\">#F5E2A7</color>\n    <color name=\"yotsuba_background\">#211A18</color>\n    <color name=\"yotsuba_onBackground\">#EDE0DD</color>\n    <color name=\"yotsuba_surface\">#211A18</color>\n    <color name=\"yotsuba_onSurface\">#EDE0DD</color>\n    <color name=\"yotsuba_surfaceVariant\">#332723</color>\n    <color name=\"yotsuba_onSurfaceVariant\">#D8C2BC</color>\n    <color name=\"yotsuba_surfaceTint\">#FFB59D</color>\n    <color name=\"yotsuba_inverseSurface\">#EDE0DD</color>\n    <color name=\"yotsuba_inverseOnSurface\">#211A18</color>\n    <color name=\"yotsuba_outline\">#A08C87</color>\n    <color name=\"yotsuba_surfaceContainerLowest\">#2E221F</color>\n    <color name=\"yotsuba_surfaceContainerLow\">#312521</color>\n    <color name=\"yotsuba_surfaceContainer\">#332723</color>\n    <color name=\"yotsuba_surfaceContainerHigh\">#413531</color>\n    <color name=\"yotsuba_surfaceContainerHighest\">#4C403D</color>\n</resources>\n"
  },
  {
    "path": "presentation-widget/build.gradle.kts",
    "content": "plugins {\n    id(\"mihon.library\")\n    id(\"mihon.library.compose\")\n    kotlin(\"android\")\n}\n\nandroid {\n    namespace = \"tachiyomi.presentation.widget\"\n\n    defaultConfig {\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n        consumerProguardFiles(\"consumer-rules.pro\")\n    }\n}\n\ndependencies {\n    implementation(projects.core.common)\n    implementation(projects.domain)\n    implementation(projects.presentationCore)\n    api(projects.i18n)\n\n    implementation(compose.glance)\n    implementation(libs.material)\n\n    implementation(kotlinx.immutables)\n\n    implementation(platform(libs.coil.bom))\n    implementation(libs.coil.core)\n\n    api(libs.injekt)\n}\n"
  },
  {
    "path": "presentation-widget/consumer-rules.pro",
    "content": ""
  },
  {
    "path": "presentation-widget/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile"
  },
  {
    "path": "presentation-widget/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <application>\n\n        <receiver\n            android:name=\"tachiyomi.presentation.widget.UpdatesGridGlanceReceiver\"\n            android:enabled=\"@bool/glance_appwidget_available\"\n            android:exported=\"false\"\n            android:label=\"@string/label_recent_updates\">\n            <intent-filter>\n                <action android:name=\"android.appwidget.action.APPWIDGET_UPDATE\" />\n            </intent-filter>\n\n            <meta-data\n                android:name=\"android.appwidget.provider\"\n                android:resource=\"@xml/updates_grid_homescreen_widget_info\" />\n        </receiver>\n        <receiver\n            android:name=\"tachiyomi.presentation.widget.UpdatesGridCoverScreenGlanceReceiver\"\n            android:enabled=\"@bool/glance_appwidget_available\"\n            android:exported=\"false\"\n            android:label=\"@string/label_recent_updates\">\n            <intent-filter>\n                <action android:name=\"android.appwidget.action.APPWIDGET_UPDATE\" />\n            </intent-filter>\n\n            <meta-data\n                android:name=\"android.appwidget.provider\"\n                android:resource=\"@xml/updates_grid_lockscreen_widget_info\" />\n            <meta-data\n                android:name=\"com.samsung.android.appwidget.provider\"\n                android:resource=\"@xml/updates_grid_samsung_cover_widget_info\" />\n            <meta-data\n                android:name=\"com.samsung.android.sdk.subscreen.widget.support_visibility_callback\"\n                android:value=\"true\" />\n        </receiver>\n\n    </application>\n</manifest>\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt",
    "content": "package tachiyomi.presentation.widget\n\nimport android.app.Application\nimport android.content.Context\nimport android.graphics.Bitmap\nimport android.os.Build\nimport androidx.compose.runtime.collectAsState\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.unit.Dp\nimport androidx.core.graphics.drawable.toBitmap\nimport androidx.glance.GlanceId\nimport androidx.glance.GlanceModifier\nimport androidx.glance.ImageProvider\nimport androidx.glance.appwidget.GlanceAppWidget\nimport androidx.glance.appwidget.GlanceAppWidgetManager\nimport androidx.glance.appwidget.SizeMode\nimport androidx.glance.appwidget.appWidgetBackground\nimport androidx.glance.appwidget.provideContent\nimport androidx.glance.background\nimport androidx.glance.layout.fillMaxSize\nimport androidx.glance.layout.padding\nimport androidx.glance.unit.ColorProvider\nimport coil3.annotation.ExperimentalCoilApi\nimport coil3.asDrawable\nimport coil3.executeBlocking\nimport coil3.imageLoader\nimport coil3.request.CachePolicy\nimport coil3.request.ImageRequest\nimport coil3.request.transformations\nimport coil3.size.Precision\nimport coil3.size.Scale\nimport coil3.transform.RoundedCornersTransformation\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport eu.kanade.tachiyomi.util.system.dpToPx\nimport kotlinx.collections.immutable.ImmutableList\nimport kotlinx.collections.immutable.toImmutableList\nimport kotlinx.coroutines.flow.map\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.domain.manga.model.MangaCover\nimport tachiyomi.domain.updates.interactor.GetUpdates\nimport tachiyomi.domain.updates.model.UpdatesWithRelations\nimport tachiyomi.presentation.widget.components.CoverHeight\nimport tachiyomi.presentation.widget.components.CoverWidth\nimport tachiyomi.presentation.widget.components.LockedWidget\nimport tachiyomi.presentation.widget.components.UpdatesWidget\nimport tachiyomi.presentation.widget.util.appWidgetBackgroundRadius\nimport tachiyomi.presentation.widget.util.calculateRowAndColumnCount\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\nimport java.time.Instant\nimport java.time.ZonedDateTime\n\nabstract class BaseUpdatesGridGlanceWidget(\n    private val context: Context = Injekt.get<Application>(),\n    private val getUpdates: GetUpdates = Injekt.get(),\n    private val preferences: SecurityPreferences = Injekt.get(),\n) : GlanceAppWidget() {\n\n    override val sizeMode = SizeMode.Exact\n\n    abstract val foreground: ColorProvider\n    abstract val background: ImageProvider\n    abstract val topPadding: Dp\n    abstract val bottomPadding: Dp\n\n    override suspend fun provideGlance(context: Context, id: GlanceId) {\n        val locked = preferences.useAuthenticator.get()\n        val containerModifier = GlanceModifier\n            .fillMaxSize()\n            .background(background)\n            .appWidgetBackground()\n            .padding(top = topPadding, bottom = bottomPadding)\n            .appWidgetBackgroundRadius()\n\n        val manager = GlanceAppWidgetManager(context)\n        val ids = manager.getGlanceIds(javaClass)\n        val (rowCount, columnCount) = ids\n            .flatMap { manager.getAppWidgetSizes(it) }\n            .maxBy { it.height.value * it.width.value }\n            .calculateRowAndColumnCount(topPadding, bottomPadding)\n\n        provideContent {\n            // If app lock enabled, don't do anything\n            if (locked) {\n                LockedWidget(\n                    foreground = foreground,\n                    modifier = containerModifier,\n                )\n                return@provideContent\n            }\n\n            val flow = remember {\n                getUpdates\n                    .subscribe(false, DateLimit.toEpochMilli())\n                    .map { rawData ->\n                        rawData.prepareData(rowCount, columnCount)\n                    }\n            }\n            val data by flow.collectAsState(initial = null)\n            UpdatesWidget(\n                data = data,\n                contentColor = foreground,\n                topPadding = topPadding,\n                bottomPadding = bottomPadding,\n                modifier = containerModifier,\n            )\n        }\n    }\n\n    @OptIn(ExperimentalCoilApi::class)\n    private suspend fun List<UpdatesWithRelations>.prepareData(\n        rowCount: Int,\n        columnCount: Int,\n    ): ImmutableList<Pair<Long, Bitmap?>> {\n        // Resize to cover size\n        val widthPx = CoverWidth.value.toInt().dpToPx\n        val heightPx = CoverHeight.value.toInt().dpToPx\n        val roundPx = context.resources.getDimension(R.dimen.appwidget_inner_radius)\n        return withIOContext {\n            this@prepareData\n                .distinctBy { it.mangaId }\n                .take(rowCount * columnCount)\n                .map { updatesView ->\n                    val request = ImageRequest.Builder(context)\n                        .data(\n                            MangaCover(\n                                mangaId = updatesView.mangaId,\n                                sourceId = updatesView.sourceId,\n                                isMangaFavorite = true,\n                                url = updatesView.coverData.url,\n                                lastModified = updatesView.coverData.lastModified,\n                            ),\n                        )\n                        .memoryCachePolicy(CachePolicy.DISABLED)\n                        .precision(Precision.EXACT)\n                        .size(widthPx, heightPx)\n                        .scale(Scale.FILL)\n                        .let {\n                            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {\n                                it.transformations(RoundedCornersTransformation(roundPx))\n                            } else {\n                                it // Handled by system\n                            }\n                        }\n                        .build()\n                    val bitmap = context.imageLoader.executeBlocking(request)\n                        .image\n                        ?.asDrawable(context.resources)\n                        ?.toBitmap()\n                    Pair(updatesView.mangaId, bitmap)\n                }\n                .toImmutableList()\n        }\n    }\n\n    companion object {\n        val DateLimit: Instant\n            get() = ZonedDateTime.now().minusMonths(3).toInstant()\n    }\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/UpdatesGridCoverScreenGlanceReceiver.kt",
    "content": "package tachiyomi.presentation.widget\n\nimport androidx.glance.appwidget.GlanceAppWidget\nimport androidx.glance.appwidget.GlanceAppWidgetReceiver\n\nclass UpdatesGridCoverScreenGlanceReceiver : GlanceAppWidgetReceiver() {\n    override val glanceAppWidget: GlanceAppWidget\n        get() = UpdatesGridCoverScreenGlanceWidget()\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/UpdatesGridCoverScreenGlanceWidget.kt",
    "content": "package tachiyomi.presentation.widget\n\nimport androidx.compose.ui.graphics.Color\nimport androidx.compose.ui.unit.dp\nimport androidx.glance.ImageProvider\nimport androidx.glance.unit.ColorProvider\n\nclass UpdatesGridCoverScreenGlanceWidget : BaseUpdatesGridGlanceWidget() {\n    override val foreground = ColorProvider(Color.White)\n    override val background = ImageProvider(R.drawable.appwidget_coverscreen_background)\n    override val topPadding = 0.dp\n    override val bottomPadding = 24.dp\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/UpdatesGridGlanceReceiver.kt",
    "content": "package tachiyomi.presentation.widget\n\nimport androidx.glance.appwidget.GlanceAppWidget\nimport androidx.glance.appwidget.GlanceAppWidgetReceiver\n\nclass UpdatesGridGlanceReceiver : GlanceAppWidgetReceiver() {\n    override val glanceAppWidget: GlanceAppWidget\n        get() = UpdatesGridGlanceWidget()\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/UpdatesGridGlanceWidget.kt",
    "content": "package tachiyomi.presentation.widget\n\nimport android.annotation.SuppressLint\nimport androidx.compose.ui.unit.dp\nimport androidx.glance.ImageProvider\nimport androidx.glance.unit.ColorProvider\n\nclass UpdatesGridGlanceWidget : BaseUpdatesGridGlanceWidget() {\n    @SuppressLint(\"RestrictedApi\")\n    override val foreground = ColorProvider(R.color.appwidget_on_secondary_container)\n    override val background = ImageProvider(R.drawable.appwidget_background)\n    override val topPadding = 0.dp\n    override val bottomPadding = 0.dp\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/WidgetManager.kt",
    "content": "package tachiyomi.presentation.widget\n\nimport android.content.Context\nimport androidx.glance.appwidget.updateAll\nimport androidx.lifecycle.LifecycleCoroutineScope\nimport eu.kanade.tachiyomi.core.security.SecurityPreferences\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.flow.combine\nimport kotlinx.coroutines.flow.distinctUntilChanged\nimport kotlinx.coroutines.flow.flowOn\nimport kotlinx.coroutines.flow.launchIn\nimport kotlinx.coroutines.flow.onEach\nimport logcat.LogPriority\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.domain.updates.interactor.GetUpdates\n\nclass WidgetManager(\n    private val getUpdates: GetUpdates,\n    private val securityPreferences: SecurityPreferences,\n) {\n\n    fun Context.init(scope: LifecycleCoroutineScope) {\n        combine(\n            getUpdates.subscribe(read = false, after = BaseUpdatesGridGlanceWidget.DateLimit.toEpochMilli()),\n            securityPreferences.useAuthenticator.changes(),\n            transform = { a, b -> a to b },\n        )\n            .distinctUntilChanged { old, new ->\n                old.second == new.second &&\n                    old.first.map { it.chapterId }.toSet() == new.first.map { it.chapterId }.toSet()\n            }\n            .onEach {\n                try {\n                    UpdatesGridGlanceWidget().updateAll(this)\n                    UpdatesGridCoverScreenGlanceWidget().updateAll(this)\n                } catch (e: Exception) {\n                    logcat(LogPriority.ERROR, e) { \"Failed to update widget\" }\n                }\n            }\n            .flowOn(Dispatchers.Default)\n            .launchIn(scope)\n    }\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/components/LockedWidget.kt",
    "content": "package tachiyomi.presentation.widget.components\n\nimport android.content.Intent\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport androidx.glance.GlanceModifier\nimport androidx.glance.LocalContext\nimport androidx.glance.action.clickable\nimport androidx.glance.appwidget.action.actionStartActivity\nimport androidx.glance.layout.Alignment\nimport androidx.glance.layout.Box\nimport androidx.glance.layout.padding\nimport androidx.glance.text.Text\nimport androidx.glance.text.TextAlign\nimport androidx.glance.text.TextStyle\nimport androidx.glance.unit.ColorProvider\nimport tachiyomi.core.common.Constants\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\n\n@Composable\nfun LockedWidget(\n    foreground: ColorProvider,\n    modifier: GlanceModifier = GlanceModifier,\n) {\n    val intent = Intent(LocalContext.current, Class.forName(Constants.MAIN_ACTIVITY)).apply {\n        addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)\n    }\n    Box(\n        modifier = modifier\n            .clickable(actionStartActivity(intent))\n            .padding(8.dp),\n        contentAlignment = Alignment.Center,\n    ) {\n        Text(\n            text = stringResource(MR.strings.appwidget_unavailable_locked),\n            style = TextStyle(\n                color = foreground,\n                fontSize = 12.sp,\n                textAlign = TextAlign.Center,\n            ),\n        )\n    }\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/components/UpdatesMangaCover.kt",
    "content": "package tachiyomi.presentation.widget.components\n\nimport android.graphics.Bitmap\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.unit.dp\nimport androidx.glance.GlanceModifier\nimport androidx.glance.Image\nimport androidx.glance.ImageProvider\nimport androidx.glance.layout.Box\nimport androidx.glance.layout.ContentScale\nimport androidx.glance.layout.fillMaxSize\nimport androidx.glance.layout.size\nimport tachiyomi.presentation.widget.R\nimport tachiyomi.presentation.widget.util.appWidgetInnerRadius\n\nval CoverWidth = 58.dp\nval CoverHeight = 87.dp\n\n@Composable\nfun UpdatesMangaCover(\n    cover: Bitmap?,\n    modifier: GlanceModifier = GlanceModifier,\n) {\n    Box(\n        modifier = modifier\n            .size(width = CoverWidth, height = CoverHeight)\n            .appWidgetInnerRadius(),\n    ) {\n        if (cover != null) {\n            Image(\n                provider = ImageProvider(cover),\n                contentDescription = null,\n                modifier = GlanceModifier\n                    .fillMaxSize()\n                    .appWidgetInnerRadius(),\n                contentScale = ContentScale.Crop,\n            )\n        } else {\n            // Enjoy placeholder\n            Image(\n                provider = ImageProvider(R.drawable.appwidget_cover_error),\n                contentDescription = null,\n                modifier = GlanceModifier.fillMaxSize(),\n                contentScale = ContentScale.Crop,\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/components/UpdatesWidget.kt",
    "content": "package tachiyomi.presentation.widget.components\n\nimport android.content.Intent\nimport android.graphics.Bitmap\nimport androidx.compose.runtime.Composable\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.dp\nimport androidx.glance.GlanceModifier\nimport androidx.glance.LocalContext\nimport androidx.glance.LocalSize\nimport androidx.glance.action.clickable\nimport androidx.glance.appwidget.CircularProgressIndicator\nimport androidx.glance.appwidget.action.actionStartActivity\nimport androidx.glance.layout.Alignment\nimport androidx.glance.layout.Box\nimport androidx.glance.layout.Column\nimport androidx.glance.layout.Row\nimport androidx.glance.layout.fillMaxHeight\nimport androidx.glance.layout.fillMaxWidth\nimport androidx.glance.layout.padding\nimport androidx.glance.text.Text\nimport androidx.glance.text.TextStyle\nimport androidx.glance.unit.ColorProvider\nimport kotlinx.collections.immutable.ImmutableList\nimport tachiyomi.core.common.Constants\nimport tachiyomi.i18n.MR\nimport tachiyomi.presentation.core.i18n.stringResource\nimport tachiyomi.presentation.widget.util.calculateRowAndColumnCount\n\n@Composable\nfun UpdatesWidget(\n    data: ImmutableList<Pair<Long, Bitmap?>>?,\n    contentColor: ColorProvider,\n    topPadding: Dp,\n    bottomPadding: Dp,\n    modifier: GlanceModifier = GlanceModifier,\n) {\n    Box(\n        contentAlignment = Alignment.Center,\n        modifier = modifier,\n    ) {\n        if (data == null) {\n            CircularProgressIndicator(color = contentColor)\n        } else if (data.isEmpty()) {\n            Text(\n                text = stringResource(MR.strings.information_no_recent),\n                style = TextStyle(color = contentColor),\n            )\n        } else {\n            val (rowCount, columnCount) = LocalSize.current.calculateRowAndColumnCount(topPadding, bottomPadding)\n            Column(\n                modifier = GlanceModifier.fillMaxHeight(),\n                verticalAlignment = Alignment.CenterVertically,\n                horizontalAlignment = Alignment.CenterHorizontally,\n            ) {\n                (0..<rowCount).forEach { i ->\n                    val coverRow = (0..<columnCount).mapNotNull { j ->\n                        data.getOrNull(j + (i * columnCount))\n                    }\n                    if (coverRow.isNotEmpty()) {\n                        Row(\n                            modifier = GlanceModifier\n                                .padding(vertical = 4.dp)\n                                .fillMaxWidth(),\n                            horizontalAlignment = Alignment.CenterHorizontally,\n                            verticalAlignment = Alignment.CenterVertically,\n                        ) {\n                            coverRow.forEach { (mangaId, cover) ->\n                                Box(\n                                    modifier = GlanceModifier\n                                        .padding(horizontal = 3.dp),\n                                    contentAlignment = Alignment.Center,\n                                ) {\n                                    val intent = Intent(\n                                        LocalContext.current,\n                                        Class.forName(Constants.MAIN_ACTIVITY),\n                                    ).apply {\n                                        action = Constants.SHORTCUT_MANGA\n                                        putExtra(Constants.MANGA_EXTRA, mangaId)\n                                        addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)\n                                        addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n\n                                        // https://issuetracker.google.com/issues/238793260\n                                        addCategory(mangaId.toString())\n                                    }\n                                    UpdatesMangaCover(\n                                        cover = cover,\n                                        modifier = GlanceModifier.clickable(actionStartActivity(intent)),\n                                    )\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "presentation-widget/src/main/java/tachiyomi/presentation/widget/util/GlanceUtils.kt",
    "content": "package tachiyomi.presentation.widget.util\n\nimport androidx.compose.ui.unit.Dp\nimport androidx.compose.ui.unit.DpSize\nimport androidx.glance.GlanceModifier\nimport androidx.glance.appwidget.cornerRadius\nimport tachiyomi.presentation.widget.R\n\nfun GlanceModifier.appWidgetBackgroundRadius(): GlanceModifier {\n    return this.cornerRadius(R.dimen.appwidget_background_radius)\n}\n\nfun GlanceModifier.appWidgetInnerRadius(): GlanceModifier {\n    return this.cornerRadius(R.dimen.appwidget_inner_radius)\n}\n\n/**\n * Calculates row-column count.\n *\n * Row\n * Numerator: Container height - container vertical padding\n * Denominator: Cover height + cover vertical padding\n *\n * Column\n * Numerator: Container width - container horizontal padding\n * Denominator: Cover width + cover horizontal padding\n *\n * @return pair of row and column count\n */\nfun DpSize.calculateRowAndColumnCount(\n    topPadding: Dp,\n    bottomPadding: Dp,\n): Pair<Int, Int> {\n    // Hack: Size provided by Glance manager is not reliable so take at least 1 row and 1 column\n    // Set max to 10 children each direction because of Glance limitation\n    val height = this.height - topPadding - bottomPadding\n    val rowCount = (height.value / 95).toInt().coerceIn(1, 10)\n    val columnCount = (width.value / 64).toInt().coerceIn(1, 10)\n    return Pair(rowCount, columnCount)\n}\n"
  },
  {
    "path": "presentation-widget/src/main/res/drawable/appwidget_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:shape=\"rectangle\">\n    <solid android:color=\"@color/appwidget_secondary_container\" />\n    <corners android:radius=\"@dimen/appwidget_background_radius\" />\n</shape>\n"
  },
  {
    "path": "presentation-widget/src/main/res/drawable/appwidget_cover_error.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item>\n        <shape android:shape=\"rectangle\">\n            <solid android:color=\"@color/cover_placeholder\" />\n            <corners android:radius=\"@dimen/appwidget_inner_radius\" />\n        </shape>\n    </item>\n    <item\n        android:top=\"24dp\"\n        android:bottom=\"24dp\"\n        android:left=\"24dp\"\n        android:right=\"24dp\">\n        <vector\n            android:width=\"24dp\"\n            android:height=\"24dp\"\n            android:viewportWidth=\"24\"\n            android:viewportHeight=\"24\">\n            <path\n                android:fillColor=\"@color/cover_placeholder\"\n                android:pathData=\"M21,5v6.59l-2.29,-2.3c-0.39,-0.39 -1.03,-0.39 -1.42,0L14,12.59 10.71,9.3c-0.39,-0.39 -1.02,-0.39 -1.41,0L6,12.59 3,9.58L3,5c0,-1.1 0.9,-2 2,-2h14c1.1,0 2,0.9 2,2zM18,11.42l3,3.01L21,19c0,1.1 -0.9,2 -2,2L5,21c-1.1,0 -2,-0.9 -2,-2v-6.58l2.29,2.29c0.39,0.39 1.02,0.39 1.41,0l3.3,-3.3 3.29,3.29c0.39,0.39 1.02,0.39 1.41,0l3.3,-3.28z\"/>\n        </vector>\n    </item>\n</layer-list>\n"
  },
  {
    "path": "presentation-widget/src/main/res/drawable/appwidget_coverscreen_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:shape=\"rectangle\">\n    <solid android:color=\"@color/appwidget_coverscreen_background\" />\n</shape>\n"
  },
  {
    "path": "presentation-widget/src/main/res/layout/appwidget_coverscreen_loading.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<FrameLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:background=\"@drawable/appwidget_coverscreen_background\">\n\n    <TextView\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_gravity=\"center\"\n        android:text=\"@string/loading\"\n        android:textColor=\"@android:color/white\" />\n\n</FrameLayout>\n"
  },
  {
    "path": "presentation-widget/src/main/res/layout/appwidget_loading.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<FrameLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:background=\"@drawable/appwidget_background\">\n\n    <TextView\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_gravity=\"center\"\n        android:text=\"@string/loading\"\n        android:textColor=\"?android:attr/textColorPrimary\" />\n\n</FrameLayout>\n"
  },
  {
    "path": "presentation-widget/src/main/res/values/colors_appwidget.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"appwidget_background\">@color/tachiyomi_surface</color>\n    <color name=\"appwidget_coverscreen_background\">#00000000</color>\n    <color name=\"appwidget_on_background\">@color/tachiyomi_onSurface</color>\n    <color name=\"appwidget_surface_variant\">@color/tachiyomi_surfaceVariant</color>\n    <color name=\"appwidget_on_surface_variant\">@color/tachiyomi_onSurfaceVariant</color>\n    <color name=\"appwidget_secondary_container\">@color/tachiyomi_secondaryContainer</color>\n    <color name=\"appwidget_on_secondary_container\">@color/tachiyomi_onSecondaryContainer</color>\n</resources>\n"
  },
  {
    "path": "presentation-widget/src/main/res/values/dimens.xml",
    "content": "<resources>\n    <dimen name=\"appwidget_background_radius\">16dp</dimen>\n    <dimen name=\"appwidget_inner_radius\">12dp</dimen>\n</resources>\n"
  },
  {
    "path": "presentation-widget/src/main/res/values-night-v31/colors_appwidget.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"appwidget_background\">@color/m3_sys_color_dynamic_dark_surface</color>\n    <color name=\"appwidget_on_background\">@color/m3_sys_color_dynamic_dark_on_surface</color>\n    <color name=\"appwidget_surface_variant\">@color/m3_sys_color_dynamic_dark_surface_variant</color>\n    <color name=\"appwidget_on_surface_variant\">@color/m3_sys_color_dynamic_dark_on_surface_variant</color>\n    <color name=\"appwidget_secondary_container\">@color/m3_sys_color_dynamic_dark_secondary_container</color>\n    <color name=\"appwidget_on_secondary_container\">@color/m3_sys_color_dynamic_dark_on_secondary_container</color>\n</resources>\n"
  },
  {
    "path": "presentation-widget/src/main/res/values-v31/colors_appwidget.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"appwidget_background\">@color/m3_sys_color_dynamic_light_surface</color>\n    <color name=\"appwidget_on_background\">@color/m3_sys_color_dynamic_light_on_surface</color>\n    <color name=\"appwidget_surface_variant\">@color/m3_sys_color_dynamic_light_surface_variant</color>\n    <color name=\"appwidget_on_surface_variant\">@color/m3_sys_color_dynamic_light_on_surface_variant</color>\n    <color name=\"appwidget_secondary_container\">@color/m3_sys_color_dynamic_light_secondary_container</color>\n    <color name=\"appwidget_on_secondary_container\">@color/m3_sys_color_dynamic_light_on_secondary_container</color>\n</resources>\n"
  },
  {
    "path": "presentation-widget/src/main/res/values-v31/dimens.xml",
    "content": "<resources>\n    <dimen name=\"appwidget_background_radius\">@android:dimen/system_app_widget_background_radius</dimen>\n</resources>\n"
  },
  {
    "path": "presentation-widget/src/main/res/xml/updates_grid_homescreen_widget_info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<appwidget-provider xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:description=\"@string/appwidget_updates_description\"\n    android:previewImage=\"@drawable/updates_grid_widget_preview\"\n    android:initialLayout=\"@layout/appwidget_loading\"\n    android:minWidth=\"240dp\"\n    android:minHeight=\"80dp\"\n    android:minResizeWidth=\"80dp\"\n    android:minResizeHeight=\"110dp\"\n    android:maxResizeWidth=\"600dp\"\n    android:maxResizeHeight=\"600dp\"\n    android:targetCellWidth=\"4\"\n    android:targetCellHeight=\"2\"\n    android:resizeMode=\"horizontal|vertical\"\n    android:widgetCategory=\"home_screen\" />\n"
  },
  {
    "path": "presentation-widget/src/main/res/xml/updates_grid_lockscreen_widget_info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<appwidget-provider xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:description=\"@string/appwidget_updates_description\"\n    android:previewImage=\"@drawable/updates_grid_coverscreen_widget_preview\"\n    android:initialLayout=\"@layout/appwidget_coverscreen_loading\"\n    android:resizeMode=\"horizontal|vertical\"\n    android:widgetCategory=\"keyguard\" />\n"
  },
  {
    "path": "presentation-widget/src/main/res/xml/updates_grid_samsung_cover_widget_info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<samsung-appwidget-provider\n    display=\"sub_screen\"\n    privacyWidget=\"true\" />\n"
  },
  {
    "path": "settings.gradle.kts",
    "content": "pluginManagement {\n    resolutionStrategy {\n        eachPlugin {\n            val regex = \"com.android.(library|application)\".toRegex()\n            if (regex matches requested.id.id) {\n                useModule(\"com.android.tools.build:gradle:${requested.version}\")\n            }\n        }\n    }\n    repositories {\n        gradlePluginPortal()\n        google()\n        mavenCentral()\n        maven(url = \"https://www.jitpack.io\")\n    }\n}\n\ndependencyResolutionManagement {\n    versionCatalogs {\n        create(\"kotlinx\") {\n            from(files(\"gradle/kotlinx.versions.toml\"))\n        }\n        create(\"androidx\") {\n            from(files(\"gradle/androidx.versions.toml\"))\n        }\n        create(\"compose\") {\n            from(files(\"gradle/compose.versions.toml\"))\n        }\n    }\n    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)\n    repositories {\n        mavenCentral()\n        google()\n        maven(url = \"https://www.jitpack.io\")\n    }\n}\n\nenableFeaturePreview(\"TYPESAFE_PROJECT_ACCESSORS\")\n\nrootProject.name = \"Mihon\"\ninclude(\":app\")\ninclude(\":core-metadata\")\ninclude(\":core:archive\")\ninclude(\":core:common\")\ninclude(\":data\")\ninclude(\":domain\")\ninclude(\":i18n\")\ninclude(\":macrobenchmark\")\ninclude(\":presentation-core\")\ninclude(\":presentation-widget\")\ninclude(\":source-api\")\ninclude(\":source-local\")\ninclude(\":telemetry\")\n"
  },
  {
    "path": "source-api/build.gradle.kts",
    "content": "import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi\n\nplugins {\n    id(\"mihon.library\")\n    kotlin(\"multiplatform\")\n    kotlin(\"plugin.serialization\")\n}\n\nkotlin {\n    androidTarget()\n    sourceSets {\n        val commonMain by getting {\n            dependencies {\n                api(kotlinx.serialization.json)\n                api(libs.injekt)\n                api(libs.rxjava)\n                api(libs.jsoup)\n\n                implementation(project.dependencies.platform(compose.bom))\n                implementation(compose.runtime)\n            }\n        }\n        val androidMain by getting {\n            dependencies {\n                implementation(projects.core.common)\n                api(libs.preferencektx)\n\n                // Workaround for https://youtrack.jetbrains.com/issue/KT-57605\n                implementation(kotlinx.coroutines.android)\n                implementation(project.dependencies.platform(kotlinx.coroutines.bom))\n            }\n        }\n    }\n\n    @OptIn(ExperimentalKotlinGradlePluginApi::class)\n    compilerOptions {\n        freeCompilerArgs.add(\"-Xexpect-actual-classes\")\n    }\n}\n\nandroid {\n    namespace = \"eu.kanade.tachiyomi.source\"\n\n    defaultConfig {\n        consumerProguardFile(\"consumer-proguard.pro\")\n    }\n}\n"
  },
  {
    "path": "source-api/consumer-proguard.pro",
    "content": "-keep class eu.kanade.tachiyomi.source.model.** { public protected *; }\n-keep class eu.kanade.tachiyomi.source.online.** { public protected *; }\n-keep class eu.kanade.tachiyomi.source.** extends eu.kanade.tachiyomi.source.Source { public protected *; }\n\n-keep,allowoptimization class eu.kanade.tachiyomi.util.JsoupExtensionsKt { public protected *; }\n"
  },
  {
    "path": "source-api/src/androidMain/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nactual typealias PreferenceScreen = androidx.preference.PreferenceScreen\n"
  },
  {
    "path": "source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt",
    "content": "package eu.kanade.tachiyomi.util\n\nimport rx.Observable\nimport tachiyomi.core.common.util.lang.awaitSingle\n\nactual suspend fun <T> Observable<T>.awaitSingle(): T = awaitSingle()\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport eu.kanade.tachiyomi.source.model.MangasPage\nimport rx.Observable\nimport tachiyomi.core.common.util.lang.awaitSingle\n\ninterface CatalogueSource : Source {\n\n    /**\n     * An ISO 639-1 compliant language code (two letters in lower case).\n     */\n    override val lang: String\n\n    /**\n     * Whether the source has support for latest updates.\n     */\n    val supportsLatest: Boolean\n\n    /**\n     * Get a page with a list of manga.\n     *\n     * @since extensions-lib 1.5\n     * @param page the page number to retrieve.\n     */\n    @Suppress(\"DEPRECATION\")\n    suspend fun getPopularManga(page: Int): MangasPage {\n        return fetchPopularManga(page).awaitSingle()\n    }\n\n    /**\n     * Get a page with a list of manga.\n     *\n     * @since extensions-lib 1.5\n     * @param page the page number to retrieve.\n     * @param query the search query.\n     * @param filters the list of filters to apply.\n     */\n    @Suppress(\"DEPRECATION\")\n    suspend fun getSearchManga(page: Int, query: String, filters: FilterList): MangasPage {\n        return fetchSearchManga(page, query, filters).awaitSingle()\n    }\n\n    /**\n     * Get a page with a list of latest manga updates.\n     *\n     * @since extensions-lib 1.5\n     * @param page the page number to retrieve.\n     */\n    @Suppress(\"DEPRECATION\")\n    suspend fun getLatestUpdates(page: Int): MangasPage {\n        return fetchLatestUpdates(page).awaitSingle()\n    }\n\n    /**\n     * Returns the list of filters for the source.\n     */\n    fun getFilterList(): FilterList\n\n    @Deprecated(\n        \"Use the non-RxJava API instead\",\n        ReplaceWith(\"getPopularManga\"),\n    )\n    fun fetchPopularManga(page: Int): Observable<MangasPage> =\n        throw IllegalStateException(\"Not used\")\n\n    @Deprecated(\n        \"Use the non-RxJava API instead\",\n        ReplaceWith(\"getSearchManga\"),\n    )\n    fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> =\n        throw IllegalStateException(\"Not used\")\n\n    @Deprecated(\n        \"Use the non-RxJava API instead\",\n        ReplaceWith(\"getLatestUpdates\"),\n    )\n    fun fetchLatestUpdates(page: Int): Observable<MangasPage> =\n        throw IllegalStateException(\"Not used\")\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nimport android.app.Application\nimport android.content.Context\nimport android.content.SharedPreferences\nimport uy.kohesive.injekt.Injekt\nimport uy.kohesive.injekt.api.get\n\ninterface ConfigurableSource : Source {\n\n    /**\n     * Gets instance of [SharedPreferences] scoped to the specific source.\n     *\n     * @since extensions-lib 1.5\n     */\n    fun getSourcePreferences(): SharedPreferences =\n        Injekt.get<Application>().getSharedPreferences(preferenceKey(), Context.MODE_PRIVATE)\n\n    fun setupPreferenceScreen(screen: PreferenceScreen)\n}\n\nfun ConfigurableSource.preferenceKey(): String = \"source_$id\"\n\n// TODO: use getSourcePreferences once all extensions are on ext-lib 1.5\nfun ConfigurableSource.sourcePreferences(): SharedPreferences =\n    Injekt.get<Application>().getSharedPreferences(preferenceKey(), Context.MODE_PRIVATE)\n\nfun sourcePreferences(key: String): SharedPreferences =\n    Injekt.get<Application>().getSharedPreferences(key, Context.MODE_PRIVATE)\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nexpect class PreferenceScreen\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/Source.kt",
    "content": "package eu.kanade.tachiyomi.source\n\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.util.awaitSingle\nimport rx.Observable\n\n/**\n * A basic interface for creating a source. It could be an online source, a local source, etc.\n */\ninterface Source {\n\n    /**\n     * ID for the source. Must be unique.\n     */\n    val id: Long\n\n    /**\n     * Name of the source.\n     */\n    val name: String\n\n    val lang: String\n        get() = \"\"\n\n    /**\n     * Get the updated details for a manga.\n     *\n     * @since extensions-lib 1.5\n     * @param manga the manga to update.\n     * @return the updated manga.\n     */\n    @Suppress(\"DEPRECATION\")\n    suspend fun getMangaDetails(manga: SManga): SManga {\n        return fetchMangaDetails(manga).awaitSingle()\n    }\n\n    /**\n     * Get all the available chapters for a manga.\n     *\n     * @since extensions-lib 1.5\n     * @param manga the manga to update.\n     * @return the chapters for the manga.\n     */\n    @Suppress(\"DEPRECATION\")\n    suspend fun getChapterList(manga: SManga): List<SChapter> {\n        return fetchChapterList(manga).awaitSingle()\n    }\n\n    /**\n     * Get the list of pages a chapter has. Pages should be returned\n     * in the expected order; the index is ignored.\n     *\n     * @since extensions-lib 1.5\n     * @param chapter the chapter.\n     * @return the pages for the chapter.\n     */\n    @Suppress(\"DEPRECATION\")\n    suspend fun getPageList(chapter: SChapter): List<Page> {\n        return fetchPageList(chapter).awaitSingle()\n    }\n\n    @Deprecated(\n        \"Use the non-RxJava API instead\",\n        ReplaceWith(\"getMangaDetails\"),\n    )\n    fun fetchMangaDetails(manga: SManga): Observable<SManga> =\n        throw IllegalStateException(\"Not used\")\n\n    @Deprecated(\n        \"Use the non-RxJava API instead\",\n        ReplaceWith(\"getChapterList\"),\n    )\n    fun fetchChapterList(manga: SManga): Observable<List<SChapter>> =\n        throw IllegalStateException(\"Not used\")\n\n    @Deprecated(\n        \"Use the non-RxJava API instead\",\n        ReplaceWith(\"getPageList\"),\n    )\n    fun fetchPageList(chapter: SChapter): Observable<List<Page>> =\n        throw IllegalStateException(\"Not used\")\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt",
    "content": "package eu.kanade.tachiyomi.source\n\n/**\n * A factory for creating sources at runtime.\n */\ninterface SourceFactory {\n    /**\n     * Create a new copy of the sources\n     * @return The created sources\n     */\n    fun createSources(): List<Source>\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt",
    "content": "package eu.kanade.tachiyomi.source\n\n/**\n * A source that explicitly doesn't require traffic considerations.\n *\n * This typically applies for self-hosted sources.\n */\ninterface UnmeteredSource\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt",
    "content": "package eu.kanade.tachiyomi.source.model\n\nsealed class Filter<T>(val name: String, var state: T) {\n    open class Header(name: String) : Filter<Any>(name, 0)\n    open class Separator(name: String = \"\") : Filter<Any>(name, 0)\n    abstract class Select<V>(name: String, val values: Array<V>, state: Int = 0) : Filter<Int>(\n        name,\n        state,\n    )\n    abstract class Text(name: String, state: String = \"\") : Filter<String>(name, state)\n    abstract class CheckBox(name: String, state: Boolean = false) : Filter<Boolean>(name, state)\n    abstract class TriState(name: String, state: Int = STATE_IGNORE) : Filter<Int>(name, state) {\n        fun isIgnored() = state == STATE_IGNORE\n        fun isIncluded() = state == STATE_INCLUDE\n        fun isExcluded() = state == STATE_EXCLUDE\n\n        companion object {\n            const val STATE_IGNORE = 0\n            const val STATE_INCLUDE = 1\n            const val STATE_EXCLUDE = 2\n        }\n    }\n\n    abstract class Group<V>(name: String, state: List<V>) : Filter<List<V>>(name, state)\n\n    abstract class Sort(name: String, val values: Array<String>, state: Selection? = null) :\n        Filter<Sort.Selection?>(name, state) {\n        data class Selection(val index: Int, val ascending: Boolean)\n    }\n\n    override fun equals(other: Any?): Boolean {\n        if (this === other) return true\n        if (other !is Filter<*>) return false\n\n        return name == other.name && state == other.state\n    }\n\n    override fun hashCode(): Int {\n        var result = name.hashCode()\n        result = 31 * result + (state?.hashCode() ?: 0)\n        return result\n    }\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt",
    "content": "package eu.kanade.tachiyomi.source.model\n\nimport androidx.compose.runtime.Stable\n\n@Stable\ndata class FilterList(val list: List<Filter<*>>) : List<Filter<*>> by list {\n\n    constructor(vararg fs: Filter<*>) : this(if (fs.isNotEmpty()) fs.asList() else emptyList())\n\n    override fun equals(other: Any?): Boolean {\n        return false\n    }\n\n    override fun hashCode(): Int {\n        return list.hashCode()\n    }\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt",
    "content": "package eu.kanade.tachiyomi.source.model\n\ndata class MangasPage(val mangas: List<SManga>, val hasNextPage: Boolean)\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/Page.kt",
    "content": "package eu.kanade.tachiyomi.source.model\n\nimport android.net.Uri\nimport eu.kanade.tachiyomi.network.ProgressListener\nimport kotlinx.coroutines.flow.MutableStateFlow\nimport kotlinx.coroutines.flow.asStateFlow\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.Transient\n\n@Serializable\nopen class Page(\n    val index: Int,\n    val url: String = \"\",\n    var imageUrl: String? = null,\n    @Transient var uri: Uri? = null, // Deprecated but can't be deleted due to extensions\n) : ProgressListener {\n\n    val number: Int\n        get() = index + 1\n\n    @Transient\n    private val _statusFlow = MutableStateFlow<State>(State.Queue)\n\n    @Transient\n    val statusFlow = _statusFlow.asStateFlow()\n    var status: State\n        get() = _statusFlow.value\n        set(value) {\n            _statusFlow.value = value\n        }\n\n    @Transient\n    private val _progressFlow = MutableStateFlow(0)\n\n    @Transient\n    val progressFlow = _progressFlow.asStateFlow()\n    var progress: Int\n        get() = _progressFlow.value\n        set(value) {\n            _progressFlow.value = value\n        }\n\n    override fun update(bytesRead: Long, contentLength: Long, done: Boolean) {\n        progress = if (contentLength > 0) {\n            (100 * bytesRead / contentLength).toInt()\n        } else {\n            -1\n        }\n    }\n\n    sealed interface State {\n        data object Queue : State\n        data object LoadPage : State\n        data object DownloadImage : State\n        data object Ready : State\n        data class Error(val error: Throwable) : State\n    }\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.source.model\n\nimport java.io.Serializable\n\ninterface SChapter : Serializable {\n\n    var url: String\n\n    var name: String\n\n    var date_upload: Long\n\n    var chapter_number: Float\n\n    var scanlator: String?\n\n    fun copyFrom(other: SChapter) {\n        name = other.name\n        url = other.url\n        date_upload = other.date_upload\n        chapter_number = other.chapter_number\n        scanlator = other.scanlator\n    }\n\n    companion object {\n        fun create(): SChapter {\n            return SChapterImpl()\n        }\n    }\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.source.model\n\nclass SChapterImpl : SChapter {\n\n    override lateinit var url: String\n\n    override lateinit var name: String\n\n    override var date_upload: Long = 0\n\n    override var chapter_number: Float = -1f\n\n    override var scanlator: String? = null\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.source.model\n\nimport java.io.Serializable\n\ninterface SManga : Serializable {\n\n    var url: String\n\n    var title: String\n\n    var artist: String?\n\n    var author: String?\n\n    var description: String?\n\n    var genre: String?\n\n    var status: Int\n\n    var thumbnail_url: String?\n\n    var update_strategy: UpdateStrategy\n\n    var initialized: Boolean\n\n    fun getGenres(): List<String>? {\n        if (genre.isNullOrBlank()) return null\n        return genre?.split(\", \")?.map { it.trim() }?.filterNot { it.isBlank() }?.distinct()\n    }\n\n    fun copy() = create().also {\n        it.url = url\n        it.title = title\n        it.artist = artist\n        it.author = author\n        it.description = description\n        it.genre = genre\n        it.status = status\n        it.thumbnail_url = thumbnail_url\n        it.update_strategy = update_strategy\n        it.initialized = initialized\n    }\n\n    companion object {\n        const val UNKNOWN = 0\n        const val ONGOING = 1\n        const val COMPLETED = 2\n        const val LICENSED = 3\n        const val PUBLISHING_FINISHED = 4\n        const val CANCELLED = 5\n        const val ON_HIATUS = 6\n\n        fun create(): SManga {\n            return SMangaImpl()\n        }\n    }\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt",
    "content": "@file:Suppress(\"PropertyName\")\n\npackage eu.kanade.tachiyomi.source.model\n\nclass SMangaImpl : SManga {\n\n    override lateinit var url: String\n\n    override lateinit var title: String\n\n    override var artist: String? = null\n\n    override var author: String? = null\n\n    override var description: String? = null\n\n    override var genre: String? = null\n\n    override var status: Int = 0\n\n    override var thumbnail_url: String? = null\n\n    override var update_strategy: UpdateStrategy = UpdateStrategy.ALWAYS_UPDATE\n\n    override var initialized: Boolean = false\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt",
    "content": "package eu.kanade.tachiyomi.source.model\n\n/**\n * Define the update strategy for a single [SManga].\n * The strategy used will only take effect on the library update.\n *\n * @since extensions-lib 1.4\n */\n@Suppress(\"UNUSED\")\nenum class UpdateStrategy {\n    /**\n     * Series marked as always update will be included in the library\n     * update if they aren't excluded by additional restrictions.\n     */\n    ALWAYS_UPDATE,\n\n    /**\n     * Series marked as only fetch once will be automatically skipped\n     * during library updates. Useful for cases where the series is previously\n     * known to be finished and have only a single chapter, for example.\n     */\n    ONLY_FETCH_ONCE,\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt",
    "content": "package eu.kanade.tachiyomi.source.online\n\nimport eu.kanade.tachiyomi.network.GET\nimport eu.kanade.tachiyomi.network.NetworkHelper\nimport eu.kanade.tachiyomi.network.asObservableSuccess\nimport eu.kanade.tachiyomi.network.awaitSuccess\nimport eu.kanade.tachiyomi.network.newCachelessCallWithProgress\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport eu.kanade.tachiyomi.source.model.MangasPage\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\nimport okhttp3.Headers\nimport okhttp3.OkHttpClient\nimport okhttp3.Request\nimport okhttp3.Response\nimport rx.Observable\nimport tachiyomi.core.common.util.lang.awaitSingle\nimport uy.kohesive.injekt.injectLazy\nimport java.net.URI\nimport java.net.URISyntaxException\nimport java.security.MessageDigest\n\n/**\n * A simple implementation for sources from a website.\n */\n@Suppress(\"unused\")\nabstract class HttpSource : CatalogueSource {\n\n    /**\n     * Network service.\n     */\n    protected val network: NetworkHelper by injectLazy()\n\n    /**\n     * Base url of the website without the trailing slash, like: http://mysite.com\n     */\n    abstract val baseUrl: String\n\n    /**\n     * Version id used to generate the source id. If the site completely changes and urls are\n     * incompatible, you may increase this value and it'll be considered as a new source.\n     */\n    open val versionId = 1\n\n    /**\n     * ID of the source. By default it uses a generated id using the first 16 characters (64 bits)\n     * of the MD5 of the string `\"${name.lowercase()}/$lang/$versionId\"`.\n     *\n     * The ID is generated by the [generateId] function, which can be reused if needed\n     * to generate outdated IDs for cases where the source name or language needs to\n     * be changed but migrations can be avoided.\n     *\n     * Note: the generated ID sets the sign bit to `0`.\n     */\n    override val id by lazy { generateId(name, lang, versionId) }\n\n    /**\n     * Headers used for requests.\n     */\n    val headers: Headers by lazy { headersBuilder().build() }\n\n    /**\n     * Default network client for doing requests.\n     */\n    open val client: OkHttpClient\n        get() = network.client\n\n    /**\n     * Generates a unique ID for the source based on the provided [name], [lang] and\n     * [versionId]. It will use the first 16 characters (64 bits) of the MD5 of the string\n     * `\"${name.lowercase()}/$lang/$versionId\"`.\n     *\n     * Note: the generated ID sets the sign bit to `0`.\n     *\n     * Can be used to generate outdated IDs, such as when the source name or language\n     * needs to be changed but migrations can be avoided.\n     *\n     * @since extensions-lib 1.5\n     * @param name [String] the name of the source\n     * @param lang [String] the language of the source\n     * @param versionId [Int] the version ID of the source\n     * @return a unique ID for the source\n     */\n    @Suppress(\"MemberVisibilityCanBePrivate\")\n    protected fun generateId(name: String, lang: String, versionId: Int): Long {\n        val key = \"${name.lowercase()}/$lang/$versionId\"\n        val bytes = MessageDigest.getInstance(\"MD5\").digest(key.toByteArray())\n        return (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }.reduce(Long::or) and Long.MAX_VALUE\n    }\n\n    /**\n     * Headers builder for requests. Implementations can override this method for custom headers.\n     */\n    protected open fun headersBuilder() = Headers.Builder().apply {\n        add(\"User-Agent\", network.defaultUserAgentProvider())\n    }\n\n    /**\n     * Visible name of the source.\n     */\n    override fun toString() = \"$name (${lang.uppercase()})\"\n\n    /**\n     * Returns an observable containing a page with a list of manga. Normally it's not needed to\n     * override this method.\n     *\n     * @param page the page number to retrieve.\n     */\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getPopularManga\"))\n    override fun fetchPopularManga(page: Int): Observable<MangasPage> {\n        return client.newCall(popularMangaRequest(page))\n            .asObservableSuccess()\n            .map { response ->\n                popularMangaParse(response)\n            }\n    }\n\n    /**\n     * Returns the request for the popular manga given the page.\n     *\n     * @param page the page number to retrieve.\n     */\n    protected abstract fun popularMangaRequest(page: Int): Request\n\n    /**\n     * Parses the response from the site and returns a [MangasPage] object.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun popularMangaParse(response: Response): MangasPage\n\n    /**\n     * Returns an observable containing a page with a list of manga. Normally it's not needed to\n     * override this method.\n     *\n     * @param page the page number to retrieve.\n     * @param query the search query.\n     * @param filters the list of filters to apply.\n     */\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getSearchManga\"))\n    override fun fetchSearchManga(\n        page: Int,\n        query: String,\n        filters: FilterList,\n    ): Observable<MangasPage> {\n        return Observable.defer {\n            try {\n                client.newCall(searchMangaRequest(page, query, filters)).asObservableSuccess()\n            } catch (e: NoClassDefFoundError) {\n                // RxJava doesn't handle Errors, which tends to happen during global searches\n                // if an old extension using non-existent classes is still around\n                throw RuntimeException(e)\n            }\n        }\n            .map { response ->\n                searchMangaParse(response)\n            }\n    }\n\n    /**\n     * Returns the request for the search manga given the page.\n     *\n     * @param page the page number to retrieve.\n     * @param query the search query.\n     * @param filters the list of filters to apply.\n     */\n    protected abstract fun searchMangaRequest(\n        page: Int,\n        query: String,\n        filters: FilterList,\n    ): Request\n\n    /**\n     * Parses the response from the site and returns a [MangasPage] object.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun searchMangaParse(response: Response): MangasPage\n\n    /**\n     * Returns an observable containing a page with a list of latest manga updates.\n     *\n     * @param page the page number to retrieve.\n     */\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getLatestUpdates\"))\n    override fun fetchLatestUpdates(page: Int): Observable<MangasPage> {\n        return client.newCall(latestUpdatesRequest(page))\n            .asObservableSuccess()\n            .map { response ->\n                latestUpdatesParse(response)\n            }\n    }\n\n    /**\n     * Returns the request for latest manga given the page.\n     *\n     * @param page the page number to retrieve.\n     */\n    protected abstract fun latestUpdatesRequest(page: Int): Request\n\n    /**\n     * Parses the response from the site and returns a [MangasPage] object.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun latestUpdatesParse(response: Response): MangasPage\n\n    /**\n     * Get the updated details for a manga.\n     * Normally it's not needed to override this method.\n     *\n     * @param manga the manga to update.\n     * @return the updated manga.\n     */\n    @Suppress(\"DEPRECATION\")\n    override suspend fun getMangaDetails(manga: SManga): SManga {\n        return fetchMangaDetails(manga).awaitSingle()\n    }\n\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getMangaDetails\"))\n    override fun fetchMangaDetails(manga: SManga): Observable<SManga> {\n        return client.newCall(mangaDetailsRequest(manga))\n            .asObservableSuccess()\n            .map { response ->\n                mangaDetailsParse(response).apply { initialized = true }\n            }\n    }\n\n    /**\n     * Returns the request for the details of a manga. Override only if it's needed to change the\n     * url, send different headers or request method like POST.\n     *\n     * @param manga the manga to be updated.\n     */\n    open fun mangaDetailsRequest(manga: SManga): Request {\n        return GET(baseUrl + manga.url, headers)\n    }\n\n    /**\n     * Parses the response from the site and returns the details of a manga.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun mangaDetailsParse(response: Response): SManga\n\n    /**\n     * Get all the available chapters for a manga.\n     * Normally it's not needed to override this method.\n     *\n     * @param manga the manga to update.\n     * @return the chapters for the manga.\n     */\n    @Suppress(\"DEPRECATION\")\n    override suspend fun getChapterList(manga: SManga): List<SChapter> {\n        return fetchChapterList(manga).awaitSingle()\n    }\n\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getChapterList\"))\n    override fun fetchChapterList(manga: SManga): Observable<List<SChapter>> {\n        return client.newCall(chapterListRequest(manga))\n            .asObservableSuccess()\n            .map { response ->\n                chapterListParse(response)\n            }\n    }\n\n    /**\n     * Returns the request for updating the chapter list. Override only if it's needed to override\n     * the url, send different headers or request method like POST.\n     *\n     * @param manga the manga to look for chapters.\n     */\n    protected open fun chapterListRequest(manga: SManga): Request {\n        return GET(baseUrl + manga.url, headers)\n    }\n\n    /**\n     * Parses the response from the site and returns a list of chapters.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun chapterListParse(response: Response): List<SChapter>\n\n    /**\n     * Parses the response from the site and returns a SChapter Object.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun chapterPageParse(response: Response): SChapter\n\n    /**\n     * Get the list of pages a chapter has. Pages should be returned\n     * in the expected order; the index is ignored.\n     *\n     * @param chapter the chapter.\n     * @return the pages for the chapter.\n     */\n    @Suppress(\"DEPRECATION\")\n    override suspend fun getPageList(chapter: SChapter): List<Page> {\n        return fetchPageList(chapter).awaitSingle()\n    }\n\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getPageList\"))\n    override fun fetchPageList(chapter: SChapter): Observable<List<Page>> {\n        return client.newCall(pageListRequest(chapter))\n            .asObservableSuccess()\n            .map { response ->\n                pageListParse(response)\n            }\n    }\n\n    /**\n     * Returns the request for getting the page list. Override only if it's needed to override the\n     * url, send different headers or request method like POST.\n     *\n     * @param chapter the chapter whose page list has to be fetched.\n     */\n    protected open fun pageListRequest(chapter: SChapter): Request {\n        return GET(baseUrl + chapter.url, headers)\n    }\n\n    /**\n     * Parses the response from the site and returns a list of pages.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun pageListParse(response: Response): List<Page>\n\n    /**\n     * Returns an observable with the page containing the source url of the image. If there's any\n     * error, it will return null instead of throwing an exception.\n     *\n     * @since extensions-lib 1.5\n     * @param page the page whose source image has to be fetched.\n     */\n    @Suppress(\"DEPRECATION\")\n    open suspend fun getImageUrl(page: Page): String {\n        return fetchImageUrl(page).awaitSingle()\n    }\n\n    @Deprecated(\"Use the non-RxJava API instead\", replaceWith = ReplaceWith(\"getImageUrl\"))\n    open fun fetchImageUrl(page: Page): Observable<String> {\n        return client.newCall(imageUrlRequest(page))\n            .asObservableSuccess()\n            .map { imageUrlParse(it) }\n    }\n\n    /**\n     * Returns the request for getting the url to the source image. Override only if it's needed to\n     * override the url, send different headers or request method like POST.\n     *\n     * @param page the chapter whose page list has to be fetched\n     */\n    protected open fun imageUrlRequest(page: Page): Request {\n        return GET(page.url, headers)\n    }\n\n    /**\n     * Parses the response from the site and returns the absolute url to the source image.\n     *\n     * @param response the response from the site.\n     */\n    protected abstract fun imageUrlParse(response: Response): String\n\n    /**\n     * Returns the response of the source image.\n     * Typically does not need to be overridden.\n     *\n     * @since extensions-lib 1.5\n     * @param page the page whose source image has to be downloaded.\n     */\n    open suspend fun getImage(page: Page): Response {\n        return client.newCachelessCallWithProgress(imageRequest(page), page)\n            .awaitSuccess()\n    }\n\n    /**\n     * Returns the request for getting the source image. Override only if it's needed to override\n     * the url, send different headers or request method like POST.\n     *\n     * @param page the chapter whose page list has to be fetched\n     */\n    protected open fun imageRequest(page: Page): Request {\n        return GET(page.imageUrl!!, headers)\n    }\n\n    /**\n     * Assigns the url of the chapter without the scheme and domain. It saves some redundancy from\n     * database and the urls could still work after a domain change.\n     *\n     * @param url the full url to the chapter.\n     */\n    fun SChapter.setUrlWithoutDomain(url: String) {\n        this.url = getUrlWithoutDomain(url)\n    }\n\n    /**\n     * Assigns the url of the manga without the scheme and domain. It saves some redundancy from\n     * database and the urls could still work after a domain change.\n     *\n     * @param url the full url to the manga.\n     */\n    fun SManga.setUrlWithoutDomain(url: String) {\n        this.url = getUrlWithoutDomain(url)\n    }\n\n    /**\n     * Returns the url of the given string without the scheme and domain.\n     *\n     * @param orig the full url.\n     */\n    private fun getUrlWithoutDomain(orig: String): String {\n        return try {\n            val uri = URI(orig.replace(\" \", \"%20\"))\n            var out = uri.path\n            if (uri.query != null) {\n                out += \"?\" + uri.query\n            }\n            if (uri.fragment != null) {\n                out += \"#\" + uri.fragment\n            }\n            out\n        } catch (e: URISyntaxException) {\n            orig\n        }\n    }\n\n    /**\n     * Returns the url of the provided manga\n     *\n     * @since extensions-lib 1.4\n     * @param manga the manga\n     * @return url of the manga\n     */\n    open fun getMangaUrl(manga: SManga): String {\n        return mangaDetailsRequest(manga).url.toString()\n    }\n\n    /**\n     * Returns the url of the provided chapter\n     *\n     * @since extensions-lib 1.4\n     * @param chapter the chapter\n     * @return url of the chapter\n     */\n    open fun getChapterUrl(chapter: SChapter): String {\n        return pageListRequest(chapter).url.toString()\n    }\n\n    /**\n     * Called before inserting a new chapter into database. Use it if you need to override chapter\n     * fields, like the title or the chapter number. Do not change anything to [manga].\n     *\n     * @param chapter the chapter to be added.\n     * @param manga the manga of the chapter.\n     */\n    open fun prepareNewChapter(chapter: SChapter, manga: SManga) {}\n\n    /**\n     * Returns the list of filters for the source.\n     */\n    override fun getFilterList() = FilterList()\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt",
    "content": "package eu.kanade.tachiyomi.source.online\n\nimport eu.kanade.tachiyomi.source.model.MangasPage\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.util.asJsoup\nimport okhttp3.Response\nimport org.jsoup.nodes.Document\nimport org.jsoup.nodes.Element\n\n/**\n * A simple implementation for sources from a website using Jsoup, an HTML parser.\n */\n@Suppress(\"unused\")\nabstract class ParsedHttpSource : HttpSource() {\n\n    /**\n     * Parses the response from the site and returns a [MangasPage] object.\n     *\n     * @param response the response from the site.\n     */\n    override fun popularMangaParse(response: Response): MangasPage {\n        val document = response.asJsoup()\n\n        val mangas = document.select(popularMangaSelector()).map { element ->\n            popularMangaFromElement(element)\n        }\n\n        val hasNextPage = popularMangaNextPageSelector()?.let { selector ->\n            document.select(selector).first()\n        } != null\n\n        return MangasPage(mangas, hasNextPage)\n    }\n\n    /**\n     * Returns the Jsoup selector that returns a list of [Element] corresponding to each manga.\n     */\n    protected abstract fun popularMangaSelector(): String\n\n    /**\n     * Returns a manga from the given [element]. Most sites only show the title and the url, it's\n     * totally fine to fill only those two values.\n     *\n     * @param element an element obtained from [popularMangaSelector].\n     */\n    protected abstract fun popularMangaFromElement(element: Element): SManga\n\n    /**\n     * Returns the Jsoup selector that returns the <a> tag linking to the next page, or null if\n     * there's no next page.\n     */\n    protected abstract fun popularMangaNextPageSelector(): String?\n\n    /**\n     * Parses the response from the site and returns a [MangasPage] object.\n     *\n     * @param response the response from the site.\n     */\n    override fun searchMangaParse(response: Response): MangasPage {\n        val document = response.asJsoup()\n\n        val mangas = document.select(searchMangaSelector()).map { element ->\n            searchMangaFromElement(element)\n        }\n\n        val hasNextPage = searchMangaNextPageSelector()?.let { selector ->\n            document.select(selector).first()\n        } != null\n\n        return MangasPage(mangas, hasNextPage)\n    }\n\n    /**\n     * Returns the Jsoup selector that returns a list of [Element] corresponding to each manga.\n     */\n    protected abstract fun searchMangaSelector(): String\n\n    /**\n     * Returns a manga from the given [element]. Most sites only show the title and the url, it's\n     * totally fine to fill only those two values.\n     *\n     * @param element an element obtained from [searchMangaSelector].\n     */\n    protected abstract fun searchMangaFromElement(element: Element): SManga\n\n    /**\n     * Returns the Jsoup selector that returns the <a> tag linking to the next page, or null if\n     * there's no next page.\n     */\n    protected abstract fun searchMangaNextPageSelector(): String?\n\n    /**\n     * Parses the response from the site and returns a [MangasPage] object.\n     *\n     * @param response the response from the site.\n     */\n    override fun latestUpdatesParse(response: Response): MangasPage {\n        val document = response.asJsoup()\n\n        val mangas = document.select(latestUpdatesSelector()).map { element ->\n            latestUpdatesFromElement(element)\n        }\n\n        val hasNextPage = latestUpdatesNextPageSelector()?.let { selector ->\n            document.select(selector).first()\n        } != null\n\n        return MangasPage(mangas, hasNextPage)\n    }\n\n    /**\n     * Returns the Jsoup selector that returns a list of [Element] corresponding to each manga.\n     */\n    protected abstract fun latestUpdatesSelector(): String\n\n    /**\n     * Returns a manga from the given [element]. Most sites only show the title and the url, it's\n     * totally fine to fill only those two values.\n     *\n     * @param element an element obtained from [latestUpdatesSelector].\n     */\n    protected abstract fun latestUpdatesFromElement(element: Element): SManga\n\n    /**\n     * Returns the Jsoup selector that returns the <a> tag linking to the next page, or null if\n     * there's no next page.\n     */\n    protected abstract fun latestUpdatesNextPageSelector(): String?\n\n    /**\n     * Parses the response from the site and returns the details of a manga.\n     *\n     * @param response the response from the site.\n     */\n    override fun mangaDetailsParse(response: Response): SManga {\n        return mangaDetailsParse(response.asJsoup())\n    }\n\n    /**\n     * Returns the details of the manga from the given [document].\n     *\n     * @param document the parsed document.\n     */\n    protected abstract fun mangaDetailsParse(document: Document): SManga\n\n    /**\n     * Parses the response from the site and returns a list of chapters.\n     *\n     * @param response the response from the site.\n     */\n    override fun chapterListParse(response: Response): List<SChapter> {\n        val document = response.asJsoup()\n        return document.select(chapterListSelector()).map { chapterFromElement(it) }\n    }\n\n    /**\n     * Returns the Jsoup selector that returns a list of [Element] corresponding to each chapter.\n     */\n    protected abstract fun chapterListSelector(): String\n\n    /**\n     * Returns a chapter from the given element.\n     *\n     * @param element an element obtained from [chapterListSelector].\n     */\n    protected abstract fun chapterFromElement(element: Element): SChapter\n\n    /**\n     * Parses the response from the site and returns the page list.\n     *\n     * @param response the response from the site.\n     */\n    override fun pageListParse(response: Response): List<Page> {\n        return pageListParse(response.asJsoup())\n    }\n\n    /**\n     * Returns a page list from the given document.\n     *\n     * @param document the parsed document.\n     */\n    protected abstract fun pageListParse(document: Document): List<Page>\n\n    /**\n     * Parse the response from the site and returns the absolute url to the source image.\n     *\n     * @param response the response from the site.\n     */\n    override fun imageUrlParse(response: Response): String {\n        return imageUrlParse(response.asJsoup())\n    }\n\n    /**\n     * Returns the absolute url to the source image from the document.\n     *\n     * @param document the parsed document.\n     */\n    protected abstract fun imageUrlParse(document: Document): String\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt",
    "content": "package eu.kanade.tachiyomi.source.online\n\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\n\n/**\n * A source that may handle opening an SManga or SChapter for a given URI.\n *\n * @since extensions-lib 1.5\n */\ninterface ResolvableSource : Source {\n\n    /**\n     * Returns what the given URI may open.\n     * Returns [UriType.Unknown] if the source is not able to resolve the URI.\n     *\n     * @since extensions-lib 1.5\n     */\n    fun getUriType(uri: String): UriType\n\n    /**\n     * Called if [getUriType] is [UriType.Manga].\n     * Returns the corresponding SManga, if possible.\n     *\n     * @since extensions-lib 1.5\n     */\n    suspend fun getManga(uri: String): SManga?\n\n    /**\n     * Called if [getUriType] is [UriType.Chapter].\n     * Returns the corresponding SChapter, if possible.\n     *\n     * @since extensions-lib 1.5\n     */\n    suspend fun getChapter(uri: String): SChapter?\n}\n\nsealed interface UriType {\n    data object Manga : UriType\n    data object Chapter : UriType\n    data object Unknown : UriType\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt",
    "content": "package eu.kanade.tachiyomi.util\n\nimport okhttp3.Response\nimport org.jsoup.Jsoup\nimport org.jsoup.nodes.Document\nimport org.jsoup.nodes.Element\n\nfun Element.selectText(css: String, defaultValue: String? = null): String? {\n    return select(css).first()?.text() ?: defaultValue\n}\n\nfun Element.selectInt(css: String, defaultValue: Int = 0): Int {\n    return select(css).first()?.text()?.toInt() ?: defaultValue\n}\n\nfun Element.attrOrText(css: String): String {\n    return if (css != \"text\") attr(css) else text()\n}\n\n/**\n * Returns a Jsoup document for this response.\n * @param html the body of the response. Use only if the body was read before calling this method.\n */\nfun Response.asJsoup(html: String? = null): Document {\n    return Jsoup.parse(html ?: body.string(), request.url.toString())\n}\n"
  },
  {
    "path": "source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt",
    "content": "package eu.kanade.tachiyomi.util\n\nimport rx.Observable\n\nexpect suspend fun <T> Observable<T>.awaitSingle(): T\n"
  },
  {
    "path": "source-local/build.gradle.kts",
    "content": "import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi\n\nplugins {\n    id(\"mihon.library\")\n    kotlin(\"multiplatform\")\n}\n\nkotlin {\n    androidTarget()\n    sourceSets {\n        val commonMain by getting {\n            dependencies {\n                implementation(projects.sourceApi)\n                api(projects.i18n)\n\n                implementation(libs.unifile)\n            }\n        }\n        val androidMain by getting {\n            dependencies {\n                implementation(projects.core.archive)\n                implementation(projects.core.common)\n                implementation(projects.coreMetadata)\n\n                // Move ChapterRecognition to separate module?\n                implementation(projects.domain)\n\n                implementation(kotlinx.bundles.serialization)\n            }\n        }\n    }\n\n    @OptIn(ExperimentalKotlinGradlePluginApi::class)\n    compilerOptions {\n        freeCompilerArgs.addAll(\n            \"-Xexpect-actual-classes\",\n            \"-opt-in=kotlinx.serialization.ExperimentalSerializationApi\",\n        )\n    }\n}\n\nandroid {\n    namespace = \"tachiyomi.source.local\"\n\n    defaultConfig {\n        testInstrumentationRunner = \"androidx.test.runner.AndroidJUnitRunner\"\n        consumerProguardFiles(\"consumer-rules.pro\")\n    }\n}\n"
  },
  {
    "path": "source-local/consumer-rules.pro",
    "content": ""
  },
  {
    "path": "source-local/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile"
  },
  {
    "path": "source-local/src/androidMain/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt",
    "content": "package tachiyomi.source.local\n\nimport android.content.Context\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.Source\nimport eu.kanade.tachiyomi.source.UnmeteredSource\nimport eu.kanade.tachiyomi.source.model.FilterList\nimport eu.kanade.tachiyomi.source.model.MangasPage\nimport eu.kanade.tachiyomi.source.model.Page\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder\nimport kotlinx.coroutines.async\nimport kotlinx.coroutines.awaitAll\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.json.decodeFromStream\nimport logcat.LogPriority\nimport mihon.core.archive.archiveReader\nimport mihon.core.archive.epubReader\nimport nl.adaptivity.xmlutil.core.AndroidXmlReader\nimport nl.adaptivity.xmlutil.serialization.XML\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.core.common.storage.extension\nimport tachiyomi.core.common.storage.nameWithoutExtension\nimport tachiyomi.core.common.util.lang.withIOContext\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.core.common.util.system.logcat\nimport tachiyomi.core.metadata.comicinfo.COMIC_INFO_FILE\nimport tachiyomi.core.metadata.comicinfo.ComicInfo\nimport tachiyomi.core.metadata.comicinfo.copyFromComicInfo\nimport tachiyomi.core.metadata.comicinfo.getComicInfo\nimport tachiyomi.core.metadata.tachiyomi.MangaDetails\nimport tachiyomi.domain.chapter.service.ChapterRecognition\nimport tachiyomi.domain.manga.model.Manga\nimport tachiyomi.i18n.MR\nimport tachiyomi.source.local.filter.OrderBy\nimport tachiyomi.source.local.image.LocalCoverManager\nimport tachiyomi.source.local.io.Archive\nimport tachiyomi.source.local.io.Format\nimport tachiyomi.source.local.io.LocalSourceFileSystem\nimport tachiyomi.source.local.metadata.fillMetadata\nimport uy.kohesive.injekt.injectLazy\nimport java.io.InputStream\nimport java.nio.charset.StandardCharsets\nimport kotlin.time.Duration.Companion.days\nimport tachiyomi.domain.source.model.Source as DomainSource\n\nactual class LocalSource(\n    private val context: Context,\n    private val fileSystem: LocalSourceFileSystem,\n    private val coverManager: LocalCoverManager,\n) : CatalogueSource, UnmeteredSource {\n\n    private val json: Json by injectLazy()\n    private val xml: XML by injectLazy()\n\n    @Suppress(\"PrivatePropertyName\")\n    private val PopularFilters = FilterList(OrderBy.Popular(context))\n\n    @Suppress(\"PrivatePropertyName\")\n    private val LatestFilters = FilterList(OrderBy.Latest(context))\n\n    override val name: String = context.stringResource(MR.strings.local_source)\n\n    override val id: Long = ID\n\n    override val lang: String = \"other\"\n\n    override fun toString() = name\n\n    override val supportsLatest: Boolean = true\n\n    // Browse related\n    override suspend fun getPopularManga(page: Int) = getSearchManga(page, \"\", PopularFilters)\n\n    override suspend fun getLatestUpdates(page: Int) = getSearchManga(page, \"\", LatestFilters)\n\n    override suspend fun getSearchManga(page: Int, query: String, filters: FilterList): MangasPage = withIOContext {\n        val lastModifiedLimit = if (filters === LatestFilters) {\n            System.currentTimeMillis() - LATEST_THRESHOLD\n        } else {\n            0L\n        }\n\n        var mangaDirs = fileSystem.getFilesInBaseDirectory()\n            // Filter out files that are hidden and is not a folder\n            .filter { it.isDirectory && !it.name.orEmpty().startsWith('.') }\n            .distinctBy { it.name }\n            .filter {\n                if (lastModifiedLimit == 0L && query.isBlank()) {\n                    true\n                } else if (lastModifiedLimit == 0L) {\n                    it.name.orEmpty().contains(query, ignoreCase = true)\n                } else {\n                    it.lastModified() >= lastModifiedLimit\n                }\n            }\n\n        filters.forEach { filter ->\n            when (filter) {\n                is OrderBy.Popular -> {\n                    mangaDirs = if (filter.state!!.ascending) {\n                        mangaDirs.sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.name.orEmpty() })\n                    } else {\n                        mangaDirs.sortedWith(compareByDescending(String.CASE_INSENSITIVE_ORDER) { it.name.orEmpty() })\n                    }\n                }\n                is OrderBy.Latest -> {\n                    mangaDirs = if (filter.state!!.ascending) {\n                        mangaDirs.sortedBy(UniFile::lastModified)\n                    } else {\n                        mangaDirs.sortedByDescending(UniFile::lastModified)\n                    }\n                }\n                else -> {\n                    /* Do nothing */\n                }\n            }\n        }\n\n        val mangas = mangaDirs\n            .map { mangaDir ->\n                async {\n                    SManga.create().apply {\n                        title = mangaDir.name.orEmpty()\n                        url = mangaDir.name.orEmpty()\n\n                        // Try to find the cover\n                        coverManager.find(mangaDir.name.orEmpty())?.let {\n                            thumbnail_url = it.uri.toString()\n                        }\n                    }\n                }\n            }\n            .awaitAll()\n\n        MangasPage(mangas, false)\n    }\n\n    // Manga details related\n    override suspend fun getMangaDetails(manga: SManga): SManga = withIOContext {\n        coverManager.find(manga.url)?.let {\n            manga.thumbnail_url = it.uri.toString()\n        }\n\n        // Augment manga details based on metadata files\n        try {\n            val mangaDir = fileSystem.getMangaDirectory(manga.url) ?: error(\"${manga.url} is not a valid directory\")\n            val mangaDirFiles = mangaDir.listFiles().orEmpty()\n\n            val comicInfoFile = mangaDirFiles\n                .firstOrNull { it.name == COMIC_INFO_FILE }\n            val noXmlFile = mangaDirFiles\n                .firstOrNull { it.name == \".noxml\" }\n            val legacyJsonDetailsFile = mangaDirFiles\n                .firstOrNull { it.extension == \"json\" }\n\n            when {\n                // Top level ComicInfo.xml\n                comicInfoFile != null -> {\n                    noXmlFile?.delete()\n                    setMangaDetailsFromComicInfoFile(comicInfoFile.openInputStream(), manga)\n                }\n\n                // Old custom JSON format\n                // TODO: remove support for this entirely after a while\n                legacyJsonDetailsFile != null -> {\n                    json.decodeFromStream<MangaDetails>(legacyJsonDetailsFile.openInputStream()).run {\n                        title?.let { manga.title = it }\n                        author?.let { manga.author = it }\n                        artist?.let { manga.artist = it }\n                        description?.let { manga.description = it }\n                        genre?.let { manga.genre = it.joinToString() }\n                        status?.let { manga.status = it }\n                    }\n                    // Replace with ComicInfo.xml file\n                    val comicInfo = manga.getComicInfo()\n                    mangaDir\n                        .createFile(COMIC_INFO_FILE)\n                        ?.openOutputStream()\n                        ?.use {\n                            val comicInfoString = xml.encodeToString(ComicInfo.serializer(), comicInfo)\n                            it.write(comicInfoString.toByteArray())\n                            legacyJsonDetailsFile.delete()\n                        }\n                }\n\n                // Copy ComicInfo.xml from chapter archive to top level if found\n                noXmlFile == null -> {\n                    val chapterArchives = mangaDirFiles.filter(Archive::isSupported)\n\n                    val copiedFile = copyComicInfoFileFromChapters(chapterArchives, mangaDir)\n                    if (copiedFile != null) {\n                        setMangaDetailsFromComicInfoFile(copiedFile.openInputStream(), manga)\n                    } else {\n                        // Avoid re-scanning\n                        mangaDir.createFile(\".noxml\")\n                    }\n                }\n            }\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e) { \"Error setting manga details from local metadata for ${manga.title}\" }\n        }\n\n        return@withIOContext manga\n    }\n\n    private fun <T> getComicInfoForChapter(chapter: UniFile, block: (InputStream) -> T): T? {\n        if (chapter.isDirectory) {\n            return chapter.findFile(COMIC_INFO_FILE)?.let { file ->\n                file.openInputStream().use(block)\n            }\n        } else {\n            return chapter.archiveReader(context).use { reader ->\n                reader.getInputStream(COMIC_INFO_FILE)?.use(block)\n            }\n        }\n    }\n\n    private fun copyComicInfoFileFromChapters(chapterArchives: List<UniFile>, folder: UniFile): UniFile? {\n        for (chapter in chapterArchives) {\n            val file = getComicInfoForChapter(chapter) f@{ stream ->\n                return@f copyComicInfoFile(stream, folder)\n            }\n            if (file != null) return file\n        }\n        return null\n    }\n\n    private fun copyComicInfoFile(comicInfoFileStream: InputStream, folder: UniFile): UniFile? {\n        return folder.createFile(COMIC_INFO_FILE)?.apply {\n            openOutputStream().use { outputStream ->\n                comicInfoFileStream.use { it.copyTo(outputStream) }\n            }\n        }\n    }\n\n    private fun parseComicInfo(stream: InputStream): ComicInfo {\n        return AndroidXmlReader(stream, StandardCharsets.UTF_8.name()).use {\n            xml.decodeFromReader<ComicInfo>(it)\n        }\n    }\n\n    private fun setMangaDetailsFromComicInfoFile(stream: InputStream, manga: SManga) {\n        manga.copyFromComicInfo(parseComicInfo(stream))\n    }\n\n    private fun setChapterDetailsFromComicInfoFile(stream: InputStream, chapter: SChapter) {\n        val comicInfo = parseComicInfo(stream)\n\n        comicInfo.title?.let { chapter.name = it.value }\n        comicInfo.number?.value?.toFloatOrNull()?.let { chapter.chapter_number = it }\n        comicInfo.translator?.let { chapter.scanlator = it.value }\n    }\n\n    // Chapters\n    override suspend fun getChapterList(manga: SManga): List<SChapter> = withIOContext {\n        val chapters = fileSystem.getFilesInMangaDirectory(manga.url)\n            // Only keep supported formats\n            .filterNot { it.name.orEmpty().startsWith('.') }\n            .filter { it.isDirectory || Archive.isSupported(it) || it.extension.equals(\"epub\", true) }\n            .map { chapterFile ->\n                SChapter.create().apply {\n                    url = \"${manga.url}/${chapterFile.name}\"\n                    name = if (chapterFile.isDirectory) {\n                        chapterFile.name\n                    } else {\n                        chapterFile.nameWithoutExtension\n                    }.orEmpty()\n                    date_upload = chapterFile.lastModified()\n                    chapter_number = ChapterRecognition\n                        .parseChapterNumber(manga.title, this.name, this.chapter_number.toDouble())\n                        .toFloat()\n\n                    val format = Format.valueOf(chapterFile)\n                    if (format is Format.Epub) {\n                        format.file.epubReader(context).use { epub ->\n                            epub.fillMetadata(manga, this)\n                        }\n                    } else {\n                        getComicInfoForChapter(chapterFile) { stream ->\n                            setChapterDetailsFromComicInfoFile(stream, this)\n                        }\n                    }\n                }\n            }\n            .sortedWith { c1, c2 ->\n                c2.name.compareToCaseInsensitiveNaturalOrder(c1.name)\n            }\n\n        // Copy the cover from the first chapter found if not available\n        if (manga.thumbnail_url.isNullOrBlank()) {\n            chapters.lastOrNull()?.let { chapter ->\n                updateCover(chapter, manga)\n            }\n        }\n\n        chapters\n    }\n\n    // Filters\n    override fun getFilterList() = FilterList(OrderBy.Popular(context))\n\n    // Unused stuff\n    override suspend fun getPageList(chapter: SChapter): List<Page> = throw UnsupportedOperationException(\"Unused\")\n\n    fun getFormat(chapter: SChapter): Format {\n        try {\n            val (mangaDirName, chapterName) = chapter.url.split('/', limit = 2)\n            return fileSystem.getBaseDirectory()\n                ?.findFile(mangaDirName)\n                ?.findFile(chapterName)\n                ?.let(Format.Companion::valueOf)\n                ?: throw Exception(context.stringResource(MR.strings.chapter_not_found))\n        } catch (e: Format.UnknownFormatException) {\n            throw Exception(context.stringResource(MR.strings.local_invalid_format))\n        } catch (e: Exception) {\n            throw e\n        }\n    }\n\n    private fun updateCover(chapter: SChapter, manga: SManga): UniFile? {\n        return try {\n            when (val format = getFormat(chapter)) {\n                is Format.Directory -> {\n                    val entry = format.file.listFiles()\n                        ?.sortedWith { f1, f2 ->\n                            f1.name.orEmpty().compareToCaseInsensitiveNaturalOrder(\n                                f2.name.orEmpty(),\n                            )\n                        }\n                        ?.find {\n                            !it.isDirectory && ImageUtil.isImage(it.name) { it.openInputStream() }\n                        }\n\n                    entry?.let { coverManager.update(manga, it.openInputStream()) }\n                }\n                is Format.Archive -> {\n                    format.file.archiveReader(context).use { reader ->\n                        val entry = reader.useEntries { entries ->\n                            entries\n                                .sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }\n                                .find { it.isFile && ImageUtil.isImage(it.name) { reader.getInputStream(it.name)!! } }\n                        }\n\n                        entry?.let { coverManager.update(manga, reader.getInputStream(it.name)!!) }\n                    }\n                }\n                is Format.Epub -> {\n                    format.file.epubReader(context).use { epub ->\n                        val entry = epub.getImagesFromPages().firstOrNull()\n\n                        entry?.let { coverManager.update(manga, epub.getInputStream(it)!!) }\n                    }\n                }\n            }\n        } catch (e: Throwable) {\n            logcat(LogPriority.ERROR, e) { \"Error updating cover for ${manga.title}\" }\n            null\n        }\n    }\n\n    companion object {\n        const val ID = 0L\n        const val HELP_URL = \"https://mihon.app/docs/guides/local-source/\"\n\n        private val LATEST_THRESHOLD = 7.days.inWholeMilliseconds\n    }\n}\n\nfun Manga.isLocal(): Boolean = source == LocalSource.ID\n\nfun Source.isLocal(): Boolean = id == LocalSource.ID\n\nfun DomainSource.isLocal(): Boolean = id == LocalSource.ID\n"
  },
  {
    "path": "source-local/src/androidMain/kotlin/tachiyomi/source/local/filter/OrderBy.kt",
    "content": "package tachiyomi.source.local.filter\n\nimport android.content.Context\nimport eu.kanade.tachiyomi.source.model.Filter\nimport tachiyomi.core.common.i18n.stringResource\nimport tachiyomi.i18n.MR\n\nsealed class OrderBy(context: Context, selection: Selection) : Filter.Sort(\n    context.stringResource(MR.strings.local_filter_order_by),\n    arrayOf(context.stringResource(MR.strings.title), context.stringResource(MR.strings.date)),\n    selection,\n) {\n    class Popular(context: Context) : OrderBy(context, Selection(0, true))\n    class Latest(context: Context) : OrderBy(context, Selection(1, false))\n}\n"
  },
  {
    "path": "source-local/src/androidMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt",
    "content": "package tachiyomi.source.local.image\n\nimport android.content.Context\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.source.model.SManga\nimport eu.kanade.tachiyomi.util.storage.DiskUtil\nimport tachiyomi.core.common.storage.nameWithoutExtension\nimport tachiyomi.core.common.util.system.ImageUtil\nimport tachiyomi.source.local.io.LocalSourceFileSystem\nimport java.io.InputStream\n\nprivate const val DEFAULT_COVER_NAME = \"cover.jpg\"\n\nactual class LocalCoverManager(\n    private val context: Context,\n    private val fileSystem: LocalSourceFileSystem,\n) {\n\n    actual fun find(mangaUrl: String): UniFile? {\n        return fileSystem.getFilesInMangaDirectory(mangaUrl)\n            // Get all file whose names start with \"cover\"\n            .filter { it.isFile && it.nameWithoutExtension.equals(\"cover\", ignoreCase = true) }\n            // Get the first actual image\n            .firstOrNull { ImageUtil.isImage(it.name) { it.openInputStream() } }\n    }\n\n    actual fun update(\n        manga: SManga,\n        inputStream: InputStream,\n    ): UniFile? {\n        val directory = fileSystem.getMangaDirectory(manga.url)\n        if (directory == null) {\n            inputStream.close()\n            return null\n        }\n\n        val targetFile = find(manga.url) ?: directory.createFile(DEFAULT_COVER_NAME)!!\n\n        inputStream.use { input ->\n            targetFile.openOutputStream().use { output ->\n                input.copyTo(output)\n            }\n        }\n\n        DiskUtil.createNoMediaFile(directory, context)\n\n        manga.thumbnail_url = targetFile.uri.toString()\n        return targetFile\n    }\n}\n"
  },
  {
    "path": "source-local/src/androidMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt",
    "content": "package tachiyomi.source.local.io\n\nimport com.hippo.unifile.UniFile\nimport tachiyomi.domain.storage.service.StorageManager\n\nactual class LocalSourceFileSystem(\n    private val storageManager: StorageManager,\n) {\n\n    actual fun getBaseDirectory(): UniFile? {\n        return storageManager.getLocalSourceDirectory()\n    }\n\n    actual fun getFilesInBaseDirectory(): List<UniFile> {\n        return getBaseDirectory()?.listFiles().orEmpty().toList()\n    }\n\n    actual fun getMangaDirectory(name: String): UniFile? {\n        return getBaseDirectory()\n            ?.findFile(name)\n            ?.takeIf { it.isDirectory }\n    }\n\n    actual fun getFilesInMangaDirectory(name: String): List<UniFile> {\n        return getMangaDirectory(name)?.listFiles().orEmpty().toList()\n    }\n}\n"
  },
  {
    "path": "source-local/src/androidMain/kotlin/tachiyomi/source/local/metadata/EpubReaderExtensions.kt",
    "content": "package tachiyomi.source.local.metadata\n\nimport eu.kanade.tachiyomi.source.model.SChapter\nimport eu.kanade.tachiyomi.source.model.SManga\nimport mihon.core.archive.EpubReader\nimport java.text.ParseException\nimport java.text.SimpleDateFormat\nimport java.util.Locale\n\n/**\n * Fills manga and chapter metadata using this epub file's metadata.\n */\nfun EpubReader.fillMetadata(manga: SManga, chapter: SChapter) {\n    val ref = getPackageHref()\n    val doc = getPackageDocument(ref)\n\n    val title = doc.getElementsByTag(\"dc:title\").first()\n    val publisher = doc.getElementsByTag(\"dc:publisher\").first()\n    val creator = doc.getElementsByTag(\"dc:creator\").first()\n    val description = doc.getElementsByTag(\"dc:description\").first()\n    var date = doc.getElementsByTag(\"dc:date\").first()\n    if (date == null) {\n        date = doc.select(\"meta[property=dcterms:modified]\").first()\n    }\n\n    creator?.text()?.let { manga.author = it }\n    description?.text()?.let { manga.description = it }\n\n    title?.text()?.let { chapter.name = it }\n\n    if (publisher != null) {\n        chapter.scanlator = publisher.text()\n    } else if (creator != null) {\n        chapter.scanlator = creator.text()\n    }\n\n    if (date != null) {\n        val dateFormat = SimpleDateFormat(\"yyyy-MM-dd'T'HH:mm:ssZ\", Locale.getDefault())\n        try {\n            val parsedDate = dateFormat.parse(date.text())\n            if (parsedDate != null) {\n                chapter.date_upload = parsedDate.time\n            }\n        } catch (e: ParseException) {\n            // Empty\n        }\n    }\n}\n"
  },
  {
    "path": "source-local/src/commonMain/kotlin/tachiyomi/source/local/LocalSource.kt",
    "content": "package tachiyomi.source.local\n\nimport eu.kanade.tachiyomi.source.CatalogueSource\nimport eu.kanade.tachiyomi.source.UnmeteredSource\n\nexpect class LocalSource : CatalogueSource, UnmeteredSource\n"
  },
  {
    "path": "source-local/src/commonMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt",
    "content": "package tachiyomi.source.local.image\n\nimport com.hippo.unifile.UniFile\nimport eu.kanade.tachiyomi.source.model.SManga\nimport java.io.InputStream\n\nexpect class LocalCoverManager {\n\n    fun find(mangaUrl: String): UniFile?\n\n    fun update(manga: SManga, inputStream: InputStream): UniFile?\n}\n"
  },
  {
    "path": "source-local/src/commonMain/kotlin/tachiyomi/source/local/io/Archive.kt",
    "content": "package tachiyomi.source.local.io\n\nimport com.hippo.unifile.UniFile\nimport tachiyomi.core.common.storage.extension\n\nobject Archive {\n\n    private val SUPPORTED_ARCHIVE_TYPES = listOf(\"zip\", \"cbz\", \"rar\", \"cbr\", \"7z\", \"cb7\", \"tar\", \"cbt\")\n\n    fun isSupported(file: UniFile): Boolean {\n        return file.extension?.lowercase() in SUPPORTED_ARCHIVE_TYPES\n    }\n}\n"
  },
  {
    "path": "source-local/src/commonMain/kotlin/tachiyomi/source/local/io/Format.kt",
    "content": "package tachiyomi.source.local.io\n\nimport com.hippo.unifile.UniFile\nimport tachiyomi.core.common.storage.extension\nimport tachiyomi.source.local.io.Archive.isSupported as isArchiveSupported\n\nsealed interface Format {\n    data class Directory(val file: UniFile) : Format\n    data class Archive(val file: UniFile) : Format\n    data class Epub(val file: UniFile) : Format\n\n    class UnknownFormatException : Exception()\n\n    companion object {\n\n        fun valueOf(file: UniFile) = when {\n            file.isDirectory -> Directory(file)\n            file.extension.equals(\"epub\", true) -> Epub(file)\n            isArchiveSupported(file) -> Archive(file)\n            else -> throw UnknownFormatException()\n        }\n    }\n}\n"
  },
  {
    "path": "source-local/src/commonMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt",
    "content": "package tachiyomi.source.local.io\n\nimport com.hippo.unifile.UniFile\n\nexpect class LocalSourceFileSystem {\n\n    fun getBaseDirectory(): UniFile?\n\n    fun getFilesInBaseDirectory(): List<UniFile>\n\n    fun getMangaDirectory(name: String): UniFile?\n\n    fun getFilesInMangaDirectory(name: String): List<UniFile>\n}\n"
  },
  {
    "path": "telemetry/build.gradle.kts",
    "content": "import mihon.buildlogic.Config\n\nplugins {\n    id(\"mihon.library\")\n    kotlin(\"android\")\n}\n\nandroid {\n    namespace = \"mihon.telemetry\"\n\n    sourceSets {\n        getByName(\"main\") {\n            if (Config.includeTelemetry) {\n                kotlin.srcDirs(\"src/firebase/kotlin\")\n            } else {\n                kotlin.srcDirs(\"src/noop/kotlin\")\n                manifest.srcFile(\"src/noop/AndroidManifext.xml\")\n            }\n        }\n    }\n}\n\ndependencies {\n    if (Config.includeTelemetry) {\n        implementation(platform(libs.firebase.bom))\n        implementation(libs.firebase.analytics)\n        implementation(libs.firebase.crashlytics)\n    }\n}\n"
  },
  {
    "path": "telemetry/src/firebase/kotlin/mihon/telemetry/PackageInfo.kt",
    "content": "package mihon.telemetry\n\nimport android.content.pm.PackageInfo\nimport android.content.pm.PackageManager\nimport android.content.pm.Signature\nimport android.os.Build\nimport java.security.MessageDigest\n\ninternal fun PackageInfo.getCertificateFingerprints(): List<String> {\n    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {\n        val signingInfo = signingInfo!!\n        if (signingInfo.hasMultipleSigners()) {\n            signingInfo.apkContentsSigners\n        } else {\n            signingInfo.signingCertificateHistory\n        }\n    } else {\n        @Suppress(\"DEPRECATION\")\n        signatures\n    }\n        ?.map(Signature::getCertificateFingerprint)\n        ?.toList()\n        ?: emptyList()\n}\n\ninternal val SignatureFlags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {\n    PackageManager.GET_SIGNING_CERTIFICATES\n} else {\n    @Suppress(\"DEPRECATION\")\n    PackageManager.GET_SIGNATURES\n}\n\n@OptIn(ExperimentalStdlibApi::class)\nprivate val CertificateFingerprintHexFormat = HexFormat {\n    upperCase = true\n    bytes {\n        byteSeparator = \":\"\n    }\n}\n\n@OptIn(ExperimentalStdlibApi::class)\nprivate fun Signature.getCertificateFingerprint(): String {\n    return MessageDigest.getInstance(\"SHA-256\")\n        .digest(toByteArray())\n        .toHexString(CertificateFingerprintHexFormat)\n}\n"
  },
  {
    "path": "telemetry/src/firebase/kotlin/mihon/telemetry/TelemetryConfig.kt",
    "content": "package mihon.telemetry\n\nimport android.content.Context\nimport com.google.firebase.FirebaseApp\nimport com.google.firebase.analytics.FirebaseAnalytics\nimport com.google.firebase.crashlytics.FirebaseCrashlytics\n\nobject TelemetryConfig {\n    private var analytics: FirebaseAnalytics? = null\n    private var crashlytics: FirebaseCrashlytics? = null\n\n    fun init(context: Context) {\n        // To stop forks/test builds from polluting our data\n        if (!context.isMihonProductionApp()) return\n\n        analytics = FirebaseAnalytics.getInstance(context)\n        FirebaseApp.initializeApp(context)\n        crashlytics = FirebaseCrashlytics.getInstance()\n    }\n\n    fun setAnalyticsEnabled(enabled: Boolean) {\n        analytics?.setAnalyticsCollectionEnabled(enabled)\n    }\n\n    fun setCrashlyticsEnabled(enabled: Boolean) {\n        crashlytics?.isCrashlyticsCollectionEnabled = enabled\n    }\n\n    private fun Context.isMihonProductionApp(): Boolean {\n        if (packageName !in MIHON_PACKAGES) return false\n\n        return packageManager.getPackageInfo(packageName, SignatureFlags)\n            .getCertificateFingerprints()\n            .any { it == MIHON_CERTIFICATE_FINGERPRINT }\n    }\n}\n\nprivate val MIHON_PACKAGES = hashSetOf(\"app.mihon\", \"app.mihon.debug\")\nprivate const val MIHON_CERTIFICATE_FINGERPRINT =\n    \"9A:DD:65:5A:78:E9:6C:4E:C7:A5:3E:F8:9D:CC:B5:57:CB:5D:76:74:89:FA:C5:E7:85:D6:71:A5:A7:5D:4D:A2\"\n"
  },
  {
    "path": "telemetry/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\">\n\n    <uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />\n    <uses-permission android:name=\"android.permission.INTERNET\" />\n    <uses-permission android:name=\"android.permission.WAKE_LOCK\" />\n\n    <!-- Remove unnecessary permissions from Firebase dependency -->\n    <uses-permission\n        android:name=\"android.permission.ACCESS_ADSERVICES_AD_ID\"\n        tools:node=\"remove\" />\n\n    <uses-permission\n        android:name=\"android.permission.ACCESS_ADSERVICES_ATTRIBUTION\"\n        tools:node=\"remove\" />\n\n    <uses-permission\n        android:name=\"com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE\"\n        tools:node=\"remove\" />\n\n    <uses-permission\n        android:name=\"com.google.android.gms.permission.AD_ID\"\n        tools:node=\"remove\" />\n\n    <application>\n        <!-- Disable for manual opt-in -->\n        <meta-data\n            android:name=\"firebase_analytics_collection_enabled\"\n            android:value=\"false\" />\n\n        <meta-data\n            android:name=\"firebase_crashlytics_collection_enabled\"\n            android:value=\"false\" />\n\n        <!-- Disable unnecessary stuff from Firebase -->\n        <meta-data\n            android:name=\"google_analytics_adid_collection_enabled\"\n            android:value=\"false\" />\n\n        <meta-data\n            android:name=\"google_analytics_automatic_screen_reporting_enabled\"\n            android:value=\"false\" />\n\n        <meta-data\n            android:name=\"google_analytics_default_allow_ad_personalization_signals\"\n            android:value=\"false\" />\n    </application>\n</manifest>\n"
  },
  {
    "path": "telemetry/src/noop/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest />\n"
  },
  {
    "path": "telemetry/src/noop/kotlin/mihon/telemetry/TelemetryConfig.kt",
    "content": "package mihon.telemetry\n\nimport android.content.Context\n\n@Suppress(\"UNUSED_PARAMETER\")\nobject TelemetryConfig {\n    fun init(context: Context) = Unit\n\n    fun setAnalyticsEnabled(enabled: Boolean) = Unit\n\n    fun setCrashlyticsEnabled(enabled: Boolean) = Unit\n}\n"
  }
]